]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - include/linux/udf_fs_i.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6
[mirror_ubuntu-focal-kernel.git] / 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 */