2 * This file has been modified for the cdrkit suite.
4 * The behaviour and appearence of the program code below can differ to a major
5 * extent from the version distributed by the original author(s).
7 * For details, see Changelog file distributed with the cdrkit package. If you
8 * received this file from another source then ask the distributing person for
9 * a log of modifications.
13 /* $Id: iso9660.c,v 1.1 2001/07/27 14:37:08 hpa Exp $ */
14 /* ----------------------------------------------------------------------- *
16 * Copyright 2001 H. Peter Anvin - All Rights Reserved
18 * This program is free software; you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License as published by
20 * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
21 * USA; either version 2 of the License, or (at your option) any later
22 * version; incorporated herein by reference.
24 * ----------------------------------------------------------------------- */
30 const unsigned char zisofs_magic[8] = {
31 0x37, 0xE4, 0x53, 0x96, 0xC9, 0xDB, 0xD6, 0x07
34 /* iso9660 integer formats */
37 set_721(void *pnt, unsigned int i)
39 unsigned char *p = (unsigned char *)pnt;
41 p[1] = (i >> 8) & 0xff;
47 unsigned char *p = (unsigned char *)pnt;
48 return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8);
52 set_722(void *pnt, unsigned int i)
54 unsigned char *p = (unsigned char *)pnt;
55 p[0] = (i >> 8) & 0xff;
62 unsigned char *p = (unsigned char *)pnt;
63 return ((unsigned int)p[0] << 8) + ((unsigned int)p[1]);
67 set_723(void *pnt, unsigned int i)
69 unsigned char *p = (unsigned char *)pnt;
70 p[3] = p[0] = i & 0xff;
71 p[2] = p[1] = (i >> 8) & 0xff;
74 #define get_723(x) get_721(x)
77 set_731(void *pnt, unsigned int i)
79 unsigned char *p = (unsigned char *)pnt;
81 p[1] = (i >> 8) & 0xff;
82 p[2] = (i >> 16) & 0xff;
83 p[3] = (i >> 24) & 0xff;
89 unsigned char *p = (unsigned char *)pnt;
90 return ((unsigned int)p[0]) + ((unsigned int)p[1] << 8) +
91 ((unsigned int)p[2] << 16) + ((unsigned int)p[3] << 24);
95 set_732(void *pnt, unsigned int i)
97 unsigned char *p = (unsigned char *)pnt;
99 p[2] = (i >> 8) & 0xff;
100 p[1] = (i >> 16) & 0xff;
101 p[0] = (i >> 24) & 0xff;
107 unsigned char *p = (unsigned char *)pnt;
108 return ((unsigned int)p[0] << 24) + ((unsigned int)p[1] << 16) +
109 ((unsigned int)p[2] << 8) + ((unsigned int)p[3]);
113 set_733(void *pnt, unsigned int i)
115 unsigned char *p = (unsigned char *)pnt;
116 p[7] = p[0] = i & 0xff;
117 p[6] = p[1] = (i >> 8) & 0xff;
118 p[5] = p[2] = (i >> 16) & 0xff;
119 p[4] = p[3] = (i >> 24) & 0xff;
122 #define get_733(x) get_731(x)