Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


qnx4_fs.h
01: /*
02:  *  Name                         : qnx4_fs.h
03:  *  Author                       : Richard Frowijn
04:  *  Function                     : qnx4 global filesystem definitions
05:  *  History                      : 23-03-1998 created
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: /* for di_status */
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  /* Clean fs. */
28: #define QNX4_ERROR_FS           0x0002  /* fs has errors. */
29: #define QNX4_BLOCK_SIZE         0x200   /* blocksize of 512 bytes */
30: #define QNX4_BLOCK_SIZE_BITS    9       /* blocksize shift */
31: #define QNX4_DIR_ENTRY_SIZE     0x040   /* dir entry size of 64 bytes */
32: #define QNX4_DIR_ENTRY_SIZE_BITS 6      /* dir entry size shift */
33: #define QNX4_XBLK_ENTRY_SIZE    0x200   /* xblk entry size */
34: #define QNX4_INODES_PER_BLOCK   0x08    /* 512 / 64 */
35: 
36: /* for filenames */
37: #define QNX4_SHORT_NAME_MAX     16
38: #define QNX4_NAME_MAX           48
39: 
40: /*
41:  * This is the original qnx4 inode layout on disk.
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: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/