cramfs_fs.h
01: #ifndef __CRAMFS_H
02: #define __CRAMFS_H
03:
04: #include <linux/types.h>
05: #include <linux/magic.h>
06:
07: #define CRAMFS_SIGNATURE "Compressed ROMFS"
08:
09:
10:
11:
12:
13: #define CRAMFS_MODE_WIDTH 16
14: #define CRAMFS_UID_WIDTH 16
15: #define CRAMFS_SIZE_WIDTH 24
16: #define CRAMFS_GID_WIDTH 8
17: #define CRAMFS_NAMELEN_WIDTH 6
18: #define CRAMFS_OFFSET_WIDTH 26
19:
20:
21:
22:
23:
24: #define CRAMFS_MAXPATHLEN (((1 << CRAMFS_NAMELEN_WIDTH) - 1) << 2)
25:
26:
27:
28:
29: struct cramfs_inode {
30: __u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
31:
32: __u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
33:
34:
35:
36:
37:
38:
39:
40:
41: __u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
42: };
43:
44: struct cramfs_info {
45: __u32 crc;
46: __u32 edition;
47: __u32 blocks;
48: __u32 files;
49: };
50:
51:
52:
53:
54: struct cramfs_super {
55: __u32 magic;
56: __u32 size;
57: __u32 flags;
58: __u32 future;
59: __u8 signature[16];
60: struct cramfs_info fsid;
61: __u8 name[16];
62: struct cramfs_inode root;
63: };
64:
65:
66:
67:
68:
69:
70:
71: #define CRAMFS_FLAG_FSID_VERSION_2 0x00000001
72: #define CRAMFS_FLAG_SORTED_DIRS 0x00000002
73: #define CRAMFS_FLAG_HOLES 0x00000100
74: #define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200
75: #define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400
76:
77:
78:
79:
80:
81:
82: #define CRAMFS_SUPPORTED_FLAGS ( 0x000000ff \
83: | CRAMFS_FLAG_HOLES \
84: | CRAMFS_FLAG_WRONG_SIGNATURE \
85: | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET )
86:
87:
88: #endif
89:
© Andrew Scott 2006 -
2025,
All Rights Reserved