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 21struct 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 31struct 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