Linux v2.6.15-rc7
[pohmelfs.git] / include / linux / udf_fs_i.h
blob62b15a4214e6608b8b5554ae07de8e3677dd3c0b
1 /*
2 * udf_fs_i.h
4 * This file is intended for the Linux kernel/module.
6 * CONTACTS
7 * E-mail regarding any portion of the Linux UDF file system should be
8 * directed to the development team mailing list (run by majordomo):
9 * linux_udf@hpesjro.fc.hp.com
11 * COPYRIGHT
12 * This file is distributed under the terms of the GNU General Public
13 * License (GPL). Copies of the GPL can be obtained from:
14 * ftp://prep.ai.mit.edu/pub/gnu/GPL
15 * Each contributing author retains all rights to their own work.
18 #ifndef _UDF_FS_I_H
19 #define _UDF_FS_I_H 1
21 #ifdef __KERNEL__
23 #ifndef _ECMA_167_H
24 typedef struct
26 __u32 logicalBlockNum;
27 __u16 partitionReferenceNum;
28 } __attribute__ ((packed)) lb_addr;
30 typedef struct
32 __u32 extLength;
33 __u32 extPosition;
34 } __attribute__ ((packed)) short_ad;
36 typedef struct
38 __u32 extLength;
39 lb_addr extLocation;
40 __u8 impUse[6];
41 } __attribute__ ((packed)) long_ad;
42 #endif
44 struct udf_inode_info
46 struct timespec i_crtime;
47 /* Physical address of inode */
48 kernel_lb_addr i_location;
49 __u64 i_unique;
50 __u32 i_lenEAttr;
51 __u32 i_lenAlloc;
52 __u64 i_lenExtents;
53 __u32 i_next_alloc_block;
54 __u32 i_next_alloc_goal;
55 unsigned i_alloc_type : 3;
56 unsigned i_efe : 1;
57 unsigned i_use : 1;
58 unsigned i_strat4096 : 1;
59 unsigned reserved : 26;
60 union
62 short_ad *i_sad;
63 long_ad *i_lad;
64 __u8 *i_data;
65 } i_ext;
66 struct inode vfs_inode;
69 #endif
71 /* exported IOCTLs, we have 'l', 0x40-0x7f */
73 #define UDF_GETEASIZE _IOR('l', 0x40, int)
74 #define UDF_GETEABLOCK _IOR('l', 0x41, void *)
75 #define UDF_GETVOLIDENT _IOR('l', 0x42, void *)
76 #define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long)
78 #endif /* _UDF_FS_I_H */