|
|
1.1 ! root 1: #define ISODCL(from, to) (to - from + 1) ! 2: ! 3: struct iso_volume_descriptor { ! 4: char type[ISODCL(1,1)]; /* 711 */ ! 5: char id[ISODCL(2,6)]; ! 6: char version[ISODCL(7,7)]; ! 7: char data[ISODCL(8,2048)]; ! 8: }; ! 9: ! 10: /* volume descriptor types */ ! 11: #define ISO_VD_PRIMARY 1 ! 12: #define ISO_VD_END 255 ! 13: ! 14: #define ISO_STANDARD_ID "CD001" ! 15: ! 16: struct iso_primary_descriptor { ! 17: char type [ISODCL ( 1, 1)]; /* 711 */ ! 18: char id [ISODCL ( 2, 6)]; ! 19: char version [ISODCL ( 7, 7)]; /* 711 */ ! 20: char unused1 [ISODCL ( 8, 8)]; ! 21: char system_id [ISODCL ( 9, 40)]; /* achars */ ! 22: char volume_id [ISODCL ( 41, 72)]; /* dchars */ ! 23: char unused2 [ISODCL ( 73, 80)]; ! 24: char volume_space_size [ISODCL ( 81, 88)]; /* 733 */ ! 25: char unused3 [ISODCL ( 89, 120)]; ! 26: char volume_set_size [ISODCL (121, 124)]; /* 723 */ ! 27: char volume_sequence_number [ISODCL (125, 128)]; /* 723 */ ! 28: char logical_block_size [ISODCL (129, 132)]; /* 723 */ ! 29: char path_table_size [ISODCL (133, 140)]; /* 733 */ ! 30: char type_l_path_table [ISODCL (141, 144)]; /* 731 */ ! 31: char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */ ! 32: char type_m_path_table [ISODCL (149, 152)]; /* 732 */ ! 33: char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */ ! 34: char root_directory_record [ISODCL (157, 190)]; /* 9.1 */ ! 35: char volume_set_id [ISODCL (191, 318)]; /* dchars */ ! 36: char publisher_id [ISODCL (319, 446)]; /* achars */ ! 37: char preparer_id [ISODCL (447, 574)]; /* achars */ ! 38: char application_id [ISODCL (575, 702)]; /* achars */ ! 39: char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */ ! 40: char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */ ! 41: char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */ ! 42: char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */ ! 43: char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */ ! 44: char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */ ! 45: char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */ ! 46: char file_structure_version [ISODCL (882, 882)]; /* 711 */ ! 47: char unused4 [ISODCL (883, 883)]; ! 48: char application_data [ISODCL (884, 1395)]; ! 49: char unused5 [ISODCL (1396, 2048)]; ! 50: }; ! 51: ! 52: struct iso_directory_record { ! 53: char length [ISODCL (1, 1)]; /* 711 */ ! 54: char ext_attr_length [ISODCL (2, 2)]; /* 711 */ ! 55: char extent [ISODCL (3, 10)]; /* 733 */ ! 56: char size [ISODCL (11, 18)]; /* 733 */ ! 57: char date [ISODCL (19, 25)]; /* 7 by 711 */ ! 58: char flags [ISODCL (26, 26)]; ! 59: char file_unit_size [ISODCL (27, 27)]; /* 711 */ ! 60: char interleave [ISODCL (28, 28)]; /* 711 */ ! 61: char volume_sequence_number [ISODCL (29, 32)]; /* 723 */ ! 62: char name_len [ISODCL (33, 33)]; /* 711 */ ! 63: char name [0]; ! 64: }; ! 65: ! 66: struct iso_mnt { ! 67: int logical_block_size; ! 68: int volume_space_size; ! 69: struct vnode *im_devvp; ! 70: char im_fsmnt[50]; ! 71: ! 72: int im_ronly; ! 73: int im_fmod; ! 74: struct mount *im_mountp; ! 75: dev_t im_dev; ! 76: ! 77: int im_bshift; ! 78: int im_bmask; ! 79: int im_bsize; ! 80: ! 81: char root[ISODCL (157, 190)]; ! 82: int root_extent; ! 83: int root_size; ! 84: }; ! 85: ! 86: #define VFSTOISOFS(mp) ((struct iso_mnt *)((mp)->mnt_data)) ! 87: ! 88: #define iso_blkoff(imp, loc) ((loc) & ~(imp)->im_bmask) ! 89: #define iso_lblkno(imp, loc) ((loc) >> (imp)->im_bshift) ! 90: #define iso_blksize(imp, ip, lbn) ((imp)->im_bsize) ! 91: #define iso_lblktosize(imp, blk) ((blk) << (imp)->im_bshift) ! 92: ! 93: ! 94: int isofs_mount __P((struct mount *mp, char *path, caddr_t data, ! 95: struct nameidata *ndp, struct proc *p)); ! 96: int isofs_start __P((struct mount *mp, int flags, struct proc *p)); ! 97: int isofs_unmount __P((struct mount *mp, int mntflags, struct proc *p)); ! 98: int isofs_root __P((struct mount *mp, struct vnode **vpp)); ! 99: int isofs_statfs __P((struct mount *mp, struct statfs *sbp, struct proc *p)); ! 100: int isofs_sync __P((struct mount *mp, int waitfor)); ! 101: int isofs_fhtovp __P((struct mount *mp, struct fid *fhp, struct vnode **vpp)); ! 102: int isofs_vptofh __P((struct vnode *vp, struct fid *fhp)); ! 103: int isofs_init __P(()); ! 104:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.