1 #ifndef __UDF_ENDIAN_H 2 #define __UDF_ENDIAN_H 3 4 #include <asm/byteorder.h> 5 #include <linux/string.h> 6 7 static inline kernel_lb_addr lelb_to_cpu(lb_addr in) 8 { 9 kernel_lb_addr out; 10 11 out.logicalBlockNum = le32_to_cpu(in.logicalBlockNum); 12 out.partitionReferenceNum = le16_to_cpu(in.partitionReferenceNum); 13 14 return out; 15 } 16 17 static inline lb_addr cpu_to_lelb(kernel_lb_addr in) 18 { 19 lb_addr out; 20 21 out.logicalBlockNum = cpu_to_le32(in.logicalBlockNum); 22 out.partitionReferenceNum = cpu_to_le16(in.partitionReferenceNum); 23 24 return out; 25 } 26 27 static inline kernel_timestamp lets_to_cpu(timestamp in) 28 { 29 kernel_timestamp out; 30 31 memcpy(&out, &in, sizeof(timestamp)); 32 out.typeAndTimezone = le16_to_cpu(in.typeAndTimezone); 33 out.year = le16_to_cpu(in.year); 34 35 return out; 36 } 37 38 static inline short_ad lesa_to_cpu(short_ad in) 39 { 40 short_ad out; 41 42 out.extLength = le32_to_cpu(in.extLength); 43 out.extPosition = le32_to_cpu(in.extPosition); 44 45 return out; 46 } 47 48 static inline short_ad cpu_to_lesa(short_ad in) 49 { 50 short_ad out; 51 52 out.extLength = cpu_to_le32(in.extLength); 53 out.extPosition = cpu_to_le32(in.extPosition); 54 55 return out; 56 } 57 58 static inline kernel_long_ad lela_to_cpu(long_ad in) 59 { 60 kernel_long_ad out; 61 62 out.extLength = le32_to_cpu(in.extLength); 63 out.extLocation = lelb_to_cpu(in.extLocation); 64 65 return out; 66 } 67 68 static inline long_ad cpu_to_lela(kernel_long_ad in) 69 { 70 long_ad out; 71 72 out.extLength = cpu_to_le32(in.extLength); 73 out.extLocation = cpu_to_lelb(in.extLocation); 74 75 return out; 76 } 77 78 static inline kernel_extent_ad leea_to_cpu(extent_ad in) 79 { 80 kernel_extent_ad out; 81 82 out.extLength = le32_to_cpu(in.extLength); 83 out.extLocation = le32_to_cpu(in.extLocation); 84 85 return out; 86 } 87 88 static inline timestamp cpu_to_lets(kernel_timestamp in) 89 { 90 timestamp out; 91 92 memcpy(&out, &in, sizeof(timestamp)); 93 out.typeAndTimezone = cpu_to_le16(in.typeAndTimezone); 94 out.year = cpu_to_le16(in.year); 95 96 return out; 97 } 98 99 #endif /* __UDF_ENDIAN_H */ 100