| /* | |
| * 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__ */ | |