qnx4_fs.h
01: 
02: 
03: 
04: 
05: 
06: 
07: #ifndef _LINUX_QNX4_FS_H
08: #define _LINUX_QNX4_FS_H
09: 
10: #include <linux/types.h>
11: #include <linux/qnxtypes.h>
12: #include <linux/magic.h>
13: 
14: #define QNX4_ROOT_INO 1
15: 
16: #define QNX4_MAX_XTNTS_PER_XBLK 60
17: 
18: #define QNX4_FILE_USED          0x01
19: #define QNX4_FILE_MODIFIED      0x02
20: #define QNX4_FILE_BUSY          0x04
21: #define QNX4_FILE_LINK          0x08
22: #define QNX4_FILE_INODE         0x10
23: #define QNX4_FILE_FSYSCLEAN     0x20
24: 
25: #define QNX4_I_MAP_SLOTS        8
26: #define QNX4_Z_MAP_SLOTS        64
27: #define QNX4_VALID_FS           0x0001  
28: #define QNX4_ERROR_FS           0x0002  
29: #define QNX4_BLOCK_SIZE         0x200   
30: #define QNX4_BLOCK_SIZE_BITS    9       
31: #define QNX4_DIR_ENTRY_SIZE     0x040   
32: #define QNX4_DIR_ENTRY_SIZE_BITS 6      
33: #define QNX4_XBLK_ENTRY_SIZE    0x200   
34: #define QNX4_INODES_PER_BLOCK   0x08    
35: 
36: 
37: #define QNX4_SHORT_NAME_MAX     16
38: #define QNX4_NAME_MAX           48
39: 
40: 
41: 
42: 
43: struct qnx4_inode_entry {
44:         char            di_fname[QNX4_SHORT_NAME_MAX];
45:         qnx4_off_t      di_size;
46:         qnx4_xtnt_t     di_first_xtnt;
47:         __le32          di_xblk;
48:         __le32          di_ftime;
49:         __le32          di_mtime;
50:         __le32          di_atime;
51:         __le32          di_ctime;
52:         qnx4_nxtnt_t    di_num_xtnts;
53:         qnx4_mode_t     di_mode;
54:         qnx4_muid_t     di_uid;
55:         qnx4_mgid_t     di_gid;
56:         qnx4_nlink_t    di_nlink;
57:         __u8            di_zero[4];
58:         qnx4_ftype_t    di_type;
59:         __u8            di_status;
60: };
61: 
62: struct qnx4_link_info {
63:         char            dl_fname[QNX4_NAME_MAX];
64:         __le32          dl_inode_blk;
65:         __u8            dl_inode_ndx;
66:         __u8            dl_spare[10];
67:         __u8            dl_status;
68: };
69: 
70: struct qnx4_xblk {
71:         __le32          xblk_next_xblk;
72:         __le32          xblk_prev_xblk;
73:         __u8            xblk_num_xtnts;
74:         __u8            xblk_spare[3];
75:         __le32          xblk_num_blocks;
76:         qnx4_xtnt_t     xblk_xtnts[QNX4_MAX_XTNTS_PER_XBLK];
77:         char            xblk_signature[8];
78:         qnx4_xtnt_t     xblk_first_xtnt;
79: };
80: 
81: struct qnx4_super_block {
82:         struct qnx4_inode_entry RootDir;
83:         struct qnx4_inode_entry Inode;
84:         struct qnx4_inode_entry Boot;
85:         struct qnx4_inode_entry AltBoot;
86: };
87: 
88: #endif
89: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved