| /* | 
 |  * efs_dir.h | 
 |  * | 
 |  * Copyright (c) 1999 Al Smith | 
 |  */ | 
 |  | 
 | #ifndef __EFS_DIR_H__ | 
 | #define __EFS_DIR_H__ | 
 |  | 
 | #define EFS_DIRBSIZE_BITS	EFS_BLOCKSIZE_BITS | 
 | #define EFS_DIRBSIZE		(1 << EFS_DIRBSIZE_BITS) | 
 |  | 
 | struct efs_dentry { | 
 | 	__be32		inode; | 
 | 	unsigned char	namelen; | 
 | 	char		name[3]; | 
 | }; | 
 |  | 
 | #define EFS_DENTSIZE	(sizeof(struct efs_dentry) - 3 + 1) | 
 | #define EFS_MAXNAMELEN  ((1 << (sizeof(char) * 8)) - 1) | 
 |  | 
 | #define EFS_DIRBLK_HEADERSIZE	4 | 
 | #define EFS_DIRBLK_MAGIC	0xbeef	/* moo */ | 
 |  | 
 | struct efs_dir { | 
 | 	__be16	magic; | 
 | 	unsigned char	firstused; | 
 | 	unsigned char	slots; | 
 |  | 
 | 	unsigned char	space[EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE]; | 
 | }; | 
 |  | 
 | #define EFS_MAXENTS \ | 
 | 	((EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE) / \ | 
 | 	 (EFS_DENTSIZE + sizeof(char))) | 
 |  | 
 | #define EFS_SLOTAT(dir, slot) EFS_REALOFF((dir)->space[slot]) | 
 |  | 
 | #define EFS_REALOFF(offset) ((offset << 1)) | 
 |  | 
 | #endif /* __EFS_DIR_H__ */ | 
 |  |