1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * Name : qnx4_fs.h 3*53ee8cc1Swenshuai.xi * Author : Richard Frowijn 4*53ee8cc1Swenshuai.xi * Function : qnx4 global filesystem definitions 5*53ee8cc1Swenshuai.xi * Version : 1.0.2 6*53ee8cc1Swenshuai.xi * Last modified : 2000-01-31 7*53ee8cc1Swenshuai.xi * 8*53ee8cc1Swenshuai.xi * History : 23-03-1998 created 9*53ee8cc1Swenshuai.xi */ 10*53ee8cc1Swenshuai.xi #ifndef _LINUX_QNX4_FS_H 11*53ee8cc1Swenshuai.xi #define _LINUX_QNX4_FS_H 12*53ee8cc1Swenshuai.xi 13*53ee8cc1Swenshuai.xi #include <linux/qnxtypes.h> 14*53ee8cc1Swenshuai.xi #include <linux/magic.h> 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xi #define QNX4_ROOT_INO 1 17*53ee8cc1Swenshuai.xi 18*53ee8cc1Swenshuai.xi #define QNX4_MAX_XTNTS_PER_XBLK 60 19*53ee8cc1Swenshuai.xi /* for di_status */ 20*53ee8cc1Swenshuai.xi #define QNX4_FILE_USED 0x01 21*53ee8cc1Swenshuai.xi #define QNX4_FILE_MODIFIED 0x02 22*53ee8cc1Swenshuai.xi #define QNX4_FILE_BUSY 0x04 23*53ee8cc1Swenshuai.xi #define QNX4_FILE_LINK 0x08 24*53ee8cc1Swenshuai.xi #define QNX4_FILE_INODE 0x10 25*53ee8cc1Swenshuai.xi #define QNX4_FILE_FSYSCLEAN 0x20 26*53ee8cc1Swenshuai.xi 27*53ee8cc1Swenshuai.xi #define QNX4_I_MAP_SLOTS 8 28*53ee8cc1Swenshuai.xi #define QNX4_Z_MAP_SLOTS 64 29*53ee8cc1Swenshuai.xi #define QNX4_VALID_FS 0x0001 /* Clean fs. */ 30*53ee8cc1Swenshuai.xi #define QNX4_ERROR_FS 0x0002 /* fs has errors. */ 31*53ee8cc1Swenshuai.xi #define QNX4_BLOCK_SIZE 0x200 /* blocksize of 512 bytes */ 32*53ee8cc1Swenshuai.xi #define QNX4_BLOCK_SIZE_BITS 9 /* blocksize shift */ 33*53ee8cc1Swenshuai.xi #define QNX4_DIR_ENTRY_SIZE 0x040 /* dir entry size of 64 bytes */ 34*53ee8cc1Swenshuai.xi #define QNX4_DIR_ENTRY_SIZE_BITS 6 /* dir entry size shift */ 35*53ee8cc1Swenshuai.xi #define QNX4_XBLK_ENTRY_SIZE 0x200 /* xblk entry size */ 36*53ee8cc1Swenshuai.xi #define QNX4_INODES_PER_BLOCK 0x08 /* 512 / 64 */ 37*53ee8cc1Swenshuai.xi 38*53ee8cc1Swenshuai.xi /* for filenames */ 39*53ee8cc1Swenshuai.xi #define QNX4_SHORT_NAME_MAX 16 40*53ee8cc1Swenshuai.xi #define QNX4_NAME_MAX 48 41*53ee8cc1Swenshuai.xi 42*53ee8cc1Swenshuai.xi /* 43*53ee8cc1Swenshuai.xi * This is the original qnx4 inode layout on disk. 44*53ee8cc1Swenshuai.xi */ 45*53ee8cc1Swenshuai.xi struct qnx4_inode_entry { 46*53ee8cc1Swenshuai.xi char di_fname[QNX4_SHORT_NAME_MAX]; 47*53ee8cc1Swenshuai.xi qnx4_off_t di_size; 48*53ee8cc1Swenshuai.xi qnx4_xtnt_t di_first_xtnt; 49*53ee8cc1Swenshuai.xi __le32 di_xblk; 50*53ee8cc1Swenshuai.xi __le32 di_ftime; 51*53ee8cc1Swenshuai.xi __le32 di_mtime; 52*53ee8cc1Swenshuai.xi __le32 di_atime; 53*53ee8cc1Swenshuai.xi __le32 di_ctime; 54*53ee8cc1Swenshuai.xi qnx4_nxtnt_t di_num_xtnts; 55*53ee8cc1Swenshuai.xi qnx4_mode_t di_mode; 56*53ee8cc1Swenshuai.xi qnx4_muid_t di_uid; 57*53ee8cc1Swenshuai.xi qnx4_mgid_t di_gid; 58*53ee8cc1Swenshuai.xi qnx4_nlink_t di_nlink; 59*53ee8cc1Swenshuai.xi __u8 di_zero[4]; 60*53ee8cc1Swenshuai.xi qnx4_ftype_t di_type; 61*53ee8cc1Swenshuai.xi __u8 di_status; 62*53ee8cc1Swenshuai.xi }; 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi struct qnx4_link_info { 65*53ee8cc1Swenshuai.xi char dl_fname[QNX4_NAME_MAX]; 66*53ee8cc1Swenshuai.xi __le32 dl_inode_blk; 67*53ee8cc1Swenshuai.xi __u8 dl_inode_ndx; 68*53ee8cc1Swenshuai.xi __u8 dl_spare[10]; 69*53ee8cc1Swenshuai.xi __u8 dl_status; 70*53ee8cc1Swenshuai.xi }; 71*53ee8cc1Swenshuai.xi 72*53ee8cc1Swenshuai.xi struct qnx4_xblk { 73*53ee8cc1Swenshuai.xi __le32 xblk_next_xblk; 74*53ee8cc1Swenshuai.xi __le32 xblk_prev_xblk; 75*53ee8cc1Swenshuai.xi __u8 xblk_num_xtnts; 76*53ee8cc1Swenshuai.xi __u8 xblk_spare[3]; 77*53ee8cc1Swenshuai.xi __le32 xblk_num_blocks; 78*53ee8cc1Swenshuai.xi qnx4_xtnt_t xblk_xtnts[QNX4_MAX_XTNTS_PER_XBLK]; 79*53ee8cc1Swenshuai.xi char xblk_signature[8]; 80*53ee8cc1Swenshuai.xi qnx4_xtnt_t xblk_first_xtnt; 81*53ee8cc1Swenshuai.xi }; 82*53ee8cc1Swenshuai.xi 83*53ee8cc1Swenshuai.xi struct qnx4_super_block { 84*53ee8cc1Swenshuai.xi struct qnx4_inode_entry RootDir; 85*53ee8cc1Swenshuai.xi struct qnx4_inode_entry Inode; 86*53ee8cc1Swenshuai.xi struct qnx4_inode_entry Boot; 87*53ee8cc1Swenshuai.xi struct qnx4_inode_entry AltBoot; 88*53ee8cc1Swenshuai.xi }; 89*53ee8cc1Swenshuai.xi 90*53ee8cc1Swenshuai.xi 91*53ee8cc1Swenshuai.xi #endif 92