blob: 5be27625e4b034e1d7b4d68a053df8f5f2927f11 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __EFS_DIR_H__
13#define __EFS_DIR_H__
Ben Cheng4b29af02012-03-07 16:14:53 -080014
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080015#define EFS_DIRBSIZE_BITS EFS_BLOCKSIZE_BITS
16#define EFS_DIRBSIZE (1 << EFS_DIRBSIZE_BITS)
Ben Cheng4b29af02012-03-07 16:14:53 -080017
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080018struct efs_dentry {
19 __be32 inode;
20 unsigned char namelen;
21 char name[3];
22};
Ben Cheng4b29af02012-03-07 16:14:53 -080023
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024#define EFS_DENTSIZE (sizeof(struct efs_dentry) - 3 + 1)
25#define EFS_MAXNAMELEN ((1 << (sizeof(char) * 8)) - 1)
Ben Cheng4b29af02012-03-07 16:14:53 -080026
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080027#define EFS_DIRBLK_HEADERSIZE 4
28#define EFS_DIRBLK_MAGIC 0xbeef
Ben Cheng4b29af02012-03-07 16:14:53 -080029
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080030struct efs_dir {
31 __be16 magic;
32 unsigned char firstused;
33 unsigned char slots;
Ben Cheng4b29af02012-03-07 16:14:53 -080034
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080035 unsigned char space[EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE];
36};
Ben Cheng4b29af02012-03-07 16:14:53 -080037
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080038#define EFS_MAXENTS ((EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE) / (EFS_DENTSIZE + sizeof(char)))
Ben Cheng4b29af02012-03-07 16:14:53 -080039
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080040#define EFS_SLOTAT(dir, slot) EFS_REALOFF((dir)->space[slot])
Ben Cheng4b29af02012-03-07 16:14:53 -080041
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080042#define EFS_REALOFF(offset) ((offset << 1))
Ben Cheng4b29af02012-03-07 16:14:53 -080043
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044#endif
Ben Cheng4b29af02012-03-07 16:14:53 -080045