udf_fs_i.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. #ifndef _UDF_FS_I_H
  18. #define _UDF_FS_I_H 1
  19. #ifdef __KERNEL__
  20. #ifndef _ECMA_167_H
  21. typedef struct
  22. {
  23. __u32 logicalBlockNum;
  24. __u16 partitionReferenceNum;
  25. } __attribute__ ((packed)) lb_addr;
  26. typedef struct
  27. {
  28. __u32 extLength;
  29. __u32 extPosition;
  30. } __attribute__ ((packed)) short_ad;
  31. typedef struct
  32. {
  33. __u32 extLength;
  34. lb_addr extLocation;
  35. __u8 impUse[6];
  36. } __attribute__ ((packed)) long_ad;
  37. #endif
  38. struct udf_inode_info
  39. {
  40. struct timespec i_crtime;
  41. /* Physical address of inode */
  42. kernel_lb_addr i_location;
  43. __u64 i_unique;
  44. __u32 i_lenEAttr;
  45. __u32 i_lenAlloc;
  46. __u64 i_lenExtents;
  47. __u32 i_next_alloc_block;
  48. __u32 i_next_alloc_goal;
  49. unsigned i_alloc_type : 3;
  50. unsigned i_efe : 1;
  51. unsigned i_use : 1;
  52. unsigned i_strat4096 : 1;
  53. unsigned reserved : 26;
  54. union
  55. {
  56. short_ad *i_sad;
  57. long_ad *i_lad;
  58. __u8 *i_data;
  59. } i_ext;
  60. struct inode vfs_inode;
  61. };
  62. #endif
  63. /* exported IOCTLs, we have 'l', 0x40-0x7f */
  64. #define UDF_GETEASIZE _IOR('l', 0x40, int)
  65. #define UDF_GETEABLOCK _IOR('l', 0x41, void *)
  66. #define UDF_GETVOLIDENT _IOR('l', 0x42, void *)
  67. #define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long)
  68. #endif /* _UDF_FS_I_H */