Pull cramfs updates from Al Viro: "Nicolas Pitre's cramfs work" * 'work.cramfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: cramfs: rehabilitate it cramfs: add mmap support cramfs: implement uncompressed and arbitrary data block positioning cramfs: direct memory access support
Showing the changes to include/uapi (1 of 6 files). Show all
Unified · Split
| @@ -74,6 +74,7 @@ struct cramfs_super { · 73 unmodified lines | |||
| 74 | #define CRAMFS_FLAG_HOLES 0x00000100 /* support for holes */ | 74 | #define CRAMFS_FLAG_HOLES 0x00000100 /* support for holes */ |
| 75 | #define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200 /* reserved */ | 75 | #define CRAMFS_FLAG_WRONG_SIGNATURE 0x00000200 /* reserved */ |
| 76 | #define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400 /* shifted root fs */ | 76 | #define CRAMFS_FLAG_SHIFTED_ROOT_OFFSET 0x00000400 /* shifted root fs */ |
| 77 | #define CRAMFS_FLAG_EXT_BLOCK_POINTERS 0x00000800 /* block pointer extensions */ | ||
| 77 | 78 | ||
| 78 | /* | 79 | /* |
| 79 | * Valid values in super.flags. Currently we refuse to mount | 80 | * Valid values in super.flags. Currently we refuse to mount |
| @@ -83,7 +84,30 @@ struct cramfs_super { · 3 unmodified lines | |||
| 83 | #define CRAMFS_SUPPORTED_FLAGS ( 0x000000ff \ | 84 | #define CRAMFS_SUPPORTED_FLAGS ( 0x000000ff \ |
| 84 | | CRAMFS_FLAG_HOLES \ | 85 | | CRAMFS_FLAG_HOLES \ |
| 85 | | CRAMFS_FLAG_WRONG_SIGNATURE \ | 86 | | CRAMFS_FLAG_WRONG_SIGNATURE \ |
| 86 | | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET ) | 87 | | CRAMFS_FLAG_SHIFTED_ROOT_OFFSET \ |
| 88 | | CRAMFS_FLAG_EXT_BLOCK_POINTERS ) | ||
| 87 | 89 | ||
| 90 | /* | ||
| 91 | * Block pointer flags | ||
| 92 | * | ||
| 93 | * The maximum block offset that needs to be represented is roughly: | ||
| 94 | * | ||
| 95 | * (1 << CRAMFS_OFFSET_WIDTH) * 4 + | ||
| 96 | * (1 << CRAMFS_SIZE_WIDTH) / PAGE_SIZE * (4 + PAGE_SIZE) | ||
| 97 | * = 0x11004000 | ||
| 98 | * | ||
| 99 | * That leaves room for 3 flag bits in the block pointer table. | ||
| 100 | */ | ||
| 101 | #define CRAMFS_BLK_FLAG_UNCOMPRESSED (1 << 31) | ||
| 102 | #define CRAMFS_BLK_FLAG_DIRECT_PTR (1 << 30) | ||
| 103 | |||
| 104 | #define CRAMFS_BLK_FLAGS ( CRAMFS_BLK_FLAG_UNCOMPRESSED \ | ||
| 105 | | CRAMFS_BLK_FLAG_DIRECT_PTR ) | ||
| 106 | |||
| 107 | /* | ||
| 108 | * Direct blocks are at least 4-byte aligned. | ||
| 109 | * Pointers to direct blocks are shifted down by 2 bits. | ||
| 110 | */ | ||
| 111 | #define CRAMFS_BLK_DIRECT_PTR_SHIFT 2 | ||
| 88 | 112 | ||
| 89 | #endif /* _UAPI__CRAMFS_H */ | 113 | #endif /* _UAPI__CRAMFS_H */ |