3 * (c) 2005-2009 Laurent Vivier <Laurent@vivier.eu>
5 * This file has been copied from EMILE, http://emile.sf.net
12 #include "iso9660_fs.h"
14 typedef struct iso9660_VOLUME {
16 struct iso_primary_descriptor *descriptor;
20 typedef struct iso9660_DIR {
21 iso9660_VOLUME *volume;
25 unsigned char buffer[ISOFS_BLOCK_SIZE];
28 typedef struct iso9660_FILE {
29 iso9660_VOLUME *volume;
31 int base; /* first extent of the file */
32 int size; /* size of the file */
35 unsigned char buffer[ISOFS_BLOCK_SIZE];
38 static inline int isonum_721(char *p)
41 | ((p[1] & 0xff) << 8));
44 static inline int isonum_723(char *p)
46 return (isonum_721(p));
49 static inline int isonum_733(char *p)
51 return ((p[0] & 0xff) | ((p[1] & 0xff) << 8) |
52 ((p[2] & 0xff) << 16) | ((p[3] & 0xff) << 24));
55 extern struct iso_directory_record *iso9660_get_root_node(iso9660_VOLUME* volume);
56 extern struct iso_directory_record* iso9660_get_node(iso9660_VOLUME *volume, struct iso_directory_record *dirnode, const char *path);
58 #endif /* __ISO9660_H__ */