Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / include / linux / udf_fs_i.h
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
30 typedef struct
31 {
32         __u32                   extLength;
33         __u32                   extPosition;
34 } __attribute__ ((packed)) short_ad;
35
36 typedef struct
37 {
38         __u32                   extLength;
39         lb_addr                 extLocation;
40         __u8                    impUse[6];
41 } __attribute__ ((packed)) long_ad;
42 #endif
43
44 struct udf_inode_info
45 {
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
61         {
62                 short_ad        *i_sad;
63                 long_ad         *i_lad;
64                 __u8            *i_data;
65         } i_ext;
66         struct inode vfs_inode;
67 };
68
69 #endif
70
71 /* exported IOCTLs, we have 'l', 0x40-0x7f */
72
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)
77
78 #endif /* _UDF_FS_I_H */