bindings.rs 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178
  1. #[repr(C)]
  2. #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
  3. pub struct __BindgenBitfieldUnit<Storage> {
  4. storage: Storage,
  5. }
  6. impl<Storage> __BindgenBitfieldUnit<Storage> {
  7. #[inline]
  8. pub const fn new(storage: Storage) -> Self {
  9. Self { storage }
  10. }
  11. }
  12. impl<Storage> __BindgenBitfieldUnit<Storage>
  13. where
  14. Storage: AsRef<[u8]> + AsMut<[u8]>,
  15. {
  16. #[inline]
  17. pub fn get_bit(&self, index: usize) -> bool {
  18. debug_assert!(index / 8 < self.storage.as_ref().len());
  19. let byte_index = index / 8;
  20. let byte = self.storage.as_ref()[byte_index];
  21. let bit_index = if cfg!(target_endian = "big") {
  22. 7 - (index % 8)
  23. } else {
  24. index % 8
  25. };
  26. let mask = 1 << bit_index;
  27. byte & mask == mask
  28. }
  29. #[inline]
  30. pub fn set_bit(&mut self, index: usize, val: bool) {
  31. debug_assert!(index / 8 < self.storage.as_ref().len());
  32. let byte_index = index / 8;
  33. let byte = &mut self.storage.as_mut()[byte_index];
  34. let bit_index = if cfg!(target_endian = "big") {
  35. 7 - (index % 8)
  36. } else {
  37. index % 8
  38. };
  39. let mask = 1 << bit_index;
  40. if val {
  41. *byte |= mask;
  42. } else {
  43. *byte &= !mask;
  44. }
  45. }
  46. #[inline]
  47. pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
  48. debug_assert!(bit_width <= 64);
  49. debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
  50. debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
  51. let mut val = 0;
  52. for i in 0..(bit_width as usize) {
  53. if self.get_bit(i + bit_offset) {
  54. let index = if cfg!(target_endian = "big") {
  55. bit_width as usize - 1 - i
  56. } else {
  57. i
  58. };
  59. val |= 1 << index;
  60. }
  61. }
  62. val
  63. }
  64. #[inline]
  65. pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
  66. debug_assert!(bit_width <= 64);
  67. debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
  68. debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
  69. for i in 0..(bit_width as usize) {
  70. let mask = 1 << i;
  71. let val_bit_is_set = val & mask == mask;
  72. let index = if cfg!(target_endian = "big") {
  73. bit_width as usize - 1 - i
  74. } else {
  75. i
  76. };
  77. self.set_bit(index + bit_offset, val_bit_is_set);
  78. }
  79. }
  80. }
  81. pub const BPF_LD: u32 = 0;
  82. pub const BPF_LDX: u32 = 1;
  83. pub const BPF_ST: u32 = 2;
  84. pub const BPF_STX: u32 = 3;
  85. pub const BPF_ALU: u32 = 4;
  86. pub const BPF_JMP: u32 = 5;
  87. pub const BPF_RET: u32 = 6;
  88. pub const BPF_MISC: u32 = 7;
  89. pub const BPF_W: u32 = 0;
  90. pub const BPF_H: u32 = 8;
  91. pub const BPF_B: u32 = 16;
  92. pub const BPF_IMM: u32 = 0;
  93. pub const BPF_ABS: u32 = 32;
  94. pub const BPF_IND: u32 = 64;
  95. pub const BPF_MEM: u32 = 96;
  96. pub const BPF_LEN: u32 = 128;
  97. pub const BPF_MSH: u32 = 160;
  98. pub const BPF_ADD: u32 = 0;
  99. pub const BPF_SUB: u32 = 16;
  100. pub const BPF_MUL: u32 = 32;
  101. pub const BPF_DIV: u32 = 48;
  102. pub const BPF_OR: u32 = 64;
  103. pub const BPF_AND: u32 = 80;
  104. pub const BPF_LSH: u32 = 96;
  105. pub const BPF_RSH: u32 = 112;
  106. pub const BPF_NEG: u32 = 128;
  107. pub const BPF_MOD: u32 = 144;
  108. pub const BPF_XOR: u32 = 160;
  109. pub const BPF_JA: u32 = 0;
  110. pub const BPF_JEQ: u32 = 16;
  111. pub const BPF_JGT: u32 = 32;
  112. pub const BPF_JGE: u32 = 48;
  113. pub const BPF_JSET: u32 = 64;
  114. pub const BPF_K: u32 = 0;
  115. pub const BPF_X: u32 = 8;
  116. pub const BPF_MAXINSNS: u32 = 4096;
  117. pub const BPF_JMP32: u32 = 6;
  118. pub const BPF_ALU64: u32 = 7;
  119. pub const BPF_DW: u32 = 24;
  120. pub const BPF_ATOMIC: u32 = 192;
  121. pub const BPF_XADD: u32 = 192;
  122. pub const BPF_MOV: u32 = 176;
  123. pub const BPF_ARSH: u32 = 192;
  124. pub const BPF_END: u32 = 208;
  125. pub const BPF_TO_LE: u32 = 0;
  126. pub const BPF_TO_BE: u32 = 8;
  127. pub const BPF_FROM_LE: u32 = 0;
  128. pub const BPF_FROM_BE: u32 = 8;
  129. pub const BPF_JNE: u32 = 80;
  130. pub const BPF_JLT: u32 = 160;
  131. pub const BPF_JLE: u32 = 176;
  132. pub const BPF_JSGT: u32 = 96;
  133. pub const BPF_JSGE: u32 = 112;
  134. pub const BPF_JSLT: u32 = 192;
  135. pub const BPF_JSLE: u32 = 208;
  136. pub const BPF_CALL: u32 = 128;
  137. pub const BPF_EXIT: u32 = 144;
  138. pub const BPF_FETCH: u32 = 1;
  139. pub const BPF_XCHG: u32 = 225;
  140. pub const BPF_CMPXCHG: u32 = 241;
  141. pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
  142. pub const BPF_F_ALLOW_MULTI: u32 = 2;
  143. pub const BPF_F_REPLACE: u32 = 4;
  144. pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
  145. pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
  146. pub const BPF_F_TEST_RND_HI32: u32 = 4;
  147. pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
  148. pub const BPF_F_SLEEPABLE: u32 = 16;
  149. pub const BPF_PSEUDO_MAP_FD: u32 = 1;
  150. pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
  151. pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
  152. pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
  153. pub const BPF_PSEUDO_BTF_ID: u32 = 3;
  154. pub const BPF_PSEUDO_FUNC: u32 = 4;
  155. pub const BPF_PSEUDO_CALL: u32 = 1;
  156. pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
  157. pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
  158. pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
  159. pub const BPF_BUILD_ID_SIZE: u32 = 20;
  160. pub const BPF_OBJ_NAME_LEN: u32 = 16;
  161. pub const BPF_TAG_SIZE: u32 = 8;
  162. pub const SOL_SOCKET: u32 = 1;
  163. pub const SO_DEBUG: u32 = 1;
  164. pub const SO_REUSEADDR: u32 = 2;
  165. pub const SO_TYPE: u32 = 3;
  166. pub const SO_ERROR: u32 = 4;
  167. pub const SO_DONTROUTE: u32 = 5;
  168. pub const SO_BROADCAST: u32 = 6;
  169. pub const SO_SNDBUF: u32 = 7;
  170. pub const SO_RCVBUF: u32 = 8;
  171. pub const SO_SNDBUFFORCE: u32 = 32;
  172. pub const SO_RCVBUFFORCE: u32 = 33;
  173. pub const SO_KEEPALIVE: u32 = 9;
  174. pub const SO_OOBINLINE: u32 = 10;
  175. pub const SO_NO_CHECK: u32 = 11;
  176. pub const SO_PRIORITY: u32 = 12;
  177. pub const SO_LINGER: u32 = 13;
  178. pub const SO_BSDCOMPAT: u32 = 14;
  179. pub const SO_REUSEPORT: u32 = 15;
  180. pub const SO_PASSCRED: u32 = 16;
  181. pub const SO_PEERCRED: u32 = 17;
  182. pub const SO_RCVLOWAT: u32 = 18;
  183. pub const SO_SNDLOWAT: u32 = 19;
  184. pub const SO_RCVTIMEO_OLD: u32 = 20;
  185. pub const SO_SNDTIMEO_OLD: u32 = 21;
  186. pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
  187. pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
  188. pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
  189. pub const SO_BINDTODEVICE: u32 = 25;
  190. pub const SO_ATTACH_FILTER: u32 = 26;
  191. pub const SO_DETACH_FILTER: u32 = 27;
  192. pub const SO_GET_FILTER: u32 = 26;
  193. pub const SO_PEERNAME: u32 = 28;
  194. pub const SO_ACCEPTCONN: u32 = 30;
  195. pub const SO_PEERSEC: u32 = 31;
  196. pub const SO_PASSSEC: u32 = 34;
  197. pub const SO_MARK: u32 = 36;
  198. pub const SO_PROTOCOL: u32 = 38;
  199. pub const SO_DOMAIN: u32 = 39;
  200. pub const SO_RXQ_OVFL: u32 = 40;
  201. pub const SO_WIFI_STATUS: u32 = 41;
  202. pub const SO_PEEK_OFF: u32 = 42;
  203. pub const SO_NOFCS: u32 = 43;
  204. pub const SO_LOCK_FILTER: u32 = 44;
  205. pub const SO_SELECT_ERR_QUEUE: u32 = 45;
  206. pub const SO_BUSY_POLL: u32 = 46;
  207. pub const SO_MAX_PACING_RATE: u32 = 47;
  208. pub const SO_BPF_EXTENSIONS: u32 = 48;
  209. pub const SO_INCOMING_CPU: u32 = 49;
  210. pub const SO_ATTACH_BPF: u32 = 50;
  211. pub const SO_DETACH_BPF: u32 = 27;
  212. pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
  213. pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
  214. pub const SO_CNX_ADVICE: u32 = 53;
  215. pub const SO_MEMINFO: u32 = 55;
  216. pub const SO_INCOMING_NAPI_ID: u32 = 56;
  217. pub const SO_COOKIE: u32 = 57;
  218. pub const SO_PEERGROUPS: u32 = 59;
  219. pub const SO_ZEROCOPY: u32 = 60;
  220. pub const SO_TXTIME: u32 = 61;
  221. pub const SO_BINDTOIFINDEX: u32 = 62;
  222. pub const SO_TIMESTAMP_OLD: u32 = 29;
  223. pub const SO_TIMESTAMPNS_OLD: u32 = 35;
  224. pub const SO_TIMESTAMPING_OLD: u32 = 37;
  225. pub const SO_TIMESTAMP_NEW: u32 = 63;
  226. pub const SO_TIMESTAMPNS_NEW: u32 = 64;
  227. pub const SO_TIMESTAMPING_NEW: u32 = 65;
  228. pub const SO_RCVTIMEO_NEW: u32 = 66;
  229. pub const SO_SNDTIMEO_NEW: u32 = 67;
  230. pub const SO_DETACH_REUSEPORT_BPF: u32 = 68;
  231. pub const SO_PREFER_BUSY_POLL: u32 = 69;
  232. pub const SO_BUSY_POLL_BUDGET: u32 = 70;
  233. pub const SO_NETNS_COOKIE: u32 = 71;
  234. pub const SO_TIMESTAMP: u32 = 29;
  235. pub const SO_TIMESTAMPNS: u32 = 35;
  236. pub const SO_TIMESTAMPING: u32 = 37;
  237. pub const SO_RCVTIMEO: u32 = 20;
  238. pub const SO_SNDTIMEO: u32 = 21;
  239. pub const TC_ACT_UNSPEC: i32 = -1;
  240. pub const TC_ACT_OK: u32 = 0;
  241. pub const TC_ACT_RECLASSIFY: u32 = 1;
  242. pub const TC_ACT_SHOT: u32 = 2;
  243. pub const TC_ACT_PIPE: u32 = 3;
  244. pub const TC_ACT_STOLEN: u32 = 4;
  245. pub const TC_ACT_QUEUED: u32 = 5;
  246. pub const TC_ACT_REPEAT: u32 = 6;
  247. pub const TC_ACT_REDIRECT: u32 = 7;
  248. pub const TC_ACT_TRAP: u32 = 8;
  249. pub const TC_ACT_VALUE_MAX: u32 = 8;
  250. pub const TC_ACT_EXT_VAL_MASK: u32 = 268435455;
  251. pub type __u8 = ::aya_bpf_cty::c_uchar;
  252. pub type __u16 = ::aya_bpf_cty::c_ushort;
  253. pub type __s32 = ::aya_bpf_cty::c_int;
  254. pub type __u32 = ::aya_bpf_cty::c_uint;
  255. pub type __s64 = ::aya_bpf_cty::c_longlong;
  256. pub type __u64 = ::aya_bpf_cty::c_ulonglong;
  257. pub type __be16 = __u16;
  258. pub type __be32 = __u32;
  259. pub type __wsum = __u32;
  260. pub const BPF_REG_0: ::aya_bpf_cty::c_uint = 0;
  261. pub const BPF_REG_1: ::aya_bpf_cty::c_uint = 1;
  262. pub const BPF_REG_2: ::aya_bpf_cty::c_uint = 2;
  263. pub const BPF_REG_3: ::aya_bpf_cty::c_uint = 3;
  264. pub const BPF_REG_4: ::aya_bpf_cty::c_uint = 4;
  265. pub const BPF_REG_5: ::aya_bpf_cty::c_uint = 5;
  266. pub const BPF_REG_6: ::aya_bpf_cty::c_uint = 6;
  267. pub const BPF_REG_7: ::aya_bpf_cty::c_uint = 7;
  268. pub const BPF_REG_8: ::aya_bpf_cty::c_uint = 8;
  269. pub const BPF_REG_9: ::aya_bpf_cty::c_uint = 9;
  270. pub const BPF_REG_10: ::aya_bpf_cty::c_uint = 10;
  271. pub const __MAX_BPF_REG: ::aya_bpf_cty::c_uint = 11;
  272. pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
  273. pub mod bpf_map_type {
  274. pub type Type = ::aya_bpf_cty::c_uint;
  275. pub const BPF_MAP_TYPE_UNSPEC: Type = 0;
  276. pub const BPF_MAP_TYPE_HASH: Type = 1;
  277. pub const BPF_MAP_TYPE_ARRAY: Type = 2;
  278. pub const BPF_MAP_TYPE_PROG_ARRAY: Type = 3;
  279. pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: Type = 4;
  280. pub const BPF_MAP_TYPE_PERCPU_HASH: Type = 5;
  281. pub const BPF_MAP_TYPE_PERCPU_ARRAY: Type = 6;
  282. pub const BPF_MAP_TYPE_STACK_TRACE: Type = 7;
  283. pub const BPF_MAP_TYPE_CGROUP_ARRAY: Type = 8;
  284. pub const BPF_MAP_TYPE_LRU_HASH: Type = 9;
  285. pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: Type = 10;
  286. pub const BPF_MAP_TYPE_LPM_TRIE: Type = 11;
  287. pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: Type = 12;
  288. pub const BPF_MAP_TYPE_HASH_OF_MAPS: Type = 13;
  289. pub const BPF_MAP_TYPE_DEVMAP: Type = 14;
  290. pub const BPF_MAP_TYPE_SOCKMAP: Type = 15;
  291. pub const BPF_MAP_TYPE_CPUMAP: Type = 16;
  292. pub const BPF_MAP_TYPE_XSKMAP: Type = 17;
  293. pub const BPF_MAP_TYPE_SOCKHASH: Type = 18;
  294. pub const BPF_MAP_TYPE_CGROUP_STORAGE: Type = 19;
  295. pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: Type = 20;
  296. pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: Type = 21;
  297. pub const BPF_MAP_TYPE_QUEUE: Type = 22;
  298. pub const BPF_MAP_TYPE_STACK: Type = 23;
  299. pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24;
  300. pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25;
  301. pub const BPF_MAP_TYPE_STRUCT_OPS: Type = 26;
  302. pub const BPF_MAP_TYPE_RINGBUF: Type = 27;
  303. pub const BPF_MAP_TYPE_INODE_STORAGE: Type = 28;
  304. pub const BPF_MAP_TYPE_TASK_STORAGE: Type = 29;
  305. }
  306. pub const BPF_ANY: ::aya_bpf_cty::c_uint = 0;
  307. pub const BPF_NOEXIST: ::aya_bpf_cty::c_uint = 1;
  308. pub const BPF_EXIST: ::aya_bpf_cty::c_uint = 2;
  309. pub const BPF_F_LOCK: ::aya_bpf_cty::c_uint = 4;
  310. pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
  311. pub const BPF_F_NO_PREALLOC: ::aya_bpf_cty::c_uint = 1;
  312. pub const BPF_F_NO_COMMON_LRU: ::aya_bpf_cty::c_uint = 2;
  313. pub const BPF_F_NUMA_NODE: ::aya_bpf_cty::c_uint = 4;
  314. pub const BPF_F_RDONLY: ::aya_bpf_cty::c_uint = 8;
  315. pub const BPF_F_WRONLY: ::aya_bpf_cty::c_uint = 16;
  316. pub const BPF_F_STACK_BUILD_ID: ::aya_bpf_cty::c_uint = 32;
  317. pub const BPF_F_ZERO_SEED: ::aya_bpf_cty::c_uint = 64;
  318. pub const BPF_F_RDONLY_PROG: ::aya_bpf_cty::c_uint = 128;
  319. pub const BPF_F_WRONLY_PROG: ::aya_bpf_cty::c_uint = 256;
  320. pub const BPF_F_CLONE: ::aya_bpf_cty::c_uint = 512;
  321. pub const BPF_F_MMAPABLE: ::aya_bpf_cty::c_uint = 1024;
  322. pub const BPF_F_PRESERVE_ELEMS: ::aya_bpf_cty::c_uint = 2048;
  323. pub const BPF_F_INNER_MAP: ::aya_bpf_cty::c_uint = 4096;
  324. pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
  325. pub const BPF_F_RECOMPUTE_CSUM: ::aya_bpf_cty::c_uint = 1;
  326. pub const BPF_F_INVALIDATE_HASH: ::aya_bpf_cty::c_uint = 2;
  327. pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
  328. pub const BPF_F_HDR_FIELD_MASK: ::aya_bpf_cty::c_uint = 15;
  329. pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
  330. pub const BPF_F_PSEUDO_HDR: ::aya_bpf_cty::c_uint = 16;
  331. pub const BPF_F_MARK_MANGLED_0: ::aya_bpf_cty::c_uint = 32;
  332. pub const BPF_F_MARK_ENFORCE: ::aya_bpf_cty::c_uint = 64;
  333. pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
  334. pub const BPF_F_INGRESS: ::aya_bpf_cty::c_uint = 1;
  335. pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
  336. pub const BPF_F_TUNINFO_IPV6: ::aya_bpf_cty::c_uint = 1;
  337. pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
  338. pub const BPF_F_SKIP_FIELD_MASK: ::aya_bpf_cty::c_uint = 255;
  339. pub const BPF_F_USER_STACK: ::aya_bpf_cty::c_uint = 256;
  340. pub const BPF_F_FAST_STACK_CMP: ::aya_bpf_cty::c_uint = 512;
  341. pub const BPF_F_REUSE_STACKID: ::aya_bpf_cty::c_uint = 1024;
  342. pub const BPF_F_USER_BUILD_ID: ::aya_bpf_cty::c_uint = 2048;
  343. pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
  344. pub const BPF_F_ZERO_CSUM_TX: ::aya_bpf_cty::c_uint = 2;
  345. pub const BPF_F_DONT_FRAGMENT: ::aya_bpf_cty::c_uint = 4;
  346. pub const BPF_F_SEQ_NUMBER: ::aya_bpf_cty::c_uint = 8;
  347. pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
  348. pub const BPF_F_INDEX_MASK: ::aya_bpf_cty::c_ulong = 4294967295;
  349. pub const BPF_F_CURRENT_CPU: ::aya_bpf_cty::c_ulong = 4294967295;
  350. pub const BPF_F_CTXLEN_MASK: ::aya_bpf_cty::c_ulong = 4503595332403200;
  351. pub type _bindgen_ty_11 = ::aya_bpf_cty::c_ulong;
  352. pub const BPF_F_CURRENT_NETNS: ::aya_bpf_cty::c_int = -1;
  353. pub type _bindgen_ty_12 = ::aya_bpf_cty::c_int;
  354. pub const BPF_CSUM_LEVEL_QUERY: ::aya_bpf_cty::c_uint = 0;
  355. pub const BPF_CSUM_LEVEL_INC: ::aya_bpf_cty::c_uint = 1;
  356. pub const BPF_CSUM_LEVEL_DEC: ::aya_bpf_cty::c_uint = 2;
  357. pub const BPF_CSUM_LEVEL_RESET: ::aya_bpf_cty::c_uint = 3;
  358. pub type _bindgen_ty_13 = ::aya_bpf_cty::c_uint;
  359. pub const BPF_F_ADJ_ROOM_FIXED_GSO: ::aya_bpf_cty::c_uint = 1;
  360. pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: ::aya_bpf_cty::c_uint = 2;
  361. pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: ::aya_bpf_cty::c_uint = 4;
  362. pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: ::aya_bpf_cty::c_uint = 8;
  363. pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: ::aya_bpf_cty::c_uint = 16;
  364. pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: ::aya_bpf_cty::c_uint = 32;
  365. pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: ::aya_bpf_cty::c_uint = 64;
  366. pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
  367. pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: ::aya_bpf_cty::c_uint = 255;
  368. pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: ::aya_bpf_cty::c_uint = 56;
  369. pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
  370. pub const BPF_F_SYSCTL_BASE_NAME: ::aya_bpf_cty::c_uint = 1;
  371. pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
  372. pub const BPF_LOCAL_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
  373. pub const BPF_SK_STORAGE_GET_F_CREATE: ::aya_bpf_cty::c_uint = 1;
  374. pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
  375. pub const BPF_F_GET_BRANCH_RECORDS_SIZE: ::aya_bpf_cty::c_uint = 1;
  376. pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
  377. pub const BPF_RB_NO_WAKEUP: ::aya_bpf_cty::c_uint = 1;
  378. pub const BPF_RB_FORCE_WAKEUP: ::aya_bpf_cty::c_uint = 2;
  379. pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
  380. pub const BPF_RB_AVAIL_DATA: ::aya_bpf_cty::c_uint = 0;
  381. pub const BPF_RB_RING_SIZE: ::aya_bpf_cty::c_uint = 1;
  382. pub const BPF_RB_CONS_POS: ::aya_bpf_cty::c_uint = 2;
  383. pub const BPF_RB_PROD_POS: ::aya_bpf_cty::c_uint = 3;
  384. pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
  385. pub const BPF_RINGBUF_BUSY_BIT: ::aya_bpf_cty::c_uint = 2147483648;
  386. pub const BPF_RINGBUF_DISCARD_BIT: ::aya_bpf_cty::c_uint = 1073741824;
  387. pub const BPF_RINGBUF_HDR_SZ: ::aya_bpf_cty::c_uint = 8;
  388. pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
  389. pub const BPF_SK_LOOKUP_F_REPLACE: ::aya_bpf_cty::c_uint = 1;
  390. pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: ::aya_bpf_cty::c_uint = 2;
  391. pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
  392. pub mod bpf_adj_room_mode {
  393. pub type Type = ::aya_bpf_cty::c_uint;
  394. pub const BPF_ADJ_ROOM_NET: Type = 0;
  395. pub const BPF_ADJ_ROOM_MAC: Type = 1;
  396. }
  397. pub const BPF_F_BPRM_SECUREEXEC: ::aya_bpf_cty::c_uint = 1;
  398. pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
  399. pub const BPF_F_BROADCAST: ::aya_bpf_cty::c_uint = 8;
  400. pub const BPF_F_EXCLUDE_INGRESS: ::aya_bpf_cty::c_uint = 16;
  401. pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
  402. #[repr(C)]
  403. #[derive(Copy, Clone)]
  404. pub struct __sk_buff {
  405. pub len: __u32,
  406. pub pkt_type: __u32,
  407. pub mark: __u32,
  408. pub queue_mapping: __u32,
  409. pub protocol: __u32,
  410. pub vlan_present: __u32,
  411. pub vlan_tci: __u32,
  412. pub vlan_proto: __u32,
  413. pub priority: __u32,
  414. pub ingress_ifindex: __u32,
  415. pub ifindex: __u32,
  416. pub tc_index: __u32,
  417. pub cb: [__u32; 5usize],
  418. pub hash: __u32,
  419. pub tc_classid: __u32,
  420. pub data: __u32,
  421. pub data_end: __u32,
  422. pub napi_id: __u32,
  423. pub family: __u32,
  424. pub remote_ip4: __u32,
  425. pub local_ip4: __u32,
  426. pub remote_ip6: [__u32; 4usize],
  427. pub local_ip6: [__u32; 4usize],
  428. pub remote_port: __u32,
  429. pub local_port: __u32,
  430. pub data_meta: __u32,
  431. pub __bindgen_anon_1: __sk_buff__bindgen_ty_1,
  432. pub tstamp: __u64,
  433. pub wire_len: __u32,
  434. pub gso_segs: __u32,
  435. pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
  436. pub gso_size: __u32,
  437. pub _bitfield_align_1: [u8; 0],
  438. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
  439. pub hwtstamp: __u64,
  440. }
  441. #[repr(C)]
  442. #[derive(Copy, Clone)]
  443. pub union __sk_buff__bindgen_ty_1 {
  444. pub flow_keys: *mut bpf_flow_keys,
  445. pub _bitfield_align_1: [u8; 0],
  446. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  447. }
  448. impl __sk_buff__bindgen_ty_1 {
  449. #[inline]
  450. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  451. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  452. __bindgen_bitfield_unit
  453. }
  454. }
  455. #[repr(C)]
  456. #[derive(Copy, Clone)]
  457. pub union __sk_buff__bindgen_ty_2 {
  458. pub sk: *mut bpf_sock,
  459. pub _bitfield_align_1: [u8; 0],
  460. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  461. }
  462. impl __sk_buff__bindgen_ty_2 {
  463. #[inline]
  464. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  465. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  466. __bindgen_bitfield_unit
  467. }
  468. }
  469. impl __sk_buff {
  470. #[inline]
  471. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
  472. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
  473. __bindgen_bitfield_unit
  474. }
  475. }
  476. #[repr(C)]
  477. #[derive(Copy, Clone)]
  478. pub struct bpf_tunnel_key {
  479. pub tunnel_id: __u32,
  480. pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
  481. pub tunnel_tos: __u8,
  482. pub tunnel_ttl: __u8,
  483. pub tunnel_ext: __u16,
  484. pub tunnel_label: __u32,
  485. }
  486. #[repr(C)]
  487. #[derive(Copy, Clone)]
  488. pub union bpf_tunnel_key__bindgen_ty_1 {
  489. pub remote_ipv4: __u32,
  490. pub remote_ipv6: [__u32; 4usize],
  491. }
  492. #[repr(C)]
  493. #[derive(Copy, Clone)]
  494. pub struct bpf_xfrm_state {
  495. pub reqid: __u32,
  496. pub spi: __u32,
  497. pub family: __u16,
  498. pub ext: __u16,
  499. pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
  500. }
  501. #[repr(C)]
  502. #[derive(Copy, Clone)]
  503. pub union bpf_xfrm_state__bindgen_ty_1 {
  504. pub remote_ipv4: __u32,
  505. pub remote_ipv6: [__u32; 4usize],
  506. }
  507. #[repr(C)]
  508. #[derive(Debug, Copy, Clone)]
  509. pub struct bpf_sock {
  510. pub bound_dev_if: __u32,
  511. pub family: __u32,
  512. pub type_: __u32,
  513. pub protocol: __u32,
  514. pub mark: __u32,
  515. pub priority: __u32,
  516. pub src_ip4: __u32,
  517. pub src_ip6: [__u32; 4usize],
  518. pub src_port: __u32,
  519. pub dst_port: __u32,
  520. pub dst_ip4: __u32,
  521. pub dst_ip6: [__u32; 4usize],
  522. pub state: __u32,
  523. pub rx_queue_mapping: __s32,
  524. }
  525. #[repr(C)]
  526. #[derive(Debug, Copy, Clone)]
  527. pub struct bpf_tcp_sock {
  528. pub snd_cwnd: __u32,
  529. pub srtt_us: __u32,
  530. pub rtt_min: __u32,
  531. pub snd_ssthresh: __u32,
  532. pub rcv_nxt: __u32,
  533. pub snd_nxt: __u32,
  534. pub snd_una: __u32,
  535. pub mss_cache: __u32,
  536. pub ecn_flags: __u32,
  537. pub rate_delivered: __u32,
  538. pub rate_interval_us: __u32,
  539. pub packets_out: __u32,
  540. pub retrans_out: __u32,
  541. pub total_retrans: __u32,
  542. pub segs_in: __u32,
  543. pub data_segs_in: __u32,
  544. pub segs_out: __u32,
  545. pub data_segs_out: __u32,
  546. pub lost_out: __u32,
  547. pub sacked_out: __u32,
  548. pub bytes_received: __u64,
  549. pub bytes_acked: __u64,
  550. pub dsack_dups: __u32,
  551. pub delivered: __u32,
  552. pub delivered_ce: __u32,
  553. pub icsk_retransmits: __u32,
  554. }
  555. #[repr(C)]
  556. #[derive(Copy, Clone)]
  557. pub struct bpf_sock_tuple {
  558. pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
  559. }
  560. #[repr(C)]
  561. #[derive(Copy, Clone)]
  562. pub union bpf_sock_tuple__bindgen_ty_1 {
  563. pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
  564. pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
  565. }
  566. #[repr(C)]
  567. #[derive(Debug, Copy, Clone)]
  568. pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
  569. pub saddr: __be32,
  570. pub daddr: __be32,
  571. pub sport: __be16,
  572. pub dport: __be16,
  573. }
  574. #[repr(C)]
  575. #[derive(Debug, Copy, Clone)]
  576. pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
  577. pub saddr: [__be32; 4usize],
  578. pub daddr: [__be32; 4usize],
  579. pub sport: __be16,
  580. pub dport: __be16,
  581. }
  582. pub mod xdp_action {
  583. pub type Type = ::aya_bpf_cty::c_uint;
  584. pub const XDP_ABORTED: Type = 0;
  585. pub const XDP_DROP: Type = 1;
  586. pub const XDP_PASS: Type = 2;
  587. pub const XDP_TX: Type = 3;
  588. pub const XDP_REDIRECT: Type = 4;
  589. }
  590. #[repr(C)]
  591. #[derive(Debug, Copy, Clone)]
  592. pub struct xdp_md {
  593. pub data: __u32,
  594. pub data_end: __u32,
  595. pub data_meta: __u32,
  596. pub ingress_ifindex: __u32,
  597. pub rx_queue_index: __u32,
  598. pub egress_ifindex: __u32,
  599. }
  600. pub mod sk_action {
  601. pub type Type = ::aya_bpf_cty::c_uint;
  602. pub const SK_DROP: Type = 0;
  603. pub const SK_PASS: Type = 1;
  604. }
  605. #[repr(C)]
  606. #[derive(Copy, Clone)]
  607. pub struct sk_msg_md {
  608. pub __bindgen_anon_1: sk_msg_md__bindgen_ty_1,
  609. pub __bindgen_anon_2: sk_msg_md__bindgen_ty_2,
  610. pub family: __u32,
  611. pub remote_ip4: __u32,
  612. pub local_ip4: __u32,
  613. pub remote_ip6: [__u32; 4usize],
  614. pub local_ip6: [__u32; 4usize],
  615. pub remote_port: __u32,
  616. pub local_port: __u32,
  617. pub size: __u32,
  618. pub __bindgen_anon_3: sk_msg_md__bindgen_ty_3,
  619. }
  620. #[repr(C)]
  621. #[derive(Copy, Clone)]
  622. pub union sk_msg_md__bindgen_ty_1 {
  623. pub data: *mut ::aya_bpf_cty::c_void,
  624. pub _bitfield_align_1: [u8; 0],
  625. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  626. }
  627. impl sk_msg_md__bindgen_ty_1 {
  628. #[inline]
  629. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  630. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  631. __bindgen_bitfield_unit
  632. }
  633. }
  634. #[repr(C)]
  635. #[derive(Copy, Clone)]
  636. pub union sk_msg_md__bindgen_ty_2 {
  637. pub data_end: *mut ::aya_bpf_cty::c_void,
  638. pub _bitfield_align_1: [u8; 0],
  639. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  640. }
  641. impl sk_msg_md__bindgen_ty_2 {
  642. #[inline]
  643. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  644. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  645. __bindgen_bitfield_unit
  646. }
  647. }
  648. #[repr(C)]
  649. #[derive(Copy, Clone)]
  650. pub union sk_msg_md__bindgen_ty_3 {
  651. pub sk: *mut bpf_sock,
  652. pub _bitfield_align_1: [u8; 0],
  653. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  654. }
  655. impl sk_msg_md__bindgen_ty_3 {
  656. #[inline]
  657. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  658. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  659. __bindgen_bitfield_unit
  660. }
  661. }
  662. #[repr(C)]
  663. #[derive(Copy, Clone)]
  664. pub struct sk_reuseport_md {
  665. pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
  666. pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
  667. pub len: __u32,
  668. pub eth_protocol: __u32,
  669. pub ip_protocol: __u32,
  670. pub bind_inany: __u32,
  671. pub hash: __u32,
  672. pub __bindgen_anon_3: sk_reuseport_md__bindgen_ty_3,
  673. pub __bindgen_anon_4: sk_reuseport_md__bindgen_ty_4,
  674. }
  675. #[repr(C)]
  676. #[derive(Copy, Clone)]
  677. pub union sk_reuseport_md__bindgen_ty_1 {
  678. pub data: *mut ::aya_bpf_cty::c_void,
  679. pub _bitfield_align_1: [u8; 0],
  680. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  681. }
  682. impl sk_reuseport_md__bindgen_ty_1 {
  683. #[inline]
  684. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  685. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  686. __bindgen_bitfield_unit
  687. }
  688. }
  689. #[repr(C)]
  690. #[derive(Copy, Clone)]
  691. pub union sk_reuseport_md__bindgen_ty_2 {
  692. pub data_end: *mut ::aya_bpf_cty::c_void,
  693. pub _bitfield_align_1: [u8; 0],
  694. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  695. }
  696. impl sk_reuseport_md__bindgen_ty_2 {
  697. #[inline]
  698. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  699. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  700. __bindgen_bitfield_unit
  701. }
  702. }
  703. #[repr(C)]
  704. #[derive(Copy, Clone)]
  705. pub union sk_reuseport_md__bindgen_ty_3 {
  706. pub sk: *mut bpf_sock,
  707. pub _bitfield_align_1: [u8; 0],
  708. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  709. }
  710. impl sk_reuseport_md__bindgen_ty_3 {
  711. #[inline]
  712. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  713. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  714. __bindgen_bitfield_unit
  715. }
  716. }
  717. #[repr(C)]
  718. #[derive(Copy, Clone)]
  719. pub union sk_reuseport_md__bindgen_ty_4 {
  720. pub migrating_sk: *mut bpf_sock,
  721. pub _bitfield_align_1: [u8; 0],
  722. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  723. }
  724. impl sk_reuseport_md__bindgen_ty_4 {
  725. #[inline]
  726. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  727. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  728. __bindgen_bitfield_unit
  729. }
  730. }
  731. #[repr(C)]
  732. #[derive(Debug, Copy, Clone)]
  733. pub struct bpf_map_info {
  734. pub type_: __u32,
  735. pub id: __u32,
  736. pub key_size: __u32,
  737. pub value_size: __u32,
  738. pub max_entries: __u32,
  739. pub map_flags: __u32,
  740. pub name: [::aya_bpf_cty::c_char; 16usize],
  741. pub ifindex: __u32,
  742. pub btf_vmlinux_value_type_id: __u32,
  743. pub netns_dev: __u64,
  744. pub netns_ino: __u64,
  745. pub btf_id: __u32,
  746. pub btf_key_type_id: __u32,
  747. pub btf_value_type_id: __u32,
  748. }
  749. #[repr(C)]
  750. #[derive(Copy, Clone)]
  751. pub struct bpf_sock_addr {
  752. pub user_family: __u32,
  753. pub user_ip4: __u32,
  754. pub user_ip6: [__u32; 4usize],
  755. pub user_port: __u32,
  756. pub family: __u32,
  757. pub type_: __u32,
  758. pub protocol: __u32,
  759. pub msg_src_ip4: __u32,
  760. pub msg_src_ip6: [__u32; 4usize],
  761. pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
  762. }
  763. #[repr(C)]
  764. #[derive(Copy, Clone)]
  765. pub union bpf_sock_addr__bindgen_ty_1 {
  766. pub sk: *mut bpf_sock,
  767. pub _bitfield_align_1: [u8; 0],
  768. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  769. }
  770. impl bpf_sock_addr__bindgen_ty_1 {
  771. #[inline]
  772. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  773. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  774. __bindgen_bitfield_unit
  775. }
  776. }
  777. #[repr(C)]
  778. #[derive(Copy, Clone)]
  779. pub struct bpf_sock_ops {
  780. pub op: __u32,
  781. pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
  782. pub family: __u32,
  783. pub remote_ip4: __u32,
  784. pub local_ip4: __u32,
  785. pub remote_ip6: [__u32; 4usize],
  786. pub local_ip6: [__u32; 4usize],
  787. pub remote_port: __u32,
  788. pub local_port: __u32,
  789. pub is_fullsock: __u32,
  790. pub snd_cwnd: __u32,
  791. pub srtt_us: __u32,
  792. pub bpf_sock_ops_cb_flags: __u32,
  793. pub state: __u32,
  794. pub rtt_min: __u32,
  795. pub snd_ssthresh: __u32,
  796. pub rcv_nxt: __u32,
  797. pub snd_nxt: __u32,
  798. pub snd_una: __u32,
  799. pub mss_cache: __u32,
  800. pub ecn_flags: __u32,
  801. pub rate_delivered: __u32,
  802. pub rate_interval_us: __u32,
  803. pub packets_out: __u32,
  804. pub retrans_out: __u32,
  805. pub total_retrans: __u32,
  806. pub segs_in: __u32,
  807. pub data_segs_in: __u32,
  808. pub segs_out: __u32,
  809. pub data_segs_out: __u32,
  810. pub lost_out: __u32,
  811. pub sacked_out: __u32,
  812. pub sk_txhash: __u32,
  813. pub bytes_received: __u64,
  814. pub bytes_acked: __u64,
  815. pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
  816. pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
  817. pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
  818. pub skb_len: __u32,
  819. pub skb_tcp_flags: __u32,
  820. }
  821. #[repr(C)]
  822. #[derive(Copy, Clone)]
  823. pub union bpf_sock_ops__bindgen_ty_1 {
  824. pub args: [__u32; 4usize],
  825. pub reply: __u32,
  826. pub replylong: [__u32; 4usize],
  827. }
  828. #[repr(C)]
  829. #[derive(Copy, Clone)]
  830. pub union bpf_sock_ops__bindgen_ty_2 {
  831. pub sk: *mut bpf_sock,
  832. pub _bitfield_align_1: [u8; 0],
  833. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  834. }
  835. impl bpf_sock_ops__bindgen_ty_2 {
  836. #[inline]
  837. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  838. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  839. __bindgen_bitfield_unit
  840. }
  841. }
  842. #[repr(C)]
  843. #[derive(Copy, Clone)]
  844. pub union bpf_sock_ops__bindgen_ty_3 {
  845. pub skb_data: *mut ::aya_bpf_cty::c_void,
  846. pub _bitfield_align_1: [u8; 0],
  847. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  848. }
  849. impl bpf_sock_ops__bindgen_ty_3 {
  850. #[inline]
  851. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  852. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  853. __bindgen_bitfield_unit
  854. }
  855. }
  856. #[repr(C)]
  857. #[derive(Copy, Clone)]
  858. pub union bpf_sock_ops__bindgen_ty_4 {
  859. pub skb_data_end: *mut ::aya_bpf_cty::c_void,
  860. pub _bitfield_align_1: [u8; 0],
  861. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  862. }
  863. impl bpf_sock_ops__bindgen_ty_4 {
  864. #[inline]
  865. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  866. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  867. __bindgen_bitfield_unit
  868. }
  869. }
  870. pub const BPF_SOCK_OPS_RTO_CB_FLAG: ::aya_bpf_cty::c_uint = 1;
  871. pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: ::aya_bpf_cty::c_uint = 2;
  872. pub const BPF_SOCK_OPS_STATE_CB_FLAG: ::aya_bpf_cty::c_uint = 4;
  873. pub const BPF_SOCK_OPS_RTT_CB_FLAG: ::aya_bpf_cty::c_uint = 8;
  874. pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 16;
  875. pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 32;
  876. pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: ::aya_bpf_cty::c_uint = 64;
  877. pub const BPF_SOCK_OPS_ALL_CB_FLAGS: ::aya_bpf_cty::c_uint = 127;
  878. pub type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
  879. pub const BPF_SOCK_OPS_VOID: ::aya_bpf_cty::c_uint = 0;
  880. pub const BPF_SOCK_OPS_TIMEOUT_INIT: ::aya_bpf_cty::c_uint = 1;
  881. pub const BPF_SOCK_OPS_RWND_INIT: ::aya_bpf_cty::c_uint = 2;
  882. pub const BPF_SOCK_OPS_TCP_CONNECT_CB: ::aya_bpf_cty::c_uint = 3;
  883. pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 4;
  884. pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: ::aya_bpf_cty::c_uint = 5;
  885. pub const BPF_SOCK_OPS_NEEDS_ECN: ::aya_bpf_cty::c_uint = 6;
  886. pub const BPF_SOCK_OPS_BASE_RTT: ::aya_bpf_cty::c_uint = 7;
  887. pub const BPF_SOCK_OPS_RTO_CB: ::aya_bpf_cty::c_uint = 8;
  888. pub const BPF_SOCK_OPS_RETRANS_CB: ::aya_bpf_cty::c_uint = 9;
  889. pub const BPF_SOCK_OPS_STATE_CB: ::aya_bpf_cty::c_uint = 10;
  890. pub const BPF_SOCK_OPS_TCP_LISTEN_CB: ::aya_bpf_cty::c_uint = 11;
  891. pub const BPF_SOCK_OPS_RTT_CB: ::aya_bpf_cty::c_uint = 12;
  892. pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 13;
  893. pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: ::aya_bpf_cty::c_uint = 14;
  894. pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: ::aya_bpf_cty::c_uint = 15;
  895. pub type _bindgen_ty_26 = ::aya_bpf_cty::c_uint;
  896. pub const BPF_TCP_ESTABLISHED: ::aya_bpf_cty::c_uint = 1;
  897. pub const BPF_TCP_SYN_SENT: ::aya_bpf_cty::c_uint = 2;
  898. pub const BPF_TCP_SYN_RECV: ::aya_bpf_cty::c_uint = 3;
  899. pub const BPF_TCP_FIN_WAIT1: ::aya_bpf_cty::c_uint = 4;
  900. pub const BPF_TCP_FIN_WAIT2: ::aya_bpf_cty::c_uint = 5;
  901. pub const BPF_TCP_TIME_WAIT: ::aya_bpf_cty::c_uint = 6;
  902. pub const BPF_TCP_CLOSE: ::aya_bpf_cty::c_uint = 7;
  903. pub const BPF_TCP_CLOSE_WAIT: ::aya_bpf_cty::c_uint = 8;
  904. pub const BPF_TCP_LAST_ACK: ::aya_bpf_cty::c_uint = 9;
  905. pub const BPF_TCP_LISTEN: ::aya_bpf_cty::c_uint = 10;
  906. pub const BPF_TCP_CLOSING: ::aya_bpf_cty::c_uint = 11;
  907. pub const BPF_TCP_NEW_SYN_RECV: ::aya_bpf_cty::c_uint = 12;
  908. pub const BPF_TCP_MAX_STATES: ::aya_bpf_cty::c_uint = 13;
  909. pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
  910. pub mod _bindgen_ty_29 {
  911. pub type Type = ::aya_bpf_cty::c_uint;
  912. pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
  913. }
  914. pub mod _bindgen_ty_30 {
  915. pub type Type = ::aya_bpf_cty::c_uint;
  916. pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
  917. pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
  918. }
  919. #[repr(C)]
  920. #[derive(Debug, Copy, Clone)]
  921. pub struct bpf_perf_event_value {
  922. pub counter: __u64,
  923. pub enabled: __u64,
  924. pub running: __u64,
  925. }
  926. pub const BPF_DEVCG_ACC_MKNOD: ::aya_bpf_cty::c_uint = 1;
  927. pub const BPF_DEVCG_ACC_READ: ::aya_bpf_cty::c_uint = 2;
  928. pub const BPF_DEVCG_ACC_WRITE: ::aya_bpf_cty::c_uint = 4;
  929. pub type _bindgen_ty_31 = ::aya_bpf_cty::c_uint;
  930. pub const BPF_DEVCG_DEV_BLOCK: ::aya_bpf_cty::c_uint = 1;
  931. pub const BPF_DEVCG_DEV_CHAR: ::aya_bpf_cty::c_uint = 2;
  932. pub type _bindgen_ty_32 = ::aya_bpf_cty::c_uint;
  933. pub const BPF_FIB_LOOKUP_DIRECT: ::aya_bpf_cty::c_uint = 1;
  934. pub const BPF_FIB_LOOKUP_OUTPUT: ::aya_bpf_cty::c_uint = 2;
  935. pub type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
  936. pub const BPF_FIB_LKUP_RET_SUCCESS: ::aya_bpf_cty::c_uint = 0;
  937. pub const BPF_FIB_LKUP_RET_BLACKHOLE: ::aya_bpf_cty::c_uint = 1;
  938. pub const BPF_FIB_LKUP_RET_UNREACHABLE: ::aya_bpf_cty::c_uint = 2;
  939. pub const BPF_FIB_LKUP_RET_PROHIBIT: ::aya_bpf_cty::c_uint = 3;
  940. pub const BPF_FIB_LKUP_RET_NOT_FWDED: ::aya_bpf_cty::c_uint = 4;
  941. pub const BPF_FIB_LKUP_RET_FWD_DISABLED: ::aya_bpf_cty::c_uint = 5;
  942. pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: ::aya_bpf_cty::c_uint = 6;
  943. pub const BPF_FIB_LKUP_RET_NO_NEIGH: ::aya_bpf_cty::c_uint = 7;
  944. pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: ::aya_bpf_cty::c_uint = 8;
  945. pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
  946. #[repr(C)]
  947. #[derive(Copy, Clone)]
  948. pub struct bpf_fib_lookup {
  949. pub family: __u8,
  950. pub l4_protocol: __u8,
  951. pub sport: __be16,
  952. pub dport: __be16,
  953. pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
  954. pub ifindex: __u32,
  955. pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
  956. pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
  957. pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
  958. pub h_vlan_proto: __be16,
  959. pub h_vlan_TCI: __be16,
  960. pub smac: [__u8; 6usize],
  961. pub dmac: [__u8; 6usize],
  962. }
  963. #[repr(C)]
  964. #[derive(Copy, Clone)]
  965. pub union bpf_fib_lookup__bindgen_ty_1 {
  966. pub tot_len: __u16,
  967. pub mtu_result: __u16,
  968. }
  969. #[repr(C)]
  970. #[derive(Copy, Clone)]
  971. pub union bpf_fib_lookup__bindgen_ty_2 {
  972. pub tos: __u8,
  973. pub flowinfo: __be32,
  974. pub rt_metric: __u32,
  975. }
  976. #[repr(C)]
  977. #[derive(Copy, Clone)]
  978. pub union bpf_fib_lookup__bindgen_ty_3 {
  979. pub ipv4_src: __be32,
  980. pub ipv6_src: [__u32; 4usize],
  981. }
  982. #[repr(C)]
  983. #[derive(Copy, Clone)]
  984. pub union bpf_fib_lookup__bindgen_ty_4 {
  985. pub ipv4_dst: __be32,
  986. pub ipv6_dst: [__u32; 4usize],
  987. }
  988. #[repr(C)]
  989. #[derive(Copy, Clone)]
  990. pub struct bpf_redir_neigh {
  991. pub nh_family: __u32,
  992. pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
  993. }
  994. #[repr(C)]
  995. #[derive(Copy, Clone)]
  996. pub union bpf_redir_neigh__bindgen_ty_1 {
  997. pub ipv4_nh: __be32,
  998. pub ipv6_nh: [__u32; 4usize],
  999. }
  1000. pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: ::aya_bpf_cty::c_uint = 1;
  1001. pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: ::aya_bpf_cty::c_uint = 2;
  1002. pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: ::aya_bpf_cty::c_uint = 4;
  1003. pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
  1004. #[repr(C)]
  1005. #[derive(Copy, Clone)]
  1006. pub struct bpf_flow_keys {
  1007. pub nhoff: __u16,
  1008. pub thoff: __u16,
  1009. pub addr_proto: __u16,
  1010. pub is_frag: __u8,
  1011. pub is_first_frag: __u8,
  1012. pub is_encap: __u8,
  1013. pub ip_proto: __u8,
  1014. pub n_proto: __be16,
  1015. pub sport: __be16,
  1016. pub dport: __be16,
  1017. pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
  1018. pub flags: __u32,
  1019. pub flow_label: __be32,
  1020. }
  1021. #[repr(C)]
  1022. #[derive(Copy, Clone)]
  1023. pub union bpf_flow_keys__bindgen_ty_1 {
  1024. pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
  1025. pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
  1026. }
  1027. #[repr(C)]
  1028. #[derive(Debug, Copy, Clone)]
  1029. pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
  1030. pub ipv4_src: __be32,
  1031. pub ipv4_dst: __be32,
  1032. }
  1033. #[repr(C)]
  1034. #[derive(Debug, Copy, Clone)]
  1035. pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
  1036. pub ipv6_src: [__u32; 4usize],
  1037. pub ipv6_dst: [__u32; 4usize],
  1038. }
  1039. #[repr(C)]
  1040. #[derive(Debug, Copy, Clone)]
  1041. pub struct bpf_spin_lock {
  1042. pub val: __u32,
  1043. }
  1044. #[repr(C)]
  1045. #[repr(align(8))]
  1046. #[derive(Debug, Copy, Clone)]
  1047. pub struct bpf_timer {
  1048. pub _bitfield_align_1: [u8; 0],
  1049. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
  1050. }
  1051. impl bpf_timer {
  1052. #[inline]
  1053. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
  1054. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
  1055. __bindgen_bitfield_unit
  1056. }
  1057. }
  1058. #[repr(C)]
  1059. #[derive(Debug, Copy, Clone)]
  1060. pub struct bpf_sysctl {
  1061. pub write: __u32,
  1062. pub file_pos: __u32,
  1063. }
  1064. #[repr(C)]
  1065. #[derive(Debug, Copy, Clone)]
  1066. pub struct bpf_pidns_info {
  1067. pub pid: __u32,
  1068. pub tgid: __u32,
  1069. }
  1070. #[repr(C)]
  1071. #[derive(Debug, Copy, Clone)]
  1072. pub struct btf_ptr {
  1073. pub ptr: *mut ::aya_bpf_cty::c_void,
  1074. pub type_id: __u32,
  1075. pub flags: __u32,
  1076. }
  1077. #[repr(C)]
  1078. #[derive(Debug, Copy, Clone)]
  1079. pub struct pt_regs {
  1080. pub r15: ::aya_bpf_cty::c_ulong,
  1081. pub r14: ::aya_bpf_cty::c_ulong,
  1082. pub r13: ::aya_bpf_cty::c_ulong,
  1083. pub r12: ::aya_bpf_cty::c_ulong,
  1084. pub rbp: ::aya_bpf_cty::c_ulong,
  1085. pub rbx: ::aya_bpf_cty::c_ulong,
  1086. pub r11: ::aya_bpf_cty::c_ulong,
  1087. pub r10: ::aya_bpf_cty::c_ulong,
  1088. pub r9: ::aya_bpf_cty::c_ulong,
  1089. pub r8: ::aya_bpf_cty::c_ulong,
  1090. pub rax: ::aya_bpf_cty::c_ulong,
  1091. pub rcx: ::aya_bpf_cty::c_ulong,
  1092. pub rdx: ::aya_bpf_cty::c_ulong,
  1093. pub rsi: ::aya_bpf_cty::c_ulong,
  1094. pub rdi: ::aya_bpf_cty::c_ulong,
  1095. pub orig_rax: ::aya_bpf_cty::c_ulong,
  1096. pub rip: ::aya_bpf_cty::c_ulong,
  1097. pub cs: ::aya_bpf_cty::c_ulong,
  1098. pub eflags: ::aya_bpf_cty::c_ulong,
  1099. pub rsp: ::aya_bpf_cty::c_ulong,
  1100. pub ss: ::aya_bpf_cty::c_ulong,
  1101. }
  1102. pub type sa_family_t = ::aya_bpf_cty::c_ushort;
  1103. #[repr(C)]
  1104. #[derive(Debug, Copy, Clone)]
  1105. pub struct sockaddr {
  1106. pub sa_family: sa_family_t,
  1107. pub sa_data: [::aya_bpf_cty::c_char; 14usize],
  1108. }
  1109. #[repr(C)]
  1110. #[derive(Debug, Copy, Clone)]
  1111. pub struct bpf_perf_event_data {
  1112. _unused: [u8; 0],
  1113. }
  1114. #[repr(C)]
  1115. #[derive(Debug, Copy, Clone)]
  1116. pub struct linux_binprm {
  1117. _unused: [u8; 0],
  1118. }
  1119. #[repr(C)]
  1120. #[derive(Debug, Copy, Clone)]
  1121. pub struct tcphdr {
  1122. _unused: [u8; 0],
  1123. }
  1124. #[repr(C)]
  1125. #[derive(Debug, Copy, Clone)]
  1126. pub struct seq_file {
  1127. _unused: [u8; 0],
  1128. }
  1129. #[repr(C)]
  1130. #[derive(Debug, Copy, Clone)]
  1131. pub struct tcp6_sock {
  1132. _unused: [u8; 0],
  1133. }
  1134. #[repr(C)]
  1135. #[derive(Debug, Copy, Clone)]
  1136. pub struct tcp_sock {
  1137. _unused: [u8; 0],
  1138. }
  1139. #[repr(C)]
  1140. #[derive(Debug, Copy, Clone)]
  1141. pub struct tcp_timewait_sock {
  1142. _unused: [u8; 0],
  1143. }
  1144. #[repr(C)]
  1145. #[derive(Debug, Copy, Clone)]
  1146. pub struct tcp_request_sock {
  1147. _unused: [u8; 0],
  1148. }
  1149. #[repr(C)]
  1150. #[derive(Debug, Copy, Clone)]
  1151. pub struct udp6_sock {
  1152. _unused: [u8; 0],
  1153. }
  1154. #[repr(C)]
  1155. #[derive(Debug, Copy, Clone)]
  1156. pub struct task_struct {
  1157. _unused: [u8; 0],
  1158. }
  1159. #[repr(C)]
  1160. #[derive(Debug, Copy, Clone)]
  1161. pub struct path {
  1162. _unused: [u8; 0],
  1163. }
  1164. #[repr(C)]
  1165. #[derive(Debug, Copy, Clone)]
  1166. pub struct inode {
  1167. _unused: [u8; 0],
  1168. }
  1169. #[repr(C)]
  1170. #[derive(Debug, Copy, Clone)]
  1171. pub struct socket {
  1172. _unused: [u8; 0],
  1173. }
  1174. #[repr(C)]
  1175. #[derive(Debug, Copy, Clone)]
  1176. pub struct file {
  1177. _unused: [u8; 0],
  1178. }