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