43 lines
844 B
C
43 lines
844 B
C
/*
|
|
* 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__ */
|
|
|