bindings.rs 82 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476
  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. #[repr(C)]
  82. #[derive(Default)]
  83. pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
  84. impl<T> __IncompleteArrayField<T> {
  85. #[inline]
  86. pub const fn new() -> Self {
  87. __IncompleteArrayField(::core::marker::PhantomData, [])
  88. }
  89. #[inline]
  90. pub fn as_ptr(&self) -> *const T {
  91. self as *const _ as *const T
  92. }
  93. #[inline]
  94. pub fn as_mut_ptr(&mut self) -> *mut T {
  95. self as *mut _ as *mut T
  96. }
  97. #[inline]
  98. pub unsafe fn as_slice(&self, len: usize) -> &[T] {
  99. ::core::slice::from_raw_parts(self.as_ptr(), len)
  100. }
  101. #[inline]
  102. pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
  103. ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
  104. }
  105. }
  106. impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
  107. fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
  108. fmt.write_str("__IncompleteArrayField")
  109. }
  110. }
  111. pub const BPF_LD: u32 = 0;
  112. pub const BPF_LDX: u32 = 1;
  113. pub const BPF_ST: u32 = 2;
  114. pub const BPF_STX: u32 = 3;
  115. pub const BPF_ALU: u32 = 4;
  116. pub const BPF_JMP: u32 = 5;
  117. pub const BPF_RET: u32 = 6;
  118. pub const BPF_MISC: u32 = 7;
  119. pub const BPF_W: u32 = 0;
  120. pub const BPF_H: u32 = 8;
  121. pub const BPF_B: u32 = 16;
  122. pub const BPF_IMM: u32 = 0;
  123. pub const BPF_ABS: u32 = 32;
  124. pub const BPF_IND: u32 = 64;
  125. pub const BPF_MEM: u32 = 96;
  126. pub const BPF_LEN: u32 = 128;
  127. pub const BPF_MSH: u32 = 160;
  128. pub const BPF_ADD: u32 = 0;
  129. pub const BPF_SUB: u32 = 16;
  130. pub const BPF_MUL: u32 = 32;
  131. pub const BPF_DIV: u32 = 48;
  132. pub const BPF_OR: u32 = 64;
  133. pub const BPF_AND: u32 = 80;
  134. pub const BPF_LSH: u32 = 96;
  135. pub const BPF_RSH: u32 = 112;
  136. pub const BPF_NEG: u32 = 128;
  137. pub const BPF_MOD: u32 = 144;
  138. pub const BPF_XOR: u32 = 160;
  139. pub const BPF_JA: u32 = 0;
  140. pub const BPF_JEQ: u32 = 16;
  141. pub const BPF_JGT: u32 = 32;
  142. pub const BPF_JGE: u32 = 48;
  143. pub const BPF_JSET: u32 = 64;
  144. pub const BPF_K: u32 = 0;
  145. pub const BPF_X: u32 = 8;
  146. pub const BPF_MAXINSNS: u32 = 4096;
  147. pub const BPF_JMP32: u32 = 6;
  148. pub const BPF_ALU64: u32 = 7;
  149. pub const BPF_DW: u32 = 24;
  150. pub const BPF_ATOMIC: u32 = 192;
  151. pub const BPF_XADD: u32 = 192;
  152. pub const BPF_MOV: u32 = 176;
  153. pub const BPF_ARSH: u32 = 192;
  154. pub const BPF_END: u32 = 208;
  155. pub const BPF_TO_LE: u32 = 0;
  156. pub const BPF_TO_BE: u32 = 8;
  157. pub const BPF_FROM_LE: u32 = 0;
  158. pub const BPF_FROM_BE: u32 = 8;
  159. pub const BPF_JNE: u32 = 80;
  160. pub const BPF_JLT: u32 = 160;
  161. pub const BPF_JLE: u32 = 176;
  162. pub const BPF_JSGT: u32 = 96;
  163. pub const BPF_JSGE: u32 = 112;
  164. pub const BPF_JSLT: u32 = 192;
  165. pub const BPF_JSLE: u32 = 208;
  166. pub const BPF_CALL: u32 = 128;
  167. pub const BPF_EXIT: u32 = 144;
  168. pub const BPF_FETCH: u32 = 1;
  169. pub const BPF_XCHG: u32 = 225;
  170. pub const BPF_CMPXCHG: u32 = 241;
  171. pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
  172. pub const BPF_F_ALLOW_MULTI: u32 = 2;
  173. pub const BPF_F_REPLACE: u32 = 4;
  174. pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
  175. pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
  176. pub const BPF_F_TEST_RND_HI32: u32 = 4;
  177. pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
  178. pub const BPF_F_SLEEPABLE: u32 = 16;
  179. pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
  180. pub const BPF_F_XDP_DEV_BOUND_ONLY: u32 = 64;
  181. pub const BPF_F_KPROBE_MULTI_RETURN: u32 = 1;
  182. pub const BPF_PSEUDO_MAP_FD: u32 = 1;
  183. pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
  184. pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
  185. pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
  186. pub const BPF_PSEUDO_BTF_ID: u32 = 3;
  187. pub const BPF_PSEUDO_FUNC: u32 = 4;
  188. pub const BPF_PSEUDO_CALL: u32 = 1;
  189. pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
  190. pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
  191. pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
  192. pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
  193. pub const BPF_BUILD_ID_SIZE: u32 = 20;
  194. pub const BPF_OBJ_NAME_LEN: u32 = 16;
  195. pub const BPF_TAG_SIZE: u32 = 8;
  196. pub const SOL_SOCKET: u32 = 1;
  197. pub const SO_DEBUG: u32 = 1;
  198. pub const SO_REUSEADDR: u32 = 2;
  199. pub const SO_TYPE: u32 = 3;
  200. pub const SO_ERROR: u32 = 4;
  201. pub const SO_DONTROUTE: u32 = 5;
  202. pub const SO_BROADCAST: u32 = 6;
  203. pub const SO_SNDBUF: u32 = 7;
  204. pub const SO_RCVBUF: u32 = 8;
  205. pub const SO_SNDBUFFORCE: u32 = 32;
  206. pub const SO_RCVBUFFORCE: u32 = 33;
  207. pub const SO_KEEPALIVE: u32 = 9;
  208. pub const SO_OOBINLINE: u32 = 10;
  209. pub const SO_NO_CHECK: u32 = 11;
  210. pub const SO_PRIORITY: u32 = 12;
  211. pub const SO_LINGER: u32 = 13;
  212. pub const SO_BSDCOMPAT: u32 = 14;
  213. pub const SO_REUSEPORT: u32 = 15;
  214. pub const SO_PASSCRED: u32 = 16;
  215. pub const SO_PEERCRED: u32 = 17;
  216. pub const SO_RCVLOWAT: u32 = 18;
  217. pub const SO_SNDLOWAT: u32 = 19;
  218. pub const SO_RCVTIMEO_OLD: u32 = 20;
  219. pub const SO_SNDTIMEO_OLD: u32 = 21;
  220. pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
  221. pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
  222. pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
  223. pub const SO_BINDTODEVICE: u32 = 25;
  224. pub const SO_ATTACH_FILTER: u32 = 26;
  225. pub const SO_DETACH_FILTER: u32 = 27;
  226. pub const SO_GET_FILTER: u32 = 26;
  227. pub const SO_PEERNAME: u32 = 28;
  228. pub const SO_ACCEPTCONN: u32 = 30;
  229. pub const SO_PEERSEC: u32 = 31;
  230. pub const SO_PASSSEC: u32 = 34;
  231. pub const SO_MARK: u32 = 36;
  232. pub const SO_PROTOCOL: u32 = 38;
  233. pub const SO_DOMAIN: u32 = 39;
  234. pub const SO_RXQ_OVFL: u32 = 40;
  235. pub const SO_WIFI_STATUS: u32 = 41;
  236. pub const SO_PEEK_OFF: u32 = 42;
  237. pub const SO_NOFCS: u32 = 43;
  238. pub const SO_LOCK_FILTER: u32 = 44;
  239. pub const SO_SELECT_ERR_QUEUE: u32 = 45;
  240. pub const SO_BUSY_POLL: u32 = 46;
  241. pub const SO_MAX_PACING_RATE: u32 = 47;
  242. pub const SO_BPF_EXTENSIONS: u32 = 48;
  243. pub const SO_INCOMING_CPU: u32 = 49;
  244. pub const SO_ATTACH_BPF: u32 = 50;
  245. pub const SO_DETACH_BPF: u32 = 27;
  246. pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
  247. pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
  248. pub const SO_CNX_ADVICE: u32 = 53;
  249. pub const SO_MEMINFO: u32 = 55;
  250. pub const SO_INCOMING_NAPI_ID: u32 = 56;
  251. pub const SO_COOKIE: u32 = 57;
  252. pub const SO_PEERGROUPS: u32 = 59;
  253. pub const SO_ZEROCOPY: u32 = 60;
  254. pub const SO_TXTIME: u32 = 61;
  255. pub const SO_BINDTOIFINDEX: u32 = 62;
  256. pub const SO_TIMESTAMP_OLD: u32 = 29;
  257. pub const SO_TIMESTAMPNS_OLD: u32 = 35;
  258. pub const SO_TIMESTAMPING_OLD: u32 = 37;
  259. pub const SO_TIMESTAMP_NEW: u32 = 63;
  260. pub const SO_TIMESTAMPNS_NEW: u32 = 64;
  261. pub const SO_TIMESTAMPING_NEW: u32 = 65;
  262. pub const SO_RCVTIMEO_NEW: u32 = 66;
  263. pub const SO_SNDTIMEO_NEW: u32 = 67;
  264. pub const SO_DETACH_REUSEPORT_BPF: u32 = 68;
  265. pub const SO_TIMESTAMP: u32 = 29;
  266. pub const SO_TIMESTAMPNS: u32 = 35;
  267. pub const SO_TIMESTAMPING: u32 = 37;
  268. pub const SO_RCVTIMEO: u32 = 20;
  269. pub const SO_SNDTIMEO: u32 = 21;
  270. pub const TC_ACT_UNSPEC: i32 = -1;
  271. pub const TC_ACT_OK: u32 = 0;
  272. pub const TC_ACT_RECLASSIFY: u32 = 1;
  273. pub const TC_ACT_SHOT: u32 = 2;
  274. pub const TC_ACT_PIPE: u32 = 3;
  275. pub const TC_ACT_STOLEN: u32 = 4;
  276. pub const TC_ACT_QUEUED: u32 = 5;
  277. pub const TC_ACT_REPEAT: u32 = 6;
  278. pub const TC_ACT_REDIRECT: u32 = 7;
  279. pub const TC_ACT_TRAP: u32 = 8;
  280. pub const TC_ACT_VALUE_MAX: u32 = 8;
  281. pub const TC_ACT_EXT_VAL_MASK: u32 = 268435455;
  282. pub type __u8 = ::aya_bpf_cty::c_uchar;
  283. pub type __s16 = ::aya_bpf_cty::c_short;
  284. pub type __u16 = ::aya_bpf_cty::c_ushort;
  285. pub type __s32 = ::aya_bpf_cty::c_int;
  286. pub type __u32 = ::aya_bpf_cty::c_uint;
  287. pub type __s64 = ::aya_bpf_cty::c_longlong;
  288. pub type __u64 = ::aya_bpf_cty::c_ulonglong;
  289. pub type __be16 = __u16;
  290. pub type __be32 = __u32;
  291. pub type __wsum = __u32;
  292. pub const BPF_REG_0: _bindgen_ty_1 = 0;
  293. pub const BPF_REG_1: _bindgen_ty_1 = 1;
  294. pub const BPF_REG_2: _bindgen_ty_1 = 2;
  295. pub const BPF_REG_3: _bindgen_ty_1 = 3;
  296. pub const BPF_REG_4: _bindgen_ty_1 = 4;
  297. pub const BPF_REG_5: _bindgen_ty_1 = 5;
  298. pub const BPF_REG_6: _bindgen_ty_1 = 6;
  299. pub const BPF_REG_7: _bindgen_ty_1 = 7;
  300. pub const BPF_REG_8: _bindgen_ty_1 = 8;
  301. pub const BPF_REG_9: _bindgen_ty_1 = 9;
  302. pub const BPF_REG_10: _bindgen_ty_1 = 10;
  303. pub const __MAX_BPF_REG: _bindgen_ty_1 = 11;
  304. pub type _bindgen_ty_1 = ::aya_bpf_cty::c_uint;
  305. #[repr(C)]
  306. #[derive(Debug, Copy, Clone)]
  307. pub struct bpf_insn {
  308. pub code: __u8,
  309. pub _bitfield_align_1: [u8; 0],
  310. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
  311. pub off: __s16,
  312. pub imm: __s32,
  313. }
  314. impl bpf_insn {
  315. #[inline]
  316. pub fn dst_reg(&self) -> __u8 {
  317. unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
  318. }
  319. #[inline]
  320. pub fn set_dst_reg(&mut self, val: __u8) {
  321. unsafe {
  322. let val: u8 = ::core::mem::transmute(val);
  323. self._bitfield_1.set(0usize, 4u8, val as u64)
  324. }
  325. }
  326. #[inline]
  327. pub fn src_reg(&self) -> __u8 {
  328. unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
  329. }
  330. #[inline]
  331. pub fn set_src_reg(&mut self, val: __u8) {
  332. unsafe {
  333. let val: u8 = ::core::mem::transmute(val);
  334. self._bitfield_1.set(4usize, 4u8, val as u64)
  335. }
  336. }
  337. #[inline]
  338. pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
  339. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
  340. __bindgen_bitfield_unit.set(0usize, 4u8, {
  341. let dst_reg: u8 = unsafe { ::core::mem::transmute(dst_reg) };
  342. dst_reg as u64
  343. });
  344. __bindgen_bitfield_unit.set(4usize, 4u8, {
  345. let src_reg: u8 = unsafe { ::core::mem::transmute(src_reg) };
  346. src_reg as u64
  347. });
  348. __bindgen_bitfield_unit
  349. }
  350. }
  351. #[repr(C)]
  352. #[derive(Debug)]
  353. pub struct bpf_lpm_trie_key {
  354. pub prefixlen: __u32,
  355. pub data: __IncompleteArrayField<__u8>,
  356. }
  357. #[repr(C)]
  358. #[derive(Debug, Copy, Clone)]
  359. pub struct bpf_cgroup_storage_key {
  360. pub cgroup_inode_id: __u64,
  361. pub attach_type: __u32,
  362. }
  363. pub mod bpf_cgroup_iter_order {
  364. pub type Type = ::aya_bpf_cty::c_uint;
  365. pub const BPF_CGROUP_ITER_ORDER_UNSPEC: Type = 0;
  366. pub const BPF_CGROUP_ITER_SELF_ONLY: Type = 1;
  367. pub const BPF_CGROUP_ITER_DESCENDANTS_PRE: Type = 2;
  368. pub const BPF_CGROUP_ITER_DESCENDANTS_POST: Type = 3;
  369. pub const BPF_CGROUP_ITER_ANCESTORS_UP: Type = 4;
  370. }
  371. #[repr(C)]
  372. #[derive(Copy, Clone)]
  373. pub union bpf_iter_link_info {
  374. pub map: bpf_iter_link_info__bindgen_ty_1,
  375. pub cgroup: bpf_iter_link_info__bindgen_ty_2,
  376. pub task: bpf_iter_link_info__bindgen_ty_3,
  377. }
  378. #[repr(C)]
  379. #[derive(Debug, Copy, Clone)]
  380. pub struct bpf_iter_link_info__bindgen_ty_1 {
  381. pub map_fd: __u32,
  382. }
  383. #[repr(C)]
  384. #[derive(Debug, Copy, Clone)]
  385. pub struct bpf_iter_link_info__bindgen_ty_2 {
  386. pub order: bpf_cgroup_iter_order::Type,
  387. pub cgroup_fd: __u32,
  388. pub cgroup_id: __u64,
  389. }
  390. #[repr(C)]
  391. #[derive(Debug, Copy, Clone)]
  392. pub struct bpf_iter_link_info__bindgen_ty_3 {
  393. pub tid: __u32,
  394. pub pid: __u32,
  395. pub pid_fd: __u32,
  396. }
  397. pub mod bpf_cmd {
  398. pub type Type = ::aya_bpf_cty::c_uint;
  399. pub const BPF_MAP_CREATE: Type = 0;
  400. pub const BPF_MAP_LOOKUP_ELEM: Type = 1;
  401. pub const BPF_MAP_UPDATE_ELEM: Type = 2;
  402. pub const BPF_MAP_DELETE_ELEM: Type = 3;
  403. pub const BPF_MAP_GET_NEXT_KEY: Type = 4;
  404. pub const BPF_PROG_LOAD: Type = 5;
  405. pub const BPF_OBJ_PIN: Type = 6;
  406. pub const BPF_OBJ_GET: Type = 7;
  407. pub const BPF_PROG_ATTACH: Type = 8;
  408. pub const BPF_PROG_DETACH: Type = 9;
  409. pub const BPF_PROG_TEST_RUN: Type = 10;
  410. pub const BPF_PROG_RUN: Type = 10;
  411. pub const BPF_PROG_GET_NEXT_ID: Type = 11;
  412. pub const BPF_MAP_GET_NEXT_ID: Type = 12;
  413. pub const BPF_PROG_GET_FD_BY_ID: Type = 13;
  414. pub const BPF_MAP_GET_FD_BY_ID: Type = 14;
  415. pub const BPF_OBJ_GET_INFO_BY_FD: Type = 15;
  416. pub const BPF_PROG_QUERY: Type = 16;
  417. pub const BPF_RAW_TRACEPOINT_OPEN: Type = 17;
  418. pub const BPF_BTF_LOAD: Type = 18;
  419. pub const BPF_BTF_GET_FD_BY_ID: Type = 19;
  420. pub const BPF_TASK_FD_QUERY: Type = 20;
  421. pub const BPF_MAP_LOOKUP_AND_DELETE_ELEM: Type = 21;
  422. pub const BPF_MAP_FREEZE: Type = 22;
  423. pub const BPF_BTF_GET_NEXT_ID: Type = 23;
  424. pub const BPF_MAP_LOOKUP_BATCH: Type = 24;
  425. pub const BPF_MAP_LOOKUP_AND_DELETE_BATCH: Type = 25;
  426. pub const BPF_MAP_UPDATE_BATCH: Type = 26;
  427. pub const BPF_MAP_DELETE_BATCH: Type = 27;
  428. pub const BPF_LINK_CREATE: Type = 28;
  429. pub const BPF_LINK_UPDATE: Type = 29;
  430. pub const BPF_LINK_GET_FD_BY_ID: Type = 30;
  431. pub const BPF_LINK_GET_NEXT_ID: Type = 31;
  432. pub const BPF_ENABLE_STATS: Type = 32;
  433. pub const BPF_ITER_CREATE: Type = 33;
  434. pub const BPF_LINK_DETACH: Type = 34;
  435. pub const BPF_PROG_BIND_MAP: Type = 35;
  436. }
  437. pub mod bpf_map_type {
  438. pub type Type = ::aya_bpf_cty::c_uint;
  439. pub const BPF_MAP_TYPE_UNSPEC: Type = 0;
  440. pub const BPF_MAP_TYPE_HASH: Type = 1;
  441. pub const BPF_MAP_TYPE_ARRAY: Type = 2;
  442. pub const BPF_MAP_TYPE_PROG_ARRAY: Type = 3;
  443. pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: Type = 4;
  444. pub const BPF_MAP_TYPE_PERCPU_HASH: Type = 5;
  445. pub const BPF_MAP_TYPE_PERCPU_ARRAY: Type = 6;
  446. pub const BPF_MAP_TYPE_STACK_TRACE: Type = 7;
  447. pub const BPF_MAP_TYPE_CGROUP_ARRAY: Type = 8;
  448. pub const BPF_MAP_TYPE_LRU_HASH: Type = 9;
  449. pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: Type = 10;
  450. pub const BPF_MAP_TYPE_LPM_TRIE: Type = 11;
  451. pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: Type = 12;
  452. pub const BPF_MAP_TYPE_HASH_OF_MAPS: Type = 13;
  453. pub const BPF_MAP_TYPE_DEVMAP: Type = 14;
  454. pub const BPF_MAP_TYPE_SOCKMAP: Type = 15;
  455. pub const BPF_MAP_TYPE_CPUMAP: Type = 16;
  456. pub const BPF_MAP_TYPE_XSKMAP: Type = 17;
  457. pub const BPF_MAP_TYPE_SOCKHASH: Type = 18;
  458. pub const BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED: Type = 19;
  459. pub const BPF_MAP_TYPE_CGROUP_STORAGE: Type = 19;
  460. pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: Type = 20;
  461. pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: Type = 21;
  462. pub const BPF_MAP_TYPE_QUEUE: Type = 22;
  463. pub const BPF_MAP_TYPE_STACK: Type = 23;
  464. pub const BPF_MAP_TYPE_SK_STORAGE: Type = 24;
  465. pub const BPF_MAP_TYPE_DEVMAP_HASH: Type = 25;
  466. pub const BPF_MAP_TYPE_STRUCT_OPS: Type = 26;
  467. pub const BPF_MAP_TYPE_RINGBUF: Type = 27;
  468. pub const BPF_MAP_TYPE_INODE_STORAGE: Type = 28;
  469. pub const BPF_MAP_TYPE_TASK_STORAGE: Type = 29;
  470. pub const BPF_MAP_TYPE_BLOOM_FILTER: Type = 30;
  471. pub const BPF_MAP_TYPE_USER_RINGBUF: Type = 31;
  472. pub const BPF_MAP_TYPE_CGRP_STORAGE: Type = 32;
  473. }
  474. pub mod bpf_prog_type {
  475. pub type Type = ::aya_bpf_cty::c_uint;
  476. pub const BPF_PROG_TYPE_UNSPEC: Type = 0;
  477. pub const BPF_PROG_TYPE_SOCKET_FILTER: Type = 1;
  478. pub const BPF_PROG_TYPE_KPROBE: Type = 2;
  479. pub const BPF_PROG_TYPE_SCHED_CLS: Type = 3;
  480. pub const BPF_PROG_TYPE_SCHED_ACT: Type = 4;
  481. pub const BPF_PROG_TYPE_TRACEPOINT: Type = 5;
  482. pub const BPF_PROG_TYPE_XDP: Type = 6;
  483. pub const BPF_PROG_TYPE_PERF_EVENT: Type = 7;
  484. pub const BPF_PROG_TYPE_CGROUP_SKB: Type = 8;
  485. pub const BPF_PROG_TYPE_CGROUP_SOCK: Type = 9;
  486. pub const BPF_PROG_TYPE_LWT_IN: Type = 10;
  487. pub const BPF_PROG_TYPE_LWT_OUT: Type = 11;
  488. pub const BPF_PROG_TYPE_LWT_XMIT: Type = 12;
  489. pub const BPF_PROG_TYPE_SOCK_OPS: Type = 13;
  490. pub const BPF_PROG_TYPE_SK_SKB: Type = 14;
  491. pub const BPF_PROG_TYPE_CGROUP_DEVICE: Type = 15;
  492. pub const BPF_PROG_TYPE_SK_MSG: Type = 16;
  493. pub const BPF_PROG_TYPE_RAW_TRACEPOINT: Type = 17;
  494. pub const BPF_PROG_TYPE_CGROUP_SOCK_ADDR: Type = 18;
  495. pub const BPF_PROG_TYPE_LWT_SEG6LOCAL: Type = 19;
  496. pub const BPF_PROG_TYPE_LIRC_MODE2: Type = 20;
  497. pub const BPF_PROG_TYPE_SK_REUSEPORT: Type = 21;
  498. pub const BPF_PROG_TYPE_FLOW_DISSECTOR: Type = 22;
  499. pub const BPF_PROG_TYPE_CGROUP_SYSCTL: Type = 23;
  500. pub const BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: Type = 24;
  501. pub const BPF_PROG_TYPE_CGROUP_SOCKOPT: Type = 25;
  502. pub const BPF_PROG_TYPE_TRACING: Type = 26;
  503. pub const BPF_PROG_TYPE_STRUCT_OPS: Type = 27;
  504. pub const BPF_PROG_TYPE_EXT: Type = 28;
  505. pub const BPF_PROG_TYPE_LSM: Type = 29;
  506. pub const BPF_PROG_TYPE_SK_LOOKUP: Type = 30;
  507. pub const BPF_PROG_TYPE_SYSCALL: Type = 31;
  508. }
  509. pub mod bpf_attach_type {
  510. pub type Type = ::aya_bpf_cty::c_uint;
  511. pub const BPF_CGROUP_INET_INGRESS: Type = 0;
  512. pub const BPF_CGROUP_INET_EGRESS: Type = 1;
  513. pub const BPF_CGROUP_INET_SOCK_CREATE: Type = 2;
  514. pub const BPF_CGROUP_SOCK_OPS: Type = 3;
  515. pub const BPF_SK_SKB_STREAM_PARSER: Type = 4;
  516. pub const BPF_SK_SKB_STREAM_VERDICT: Type = 5;
  517. pub const BPF_CGROUP_DEVICE: Type = 6;
  518. pub const BPF_SK_MSG_VERDICT: Type = 7;
  519. pub const BPF_CGROUP_INET4_BIND: Type = 8;
  520. pub const BPF_CGROUP_INET6_BIND: Type = 9;
  521. pub const BPF_CGROUP_INET4_CONNECT: Type = 10;
  522. pub const BPF_CGROUP_INET6_CONNECT: Type = 11;
  523. pub const BPF_CGROUP_INET4_POST_BIND: Type = 12;
  524. pub const BPF_CGROUP_INET6_POST_BIND: Type = 13;
  525. pub const BPF_CGROUP_UDP4_SENDMSG: Type = 14;
  526. pub const BPF_CGROUP_UDP6_SENDMSG: Type = 15;
  527. pub const BPF_LIRC_MODE2: Type = 16;
  528. pub const BPF_FLOW_DISSECTOR: Type = 17;
  529. pub const BPF_CGROUP_SYSCTL: Type = 18;
  530. pub const BPF_CGROUP_UDP4_RECVMSG: Type = 19;
  531. pub const BPF_CGROUP_UDP6_RECVMSG: Type = 20;
  532. pub const BPF_CGROUP_GETSOCKOPT: Type = 21;
  533. pub const BPF_CGROUP_SETSOCKOPT: Type = 22;
  534. pub const BPF_TRACE_RAW_TP: Type = 23;
  535. pub const BPF_TRACE_FENTRY: Type = 24;
  536. pub const BPF_TRACE_FEXIT: Type = 25;
  537. pub const BPF_MODIFY_RETURN: Type = 26;
  538. pub const BPF_LSM_MAC: Type = 27;
  539. pub const BPF_TRACE_ITER: Type = 28;
  540. pub const BPF_CGROUP_INET4_GETPEERNAME: Type = 29;
  541. pub const BPF_CGROUP_INET6_GETPEERNAME: Type = 30;
  542. pub const BPF_CGROUP_INET4_GETSOCKNAME: Type = 31;
  543. pub const BPF_CGROUP_INET6_GETSOCKNAME: Type = 32;
  544. pub const BPF_XDP_DEVMAP: Type = 33;
  545. pub const BPF_CGROUP_INET_SOCK_RELEASE: Type = 34;
  546. pub const BPF_XDP_CPUMAP: Type = 35;
  547. pub const BPF_SK_LOOKUP: Type = 36;
  548. pub const BPF_XDP: Type = 37;
  549. pub const BPF_SK_SKB_VERDICT: Type = 38;
  550. pub const BPF_SK_REUSEPORT_SELECT: Type = 39;
  551. pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: Type = 40;
  552. pub const BPF_PERF_EVENT: Type = 41;
  553. pub const BPF_TRACE_KPROBE_MULTI: Type = 42;
  554. pub const BPF_LSM_CGROUP: Type = 43;
  555. pub const __MAX_BPF_ATTACH_TYPE: Type = 44;
  556. }
  557. pub mod bpf_link_type {
  558. pub type Type = ::aya_bpf_cty::c_uint;
  559. pub const BPF_LINK_TYPE_UNSPEC: Type = 0;
  560. pub const BPF_LINK_TYPE_RAW_TRACEPOINT: Type = 1;
  561. pub const BPF_LINK_TYPE_TRACING: Type = 2;
  562. pub const BPF_LINK_TYPE_CGROUP: Type = 3;
  563. pub const BPF_LINK_TYPE_ITER: Type = 4;
  564. pub const BPF_LINK_TYPE_NETNS: Type = 5;
  565. pub const BPF_LINK_TYPE_XDP: Type = 6;
  566. pub const BPF_LINK_TYPE_PERF_EVENT: Type = 7;
  567. pub const BPF_LINK_TYPE_KPROBE_MULTI: Type = 8;
  568. pub const BPF_LINK_TYPE_STRUCT_OPS: Type = 9;
  569. pub const MAX_BPF_LINK_TYPE: Type = 10;
  570. }
  571. pub const BPF_ANY: _bindgen_ty_2 = 0;
  572. pub const BPF_NOEXIST: _bindgen_ty_2 = 1;
  573. pub const BPF_EXIST: _bindgen_ty_2 = 2;
  574. pub const BPF_F_LOCK: _bindgen_ty_2 = 4;
  575. pub type _bindgen_ty_2 = ::aya_bpf_cty::c_uint;
  576. pub const BPF_F_NO_PREALLOC: _bindgen_ty_3 = 1;
  577. pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_3 = 2;
  578. pub const BPF_F_NUMA_NODE: _bindgen_ty_3 = 4;
  579. pub const BPF_F_RDONLY: _bindgen_ty_3 = 8;
  580. pub const BPF_F_WRONLY: _bindgen_ty_3 = 16;
  581. pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_3 = 32;
  582. pub const BPF_F_ZERO_SEED: _bindgen_ty_3 = 64;
  583. pub const BPF_F_RDONLY_PROG: _bindgen_ty_3 = 128;
  584. pub const BPF_F_WRONLY_PROG: _bindgen_ty_3 = 256;
  585. pub const BPF_F_CLONE: _bindgen_ty_3 = 512;
  586. pub const BPF_F_MMAPABLE: _bindgen_ty_3 = 1024;
  587. pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_3 = 2048;
  588. pub const BPF_F_INNER_MAP: _bindgen_ty_3 = 4096;
  589. pub type _bindgen_ty_3 = ::aya_bpf_cty::c_uint;
  590. pub mod bpf_stats_type {
  591. pub type Type = ::aya_bpf_cty::c_uint;
  592. pub const BPF_STATS_RUN_TIME: Type = 0;
  593. }
  594. pub mod bpf_stack_build_id_status {
  595. pub type Type = ::aya_bpf_cty::c_uint;
  596. pub const BPF_STACK_BUILD_ID_EMPTY: Type = 0;
  597. pub const BPF_STACK_BUILD_ID_VALID: Type = 1;
  598. pub const BPF_STACK_BUILD_ID_IP: Type = 2;
  599. }
  600. #[repr(C)]
  601. #[derive(Copy, Clone)]
  602. pub struct bpf_stack_build_id {
  603. pub status: __s32,
  604. pub build_id: [::aya_bpf_cty::c_uchar; 20usize],
  605. pub __bindgen_anon_1: bpf_stack_build_id__bindgen_ty_1,
  606. }
  607. #[repr(C)]
  608. #[derive(Copy, Clone)]
  609. pub union bpf_stack_build_id__bindgen_ty_1 {
  610. pub offset: __u64,
  611. pub ip: __u64,
  612. }
  613. #[repr(C)]
  614. #[derive(Copy, Clone)]
  615. pub union bpf_attr {
  616. pub __bindgen_anon_1: bpf_attr__bindgen_ty_1,
  617. pub __bindgen_anon_2: bpf_attr__bindgen_ty_2,
  618. pub batch: bpf_attr__bindgen_ty_3,
  619. pub __bindgen_anon_3: bpf_attr__bindgen_ty_4,
  620. pub __bindgen_anon_4: bpf_attr__bindgen_ty_5,
  621. pub __bindgen_anon_5: bpf_attr__bindgen_ty_6,
  622. pub test: bpf_attr__bindgen_ty_7,
  623. pub __bindgen_anon_6: bpf_attr__bindgen_ty_8,
  624. pub info: bpf_attr__bindgen_ty_9,
  625. pub query: bpf_attr__bindgen_ty_10,
  626. pub raw_tracepoint: bpf_attr__bindgen_ty_11,
  627. pub __bindgen_anon_7: bpf_attr__bindgen_ty_12,
  628. pub task_fd_query: bpf_attr__bindgen_ty_13,
  629. pub link_create: bpf_attr__bindgen_ty_14,
  630. pub link_update: bpf_attr__bindgen_ty_15,
  631. pub link_detach: bpf_attr__bindgen_ty_16,
  632. pub enable_stats: bpf_attr__bindgen_ty_17,
  633. pub iter_create: bpf_attr__bindgen_ty_18,
  634. pub prog_bind_map: bpf_attr__bindgen_ty_19,
  635. }
  636. #[repr(C)]
  637. #[derive(Debug, Copy, Clone)]
  638. pub struct bpf_attr__bindgen_ty_1 {
  639. pub map_type: __u32,
  640. pub key_size: __u32,
  641. pub value_size: __u32,
  642. pub max_entries: __u32,
  643. pub map_flags: __u32,
  644. pub inner_map_fd: __u32,
  645. pub numa_node: __u32,
  646. pub map_name: [::aya_bpf_cty::c_char; 16usize],
  647. pub map_ifindex: __u32,
  648. pub btf_fd: __u32,
  649. pub btf_key_type_id: __u32,
  650. pub btf_value_type_id: __u32,
  651. pub btf_vmlinux_value_type_id: __u32,
  652. pub map_extra: __u64,
  653. }
  654. #[repr(C)]
  655. #[derive(Copy, Clone)]
  656. pub struct bpf_attr__bindgen_ty_2 {
  657. pub map_fd: __u32,
  658. pub key: __u64,
  659. pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1,
  660. pub flags: __u64,
  661. }
  662. #[repr(C)]
  663. #[derive(Copy, Clone)]
  664. pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 {
  665. pub value: __u64,
  666. pub next_key: __u64,
  667. }
  668. #[repr(C)]
  669. #[derive(Debug, Copy, Clone)]
  670. pub struct bpf_attr__bindgen_ty_3 {
  671. pub in_batch: __u64,
  672. pub out_batch: __u64,
  673. pub keys: __u64,
  674. pub values: __u64,
  675. pub count: __u32,
  676. pub map_fd: __u32,
  677. pub elem_flags: __u64,
  678. pub flags: __u64,
  679. }
  680. #[repr(C)]
  681. #[derive(Copy, Clone)]
  682. pub struct bpf_attr__bindgen_ty_4 {
  683. pub prog_type: __u32,
  684. pub insn_cnt: __u32,
  685. pub insns: __u64,
  686. pub license: __u64,
  687. pub log_level: __u32,
  688. pub log_size: __u32,
  689. pub log_buf: __u64,
  690. pub kern_version: __u32,
  691. pub prog_flags: __u32,
  692. pub prog_name: [::aya_bpf_cty::c_char; 16usize],
  693. pub prog_ifindex: __u32,
  694. pub expected_attach_type: __u32,
  695. pub prog_btf_fd: __u32,
  696. pub func_info_rec_size: __u32,
  697. pub func_info: __u64,
  698. pub func_info_cnt: __u32,
  699. pub line_info_rec_size: __u32,
  700. pub line_info: __u64,
  701. pub line_info_cnt: __u32,
  702. pub attach_btf_id: __u32,
  703. pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1,
  704. pub core_relo_cnt: __u32,
  705. pub fd_array: __u64,
  706. pub core_relos: __u64,
  707. pub core_relo_rec_size: __u32,
  708. }
  709. #[repr(C)]
  710. #[derive(Copy, Clone)]
  711. pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 {
  712. pub attach_prog_fd: __u32,
  713. pub attach_btf_obj_fd: __u32,
  714. }
  715. #[repr(C)]
  716. #[derive(Debug, Copy, Clone)]
  717. pub struct bpf_attr__bindgen_ty_5 {
  718. pub pathname: __u64,
  719. pub bpf_fd: __u32,
  720. pub file_flags: __u32,
  721. }
  722. #[repr(C)]
  723. #[derive(Debug, Copy, Clone)]
  724. pub struct bpf_attr__bindgen_ty_6 {
  725. pub target_fd: __u32,
  726. pub attach_bpf_fd: __u32,
  727. pub attach_type: __u32,
  728. pub attach_flags: __u32,
  729. pub replace_bpf_fd: __u32,
  730. }
  731. #[repr(C)]
  732. #[derive(Debug, Copy, Clone)]
  733. pub struct bpf_attr__bindgen_ty_7 {
  734. pub prog_fd: __u32,
  735. pub retval: __u32,
  736. pub data_size_in: __u32,
  737. pub data_size_out: __u32,
  738. pub data_in: __u64,
  739. pub data_out: __u64,
  740. pub repeat: __u32,
  741. pub duration: __u32,
  742. pub ctx_size_in: __u32,
  743. pub ctx_size_out: __u32,
  744. pub ctx_in: __u64,
  745. pub ctx_out: __u64,
  746. pub flags: __u32,
  747. pub cpu: __u32,
  748. pub batch_size: __u32,
  749. }
  750. #[repr(C)]
  751. #[derive(Copy, Clone)]
  752. pub struct bpf_attr__bindgen_ty_8 {
  753. pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1,
  754. pub next_id: __u32,
  755. pub open_flags: __u32,
  756. }
  757. #[repr(C)]
  758. #[derive(Copy, Clone)]
  759. pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 {
  760. pub start_id: __u32,
  761. pub prog_id: __u32,
  762. pub map_id: __u32,
  763. pub btf_id: __u32,
  764. pub link_id: __u32,
  765. }
  766. #[repr(C)]
  767. #[derive(Debug, Copy, Clone)]
  768. pub struct bpf_attr__bindgen_ty_9 {
  769. pub bpf_fd: __u32,
  770. pub info_len: __u32,
  771. pub info: __u64,
  772. }
  773. #[repr(C)]
  774. #[derive(Debug, Copy, Clone)]
  775. pub struct bpf_attr__bindgen_ty_10 {
  776. pub target_fd: __u32,
  777. pub attach_type: __u32,
  778. pub query_flags: __u32,
  779. pub attach_flags: __u32,
  780. pub prog_ids: __u64,
  781. pub prog_cnt: __u32,
  782. pub prog_attach_flags: __u64,
  783. }
  784. #[repr(C)]
  785. #[derive(Debug, Copy, Clone)]
  786. pub struct bpf_attr__bindgen_ty_11 {
  787. pub name: __u64,
  788. pub prog_fd: __u32,
  789. }
  790. #[repr(C)]
  791. #[derive(Debug, Copy, Clone)]
  792. pub struct bpf_attr__bindgen_ty_12 {
  793. pub btf: __u64,
  794. pub btf_log_buf: __u64,
  795. pub btf_size: __u32,
  796. pub btf_log_size: __u32,
  797. pub btf_log_level: __u32,
  798. }
  799. #[repr(C)]
  800. #[derive(Debug, Copy, Clone)]
  801. pub struct bpf_attr__bindgen_ty_13 {
  802. pub pid: __u32,
  803. pub fd: __u32,
  804. pub flags: __u32,
  805. pub buf_len: __u32,
  806. pub buf: __u64,
  807. pub prog_id: __u32,
  808. pub fd_type: __u32,
  809. pub probe_offset: __u64,
  810. pub probe_addr: __u64,
  811. }
  812. #[repr(C)]
  813. #[derive(Copy, Clone)]
  814. pub struct bpf_attr__bindgen_ty_14 {
  815. pub prog_fd: __u32,
  816. pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_1,
  817. pub attach_type: __u32,
  818. pub flags: __u32,
  819. pub __bindgen_anon_2: bpf_attr__bindgen_ty_14__bindgen_ty_2,
  820. }
  821. #[repr(C)]
  822. #[derive(Copy, Clone)]
  823. pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 {
  824. pub target_fd: __u32,
  825. pub target_ifindex: __u32,
  826. }
  827. #[repr(C)]
  828. #[derive(Copy, Clone)]
  829. pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
  830. pub target_btf_id: __u32,
  831. pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_1,
  832. pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2,
  833. pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3,
  834. pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_4,
  835. }
  836. #[repr(C)]
  837. #[derive(Debug, Copy, Clone)]
  838. pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_1 {
  839. pub iter_info: __u64,
  840. pub iter_info_len: __u32,
  841. }
  842. #[repr(C)]
  843. #[derive(Debug, Copy, Clone)]
  844. pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_2 {
  845. pub bpf_cookie: __u64,
  846. }
  847. #[repr(C)]
  848. #[derive(Debug, Copy, Clone)]
  849. pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_3 {
  850. pub flags: __u32,
  851. pub cnt: __u32,
  852. pub syms: __u64,
  853. pub addrs: __u64,
  854. pub cookies: __u64,
  855. }
  856. #[repr(C)]
  857. #[derive(Debug, Copy, Clone)]
  858. pub struct bpf_attr__bindgen_ty_14__bindgen_ty_2__bindgen_ty_4 {
  859. pub target_btf_id: __u32,
  860. pub cookie: __u64,
  861. }
  862. #[repr(C)]
  863. #[derive(Debug, Copy, Clone)]
  864. pub struct bpf_attr__bindgen_ty_15 {
  865. pub link_fd: __u32,
  866. pub new_prog_fd: __u32,
  867. pub flags: __u32,
  868. pub old_prog_fd: __u32,
  869. }
  870. #[repr(C)]
  871. #[derive(Debug, Copy, Clone)]
  872. pub struct bpf_attr__bindgen_ty_16 {
  873. pub link_fd: __u32,
  874. }
  875. #[repr(C)]
  876. #[derive(Debug, Copy, Clone)]
  877. pub struct bpf_attr__bindgen_ty_17 {
  878. pub type_: __u32,
  879. }
  880. #[repr(C)]
  881. #[derive(Debug, Copy, Clone)]
  882. pub struct bpf_attr__bindgen_ty_18 {
  883. pub link_fd: __u32,
  884. pub flags: __u32,
  885. }
  886. #[repr(C)]
  887. #[derive(Debug, Copy, Clone)]
  888. pub struct bpf_attr__bindgen_ty_19 {
  889. pub prog_fd: __u32,
  890. pub map_fd: __u32,
  891. pub flags: __u32,
  892. }
  893. pub mod bpf_func_id {
  894. pub type Type = ::aya_bpf_cty::c_uint;
  895. pub const BPF_FUNC_unspec: Type = 0;
  896. pub const BPF_FUNC_map_lookup_elem: Type = 1;
  897. pub const BPF_FUNC_map_update_elem: Type = 2;
  898. pub const BPF_FUNC_map_delete_elem: Type = 3;
  899. pub const BPF_FUNC_probe_read: Type = 4;
  900. pub const BPF_FUNC_ktime_get_ns: Type = 5;
  901. pub const BPF_FUNC_trace_printk: Type = 6;
  902. pub const BPF_FUNC_get_prandom_u32: Type = 7;
  903. pub const BPF_FUNC_get_smp_processor_id: Type = 8;
  904. pub const BPF_FUNC_skb_store_bytes: Type = 9;
  905. pub const BPF_FUNC_l3_csum_replace: Type = 10;
  906. pub const BPF_FUNC_l4_csum_replace: Type = 11;
  907. pub const BPF_FUNC_tail_call: Type = 12;
  908. pub const BPF_FUNC_clone_redirect: Type = 13;
  909. pub const BPF_FUNC_get_current_pid_tgid: Type = 14;
  910. pub const BPF_FUNC_get_current_uid_gid: Type = 15;
  911. pub const BPF_FUNC_get_current_comm: Type = 16;
  912. pub const BPF_FUNC_get_cgroup_classid: Type = 17;
  913. pub const BPF_FUNC_skb_vlan_push: Type = 18;
  914. pub const BPF_FUNC_skb_vlan_pop: Type = 19;
  915. pub const BPF_FUNC_skb_get_tunnel_key: Type = 20;
  916. pub const BPF_FUNC_skb_set_tunnel_key: Type = 21;
  917. pub const BPF_FUNC_perf_event_read: Type = 22;
  918. pub const BPF_FUNC_redirect: Type = 23;
  919. pub const BPF_FUNC_get_route_realm: Type = 24;
  920. pub const BPF_FUNC_perf_event_output: Type = 25;
  921. pub const BPF_FUNC_skb_load_bytes: Type = 26;
  922. pub const BPF_FUNC_get_stackid: Type = 27;
  923. pub const BPF_FUNC_csum_diff: Type = 28;
  924. pub const BPF_FUNC_skb_get_tunnel_opt: Type = 29;
  925. pub const BPF_FUNC_skb_set_tunnel_opt: Type = 30;
  926. pub const BPF_FUNC_skb_change_proto: Type = 31;
  927. pub const BPF_FUNC_skb_change_type: Type = 32;
  928. pub const BPF_FUNC_skb_under_cgroup: Type = 33;
  929. pub const BPF_FUNC_get_hash_recalc: Type = 34;
  930. pub const BPF_FUNC_get_current_task: Type = 35;
  931. pub const BPF_FUNC_probe_write_user: Type = 36;
  932. pub const BPF_FUNC_current_task_under_cgroup: Type = 37;
  933. pub const BPF_FUNC_skb_change_tail: Type = 38;
  934. pub const BPF_FUNC_skb_pull_data: Type = 39;
  935. pub const BPF_FUNC_csum_update: Type = 40;
  936. pub const BPF_FUNC_set_hash_invalid: Type = 41;
  937. pub const BPF_FUNC_get_numa_node_id: Type = 42;
  938. pub const BPF_FUNC_skb_change_head: Type = 43;
  939. pub const BPF_FUNC_xdp_adjust_head: Type = 44;
  940. pub const BPF_FUNC_probe_read_str: Type = 45;
  941. pub const BPF_FUNC_get_socket_cookie: Type = 46;
  942. pub const BPF_FUNC_get_socket_uid: Type = 47;
  943. pub const BPF_FUNC_set_hash: Type = 48;
  944. pub const BPF_FUNC_setsockopt: Type = 49;
  945. pub const BPF_FUNC_skb_adjust_room: Type = 50;
  946. pub const BPF_FUNC_redirect_map: Type = 51;
  947. pub const BPF_FUNC_sk_redirect_map: Type = 52;
  948. pub const BPF_FUNC_sock_map_update: Type = 53;
  949. pub const BPF_FUNC_xdp_adjust_meta: Type = 54;
  950. pub const BPF_FUNC_perf_event_read_value: Type = 55;
  951. pub const BPF_FUNC_perf_prog_read_value: Type = 56;
  952. pub const BPF_FUNC_getsockopt: Type = 57;
  953. pub const BPF_FUNC_override_return: Type = 58;
  954. pub const BPF_FUNC_sock_ops_cb_flags_set: Type = 59;
  955. pub const BPF_FUNC_msg_redirect_map: Type = 60;
  956. pub const BPF_FUNC_msg_apply_bytes: Type = 61;
  957. pub const BPF_FUNC_msg_cork_bytes: Type = 62;
  958. pub const BPF_FUNC_msg_pull_data: Type = 63;
  959. pub const BPF_FUNC_bind: Type = 64;
  960. pub const BPF_FUNC_xdp_adjust_tail: Type = 65;
  961. pub const BPF_FUNC_skb_get_xfrm_state: Type = 66;
  962. pub const BPF_FUNC_get_stack: Type = 67;
  963. pub const BPF_FUNC_skb_load_bytes_relative: Type = 68;
  964. pub const BPF_FUNC_fib_lookup: Type = 69;
  965. pub const BPF_FUNC_sock_hash_update: Type = 70;
  966. pub const BPF_FUNC_msg_redirect_hash: Type = 71;
  967. pub const BPF_FUNC_sk_redirect_hash: Type = 72;
  968. pub const BPF_FUNC_lwt_push_encap: Type = 73;
  969. pub const BPF_FUNC_lwt_seg6_store_bytes: Type = 74;
  970. pub const BPF_FUNC_lwt_seg6_adjust_srh: Type = 75;
  971. pub const BPF_FUNC_lwt_seg6_action: Type = 76;
  972. pub const BPF_FUNC_rc_repeat: Type = 77;
  973. pub const BPF_FUNC_rc_keydown: Type = 78;
  974. pub const BPF_FUNC_skb_cgroup_id: Type = 79;
  975. pub const BPF_FUNC_get_current_cgroup_id: Type = 80;
  976. pub const BPF_FUNC_get_local_storage: Type = 81;
  977. pub const BPF_FUNC_sk_select_reuseport: Type = 82;
  978. pub const BPF_FUNC_skb_ancestor_cgroup_id: Type = 83;
  979. pub const BPF_FUNC_sk_lookup_tcp: Type = 84;
  980. pub const BPF_FUNC_sk_lookup_udp: Type = 85;
  981. pub const BPF_FUNC_sk_release: Type = 86;
  982. pub const BPF_FUNC_map_push_elem: Type = 87;
  983. pub const BPF_FUNC_map_pop_elem: Type = 88;
  984. pub const BPF_FUNC_map_peek_elem: Type = 89;
  985. pub const BPF_FUNC_msg_push_data: Type = 90;
  986. pub const BPF_FUNC_msg_pop_data: Type = 91;
  987. pub const BPF_FUNC_rc_pointer_rel: Type = 92;
  988. pub const BPF_FUNC_spin_lock: Type = 93;
  989. pub const BPF_FUNC_spin_unlock: Type = 94;
  990. pub const BPF_FUNC_sk_fullsock: Type = 95;
  991. pub const BPF_FUNC_tcp_sock: Type = 96;
  992. pub const BPF_FUNC_skb_ecn_set_ce: Type = 97;
  993. pub const BPF_FUNC_get_listener_sock: Type = 98;
  994. pub const BPF_FUNC_skc_lookup_tcp: Type = 99;
  995. pub const BPF_FUNC_tcp_check_syncookie: Type = 100;
  996. pub const BPF_FUNC_sysctl_get_name: Type = 101;
  997. pub const BPF_FUNC_sysctl_get_current_value: Type = 102;
  998. pub const BPF_FUNC_sysctl_get_new_value: Type = 103;
  999. pub const BPF_FUNC_sysctl_set_new_value: Type = 104;
  1000. pub const BPF_FUNC_strtol: Type = 105;
  1001. pub const BPF_FUNC_strtoul: Type = 106;
  1002. pub const BPF_FUNC_sk_storage_get: Type = 107;
  1003. pub const BPF_FUNC_sk_storage_delete: Type = 108;
  1004. pub const BPF_FUNC_send_signal: Type = 109;
  1005. pub const BPF_FUNC_tcp_gen_syncookie: Type = 110;
  1006. pub const BPF_FUNC_skb_output: Type = 111;
  1007. pub const BPF_FUNC_probe_read_user: Type = 112;
  1008. pub const BPF_FUNC_probe_read_kernel: Type = 113;
  1009. pub const BPF_FUNC_probe_read_user_str: Type = 114;
  1010. pub const BPF_FUNC_probe_read_kernel_str: Type = 115;
  1011. pub const BPF_FUNC_tcp_send_ack: Type = 116;
  1012. pub const BPF_FUNC_send_signal_thread: Type = 117;
  1013. pub const BPF_FUNC_jiffies64: Type = 118;
  1014. pub const BPF_FUNC_read_branch_records: Type = 119;
  1015. pub const BPF_FUNC_get_ns_current_pid_tgid: Type = 120;
  1016. pub const BPF_FUNC_xdp_output: Type = 121;
  1017. pub const BPF_FUNC_get_netns_cookie: Type = 122;
  1018. pub const BPF_FUNC_get_current_ancestor_cgroup_id: Type = 123;
  1019. pub const BPF_FUNC_sk_assign: Type = 124;
  1020. pub const BPF_FUNC_ktime_get_boot_ns: Type = 125;
  1021. pub const BPF_FUNC_seq_printf: Type = 126;
  1022. pub const BPF_FUNC_seq_write: Type = 127;
  1023. pub const BPF_FUNC_sk_cgroup_id: Type = 128;
  1024. pub const BPF_FUNC_sk_ancestor_cgroup_id: Type = 129;
  1025. pub const BPF_FUNC_ringbuf_output: Type = 130;
  1026. pub const BPF_FUNC_ringbuf_reserve: Type = 131;
  1027. pub const BPF_FUNC_ringbuf_submit: Type = 132;
  1028. pub const BPF_FUNC_ringbuf_discard: Type = 133;
  1029. pub const BPF_FUNC_ringbuf_query: Type = 134;
  1030. pub const BPF_FUNC_csum_level: Type = 135;
  1031. pub const BPF_FUNC_skc_to_tcp6_sock: Type = 136;
  1032. pub const BPF_FUNC_skc_to_tcp_sock: Type = 137;
  1033. pub const BPF_FUNC_skc_to_tcp_timewait_sock: Type = 138;
  1034. pub const BPF_FUNC_skc_to_tcp_request_sock: Type = 139;
  1035. pub const BPF_FUNC_skc_to_udp6_sock: Type = 140;
  1036. pub const BPF_FUNC_get_task_stack: Type = 141;
  1037. pub const BPF_FUNC_load_hdr_opt: Type = 142;
  1038. pub const BPF_FUNC_store_hdr_opt: Type = 143;
  1039. pub const BPF_FUNC_reserve_hdr_opt: Type = 144;
  1040. pub const BPF_FUNC_inode_storage_get: Type = 145;
  1041. pub const BPF_FUNC_inode_storage_delete: Type = 146;
  1042. pub const BPF_FUNC_d_path: Type = 147;
  1043. pub const BPF_FUNC_copy_from_user: Type = 148;
  1044. pub const BPF_FUNC_snprintf_btf: Type = 149;
  1045. pub const BPF_FUNC_seq_printf_btf: Type = 150;
  1046. pub const BPF_FUNC_skb_cgroup_classid: Type = 151;
  1047. pub const BPF_FUNC_redirect_neigh: Type = 152;
  1048. pub const BPF_FUNC_per_cpu_ptr: Type = 153;
  1049. pub const BPF_FUNC_this_cpu_ptr: Type = 154;
  1050. pub const BPF_FUNC_redirect_peer: Type = 155;
  1051. pub const BPF_FUNC_task_storage_get: Type = 156;
  1052. pub const BPF_FUNC_task_storage_delete: Type = 157;
  1053. pub const BPF_FUNC_get_current_task_btf: Type = 158;
  1054. pub const BPF_FUNC_bprm_opts_set: Type = 159;
  1055. pub const BPF_FUNC_ktime_get_coarse_ns: Type = 160;
  1056. pub const BPF_FUNC_ima_inode_hash: Type = 161;
  1057. pub const BPF_FUNC_sock_from_file: Type = 162;
  1058. pub const BPF_FUNC_check_mtu: Type = 163;
  1059. pub const BPF_FUNC_for_each_map_elem: Type = 164;
  1060. pub const BPF_FUNC_snprintf: Type = 165;
  1061. pub const BPF_FUNC_sys_bpf: Type = 166;
  1062. pub const BPF_FUNC_btf_find_by_name_kind: Type = 167;
  1063. pub const BPF_FUNC_sys_close: Type = 168;
  1064. pub const BPF_FUNC_timer_init: Type = 169;
  1065. pub const BPF_FUNC_timer_set_callback: Type = 170;
  1066. pub const BPF_FUNC_timer_start: Type = 171;
  1067. pub const BPF_FUNC_timer_cancel: Type = 172;
  1068. pub const BPF_FUNC_get_func_ip: Type = 173;
  1069. pub const BPF_FUNC_get_attach_cookie: Type = 174;
  1070. pub const BPF_FUNC_task_pt_regs: Type = 175;
  1071. pub const BPF_FUNC_get_branch_snapshot: Type = 176;
  1072. pub const BPF_FUNC_trace_vprintk: Type = 177;
  1073. pub const BPF_FUNC_skc_to_unix_sock: Type = 178;
  1074. pub const BPF_FUNC_kallsyms_lookup_name: Type = 179;
  1075. pub const BPF_FUNC_find_vma: Type = 180;
  1076. pub const BPF_FUNC_loop: Type = 181;
  1077. pub const BPF_FUNC_strncmp: Type = 182;
  1078. pub const BPF_FUNC_get_func_arg: Type = 183;
  1079. pub const BPF_FUNC_get_func_ret: Type = 184;
  1080. pub const BPF_FUNC_get_func_arg_cnt: Type = 185;
  1081. pub const BPF_FUNC_get_retval: Type = 186;
  1082. pub const BPF_FUNC_set_retval: Type = 187;
  1083. pub const BPF_FUNC_xdp_get_buff_len: Type = 188;
  1084. pub const BPF_FUNC_xdp_load_bytes: Type = 189;
  1085. pub const BPF_FUNC_xdp_store_bytes: Type = 190;
  1086. pub const BPF_FUNC_copy_from_user_task: Type = 191;
  1087. pub const BPF_FUNC_skb_set_tstamp: Type = 192;
  1088. pub const BPF_FUNC_ima_file_hash: Type = 193;
  1089. pub const BPF_FUNC_kptr_xchg: Type = 194;
  1090. pub const BPF_FUNC_map_lookup_percpu_elem: Type = 195;
  1091. pub const BPF_FUNC_skc_to_mptcp_sock: Type = 196;
  1092. pub const BPF_FUNC_dynptr_from_mem: Type = 197;
  1093. pub const BPF_FUNC_ringbuf_reserve_dynptr: Type = 198;
  1094. pub const BPF_FUNC_ringbuf_submit_dynptr: Type = 199;
  1095. pub const BPF_FUNC_ringbuf_discard_dynptr: Type = 200;
  1096. pub const BPF_FUNC_dynptr_read: Type = 201;
  1097. pub const BPF_FUNC_dynptr_write: Type = 202;
  1098. pub const BPF_FUNC_dynptr_data: Type = 203;
  1099. pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: Type = 204;
  1100. pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: Type = 205;
  1101. pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: Type = 206;
  1102. pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: Type = 207;
  1103. pub const BPF_FUNC_ktime_get_tai_ns: Type = 208;
  1104. pub const BPF_FUNC_user_ringbuf_drain: Type = 209;
  1105. pub const BPF_FUNC_cgrp_storage_get: Type = 210;
  1106. pub const BPF_FUNC_cgrp_storage_delete: Type = 211;
  1107. pub const __BPF_FUNC_MAX_ID: Type = 212;
  1108. }
  1109. pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_4 = 1;
  1110. pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_4 = 2;
  1111. pub type _bindgen_ty_4 = ::aya_bpf_cty::c_uint;
  1112. pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_5 = 15;
  1113. pub type _bindgen_ty_5 = ::aya_bpf_cty::c_uint;
  1114. pub const BPF_F_PSEUDO_HDR: _bindgen_ty_6 = 16;
  1115. pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_6 = 32;
  1116. pub const BPF_F_MARK_ENFORCE: _bindgen_ty_6 = 64;
  1117. pub type _bindgen_ty_6 = ::aya_bpf_cty::c_uint;
  1118. pub const BPF_F_INGRESS: _bindgen_ty_7 = 1;
  1119. pub type _bindgen_ty_7 = ::aya_bpf_cty::c_uint;
  1120. pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_8 = 1;
  1121. pub type _bindgen_ty_8 = ::aya_bpf_cty::c_uint;
  1122. pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_9 = 255;
  1123. pub const BPF_F_USER_STACK: _bindgen_ty_9 = 256;
  1124. pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_9 = 512;
  1125. pub const BPF_F_REUSE_STACKID: _bindgen_ty_9 = 1024;
  1126. pub const BPF_F_USER_BUILD_ID: _bindgen_ty_9 = 2048;
  1127. pub type _bindgen_ty_9 = ::aya_bpf_cty::c_uint;
  1128. pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_10 = 2;
  1129. pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_10 = 4;
  1130. pub const BPF_F_SEQ_NUMBER: _bindgen_ty_10 = 8;
  1131. pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_10 = 16;
  1132. pub type _bindgen_ty_10 = ::aya_bpf_cty::c_uint;
  1133. pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_11 = 16;
  1134. pub type _bindgen_ty_11 = ::aya_bpf_cty::c_uint;
  1135. pub const BPF_F_INDEX_MASK: _bindgen_ty_12 = 4294967295;
  1136. pub const BPF_F_CURRENT_CPU: _bindgen_ty_12 = 4294967295;
  1137. pub const BPF_F_CTXLEN_MASK: _bindgen_ty_12 = 4503595332403200;
  1138. pub type _bindgen_ty_12 = ::aya_bpf_cty::c_ulong;
  1139. pub const BPF_F_CURRENT_NETNS: _bindgen_ty_13 = -1;
  1140. pub type _bindgen_ty_13 = ::aya_bpf_cty::c_int;
  1141. pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_14 = 0;
  1142. pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_14 = 1;
  1143. pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_14 = 2;
  1144. pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_14 = 3;
  1145. pub type _bindgen_ty_14 = ::aya_bpf_cty::c_uint;
  1146. pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_15 = 1;
  1147. pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_15 = 2;
  1148. pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_15 = 4;
  1149. pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_15 = 8;
  1150. pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_15 = 16;
  1151. pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_15 = 32;
  1152. pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_15 = 64;
  1153. pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_15 = 128;
  1154. pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_15 = 256;
  1155. pub type _bindgen_ty_15 = ::aya_bpf_cty::c_uint;
  1156. pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_16 = 255;
  1157. pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_16 = 56;
  1158. pub type _bindgen_ty_16 = ::aya_bpf_cty::c_uint;
  1159. pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_17 = 1;
  1160. pub type _bindgen_ty_17 = ::aya_bpf_cty::c_uint;
  1161. pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_18 = 1;
  1162. pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_18 = 1;
  1163. pub type _bindgen_ty_18 = ::aya_bpf_cty::c_uint;
  1164. pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_19 = 1;
  1165. pub type _bindgen_ty_19 = ::aya_bpf_cty::c_uint;
  1166. pub const BPF_RB_NO_WAKEUP: _bindgen_ty_20 = 1;
  1167. pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_20 = 2;
  1168. pub type _bindgen_ty_20 = ::aya_bpf_cty::c_uint;
  1169. pub const BPF_RB_AVAIL_DATA: _bindgen_ty_21 = 0;
  1170. pub const BPF_RB_RING_SIZE: _bindgen_ty_21 = 1;
  1171. pub const BPF_RB_CONS_POS: _bindgen_ty_21 = 2;
  1172. pub const BPF_RB_PROD_POS: _bindgen_ty_21 = 3;
  1173. pub type _bindgen_ty_21 = ::aya_bpf_cty::c_uint;
  1174. pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_22 = 2147483648;
  1175. pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_22 = 1073741824;
  1176. pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_22 = 8;
  1177. pub type _bindgen_ty_22 = ::aya_bpf_cty::c_uint;
  1178. pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_23 = 1;
  1179. pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_23 = 2;
  1180. pub type _bindgen_ty_23 = ::aya_bpf_cty::c_uint;
  1181. pub mod bpf_adj_room_mode {
  1182. pub type Type = ::aya_bpf_cty::c_uint;
  1183. pub const BPF_ADJ_ROOM_NET: Type = 0;
  1184. pub const BPF_ADJ_ROOM_MAC: Type = 1;
  1185. }
  1186. pub mod bpf_hdr_start_off {
  1187. pub type Type = ::aya_bpf_cty::c_uint;
  1188. pub const BPF_HDR_START_MAC: Type = 0;
  1189. pub const BPF_HDR_START_NET: Type = 1;
  1190. }
  1191. pub mod bpf_lwt_encap_mode {
  1192. pub type Type = ::aya_bpf_cty::c_uint;
  1193. pub const BPF_LWT_ENCAP_SEG6: Type = 0;
  1194. pub const BPF_LWT_ENCAP_SEG6_INLINE: Type = 1;
  1195. pub const BPF_LWT_ENCAP_IP: Type = 2;
  1196. }
  1197. pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_24 = 1;
  1198. pub type _bindgen_ty_24 = ::aya_bpf_cty::c_uint;
  1199. pub const BPF_F_BROADCAST: _bindgen_ty_25 = 8;
  1200. pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_25 = 16;
  1201. pub type _bindgen_ty_25 = ::aya_bpf_cty::c_uint;
  1202. pub mod _bindgen_ty_26 {
  1203. pub type Type = ::aya_bpf_cty::c_uint;
  1204. pub const BPF_SKB_TSTAMP_UNSPEC: Type = 0;
  1205. pub const BPF_SKB_TSTAMP_DELIVERY_MONO: Type = 1;
  1206. }
  1207. #[repr(C)]
  1208. #[derive(Copy, Clone)]
  1209. pub struct __sk_buff {
  1210. pub len: __u32,
  1211. pub pkt_type: __u32,
  1212. pub mark: __u32,
  1213. pub queue_mapping: __u32,
  1214. pub protocol: __u32,
  1215. pub vlan_present: __u32,
  1216. pub vlan_tci: __u32,
  1217. pub vlan_proto: __u32,
  1218. pub priority: __u32,
  1219. pub ingress_ifindex: __u32,
  1220. pub ifindex: __u32,
  1221. pub tc_index: __u32,
  1222. pub cb: [__u32; 5usize],
  1223. pub hash: __u32,
  1224. pub tc_classid: __u32,
  1225. pub data: __u32,
  1226. pub data_end: __u32,
  1227. pub napi_id: __u32,
  1228. pub family: __u32,
  1229. pub remote_ip4: __u32,
  1230. pub local_ip4: __u32,
  1231. pub remote_ip6: [__u32; 4usize],
  1232. pub local_ip6: [__u32; 4usize],
  1233. pub remote_port: __u32,
  1234. pub local_port: __u32,
  1235. pub data_meta: __u32,
  1236. pub __bindgen_anon_1: __sk_buff__bindgen_ty_1,
  1237. pub tstamp: __u64,
  1238. pub wire_len: __u32,
  1239. pub gso_segs: __u32,
  1240. pub __bindgen_anon_2: __sk_buff__bindgen_ty_2,
  1241. pub gso_size: __u32,
  1242. pub tstamp_type: __u8,
  1243. pub _bitfield_align_1: [u8; 0],
  1244. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 3usize]>,
  1245. pub hwtstamp: __u64,
  1246. }
  1247. #[repr(C)]
  1248. #[derive(Copy, Clone)]
  1249. pub union __sk_buff__bindgen_ty_1 {
  1250. pub flow_keys: *mut bpf_flow_keys,
  1251. pub _bitfield_align_1: [u8; 0],
  1252. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1253. }
  1254. impl __sk_buff__bindgen_ty_1 {
  1255. #[inline]
  1256. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1257. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1258. __bindgen_bitfield_unit
  1259. }
  1260. }
  1261. #[repr(C)]
  1262. #[derive(Copy, Clone)]
  1263. pub union __sk_buff__bindgen_ty_2 {
  1264. pub sk: *mut bpf_sock,
  1265. pub _bitfield_align_1: [u8; 0],
  1266. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1267. }
  1268. impl __sk_buff__bindgen_ty_2 {
  1269. #[inline]
  1270. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1271. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1272. __bindgen_bitfield_unit
  1273. }
  1274. }
  1275. impl __sk_buff {
  1276. #[inline]
  1277. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 3usize]> {
  1278. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 3usize]> = Default::default();
  1279. __bindgen_bitfield_unit
  1280. }
  1281. }
  1282. #[repr(C)]
  1283. #[derive(Copy, Clone)]
  1284. pub struct bpf_tunnel_key {
  1285. pub tunnel_id: __u32,
  1286. pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
  1287. pub tunnel_tos: __u8,
  1288. pub tunnel_ttl: __u8,
  1289. pub __bindgen_anon_2: bpf_tunnel_key__bindgen_ty_2,
  1290. pub tunnel_label: __u32,
  1291. pub __bindgen_anon_3: bpf_tunnel_key__bindgen_ty_3,
  1292. }
  1293. #[repr(C)]
  1294. #[derive(Copy, Clone)]
  1295. pub union bpf_tunnel_key__bindgen_ty_1 {
  1296. pub remote_ipv4: __u32,
  1297. pub remote_ipv6: [__u32; 4usize],
  1298. }
  1299. #[repr(C)]
  1300. #[derive(Copy, Clone)]
  1301. pub union bpf_tunnel_key__bindgen_ty_2 {
  1302. pub tunnel_ext: __u16,
  1303. pub tunnel_flags: __be16,
  1304. }
  1305. #[repr(C)]
  1306. #[derive(Copy, Clone)]
  1307. pub union bpf_tunnel_key__bindgen_ty_3 {
  1308. pub local_ipv4: __u32,
  1309. pub local_ipv6: [__u32; 4usize],
  1310. }
  1311. #[repr(C)]
  1312. #[derive(Copy, Clone)]
  1313. pub struct bpf_xfrm_state {
  1314. pub reqid: __u32,
  1315. pub spi: __u32,
  1316. pub family: __u16,
  1317. pub ext: __u16,
  1318. pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
  1319. }
  1320. #[repr(C)]
  1321. #[derive(Copy, Clone)]
  1322. pub union bpf_xfrm_state__bindgen_ty_1 {
  1323. pub remote_ipv4: __u32,
  1324. pub remote_ipv6: [__u32; 4usize],
  1325. }
  1326. pub mod bpf_ret_code {
  1327. pub type Type = ::aya_bpf_cty::c_uint;
  1328. pub const BPF_OK: Type = 0;
  1329. pub const BPF_DROP: Type = 2;
  1330. pub const BPF_REDIRECT: Type = 7;
  1331. pub const BPF_LWT_REROUTE: Type = 128;
  1332. pub const BPF_FLOW_DISSECTOR_CONTINUE: Type = 129;
  1333. }
  1334. #[repr(C)]
  1335. #[derive(Debug, Copy, Clone)]
  1336. pub struct bpf_sock {
  1337. pub bound_dev_if: __u32,
  1338. pub family: __u32,
  1339. pub type_: __u32,
  1340. pub protocol: __u32,
  1341. pub mark: __u32,
  1342. pub priority: __u32,
  1343. pub src_ip4: __u32,
  1344. pub src_ip6: [__u32; 4usize],
  1345. pub src_port: __u32,
  1346. pub dst_port: __be16,
  1347. pub _bitfield_align_1: [u8; 0],
  1348. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
  1349. pub dst_ip4: __u32,
  1350. pub dst_ip6: [__u32; 4usize],
  1351. pub state: __u32,
  1352. pub rx_queue_mapping: __s32,
  1353. }
  1354. impl bpf_sock {
  1355. #[inline]
  1356. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
  1357. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
  1358. __bindgen_bitfield_unit
  1359. }
  1360. }
  1361. #[repr(C)]
  1362. #[derive(Debug, Copy, Clone)]
  1363. pub struct bpf_tcp_sock {
  1364. pub snd_cwnd: __u32,
  1365. pub srtt_us: __u32,
  1366. pub rtt_min: __u32,
  1367. pub snd_ssthresh: __u32,
  1368. pub rcv_nxt: __u32,
  1369. pub snd_nxt: __u32,
  1370. pub snd_una: __u32,
  1371. pub mss_cache: __u32,
  1372. pub ecn_flags: __u32,
  1373. pub rate_delivered: __u32,
  1374. pub rate_interval_us: __u32,
  1375. pub packets_out: __u32,
  1376. pub retrans_out: __u32,
  1377. pub total_retrans: __u32,
  1378. pub segs_in: __u32,
  1379. pub data_segs_in: __u32,
  1380. pub segs_out: __u32,
  1381. pub data_segs_out: __u32,
  1382. pub lost_out: __u32,
  1383. pub sacked_out: __u32,
  1384. pub bytes_received: __u64,
  1385. pub bytes_acked: __u64,
  1386. pub dsack_dups: __u32,
  1387. pub delivered: __u32,
  1388. pub delivered_ce: __u32,
  1389. pub icsk_retransmits: __u32,
  1390. }
  1391. #[repr(C)]
  1392. #[derive(Copy, Clone)]
  1393. pub struct bpf_sock_tuple {
  1394. pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
  1395. }
  1396. #[repr(C)]
  1397. #[derive(Copy, Clone)]
  1398. pub union bpf_sock_tuple__bindgen_ty_1 {
  1399. pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
  1400. pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
  1401. }
  1402. #[repr(C)]
  1403. #[derive(Debug, Copy, Clone)]
  1404. pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
  1405. pub saddr: __be32,
  1406. pub daddr: __be32,
  1407. pub sport: __be16,
  1408. pub dport: __be16,
  1409. }
  1410. #[repr(C)]
  1411. #[derive(Debug, Copy, Clone)]
  1412. pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
  1413. pub saddr: [__be32; 4usize],
  1414. pub daddr: [__be32; 4usize],
  1415. pub sport: __be16,
  1416. pub dport: __be16,
  1417. }
  1418. #[repr(C)]
  1419. #[derive(Debug, Copy, Clone)]
  1420. pub struct bpf_xdp_sock {
  1421. pub queue_id: __u32,
  1422. }
  1423. pub mod xdp_action {
  1424. pub type Type = ::aya_bpf_cty::c_uint;
  1425. pub const XDP_ABORTED: Type = 0;
  1426. pub const XDP_DROP: Type = 1;
  1427. pub const XDP_PASS: Type = 2;
  1428. pub const XDP_TX: Type = 3;
  1429. pub const XDP_REDIRECT: Type = 4;
  1430. }
  1431. #[repr(C)]
  1432. #[derive(Debug, Copy, Clone)]
  1433. pub struct xdp_md {
  1434. pub data: __u32,
  1435. pub data_end: __u32,
  1436. pub data_meta: __u32,
  1437. pub ingress_ifindex: __u32,
  1438. pub rx_queue_index: __u32,
  1439. pub egress_ifindex: __u32,
  1440. }
  1441. #[repr(C)]
  1442. #[derive(Copy, Clone)]
  1443. pub struct bpf_devmap_val {
  1444. pub ifindex: __u32,
  1445. pub bpf_prog: bpf_devmap_val__bindgen_ty_1,
  1446. }
  1447. #[repr(C)]
  1448. #[derive(Copy, Clone)]
  1449. pub union bpf_devmap_val__bindgen_ty_1 {
  1450. pub fd: ::aya_bpf_cty::c_int,
  1451. pub id: __u32,
  1452. }
  1453. #[repr(C)]
  1454. #[derive(Copy, Clone)]
  1455. pub struct bpf_cpumap_val {
  1456. pub qsize: __u32,
  1457. pub bpf_prog: bpf_cpumap_val__bindgen_ty_1,
  1458. }
  1459. #[repr(C)]
  1460. #[derive(Copy, Clone)]
  1461. pub union bpf_cpumap_val__bindgen_ty_1 {
  1462. pub fd: ::aya_bpf_cty::c_int,
  1463. pub id: __u32,
  1464. }
  1465. pub mod sk_action {
  1466. pub type Type = ::aya_bpf_cty::c_uint;
  1467. pub const SK_DROP: Type = 0;
  1468. pub const SK_PASS: Type = 1;
  1469. }
  1470. #[repr(C)]
  1471. #[derive(Copy, Clone)]
  1472. pub struct sk_msg_md {
  1473. pub __bindgen_anon_1: sk_msg_md__bindgen_ty_1,
  1474. pub __bindgen_anon_2: sk_msg_md__bindgen_ty_2,
  1475. pub family: __u32,
  1476. pub remote_ip4: __u32,
  1477. pub local_ip4: __u32,
  1478. pub remote_ip6: [__u32; 4usize],
  1479. pub local_ip6: [__u32; 4usize],
  1480. pub remote_port: __u32,
  1481. pub local_port: __u32,
  1482. pub size: __u32,
  1483. pub __bindgen_anon_3: sk_msg_md__bindgen_ty_3,
  1484. }
  1485. #[repr(C)]
  1486. #[derive(Copy, Clone)]
  1487. pub union sk_msg_md__bindgen_ty_1 {
  1488. pub data: *mut ::aya_bpf_cty::c_void,
  1489. pub _bitfield_align_1: [u8; 0],
  1490. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1491. }
  1492. impl sk_msg_md__bindgen_ty_1 {
  1493. #[inline]
  1494. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1495. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1496. __bindgen_bitfield_unit
  1497. }
  1498. }
  1499. #[repr(C)]
  1500. #[derive(Copy, Clone)]
  1501. pub union sk_msg_md__bindgen_ty_2 {
  1502. pub data_end: *mut ::aya_bpf_cty::c_void,
  1503. pub _bitfield_align_1: [u8; 0],
  1504. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1505. }
  1506. impl sk_msg_md__bindgen_ty_2 {
  1507. #[inline]
  1508. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1509. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1510. __bindgen_bitfield_unit
  1511. }
  1512. }
  1513. #[repr(C)]
  1514. #[derive(Copy, Clone)]
  1515. pub union sk_msg_md__bindgen_ty_3 {
  1516. pub sk: *mut bpf_sock,
  1517. pub _bitfield_align_1: [u8; 0],
  1518. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1519. }
  1520. impl sk_msg_md__bindgen_ty_3 {
  1521. #[inline]
  1522. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1523. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1524. __bindgen_bitfield_unit
  1525. }
  1526. }
  1527. #[repr(C)]
  1528. #[derive(Copy, Clone)]
  1529. pub struct sk_reuseport_md {
  1530. pub __bindgen_anon_1: sk_reuseport_md__bindgen_ty_1,
  1531. pub __bindgen_anon_2: sk_reuseport_md__bindgen_ty_2,
  1532. pub len: __u32,
  1533. pub eth_protocol: __u32,
  1534. pub ip_protocol: __u32,
  1535. pub bind_inany: __u32,
  1536. pub hash: __u32,
  1537. pub __bindgen_anon_3: sk_reuseport_md__bindgen_ty_3,
  1538. pub __bindgen_anon_4: sk_reuseport_md__bindgen_ty_4,
  1539. }
  1540. #[repr(C)]
  1541. #[derive(Copy, Clone)]
  1542. pub union sk_reuseport_md__bindgen_ty_1 {
  1543. pub data: *mut ::aya_bpf_cty::c_void,
  1544. pub _bitfield_align_1: [u8; 0],
  1545. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1546. }
  1547. impl sk_reuseport_md__bindgen_ty_1 {
  1548. #[inline]
  1549. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1550. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1551. __bindgen_bitfield_unit
  1552. }
  1553. }
  1554. #[repr(C)]
  1555. #[derive(Copy, Clone)]
  1556. pub union sk_reuseport_md__bindgen_ty_2 {
  1557. pub data_end: *mut ::aya_bpf_cty::c_void,
  1558. pub _bitfield_align_1: [u8; 0],
  1559. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1560. }
  1561. impl sk_reuseport_md__bindgen_ty_2 {
  1562. #[inline]
  1563. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1564. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1565. __bindgen_bitfield_unit
  1566. }
  1567. }
  1568. #[repr(C)]
  1569. #[derive(Copy, Clone)]
  1570. pub union sk_reuseport_md__bindgen_ty_3 {
  1571. pub sk: *mut bpf_sock,
  1572. pub _bitfield_align_1: [u8; 0],
  1573. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1574. }
  1575. impl sk_reuseport_md__bindgen_ty_3 {
  1576. #[inline]
  1577. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1578. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1579. __bindgen_bitfield_unit
  1580. }
  1581. }
  1582. #[repr(C)]
  1583. #[derive(Copy, Clone)]
  1584. pub union sk_reuseport_md__bindgen_ty_4 {
  1585. pub migrating_sk: *mut bpf_sock,
  1586. pub _bitfield_align_1: [u8; 0],
  1587. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1588. }
  1589. impl sk_reuseport_md__bindgen_ty_4 {
  1590. #[inline]
  1591. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1592. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1593. __bindgen_bitfield_unit
  1594. }
  1595. }
  1596. #[repr(C)]
  1597. #[derive(Debug, Copy, Clone)]
  1598. pub struct bpf_prog_info {
  1599. pub type_: __u32,
  1600. pub id: __u32,
  1601. pub tag: [__u8; 8usize],
  1602. pub jited_prog_len: __u32,
  1603. pub xlated_prog_len: __u32,
  1604. pub jited_prog_insns: __u64,
  1605. pub xlated_prog_insns: __u64,
  1606. pub load_time: __u64,
  1607. pub created_by_uid: __u32,
  1608. pub nr_map_ids: __u32,
  1609. pub map_ids: __u64,
  1610. pub name: [::aya_bpf_cty::c_char; 16usize],
  1611. pub ifindex: __u32,
  1612. pub _bitfield_align_1: [u8; 0],
  1613. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
  1614. pub netns_dev: __u64,
  1615. pub netns_ino: __u64,
  1616. pub nr_jited_ksyms: __u32,
  1617. pub nr_jited_func_lens: __u32,
  1618. pub jited_ksyms: __u64,
  1619. pub jited_func_lens: __u64,
  1620. pub btf_id: __u32,
  1621. pub func_info_rec_size: __u32,
  1622. pub func_info: __u64,
  1623. pub nr_func_info: __u32,
  1624. pub nr_line_info: __u32,
  1625. pub line_info: __u64,
  1626. pub jited_line_info: __u64,
  1627. pub nr_jited_line_info: __u32,
  1628. pub line_info_rec_size: __u32,
  1629. pub jited_line_info_rec_size: __u32,
  1630. pub nr_prog_tags: __u32,
  1631. pub prog_tags: __u64,
  1632. pub run_time_ns: __u64,
  1633. pub run_cnt: __u64,
  1634. pub recursion_misses: __u64,
  1635. pub verified_insns: __u32,
  1636. pub attach_btf_obj_id: __u32,
  1637. pub attach_btf_id: __u32,
  1638. }
  1639. impl bpf_prog_info {
  1640. #[inline]
  1641. pub fn gpl_compatible(&self) -> __u32 {
  1642. unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
  1643. }
  1644. #[inline]
  1645. pub fn set_gpl_compatible(&mut self, val: __u32) {
  1646. unsafe {
  1647. let val: u32 = ::core::mem::transmute(val);
  1648. self._bitfield_1.set(0usize, 1u8, val as u64)
  1649. }
  1650. }
  1651. #[inline]
  1652. pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
  1653. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
  1654. __bindgen_bitfield_unit.set(0usize, 1u8, {
  1655. let gpl_compatible: u32 = unsafe { ::core::mem::transmute(gpl_compatible) };
  1656. gpl_compatible as u64
  1657. });
  1658. __bindgen_bitfield_unit
  1659. }
  1660. }
  1661. #[repr(C)]
  1662. #[derive(Debug, Copy, Clone)]
  1663. pub struct bpf_map_info {
  1664. pub type_: __u32,
  1665. pub id: __u32,
  1666. pub key_size: __u32,
  1667. pub value_size: __u32,
  1668. pub max_entries: __u32,
  1669. pub map_flags: __u32,
  1670. pub name: [::aya_bpf_cty::c_char; 16usize],
  1671. pub ifindex: __u32,
  1672. pub btf_vmlinux_value_type_id: __u32,
  1673. pub netns_dev: __u64,
  1674. pub netns_ino: __u64,
  1675. pub btf_id: __u32,
  1676. pub btf_key_type_id: __u32,
  1677. pub btf_value_type_id: __u32,
  1678. pub _bitfield_align_1: [u8; 0],
  1679. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
  1680. pub map_extra: __u64,
  1681. }
  1682. impl bpf_map_info {
  1683. #[inline]
  1684. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
  1685. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
  1686. __bindgen_bitfield_unit
  1687. }
  1688. }
  1689. #[repr(C)]
  1690. #[derive(Debug, Copy, Clone)]
  1691. pub struct bpf_btf_info {
  1692. pub btf: __u64,
  1693. pub btf_size: __u32,
  1694. pub id: __u32,
  1695. pub name: __u64,
  1696. pub name_len: __u32,
  1697. pub kernel_btf: __u32,
  1698. }
  1699. #[repr(C)]
  1700. #[derive(Copy, Clone)]
  1701. pub struct bpf_link_info {
  1702. pub type_: __u32,
  1703. pub id: __u32,
  1704. pub prog_id: __u32,
  1705. pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
  1706. }
  1707. #[repr(C)]
  1708. #[derive(Copy, Clone)]
  1709. pub union bpf_link_info__bindgen_ty_1 {
  1710. pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
  1711. pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
  1712. pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
  1713. pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
  1714. pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
  1715. pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
  1716. }
  1717. #[repr(C)]
  1718. #[derive(Debug, Copy, Clone)]
  1719. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
  1720. pub tp_name: __u64,
  1721. pub tp_name_len: __u32,
  1722. }
  1723. #[repr(C)]
  1724. #[derive(Debug, Copy, Clone)]
  1725. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
  1726. pub attach_type: __u32,
  1727. pub target_obj_id: __u32,
  1728. pub target_btf_id: __u32,
  1729. }
  1730. #[repr(C)]
  1731. #[derive(Debug, Copy, Clone)]
  1732. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
  1733. pub cgroup_id: __u64,
  1734. pub attach_type: __u32,
  1735. }
  1736. #[repr(C)]
  1737. #[derive(Copy, Clone)]
  1738. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
  1739. pub target_name: __u64,
  1740. pub target_name_len: __u32,
  1741. pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
  1742. pub __bindgen_anon_2: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2,
  1743. }
  1744. #[repr(C)]
  1745. #[derive(Copy, Clone)]
  1746. pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
  1747. pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
  1748. }
  1749. #[repr(C)]
  1750. #[derive(Debug, Copy, Clone)]
  1751. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
  1752. pub map_id: __u32,
  1753. }
  1754. #[repr(C)]
  1755. #[derive(Copy, Clone)]
  1756. pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 {
  1757. pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1,
  1758. pub task: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2,
  1759. }
  1760. #[repr(C)]
  1761. #[derive(Debug, Copy, Clone)]
  1762. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 {
  1763. pub cgroup_id: __u64,
  1764. pub order: __u32,
  1765. }
  1766. #[repr(C)]
  1767. #[derive(Debug, Copy, Clone)]
  1768. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 {
  1769. pub tid: __u32,
  1770. pub pid: __u32,
  1771. }
  1772. #[repr(C)]
  1773. #[derive(Debug, Copy, Clone)]
  1774. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
  1775. pub netns_ino: __u32,
  1776. pub attach_type: __u32,
  1777. }
  1778. #[repr(C)]
  1779. #[derive(Debug, Copy, Clone)]
  1780. pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
  1781. pub ifindex: __u32,
  1782. }
  1783. #[repr(C)]
  1784. #[derive(Copy, Clone)]
  1785. pub struct bpf_sock_addr {
  1786. pub user_family: __u32,
  1787. pub user_ip4: __u32,
  1788. pub user_ip6: [__u32; 4usize],
  1789. pub user_port: __u32,
  1790. pub family: __u32,
  1791. pub type_: __u32,
  1792. pub protocol: __u32,
  1793. pub msg_src_ip4: __u32,
  1794. pub msg_src_ip6: [__u32; 4usize],
  1795. pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
  1796. }
  1797. #[repr(C)]
  1798. #[derive(Copy, Clone)]
  1799. pub union bpf_sock_addr__bindgen_ty_1 {
  1800. pub sk: *mut bpf_sock,
  1801. pub _bitfield_align_1: [u8; 0],
  1802. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1803. }
  1804. impl bpf_sock_addr__bindgen_ty_1 {
  1805. #[inline]
  1806. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1807. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1808. __bindgen_bitfield_unit
  1809. }
  1810. }
  1811. #[repr(C)]
  1812. #[derive(Copy, Clone)]
  1813. pub struct bpf_sock_ops {
  1814. pub op: __u32,
  1815. pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
  1816. pub family: __u32,
  1817. pub remote_ip4: __u32,
  1818. pub local_ip4: __u32,
  1819. pub remote_ip6: [__u32; 4usize],
  1820. pub local_ip6: [__u32; 4usize],
  1821. pub remote_port: __u32,
  1822. pub local_port: __u32,
  1823. pub is_fullsock: __u32,
  1824. pub snd_cwnd: __u32,
  1825. pub srtt_us: __u32,
  1826. pub bpf_sock_ops_cb_flags: __u32,
  1827. pub state: __u32,
  1828. pub rtt_min: __u32,
  1829. pub snd_ssthresh: __u32,
  1830. pub rcv_nxt: __u32,
  1831. pub snd_nxt: __u32,
  1832. pub snd_una: __u32,
  1833. pub mss_cache: __u32,
  1834. pub ecn_flags: __u32,
  1835. pub rate_delivered: __u32,
  1836. pub rate_interval_us: __u32,
  1837. pub packets_out: __u32,
  1838. pub retrans_out: __u32,
  1839. pub total_retrans: __u32,
  1840. pub segs_in: __u32,
  1841. pub data_segs_in: __u32,
  1842. pub segs_out: __u32,
  1843. pub data_segs_out: __u32,
  1844. pub lost_out: __u32,
  1845. pub sacked_out: __u32,
  1846. pub sk_txhash: __u32,
  1847. pub bytes_received: __u64,
  1848. pub bytes_acked: __u64,
  1849. pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
  1850. pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
  1851. pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
  1852. pub skb_len: __u32,
  1853. pub skb_tcp_flags: __u32,
  1854. pub skb_hwtstamp: __u64,
  1855. }
  1856. #[repr(C)]
  1857. #[derive(Copy, Clone)]
  1858. pub union bpf_sock_ops__bindgen_ty_1 {
  1859. pub args: [__u32; 4usize],
  1860. pub reply: __u32,
  1861. pub replylong: [__u32; 4usize],
  1862. }
  1863. #[repr(C)]
  1864. #[derive(Copy, Clone)]
  1865. pub union bpf_sock_ops__bindgen_ty_2 {
  1866. pub sk: *mut bpf_sock,
  1867. pub _bitfield_align_1: [u8; 0],
  1868. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1869. }
  1870. impl bpf_sock_ops__bindgen_ty_2 {
  1871. #[inline]
  1872. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1873. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1874. __bindgen_bitfield_unit
  1875. }
  1876. }
  1877. #[repr(C)]
  1878. #[derive(Copy, Clone)]
  1879. pub union bpf_sock_ops__bindgen_ty_3 {
  1880. pub skb_data: *mut ::aya_bpf_cty::c_void,
  1881. pub _bitfield_align_1: [u8; 0],
  1882. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1883. }
  1884. impl bpf_sock_ops__bindgen_ty_3 {
  1885. #[inline]
  1886. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1887. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1888. __bindgen_bitfield_unit
  1889. }
  1890. }
  1891. #[repr(C)]
  1892. #[derive(Copy, Clone)]
  1893. pub union bpf_sock_ops__bindgen_ty_4 {
  1894. pub skb_data_end: *mut ::aya_bpf_cty::c_void,
  1895. pub _bitfield_align_1: [u8; 0],
  1896. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  1897. }
  1898. impl bpf_sock_ops__bindgen_ty_4 {
  1899. #[inline]
  1900. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  1901. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  1902. __bindgen_bitfield_unit
  1903. }
  1904. }
  1905. pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_27 = 1;
  1906. pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_27 = 2;
  1907. pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_27 = 4;
  1908. pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_27 = 8;
  1909. pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_27 = 16;
  1910. pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_27 = 32;
  1911. pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_27 = 64;
  1912. pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_27 = 127;
  1913. pub type _bindgen_ty_27 = ::aya_bpf_cty::c_uint;
  1914. pub const BPF_SOCK_OPS_VOID: _bindgen_ty_28 = 0;
  1915. pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_28 = 1;
  1916. pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_28 = 2;
  1917. pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_28 = 3;
  1918. pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_28 = 4;
  1919. pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_28 = 5;
  1920. pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_28 = 6;
  1921. pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_28 = 7;
  1922. pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_28 = 8;
  1923. pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_28 = 9;
  1924. pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_28 = 10;
  1925. pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_28 = 11;
  1926. pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_28 = 12;
  1927. pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_28 = 13;
  1928. pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_28 = 14;
  1929. pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_28 = 15;
  1930. pub type _bindgen_ty_28 = ::aya_bpf_cty::c_uint;
  1931. pub const BPF_TCP_ESTABLISHED: _bindgen_ty_29 = 1;
  1932. pub const BPF_TCP_SYN_SENT: _bindgen_ty_29 = 2;
  1933. pub const BPF_TCP_SYN_RECV: _bindgen_ty_29 = 3;
  1934. pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_29 = 4;
  1935. pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_29 = 5;
  1936. pub const BPF_TCP_TIME_WAIT: _bindgen_ty_29 = 6;
  1937. pub const BPF_TCP_CLOSE: _bindgen_ty_29 = 7;
  1938. pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_29 = 8;
  1939. pub const BPF_TCP_LAST_ACK: _bindgen_ty_29 = 9;
  1940. pub const BPF_TCP_LISTEN: _bindgen_ty_29 = 10;
  1941. pub const BPF_TCP_CLOSING: _bindgen_ty_29 = 11;
  1942. pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_29 = 12;
  1943. pub const BPF_TCP_MAX_STATES: _bindgen_ty_29 = 13;
  1944. pub type _bindgen_ty_29 = ::aya_bpf_cty::c_uint;
  1945. pub mod _bindgen_ty_31 {
  1946. pub type Type = ::aya_bpf_cty::c_uint;
  1947. pub const BPF_LOAD_HDR_OPT_TCP_SYN: Type = 1;
  1948. }
  1949. pub mod _bindgen_ty_32 {
  1950. pub type Type = ::aya_bpf_cty::c_uint;
  1951. pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: Type = 1;
  1952. pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: Type = 2;
  1953. }
  1954. #[repr(C)]
  1955. #[derive(Debug, Copy, Clone)]
  1956. pub struct bpf_perf_event_value {
  1957. pub counter: __u64,
  1958. pub enabled: __u64,
  1959. pub running: __u64,
  1960. }
  1961. pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_33 = 1;
  1962. pub const BPF_DEVCG_ACC_READ: _bindgen_ty_33 = 2;
  1963. pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_33 = 4;
  1964. pub type _bindgen_ty_33 = ::aya_bpf_cty::c_uint;
  1965. pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_34 = 1;
  1966. pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_34 = 2;
  1967. pub type _bindgen_ty_34 = ::aya_bpf_cty::c_uint;
  1968. #[repr(C)]
  1969. #[derive(Debug, Copy, Clone)]
  1970. pub struct bpf_cgroup_dev_ctx {
  1971. pub access_type: __u32,
  1972. pub major: __u32,
  1973. pub minor: __u32,
  1974. }
  1975. #[repr(C)]
  1976. #[derive(Debug)]
  1977. pub struct bpf_raw_tracepoint_args {
  1978. pub args: __IncompleteArrayField<__u64>,
  1979. }
  1980. pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_35 = 1;
  1981. pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_35 = 2;
  1982. pub const BPF_FIB_LOOKUP_SKIP_NEIGH: _bindgen_ty_35 = 4;
  1983. pub type _bindgen_ty_35 = ::aya_bpf_cty::c_uint;
  1984. pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_36 = 0;
  1985. pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_36 = 1;
  1986. pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_36 = 2;
  1987. pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_36 = 3;
  1988. pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_36 = 4;
  1989. pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_36 = 5;
  1990. pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_36 = 6;
  1991. pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_36 = 7;
  1992. pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_36 = 8;
  1993. pub type _bindgen_ty_36 = ::aya_bpf_cty::c_uint;
  1994. #[repr(C)]
  1995. #[derive(Copy, Clone)]
  1996. pub struct bpf_fib_lookup {
  1997. pub family: __u8,
  1998. pub l4_protocol: __u8,
  1999. pub sport: __be16,
  2000. pub dport: __be16,
  2001. pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
  2002. pub ifindex: __u32,
  2003. pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
  2004. pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
  2005. pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
  2006. pub h_vlan_proto: __be16,
  2007. pub h_vlan_TCI: __be16,
  2008. pub smac: [__u8; 6usize],
  2009. pub dmac: [__u8; 6usize],
  2010. }
  2011. #[repr(C)]
  2012. #[derive(Copy, Clone)]
  2013. pub union bpf_fib_lookup__bindgen_ty_1 {
  2014. pub tot_len: __u16,
  2015. pub mtu_result: __u16,
  2016. }
  2017. #[repr(C)]
  2018. #[derive(Copy, Clone)]
  2019. pub union bpf_fib_lookup__bindgen_ty_2 {
  2020. pub tos: __u8,
  2021. pub flowinfo: __be32,
  2022. pub rt_metric: __u32,
  2023. }
  2024. #[repr(C)]
  2025. #[derive(Copy, Clone)]
  2026. pub union bpf_fib_lookup__bindgen_ty_3 {
  2027. pub ipv4_src: __be32,
  2028. pub ipv6_src: [__u32; 4usize],
  2029. }
  2030. #[repr(C)]
  2031. #[derive(Copy, Clone)]
  2032. pub union bpf_fib_lookup__bindgen_ty_4 {
  2033. pub ipv4_dst: __be32,
  2034. pub ipv6_dst: [__u32; 4usize],
  2035. }
  2036. #[repr(C)]
  2037. #[derive(Copy, Clone)]
  2038. pub struct bpf_redir_neigh {
  2039. pub nh_family: __u32,
  2040. pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
  2041. }
  2042. #[repr(C)]
  2043. #[derive(Copy, Clone)]
  2044. pub union bpf_redir_neigh__bindgen_ty_1 {
  2045. pub ipv4_nh: __be32,
  2046. pub ipv6_nh: [__u32; 4usize],
  2047. }
  2048. pub mod bpf_check_mtu_flags {
  2049. pub type Type = ::aya_bpf_cty::c_uint;
  2050. pub const BPF_MTU_CHK_SEGS: Type = 1;
  2051. }
  2052. pub mod bpf_check_mtu_ret {
  2053. pub type Type = ::aya_bpf_cty::c_uint;
  2054. pub const BPF_MTU_CHK_RET_SUCCESS: Type = 0;
  2055. pub const BPF_MTU_CHK_RET_FRAG_NEEDED: Type = 1;
  2056. pub const BPF_MTU_CHK_RET_SEGS_TOOBIG: Type = 2;
  2057. }
  2058. pub mod bpf_task_fd_type {
  2059. pub type Type = ::aya_bpf_cty::c_uint;
  2060. pub const BPF_FD_TYPE_RAW_TRACEPOINT: Type = 0;
  2061. pub const BPF_FD_TYPE_TRACEPOINT: Type = 1;
  2062. pub const BPF_FD_TYPE_KPROBE: Type = 2;
  2063. pub const BPF_FD_TYPE_KRETPROBE: Type = 3;
  2064. pub const BPF_FD_TYPE_UPROBE: Type = 4;
  2065. pub const BPF_FD_TYPE_URETPROBE: Type = 5;
  2066. }
  2067. pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_37 = 1;
  2068. pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_37 = 2;
  2069. pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_37 = 4;
  2070. pub type _bindgen_ty_37 = ::aya_bpf_cty::c_uint;
  2071. #[repr(C)]
  2072. #[derive(Copy, Clone)]
  2073. pub struct bpf_flow_keys {
  2074. pub nhoff: __u16,
  2075. pub thoff: __u16,
  2076. pub addr_proto: __u16,
  2077. pub is_frag: __u8,
  2078. pub is_first_frag: __u8,
  2079. pub is_encap: __u8,
  2080. pub ip_proto: __u8,
  2081. pub n_proto: __be16,
  2082. pub sport: __be16,
  2083. pub dport: __be16,
  2084. pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
  2085. pub flags: __u32,
  2086. pub flow_label: __be32,
  2087. }
  2088. #[repr(C)]
  2089. #[derive(Copy, Clone)]
  2090. pub union bpf_flow_keys__bindgen_ty_1 {
  2091. pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
  2092. pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
  2093. }
  2094. #[repr(C)]
  2095. #[derive(Debug, Copy, Clone)]
  2096. pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
  2097. pub ipv4_src: __be32,
  2098. pub ipv4_dst: __be32,
  2099. }
  2100. #[repr(C)]
  2101. #[derive(Debug, Copy, Clone)]
  2102. pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
  2103. pub ipv6_src: [__u32; 4usize],
  2104. pub ipv6_dst: [__u32; 4usize],
  2105. }
  2106. #[repr(C)]
  2107. #[derive(Debug, Copy, Clone)]
  2108. pub struct bpf_func_info {
  2109. pub insn_off: __u32,
  2110. pub type_id: __u32,
  2111. }
  2112. #[repr(C)]
  2113. #[derive(Debug, Copy, Clone)]
  2114. pub struct bpf_line_info {
  2115. pub insn_off: __u32,
  2116. pub file_name_off: __u32,
  2117. pub line_off: __u32,
  2118. pub line_col: __u32,
  2119. }
  2120. #[repr(C)]
  2121. #[derive(Debug, Copy, Clone)]
  2122. pub struct bpf_spin_lock {
  2123. pub val: __u32,
  2124. }
  2125. #[repr(C)]
  2126. #[repr(align(8))]
  2127. #[derive(Debug, Copy, Clone)]
  2128. pub struct bpf_timer {
  2129. pub _bitfield_align_1: [u8; 0],
  2130. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
  2131. }
  2132. impl bpf_timer {
  2133. #[inline]
  2134. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
  2135. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
  2136. __bindgen_bitfield_unit
  2137. }
  2138. }
  2139. #[repr(C)]
  2140. #[repr(align(8))]
  2141. #[derive(Debug, Copy, Clone)]
  2142. pub struct bpf_dynptr {
  2143. pub _bitfield_align_1: [u8; 0],
  2144. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
  2145. }
  2146. impl bpf_dynptr {
  2147. #[inline]
  2148. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
  2149. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
  2150. __bindgen_bitfield_unit
  2151. }
  2152. }
  2153. #[repr(C)]
  2154. #[repr(align(8))]
  2155. #[derive(Debug, Copy, Clone)]
  2156. pub struct bpf_list_head {
  2157. pub _bitfield_align_1: [u8; 0],
  2158. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
  2159. }
  2160. impl bpf_list_head {
  2161. #[inline]
  2162. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
  2163. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
  2164. __bindgen_bitfield_unit
  2165. }
  2166. }
  2167. #[repr(C)]
  2168. #[repr(align(8))]
  2169. #[derive(Debug, Copy, Clone)]
  2170. pub struct bpf_list_node {
  2171. pub _bitfield_align_1: [u8; 0],
  2172. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
  2173. }
  2174. impl bpf_list_node {
  2175. #[inline]
  2176. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
  2177. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
  2178. __bindgen_bitfield_unit
  2179. }
  2180. }
  2181. #[repr(C)]
  2182. #[repr(align(8))]
  2183. #[derive(Debug, Copy, Clone)]
  2184. pub struct bpf_rb_root {
  2185. pub _bitfield_align_1: [u8; 0],
  2186. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
  2187. }
  2188. impl bpf_rb_root {
  2189. #[inline]
  2190. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 16usize]> {
  2191. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
  2192. __bindgen_bitfield_unit
  2193. }
  2194. }
  2195. #[repr(C)]
  2196. #[repr(align(8))]
  2197. #[derive(Debug, Copy, Clone)]
  2198. pub struct bpf_rb_node {
  2199. pub _bitfield_align_1: [u8; 0],
  2200. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 24usize]>,
  2201. }
  2202. impl bpf_rb_node {
  2203. #[inline]
  2204. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 24usize]> {
  2205. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 24usize]> = Default::default();
  2206. __bindgen_bitfield_unit
  2207. }
  2208. }
  2209. #[repr(C)]
  2210. #[derive(Debug, Copy, Clone)]
  2211. pub struct bpf_sysctl {
  2212. pub write: __u32,
  2213. pub file_pos: __u32,
  2214. }
  2215. #[repr(C)]
  2216. #[derive(Copy, Clone)]
  2217. pub struct bpf_sockopt {
  2218. pub __bindgen_anon_1: bpf_sockopt__bindgen_ty_1,
  2219. pub __bindgen_anon_2: bpf_sockopt__bindgen_ty_2,
  2220. pub __bindgen_anon_3: bpf_sockopt__bindgen_ty_3,
  2221. pub level: __s32,
  2222. pub optname: __s32,
  2223. pub optlen: __s32,
  2224. pub retval: __s32,
  2225. }
  2226. #[repr(C)]
  2227. #[derive(Copy, Clone)]
  2228. pub union bpf_sockopt__bindgen_ty_1 {
  2229. pub sk: *mut bpf_sock,
  2230. pub _bitfield_align_1: [u8; 0],
  2231. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  2232. }
  2233. impl bpf_sockopt__bindgen_ty_1 {
  2234. #[inline]
  2235. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  2236. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  2237. __bindgen_bitfield_unit
  2238. }
  2239. }
  2240. #[repr(C)]
  2241. #[derive(Copy, Clone)]
  2242. pub union bpf_sockopt__bindgen_ty_2 {
  2243. pub optval: *mut ::aya_bpf_cty::c_void,
  2244. pub _bitfield_align_1: [u8; 0],
  2245. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  2246. }
  2247. impl bpf_sockopt__bindgen_ty_2 {
  2248. #[inline]
  2249. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  2250. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  2251. __bindgen_bitfield_unit
  2252. }
  2253. }
  2254. #[repr(C)]
  2255. #[derive(Copy, Clone)]
  2256. pub union bpf_sockopt__bindgen_ty_3 {
  2257. pub optval_end: *mut ::aya_bpf_cty::c_void,
  2258. pub _bitfield_align_1: [u8; 0],
  2259. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  2260. }
  2261. impl bpf_sockopt__bindgen_ty_3 {
  2262. #[inline]
  2263. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  2264. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  2265. __bindgen_bitfield_unit
  2266. }
  2267. }
  2268. #[repr(C)]
  2269. #[derive(Debug, Copy, Clone)]
  2270. pub struct bpf_pidns_info {
  2271. pub pid: __u32,
  2272. pub tgid: __u32,
  2273. }
  2274. #[repr(C)]
  2275. #[derive(Copy, Clone)]
  2276. pub struct bpf_sk_lookup {
  2277. pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1,
  2278. pub family: __u32,
  2279. pub protocol: __u32,
  2280. pub remote_ip4: __u32,
  2281. pub remote_ip6: [__u32; 4usize],
  2282. pub remote_port: __be16,
  2283. pub _bitfield_align_1: [u8; 0],
  2284. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
  2285. pub local_ip4: __u32,
  2286. pub local_ip6: [__u32; 4usize],
  2287. pub local_port: __u32,
  2288. pub ingress_ifindex: __u32,
  2289. }
  2290. #[repr(C)]
  2291. #[derive(Copy, Clone)]
  2292. pub union bpf_sk_lookup__bindgen_ty_1 {
  2293. pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1,
  2294. pub cookie: __u64,
  2295. }
  2296. #[repr(C)]
  2297. #[derive(Copy, Clone)]
  2298. pub union bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
  2299. pub sk: *mut bpf_sock,
  2300. pub _bitfield_align_1: [u8; 0],
  2301. pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
  2302. }
  2303. impl bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
  2304. #[inline]
  2305. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
  2306. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
  2307. __bindgen_bitfield_unit
  2308. }
  2309. }
  2310. impl bpf_sk_lookup {
  2311. #[inline]
  2312. pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
  2313. let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
  2314. __bindgen_bitfield_unit
  2315. }
  2316. }
  2317. #[repr(C)]
  2318. #[derive(Debug, Copy, Clone)]
  2319. pub struct btf_ptr {
  2320. pub ptr: *mut ::aya_bpf_cty::c_void,
  2321. pub type_id: __u32,
  2322. pub flags: __u32,
  2323. }
  2324. pub mod bpf_core_relo_kind {
  2325. pub type Type = ::aya_bpf_cty::c_uint;
  2326. pub const BPF_CORE_FIELD_BYTE_OFFSET: Type = 0;
  2327. pub const BPF_CORE_FIELD_BYTE_SIZE: Type = 1;
  2328. pub const BPF_CORE_FIELD_EXISTS: Type = 2;
  2329. pub const BPF_CORE_FIELD_SIGNED: Type = 3;
  2330. pub const BPF_CORE_FIELD_LSHIFT_U64: Type = 4;
  2331. pub const BPF_CORE_FIELD_RSHIFT_U64: Type = 5;
  2332. pub const BPF_CORE_TYPE_ID_LOCAL: Type = 6;
  2333. pub const BPF_CORE_TYPE_ID_TARGET: Type = 7;
  2334. pub const BPF_CORE_TYPE_EXISTS: Type = 8;
  2335. pub const BPF_CORE_TYPE_SIZE: Type = 9;
  2336. pub const BPF_CORE_ENUMVAL_EXISTS: Type = 10;
  2337. pub const BPF_CORE_ENUMVAL_VALUE: Type = 11;
  2338. pub const BPF_CORE_TYPE_MATCHES: Type = 12;
  2339. }
  2340. #[repr(C)]
  2341. #[derive(Debug, Copy, Clone)]
  2342. pub struct bpf_core_relo {
  2343. pub insn_off: __u32,
  2344. pub type_id: __u32,
  2345. pub access_str_off: __u32,
  2346. pub kind: bpf_core_relo_kind::Type,
  2347. }
  2348. pub const BPF_F_TIMER_ABS: _bindgen_ty_39 = 1;
  2349. pub type _bindgen_ty_39 = ::aya_bpf_cty::c_uint;
  2350. #[repr(C)]
  2351. #[derive(Debug, Copy, Clone)]
  2352. pub struct pt_regs {
  2353. pub r15: ::aya_bpf_cty::c_ulong,
  2354. pub r14: ::aya_bpf_cty::c_ulong,
  2355. pub r13: ::aya_bpf_cty::c_ulong,
  2356. pub r12: ::aya_bpf_cty::c_ulong,
  2357. pub rbp: ::aya_bpf_cty::c_ulong,
  2358. pub rbx: ::aya_bpf_cty::c_ulong,
  2359. pub r11: ::aya_bpf_cty::c_ulong,
  2360. pub r10: ::aya_bpf_cty::c_ulong,
  2361. pub r9: ::aya_bpf_cty::c_ulong,
  2362. pub r8: ::aya_bpf_cty::c_ulong,
  2363. pub rax: ::aya_bpf_cty::c_ulong,
  2364. pub rcx: ::aya_bpf_cty::c_ulong,
  2365. pub rdx: ::aya_bpf_cty::c_ulong,
  2366. pub rsi: ::aya_bpf_cty::c_ulong,
  2367. pub rdi: ::aya_bpf_cty::c_ulong,
  2368. pub orig_rax: ::aya_bpf_cty::c_ulong,
  2369. pub rip: ::aya_bpf_cty::c_ulong,
  2370. pub cs: ::aya_bpf_cty::c_ulong,
  2371. pub eflags: ::aya_bpf_cty::c_ulong,
  2372. pub rsp: ::aya_bpf_cty::c_ulong,
  2373. pub ss: ::aya_bpf_cty::c_ulong,
  2374. }
  2375. pub type sa_family_t = ::aya_bpf_cty::c_ushort;
  2376. #[repr(C)]
  2377. #[derive(Debug, Copy, Clone)]
  2378. pub struct sockaddr {
  2379. pub sa_family: sa_family_t,
  2380. pub sa_data: [::aya_bpf_cty::c_char; 14usize],
  2381. }
  2382. #[repr(C)]
  2383. #[derive(Debug, Copy, Clone)]
  2384. pub struct bpf_perf_event_data {
  2385. _unused: [u8; 0],
  2386. }
  2387. #[repr(C)]
  2388. #[derive(Debug, Copy, Clone)]
  2389. pub struct linux_binprm {
  2390. _unused: [u8; 0],
  2391. }
  2392. #[repr(C)]
  2393. #[derive(Debug, Copy, Clone)]
  2394. pub struct tcphdr {
  2395. _unused: [u8; 0],
  2396. }
  2397. #[repr(C)]
  2398. #[derive(Debug, Copy, Clone)]
  2399. pub struct seq_file {
  2400. _unused: [u8; 0],
  2401. }
  2402. #[repr(C)]
  2403. #[derive(Debug, Copy, Clone)]
  2404. pub struct tcp6_sock {
  2405. _unused: [u8; 0],
  2406. }
  2407. #[repr(C)]
  2408. #[derive(Debug, Copy, Clone)]
  2409. pub struct tcp_sock {
  2410. _unused: [u8; 0],
  2411. }
  2412. #[repr(C)]
  2413. #[derive(Debug, Copy, Clone)]
  2414. pub struct tcp_timewait_sock {
  2415. _unused: [u8; 0],
  2416. }
  2417. #[repr(C)]
  2418. #[derive(Debug, Copy, Clone)]
  2419. pub struct tcp_request_sock {
  2420. _unused: [u8; 0],
  2421. }
  2422. #[repr(C)]
  2423. #[derive(Debug, Copy, Clone)]
  2424. pub struct udp6_sock {
  2425. _unused: [u8; 0],
  2426. }
  2427. #[repr(C)]
  2428. #[derive(Debug, Copy, Clone)]
  2429. pub struct unix_sock {
  2430. _unused: [u8; 0],
  2431. }
  2432. #[repr(C)]
  2433. #[derive(Debug, Copy, Clone)]
  2434. pub struct task_struct {
  2435. _unused: [u8; 0],
  2436. }
  2437. #[repr(C)]
  2438. #[derive(Debug, Copy, Clone)]
  2439. pub struct cgroup {
  2440. _unused: [u8; 0],
  2441. }
  2442. #[repr(C)]
  2443. #[derive(Debug, Copy, Clone)]
  2444. pub struct path {
  2445. _unused: [u8; 0],
  2446. }
  2447. #[repr(C)]
  2448. #[derive(Debug, Copy, Clone)]
  2449. pub struct inode {
  2450. _unused: [u8; 0],
  2451. }
  2452. #[repr(C)]
  2453. #[derive(Debug, Copy, Clone)]
  2454. pub struct socket {
  2455. _unused: [u8; 0],
  2456. }
  2457. #[repr(C)]
  2458. #[derive(Debug, Copy, Clone)]
  2459. pub struct file {
  2460. _unused: [u8; 0],
  2461. }
  2462. #[repr(C)]
  2463. #[derive(Debug, Copy, Clone)]
  2464. pub struct mptcp_sock {
  2465. _unused: [u8; 0],
  2466. }
  2467. #[repr(C)]
  2468. #[derive(Debug, Copy, Clone)]
  2469. pub struct iphdr {
  2470. _unused: [u8; 0],
  2471. }
  2472. #[repr(C)]
  2473. #[derive(Debug, Copy, Clone)]
  2474. pub struct ipv6hdr {
  2475. _unused: [u8; 0],
  2476. }