File: iso_util.c

package info (click to toggle)
yaboot 1.3.16-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 1,508 kB
  • ctags: 3,009
  • sloc: ansic: 10,206; sh: 2,933; asm: 343; makefile: 241
file content (92 lines) | stat: -rw-r--r-- 1,526 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
 *  linux/fs/isofs/util.c
 *
 *  The special functions in the file are numbered according to the section
 *  of the iso 9660 standard in which they are described.  isonum_733 will
 *  convert numbers according to section 7.3.3, etc.
 *
 *  isofs special functions.  This file was lifted in its entirety from
 *  the 386BSD iso9660 filesystem, by Pace Willisson <pace@blitz.com>.
 */

int
isonum_711 (char * p)
{
     return (*p & 0xff);
}

int
isonum_712 (char * p)
{
     int val;

     val = *p;
     if (val & 0x80)
	  val |= 0xffffff00;
     return (val);
}

int
isonum_721 (char * p)
{
     return ((p[0] & 0xff) | ((p[1] & 0xff) << 8));
}

int
isonum_722 (char * p)
{
     return (((p[0] & 0xff) << 8) | (p[1] & 0xff));
}

int
isonum_723 (char * p)
{
#if 0
     if (p[0] != p[3] || p[1] != p[2]) {
	  fprintf (stderr, "invalid format 7.2.3 number\n");
	  exit (1);
     }
#endif
     return (isonum_721 (p));
}

int
isonum_731 (char * p)
{
     return ((p[0] & 0xff)
	     | ((p[1] & 0xff) << 8)
	     | ((p[2] & 0xff) << 16)
	     | ((p[3] & 0xff) << 24));
}

int
isonum_732 (char * p)
{
     return (((p[0] & 0xff) << 24)
	     | ((p[1] & 0xff) << 16)
	     | ((p[2] & 0xff) << 8)
	     | (p[3] & 0xff));
}

int
isonum_733 (char * p)
{
#if 0
     int i;

     for (i = 0; i < 4; i++) {
	  if (p[i] != p[7-i]) {
	       fprintf (stderr, "bad format 7.3.3 number\n");
	       exit (1);
	  }
     }
#endif
     return (isonum_731 (p));
}

/*
 * Local variables:
 * c-file-style: "k&r"
 * c-basic-offset: 8
 * End:
 */