bindings.rs 91 KB

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