Guest User

Untitled

a guest
Oct 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.51 KB | None | 0 0
  1. /* automatically generated by rust-bindgen */
  2.  
  3. #[repr(C, packed)]
  4. #[derive(Copy)]
  5. pub struct header_t {
  6. pub __bindgen_anon_1: header_t__bindgen_ty_1,
  7. }
  8. #[repr(C)]
  9. #[derive(Copy)]
  10. pub union header_t__bindgen_ty_1 {
  11. pub __bindgen_anon_1: header_t__bindgen_ty_1__bindgen_ty_1,
  12. pub unmap: [::std::os::raw::c_uchar; 6usize],
  13. _bindgen_union_align: [u8; 6usize],
  14. }
  15. #[repr(C, packed)]
  16. #[derive(Debug, Copy)]
  17. pub struct header_t__bindgen_ty_1__bindgen_ty_1 {
  18. pub _bitfield_1: [u16; 2usize],
  19. pub cmd: ::std::os::raw::c_uchar,
  20. pub size: ::std::os::raw::c_uchar,
  21. }
  22. #[test]
  23. fn bindgen_test_layout_header_t__bindgen_ty_1__bindgen_ty_1() {
  24. assert_eq!(::std::mem::size_of::<header_t__bindgen_ty_1__bindgen_ty_1>() ,
  25. 6usize , concat ! (
  26. "Size of: " , stringify ! (
  27. header_t__bindgen_ty_1__bindgen_ty_1 ) ));
  28. assert_eq! (::std::mem::align_of::<header_t__bindgen_ty_1__bindgen_ty_1>()
  29. , 1usize , concat ! (
  30. "Alignment of " , stringify ! (
  31. header_t__bindgen_ty_1__bindgen_ty_1 ) ));
  32. assert_eq! (unsafe {
  33. & ( * ( 0 as * const header_t__bindgen_ty_1__bindgen_ty_1 ) )
  34. . cmd as * const _ as usize } , 4usize , concat ! (
  35. "Alignment of field: " , stringify ! (
  36. header_t__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! (
  37. cmd ) ));
  38. assert_eq! (unsafe {
  39. & ( * ( 0 as * const header_t__bindgen_ty_1__bindgen_ty_1 ) )
  40. . size as * const _ as usize } , 5usize , concat ! (
  41. "Alignment of field: " , stringify ! (
  42. header_t__bindgen_ty_1__bindgen_ty_1 ) , "::" , stringify ! (
  43. size ) ));
  44. }
  45. impl Clone for header_t__bindgen_ty_1__bindgen_ty_1 {
  46. fn clone(&self) -> Self { *self }
  47. }
  48. impl header_t__bindgen_ty_1__bindgen_ty_1 {
  49. #[inline]
  50. pub fn protocol(&self) -> ::std::os::raw::c_ushort {
  51. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  52. unsafe {
  53. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  54. *const u8,
  55. &mut unit_field_val as *mut u32 as
  56. *mut u8,
  57. ::std::mem::size_of::<u32>())
  58. };
  59. let mask = 15u64 as u32;
  60. let val = (unit_field_val & mask) >> 0usize;
  61. unsafe { ::std::mem::transmute(val as u16) }
  62. }
  63. #[inline]
  64. pub fn set_protocol(&mut self, val: ::std::os::raw::c_ushort) {
  65. let mask = 15u64 as u32;
  66. let val = val as u16 as u32;
  67. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  68. unsafe {
  69. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  70. *const u8,
  71. &mut unit_field_val as *mut u32 as
  72. *mut u8,
  73. ::std::mem::size_of::<u32>())
  74. };
  75. unit_field_val &= !mask;
  76. unit_field_val |= (val << 0usize) & mask;
  77. unsafe {
  78. ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
  79. *const u8,
  80. &mut self._bitfield_1 as *mut _ as
  81. *mut u8,
  82. ::std::mem::size_of::<u32>());
  83. }
  84. }
  85. #[inline]
  86. pub fn target(&self) -> ::std::os::raw::c_ushort {
  87. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  88. unsafe {
  89. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  90. *const u8,
  91. &mut unit_field_val as *mut u32 as
  92. *mut u8,
  93. ::std::mem::size_of::<u32>())
  94. };
  95. let mask = 65520u64 as u32;
  96. let val = (unit_field_val & mask) >> 4usize;
  97. unsafe { ::std::mem::transmute(val as u16) }
  98. }
  99. #[inline]
  100. pub fn set_target(&mut self, val: ::std::os::raw::c_ushort) {
  101. let mask = 65520u64 as u32;
  102. let val = val as u16 as u32;
  103. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  104. unsafe {
  105. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  106. *const u8,
  107. &mut unit_field_val as *mut u32 as
  108. *mut u8,
  109. ::std::mem::size_of::<u32>())
  110. };
  111. unit_field_val &= !mask;
  112. unit_field_val |= (val << 4usize) & mask;
  113. unsafe {
  114. ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
  115. *const u8,
  116. &mut self._bitfield_1 as *mut _ as
  117. *mut u8,
  118. ::std::mem::size_of::<u32>());
  119. }
  120. }
  121. #[inline]
  122. pub fn target_mode(&self) -> ::std::os::raw::c_ushort {
  123. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  124. unsafe {
  125. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  126. *const u8,
  127. &mut unit_field_val as *mut u32 as
  128. *mut u8,
  129. ::std::mem::size_of::<u32>())
  130. };
  131. let mask = 983040u64 as u32;
  132. let val = (unit_field_val & mask) >> 16usize;
  133. unsafe { ::std::mem::transmute(val as u16) }
  134. }
  135. #[inline]
  136. pub fn set_target_mode(&mut self, val: ::std::os::raw::c_ushort) {
  137. let mask = 983040u64 as u32;
  138. let val = val as u16 as u32;
  139. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  140. unsafe {
  141. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  142. *const u8,
  143. &mut unit_field_val as *mut u32 as
  144. *mut u8,
  145. ::std::mem::size_of::<u32>())
  146. };
  147. unit_field_val &= !mask;
  148. unit_field_val |= (val << 16usize) & mask;
  149. unsafe {
  150. ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
  151. *const u8,
  152. &mut self._bitfield_1 as *mut _ as
  153. *mut u8,
  154. ::std::mem::size_of::<u32>());
  155. }
  156. }
  157. #[inline]
  158. pub fn source(&self) -> ::std::os::raw::c_ushort {
  159. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  160. unsafe {
  161. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  162. *const u8,
  163. &mut unit_field_val as *mut u32 as
  164. *mut u8,
  165. ::std::mem::size_of::<u32>())
  166. };
  167. let mask = 4293918720u64 as u32;
  168. let val = (unit_field_val & mask) >> 20usize;
  169. unsafe { ::std::mem::transmute(val as u16) }
  170. }
  171. #[inline]
  172. pub fn set_source(&mut self, val: ::std::os::raw::c_ushort) {
  173. let mask = 4293918720u64 as u32;
  174. let val = val as u16 as u32;
  175. let mut unit_field_val: u32 = unsafe { ::std::mem::uninitialized() };
  176. unsafe {
  177. ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as *const _ as
  178. *const u8,
  179. &mut unit_field_val as *mut u32 as
  180. *mut u8,
  181. ::std::mem::size_of::<u32>())
  182. };
  183. unit_field_val &= !mask;
  184. unit_field_val |= (val << 20usize) & mask;
  185. unsafe {
  186. ::std::ptr::copy_nonoverlapping(&unit_field_val as *const _ as
  187. *const u8,
  188. &mut self._bitfield_1 as *mut _ as
  189. *mut u8,
  190. ::std::mem::size_of::<u32>());
  191. }
  192. }
  193. #[inline]
  194. pub fn new_bitfield_1(protocol: ::std::os::raw::c_ushort,
  195. target: ::std::os::raw::c_ushort,
  196. target_mode: ::std::os::raw::c_ushort,
  197. source: ::std::os::raw::c_ushort) -> u32 {
  198. ({
  199. ({
  200. ({
  201. ({ 0 } |
  202. ((protocol as u16 as u32) << 0usize) &
  203. (15u64 as u32))
  204. } | ((target as u16 as u32) << 4usize) & (65520u64 as u32))
  205. } |
  206. ((target_mode as u16 as u32) << 16usize) &
  207. (983040u64 as u32))
  208. } | ((source as u16 as u32) << 20usize) & (4293918720u64 as u32))
  209. }
  210. }
  211. #[test]
  212. fn bindgen_test_layout_header_t__bindgen_ty_1() {
  213. assert_eq!(::std::mem::size_of::<header_t__bindgen_ty_1>() , 6usize ,
  214. concat ! ( "Size of: " , stringify ! ( header_t__bindgen_ty_1 )
  215. ));
  216. assert_eq! (::std::mem::align_of::<header_t__bindgen_ty_1>() , 1usize ,
  217. concat ! (
  218. "Alignment of " , stringify ! ( header_t__bindgen_ty_1 ) ));
  219. assert_eq! (unsafe {
  220. & ( * ( 0 as * const header_t__bindgen_ty_1 ) ) . unmap as *
  221. const _ as usize } , 0usize , concat ! (
  222. "Alignment of field: " , stringify ! ( header_t__bindgen_ty_1
  223. ) , "::" , stringify ! ( unmap ) ));
  224. }
  225. impl Clone for header_t__bindgen_ty_1 {
  226. fn clone(&self) -> Self { *self }
  227. }
  228. #[test]
  229. fn bindgen_test_layout_header_t() {
  230. assert_eq!(::std::mem::size_of::<header_t>() , 6usize , concat ! (
  231. "Size of: " , stringify ! ( header_t ) ));
  232. assert_eq! (::std::mem::align_of::<header_t>() , 1usize , concat ! (
  233. "Alignment of " , stringify ! ( header_t ) ));
  234. }
  235. impl Clone for header_t {
  236. fn clone(&self) -> Self { *self }
  237. }
Add Comment
Please, Sign In to add comment