1 #ifndef __LINUX_ROMFS_FS_H 2 #define __LINUX_ROMFS_FS_H 3 4 /* The basic structures of the romfs filesystem */ 5 6 #define ROMBSIZE BLOCK_SIZE 7 #define ROMBSBITS BLOCK_SIZE_BITS 8 #define ROMBMASK (ROMBSIZE-1) 9 #define ROMFS_MAGIC 0x7275 10 11 #define ROMFS_MAXFN 128 12 13 #define __mkw(h,l) (((h)&0x00ff)<< 8|((l)&0x00ff)) 14 #define __mkl(h,l) (((h)&0xffff)<<16|((l)&0xffff)) 15 #define __mk4(a,b,c,d) htonl(__mkl(__mkw(a,b),__mkw(c,d))) 16 #define ROMSB_WORD0 __mk4('-','r','o','m') 17 #define ROMSB_WORD1 __mk4('1','f','s','-') 18 19 /* On-disk "super block" */ 20 21 struct romfs_super_block { 22 __u32 word0; 23 __u32 word1; 24 __u32 size; 25 __u32 checksum; 26 char name[0]; /* volume name */ 27 }; 28 29 /* On disk inode */ 30 31 struct romfs_inode { 32 __u32 next; /* low 4 bits see ROMFH_ */ 33 __u32 spec; 34 __u32 size; 35 __u32 checksum; 36 char name[0]; 37 }; 38 39 #define ROMFH_TYPE 7 40 #define ROMFH_HRD 0 41 #define ROMFH_DIR 1 42 #define ROMFH_REG 2 43 #define ROMFH_SYM 3 44 #define ROMFH_BLK 4 45 #define ROMFH_CHR 5 46 #define ROMFH_SCK 6 47 #define ROMFH_FIF 7 48 #define ROMFH_EXEC 8 49 50 /* Alignment */ 51 52 #define ROMFH_SIZE 16 53 #define ROMFH_PAD (ROMFH_SIZE-1) 54 #define ROMFH_MASK (~ROMFH_PAD) 55 56 #ifdef __KERNEL__ 57 58 /* Not much now */ 59 60 #endif /* __KERNEL__ */ 61 #endif 62