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__ */