1 /* $Id$ */
2 /* ----------------------------------------------------------------------- *
3  *
4  *   Copyright 2001 H. Peter Anvin - All Rights Reserved
5  *
6  *   This program is free software; you can redistribute it and/or modify
7  *   it under the terms of the GNU General Public License as published by
8  *   the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
9  *   USA; either version 2 of the License, or (at your option) any later
10  *   version; incorporated herein by reference.
11  *
12  * ----------------------------------------------------------------------- */
13 
14 #include "iso9660.h"
15 
16 /* zisofs magic */
17 
18 const unsigned char zisofs_magic[8] = {
19   0x37, 0xE4, 0x53, 0x96, 0xC9, 0xDB, 0xD6, 0x07
20 };
21 
22 /* iso9660 integer formats */
23 
24 void
set_721(void * pnt,unsigned int i)25 set_721(void *pnt, unsigned int i)
26 {
27   unsigned char *p = (unsigned char *)pnt;
28   p[0] = i & 0xff;
29   p[1] = (i >> 8) & 0xff;
30 }
31 
32 unsigned int
get_721(void * pnt)33 get_721(void *pnt)
34 {
35   unsigned char *p = (unsigned char *)pnt;
36   return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8);
37 }
38 
39 void
set_722(void * pnt,unsigned int i)40 set_722(void *pnt, unsigned int i)
41 {
42   unsigned char *p = (unsigned char *)pnt;
43   p[0] = (i >> 8) & 0xff;
44   p[1] = i & 0xff;
45 }
46 
47 unsigned int
get_722(void * pnt)48 get_722(void *pnt)
49 {
50   unsigned char *p = (unsigned char *)pnt;
51   return ((unsigned int)p[0] << 8) + ((unsigned int)p[1]);
52 }
53 
54 void
set_723(void * pnt,unsigned int i)55 set_723(void *pnt, unsigned int i)
56 {
57   unsigned char *p = (unsigned char *)pnt;
58   p[3] = p[0] = i & 0xff;
59   p[2] = p[1] = (i >> 8) & 0xff;
60 }
61 
62 #define get_723(x) get_721(x)
63 
64 void
set_731(void * pnt,unsigned int i)65 set_731(void *pnt, unsigned int i)
66 {
67   unsigned char *p = (unsigned char *)pnt;
68   p[0] = i & 0xff;
69   p[1] = (i >> 8) & 0xff;
70   p[2] = (i >> 16) & 0xff;
71   p[3] = (i >> 24) & 0xff;
72 }
73 
74 unsigned int
get_731(void * pnt)75 get_731(void *pnt)
76 {
77   unsigned char *p = (unsigned char *)pnt;
78   return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8) +
79     ((unsigned int)p[2] << 16) + ((unsigned int)p[3] << 24);
80 }
81 
82 void
set_732(void * pnt,unsigned int i)83 set_732(void *pnt, unsigned int i)
84 {
85   unsigned char *p = (unsigned char *)pnt;
86   p[3] = i & 0xff;
87   p[2] = (i >> 8) & 0xff;
88   p[1] = (i >> 16) & 0xff;
89   p[0] = (i >> 24) & 0xff;
90 }
91 
92 unsigned int
get_732(void * pnt)93 get_732(void *pnt)
94 {
95   unsigned char *p = (unsigned char *)pnt;
96   return ((unsigned int)p[0] << 24) + ((unsigned int)p[1] << 16) +
97     ((unsigned int)p[2] << 8) + ((unsigned int)p[3]);
98 }
99 
100 void
set_733(void * pnt,unsigned int i)101 set_733(void *pnt, unsigned int i)
102 {
103   unsigned char *p = (unsigned char *)pnt;
104   p[7] = p[0] = i & 0xff;
105   p[6] = p[1] = (i >> 8) & 0xff;
106   p[5] = p[2] = (i >> 16) & 0xff;
107   p[4] = p[3] = (i >> 24) & 0xff;
108 }
109 
110 #define get_733(x) get_731(x)
111 
112