blob: 62b15a4214e6608b8b5554ae07de8e3677dd3c0b [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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
24typedef struct
25{
26 __u32 logicalBlockNum;
27 __u16 partitionReferenceNum;
28} __attribute__ ((packed)) lb_addr;
29
30typedef struct
31{
32 __u32 extLength;
33 __u32 extPosition;
34} __attribute__ ((packed)) short_ad;
35
36typedef struct
37{
38 __u32 extLength;
39 lb_addr extLocation;
40 __u8 impUse[6];
41} __attribute__ ((packed)) long_ad;
42#endif
43
44struct 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 */