|
|
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.