bindings.rs 108 KB

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