diff options
Diffstat (limited to 'include/linux/udf_fs_i.h')
-rw-r--r-- | include/linux/udf_fs_i.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/include/linux/udf_fs_i.h b/include/linux/udf_fs_i.h new file mode 100644 index 0000000..62b15a4 --- /dev/null +++ b/include/linux/udf_fs_i.h @@ -0,0 +1,78 @@ +/* + * udf_fs_i.h + * + * This file is intended for the Linux kernel/module. + * + * CONTACTS + * E-mail regarding any portion of the Linux UDF file system should be + * directed to the development team mailing list (run by majordomo): + * linux_udf@hpesjro.fc.hp.com + * + * COPYRIGHT + * This file is distributed under the terms of the GNU General Public + * License (GPL). Copies of the GPL can be obtained from: + * ftp://prep.ai.mit.edu/pub/gnu/GPL + * Each contributing author retains all rights to their own work. + */ + +#ifndef _UDF_FS_I_H +#define _UDF_FS_I_H 1 + +#ifdef __KERNEL__ + +#ifndef _ECMA_167_H +typedef struct +{ + __u32 logicalBlockNum; + __u16 partitionReferenceNum; +} __attribute__ ((packed)) lb_addr; + +typedef struct +{ + __u32 extLength; + __u32 extPosition; +} __attribute__ ((packed)) short_ad; + +typedef struct +{ + __u32 extLength; + lb_addr extLocation; + __u8 impUse[6]; +} __attribute__ ((packed)) long_ad; +#endif + +struct udf_inode_info +{ + struct timespec i_crtime; + /* Physical address of inode */ + kernel_lb_addr i_location; + __u64 i_unique; + __u32 i_lenEAttr; + __u32 i_lenAlloc; + __u64 i_lenExtents; + __u32 i_next_alloc_block; + __u32 i_next_alloc_goal; + unsigned i_alloc_type : 3; + unsigned i_efe : 1; + unsigned i_use : 1; + unsigned i_strat4096 : 1; + unsigned reserved : 26; + union + { + short_ad *i_sad; + long_ad *i_lad; + __u8 *i_data; + } i_ext; + struct inode vfs_inode; +}; + +#endif + +/* exported IOCTLs, we have 'l', 0x40-0x7f */ + +#define UDF_GETEASIZE _IOR('l', 0x40, int) +#define UDF_GETEABLOCK _IOR('l', 0x41, void *) +#define UDF_GETVOLIDENT _IOR('l', 0x42, void *) +#define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long) + +#endif /* _UDF_FS_I_H */ |