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