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