|
|
1.1 ! root 1: /* ! 2: * ! 3: * (c) 2005-2009 Laurent Vivier <[email protected]> ! 4: * ! 5: * This file has been copied from EMILE, http://emile.sf.net ! 6: * ! 7: */ ! 8: ! 9: #ifndef __ISO9660_H__ ! 10: #define __ISO9660_H__ ! 11: ! 12: #include "iso9660_fs.h" ! 13: ! 14: typedef struct iso9660_VOLUME { ! 15: int ucs_level; ! 16: struct iso_primary_descriptor *descriptor; ! 17: int fd; ! 18: } iso9660_VOLUME; ! 19: ! 20: typedef struct iso9660_DIR { ! 21: iso9660_VOLUME *volume; ! 22: int extent; ! 23: int len; ! 24: int index; ! 25: unsigned char buffer[ISOFS_BLOCK_SIZE]; ! 26: } iso9660_DIR; ! 27: ! 28: typedef struct iso9660_FILE { ! 29: iso9660_VOLUME *volume; ! 30: char *path; ! 31: int base; /* first extent of the file */ ! 32: int size; /* size of the file */ ! 33: int offset; ! 34: int current; ! 35: unsigned char buffer[ISOFS_BLOCK_SIZE]; ! 36: } iso9660_FILE; ! 37: ! 38: static inline int isonum_721(char *p) ! 39: { ! 40: return ((p[0] & 0xff) ! 41: | ((p[1] & 0xff) << 8)); ! 42: } ! 43: ! 44: static inline int isonum_723(char *p) ! 45: { ! 46: return (isonum_721(p)); ! 47: } ! 48: ! 49: static inline int isonum_733(char *p) ! 50: { ! 51: return ((p[0] & 0xff) | ((p[1] & 0xff) << 8) | ! 52: ((p[2] & 0xff) << 16) | ((p[3] & 0xff) << 24)); ! 53: } ! 54: ! 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); ! 57: ! 58: #endif /* __ISO9660_H__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.