Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | /* |
2 | * efs_dir.h |
||
3 | * |
||
4 | * Copyright (c) 1999 Al Smith |
||
5 | */ |
||
6 | |||
7 | #ifndef __EFS_DIR_H__ |
||
8 | #define __EFS_DIR_H__ |
||
9 | |||
10 | #define EFS_DIRBSIZE_BITS EFS_BLOCKSIZE_BITS |
||
11 | #define EFS_DIRBSIZE (1 << EFS_DIRBSIZE_BITS) |
||
12 | |||
13 | struct efs_dentry { |
||
14 | unsigned int inode; |
||
15 | unsigned char namelen; |
||
16 | char name[3]; |
||
17 | }; |
||
18 | |||
19 | #define EFS_DENTSIZE (sizeof(struct efs_dentry) - 3 + 1) |
||
20 | #define EFS_MAXNAMELEN ((1 << (sizeof(char) * 8)) - 1) |
||
21 | |||
22 | #define EFS_DIRBLK_HEADERSIZE 4 |
||
23 | #define EFS_DIRBLK_MAGIC 0xbeef /* moo */ |
||
24 | |||
25 | struct efs_dir { |
||
26 | unsigned short magic; |
||
27 | unsigned char firstused; |
||
28 | unsigned char slots; |
||
29 | |||
30 | unsigned char space[EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE]; |
||
31 | }; |
||
32 | |||
33 | #define EFS_MAXENTS \ |
||
34 | ((EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE) / \ |
||
35 | (EFS_DENTSIZE + sizeof(char))) |
||
36 | |||
37 | #define EFS_SLOTAT(dir, slot) EFS_REALOFF((dir)->space[slot]) |
||
38 | |||
39 | #define EFS_REALOFF(offset) ((offset << 1)) |
||
40 | |||
41 | #endif /* __EFS_DIR_H__ */ |
||
42 |