1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI__CRAMFS_H 8 #define _UAPI__CRAMFS_H 9 #include <linux/types.h> 10 #include <linux/magic.h> 11 #define CRAMFS_SIGNATURE "Compressed ROMFS" 12 #define CRAMFS_MODE_WIDTH 16 13 #define CRAMFS_UID_WIDTH 16 14 #define CRAMFS_SIZE_WIDTH 24 15 #define CRAMFS_GID_WIDTH 8 16 #define CRAMFS_NAMELEN_WIDTH 6 17 #define CRAMFS_OFFSET_WIDTH 26 18 #define CRAMFS_MAXPATHLEN (((1 << CRAMFS_NAMELEN_WIDTH) - 1) << 2) 19 struct cramfs_inode { 20 __u32 mode : CRAMFS_MODE_WIDTH, uid : CRAMFS_UID_WIDTH; 21 __u32 size : CRAMFS_SIZE_WIDTH, gid : CRAMFS_GID_WIDTH; 22 __u32 namelen : CRAMFS_NAMELEN_WIDTH, offset : CRAMFS_OFFSET_WIDTH; 23 }; 24 struct cramfs_info { 25 __u32 crc; 26 __u32 edition; 27 __u32 blocks; 28 __u32 files; 29 }; 30 struct cramfs_super { 31 __u32 magic; 32 __u32 size; 33 __u32 flags; 34 __u32 future; 35 __u8 signature[16]; 36 struct cramfs_info fsid; 37 __u8 name[16]; 38 struct cramfs_inode root; 39 }; 40 #define CRAMFS_FLAG_FSID_VERSION_2 0x00000001 41 #define CRAMFS_FLAG_SORTED_DIRS 0x00000002 42 #define CRAMFS_FLAG_HOLES 0x00000100 43 #define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200 44 #define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400 45 #define CRAMFS_FLAG_EXT_BLOCK_POINTERS 0x00000800 46 #define CRAMFS_SUPPORTED_FLAGS (0x000000ff | CRAMFS_FLAG_HOLES | CRAMFS_FLAG_WRONG_SIGNATURE | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET | CRAMFS_FLAG_EXT_BLOCK_POINTERS) 47 #define CRAMFS_BLK_FLAG_UNCOMPRESSED (1 << 31) 48 #define CRAMFS_BLK_FLAG_DIRECT_PTR (1 << 30) 49 #define CRAMFS_BLK_FLAGS (CRAMFS_BLK_FLAG_UNCOMPRESSED | CRAMFS_BLK_FLAG_DIRECT_PTR) 50 #define CRAMFS_BLK_DIRECT_PTR_SHIFT 2 51 #endif 52