Subversion Repositories shark

Rev

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