1 /*
2  * udf_fs_i.h
3  *
4  * This file is intended for the Linux kernel/module.
5  *
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
10  *
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.
16  */
17 
18 #ifndef _UDF_FS_I_H
19 #define _UDF_FS_I_H 1
20 
21 #ifdef __KERNEL__
22 
23 #ifndef _ECMA_167_H
24 typedef struct
25 {
26 	__u32 logicalBlockNum;
27 	__u16 partitionReferenceNum;
28 } __attribute__ ((packed)) lb_addr;
29 #endif
30 
31 struct udf_inode_info
32 {
33 	long i_umtime;
34 	long i_uctime;
35 	long i_crtime;
36 	long i_ucrtime;
37 	/* Physical address of inode */
38 	lb_addr i_location;
39 	__u64 i_unique;
40 	__u32 i_lenEAttr;
41 	__u32 i_lenAlloc;
42 	__u64 i_lenExtents;
43 	__u32 i_next_alloc_block;
44 	__u32 i_next_alloc_goal;
45 	unsigned i_alloc_type : 3;
46 	unsigned i_extended_fe : 1;
47 	unsigned i_strat_4096 : 1;
48 	unsigned i_new_inode : 1;
49 	unsigned reserved : 26;
50 };
51 
52 #endif
53 
54 /* exported IOCTLs, we have 'l', 0x40-0x7f */
55 
56 #define UDF_GETEASIZE   _IOR('l', 0x40, int)
57 #define UDF_GETEABLOCK  _IOR('l', 0x41, void *)
58 #define UDF_GETVOLIDENT _IOR('l', 0x42, void *)
59 #define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long)
60 
61 #endif /* _UDF_FS_I_H */
62