From edda1c686053770cba4a90b853d60a2ed19a4b82 Mon Sep 17 00:00:00 2001 From: geoffrey <geoffrey.bucchino@protonmail.com> Date: Thu, 30 Jan 2025 10:19:38 +0000 Subject: [PATCH] update --- dns-trace | Bin 1945288 -> 1533448 bytes src/dns-trace.c | 11 +- src/dns-trace.ebpf.c | 28 +- src/dns-trace.ebpf.o | Bin 37032 -> 37064 bytes src/vmlinux.h | 70338 ++++++++++++++++++++++++++++++----------- 5 files changed, 52732 insertions(+), 17645 deletions(-) diff --git a/dns-trace b/dns-trace index fe940ceed25c53b4bc5ad96e41a4c652d411fadb..a72c4b8e5f1d4cff5e3960eb5c6849ec7b642fa1 100755 GIT binary patch literal 1533448 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Ð6pA60uzt^o;0|Zw%#ge$vl4rIF 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�d2LHq_7Cg1O?s{)T_93y^2fMtGIN%ic8n4xOBaW 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	J3G3vlRy@bHXC<a*^7-vNul5$~ z;YxW7rgoKVdo%jHEP*T)vfT~1EkMr6;|+Ru%@(*l?>^LXqkIX{ZIaz5!6V4wu*}W! zB<gdW%p1!Cz8_>@<|PlDk0<)_9F%o~ya?@bqr9-Mz+v3Qu<&hiIIQj_x!=X3dHMJi zczFnyq2ZB{JbaN5x5@x4>NdF-y1HF1f}QM;V^HoLawGWPDUWo-^Dp@tT5zXql#N%0 z<UB~ROTJu!7pG+>__y7%?*(|RRpxZZ{bTZ!F8FUoS&H8AfV>fQxJTYwitAA109eIC za_hPHPcV5V+UQ~VBkKH!jAjY(sC*M`{g^CUjepCL#VGL!`Dz=S=aKu+i}%SD(D_sH zmHIr*TMnKF<VMgRR0pG<me)4mb*cBG+-Kyu%kjFt+zCr~PWC<%XL)2QN_jy(J{SjZ z<#+f#EWd!%FUh)#@Z?+;oFl{$$^RvIMRtWPy(%wQf+J3H1GMzINZBjk+H%eI1`fmy zxDM_l=)Rv9oQ7C61^yr}b_7&H&w7vL1(_$9!QJ8G8j1LvU4N+QVm6P2xF6}HTzfAR z>wc`ULXkEKnbWSqSBrCQf~W9`^YY-La4VMA*l&wy;c-*PYpP4}xToVaQ%J<)mX6n4 zAu*3TI$jHfWP02{@=6qv>v3<%Yo(Avk6S%nX^;}cJ?<>w4}U2@vB#|>udPCwdE5i? z+NoXm5^peC!|R|@+KA{JD5Axl>F8Eo&tVWvRkoL@Y@r9zelFB5f*$uFyfbpR>l^X7 z4dD$?Oky7QGQ2YtlId~t!W*cNT<`dDAcGWA=y7Yo8={c7#|;^8s6y&{+>r5xDWurr z{(?6m$`&f|xTWEZPGQYDc-+$P#wfBfk6Rz!ScUZTxS`>VS7d!WZfJNDRLVeaTpY+m zg$(t$SL01q$ViV{HQp43jP<xv<4p~s`-ll1cP_jcD&-ulu9*s%;c?%>o2`)9B5gEk z)jJmSu95b91l1(p+aT3yALC-&+a&F$nZSvNcdgVjDK(4rHfzkWIm`F1lW8Oj+MMQl zTV&qzz+yJ%`QG(1?PXxOB5ej#k_K-j(%!>Yti-!P+T9Bh{BNwme`|t2=h@yi8Dr+4 z&55>mQ-VKd+TP6?%hjdbqDzab`LwrPb1BAB#=A}0qgfc272fStQpUVHq+N*wE-Sn{ zO(kqDE4;fBmEf|%+bPxVkDkDKck47vA7kD<(td@kxi91GPO#v*!n-%Yg6jzHK3yzV zGu{Kz=Kp=^OnYi%day>OhZ32xO1!J3H3OLfoWOe<Wnc`r1~`HDDrJC;7~s_0gI9f> z2&ePj4jG`9)pXw5B?Hugn$COo%K#-;Q+RK$3{VJBd^87xvUj-*9zsbO?EF_q-J!H0 zTq%_S1#K=Jy{ly53!saswWGIQr{$`poL8Z-!fXl}7g1I{jq{zfy)0-d{B6uzV+H?C z6tvb#F6dHA7bK!@fS~2Bn4TO4M>nj6388vNRH}DGrG7^=U%$$l#{QmG8=gx&PV_rJ zL-NBkJXr*{F6G`Rr;?9_pnZ8BhBrq}hgS;7UOuOiwK05pvIs*+Q0^MdspRj_Wk_~M zd{~Yh!>Qz$i#e6tIfzrq(dc!l@{S4!BY9>fO`Zc6nl68Zi^!0BCvYm+VjRMzKAS#a zebU>rKG&Sb`V5=PE&P^_)B^gI9@xl}ok{U21}-UIN+(6b;c(DUy08b!n@Q4T9ZB}X zEl4@*EDE&~nQXaO3Dp2&b3oqJokF2@5UMsTB`ALyL7}dP5<+t61_~8`2oc%yMhZ1& zDuvpGVp8SfDHQ4na7&Y)#3|IL{VCJ|cuYK|Tg&<JEl^Q5{^}CiQB}KGKFzAdkX6Xr zJF#k0KyHcR>*`{bX0Mg%|KT#`PML?d7i59@vpAbx-Cie^uO5l_?!ZEz)2WU9EK!_? z)(hGvWw0qC?VC}S{cEDjq&x@gH`8VC;x#BvyX64N{Y$2v0wnEJeD$GG3_>8tfQa0P zx(KT-tLobm<^&iiif8Pnyq1-EH7M;;%nhV%rO@>V`@OS)IaWpqnTV8W__-NiY8dH; z5(AdajK00?9L+F(6b$YCR)B@R!;I>SdeZes<3cZf7R=kb!itgVZ&ER!zle%7c97O% z)`RL4MbtWubUxn=D!0hqq`Qg=F;%2-=#I~<k38)(=TXe0IIGYR@DypBUc?2O+<QVQ z)+?*16e)+xAmc<D-GO>TGSVR0946fQ0|@6WP`M5=7oQ*N3aMJDIL;b^rJxpRd;lNc zaXS>UNh*c>o0$};qN)zDWD$R3DM;6A(r^(-b#xh3TA`!sRz<7VHSL?DofzYwJjJ-5 zXw4TrL#a_RA6P{l=gXvFyi7`#)2gETpNftv`&lj>%!yB+Uwoi-^^ujSb+O93Zy^>m zRtdwO;rzx?K;hi2jO)){+p`@GGXaWTfjyjI6=s6&JmBL1wRjY2fTe8wC*a=!LeoCg z#jxV(<p!Z#77r_1ysdWaC1?bEEL^s}M7U5T%{Gk|ST}r-^G=Gf{9l?;Z~Y@=<<Ip{ zUv{i#WFu0fwa1HTfXH)4IYG^IVI02w>`Ki&vhgq{tSJSE#Y>Up5k50|Pv({=d|!Da z3W+|JMZFY`)0q52`p>0BM~l;$ON+QA`L*uBB`Bo{por7OuVpGr?+?5;pxLZ}jLTu1 zQ@dwZ_>&KGmF>TWDvtT6w=)e1lR<tqz&Q)ZYy@Tz83trA0v7>9?Uzo$V#hF$dBbqW zvh;_M!3RiK2a?r*^d}7kO#q6;@lZI$W+w8vIMzkTf&>Z<om;^fP<FL$EZmRO)xzJL z^O|LMxyiQ?`Htv(vQ)LyMDxm-$~^X6)DItI=AV%wyKH0We*kb3HD-N2*DQEQD|E=P z-US&&3anAEk(7^#is;XvRQH^*jZ|d5h=vhPVc%jysYskEiZhbFlC7m8CC&gLT=$#( zT<TEy+g{abUyLw6va&@3V=#}&hNRdE)m;Zr2J?i>?22^X-j{4JPs(5q#99?&+ps0R zH9V^V>54ViOkbjO)hLgF<6c1euZFlrqkL^5*(h;xMr&1!g?42ZrPV~~Y?2O%CJ7b1 zre&$t8|$hB_e7L(sm0WgM5HC^W<e1<l_HK9r6WRpWaZ|DMiD!;B3?svU!Wq`Cw9qn zrdt&QRTsD~(FKl_s}BC4?gD>;{3n1i_XlN|`m~g}=N{8_wd%uKk=q9|W$tx5;4M>t zGWQk;G$TTD?}$KqfKW;vZy3l#Afe=k<(cF~%kKs1?tt`j4RH-6k28_9;B}M*zNRg8 z42J`=PqJJ{NyCMCkHY^ImW$BUCacyoPekni17l)!a}RL4gt8ucOH0{8|G>I#C^kwx zPZpD6EUGsY5c%OY?yDpmNqMABZ|<b1iLPC-eyLLWJgs!TV5S_+LapVM$X^a9;%4tc z?PzuY-vX$`ci9(8br9`i;O_z=d{f~<8AAzhT5Ff82FZEbG{_40A5>&ZBhw&tI)V#8 zHAqtg8WUlIbU>gDK)BvJIx|)I4l+`ebOv}apxphZHd*~@b?$~bQ%v?tk=-3=kh6fq zpe@?|1^6C{W5!@*1<^d}KTO?<B+5?zC*{qClI=gZic+{=CB>hc6#q+7{KY07-ZJF9 ztK}r0P>Mm65!BtepZj`j(wK=4!z}obm9?<JpvIsxWSkU(p|sNhs!`8O^rSM?lZGU0 zU|+dv;}N=z7lC{}K(+A*-Nu`NuLr0$9--U#Vc>fJs!h)|HL*6KO~H6pW7DQbK=Bel zwds2Zyi0^_`WXVB0ED~6WM-S*fsFrG_b97w&wXgmn@rYAk=1?FAZ*VMG@qL7*_d9e zM7S>+LMr!{Dnc07(Q2iqLX$KIHb#Mo*ZLoTPFJGzA2;z&LDT%m%15xbr1W1Ri>Uvf zAmDcZ<<d)K=JQDR?d{1fy|oN-^PRRD;R6EPZNgb1y5h1kW=z3f+jY>(I=kZXWfATz zb(9_te&GKaYT<ckC*5k9_?Mp)fNG&mGQ`4L0B-_NEws|qRo;abDw9?WHBoM`8z@cz zs21vnKwlzkp^*p-1&G>T!NuKZ7+8;jL3f$bo(%p#!VHj{OEPzfA$cy2JzFG0f4U0} zm1sA3x`g0t2RJ}8!0$2HIw0EyolUnJb%1=7T)0mdDmL2ADk>2=ZsM!QA}U#VNSq;M zgVddm77M8sJ7I`dRP~r)Eli7rWPK`a2_%^hP(3D6-D6HUsMadn0OO4t5gR-+t9y_d zi*j{a+=lEo0&4LzXs#ZMUIKmyP_*zOKGRUM_#c6P1yEyFuH@Bw!aC)}RoEs+rF?t6 zF%#8(<KNS^X}tjTW6^Y^nQ6cD&Ulp+pxUoC0)<4_evJ`m1keVs!7y+>0Rz-Lt+`>) z8YHclhts}p2%JKM3{FR&4*(C=6PeLO{gIJfRL{W%RnNgV-x_QM<LsiX)Cjh`T)6L> ztQ(PawaJRq|2p`=O7!5zgZb_Wlantk-Jx^hjWPOXdTIWfr~8{Bp;0_#NHDQ;17>#4 z_;;$Z;$lh@ulz+1gK#bImmy-g<4io41ufAM6jm<{`cy9ss+&i+=O&eQn$CbKiqISr zUu~LfSY?_SxK0G&oCjb=KeOStnSuT<g!z$`cVQbam+Oh2o0DK18e$kA%!R<os^L4# zInp2LBxYZuOK`Lqt^x5ffHE&fy9Bo$R{$@XvaF7n5}mXPkXN~aouIxGpe$i80uK_Q zB|MG5Qvf|9I`6o)MVSbo3hLv@iR8r@(NR#p1xUZZ5VI+aLly3H6G@}E0a>Wx|2`v1 zjN$E+L2(Sf(d5-y<&@}Aa8Ozeh@86Ur^l2+4H<Ctk(DP)j6#n!CBYA<-IoBR&<~A5 zkCZEgewLVXHikaGQcK9fE_g=)(3T6Tuatwev^Gsa)&OYpLu)!pQQGVd;%)$?%`*__ zM}*oOjlgh#$m1lw)rUr#i9kY|Kl=BO7qvMX)H49-T?}yzZMHO#)aIASLTz^ZA6@Jp z^UKL5t5RmpWBc(Sgu0n+qIW3O(Hiqhjq+YsYn4@~%rbyd-kX+oi@TRmUGFM&-Hybq z0HvbshMhGDDtgnpyp>VWiy(L&pj7lW0&fzbiatT$I6$lDE0bR)0tprU%YT);sG{FN z{R<%dXG2^=MPHam2P%p{6skx&u$ljGVDw@M|Ap%nLb)I5=Fu7&3Jo2khT>)kgwCiw zvhw$Yh7PLvcI*^vHvqz1{vR?U{~qJg!(9D86J!>Q<H`)KGYmx{kZw31@gD@4lCe4X zH3p<_H^en$yw*f=`2B{Qxt1%VzYG?u;Wtrwjo~+R$Yj&~X)j6*w>JIB7ddajLES$X zkw*;K9#bt@`7OwlgSuY{d@3r|B_Z%0Bk=BIfgcPq3wyMZcqFg*<R=kGNW9PA0Xik| zcrYA8i6<H28WImTk(BrtvOr=p;ZT!z%s3L|*A#h`$yY7%U&yUoNLb{Ihsd{6<n@NE zdddEN8zb`V4M;E_HJg<X`HswQk?PxbB#V4!V!f^;e%~+@i9kZ)d;BfPt0b-fzbh#5 z7lyco#P69%N_+%aR2wI)*As<P-u8(ZRw(>Nk`1eU4pvpki(4BgRL-{$dIM!jyy8^t zH{Wb)gx;VAqT5ipZ3&?_WqyiO-+nt;=*_{e5LwmE(-ONBi9kZ?Tm1E)Q&R5(!^bG~ z-2b*qF(ql2;#p)#ZfERDpq&%tQ|?Yxa&IvCbUR-K=~!DOw=bfUOYKwqo`{T!oN{#V z6-p0AXVrRmzn#&;3bnuY2CDmVLJyZ@ev4G!o}H|RRsYb#o5tR!nLt7h>;28htn}~$ z7=EktU}$Qz{uC3bS|3^dQxA#qsRs-JdWId^VDeS#fwfh72%`NF&RL80Kc8~PjNFeR z%#W;mv%Qh~d^K)*UGc{g0Oi=`7`c}x%RR4VKflp%6p27W?xp^EuvT){2g5iZ{SHH1 zL+(lwNx7dzmSnjxGei3)%C9N+3nrhEJ4d2vc`dQnX4FwF;=>(`h~v~Epd)J1Iw9hC zBjSW)5hvCZv4z=w5s5%T#Pj@lV68+P4u*p%Vn;(<L&Rn#k|N%PEdMEDqWqd7jxqVP zh$U#nK@@R<iC%^<KeF<=jz+{m{1;?#9%?crA>t6@tw$t_I8?1mu_L8i*L{YeNCXlR zj`D|rvyyNv_^qUbj~n6|67DvUl<+cSfrM(iE3r6C6i)f77Kfn^OfD_oMl@jws~<O` z@^(!B_>q-gb~f^rsNT61^|+SuaeiEy&Qv<2FxPP%%zWj<(lD2CU8*M2jrqu+OwC_j zK;EYSjk$;`Q~Qa({eO&o2Y40L*7nToIp@sDNjZ=}3IPHk5C|poB4Fqp=}kbY2#O*g zf=E+96j6$ZB_aYMDk5UXauq?nVnGEPUa!~%?5NoP_g#C><Rs|#-}5{xS!-tPwcFZt z=G_DFdyvckOJoTblI2=bdp7+NQ+P7t`Pih-xnd~eTZjj9GAYc)mpL*)GUF)#lTU#& zo?<YKL3+k?(u8+6Abfl0X+L~BXtZGvF4nq(=}Lj&2ZA{ZWaV>GIp7oB*VqpreE;Yv zhUYA40yIX0Dqm$3%2iRCxyV^kbCejW$jp-FRhT7}Tjt?##Bg^LbUlJzXoCLzGEa}t zBUs1secrI2RwiY+4$Adk(t2a^YM2afF#;EB_m(MzpEB3ESbN{Z`!|a<zjCakeI|hJ z3%Pvw6~Ux0boDa;R;S2StrXtNEP~g`1C)a%><{ob{_IkgwakGsWkPTzigrGz<&N_) zbxrF8og2ghb7Vom2NSWYAI6GYo<wqsS6r^9xZDl|+zJv0s%oBxsV7l^wVZz;P2xbW zL*X@$IKY3v9HBr5_yWvlAS;{OHQ9c6pOFOPPkyEEXp1{HKSKM5AVh%)Vf&0{g49XN zhq8q5N|Y4_!KD!6>qwei-{HaIt!hJV)tG;(;?G&UHJ~lHOlYSwgr3Q-_9O8bzZ+>3 zEoCJ1(ITkV1697&D3|lm>&!(S@9_+@rK3EkA0yqsZGo0n(sM>f>UiKAs6IO`&p>S! zO#>`a?098%Bi5kztKw#?%0cjod1}B9Ioh#?e22&y?0+DVtL6sg1CdwaMg#MKNIvIm zfOj_VfykD)JVZVaNiM+uF9EMEM)20e|5IvRD+TeAA@X08htZ7=nnY*g7JqgrlP@LG z6{XRRCGz3ll*sS^xBmL;cqne!-pi=qa|E~U+gfa%bPnpLZLi3|3lIjdekLvzU@roP z{tIBefEUJTz<L2vi0h$w`rmB+)A03T4PP(T@bzL1UoY11^(HT*At4)cX=uDR=mz|2 za?dPW+FNZn_>3K5MzHM#<eTik&F}^3xAMCFc0|Tu@PiKE&x8z?RmOw((}WoKNR`aV z<fp9$pP9oFZ9)uuBqxiBZ9)uuq*_&2w3=LjKarXZIE5>S+t@l4aJtv;eDJBQ7viyX z|Hy~9X$=-|I$3Y9fYZq)w;(v(8|a;Y;Itq(-5cbcg5X*OwP2zr!Rd_1yLcl+RXPT| z5^%Z_aJmw3y3*kEUhZWNGG4xp?#++#^%Fedk1zO$7YR=H7S@=-i>U;sd&@+_O(i(p zTOMWdJ*!vp)s@h(w;(v(yGGk+L5z&I(x?-h?p-T_XH6WBM<j7?UgS&!n#7UJyWC|` zhYUp-Ud7}L5pX)wV6`mXWwLXN!nPz157~*UDieQg_1b+X12yJhTu^U6fFe+T;(AE+ zeF#;j&cOAEx?(rtRvxTG)m^CAB=sKdCaLYX5>su!C##zfHbs>}KUMwresr|zacIWX zMpSSmH6AuAtJdJt)lTpksxSB|>TBp!RmX58Q>{fTS?VfW$yVpWLXK*Qztz+#+|9+{ zg15re$4G4r)gFIqs$1|kPfbF+wbW?vwN)GF<f}~Zb<`)YR$#Tf6YF@X$$hH6i#&c( zhgla~z7kx%5?sC#T)q-qz7kx%5?sFOUYS|Xf`3Mp;PRE=@|EE7mEiJ~;PRE=@|EE7 zmEiJ~;PRE=@|EE7mEiJ~;PRE=@|EE7)mg<X0Kw%e!R0H#<txGEE5YSs;>rRLT)q-q zz7kx%+JsJ_meRQVmc->tb}c|bkkOAzm|el;E5YR}!R4!-U0KuPu47FLE?)^QUkNT> z2`*m=E?)^QUkNT>2`*m=E?)^QUkNT>?OV<|7F@m(T)q-qz7kx%>Tx0KSaA7DaQRAb z`ATs4N^tpVat+q;r(2js!R0H#<*TO_u#Pn@za??`lDPtRUKrUDT)q-qz7kx%5?sC# zT)z4qH5XEX%U6QSSIK#-OTpzU!R4zh>2zSh<txGEE5YR}!R0H#<txGEE5YR}!R0H# z<txGEE5YTf&2w0Pg3DKe%U6QSSAxq|g3DKKGiFY3`ATs4N^to~aQRAb`ATs4N^to~ zaQRAb`ATs4N^to~aQRAb`ATs4YRN{x8kFGjmEiJ~;PRE=^3`JaM^h!Zd?mPiCAfSg zxO^qJd?mPiCAfSgxO}B?`I95A6gY7C$#^uS1edP_m#+kuuLPH`1edP_m#+kuuLPIh zO5^fdX<U9QjmvMParv!YMr~N}RvMSzO5^fdX<UBq+FfwZvaQ}eF28qx%Wrw*KH~+Y zp?s!k;EU9)GQfK@<fLM1;}Wj#0j@6{u}iqV2e>{Z*Ckxv16-ey=Mt{(0j^Ie+2t$M z9^m?v;x6B|_5jzXl;QHFYVR2>Wx0gwdw}aRx?Gp<SbKo$Q?sGVS9LtV^(hs*e6`yH zT%S@4m+y9afa_Cg<MQQh4{&`-?OndZ?E$XO@u0-ztJ)sm`W%#cx`gX{fa_E0Yn7mf z#FuO=s}slJG^;b<`l<wSzQOC$ME+;E2fRLcE0=ivc`O?lqkz|EoK_cu*OwuvD=o%d zzN72`u+M8*RxSbi-{3}y0ql#p6a(0oa480`Pa&RS0Q(Z!B~I1@V4soY>8JtNr&Px! zVBZ5^pPGd_Rsi-X6<c*(4}kp)R8=zH5BC7rXQ1Sc=pH-(_9gMT1nh4}LY@fN_W;<J z%Px2EJplG8xhY&E0<cfJUWx(iQ;55K3ETr<pL$s?-vajl*r$}6VgUP8%yW+}#w}Oh zDs=ghy9dBN6&tz)?0W$0(-DeYzVq$@u+MuXE?<=Q0NAJ0)#aP=9sv84db)gT-2-5s zQr{E<*k^PDT)y4z0kF?oBiu20kO0`HG&;oq_Nh3|<@@a(0Q<akp3ArDJplG8T~Loz zHp4AIr|JQ)&ug<&3}Byu=cX9IK83|@od=;;L+h<@`P#deucd2U0`@%s_UU@7UB3A4 z0kBVtH(0p@?7xF5NHKtYnzLMjuss0wspPp;F(dE**r$~260q-e)aK%>XaM&AfQ96> zn{lIyQ6pgA>#7AR0kB^?1|_~2?g6kbwmP#!0obQtRmt-J*k1&tdQ6bz{>tXtUEg(G z0`@%s_H~j7*!KX~*GVE^-veNuQoJ4$li~6$a}R)hW(ci-fc@dgu*!GyJOK73PM3gv z4}g72u1mna2f#ih&m~~r17M$0a*6@$(_B2o0QSYUOTfMdz&`czTmtqz0QM=>aS7P> z0NAHg=n}B+jnz`a6a(0&k>V5s*r(7&x1~v1ucRsg`yK%Mw9(ZiVBb4eOFdb#0PJr; z#*zux_W;<ZTJqJqAONs00s;FT0Q({ku<rq|F9HGk9sv6ktSZSK0Q(1Fs~$_ratYY? z0NCeU*Ck-z17M$$XXO&GuTpSBd<B4gvElxehr0mmOPCY`*k`UhrWJtwLWI$-0>D1C zlEqaP8Us)QV80)g2-x=k*cT<~hyd7^SaJ#2e+@eIm;y`t#$tWbbqUz_0NAIh=ZdEQ zurF3p3}BxLiq~UOvQlnAz5v+grMwga*r!mK61q<S`xJ^@0`@%s_9?YNy8&R|Nk!az z?ZX3LpVy6d0kAJ|r_@2;0>D0R#jRWd_Af(_E(WkKAyOWNhXAlo!E*`N_W;;u@VHCB zz6ZcQr3{yVeQ%?dvfO=?wrDBWC1Bs%s---afPD{ueKz<yRxSbi7-OuevKRqipZ2V( zSZR9z>{D>H#{sZU$#V(V_W;<Zl-$Jt_9YjtI2Hi=yp`n=u<rq|Pbt?WVBZ5^pPG3t z0s9^R`;-b<`2g$}AQ{Qh0s+_;>oS@Fuup+X0POdsl5{2j?2D3k2mt${luN+=MbJqx zfPF?_xdiNc0PIr-heLQC0Q)PT<>s-22Vh^+FpdJSf0);0m;_*7j8-LJ-veNulAB@x z`wZfx7{ES-c!~k+Q^>Na#61A^f2TDf%RK=0#hS~C_W;-z15^WGzhj(LfJG|+`&x_0 z8V`VdiPI&r#sgrVwdU#60kF?|$t)NE_9w!E?mz+9mmAW70<bUk5DftPS3s#A<Fa%Y z2*AEhMJ@sR$8aOX0QPy=N-=<a(Md6YeF{3O0PIu9(&YodK4Z$$sRLl2QXTDA0PIte zng(D$t&*Qs0QPw!S<(u?J_QyD0Q-%hRF6qAX$4?k(qVN5U|(&a2`N_~_8F>!cm@GK z9uWI<fqaA5XGJFy;^P6a&)Q8UV&4N|pOw>*h<y);eHLK8LF}`fl8M;&fY@hhtz07Z zk1$DWEml1`s~LCp=>(W+0b*Zr)RpO%ArO##3)7TjLiRmC_T@Gq`yL?sl3~;!Ao~SW zB4pnKWM7mPZh`>Fz9^wo0NEb_C6{k;dVuW9^?FQ|X{3Pc^O{#rBE(Su9w7S{2SEVY zmms_W$o@6FLCC%b$iBJZd4TLc5QG3^UvB711!SL+%h3Rk{m-Z-4Hl4nttKrNkbP0p zfdJX3B+U+x{giYBlI8`-z7BMEOWX!zUjkX@YRJ9^$o@yr?ZZVthZ0P9@(pC46WtD+ zJ$B&qun%Vr`3ADj2|^zZc=-mh&jBmnK=wIq<QvF7$A=E=qVo-8pM7t>f$WQK?aD)< z0NIyXA!OeJWS^y<JOv9B50HJ9Yce7G9w7TH%jC<Rg8;}r%P*ObeGia*mXg(yko{R; zytSF%p~RIy_LV^Pl|c5DK=zeD_LV^Pl|c5DK=zeD_LV^Pl|c5DK=zeD_LV^Pl|c5D zK=zeD_LV^Pl|c5DK=zeD_LV^Pl|c3t-vP)}0@+sr*;fMDR|45r0@+sr*;i9bxH%(` zeI<~6C6Ikpe=Rp>1hTILvabZPuLQEM1hTJcA@7AsAp1%n`${1DN+A2{&?cbJltA{? zYOHpfsF9d27At}5D}n4Qf$S@R>??unD}n4Qf$S@R>??unD}n4Qf$S@R>??unD}n4Q zf$XcT$V-V5$i7;3BOv?gqPZA-l|c5DK=zeD_LV^Pl|c5DK=zeD_LV^Pl|c5DK=zeD z_LV^Pl|c5DK=zeD_LV^PRrht+x>Ew#R|45r0@+u4YGXN|1hTILvabZPuLQEM1hTIL zvabZPuLQEM1hTILvabZPuLQEMKAM1c5!LeQfb1)Q?5k(%VHKeSvabZPuLQEM1hTIL zvabZPuLQEM1hTILvabZPuLQEM1hTILvabZPuLQEM1hTILvabZPuLQEM1hTILvabZP zuLQEM1hTJ|p%#`Xf$S@R?5m?Fhowp&`${1DN+A16Ap1%n`${1DN+A16Ap1%n`${1D zN+A16Ap1%n`${1DN+A16Ap1%n`${1DN+A16Ap7bR(sQ#C$i5QDzIyH=K=zeD_LV^P z)m&^N+^z(&uZE2UWM2tnUkPMi31nXhWM2tnUkPMiU3Mi907@YHN+A16Ap1%n`${1D zN+A2{wPHZ_l|c5DK=zeD_LV^Pl|c5@Mzpwxl|c5DK=zeD_LV^Pl|c5DK=zeD_LV^P zl|c5DK=zeD_LV^Pl|c5@LfCvx31naKTW0&!h620*r3A9CrY*)3d?k>5C6Ik3kbNbP zef16ckXMvI_LV^Pl|c5DK=zeD_LV^P)eWl%+3(h=C!TxVk)2e{AAvS!dombQ<(~K! zEx1)@kDr36Yqm!{&rRWge5bw_cR!v1X`7ZZQX0bUUD<J&kEA4{k!{yPp1TR%u6K8~ z$6JMNAFgoj(V>dnn%ttfS4%BYYD3zggSF99_xrLVT>6)|^R9v7POUg#N;PZ;diQI| z-sHGbksI#;9mNRu%tA=JwKUHCaSWsfweES?lYsP)mM%y+g?kU{2xp`y+<HU{b6r`8 zJ*xE<>+OWcw6s*V6CT%!E8ImKTKDK%tKA;WAU&a_8)Q4-Nv(KO%C@s`YJ(OwxmzH3 zPiwvHdK2PbTH4_b&%?cEw6x0|a2cd$we(QRU`Ttlk;mNjU2*F<ozG|7V;Fk9eOh|a z{S)1dw_i&K-KwJ?J+F<t<MQc+_kxz**BcuzYUx9(<U^D~4r*KWz9Lq)y))4-9>^v# zT2ED8)~c2`$}3uM^)BG6TJrQR;A>h+*1LcQwG`L8fUj#QL)Y>f*|O7@rEB?3eXmgO z-yPCYLtV#*b&iU49lxceHoCUn)|w@HPw*Wrb=7-<?`o;1+lCeNo|gLRJ;5W|$^dh2 z#Ru7wkXKm-;?N2@t)*9fIJ83MQIc^ST0tQ>#T;5ey|~LmD?A)p!CP4_53TTUXa%KQ ztjSMgtE*u;WzQve%`jW<9J(hsfB8DwpQ0su-)5_)S=h3r@}0h6xtCJydo8(oJ@Z2l zDDM53tv+QSdFJ&~wps6riJt>C*K=}0e^O2M98`{;?Q{KN=eSj?V=gXFy4;)yjd2+e z$q9A9b#2$n(aSVfp1DPJaG6%dazc}!R#l#^B^$eX<&mN#*Q$$S+H%~hp_a^NXkJoI zgi$8*F`Ac}6Jb190RED#_JB*dB@gcx_=WV?e(3yWGE$FONUp~SaU`YZRmxFE!E2YO zoMYy+lJ|5iVZMwV&m8qD)ubn>YSd(go}<#Sk*5nKJGc?|s^zGmxFO5JT;HxN3#%Ku zdRbT_M;7yD{ZUijOGaL5<)|$%AZygxIi|v8uOwe9nILsc5O)S^xgbZXPcQN6>R{L- zD=y4Y*;seT0<pfaCJV#{TJU6nSfm9Vx}gc}_IMG78|i5B^uBRpE!EL$fhJli)Rk7O zrH0r^X_XTi#aLT4!gKeW4BZ~Y&)XOWaEVp(+G;6Tuddr^SK+=&`<&3DG%yg0j1J`t zbS!7!Oy5A!6EIg|4Co^1q@^rvyt9__kh-opp<^`8Ce^K+@$SBHS?%}q(^DnO>zxy- z3FmUXC5WewzG3>dzU2b-_XBk<Y?<SZLYVyP`r;U>oCxb7|C%=FCUPPyo%|<JI=ylt z%xLlpXTa`RIT0od)z&OW&1H15&TFm<*6PX>NYfdVqi*MIam&Hxwr>1Gv;^<<ykR-& z`9N)WIkgc9YNK-0S5%V*es(#v(Y{*e;^W!Q_F70a*J9sfhuGig_4&!{5PK-yKu=|d z*b(LP`#15NkhI*-HXzv<IUzRDj&mpBv3O=qh^;UAGt5=IoSYEbm|oxK<%HO-WEY@b zPKZrOmiJ9_LTnZJ+$tCd??QU@9>CC?5KBt0`$y)4ST4!UHo@+goDg$wb!+tkCIg>m z^Q#iNK)=x4s~(NM)Pk$`!H#Lk>&g;|TRnfo`hqLKXw7pm$5qWCTI%*Y_>BG~%qJYx z8e0@f<)PPh)o<<jaPxr<d^#U4;osD%d_+B_BcIx@;nYVpxq#2;yPnTSoJ+SLt?K;x z@I^JXAD_|Rg*i!@x_lnuR=bhkxYgtXtZ}2uGFBkswx>{%@#spPHId4fZKKyEGg(&Z zmR1l}i{M!WGjXlS&j_B>Af*q($$>|)!a@0X-i7yPV)dhqaoI}cW3gC~9-&hCR4mp| zk5H+6C>CoZLOhkv#A1y_$VlZQxLC0WS*d(F7i%g)ZYm#^#hS^KEiaYN=3*`6PGKq^ z#>HBS&@h!x(PFLS&5q(!B5q=B<W38#;2tErtsHn1>v|mwNMgI0#PYzSSf4O6<fZaC zPOM)hAEzg$@-a@VzZi+9@>x*qED<tN`S2$;K!mK+ql+O76d^a2k7i<nMaWC#1FhH) z5$dG!fmUp&2!*M9J`)?B@)ja3PURz^*r?P45Za{jkx=YxQ7cL1qodep5xS=Gfl%xm zQR|t?2STxNa%Vv5m^=vMMHrIGXI-&LB8*7oqpsLw5k{x-NmuM#?=HkME|pJyVi(Ar z^K@}d7vX|bKKF^u5Mc&Bd$0{N<=EmM{bE~UicO3y6=R-`bD0E*>o}K-kfEcwR)nln zZa&AZ6Cqc}dA$gER@-eDZL(t93JXl_+-0KSqr=#CseCV$J4La(MTlDkOj6O>eQ@1a zQ+pBuR;3R%vvo*$78Pq@O9Y-gi;A_hrJ9qif<{m;8YE%Qv^V)-OUi}qTrO;vAna7A z*L7pVZ099#$<HF?vEg=v4wO8Z!U!!`MXy83iw(B(>zc$3@gtC&3^ftdyOVa@9oHf3 zC>>4Q<tAwCY^|Z6QN>2vlJzXBfDsqHgyiSN#@q9K>l4aZpXeuF>`pSt*LElCdvV$L z#hD(y-9nhE;>B>d)y?2!Lp+AVtz@9ZW49O%w>rifl6)L)#o44KJH9a-Zbiv;xg#FK z;Z{`iTyBZSaJbbskm4@)#A7(z>Letb5Pt-rGrIE+zC>YFDURWAt8?r5_HnpXf_)rr zrR{T1I=0D<GqC4!Q#yvjt+ajaO2=@x6{Rd48xFT(Y<V)7h~aQ6S}9~Mak$kYM#e!o zhQqB)F5@vAZp9rE&b4AV+)5JRa;_D_;Z`~k+=7qcaH~_22q_L6ZpC{zGdCW?;Z{G< zv=luKx6&r0N^!WAHo?b^F&u8iXfgW6V>sNZ2&+XM2!~rG1j6A~34w69l@3(5IEKTm z)*w(a2e23pw_1$6CUdVlhQqB`iOJl>j^S{tUnp?rJBGupSjsXo#&Eb5OF>4x7!J2$ z&Slh#;czQv!YY!(tzy^O#}JXUF`R8B9liDgoNdL#c`l!_#BjFNH_(gAW0n}sw&J}k zStZ19wiTt^ddz2@Rlt;I@Kv~?YM3)+#rD~4;Vu%z{&G<~??=HM@z@JmN_H1+g7l)6 z&>@_Jxgzfcb_k!_Q+!Kb_?GxsGWMmhWEFIT0-Eta$5{hTo*~8tJMw}?GUvrHoFKr| zT1CxY#6TbG>ttXwmc;dQO#b-*G1lKP`R4<~*jZXicKHA?Ho%E8RJ`5=h$GA86U5js zeJ#)BBgEKnEfu<ah8P>6CH)XFHqw!XiBrFskfP^cDJyo7Gr&*B3_l&5a>g!pQgxdU zhn}g!#;qbbGAwqLGtUo(6T=d!4=0AvI>vX}EqZZ3UQCFscE%K$%&zgZ`CL1;){z0o zbNOI9w$AZxKnca=d3fvwZ7EBhhsV}yDc9xG>)1^?T%OCv*Rh**xI%gA9lJ$q7Ryub z*sWS>Ay3?68@1F%o}I^TcccSvFVD_noAkXB?S^+~sjEB%k8RdcPk9O++oGkuR#A^Z zbdP(S<$m_=^|L39c!yT>te!jLdWM!fYCBYwoSddE!KiC1eR5i{J~=I;4+<b-I2u_? zo;1cu9Znh>(h&dTq%kEYjVU>4Ovy=ON=_P6a?+TRlg88<go-FRX-vsUV@ggMQ*zRn zl9R@ioHVB7q%kEYjVU>4Ovy=O>eD>Fb15f{spn=OMM_Q@Q~IQ_mON=pl6HlCDU&8A zjVU>4OzD%xia7h@Nn>~5epUaVF$$K;*%S{NV^&94CCuCdAla6wVzrx%f#|9f7E@F` zX^sVJS0C+gMH;7(QMG+W2q6J=c(o<wq`6Kio#uO3Xe54kUZbmVxyVTgVdc_@_pG63 z!wr*qcZX$0n$H^>VXF~2D}!n6&V#4aDm%=GyHY{^JPygqU?zulo{G8XO$8Bc<2<U+ znEdH$O}*s`gx{R9nAhnJjo5nnTHSfhRT|E@qV5Jikk$R@bX@M@RvM1W_wzEDzSgwe zb?`o9LCXEGke+@O-a`#BU`aEDzZOo1m4A2-{7_RA1)pvegmS2HZ3(^z4T=&9UJ&Zc z`@cgz0m>orpkAmQ)Vyp$4GKe*_^b>s#xCTG@AX4c7oo9eOfyVOsG5oJ&Z1Cc7N$w| zdfXb?37@_M*()F{1aldM`4HBFSwrDM2)n`D1M;>&;KyF|&*v~zm7i*9N1jB5*-u05 zQ|SMP1|Eb^*cl(+1mTqxNE?j>JK!>X3ytiIZcH3wZG`~MK$4#RVER&EO3wx}k^=KE z1<Yhngr9ZgkM&4Mi^hknuwA(-_%XFy3usKY@f)hAX&3*!cBljq`Sx9F%0wiwVJPVc zlR5ymE=T;Afhs5Jg+))5IO(Eu4eqZ1h4+|r(nrGGOfo275qIYO0G9{Fvw-n53q@9- z=54+Ny%FJW1lgk?yb0z73jHC}>Vi)|g3=f!X(p}=fz%&Ve<1|lrW<g6r45d3DTehs zp)?cPGeGvu5UvEXfWj&WcY(PR6#31hjc!j!Mp7qRkjHgUy!1Vyy0AK^{wf0fX>=WH z9nv%;YJY%>|ALhVL20~}bPQL1hx8LD>1PPJUGW7>kQYL!4lrfo1Y8vs5`OAh$7{<% zsRFg8&~E~YOf>qvbmD+6LfTYP*d<=1ISPAPLSe_}8iCDwENme=#3M!ao9pG>sQ3>h zF(ZRK^nt%nZA9M3Xgk*3$dKJU6n!4HV$E=?a^ihg?yKHTy4*uz-Y_8_e;u|mIGU!9 zMWs}h-hp3@=dX6qJN(rGy#pVgR}NKU@6Zc5J_8ixL-fj_LSDNA@;Y8)kC7f~z%ZvE zp8!dZQAK);Wa%+*P`~am4lb-oKwPFo+`b!-XCUc0+L=_~Omk)~I~2JO#VD<A7<2}K zq&+SIGoJ!`jvK+OrNB1)AeehW(sT3;%=sL8Y5B3|_z9cc(sO(U{SRn>JxBfSKna0# z&vBu#U|T+y*mEpm;uvdd1ZWPD^qd8z9|iUtqrr@#z@FngFz13I%Z%CbRbH;=_;y*) za}*lCF0Wm#=P1*bp2N5ATD@3~IiVyEH6y*k0>nQbBt3_(7Z$ys=U9pRSA)XWm~`sS z!ehgJBq$M|^BcBZE95O?G;G>8Blrf8H0^u9Y^A`a{VJH3L6O&trHV~EUz#?dSA*>K zs0VuW8%Ea&xHMCfcI{B~JI2Zu@B!?;2dcy{Z<#P<T+FY1v<lHb1>KXN@DZb{Ga7DY zN?bP;PE*q-?n46<kIgIAP34%Mg3?i~(NwsD845Mvi|QFYaB31rnm|OFfGbVF^P7Mk zG^1wFWG6htShcNJCLlMdp-3vMN+;YNrdoic6TS${WD4wr9{_VVD2-vH6aEC!2cSBv zE8nJTox=UWkz8z^N$og2kp+;{P9-oY6j(d;!PEmq#+vk0tew1sju*u)9j~wJSgCL~ z)A4qKm6o71UXzY@A*8t=>3BDSxdkL0?@dAGeJ-)%-OXgP<9!hN4}c=~8vTFlcy}8G z)@S?~Be3Ir8@5cx8$O(%6#2sl6&l$;^ukAswqq3`cXnDR+84D|)(iXhUAdpw3nv** z6W2<gj7jBjmtARb6I2O)U&&wCEWNue7FT@l@wh7;@N>xdQ=lwNw~o7Y80brgAA_P? zDjatkbJ-Nf0j^1)EWZ1A+&$wi=(U901Qg}lk;mO0Tmg=SJdD@)TI2~g&TH2}UJh!* zmm^QOdA#PVvD)zM$P;ccQ{=4i+VJ(ruiUs6<KpGtxSSdmi<f`v22;bDJiYHb$>5W) z`v@o$c>o`8Fu8TDW%TwRTxShNak~+2{RcWnKz1z%$H9C_p$ddw!TbcWLUit3#ze@v zn<jpBz29hpoloW7IJ*iY?p+&94GMJcc3|3oB702e^6qVSE%R<1^?}Z3cS1~d5T~gl z%l_G|#@7~N&q7W2R396|w&inaM%#8mQNs76=jnw+bOT9G^|=XSSw44KPc;#`=YYZ| zjIQaasvAetJry@$(mzIxKP*MQtAX|@^Zj!8RL@T6soKL;A9iaTK)Tk$<UCN6Z|^?r z@>nXXV;{_&K{BX6><(s_S0V2KNnJlGbzLZR{g_|Zn-=DA1NL!OHeh@7MdJtMal3bq zE35mhkZ<8N?gu~N${PP8$Zvsa!l$2<G#B>6QDY!+lj9}>w$*+-3ho)#c?@nQZZa7< z6G7r8v%p+Tfo`%G%tDZ!Qlu8?G63w8Cic1!3xkRb$JasW8iwLP{V13RDR4^hDwvlj zaB%+;%%>okQsf2Zd=A@v^5c}E*BLO)#fS^w*Y7mIDMb$m-G~H}#YjhE!M1!Z)3<=d z$Q!i4SO+7(K#-*8957=jFs0MMoKJyMig{oz1x1D$v*r7*a#M;A%BB=oHPWS0Uc20s zqD)(+6uy1e8qack*-avjOQsapA^vMYGNthK!lD;UDN1qw7EpMUNvHPT5Zl+wL5a+u z=~vy9r8LbpwG%<MgLFguJy7&HQ*xI5o?G>CKhVnv@Dc;b>L#_J&Z=WAr}h83kyG3= z;p*mnD7^)efi--Vvi_vNfwcvM#-KEYk%9GWNP|H#u=+Mb);+jCII<DXjil#U3XR1e z>3MDkb1Mb*Jdc3c4T{$@>0!@vDZ-VlYV6MFePj`V<L(Nr$eRh8|EQ%$;08e^UqFJ) z2>dRhI{-@KH5q~P2Pmr=NJikkV0wZ=T>2a{25jp%l)2pL%TnT~I}tkPfZ~4`9gez1 zxU0v}a!a1b@5ZtGk$EAs$}NdPMnOjA%0}SGOfb6{nd2=I+;g+OZdTW2%OX=!Y7UNy z4~H7-N*1eCj6ka|7^@4h(CT2WS8)1Zh#%-MwS&|GSmaOETYZC)^*GFY;YP=tnK;r9 zHTUuEDeea&eR!0)&J=}5CS*E1Eg`MOu~(b>j^%TKV;^;^u0@2>8s?%F=76+gKW+lq zRtu)=6W43h3IFNX%b|1yNE~|$nA<4Ov7ZOC7nH^@;@C$a9RZ1B`!-!`Anp&2^ecfy z4yk`Z;}4KHcFI5;fC3W7&IXeSiac%7Q(;Ig@6_5|_XYW#f@qApHinTppfp|+cbx!f zG)UZaF_?uQao2683~g%;l<BT-Go^Ib>!5QDDDt?``A1jWpHLC;H;q82`5m_CiVNU0 zC(ZSLb{d`?IS5C(Yo`hOW7dUOCWoCS+AsC+%qP9g`aO?sO@_LqsIE-DA!YA$>vO9w zlgn)g%{jNL!8NtL%XP9b3A56#xDIc6O0aKhXq%tgxQ?G)>UB3u^-{MkgFcAt-vN>l zywvT%`;`WvzCbd9Z<G-{OGfb9{SjQRNjAA<8+my(bxfEOoP&5ayOH)?@So$(D3}^X zlN^y2ftgQ%W9M2h*HPdob}yJMAQ?NG1?GG%S2BPK#Mrs4GfZ>rd<*)o(g4TKN`v7L zAU$^WHx_Km=Mu-xR3?tGR!4wrkff(6m?jjM()M85QD7drgXs#2Og3iA*KxVA^YOB= z^OZbZD&@7yjh$uMGIsj*u^eYPZgG>gGO66i8;SUbgJkUV^{^a=UNCk}#{G$)@HCT7 z=~EV%WKcklz*+UKpm;_yo;zLVbH>A2^(=(H2qe>`6=0T9;B@IWFgJrN8H@KB6FAp_ zChl^p$GhS`$Kr>ev|ALpUOgPdHJgg}xREEj;Xiwy=b-cyNP3^oz`Rd^y-)5CWmN^G zF^u#+Z6UP;$)=%i(+#Zq4l+3MHj}}gs5i8Gf}|%J31%<_4zZVlxdasX+N7;QPt>Vw za&PxEOV{s=s$(rel1xu@4U8-XrSY2dM7tsF1W8Y{AI!5LS-Soil!MPDE?uXyOxP>E z1^q*yNF`Hkey?=eo?%u(y~gVrfxXgN*fIlT<UVt~f)55mS@}J~D~+~eUBkM%*Ny%P zTV<<N|Gq2tgE0*K*V`tf?!VX*_3Qcq9zsY*)D_)ICc!@T2A8mVE0eGm2qkjouRIa@ zaS>@{@Rh25{E*373A>nK`Bsj-*3BymyVmU>cO>jux3><<*K7L?y%FDckg!iOEO#O8 zRf%C&xgGQ!#=FW7%eQr#JzXD<ekANEhLvu1MPiy)xFvE&;$7jIG!qKbY|B1)mV_PE z17RD((d<hT<Gs{vd;>EtVJ~&hV47?2afv<8P2;M#2A`MMm+5}C0awKHbth}3uYMl8 z;9@+ln(kG8MF9Tn(yG0&{>Sovrdx~a`cL3JAAmx<-rs23)}pb{o$W?FT(z6xk2@6e zSm@aW5b8mw4oah1wT`%wT&oZMa_hX|2rx25o*G!Yfz~c`BUksrf41c@2s{)dZFvQl zg%sG9p8@k2D2-vHEq@N_C`e`!zD?J95cda1HlW4nnFKWc07?5z9)@NFlJ=VirUoc- zp-E4L_S-+9{bH^!TTi~KV?BpxO#5vKBlSUPye94UTu9?UdL{wpa*(v&?LppsF0uVK zVmYw=u7UpbpvV(O{~z1$UZWsW(St@{`yB*Zru~LLO;C!Y<m#&b|2JlK@_yAvtap$* zdz$OK%tW%2zZD6*86=(jHZWT$u#<lf%>5w!jNrJ5-LXEViHqE5SzqAabLCz_Ux3~q z$0SsGgJzfRw{Q*s+wLSdQd4-UJ<hF5SIv~E%Xqg5Z|J5lF|jF3GED)C{>i2#Wbo~X z^cSXC*4bimMpnh<P|!~|hqK*0#&H0-*$)cw`bMK|TmK$|42^N4nYe0~;LmaBd<wE# zKu8^~EEkkUwQBuvCArop{FUY~1&lO@#{+90(Asb}a#LUYXLIO^!0kcO94-PgnF5=` zU0`kpr7?^&hgTuJ2+|X4W7D<%!2Q9IZ74Ts4xd5e6Oc5AAHaM=fx}s31ab$8JZ-{O zXbxTeraAbkj+Ii@9CBeK4oc%SX%77$^#Dn8m;z=ZNSec`EM4xl<#UP6p*_oi&0#L| z=YS%yY_0!~&7rbUkmitQ1U859u;n+0mI+FcF-G{`nuA~U5vw+Rd9dpoVItWau0R48 zgQPjE0<)3=o5L+&ZUpJ(aE6J{u^Q3Dh{WdL-*e?&`Q|XqgwxHz#XC8@#CK=Gk)%2F zatq3uLvOcnS##){*c|$mHHZHGz_104tE*Uhrb@+@&}4va30-wd*o}<r0EKw{Yol#j z>Ga+1ZnPGz+P(4T4d}cKvO7Zf5zKK=8r7-|$Ccz-lkits!o^^uB}A+G-cU$uC2nN% zS@_SEP&5)J3WB613<J}b0$aj$V3vc@7)Dyc!;tO=NlWl;x>gU|9~{}$9~L>Wdj%Q? zK++Q41M?OIwuG<2oB%~qO?oP{gpPmH5`0z18jfhpz@SFqFmD)2<27jsEpVkVNLoUF zFug(25_$%C_qoKD(ETi=nl0fR=#K$K&Nll0*b*if1!)O0jKG#~K5Y3dVOfGw<US+( zZ!N*E`iOM_a%Z=9olluawuGrj;1rOwgxO$bQeaD10%ie7w}h1@LdUw4CORdy1pl5Z z_sX|~JtmxP3A51>nu+f&fFnsuXqMO#nkTk|mWeH)Rar}D?YD&1m?AY2Yw`4oEurmT z-4Yt<Dbmfz$U0Dn*E<?*+Zr<(d1>NCi*VH*f<KQ#=RuI&6T<so-T<Xht=f28Nv?Gv z{z^-j4@O$T$iUi6TC49ycHq4&X$h6jhWmh|C3FDOoB~_IC19q5(ilcsLMfyhLDCX@ zo36D6_XkJz41`6tgomK98ze2^SujsgU`sd*=1ov!tVvIWmeApET7s|YSa%>A(-Mxs z$OoV_UXzwkZM3qgfTSg~1k)5GE#amh?>?8<5(cmw*b=%!zbhzmuhIX<may9>NK1Ie z2y6+Lz?R<<4ksu@{xHJ-))M@xk64c&cXom65CJMJVE_`?A0#c|Y%n7!uqB)aW)euZ zgd-+G$9k3~8YH#^|DG%N%D0514DF-3CHxm_hic-xSHY2_B~(kCBIPDdk!mEigqme7 zA<u6K?_uRtRjduDq+>~yr2^7d`aSGNd5lg~Jt!<hPA&sQL#ueLDHkO-Kwb^%G1dfc zK2(aE-^1fB?G_yAj~7?aX{7&hEw)}Hs*=;98Z*R1RmrW%;q4xn+~!AB$t`A7&p>{X zQT6{nqr!qJ{XL9y$r4rZX;HoCN0qFjdJ87s@S{rBQJsMN1*7Wte@4|FQ8h(W5s51A zw5V7XQh*U%fX)~!qx`5Mx&X6qEd$h}@&6eWYGK$m)YZ?5ljFS49jT?IL0x?`%tZCG zlIe0WOf~>XUHuH84GM4&<ldmHiPI;+P*+--3wb6;w(x#YTw3ZkYkpN_Z`N>m`I|(1 zD^%Bj<Z0<hlM2i)kx?7?t_Dbj^fvpTvlk@2&Ff%Zp}^keb1)x+B4bVH^1TflW}x&p z!Mhr=3)RgiyVhTf>JQ~iXH*=AeuJ@JXr0e?!(%ZS2TAKo2a^WUo9^cu6SkGapspJ| z#Q%K7qX<d`AbD`Q*63kZ!EiBC%50VTK`V5-fx;V%20I-@zSW4*P}B1;$Q+VVTb-(# z*7ds9(6snyR9=KSq-3XJ7Ob5OlHJuqstfOb3He=+RLxsbH3MXK_3ebJ;Y&~NNF>eA zQC1O1UV3`k#E93aV99<@MK+JX|Mkf1aOeyM$=>DVVCGWbF6;GRR#M=8=XNlgL9)ww zFfiwHHT*KcF6;5(FwI@o=b`^J4RDv$8HY@h<O${1#)576T;eY4Y$lGerXoNRNYYai zOmzy}Wi0|zp91sH5=?VYB$TF0wtOF6ZkKgU*)D4p)5OYam)m76)Aslpq;KC1INurU zBPyxNNF<v(u04^K?x0GEVZx_{33gwHKz9%*oMh6k9Y|a~&s?&t9jv<lC}#wtp{q|o zkg*_f^?6_}p}>J=HJEEamTb7LHzrUcH1UP1vV<nM;kp}2I|9Y6f#O?K{8ClD$5(tE zN(TbP2ZBU>M#W>Q>YKje2`C*46!!*--%;_n%KY6|{259=iXvaNcp*^yor+&6Z_OzD z=TyZVkBoq%^QZ+TlL9-BL16lW;vbsO>^!C-90qvv8Ye%gfwwrN`*6GgR^(J%yGZ$d zrlOjD(W1K1bu6DtF@A2JR8f}+Wq&aRNtg(d{-Tx%gV$FL7xmkQ-(M_%?mSSquF)|4 zMNQ+6(qCjOL>HZ|&}lp??fID$o$lBC6qL@#tRc#Sz@Alde)Kw+ydEU4i9M^@5YKlv z<U4uo1Elj=)s=(kvyh+QH9|M`suYd|pFn<}*9hR)t7`L_Hvyd|D7p>f`(D+Y*J?w~ z0cCUhWuFoh2}@Vrw%jiX?TOo+LGn`FxS*Z;Tu_3qt7v!5dsu>#p+6oZB{(VQU3~7e z5}Xg+OF`kOMpu_$yuT4yG}A%!gK{$u`7~+xdZVU0W+Gj-O47&0bQzBcI_3w*p^OW5 zQ=vM?$GZ^eDv*@%R@IJW+;}2}Y>;%;cd9&wc>wZlAnB~{lFqtBI_vEfI_tY7;^-uJ zG)Ow@>r5&vD}^3*uZncxo&h_$M$oBGU3P(k!1SlU&U!MK@f6r?E(S9f6ym$>rGdFD znB!xxYq{`Z2Yn}WZet*J&>w>N0HizUr%fo^^0~wgx(XA-n2sU97qq}MoCNbd1*Q(C z?^u6QV7ikac%aB(W43&kTdsp%P}V`;W_-T9cDW9^Oj|l=-##Ain3#eNdWTASgvn+H zT^(tu29gfi*9@N)Cg`B+L$@9%{GPFz&_RD2lvF;eYo~I4VKnTZTO&wwkaW=f!StrU z4tg?}b3nR-Zk??C4)5{M#DglkHXov}gT4|<O9I6bqi9>hsrWFCBK8%pgVMEuVxPd` z6e>QVYRMxsTD%!b8$^-)?tsAJrBr-Oc~Q8p^t;=jv>7D*?sH%sr@(&qB$#hO@u?;> zJJX{`NkYF{lGyK-Sdq(3T~_FKE2!ySV}mj4SUwl@8c(a}<xC)Zjp(^>agg*Hw+1=( zxzl=$n$WEV3U4yHrWW~v&__Y=H7tjRRQ8>Wh6UCdL7IZB@LeVkx`QTyF8vfb=ncB_ zNYa(~J$#=(yL8}0q>&G=HmGcN9>ZW{07yE8o266GK$lzmPC-8(zg6ky<9r5shq21t z1lZi9B6}y`Kexx`!qg0qYzk}vb29~Q3LF9RCMb<zWK$qK1&IU6rhsoVj7<q{3LG2{ ziyUcdKqD6<HC_a!9tGC;nP57ABHK)Q%2%V~)spHi50>zC9qS{+V|E3G!b&et8n4N& zz;Z~7L9#2b2}~(Sb_G5(k=d5dRgt1aH-^_S&SgPVfgd~o{rf?YAB_G#?h5>B6j<?b z&oo@_3ao@Je^;P-LK}~CGeU(f=nq}jiO2~)IJwT)cdeh1JNq`}gx~|x7d(LkJ`R$; z;CV3nD6lVh6U=KMy)MZ&5jvJbN4!HtyTC-*!xR6$EB6z22Ev0(NIk0U$g`{k;+U&F zo!DnF_VZ_#I#Y~eF3^to3u6Bi6y*Vp3zWRzG5$P23_vofEmRE{=0(VlfW(0piv!1H zR9oUZu$c*5ArWUy#lQ%XQEiW>Q-P<XESjY%QZO0+IXX0kP6LpP8-u}|MS&yAxnL$x z;8?Q=%%vb%g1j7<^SRnOcQV3VI0>dX!rcS?%{0If?o%)ygUk}dSilm*aET+_&$Pf; zze9kpXo2YoO;eTvNlN2jQYkPGIbgCtkx*3Uv%JHU8{y6?8{x8&{!Y8x2v?>pFM9a) zU2H=liOW>dVwNLEwMK})2qZ6h_<CW{3r4cGxZfHSPBQ6C7|H6IOTe(v^fk(Pj;1-1 z^+J#?Ao1Swz)YY(@4X7l5)i%tf_|chF@X&X!{wT4vDYcD&ABkgj%GUoY@-FDvK|HV z00nk5hrzrFii|Vi%Xc((zp`P)E<vP3VN5itPQa!4k=~%9_cBrr7azgw2Ot?PrkF73 z6%FT46oO^_Dd?UAg)cA~x~OEHQIw?X&9;0l$&Ye{N;=6XStH5kqgw+-S{nW7C^7ak z(PJ1+x|xf5I3Wr=eJ}>m8Pa(2j8jhc?UoKZ&$QYZy4B{wa8;1B#+lL@H3Vc<h1NJ* z47P`AE0FBf^beeWE~|Q;@(!bYOWh2I&QOrl%_K16D6nqkf|&z~j4+|g*Nx-VPN<v~ zrgD5;$MU(#evU3v(VobYRL*kPy#geabB?i(M<0eet#V4CdlM);$!O@x39mAu?gTAV z#9@bH?}vH1!p=3b0=sm_OcW<y(>UzN==>_I?F7k^>aZi7;QR~l?ORZkhgrSl<Z`+{ zXF7@mBpu`1P6OKc9P-;Bsfu@<c8IVfk7x6~r=iuw7xH7qcrTsDFu&(yav9bYatW{T zgoO7T*`^x_c`%4@*CQJCEiZE%agvycyd8K$?}(E|em>ML0ZIS+zGHUhHZ2@p;|aXU zqRy|a^V|9aJnHVL2>UX&3%_u@#}M{bgxdhB%=JMfqlwK#sM=7Gp7Sx>-wBeQ^G`6p zf-o7{GmhP$vG=F8mwpk(b5JGPyS%QBxr{49IR0#?i|wY+tq&60mw}lJg6-quu+aBy z<8wSr>s7dQB}i<~EA(yqTs~Czv!O1ww?TI!NNj%#=4%ja+nD4$<=f8Cw*SPfUqNE~ zXkgpt>WXF9hPv3UJ_FA$Kw^6en8_g6ZZr;SwewAxRM)mI!L5ryQpSh#{d9MLstpyf zw;K0XfW+P*Fb6@fmx;7a_3agCd!OUh#~?}T$ojrLp9|6ob+H}380#<Si|qjr`h#Hm zek5SOZ@Z<oJsP)0fyDMJ1-@;cYmRXI*-#hT7ee=3kl5Y@W+w=?dyd1d#|5Swx@p@_ z;?`pzvE9CoZ`<e4O~}uNy4Zdfy03%8cD0#sa1dbLdB&|;n*dk)@$}O16hJK>B=Hmm zKIn5zOfVbj5>G4WHU>#Nmx8$jgm_Mv=Frsy_|%VQjEc}7uY}qnkksq%LEEW44&?(C zvAqfRZv=_$V_?1jq1lW@^T@5`7r}Zqw-201qYLq$bBLdy^*w`e{akGpHo8DE?`RCB z0R_%Tx`F8gl6g?$z?{$JAtwH~(w~FwO;R)(`a@`d^Pro++z2u+yc!F5;ni@7^Ps<I zfw68zfK9Z(dC(3p_fTL;9|Q9U1?FKdm}fwd$;R0KF%SB8**xeE(?H5=mzxKbY0C)g z+jlLWi|Kr0-_nU~VwrLTK8&=y36hn*uNgiqOfWw>3f=#L!qZIp6Xr+DgOb|BsypF0 zA2S-xkA6gu;~<$IHJy!>6G-Mq=Ybgu($9GPZW*)taR}O9MQ)yf|6I=91*O{=ia7Xp zz`RU>%ekCO;BKHahLPo5CrD?2<ds(6X2|ln8m1%$NAA4{);Z%E3GLw^8P%tPnMi@7 z`c+_-fg;O|GnXIL?Y=UoZz5LK@k-1)aaS8%$Eu7pnWbGRtgHs5@tQ2{UWar5Bul&F zU_J-Q(yrK4xMTTT;B{Eqbz-4ZLG}F({a-<mE=J#9+VPF}a-fgCMuGJeA7unC?aqZQ zPPrD~!Q8c`|Eb_+!D?<Gw2;rxn%@`P;7TEm<QD#mCbt;<<@dQ0`y5tdbg=XPPJ!+u zcf+rkpvH~3)o?iI1V@cSHq%sL{9^p)Rzr9Wwp>AaTj+~G@j@!bRZ&}CF&#>k0>$3~ z#Ve>-Nj0C~E9OC|MxdA)^zFA&v9c;!=_@vZQV|sekN7Xsf!fv+hSSA?K)*P7k0Fr3 zBlhcr7cuG~7=CuZ6^V>1(^S%U%#ZA;P-_S4Z9w*D2;ISS1=X4ZL9JQ5P#$*pmR#$V zaR>!uLN|tH3mXjOfeg*(dgH*1rN9-)MPSYcS&>mDAw)gs)jXX9#!;ZGreZV1+t&Lu z-$=za(mbp2Di~M>ij)`~f2Iz%vBKRO=p5>qI*)`(U%MaQy_Bit>WIF%($941le5j# z@}MK9p4<$>>p(KKJm}Qx1I;~<AL2EFx(_-%IJJBa@*z;@!8uScW^Jn{r|54u(VZ}B ze~DW^LgxpN{XPWuQVjGIUW1Sip*qOk3!w{`4xls|sP+@C;0@qQ5qGsX|0Y$(-$}SX z7F4Z1FV$*=zuY62+VE45Yz<}#9(SBKXW>6<V-bQZ07-4E1amb7*2Ya>ZUE_Z#!-`r zkTsDeUU0k)%mjO+9Z<T5p|}Rz1LhG5?2%pt^D-#%nF(E?N5a>^%O2_EaR!SD^mUzp ztBefsXTRt~WsPwJHs1z`{#V8}V8({?$B$qE_#Je=0)@Xf8oCj~AF6o?{*b<BAKn!e zSHO8j5@neyuqLJ259n1!bS`!fKvL}ooVKj?`jGQMQtkDO3ERqIiM`@P?}Q1d_U_Q> z3X*Cc3g#>dtoAuzW>8?Y`)X-4@DJ5~Ba~Nz{;t~n6eL^urrKY+1Sw#(KY$?jGafd= zr@%Zxfz|#JnCC&d+6S6UxK?vh?JbxIR{IA~dY_?K?I*x|L4nn7&4VLDhzv8K|Ceg_ zbsfv+POJ75*o}gu+Q%5%c<tP9r&W7CbZdgb6O2Ys?JLa%=?0qdD8g-0?OoAo^c(-% zoEmK0nS5kqZ*z)7U<-%PlXb1%TfWOFWElP4^4*Spg`ev{`yRbutU<IrgeqJqHsDkJ zd-Za#2A6>Ly-tjl^;`ct^y1IT;F*Z&JbrPpq-v9+o$-5^;1BzL^G(0BSSPa=a@i6j zPq-HA)b55{%4<yZVx8#vm*MyZkSuwZIEA$H5af*@S@K>fOWr(L$}ZJ8$efQ72jwv* zOLa!tLT&<*r-jQTk&_^fr5f|KOlNBu<OLvE+AjB(w&;{Ne}2Q{3g2+%ljIdnWcob( z=iGBU!fXY}tn?Ky|E9qC>W5(7r@)!)Z(x1^$^7|~z?{$dD=E&OADIi&+()c?IfhY? z%%8`DIR~WY&q+!bGhQSyT&6B>O95<sCKJb4rz5~rT3~vXfLTO=^XFAyR#IRdHh@_V ziqta3%1>3w?IU(9n?H|pbt1}ZmzzJAY0FsX+jp(^S&nO*q!*b~j)nIi{_P;yNA&f= zq8H4QAHn^HK;gP3oo0f=UGUjKiF{7e>l`O`8UC{a*@qy{fTROC0_JTB>_EN+a{{FI z5pN4j_*}4$h(qp{&>TCH$O815An8mp!BnEa&ZH%n=Ag(U#!`jOq)mk}L^cv1H@c4H zb2Uv>+FP9HNyf^J#LlqW5hNYTvnC85uj@Jps^5R!KLWZ#K;h?&hAyk{#ir8qtb*sI zrcZhiow;tk<|bAc^0Q0#`K@=39!f5R$!Q=NUgqcxtEG?^^BP<49H%?GoLeB@$ZKqg zmpU03!>wJAcYx$M{yawxbyaINEsCEs(e^_3^avuvG^)ZAba^9d5S6WPYDi~UcZfV% zc9JAM{c`kl{A8j%$*Fw=@#$_4H+e^Qd*_;NPmoJfbSvk+*Lk|5vod%>ZTc5@mU@oZ zJouL*1@XQ7h3Qgf5xO(Ra*k7-kvxwKJp&4{r2aJOwiTljjz|4r8fbrrTc1JaLy-L@ zgy=$L{RJV7YSq5Nm5f@y;;+1$8$oL2-P~%H&ZuqW(b`NW(v#M>ZaWhOT7zWWHVw=; z3S75s26GE2jbUWn_HRhff#flqZ_~B-8QZ~;VVG))S09DOe?j8aUxPVDfnMz_LNY*+ zJd>UZUfo)}T0e#BYL;rgs$-pnXv|VA6Gmd7G+vXXT2DxwL9$ev0A?&mmTCiny!%|@ zQ@9gMHJ56$pnowaGSTS!OSRMBhtrG#n?Zc85x7*Vgfi9hb}PIpK`HXE5h`?Vf9Oi7 z_!Q2s`iM0NxwEG`&PrAm`=13!;CztuKP$j2r@;PaJ(x8hz5c0eB19)>IOBDIGC7qW zgE_tak@L{j85PI6i1E#G60lDGJy-4}Jg&nma<2&|ttWl_2tc02(+3#Wg%`@tE`4b+ zUP4FP80A#qxPKqgc^62Wf0R>j1lL}L{30ks-C2S2e+H}eXeat4uG-(@&oStH0kS`Z z@C%q9D7*_Hd$F?8L1_$A?Jr!(sFl1#uLqK{!L-B879e?ou*O8;Sl=;<VUAZ7A;f=& zLT4~Y{C5JFu@vaPbHL07MQ${qEBJ4#vR>JS|H@L-&r3AOm1Ta|kf_{;k#gz01ZEe3 zbg%5&cPyW)><7Zxv(k&Ng7VcM>BVm|=>b;Ra51AFtOm9~_jXWtv(X5qg$K+9-3zWo zFW5usu`bH2DQeB`p_hTWN9^G=V14Nxv4=C5TDnK<mDnTpHa#NeetrBdkq3UKf4v`1 z7j&2Shwc*nDT`hD5scAMO7sNp38eR7P?VoAE^!(kK*aAsKE!MMl5vSs!fU@k{(;wc z25^aU7GL$sS_0<>$)vB7Q<tXOKyC(#d}m_rx>Q=M-CMuhjd#2U+Bl<f5dVzOZ+nmA zJG}5Eo^qbP91kH{OWHRX3wY`!Kf84Q6*}#$o%(e05r}6H<L8H&TRY8fz_m*uU(9R# zK67iQ3$NV>c{Q&wk8PYZUV9kw{k+CJwsETQ+9AlV@*4Bl#%aJj{s8$aP#eC^*4Amj zJmN5_$i52M>s6LLovA_0l+NNH$7UAM2-3TwW|~OuW}KG0Em!K?HPJPbeg&q~Ajw@5 zr;sUZ2Du@xF?UUzHoP_vavxq}?wUBgcx?vcX}reV6+1CryB_k@yvE!WJ2}kVPRQFq zlDnq52AR7XD&(%`|CYONP<MrryAopnH7Y;5lzu?JE7ZAr6|ug^)G*bB+V8%C{5h{N zg@uk_n3JzWdjg4%)z>L(2)QmOGOj{0`;;Z~G#|5z@p?@SOrDY@fxFC`*Vov70w=CO z0{NnQvQt3s8iE+QgP7=Kr!g<x4)J=BR7tYamc{x5<d1ocRg$8My6aLrNCipeQk-1s zt%AIS*H|Sfx;kHh{4A&qGo0!qvr2f<8GS9yuMJPuPnBf-)J7IOmHh?JGy1K{bjeX@ z8M;uAtbx8W*~9Vi!_fUzaUz#4$A7LLszE1{x?EY5fN4*GYmUKS&Z5B8$OT{~fn*Kj ze&HYs{P|pt7Udbjo@Fr2HPAZfucQG!LwFU;%OJf5s$neHmd^!~V61_<Fma6aJp_1* z7MPwBV2)8>N`D6PBL(KcUXCdlgh)$cw*0VPZVmL&QrDz4Qv9XPMtSXWYam~nGX_lU z^sb;Ei)-bvG^;vEZ!p1J31uK9l}X$^^!37`7p#QxaK8p9+|H!dtc1ALJ1i)dBAU)| zvVNm!j#rHlqyb28^^OV@TT!u^lU?U3qu2>b9RkJ4fnp~r<~kYue8nM98W1Q>3l#fO zvAR=rj;}ZcN)ttquWYOd6o*r>w&Q(7MJ})ALTL_22J#hPuAsnyd^?z}pvZO;y8J+n z{*Xg~TJwy4Y|sXN!cDpdg1CGx&D5S<;6#U_jmpscG%W7{$<X|;34>nUa53LI{RP$` z=pF=x_ZSVcz-nhaLQk+7MR3ND&6a-fckL<D{m4sqU9J1CzifGx`UH%929m~UOXJk9 zRycm+G%q?SX`IPdA#RXNjQ%vnZR<`>j6BC{0^?Gi^`KJ#lJaZ;rkDcDvnQDDponKW zz4GO0cTboYwJ?S0t2&m?1#_IJ6Wz>6xmq0xvjag=m}$m5dLYA{R+#5QcM2$+VKhu( zb}*tY%n5a|WS7D$G5NhBD9o2u>cafimd&s$VQc{?>-@>{5Jn~;TOi*CihhPr-`djG z?t}a^NDBRXyB+T6<AZ*%%dkhB4xN;EKZfdmKvL){Od^u3Wi0gHY;Wr|rqKU{&hH>8 z^w<iNF-Qu%CYb8Hu*!t4Q0OfZ3cV*9D)%<dHL5NE-iY8Q+xeUkac$86rV44Bo1-nk zG^fC|MQ1P_L3%>#rxnlsjWJVlmVL@j$w1+mXDjSMe3fv(1<JqJm3u*1dXr(WK15<* zGxPJ~1YF=5zuVC#8Hk=S0RhH>#4~OP(&BS56H_n)o(tXCpzzH`*LcQWBWlkm!Hn*x z)X=WqbTdPI^0P~Kt<s)x)XwjNORHh*8jyI#QM>s8T-yct9+2!-9JM?0yvf%g9{`DG zd@P=kCu8L&6+GipiT7Km9s@~*y=M~PTH{z@pWDt&*Wy1bEOs@b0ZD~rf~i7*6;=mK z9!NWvZSohfX3)e5v}xo+T67yIwPGmlW_JhEnF3q%C@>>Hk+2C}!MU23IhW(*8Q1V* zf(;W&3J!nlFYS~jh&ACDP~Wg)`CL%TU)j;kOd@M}3KB69B(<CpnDx2SYIy;4=YhhN zjjpNXGmNNf`PZB9;;NK(u_<6|#>meuz2bUZ%Wv9(nOF~F*Mp>%-?SUCmLG<EKS*ly za6*l~RiQ@TmN?#m>Oqjy=<uLM&tP@DYdh1f!++N3chLC;BsKa6nBOR{Mw6~VjzGFb zFEJ*<Rv()9kL?|z366O+pp*-e8f^%skOFJ81WZRz<T4Zbf2mPFCcIx_LYZQ+>?3xH zjgm^JQQxp*`CL$=AK1~^P?j3)heY%ONsTTE%=+AEH98Tx=YYb?jjpND`;Dk;)b563 zwWPE+{i@q7rUCM^OCMOHYxFr=X3Fzn>=KaF=yP^Q*66K}*Mp*uzDhf?P<ayaBfQ3) z$LH)}Y|BR=9|lRy?@y@t=PT6w3zC-Kq52a@YW`W1FxRTaYWuhCOj?cqtoh89Xucq+ z`Ft?7D6r;>!88Qvn*Yj}h*@=M;x*fQl_ps8U7^&Oq1cuOf$2|yHGeLcNubF0CUk|G z@Ah|X*^db;OcTl!r)3|oQ+`9N3EjM}5<Xq|Wjn1H#V_6b#Yn_OAU&J%Q{z}Z7r4to zJGzB|*a0j+fO#NsmtTUk_}ppkvJSe}gTj9rUE?nG%DKz0*yeahswi&M%G~AUb=qAX zvgHW>dtvNOkhsf3b{o3O0m%D7;w}%_vXVam`7@BX#v=)?@n{9tcueArT?@A$aa?X^ z65(1u4M)EB*v_K0_)piU3!OS3agAnRiYd@F&IEG?NV~=uW5Tw=bd7)6-j_5%*BA_? zfec007!PI)1-iy1U}k|L6HMs;#WhA4U5pTh3tZz#JEba0FTpi@mGJ4xPuXdGpe(Mj z7>QU2(yrmB#<6@ZaE)i|=+g{D*SHn|R)EAcrUq&8xzk)@GjunC!WSA{;~E=`sC$yv z?*Lv-s%Y^q6?>B3)@#?;s%HRuVC*4~xW-mJ19%VeA&|JnR=XqD*S|sjk=NLhz&3l5 zoK=7qfW%$4CAiC772IXJq~#2#wgid0++h;tT5r)^?y;Snh(_FH7<7h!#9bzU8ApNc zauJyGLE2qjF(zWxQJUCgds)bvxXYDLTEb9tmo;EkQJ}lr31$l@@`edr!CjjET~Ff2 z1lYU@6}Za|JEa?9O>h@qC49Q_eRkSqOd^+`yO4;TAnh)GYVhp?6GPxG57^PK7>Mrj zBmz7J5_fqwNQ=*%<}PnQ_f=5%1EXu)B~s2^X1;*kcd4RpPgQi6syAtOS+A!O$6)Le zkhsfwJ(Wnh4)08X#9h|gvTIfZxd0@tu_3`VZmQrKH%q*|q1qKBu90KX>RJ!5UT?LX zf8U7z>`5j=XCg>k<6<xuQJ`xq1alckyG93N!nU5JiA}cGd;|WoCs_-n)eJ?~*aW7O z0$t-FFuOsK&L;H#;u>v?E_Rs=7r4f4cFH)!n&29~O89i;jdt34CXuf3FC^kAkai6} zHIC(Tfot4hM?KV!xW)klcmX7?(JM%c&z<HPN1^*4P`JO*HLh`~5p_?}4yjlwRW$B2 z*XVYOc8#UlHGYAyA3)+7OSNlcUymmmAaRYQdY;k_atmH#PqIvZRB$BZ!60#$s}kI0 zMFn@cTGDbERA+<4U6z=H;e;L5^-9}0#WJD0tcT7zkhseoU~Z>Cci9Q%9*}mI`;3X0 zRZ0{1VBmzC@t^Lp7fR1C6y4<@n3pNgT|NQx5h$|Tgs$K&&Hk<@@nce!&js$X%1*f+ zu_m~SuM$38`8qpoACpLT`38yj3Z&h|PmN>wT;MKi?PzP%nYhbu2=FsV+~skT1IzNc z)7+)fYHXK-!cQAr<1U{YQQYOs|L(=MVjpCw_*>nP)bVuw?9%z00bZZA4fpHT$Btna z*vbdhZiOIURpJAgUm(8AO9v+5QXwzhz6Q^fK((tO6JO`jM!&V_SwOWf9Dqv=8bhn; zI(QSPHaB*^$$O~CvW`N07u26;bbcqV_uN!C8vWe&^69{OH=q(hg`Yi-OPL(t4nusH zm-t=WALN^cqt?R!sF2^l{UL`5x&`72Ug9?oPRi#Ejzj#Imp(+cPFCjoLRD_W!(C7z zKgD~px`0g}cI2gwTX3lnFP#JNY+kC=9&Z$itwj(o;-xWpxRgt+S0FwMIt%;cKe1?I z8*sKJb@&P4p9GfD2bVg5+VN5T&jAvpkRNL}CEse8kGmIxhHrir^HKZXKbh*`3q1=> zU7>#9{l7=r-v%GyHt==?*b36G^MLs`1$mtZ%=;9$sr)mTA3(B|y*e=Fb2X4={^b1U zQkdpecIr)VC6H`o_Xg7wq_?tn8Vk1NbD7$Jyv~!##4*+(2r!5in4Ym<MpNKc_B1f( zQD7csgP946>^El1Z%&un%8o8W4azT)^s_FY^4jILvdgsPb$H*tYx!Kv7_*D)r2Cm{ zdCe7RSq75V;eE~UX<>rR?RC&y0}8)n(y!Z{^nA6x(}}d@tAKXMcD`pc?D@7J$Za6$ z`SyeP7X|iw$H065(pzB<2PS;ZB-*ko+m-5VggJIGc{gK=9i#)j5CrnMAW){AHrfx= z009aaNX|f6@V%ed9_(X_?et~7Vmm0c2oxU+6o*r>m7TuRR~!YUL4o3dK=A@9wzVt2 z?JLfQ(mX241MHK5qR$2C?O<0<zTISUIRY#V0&V}nPp{7ffhOBkI{AUtBEV_}k`D=- zd(scIgh^UrN7qr2Q@4#!x&<U1uCE6aj|t&-(g`mpNZK2imTFr*7bIhZUFAhT84tqp z15AblS`h^DxggLSyYe4?pr;Vv2?iSZG7=a!E?;bPE7@xNCUiI7;a==h{&^RF8vc$y zqyA3+-3ppX)ciNhzrZLgX(Z>HI2_C8f<{usPCA6>q>;Rd5U+!zk@%YKX<>p!@?Yrw z2Na%R?3=;qV$)`LOn>}7<F$p2Eb9-%g!f!*e$5e2F5@|-va8*PSFrDpd-9ErA&z$w zhH+;hUKVL<bZ9$XYJ|m`Evvr{;I28fAWY?1xc@?e!I^(=Fh15)JwHi$jnSEdu)a(1 z`et)|5w5@SqjoMP^7((TS;N#k)Agm+ao60mkm(BHHGE(y;=7Fs&7?prcu&79ukpi1 zhe;?fI!xMs60UbJ*O|1lO}SHlXoCL4gzMAG^uyPh>oRM|IN!$e(Cq!F{6jW};>Dji z_-k2sfFeJ;G-oRYr#CQsA1XM2OW&cczXVO6c;RdWYQb?b<rZ}EpxP6lc33`KT@PX{ zUfRP;a=>;sh#f$Mf92sjVe*~hNf5{K5)U?iN2UjNL%frh9>?_H9eJVQ35bt^&YEhy z%Tf3x@Xv$lv_qfzqDioAeK8a;XSHq%@-hxL-hswjAbSXVUNE0g=n3IxFh7DK@0zfC zU)NPJ3l+l8p5U!?ZmamWoq$WlE&e`M4oXFO`@dl54_fAfkIJ{=To91-_BFv|gCd`s zXb$LTLbI&PEue+r{fuq_>_zS}Do0R>aEj0(YmQX|do*XS##DfLE;*s=<x93_{Or=H zXjrxH#;j|5-FCRx2{E+=)jly3nAggjFinLxo|mrgkM~-WSyMMdyqcHZj^g7Ha_Jk0 zM|kNPJj>Z3mj;z$GY}+`y88+l(^iN#fMim4zf9@|$dqSSFy$G5S(5#LoZcbDx6mZn zwtOyEl8y~<r{<le_`ZP6&p=XqC&7GAfrI5=VEzDEbvRMlY>eSNQ9P)9G%^_(mq|wI zZFp@DB-4-PV46_i#H2fz&J;Lh83Se{NG3`T1;%`?u1OguN;{c0PLyUt{{kA|GynU+ z+y~MVrT2oo`CO)N0nhwfGjWXdaRhjj7MPyrz&uNV6Q$R{yh4E!rFX%+4T^kc%$A?} zl$$91SoX~Sn{TvFl-DjdQ7Y4}!>9PZeb@RNrTAFV0Vb4FqZ5ez7)YM=`&wbq3VQle zxc?I<{F6x~d*kqQlL+1IU&zs^@mD%s1*S;sCsmWX{*TeDqW<5GX6{C1IUx80kA|uL zwT{EKenw7Si@diTIpG_r8PG`v$s4KNz_g{nH&U+xvj~*N5b{RqPDtB9f+X}Ux`FL% zlm5YxACY`nl0FaZeIQwqz6ItW1ujWXg83d4In$)9!jhD29q$e6R{{o@*Hb$iUB`-G z&SG9qjouE&hov-Llh;$*;YtgTyq-D)%m9$Qp1RnSzGL}Z72gkmBwWctse&4r4E>3q z$U39{kFTfRl2D!T?MC41sk>myyq+4V^0)K(vQI|^U&pA!2ePw*G-e`02cuQdos=Ev z;@@>G-c6W-h5cSbW)O9aPjLouCJZFbAZ|3J$a`m(zZb4;lB!3$LHXFoyrVZtWu1I# z)LseovzuawS|6WT8zpyU4e-~n!(Dt_J6N$PPrKB;2OVzZ=W)LdSH2gcJg0-Ivtey8 z+P3vNoNHCmXf`ToO#U6rs&I#mN$!O=nGm|&SZ9{(#p;O>=N;1#k4AURpIsWe4-xZ= z?9=3t;z~q%CFpFfuP>0UxE<H%(<@VvKGvV>^NZ!9fR1$1GfgMGYhfV|eV8Sk^lsSL z0jk5XZkmbJwXQ`n=Qz(GvogND1dSI#(m}rk<`4yT&_}`i7i87vv-&y40A89goY{V` z=BE8XV_eI84fPX2kX1&}wtP<K*s?CGRQFyJ<Tt4Q!XVP@?+k+6fn+X9eq{&L*z7BB zLbC@+vu^{YF$FgJ3&ETRN@ECV_A4P>1(FxheT%O32<{J#e8`Bo`&0^zTR_s(cYxVO zfld7-FfW24&zaOzXzDGcsmqJ#4(BxTA&vb;7Y80A9@EtS11oQW(s)gpdgu;B0+Obl z1ttR|O+6mCn9o%;#l`cW=CB~x)aygP9w?G;^!=tj2W_StXt*fB1LJLsz@~mHY_X}& z!NlYubKQ(FdS)I~Wo>;R)bK``T4=t{6+dD!N=u)XS&9!xh~W=&9dn=X<>tDy(2`p4 zdd`kJok`cX&OCx<F`Uh!#JtXQ*ksx+ZHKC;&0Uw_^~knGrkjFl|AHDE-VQ4PYdpk} zyu|IA;c~|BRS=hexTQ0ac5jDp8>l)*m2oB#9Pxt+8SRN{-H*F>fyA{Afq9t%UF#Px z-+|JoEv}Wf85^k}8Bu&|;lOU$h|+zhakDniZUquI>kOuZ0^O`HnBJhs9FwZQaWkn8 z-Q9|p%`>VvU>->_UN#;^hJw;~O}uO^q-#OqWjnxZ2Z@*MG6wK1R>M^_1x_z}pQ)yo zJq7(IK#}K+mhWY!eUI=qqriSHd>}!HA29+QB^CLl%VDt>i5Ul~Fs=E6V?VV9sYS-u ztPFneeBd(l$^Fw=nS7=148G`U_b)mV-Dq>c*Yq!;e>A6G*k@IxW5`r>p!9;)z|^^T z1x<ppAJf5m7M2C?*`X|WuXF~t2ELC{=~9Ic;$CH#8M9|vc9(_+c(45nHL<tuh`|tw ziZ8*dWg4MWV|sJ+&{r8W<4f~J5KXK7{pX<H)4@1uO0dfuc~!`2U!x;F%%yK~xM|8a z!7x_J6K1RZBOB2^^j*%C_1zMuHjBh+KV=k7$FeiF7h!7(cjeuCpz~UCiIDjy_Ulz+ zJB1@!=GRPJW4pQtH`jvD#FmwW)qY$9G&XI7Q@o}#ELB^ZXnMiq3n`R5#@J@G?2TaW zW+)CSXH1%fWWHM;vnT6}Su=r+dAA*7J!95oV7oJ#0aGn?L`EuW%%YZP#ax7PUDx~| z663U$MQQU|DZ(>9&ELRZTxVc>Jt>4op$sxT2$EypNVNu?p_XGGBrid7bdbg@zqoma zI2CvKvrD%iyv&3Tz^nIz!Z}7q2I$6|gzPds)hZnbp}OtHp2Z?gIo1rQPnAZ&%EISj zMtNQ6Pejp>%Hd`S6KE^`yD`h@OAZVMQ=2obczvT8!oAk!9?*M35T6z9U~Wp!+4!Z! zi0Mx~cjz3<9Y&&m6oAXm$kUe~`%~z3-hv4wNI)^yfLRFoJJicwTz?uQZ(cVr*0F#a z0jvF-$ngj9pDUPmpmPW$Ynwm7{6c}Np7>S_%ph40)dy1xB&)FYfjOV6ZOV$Puog7U zRoD>d_oV@@!mbCi3Zz$IV~qvd^0`dk0v!G+THq?|Rs`5U3rx@bVD6*9RoI^YN7;LT zNl`p+z&(3=v%7b<JA1dgw|j6L>41}*bB+R{WXT*Tl5-G5k_ci#P!SYVOo$?)qJoN` zf+&Ir5=2o!K}9iO1OxKDZ*|Y!q5l5g_wDo4ZdG?xb#-@jb@xoqERfA4Sce@z-T?Tf z8nqV(po?~4xkZ<&8=41TF6O>y7goeAPoKK_z3Mf#<K>>T_Rr&&OU4gS{vm)Y9bG<K z_>%ju6UhGzU|(nK6c1H$rT3v^i|nRqJR>xos=4<186w{S^li5nlZ;2nh$onikdX_Y z^v7^Z2Ou+20!WkuXQZk?Dg%6P8tH$`NdJ6-iE-?0!|F+5j_D%{4<mJ^d-4)(BdDzh zkV~|Cj12y|*kJA`N*>3&0=%68_I|^m8^LZ}{Bfk}d=_$_(i6v9$uaTbODL3&KTd{% zApm(WavzY_0RQ<IB*Ut*v?7G*z92?<eBZo?U%F1t8XUj^h*LEO(wGF@ts9UoB<P5v zfD8qQ`)4K9xtM!-gzjI5s_FjAz<)ax(EaxT*$dF_U)^Z1l#3O2|1H$OQa^^k5o(}4 zXMlW9g6{t(kl#tL4yljh<qQB{JEQhuhrY=Ds};Hb?H=7K7js|a{zcs4{;q!fH$B^N zv?s0mCj8R<6DU6$Anxz-*}|7}|9s?^1K6F6owBk>HD;Kxz}ctJ<a^XImV+lDm$4k) zqNxq}>Hyi)bO6$Z1UEGUfb;?A;WQ)J!mFtQPd{#@3J#}h!8B1Axo}*OWPFB<ctm#8 zOZer^WEq%l2gvgA4InR);PTPC7KgJzIFym)V-=)S0Lb#u)#*)YcO9gMZ^340=U{CE z?p6R9tlfcJMuLNN0+4Y4-?PTHe+<_DdR+GTWRtxDlg#pQ0hG)DI82k}<BOo40m$-k zACNr&y-6|M;89_N#oUOD<zq><Neun`8TgL@eB}+7yL|lD<Fb{D^=r7HA-G~}30+(< z;%cpLtV#ce4;HN$xs~BZZWN^(ZjaiD3h{~6wa`^`MZ(SZN`CPx63dOGo^bhglW?l` z{*%ezQsGtT<eNx-NBzDA$U929Jb}Y@0C{`KdLYY5@O3u1Pr{V}`duYyd_~P1kTU>j zd{fOsK$er>3v2cO*-3>oaVe7l5Mo)-X!7HWuODI&1f|$G7Aa{Bnec*I_CK$k?w3 zq!tNAg-e07CBb-c6_EY_iBdh2>Rha%Zc4eQ{Nc+`%_y}P{0pgoQEC^Ew*WdyU1u~{ z%EjWY229dJX&g&E1cCk3KzqIh@)Ze2sb7KoOoDZ|0OUNtx74V;xX&+&Qay^I)Z6y| zYm_SDmMG=w#~%u^9XEN>PSaGmuJaVG@&hDFxqP<pC8Jax@^b<9J;u&rf$3zjMf_Nr z^VLGtx8Rq7sVYPY01}wm0BJ#jfvFFWo&f!dh@h#DrCiL74Sdbeqg2P}FdhP9sevbG z<^Y*Ng3;lAAS(gBibm5vqQgI5GbB$iU1E4W%EhqNkq=)p6sPBNE`Jhw*8pTLuVrMg zXE0c@``ss)UIXtIfL-5kn7RCYL+ati{~RmK)ZO@aa=7(<9fk65#!f=P`vCa^vR3Qi z+<^c5yD^TEB}NhcyJ-Lvl=J#t+=^d%*e#G-2oT@f0Aw8rdgU8HwvwQ~9tCm$Afx2r zq&gRKyMuH21vU&viTyNQ@<Rn2C9OcT0O(P&)o8$94j3%iOc*7LXdFxJ0)dVIv1bU7 z!6Z0J#sC>bf_0b%WD3A{$SC_iM#&>ZqvU+n|LZ6z;+9e3>i4R$Y{&B6w7hNj<tVus z<=+I5QR4F1!j~K+%aDH;!2ZbCDRcP?#*AV^ri@9l@ULmmkAEB+!gA!e1>_$D$dK6# z<arVtGVcP}1yJ%9iv~#*O{oI^Fc+lnaEd+!rq3zW4@CL~AOud)t$;KEIFykodJw37 z0GXm)onGZ)xn@B0@D;oU?J@|#Jr*E?a5j+XBsd6H0l5$0>uPNK#~}Q#f1B%JSUsu( zOfpmS1}J$9;4n?5=np_00LT>m4UjJZGDQzawu6fmpQ5+Y>KMB3Pw@W^@QpY8|8t6- zW*FFA;TsLXDf$F-xl{BfCjDYZEV_)Cyk#I$^ecwjqq?I){CBv{=&PbB+RgV$e(@>V z7tt=PV@8dxFe$22iekp?Z$c;kq%-ymmb?J@`_4%~h64Wc&pH`1S{g-|hG|qIukV{T z@XPV`3gk9X5l7;2ARm)p%=j6|4<tBxGoHn1U4X=l?n!knmTP=R*8fz^n9%_IH2@Mb zCIOiM&@p42(O@YTD;_hpPy<Vy4T0;Zf%e=9WC;mcdOwhrBv^;XfjkEAEih^??y8Gs z)}kojTOZTSdolM#>;EEdi5aebulj)P*w~xaeLH>`GhRmdn*kCtTs~X)k}+c^@^=92 zTa29&Glm&6ip7k5$>#Zr<>3E1m$4kijDwKh2auTYHIOezFlPJ><PU(38DAw;{6rNk zy}nlT9mb5D=Wx6hATgsUklG{|GbRBU18^uKG2;$Uw*n+)xH@qU)@aW){ocbjU<b4_ zW~>JH0|1E`8-P4Pf-&P=AiDuRWorD7nDJl#)tX{hJ?cD6GBM*glpF>)Op}=5-w5{v zNX#e+Bo2_6kzo{A%EgMujGt&VV@6f*R|fb>8~*<pGb$Pei5Ybb!I%+8`?@jXc9Z@O z*ZLpJ`q73PPXrHyJ@{|cInY%UGu(Wy<QI<_n~bE68T`NN*Rr)!7sZU%cR^=eWVJ{A z>H_4?uO9(&7vMkt>Y6d*j8UZ24K%8&*T)--GTy$0+$k#JNX&d5M|=S?M)QG`A;Hnx z3`jkI#0*bd+l4kVnCm-?8N+cMTw=xu@E1}6*BOrhc?h6mMxK$w%L)uuJZ7As29~-3 z0_&)OF=IQB*GbUQy+HPmV9YoI<S@Wj&nUaNtNvHa7?{x2xS0F@iW#ncuezP>*v*@^ zknPBraT?`+4Um}O^4Y?dj2UN<|0}?5Z0wYn5i@2Kiy3p1&2vA?!M|PaVmXW%sV|_? z1RnG$0VJCQV@3@iRRB6>EKjOfOBMKc^QrV5#*9v2YD+1uGsXhBiUecEBS7v4IFyl? z@fxTt0Ero{POow?x8HmCmb?w^j2ZjE{T@JK#&IAYkzmaD8^~V(-!sOxf5eRc`ls`a zhSj4s!Xy(jGGBxefWtJ28I3^I14zuc49KMbi5Xjx?cid?V@5@`31h}U@b?G!-ZT9F zGiDq%3=%U=8iFySGjzEzquGDE*8hkZB@MSnZDn8KpUF2uS5eGx^SzQ^JZ20xk~(H& z<EF=i9PQLaG2_>Fp|b+Au0{QZ0jyde4g%Q$DA^oDM%m8zme;NI0V0>#R~tomQO_VK z81D6T-;H06w^EyMqzoV<u{Dt9BsfNU0qI79qjwyTYXA~6o=d88G1qq(GgiI>)m&%X z3;v~4z?g9m$ol{tGxiz{mU6M;F(aSGvDD)b_?Q}K&o4lJBEgt(0myk0tV3WkI-Br? zQG0O|_+K$2Sn~gG%y9L4RU5YB2yfcUG?g(U7v+}#NX&5gY~f4Bi~{6W1lZpgJ0)hk zSwfppEN0X+NtWutaz=SQ=UEP8Mt#WF21v~445R}I#*9KB0{}W^bV#ZgL>1$_z9;BA zj2Sb*G?h|}84m!tn*?LVK_Ghp4rL@}{0QnhfW!<}C;kWCXm|U)hi}IoXlKmuyaW>f z5;HP^q?2IGr~#xJz*lIb{}D4TFFNF4H8p1(t}?71H4-M7n9&+a8Uh@qNz51p>KcH= zj9EZt03>FNNw$NF6^|MH*d~k_i@|>zz&FS6|Ie7Q&@f2MxZ4nn8FQe^jTzsW^ot$w zf9*|n8*Y!9!oC{s4SWS%MKQz8_ey^8m=QNFtYgOc_BiX4tG($qvjVhM4SEkcGdf^z zi2B_FuyR0b0rDb=iXe^w`2bL|4v28smiXpdtJAsw3A~KA2O&@13o_Jb_p0w{=?z~0 zmc968zt;v|O@Q=!3m{EMu-|(C=?3tPG}8a*_ZHIc@|U7kO9TksGj|KJl9;KFvgUdt zU!zd{WR>jgrWw7KO2Hj(Yk@b=m38KYqoF8w06;Dr-Dmjl;E%!5jaIg)@XrPB^#J=p z!=Xo|{gfefL%)uOe#WE}HFU;)6uJ*tE1=*`fb|K8%|M<b@ePQhKn?&>*;OAH4VDVg z>|4BnzxUyn9b&zLcP&teT~!)H93Y)|8IZOBhcf@wU)LdX0zmrfCsTx1<*^9#*BBPT z{(1yF4*{gVo&oX{3HH|xAa4MCzZ>cQ5B=p9WGNRb-e32kP~Bhhf=9cQ_EAgKG5sZN ze*k5^3y{95Y<Tb<7=!(*uYLsYcL2MF;n01Bi(*Ypg6=K8Q@?9vU1Tp~mbHp`^6LD+ z7Hru8@>2ckKneiz9(~*rmnU<^8exyBHUvU=js9&EW;nhAyj>{FCENfY{YWqzj|MUv zpu)Er@f%^sItU_2q&&huZrAtRA2Zov>_l%4?&1Ij@f<>Dz#yJsm<mucaDFcpZ$PTm z7H=V0IRX~U(v?!X=ew<qYogOUs;=Lc1HY_m`Gei@<MDma5kJ@|NTTgXV(RR1cs)n; zx(J~KxecLUgg130PT*H81fF-x0HjyWZbAI$1Hh~1+z7m`KXnF^-dcpDY9%WZ|L#iQ zD<nH_0GQJ5ElJjTh4|VAXhJSajr6xCmG|Uiu)HBGiI0)c{(XGawd`zIRgnpK>%oz} zKTff#BOk<`AfwiG9=u{Hs|J=gb$o?LS5B`cAnFGw?00%1{$?}~BJ4cc8AL-N5>DZC z5RHT=<Aj@oXe>m5^H)s}O@yfFY_9{NsSpjF`_Wn%&4g&_d{rGpOCc_G#ub2QB}7-} zkE=nn7NU>Saw3Sf*>}OtLZ>aB%gksWT>)Z*Gln^riq#XG6`0sEItnqxxd3m<=#;)3 zRhaHvGaE#gEOx|P=h8ADE_V<l)D6zrD?nV~zaQG>JKu&ubaU2&Sme~53ZifD5wI<B zy0F^)<C~DP!uinwF(Bu45UZWF=)a7CV$ND;DSRelP=H<Wj58kj8H3YKf!OTqcoamT z*!G&UCmY02|4uOMP<bymQ!41o`2~EVs<Pp$ggTsWfV-=Uk)L34J@y=}lHNw*Lf{=b z!KTD>#J-0?i7mi{@vzGn!Mi%q+o3Lzosdtko7;bmFZkIMB;<Vp)18tLbRwNP3ja-n zQGxcnjz2na0?F+&fmY<#n4b45wa^OJ^v?w4bVR#{>!cA^PM@wI>I>1ziKT&PB*YEQ zpJ<726Ct(_t_HT|l<-=Ex39r}0}*d$X`^oiF12f^@@it(WadPB(#G2c051_8Lwpy; zMP^C9bV}v@vR0|AetL||EsytE#^SY*Uhx&^$vXhQjwBN7?mYW0;3X1;#7{p2yrhh~ ziYLi92JR8btIC5pc{hL~Qo1q^Bvkzi<|U%(H+WII{ZJFl@b3Y?k_ttGK9=Hf_*8Z@ zBt(jnm<hu1Q?1we=y4EPLSX!mhzOD4+<X{BREV(C`zVN*5K&bzh|+p^qqWxJ_fnpI zi`EWM-KBRWfY%XRRrRB88PU>*Xj*BE>S!5}R}P=aiC!Xvx8qI7_N$6i)u{yxk2bMK zBi;qy?E)fL77c6#HwRIP;1={(N^mr$LT_*+#%5};T>w!&n1`nE1<S%k{K2Pj-zyOO zvjk#GuocqNg9G}*ieP`VSupriH~3hv-+UMpd}1j&JlHf39TgmL2f8Tu`vNp;aC0GS z2v*0gEuyN{LAF0S@=h3}t1wDeq2;t8V^nms{|MVqRiwdHH($%@j^9mQX@?1>y6>T+ z=tNyz=OuJnbdnIL^>PZ1i&5}8uk98x(+G-|>y2PN4D#rFS8yK%e^@~4mex!P-dSAm zE-k1k29U3t_8z+@@L*O0Htk)b*|fbTp=p);gSoW+s%hjn*MuBjwkOBlEOJzxPzF_v zKDGqePSAoaYjk0%YK`%<fBg>Th{;bIGsNT#+6+hB<QXAQajL2M*><XY`2+<o$C!@3 z5@v%U=iD1q`9|F5HpzCQGF}#JJB-TZeh_cEDybb|TWSsbHzr_dp>vRTWCm#q!F zQWnmRsk}~efmhY|^`(H<6ue$7lsp0@%HVcXVar&zN+`iOTOK?;GW#G)IZrJC(KEzz zzhS2e;zX>M5Lr$Tz7p#lDnL%unG0WyT^VW#BH_Gr6^K5;%RrQIjuwLGD@1{l^8$!| zB2&{jmk*-9XshddzXHSnA?iCRxgZ7#(a^aAAvrckh{n#MQ6L5j(bO3?1Vo__%~jrZ zM4#A@6xL{L%h+vJ;2l&ZejJe?w%C#)RXi1=E_R2eym34lqGC%dr!GYN@sqtkEw!W$ z;dr^RpzgH9?nHbWCW6>qnzKy&@rt1C)>;bUz1Y0VG*vae4nsF~kLIiy&xg;&mTRh^ z>iozukT{J}2bPJ4W)HM(!<Y`PdKhgT%pFeuTa1?Q1aH2bgMV!X2mjM(!qni3p&a~e zJ8|&uMz{Ne&&}fCZ-)_<7W@WtZ+h_9VE9omIv>h{%TR+*u-9~SVsJ=F4*vJra_|S> z>si6}SZqaty-}}d@ac9iD_9ZV*+E}tG+MB3Ci*dWYb9Kr4`w`yt8~E__)Dt1hbMsP z`jih)fx?39IX}R7XYZXzn<rDNauyr}aYF`c<#&GH24a4g11-b(U@M3lWzr2hnID2! zkj@886HX=6BYUCblu>!*A)0+t$_o7GHoDCk0PhNxLYXSK2&ffYhRM?tY>ie(2|nL} zZFEh7ZB!2Rw1dy1)qTOuOW8(sLTsa#SF??>TC<HtBLZXuf9L~cDsM;^6t+6$PZTz; z-I!}s_L1lmlrWxn-p%lj?4yYVNa#R3FYRSCPV*>7N!~2tt)g_Yw%w25ffrck$=gax zOCF-7^)a7Vs_ohLOx{Pwnb!xYDmWOeWCiDe50NI0wn%u+M$&O-4Ci@0=K`m|gBcB- z@A)HZ0n+`>b5P^?%XbTiu&PK^RhU25K4Hy8TF24oF%`G>qW-5WKiVB0{qZPJUt3xz z&R0U%-&om`!zeD!w?WvaHPtX)t_-MeHPt8n<2#_fvn0?=R}~Y`pWs(r%kyMI%;Yqp z9w*wzfJ~^2veZPMmkp5UmTEVIS;01NGAnrfLohn{?LF+E*U-}bVBb=7#5U-ZGQqN) zQQ_eEyHSh$w=aXVl^;e-Q=a^d{PE_?@pXUxo-&}q`BksSPnrCAa75KI|I1bQncK5m z8~mV|drpF5LR9t4j}pN+pLF@X;P)p!&GFw4lO_+Ha*awH%L!Y^^Q(APf0%nbM@Q49 zBd=D8&oq%S<u{C+#OH=H9PfnLHE}{`CgPh>-^58x<*F*bqE-EgTXWw+5%GsH11E0F z6`d*`+6C%%O?g$7#V?>1iMw)xL6`Gxm-E++;9O=n<2%=bx<^y~_)=2KHI<=y)oP{P zDUnfX3={?BH8a7F`mwnuU<`PI4OVbeOt_VeUIS~i)ZicW(4WDt5J!E%XBg{(H}v7C z_ySFz7Q979#j;@-6{^ZzsWkGkQqLug>{6<DbuQPGH=Za5v#!vTKi&aeo#<Ms1nZWe zs(!OZse+ujIp}73bk02E(R`Ih&W--}(LsLaIQk)Hfhb2jKr`kn6e8-pjpoR?O^Af! zdmO}KA#xo)yOnc?5M|H{aKW~v;K+2n5~UwNaryNyMXh%7%c0Nk(+%<EAtyiQ20Zub z<iB4X`+q0@L^nKz>*Q~Vz=56os|Mr$mz?}Yb#dd?$zNSZskKi2&v3veocvRZaR$f9 z=eq{hIr)PS2%mEDXQ7GKJNe(v!wYyE)%Ix&Cn>+*YbZast}Sc{PHoQq==}gaGEs<> z#5R0Qr3+5C%J}y>7~Vf{h?J9|iWhnB1(C1Et+NPSZdH(4h8+%KtCEc2Xv+~-<MD{g zV~6153Fi*P4XdljlyUAn0HT|;bAfYsKZrg7wtr1$^ga-MC8wb?4i&QoiRzZl@01xD z`Uu)Cbv~mx!)+Sd)ftKiV2u%?r}Oa<5R;^wKF*NcAf{w~4Vglx83LF!O>7(CtcDL* zGlUq~@)|rja=plpahf9FT62V$penutqY`X@UcLM3mb1HCj7h<!x1j9c8*mFNIBpPK z`6<|x5}YXkz5=={HMkD$ZwHrx(HG3Si?00Zm2~BmaJ;nOth*WDQ|B|lw?*RzgA=de zB>40gPJ*wZ<Zy5+v}FdrD8otcOGKSWaQg&Kf~OX75_|*$DO**^tAfyBKV-cHyW(8F z+iP@CRq^d_fqGmAM}Jd3vSF{)R7O0E((I=#Y4~t_d?Ba}mQ*~UDzc7M4#E@5*za4{ zWI{3bFZKaTZ(!owk=X|=y@QE!2V)=7R7#v%82hj;#v5;m`r98G6XJiMD)vXN2^-M_ z_EAlR<J<E=eXOZy{IAKNj%g|pzY;T-eOyzys^T7)H_dOKv^+~-+qLvG`wOcCiRq8L z3)U|!J;f);S>>f}XngyO^)B+`CA%a4N3BZ5hxP>Zlcv0Jk^RN;-IERhRdE^ktK@W{ z@Hy)*3NvWhzguY>%{pk>e`pFpvk)bR?Z2(oSuW=Vw-^RZTY1Eny%IESOH(>%+8#}1 zsLoHZ2YsIK70{CCiLV)h@fG5jRK4o#Gj3Sgb3IanGeE20-S5E-Rh80^OxXFJeaMM# zrJ9N!=};B_>TRJiH-Oz6Z-}YRF3@=y@h$s7Rn}BEJ^>Q}s7xw}>I+22ftpJORer(v zs%cmA)P{%0YsbJ_-IJgxs_6t=<@3nMOT;I>j+~lWXPI~&?6YfWDnI@>LV;adQw6GX zS5(2qpIEej#zb3u^)7_AK0rc@3A*B)L#$3C!!;reYnt<|F|Mj)O{3UMig6)w2gPm# zqQ&w&z<pK2E6KE)Ok57Ulw>O6?BVw{`v~dR@r~WS=6>c}nz|g)EgU(J2!>XFg5grW z?A6y=Gn}miyp49Xs(#F>318E)h&CNrgz89zerMrpU}~3OdRQf>qiVb+Zu9vry&Xx; zj~G0@j#;B9;XG-9=oDc!{4KAVGF|yPON)jbdo6Oh<lG67M9Zs&Oi;edB}|rab~5J* z9Zfld`ML^TQ&p@;W|rG_&NS^ezA@WC20ub9QNjCj7`<K}!sxXSU5Nh)nh#&F@)F$e z2U1>}m<l$i;3b6wV_}Eq_h3nNjB5E+B@-Q+u-bbo!V%(48$h;$H-iK&hPMKBsiyq# z_K>qWY6^|OrFfM(C@W!Iu&)AtQ$8nVDPQz}1L3B8g3Pjf67Bu*g$E$)@nw+_!mL%5 zTnLx3I;C%+@c3)4QC8=48C^=koOPL|yzw#=?xHDwyc}Ysb$NQ6Vqx)L>x%RcuS_LW zLW16nm`z4lTY@980%^)Q(ApXlJ5-!&SZjMwFLL8OG1{%&L2XsjvFH)&-JnF%MEp|D zLhos+Onf9f#@eT;f_RJfLG2IfK8jZ-=lhy!7~e$d!=TJdE%o2!91SM8fW9;?li4Rh zJ)5a2E1|Te^=b4~*corYZaWsus)A~%`23eZ9gq4r$0y?L*#MtK9nSk@;;+)`&oz}F zKT69^L?uWRs7imL?)I6~LU4WpwNmX6dn7~>ucn8>N)5-N>AGc*=^UB(r4nV(ga!BY z#J;PZC3)rJ$Rm@quEt2JD@()qeSPhEWMG%7N>4q6lwO%6dNGw_AtXatqFyCy4)W)T zT{pT?dX&omUJi!{Nd~`Ef{B$jG=R+gHplxDl#wrC*GwFH1x?Xzc72bZ6?>Ch{K85b zgP~yJd&sNjky1~)c_G0Vkd+LQN?)VNa>IVc9y<XA{K8@n$}7!5oXd@fd_`t)86u6L zDs}h(Ss7ubv}YE@bvqGLmA*tw%*_(fAs34lyfq4|%3rK-A^4^<Po|=RvH3`@?~&wt znauo<V62=<aHmsg<-5@91nKY3lS!<tbmDQy-YudBB^BA)B$Bu|9E9leXo6A`GueVa zxJ;_xvcm{eVauV}B@j+RuLIGtQYZP6M=JYNN1gq6TNy=|-0}ZruYiX2M=a-_Bbt5k zf3S<<O53sC2t6lGcQcuIZCVxd!7vN$^@zc%i;_Dsd6!4HUw4zWFBL*e^{HMS3?VDD zCll`#f~L>Nl+705mnyiqBo<v2tjzOBCxnL4S&6B{j5IK8sso0Htt^JYJgn>`FC;;+ zpl5C5ZL~r#LbYI?2q#-gRT{hn<M-J}Kjaa#EHP}dsQhqgD0oaOpP6LP%72`Uyb{{7 z<;+VeR|R);LSAz{GB+mkh^YjNujH`cM<NH1LeR3rRN@vCJY;MiL=Uc?3X$|1Ip{>< zWtXWTom!%<wQkY55wuWIt{VE{qj;s&(1BMeRlZVtxM}te()#ttMiW(~bN8e0dnL7V zQR*39X*m%j%V?&u<Pfi}7^xc7P^fn1d2YTcnB5stKU*<|yA@0(q6+rb!%f;;k1Pu| zFqySh1$W(y<kC8Mx0|f<u55%kD>rC=!eowARS;T$_;!tM#b20QNF`U^hjp_3a4;hm zDcsjd<u6m$SEKSOo?vNaY$I!>zG%TRtE8rlnJSIQFE#5qG)>tGK?d!DosA(`Nt-p) zmDXlma^Kq+YS|JS?n73(%uyw>OLJ$GBfF#$+4UK;GlxyW1}ryQF9EOG0=Y<b7zai8 zfuww_RlftRK_!vw^3-AV>Psz=?8a1L^$cfJ#IZpmW~p`ak(iyGW#uAyF>apT#v7=r zB=2>EvP)FPH4|l+G0DrvTE$c;Bb41hwDwX7-W4gS4k0|pq%ws#70J&%Nax2|^+g5j zjandVJQ2HuQZJ#Tm4J-TVBZt57R+z|Dvm<|GJ3v)?QblbX%j(@1w;?;#wIu>)7X8W z7ctEXeNV;8u%>50f5x;QkhVT1YmX6IaTo!RHcmYqlR5KQP%8nA-r9>3lCc;U26FOZ zih3p%;d~I-h8yvKw2|uBn6!2|P}xjj7d#sa6rw&0LH7o<ewZ;bdo51p@srBtU2W=) z7ox(Ktfym<{(1Oi6SsK{kNN>r>h~4!*Yrt7{&k%7d@Oh)8UIFBcQADo##MMj!Fz_$ zQisU6ITq}J(2+W@mZd&4SqlG6hAhh)Xn`ziJhFyCelQ^Aiuy%-coAAsLQGcn0FV6_ z%Pj=kjo`n5<)(}UwGZbl`SBz%ErJm;(34S%1<eNAT@YAGA>Sb*z~P_*hfPWAPzBtB zx3E-5dAgjXzE4)i#f+CIYfH?th-$Zj?O~`~O|_}>LH(2z`kfU8W1tLvS0ig9m^J{c zyFh#Z<NzRxLZ?i>VAe4h=Rkg}FFmOu`~!HubA?l0hZcbEC&SJ#0IS)8JjKgT5hf&4 zcE;@HW$?=u%z}6rpi<}y9g{*X7Bo`UJF&!M3ehjhLZCE-QtwB{?Mw=#&j*8@owk#V z8<15WOw|El@?CC>#M@%PXXEt|e)9Nwm~`m{l|t5|Mx{52*{&Tg$I_~nHR=aJ^#DLt zaT)txGAv5W84upE02n?SojlnTY^g>x{PS2SP!7L~k#z&OW&^}&=Ndj7xR45Z1HaG$ zI_*Q?SqYFPclkWZ#f;J7w9it8O}-WUTL9W=Z%rEEVo4!5?Uxjy)4mIV-4yaIDc)Rx znT9e>%ZF1{we1*^WnKg`K6T|A?<0))YNK}k<H##}0AE&D-RJWSqorKTNGR)UtkQ6{ z2>bkF6#fwnkf3p2QmAk~7=Dl0OI*g&VES4Zzd<~FEy*~6jDN)fGt1*QP!aDQ2Gco! z^%wZE-#|A4vdLygkzE&5Z9-`fDNE<hv8w>N8YzPSb^{Refy@G=vchkgl5iw~B`u1@ zYqBKP_W|&%0$8l~1|aJI%KM9vcn5K`3wU`tkFOTOe`+ePAE!t8c^a9+l9?({P%K>w zfJw%|5|iUmE9Rr%7h`E>ASaIZ7Rq}QAmhO0!&BDaOFHKf<R1q3mKi-9559H9iEoP$ zus_|560RvCn89I=f3nKBfKLgW9<u5xZ$rbv4NqIm5=c2-Cq=3To&X*#a0#jQ5+ks# z0EgqW0A7*9vq*Db&66gVamM$&A-LP}ZZ$+<rls!Da^9tzXWPo_h6m<6Z8XA5eU**p zimn!h5MAvJL5X8pf<5BK4<?^2Qsf<B*gL@^9JmsDWi|?Uu6O}F*v^j>Fu-*DNzBo$ ziX^<#O*%F8EtY<rX?K=9S*M%I-B2v&RwKd6y=u~>a&H+z%KoUB#I}oceO@f*gJQaV zGwGM}{cH&?9%9$QaBE>q)^b)mSewHI0#cfjNFPbG6E|m>xR$X<uM{#z0>3#X8_dj+ zxa@pOOs*K{rP{4}@t_i1Vw9WzF4l`$y}DL6Tq%#VAC^XRjSQAoDb|q1{RpT13J_h7 z9qlDCxqwh{J6<6TNJBxDwd#o=hcRi2s-i902x`4Bsj8ai2&jEb;o7CDUb{FuaFiQq zl^>s`)B=<p<!z@rF^5anvB(?@i1Nlt-I%WsMm_=hAwUYFLU&`nN@CS@J(Sfj=If4Y zXc8gb2md~RM2OFT90RD-2qN!Xqrszg!2qjKENv#GDj@3&n7$Xr8$QH&cEgBRNyf&p zw5?=(5Lp+%bRJ;c2_p0+mW%-314dvy5>?9RXO(()x^8U5dxK$U%f~8=rB^`Ztz}>< z1?iFiYY~WQK&p_K38E>G#(=;{BhR-CxqlFB)yF{n)fCD-#1&A8(PHt%$bpn4w|k{1 z{#z%;kGG*w!BH|+b0P>Z6imiy$u~ory8I>T=$X3onK^jhu#y#fPO>GIvn49W(q#&{ z42E?Az`<5wXZ>YV{I^Vdt*9%!n;&b{Z<URMeHm>+2O9#JzJL-VA=BX`*lz`O6Cj$$ z9ePw&!jFM|1keV4{&iH`JZ0&UIrPA9qT=Z<BKJ9fc-Lut<!L|YcL9}$jKty{1xKr4 zf&XJP%Ek3*WPAk>Pugzm#M4OzyF?qTtP9bMRUpKZterRy4H@yIED#}pN}(rxYveph zOgA_rRV;l!HPEXrfj}h@>R!)Me<g)nEX^%8FXn3qi><4{)(`^q0rq$h9e}h0gjuR9 z=2h3CiXI%fkWvOAe*gd-U8aNX0S@f0P{;tvF22g7(^ZPx<n5bXtEE}mwb#Np2WPN+ z*S=HHQX6R>r{M7@YBWHa<rW|d0m?h4y_V(_yw4P!oPt-FOisb4l9|dk!Pq4MvE=t} zV*?dUEkvmkR%vbXldd$rDqM-zPS;1P@_fKLl=>hbV-q6W`e=Jz>i-7xr+^Z?=Dj}J zV;eMG@)q9D2S}SdY`EGGEk!-!Ko8JqSE*;BC8r?m5a_p<hV7SjsFH8vkp_U?enkVc zYbxmefXWHX4QUWdn>6eywIy0=2JjD&aR5;L2V?z*Rdg5Vu?C6iIrr;&{cLh(`8f)a z)2yk<VVBMFnp9P}GV=Pk<?M~-%m)4k%J_xl%rY{qkSKB-zoLyV4(5lcbKEjiv)7Gb z7cr{@@A)Non<~NEQwiQ>FF6I%!eZSST~}&l@nmP*UCngHV%-@fcj19nfON*<XnWq* zX$QI)KssZw?u_xEhXbTDmgvs7AM{e4c9mMHJL4qikC--6-Kjex_Z?^lNN3!sJL4+Q z{Q;GKn~67%z$EF6d!nUi-Yv+u5zuUtv7U9Foov`_KRb|}_mFPXb>MxB{56WTQ4zmN zypN_SS>qtK;L#wb?j`r>R@o#Cjlr=hf_-Mj4qS^^7_H7J?H#Dw0mztu3l|Hc9Vqn! z=&t~cctv(m)JGXEiBoqqu+%Q2(xYBOjjUUup7EIDtTV`p@5WoA0M<zmHGotjaRfwb zAk6`RgGRa!Ru@Gb?C;8DF#aB^yN76>K*~XLZAAb5dM`|ll~3Y{pk&#HS@x~bKq^eL zIv{HxwD)CkjX_KWG7*sK{jx~NtG=Yr;MC}V8u+b=tlPnJGlj~7cpS(hB(gzl1M&(W zn=*DYq<jGC0Ko19;zuB-0p4TAq7kRC*n`@lI$<jE@~!Ore28{zVsg=?fo7(=D|~;k zgx(C`7Wlwgmio;I7hwoY@<AN}vLDRA8QU~~><3+byu{i_8g|(azRo&xKUfm{IRL#M z<lEi(v6PD?g|Hv|jY8ZHR)#<Ug?wIPy52tfIv7%dqa3C#j~<a*s8`?uB7CZg_Qb*! zx}a*wh27LT*hh502)3?>%GJR}FTruUMMKO;S$e#`xL?1hZ-LOy3~n=Y>NTo=G_wqi zU%Glg8ZYGyh{{E;HZZOM0E2O$9*na<O=b!gcLVic{1o(IKnflC{(If3yI8KNyEQ4A z(y$f`qf`6dg&zULsjCC2N`g+^5=e7E;3cE!BBxGCQ(@PuQ_?KpeX-qx<+ISYZA`O! zk{D(S`B?L!f$LcI9bmfx+PeUJml}R)b<r>{si6on8b(IbH@F%KAw39ym6+*(^V#r6 zWYbdvs~C%C0mp8PFCI<9)hus{sZKA9q~8oDdH8P@-U=p@vve6;<A)jx|3-xcU70(* zVgQu!o&Vm^#W*_|P80&p6-zJXyv}fb4%4pEoa|ra-Dfgr^X)q0BAf9a&c^0X4JU1W z(r_ki=HEH+!(sS_$;2@9{c6&A&E1=38k80LNi#{sWD%-s<n|g_;&4hfp}f#5kTStk zUik(V>niVPL$HKqS|Vi{Uhe93JB_M_>kP9lK6P>9_-;2U^ax|f=6H}1X6q*b?g2d; z3l=PgRqX4-@STc!t!rh}#r6z)uZq#SL^H8dE6}4O6W7ZN^q^?WU0W5s1eIM|)o2cH z3r2WQ&Z-to<6X7Jk+!=*)s4z|kjT9(rEWCN)iFMa*JD^^_k9n$4PEk?x;mqUWP^9r z&nUkyHHM;9sL<+FgA1Tgv@sVzR?oDn@gkEbt(*jRodAfWviwYa^glXp4D64VV1YLw za}FTu*cEV4Q&JIzD?{?JBGH)j7g#oecOAg`5ySx?`vKv!uITi7+DuEmcs0t}5Dr+C zkbDyP$0?8t;twF_0Qkgieji*%A{m7stYP(Z;~t6Br`eInek6Vrk+pwh$_F5h>Sq|( zz8^<&$e)Q@=buF6oC7=K(}+z~vOoSbB8#_79$i94kQpj*2qPsHH~?iYm|~wd#l8@! z=l1C)qekw6Y|?rn`)TXuh}^Vq-fS*jR2fmRg9ni~#b|0+UsqsCM7$$MB&I|<@aA-m zbpDh`A2v8EFfAh6p2(l?LBq9?C{NTzB8=YCBXUwI!aXsF2;!@X$kT^2jLgP;$hj_( zv4O1^dxeH|H#R(MZ0H_o&e~`jx<|UvhKQVs>si!@y^KDwt+!6s#a^jx&=(i_=;lzd zwOFfL%}q&1Oi9fnwcU1WS-jm^>ULA*?n6JmmL+}cF8%#BI|IsA)o6`dQdc9t7L}CW zi`Wdvphd4`HD+Vo19}M{+5;}|MwT2(*#>$e(>QLn>&IN|_wWEY)7U!Ov&6GUAgwn5 z7cF*VNqfHlYCRyDl7UB`vf|t)o&^07(~iT^omt{S753ptML^mJ^;VYeM%X$Z)Koy1 zeVy6tO0_gA;|{pv7Uki&KeJ-2&NeW;3P`Qk6SLE0n%PpLN1?vHh;Kk6{5C|^e(<~p z$Yze+1}VoueG0I<g7_QA89?gZeno1$Y97_x=%jCHh~MMLn(#he+X%>Jj(r*_^Fhr5 zq^=oMB<WZ8QSxZWUPQ_5$oc_1-vO-6Ap8eVE<lBgOJ%5MDD`p37KyT8C=C#a#y}cU z0*lGwGFfUnWfnU2Pi{$tU>oGh%>Z&O<t~!SR);BdlVcaKfoR`TV0zM(+79G(N?l}M z3H2qV7CG9!l!LI1z#8QODFMJIr5+~#iKZ)Xp}=6t$mWlvJit=Bf^9fNhEYd*5YvE6 zp$@r5eJt6Tzq8b|Ncuraaf5slnC4T8*Qg%^vXWBXqsCV_SiS`>XSmr&|FKxQ7ye_? ztGkvZOd4j@>hG9Rt4f+|^#Xw|QZMyc4=p<t8hU!BpsHO4cG6jsjeG8G3ioW4hObDh zF5L5F81_6M%ENTANMH}xKLC9QfYn}h#8(J4-+}r9kn$@oNK7^=i!gA=$0`*`+YP%c z9~QM$4&hA#0F^SRP7!NrQrzzf<>48CCJ>qcw#E=>C_?O`W2PiLv~IAnu24ZFr8R}v zM;#&10U&+U4@e(skUr{cTGmqi*+-Ql>C-92J{k?C;gn(@%?C1vQYqJWgGU%CPZAsK zmRlv_AA%;d?gQH@2&|xn#UP#s@*Kck1L92}uakHV#3w+GlGqC3dm!JC*bO3h7)?sx z0bI9GUlKzwl8^PC<Ez0!Uk6)X@LvhAUH~xy$Ta|!#Wr4K%=Q+;jD~}bPulldFi)j` z@{TY~N@tt_?XEMfESA2sSo&s@{s9bs!lX}wL%Ln_s!6*ZYq9!n1L|uLsv6f4t2?k< zT-KLwyap{RtwuA{ii?Pau<1sC|3?tAcvxq+J?f^BU~(4^%fNIOKo$>=0(lsKZsX<Q zokpYx!$lGKSbMYVi7bm9zY!A8QUyDH2awmOLN4l^OKNa2pQ~YiR@xeB;6=To5crTn z5{(;Os_SK`<+SwEEMKSQEDHVe4VX>=vY8{%_&lhy0Eu?4WU5+ENkrppN;29t`T#pF zfW)ruK)M2Sv~#5bYCEOeXgmZAgI$T~K&DXw72`;{*4T(M&IU_HyJJ}?x3N@?qz53f ziaHqW)&p5b9Ws(mBx`wqrGA!`{)W^NZMYRoFH?#QdKk$2loF>7bQBw~?{TrxZi9ZF z<>%8g;?&<k;50SRss94<2Q{RQrN0{umO8<5f5`HcZ;9VI$Vxwg-60^GIrc3`DFG@0 zu$P0V38VlZo#d)XRlifscOm-+7S2w35<F`G+02nndKJ_rN^&A|B?BspAq1WD3MJV| zr9Z@lMSyftLm>45x|3X~pemr0+esb3(9V?@1Y`gu{vi`l4Jq@znPzVU%MGr~{XkY~ z8R^)^P4nOai@}l|dnPMo7@LY6yAvWisDmAQ2*?5IkdBR*ac!y2EcK_X^p%w2Ncj>> zpHqq*`!|q3D3wxxMr&lGJV`7Wt$xn(*J}k0?ZFoN2s;gc)fhxRka7UKJBT_!YLOTW zq79H%fGh?=S9NL<OR7E_@`=Cn0B<*d_{&frg#cK_2Pm4F$<Rt-ImqJ2Y8WZ`94zzC z1)IgMi4Yr4Ju5)W1u~n&tsw3IayuZ<%c$ddQqHQ}k@Alsu{XBr;9?s0m3^^wSKcaS zgfO7KgJRrS+#PYBnluE+>U$0EPm(6HxVMApK+30KYIfz_j?FV^46uJ2UTqO}GJM83 z!DoPDr{6{8R_PVCH6AkDqOQtHZf73QOIp2{e;_MR$fk*Xa}ZKPjnoArH8e|aU1Ucv zG^-gG;E~4Msa~zu&)m9PomHC4<_H($)-b&y*E`tZdMU2=5F@f=ACoykStIolx^YBy zF4tzsljNDhCSre+CCd%G`KaL$XbWZqtx0Wk4T4#XxF?9Lc?TJe(Y!WO2-zq{&VB?U ztc!`XJ1j()>zT;Z2SH>SnI~QrLXNv~mzbs7L-lLC3(vb}X0Sa5j|R`G`!18+NRLd} zjjVw;tO8`v>K>W08~GIU5vF~Ly-?50FdN8s6oCVv8>)Av-q=OhzE^4@`VK1BCsR(D zmjGv!z|CIYOlhNzpc^plZ|vpz>9if7p8;S^)<0ABB(*=r<$pjL8m@n)bYoADodA`0 zVmtp;TP*T^N1blXlvUk)WXu6XxyQUsr`-?wUO?*2n0D{z2J7+hsLvs8-IeJ)1r`34 zoRL4ky3ft`s$ZGEI~?$Tjb!9fdP7fF+CLV#OER4zNjJ}{Dlo4|60cL~p~X5&(J;0h z`s)$8(u<iT*#VJn_X|;xM9Pa;;kqI?cw>YeBW!KX^iP8V|3R?%-^P~&6qhaa-vVnL zpP#ELKPMhsI{wCJq}Or$VS%G6*Mrdm+oLs4qBVD9<~|5ZUPr5KV{2|X#Iy=b+Xs3t z)3}y?Q@8Lj(4PQOwqb$xTz9vPT+HiQ{!V7bd0M_7Y?}GSB(sYpnRjOfE5jbm?0woW z4(N%~{Ya+W)A8MtdyBv^lY3E(hM-34I-o|WXxt;2B_D<L-^0ppY5ivyI!7||nRXuZ zpMVH!WPPZslv)-mz)MX-VVS`$J(}t727Ue($nw|0S2mOF&cHH0fsX?0D?yY5l0)Ju z5S4)xkeC3X1&{^+*)4Q6+C9p}l6C*y@$scee(o0ZvbSfF*~OB~KcIVs5pBw?OI72f zMVM)S%y*e-v#FO`7v;@0jBK@gkZgP*(5+ay>mR9)!~I)!)m>|;sf-;%GJ}IV;&%tK zMxa)O0P7_XOMol_WRop-KT=XxU~+A1#PPN&if;+~#$5_yUO<+$7GK*S@)Dpt*SRl% zWws|!mmHj?%W`_g39ts#^!GSjrF7S`uJa^B#R-Ui1`wsbl<_)W-)KlZSJzStl2zDg zY}kSltTeRSFOWL}kbBTBAO1@Ke4fXxfGmo$KE>^E0BXdGe|t<cvD9&D+ZGP|L~XnP zSRGtd0kVc~2BZna#D=p*3fCJc^+wp&lFdjPE(231fY{*jd4w-%Lx1G=r7{(8IoKxb zDY*fgx^%4^Y)~oOka$gneMv0eZL~p|_5l{my~zY9908CEoJ)W#2FM;InryMa7%;ng zln0T2KLvP!^JySY0dP5sW#)i!P-caKPDc6b$a)1(wDGB$RC-Bqr5}UoBY-G94diP8 zS}h%mm1mM7jVLlJ)Bc_M>mloJaGeAA3qV+<@KyF0&YJ+{v<A@w{B|24t&!3kP_rwD zQAk}44R$vW{gB!lVDmkJ(}7F^sPL<`E!Et_7W_8@%l#!7vc5#}N-*3Dus#B@9>^0U z_JY^}<PAVJ`E!3lim#W^(LPtVy{t(Om<pw+Tc~($W~fGI{L<MEL;QW}qtkx}<TOC< z|Nb;m9_3;+-Ts`H>5PO187?Au9#Vf&QjP^xNltzDvAi2HL;Mp@Klgf?p>2}k88Xbz zbk-FyaM4;|f{>-!F&?hXOxsU}qPay@&5M(v%EhX?7Ou`rYjPPRxN7!uwVcaUaxPcL zGKskYsmjGlxT07U7b{44(@iP&^hO6mr<n@8OHA<kslBD<NV*voGF|Ym(pz<gi*nKn ztTDV#7(O}2!3jkr`0ks87fa1VO?;Jm{vD-04hQ*s)S0$)Nepl_8$Z^nM$m@~x*vy| z$l~odj#B_ijJ&!Q(%N#l)B<!9omLxZS1_$V=qmwfV{55T!zDSlP6atxl4>KV43lmI zc>^GGN-aFI7M68Z+LYSrSUAB2>2hQ(rNlUOJZu-joaaG3$CQys2{2_BsJ8%e`5?WW zwjS$EgH;3zKi21A-!onCO9wm({tp1+M!x|037|F9GIAc}Vl}h^Wt|B7esVRWeg<g* zT{sU&E<mO7fKXvlL#vS}?~Aan&E@b19tz54ikt|l1@<ZciG;3%S9L=^PXuYVg-JXx zG$UCl7xTF$eG#rP9m*wmcZa&J0JBapLRhgFEIFf|4*MRXMa9-BNt0jvC-b*q-$yKg z%tN4kFiY^RGi+S1oI`fedIgT>Rqerp51llh-iX*OcL9x)&M;0o8BUsIcwHw&nu>M8 zg3NkPJEX;xDfd6`g&WfW)9H91+R)2D)FyE`32~zR+KDpZMAm-oMJmQunOM8RG43Q% zIMt_P)3YmFhdzck`RqdO=5Xe6<XQ~yENydGZi48$Je$MKnHi~uU}U`<*3Xv4Lfqf1 z564(`3g=78tq(V#m0E6nxFs`HYyk~;Bpl@kOW~Uy$ofcFHguZxk#H*(ftx@3z<PH$ zqY#8O+OXaou0yTd>)fLUg5LYxqsM@Xc`4PxNF6s)EsEEnMYxG>BxSYIZKSt*t;2Ey zCc@h%RvVKecQ4!Nis~(1drfff*C8yoPgHErUWlA`w5eQCvR3DvYGNu{_=2N1PO|sJ z)9|bk6<Dr<Z}&jK2}c5t#jCdIi~}c}TI`r~cHs%9J@HIL5$g-51Q)cKW0C%aQ<}J5 z)PCvceJNV!D@RJf%ZheG^)92D*E>b^E~jQv^)9DfQuXd)s&^Mxy{Aa^yGC`nN$=v0 zsS~^rwV7L&eWnzKt$eIi+})Izg8Uj(J_(~`93Z*^ck5ozh1>!9W~OmL{-W0Z4Cp5T zxH+}Sk=8v7YA;hp;!S^2rxKsz;tC*@*NNSNJ*wH&sOSq$`MKTk%Y|}(@bm@fi)J?) z3vJbfjGLVFd{`(K%|?M~1R$F^a?xxSsA~ao(ae=hQv)f9i)Lq7#C9wpHi72_fLt`& z3uF&KUo>;2LTUn~+>2&kf#C~RLY=^$;7|fKa!K#Xc+`B#yy!SxXd{>L`Cu&v&?dcR zDuZW+$oPumn@>iXR0mA80AkW*Ksr%MZY{Y|scH?Sw%|HCB?f|_uPbpgkOh=bu{s>9 zYmDdcc8qw=8r`Adlxv)}>|7PwL?^q;u=3`hu-@fVPdeFMP8;HpQH(LmoD#Af{*7YG zoN^@ajxS8U);#S`76U4S(>$k|$nh?uHDAkd=-jBiL&f${YPczSlUwv~r$Msl;m&2m zW$27_WCoU@Gt!Z%R}Y<0MgBe7_3v9Tth;M_!vFGbE=b_t-E|$ep~+qWh=2Fgg?tS9 zFw^MYz4Yq~&x1Y-fPeSaHE4ifR09D2zET%F6VzltD!18g!5+2aDpa(mlV8{iznq2k zf@cpv`*%*#zYmhJx0CLLh2r0zfaxe8n>pg&XFz=e5dU^1)6_{y!oT;i2)ah)FR-fx zh%>bU(gL8J$(0JJvy^iEyB`?(xDu0rOr(VIZ&${naE1ftIvl4OZKQuM2ir2Tib-9Q z{*46}-uLbJt|B8%S_7s>0b<fNAg@wN{M(gERn;if-}v`FFzj(9{sMB25~^IU16Z+X z$63-sj8rpeDn2;s-G|*<3k>4Jb-%;~DnJRu;uhMKdxPu>NFnQ8MnMslr!`@caeQm9 z#45wz7kc?M1wxZ3*Z><<SJ0Eha$LctPGB|#JAy4-7vaI>^{V%-!D8Y&E8uUBWLY}7 zdA82GA9=Fk$BLVg<tbxd5oStJR#T_6zEGfRvOQT77fTw{$|*ewbuFsNeAHr|TN9Vv zqg*UntR|OIFj*6q!>f+{t0r!qt@Hj_lMj+Lak2lXNqIKy4^Z972`q9;R@In#&d5iM zSSP2<DVL)GTiIps8ir&$H{crdU%AEXyZTq7JBnUbv7P(T;f)==)?pIkS!1UjgOQ4j zWNvj6w^~RpruOPO+(~q;?zGmds}F*;gkinUWi3%G#FZ!(;&Ppm<dG1U>y#m`LtLq% z5SM2{T!Qbbj2&Yb_8a|wxcdFtQZdEvbV`QMG$)5VqCd^aBd+zQ7wOM%_1~Ea{qv4M z|Amk&6fE9wVMAO9RTY(72D!2PO18<*A-xRZ4KtZWehw9_Relc1T18JIzlLN18j)$_ z*N}sNhSJV`041kPY241Tv{RwFEG;6_$TwP!)5z(NS;AHP5K_lY(L9$TMIR5z>P6b% zc*sn4)wn1>YzjDQ3OF2+I6<99T%FhQ_|j7$y)3+>KXhVQ_*AH-EDPlX*3%(b(KK&a zS*iCzs@w&v1Ltdjxf69r!VX+M)~etDT!37T+RYDD<+-@~F!GiF<V5=XP>XHgdl&R} z0OIQc9I&g4q_1$w7b#J`9e1Iwc{QY60!W*zZVJhP+IFB?F@<l9S){G%54tbYXzHR+ zdLfjJ0zCrYTW`$cBSPLChR8*Q&!L{?PEO!Mlb)VPrm5KVu)`W=T4gTk#8w#=l68Ih zH8{~WEYyKdKcw@}ABb+O7Z?1)wOKrmI6Nd<-o|nWaa2eSA@css=#V@f6JcGgF(EmR z2$%Sh4p<N>!S=BJW|8uKfPzq6o?*{9yGF8mGba<qRMssQ;Y*0DDj|6b5e=wn43Ms? zs!fPIiUlolve-J!`4oGfkQ|fjpiRM*1-=%tTmt)&^4h(WncR>pA8Xa+1C^>Vx)vBJ z+=wI`cpP0DM0Fv0%IU}Qp@wV+tD7p<6HbyBlDCVTsiU1Fxes2&{{*VR*EQvZY8qW^ z$GlJz5$~zW-3##?E$%*V>DPu}+S}ub=Y(n$6VC~mvzMy=S}gi4e<)~u308KUKU7`( zto}ZZi@$?Gi<j}3^LJ2gbFu00R+T~)5?jLc-*-VhCU}dJjNb+2Tx3oP*K*$n<#txi zg>gcZ;;3#M@o+5t7&IqL|7-~A=U@cGMn(FJ*2F0mfFdSP%PCU??|QR{Q$f9ry$wAC zqA@F{H=L(}?RDVTK>Lpev#HeDPdN<c<H1^_bNGTQ5Uok5{)1r6^k8Zs@MhN|W7VTK zV7Wl2njXxhPd$M#axEZ(zBN7AoUZl2DO}?LU~FC&l(AXsYrL=@AR}yMP@3p5(ANUQ zm!1!%#&BV=@dLV>aS4p2%?kQzqiCxxvabFnMHK?9%R$Tqay^MwAf5uUmP92GZv%M) zkTL*7m!vuuD~pQoW8-gd-W?3pGr;y8_)k#5I1trO<2pA$c^4RIo=5&0ytt@g&Ldy+ ze>GpZudE0}p3>G+posaRzqoRl`B(>PsN}I_x1dxtjJ2L0OuM}hzkD>m87yf6kjIu? zKA-R<A6vd0`IiBFw-|%X?E!|I)h5ZKrc(9Xp#AAp_<ayr!yqycVBHDgK_IsSvdLyY zg_N_Pz5v*pKy>&P57+?g9UvYCayN<hK%4?{gv7@n>U@XiTL1&T29f!oZVh=5<D9Vr z>k5Oh7x=LnhU`v5@XH4=dO)}vKtG7#Ga7Kg*<e}(%#A{UITYf97(*dYNTE~?>O@j# z-SuGT7fShsj2|IuGML5#yk!gz9|zusTz$Dp`7SZ(^2~7U;zX0;MEhcdO1Tv#xGA0_ zmbA2gDD9G=FkltfZbsoZ(NcNU!`#Po1HqjQW*aH1c_=uDLVWCh1qAM)(6BRT)#nXs zAH$k@75eK(WIPU*#{hCE{@tYNSJ((0LW!5Dj#oktfoDHJu4A47@;yL>Cu7BU!bssd z1f@FR+{OYVtM9RS2a_znU7l3o@f<Ywk*b2HG5{a%2GhfQD83xb<50kJOg%mR5qRR? zWb$$N_LBMUC*YSEJNN>hL0W-4JyB|n6d*75nN}>li%B1X2dLI*ogV)MocPF@JV!r^ zUpv3Nx9()+FOy%hN&&9QMwIu@C$utJ`L<S;v@)=LgU+M{bdFi9m^iZA)Aql6dS1|u zT#a_4BlkgD^k#dc^3vQ@#$hb=85{Q2puZ8WA6Y*kYb=<C0kWB6pGV4lpzZ|N{%*J- z2V^UW7>LXt(7gb;@VzXl)5R*#NPH|`*!KhtVRyF!e;a^wcW)rw0s1QQ>q!kRmYk?F z!s(w<19w(qATUaVxLQ1w6mqfBx>PLO!~R9XSS;9PLSP0!HsOnbECR@m*A+`uf3q#H z3GYQA?s(q@&rX2sc#i@31fX}ku2evU&=<)~_&G5A=1OFq!JqB`P(9AK;nhUJoW$UA z^08`%eHTz@(UGEh5UT@_BSme2v?jqLMLmFY0|Y7=b^1tAH{5Ue*I}X*uH*+js*Cj` zF)Xfhv3X&C{%{z?V{k*Evk)LB;3fhYPl6}lZUQm~ASd8lZTJsm)*C0_e!K?1Y~s`( z;R%3j=14myKxF}>on6T^Rg02n=T|AocAg8K*#K$h<v^AJbUV9JA=RpQJ3j-4r(KC% zK;ELnKV+h+CuQ6daNmLDv@2u(gs=-h-(0{x>Q2*0Ruc0_6G6OO*nbThDHBy}0Ev14 zI~PQIAZ@84h1cEIBsI9$6|RO$!v3=(pn(VUdqJQFHSlcy)j)=l;Mx3{KqdpEnOz-T zHJnwz+5A4#z-BJ^8Gi`}$Yzc-a}!YY0Mg8^q+eZ2Ni=glCE3i6faf8AH1o?qHUo4s zyHXkICQ7;2ln#Jlzbo-AkZ&k~uIA#-mB~`~Q3hx87rP~ef5BaRfRuCzkV=4yrLxs} zO5tq&4p*ulnEJR<lYva6lw4qP%POH>qm+9#|5-3>a3$UW@-`*#8U@oCyejFtU<h7< z4~%$HDxlmYk$x=hZS!OpS3%RHg4|uUGb7BS4zSQAL4Qjwcmw_Mx`khHoCT2096O4X zuAnXj3@8ht&eOUSiO~0(BJnh%!B_%6*7G6z1qNP5=xGq10#N0--TVc5w}<>YM<FUy z2JNrUuhRI+W|rLs*v;Uc53nx>@idS%fSP?l_-3QGAzHg12zgP?H9+<udoTGXg7^%` zCjgnAk0uR^LlT?0L|;fty#5nBzXBv)SNILfW`Od>*6AAZDg9~S<)p;pjCev=c?(P? zcixL7Q{EL5XlT;;^u88Aj|?}7e8mGM<v@zN|K<tFIcz5Hy~aGgxAL?uES2-<9Po1m z%-7WTW*a@bOQQZa8R85|@-;NQ!5r_D=d|J68P`I0N|EZ2PE@{MOg4GZ6}(Ya2~Dyr z=)ZRoI-mpSY$n*<fwe<ZGy>!f1QF()vN6VG@IFa4<h^)UZ4r`h1=AdWH4DUHAbSDX zWU-ea#d8*iVv%C622m44MS#5?#84muNW2W<4j^+#yanQWAje4@1X2GSE|LOdB6e-? zB(15=y5NJ`Zt>b<Overee}8~<>>MC70eT|7&(y-FTr4>ecMPWurv^^M%OG$Ug;E(p z$C*VBUfag1j|lr7AtS@)qhNX%kj)&4of|<tOHn1~kCz%*rCcme42Jy3aLO0d!}G^) zK;kukoIl<V<UOho54IksGJdAA^wHt;lDK{&9(){3pHhl9%6|m%9i`;rardN@i@_`8 zV@(VPzJP|JORm1(F<1a{@z`a@f5RIU?o~}()eXEt!Q>@Zm&2<Tz_jE=O<BFVdA80g zc1cq%9uG6h(WXgDjeW%~9&>T=LXy+PvfY|24woE&9evT_A{(`c0%UPf0Z4fgTwK%z zQX3H1ZPdBvmHC+NKTaykJasf#>@qg{?66ObXS1Wz+dxk%KsIw^p6U&%D?nxsS29(t zr6lI5Jup({sU_f943OF5aUhQY^gQ571=K5)a_6bnz_8Vo_z=hklrYX!a;@tcE>_lU znmOT=*0h(-bsi#rQU?#WhyK771b}v~#Yqi&S?auS`gEx!{HZjUN&>{W8UU$7DS2w) zStI39E|y%G-VpY`ObtBP(***Zsey+_2LS0u4f52&zNCgvS#JNZ@52fB<#KH_m_`D! znImhq>p)Eh$eL{lkVOFLBv*~Cexw?#*&d@Bc9Q>32mrE~Bb`(dR16@U<VvO~A0jb3 zX(A=Ln3xZqc>w98`+%$f=uUE_LaGF%+)mmEhG$)gJwV=}#6M)Bsv2e7HQO1meDBHx z{=zi{06r2mN}C-M9-%N;9`o?A282^ePQ))ewlPE+0;FR*0_i{<5;YblHMC@@gTm?E zD8+qBKQQ&C6r;u@Amb<{=dYeMQs`KNB^UC8!~WCM!1Gs&Ah3`ccn)hhkYxaQYGDnK zM@jHp){8)%2gvy>S7GYERl83u>;&%)fcVQHAO`?AE#*ee3n<@g5v!jvaW#UuiyL07 z9J~$9kmY@mT9U3`an}<^W0bdp$>mMfj>%kA-5ojuO&T;+pJv>1Vv+XhZci*I;%hd| zZ7*#BJE(l4)>ty3&F>5PTcccmXVBS9uzLgh4ORLakUIoKn2#S+eMtHpqSv#h9?A+> zw;_4>`4rU)V9f)u2gp`HHd*X@krMnHN5ug48W06QN|1OK#LYmalGqC3JdiI)>;^IR z0$xi5u#bSa2gpJ|Dj$D(C27O6v|(D7XU=5&(#O65&nbZT*zZ8j0`yxKTNtUvtT#U6 zv+T7HyXefV93Pxv7;zhq>L+9c_ESA)T0c%S;k|iS9Grkr2arAUT2%2Qh$={qGy6vn z^MK3(h;vteST~tRU7)@jvz+Qv@Jr`j37+Kuaqf*kHULz4URZYK!gI4yt^}+97tq;E zurC1H3!b;hr^@ruj?ze9oR!iHhWLYRz{mtU0W8h(sz1PJR{*gX#PtBXHi#J>uNn)m zTYz{8$VNc!WgzUn`1%~wVP;<gqH>B?l>q2NwvVKsTsX1v8mx@as82jAt?g9&@{sLJ z@J|NFA={Ne?geD=U{utISxGFzRp1`DeG<HDDa-@6F9F#EKqvA%R=yFhWP}n~X^**u z?giUUK+)k_m)oN{&V^-e0cXJUEkFwJd%emFKqTVf;?AZ3-1wnLPF6-2Y(y*`-7W*J zT!5UvZU&?gKwjuM*a&qnR^d3e1u1bYKjW6lqV8#!YWOL_lFK>wSa(0D?87ox;3yy? z0KS<<&|JUeUD!3rb{scX+c}MP(n)7R<XV8P&<4YZ6E$Qkk(H4RPZ9kq!L$q@71|Eu zRe)4zvk`K~3MzEatx#E3$m*-lrw=uj{i`D1K-DSgW<~x0at`1deo;ka<@HmtA}fr2 zQi=3bumkY%_BR8FCt|LI@rbJ4rEBp5%fK3wGYNjmSZj`jpPYR+-V4=DE~LvPpS|m~ z+v3QG!AemxKGr>1CI8~kNj^nZ38hv5$f~S9kh&zeD(e8G9UySpC^4%t@6y$?ZItK5 zA8+ILAL}#kauZLu3C>20O`2cb4P;f_ROnI7a@=@f^%Tuwr(D7=nY?=Y++6ly&~pKj zatXU1?CK5h<r^Me!uC}&gj~0-Uz})BjPQ0SM!cwP;f~Mu;j_BgMAzqr5M8H>6TcKA z0)G`FbeF&p`4V8a5S-(o@h=7g{bt~oH#4Td@Cg99nc?zz)p778Z)V(v{99PT%Z#yR zFpR2)OZ!i0I}z@w`oW;T@htpakF3WaaxWm8IrdFRISJ|rz`heiSsPIsU_S_=FObfF z0Z)M#X!=+#9n>@hSjxqe`B<++>@%zfFCE+k;iUkT+OR%O)+B}U=7C{r#NTNqetRKn z4VYE~tWF?y0(k?FO*VTdQoaE73BVo?BINU`G=O~_i0VM{N!$dYKaeX)+zsL;Aaeln z4&W}PXzWN?bk9iS?(6W&y9VpQvksu=rlCn2+mmr{#P<#vIX7(q)5`#vn|1@)B~lDN zw;Cyr>QAY{NZQYoV(>W%rVq*J-EEjSNXnq%bcW)OTjF{_@^Q;RbF<yoBg!!Hl0tW0 zdr$JgYQECNYx)MuZ<fD35;%H2em_OlPbm8oz}gR@qTh>u&jYa&L`NWP0NIqWPa|a% zsA~ZBZy*)|nM)!CjrlB)4J5)Kb^zH5$Snn;c4d5}EIl_{rgqm5k6J)OrbXfb8p7r~ z3yGfr(tObXoExB0`RH9`W4=c%qtvyL(zPkY$L}hGsX!Rn&efBQkCSnFq(px*vYi`& zsR0?~QbS8K=#+A?OI-iFC6a!>Yty9=Xb%vZt_0GH8f4Kk(P;3fO)ToxNN6jh^a-j! zIg@!ax-!{~Yy=eIt!DbU9x^j9?7$HCKi^|K%+!ieC0`3LQU@|O7DXFf3e=b9OK;wS zNsk8o%fRe^9&|Pn>}|kCpaNF|>~}!S12PNXU1dt(v$qRP35;jgnF~-X8TJ0TF4mtW z$*VqPy`KpBS8|b-3XgaYs+Iw=nPZ2Mas<>qfL#iNFU_mYlBf(~0EnIdyB>(Ufh;1? z62ws;yGe8gQ7zr8N&)OELCgU%10d^;@*CV4%6|jO|32c|h}M<ab2WHY0c4tf7063~ z@_clx99S_mj|XS5Wo$RS+PEdT+HkSrleC}Dp^5rK&~^aeyW^tCIVFg<woNit;rOz_ zVr)5lte+z(71>gC!S*G@KL=O^ApQpO7l~XDPKH+n0fC#0{3zUtW9Q0?tBWSi6`1%` zDxX5idB$ys+H8owBf)trhEF2pK~XM1o<yn+q$<GACy}zrYx4=DW=LuR@KrQ=^pi+| z;imj{O)b^xcr{D8Q)_v?5v(=DpAPy<prie3L1#0;-UzHWbX^Xxw}QA4$aR34yFd&C z%h|bLdk4e@q^<|lJ_JH8^nM294Ww)VNUT_748rYZNa7`8iF%NhSaAY8#{e=e{|53G zK-K&nD&~XtP4MOZ0K)zYUk?6uD;*$j^g5bU>SD>8ef6VRvKFrf-U<L&i+2Ii86Xe5 zeVc6RWwgj$9uGo(KMHXDJq5@l06yNA4L`3ne-4}2kNR43O%>Q@GB3KOywe1Z`Blk{ zYszQp>fTLWQ%>c-L+m!uA6J-Y$PK}iChQ5`!^i6HK`qk#ecW_IGE1F?^h?ae=+Pzh zG@!jod0Uut-dVUq^P89M74R*{{CFo6lVxaiWfvBc-F=bl8TXxa-X~3PVYw%Y$#yf5 zgz0}4OCM#@X-^iahqA2N%G=(w7uhT8WDE-B4VkuJI=#>}t#7gPe#O%7EtWp1So)_X zoyFdx(@it1cB|rRV<N78Tko#J*wSXC7P5s_=r$ir93N{{$N7lvd|U5<jB0#a@9pr3 zd4P<QxDRk3qtnA_cufN6tpHi>U1n5R>Y15Pa5y8a2~?Ega&MHZ^IQfz2@eLY^K_=K zn~~HDJYOS2a^0y)9(qry-5D_!cV@XZG9V_>$m>u-UmCePqXlsb|0lzL7QSQ?s<tH~ zXhUEV(sSf5+qPuXBU8@r>%h4sqa9BaM)+5c*47Mp>zs-`1fR1W&5(cTvC?k@bAtJg z8p+@G3(=m>@<c@Enhg0HxQK%*&(`A^p))8^>s)JemK?DN8~cn*He$`&k&TaE|DXn4 zkeNXn7G+c>9t?TapKN9txhSLlNpMa?+F(GGCElV7+y(kofSjYcHN!51){ukkKhor% zWmaY^U93w<X@$7F#FSiwq4M&vmS=eWL`|&`U>gG!qX5<b5Ho?yAkh`XZ9o<Q0uLBX zlTBb}K<Ftq!TAUxg8FDw!)5ZQkz6R=o8iCxCj8Dq)^kv@8j#H#`xe$e47-tHF9$IO zL{EVID2NY%yhY+!5REdusw}|X3gST^_X1Ma-->0QsVS0K+UN{_!-e?WgRD2evjt#n z191k(DL^*aYJZ3nyh(L-?JotHJE!)~f~=lntJ`q4EejzR;Jw{w4<Yf)0zE+Gkv0l5 zu3^F9Jzk6{hQc|D4bxoQEfc1|rFZBap{8OCt6c^(-rs0yW!Uf%VOFO@MsNtL<21xO zQD9JGfbu2`(_1&=>W(RJD$;A1^vq`1o*=!|M`$fBx4a`w4g<s{Enxyg%f)V-Tv&|f z=tVq<B+nzocrIMTbLMte&uhha%A@Bc2FipmBB|$-Vmuu#;#u<lF!ml`Rus$oaL=4M zVb0lg7dFVU2n&)WEICIJ1d$Aa2&_oX5)EWTQIHHOu1Zi;6ysGyM8u2)5kvtK2Dn`1 zngfc;_rBHLvuDBk|9$6qYPYJpsybCyhw14Fcz#Rb8Ets5NWj4Ig5~ium+D$&xr)*m zVh`h?QhBNDTGK%IG!ZNH{*?GO=!@|p+2}(iP8^V2Ae&=!VtQh*gzYX%QsRF>Qm&xA z0!`5o5G`xCM1wcfbP=8?D$VK-&OOam-fR=e6Ge4(B>PR&X0QjsqK%C{anz;WLIH=p z4|g~{g`G=#v*{@n=~7hI*+a-p<CK&F5YC<;zHv%*#%J&|yiU^;eQumzNe5AaZl#2L zn7LU>4nLQhA)jn+o+4k2&@ULa&|XC~9CsK(Wm8g}(y%q1c-fSED$fz`SvExuVrNW0 z2)?|O)Mbd_sqpeC<tU*~pjR;Nu+%W5)-bjktY;Fb4$U`5j;NnWRNsLTB;<<EGYRp0 zIim7RqBR|E&T}6^=+8uHepk1|q@mYgvY3#Y-!r!FL(EzIanB5X>=;CblyTxD;$`(M zt-~=YIEj?>R!E0ObW>8~?wX8e==D=lQbYomkfx^SPr0huPDP3wPo%2G+Q@o9ls~7C zj;Hnrbv)6K_2=}?WM2QBkO~|Ko46W~$;v;e^K}R41%R6D;t8Y9^cVGYqEd@HV2<qL zDpUr4OB#+M%<?*?5~&lx?9>F?J<xa;K!vEbj1h7JEUdGO1x6z4VG1#YM<B2<5ULoY zWU)Z#yF}K<R_Fx?JRb<v2!t#a2z{T(DuKF@l-`EGn}JaMK*(Z&&<}~M_EzXH1U?9a z+5|!t3xs}6WZi6qPD0=Wg-Ws_ItD@(3xs}4WJ%UegZWnqsH`fxkln2b-Gk_ywUKX4 z)D|NbBix#3A*259PlI<`B5wp1Mj4NH1@WpOUa0|MmnL)%+MkFNu>LC?hUNCv`U_0X zPNAXsa|-7!HZ!fhiF!;gJp*GLAmx(%nB62QGk!4WmJDNFu1=&dE0r=mbrxZn-y-aq zMETpmcL-s-0h#>3?Ew9KTf8Bx{$?0^$v|z4<q?(&$h__d!=$fF0ewBg#uq3xDB+(( z?(PD;kYVhi1qqoYeFJ(gpnBz@xDe$|Z1J;SEl)_d`YYR0zXLJ{K=F!%j|ULy!V5i> z1;||dHrC1s>2uXVR|H6J_|w!$oE3s!VWRdG(5ricx1>pte;<$FA|K!Fb~Yb={+1-3 zqWDraUiXeSOfpzt8B8liBg{(Fd;_Y*FrGlR9tS9IbduKZilzL>0-Z9?Epcr9D2X!z z?NF458w{uN+@?k4Xi<zOFVNN(>nr75oWyx;G0u}#o8LBxrzo|Px0xDIrD&j~_@&O= zRTpE$kq8%{qP}0K^Kg{4hM!Y-dMU;z9^<c`kk3BuLdmxQQh5BodZK;_2xOGP5C=#( z_8!Ap6+p5N=uQmlg8p(zBF3<LK;H?#4ZSrJ^8WYxp!PEa-=nUjd&ActPXaQpg?ZOX z#3}d(=+l63WG7a>i*z2*i#bx)gV+-MFNG*S2N?mV&{pIm-!QrXRu#JVbDAb1?^5V6 z*h)bl8{q5)Q58sKfZy8)KbWugC#L4fG`1?{YO(_<=bUhKxS!J+$#FmX?jSjfp%co_ zsh^0qMLo*ib|YwS0FV#iSx$Uk%t%|AV4wSP@U{m;?=u{F86-)*V1gWFF)QvgPsATa zlCp%FENNL5954Kbv@~OMd$B~ks)poRdk56Pl4Pwt!i1kdm3<O~vxZ>pm6n^>{C7nn zv;k5$5Qd7%O}vBFjEk+Uy+gNSo50g`S!HbPkN72gW#l>(`zk<6DL9Zn;`Iwqn;Su| zVOWDH4C}x#`8eoL7&c@J!+J9;qcnC!0I;<`<6>(qKs8~=RP|T9G}G!0swYEWeSgQr z7Y_kB7!V%$f>N)T96IV>+|dsuB6XJI|ILV+2A)ae<EI!cAD;h{Z%6E+AD7`jch~O( z&q9DI$^E%qMj@^yF<4zO5E1fa>*szjuK~!`&uc(-P+En0<9z)YBZM1p3>LNGULtxI z^EMo8M<DSbpd`19Ehm<Z=g7E6%#r+);5{L!NdHPPKEP4$voz5}<P~aW|N0GFzmQY< zR~5tPDvMRJ*-1-8YOjD0`&T3vizI;buWTTh0Kc;lw*708^sh<((7&2vhR)U)8szH) z^HnMld6r4AH7Y^l#Q<py%ZCHsrZr}hkF8N3Jaqvoovks(C`1<NNOr_@3tR?<HUMdX z5kQ7fLWLecS(XMxwpfNOa!$fswi0UiWwmLLm;wlKci(b)0jBL9yx&F|m!S-I`fmmQ zElf!+c3BY=)?y|d3YG3oA@2IGg1`z2rQe3VPRj~^#sYmCNpYS+@PlAj4{#m?u?5I; zB<=>W56B(>YM35uTTr@cl#eCir<f48X#NeZ;{e&Iv3#B)U*M@uBmP%F^cAB=dn!@A zFHqfts!Jr|P0#_g(-EDP0e#fyG#=?-F=c)kL((JB8%;vyOD&DSwd}?0;h=Uc`)}7( z{Hkr7!nt=D*K#mkfvzR14Dty``E@L%>Twtw1iB}~=td64ThWcI2fZ2qH*!e3kxxJ! zVF;YY2ij@;1o8(!X1N|XMH-hOD|8X+7$806Z<8NaSu7Zdj>RMWR-;DPQ%ZtAopKzB zDgem?_!pagYkSK79*NLXWLPLL5{|N1Ff1I6$M-NfwrL$`uMLpV!E%PqlL^|lEqGf4 zqC<`Tq>*TLkfg<eB)^Eq>!9|NMk31+QWmq!!LHxr==@@dc)yw|WV?5SIy(|IG;AD+ zh6mwxBpPU9&l!nOQMv1?D78+T%l8Ykxf~75MXfRBvMyeh<}wJy?hX)hSr@NOb9of> zeGE&*0JbjPqyW;VKp$fm@3mPMZ_lvWW#OCvFrf|FghqiH#*nG%!8lIoD>WO`OoqUy z9@0j&4CE4k7}Z1CsMdjg0HEhVrbf`g>E|}bBO~s{fBNaC!1Dya%!2~!%QskHeb2=s zA5w_cw*vy(0b+gc0@(}jdmEAe+xl7?>$^Kh&SJK8ohRb)PWKq=`xM$g2IzT^k-<F3 zU{)ruzVE>MUqJLe!;xftFPI?AgU%6mw#4I4BFQA{vn-egox_}DecOvA;#D;yt?w<U zv(`7lgwy(t2jSNGmYdjftPd4cYAQWeJuGO(XcL@$n>NA0!DMLJ{l)~x#4FJRQ_5kP zhVqLEj)^y<3HC);CxDpSn0RZN+j`Ke0Wi05#$$mx!jK7Sd_1#$Tcv&n^%Fy2ZWFY* zU6|*o41k#11Z{4OLFWU++-@;B^i-W2(S#FWIWSx?x53~k0H_eh>4yxX6JQOIE&iMv z;*nYR;y=giNe~zhkT)Ey3?BFxY1EJWIGbus8IIq#ga0-rB(td}4J)3u84N3IE2PKr zHDF#1kg<FRkZqL4wl1bg9~mJxz=GM-jq&Jlrnv!ZhahnfAhRhegO6PsX)EKtYi3hl zf%glY3Kt<~gH$XQbiO(9NUuVq!p`>-Bz^!$=L?kw0`Myu$7DO-|DGf@Hj||8Mgk8t z*-A^|k;6=a6<!h=(*ZI`vV3@FjeMx&hseiDE)Sk^06j_SZ4@eXt!C5}TNezq08+8N zf%K$=o+RC1L|kRDV3M>n?mmAX(%~d&2qXprWRhe#y+B6y2k>H&)P^#gBuxVU^-M`7 zNjC?DwU};x5h^{ELYyScg}`hI$t20LLJ<pOCrQh|umm8Jqz8elC&5Y5HXvI8W|H($ zkmxOxzbPIsfu1S@>igh20FVid<-?Z`z!$i&<B0zf5Z!6?Bu$du4JvLWRnLpZ2SRny zB*`*(iVR8a>iuHMyq}HH(Opf23NumipEYcBS2~QYYATABd)qCz8b<q~W4G$MzsJ<3 zQ@CNR@kO1qFY+pQ>Sq)pW$idh)hYmIAB43B!0&X{e&=3L_b>!r=1T2lHi3KuARgr_ zlMap(v$$R3k!la%KL@av!1Dq?4`6>9Mps!ZSZMT#NA9K&`_P9FI0TSB^lu=?0e*Q? z7q$=m-_xgVM#51RvxAY-Hy%%*E~K@8h4!BTGJsi5yhvfBtxVAJ(Th=TK(x2vNE*O~ zn;?9%<Q#FQTRc7iNs1MWlC&&K_&nyoB1T2W6idWAZK{wKu>k7K09L7^VLNAt;sj}Q z44XOHB3c{iWoT#qoWcd`jYU+Cm*eP^hk|7TWOS+?&*$jW2XtqKae{P7JhvBo`clwy z8J2;JToSKZ0B!Gq-UZ<2e`{(xQ5CV_gP<#ynv^RuS^OSfhhxl>Rin7vYEl7gWdU;d z<-`qm4>VqC3^<Ywzx33-zR>6iso%loG>NCm(r5~VCjq3_&j&J(1bh8TAj<)!*H19= zxS^Kv&EkFrYC!B@6S&p`q-`b|J{*uSSc>F3$ph>G@7sXrG{ceP0bUN0Nnw|$hjAFm z=(ZQHVj1ujOtJ?U6@9IkGJm8Y2fdus)1Btny~1uxFKkQVUk^0$_(Nz%-N?#_G%*== z3P)`)ja)h|dw(a9>tg`f`zsxny}#^Apb6ajD;;lD0O^jPTLEO{mlqW2P1f8+@pv1k zm71Fjo{0b{ndQTq-QWv)&3weq14OG8D`2IIiWkuCF|{pL!tN;HYuJQJHI8k*c5Ees z5`JV$n5s*7H&R*&kkX{aYp^uWfqoKD=|>}O>eMFLj9Y>{naG+&f<q6YcsjvX&P%ZK zgQiNIcpm%BAt-*&Cg{YgF~J`}pJIXs{yD*>=Oj22YmHz0Fh$p%m*94r;4i+kVadv# zx&R<0{Kc0N)&^Y-Q0bX}PO!;2366aqUj)|)78r>lqj}&VQ^FIzth9SV@fA#vEA11$ zthDEVp2jd5%?ZB+v;Hs8n*d@ovyEDOTaZTcA3r`7YQ<<i1J5S_F&fJk628D_zDNAG zfavW;kM3fXX8d#c8lPu0AEHWM)g^rD7Hu>SBai$!g>!()miVi_EDlqv;6V#glM=q_ z%i^#P!Y&7-oPqhh>UZE5{~iLp3{d?hl<BdJ;>h0d#gYAr;2!~WfxG=^0n+JM)l(e+ z;@j?k#C|_|IfRmYTOSqXwok4pRY<L6WxeO8E(D+Wx4ux&2O$1!IFO+v=-;LRnF3J$ zSyMo5*1eoYMYX{XpM?3b`wtBdzL>@&4*T&Es08`I{cTV(pIZ5W`+I<_0>o|xQRzD) zwE+YM9MfUgO=wX3{wVuRUw-ReoM-Ex)h%WRQRk>1m)3s<%AW!h;}5BG`2$OM4ZJ%6 z(aVZig35guk1rPM7Vb7rw{QW5DgK<o%*Ra&FZQdjmwpNj2LRH-i~YtN-O5+PQ!9Wt z!^M6(2X#3Z^wj_??3emk)UpWF0)|Xh%Y4~}eh}1JhG15-+>aC>!Iwb32#~eca$ok3 z-UYoIAWNz-CWqLwG#DRI^XJ^<M-DuK|D55U1pil*;ik0Z3<a34MP#<Wf-;=#{|){> z0eVSwqfw7DBL=HmB;?Bmby{_7tOI1`Umr+5028%rOwS)PLT-TB<&kr@A8q_7(yR)$ zPLQ}9AWJGMgHz~6+RC`=&627gc(2l_a7lG6NX25olIlS}@-S23bZ`VDh5=+ccmt5B z06%PO(oP5e_mT>8AlY}WYa~LdB5nU^KXS<?{AY#V295IpvZS(nVO5`eSW=y4R#?fa z!Lt&emsCxRLZ#YiMqRNFgJA<eD)t>9Z&N}qsS1pUt1K2Qsh;s&|1qS)CDjo~d<c*w zmF4sT8Exj^#gb|z%fKboN${UwO0uN7&Lre0i<$PPQ0ZM1;*#n&2>e1JSyEY6oXlc@ z?2;;S2{!%#;(T&|Tu6e>Cm%>H021ZC^P(V8iv|7uK0iL4rQ?2OM@V!4NZ+@dp+MTo z1bzQ%@b(2nml^#@6Yl$iBrRseosE9{b0nFxV`N!E%3_w8X=%pjhGL0$hmDbP!p*aK zb_rI-uoYi|O-EIf`Z9vq!<X<&v$S8zH!6yzD=%BWG|Mkfzcd!58wn7<G|R6`zqA1K zEezu>_AI~UR|wkx`T>T$e3??SeK{WRGUyipmD-wQ{?SXrS$Bt@j$pPJJ6oF0`ch<a z{vM^;=uEDiqpj-Jz<CaXx0m6ujV~Kl$C1b(Ce8^!8(%iAn%BT#ZGbq>Hhx>&W1$v; zo(F)dyi~i&=RiHpkg2MjpFzFvg4)dxIM2(p^E?6aD}Xr9%e3?S9rP~%ah@-k9O4ZY zg9XmBlOIWY0@lU8oL&<XBY-$h%ZZN=8JT3~xqmZc*ssfh{~~~Sx@TCG+GViwoM%3m zYXGE=_XN_N(kjGTR?iqAJl!*xb%f3pesl`+$-8X_L!tnnpY9n>Jl#7-#>JHd(p9eq z?|4Z?yxD@ey1g9r-ZW?&>PLRJH82}oGXdhwEFZoqLq2%3H_69RF9FY;)F@BU78!*~ z{h%4OH(LvaLV%R?H6S}Fp~8HM_LLEEu_Fkb!+dx5llV^$b^u)a0ph_dABKD*q4N%2 zc(6W{p$GdM{GU;~c(7-K0$L2o%8wpwA%*C{zK6iK6cP_+Sv^%E*@HQ?JoOit#DiT7 zq8vax*p)y!0*nXyK1kGJ)<Zbm{CLZ!kSIOajgXiI5D#WK@$DTWZDj%vb_aMD0HVJb zjwBD}nr@5Z2?n#`PJciCv`z9}h~HzAw49;yWP&6g2k#~(88upylFST}v{;a24?mub z{wcojMk$_U!Ic*0<S%fVH%4=cCE{Ibib<zg3+l`+h1b`FbM(I=2<MrC#>yXWBCSW| zeOq!4L6sUE##!$xci||Ac2;z8`l8c(U$!lB=#!j$U-m0<=rKVwr^{3o_U=XF`Y8p# zzn`KF&kdYh&3_pu7xHV+6YoZqZ3Bpt3;8YRiObf;Dg_{(IOKPv+A*N7VHiEJ=cn_a z){CH@VOWO`7?!sUeBXfn5&&ly(ax}RK71U2t}m)xUn7tW7|iF6QSJJ=fo>0w=Z>|e zntbC<0F4DRr4oMRy=PEd&XneWe-=PyO3Q#O0r)+Qh@C0@KR3=~Au`!WIBE{|6rGFw z6z^FqSojQDdeB;^y&n+c96%5KuLL3%3rs5E$EQJDI?hv&dIBJpWjS%@jFGl7fferr z?+!rp4a1RS#m9mqEoQ}?3_t!cl1v)<Eer1S`G>U3(0{yGB3@-f(u#kEI%CCM)|hba zwUvbZ6fKFI=E{G{#1=Q>S+Ks`=V8HnVqse1>{+@UPY0Gb1Y?&Bw|io;qi_tx-VYE< z+!L!qOKeofQ&j-+oM=z188zJjdM3mEZmQJYm>h213wkHRN@81RZ>%gWwq#w*;sCJ3 zcVn`G=>w_<L&mE8u`H%P71S6&X06@W&Wp(z*M~rFAQ$ZQKup#-TR}ccHrnffSe)57 z0s1IF2B#-X>F}irjwK()BI}>Se-6*(>S3q_$lzr8a3O>loUS7u2d7%#sR7VK@-s#u zUMnzI9i+)0Ml?N8wE}Z9fDBZFffP_$h4{UmFO85JU|7b>&p8~6W<3uz{C3avkQfh; z&-dH{WF|nyXR836*{HH(IzQzj1JMTXt^*)Ro^Jci@L`T^uwdr#Q7qDlNpgey8Av=u zDXF)mv$a*=oeb8;AF;?$GP2%wf@udpUOBtl@L{s0>&<_Je0)9i0C@HRq#Aw!@)JOn z<Vw<N$KBdSp1I|Z(*mh=ufC^T0N!Zik(XBtpU#z1f5tleiG=hACB;=72{hfyoctL} zX|yHTRb)U}34jc?)qzx{b{XKUC=NOW#gW`lP3bXEBlUVI1lmwYHk7i>^vF?9Grg~3 z@wdpxLAeK*x&dTE$@1Yw9PkDH<T}J(3y9_#J=&j$>cN5PomBnbSUeN;u3dxZv<&!Y zxY23+#_(dwyf&sd^cyvxf_?-2-|J_>Ir?=B!a4fEZL~HztlN+q4|obsmD-QdFY6Kb z4rhBThj+a@w?kTwf7@gAIBcohx6or>(7vU>7+i*~P3(iDZ#BN<1?^j=q6#Jg#J9Yl zeai~acQTBl=L@kG^cl~AeiBe=l2LgV6eYR421Q#;Twov@TPopbpUy_>^Rhu{ad8`C zvg|no)$cJ$j@}z%vh4X0^eKih8yjP??8$6^DLtT4&wtJacA%2B!;y^&N3pP(5tA`L z-;DVfB<1H6uHR;|F(X!;mDdug^8qq$&xqA40N-5DQyIpr&4^t_@4FN9a}2AEa?FTz zXAP-_czA>`c-2|jt2RMMJpldXZ0#?5f$RYge>q$G%Tb^Q17v*fZs#S+V!`-+Yb^5g zi)eC=@5{lz6d>dKdLU~7{!}CU|9^a6W+WUnZYor-jHR4n5***3hQ=qE1kadRB59o8 zABb8k7<3oJ;@wfRNrSFs2`P(N=3weLIeN%w)IHJbXh?RRkx*v`-6u>q2i@CrxY>tf z@7ZQzZST=@$C+rK+}~^C*pIfz2{W}LdlljQIfdVDH>NO1cZ_#Y^c{edMX2sUv1$e2 zs?rEM9)OfL4>GJd!)Ak?z_6~!=Ac+Nn!*v#y8tkSYqcp<Z0xBDfcUj)a4fTSTija- zst!Y79M@^%Xa}+_Kpv$|HaWz;8eEJsG*)f$OZd-`q8E620JOyv8b()H3>{B?&X`!_ zOA66qu7kj}0I`@!K&}V)JB{%FZ84W4IqvKz)A5Qh+mg<>SiBEvQC#p`XrB#`>7A89 z)fj0j6S(6Q;9UlYh7Cv3^e!(*(qdNJ85WCgLy}@?`cbN72`P(N=D^ZMMJp9c#Jk(n z0xj(z)EP^w^rs0w=TR!EA~%9(@ZGg7bu(NgZM7G2-(9?0_n16R*ocCy2gt*b?y)Kb z;Cv1Ac0i@UM*N&-P`E8M`59D&*WSlSto>NQWNo~!2MKbTAqm!uRihvK0g69kf?R*p zjMZg=U7Fy95`g%znz45DV-JE}$uK^(sTu1+zCS>J4S@01*2deuDNYFjXsY?zRIdd& z2q1neU;D9XpvMEmd~F`FbfIIZ8;jK2Va#_uc<u*i^PO)BgZniM7C5{nm@HC==DQsN z+W=y|dx7i*_?wK#|82g_F>BzHl{bt8=A+D4yI9I6Oo9&YV`x0eB<S!gk>v1{@hq@> zgIUXRn#JPXUV$1;K2AZ!*8pw#h7)ytj!a<re}VT5AR0CtNtRzS5Vu&6WW8AYIV726 z`IaTDEM}RLEdRn{iFk8Nb<pznLY?)oUzl)O{x>>2$;bX=V$b)nS&OmEa4Km#bt=Iu z@zF*GlrK>D<<{AYzh-VSLtF6|jKI$+?Dd+lVqDfvD=ys(mPz2qtMuGt2<W~H<D@{v zTAsw;he6*9fW^AnV!r_ODMMhfA#JgzLH-I5iw$XujWx#%A0Q*|W|JQmw<YVG1%_BM z7P$l?g&5+6;LiexAyxrW3E&?vBLBY(QT%AS>Grsy++en~oRnDnekMn2Y6$K10b)&- z6Zi3-BNJFt2k>47h-Mj%Bx}kKlC)TmWM(WLLhUDw*p>y?9REXFnlaj-SR&p-rWR;T zxlm`U$vbYsX)jHJaI>dVDb*-B$IGI}=6-!K9+F07ncQu92u)3$@(<>6*Bi!M_D99b z4neW|0K{DON9CdI6QI{KjOMaG+MMR{1L)%nn^&4)9SaavzXjGK0GQB$s4R)cgBr~c zn9#v!giP~6&I5=E9gNCicNORr05PFWHjm0;feC#Xjf{i878809{ObW?LjMBt48VWa z2>;(E)Y=Tid8S%%Z=Jz{_WU>+|D4IugkFR8od7W*%ZcIf9GSp`-UsgiK(vzKNHU?; zL6Q~=k~|)bw?~U4nUH0{!`y#J%b3t*#S-z>n_8d=4TL&tLSLA0n$YwhoF+5_kEP2P zCFhtBDk^u=ZrpyUO=$Lw+JyGFXiWT^!p?}4akHB?q3=-aF99j7KBQEGgK2nUyCvQq z16(>m^@x_dBny>~TL3b7{X<V}7h@4S5<pYw8BHsI>O~-LVbFEsCL=6^VOv2z%dn9M zDaDXaKpkNSKep5}n#(ZN3VsS<nVT?l_l)K-tPaAe0p!C~y`nzfZ5{&pYKBc#y`%D$ z=4wz&0d4uAt>>dJ->gep{W}bFtKY&c!6PTDo1*d=DPCWbc>&guH%H}TL(fC(8Gw90 z>*i=C6W9m(9e`JOlUBrgb$)tN>AQ903WQfp3~!6cMha{!eK`a#F_!zu4;z+G_hJ9n zuuR7a_!|?>yJXr2qRPX)lB@(pl_P_2-Oe&2QeK8(q3E1|MfvrU!gWs2RNU?O+q8QT zCQ0CrGc+384HdHE@f8aD1we)N;d|H_CWA%T#YV~*8;!Ml8$#cJ?KcSg0B}A7QMENp z1>n~+!a-l=4F>L1o=V{%iN5wq^?r$EZ{s3Ee48YeR~ZR+#bb<qLBbXbayuy+xseI; zBDzLMrvX68WgkNWA&bFs<>yR`x?fO;mwmK{Ks$h3_R$+iPZGTBV<?d80RCj7$zJv$ zEh(47hmRmxYgMjtr$On9QMV<xBNS9jh4@73`x$(TfZRdiB#1&FYXJT`riu8q7SxDb zC|{)8#=0tty0=B$l~(swNN=G!>i!7G5faq>Um*Vh_$SWQjjG{-<u?;vgjKXv^Lo^e zzJrwLB{SM!dkP?4GHkpJCXEKmHZp;itO(u;fN0!sXfG-IN4X}*RaIG#$<g>=n@j_U z)C0&ilI6qL1HM3Yd&IY+>b&z+*9lZNrs{st_;#!MDv0#9sx6<V$QP&{f%sum-LRNy zZ=dNRbi0S3(7N5Iu?B8b{S<`Lm}j9A_cF1(7p@{)DWv@W*S&Dj@un^0wn^JCLUcCy z(f1V1#A2ttcG`J1XSUG_zp_rdeN>+K%s_dj0mNyyk2a*!UJH5+!$L=>sn5^`c=r?Z zO8_|X%e5nSmv!^{8vWGzfi44rQ9{|qicU1qlCKIs!HZRlrW7DAttV+mRU(*=96@C1 z35c&w>@%eFq0K?XXglVhL|d$m0QAI_qot0Ogo!R&Itwnmik@_|M`SyI_~EMB(O(6+ zCxD|%H9g==0y&yN95<@ziOBt+R|CSl`=`)k&QX=&{GCQo_XM`V#09(zo|gdP0^S3% zn*?3JcR>CN@HZQ2?E+X4Jl!QbkkX@G542khlXdwyt)q#4nBq&1QkUW!67)%rdeg|@ zE=+@=@bU|6vlRF<0ny!tBWd1IHCVP;tb`GFYDVLGY?Ap9uK|!GEhoP2Yox7AkmTjy zZO0^Q8jhq++{6UAsv+yJK{Q?k%_=1u2$5?5(upmfCwzhG@rWNw)h&yu_C}b($t`tI zC^yydz<zYPiD4h~Rv3aEZy4Cv<v4C`H{l!~=SjG}Qd|bxV<wV=?Y$;)5`?}p;T$oa z4TO{zGFjuaX}5&SbSm22gzLL#IOWM2kACEYwdp(LPvF*+aI_{(Jx9Jo8ICsMv>_vf zoY83X7Bo-^ereN*X{*&YWW=J00ybTR2M%E>9+AFutgY@#UeK3#ra&fUKSZi>DYyVN zITMh=Y1a>tI#lsG=obLe3x0~o6#XpdGl1~D7>;9?YPGmQaRl=8OC;6;YMmDlRk|Gx zw*#EVK{NtVhXG`ZypE8oK=lN);!MD*!54iHzb_)={&>WW2FSR-7{~&$bG*0gVYLJ7 zZ~D%U2z&yuo5+3w#BLyOkvIzCdmyJs>;sXw3<d*mUIkGdNJSFQgXjUIGa&mY^Y}MH z=7O3Gh{Q2^-Pj&yKLL$-zhWO#Zdd&R=7&>H?nkM4yW$dX+zF7|71sf|51?;XB&Xc2 zxD`Rq0sQ_(3vXA1^?6fOT@IYBI13ma)NE`dPVi$*2LEvcQilLCM*j-rXA&HvV;wM! z1o+d9TrmDaA%D_e-!PFOWwC^gRnBjbc+$GUMu*R1WbZTUig%1Q-J?~*H8jgpkyM90 zieJk;6_GFQs;q5vjVB`d1~{%S^z)Px5xKD-XBy`qCnAkbGBeel#Ln;jh^$EYAz012 zKOzgz1a2PMACYyZHv9wHC{?v@pyPQh#on!@o{z}zMXBc_a$G@6y<ns&%=u8Mn{*E; zXsJ!PcF;rK#t<nz<fce1_K=#W--`ip-tja&A}fLcp!)$bSHVF}*Co6O^hEMa8ai3c zh?MvbWH*Dpk6|27X6odB1N{R)Ruhj#hPKif2;YbS&*mnq?i+^6nH`CwqgtGWh$?-# zr%C}-m>Im(NMTQfj1NWJo@D$0QPsdy1rVKYiYAv%uSp{G%=VZGag@d2WaQ^8iny;* z9cQ+Up{gN3hP4hrE+fHVtq+i10RLN~$<A!$vNm{Lj%|ECAS0(`a@7vz_|Ax%gUm`2 z!=dClYUNFNw*i??f=S#3WEH^w>zpL8Hr12*5~d;?Wied_s9qL{bYT*l)Nh262Lbrn zu+hXj!-gT66Eb8n`fgIVcY)E$k2NjUOnPOZqT@`|ZpeF64Z$jY)+obZ;?GP9X9CP_ z!{(e%jzUNI3Y^+fM@8z;#8hs%99-HENhR^r1Z@yqOhKH&0Uy93vD-H^QkxG!wxAr( z0@4}&FT;(iBBwz8@Q6Rhxe?*Y8H>LMz_t&N&B(~D2>CCl{{SK@K!iJ@o&li&@N^#s znk<GvO@7Ych@S>_XFS+)!Jk7JE~zYMD8P(}id^GH_Fy2A+OH1&ssI(@jitwfge(>a z4RBK&CdAuIn?Rrug`!^@0r5EAYlgZOZBrG@s9)}&D(`@aScky&Izo(4#&_Rl^%Jxk zn`EjaS}hGes*kRC%E_i`pGX7NbI$MV1AQWwu~kaQH=p}PE+COnr9Wc&8F!NV%tWQ~ zw2uAbbmJ`u+{s+H#}xACMamZ-&4DOVdq4`c=S3P&-+s_<1DY)Fj`2H^-8e<hUoYha zZWl-7zPZq{MYA#|B8wF@?RCO-24v#QSS6jW&Is!Sh)<Y2QB~HiYBcD645JIGqO<%w z=qCVeKZ4Kf9+@;=XS(|Bu#ygkaSPRbFxAEpxw-9g@O=o7Me1*c(@|?^ZI?zu@4%JH zAeFcR-4q~$R2d+pNpO&=0i-%Wg)W5sgiR~C0cKm@X%{JZmg=g4tr-NGP{`YF(&TVi z8JT0_$zDie*`HYA>u-@NKh5a90cJrK?Syz$vi<^_<p1Iz|5KU&x)JvdXq5bSLSmN# zB>(+^^drIij|MUlp!46_sBo3Vg8bKul-NOa%>PXgxIu*YDcj9P2qQv(X)))DNZQX7 zl26$};5G_*al=M0l?n@@k;hfK@~$)yEM^@Yac)t)35I9L8Kt@!9=U5+_LgoovGiHP zO)NS?)aH!6EZWl4rc6|;T?YS^8%gDZEq<|G`>xzbJuV1yc)5_18<A54s@mIC(N{F< z;efS7q;3&wiHMwgP}RO}hRc4#a<Odnqfpe1bI3E{n!+j<%bp20=ge34y}!b`@5%MB ze~0xYjB;t>*{}@CszTZKmD&}S`Nk{Fv`udaI^wIJnsI$sxDJze3>Cc&AlJk03b$ZN zM?oK87;mTD6~3HD4#S;suoYqYj>p~MtV8IrSXu4~%XW4xL{|r7GAny^PC9{Z3&1S` zd&6mX45ns)8c8nZexJ_#+n`@3*GTnlSSH!WL45|0sll(|hAng%Wc;kwTobPPVkqkA zldyZ;NBGYnI(#Kws)AUI<EM<9brDhv;5Rf<c4*cQ?PcpJHc6SjqX+0-hSgC&GJ!9` z?mi?CV*)ZTcY?n507+m3kOF|$FDZd7;D@2&`y#mZ)&D3dCJ0qwHp8eOsgj%v{1A5Q zevJR`BWgL6E(Vk&Uw2ahN?mTST+`W{*Tb1H^2?uS9}|5)dWD&9ObXJdV$zt)G+3NX z(EkWPinSHU780CqyaVJ-Ky+qO=2dtu7As2weT}H^vv6q3C-}b<QO6+hDPRCEo3wm5 z0cIpjmet|ZPnZK<HTfO5{|iu!dBb91p!!OvK9c59F)x=q3zokEwsis90I(fRzr?a# z&;=F?Py?uKbHHY?u*tzk=>x4uS+JL(h-BcoKx8a5f1Eboveg1h4YJL3sCs9>XECeV z`6Nwp+!D;qDS(en;G+2N1A!T=v{PYkJlf286;WNl)fphy^jbcAFP(f{o%9&_SO){Z z)1MmUR?a^Ig%*pL!a3cXlonQKECfbVNN%u<80&D9#R8%3PKu;51I#y5KzZd&61;JC z6%@jD<r~(CWiQPNh8wT0(b*MWzTT|4IF0mMns9noNXj%L>o6TWEH;8J?0f-k?Ll7; z*QX;=*DdLZD`mn<uhu<0W=m9<`<YU;Ilk`*%R0#EU3=IN5LF7mf){9WpBsfE(cv)3 z+2=`jw$d+#%P}3yk#hHA#rm8UC@=ygA<Ums_&5Y)<?~!vUgcYY3RwuKG|{k<0fn*; ztg-j5Pg3Yt6Z0`hTs996P_+J~SLx!s>RSEPzcTuVge!B}^CEO_1f=XJhuLp9fysz! z*%cF8KuXIQ49n%>Ftr=IC&G@Qfrf^wadOrNbUTLin2&jU*e?LzGoaT4n*6pAue62T zXHxYvDzoOpc;=y<Zf18}kWHQin;Di#U7T9Q2TvKMMulU{!+P-C4Tw)3I{{%?3_Aq+ zJwWDn&2VMDcJsf3{)T*<T8+^zyh9Icc>v_%@TbBZ`sqq&`7l~_dbs+4aZ3Gt3^S}V zjq&}AaB3^4-URlIfXu$5C5&0x2l^d=o_1|BRf*dfA@87QZ9d0;?hSkkrc(f!wwwj> z7YR;V(t6@vQh+|x`K`$a9#v4q_;CDDs^A8Fc`%g&$fld+3khGa=~fr<`G9DHzPdm% zOZdqs)ms6wL;shFchp#>^Gw)J|H7ox5%O&SvM13$$WI@GSvw5UoCw|tOtawpWZnzJ zZ(}mohvTDdGIJm@3n0a@d?7`?K=pFOFQw`aimCQIlY7obmOvqUFbB(CG!e0O<=t#} z{)MsT3Bx1POzt=<Z=Z?gboG55?JfJB-?r*iG~#-;n&>9JP2y5seUl@8!yxjd&cbxK zC2L8%n!CCVXSc)k-6QTmBlG8VH?q{)PV-3G%A1>{^%|qq|4MnQOgOd9{vTSOOwzih znASZ>(r*@%u4?jxIx{&)H$H^r`qbor<+|8}%a!9_NqNsJ*X4$X<tn3jwAN@36Qk#; z-SC)UKv-7My}_2lC89GRT%8kFy_y>kZcfjma__>dwXbIFwi?m+O_aZoC_H-{Yc>k^ z4OgV>qcD|q0QrbR-*7X=9{~LhAncvM@kFBn-~6~43a$=k_5q8NkEq|l^Ao_i7({k2 zm_NYD22mGC4L~+!A}tWo71R}gNGA{@fm{dhrWoZT;0rH;T0N|w>G8_BH`_!WL2etE zNK~u8-Go>AwwM4{LvXAZ7`fzMWSEMuV99@V*q7!0Ey%%KfGqbdKVBp?lBUXJxxbA? zmQQ(se;Gh8_g4jpSS%32a{qe@ak;-90&6K0U1J2aS1HANoU>lyQoKVrla1%}MeXRe z?U3BI9dz633#U7TuVO3dr9(%(bkO_cowTD?x$WM?S3<N2EH%sa>LzPW;pl%G6KET* zMH6@yS$h&7%l5Y6*38I0(C+|b`{aJ3LMe-7TV?ISeix{d`uq?0k5h)*CzjI<u%K$N zeUhLI>+>x5{{rax+-MTQrdE)o7K@-hTT_Vjc|mVv7NDY!88)d;|6W7Unu^A9K8oTt z6gp4~T_pvEuZAr}Atj_&v<O#am6U__T!0jRLXa1W1;uX__OFDf6u&9>8&ZbFx14T( zB^N(V85X}A_`3jf@oz8*Im%*z5Q^W5LM;9u2n?W5bcPYo#UE>^;>AZ#QWZvGod4Ss z6MJfmb_qqR$6vlNh5y?Vdzb*-V*p|ge|usN>p?F7$d-)KHka2213N)hs(Riq6m)Mu ze3){>u`gU~>4AC_(B!?wC}ude2g$q3+RMbk)As6Jg@K+zcv=|_M{hx?Cn9JRpe4_x zGz^EQU_S7p$+@G3ab12vIP%ng@c&6f-3`{20B1djCxARoViky&fxJXw0f_xT_5iY} zAo3DIPJ%iC@c%T*JLYJovaCJ55I!>3onOD`q4(56%*I_~bp;k-8P<+!g(EG$Hd#6i zt-k^!OVPgYrU1!OHjqpb%u-b#6#<f)mOz>V{7ohen;RLZB{#A^q_Y#^_Dj{kI4u^o zxoH|s8;#t=xc#EMBc^~mQNU#gF6tnDs9-g$i9fHhNq7>t9@Shdx;My#uSNLoAY2@^ zRFU#V8;;w-@nyiFyje+-VOUy{i>D;~{6fRQ4WWw+$0Ve=#e{QcY+%CS;JtTEIP-XA zpixCXG2!eD-Zx216N{L<R8wEvKw2FrMM0!u<$<+V%J4AZCjuVj<(Y6M{AQ8PXk8P| zgrltt!C~9)k|d!E4o~#;Aq<_K4CQ%dJSg%+ssA;d@ps)ByTcr=1W0H6U3bPYphp12 zJLLz%mBj+@bjI_)IR$g%-u7+apGO&bC(DURcOb0|fP34IP=?;=KJecQ(B7%BVa0Qk zbA{lYKA{l3)8i1>M4@O4!=}AcO+%Sc+bp!`oV6LK-12ZzKkIt=ewFTHwRNsAZ=slY z=$}3D(A$y3R)EY~e)d{%L_7-meSp+UD9EJ6f_nMY^FvT4_3{V!f29oT#d5j<X402Q zz$<7Psh9MAc%cZO>m^|l!jsq_NmH4qmtQEvdMO8iizpOLH*C6Il%a~(i=1-OBUgq0 zU@%{-op<Y{x?UbPo!luLe%jQ_Vr?(^NTLQn>}9dGmn%SbU>Ls)wZyxSbu|q1U_g@` zXkX@Ke~UpMv;3Kv>o6Tz?#X`S3dGL<h|^!8!?Lc%BR+<4VYt$Z6riYw5Vipj#|nO> zm&TwM`ePpo5Fa{b7(ON(9SR>=`x^K>K+E+z@wrtm^eAd&wJA^$hJ47+DfFV(e22>0 z4Ys2YJ52E%AWi}K8sKj<!iRAt7ro0{c5DXMBB9o;Dq?BKn%NhqKXwyTZSrDGe#HM3 zh)N8=Q-7+w6~tH&*8-dyLA(g$aX>a@B5M)i4aB`n2#IV4(E~&mK;0KXgs}dp`<5UJ zW=7rzG8IuH0P~#BLFIpgKPi|5kNp9<PJwtHanDfvcMzdvPtA;kf5#~zgzN!$t(NH) zE(c%I=zHxh<z+rU6gi}$@a?-KrfZ5bJrKC^QHIGy?c8XXWRH|Sx6nkkLgZb^k#K{` zd)~yBMeLI%b~?h}OG@|s;^{g;=H6PNv&mIY1f@pHm{reHOJM%^p~K74vxl^p@~W&X zl4x8^;^aR|_?IV16zMOu^c?*-aE61EIu+%8YK-9plxmSqMn7L*BP#DV6MYw=A1fZc z0MTit>^CF&wIEt~IVOA%!jDS0EMDfA;LkBuoDSGI&Tu%r$M`qaQAJo}Q5jknm00K7 z-<rfLe5gV3R>PO;YQxbAgGue;kF&*#j-#Q|i-!imt^q1c7q>VNssgKYUhyJ#S;kB- zrIRuAQ3dQ52aFbr8THQlUg!vgPJ^vB1Zo1DZ$PvH(n2&ask4Cwiv{`n#EV|=lgVEf z2y_-9&S!cX>v01t5L)ZSn?Xp=XXJ6~Y{Tp*iv`R(J%0jIpz9p~?fscTm?^}K?cgyi zYv2dZUlwQ$4@S3pC1B`DhBrKa@Xz=^3sDoGWfZ`f2x2*q#ei(GMHV4sGpL6FVV)s9 z9H<#WHF?>7E2`nP)E@A>36SlgMy7qy-wl>9r3m(Pz6S3JK(x8xkfB5QdrcDCF|@%n z^nQ-F>@?jVr&gvZj|VxiSgJ|EdCv<y$Xu~0RROM+Mk>;j=^!ou=rQhEldhvIW)$G- z%3k~kHOLqTfr}{QEjFELPA;y^Kr{`vj`ChL!B-$S>lX<QFFQ4ZpJg|bZTKeN*bO^J z8_i@KNVl5MjUP&9T*nZ@%jsM{;ng47TbLAny$PR%e7#`88$kE%S~q-vivDiG6SsiK zFlJQ_OkNp7@ZtK)T0&<T2LMeJTf=K<2yOy>X*6@TY7LsDN&8jTgx=gbR`=Y}TyJ!+ zG}VL`<wR>@j%;F>r8Zg%^X;uP;mqANI^5>&<0KL9coN?&#rgg)QT(Eu=NeNfDB-9_ zlhU!BhT%I+IGzc3;|xDb_iYf4*2Fhm7oS_aX@;4Z^?yrheUu|fPXirg+I)7AQ#WnC z+3>P1uGG9z7tbfDA5mQWF%!k?&o&}7hcd>lnf<NBlI>QMtRJ$28y12(578<{P)sD> z5G>c{#S)J8Oy;{LiO<LAk4|A5YgjVh_$0nM#ra-O=G&XZ*RMF=S0+j}53@SHj}F?| zODRC#aWXO8NN`$)kSd&)>HVh8p4?}c!}%a$dXlZgr0d2hr;C^P3!|9+UTIe^rE(UC zZV|9`^HT1JgP3qFi0+<z3#`P*AvY-0lgtcnaX3wM?(m$Z89R6;Zm4%bjwr^5|Au*~ zt0^s)?+o|+1MJ$W6lbEPm`3i|4`A$iK``5_UaJca6cu*<0~0ImJhbtu^5IiH{7wyk zJo9ej)#syzD?oRUu!H1l&z-Gdpa%nFk+9gP#RS`6**1YoJ-;fFkVV2A@Xw%(jG%_o z4P=anEE0~RbTaJT1^!h4?Lb!>A<T1wB()fKwn{T0I?#;}c#uNTdkvdjBrG%(9RsYU z_~HpvchuI_bxJkYwbjkA*RX{tq@dJRbFTtxYYP&279h3N+^fafIskefKx(ES$fm`D znrZ3zZJ|zT=D*<o4`o<0meUQe<eE9lLdt~XT8uFOT{9z0LXNUnAcUH!&xBYrB_WVb zq3Bp6plfD;q5iREWbbPktjO2Pr`gw`nE356QyHglX1b&6#n)EU07;YsNWJ*liVlOm zTf$&PzP6%|2IH9-K$b=cy)??W4r>yCER9lh2N(pp1wht3^*njC=pB;_%&`oHz9c^< z$IGbvCrZpKZ2pAU9{_!%@pK?$u?wtF1<zeYAwK_43_%_M^8CLvkWwW0{QnXlRRDfu zh^_>CZX)UBD}AK#N<8<!z%V)L;p?HgvKM>)Z~PyKsP0hG3Xsj1$S8zt0(CbaG6lpL zAU^;a^JKxsp*k(x&IaZmLi7HD5}qr#bSNH}0puC|M*-JQ;QBbNJh=2%{fb2+fr)tk zEv<F&=<P<@RXK=0nm(Lq@bP*N=<fzlt@wcd-5`-_VEZUtC!jNMR}j|(ai^l2tct-9 zFQ5wVo>96a94Yo8niCp5j6W4Tqxx48&yR)&n}-++V+)~!KksM~Pd2KQdNj|;fah!y zPwQel3k(l;BxgWd+0jM08d8k2RIm<glEkyP7*9c<P4>O~{z;rg`KlUl$wv$^i;kcH zR|f{t5mn~Y^kUu4;(sYbO+|%G0Aw>JQVAjVfLZ~F)CKVxkgX(IfjAB1M}QX^R#cK& z&{UNE<%>++`E&j;e|a_@Is3K>c6@`JUB{f&^3rBIIOn5qnxWP(Y_<Zj852oG$Usn6 z10tnC+zMnWi7Fu81@Z=o`XK%Sa)v}35G97=>RW)kFHpvq4&L--YFiwC2-1@G1@ggD z3n1?cv;xuskWDsuU!V)9&H#B|z^VzUyAf~R7Z`xp{s4JjU@VZ)0KdFRvG{v}@|d>x zdxDs7<0pqzIt2#)7<0MF@nWnK9#)wSoi_pGu!`jiscq!LVU_1t8uq4z;JF>38G8o` zcasqZR6YQs?o)Cw#WI9d5ytF**&a-}7uxQjM&<ot+Kfj|@{lvMzHCGcHp%eCm!=5U zFTPBI#L%QZGEhsH{&=^w2fu?E8`x)QPrARpV&maixgMMn6vbkaP3E+r7vBusdc_&8 z4yT-H%oJaXVYzF2Y4tIJIL#6DB#QDVAe%8|IwB;}3xB>u&|W}f5QtVIu;T`Zi~?~T zkU;>s%gibct8c0JYB#O63&k7=W`O5rfC}FLYJ8A`zsWer^;4LG^@v&vraJ(!yFfU1 z;Ex)K-A#mKlQ;4NLh2%<1|YHx#C#wlNxTgrHVVr>5(hza0?`l<=EnnVl6YAFRquT1 zq`ii`#dv?F3Kycw-DL6<QVq#)!ilX5AqR)p8=>Syfb%wp!$96Au?>Vb8bty)Pk<;3 zq%<I#3L;-1q%o-afDjW{YI;7t9APj_9OdV{<)qAKV${+N{9OQ&@*p4sNHFDbK*o?@ z%C`c!1yF|RD1WZWJ<osA@QQB#!803hylCPvpJeGyJAOO7bmYuK)GBCMLABFBJP2ex ziBTY)1@bf?n=+B52zeFMD}eO7anG978B+bJ^RN?fo<s1rh(85z9s%(ekTZb!4nI>k zj(js+Kk4H4Zmfa)Ptja65&2vgUv~Zygk-ww2<=aC(2Ig+9e)ktCDSQmFh>DMrgMSh zkYJ{(1E~tgri^5|8K_2p5G&$WQxQd&O~ZNLN%@<VLM_*We>^}En+;?p3D(dOAa?@F zus(D}*nHxqHRjV+#QoqZq!=q=GmyssatHn{u%Q|{qcp{;q9m)evGEE;nB7ZpZgNYB zvX`LfMQUb!?*_695N%-u^~MT};vQ3fEVnfZ{W@cQeFPmrF6PG2#hZZm6dDc#q~hz0 zw3YG)3)IXlQ7>vLUX8`ejo_2IC=DVTAXQc$NInB7BNg8TR40Jwyu{=VQ=G}riORk! zVk-MK@XQBDWv>RZk_0RJAs`z7*_4qQ_fv)!4YEZJap~>!!L)r{K;1C593fSUY1)Q) z9vYuv5^R|LK=uHnVcLTY4RahhJHKJ_f`+l!c@1+CicU~78|F74zW}0@&S{v?z<PLp z+cb_FV7`<9`E2NxD?ok6CV)+ae!(q-zXr?}GrY=a>_+b-bCjMeosK3WXuUoxbyGJk zz9cpdQxt&sk_te|lAtf?0;CfO`kxU%h5)iDEM9CbsF?t9lc$aE!b*wC;kkywghX-; zc<u&BYL5bWm;^o73qYPH!PNEx*$2p`0&!pdzt5Qz=|S$~BHgAas$bTW=^y-?%2&`j z0m|O<Va#C=pF{m8fY2G#V4g7;H^735&Tz}_LhfU!_&A!b=xPD8#e#~?a-+YJxu~L> z8D?}N*2RUUqR$}Z-vCndtnoOS4v?a^0n&m5E4n|Bs{q*)mWrMN>Uw|-7pH=Xwiq6K z$&Z!(FBDa@+zI}L0IBpsAZtjl(jNozC<#{jYe04a%y7}(<h*!wVm6Ln{&(=dE0L!m zDX7k$L3{wg{eaL8ROd7!T7(7F8FlkY#Zg1=1$H~zFuTfPk_7%Zz8k%a%u=0VS}P1Q zUaVwwCfxYN36zo}@M)y}Ge8Pfassw>0aCD*K$?<ZmG%YF3y@6(Ql%3?jRQ!Pz7bTZ z#ga$hC=;WWJHWpHASvGi<Sr7d(no-7B*7|u1<1<)Q>FKt-2X$BrqcmG9hB~6mM+CD zA@1%yXxK}Yba&qX`8Np;LE-Cx0J6z1{<IvZTtJw^gw+>P2dNLftpwUj9M9F@=>rh| zHW|nSfcUp>zzYBN28w#Ve~TG6g@voZ&hu}Jpy&>2rhmH^$UT5)YBB#-lBLZsL2iHr z+x77LQoc<PeT2F=3E2u{3kg=k+d$p~=pmLSSpuPFkoSZ5{#GO##1TXv0)#%Htp(oE zVu4APb@LuWwZy&)OwtdSEf$z$o*O+(=As^cv0+v!bqXrEg6ZKuA?5D?Vic(pv7iBn zQ8WS4fCLSxCy=gyYzm7xjs-OmAojjBFvkn29KHH^6i+1QgJ&K<OmHQT<s@i=8-T1M zK@;2tWGf)M3KVEpy7~X<N`v9iuVqU159X@!FN5x;P+2Pt)!iP%9whQMAXEYMxG|_f ziv`u))~!_f0@Psrpt_$7m@O7mcRM%Qfy}zPX*Iip>h8=MX^-lrahyQPUjW27)Fezm zNU)ET29Zr5zx0v%pz;AS=kS7kxjxhf%PWBriDYN+bOJ~M{eko&LF*d@WCS3aGJ4KY z>K_+j#pfK{&X~!v`5%~4u$S6tS1%o>hE_ldv&~@E!&JpFR&y0Z+=yhS0pxPv4TcMC zZm_7~cWS%Q+gT8<UKW7=R)F%B7&g}A!-%$N>jObn33Ih0h{X+VMymJ%Gw)72_WFPS zBSV2<K(QmURQ&AO(#TvRPVyU@8FnL^+ktMhn6p7vH=3P5zQoZTOFvHJa89k48@oYy zCru>JQjOG+^6rLR+VTO2E*qXO-M=5|^p0^Mc=a)2&y!cf)vZqc0kr$skQ`KUDqM`M z_Cp~#LYUt`Pa}V|xh$kwIdO6*B+~bxQda?Fd-TJQoF;h}^lJcF?%rxtIO@$INaaK* zqbyX&a@U=V>LYj^4HHY+OlQ2Pq+63Bd)P=7t=LfKjc2#iu&TG?I7f)DpX=9BUJRAt zGXRzK#xA7#Tqu=q!8!K?@y~_i{W-jS(g`OYLeaxeR$!_$BPeZNN%S7RyYgfxpKqUJ zAh&6NlzYlks!a(<<%6!yunyRMekzpq6~cOe?hL3j$*5cpMQ9DPoiFG6fa5?EKO)y1 zd-{XN;~1XKMr$L(?DL0<h;23=4av(k6QOz>lVmm?4aud$OF-YwFlJ*@NUnE(8uVj; zO1=Im8^y0ezItaDrB;M4U`1Sn%~_|gLzXH0ijdrz^AR-dWeT4+BWJ4u<gLmS47LEt z$;wbBD`Xt#Aq-<qR)#9ELY@Y_0f5&8SBK=S$G<@R0LUDNJ@M6{1i6|{#c3Hp_4dfX zZJBt2KUo!qO7n7@IS9TPkjZCA_l44!(1W1Y17xJ1Js2VQxoW87K2-LH4A>cm;4R>J z8XzP6XF!esWTc-9R*dvdg0ooXYsCKF1x>==dE<L%8l513%1Z)C2Sj@scD=Ba?Ua{H zo<eFl^YlO{S{j8ChjcMS$^le}?^Y|*J{YA97EA=zh2j$^^Z?jeL7)Y|Sq`ErkShUx z+=$pgiW5}7j0xoFA{d^x>;=5esC#67P*e4otJR_Gr<edYpaw$UH2{4#*2e*(#e%BX z81gTMdB_=uu@D#ykTVXJ6W{ta(pDxo<1iDv(*e=X4Tr8Vf21Lkvn+e+)eh*URjU7= zYhenyo7_HuMmp(2W2AFJm#~N43&nQ=#31K{n$u2Bf<#<C~|AufYwTstpk1o2QMh zC+O~g>d!#&bJ=2iw`=1Yj^LqWr}5pPjc*$0DF89PyRX$b#7B0RtJ_0m2SP!N_8~@h z2N-Vwh|&EF78qSca_}bp@(0P*O^MMp{a;4+1jHW)h|*}Q;>JcB+Gg?)QgJrx9ii;C zOo4VI_Oczq+W`I{!)WbgI_>4S2{e_DtubRQy@H}Wz@p6yWq%5_Vl8{1?Hz!&78O{F z#cazvOGAElw3ArNM-Vsy5NolV(DA>l<rH|o21LWft>uREGJKA$<Tkkwhw(z;0+eJz zZ{0q4FeyK$@QTvLZpMbH(Qf=3u?2@@<ck?&L-J6$FTy$j;DyGAa_EKb2elHAS!)ZF zhUCfje$a0N#1JN%ghFZ~OvRZPiYzXLg3}PxP58tu_{1P;f~W+j$+^HnBh<v?4#v?2 zQc1?qUGLNk=wmy=E7Wc`y81v-4}c_dJ&>`0XbZ#4-W463M4(|i;1JMZlPWiNplos| z-ZBSS?T4sEkY4~u9}40V!>817^8MkaInxmQ5aKrgN}jIos4oH@iv_c=U))?Lj?I~W zf%h5mbD!CA;XQC8Y5CoU&1bA$1Mf}%e^Rw)g8cr%d`t^PPcpx(+7H0DA0SoxE0FI2 zQnevd?kYu9TL`IQRV(|6-GZvMSYW-jnzL_4?g5fyZ6GxP(cZ;sR;=3AyrV1@JocR) z(x0_#3DM?&V*H`=_yeEW6}(ph@aw;@DPEM&cD)5|z$v`2tg+>Wp-Qyn5nvn$;B_kv zL-`z8*MeLFfGIcDro0!_TYyZC(oI70w#M(Ee*jb;hOS;R7Yo!TRgpmJ5MN_~v%F6! z;5?a8emc&70n)o)j0JyzHcMAcrHcTIa~*;&MSLrOU($5d>k-H)DRw^b`d=D&KPv+_ zJ62s8D)T^Rlnl&Q0Wu$k&*~EL_dxAr&=Udh-CaY`0thYyHHTcE@5LY(iZkpq=pPwY z4TE3TP!7W`nt`jB0o7|Dq0K0aysp|il+MUDh-d|n*Huke571ozdI#sTLAp?mvY56- z6!6MW-WSm4a0h1u1cr&wbWoLpny^@4MOTMn<561Y9<WV=z!ZS97{n?dD*%y=ARYv= zp2X82-UYH3P?Dcmu?oWhhGNLi?SL-H@1lJL-Y)>?Fg%ucN#MDgvsrqDQr=+(cr5W3 zaQy&~*GuadJ}ff87noe?Of(%J+R((CVLH>4ksj2xrgYHGrp8>gmuA^GbkU@XOb4w3 zJ>>z?LAwI!2#~?>Yp}xK)d6Qxr!<3MWkm89RHE&QlOTRQ^|ANQ1u`2Dy~MC5&A?^{ zdHRESY7$B-WS+PrTmg|K02QJQA2X#Y!f59FIc-Dn;}oJzKM8@&0N?!woA#C)C0r%? z=#;1)^C)t`9maa1YYdNMGWUm@lsfB1e}S!~56}jeidU&5-9mb4S$&*!Wp48}5`GCF zW7Ju<Av<<r7Ou@eSf-ngtcFUjK|i_-VQm2D?5^(Y<3J4rWNwA>ke&l=0sSPycuR>F ziZKu0gZ=`5-WJxQTie-~k^|&eOU;lpbSab5h++dd(NJV~In&Ua!TJzD8u}w3hXB&h z?ZJwME)C9N4J{AJ(g*6Y<7g)}+Gait;a{nZ&Fs&?7z>DI8D<&S@{$NMP~2&PTs4x) zs)wQ_@=W$BLOu^5*=r7@F+c{2l}4zdu6$<ojdQaq1I1Cphyy4FJI^|MKxsFo!fam) zWDp?wnPE59$;O>zD$-H2nbTOP>Q3gAL-0h1j04CJJl*gqwTgUp2wsf%MF1Is=Lb9% zvqP$5hv56bdoTGp1Y0hAS;0tJ{$L1x9K4$V{Ds*`P6hdWi22A2CH`i9*)g_*Z!5r$ znI31IJtvZKFQ{#)kg`}XD%K9ghm?mRx~4-=au6URqvZ^rClk1-6X5*{U{YymYS~d1 z3!0}+DE^^M<u^$DVpFl4q4Q*dRAO`ClL667i?yO;a$u08#eyWOgc4Gy9Ee^BD8?UB z=kf>1RR?cXCU;%2<W$yi?$n%i^=<}dXS}QMwA+G{Q<as?y^fzu>^u|uliNUIt1WsT zUte=&KKumZ<T9`mu6(mK=c`c=J>j-oABUo9Z-0pQ+ubY@dji%^-A0^UsN0-A`@nqA zq*E<_F5VQ>dLys|t#`L8w{PS$$8iK_w_A@B2$g#U2KJZS7>Q%o=q_KI5%@WUv@mgZ zFS#|CP%BhG6M*j+v$H0}`9szX??Gm>n?_v@V|2QkwXC}O&)rxlx+w*S-ZGBr=b<x- z`Z=y_{fva_{!F6syGqS-%dDV}3AG*(hJ@UWwA7V3|1;ou93YFoW$p!BQ62$(5CA{9 z+?7?pAE16@$S8#P1<-KGJa|4pd>ld~A9sS950HJa<NbB{9krL)yUUF<tcWhaRrq%B zYy;?dZ@Q@{%*4rfj~ji5jPx!0!SoJ5+}UX$KLW(t{s~sNum#{O=51w-S#mr}_z%Ns znOiVv1c>rWfK&rSFEs4Nac#v+qoc`_t5Oi@tZ`$dkR4|?qMAdbF(92z#`0mz0-rm> z%<Zp6d>;V%ELW}rf)ZLRRq_YTYu)%bYUV0-DkLTYWHoy$kXr!$a3gG2vpDRn{3RyP zu4cK!ZIFu!XCpVO4l1rH(;%v?fQe(cVGrR_OdHWnZc`dy4)4InV00M=T2*Z<M)m96 zlHXui`E9^@y{j(}6V~fpbAi~;2XWxV&7cxqF|W0b)~u@916kOxbfeVDlSVprm|I19 zSC)%z>RhEQ#^E_29e<TuoAD*k-}`C9EHRR&hh#IY1P*Us?aCgSz8|2!wn~*%A31S8 zcTx&a0;ebTytTH^9of&M_xRlD%+kxHfuB3QnX3%032^#H>z0GvUpZptO!F%zL2XR) zE9U~Dm+@g}iEEYfmy^p0h`Njqn@fzv+`yHYy}FFgrWlanmj0t3Ik?5ofU<6xH4?zX z7A1xuL)Bc_@l%)a0Sj3gy15ThYf}<!-SR93PL98h@gr*#x;Y<N6d=UmbA4UD_nlg- zEh*IdP7@X?XUSn<y_5v2@dHQtx5`rQA_5PVM8~&*j<+1CaeaUBTTW9^(vGe3meZA9 zK-<S#PJhvei&}R%;vH1hMf<?D&S>OOH=V0>j$9h6FJar@$R%tUk1+KI9l8B2qux6p z9@2zv$&I?=GxqO6%tl@HszM|5hhAELenVshzn!cU{G38wT2*>7;_J{>A4M-&0l-JK z`#7b$tWxTN`PfDR#D_MludZ^kG9Oo}Ht1>$8>{*{@{P}KpgJ++TGh{ykCKfAHJTw4 z)YVRA{kC|b4{AC?hN}LKe6V{1sQUo2hP%d*W#tE;UnbW`H9(i9*R42o29RSLwg53@ zF<l@O<r*igb2W5-KK$x*8}2p)=;uE5OsPZohMs1R>Eh#{oD-izAx`r9LEtJ8;vt6u z!&-#V2l3~Ob26T%5Dz(wfWR;c$w|o@0-+CvfN{K2@-s5>q~wiYnj+eH?s#6nXfZvM zKxl%Kno=FEm_qsvu)70hiv`U0I2GG~SyEUE?TaM^o+@}G5VBa1|G7@aR0?rTx)uWW zQ%LgvN+5KC`Jd;Me86gd8cdr-JM+IgV6<3}rCXc}_7u<m!GPIf0rPw({r4hfJ_|h= zFk39h_i`tr)+NX{pM}1Sth^cITQ$<{igP{8_X_8NtH{VIJOZXeLB10Kqs4-(taQ?E zflyMtX9Ua^3z%0q7d&0W%tz)`17?c_`JU`#onUtO$ozX`<=Y_Nmj^<Tp~&|XCo`>v z$+xorcc29M?inyzEXc}KC$l+(lJea@V76GmJk7}*S)6%-VaA;#1`C*{JE`~E?36-w zvH{v6ZwOMbSRgdR$v9|*szRW0AT&D=vREKA(@BfL5lMqJhCo9R;-Rjkfsn<5YQ5db zXh9(!>be{P?I|Q?{8S*6Jrvb?hf{Kx)!q+Gy+u3Ccw4||u^>weoeNe#NLQ=>Z^LMx z>FUGzudsdO*RVA<n4Bw}RA(QAI8<Kg)TKvNS$pV=D;odKL-LHR=+xmrnlbbcA}c#7 z!@-%stt_XC_Jb;G(SA@Rj2z#-(Bnc0N4_tr$At_hxB5kpd;{k1Wa<&6#L#g=l#^wK zmpTVIs2|hg6<@xnCsX-jav$A5-thf}3@u$BXX0PVD6SSbzcKL-QXO7?Uk`6(eNc;+ zfT}wA9IW2a+IXYA*7i<qK0nPn`Y<D9>>D^i?U9cQsX7C(K5$;wccPyTL|)GqkvgoL z*X3hc>UQUq+dw@ptBwg>bdTO3)r;Ulo^0>NSG&r-aRDZHXv1-UZj({I8qb!-wk4>$ z8PZ^#QlfDms8<=%0j258$-j?7jSc|WdqD<Kxo7`zlNJ<>#`gguG2XK;_v_aMZ!JKK z_v_2O`aM8(0?57k(|}AO!F%<W0a*yhrV_bV{|Qi=0CKPXn?PO#4B)-`yG)8jScWO* z!>Ju4aWH)f?xO&?WB+F$Ka$vom=Jb|@cNu8^CJlVh*4&)*AGuslT=wOiFm#K@t|nU zkt=h(ekMfIse+%tX$GVT30|RhC6JB)|8FCwuh;J#o(Y{5c$|P!X8i7OCa~p}MR$O3 zc+GJho5opo5gR9ujp8i3gw2xI0L|enYsTu&<Bf;Ta#@Gv@oHmdc{vFeGgw}mcvt^c zgs+sh2D@&26!<EA*=?PVvq8+wa_EE_AjNvT^x2tPBSK55^TH!|bdi=#74oVYtTvif zMYM01s9FVx!US$3TBo0z#f*n$KuuyIuCGT(WrnD%_a`8}yNT!4Xo7QEgj6k%_~-9O zJU$LUDzrV2Z|zo)_=Z!SLi~kpX6Qr4jU?W3W(_bmJo-3d(h&25iAi%?5>=(%N<sAJ z&m!7KbUGT9g1+05s48_IqO*oyjp&+ACeJ2>u0ePXFMUKv1DRfKxf?_+CzS=x`L>=A z7YT7sc@VXol4Mg^1z6BTDi}5Vj3vIl0a}zKc>6Yp)*o<NvCj3Eg7vp7PFO=U+C0wm zBfnKCKx7_$Rphrig8$Nxcr)Uv&P@-1cwJZTSx8AMMP9GX+Rf{@j*;3HxRn@ry(9D3 zl^1VE-jp_1S)ad#<=+6e;zjW5A^w5G1bw;eOqALcK`BNJ0n1gc!x?I*wPCr+ttKp4 z6Y>z--7TlqAeMs&6?Au7>e$z>L2PHYJm;h#Zp1UTvwNwI-GDWod#S5S&3P1KFLf_t zY>v7Lk?q_PGKU|l-1crRpG9P_0^AO+eA-@R^}h#H9k;@e7mxs_22@c;t58{|Uqx(5 zw*n{9a+;R0C0+TdkIJftj_W4eykSoxHV5-d#wOg>I&&{fLu|w?&#(T58kyLL+g8V( zT8r3kOw;x@vEMk&bnH@8z5Ahwon&G^beihen^q(CfQemZVh=bCO>8P+_nO!zP3&IB z>?HMK?8_$hsEK`9%gXA|eZ`JxG1#KJ$*}TaAd9!jW+D~#<vwI$v#~$G*oSN;Zj2#z zt%<E~V%IuNbQYh%0Oa0lVtbg_d!0r)cK7p$U1?%xnAnw0bH?f{uC`gc7H-L1Vp#7r ztV^86TG2Yz(|i-l-3?}OzKz{57_m2-SU!kh?9H|SKQu(_^(K~Q&>4HZqj%i0F2|!+ zcZ`$82U&7jjj>~F?3k8_9d2Ulz*94JxQVSZ3q3VlM!N>Saw~l<T&A}6j1PB1?1eg( zpCiz*7go`+*Gxie$;?~O4dulr9a~b~o>p~UMWu&Rv)Os&W}dvq(fz`y7n5BrbRKVk zF}0erw}es!WZ{sLH>eZ?Gw5&fQWg;}$H>mA`z%zq*M!PaG5N~d4>#pCal|u}hY<lM zW8Q%)1gB?E-FfWQt3V!pj!Mf^&@$E04ZI2t%b{f|I9jGRW^rC=%J6D7EmPXr2|7<? zN;`=_rnHt><g7-+$MBjNRfKjyE@##r3CW>g&Tnv6h?Ws0F=)^@5)H|lQwKE|EAQm| z+r?f1E~|@O?8q}v)%}AT5!0>!Oq^`i8#HJVNC)#F;?U4e63bgvk!(&j^3++?d8sGT zuj7mXSBUp(=gqCbfKm)lb-qJmhAQyxLKSKn#8xQ9097utpHkhLLJxj0dHFeob(&)G zQW;S<VQ8PovA!;dhk>jEgg0Phu|lruz!`IXTJ#|(cXlG`ZScHFq31w+2;>kzr8B7s zCMic<O{rRGsiOH57`~ze)68AysSJP|a<T#;HJSqT(;{b?3|HT6!P6R`!Vf@df1vqh zGB!wyZ*Ky|?TG3Qrmg_zX%It!Tnor1TVxkPW`mjzh#Ug32FPj>pM%%}<XIBmf;b9f zKOoGtzD+Hv7BRK7wCHN4#`S%5yfRUhuT7*UGbU6a8Pn6E!qfx|jr6+}C0jxHZ9(oW z*4#EmqqMj)04!I6y(7Ts4q_CLVSva;5c7e|Au$ESeL(IdF$csGKsJ$B4B|Z?ZvpTt zcMV!U-Q52_%%)U0uNlfP4pGf;va}Jvxd}ucAUyzOZUs?hIse?xKab&$n1WRlR*$oc zW7DEf(SB$O;~_Veif9TmflLRebS9r~lE+b4N)3l8Ftrt6SV#%xV+W9}fNZivnEn@_ zJ_SUWk3WF?N`m>xUW``~01@V^1CSN~d0oP$gj2~TO{oMF+qph1+LeXo#>SK2-waSC zIf~aetZsk>LKD%56nGiTFHr!$a-X9U&NeblB?#&Z`NC=WpAhBrE`OH)dX-5adu7=B zr0%Rp2rrf+`mVI-DdvZD_bycL21wog8_1VTt0WUz8`Pb}O4}q?pdOjhUtm5%X{MgC z1p8xv2oui*l0$--r~#xp043l$bV3X53cj)G3QM$b)Sb>Zh)ao_#@{wzZU%6Uffxj2 z03b#}w%e?NP@u|a;yN{L8>&OL+a^P3B0vvZRwx<>#ccZ3ocQ+?VuxP<fm<o$=eE?@ z{9lXfa(foQ%35ot-yN;YDXiEIn*NQbwa~H#5cwIzYe068aBjzQDIkYQq<{!7#f}OH z=P205gBS~lkqDPVbOn<DuBbvEaw?~|BU@qp-wRPr2mHAe+;ag=QxFdTxtByu5L<yf z2gs&inQIYJW*q<A%s&h8C!PA682u<PR{PGGL~4=l?;!nOs-tdPyr=#oLEWW6WD_V9 zq3#}_x&R_fV;qoSB$(DJAS*~P&5c0T1M*jb$boQslqRwY#K#CdO1AYNegyJ0iOnFg zmcv&A{y);*1kQ@$Y9H?Iy4|<$>@#;ZU|?q0*I`vzW)KiW1_e~W0o<1X#RYW$7X%$} z-v&|Ch{P>%2^vjY5O<R(YGU+tj~cV!ni!3m7++t__dKVny8GTC|Nr}aA3y3&?RDzZ z+3Hkvcd!GAfr#`)5Rc082sy(Ed|6S=y_2nTq#u>r-pDR38v0C>TlP<EZO)CF&1JL7 zqLiD$o}d}sPPARyI?6c$b%H{#EDK1*6*L=lW+CXW8eAN8W@EmgtDp$CTIlRsg3627 zz;X5>RFh2;$w8*;7u9Qz4y(wrZ#Pvy5(IHrk@x)6<gzbEcgG{h(wu|HnM`nLu0doI zLNy!y$7O#h>i<mkpR?@uqxH|&9hdzXM4o1Xeg7VjcMz)CNS6KINPUYS%ie1f779U@ zeHtQDnBcM>h{#+7S@uiN_;$=jmVE_sPi8eP`vr)sWrE9oCnC2q!DZip$b$&7>}slJ zI=s1=z+>5OpOUle_aPh0{#cY-#%*tH)a)rX<Fdbx?3d8(i?(Z9M>#K}PEhWZ6#!CM z#rII>T?FlGY>Yayv1r*VysEuzqtDRb)2PvqsF96Djj~=@hi&w4H298<<n08bqeeCs zHLCQ=1hmqt@r?ll{1XCu?f*z%!uRc_SI7AykukQ&i}}7DUG+u~0vL_R2qs7Xvk;ky zP|ZgFk+{}GegB1h=MdM)Xni8PBXOOJ$Qp!@eOI%x5Y-QmwHZN(YC9tLFhN<e3z0t| zi2NEsURr0yvN!=N-9OC|!xb*Y%w|(%Iq`#kLU&)Hm%p=H(p}~n0E8fPHyn|nOpxwc z5Sf4=boX=95#D#hd4cZg_pw8XxG7yGbhk&8TSiyR&Zt>E%7yM;K=#4t_CVXUt)rZg zs1x+?$~w`BEbh^$b0mVMyO*QRY|PF)=;@U{WE-7^1}maQZ$*u4ENaxttNyEP)QJY? zvXRi;AEQP#7B#BF_u(kmu0rK5HZcF{`R&QFX_`BKWis6@T{AG17f`efb#Fp&-$dd= zME;CWMi=S;(+Cbi;^?CwBcB!ZH{)&?8}PHDLy;JWAfFXI2$5DM_*u~l5n0a!KP!4C zB7C!`xIaHe<UNFHb}R1BVb|iZ1q5+__P!2g3W9uA^kf4A1U4$)Ufe>k`B~Ais4*Hr zT%P+NG8I98R+Kg6v!V-;H4h=P%JgFVp8Be&cs<uf{Vzu=<MliPZ8{Ld>v=UIS201a z=Z_J&1tGJ^w9EadXgweQ`g|Xa>oX!;f3Yus<|A`E(ez37#b@3AiO64>;A3|EuLlDm z$a8eF5Sf7>*Wzq<%IS4HRsqkNp2O~VQR4#CITt}LYTSv)4-w>|#%NUK{YTVHT+~?L z$X&B3(=~v&c57mV7F2sh?lpAuGJEDQpCj^Dg!BwkU0>OdXH93DEYGnq95Tp19-oJt zw9GH~0Um%ykeOE@l10!D_#I`sur{5306qDDAKzYX-W^mwVJ<e4rUh>0>Y=vWw;#q? zh@ye$wlBvy28pSNv>*g4kXVdJ8xw1gI3AIu2<~ho&Ol@pLdb;TeT~!208SJeVTXF9 zEPc&P48}(+u0W$p*b5)ExE+xnA?O}%itu7%gKZD5mZjgYJ#0sV`)v;|Bl276fzG6z zQ4cnjwmrO7mTuvM??$yhpuz7E<o2DdiAM)aYum=V&|H%F40S){AdccFuSGMpG26m@ zt*q`=JIeQH@jrGHThohL+cwcC#W&y;M+kV3{Zlgnw=YgT<;uASX!`ru&S%R<voIT; zj0{AZo(Li|mLhT(6BH-6B62MgJYV?$k>4>v5j0>6G$Votr-KlggCJsM4I(En!LJpc zbt6_8LBz_R4G5l-fd;z0_*w!$vC@SaS0L!G6(e#Z6Ff<I2$2U6s@Xyxr+jXDiH}p( z@Hj=Er~Hp8gh`DCMzTDQ4t~iVd7ko5M80BzlBHlP7z80xn{%GRcL4)!yzbL5SEDUr z)-8pt*ktl*7d~HA&&xxjOqEQ8*(O%`9!0D|(w<_fjE<@tiz-6F<1zd=1flJN5t)nN z)bpXWb4{y-Q7dmYTJaqor=ijbY(-JA6_L#da{0B(G#X+WK_ESiv2p~G+|zy1RD^pU zsEY3CK7)>)wmtt5k#`Z&&zZ_v2-Wjd!!OO(m>C&CcOIeR8-@P|P5#9`_=4J+A42XR z$o=#WOe2WVlQ8Iup8neN2|0yI3VDblUwA$t{h4W{M|bLZ<<T*Zki=NO4Z}A+jv`{6 zHzvzWl_MeuPum}*n@}_n05u`FHzBbak>v=Aji#7JkkcksZkyx6<zRNeHg}=^9qfR; z?LcHZLVA{IBG0kPoDMZPc=sA7{Bh2NZK0CF#DtGBt?Y#Pr0$A^8s86FaJJlk0DxJJ zqBk)1vj~cw=MGaZj+q9I`=|<j%Lz<Fwc4A&RR~TQJHNs-!ezRX0p<=BNXKJQVE}@B z3;LR<;|A7wS_O3kfZu{X1$CCQv-Dl25;2hec{1^+NxXoocj;dxOI}PS-bf_oe2_@2 z$6&aGk7sNbIO%_w0=~R8U4Dqh3@0+6r%4b1TOItwN2N!ZBKT|NpS$JCIdG&LHX5sL zim>V?R&6V}sm$4^CNIvs5OZ9QATQ3eHSyuqsI_jy?=g&L8~Gjs>fb=z$jh(yGgWaV zBEJz{oOu!(@x__j(BLjMN*`dV2`OY+OzJ0?jy#cosqt-?N1A+`9?Cy=%b9c0)fFgu z4Bb48AoDyq8q~(3c?PM>F>J%{PP~cwud)qKD{M_KikU&=)u|0^!+HJ<_5X^X=ef!Z zgcl1&L+WOHb?O2(;yk}YgKya=eYUBl=egXZ%sge$oqB%2^`^yov9B^fxLX#_LuVhM zsN!b$-4NV=AkmD-IE29a9d2kMayY`6QY5^M^MgA4-Gqz_5fr;^Sfaa)V>s}TfA|7y zag!b5G1PwqL5BD>BF`h#afmv0UB`aY1595smDEcHV1B}FfAoW8gDK3j`i=9Q^cYiD zUin+ki?35m&gpjiE&UF}1Rq1u`xxvkj{ZCn18)HXBgh9#&oGVfc^mR(bx`mnLFNZZ zk4Bxt5#$4=cbIw(zVo0b94WTk518I(inrph2r`1|s4HrFJI8?48d4SMhgh#Mg<4|O z^D6L@C+iVn3B8gN;q%UC0iIO|au@g-L^dJ}c+NC1*MGU_KokDJb6U@Diyyf{_c$j) z&7%jQM}AoRUUaaHJ@Q-Qzd__#1pR?=L_TIhJ}`bOsvrn6Tw%I{_%pE@+c7>czJgto z8G50954Mr_2%DNJYGaxRGmKyxGQ&{RAB>=x;o4{*8;cr&8IEQnGQ$Kk*o%$QTTBB@ zK^-Q=55QfF%2uqUHkbl_DExL^;MouAIvG1D%19F3Dhyg*hZ`QwsTz%^8YtW?`^^Uk z!%;K`!|#jWPC#NcBBvk((~<ZABG)1K>|vDY0q)$DAcY45|HXsR0~`GWb#6zH?tX#D z6A0C;Cf&S?)Efx$7|A@-4K5CuSdj(knV?`hyX0de|Bd?pM35&gY)#dz4fUtguec3o z6A0-ArdLgrnP!vR7kDK95h0GxJ0ypj63=;s^LaWb=mm_3_0b_}+*ZJ&0-T98O*+!Y z<P4FjGf5(8EV?kmWQLpkgOINU0M_CI?EODC1sB?hZ+U+Krp?bikHHiMBDe~TPD11; zgrEe8t%z(v@YzGdX?ivB0(-*#Qs6IV4{UTF>ih&jx_bqY-yl@8nsoCGQlBB{wJ_aa zElez0i}!+p>Fkng(eNY4I|RKJrY6=RuT8WT<571ULVAIzq1Pfc+$0OJ7Kfs9gQ#?~ z$^TqfQ5NS|ljS;Ja)NJzGSDEgIJSb43W>!zK6lI_ljP#O6pxvyGx<4-^ZOSa=Uh|p zc(gd5F9aSwN6|veX@3OwTO_VP<N|~-;cuy4=G9f<Z(U#f`0VBh(+zA5keutMi=JmU zY`Gn+?q@gb^Cd)njZmFMwL10{u%o{sYZpSm4vT+`Jsv{(S<@+nW%?D9AU$NhF^L60 zAzptJuE9}w|FB^ow)5^-d|8E$F)orFPHMZUdNHd02{7?(NgL-m>B*-XL3=0+?fT{S z0Tt)zobm`2M;?MXoQ<MB0H-H{dl3>75ZQx?Ymk_a$UKAr8%^t5k!hrtk?a@|0{%e4 z2C&-PJux1?Y4Flzdb~x^coW(%-eD+Oi5{0Dh_(BwspmR2W*R`G76p$HMq0Z!qW%pC zP8mD@z%;@mif3U#))WQO@y}4<E`;=Frd*8Je<c&{<r*w0DM%)=iNt`qM8ZmIOl;^b zOl-660asDvpS$I^ivZ+A6uphHUqNtZB9Xcsn|~zabDr;+Mvk-LYyf<OUpbJC_&LuZ zs5bz??T5q+MD}KapYuExk;4(H*+xF+c^*>dAjs!DZ$RW4gw!t6Iln;oDUhsn1sM{q zp44Zil;898F(^ydfXYT(tLI_9fEDQ-EU3_ye9!Y+(-`kEGqFg+9$~)c`5-{JA3?OM zt)-&+b~R~IU&=XCyZ#FGe}SO2Ysx@^m(!Y9)Ck)3Nj9Q(eH9J<i;dD5Q_a{a>(;~Q zGFi8ortX#vOVI906n%^~e?-7jXYeZA0ro=(?nGh^BCQDiLrBasJ$TO5T%sq7GGp1p z>nK`=I!7b8&mnOMA{!8@SuOZ8a<(CL8$$3o60aljA`{;s@eLyXKv29|v)v33$4V@) z_ZN9@FUDYemwf4+H~~SBcggobq>c%`OMVn0!x1vin4avr<ktw_)32Ah*A(&PP5(ld zSZ)3CCX&J{rjUo!y)n6{aE&vS$F%hDX5KcHp1oLDowNeWoH)M7l*BQRl>BoaEh-jV z?+fsz6JFwa0U`$@)DhR|%S~&uX#C{QsO?Ic&$8WYp%pD(`8g5oj%G*eQ15y~u0fEm z{p>*GUIbAs^Gpx8X^t^meC=lhd!VBGGwQsHAd2p2QxDd(iCN_sDLQ<n%=r%W(@RYa zV|2_gN&B@QG5u-N8b-O&P4xh75e^#gLtGa?IEeSKRw5k4%T-4r9K;(_vw7<9JqGsi zcya#&@C~XPmH}uh%g!|eU96GfJW;J2-wlfoLIW@T29V^Z(tR$&pD^8nf83x{%KWt_ zJI;WVfBeZEDD%(6C<DVf9F?<5HL6s@bK%t7jn(yEuGxqAq2D2Y(v|2abtB?+oA5KJ z<~v;Z@`hF1g+%J7`035weu3c83FEO-r^efW=<qUVGbi;betLh39|m11uIanpUE`r( zS}LH11}{JEOvjrXvbfg277o8sj_LH7IufO|4?%%W(}iCTa-4lKGFFce_^S1qq3xae zuUNgFeTC@@p2To7YMEc=q}W4`8aVyNd;2|(c>3=nQ9P?+D_f-RLXOv(<ut;c$8?<G z%nsRkSvt4_1qbx_1<GrC9&^+RXHJImZAd@Eg1M3y+!I&M=1FvvQw^4KQXF*1I_UUx zsu|V26N4|2ll|TPNMvsWCAitAjzWI+f(nQ@Cq-PRIAV|ce+@jiMYC~}E&a}$s8}qJ zIO*TNg+z&r5~g2bqEr%P=|0$Yx@D56O*>3vE9RkngH!z-Mokf-N?sNZ`nYKhay|;Z ze<9bC7$@ZA{x~V7tA4r{N^T6eaCfnd{K(?{6iFvVM5dS?%0tccFt7MoR+DuZRu5!* zi-Nb9LvWm`Mdd*6mZCPqzhW+NB0o;$eTSmxTDO$L@@AmUu5#BQdY;b~ywD~6BuHo{ zJ0K|X<5a!~j!M^gB?RC=)@OH4)wY`vT~JOSXp4JXbMF`Y5lAaH5%_xDjA}hbhEu%m zEf{|Sz`RFLgntjqFR;92BG|R)blhFPqCcZUARihLicWW~*n@LB5Q$j`4Fy<~F2UQz zDJ476V^<kdD^YeTLcm+!T|Jm}5t192wZhpb3x5L=*D`~5;I9gZiF=T|3!#x0u`e}H z;n6AFRXZ2TPkn&wCs6(vg8Cg2&mr<GLctbOc>yrtij%^Hlsdi4g+?Fk;z?CdtP}En z`yHmHXCu~$aEtc=$M`wYub|79ImYcsyo<=&Ox%FPhlsq7Q1Elp&8Of|4z&iq2g)dg zYfKR-;d^vRc-CO?pEvoWg5kg_o1G)g_zN4-b=$m+QvfZDkWA)Ly(s^}08WbJUi`sJ zcn^)N*iAch;cY16KX(f;CM(u4fGhSjVEhaLE7q|mSFHXgc=8`XR%}&r#a79RO-0$> z2(n_UWW^3Zau%~zIICsFjzr>61X-T94G6Bk!Ew&6$MCW|r=t861X-T55jhi~;IF3g ze_S5mM=#I6Oij;5?DCxJozF42Jm;g!^&ErCb0s2|Gr{G#9+7Ji3RK?mtP(tPl)_(| z5x6`zqDw9hsH3pLG`R%%k4U~<o{dwS%yd&K%TYRovS^ubqx&W5mXTN7Wuu7t^3~6= zuvs{?_=ex$ReHr-fi5#{$OXeccS~QKg7sp{V@5Ix-*Af3vH0WX9p~_n?awuBGSY%= z7TPw4+cv`|KmfY)19t_AG$8Z)5)h|&<{Qv!WsHAr6fA5>`R8tF#lr{{6`04MejMp; zVC`mvii4TeOn^T`@@-~42)-UPhqd}`0~H|zgnCFhdp-=wgAqzDdkWH0#Ph{Sp2u3` z>|w&$_agaYgc1C@Hoo%l-ou)Jn?75Q-5XF6oYLOzj29jF2h{r=g0Sl{Q_-~%OAnLP zHE1UE@C_<|jUe=(?uO-rAoNg-NFhSO>82aYuA1*)6*z^5nxct-=x%hW#fMXPtH~$3 zzH0JGMw(H{t-`0<O*N8}6Q;ne6HJb4BPfu6qk~E;q^d%l8UR&=;DlUIiw)04`kNN> zyjR)c7}RM*?Rtdp17N_`OWBC2?<@>fv%%M>GYpl7aEQJf;v)l86oHW}|K<nM{T`?} z79sP6sYrd7`PL-vN1{L(Vr0U|G{D~%v#}+fjaYCF%zO`UMvg@tr?Ap=MorZV)Q3JO zoADai!A`-RrjW`F1sP>cLR848Ck^>h#*&HqjRKYS;g_o&Thz~t>2CR$lpQ>R3VkW( z_Q9-L5Go3pHG)}-kz9ySM1!c$gmz?|h~zSa;B=><hTOOoiL($&egW!lED;Vy@-k+9 zi>$tqbsLg5A!Ob%5Yi}c`u!CZszv47X}~ui|J*H9LPfL(tNRg_?Pz^JLNCHn-9%Wx z%%?lG0>w_0JcAINj_1*O$dLbq<ckP>pF~F&TEy7MFg=XZE2CaU`6sBj3t`mTNI3Uk zTaE;-`s=3{T#lyLPq{oV(bHXqjB@iF!*z_y^AbH>GQU&$-eWK!8mgI4B*QXn2pWbF zHDi`JUSBcPoKik9qUtKSIEwsG#%JkN-AJ)`OZmizs?nvS9bH;8NSE@N5LH|)a7{sJ zIiCqp#eykkED3p(p~9(z2>;wI<Y}SdYRs<)L0Dv*spr~=t`6^4@B=m=i|mccEeOsy z_PnoY;r#b{Sp(^FE{bO&WagSu;fpqtAS>)~R3ZV=rRyJK?P<3?8D}rMOTw!fu>rvj z=t>}=M0P;eAcy~2Ht4_nJ*lU1JiXEJ^tPuo^z`PYOmB5Oy*Kjo-pJFtA<vWDkWb9e z><%Dm9qx2xBb0vShp_Z(=OQotmz%+X)uRzbx2%fMxEm@@rAB*LV<+STbYm`HY*Ve{ zjAhKJ2+>1Psy_S>iA+5<R}GS%`2=ca2&1ViYB-@&$v&#mDUOhu6s!Y*xW7373Ab?^ ze%$TF7}9+de5%~#Gf~Gqeijhp&VaB8+&<VJrQJr@vY~s=VhrVe+Y{o)or?TI_s}H( z!d=n{_2zCn5NLE4W4TJ*J2!%s+~z)*g}dxZK<j>UKDH$8_9L-JaGMT89AnC!EJawW z$HJP@Ao}%Q@Dsv#CbIB+C^mPvUQv%()%N$kL4kT4@qu126~&JFa3>Sx$0D9m<8Q{U zMwb++M_+~t)QK{+;yEVD*}l?|Mah6#WKl4iuigYHkMI^EOO2_*%iFzLg5cDwaQu;8 zI3Cejb?Q^7r2A`7eE`;Io#?Olh~yZZ80^$GV_bJ*cmX<Scw7?{a3%lTE!+te9^c_? z9LpGu48qalRL-(Y;2H$lbGPh)hCNZwEgQv(SAyuzM!>^hWiwdj&hOO%{J7=4FU2^Y zq3C^tx+N$YZ){c9M!>~-^tpvT%8U3?@<Bg^vkw987o@su6B_|L>Lxu4rTU(zI*!$y z6sf6?eTMC9B-BFmP~731=rZD@NRajRF*d1y!lk;<Q6OOQ++`rxF~V~<u@U|~X>c{d zjJ>T+Ifa_<3N_!24GT5j)zO2XUao0EvvHaS3pEcGY91`qJXolCupbE10al&<Y=9@~ zG!ND=tM1%>0J*BBjd3z%s<!qB#>thbUe(y?0SaMD07JH{{huG>$1j8*%t^lt((sGI zEvV(BzkLFU;&d0{UOGDxi4sYubS==}mxgzsB$ejF^L~XS!t{J5vXUrDU;H`}m69k+ zFMJz`DoIp2HBY1I9w~pc$6fXS5eV#UfCvP}oLUhGe*J}ni}Jv4kj74$62TuLiPWBW zC<8K~hTZIyPH}qvq@W%o7Kls;L?#3x69SP5fyjhFWI`Y^ArP4mh)f7XCIliA0+9)U z$b>*-LLf3B5Sb8&ObA3K1R@gxkqN=}Bf*n_mI<|d@U_T4<zN7m=G^=hW)i=JMDb76 zlSuQ0h5l)h2%XHOm_(r#CYfVVGCo6uOt_~EeaH;ci-RjU!=Fq?ez0;fh#*)9iRL*I z&-ejyM&SjJD9_xCpGhQ^2N3a(us=>S-=t8(%*+n_v}j>P+=UQUyO0%#unM%W8fb*o z7*KYJ5mxNgDKWxI+%P3ZSh1w2#0V=U%1Vr|V*5%*sF&AOg?b_EjIg?ry&GXg5S+;? zoDjmQ8PVDjBdpk8Lx~YqO!O}?!iot9t8br&%i0~-8>~Huvm8{ysFVKY6(DJF<rC;Q zOyA7J5J{A!SHakGhn8~owdtiy43k7%`h8HWJ6sYC>F-%GB9JlD2ePC|5`)w0A4Xzi z<~VdcD*Y}?MoD74lOc+0*CVUUop==BNb}X&?xYfugEP1R1uf||#N8=_$pVvQtoo^g zjz8AfTd1MPsp*S$6*~uGb$?XLcIP4Oa~{61Nd>(_nJq;G40j71pLOKN=|jmK?&*aD z?dL4xkCP$t`%prMdw4$Ey=BXMiTx7QoeVi@$TbsSxhVP>e6E8(Bl;l$Iu$d{0bI8U zTs^Q|OTabs2c3>{OYtb?o`AXn(%w!5-!B&arGf*|ZJTH@gwC*G-l5FpV9wA-cS02e zr!j-8D0Q6*%B%2iJugBwgU-!ReD$G63d~=^=6AAe1|ss~RD6X+_pa?j%smk`tKeJ8 zyv-Fv<!e#y6jG7<s4K`Rdjjafzjt9!@SnTog{<RDm6wq`>h>XEtD#BeA`Byy?ZFX- z-3vzs!Y~rYOg31E)IkXK{1U+9uB`Mbq}!P{43zMM+l$kA4C#lNHwt-A>bw_`{xw4O zG`#<+nvBxG&F|B$P~aCRc^#nvRPzg0$mZPp&@n>8@yIFS<o5U(07951TV&<AQ=Zh* z+Gl(vZUJq;yng3~_oW?YdMh%DnBy%#>;W{o8)5hnNSw>uBN2HEIj<miCm`_;L_R~P z9$o`G$n=ZXDw`M(B>&ELOQxXz)MV5u1|=4f8kMa@LOC48dhe&bSB@HM`XF&#q)WLs z#-^<dSJnBCn>G+(@ngTx^I=Wy{dBGExW%8Sg=poOfcUit$RBRNIhGsV3E7&u2qgmm zR24!I3%rfUxelod5WFo&{5K*WF>yN*KfNDErwAS&;V*drpPOXjF(i&aVkUyO6N&c_ z`4tndAhG_zlrtM)#=A)Lpt#%elm;BHNW_qDX1;)#nrcPCu@B*-1|c;SiIWjI5uu2c zyn~Um4ym&d8V^N6Z9I3K*N#XRa;`w|Rv@tjk?Rop{<#{D)tPbNDlsub(9WglfMfmx zmF`CEpRl=uMS2L42M|VZU2UVlc^44KB0h(*XAxjuo{iDoHQk;r7<ZhT(W$ov1+Spa z%Lskh&*#x}Z4A}q-?c?Y5Db#XyQuv(dv3ZA?F*jP7~)9$cL6)T2n8Ra%KNNVZ2KY= zk%HFYS59diWdUc=6KEM1uL9nFVZhmrUfwaKc*mU_)fT^L3Mp6FOlBs?eB6M9hi^^H zBJ-p0U_=F(UjnqhBM36TL*!coL8fh_oR2n`DVG9*VnX4J`~al!CGuY=!94$hL?iNR z5WIgPaReeWm~erCGapVl#~^q`NF1^QkDVa&Af8(cKj7OP=fh)L`Us&SZXZUC2N0af z>(S<SrkdyUMzw0UvKrgh)Z-|55p{MVq<)UX=ZJj5#2rXfJOVmoU=!~-<m`jgUI^Z+ zNSuerY9`)8;(kQ7Aq@Wni4m;-7ewAc&VRAWKanVT6u=;OE(q`#M3x}zTY|(TzqG8e zKU%t{mZSzD_X-qWgplfu#9fHohET*B-e}~!h172myk;c&KL)Xc;LSv0B_gLH^kCl$ zOy3S(_6O-)^c~D}>HZ?r*nlA2-+;)q2t}+^%I-_qZ7I70*<EEip-v`&tYR+yRdR%o z@3z7}T=YcaS~q-+sO1c{qsRO05HBF|EQdJH&fpWIb|J_NhCGgs@gT?yHX?E*g3Mq) z(?1@&l^Hx?yT1`Nu1Am=+>6LIgd$ezK7&frNzM!^NkFS3@VB64qg(bJ`zHmxfbO0{ zaH@ZW$$S=p5yxcSPP3aCjlFp44b*xK^<U}MMn$dBoBV5b2OMYHyodVlN}CdlI`<ii zP8%~#oRMz9^=#9CS|6kShip^HHf7J+Hrp_VVQ#@ww%(Vh^Y?D`@ZmYBSO2lC_Z{kd z%X-!9Z%WjkjaeARx`n;Lt^z~)2^^v$IBJ~XF3O(CC?<`p#qWH7<5%Zg4L9;aQ{j8m zUKmwy)TsukY<RNCUxN-GG)SP9yFuq0P1klEy1+k(F4KAOf}MKyxhnCdxFYBker8kM z8CeTvd>ZqgRti??fkYOQC`C}$Kc{;lI0~hl2hXHL#Hw3ODJRh@Ds_q<Hu<^Z*IsV{ zm2bW~YL`*Qm!tEebo124d)Ef&-ksv8K1K+0>~&G^92??T4Kt-2``W0~Q74)F-y{D8 z+v!K=uv63df$kKz+u{8+`*cSgW<)vd()SZ>9JR`n5X3^53YdT4#+_@gPU-t&gmg6g zIHndM9inT=5ggC&9QBM@I`+PgE=_HGb8X<Lml7q1*%H9&sHY6QvCV2*B5htslx(ym zY*YNA!8+Rj&eTTcf_~e;g@1_X*T!0eXz(<>n>ijEiPQ?z8i*zDi;!B1#9oN(f#98q z#J-43M`-LsLTrx95IG1rb690F62~EO6oUH1j74nhg|106S}m_a+pkS26qz&Mlty~D z))4L%6tWrhZski^n1H6hbKW=~*Kpj-#kdEM`V=K+VaN`I)Sr;pj7S$k5o>w>Le67I zJ%Z5aL4yk5#fZFsoL?b$J&|}Hkv}pq5Q%>w@)d&GWJcsHzB6$0ct<|sr*1W+oJCK7 zqJgFL0CL!#n8lc=&{6Lt@>>)6p;@?gbhgyw3&L<<Tik!QymX}DCE!QRGy4>7Zf=g6 zgQ`tF_d^dS^3O`tf7#@dPA^F0e{Ax(Vw+7qd7ua=#azSFouYr^Ur#c?I7i)Vs&L2F zUsn;*zbDajlH^PE#}m~LPE>y`k-yyJ6N3GWpde+hH~DLke^4U-MxCG9crH0>e}gsd zDIYT}1f{8s*P(pWpG^68knN6a+N<uzw#(h(%6{4%3sNY<tNOOMlO&4wLT_=Wb3c{s zaJIVHx3E-Mcr}0M)=q<j>`jN4dy^|YWqIa!v)-a*xm~;2Ej$n{@!oD!t-6Z-gmq>d z?nyY#I(J`=lRe%!Pwx<WVw??bCCBMKlbxUMrlk|7*F)%FyMQ?uqPqMvXZuvPE%@XO zyb7U~c?FX(mmT#I9q|gzodw>4yOH}y9lI>pfIc1#N1$#<2p^OEWQcv_<FbvMdCOB6 z@(kDAkE)?yCK`U;L%KT*4L|Qs*F?cri2hxGD!3ID{$3&Q_3SOKj+5L{@pU*E*3EQb z`n?WEtqlVB)f(^(GHJYYd&69!HtcXN5J*E{_Ci4{LApq=DsWybaP}<lFUPYg;vDN4 z9_8Fr!~XCuQ;!{ZuR;vd-iOfA7%S(QSo<s{M^8Y>QbEgTI^LEQ6XK9BQ#?WA?L|~r zu5oeVDXX0m^>E=yfZ`OHX}IdB6P*<r6>p;QsdiB|BC$~Bb}$D$d9<@|=n)vB{Nypt z!ikK9Cm%oBY3svcM8`ObBwFwa8ZMS`oD4lhz1{#?r%6w@u&2|UX_L9Uz|ypt220Z; zEX|0pv~P^1nYz0w`|dqrM?Hzo%J2p@ynByPCqwsY)!98EC%<+pxju@UMOOLRZI&uk zFFc4+yn~LODkWwWO7RXlmI_sRcn94UG<B-%o8qJ@tw?r+H^u3WtP`DeRjVn*yWpgB z7MIB?<9*p1{<&MonqtV7K8Y)Y2x38xL}U<xSp0JlnaKoA^HUI6$^=dHOA)ycLG0!C zt)h31*uYi#j6KsF{{d=jMv!6dMC3;ZMXc1#ULN(f>4f&O(;6MUxw9Ovb}jt7p6`s# zdNmJCL+5Hg_Z)X!)`j3n4F=}wu*LAl#pS_%4$I*d?Cp-u9^`JH<}aveD_rCsQph%; zZjLpIip$-KbX=jpcV?kpVKMriSUAa_P&g|)9%B?i6h|4@r63vFa&Uvs(neR;H=veE zrs)H#hGe2ixpbJ<q@vK}J^E~uYX=+DV^+37K(90)6<Uz01ctmGs!N^1#*kB}+06{G zWg;%&B_Yb7U!yt}N#K$uckdq2Y&bqKG^O^e9z<ZB%pz~l-nnzZlJzm26ix!T?4wy) z*AEozHef0dDu~@inXv9Pf5g67AfvEQklh#(hJI1!Sf04^{!Li%B&-93E&$EIYQ1=Z zIykY3gF5U+1`7p2j}0jV#||~?WoixMT5!1GNm?i_T#ou9Tz8hxU{fK+)YV4jVg|#G zBC&P4JxGq&wAm#EL7|H=xvPijV;g~-k-)~dZY$8x=n|4WB2*Mk(5To`V2+jpz3i17 z2<IGJVJvPV_9U7GCJ<zzi9JqC0lAY43ma3jvKqqyvnL5+VB$8Lm5PY2rBEQ5Jj*%P z&5}9yE{I6K(JcoWr(|8TT0*u{qs0<R&~z{@N#L5i_Yw37y^wmR7Xuk2jTxMP@Mt`R zea(6bcfuDelW0uaSpYdQi~RteGfRXAVz@qKsk#wh&hGCN7EUfy*zoON<&ugx@dE^V zjdhxlvDkoMjsaHS2RAk<)|{J|SEIB?!8oDvdAgIH=%lf1R`w#dG2~3}Axlff9(y<_ z(L>?MB{3nx*+u4@pK>QBCne}yz%rtFp{6`|sLX;JvTbXMrYXDu(!ql#P0rpuntPmF zLJU+)Y6M;uCs!6<&`b70`aIO~wDju%frk}heKpw}PRiySj))nzv3O9AB=;S;m+<;g zh8)lh8yuYlc+EZFloD#kK*uJjy)nq`<hcAo!wKzJ%uowl&Tpvz8xhYkDgncI$Lq!5 zq%}dEV3q+?BFnIxxUsyc7Xg=xqD-^u1o<S(IgWF3uHY;@1nYZ>aC8L33Q8ZUr&AN_ z*eFCH)Ong_W>UvQoh`!cbP_(UgGi|lp0upKl2l3*u8QbJ#GmG<)e)PBuEQHoBH_a} zXZ8j#q74(QgdLulW_QVp8=_XUXadmccTF^J>8Eg!%={dU<DP^yJu6$>m?Gb-CC1@j zsIl_fkN^Y+b2v9Jh)nuCz^FpvxYHHU1L3^hH56*Ne1mI&4LA;v!TRTOj})t3;`;)Z zK*kE~La8z<JFW+*_#!t+Qo<sdYS##IFLslZMMk>>4TL-}Xyu?DhW#&fMTwA;E(2Q( zD9IM8`d;-5YRcU*Xz<HjBVI!IR$b_1z;&fN5VgDDkyRx`%tnm|YBphwtE5C$9JM#; zi5YSt_u`Y-IVicvEu>hvhRvu=Wu355RKzSibQ4dz^Dks#JdQubVLXKPd|iRT9{ zsV7G04FoOH->?XrEiS2Ty<5xbH|BMbMDNzTvIRBPu=t@Z0g&WE-AWrBH|5~Mm{&K; zGRHJ6w8-&qK~ILG(U+cFL!lPUx5i~=g0|$gxWqu9_0o@!Z_Nr#B0rX#81ma=dJ}HA zLkLw%TP%2N#>N^)iBi%mm9ln&td5zSADMB1Hb~P%Fb#=Ni`7g_#k)ZmtXPUiPZ))? zRv42g5la#+$~B6LV}dQwR$A%qWMEl@Ti`EAIJ9RYDkP&-SW!_Zlq0Cga^CPeS@WsN znmpAxtu<mI0~WxGiH<I~zO~&tW^NCSAVz!IJ%BZ3g*Ql4cCl&2(wY~PW5We-VY0?L z5+z(YyTS16PDJHsNz}pOMOzbJuT&5Nl1^+)LJL$TTG|3@pB7pfX5cBx1<x)GOqCK_ z(+I`V+(j(225or~M=+cW>MAVau@G8nCW)?6uY0^G-OSAzONF(vUQinb;vPm;OOjHl zXGAB+icOn%MGX6C?WNZvGGq1n_s*Mxv0wXW2B^<5`Wg$UOGK}NZMlbPw3dk(-xv;k ziF0fr5;|GPfOON}TD=3TkuuP7Svd{DB)JcYfD__uRErv)OdZmQUIs@cG`r*cA$I8m zM~2UbYRxGctw3)KhUu&V@@}k5hm%A{Sa7(}Z1nTRWRqPKqGFcaF^`Pk(U3+Pfl-kS zKiX(GvnE>bMH`gHA9~z!VuKP757@d5Kh6%HoZue0v&Jm;w7qEQBy4Fd=e=TCt0n*V zSZ-O>Iw2NR6SZQUM7`P^85J0wtJ#7jE-VD#;B!ojS(9UK!N$eFA*D1XSYyiWWZqPn zgVY07F@<T#44NGK$kY=xrd#WFhPBuCH9QSah|8I>8<7@{v!Cft5Xb&z<*r$z+FB!+ zQB?~xLJj9_tdFsuNtnO*R1j6S)v|NMYQYF|V`+z{iQ@!?B1K<9uEo+XA<j~<GK1Vp z3ezAL_E`9&Bf%GHNtqF_tq?IBLDePpT#||?AjRBIW>QK<8V4?!$V^LMrbIK7(sGJ| zsnn96$gX@ADvN+8^G0%0D>n-%beq)-Sy?$-V5U$>DGA4&6_!+P@s!}15#)l7YGZmN zO;CuUo&gpz6lu&l0emlZ$rZ1&+N8IZ*?r<IY(4fj+)}Wa-r+PDIj*zB;BK_r>%JBp zK1E7m6WUKh&%yfVt`h(sU|SK1`Fl19O*>ug360<#6mzn*KnBO0JVbNyP;xQ_U}9Z| z8yAJ<WDo#BvXU@|d7JXNg9A;e)mGa`trkXU`9GRV04EG5X*P;hx`{df*fI`WG1mAy z3kG<?m`gB-veb~WtK!GVv-X>;t@N$8p<#lVGP!h65HU(*7>Lv`<W;1}q?ii^Pala| zyCd`TXGy$BMzCvqXvs?NWMsp`I~ntHxduLI!HMQD8_S5~jU=nI)RBadzR8&64dB|y z%VQQWgRYruo@3(0exDwC4SPxxBW>ZZjCeK%Q+OoG&*A0XR?GLXfG34YeR9FsOM_;x z#%{JyU)x**4zBpme#v+{LV=@I4R{C>Hw0{*yaTPEGsuOjvO69JC#ZIa!G+8LK1`V$ zc4V4~8cVg{gA>zwGe^Wu4A=`~f{}*bWJpreD9Mm@vII6d_Wg`WqSerZ<sD6dTBVDe z8Yf6HWY62_m~)O(OWSOF3U(>A%7m(k_`NI%Mfe?`B<OspGeL9oL@Rv29I^13B+P~- zYNn&NB~Mdmhu-A4cOWxgF+^@o$UE)kjL;xd7wd|tR=Q8?F7ft>CEj!`@n+;mH%ygN z-`ASyGwuFpzwX8i9G3Kp!wV1_IIW3lMpDkscfag!gpHxF17giFCo+CerU^Ca=afuM zyYrHgHfa_gm@KeH)j>eKb8ytT!7d#d^J6QBu9gK+YZ*(6;Dy9z9emM;<Sv^QW?Hzn z#r@FPnb`hYLB3cRD<Z@tLR=<ElaB7rNa--+u;gfZEG;+>Pc{_~XfAi#J?4?IQI(@O ztg=wCj>y?X8bu+?Lv9RAhHyAD(wfqtK)MUgjFsI5mOOKgzx1(IV-XEvS{!<#nWs03 zWk6fWdatqbjCQ*AWJ^GT?uf?96~N_I9m=s530rSFBgtL4n})EPas{j23|1RKVgRo( ztCOIU+FVi7BT}M0wbtmRrCnXFuI(-EX+2p&*oSHDlNBs6uihF<4MHRqUD#t9QZPXE zrR9~H7<blB+qwO7R|>>6Aey-NMzFKRAyuq_2X$KkY%4LnZW?unA$0*MUm^}oQm|Dp z!xFlK2V0Q|K*|~sft4rIn(UIuiW_x4G6x$bb5xFm7gT5wKRQMNH>cd?j1d4e?0JU= zV<Sj%boaP!T6hmLhlo4&<YI9Fp+PLlWPQlg&>*67QQHcJ2?=SDca8&H5*vRcgh??= zPize37^T^Y>K46b%+)s8WbLQeI|7;J8he=nKpgHVBYA@zr4{u1XmbO{Unth-E02$m zX6VC#eeI@lX0(Oh&*BpLDG!&kEasDo*D9HjJe-~957BG3zn)VOjr`aZaR3icViwWb zbB;y(_(t5EOCF9HO~RSSYD4%|>ylVyNTxN94vH;~gGmgU4*Wy(mS(=4u4!X788{sy z+QdBqeX_8-20n!BPtn&Ft&6DKMOqy%jurG0?nMqY<RugYrJ$8*j?O(iM}q^$oaqtK zA(JGJG~LJw;6|q4HA4Q;0*XHCk?O}JXcFktcskZ#!JN4qmsEM}hOP}ZlIm(Ho8`*o zWr-|t%N`$%x0?=5&<lavJJzRhVkAR2)svDumFu@ZIZ0&Xzf+=tgaeas;<(JRrj`z; zA|v7uBVA4-<asWCyujaDcO7CXK(ee%ctBRgOq-*J#Z1%6C8>%93@hTzusIh@a)pZS zAiivpi)p+kL0?gcubWtbPt?HyY{?bs*bG)^Rd`YEqH1f1JH5m`l#)oxl_qJ5!W{Qa zNay7OZ=`Z7M3P5I>yXdKt7xPutG}zGVhcT-7<NNZtJN!Rl*n=!PU)%TSg%;A)x`{F z1Yz%7YOtK&C+7V6Xkfu>Y-Bg&YH_$TVp`$k;pXkGEuoHM5=*!>1Z0E#0fNRx!<#%S zi+sSlce)PBlSE0H9&Dk|BY*+)b`9i}l*PPw5>dL|x<S*2+DPMUuz7=W*7ggW9Cl_D z^t_KCJFSsc5sk8{WHj~67=2BE)HYTtq;YzNVXjc89>t*Ib<U7(_7wRNiPF8Im9PpK zICsV;E75|V5GkaILJxT}os?MdJZ0M)v+2af649+K-NpB0EvEO5#q^XM@e4$As#7Cc zGa1uzY8fHDPp*)Tubgz>MeS?Pr)TEN>iu#^5A-rCnj^+e?v3)Cw_2*tw%0iJPjb8F z^#hWuOYu2JU%r`Z)&D%Zm*<=hOfn#A=iD#J-_PQXiRA@s!;*^|Ih(N?vsLn2V^3y_ zv`739Gq_Q3ZTXf{;sQ#Z5GJi9<*(48Wk1k9yvxzPBe3E$;Yv33g~P}znZ!ON@+C_t zPC;|{vHKCIm3Jjp1eaPOHXXz}9czvVxs@lETyLDYA{9Bq836<L8RmoKsf-$lF0|6G zN{iFTXDlPL{_Y)RTFh$Uo2Rv`o6M|9QWPg?&F&1a6EgSgVC{*a+Q*8NdLy6=78)d( zH(H~qV@B(19Z~(PIKt(1ee*}I<w34SL}z8YIpE{&CuduNtq=WF*z8b5$tBBtg3RCR zXrpwPmUzQ+Z={WgCTcD6rd*fE$k-*KU114wv_e(i`Llj6R>+fQ<MJ(Pk<$Os0VZTD z2llct$3d8Q6&h=(1(H(4I>C(NP)iXwzksr6ML;cD{2IWqbBS(YHD*Yf%{kjN_N6WU z7H(nDlbp@T^{B~q^Sd_%wB>qD<UB9S@wI4Zrdr^4yHwMXIs->%TBc2pY)V}DOV*%P z**B>h`iO3r*<Cm67b}HXT1~XZRss&mXwTF6l~A<@Sg}4QA@YH6qG+zYZ^i3;i8k?m z1*D!_nS&w(p$Cf~xy#2n%#RiE0#d%Uq&U>VTvjknRqOAP-jZfTTU6b40;d;EgvHiE zUlN;8hej*Zt)CnhmsUC5om;s(;5?_65x&Cn6uvn(wYB}3vUewPjOf@bgg46)6;(kP z8MOI_B376h0b|T$qOT}oXe+t2l^pSdHqvn(Vn^cY=m}H8TcN`7%dF^+omaUCv~oHd zW#^GW<kaH5m-y_W$}XC|%@P+xl3pfev_yROMR#Jaz6dE|UYw|QGxSKn(O9I(j!5YV zA%MHwnrF>TAbn*nx@^&SmmKVyA$w~n%Tp0SNaK2Q>|bw{pus%Fztl(qOjnplpk!uW zt;_mFQ;#MC>$^Jx4~Q9fpl0AfTD=V>>snt|j^KmbH$n;2on*#g5i<fH%Z$U5wV9dZ zsu3bX&CbZ+MBk{$&69&fVt7<EEm2@*Up_j@jhRzBx(wi!^2R2|!=-OQpcx7$B@w6s ze-h9=6Qa`U2@&-9Gm^XC+%4x_ph~*D4AQLAdSXJ-qR;<}t!B-!92+fPCZuB_EDUbS zv0j>h6ZfHnup*sRXibPB%ag^Cffiv$gqr2aTxK?F$mcF%4mX+6fxduYGAm-KlzYf2 z=32t8tcr$@h>HXfZIg33Uyl3b$&2o66B%wvw&^J{DZ)dqT<Zi6E+jaOQWuY3Xp>T$ z*Ap8vROh1Rahj>kh}~*pNI-4IH0IK*_=GI)3YCh)5yOPO?1VDpb~(pZ8%VLkQ_I*K zf$!Q{ZU$Xu%R0o`mqV?MI85`qHP|5KWEvw9wv^tYiZRucW5hHTQ!2_8u#ut=8q4Hh zOxv=fjE*p}lgl;QB8QHC?xnT$0%p}XlM56@Nue^<ic={vH<0xaXP&Ov115~YfIcq7 zt*3|z$)^Sdi9^oD8nQ>svyrSMtYF!Qc=Fktrd~IBj1$jfCRU}Hi!72#+$b6?c$`CL za*)Xp8N}7Z6v9=hTr*%w!oN1PyC9zy3-W!mAfKLVcg?VN7x&fjIKa%<=H8Fee%9{f z_wIMlh9Wg5W1{;D?nRQ~fsWiciD|{T&dJXgqMs{-YdFtHg?UMerzAKqw&dWX=E<hj zK|<czu7HC&*IG_W@c5k5GK9IFyfD9&?hKY-+?ggwE3omnhkdex!rDsY_|8_oxc!f3 zjW}u4a+c^xn`R=GC}ZrEEy-^TxGRZ|B?_!ujyBlRj>yu_%|+aSoMO%6C6@V1E%TS< zZqv#mOR&Pq|7^arsf<tS1SEo9WxP6okjZMhf2oOCNZU!t72)AwHy-MdOCz!Ov1hC( zdUZpHenzgF#^Ez^u}n0y)h8N3bGz9A*IUik5G_1rL%!D{N}oGMNY&;oZgS}<K$wXg zn4I5kOfVv+f39w}(mY!AfjJVEETsi3w&?bdZE$3K8-(+oYd1@9H!e=p$s?oTXc^;; zCxl7CPp;IXH$_9z4CXvW=D}%eLh9p@D~y8-+0Bj?%m(m_at860R$=)V!Q-NJv62u6 zPoj!)@3Rs{Jc38>ggI>VCN)lgD?miKB@GN7pPo%f<l><_?9@rG`Z$gF(4LD)7Qu3y zW}m_nro;Ue;>kYGGP%3>O?pSQ_??=631ph#Bw1-}!n<#Or|;&dYlcRA&hgj2l-77I z7%LYUulvQq{Qrd<hiq`*1vQe+5WFVhHF7!k0HG{13WbXZaWS*a{%Ee=a6n{7KEs^t zx@cYz3viAK#6Uot2}vGj8aZypG>G~?N$y+~c}T8cPIxh6*=(hCN@&7NjMCP(^p|sc zBYw8o3dAs~Cv+NVH{Ps`Imrkc{kVY^7KNH<^;N=X-OSAobMio%Bry68tx<~1DAiat zTV?WJ^tgc^!;!c@7|lW+ZPwP+?oU%HBcWfFs|_H=AypD6((cd*bbb3HPbAX1PM`r4 zqfKk6)>x{~8RcFG85svumJtO5oLKY>0;ixA0PcuLx6#ni{+QA+I>zH&k;K><?GW7B zQs?DCDHXah3)D}Gh6MT{p`#U!03cigv=SYdtLsE8bA_UVr)2j-qOPn^Gh8!NXx!os z2T+lG#f(J0LNZgvVT(+Og(Ik3S|6FKMn=Wz5%+B4Ws@5p`KxaXVeW<#Pvr2BD%xgn zM){6YtBLlss&X&8nZcP|67g8{3DJD4zQ{9~QD>3?)bM$;R;G$}j>rcsmT}3$>OJ^H zlQXkV699`Cq}#I*Q>?W!)ml5#VzD1l+dk5#J^8czC+AW&5s6@WY1vRO(7yR{QyU61 zDJabSW?UiM?cGb<BczU$^FYy&tyV|Q);e;3pvS>;1o<mRI-FyvT<}INnrn#(Xo$HX z$B2drZEY1aOQ824?XN%B@<EQ`oS(=Q#hH}FjXC=?n9-I5x|>3W<a?LfVrS_hvWVpl zV~j11^Aw(=YQzge^zA`eYS|PYN@-fxxI%6XYBcTU;g-W=jlg@Zjlk*=-Ie!|@!kn9 z?&5Q!M^nQdldr*#HS}i)_PFjEynQzse5oMOh%WsugJrp-qX{Rz5h5$3Gf&vvo@{x9 z9^<w?F{wmzU2G>Mnal`1d6L>_4I_{8Zi!fj*@|SxT05T_qZByW{X;9cQZG`Gsd%&V zAGB@4h)CNF4z@uQgz+^?OYLHsnJGcJCPl;UFIigMk5`9Krgp!+5y346j$FvlUaLs) zL{C`eXkG2PiYirF4oyM`2bM@%E8X-?NvrjmB#BV;)<!xRFP*c^2r~~DyKQOg6MkBq zkh!_I_W7eatw_Yz3`dsJCs%WHzkP2;G*pg5Mx#Gt4i^EE97FaxT3Z?x)(`gKY<@sO z9uCwh6!$lTWAk<Za9NpbgCorX)(IWY&gie9R{iWod3IAja?dhP%rp@+iqze_M<jMQ zz-J{ZVCAMP9G=wESg|f;gROC~9^S+1AMJ+{>aaH;<!XoFKq0fp2NfGV1Z+YsB|$4p zr29iIJo2?AIlB}RP79|5w^CBz;<>vdVOx`GN>ZA!?bPTZNzQp8Ptx?mc6tT$?Stw6 zLAA}$XN&u4wKCKCns{X+VQb8yn&X(fJ>Ttx8?$q_Hd-0R8e>jGQA81yU!v!ELcM^r z@j;jV5+fgyTavs}V>v^#FY4$kI^tks<3SmUdY*69^MbrtTa##Ey!*;=99ah^E@#A~ zopf(5vfye_fdyWi$7b<^giA~(F(brfhuZroheb<miQPze9y7*10_Z_m5hz7W(mV!x zq_O{zBOC9d?0^|o%2D@68@&X_H;Rl~*508M0Q0X#ADi%B9+z~1;v%Ki-?BZy%Sa4+ zFO3zoeGYY5tf-IIiu#0DnBlf0wf2d^`iYyJC*|&HPDYE!%*FLc>lR%>D^b5WB<~T{ z=&d1%r#|q?kXYZCw?cFn8keOsc`E@;D6gP_fFQZ9%H2M!PWFR0h$OqfD@5#h_*tf! zkuql|X`Z|CHA(uiM0d{aYzKKm2;`l!PD?lkFBM8^rleFqPqaHN%+B4t_<`>WA=%+I zc=`<<BI5Xd5Yk|*LNBmy5iuf=#sxmggj}oHv^zk*D8w?e6_pnQyj*RO1d(qF$t~4Z z%B4B^x&GVB;<88?>sM7=?ozCC!dJMKMEMetT$9J1uH)pL6qEB}iAZnzu_6d^IL`>A z?%rO@xY1#?Vcd*0gbFD4_&$o{IlQ$8gfdLucr4d)6teT}0X$U#9D_%bP4I|rjCgDP z+1IBTs<YQxO_JAIyY-W`HdcJqDo2^a3d&tBt>de;VNeruGcj8$+z{W;>CsKAo5yu& z`9s!Iq4df{2zaATtD@eqi0%U(%)N1w^SFtb6dj1<t(=oOeU2k1UVV4BVDdy_gqD2N z|8EcA;Z4Y8_#vWqtX#rmDN1q<;w{q;%SEt8Z+r-krk1frh>ajN7*#x8s}{XfjXXUn zVT;2A%3U>k6rx{PVEk0#+RgP+#7<oi2cT%U6(aS`7ZXHBDR4BQaIZLny9-NAUd&DU zeISi|cG@g?DrP!sas_tFuTR45^V~R7(Il0k){;B7nM8)U-cex4OvccAeZ9Sicm`B~ z9Y*BuEY>vV(KWCK3Ad!X>MGUx%0BapM`g+*BSTiRB0=1efs+?a()Jx8iS4GLfa)Bw z076I>+)U)S?P~K^FDXEicUeSK#5RTAYna6~qJ``gSz9KrE|(Fa%dC+jFL4)w?|j+K zJ_wr-={AzbT>MDRCMZ#98OV9&oT_P29A8$IRW+bfEbz&_r1g`y0g)pPAzWipE7H5O zVk>ven+=S!klo_;19`;?N+C&o|35icMg9V4uH>#U-pk>3s>P$(1DKuE?l+E6U2Eo< z+BI5|)+VS)lW=shmb=5ilX~+0$sCzwEU^6N_5@SWE;oMPq**mRE4pSyf(kMWiR3=T zXEI~YY`4i6)z{DRbAQXv=2-zh;@^RmS!2f>T(XI^<}y*5#;QucVldiP$_Y?(6~PKs zan6Au^rVJaUDx=iO6)4|kN^#x<Wqdy1bd4bH>*P$@#=MXS0z`71dCfttj*{stJCSM zjUj`#HkKT0#+OEo)sn;REFn4e$dw%O_#LOYS9b|9o+j~x95G>J$Hd%C)}&ZHHd~Vz zuXB+%RYK0{V*rAl<Amj?dqWx~E~Oe`NXnS0A|DOmn8nvyOv#fCCP~1Wj2vdV_WH=X zTyPsTqL5gR<i5^DZ#!q@yUAN~^vU&SxsLCI&S9W=*LA-IL*ow;__zgQ_4slMo;^jF zhHx+f-X!kei)7AE5MD+26v1=rz0wJI;Vw?P`J>plh`sdTPk$!)87I7$AC>3uXFik1 z@n;2p&cu)EWQ;$lOBlNjKmN`5QT!Uc^8kK=NBP5#&-*Xn2VXYA&-+Y%il6ixzJ{4Y zhWwa&=p*U!CsoW?HDe8o@h8=UAAcBs#_?woejI*B*<mlveEuBCAAaM?Ifp-l)L)O7 z^q0Dnv8(Xo-@w={jQxZ^Kf{mnIAhQ7=SBYbu9NXr5PA5g-m3sy*&uB8dxv-XuBz_v zYlF-E`oQ&j27mW)!W{jr4nFmJC(<=2?}Kz*@DINq{?-O+^%v68mQ<leowWEydg_66 z1JX9X8fo@u>(>OT@C)fPzh+@@kzawDZlL}hbRyyfv$K_cmRU;!^#|1+<@pl3#UB)u z`tGj-^_!p#GxRH2b(Y_EDVnxa`m9wLEb)s2Rg9QAz10uYS*=Zez2kwk3R?YCFvbt0 zmO7)^SF`;RBr00{nr7c`@>MVr6L$S@8>0KO;xhE7&T7VFRB>yopKirKtyviegB;WD zdzF3<v>4p#4_f4BR9&m@KH@j3jy6A7+Kh~X4&QAF)Ysuo)WZBQ+49N3CX*<_UrzOw z`F5(9KWE{d^1APj^@~)t39Z_7-kgRurmjqRSkv>?xxT9M3j#NV>gqeE1K9;?{kjH| zZqG}%H8q)>rq@wL1?oe`t@KNS?CD6XM8xexq($(P3Ksbx;7ITCGr&YKqD8v^#cWo? z-|#MpWI!d|%N`W~KV6GKDhXh?iy#H+g;$&}(3)82@8WMIGD{nLZ|_!&=3->8z72mt z$z|sXAv@}`*{*H@yrelY7iqT8ofj+<w0MCkXakfk)(4Y1W1E@4dekaL&Nqp)I)k_> z-WsSK<6k$Rpk;G2!F%h`by&|VqUB9~MGFWlSX3oL6ddk{Y87#>3YtK9K1e4xlKr-| z`y)YHUQq5=@-M(!3X*aCpa}zII#WvW(fcb{QIBL;=@;@3>QuM+g{>XH4G5r&fMuFd zuV5#Dz;xZ91mrt~Q1~d#1RZ|047JlQ<6q2nk>ErH_oPyOrF!US!D*E`LH=T1()HWD zJ6Ig3$AnxZw@N)#hXI#2H#9W)nGqn-hCtoiYlmKwGQaXe-<^Pw-vSh+e&rJ4VzQv3 zW`RGX%`aBvZGMe9rOj__Bht&71<8mNwxuA9)D6?^;<o_^;O&D+t`u~!pbB|F$=@We zKwUK*UP(0i+oUeQgKErbZ%1AVQecuR;wRk<ydEm-Ijq^QZSzaOvcY1%C}?M7g-ENS zm43+xq+0y4pa+L|q!e>9*!07DeSASDJQVP(m&tg+CK8TJu8i;%1nR*D)^&WLhko&S z$ahd(SmBQl%$I1)<Lkv(aZ=kOm1f>Y%1R9D^Z{m7vp>4i2brkg0-5uV9w4s@E1=^t z_5AbB4w)s!YTbz};O%!9ODf+MR}P7m5drI?nV_t4M;DQD`WG@@D)<^mY4Pzj<3&Ps znDGq-ZGr2ZR)I-{BQbOGe4yUBYaOY<Q@6e5>=ZG8oKB7{S+31$ljUM9HwYgQK7JET zjihPAZB#Dik5R1UlozZ{1z5T}rBY>;pRTN-Ox;1UM$KQNra|=qf~sP5DsZDpv1TNy zB`dK?*>ERNa0f+&p9V*%V1dl0pzRKHUDz3@;a|k7m>TQ5NA2=cQ+-b)VW2L(YaNhn zWud3Ocn$caFudZfb<N=p4aq+VNr~&1V~~<IKU|Mtc8QD&nt@WywKcM``}rmOi@K6T zeg5t8-8rpIf!a_?Ay#k+Ks$r#;7h85YCjy0_y)g73pTB<=8(D|TNYug@FC8x(|1<~ z>e@LW^`2IDtg1keL-4l<$_857QyGo5%xK>qhSJ$6E%DtWSmFLPs8E~5zsfArr=ufP zj1HS6#n#0TEN_W8oS4l*F{8!=KR5u>T;zKtK^JHfl(Gk;<}3iW6$7XPy8;&^T@x&6 z_3P9MfTW6>AoWgfBE41Yg675IbRe+=+8x4pBBHC<a+M2lP|yq+DhV*{B9eNUpI+?u zJ_7x$YStA@IiZ8(MCxz=?D|d3etnCdZSe~x9fHi+LIx_>NIM`_NGiC>?;m9So)~7N zU$PK2TVTYX8~iy$xas-1c;XA=Jv53ks6ag@>2mepD3Vl*aMv?)Q9~$&gkGqg8s+*8 z3#Ix~b6cf-pq^l+KsY-qgh;4BI;p!W{lUoZ4O>e7HiOigB?@7rg2NznT(bR0nS(o~ zt)U73{GPoq(n)O)n}K?`X9tCBaZuLjmrf=N>@7Bs--W2kz{CikbB<x6uvLW9U@X=m zk+Lg0L<wSXp`=G(oF$@!-4kKwsk5MPUPPWcu}frwt14dyqoEA3CdR0dDw~7z6Rh-W zjI$D=B?#M$a(O*p#8Jlp3&)}B7U`J8qe@%1ZB-{gBL%7m;<2n*#NGO=uF>fi&f>V4 z4orMCOd^%p*1%{3qp-)k;Ao&ION6|#BHRI-1}eK1WO5P|iORmtSjRRZp(Jb~rITWy zcSU3XE3Kdf_0XxUep!vL!j`NM6pRO=1k#6Wsh-4&X*OKqkH!cgb72lM54Paea92|k z4MKG<BvQXpVxbkv0x}B?Vbq8O*)lzB=mez{t6k7TUho`qA!MhEd{ggF>Xd3XOcyDG zG_5f3)^*dN9%6~~$)q-^w|RPVXe8q&=nr^*E>M@$By2-JGrJi^LpD&C-v_DYRSA)2 zgPG9ah|`E8_<w&90$RPWV_gVjipk>Fz=k@+ubB-fHwa02q{&;vR(Geg`4x2#V4aW- zkXr7Z4PBre)d9|^^-Ia`Aj%qGrtlW@Ue@Gi)hVqodrQ$94C^eV8mPd9ZRBUTwB@Z> z&lL@%g)%bIiU!biAf~%21!(t=M_K@D@G~vGPi?tqkqat6A3qt)#hVGCC$cHHNfu=| zq%0P>f`175M&AotP_@!8*-s{=B_%p}#O=J>?aG?o*1KKn-5pZVn;6`q7kK{$U$LX$ z5dKnQCw|(Pgkdffvixm8D|O9UXo4P$or&$sfqo%oHx6?<3kVy>>>rfu@;zH280GsD zFZLVTMJ7SALe`VAA;^G7Jz?KlBq?k({7J-s?~UQ=s;lmUQU%I6rECCcRs})RM$&NA zU$M5Gv~w@la{6!1Hq?r&W^Ee!*vPn-wZlLZO={(4njErB#KOQ<ZKq<)V13Z6WrcvX zQP`yd8=U<>|6>47XDHBM23@oizdRGX2O*^`$x1DtU>ie)jE3%}LFB5-*Frw2@6+Vz z&NJF2P7%|22G$q(O;i@@o7K>2>NY4-bZGmZYq~#$x%u4}xFJ-nx@xU4=>G&QK&3q; z?C?uFzW`pe64z<!ysqO>#Ey!fB>g#l*`}ZqV^Qiaa@`OXd(hR9m3<{72b7@O6@(4g z9)Rgv&mvSlC|(8cV~HQ%7bRw4V4k>cM_Wgwy91k~;BL1q*yay_44;4ot+2=4YP7;$ zPnPt$88XLg85c7XP`?B)s-Jc+*&d97sJ!2H1dBk>Wv2m|_bdX2&(*CsL7yD7X;Dz) zm!E>z-I|H<S2M}oV*8>Qz^FVn&UW3-twzZs6Wdpjn_o=imSL*z4G9)K^2nn!A61ye zoM&;@+Za5{9PjvOW>8&~zIQCxhxt$vnNu;hkuJ>YN#Nbt!B&8Qjp9mVTq$*y0FJ7e z7?QAi!A)S@h^@Ivq!=Q3S9bXYZvg8XG25>mkI23qGWJ;Cs{zhepmJqZKB{2@snyNf zpcGxVZ6$e}|1lciRO_E|I@Gt1uWJo9WDTCyQ~P%M0|WK_lQ8ulpuDikZQBq}F$0a` z9S4ZDAc3S@?C#)33)wJ)TEM-t0`-^a?Lpf%)hY5>UHZs6vu9<+Qonp}Ol%d~1Y<C{ zV(+*bWQ5>vnX;%K-&^7rtwZ)?D5Empn;dupvr8+**mPUM&L(X0?&?Pq&>Lv&bm3}s zmexA|y;z&!mkprWfHeL4;v56_vH{wL|7vlhPA(syw-4_x#zM<hLyUW<ssXZx0W|Lm zjOp-5zi1Vf>Qr{E?l_e7VZzdubh+`#s8{<T53-6I?f`0&W+PWL3_w9N+2GG%9;JN< zbV?S?R_1A14Nt-VlYNNe#e&`tUL<c1+P7$IYF6tWmnJedibDr1wc>RVo9Q;{ffhI1 zDKi4N*|tDk-3~?(qrk-m-@nx_dmFRcYF71XzZY~j_9TJ2zM}(ki}oa2F}ZT}Hg>3i zU!s20(N0y0!QLq(r!smGpeEsdXjXHxq3u;t?$a9Gn03Q;nmJh4K#c<xtLrpP|Nmm) z*0y{ecGcUUVu1I+x-SS8G*6&<c3DWgU^6G`S9JQlC^w*D1@voWRfdb~_kwH91eWP$ z6m7vJvaWszQy{obS`DBE?DTu{4{fM$B<ILUmcyM9s6%$flUB>H%xdX2v5R3fV&{bA zp`us6g4$}P998)A5gKFHb6i^xc4f1wS9`LD;Abpe?5ksg@b${9I_dSi>I>W508(Ql zItbdbT7w2^@3x#~poXnwkafa2rM`c&pE)0!9~k7o7S*6eiF-t6LsKWV1FL9<7Bo}8 zoeBk}C|825fj789yom5Yo&gVywxuc`^{XcNl`VcXJP8xoSJod1-x7Q_)1~Js$P9cy zsj9^<Z}Dqro}h*ngsaTorD9Kc*jds+=mp1vR8FL%L&{h5&<5K3K%bUaBI~V#$d@E% zd%m9h|E3t?jMZRMnAW;elMN34-(<t)+Fd6mJHL}|0J~SU!R`Y8wp06rS0O&!YEzgf zlDQF?BZz1tg?E>^Q8I7JZLTx(ny=s8K&a_r%cdaIQN3O^;Pru8zGHWl*MoimEH)B> zTKRe+amLoD`paU4!|4Pv|NgAV=5F;%TYTK2YHaagh6(0^C;h$#(O&QgmK;P2bAn!F z*dA6Vf|X0Hzye)piXcNC=Bqc25QICFUTiw3Y5P$!x!{OEEoc*mSY@+6pwlmE@&~{I z#KsOqi@-M6+-qU!g_X!UStK&|ZWwblOcqrkdr4S$6xAqDXSSK>Y_*~dJ#@fe(p_M% zGq<`y`_?E2)>dQKj)tKs>VRPfKR04sj5W)ys|fmnj$?W)xxnFOMBAe*%%X|gII0(@ zYm`j}g+tUFA}x&NTn1<5+D?J0tbG?O4yX)n&(Lfmn1WiVK}LHH`x1Ivz2IgH0hXNQ z!^zLFH4KYoTN<7T`2Gxcv{z-lR=1f7KQv<VDG`vwGu4t<V%Lbn;3e3odL!4m4eA0& zyaxu7wr?OBuLb}m>aQ?`(H0&Qwb6Ae-4McDtO~W%8zn*<JK-YrJwd31yvh*3htXsy zw^Ll2^;$r)n+tWctqZeNU*lZK@5>p}n!Q@6Ktbhd3w0aBT06DUH|YHrGC>jlUb8f= z4IAL73e-&iQmH?zZSxD>q|j}n2*ON$F8Lp=ZF3=pW#Z|MW}%MtD9P&)qbwH4Qo%|h zJsjny;;wc|S3B13@Q0%BN_GOlqbei%C2sDON{;~!s@o7|)Bvm*^i7Q+dB~GMJu0<+ zxt6}Rag>1oex#qKzoW&4DIa#g?!d+Z+A#&K(y3iEP)g6D;{n{kc<PtzBT$ER$ug5M zfQL77)ycmwZ{%Vg36%T@4O8kYumSeBU-~K0Kcq19wg|beC-l*!>$bVU4!;0iuow|r z1^R!ZZ;)QW-FisE`wzg2Kcz5WhSK!omPLDLkzMR(ruyz)er7opSJ+6Z<c{`4vC;lU z8qBlNt^gI1iHg*vG(W1uA4p_*BcR&?^(lrUmQ#?rK?nRhm4L?!rmQDnhC6YPgi0$K zfB>MF%LO$Ks$~*q&_MmPU5IAjf7yzR(=4!&Klx;R?6kEUQfnG&;Ec?h7Az8Y-#i(x ziSq->RWr?x%P~x)?^O#0dsqt!hfMHS>`K;S61VSm5-)d~1U3w21`Vyp$P}R3wQ;1+ zCm<oXss{09KBbt?pGPFUEa4}FnX}qopANwE_QS*VM8bK<*WwGr*$6qLHqCSW3F_04 zaE`(=GY^xk0v}@yC`8NJ{n~rlA*Q}(j@l>|Eg7IE*gFkhU8mm{GW&HAS%1TxN{g)H zWr0Wpa(wgVK9mlAmD;53Nr+1N|IuFy4-$*9DIVDgp{f2p_jL{n=NHH17Q)CzZL!0_ zh(m~=4KDLQtsjLR0HPNx_Z4?aS-(`gtcX<n83=?<?j!n2ov};1UMOYn26-BjJ5c*^ z0~GvB5C;2GkQCE{nS@1`D)feE%A<c5bAUb|ost#-PX|(2p#fl4o7Ghu-gsoh_d}!d zeD@0&pds)FUwAtXhuhExDfbI#98m7@U@r7%C^zVYSZFfT8>m-FyL4B4i8bQvxo`04 z+jrGT9`-{#suL6O0HX$;Ge|l>mIh7|nrm#C4xX2RRIo`%`%(y5IldYis4vLsVFU7U z(y+Euyf>KQS8lisP6uCICM_;cwD{cB`@62St=!-ZRiC@qp#b*bQuRuy%JJI3p;7^3 zz}pty3r+B(1Iea|wZt#@H9#~Pb`zpn!y+f7B9${-Ii~E%nZm8lKNt!XC{Mk~^xs4G z+EoJ;z!&*K7o62za4<Qn8mExKURXA|?>*Sfg8%BS*3M>3cO@J>@Xc-uTvq#%P-!ZA zOrS@e-H&V%3`4(#$4M^fK-{=<Hbm#3?mJx4mEJ(t^#)YvW%Nb?M2s9vUMyXUfWi_J z`~sXI;V4g)!a49-G0#gZTHyRKBqV37T*oEWH?lu?r_4`v`aU+M!ELhAwLASn4ziy1 z9V4qmf4Z~%>?|M7c(;X+t!{+~?P!XOpt3f<w%vF4@C&y4?kFf8#j|7_PP!|$q7PD? zCU=cqFL;7TV39s{<T7CI)~-3P&F`hjk@h;aQ~af8G8KNoU%Dq#vLbMcdBGLy$vwgY z9ZiM@%qIB@E4~XM?)t&)ML(T?m>h0=cGtRaXV}044v^^8JRsvS?I-%!PR@jpznN!b znLr)scBn=<jaq^+;aJ0vJBS|D*NT&iWL01e9v#&PagqaU^|9=K5w&`oUkZ-(;I!$F z5YF{WuJ^;Ke(89g!xqVD7sPJqzD$-J>=!LW-Ss@QQXg&;IY`}k-7A1g+gwXDJ&7(8 zt6GrP>em8IT8e;QS|EY3Z}!Gwwn^wAnKYTsv(WQoTh}nqLpo@+xgH7}GPDHSM8Wn+ zQ1<vHc`CJ)KY^?bbetq02ZBGM7=lX`gcWSrttJUF70ANEX5dcHRsBK0@1&`hN=D)y zi=0q=X)OLXD&bYERCnE~wE=xC;CRbtH*rZqDpz0q_8nk{>V~=~T<up;F|HRv#tAk0 zI0#KK4df_Hk9lxNQd7OJ2{jdL5|YjOWlR0w5X@q!80RVULXS;<fDR-S@lU&tPo%@G zj<X>7D?W6X{B+{U#)lU$<hso+jI>$9w92nKHVG5@9E#SSD%~Z$dY#fMr3QQTP@W1l zh)jIz7R=um6a6_~p!mn{V!|}=)8d?3W{p4yrRuP?8K*kZdw?@HpN9(Uk05!$PWgp! z9s!d}v}WaM=+?@ezPmC|cPcrStx*5yK*z4Sv@pcY8>Fa9&WF>qMr8fnI8_E9jp~)x z@Qz7Jf8@}0FF9D0{Hz_VoC<t?@kzQl1bXKWn29FIRp#%RTv^|JKinZE+L`SlsBpst zto0er#NcGu(c$Afr?iu|l+-33$}|OGyV2J;UjCyGsjT<cI1wuD2k1Mb_W;v(7xAZ+ zKOI^T!X97>*L-9Li&HsC0x<q1+t1ku@OeE410MYbUdW(#z_M>`-b!YB(W8+NzU>#y zK>a0^sWj!tZJXuRL8#vO*umBl)z*ODs<SAqQop_4*f}n2Wx1Sy9l{4@WqB;g6~?ZL zvOVkK0DNQX`JC|i>I=%fUHZUz<2kNA{R43yhh5Lza^3~!78!y7a@)c^op}D2X63XN z56Jp^`-A6$m|6tADQrWjS^VIUMdH4JQCfN)l1!ERIEM0JKyky0^KX%y&k}k~mz|m_ z9|G)B^o%ab$;D~(_3Nn8QwsIkMJ6MsS+WAPo%1$wy$Y1~k(`%g1#qCC3NukxodX1` zzu{ER=bCI1z<J>)cvA$lp5aDpz~G5(?Gjmh39*w^$3eN%^{49Ff%-~ykDwkNcbvRp z;nhn7oySstyiu<SNiuOPg{F`{toft&4Z&uX$pFjXKPSBkb~gq)g=W`dRCTV}0g2d( z{Sqbk_iF%%SDiaL(1G3QuRnI$kngGcH?M2QR%Q1PMaL@S#UwB;juK&|{9z4dNC#X1 z7cKr^vbfQcoNNGhZ=in5sV1{2tN}=dG|Cd(huOTY`TqkP>Vlc@(PnE%=h#g6x2b1V zy$%f=&{ZsQo1m*FA&7}yQCQUIH~Yhp#CC8vf~bHCqyh<;sz?R5%HI?m12d3<J&fHc zHlALs?ufeZ|K7<p-8<RlXK>F;JVRZpFtQdzH*-Ouvn$no02QeH<tm_-?ozT{$5xvD z>QSV24|Xbe-i5tRdBklF#C6Xu5JECzIT(H$H`1m;uVfn7TR%pw`_QOVR~(16<k5@z zOHUw9U2_~zO6mtJJY>zNFMDpo)e0{-sz!5AY<pfMHbc>Bzm$hD`}@`E0qKnd`8;}~ zZsR$dp7%kTp~TM3Qhun_yF?e`nq9#Zzhp0DwIBmN@fJE13bC$gF^u=lD)3H~y6k51 zPL&l~BGL-f=f4NTps(|eYZ4Co??*I;#q<o~143C36;QJa{XoB9pNA~s9Da*Qz?KZM zC1;S8W{^LaL9RGXA4PumzZwK&k8On>w@O_b^-N?gH9f!2o>A?-6JX+s)OzV>BF9{H z?{Azo9!lVr84DoXf40sgD~0Nz-#G5UC|VD90nN;vD1irqYu0Q`P*yRhvUl+=(gfj? zz%Gc&fEr?`G8KX%e{#2APk{5)EC1!l{zGj#+w}FNkEaqq0NU_&H)C_m9gX@Z#a$>= z;vs&)b)@OjAwuC@B_(V?V^Tmy{ZC5Ho7DMdV<XbHBCEbkwaKtICWg(ZKVn!ML#uzE z1=)fBbgl?FV)4p5p&Lcwoeu9(5M1G_Wu$bBQwGn^*N0(eDg?~Cc`$Q*NU!izqDmyh zXvDS&G~k<3Y<I{Zu6o)L<NIe~(c-}LrvSO9dO1abvKr~zkoGFIIFPejdXIXke*tm0 zB+5lPAl`OAB7%Td+O!pb>qJ`5Yb)TUXj{h1BPnje$;CK?gL{bJV3ucYt*&K0y^Qw0 z@N8zZ(e;qR1%#;4>$cJPnn*62PgS2$o4r;cr%%q&()XKT`qI{g^JyBT)mOu4@vIl} zxp+RQhl?Jle-4AsMQvTk35(_dIDf>AREmBDn^7q7LNf?DMW%K>sNiBwyj6BvFgQ6| zFSyUo$X_&;zhR?KBgs>D55x$J3E@eWCO*mIk0wGXAt83bU#H%LT!3SvLLlqk;b%IC zqRE1B1rw5<+%oJjm-u7$^84`mFN#<BV<1XOSNml+n}^WnMu$+_zf@<qZfhqJZqzn7 zCccc@47Hv=@G*hT9~_8#u`rMUhOd5yM8WSdc1-Q)L_Lc_>XnRocp$6<5ZX@MlAy@$ z!hwORa@PwnquIM>!G<?-Kg1P4H2(Q8_djsNHuiJ}dQv^0$4DslbPyzfg&Pd=zps%S z<)V*#cfMcL-*?AT|Ami0&_fhc>}an6Pg!N-P=I@Z2jFyKyq}%&|FCu*U{+OE-{;;n z=WwSnon`|YMg;_u7;#YZ<~7Da)Kmx5Xrc~wjSO}{hNdR!P{hPCh`kIdb_ctnfHfAd z#aJ+jJz|L_QNQ1R?Q`zE!$9KqJ)e&cbM8L-?7H^qYwf7)qKN1fEf7eSHNhm{?pl>? z4sEG$UClCEZi%yjutq*rckyX<&o-St$pR%aBA2WYE~lU-P>B>#LEJ_x(z6Rr{swDg z`Q1_W_}pq{v8{CDhXEd_0L9qb^jn19T;bV_`c>!(YvSVxr^F2R6g;fd`h7rQAnLB> zN2fO+w-R-N{TN4k@3X8W9oP+1n4fpAe|)s-7#JFp|2n2^);A{5SZpuk$F#SPEjN$x zw<L?2s4(o`li_7n3kulgfAK|NhJ*J9CIRjEFqmsA>k5LEOI2BWYx3&cYJ8~5Tf~8y zOb6kajz7eQO`ZhSFVUk48YlTtPFs|JSt-!-G(LI-n}6@zcPPhh74OYZCpmnb4A%Iu zN*klz2T~f;Mr;JmzJb68<zCg8s66P%f<gfUUR>8A>xvyMuOXeiV2!Df$82tAXA?^K z^9x3|D8+1EQv$NYhHtS!=*@z^uq0x6hnHCy+l#aBeiDuPtco%d8CI$*vro$f{B|xP z9VD*Y@fqW6VPS1SE2F^ILJoNrJ`vC$1iY_v9z69nw%I4QMq7Aqc1mY=zfD^1---3{ zy3@R2+(4?*9x!qvaI|6w40O-p1!%ue%1-r}yH72yJL*tQJM60<cc4!=8)t_#2qS1k zUBa?65KG*q%>sUn*b=^b$q@>4QG_6~YtB#V1?9ki&oNJ=BAcPPvW}JZeA*I{I1M3! z#fJ(yR`qIu_<)K2XSJ`k#cz=e2qe|c0^u75)XY{tXwge;`UC~H<m})51x%w|v;M{e zpL>HP(hZv|*N@)zC2BnWFG1Ps2<v0~R`r#S8r^aU5FjRzeHOosvnu-(fa$MV4^dWo z8O;Z-f%)~N?3Ln5zTU5Rr9Z5<lDG6Huk`!%R`Mad>Xj}?D~Y}F?!-0WwS^Cl2K8sJ zH9xJz{JRgzE4}8G&R=gOAJpq!Y2JD(`JmpU(hf0PGhIJsY-n9wgLvoMG?6rM&8|d) zSFlgNtIb#sH-``c7@fOEMvg{yeG0t4EA(E5aP%`5q(1S1o$asU78>^7XNBLO#LxWq znfc%U@ZYoY^*{IDGxP7i@ZU51H^9|b`dT$2{X>jnVd+eqP1*!dcorS$$FQ5NMvQHP zJ=>6phIE8lSIU|vi_Y`{*Se$E*uX&Zu*`$-c?Q19aKzzn`0Ax2=to}_pp}+4u^D~Q zlHn>VfE*Ir9^lzVcYVW?Tn8u|+!cNRhcu@n0Lc_aAn=e)NrTYwxU|3gx#XBwe<kaE za$8jYV>*Yy9Hm1U_~oZ*QDFe?jX(pAD!=}bpL9q(`}I>7Q<elVg~{lZy;I(`HuJE& zHIo~OqgFQVFXO0PSKhfM+QI(D!uNym+JV;iaCVg+c90A$iQrI%6KS3iY3y3Nq)8!P z-Rkr#`6lfQTefyP^u_%C6Vt<DJq~*skiw_=^Y@Me({BSXg_qrsf*-ASy;6YSq=mFn zp{4h{QUL4qR(jtn1z2BKCGYM7uM`fzx+*zN_|PkbQ?XVhM|oc9?_Mc6D(jdX3?RV0 z=r_TS-cQWC1PeGMp5<pj3k4t!urq<`viQmZ_<xXA{2FT*UxbPq+Ie2_vO>iL={adi z>&XXypv~<o$XV#;0T2&ygC+5UoQO^Bsw0!ijXDPqmlx}G>>BK~!}Y=kMd<?CkmF4W zx^mR{*t~E#QMiJ3dNjcy@auaL2XegLqJ3bt`xH&~i*#t`7EgAtecC{P*aDidJE!;| zhw4BQ>2R3>s>JAv#R!^6{AKkv9OS=+n7)S8*^pJyZ2Q}n;F~gZlX5Uhu|r9m+d)Rw zny3N~)Txv&NXVE~bfV<fi{+hubkDXBU)k698d$IF(28?JA@q_N1G5U7H3QY<E2pha zKliVH3#wla>p;BDXW^(vB{W2oOUaI?3L;w(ntJUtsVW-m3o+95c<l-tDr`o-Wm*o* zqb2Zi=efTeFHr7&QWpsP?~W3pt>bqSbxMujk|6o$?{$u=!zvOFC!GLjML~k)c<z>p z|Jyx^Tu^0R_)hqm?eF{ldtYG4RA}q3ENc+}bV`4Isf>0}_2{T}yJ*l3(FTOYj*hB! z5=10E?6fHx4B?}jdekt$(Jt=O@P|}LG(hB>3J)_Rp!fv-a=08*H?#};HsX8(B3n%S zNgmrZc~LR``z9r!q5mIW$@}APt%`F6(|wMf0fsh^OjuiCZmfoRk|`0+-txkPtALJr z;a|Kk;UXwpL%XqEU7KqH#@%S@k+xEE1jD<eU5+EaQ%3%AR!zUHRPiISWJR_gMgVcZ z5GD6s6>XY^0D;f%IZ;0uywR%!)j+BRus-eDk-O_5I>%z(TYjWI+7sBjnIdF5Xa0~X zLg??7u0KNj7Fnx8N2*3=PeYll6UTvBbR-jbte$_4MYIgZWuDHEtTV10ab4n45RbqI zJGMq&M(?t$TYPj<JVxC9$|%#2>uQR&)SPUrMDE}djZMX;KTIz`8E(mmZRycLb}e{) z>b(c_-3xoKKz_0J`n#hydEA=x)2DiT%G##n$92HX!<sQ^T}3-uRJFn4uRMB9vJYOT zi)q|M4ZwEk(TppF+t%jhRuvY5V6B$UE**mE0qMP2jK;3s)&{otNPHAVdo)(-YN=LN z1m`km%Q@Oh>)Tw1jI}|GI?dFgc|)m;%0e4Ml|w1OXKPXL*$R~&W^W`xV(GK{Ph@yG z{G?o&49oMar=p=_qm6fGzvUVrY%#`B(yG0gDQ@H1ON94RHC&+uoY*_I3(h;acpgNc zAsV2s$N1T%6<1bWxfkPeT>zg9vKK~R9Bm4^u50#cOWJvP1aT?L`T}%&s4sOTUj=19 z2tYnZ(_%ES{oA7$huCzY8bO%o5cj5P7@j0ZdD{E%Vr$z@pAdWFpXj&FlW3PFvLcW# z_2Y4=;3#61<3(a|fLtN2VL0Y)s%4ZTs^FU;p@xz#KwmphCt(bQtOGWF>@LkXVX_rJ zALJ8X>Jw+u8$jMh1ZDBEy+mfK`AyAsDd%h%ix6Vi-W<V+!bNwug3ytAk8RB48iT4- zr{g%8V5<pu<D;K8@{KWdtsk3t*LGMSH<o)WKPDpRf`xu2&mPuNSuTk9+@ww5NTvwX zHH~%+gm`1du)qU55i{`Qa$y4_p?&^S|B!WzHry-P>Y`}F!=3M&!KWMWsn(lC)UxbZ zQp%{F^{E0%XmCN+3I@Q@7R4K0a74WdZ&fx$JCBYk_u%E|XlDxWGwBV0iO9`i;_e43 zyQDiC&5>Dh7;VFizeD3#Zv}m{coG&gK4KzYjmY$4DL}TB_D&cvQ|%D!U(P^<<#r%E zMq9G0wpzNKpq%C7>UJk*%t1jKz?P)m;0#m(_-D+WEfOz6$?S=X9&1SZkD>1oQ!?ns zTC}iqeSfS$o!m4a+MPGHbF}+)`d3Tc7VT~;dod6SkJn0oUo-Kb)_7RD6G8#@N-v1O zaAIVe!o=?w+vHpT&8}gEM8_+HAuo4AJw#~we3%gEdVfTd?-DAz2fK1OK5&FVG&e=t z+510*7u%#!a+3XFTaFkC2;mEk(Fq;EyHb5P<8t`wZX4^1ID>pNakINm15{wCavLWQ z9MTMYDvXy#Z=5nniVeJFsqz%7Qf`X@j||VMMPzF!-sVIKygDBAhJqi>rXAzZ#RrVM z)Lo|x*@!2hrgD_THi;NhkNI2*zLY;oII->$;1F+5=iESx55b9?RT}^U<jp#NywWKQ zfZ>!5#j(_+L?$GrDj^6j0Hkz$?6F*1yR1<)cJqmY)PA`=;_cU1*NLft=3znt5ecOx zaZ#*J{#!>-6qG5nnQK|sp!f8_!?2x#>U*tm5@}k+`V-V?$Aw6ds!W{+PNw5S8&(qI z)l0Y@K-vZoe3WryQ3Sz@29(G)+<78i>G+|+-Id5R=5HJqJf3sc1V{3HqMTwRqs{h; zGCz!Rd(q4a9~=M%^Oyst%|Bl2%?iN4|E)5E>rlTopv!)R1BGa`4k+1SHfhqojsV7h zUuvRql+elu<B*AOM(T?vD`VhV<T23@)$YivIW&?{;L<s=x0722qB7cHgM+4TN4qv; z7UEJOfkgHX&<a%7Ura5$D6=nlk+I>8xlYdoV?XTxL1W|JQ#}!bQcGu2h3oVTunPzw zuCce>d_)L);#yi44Ire>iT03YYLNjTvdu904zL4YsF>MiIx}i$p5r0;OUSNvzN@?6 zWjv|2d)q{_JfC6p4_aIlYH+#z_l<Jw>`uzmAzn^6WpGne-x3X$n^X{TM#rO^?vQJx zzgBmDfhzK#?EviUL5IN|pY_@jOgoeXEkh1O>tP=rjzj&AsPTfdq=-&u@H~x27&A;_ z6*dbAu5gkrNT%}znBeJc!a6hO8<5<y@jZ^)<Z%+_JVTtAHx~kTpn3Qg94@^31AVGf z9cqS@7TI_SjC{Sl-m16AGzF<oqDo}vRJ6h3+IOL>c-l8O&{X4Ebv>OZQwfM(0(x*z zbniqfO`}6*J8hNHFD!Wygs`v*oeL2*3!>~!gy;pAS~jk0N*80v*sCbo84JrP0?dnr zK=a@XYJG@(*bNlRKJ1n0unT_2e1c;U0Uic=1#2|oeX|?f0Zrg};Or%g5TF+HKZ}S^ ztIUvEE5@Ewo@vD;h$AMiG)}C1bcvGbJ(aT2oa~i^Z7Y=1-%;&X?uEaz`_SjhGqwfi zrK_^|Fh?^%8^1vmXEwEjaRo#KBg7>A6lqgj*r?5TAtw<hK<XzBenpisMvS#oP&l^Z z?(RWh`;mkMR96%eMn@pkdW3bBtv^0AwHW)u@wSJVUA=N|m~qQjye1|_k;wunV^NU+ ztr?hta{M-jM!lyq<Vp1rBt?5YMC$Z$BFA|Nfr9-U2vKKe_90%4fVJ`@PQL|b&Ie8- z9fkZ{<BtRA$%l^yIII;qUX$3ahj!GC_t2~Mv2z9p1|Qk6F(_9b{Gn*Mbba;%8ce-w zX9Lt?IV^rTC>1q0wR_XL+pV=rz1>^Vc306Zxw4=YHA?v);{fDnjP$>9q7sQ3$0Y<< zlpXcKPBcZt!Qv^ikvPr)v%v~Y{z?>^L|an6Ye{QGoyYj{l*H%P!OrG(#r2*y(#b%A z>g^1KE1+FQM3FN_eFpM7?X>Y6wD}P$ECyf@T74uTwsvBh|LyXBo8e53>++$vt_(ld zQj)q5t?T;jwjISy73)LU4EG<P*cSg#xD@;_8wh=J$4;qM?dBh5>fDQfilc=)t`EAP zO=1#V@DVPp__+HiU@$Xw)B@q99@Ru;LE~E7!^24rrFQp@!DhSkhwh^gq+9SQ-OE-8 z{C$fB@FzNr>D4vB^crn-NwmpwcOo{NUl7iK-pDG264Ko-iC1NEYwE)hC(PZ!X`S8= zuo7~}==ly2*1lx8Y{DV({nBv-7sKy?K^b0`$vIIB6fv9RB5|WdBd)`#0XK6Hlnod2 zE*gSqt|d%Gkn2Y?S4;3&cH3GBE420IY3xoNSggU`cRf<V;I#M4tnP{ijF-d$Xa%$| zu7I}<+nY8lf|v5F6K!t73!WJy9AfZ*piKbQY=EPb3Mu~ad2ua~FpjKD+u-xkAmA-+ zi?*_VXWKwm?CcEO-_)1j7;Ni2xG*h#8iyz9_yVdGdhTOO$v+39o2uI$b7q}y(}MZ% zd#^dK;>2TvlcI_rGPiN`g7EEez_3Fd5wxHgN9#<qlNL@{QaC@Y2vc8IwMUyM_yVaA zT2g2K2D5Qw5Idqs`j@%Ub^#&TRNjl(=W~k}dg>G>8+-YLn8jD%%LJ$LA!a&OOKuMK z)o}!?`KPReWK+AWG6OHba={dntHKTgcnyI@pz}iFi{-@TDj?G0Cw*6B`_=KL#nLX? zV-c?BM2#0dX^p<?=hc3Z;jV4>!qC6X(Ki00DcUI%hTkpvk&}}IUXz?j*q&TRvN85m zrUQG2V;~`S+<3Y`H<(zNzXHpG_l>jtUy;>GEGcih%LN+aZi;^VyKhb%)JTj@>GH%6 z$)}z&heCi_3Q(i^nSt~gK;+EiuUPgV&^2_B1j7f4I#xR`Tck~c$l{ljLYB2qD}+nf z?1>$SAxfRM&l^eVyytM{r?;$ome*>hhV%Jh=_zpcZK)JI7zTyd0+C9Viakv6M-~sD z(X;_JW}&1oA}I(05L38^0r^y-%05a&$8o}C5HoQ&s4IuX3eyulT7r)=-89&rgNGUW z4Y%F#Dqf$4q4tf1>NlR?N4Lx_k;9pjC41Zf#Lr^E;m^V9rh$mUETsT9^&WF)KN&&C zN*$wl;7!RN^lb_eh@bb#N$smFdU)5Vbv<eRLIz&h&H)g;n2K5ky~)Ppg7Lo|gOuH@ z*0qghlRB9KAaL`7DQm<72;V_~;4$UbE#^nQgS&i>I?4)@dJalo;GTmm^6_u56?xY? z^~Hi~iR@;r1dZR9IQ6a1b5QldFrK6xI8F>!6siBWiaZBj>eflR+?OStJpNxi2iNMv zU1{$M9XHtX`KE;{)26Rh(*)_j$kny_>WzVMcd1ne3H$>)hvtVW{@A8a;%Yq}N9G}r zM~%49r;cS!da^aa`A^K-P1WthoKyYTW5usRqo?v`_Ijw3$lfU}PP+v_>ix><3=Ndo z%g2f+6k9rZi-G9IDcRG4kpw*nuE+O8S!MC;{xH^eTe;n45YMG;3>iW2zen8$gV+cx zSuD4EQxu5_>d0fuKVm=_xBi{zkBjuLzd}J!C}EQP$i%<)e}&XwAQ|A374k1pha_j} zh&GZxZ_3q$tbqOEot@K{MVu4d5TY#|*}cdfL7EA_1m^nLpV4qbc9uIHt{TS~S5i5F z;c!=S;@#ITp7MXuSmuI3WR|?XQgqshexE3w7iG4N;?1K{utxC25mqc7v@9=7h<+Mu z^{;)<RPmSzyAU3dQz0ia&L;AP9lx4g>^n?a#H_TGylrT4I+U@B)#%EtRXK`?l;=r1 zPP{sGekJ=+y{$PoZC|9A@^i_ISs|h$ElL{l91J_o5&LqCcLAH#*;M<0B(bM-^+9J$ z8x<ixW4tUXn<LD9Scj8hcIymMH=^BB9<7ZqhmkyBqe-Yj8sLq?TEN;cu2TE+v0`N# zY$4HRlI-ilX#F@)9B?D65=2aZnEp}CR9fJLwWMZn%cXX72Qq@y>0}WQqr$i~sLe^^ zH7v<d#{oLN!+{uaHo>_Ec$e>{T^^J!lr|!=#dJwnX-InkU<3$65=EsuE>W4W6eqW7 zPzR>p(*GtJ)USL{n`ltK(x5i+L1jq8P_|o?*}m|7D^3IHaLKrvz&ayquw-ORm94Y6 zjE4pOtXCVdk_bWWW3gdg^Akrq$OFQTzpc><Z)$h?aR@}}QE(97m&Ujl{XkG~$}(5} z7%C%?0L9)rXG6$+Jk!~;%GKZG(JI;swQa-VAB8t))HfoP1O1fCzit|Wkto2Gq$qB* zm&v*aBfn6|ChI**WEsIK_PT<f%51?&EzTRfO2+fl)P1BRIMk!!dCvD?D^aN2-Mr{N zSM7_-60ef#VyNodJvCtH27&<9AB)Rw_qK~*BL_$lTbz8g+-rY!wAU(vM*&A~TL@cP zg64J$ddQ&<2(DOQnir3DjYMy3e;VGc-pZP^mHpIO(&LS_Az1dtBRgau<rJ-|CzG%o zE@j0}G*IEq3z+UiZn1nXNhUnjPbgn))QYaR3ugjpbFcwa!`NnRg_wP@`K62DO>t4A z=ADy?h@hx9qBikop#jIXBqa!r!<o>M7t)&k(xU%FV%53t(Lj9nH!btkPJ-H|`+g0_ zXwV!bLA=_`IuKJ|`KXOKEcn(Tu_Y4@+xJqseR%}oSuK0pJ&;rFh{h+k20^o0Ou)ip z{F*{n;(5<^@Ru)~maT3~G$44!mDzhFG!udb{sGk#=I%`<DY<=mNZ6~#Fye-ZJdU<m zQ{ZXC`h;rgdwZYahG8Ys5BmEQ(Ppi5D<4d*_%F8T(OzrTJ@1>>H}ALp^Ss^CN>so4 z5AzP56r)|LV%{5sc}I4~6!K&=)yHmCQqCuAHM6qtpk+9R<rgH$u7qi2D&su@r4ji~ zNU!P+S$20i%8)b4Aw6f;a9HAaf$-$t+y~MZ36mC5OR2qcI+TuQ(yQrN2{PwrSr#P` zrT54>rU1+O4FZwc(C&x(W2E`td*pwjUqA@T*LGhESOBH^dtW^_IF)Z$UPO#Qq~raN zu1x7b9<t<t64?Vz2S}*t#|iB$d2jfj!EW{se2$Sl?zI$k-GC9j3WR!OK+R7J3*&X} zhC7j9b{P!qkls&l10!Y1Q9`aJ>@Gr*5$e&Hpd!-JU=a2a3}sGdp3OTAQR{lxgHn5b za;raU{dks4e?1IY(R!h&B#}qbI?5TlbuvN@+Dt0ZU4{Ki%2s>$bXVN$*r<)#&G8<D z0`*v_?T+%?(nmdsn)#<wvmze$@#!6)XTd(~Rfy{no)7Zh7|BlT+r3zzMC;Oh{3YF@ zH!7aevp%IoKBZ^*s?>Pal%CB`DT*%Zu{aZ%O}cyzB17{aLC2S4l*q5+VVG80^D9lr zV21|rVF4~9JI~?rqtltRerN$cI=#!Eor<U9A6(ptoy74$rskzj_Bfy1>&5L};_bc( zyhnD4!#mHK+$90t({?v?&6)qQ7;r}YE##lM3`VvZ6N|GVyp9O!-7op61DeE5LL8|v z$#=suDs71PRA<Y6>09c7S%4vo!YzYcu(Bt9iHb+uSee~6n85%2<D6`cVt6X;>R;<K zwQj36QsLpQKV3%$_x0%D?xcf<3mx1WI+&5PUzmj(&u<v7tmqkgW(yC!`Z$Ta>Krd3 zowFCWXf6)Bx@tV&=A53GM7<7H`K!mLMm|cMoTtVQkNm}XPuP%j#rlI@Dg3c`gs;;z zVH%>H`4G{J%o5y5u&K;jfcsCByhe*rNUQ;}%K!e3T5RzsZOG>k{gQrlhNDq3TskIE zb~?_7+^18^%-%kLk9`2xd_48FpQ<it0<0p?cyt1jgmpmAgWVD!LtU027`XXr=x1VC z>O+S3YQu$I+%*dOdK8lV=J0EdOiCmk(St0i*@S{KuOrDyM+r1pemq$M7pD1;zC3_x zK{a2en6Hq{wT(sLqZbFuk`Eq{wxG_=J`e@yxTtPuG{6-f<MLzmX=kj#(aZs4WacA` zi%euo&$%Ul(}1{8VlICI{N2&wU4M&$2v(5(mZ6xJ^`Q)dQpi*>LdAEqz!>w9zjwGA z6OT=rkvP(aRc?%i+wYNs``NqI8e9vJ$JU<UaUFB8_;5S#SRKj_sFB&9mUFwiuVsIv z@m-`EB5S8l^qsIMexTfmq0HuPsuNXe?;qfBj5EuosqiXzQd(wuy)fDTg#sd^HgbdD zk0H|nix1LqJy);K5<S=Fi3_94zk}qH=XnzF$Re{wyfUgs<*3}FBE1dK_5eV`z7wL& zTcYh-<OJak6%r&fyCA7vd4R^#kVEzVJy^{$`}2u9`1N)bA>|pRW%a;42F7s4P<|pl zG!op<E(Z`Q<rW7L1L_<uLHr1oxiU0=UdzF!kNtyGRi*dS{4_e25s=FdCNn-y>+Xc2 zPK+*!q?6cE_a@4xQo6CX8~X8@i&jK6qxgL1WW8ny%zV@<PEu|NJL8F72po2M7Y3}_ z1O3fICkZMk>kSmfKY+O1PTofOz4eG?%5`Y!08CLR(+X|L8jacR?Sco=t|?_1oSf_? zr$P8PwT|GoPfgKts=jWLuAC`&;S@?hm%OO9t0HJeTRV#MW*2NobOd+4?t1b;LlQ%G z;}@4SxZ$|GO}GP{Ab*JA*T2%3lw^l14GfN_;_IZS+**IVa))P#DG8E$$v97qQ!+Lb z{w!&TypPFuq2bZd;BLS73||RSR335*@hABeK7wyaKSH}Mb~}qRABt^|5k7f?y<oa8 z*g}ur)Y59jtL@d2paZz<)aGObDM?rG<&%q6@N!z=1Wp3_^q;GSKm83wZuOEf$LXB# zg6o39Ly&0a19jI4>a_RTw^xey%`RipHgDubsl9rd+toHlp>JUuFYpojHrCo-8QkWL z(RYcF*^=>myD8dHriZYRMKw3~nsRBB;7LTd+asP<$Y93TgPE-I-JhoBam6J6i3SL~ z;CTqc@SWiH4Bqe+(t7h|+Nt<d=+S@km7c?wdh(w^C7iV4pW*IyPE<3Nv44x^v@o}b zJB=#8jLOGG)hyRtQRUAm9>XD)J)-w`au%u}<cipoU||$M7N5<K2~GBGDb~!;a%}G* zZA!#uZ=;3-qSBx8>-!G7y*r};8i=@|aqgBTizn(IYG5ztFFtX9oZRk3_-`dUsBB`a z6KXAS`&)Q2W{wYCk<L%L`3mxqlUQ|7;OIcdJCM_#)+~NY-{|8XfE#nG<7Ex*T(AaT zfq-Ke@j$yCYgV5|XE&ZdVU7FhZNWG>cAwyi<5$nn%1{+0L1$s7RbURBdeWk2!!h?4 z0@PBw5T_v#2lN?VoX9-LR#R+7@WkXg0?cMwZ}z)Fso@Kg0b8F%P$cGSr4lTOUx7qI zqj%!*Y2Sob(oINm@+KH&lkC64Tx9of9+Zd4qVlgJDSai3MMBPYNHVsg=*od>E zYaq~4^w)@xdl<l`?f&IZv@Rz^L(h#iYL13#i^)RM+SiU=<~tYJk;_1>8%Q;yrpcs^ zKE^gsqqC6-JEMxRQFL(J?9L!^AlpD2V^5r(#Ym$pgU+^v(Cn;DXSTdOa|*eI5|>xE zOI<;^0H(Kmau4#sY8v7jO5&50)e#%4o3=tW2G<k~!r`KvbtQYFfFu#D%c-{}DxVvb z92|FweeuZ>;x95<p4(65?V+5dXz^C<i0pPfHc3~x*p-thC%0m^)QGP`XR!SA!IwN^ zmytc(E*!j!e#FN(_1_ox#OtSD9FmPe$TxwffYK&BLcnkooD3L66&FCW74BJaWrV7_ zBB)QLQh?8^5?u_+TbbWb>DqGbjH9!&_LV}ZxBX))*}g-J;CZYH>_LNl;s{6QwW)>0 ztq#onmUcEX!UzUEhS5VuzzMAPxB8J>;`0xzgBpOvs{rzP`%;biIn2rBm4%s34eeM$ z&G@^}0Y)CUFu)SEev1|ti$`|_r@pqC#JQK+ITHvkv-gi}bDd`km#g?NiazjTSLzB; zvyb}|)yhY*yz)c9*H>m=1_(C%xlY?wcHP!Z{KmQXk3WaD*Xw>J<tX18?xd<UsX0uJ zYu`zUls0*5sVy{@{hR@;?+PxpxV^@GzelmsaOw5V3I5TGkR=La^6O?N&WL<$=wMv> z6Hnk)H2NV`bK-YNU`Iv((2odOoXYNJ)47m=doD6lb>~IZ|55-K24^;jlL_yB9?y8f ziRG@^2UbU^DV;ylWoH7n5Yt>Wmq#vPkvy7~$<8QHbmQm*5Ely|%W@_s??<af4&*Iq z+v}N@9j63iXo21XWNHp!-1BLQ*}OK{Rkev1Ss=`Tgs2~_NpXJ+KuqswhnNrc%|ndt zaih;UTLp+I8y_`XOu=}ukZuz2k;+9+*d0Gou@@q&#O{0xGnhZ6K@;=z8=DySwaok} zB9%)`NQL&vQ0>q-H<!)*i8^=aA>E3<nC}yYWQ42{(plhreYzh4?_q8mFi^>%9j7F{ zWp*Rf{6zAum)aZ-%sN^Ig}#UO0YLxs5Or4sx9W>Ym)OPIu+a98Lom>n*jb=P{lGJn z=f=3J!3TSGVX);siyU{~2}IL$0AZJ_<HzD*x#qTxW@2KtB4pUJesMrKb`4R#N2AhF zQNP2Y-b<p=9U1Q1f@q9YcH87!a~J1<k#Z0MPS81Hp4=X%VnISVo}y%<vadjGrKEHQ zEfKGdC9}-_I+;}f7)GTE3F^yUhl&1am{k220K`)}<29o<q&o38c5UBaavW373wM;^ zJ~nbz<z@+(8@0~`7_c}9#!v351=UUm2m7vF!o4OFKrSA=$yW-|O>;B4`y%N^)Z{)& zqQ;Ceb*V4%!@GjYU65r@GIrN4t)x~H*poWig<whgWQ|=TAFMiCp6?vBfQ!IPxSdah zDRyDK${?q9Xlux1Q)jC}eU}bdOW`3_>+W4vI^3r7-cR??Y2JIUbKVNrsIxorU59x; zwF`m=FYwpi6~3-8hbNf>j@<01d>Irz&}~KJvj*+t4EK%7HUu&4szY^%JihU>@Wlyt z3?4tI$8_#q=X7qnKe_Rci{gAA$-@E)U}b<tAxPoRY`p&xKf_XVU|4R&lsPEAKdghJ ziy}Q%q7bs@pr875Ot6jLdKbc2a(0Qad!(1PZ0lTS{Atn*tc~y(bJHJT;@w%I2D|4T zeVAOx_rQbhN|3et?!l`aS0b$WEK!XEz(WuA8W#UGX%6W{?EvAU;}Jz8#rYSpxIZ@v zj*D+h%At?mHD=o3@!>_4w@ebyg+Y}}i)SP+9kYOn!9@&VXFqDLsoTK!yWPi(0th#X zWaRILk(-^bktfQ!_aE%Va1Kb7C4Mr({LcyU0#PnLG!U3$d>x}8E!f|?db-1mzKqed zI=wD(hk=XT40cO^jy|x@I-FtFkU13a@l`xe(sr5qb{;gy{TA@V1PVn00>%QxOG!16 z0=CKgS{bnnwf2`$c%-YGYsmm1ma};fBj$j;*EOXT%08&j&)njE=#bkh(XN1);7K`W zn+@}&B^QRrXyJ3A0bG$#jRTUuA?01UyJIX;1eiou-5mlNK{&ysn0v9fngpaHTvlxt zZo!FRvpF>(p$?XA{j^`Pk$RAXmX)uA@Ra^IY@q8clMI-RN9X`(Mu)XZmXv_Fmm>yr zdq(zPa?|67CG=C>+@ch3Jl8~-k*i~Sd%UxWbEC{Q^7|WI&k0+^0E2t8#>a@|A`-F_ zDWQW8V0Zls{zYTs5gJsiYDU>p*8~f6^Ja3{m#PH4PXHhs#z`e7-O!C)Q`{Zf{<ySP zYuwmHQZtw=a&%VM;<3!8KB!baIf}8n4yQHOE<6WSKO1v=fO5aYRKv36BZJ>^!7Ui$ zhXeeA!nHX8!@c<cP*j>7R-@OkU3@PwHv!KH<CYOa50ee0rAcq#@}z-0wv}1|UwTcH zo*z!CT~}N!QQ199SG0kl;od1NZ4Se4P!!wlVCr;b!qSML3Ra*HDgd+pWY-jpIBPdA z?bXrjUNG6!zU-a;uj}S2?3r)8T*!l>qYV0*9?Mm3f68!$8@f3W?2Nq))d9}<y`L8S z^M2n9tnpT@v=@rO`YM67KpJqipVO9-e=`mtNZSfZjY)2DSm|2|TO}9Kj6JTcVz?_Z z5|-8!0WU&H&}^*Z+vM_|+a7WsK0a?}MisVn-Rp!$niko?$_M5`*c~HDvljs5cJ?j- z5N@jyuX4YJRc3!2+jgC==H(-0K+@@QfLT!t34Fj--tvHZ?3LORG#2#zk2xT`k?G{j zNQwiQV3~JhQmeZRIW<2|*8Cfyl=ZB=!^&DHMf;%g|A11q(6I6-W&b=%xz|xjf1#Aa z)<!ApN<b;CdD<!L%Pq|*>5>prtb*6iF?rhMZwo&qad?Q|+{BhpbdyK0JKcD<lkQ?_ z_Bh+lHeiUnyFksJd`Q#`+tV&IsnuSqCudL!9k2B^`8hLu8ziAfToRFTcTEx2$k^&f z$Y-mPi|?A!9F96g+Qu`ZO`%^dA<n*wAr-=7^8z7(-*6q&DYc94@&vhF64<tY>gKt+ z>GeC9uhVS+_F@trxT<OO9aGwp*p?2;u%RKrc?eKS>*U|XL68}dC{aj&ogx?UN~eKk z_B+O`S)dzyq*uZl@vBAw|B9X#&4AO*>_sC#XP9-?!=X}eZqpv_)gs<(8?VzNlcLu- zgF5P|qN8{#xDJF=^<i)F+deOW{~5krS;9oM7KUL=mYh-oMEp*dV@1g8Y;|$s#xR=; zh&17y+1pDBu<!>T0GBYwzwADOBi8PJu4}8r#|4got^?RD?b+4sX;&+Xy1LW5DmHo2 zMbT-<&vY)7NR#i;(;Yo~dN}Rr?xLO^S!YiLTUSv}wce91hh!{Tz%Zw4d-n89+S3h1 zJw2E7lp2TCT!r8~Xec<%seLy9t`i+z-{1;_<Ty*})-lwray49N<d1@&liFsA>$I5( zUR;&%{+|XWv&iTA(>r=Hng7A(niL%Lxn4H2$mhCE$4US-OGX-KV4m<h{C>6+_|3+j zxO-M4+V)rimY#HkFCis&cuwm|`)rxxeUw8pDALiV4HUSPs}HZ)B)9B*Bs!<`Bb{Lh zH(Z<$v@&Ni8q_p0NJ#TaWJfmsiL;G_glh40K&5{Xw$*Q`UiB9t05lJ+tyL$}T}dmq z@9=(_C;F3z6w$?^2XVZo=hju{?&(eIUOXr7&n*$mar&%gg_p}zWPZho9_T^-;>PDv z&l?NnKc~5?r-}!4FP4c(#mxFRR3PeCm$M04vnc+{@ebk@$}xp$WKL9<I?pH(?$8A? zTrA+O@*uAS9cte`3i8}q`}Vs>*f+jBy2Cej`Z_oFi=|Y8_p1n%K3_*m<u*etZKzAA z=(SQ=IJDMqHQYLn0|`H7I79^3wkHvbKaQ#=x~V>kP1UUc&e`MQD(B!>PId8t9EQ<R z{mws9R3iC1lpSU^<=O4TRba<`;&yj5uD4s3_tLJPNO6NLr8G}cB0;886;U8a#I4H# zrGPZCnlsSS6LjX?_s$L$^RmS0$`gf))A?`%yLknqt87w9WV{(B+QQ0Fm`R)_R38P{ zEh~EANJ&3^T+#VW#;Ac+*%FP5CMS0JW-MRFI+xk4$&MW#He=N~D_x~Z?8CnjWkG%) z_F`Nwc2gJ%bS26Vf+O_-R9RjG`5ULLT%wO?q=FR*j1Ev3Zn@&yv^YD%$NcD>J+On_ z{%D|oc3enUysBp%aNJeY(va&Db&YS3$SisWqPKECiZUbO7Xwt~-!bs@zC-V_-gm{{ z*>5vxm*sJGB;37>=T%JGj*+2aPH_Ql-?5D#HdC0x1vn&a9;bn|kQ0G9S0yG{h1pfg zmCIFY_|YkVMV*4yoZH8zMNb@OvUz5YCkrTf@7I?Fl$K}#vw2p*c;01j0;P0=#P3uV zfNXtmA9*nx06t^9R|&4NcJGud{JT9FWl;bpaSh#a7d!Ez!Pkjr2*+bK;)U<)>!Cd_ zE-2$PDtmKTFVAi9l-l*#Cn0>iMNm?1V*&Mtr>yZL|J?`Z4VLR>cFdp+)OTrCZFZmv zE!WAlkxILv@F`{oPPbp7aU}0NDrVuewP#9j>zSFh04FK-If-We+70Sywp=DoEo%tj zmzx!OrKn0|WVkOy!bp*T8TK$3JVP7<i7ryOw*dF|3st04F~$`owue9rKEkfzcgYmX z^jh$q`*9d*GM4cOie2NpDRFZHr2t>LWsVrrRMGDj$OPtOadE?8t5<|h&2GP~z}r3U zUF}bhv+FaUfX>BE@>K~}NDj>R&zh(+sWM$NI0pBe<JUynu9j(XYXwGBHz}b06xaIP z^1n3cam0QYgzIzP=kph&&WP<VM+F_#T*3x&xP~Cj(RdFn2GXYQd$AV7Q&otOz@4T6 z8)`^#f|bO%cPSaxq3eWulUC}@z2r4kX2-NNZ%gPWm(&x+i$q-lT!g{m-XKFIwryyw zCM=S>%p<mJVM3ot#g-6aj{0_-&BB#pd@OiyMrVeUZSdaKF12^PI}_t$n8c9@PuP37 zs4z5X%2SQpd~xprX<!YVQz>?YjdU|E1|fWlWUI$SG8j`vz0E`0185az0g$pKwwL6H zgz`yzPVZGwSxC~MZ?UkV=~3b-yJ8BgRJHw;Q<yXEhln;KjvgxrTvN7hKev@!=m8$+ z#ss!+L1P&ZU;Y7*)`xN)TOd>3pU@bT+U4lba`qP-MmN*-k2xzPHlo2!BvT3RIIHaP zD(*c`T#w|iqy?%RALY(vy4cZ}xj-y98THc&&2yd$T^Bi4-FWafpZV{OPG(++ZVizl ze?r-n#nSE!yw-ZY_rX2|+v}a_l1WYDmMN`RWN!n9`Ys&&Cz6jAIo9eDVh*;d$R0** zATK@lveUi=gR(|i6~p|>7(9t^?&_cULqk+`2M>7pFjHK-YlEDb!5SavLw57jel{aT zH?R6AboHW?(qxkq8(xoiNi*cSb7X{<7ryy=A?^~6NH4_o4aS>X+l@ClU+`-netGTD zK&~wkOr-Zb%;6YjYymS1UYogEd02yuU)TI#1ni1Fnzj1|1aJ<CE#SsK_%-@W4Q)GX zcQ@3d0l6NjE^c&KEkyXFsV*iZTs5(Wu|4=3*`5aAC<qkFT-JnO3!n9|b6<ssn1v3? zD8!YQN7r)K9?xUA)J@5S`YHNc0@3sEdVty0k{<dx`%<xA)K6LONt`FNMdb=fP~Zr( zP+)ptlKEk!wVik-QVWMnXY@WN)H~=?rD5a1&g>UVq{{pu5FnKX|H1;J1Lt8dsine1 zR2lC|HMU{LN{%Gyc39qNmCN9Tza$rgT@dYvfvX*d0k*GVId50`2o2X9;SdJbPuhVK z!&=Dk!%Fcn^!~^^XYZk?PS6Uy<p!&>cDTj!CbANXqAEo)!y;pQEc-c+_afNy1wuoc zlo^-gGTCk931H7n4pGv#7T~<hR`kUl&C7qXF_JR|#Jl+hfr)BuxUa<+9BDmxnb*wr zyYxyrMXpI;pz}^ra)!6oGs5}ZMhKP?R=U@Y;>scWWIf-^>h?`xR$O9$ec%~f!*vp> zTcf_ufIYEOhJg0XNSp~^X@ub(F*wJ%Xfw`6ZrbWbITG%Y?D&je1>kylLFNj0whiri zIvt7TnLTO&f%WH}Y5Id3(1F|27e+1#HP%iTLD62g*^@k2_AaiVWIq8`lH)s9vWZ-V zO6_mGTG_2Xh#Z4V6_ka`5%|wjW68q~uQc$OFd}|d$rJ>`)zib}W#hnw8T%qQB0)xk z$^@gTBKMO9JBMvZP*=5mgg0lY3w4Bki8Pc$8qQ;Q;bJ0Ah9|vGvlkxWnD#<%fu_14 zO#Gc8m&%tVwFs!n5#>U>yOQ3Z37BjYyDd<z!aev${K8zvuR1NB9&4g1lmLS9JX&IP z`b7hON>NA<uftuzd9ObN2${}Vl%I4>)c>-m=5{J6F)G=BxEFh>T9G$(b<}^)sAj*Y z?&4@46}}bnRwx-1-RR?hMnnFhI`SS=YYjpK=qgTWGJ{(Da2YG;bU{?Zy;Xcw$HyCh zIOaqIeGV8!*`5w`Lo^{QbCMY097wH!f*|~B@fD6pzQ8o(ib%X7W|Rj#<iA?w8#L4& z<fibx_E4{ox$j@xiyKh!ta7=%YZdp*C=h%rlSrra+>+d5srPD+Emp!7?XH~ggrX{6 zi27XYV|DVHvPbw==t|l06Y_WKa@tpN+6fcJ)}*uv7ZvuCch@o;VFFI~O~jzXBy~%G zs1#)-cI%W5z4<uu>uh}#p3<$v4qT=e<hW0-@}<d56!>Dd({KQzkCP4<*=mWDxP~cv z*<-Elv(F`ISXt`bDpHS$urA6@B;O%u?OULp7t*V7;T5Sy^0sF0u-o0igGiUbX?;LG znD{4k=u&u{uyT9nnBedG6zC@m#%@<6kZ$1>KKMOtg5LfHr^CSe>)K5(|C(u2K9!xJ z{FqJ|bZ*Hzw=%ZJ3|1XOCZ(J`e#)`xw$t$F)DM(03?R1i@MZazZV4vJ!@u_9TZlRp zMA$o=9B=AsZ)%mv-Rj!V)T(?_x=@)B?LpQ{M#P<V=}>inG%s)=($#J@UArSEt)f&z zZwG!9EV4kjo$837MOO|(rq^D;HeW#615qSvy1pU=uw#4-pQLS)R|UEW2mU8*ZMWV4 zGw$St2r>yA<@9z*;fmwWdSz@N>iHItLvUV=#>M2|3(a0C=@f;#`&1V8>}@-}M&8Tg ze5wa2wsaPcfkewuSg>8?OuznV^nX$*K!Lb2YtR$7l?KkuFLOehH)GePU@1M1U^vw{ zcC~82BY`pk+IH`k)nZ_UgPbeZycE_!7AS7JadGhP_W?vOrTQix?&4RyX6#(rmOlxL zv7g+av>fw%NESaKEYTS5ZJETgV>rf9$CZ*k=1K0!DX3;q_gk%F@kvxNik+7d4yz)E zh&MkO<Ok-4a6)}Z7wzgJ%Byq})z(XLvf+#B&ZvCPqUy8PQJrcZP@RoLng=T+lRbAG zRhiuLs;b*Y(X{JAY#+td>!?e!?}TQV!H`@c*C*=l{i0HB^D<vb>9PLP-m+4JM;Gm> zHp%;azOW%-hi_pQ^oBH*_e~L(QSkS<`Tkz+@Iz}vPt%&1$*}+0bFu%KUrIV2gkk7^ za9RUd;8^PWV|@xcB?q83O`}fR%`6We)MHm(OUAYKww$kM%pR-v*Y(t1=(TZ&n4{C! zq5L3q_R`vwK|Cz*`zv~__MxsLDrjD@R>IRAyt`%4Z=BUr4Y4LwL!4WrhWNzQ5O{Xl zoN--2F5WT_IxV5#7H^)^^+(!|Vw0%N>e2t_N&o-8H5@2kr!bMP)BdLx^*{A7X<XF* zjHLfB=sy?-di1X?D{_*mw10xNIkiD6<MW>}B+UQAp8fxh{H83l*(bLa)G+7f`~SQ- z%zq}nyJ}GKNHYIa!|DAOELB9)_UM03(*GMh`~O4Q|6hyxzbN1TyGj3Z^Zoaje~<Nl ztw;Y0lK!9X+5c5(|1TBwe@(vsSCjsgxjA6=_4RKndbRrk1)UXl-hf^G?rBc_rz~8^ ztOb%qC8Ogn_h*g0pWS(nr>b23V6Wz&7^$+`5;rgDyUX{F`faVli!{%1(k8%(fbhVq zATihjGJzoVTVJ>*I|4%Pw?qmxFU2(s(fRSvTEOH|9|kJ0pZJ-T5;;=3urS(~KnnU0 zkBFJ;Hw;rIuZ`ia`vfNOi{B`qa$|nC2L6zOL?w1+pNyyGqrovgLA!$f`!Rqk9q!#5 zn9EV57C>yjoK$(hDI7RyLCBd1cN@k<x(U-Yw_<!@jy%H-9KAG5f7EqTd{nGr(s+oI zRlHX=zS6Z9Ej%5~O(FC%JQ}i-m|!VJ0>zvpAx3UZK?C!?F6i?n5Awf&cTmCH_=M*U zr9~-k2>DOfX_GeiW1)q!#Qgi{(*@kex3uyGWl$kDgD=9(30Z7P%3nY>01YId*?_xT zV&^)Pka1OS{eb!H+b1B@2v(%V&3>yE1r;_1ZR`{GOhNo(`#_h&NQFqzwc6`Y8FqDL zoMij5lR6NK6*u7cbZYStNZg$M9nJt32;CaITg?7U5n<pEb@Z5rkRL2bHcms6I9_F_ z#K6&MauP~g^QBZC7PK@JpU|_o+2-J2;}(>M9_*FSNu`JpgVS2<RJmnQ*+}Ni+5~#a zbq49-(l*R>4hGY-oa<aX4G?ZXdf4(*Cl>CnU3eoq9<(T2I{@?meSdnI)eD$St94SF zzLa`ro-f<-1n%+_j<2wAJr17MESGtuXV+QjI#uE@)hr8BfTO-fZXkdhz@uo=l~Oik zW2iAT+`=9b-b<3#5y%`)C#U-(F{1Q$;>r{%oG6HKbDJ(2=+vC)Q3;u8`6$;OSo((G zZ7&Qou+gc+A2EuE<X&Dp4d%(%U*JMF-kDu<OMyzf<P#H>>fAR_iD$M70-_E|LM2Az zC;eLDpg?n%;FvIo(6cw?myks6E}$$EpOp8)nqNE$TGKvd>_hdLxRA1PC%6kAEw_3% zb}5Y{NMxjsfYpSR9+zqNJFF1fy`JBDmPB3ndJck1(LA?E?Q4nijC|z<L7A~3bru)g z+QHg7aJX<)E%;XkR5Un&I-^%W;4cB!?@X~$K4dzCj~8h_R5S4)#UItr@i9vBAuD(| zF-gp_Rl{%+_$z}zIm5bb55g9}o_@dXNx<n=yf~>fivBkR`CzNQ$)hkuBK&ttv>68i zO<XslwN_*tm_(?;FOKkZTCH@5-X>%HLq@TQ%`kolY^n0)Fu?X_4zvQ&p$IIR)`7kX zTcZ);I;Xa{@k%7vMm+uPI+Sk!c&3`D0d2%G)wVzG!KBC0(l7mOrCsi7a~i||TnkRv zLF2WfmLW#=M^{gJe1+OH7o06q5{4Tp-Jvr^#9GreCD)2N6q#6#zuGTd-zfmp{y9n% zVu&ZZxg?{D_#D~T=MYcXQ%Jz!1&mg|7_ry)GFd+Smraw(L}@1jlJ!*b(vhth3w7yX zDdK9wfLRLeuI@_Xoc2Q_Xo_6KX-mP1qC-;^5s+IN?;fu)nIo~GmBiVhef(g)T=1`i znBWrV+<uotf#CM)p^#@L4y~(;-56=IIk?BBey>xLYVQ|UO9(<czK!%)YJbnWJ6`4P zj!*Y$VO3K+jF7SmKZ2nM=N2DiTVaqvMwtd(LY~XUS4#>}luBL-@ejUASe+ncZkx<X z){~62`M0DIm@Io(u`6;nf7^H%?zOBzC4uVe*nSazg}`U*a@XY+z|zfH_5w;(OVhy0 zX(!zlfjS#};a=<7;B}b-yX~-B2NL*Wk=C)tWK^(w_X>KR4*`i%jP~T7&L5qD0^-~- zdrJdMq(<0AbOfc`K0safB+72(uF&>bVdVjjU!)5ez~j6s1VBi~bKJfWx5n*3ko`lk zbR{r~ZT0<$tLw%0r9RJR`riKuKkxst_j3y)2z&ntU;5rFaAxh@U*y|=ZsD8aQTz6P z?4QTBusn4(bi6!)i7XImMN2D&c|7WK*z=}nGhEkaLLO0d_|g%K6oQUMbqhM;v~$j~ zxyNvqkFsN>((xNfqjGeqGGcuj6m`Yvpsclw&8*)l^!jeMqz}*nfOVV_8)jD;`c<JE zOeA<@WG2uz!t(KLUb_V1&h#VVo`>4?r>}{&?pziPuaCCvgc-K4jtQ)R)swC(wxg6< z95Waf3cJ4?_n`cMv4m@?*6kt(GU1XbI*@3;&Nz&`gB&3Dubs4y7>adPcnAhR=p@FI zwt9Jbz%6i@ZVseBl_sqcyR27z%ke!UtI?Ud2T!BV_N0k^AjM%+;P@%?eQqi*Q;zsZ zHHJ7r`u<iO>I$1y-WtS<f0553So;!GIUPkbXooz6C&(Hf*_u*0;%vb0)lq{qR6$ua zm|Y^3QuZ*dc=GK(OLaHKK<vN@Qzf1~5ada&;g{ITol}%AavPl78KnW~gQJ!PI|jZ0 z)gLHPYUX9%rzRyngxh!4XOFoIAmd?Jh$YVFr|DXBHr1V9olfF#@9CFG74p;zwMnA~ z;B?50X4t;q2O`2#<r7GK<<Z?&5{5e=>c&)7UZ^!F%qDmf*jS^9oO;3uu;hs9iI(4n zZW{M3qRM}u^hG3YLi@(h%k1l&&`COL_gfOPW0+tq3EpXgYm#ZGzE6}L0OJz)-VNHc zr0ZQ_+W(Xl4n#HeE%Efm8nw;dJ~&}Wm6-}RVb<e3B@m2FGE-_l>1RQ12W&M~-9C1_ zvj><WV|xRm5Tj#taHc*<*MemkxGt<X+qZ?8@zp2n3YhtgU-BAWMkkUz4g%%?Ehx%O z(VSV%@zp8_FtMa!TOGo>vW=b55D89PGG(jLqSL9|dJ1|n4cX4m;M1WERWe<5Q$mt> zP>=5F2$>2>;L=4X`c02=$5Xmzo!fxqw!o50tN!xj_7*L?EUwb8X1A+#cq3_ny^jLh z2XAj|lJV%Dix2X=KX$_=ft9UtBKvYUd2_<av!@PBT&XH-pOu)4u$;HIxzcn-f70yR zJOqs5DKam6VsaaK5<KOcwi!uM@(ow^*h59r*LwTeb-=k@)7R`6{_M%HLck4ed3ao* z*1M`zX=h8S@inB4U46h=AYE`kPz)80NZ%vYx;kHCu@;v+i3}y&PNyMN+95?%mAsnQ zGkyJIvQ$oswtUm6*`HyNG`f_}gLsR&ktn)fTDc5X(5+5urK}7ImqH>xzu;>#`*Je; z02tzXZ@S6&^U%0*OWUGjfTooBydc^_S`vYl&fVJ_L#>PESs(wJLj{a(ftO7=F`)AC z{HRqbiY@HC@<t9SYe5O>yl|QthUwHPCkol`$M9#U-fV!bSV%=G1iwLBE%4#F=zUPn z(-XvHc?~*3j*K$vmD$56gBa<ZKGJlke*>=#kL$3~D@DMVjAy0i(|a)wmmQccj1tWO z+ghRh)-Gefk^TN)=N`@eG!V@Ruz*=cww2a==J3C<9%Z(<%z&`qjVOqI4o+*<Men4X zg|8Ue?&OB2LHVbC;c46UXsgvx>6mEuoYGlLcNDF}Az_|l{4ewTdNPUc)+maWK3I%* zv7Uis?V^JOwA_YFG42!J#)UxzI4;>k5-^0CBkQVV&Fxas(XwZ+_iN(q9}eSfy;A}f z2O@?$k?x)rsTMf0NK(K-?6?hD$kP^|t}p8AO3E~+hfWnrt+u;Kslz@|NKWQc`Ia7e zQDIN`u8s2-_xcM8hGG%#oly(+&yz6KsN#JXczDI#wvWPK(C?66P)}zVcaQ^Q7$g=? z!wx{>xNUC!B--=f3IRDN@!!7^b`O{^ky7PIt0}Qm%TA>|V3nVFeU?-xb}PLHEc&qn zGCA|P!aIwOQmaS1Kh%fvMGMDyt_UKhw%`g7yvuL}$o+y+>DIUm!G&dwGjRoIBg80i z1(^M7EhP&@iM@~C4z2*31NI6?*t99y%CnWa)v-rS39!i~EpWBq+uj!2dx=m`-i-<k z=0=UAe}d5As)DM4rll^DKCfX~RP`pmhHHWXm%aRTU$W8a7hWZ*JSnQZD=JZZ=<rOd z;DbQZXd63>`+}4y?8ejD-KhDFLHuoAFtcvOhY{7(({`d1!Vy#uqLWwDNCZ_7Ze{#i z--?l_1uM6SHrlT-+I**WfYDZSmO@YbxErin-4ur_OJC#-)Ncu&SJ}f18*=06F4=sM zJA0OOOaS2x>~h*_;YW8W+RsOz%+pHf;Ld#54&}x-&Y2`!28Q@*eh`jDv5r;SM*?SD zwnPWjWJ&y%07kwdzu#P2IEn5!vq|sM(CoOHq$J)y${r{A4B7|Z;)^ibF|K^4MCe&; zxmAQ#gG(V(Iks)3MuuWg4jP<6oyb6m#{+rwxHRBra~7vcoL#kOS#E+)gu5F_$cB@# zz%{J;-29ma@`Z5GLik8__6mcz;c8gKzazV%ZA6OBcO^9g%aJVxa?b#f7VL^61zsU4 zE6;Bf9}1kH++)MRGjDPA6V{G?J22eggb6$ZV_?%4mBWLrN-3*L)c(=s;Uh`SsXrzZ zF4v5CEMaUf6{v9S%0PSIq!7`1KO9t@-HV=xlOQ%TlHfd74)a<SyO;N@il({P=hn|| zhG#CfCrJh5ZY6eO_;_8A{6zSgit~NPoSl6#Jhnxf3A?^S^8=#qky+MGmWBAoFhblx zDG0hBt<FeYf~D))Z6Re<_Gijigi8vGAV^BqK)5>RS3d+kgiTh&g-+6ZiG5&C{5`MP zU(hB?1+II~ZKl%LI`<b!9l&oUx04qw+P@K2EYbnLK&vg;fgYaR%vXfRInlTAl_X1I zy%LFyts~OL^V0U+Gy1mYp(QIZh(xUC>2%r8Nz;~q$u3cyZXv^=lCe>{(#||smvw#S zq(~X^fW=Ci>Iji41MN#tA%VFR{`NGDUcdo^g=QU$;G6$jMi)?)_3LoL>UjSFK6x3i z2M}>L4yFvdk-F#(0{ROdJ*F_B+%Wu$bM_2rg9Jo&0o#WkobPYIq0xdUm-D<aYOIB~ z^LuAH+wka#a3mv$wcwE^cR%Xr{7hpIUx{rLd4M#-D{X|~e?#m8Ezw4XR+J=X_eH}i zqm7!7380^WOD~@kkqK(>9?_O$*gsrX4g$`@py>?~1;fVXW<hpIu1umNyhL&4<q8go z<&)%2r494@Vl@cS#7i=nxlZ~A#`gVIoraaoD@94Ks&_Qn0`@%xR1%*8k~&2YJ|Su5 z6M;bRRUM1(fp|9f8X6$`5lhup?p*Chl5m4L)zRqOad?E)97~NwfkyCGi=f}~CPOGB zKSllVh2l)6shPW{iz-1lVZyE+3T3rdeH9ae?SJx}4Q-3IgzN&9U@ZY{Dpb!^PXG;5 z(dkDxI*waEp9iWI9@_2<&PM}<1kO3s$G#3E@FDLLByc3lVN<DDYF`g*1)}ZiLmVL2 zb^N~!-?574`<dt9PWRf5y%<ptcU^e+VgnBDHnn}l&q&(le$Gu1V6H1bLkSidA@~7^ zQeyoUc$=W1zT+aUP2GGCke2-SYuFQ%1^7@kV%N&(vKmGp;mPJ>JKcew7!)7*nb4?b zQ;dR1<F0Mo4aZ>pgnFxW(H10+$KHs5Q~8zN1A3%`&|tbk?a~wtn%y34yN4S6_;9Fy z$no$U`(58wR_TVHwR5}e9ox8oxCJFX8ZJ8${+0);n4bol(d3Iyq3{s$`FAvE607<x zild|9m}|+5MkeHm`X&f0YIBBv{?#7o=X^cDrhZpxwArFPFz|x%mct5!G=aAZfLIa5 z*^8S31>XE^<c&S3Kg=E<gD1`|(MV~32k?RfTG2>*a*U_J&DmmViW-XeHjo&Sn~H?8 z9l#<|`shN{a4IiFHo-}JcZyQ)NGn_B>H4{*%((s(2gJjo0oPFhrlb{MoDVtzK66c6 z&0*(GfaJj8h-b9lF&bg1;I9wXfj@8uK<rn}-m|+OqN!}B)V{>=tHRp(H}8s?oD(iX zg>uV%I@R-x@dMFG=Wp%P<}%{NI0x6+8~gZbuHz(J$ot}xu#%dkcHMA43D51rvGc2< zz<fGz1(xob@EubKgs{|JAyH46U9p{$vlsT(m*G@IZ$+h3`Ph%ITMVz*PK=xclD*`9 zHxfKYRte5}U&sVfNGV`C81@6sPZ$g2S!rz{Se~!o@`;kCJUE<}O^7zxBkD6g+PX37 z19II7g#T>}!#hWYNUaUy4D|=Vk!)}r9g%Ee9Sd3`J@H|UEjbXe>rJSfJ2Fsnq4~>s ztdBOt)&LR`j0jew&=V;B3zrpJ>d;+b_b(&l5Evxug-Z${t>(MV5<8Q>IdNx62F<IS zdWBMZAxZeT=v3uxg=9Wk(nUVaWq6}!Kn@|3=GtE{j@gW%!TzoeaKf#}J5oEG90Nbi zBO8@U0+%~;l4Xl95A}20UxtJ3CA2|0a!m^7gWZ&d<%&^)nDG$OmAk1iCrHA(a%`@* zYmZYQod&GR{t1fhgDT<Zg|37KjPcj@+8?F0<y_5YR2LV$seN1(E{VKqRI0o{<P2x* zg5>X$u0nz}-~N9&IWT8Nyzusn6dHE}`A$TmR)P*|+7-~YukP$>PH^H=N4aj`Ms&IG zF7unw7c7&!3=nid5IIiI*WqT`g78kJ#qi?VqcXUCgI~j41EhG?Wdsrjw?~_O1;3WL z%mmV`Dj>}=>-t#>i15yBnp<_th244-oymVyo#{q-%ATlmdV~;FSKQ-bjndvC#;V4a z6gXxveu-MC3SLnS-6&EQIK=Cyn0Rz{sF$tnFB=Hqj<l&0(4f-kM~GR{0-!0aIaGKY zyvl)+vLjwSjIBpW0HRqEco91${%Jql9LVjZh|$1)G;9{dzlr#_|1@Pc?rr~ePT6J< zMkMlH;6BC();<GCi7<U$E7361l`QpHVCNG134z;u5|jrGw){r|ga)aHxY_Tz9Ri#B z)Q?~(xg)`st8<4ShL>>M`g8K?z$K$-V2m{8*0nqR*HaT3z4Uu%iH5pj{qEh};qzNw zR<cu4=AI4gz#~+IZ6ZzrT74J%XZIzXvz?Z(#GdB9cqUK;6>UB>ko9>jsOy-AY!9x| z9N8#eLliFzMZytDKv{$>#CTjmFIuF4kJnnPN0Y_6d<aZh&_&V8s{vvc){);D=md!3 z=FYs5=atA8=JHcAwz#ef(I=BhAZ%6m?&|Q}GG4$NkZ!7;u|)Py)KiU`4lcRESj~XR zyk7+{d57JRAj*RL;Z(6YemY&LSr9wkWOBfg&fZ*Z0t944re)-8u+D>gC#f-lYq~Z8 zUpKmZvG^d*6j_`NU^#EY;fD2zJ^tDj94JdjwY`SKsihKc;=mfV`Qih$&B9D+>dZF> zNjC%_A5VRPEv&<lU9se;KHNSb;-SM3?nW^J9EH1P9ikC4^h88Ruu)%o12M!9ZnckO z0xS=a1v>i}gN5ZUJh)A~0~_`BhQj+?Ioh+WHfneU>RsmZ?c2ib%;HEW856XzRcH(p z+5i@z`6SMw3cY7FQ9;BQDGA{iHzaw=U%yO#Tr^;sj(`rbJ3r~P(Sihl1}Wjg?Wnq= z2>!ZNl3AxxP`bPofHv53Wo~f7+TPp+H;SOZ+Nbf0H~75XbK#6N>VAnak^nap;Y>s& z5-WwtC+o+m%-;Yw0rZGhq}3set40b9XDk&({SZq~vkwoa=zNSrcAyG|ry4EAXothz z<3mJ5NUrQNoaQ6?ZBM-x3*FnE+qjFVU(Vgvz-1rsKR_hRQ=@xn<W^P_^&ZaSEa$uH zUEGk*Z@yTvNF7)e{gLo|Zct-$Fj(GT9HY*ddr*DLk)aq)UweH*rmbD)Wih0?2!TNF z!O}tOk^a0EKIJ(VXhM#P)o6XL%dE@=TEk+o7{rO5$f@e@Jo{ywI<r?#lqT7cI{4<& zp!5Ko7fDtPl@%Kyz8^Y`{uHF3102-%g+-uBYzs979#ZPoS)Z}{j!*_n?5p((`<cXZ zUDW@19tA#jKcm{p?gwsA3m0&fi<e7;j&$TtL6cX0fUfSsTZ|9TUpz1wNfA{Gzg!Uq zreRboB?Z5X8rO30Z911*Hb>t@rU+`TVO7zF5{ZqJboq5TlV0ralbf46BoKpMn<Wu* zU;_x}zRl)IBAy8+Q)izG!kL8*fpiWMt_pt{w#GQs2hQC+@CIvPcB1TK<plM8T?R)E znfN@bRipc4=Pzectn@Rdx3)E}CIko)F?Vb66pmEWS{DTz{0djR<H@8Xe97mR9Yq&V zsR^`-?vh=_hQpG5iGq^BU3v&67C3@7q31B(Gq~tPy*vVO$TbxcqOQ=%eRP8G2TD&n zxsOils)L(5fcVrTL7mkC6Yw$(lKp^J*P^vA0$PSc2((_pH3`iI{pifx6^Tr8FObe* zvQiGnNZ@rMad8Ln_ay0Z_X!E4YMd7mGK0Iwp-wGf^oZ&F4Hvv~Yb#yAS45llaRHWZ ze;+RFeaFcMR$mS?i*Y_AVxYu$TnI`?122w+hCr9#2$>l{mwGcAh1$Dr&~O<+XSljG zs+k7j$xU^hkk$f9i#r8u)?S-Y;B>v+^{WK^7Zl`<NUkEwG>DsPnfq`e2JXR+Nq(}p zQ6OOHF^EzJC@v74yoRu;VU7?Zid<q_aQS(NEOAW~!@ieFSF&^`GvM#ADXqzx1ZpH( z=>YgCZXS&WJR)BKU9GiqG+<l(+fSU1F5My)QhraPISF*Lxg67^0dN+NJdPrl%6uaJ z|K?;V#agqJPq36!6=BFt2>LCS5%rcDE?UN0dn_Ys*p;qfPzuCdzJ`yohK}K2<9tbK zjG*}{BWV(P6CUYL*x2@Nk8sci0e<M5zYnilz*J<HZ6ba7N5_FDxjm>#;Zh$R$NkUx z0bmR2I4SRJD6IwCvixA6d00|<3#BStad4)~rjjGKI}cCXlD&60$YXV9ifr4#K_#|W zQDd%RQ$t##1TkF8`Qy+k;d*$nN@zhddFxOt(}!d?6JSGbc9uyep%hWWglOBT{Ca|k z&SPW5Jk{8pEWe(pU!?W!Eejbl^2j9q&Q)u+nt$n}qQmjm+IGGX#y)Q?xj#U1gi;7% z8*xot462i^Up87$)A@%rNp(^;hS(~<&^y%*gnh5uGa?lWvYRJNlU#NK`zz)+wx>@< zFDe%$F!fEeh&<KeEG=ZzZd1g$%luKaGTI7evb*5F?C>DBLFJXxATW0~(k!NL>q3cA zZVw$Hg`+&V?QX2O<@PZ2N70#xsr*hD&L|=s?o<ttDWL;lZyq@!)8B#28^75b-+h^k zVJO@(*~Z$2XgK37=UPDcQ22Qz_{ML6LCD~g8=|#pRv0IZ-3^rtqcd!I)#4vVMb+FT zEiRJPp&|X%7h1s?N+BJ*jK1qynwwdyjJ2OaHAj<*$Ok+>q**mqAv@omFpdLYW&JLp z5d1&jK+fgKvYCb7(qFnU4cCae{+cS?E>4P0<ZnY%r+|3fT1X)MC?0nX+>Gc(>bf1Q zc9m+jpaqpCuaAUA)IMO1NcZ1_K>1~WW^nOd6GnXp(waI}WPd}D)pfjQi*2O%$M6BL z1eZ`W-i;=#3|a-=!4cPw;b_}+Bi1@ExQugNV2b8+m#UzeC3*wpxiw*z+T!eY<@CYv zvNfE)E+=DR*;vq96a^Yi-b05dzqQR~^mX<j$d5M8!PPH0TfpM9BKImWA0N<0$%LqG zqFBy4jUTj$HYYjL*yU+Cvdinp9VBPt{2L-HM4`VP>p&t#?YW3#^MSl;WSr55plxP% za{FJ(erdd4YP=feR1ELizZvDGN89?pBmCc?{_n^)+3D$`qAQ@j$@uvi%nk&!+hV9Q zYtq2z*p#jb_~0Ufv@xO!;S41p^dW3<TC@#50p;PAoup)FkCM>uaPN26n^ZqDZ6Jc{ zAI!#blc6ZvV4){)=#|C{fHiu-OfkMMc-ztSGYK^TWa_MQ6GA&;4yVu$DJy!@mUL(X zhDO`Q+pg~u89w%R5=w`jiQnxmyP_INVkjc1i(ocvm#{U`6|e;TS$V19*f<>S!?pn% zK!Vt7;XG}r?zjklgNn9iIo^6WhvW0T?$4Bm10N3D@p@(2NPtc>B)%-U_5>C$-$;9l ze&Otco0kdtmg@NT7pImT5+FEhGj+FPbEZvN$;+o`ccaQ`S;O##)USpNqI_$8rYo+S z7%vhpR;qgnI`ucxJSo#Y&HtZH`#Jy^+5Im9n%u8g3%ss)ws$A%$}8aTc`OMY-z@Os z7UVh=ayzoLUv|goES9Z0I@i9kJM=ycWroeQM?hHAyOrxxIP9)#u9-ziVzm@*J<=Cd zlEFH3Jg+jE61&LnVdSFo<Yc|6Ey64AB>t}9GDe?*z369y-c}xfHJ0^Dmakb(Nz@Sn zSlByLB%a^}rgpAr;cp1;)+Eo^zK1VjnF7<h>@)az1qs_1>|1D5AKal;iR`&w6NKEE z4CY$jOsYQdYZ!?pal0%4wAF4uv>X3GmFN5UBE8G~1|@dq5p07kYk<1}y`@v24Na4H z1RS~G-U<J4h_si{qUp064?}$qV8pGlC)B6er$e((P4ERs@eg{lUXEZ+pv_P}Y3c!* zGVc0d<yLU7Vt~9v@N-|@OMjDG6L9CILg+&MiBqs*%iVXwUMFyC1Dh?#>>Dfv!G|wu z&Lww!-0(x*h07F{h()1y2x?>xp^TOxb@8Y+&#hW&Pw&<uUDq)8486_kQj-l{PQ_AD zsO|Ixdf8EGVncgoH}Rqweuwbr1;U=LU-Uj8+Sm8&Toju&KG>N}Xb@?)M|aZ*!LsUN zf~%S{cBl7|<7MdMu2F@w^cg!r6QP*_Oyp#lFlVf56`%&+co}XV)z-pj$at`uu6}L$ zuZwU?vItM?mc*b_;Htt4b%U&qjwZLxC2)`N|GotGBunsMvIO_C1aFh6CL4e3(z0Sg zY|;1GXjTKXuydAs_mo@cs_$!UCGLecFYdgW<@r*|ita#?uvRzxP^t5ZVT7Rr(J6>5 z9o6PbbN6nrrvG_u#I@2XKy&vfxpX(!?cH{lcQB=ojPfe8wNmYhes1UqDbxf^&fJCE zanEjxS|<w?L#u^9J25_U)q`Rn#Ps!1(29`f1V?QZB(hhwPL||&aI2ma-h!i({uK?L zpg2cZ9#7UJp4qi-duqYt*e!Ne?V@}`VN5b`e67pVT>iuO56MQ?*l@HDMGv6G4=1xh z9Gsm~bZ-hA)>^sa+}+`kE#+v2bjXE(NG=2I@n7JPXiK+jhds3qrBFc^eYzH~&bnok zgF;JxUS=VG94;f44#6QdNphGRqGt%K86;k@Y<3iJTZ7@I$g=28F6JNY8<qXuFJ7F; z9F$xx@W*xP{iKkGBuN|S?Uj1oKs^4DXp-nL;o*BG@wE=4-AANXWDiVICrK*iChze6 zGI;&Sn6=OkHoIosj3Hx_CV1~+p|1w#MeE|-*+ia|KUKKp{wI3{dEu@}VL7_xa|UIU zHn&ibSv^Qi+GFf$5JNNoOc5L?;-+_Wr+0*@p<2g-$@)qzeX>`JERVJ%>7iRT==JxY z;c@Do?A4WkfY|Foitvzh@}Hf~G<a8$O@9_zKr-v18#^T77su3xHqH)B0`g?<!%V-c z77O5Fi}vA>s4>ykf_$*QbAfoA)Nv`6d*?7qYGdM0Kg|46`C5p%NUZoUdw21Bw06BF zGU7po;)E9RJ~Y^w$(~4Z0=$!@`h@jl{I!jPe8DCTQew*nYs*(wcL9Ur@u|v2lGifC z7$Z}x*Zt>BVY7>|eVMf>g-s^@PUwxN8k}Ssqivg`<mT>eIlIi5<;{%<m9#WmnX@p; zy&#FV$7MNt`IbNH-8s4p@N}1Y0$Pq+BdIWNg`+53CGX)L^21GJte{el#MyFrPP?!{ zU7M%zhGD!318@jUb6CCesa~yZA%8i^#e_}p>MO&a2Y>oUSqe0SAsA^zVN~>VZUT+T z^<q~rLLd8!Ni7H0<k%-KvB2My1TaI6(+{31{y?zp?{sWR?HTF^h+Xnjuk@bTu!iLe zgWSKLR)l#@b3hXoL`>moTF}(@wNMvH+5#cM(fTSlwL3ASG{3iJ*Y`b@gjYR~@A{ul zDVIeW-3D|EqWw-54Klft<=sW=PM6)Ay0B=v(+4Iz6OC5t8PMyoq`p-Aa0%}<=>HrP z1YQLx2AXr04_dx-tkfrAxH<dXP3k`n#vccO`MHl(&i#>nCVUwNFE<Hobc8AgsG3;; zqSM*bK?v(8oq&*D-xH#GsS#350e1xr1PPbg8$Ut4W|s_Y6^N@9VovO}pQK&L`Sy~b z4zq9nB(+Yys7|_~5q3UrIMj+Kp^vbX6kLG_hp>xlE-$(1F-RZbro0H195|?rs6KW4 zGi@!gd)>P1ZP(K<3M)Y(^LqcrDXUo~6yu7EY({R<t;i)b{u~kJZKz97swl3!dou)U z3>EFg(MGpSbHq%4t_{ET3%_<$QJg)DxC(z_LjITZz3FeHTxOs(Rc0h+is-3~)YHNt zBb^oxSbT8w90!|?^ofK<QqrvAZqSsZ$mdCg!#k^~^&HKNP+Q%gantfII@caO-KR6K z)tc-Ji>5$N6vZsh9WwIZ*#<NrG+|o7`CkLiSgY^k8iltZ=Qx4=_$Op0KqS<7bA(bO z(`kWqzT^wU1Bzgj#mVTkd1wP!iQFy!X^N!w!r{|JEg|ymt<VOu+L%V{k%{Y|oy<KY zooBKHY&0|coE37?c@{+)?q4Dsg&@e=2AdYnOM)g+JpY9b2%mnMbkdD{uD=t|F<Sf3 zaf5x8-<e_(@|Bv-*obDXchhV<VMHs)hfCDjPfw(y4%92+d&_L$wE@T3pI7!m=b01* zyiXDL%%POg1wZw65Y0iawLT5bGta*k&<IR(K2yTm%E?w?pCwuyjvR-7W;S>Pl(yC5 zgk52?0!Y={zBDPv*JJfJ(YOTBWJIhO_);6v!HFH$q9<;R<53P#Lz?hClaz=yb+CwV z<|tM(yG<2spQE-l+`a#6+r!oNkJUErTs%SLZ8$m0Y)vmco;#)4sXw}N_W+;^+!q6v zJBI86QcwqM@d{#s(8aFUOsm=eTb>KQ74gpHfANznIr?S$_?l$N&so*0$s+-Blk_HI zf4@cx>e^IstbpRVXx(Qg?reF)uehNE@xOB2x)J|qMu5*iG48id|1-Kz)9nk!ZhhW? zyTShAyjX(nFL>6eQ_kM*?1t{=i$!Cwhr9EnFaUa3{SjqhAmw^ql`m4-8?BJS=n+&- zmyCgkrrT-=rGk;yw=rUXavGzZ5Gd(MQ$_{spLy;N{B=TAy9s!f{oKlfc;g&U8}&he z!iY@ixxFERdV~mhiO26t5pTC{C!{7Gdw({t)HZKK2WLm>9sZbH?#076N)V;2Uwv+& zE2Nb0R<I!dj|wifWRPUSMDHEWi5i4x)Y_h_Y4O`0;kPfKT?FmgPf6k3LEYioAzg9Y zL%`a$F+fskzeZsYkP{zDoqr~M9YzxzoO=5oJ#dm*LxJlq{Uqr~<8O5xBnOZhY|m<I zb<7t5I%!Eb_>{==#Ot)CbqXa-I`nuZ(NuEka|x8r(V-7Vy|$B~9@FGQ#jiHZ@ob0g zM;u)^bgNNfR96B|IuX3lP`o7EuS|(wtevxaXxl421g26g*5EG6T*u6EUq``T9KCuH zkCE!KO*7{P`F#IAIM*(7MLG(r?&<9lNkjSV6$@dPq7l@<wd=(4=|oCo6*zB_6r(Ek z2z#m6WOT4+Pk~%O$zkiYD3M(nM60Zd@+EkHJ`L2^M7Sk{M<LU5($2=kN|+9D{YV-$ zJ1=U%J37v->FZT}K&5u`<lw2bHxOC`N@2U(Kw_0NVQV8cWu*kMF-)9D>0!sfPueUd zC(B5sEF&H>?|<buP<~0&kNavkp6x4<<U2W*rS=?A?+qML@p^NBK0lg(A6qXvp<_sj z@?`C7)~OH_MNIb;h;yxhblw9A<K&{(hBweDz4MzQ9#mqny|-z)!wGZO#};yyVGo@4 zzMDs0T)#CZMP45iBd>CsE#$?{of0sIOkT-}x3(#(Gr84iWC<yo15;SQ^7bNdD6M6# z4R;K~GFV|h^n>_~$Pf4ds)K(Yn*$ta6exZQghPbH-p9<~Vo|(YEE8hq0+glS!*8Ai zAGj=D7G%W5VXis|fM2OS{%kL4s&aN~m~O(jJ;rQN=a9ah6i_`ttF}wP`R+b~zXIdM zAeP|GtU=)WDZ$M1kV!9%`5Bin>0?vkN3KpSC)RS6k;Zmc9KEn4kP|XX&*gR-qywzJ zd7E$1sxWMq)XMEDM(2Zmsd$gr=o?n{>P)ETomV>b#ESNkT#D@ktYB8gErq%p88u&^ zq_-)jm^(vah<fTJwwT1!1pf!@a{HB2+-r>$T+TZYSi*zAMD)amETA_pU1&61#G);7 zVOl|vGaUO@k{Onmz*@O&k&Z_SgGwY5yxS_b=9hcL7t1p<{ZJ6@iqADVB&Xi`OwQq$ zfu?#3TH!1S5<D0;7?#+M$2<{Q4^36%_i^AKm9blMC{G>ZK9#Derm_dK*K_!^$J~sO zYOhEp)ap2i77~S4P)%P<WK}#&(rW^MCr(Rm>C2podGB=8)({mT@bj;61fH>XVQGXN zl5Ln%U}zk5+k5ac{>8j&@>`IWk%pV<!tkorjGas*h3istmnVCFcFH+@CeBIy<c5d+ zo)tRM$6Rxkc5+ss6P4A~hdrJdy1@&SZhFYlpF@lSr+~FPa0)bfnM;So{8V>Y`o#at zT;&sNU{Xy{+(r2#Tg<<|9+;`=uG(X#riyQI!P$A0X(N#6?Qv%}SQV$pcNF;W=Irp~ z!ox3_uv{WF1LWb3aCZ|q87Kh9=>{jXD1m<(pE6afc5Wrw7#8u1y~s=`fFwMaeP||Z zGO|y=uAqa`Hg#;%e9;|0Hs=yUdfIJ7^tMigviadmpFDE7h0?Ai8)-M0Q1CZ%3))W5 zPHQvTfQ-$=rf#ogrLA?KnH$bNc@cE>;~!83&w`o@^tb5nw-+D&kCMZm<+gKgWDbWv z;afi79VegOp(D-F2(499G)#YV)W`Z!ujZ(i&D2qEjH<Vb%Ju?}gp1Sr`MGe%;1Gpg zW_Tl#yo+nKhxrv-85~g58l@8;L8mwSg5r`V%^mu>2~l5(7&(L(-Wa#;hQHj^;~9$a z>z5a3Uy?)M@=>Fv+Vu}Us`^7fhyJvLU(WQPtq!|pSf6Ak&mb|eouEmdB|79PTErW` zrT;PfLfJMRIT-APavRX#9aMzdeDPRA8X}2KhJlsaZ-j2Eh7Ag7hYt-&vBr^NI5&)b zHp#&@{V3|aca+&7>dp1RyU{I@BP=nZIewW~_7#dV*ALRhO(msbCg)zwVIxgCw`<7j zz8cdwE~oC>>tyWt7sxYS3SWD@D)z?Bm*NWh;|l;crvkui=QWyy8+56O5NHJ+(3&^e zD4%g3Ww>?v0_1(bcR|Y=%PMoAgYixJG>Ea}F`za3S&p<>;*qz_$AGFssrm+~1_S^4 zD#v&PQA~vipp1Ub)IAQ}2j9$_|EIx+FxJB0%k3kEpp<Vl@Fd>q8COr~@E8`h_n+zb zNOHucNjnw5AY9IXkJ5l9WpEiFKFw7E-o#Wjp~H}|GnfXG$&gAb%1($fdw4TB^sn$k z*+WqbJs)Scs>^5lr&Pj5B>RZ#(2AteueDh&Z2jM$(6QeTg)#%XM)NgkhDo3y^ye3K zL%)9~nL>QeCyvJBpmE9A^%7C|aPgEZN+dk$$chorDy4GIqOjAM*!OGDN5*k~!0Z&) zO8JQ+C`UXm$5L73D#))R^22R9h<QV!nw@>R6$q^&85BB#b=72=;^gjRM?OjZ=7LkC z6nGgUq<8!Ky^Ru_#&l_)RI|d>CBJmcUGfKSu>`uH!YN7JY5GA*ndAfA&sQ=&{5-x} z6}{lRgnIfHtl&R5mZ6a8%=42|aY9rDW#Axc9@4D_P&!j;Gk%W?E_ag7jmx-D^Xmy; zDKBw~W3aZNbaZj)0#)Qn8Lv;CQ~yho{ufu-@Vi6s%R+i*+)c>eZGv+rsJ7A;XtyQu zKIqY7lpLsnZrUTZX{BXs>1oZj#M<q?(^~BT0|VNhd-)!}G`U?$6}B0h)<tyZxr+EZ z$8koghc30gSQl$;f?P2Nw4=lVf{qj5IqCs}eC+k50|<ya+~0$-N!Ox?eF3?@mAsqb zP$ms*Z(@YwpYrZ}U+{7~HfVSafThV+oO4c8Gmp218SB5#R}B{UZwC4T=FOf{zIuwL z9HN*&%!9qFQfp|(5rxiwBO`7|UBHmjAo_G#7X$&j+qCY^PfNXXZ%^OmXka_4iUv>U zTid0)D0{&%${9?mk66Y`d?~?DHokd{tjab-0w@GX_iOB{mlD9ok6-R9$CV>+;{F&0 zLMPZ36Xx0CE0YyQH`74;+qYRP_}T`XjsTRje~<w^|M5D%kQ^rzuG~R4D`h<D2|Ss& zFEC4nsd!xI@;iz4er8aZ;2j=x8yxUaK)xfKX9B|UH6c}o2o-7()vL4v#P&>(+KZ}8 z@cFB!;9}67*{QVagub?4993SeI%H-B|7bm2%=$mHy$6_8)z$w$_pUjIJC%Vc6j4D0 zOLRa@)X0D>=G6gPVi`aa-vq~K)L4e1K}Kh=#xfw-9YnE%-6SG*lK{S!w835xjmE@4 zjJ_J<|MOk@oI7`5Fy{BXe;=89?<u>iz4q#B?O>E2??!pWcM!O;JZ^D)z!T}dNpm0J z13p+mHQO~%>_K#pNq)h&+89l-ot02K&S>y;&c-hjhUeRvvd#}A=dmRFc>xYk;aw(I z>!|ScfQH%QqG(r*3F!6$9QvuY-vLeaZFgWyl2nDO2=Vs1B*{SQ2XAhtpsx}Wg5Vn- z#zz)qQ58z%642nE<Ziwj`{aZ#x4!>1v<2|yuu$k0<VSExBEU*n-@QJ3tz9EqRo;1# zTHjyiNtl*lW1{C{g?5gNZ=R?{tG10<<Jap{Msm&zr7;lQeF`o*Dc|N8erN0#jHjP1 z!~7!<U2$7$XOsMu<@S!==?4KkOokU`?cM*4976FSDcSfv<K@lqT35X~-E&M@M$g+4 zLsn-x6506GMTuT~`%A7DPnTXyMFv9a3Pj_V76Fh{FTUj^n&hNWX>fmB)Y_078g&Dg zS9NQ|+zA>n4ZB869V((C>T``ULfSNiK57L+00^WdINeJR<XWeXIJ+e1v}405r7pS> zoC>uM6F<GVP|wUP;#ejsI{L8wmCovCUpA}H3TJg*!K^;&o>e=SQS?(ipF3ezH0-l- zGjV&gqek@>Lr1x1TDiQQPfD1`zhvWT>G`>B`L%(be_)s}<aIqQ{_-!?;w4$Xo7dv6 z{=d}XyLxKznbTvtA?re3?(Y)Vvs8M_oT+Mw`a3Sli1m-9lsrr&OOSK+k~p_S%u@da z2k!db=S4u-nRuqBxVNDb0@`m_P`;|$`OKHy9#m^r-Q@e2&4Y;d)(eS<cP%nFgH5;f zn@F(yv_n}>yYD!@hvBa0Z(d#-{LNZuiFPFW^e&Jra84snMYz9UJ%NSFD0-dy!kxU& z14~f2+>D%Lr{k##a$-OK)WLX)U@zxWZdN3Z9A7I&2YHMH#VQ=uG!SI3ApWSBrYN+8 zteEu8Z2Xx2&i#W+bRfk9ic?~x9*RYDuS5@IsFK@wV6^klGCbMxrCVv6=ZbH-f3(*T z(M}2l9Q5^Q@FCGoheadyh&G)V?R17lsO9#QO6}~uXl{L(OxAG~Owh^G>Mk!-tS?7u zvbvr6_ER}>`~oQ0Kn$Ov!ggJ2n|c(x2PoCN(|5P1Wcw&4#p<w#ZCEjyx!7YxJ~;v` zO6|WTVaRYQs;TlIB19#*M^wAWPG0I^)-F)Yb7;Y&Ib%j+DVd{GEqPV=!8A&4=Vy?4 z0+><@^4S6J=%6W3`%k3o8GWA@aF28g=K>#x>-4+khE|2|%fnG>XTMye3T|ef-O$>Q zH*(Kj53N~0fdD*~Du!`%ZD_65E-2`qC(_<@UvnI)bVsM5c(Mz<`GoRj2T4o^!%|27 ztA5NvdXVFIdIBJwvW_4ZH#SLgMh@5wv7;@xuIJ`EmskKx=aq7MFX{W-<G!3jugpW_ z=d|M-`YA4HoX;2d#~({N5egIQ?VXg`gGnd%CY@}IBd^y<a9iKaoSfsnej`pK_Zh({ zuU}QPIAJQkN}0;zfvG4vMFrp#g&wiBQfm_HQWwS3I-L_eyvW@+Ia?-%F{C5fLHlq{ zFh4$)XFy=`LvR{@<%vbD9SYq|u2rL>1oWN+Z+V#oT<tuj`t7LyTjDO-QHnqV2dh7f z%0@^14&$0^Gpv<_0s_u#jmPnBU=HR;F!4Q(2A$U6mQh<!l3B1oTZ~Lzkx6@fnrt2$ zi(&LabR9(C<3=m76A(G9ny{4`dj|mY?!_UflS4U60PdP@8{K0IrC~E`(rRBt65)*V z5p3)Lr)4^=qlbh0@mEs^cOi2ruqE8g&iQK0C9)U33TJUtyomf3aD*cV!>(YwaF!2W zOgIY`#BR=#v6}^2Ab62Zo<?DjQ8iERgO6J=v+{96<#3;c`|i;O0{oIYTU0%){}F0K zS+i+0q6m8#zU?ZdvQzS>I<r^-8o2oh$mC2k*KfrEYT_S+3Zi(le$E`4JYwCRy56l( zcvoI2N~?%+jU;&Oaz0op^)U=q^Ce|OlQhZuXjtLCOjYN<s*ZSNVn_}XOZlZ{B>qR! z0kzBJFBAp4BTKFIklQ1R5q?@8BcZMQb{d=*@G0bm_>Pb44QOJNJD$6cWf21&Mk7oC zl${^vmg^W=0U?(g#EmY0OcI%{W#d=EYq_ZfDNu}T6qeICyB(=<nh?dKI1cx0w_qp@ z)Xu}P$>fCnN@-;pyJ=tRSenl~NY^#}7MX*stu#a#tPz_cmWwi`$7)-qu>o}f2-E^# z?!WfZGc|5uycOD!SQw=MWbF?x75VW5wiwYVm(Yk+!ZHdTOP#Llh?q#fvuHgHte)z0 zU_iWE_cQ9;?l%<-(IONEB&-RQZ-9JtcR)fXwv6{rQ$WIeQp~}v&nUc(loV?3LY@L7 zJtUzom}Bio@H^P&$O!tbsD$);qno`ID#bfe1a1Ig#|A{Lu{X#|@^-%@905Rhq=9@1 z|1KI~>0-gLXY7GEEQ_*EP!o<voT0)nf8zcpg*k@FTn;JD*gHbDKzMj9XV<)3wA5+z z>Kj~b@+-kVz?G&Z_f}Df6Rec^qBg3e7CZ}`14GDc#MWItg$tYoP0yTk!*?%f93l_C z0I5RnR??9S?&4E{Sc$DI*RvwzKl6yl4G4Mg>$&@Zy|s~m0;Ps~h(Rv_1%E0}JHNsQ zp?$ycD26VuaZe$Sl~H`0$@CIB^Vxp|BGyaj%te%s5%BRdx8@YE@;^ll6d<y_JFbZa z?9NPYgVdz~20Z6Flr`kmCPO<QY#E{^of^02Wt2o9a_WGbauchJw9?w;LR~ovJ%=%4 zqE_do@J~Mb=0>Q{3UirzLn{QdN6_Jw^7SaN-HX^8w(x4(&#|<|)}`p`N<(T%R5%4T zq7wU=?}Cqf7yOJ}0M@Nx;}Eywo8)J4V+e0sO*7q=I6t=Pj)T+1a4#A%seQVOWV{fe zfG>(6D7*@K{(j1R<`;4w7<-UsB3ncTliX}funQ9Hb1sZmc;M948{yO*N$^`|?mmAB z%>C>sCSmbfA9LTO(H@OS@S42~*v0ZMPtx}QvNi<$zRQLP`AQO0pq~VWs8}$!;EWpz zqjL&k6<RQ2`6_owS_)Q~<QVUtV-Hi(U}Bl8%`6D5pTkD7I<m?9y&DRl^<oOGn*y|C zh69K%04%J8Y_ENJwL6LdQ}x^<Gol#`^$v9h9>h)dCgX1jaX0hXkY?|fH|2)HF}78N zg-)Q>MlP{m&Ri{mxlXcT0l^G`H$oJdi2psJ_(I@-&;q1(9#FE`D^=f5S%mf1gGvo% ze?Z3SWk5P00d-iQ>vXYQR?Ui@utT#bCcH9k@oE~&gJgeivdvIy1T|ZUI~53%LWsl+ zdIycV%!4DqlaHqLGA@YfpGq7BCQ1>gwSVSUwXlgZMV{HZUvB}YWN5nQy2MV^^_ttM zIH)LomBu)RG9NZ@=XFl485_|Xe^43sR0_ZCy4I$|O!X|+r96|Sp9<rla2Hnm#L>^w zl0?}quOYLGT$>G3M&VMJRg*;AttH~Jq6-$_y+l%`R4yPrq9Z&)We>9oJ#vHSj?f&+ z?WpNJtDeq-u60Iu0LV|LocSp{G}p!WT?rSGy@Ql`9Ge#J?QFV?BM)+_SIYU-!YqMS z?BL;3M2t3I2W2+*b>>fske`A;CD~MjFAO9T8EohZ2R7Nw#DIm9VZmK$<j_m?IZ@f; zys2Vw+PDl&vRih1w5vYeQt?d<)YEYkARXDzu4vb5l?S!!;mKWl>XdNu`iAjb&=9+q zZq-IHMr_O&{|#_#a|bWWU)2;ZN`pl{S&#&aocDT>2MQ*^A|J`K<F-j&;2!SnlHDC= zxRV+u&*%C|T_kv#=UH90-RrEb;zT}SYPE@3E6z<t@Z5+}@xsEds#Lhe>Z>P8+>AQo zyJ4M^&LnX5f|nD$;vcTeu)l)O^=7E4QVK$3=VXEXPsa!iT+UUg47-AKcTu1|lQDT@ z+0C+X5UbFK6?CnxqFKs>@CNZ{fmc^_rb)7|5GRX0JcuISOB9!koSKGJiVxMy@PH6+ zp;TAwmIbXjNvVF_o`1avv!_2w#FIbp@yRr+Z;q{gDWuT(HT?+#@H+~sWDq&hR@WD1 z$fOgYK9%;NT8f4I926oRN}I+$JGptI%&gizb7bT2a-hLZ>L&xvRDb@a;2-oMkbNK+ zSp2!K$@^hV<Tn;~3+cK%C<9H%*A+y^F?X=*64pis_c4?w(OP>*6X4t(EHw8L8&X~Z zdCBR=Ysd6r8_}BEd|Hi4C(&++{Rw1Hei1$BGUGr7V2H3<zYuo?YW;CCY>~Q@HoIvF zM#p*$4CL1(T$t*{C&$Zk9r1WcCa6r@+->anbJ7Vcf#;Su_{yw9!_C+Lp4&l?KAs;G z?WwSHkCA8Le+N3zb|PFy{N(&->s@$Thh<gRnU2X?)-S+eQBBacWCGLeR7RNM7#6E9 zor0vhAW85vLmJ5e5nUFpXXE4NV8#e?o}s)r)g&KE3LB+4g^azC&2?J&$X-8LYx)sS zCx#D4Ij(_nPBjJo)7mzIYKmK2RLNj>C343}(R-cFzNjqx1|evY1=A3;cRHPXiM4BY zGqKCxkZmJqRqKaHth(;2QlQA*VVQ*{Ay3PX{#Id;!Jw@~x`NoU>)?rw>YuvNAR#~P zuO#H>bIb$`?3h^kL&h#gh?M!2(w8#$gzZ0B;ZL#76DL0~#N-p06(~R&lK-9Lg5Q=O zC-y&tcI&&F3WP@fBg7Yk1wJ1Ta_mDlpcqEZ&Uquz#XbeL@?ZL;0B$ZVPIR$0pqc1m zhXn`bno!EeCGydta_+v|+}BkLGYtH=uy_0jT9zK#kT9WB1;P}tL>T-oYPqPW&7reW ztb(>HNDBVgWwg&x_m$0r(}vXicLV5sQ>13oQky4%9aOvU<c%c>yS}iRj`H>+9zU{6 z5y-v`Y&Z>IM?+2{#PRx8CHvZi-t0HopNm89e@l7~`&dFTPya0Ge2QmS!aV#;*iqe0 zhoJ31?Ygd$?$nSfPmU=MAV1+b@IWv80U-yn-zO>+oF%YUtNS%pn<^ao>rpce(boDd zKj?sv(R_TfXM;dp5{@)4PzA3e{h;;@jqUH2qVAxRdA{G#n9<7oV8}Y{S{u@2Q^;Y= z8mmpgmlFE{Q)0_)p22KnuMnfr3sLA^^hAm}D_!Zpg4D7itS;}HX&MSoCZmN?8qJ!4 zv!oWNJ)@MUWPdqn=|*UV2uxvkt*3lm+&ANicQ%a@fgsdLt9`bG$ys;(GD*&&!d*cA z>r-0us%Q;kOv7pygdN1vFy+_S7fzZMcIE>cb*+c&BOc*#6EL=oP#zImWQdLAihkAL zEcQxDgYGG$K~JSL=>C)jNp>r>l|oH-E!l!*ty+Q`JyJwp8KhG;p{wE-sT*mo8}zCP zR+3vQlw)%2bGIBZ82$OB!%Xxc(~W=9Me@7b9D8trW2#6{P3T|n``OgRVMCmaYpR?5 zL)#Hlq>~6?m8`t`t{?>U0<d$~Sdj(AF%sdTq)J-g*qI&_0k5df{Iz6L&TZ~RSYWnk zqM@D(16fEr5JTiBE~)>wl_TC1l;b5mItdzFsXd!?vLNYXV~&*dI)Suc;|Lws+AaB} z1^=|^Kd5N}LRG&f*AUQoAl!~OaZ%)m6y@&8I47;|a(!#zTd8E)X{t#fo0`S@CKQ}- zF#@K%{)`-%3Z4>8(HR@waP2^L|Dmj%mmol6-3;S7n?9pPw}uc~Q`rC8AZgh7U$*@< zmVfjOtm2}RBt~pRFtGQq?ra0Hu*Z&}_@BOM+#kX9Apkd?6l^5DDMP%Wmz8*18t1mq zVc1AB!WV!u2{#l_DBSvwKA3F%-(uxj|K@YaO=aaIuZe_^&iP^b+O7p}A(!c1)w0lJ z!CT3l(Hp&UP;w^}4E54)$vY<{cU1m}XpW5B0?0j??2md-nF6=X<DFk!zWEOl6CZ=H zg-wM3#aMclz$vvGwJ`yI3r5J`h6##}HmJL3Gyzu9;@w>XcJDs*!<@O3RSe$?>P{y9 zIIuKc5E7s;4cEtb{}V0|JmF1E)L%(J1kfo0Q;nAJNgp0&Pk^C*DI(B6K?7U{vHci} zDWl};u|9w*d^@Ph_0e#@I6nWWAbRec*cpy=0sY2nq;zDDbhc9Tv@=Psc4qzCH&BPG zNb%tvX34u%-xlI+;ymXotsV>pcFJJ?ZA3@(pQM$p&ad8my{_K!|I5{LQH04WbBEQF zT{~Spzw~cckHVu`u4|IjV?XF8Er!)Qeq*aQ(pPJIlzx86>Rq$p>a7c_cl`RRH<;D) zbJTOA+(3=70MsT4R13^*9GJ)9O!j#9w~3C1paxZl7bBXRKwaSsypx6#ya(7ttjnbh z@Y0zO+b5M_5~5r)whX}z8vEp|mIghyEW_jaSugTw_c$-Ai8g(cUtST2kW#KImH!?c zUhaKg)$5ACsTH^QUn<I)u{yGicG7ede~xD&Ph$#|r~*-D)wN$8O>;YZbuH@6REu(3 zLaIe!Wnv~d`y6W&V@vs9n-tCAmqx>c9f5enfWgHJTm3_3qZ`OI3HIc}k#Ll-sjnE4 z$Ts{)BdvpIqd07Wxbtz?eta~)Q*mV?o4Q&nMk_EVQd8-{+Bi~)D-%UL^jlegEXMQK zwl0@etxA4qe^i8HlI~1#5hkh(LQG{|h$%~jn52-wTLBh{S~EToVy+DK6?^`NUoOO4 z#dBdGYiP%Xn5(%Y{<x|@h*{gClQbISf~1qxNhcc<VtRHGOl)^1?_#>t4)`G7L7^yf zi5>zb{glxL@Iq;-(qU0%`>3=%a#tsASfWz3DO~O^EE-j6&#$I|$UZxP%<+t!+rOhp zE>ZiZ!YCwPoW;jiPRGmGKl`D8ARNy=u|wKKVj)Y^6RQ99_wq@eq@mUCg%cNSlEq(n zll+I#c~7O=<k<jJNwxS^(rxm)p4()JVC>dNTc%CXtDygAvKbT)pUU}O+Es>@35jNm zPAS7fK5mc0oAr~GQ))zF*~A>^=5Sqho}9`7Q^QkSu66CTJqcoK_f$1?tDrWeCJ;C` zP#?d}GXTHJ-N4QXJkV|Z&hN<yz9)zG54b+}T2=R>C?uQC^@i17b<;HmqWSYYx~h{@ zbNF?F)3^Un!DZFfqr6vv=I}Vrg@HUwJHF|j;L`e<!^$3=q-5=$q?2X;X49?LiE9ok zLdUiCt9;Xi+wB)>noRK~4y(_oO4K?OFv|SOm_Q(j7@B*b!#bmHt2A0<mpR(FX<X=F z?{hW<Hc>S&D&d0PakT+EV`iR+-jB0e3IMfsYZ!-HKTF*(&gGmf?unwmPo`Wdu-4jw zWbopam|9--N!j(`oxnRw?G>)NhCi=23K+J;d;TV7qRV&}Jg|4e1<uA?(7H4+0qYur zg(1*wc&356p+1sDc`ynM(iKW<+c>EFq093R6~g*$nvF7(NirbjS5XD)AV&Z@;J)m% z&$@P}a!ZljDV;7$y;GT6-M?_Iz7}rBd48T+NDkY}!Jec|LWg$3fPhMdiZ=))SS_tf z7UtYU(DlPT#65{k^#|<47QGbJ&4_At<vNU$Uq%v?{8sXkNkUc(1N6B<NBsbzLz;!d zD+(CL$FhiQpbeajys77hw*et&(<;PTKzrL8_%!m>)qbD6+QVXYYx3q%jqC50wY~Oq zfu7IUNXcCI&wN2X==I4<{7EujIs#lbSdYsK*5e(mM+s-Ys#seP^bSOOW~wRqoSrO) zpnjRdjAbJQRXAX$0j}URNF|H?bsB`48|UyZwWF0;HJv&(A;~*q16wd|6|Dv6GW0pG z`&T%l%2|G7XTGDUUKB;L`&}4i2YMG|81`eaiWhjya9R#t75%ql=*3OkE2YHxFe)kX zq_SB76wc3V2%&LYo1jI;hrKz~{otR}){CbQo{*s;=p)%=L~g3-F8&uRk-4Wl!ZAdG zRmIb3U6dP)<cu_ZktC#3d%-82j9L|yOd?3KKs+V`1ba=rOexj&$W=lnhj1vQ`o!Bs zpfv+Vt(5!0i$azfsv_SIiSu9eI@J=c>RIFN@wbbb8;906$^|N@hBn5>7bHMt)_tSu z{nLtavJ-T(zsbG<GL!>kJ%f;Sb27fPCZi;sQtP4@9-84(xS`iaUeqIAh{zY$`;GSJ zd#F5#H>Xs%krq`CT~kI#0ZZD39BQDi+PRrg8qoAGpeuXrZFS**=J)!@yJ0|9l?q;A zJvR;ux+drp+lf5roLlFUJ*(HY|LJXipXUzsr#`<jtZGlFow>$Al5@+3EZf+ov>a6n zc@YnSuIo@Gv3XU@V*pZmJPd$CTUZm+YoT+Aabyw8gmdk5&u$0#M7^u+y`*F9-)fzx zR|^6J>Gbk7Ui~mW*DFbhT&f?AkyKE<o-ZX!G>gw6?ENHVRL2>GafQQ{Gq#DA&3=^K z4yx?~CAUcXoXQST$;!cac07;Z=T`;2I-MLpmC0~)<(O!&PJE`otJW2${)F0E{%syn z5_g9ph0b-o!qU^KFBYE6-5G{^0F(ZePxX-=Q=O7b)vN6eun)+3&&CUBbOv9n3<->G zIMqZ$q4W!JQN0M)wRXiOVoeY3(xC9Z3kSM9U>_eNuE%Jf%~#yH`x)wiZCIUETCy!8 z8YqEGCWrq~EQf$e`F0-FggnBi+Met&{xdaxEjas&p6*dapN&L9>kM0K8z^a`+Ex@| zny+-3-M7YNF#_bS3`Hn2_A4$)0-`{$R$dm-GS=i+!b(rmdbaBXUqWo`V`rwI<0@C! zpr@r^fbx(kv<)tGi4_#|`T$bB&+~&YN*bt;9Wa&8c^qI{9S!$7yx5Q26L-;kwnRQE za=88NJs4vpyfH*VUNYas6<)Tr?*Sz0;^;M;So0OnS_4=}0@p1rm)gbiTSYE6)0HMQ zGZKOuTH=<cnbXobwInr*KuEbXwJP}0rZ8@*7xJSRTAd-RM%I=Lh$|sGLs*IbWasO% zFZi<=rLpwx!(LD3SRKZ#WttEgi60C;WO)pgabq>jAy`P1Rc3zWj@VJlB|@%?ijPJ{ zr-m;U2=V(Rk?8{8xNTGG<pS!DZ2}*7aZCu`C-Yj@h7Ek)`$e4SBo&O}A~BD>JI_H{ z8}+Ffpw-f2^nMY~X}HB@0BZF-2NahVzK`p(jMrWXuc^m2y<yk$f<OG~yw-Yz7B!-4 zX|(f!K6$0uXcL!_Dl;xBQ%I_tZKF(kb_As=f%l1?BSNs5_}y3?_vq8I_%w+E1dj-w zNwo?Vm0zSU>aTcaac;T(@`_&<d?%~azM23iM>2?I0MN?n*`ZTg#2&27tHkmR>Zt{) zB9%_*bXA9levm{Z`V*fLsAe`kV$xKthlV;ei0jq%a&jo9Ua#gbg+MWb(|WPQ58{h{ z@o+1_bhU74Tl^T8IPW^dncMP*S%NbA<zq#XTc>IeE|&d{>t2plw6kP?h;>_s8>(<u zIO55wx*B^G;~CUO4ehIDd5kcc#^ERctkV3gMd#n2g*A*H8IkEEcIjOz8Ty6*0GDkY z_QQLJ`%>z{Y9AZ1dcmruc`@H>s1KmHcyU}Qottum)9yr4J^lS=>RaDARNx%Xu_N3X zFfJO1!IB5{i<A76n}w(p{~ZbbH{aLvnWz0?sBYfm^f_vA4;XV#g26_d$Gt|Lzif&> zzYQ(<;WhTZn{?O^fbZ`a5K}nK9AEM-|BHubaUKV<oRzH^Fjd0TE9|MD&U<rCY#$~d zPaHxeKg4K`a;o^p$?8?{=pOj&PtZg;g4iG)=BVC5Vg<*v3)J{m7><0(SvxpOmbefz zdmF(b%h{)OkcDA$8DqPkgWD~hZHI*eI7d7Z)$PLt;HHC=f%4brU>F@Ju_9}?&mwTj z2k!y7V9#7u!BrUYlU25WS#@qOtL^PxCPizfQgqxKb3Y#)P+fVkikFl_zUzJ#mCug` zPKnBAN5lS0J^BrS>f8;Qq@$&@sk4p4HckOXFV_<2EO^R_q3$F?GyD?r5(b|XjXaBA z<I~f4`gf?z7B6vXn!N+B^cTYEHRbm6Ze;;__tdPAky{MSlY*u*07vp!aZohUPH&9r zL?j5S@viNnDIoez)XYH9<`7RQVPT&vkR?Wgo0!3&ceVqR0X*0W{0fG<X=vucDa(7b zVkZ)Q$t^5fb7!eKeiEe{eM5OfI(5)i%);iT0hZ3z%;rz&ENB5dU)GvyfRu%_63*jQ zbixPxQOQO2r0+Haxe~0(Rm3=x>CGYXrlfoM6N#NuL?RjBCpn2E;}Q*Hq|j5tvPW3k z?vf5KA+YSPdzvQg>1aZRII0stf~I**K#@fXPEd?FQxGUdJJt9jUp1<MP-|P#x&2pL zfRLt%0oTq<3Z+V|NQf1Wd8_~flw~25vEdwPS?4uCI$w(?GF?A?IuX}g9#2;2#bgxe zGM_EVwv<XocKJx33k$&M;`R<xEsM`_xq^24E%s(*FvD1&=uwVtcA6#HiUv(QG})MC zQsT%BDyfIMYeLEO((4%9Ul6W11aC}K!<lN7Iz#2>6gLSf&j2~t!n+!1WwaFz0$-gK zj!ioAFrFL|KslQlCqy?dKhkG|0JMcquWY;m--0T}<|gwqldX5qFuz+t_@MJrm}n>` z4p;lho}37`Jf`ZfX0}*=;wJtY$+W>O$WGSpseX|Y=Jm<ZqxujznhbJ&J`4FetRk`Q zT6DJX6;wfEYs)uH83vC_{aaH;appO@WGfN0b_FAI`dSl6<xXI~cj;C^GWwvYE#dB$ zLgm81on=K8P+a!)LoubY&`ldzdd0VBf9Hlr_Cs9C7|4YU?}H5yti6F`3j5<swxr`K zeZS{h6PUXkyEGbR7cm`?k{|%j4q}z3;yY+^&CEDc?aqv>9T)Uwyop>D??6y{t4K)$ zwqz#rhRBP>rq;LfIQgh9+U9rBwyUE0Rnh2G(RQl{nE^_q3Hj7WnN|%b3IPNfe5oTI zFw&V8VKT34G6pNi*w1`#NG~B)fULN0^J;sTnrM+C5^;Bom=Nu-8#}R)u<Jmc=0w}8 zt+r@;gglCj1C>8#Gt;&A8BRYU>A7?OKP#i0vUYBCa)d+}W2Dzwb+DYFAe2OZ=+s}f z&19A<%?D_|GE-87ug1rWHEZ{r5i+nP#D{5JfYF0lxKc)CANHDDJ>fK0I4)KQc9WZ# zsd4w4sGJOBl~klOvZe%G&^%O;oRl?5xwcFlvF&G(A(3fncg2Yl>(mK!ADk$$yUu_% zaRD72;JBSloX#HLRievhcID}8j?ivaFwL9lChLHh269M>eoPn@B0K%qEk6h9Q%(TQ zj_hAUGat_kTqKn#aVv$>S?TC4x?`yw=*NTdB@}0k6#l@WO!gedeDvOhSN#4p?@~BL zXy2cBnzH}{g$Ot^+^=SAOTz1saR#U!oD=%o=zt9+mjWHKj|2}1O&5f(QZVL3+4mq~ ze{vZGzTg`{CwkT?&2K(+$6Rdxg-AYO*NN1g7PftOq#!KVUl3x~=0p`e5Lgw=g}D8t z!-ajTdiPog{nmMeh~(P2;>;Plb_y42;sK%*);ZC0*zC=bP?i4FOM4{he<ja9oMg*h z<AZXu8;k$u$jpGaB8v8mvS&n5Zl~tx>-GYTQt*euAz!y!kVgT}vy^-ZM;)d_;A|E| zr!<vZrg=-}5|AMZ6J+e5K8u1SRK_c3C~bZ07)SHXIbV&(`Y7Nwe_&b}W(lQHa`>9Q zYMPZ$;2q!rc7hkD*}MV4#g1YTZD@lX)u0@8(VM`nW@EtRo#C;4H!+(ia$5H|iQ0)g z9@J6{nK>k#ihX!fN*grg7QT)Tx$C6O^lQg|4GLd)w5TBxZeWx|!BC=%L*q0%I}51= z1x#Nn(sZ-yLLY(oS}5ktdPzx{9%a8q=us84CfiCyFhE18)2jGd_S5)y&N_DwQA29$ z_-ftD&VT4Znn#>HlOFB}u;z#Woun8z1tb0ja3x_#T2DGh?d%$?1)S5iAA>noCuMPZ zUQ;wYwIqpNa3Bs{)YNpw4TvxtL=9c<rz^Y-i#t*9g4)?XJ;pjg(M8GUJHmb{x!V7d zqAEcVfGAVN7O=mn<Jw%aDmz-`QpbZb0tp~ZT5HIk{P4xL>=cfzP+!3KdIPKiBFBq) z2W584$xs%1zET|fM=3;M4OGmouy^<4X)Qsy&EHuqtdhd$8o*O~Y6{^f8R#lv!#(3< zF)@2)PclqBv4?@(O)&$?tg*IvK9&ofhHUI}L;kpHu(H&jJG#-Qas>+_x*~x^6N%7* z3EWnpXRlWmqRf(_cu)`fedJWCO;JMjD<(D!dg5k0QDLDqDMFisV@9h`K#M1!LLBDn zejL22Im~B%n2!iVav}+Ky%uTwwE8!?5JB?1{*WYOD9aW0p)akvP)S?>bZkQIFZJhB z@;{6)I)=wt(3Jc~1ltmcI2qvrxQC{RKosPqe&8$n`1Fo343qP9WsgKE3QtKCtq7I& zd8dy`Zk2&{7}f<c_NJe0c!gKRc3RV)fOFmGiu&sa)bU-b0cfKPDT3@|XHq(7us;gu zU<{y(c}^UT5l<(rFtP1dtCp~unIpc-MwmkCkqv2tHQE%+4oam4s~+49-Gciib~W|= ztL*JEr(*M4AkU~(-P}H7pP{F_mJb={zm&W^MVy_2AEHgQ(_~5f&6av_12_HVc0Sgf z$X0II;O;AX7>!ia3{n`J^Y0w27aa(ZUCzVV_z|COc3M;}^?PD98xo-`7Zi5(PUYli z@X1k`nC?_R-&?BKgCKQ{-E^2*)BCxh-~@Z=m2C)#A>FTmK4PMY6^{`WKj;g=K^(>L zb$rFDrxH@ZOCWtBkWS;&`|#}q*#NY_W0MQl31jIJCi5Lx;I^>Y+Yu^T<p(9|#L{wG zEg`-(coRQ{_L5@6g9AB%gc6rg=@@_epWkf|Q#?U<nAokp_?p&SfCwkDa450+19YNl zT~x6vH;!?ylf;`ectY!~2oz4~^P?KEm`D&-buXyU#Tn}FgqghH#Df|xTZPQM;`kZ* zHli#_4ZAR9D5#8PSO%mk>6NHm2cRPjbJ8HkHQGHn?X^Y-@f_eQ!!A@(x+!+<VJms< zEf~JPNCVp=@6{f_Mh64Ic1P3^zN;~?vpO}QqJVKqb%kB<V*yERk)LRPCqUj<9bq(k zdo}`)<<RXbtnDXyj>`~Zu?%*ztQjNXGlb$Yha3edy2rsEuvXhBB}D>@{R;UF7`rLz zV*@zlcAv8M9sQ+D!nKh>?>bdmLQl%zXum}j({N<Zq~ns9I_-6ISOqF7=|r;zB%|2f zHTLX*Y7c<T#x%wk7FdV^E7^gw5Jkt2^`+?Zc2xQnzXE0n(+OG(Ev@s0?noQzJ}F%4 z3q%_kfFi?29RNL#JOrMIcOg7zm==F5qFH0VILJr9uHe05TRv)W+^lTND!Z9P8||&o zxskY5VZYr+PxC$+2b7|aSXS5($a(@2>IzSkP@Wfhh$Jms<Sb_$0KRyS@IHN2+3$9T zj83Ex>LL4(B!-8<DZbznsGd^q9OQmLlFdFHUFe(Gkv5+gee>{W^RbPRU7$l7X}+;V zRFJS=QEI1eJB9s|7jGnbT&gY*`NUMGNVuk7Qk0x)SJ|)1+1#MxN;EZ5XpmFXU^HI` z%4mJQ08Co&h}aNnS#FBNZmm;0r-0hLcm7Q5ARLY&MGx76&C={rJV`!}&Lp>)YQiHh z(drELe#EVCN_ppr9l0)wMzJ~H>PM1)g<Xk+;b8A$Z?mIRlT@NCqF$fH2X%Exq(kW9 z%BFIBEE?d#5q4u~O(U(D;_uAgH`U<W&|0zjsWPcAg)$(RtuIl4-1ko5IK|Wul<V&j z=re3?Sv&h6p91w|pf2ptb(iaNnL%umdD>QBfI=DuW0#*HHOtdJYaOaJigLUj+*xq4 z9@I6a0N`%(y;(*6_r&EeL^@$Du0{?J>sNw`1jj1GgH&r{(?8D%0Wv7zE{{g^broy` zRuHHU`;Ec8@zXGvz?X7%MX{oL?fsv!EI5TvYs1p^7#gxVY1CW5q#~5ea3n-s9D(<o z^2b11A=p$q<}WK+#|kWD7VmoaS%NRAwD(ZJn?80C+*)i|9L-)AH#v%T-ulva=K4GB z{tm0~CiJ#@5nLyOqZeMG#rp<pH$HK63Q=IRfp~V0i)YUq-RK04B8(f;vywx@|Bas2 zt)edQw0&Q$Ptbj;?9U{@L;Fy}@1EY_7TV`Pn?yQ7)3G(75S%tV)|y%&WuA_|HJ#H+ zL^EafT;)Kop*Xi}RbzdnYP3w_p%Mb>cH2g_2Vl*uVQIW*KQ)!LHMJ2UkY7?SRUL=h zRPcgw%T_AoeU2_LR8hNcf(zP6^fF{W8OZRyB8wD*3L<iS#!4$l8M~S!2u3u=_ND<G zeAb{A$2!MlOYBWQYIZob3pG0cCs=4L3`qyO0}4pIY#R%Fg2U}#A6=bJ1VQ2#*B(2D zZ-IZ)>VXhawOR|U*o=wxIVP$+Q}v@YS8b5O0p{m?OfqMJ2*R9EO=u>zoiLkV4$&+y zqcV#c+etl-WmCf_oT5$$U2^I|QEn)PO3otY9;p9JAG*T^uvWj>qx0FLk-blJw3c|l z?5OV4h-~^8P-)9(KK)P~`|rXa_7v4PBmvxZ-p?W4Ph`8V1~WY4wT`kAEes8$W@uS! zZj76B;44&OAkR#fkH<=y`KcKw1c_NG?U&0Ru{nAW@5s6;Gtsu^Q-n^zD`^#7ue@3> z%CR7!LcASZ_!TY7`JM)@%w;haL|eAVZ`&3aPZfsuz7z-Cnz}!LlR9M>N0=$xj=FiV zku=`lMznFiA*#n*zcm;;*D(@|c9wk$Q16xZKev<6{zv{Wxk`LLz!6Ip0vHr8m)NZn zRGzieR{67Iy}@(S2D@bdxyPW8*dzu^m^e;of_IKJhP~>g*v{SG#TVT9c@adCL$$rK zQ|Ri330`AQ7n-9@kt2j2$n=BfL}Oy$xhX6~8ri7)ejCFB5#kROLg>b;VH{T-cqY=b zpH!<GjN=?s-D-0A!nF#R*UkdoEf`LA<}`KL|I_a>EKtJH7KpdhAwJTA40#iM?w_V} z59AM)%^V`TcE=V7$qB%Dun*gPIt%@cm(w>ALD8ST8w0X9Qwrv%_Fv8Q(RTli2;&XW zXmz;6Uw=P+9bF{|Zn7Cg_Vc6#w{YOw7=o=k_y;@`K|yAtszlfZ#uPgQS^r$rw7_BE zRh0+D_9|x;)Zmto9eodHcoCYS_VaK%HQCG+VKXZf58OXRY8&FM)lv&3d2`S8-aI;a zbCVu#28EAZ1C#ln2TPHNY4?B<lDdGr*q*#<)QuTlXvvA}EjE1xWrnmYHK<Pvb7zDo z-?fd}wHlmB#*VgP?^bH>(l&cn<}NuC>Qt~k|4=1SKDyts{(VePOcwa^s1D!aAV%{l zh3eJ=vTv9{gZbJrm?Q2PjKwo&EAVIl>L-et9|SRLq9Jm~-{CX@yMhkYMSz<Fa*I+S zjY)p>yRk}h4w&Ns*!F;BD94D5a4g&XgW;T_sB!j)a{*k>IeR{p4!wAS9$5m82;Vui zY0I{HDEJ**;26^_`A%T=WL#z~E`hD3CTwEcrF*+)x}uahgo%PU5?M%AO?c}2XLN`b z*=511%U3kt3VUygBV*vH^EL@Q6^TCb37ivzYN@W}F10a9nbm3)-#gwTtQgLar4R_j zpALXs0jOOf3RD~gIvPc5efN*H{hFAX>(<3q)kVM+cI3U_`*;M08i!{L!p}4<+MF-D zMI)z2L&ipfc4fA&kpJM~F%#1Sh!Bv;mDA+*(vIED?j4H(sZpl32WBGX)#)~86n&e8 zbtg^Yl=<+RnFk%Eg4Q<GV>+U&h@6%B0irs4sKgeT8~a~oNwos(JA#l^wv~-1qzIWb z5mpUeyc7i?m|(|-<K;?DP|S~54bkbmK8TOA_=S60%A^uQq~T=aryN@#{CIrDm)e}` zZHhJG*r@IYT$);~9X#z6zRs3!Tp<EvzG!n{8OMO`5)J+aF67NeChs(lx)UN;hY63M z0A3cVhU)+@+2dh?XJf&K<q<alETO2P3>8ZO`20vEgG*sw)nj7PWhE_mn21!C)KD=m zR29^PY#kiDE~>eO0k-oM=lLHZEYh`y`UNp_Wr_x{r|u%#sx54WFZOi<#RxlV7hJDR z(FlkB!>zFLz>ux3Gqj(3(%TbRQ%9lQJ9@NRVVk<{y<hMsGW33P8T8?*$s}P1PrK@X z)v=)&U`?+rrXvkW3&q&R15?s+Q<hG9LxQBljO+k<7=iJc%2SXp6g2zS)DG<&#eji3 z`$cRr_CSU+gT?Ac#3!>qnx#4|MfJo$a-1w>b<05t*fvy3v#au>s^>U!l<q7v+(euA zY*r5`D3}uhbVBHZT(>eeRUOV#h@!mUn-C{#WRGm7SGtv9^soQc9HynHGt7HHy~ndm z5ornw1*h&Q3<ZW`{W~*Fb9`hJT%>6L(N~YM^{+)O#g!CKHl!a(s%7#UyFD_<3fFua z^p?5eQkNAHQ^B*l1wrBNeZ(w_?b+QLdA!8#-bXC4zdf@XO3&1YTB;xzHuZ<7{oBu; z!Q5ILUt0~~1Ja+N*rHS;K1xAaLXmaVhD?M_+|xiUCqcrlsmip(UBc*^kiIMM-xG9d z#ZXBzX9qq@0muTF;`XxhtBDY0mRA}?wn2g<)~044OT>ZMyfZM8tIboQin-M2i7LiL zwr@-*Wx$cC>PLRX5uCRJw*fyGl&v{KZaLNeiCwnX9V)z-4d?c4srL#K)p9Z%dj)e_ ziQT{~%ZabEmuKmSxf_BM<J~Cy-uWP0@{g`VI~!7!$D1-4YG5(5R|pj;_DP1gIr0bO zylddZBIntQGMQjn!<<Pcf1K6Uu~yU8s4DHb?p8aax^wccvTRFOhuleZlhnzBvnWfZ zn6%jrMYrJI7`G961q4_NB0-KN$|7({*Zjd9H#Q6sYEMn<IB&xjgkdX!lZMY=-|2B3 z>7&>lIt|Iei+kZ7p^xreAsw@K8?#O|H4>re;B@vK^>6fS=ph#fJ7B?57O#d9xoxp~ zPs$`_e>(+KP!f>ld@+70u3az%Fr=kD)}hNH5KIw<5b+7Q?gCk#!*U||uEHVwKPiOo zcL@JxV-QB?FX{kjtOb#+7-{Vq6?G#-14b5Dv-754d`*)M`y+FsO2}aHqfoT;V{}fF zl^8Sb`3>RB(2w_SY||Ak=rqt$`*`oRmgE43#S}87{vHuMIf~&iovTj8+C6DXj04y4 z)_&VVY;wH57iC>Ec_$9J+Ry)<#k!AGg>o5R?3pqdwgFc{@v*&%;)_Y_9&Y?|UomuD z_X+?#H-?Do%@_a@?(InCabV&;T8-?EvK{H$1=ECXPqGjMJ>$4eif}~(WNm#RFuFF$ z3o<hOKLjt+ifYYhF8@Z9gVgQ|yJl1+_T(-Ia%K;4p~Rlp#l4;n?dyVE62h@W*y7T_ z??#5VTu2KHKGenR2M-XC`?V}a6K5YJ4x)*{>b{xwvm5>S3~yw4BY@>@|E#qRa4515 zi{L!?qgo|Y+e1+2Dx_V><qx%TK%9Pv+P=&~&N-{unEkjg8)*!&Kaui+H&_-IF)7ea zCN+Ic4`H|XZC8Hg?xl6e^8v9QnXPN>X<UR}C7$gOc)(t=B$44WPIP@CYZ&TTRTCgO z5^_6C-kS-My5!-=E%R9k6Vxro%3u^ygjA@~;Lu#r9H5z;f44N+Msgdh-2QSZv9B!S zs+{cAY_ktaLG;!3)(j|{f_0*j!=mDG9GsZ&l{VN$DaVK6EuuFJNJN6z!`=IrUk^c@ zBYR?2L#~5^bgu8Fmmqc~+0DE7X1?#MZDuC9McBt(={_cn=Eh_nzqEIK*vGde`?zcG z#kr&w=dzImdgOI4Q6{rr{y0?rdn4~4vp?e=>%(zcqJ}DfOmO@}H$sKD6yS3udt2a* zY~dMQE%9=87AxVwAYA2vIqMsOx%St-xrU7e*(2Q9HAmu3RuD`A+n4$X;82RirM_Nk z>CzUUou`CUN5^j++vCvEk=iJ3u*G^;$oQa^vF*e5zwCH;pYuYTpNQ@VDr9NLMB)sW z%LqTG)Y@R_Lwk_IEIJagU9{l{W{ed?oZY6s7{VZK*f0^4?+e3H@sF!M{iB)_c@V8N z;d%D@869v6$%sxKSL221o(PI2#@7xoBx{cy4<jS|3JTW@mn>S_o5o4NI=pl~c-lb` zsFT3bCM4ud?2B?2QJf<I^IMG+E1p<~S3~&=8|0I+wMwo1$)aZGX77AYLZ~(%$DxP0 zwEG1wXgW3xQ)Eq+gFHg{Qv2nU4o*;GuY5L`Q8X&i!DH^d8R1TK_23jPS8+NdFniDa z<Z74@QDzY&0^e`5+LG1(dSbeN9F`bH5~4`TI3*0HnY}@B593&O24+zWBpbg?gZ2O_ z*%13pwVUzCIJEnuqj_kM`_`U9$WU{<nj9z&$E@s-B05RrRz4YvAEhbGL;uB)COUmJ zqOk>-Em52FK(I3_dq^h=lZ(UKTeL)j_T}EVXbY}!?)*qeTe~Ap)I{06K}#Yl(|B-w zO3cW{2YCzlTA430zvO*DGDw09WBeR+55vv*p<@`C2iR*ORy_3ii3yC>Al?Su*48!) zI2R9+sR+j@t7sq1!UnLKu=DFqC8lqHw$%RwkZC5ly^*ZYCppuLCUve+AlHVUPu~>b zBa&b7wzLW9chYbBU`HFnuV5h;j|nnvE-h4ko&!_rzFxNYPM51$6*^hgFC=&MKt|El zCQm2g1dg4dnLK!-s4L-YGYQTG!Tv!@<@TYdE3qGte<>KCYKYB~ZBqlTNl5-$TyXt2 zn$@GJ+ebeEV=>)?n2$g1Noze~SZ*1off9waXR{=s3cI5LCIb~(-dwnO-5c0GhzCHL zDoVoOSrw4_1Eg#D70mCIREPb7UlSen<Qib~s<in5Q$wmGg(Hv0&Tp4fCzDlN!;gTv zP6n^+MqPaMTeE1Ds-izW+F7;DHj_{#D=wSh0=I-@?c=eW+olnW*Wj=Ej^@V`wf26u z#j?aMt&%`ytGAaRa?N+xCVX#*TM|^n-pJaJig5y;{IA+q0^Y$*$b=80Jv+WEY>FEM z%iMBai*4+BySL01wsuKOXZ2g~LzdfX&LojrL)c#5B~giT)d(#1MKuC2L<y?)#;M>r zQ>t?^!mgZ<pTs8!B&-+P5>Cfgi29B$a^gv0%GEy84mYw&%|uq`HrQBjI73x@cDz{l zV&$t7L|qaL8AGs%A`k`J)smnN37bV1qHppBRqOgH+jMlK!)zvS<v~G0#u59JkqI~J zj^`I@6*51GUD}9Fv+m4zA!m9e`P6+N#6i01%B8tK$+QOue6R^YXFZ6Y&7Pv&{ZHKb z^m5LuE+|GPs!b;ZwA9W#wW+ze$vy@a#qlgzDWGStKhZYpCjnO*G0&=ycfZdztFog) zO&1(WzTev^BMvhSuZtXtx`j5H)rO=jdlHr@YRT?PLxi1A3JDb*qB}q0FT*6MCvM^d zIgsnt;)Z5ALzZ-v>sRP3tjEMl7*@za?K=@JewP0P4P5-2zn8=rvk$;!APspHE-(5L zTrMuQ4}QXegV-DxP{AT?6zk1ibgaMWJBWRJZ|I2EvRc&mV$hCK-R#HiJ_Vb!Kvdhg zx}gbHUThacnFg5>bihZkLSeZJu$LhH_?EpB0w(fbxgGErk0X1qQ50KywkPqQs^?2> zHPoKYZy3_$oqHWIqNP>z>#o{tk^Zwk;D*X7Jmpu1@ukLLJ-ETyoh{o&?^i~Z2Si>$ zh^Wxu;Rsc*M3+2}2Y$^ctD1vzxS5`*Mv}3?N_Qr@C}Uguo;ZO323rPQb4PrLG*D0w zjXFL&)C{$SVQd1+tJy8WB`Q<AY9fIza8A|7$PM-PmUoGQ50rb2D67yELpX{8SB(uF zNPTXZ<^AiqusBW70~W&*P$b#l3!}`T9Ss~Kq5}wm?GRgmi#F%U)es~+5QYl2PZ!k> zZ5Z0<g*1qUx~G-#b?4`P@^n!PncLKY%*K~EZ_gYPm5`r)49Qs~+b3W@X+QwGf)!Y{ ze?N-P$XP8M#W~OP7{w=d_Z-F9&wQ0pe3*<PAWb@o$x-HOQSMUzd-ew4`0IKDnae<0 zh7N5Mte})G-FHJ{4&!K3Va#lNY5)eg;QI*}oTRm13XFmOAu!%tZww210^_yyfYJHY zfRT*iKLJM9dIPz=2QYrW9x!hEO28PDY{>g-Ar+W$L<;4h3f70TIPmsLx`37GL;HhG zK^;0}B8q%wPyt)yy|ABM-kKeqNekeA^bUu}$ZK)FT&kXZNTBz}%8%@OxIcfv6|HG@ z$v?Q9b{mY;?5qmuHp1C^Qz>a!B1n4C9dXD&a%DOX^0Q|qaecNEi3)1lPl);-63+D) z?`AkT<g^Jy-`!1-mJ{&6C1piG@9|tn<P))hhC_hm22UTHAKopzbXfwiTp0TRJQj#B zwU{CYsL<UAK`ytW=kR10s{@qw%XA$nP9O1sFebYXiGrCwOAwu;FNnwOvm`*lWnf#P z$0RNK$h@F`R4K!OfWY}d7x@^gAl21>;OjU|p(Wyw-n48<mf$SW&MJbbG_}ysO%CKJ zH`Ima`!Ye?y!djb0dCvo<S8AMYVp%fYzcToR)A-+xvDSba>(hG@}cFjkc>e3)}*N7 z;;7FArG_eQS*{}qxRNSh6?zT}Zez3+(}x`&4x7=pkko?@;(8wWArl|r?}h9S15Da9 zs-8zFr7iX0nNlIR>`n#^PO9-ed@y~k(t7Ucr%O;NEQgczcLg&mv&CU%c7AKmq!DHB zWtB@el#%-(b$WM6L8*}v`>k-9)q?Q|o07b^f?VdB8NNf(L=@UYDK?66p+wsjIQ;Ds zq@Es}X-?oweLeFIw%`Jgc#&WOum;W(eomwWGIg7r2j%K9z4tXY+op${a?Z`t1qwXQ zw)>o4z06k=o&s84_opHn0^-v<!>+;J<3ji(r<zRYfYlDL`fB?gES;%^87y$gxxNO! z5M$UO7(&h~0B6qrA#kEnT_IUemC48?AUFb*%impI`+n~?I^@c+D`yd(4#oHghFoe_ zVoG8#TP>~5bjcK071=Z$5mE3{8{~^wO1O!Ja6;(5E<!-U5=)QL-W|)=FK@o=s;^#| zuV?wsFDq~UAfhm=sn%Y*M&M2g^L4(J6y|&Lnxrsa$P~YulTosx`{NlR2cAT8r<IQd zTIop4YL(k>-YE*i^?@r|o4iOtr9A@PIRWMAj>HrEum~uWyO!-=b1*MX<EUwlfjTUz zRxwYJ@?aDhpHNDytAWZ-l8z!B5d+*Ge2BGf;d=0=LQM#Ofu~PMekE}H%MK<G&>ND& z!sau%Ag5`E;&%0tXz{Bw#**HD)p{k1S@Yimy!d!6qzcCgKi8$JI69$JM8OIdwGlMl zq+s;b|95MtqT&ickfQZ+x|k0aF6JZYVm_8Grp)`L_ORxwDD)J_qTZ730*oiJG8%5o z>gf1YqNPHSHh}M!Mf51e!6Nuid&ryDcV7&BF<%gUOJ32!_>HhQ+UXlVHNqE%p=Q#d z+6;2$)6ptZs6z66e!#*K8i&S~JHynr)o+4K_1hEpI{bqENFrlhueeHwiy|8ktl?m! zyZ7E!_Va@VfzFP17mp}IB7$?js<Fj&gDnzKWQU-%D5_CvKrXjOBjULI@4={LihN5l zD=-wAeX)HezQm{f=K@zO1G)6iqOprZft$+{qOG%K4wLvy@oJq@1qFQfn?d!DIytd{ z-=A_cq@cLApt;B{q&4n7=A;nkH!<j9x`~jKAm_RIjThC9l=WkHgSh$O=$V|lhXxKU zwBc}GJF<!Rnx(Fki@FgI(N~r$kNgTMMTsKu(o^*&l1T_8H8v4=g&GD!53&<i6HAX~ zq+^FNE?#wLDW*cgJ9TmsD^qP9$<x|D-8FvFnkR3Go@m;IQ0!xKHEkHTQ*N*LS8WL_ zea>YQ)hB)Zi6h@h0Cw=Ob1tdJ)21P7x%Hn`G8Ek|1q%rDP>s<Fdts8#0JTKwq}?<k zH52BgsZ`=hU<*X=ZN*d?U<$nLH;k~#9)MA7N_njHp;|^&3Y9rP+7r$p)b$G3M>S0# zyEMRRO<-st53C!q_rlq_*hO{>Iz0S%h^%{aFkxZ1w{xa6MqAsbn_w80Q7*M8F2M!S zHpOQ-QXWHK^?71*#_Wn|pvL|lI5SM+;;^7>N!jVZMc6cN+$b9m`Ps>+xGh7Ga9pew zS6Q<ckVJB)-V=K<%YamANBPjjzD?o2OI&cn9<E&X1a&coD;`^6jFpU@@KIud<un-U z^(L~)e^=$oEF!;61DzT%n<c4o>1YBzc_AWv`}GQRfKV-DWD+0<_>)Vq+Fn>6q&!z< zi{8cj%|wpI^-^KW9UB;o+0RFyW7pTX(VApikmqY_xsgiX83`-<6M!~xjw-Sdth4!2 zKF<k{!0_#sU{>J8-*1CiF^5^lZab_oRJ2`%fkET0LX_0jA{YwH7^i|^_0DnFmEp#O zs5;ofgIG%{6_3|qkJ;Se>lu;yMnyX;@hx(Na<Fr=JRj-C`$aPIo*R$p^Tw)o^L6aN zT&_^o>+C4=&8TX3jc8~R`8_8ZN4FjW6ihA}U$AS2VnQx83%Smbjv&$6C2AaX$?C;N zB!c;|BKRT?9{9>q;S5rIp*=Tgt@C=!L3fPcS|FU4^cXynzU$f|oj6(lCG;!7GFYs% z+$vcb16Uw#0Vw2!YUE=Yq9I{Z2-*z3#z*57@MOcep2dG9lt|O)ZJ`W`6pBm6{5_|$ z>Bd!tO@1$@v+$$JT8NpEtdE0doBm<^ZzX#x0H39FGi@7IwNC9VRYPN>ti%Z_BNU1+ z#BF|Qwf;i4tfqrOxx$z((Xq)Ac|nG_od=P#$LRxKvWq!m!_WP~FEV=kW;kKj>>grJ z#r#cd9JLt2t1tHHViAD+4cENH-_2(KzQ}nm6b=M?YOvrg#pDd(ZuTfwsL)%hNPa9~ zJ;y28jL4ob8qe5h4C4@T2klJGpvZ307-~WeV(3?b9{a-kq91ngD*8e8ZzFk8&c!Na z7G?<l7#c4OAn{$~oAH1o{mqR7Ea7Vk21=U0?*XT4N%JdzU8G{&ko(T9GWqS>fzpS_ zZ`cT5KhaHuMRpTrV`++1N9l`^zLPKsMw2b&!9A>~C@RVo9mu29%=oObLLWL%fPZ}1 zyjX2)&c9CneV2dP%;wp?eV&(y;eSjIUeC|$X?(L^>)UN=Aj&X?N4HI65dvxh*~tLP za^%u6L!<Ih^|F(sHTgrVBD6HEGm&CyF%mt8!rB&0!Q<3&i<c@6ov9zG&0dY+4lsY$ zAKFq6adQl+T?l2N{suqE|M57M^w-kxtI^%#-7Pgh4ihX@>W9i0o9&VvrKU1i$V1~G z`hSPUHy?`PLHl6S<_^{<BWr;UrI&I|L`}<D&u!uwXVU8$-~Ky%tHg~c^3#0}SM-dv z9tz5}W5QGY;(vGxv~_xDi*K9eznu`i@n&uQ&7;#dKTiAJD!pRIrqBPc_d{DJr)_<h z^z&)*`IofczUezwp6}zxe2dIW22on74Bx8azooNJdh4EHU!Ofzbv?gDzFk^V0Bjwx zgKIr(x{C5Lf>!_d6Tj0RDCh~^Vhrl9I{vG(5w3hMKZ26<p7G5iY)SWA%MQmj9e?1~ zXi^lQ(XvYqKr!0PTl#xoNZz*cYk($WQ-4@T4+|{~u<4X2wQnL~*|$5e-H%+G&9O;7 z&V@a69Z28n9^!u3L)t$x`S%C@eZarl`KNv5d#Yx&wu=ARQhTago2X6Sw6U^v+_ew* zR=gR1q8D}J0Io&)Q*=K+V;$WQpTwU&SLly6WuGVXO`Eb$*pz+Pl%q%K6`CVzEclf< z?`a|4#~*<CHOQD^(nvwUK1RTAmiS7pQTk0mD{Phla2K8_&2B+ZmC9r|JB%{9w{`bN zS#~OPH7EjP6~Z;@0bOoyjtWq+xE(6`_cc7qcIZ%j>y#k74&Ps8IH}hqUG<;>&$c@n z3eA2?5g$IVVNNeq%oIfdcWVw^OUa<4((qxg-Wj?NqOi)iRW{?WDUVk&Fu7=RJBB@d z0Gqdl9gIl4UD(ryxHMm$|Ct;TZKK2OgHlWD=uD0S??I>O5c5WlKHqw&%R3%<W?Qs5 z*`=!$Y3v!#`Hs&_MWPeYAT=XP#w5omLj@$tm9}BVz$>)bny3n|9f|0Q99Px6v&ny? zL9568U1x`TK)^O>7gGiBZqg~UExc6lQvC>t3w^0FL>wyHeX(ya#%TMH%F8X{s-d+u zttEehV2DuDt6jATlCR+XuZq0G4n?kzpR-<{xIL4yP97v|<Ad$D?7XP|Nm11`bb_fw zW>dZ}8T-NVv}qc4K$KwtwYXI<krOR*dXqHT=XMGR3$4`3tqbOmI9CU*N+L-x!E@Tj zx|qDije&l%I(BhI1sho940W8;f9@~-+@Hd8UMV)I89wg}*=b5BB-D(26JCg)hUqE_ z@}*fS;+?S@GmX-oNRrUy*j}6^o}aZlSc9!@<O?~s<=^6SMgy7&f5;9G=%#pC3nBtI zeMct4BveyQZ-<9z_X_Xqce7;PQe`(mJH_pXxW@q0j59;!@AtD8GJ&DpJgZ}EPOs7U z3mBmF?4ta$$&DA28#m-{@WSTyA{8k$$(v?1B}D;VMwD<H!}BUUi6PuiqR1_!e6UR$ zN?k}RrF!C(86>*^4o)ob1+n(l4sUCL&w;_bK`KSL{fi#6HDOrSs&`j)73Hl*G9I`p zEw?hxeW>aPWeNhY-=p1Z4}_4+`lvcW7OEA3J=O^YC8u{A;m`LGNTHPBXdoVkX8qj? zkro=DwdZv4>`v+mziDiHLaVH{4bl0>Dm$xO$ear0lqd**Z%Vt{IZK?VHg&nF<Rr!d zwav&-E`sgC%ClQ5;=_pJQgg1MZWqX8?HN(^(NSNLd}8}XeUF(8v8%C`bNw}@D9FjW zuaF0Jh%-5Tij4`y!;~R*Va}5Mb_n2Rx2G>>Q=bnRi0Rc!UH@a^_qTR2X<67YQ<sm4 z`i%<}1xINJlR0udN3c3~sG%x24OosdWQ(hP=E@(~>}Y*ODzYtEd7*{}U-INP);c)D z-foY+2DO&1+t5IgX$M^v+&BeI#VQp9`4Uxpv4q+QxXa{oGSu9_e2gS{2}XUC1X*dP zVC&%Kmi_gZXq6W()c&&?ctd{bv&CCFTD4uCkv*7!edKoJY9rcR%T~D2SFvZc(QnN( zd!P}mX&Xz+z9Br#oH;yR*<)_$s@JZ_Km%yX&c#xK82EXSEHs|tj~hqRgedHhSl0M{ zS!9nXYKI!Wpp?{Yw+j{oozN|gG|i!82Ry8imuSmwR~d?Vu8wv>amhACqxG@c&6J$u za*(u{Ys0Ux;g@nd?Bp&Ve_O$9S*50&#N|?3ryYm=Xstgqui&AC_WdaV$>kZ3a3W2r zHIt2yY8W?k`0uGku?~B?)Q79%Ao?^SP4p`IxcaaccP0AdMV<KXqUZkS0OXU*QTpjp zjszET&Ecpqf##=4`yt)E+f5m&rpO-`B7}ldOYTeYQGLqWl4*}e_|I_A%RsCghYyVg zV(37L6U_DLo0c^S4W)k2uhfA8TvQSfC1fZ{NGW*@nfS8MV|9(LS4P<*qRbDX(r-lB z|6<iBETF%Q{3%|lKf!59<y|SP#fR&U6p6|HyH9*57y2|#7vUwuNQUJ(?#82LQ5jJh zbL!(ALU)kc8bg?IM+3AHafQi75lKz)rFvb~9bSlY(-Vk@>14(e^CU2M9dZ4%M~gT> zLRW&hv4YH_=mzj+V&GDkOawUn4vyk!5;MT4Qv35Pam?7}5mdzmg!y;LNCC0|(nop& z-|CFYn<B`=R(>Wj@S6jEg(s9~Ml_E|Y^{@6a?wY1L?b(+ukocV8Wa-$U&Q24PN`2# zR-&RTzm#x1FzWl=MpBe8(y;b~4sjBJ#6mw=LM$Q(w0-6=wr>%E)+k<{wQ!L4x9s}X z<zBvr5rs=ggq+ZjJkuF>D1`|i?uR)LIR|PS=17_EFh_BDxt=r8R*fPRX0I1D@Nflv z`HX~_P(A@060R@yf;Lxa{C#~ttuf{l^&gAlIymv#(MlO1Q{kO}*rDPd&rk4GuyGhy z@?&{!7S^W}-eD}=@UHjy;s^IG84=E;0C#N2G^R}x_5i$-#2%2F0LBf+yoC3uMJ-&M z1YT7my+c(_Qu5&c<C-YkNQ+u(Gbs9hR5LImT(gzj`vJig?w0P!@D*7yD5<a{Qc!K5 zm;w%yH2a98GHh@)!7i5SC$i8WYDE>|GkHINGsC_b^Ej_2h4fGg$_N5w6cI$v6i`YR z$Z|8i%ORquS8+`R(MldFHENzf{ePdD9o;Zr8KG359607LOEF(;dSff`5RfE{RM@eR ziLTgSqDnan69r|S1ZWzqcB2MJ&{bwabA5eFRJu=;*@<|j_+c(<Gb2qyjN;t9bc9Ph z9D>)sY=r;gBlH7j(h+JWUFvwjru5YaQN3H}SNDRzvl(a<k;bc(JYE7^-J{hd_lJc| zsR@YVV?W0WA=uf<Oe4`pB!Y|Iy1h~JP&nR-3>gR#f|PR&0yZ@?)^p&oQI?!zItcS> ztamfmQ+)$_x)1i!D|^~NGfy@0R6}>oeBi&tiu_NvX723D)pPx^9EP;w3&hN7^zA8q z8!6+ORQ6apdLIZn^XHF^S9_y$SK4}XwXTWtMfd22wDq9XJ0rYnPhI4R_gRW8#7<-x ziym;80ruR-l-V>D-%`LW2v7k~_JTeU4xAzXO{hWQX9!JI^%3nGJS$q7(u}`?W7M}$ zF=wzM`+Q%}uBLo<tkA(3EC(fxIq{;H?V_C)Ndhc~-j>Oyq>Nr&JIFt2B9kGQ36l&V z#eJ-w9EEc8lyQzTBi^6*JEF>v(oSv=V!^!$YE@B&lN(}++A^n#42%?|;^tYn5p{fg zzo-ux58AF1<*0C7R_d*f#V<#@YMPB?8G$CC10*_}E3>&$E0A06+A9H}?BP{|)c<LG zxtul$V~?qUu7IY)<vQp-rA8DZJIM{JNsAm*lQdYhchcY|S`!LbYPyJ*G+dgI{xA*s z*2gx-36RF?a0=tyEgdh!$t8%gkhq3^6MAJ9;?@Eg!#^qQZO$1isH;^cV2FV?WN@|x z(}}K1j?vW|Re0U7z)A^QxR;S_C&_nD!W=dWeTwJ@CJ+>-Z2WTcb;h@u=ooPfuN2XN z*O2?V6enKN4Jrr~)yo1=SVB&o(a_Y~L{yj%eZzT~no+l#p)Vxy5zpt_{YLCsMA9w~ zO2I2^SJg+-b_1VsZ;d#8ARdYqkSsD7fAMz|R158qWVk7qO`=3O$H(w{BEJ!#q{lk{ zO)jx;!I0#?LqCfWN&b6@h%<hGFW*o#lsgDYb2>@q2letoIK+x#Tcxr9h(C(|P@}F` z%hc{GA!6zlC$NQB2VYN4?vv;QjZ{4krRbxb$+I8xmDCE&RK^_7=R7|h73eX51TObw z+(jg*q#o+J3X6_W(R3E7+TJAS7}V6n5>p72Q<4BY`x&awNlY#XtAg;>W|sJymleL5 z`mDU_C9mE!GpI^WhlgCTqEV3Wu9;e5YIa()6nmb1aKmnFGgws5o^22E3AzZy^3Gr0 zpxuSuquFajQj|2wvzxJZXX4)!-(XF{95Yt7H2&DHEJ=7?^za6eF7HaDLb4{&PL84A zoVY$3s}WJRsQYkqQmvJ<sQhSc&5BAL1kOq*9bqsMUJ35muI^BmOITY?Yar66><t5( z+dPWaj`Nz1L{oR~w@V$#`b~=ZAI8;i3|fyc%JUrQ&?kra>SeyuS+D420Qv_E!`;Cl zTFg?<pzmko^OV}L;^;<+f6_9v_#{?h+-z{A6GI^5%Zyi6wVi@Z&}T;3DxGRB)S(~? zzG<7G^1Kkqrf48`9(-6u%lR1u3HRSsMpfrTegCRvN`g7Yvmk&C=VT27s0=}wp!z1C zTR4^L7{&OLCow_&_wYJu)m49lh3SE<@`n3b|MiUe5TQM641{qijOkQSAkO8AhG|NS zqp9~HLY1{AzHpwAbla4UQJi2SV^kh`FJt^%qPve#@dHHV&dMxD1pt09pL()Sd?p{s zJ?w7YF#Pjo`S3Mt_j1>e-IxN@!*lM6GT)AJJ2neP0$r0E5`W3*ZHztul;~L>tTQl$ zZ)FeGABz8k`}xU$reOaFY!?*x7)n7~MVc1+tKHKZM*8}C^TA%ou^!iQ`Z3Yon=_hI z#F?w*dA3tLe}zdC3|nfa;K1Xn4ye}Ry_jKD3#NQSm~#ALn5c`+-6y&wG<~wR0Vt+Q z7>CkNRa8p3>VS4T#6edjEEZu#gNP@4TL-Lvf!*KNP6VC^ib3uHGr-fneg?^af{SF` z%S^*K?o5Uy!8y~OI{qB(yGN<1_l<J0)3YkWVr=En)ludM(S?ijY?!(iUFaQeUzt_k z8NZP96@@cV)aqauHM=Zxls=s@6toX6y9sdyby2@UA8)D;>)V|6q8YI*sVylD1)UJ@ zN*LYxF@FmsYlA#rjS{My@Rv}+wfUI8E(9adk3a|^A>xIIY%+GH0!L2*IL#FpCxEG` z`#e~;8w04_?()qiumH(7=b3iCq?;hzd<cUH(v9El;4mtlw-0AFCBjYz+$0!k)6P?A z=Wh3|aJ*Kq%+*Gl<$lO_l~UL4Ooy^4kvqSi@ZO1`uE5amM!5r{(kt~>GYsOxjmg77 zCquU^`+@GtH-dzHE#E^rdc+!&UE@6Rfz~XpDuE0SIIM;sDv1tYaYK-PN~K|MNZ>Jd ziWouQ|5{W?;fX(DyWWbGvS*w6nVb~;=B&WH6krHDC7e20G$Knj;0F`apzd^V-mZxM zdN;flkorC(u=7OsTaH|VaB!06s=9$D-Q+qR*6Ki0CaaoLKSm@*%fYHM5|WB`KuK1D zV-$w3si<@k<`<;yGRjG1k7Nf8%-gUkta+nvR}a(xppe<~<qj;%P&dZ=)ah%?o;%UO zQN?-mKqODljk1d7OzDYI{IC&7lJnY08q=g`Tdpxk4KJ*Ih^>`SDZd%#8^m&AsEW3F z8|73m8=nTOx1z{Sc3&wz5<HMzoe0W7r-?!X2gt?J*X27ZIwTjxkI`~bmBc|jPJ12T zN_yu2kce=noop+eRbj^<3d<rz{v=BR(U#hb`zx(jxW9{)$$5v|csu#MKW6uDGu|5f z!TyGQJ%jFudsYd1yGWELdaG(K9qj~9TA=cCEQ*3MRhi9mENIRPKWMze9LW!nlSHO3 zjV2s^0fKK!7z-D@>dSWmHs#4i*-pH?ZIc_JE4M^3CRpVPwBcUWd92ahj&@m_d#Ld> zJEL(I`JZkz-osapmbUH+{X)Kl@D*3><vkBh_ik6aEAPii|Jz&b$;)o8w|CpF_c%CF z53gl|$scq#r#xkFw+l_yrP1PZl=phGZ{K9~s_eNUxqp}76T+GzyOB_8(<`IR_EgPf zM8Pc`2fOLg%ODx<6_Kw{vXf7lNC@W)K4;(zEzDs1M~HBTp`y;fg`Xu(z_oG;5HXWp zQDSPF)JW4Kq4>*3v)m=lT3rI#20LVkekbw^S0E>f2}zIlo+JYYVx06uw1BiTsET3; zaG*d67=UO~ay?Xz$G5~|3}j9*a}^RLf@Up;w+uTGyu&X(_>O1`mvwTxtuMC)n@}pU zNd!eq&*|X>(YN$LkU%j3J?d2U54Yr<4gaPZ>C7}~_zn|Cr|<|Y1-*BWFf(=d-vSp2 zdpwv6MT!(7GQ1_KrAne!EFAqZd`wh1)t5wlRZNH~FXorn0cLHLw3(B*;dBwHW^tq9 z{*L1W4d7DB$&9=uccXSZ@Oby9NFS;^e2~VJAPd`~rM@xR!oJ%WZK|$M^H>&7=%2S9 zmV7TEKI5GvDby`s$!5V5d%sr9aU)@uD`Y28-xG%pb+PY|wsfgLt{v0w>n+<I8R9fF zOph7W>pFs<d=xU`wS16^5S72J)VPK`TRoDJ4YPPHq~$J%7gMYN3<D%lIXKOmW217s z7E>_=t5|O<Z4&I07=|zs&uhg@<c1@1ba}`wqdW~}BDJKT>k6CWJ8Xq6{Dli@T7Hmr z9!}FbKRhJauVjQLO((;}ZFDLOWfTLh2#&uRZ)p*O6j^12s2|zI+%Ff8>VzTm*277M zCOwdPpY)Kmi(09#&Cb*?*?lPR_-<sv)D_)s3G={*2~erBE7uO+*iTuUD5`?QX}TKO zx!rSA8hr2Iqj-<3NkxYxLxDsfSr)T@Z<|%$tQ}urh;7Lg4*@8=;07nZplF=j&K^sx z+NlZVq!i*cKqDg~&kS@Ss-!)t2^>(o2U8ef53`U-D+tU0o3${%-w>Rzc-eX=Mkwq3 zV%`g)m>lE<H<W&tIHpK_Z_jlqYn4sZ(&Ds8wX*^(%K7**_5>vP9iks6$V9ZRCZ{7a zzR$3f7wCK22Fo|y+=k;HdN;(O8RwASvxgPDA{6g_g&c**j%@4f^mmZsSOE^GsZH0q ze3&CYHoaU^eB_E0SG4zW({B!Q(8>&*n5+!0^*oY%aR#bE#?B&81tj_W42d^9?iaH5 z#Tf~%w`Vge)N9`M32ysxpOiLA4IVdD#uX6PJ)7c5E3@0w=$-8LHJDtfBS0~^q}#f6 zlzo~MZ8HTBjB{{9>PY1IY0qW55uDjz7tjl_FJV)3&r}^P@xd*Sqf}eZhxgp1WX|t6 zz2#z6R6dRH@`_WU>;y+{oYKtMx7}q4ZIFSNGal3ZJ9Ki=2ywQ|K-6<H%D}Wm--aqn zQ#g=CMt=ly62c;t>js!u=uBY@f!e~HB3x+}Z=wkc=Th@)+B%^-JOk+jRiv@^pBH7e zjrt!EWe$n@-xc*EI}FXWl_!p=ncO|~{A%YfP4+Ic<D$ylqH>sn!0e@?p#ZsN*)iP3 zOHhienB=@r#CrE6_W2smdNKy$vCveWhqKw3aCN-C2V;RL5F6&NzZ4bK$F1R64s$J$ z3lm>fxg~MwiUKnnjm>1)UP*4<5L<(N7PI(}#4OHyQtWCc2|RmN0-T~F6VMY=6o4bx z^o?qsQf*^w;EH5-Bll&j!H;|mKpD(qB4gzwi-IZmNjo8RiWXA|e4ki*w4F}?AxWQh zjvmxEC~o-J*{^@fnA0a{)vtYw6cw(Wul#zy_6fq5^2MMH`KFS#LpqkjZj7E_o9bgf ze;VTApNw3e`QH6khb}d_Ktj9!fb{wRGOB-L?|`>e1V?dP8Im%qLJg^MyCoDm0^nX* zO%-+^>(<tqS=uD5tl}qU&$N+^S;Ut1?ZphSaVgG<2Hug|ZaL;F1zynu?;pQng-R>B zxDeb9SSM?uEyhRH<D+5YqfPdqbJZc@{0u^8cE>8h5umbXYCA|^3R_^jtKh~1vNcnH z8$_oP76nv1dOlu&WE3LopMz&R1VZG!z<`&@0mT{2{yBlXO4<F)?jrrs7a?RWq6hlr zzJ6EUgs@f*Lrub~6Z5Y=oPRaE6qZU>(D2S9#YrQ?uX(Rj_eST^SHGb^`vDXiVRf2@ zl8vF#$LW68HV0QZQX?R)lmCK@81Bglvs}+?f_e%=DYZ{#%G#R20@0Xe$R;+3zd^tP zt7+3j5M+=f-D<JctritrSRVB!lN+|jYV>ErG*CrObG0>k*(ER;3yD6y+{aH0aJD%7 zVeJIp^4lFo<yt%a)X?=wH6eX`k=z}tAO5nRepwzX)TF%5(<od}(NAT2m+Poat;@!) z!g;%&U8t|m>rYPGr99{TK)UoJ9SR`V&-PqBw(t6(l$1(f_s0Zww_9V>KX-y89ckk* zN;Jj<iW0j66qOMN6jg~8Pz6ZhuMl{+NH|7-+>?38$rxL0k5W^cZFhP|>;3gi3Vt|1 zskN=$k}NeX(xxE)gul-S{i&t?6g-4NCdmVj=R0UnQ|#3T{h^@Fv&HgHK9+ydJH;Tn z%%7BfQR-RulYi`fQW7^$qFOM#@T3bmpm>S>^$gtFqoPfYPC|5jhYyR#D7!5CBdI15 z+kny>!~>e|5RL8^l)+k!i>9kRAw3E|nb{z}4*j7C2DM2>p-2g$`R-QjzCpV7>jar7 zg<QD4#8l`fnVWvK0M(T0Qyvg5_*EPy2&f=x`DoGkO|bM3wG?!y%X7mJk%&{qe+q=4 zqfDfnRDOPB{+{a^igp8JzTFuX>Y+T$v;(=pO8XLF)OmDfMsVz>Yd$NVt*`Gge=WT6 zI6G3+H6EVnE(L66k2%<biHhU%1R8%!9xKDI#Ctr&dw?>9oj<TNKN??aO65P{4~dZm zu%=Bt(DO+WaG#_ekQ;a5fTIDn?H1J$Z`l})9;ff4C+TlC{$2u~l0nV|qz@*N3Oisw zeEaCfA|+4)jXRIqj=BJd!!h>p+m3g_t+3+xpWO5s37+Np4Kxb7FfgaEJ~uFRawO~@ zFq~SuAcMUJGWr)Vt=!IGQqo3jjC8kuInPqEtv##-Sm|rXuS2oyC{=^GDU+rf4S4j@ z<W9U&$9!`Vz{J?LR2c3rUET{)Qxg&(Wj>sMKaIIE$LVyX;CQ97e5YzVKyB<F6xhyf zi3LgBtixc{r1w}=*JV0p2FmcEc^<(ruDD#7Ulosy1oPH0a!p+A3eK6ST@=WPZE)gL za=C_G$&)izYujb~h}~Vzj=YKvX!1Vw(}Syg7s60!t|Yk1Kb#5f$M>>bU5BEt3zEJR zs)n;SY*=jq9B?uY>tvI@vW1?m-`x?3!6KYD^!UEf{XjQDv9!$irk0=r4NdT+T^y_| zvlJP>BfFGdz?mSW?e$PJEb;TNL?Q@---|Q8BA9d-{IjRmBaLS{;j)|B+|KQQBS+9h zYJQT9K4Vux(w&nvC2a6*I@GusmzVoHEgjZWhBdGW2)`^Jg>%=JXQXiri~1m8?8qr! zsF8O>JBDbv5NRkjylRH4a~P34Uu;^+KAt5cCa{nCG`jF^4wl)9{;M!yJRenkNQ<K# zFer{*ot$!0P%ECmEIQ0X%)DkGAR=|8_-&S)++xS~^xWqsekvPLl`SjQ^0=TAgd9-} zL=$@&^q_gC6fVLjBW)x!qE8?|56$p8RON>JBEkg_W`h!>Ad3jr6>y55YeFs<H0r?` zdy45)wL2NRZ$>yr1#4d)5rCA>Y$kHxeczvd+j-Y!lq&QmmEt7AF(CiseLbJ#tgsdS zq)33wTy^;;@9p^{L7pr9$pkmShWw*<`=d@p5o!L%AM3$e@9NnWy!B~+DDc(^(U5#o zcl3Oc<nd?y$q*Y~IFltkpJXP__30L)(Ds~3QQkwJ_+tDgTi!pJtUd{C)yLm9WN|J2 zm`hG|p3@yTXIpas_|5swB`Yw>u7Xig#5_NroAM9($}q}R|NoCNL&<jVB*1J*!Dtrb zM<d?KU|#Jpn7%&g1Z1fII@JTz^HQH{nu*AnbCE*IQ6dcta0NooX6)Mp+Z&~6+fMI_ zYL#Z-XAq&zNUDjQw;RU@@C=0V*QX(6cM~2FFK5<JcSK#4!twK9lunp!j2FU4pkj@9 z@9JcY3t#-!o#9rC-$HlMEywLfosPWWxBWdaipN%}dmYS(Zu;u14*BEp!&Moly%HbV zLgkMNJ6q;A3XnQG5<L#Y@zUh;ri9##V+{7mEZA^=JCAj!<45=|G9o+PM}hTeIz7!V z<xA4qp#TvYVJm*BaNA#S^toJ074~Z{F*6b09wOEQETS(A&(L&NJW*Dz$NiBN`1&a5 zUF^CgH&MJ-tf0mt_8*xUgAsG$?3MYi96?`U2Wo<vPHwHdK$lD00QRgN_A8=g5NE6! zW{*|nSn-h>6_&2?vt7{cPvc}OyAGKLnnS9~X_<CZ$_lImQgt(Qy-*<LU#VS)Qy{Xx zqtwgL7u3)@89=D!hd#Oy7)x*z*9Q7a60qO7a>dG(-Sc?rDO_6n`aBR703ioMZE1~^ z8sKY2Uj^4)I6KAmYiQQ2cE*L`U<80G8G{@f0Sc`D<s^OZhAf>x0$UL;P|1^;CLqe2 zvvOGUv(|}@hr;KU<EjBsX>MzRVOh6N*l!r4BrF!&IejR@YoC(*rSGzhduSuFnb2|z z3XotJksL}-M7V0h2qksUq~L?-$f=E->B9G7L<N;cEjfs5WAP1O;>y3O5n>YyxS5uK ze1y?W^1+1bv(uA2{6rG182K?NxBrtHsn|S@R=Gyz=D|c0NoLf*IORbC+|7=~8(*t* zKXk7YAo;+tGn7_hw{bQ)$BRRYIAy#+KkY)0I*jqrMDCg73!JyA>Gazbq}L~a%_5u1 z$V_lm%|uTBuzwb3zy~1&&!l$y)MdYH<;v`qa>(7+qXku++lO63TR2h+tuutIuZXFS zplLtH&e;JuXlJBS&PZ>MYz&|oz?C6n<upVC{K}ClbV$K|qOaWWM|I;Y9`%>~QN4U> zJc*L>o_w(0v%NJtiQ|=FG%K<_DLW~<T%D1>DCR?PQbF=0*A=-VfuZIA#EGciceyb> za>;@B01!OixmBQzY;%_YT$1Bn!sVqC1$85E>}i2xCmbepslpWY%hrs_me)r8R7ED7 zy4ihTR=dvf6Gpp+1E6{15=r}cV@*31c<dZ@(^_{JDYb0_lnM2C)y&&M%a&+pg9o`? zh{RL^$ZbE2tdde_T`6Z3cBV^pK40*cHn+cxiH}o_H0>r-7Ha9tEU<ZZQGFUYEyW=4 zGI)M?wxt)FcTO~q-q!L?h283#9y_)!As0YWpte{tCQ{=BT}jWV>K-I!6XgHxcTw7+ zR%Lt6ZB$(&eU~=Hr@Ka#!d@l!+#HF6P@NglSIs*6$UufL^$S->ToPm&c>|L{2v;#A zXr<q~F@H~in-%uFxlp=22Nv^GRc5l1<(orSOF~z#C0#8{yIR`a)phyiG>l4nrJ$<? z`FrZB+FmWV*V*G<C2^kJL%epqd#~q*D2-o3ggnBd1&sw^h%YBYT$B#+k?tX0k#8;x z@$G`HF3;Z!&{$J&@3J2EYV4hYd-DtL*}GwYTe-D}0kTPP;()+8bQ#xmUYi~)i3{-? zm;RZ%Gd!T$tA++^*Gtp2p42_(v;iChu3oL0&N_m`+z@HbDX50fCNiCVqxE!$Te%zv zfx_i%x^T#_Ks(YxR*qPK+WrZbgWm3>@qF4zk(%d0>TbTt4K7JcNWX=k=Ipwt1{+X3 ziaGU{S+(5mU~qZr`y5G;1MDs;BWCS6=M^rcHL&}WFL&g|=BNY`x966s@~%vUdnCZQ zGXc(TbB&~*p#!RxYKZl^*&)FEku_e(1z6rZT`E3xuyRcf+nc9*t|k-b2?BT||Ht+E z<6^qL*tKd$-_Wk~;ilzSV!M}>i|zGXq1vE0g7R3&nZa&KPJ_O)EByww8T}K2s!s~I z>m#+GQ4l$~o2VBXv!LaIQP=g0;GN*?V?kA~CvE7fy~n&%t*G2C<7ivI&9zSNWs;XG z^7Yj3VCG#CjI=iA|D*0q;OwZ1{hz)y-E;3uW|CR6LspOglYpQi6TtP!B=YnR$^;Qy zU|3W{GTAqnun4kD5;heQwg5iDj;IMcqG4Z@Ku{4SfQkwvpojwh@2^hxy>}*)5ahl0 z`8+-!a;HyspFXEfRh`;SRk645KG>t=MsQOdV)f_Kj+Y8`(p#<iO%B$-spWS`u=28a zZORnvtG73uHGUmbp3|<4MvE5K>~vo<p(>%Gj=38dziW(G6NN=c@@|{&Z*R^J5`m*9 z5UDxH-k!nq_`5s#LVhy#0HF&`-jN;=G(3$6T1X%cn$4!^YkEWkWzj&zbEpIMR|Jp$ zqof-BP+$7>^VlE{3-X8{o!>D<|5SM3kDjaWZ~+DW#0n6KOX+SV&Pu&uYmo?Y4XVI1 z9uG4yTqJZzjJodQ0MRyNFwpO4ekJ2%zuRCbRr^TN!pLH=E%&$cUnPFgUn6PJoe}&> zh#kh0l0d7`X0!ui=eeh%3n^VhPu2<l4?N<QYU~B^=~Dkq{-$RRS4?6T{+%zx1mCJW zMR<n5^#*ovBEl!f<2m;zvfADLx<EN82{lIrshq~+iy9RE#yzZG&&w~>ggihvL0Ca{ zIfRVe`8et3cW)QFgCg<ahRCG64d@cTCPqg(O%}JKd=-k!QB_?APCD|bFfZBr@Wu@B z@hNspduI;ssM#lSV*~*>rA|Pc#vS>t76*ZtH2jjLYY2punKL^C$T9v9d{jk*2lrag z<JgstMVs?a=bL$5wV%wUV>Y{lr=@pNLRG^M%jM}E*1*XqWD&+Dt-5|<-2AC{*pzrE zj$KV@uXwyyqlt%g#=Et|<8|=rVU~@lDHaLSK8Viot=(Y99|x970ilJajPrP<;98XG z0td+pw;`d_g4U96vsZ+X+O!S8ztMgdOt+2UG$8?@)}~c(C=4dAv=SQN;m01!g|hGe zYe5G=dtA5=VOzTp!!9{T>5Do?^Wob5E^F3`cR{dw(>E8XWq@X|KyxIZnH4f1lt8Pz z3m9lmVDzClNWn(9u6!9ma1t#Gl$bw`yP?3K&S+|dDiDLEz-4bCkWrI%ybWdVv!Pya zZhz9luSzzA6oi~|(3bifp5w1UYKq{j9T~?*Gf*LiP%T5|F9yxf&DYgPmx}C_m6vJg z939CItfP~@hPtSFWQQJ?{<)8ypvnf~q9zc|J9Fg9J0d)Uegu~g$Ed7ep<_~|QxGVc z;MUHskW4N89K<;SM70@;fvb|?^X>{f>F`L6J?{UvxEg1(yfu>?oe3_L7-#p(N#+Z` zQo9o*bTd6_inWWfvq3@iJ;=|qM$_AUgmV;?-)Q$`uLqm;s$>nfN5jdZ!-I34=o4Kj zQXtY^5slP8+AWFJ!;gLaTsSbfH~CY#(H%_rkFI&rFdZZp5LrQeQwN+Haj*D*%P^2( zC-$mQ9vlJ`;_t$PP4*+<EXR!+HEy0M5J=fhQH*FvFclx$Sx$ApZvf8_`T=NlHn&6E zQ}+KtTjxjs%Rf9bl&!~4Nouc<gRzzn(l3*#`{H;2X1+!7kb{6BiD-0YoLqo8c&9Qq zB2N4XLj{oLwNq)JV9M+^;enmQRUwI1VF<4!wUFw4?44R0?EPKNk_sf>6KO`5ceRHI zq#I^;`fK(RernQHBr=!&ZVLUiwJKmcbHB^Go0H*;pf3Fjd*dbDKPL2ZjrX(GmlN$S z^b_SKktu>ZB0$lRcVlg&S@N!42n{>Bs3Vf_W`F+MuBN4gD`rDLs<2A7ro*`;@{TJ2 zJy6`g(Vlh<on<@RmluF&FRyfK6BY=4UC&|3oQotO4s>+(AkPi6)ucM8NRAQ91I*4{ z3(cSpXRPUKQ&@Cq0&*$l6wNQ&u)-kKZ*c&U`i3!p^nu6cLESt-cifn0S6OFx^B42{ zP1^Ow`)#FB^MYl*Yu-xVENc%H8qIb?Lp~gu)cVS(6Qa&IVdyaMT5}pgS{^O22|^7n z+X&E@AQOGenSRQ<AlTaO+M?{!xgFT?Sfl)2a_dd<<COzi7w_!7)2`1PME6aepd*Yw zJGgK<mi!!soDXK8)CB1CQ__0)@|w7M4s<gIcH}FSu33JaBLg_nsHhrt<!NBZbYO4o zylL+v{W*UUJ*4iL!0QW^X>aF+Q=>>iTa)d<hfvs&k2wLv`rlmK*6(9mM~z8O_kA4V zc7!_HB|3cua*oH4N_}Fy?WYtStIAjbNmn~hBI|+H3H<Vm3+S%O*eE8(0jGK^tkq;@ zv)ieooPBR$XDep8=Xp!DrlmgA<B~XmE9xq1W3E6Fkb#U{L%XUhEX}G_w`3t+%R%;+ zey}Il)d>q_z#YnjeiYJuP=#p#J^&UaUGB_wn;!!V8kNn*G0vA;c-8K<D0CixFC-`~ zdY#t#NPp=b&92G!aj<rlqaJ!YrPMvTM>>3(i0LC3G!$XYV;!r?zN83l5Nnj<@fh>I zFY49zO372O)g2vhNSf7ln3neDg)5zF?ZLi6xC0YDC?0qiOF*t4s_O({MT?=ihbsYI z`xmktX!Im~joNn&a^Bb223ZJ&qZ%vJ?tGGXBA3P{OZMBJ_mt?VQ6^ML?Tl$W$QkDJ z0XB|O8?;$vU)G72<7I;W%e>UF>U*~;pALA?$0WhBv>x91<H#mJw8>r#267gnql*Ps zu#{E>p$P}IGzy!Ay4WZXGm8?uiT+F@C2nTV@!4Y}+S1Ce5d-e=$+ouc&3tkTD|{QD zGutJ<9&7m;6-agAF`C%10qmTt5SZQDM~>`j-vA)(%Yxe|`;M#%J}(hF?RX#khTO(I zZoK9<n%qR2LYl|dlEp^^d?gSmwUX{ABv-2A44u~X2xk#hw<G#iB)@;|IUgA{D`$AS z3Twb;5bt*MzYyg0%Mm2M^o@!%T<res$@;1JNh&J{{%OmQ9WO}mi<sn>g1C=teuU=I zyw+Fr9<6AG8$TiCniIi2xiXBQl^5{N^zKt9DK@acB<ZU85)edYmfK(dg&j<;SBX9k z`$znJ6}<8g|7yDk9E!e}?;078u+tPio_yLv0z4a<uTQ=;3kpyIG<{x?65=oV1-D|V zKITYzNV?s?6p8U8hDY#D?8yb3a?!qRm(ZX+8RHLE+hvDs?eMihUlC)(YRwa4ko*+i zJ}IzHj$Z<LZZBeKNHsGdt~iUkq2@QeRbR}9{+{Y;Cpr5?-<zH`EJceP%;X3j7%(HQ zp28wLvVb@ZDmH7_5UvQIBxX{(ti~P)l;yGxllU=1ClgPY9ZUP0bSkBsF`iWr_rhLr z1EIR?{}{PQtOzgP7SWv#R3yt;4=J>m2)J@Nzgvk2@OI26*s;=1W`SZZ!r#tpMybZ^ zV-gITLmrztkCU8@peB8coklCBGc8T_-4YU2z|{rnCi~6&_IQ*!yc7x^-pz+U?OVj? z&bY8&+;Bi#b5T6{!!%Fw^Aef9AqfUfl8uw!C0g<J?)12cQY*P^C1E+7Wxm(H2#SU? z!i2OiDi*F;TyPsZx-A|eftYk~V%4>Fw8AnbYjbTRYmX>7l_T_FM5Z#HPaqBPt^tDD z?uZMiNKWF-CJx#1s_WT3H{=%lX?45AyDn?d(RkSQ#VnqxBs6KVM>>+wp-<AgQ^iYx z4AlHgzQad_153l&tP-j6;^>X8HUdum<`9DGkP;q-*~5JDBWo1-s}$PgJc~KOMy^Q7 z1j0E&&n0h4e<su1NZY-`edy6j_qTf_nrs*Sl`uV~Cb~!?PKo*LFgBXH6&lFS*TvWB zd1?TKi9SU`2xE=qonS{>B^VIwrtIls@kNRwMYBl;Uy;Upf}H4GxEu3_#8nEUqCP0k zung4<8f%S|H9y%GMyv;D#(R=859cNOj_R37_!+)D9<n+fzMAPh<Rna<&t1t@D6iNg z=Ny*&nX^K8A&AmZD)dSGJ%sId^2p9~8xAssvff)K8KV76VpU5QDO331cNe-R;hBE< zdYOD*i0!LXS8VghkT}}UpJKkN7Is8QM|ZMP+2YY?uJM4$3VVzQEY^8{o&0RHb*`ZK zX0584VnY`}b)H_jiH%b^X7E-fwx^iDtqWU;fwk+Rs7p^$WZdiCsl$L(!`ozfQ9Om8 z0y~eG!<YlL%n`?EYx0`_A>F2siheYebG=oCkb>~I0!-~Mzy$3bG{NLSq6eF#P3B{* zNq4B<Loym_#Id%1d~S*SC1FpkM9Nd)S!L-G{+|mPg{<XC>ngoq%2XcieMUtx<t^Rq zCvgRN#dcF&9T~FaJg3VV07=J`^6F4=X9ow+#DRmdnJ2j;*!K@CjzZCEVlQ+oTy+_I z0L>jFXPX#G01EHg<^R$M9_&Z8p^?b!2gem(QP>eTr4(^Mkhey5*ubuY`aQI2CSRcc zmbiLJsUv;2kz=)aQY`S+Vg8a7nJ4=dvk8z_RaOnpz=LwF!<S#{MDnVWZUh|y?$*|+ z!OS4gqkEuZ2rbqG1&@h9Upc$EqD%JViZ=OE^oLzN(}QyT?_cDX$$6x|6Z@~3EUEqs zwse`<=^=e?ZQ1*>BUj{=Fgv>|gM8L|r|wFJ@|zqBatpkNcn9-+MdFWyuZDk{oj>zM zH`_CoUtt&U_ZyRLTb}O@VT*s9De{80m&qYu&&vwlNa$&3lpm$8K_kKOII~-NZJoVB zqa_cgp;RZygze-;q8ewKuj?hK8-HzELJE*J!nujQ)j}^?n_!L({hd5hys^UGfX4!` z#1>KbH}sUYJAm!vnO%U?(d3PM)TJI7TpdN#C(|)I_ZaLI^lnR?l~oWOF^x}=JWt)) z@x}4w#tFVa;>~>20fvAKLxniU<U7-6Pb)r~mk!50%<<?Pjl`oT%gDs!hM^orDHry# z9j}4|3{9MkCgiS=$}OI(5*At<#<z=I697WrInE7RZ8tW=JZJ|zt<RN!khrBf;t;58 z8<TuLdOg^#$}CBeh+%UKaqNC^a;&CVXn~UplktMNaS2}xSN#`}4M-4jJBFz22&S(c z^f{TaWOf2geML%cy{>#$fZdCEPJIIt+|I{EY5x*oyyvTX_dGoX?DvYZcO+qOZ|4Id zMD`YbjTC_d^l+~&tPg?6{S@0&ZPjG0j%>ODX8P+d6kq<5b%MW;@ixMX{69~67^QR^ z<hfv~padk(xs_9fg{<%kyM5BNHd!9!*M?0amS4@P!;Wxmh<ecG%Gd}1dmK#dVr&1* z2EP9@Wgr<$&IPw3-^s2=<4JSYcw3i0(7g->@@LW$S#lPeLE}^py*+-0Xr*9p7hvV+ z-y3J6K6~jQ6&{YPOFmO)-(9)w9bLd$l$;RBI6aLcIKuT#Bne5G>_@@8X!-X6F{VH` zH49W~Pib1N<$+E5D(O#U7O)9x+{A#2bBXT*@AuFe`B8QuqKi=v0KttI34zl{Ef;pC zrT)wN{e!%OK;mw#Mmrt>1TNBqj-y|sIH70WE<o~(lZ)8}P0^p3Bs+-6_tqGBHaS^= zDMpfoOr~WXn~1dF`2`5L!nh{ly<Doz6Y{0LpA0h8T8X!V9bA=?o|pP*@a6;Koo2<& zlj4Rw;==9NQ&0rlSb}BC-9*X*w-ep!SJGuB`$E{Vo`gN}M50pIu!n+n9Q<451WF*h z0+`sJ@*{(h`7J_$1DFWsmk%%Z{`w{)(d}U6tj+WmcP6F@fK)*C!}1JvG6jLy<2|&7 zI^$`p7j_S!6MwVA|IK~aO`#GR(8UYh#(Vxt37(QI^VW2Yp70eOfT{k3ctCz}Tq_2k zc<wsIQ^R5gqZ0_A?eXyT7`qC8kfe^&+jT*>d3-i<qf$#~h7_1ygTNIJ=yLV^1`N}T zkG+(X(!#QdC{=8&$@%WaYo?mfqIicB;xR;S?;G#RD6tA6h(x(P>jyj2W&q1(<l*L; zb5FcYNPEU@AdEc(1cXx!Cg0i`5Nd$^p6uuuPyBumdHRykG3v>mqj%^^<}$4=bvv6s zOv8!n9?t*H3uv37Yn{D7q>YejR!SaAWH*YN$?7Om{iGB{N^TlqWaWD1tlaRM?=vQO za-A%*1v`5|SGu+R#d&a}-II|{(M!dk5#iY9Vk{G~#(5C?bKqA2J5L2EKH8IwQEul< zl(z@^wdQuMM;IeR>g=F!<7)M%2ifIw@+~?_;(GYAG>^86N#52lEgtkO|AMTBji7}6 zj%c$6TgFX341vg>I%rb7^PXH2j78KZZx6CdAR->%CQZ0ZhD;UpQiU215nG-7g{mtc z^#+!6`W$SlJa}HLGYFBLCFbvpu06GyzFdeJRF4XY<IEWnmqyzLl!oTuVU(>Q)0E&m z+adF<NmjXJsBRC=w?wYgph<O6v75FB{9GG<5nOdR*T~-P|G^{dk^KQDeiBD(MWQZC zuhO>iA`Ucri+_ZZS<2tFC`IEa*l-eUr%1AmtDlP%EDbh58roNihSKfDFE+$6S_*~~ z?XN#|555D$g*jqi3IX%(F5XFR+=`E%V&47SKGxnv9I68;jwWiF*DM4t#a$@7<w<V& zV`<8sj>5X9tpzK|_8;dl9{-j;(r7E$gyF`RX<FOeW5%t=ku3TXzssE_ALG6LkmOX{ zX&yz=WNXUWew2?IgZ*J(@@o>Jv4`-9{HT=kzYxArCYS)<Pul&&Q1H~XlGF0kCx}0O zj}O@?W-W^00`9QUAh!8XpY5xgkK4oft}vsQAz}Rbau~kUucKWjqL|D+ZK*(F$;IA{ z#E!84q@w9_KBGqaZt+HHNqhk~ux-lbEN;qijhWs0m0a#YU+?o)9@DS;0GHt}*`EdG z!xJ-Jf3e%{{rK`h+~8;%YoTBEtp9>PRog%NVc>zuowzXd_E&vHJ^Z@g`qJ37w3^UT z$1vFl#8l}fAsp^Tx=~1j?A9p?q$__}{C?UcdFGzbKX73E*ulPYxF4Tf5X^9tJ=S~v zS36)v*`vL0T$AF!%i5HKU6SFRRTc2|r5>%_Rl*GosxHazf-RNvC}cXb|B9lu7+>4- zU9za^(s$`zCe?-SU{J+QAc7M(QmA5PrMt@kNZ6S#agN;3+QQbvjpnQ!I0gfGGm{@} z&wIRKK=JQ#@I<6}k<UA{{WhKQ^0GE!o<bUgfyvp#;){3xc2<WUJt0kmcT%vmv)a35 zWAYXTO1@3`07e@jcV)o4w35CcgmKA_80Kx_2XQ5$V@0xG2A7b<wSuilGaH3Zx5c;8 zIy5RLI6F%E3uUvui7<y=?IZfh%nj}~61{2XVg&EkW4!+j+z<SPFqa#Me*TH(kTK|2 z#P#$UA5`Fmm$&*Tzsgas1i&iMvq|=#Z4XtfkpJW9>PxXg%KH;}z>t#J=R9$cLWfL6 zc`8(tr$TM9X9w29iDw6HAyg=NPM16CudDQrf{iK_Y?Sw4BSjY_iZk*A!u>oWelbOG zqTInrS?tlpJjj1`D#r_12TxO=%`Do;sXbICZv%kMc8RN12&_@^sl5PSNSuQ?1m`-t zp$NG!FzI56Bm0$nQPVrZ+ws_7gyV!ikqdjPZXkLBaXH(vl_-V9b=e?pUziReydq!x zz<AK}8WuTD$c=^fa=gfPLvO3<k@?T21V6*kWH=G^%IsWaWZoLjSk~*^oHamqjA|6c zw-r--s9!O3r4Mbg7hItUREj$ESz(_%K$UhrTe8m9{$Y-orLKiRVV}t%%5j9YQ%OXi ztXW;Yd0!8>yrvi~(+8j(rA)bLwm9lwuHoiwY11lwf%hI_Tw-NPGDM2jc+d{adq4FI z3wN>RuujqNWEsgY#{=P^k}*28huRQaWJyCu+en64W$WfB=z}MI9Ir_iK{=5NljEI$ zIcFxHor|%-Pd080tQ9#$8}!LeQ?kBR>lgr$s8v|&>0)~&+M3$viiHOwe<1~3niNc@ zec0l4rW<`va}ebs2=Z?<DBsq~6sqj&<m{rN8Dp4$`3e0!*Ff4~k4t8-hiYpcrL^vc zB3e^S3%Zv%7z2)f7fnO*agKc9JxmO!@D;3u@0YT&O?Fln<#+3fwKD;onMC>OFH~@h zmWWyhE5LLIMA#OwOLm*wr{d_Kk*&lg-8CD~<hHA4S3*vYY#QmCtp;6|KRfj&qgNvc zGF?h_FcRmIIYL0>!S;A>0YMMUbR)~7uCF!@5x|@U#deu|a>;oW30>V=RA<+?DTm?S z%x&!yd}0*yA<5b9oWdZcwZJ0oo*Tz;)|+(tCRkJ9f*_(qz)we<Eok;vExBJSAhbr9 z^8_$DPKcx7=A2qNfHyy1kK?SAG#QR~9jc=~Y{@ykep0riRu8}th6#FFT>I&`@^jqA z`xE@XA>Lyk4k?*oL%j`rPJSdY5K^pYnM3JT=Q8(97B%W*X+xHQcsdzYD&;=3!w3gf zmNPr1MRTzOuySCZB%Gh&HoD!OBSQEvnlud@2WVgdKz0(0GK&ZgC+eQmhRA-*Wa#H( zWyuVW2q%oh0>HP67p&)xk^t*LKi`aNuU8mAZ4g|g3zgzI9u$%hTUHcgmpXWKJs6dG z2w7LT`5E{24LJm+$#FH#WP84^p_j$`>;53o>(|{%LBcxq4LC5xYph=--2`+(0m*4p zaMl=yN4OjbTLbB!_myG16_o(w6}h{D&=K1i%(Ymz16HX{#bI^cggT%&KAqdVF-w-3 zh!aCPjaChPVK$P9D7Ook9JG$t*pGwOk=K3=I-Xh?tq$fRX9a`+4AkM{aN;>n1fC*P zW(YKz{YGIdzabeWwDwy8C94qU*l>>X4hqvC_Kt3b5-EnFy<B`pWdgK51X;mjbIFRq zfdUxE-#p)_jNg@P{(4A&6xs8YXXo)1<=0fXrU`bOR%x{^v1^aCX<COc2`Cnt)mypb zxpb`IVABq3<8h*ha}bHHcU9BrJJ<<hxaC0f8cY5J=urG@Hx+rhgwa&nqYIF#SU&<1 zqTJr~0r4$aCu9sHcs{29IVqiy_1p|ic}ZT<Ky*t9xgm09z{0qO{p&y3XY`$NVj~PH z#-fx_TFruZz`=f{m=_KT9>vZmT|r3{HARK`EQULhd7LY(nfwbRZ{w3<8T?u3_Kz2^ z0M;BI7hVl@$eoPhee56weQu`*r#A3>vmHcHKO5H_e=@;PqK)B`VwF(5bHWMwq%Eq@ zTW`)~HF1-$Hg9m8Nftbx{`#=foS1_CsT3sB9Ro`7mzVf1sxbDV*}K~QOf2o7De?PT z;yqg9>Q6aNpFJ}>H2!DgP&FmC#1BCXvcK|tiF%i$pYr?#l!f8e#U2^WL5J<xnS^e| z$gS`Y*obzo)geWWs(e(Euo&yyV7pxD24Rm%<yZPWkt>$;7jvUf9sxecF0_j<-L~lp zJq<WPUPtQ8Sn>}#dNW|!U`|2B#?c1hHM`k_cBP{lpPc2UrwJ6ihO9BQQ9MeY$iJlu z84)Ka^2vY>5D{lkOwT!cFzQa0aqhzR4Ho!LUuzBWYi^^|zU2($+LGWM>tHlb+%B{% z=Wpkv{B5!;&hgB+Q32m1z3^G%#q#-ja<zQJ35<*2Qkt6Z$Av3-!)c~o63t_^F~W2h zRewqsN)@vDm3HOAHTa@jcxuA0$%Cl6sVuZu*AN%d{DCgbQ$r;ob=|Tc>Ayk7N_<yU zQq*4-ATulrNTyP2(u>CG^e`LY%3{6(u<~J->2RaXA@H$mA7peg2?Z{;Bn7~y1({Hu zVKEW)Y(Zqm&W{KI+cS03Db=S*)x{J*s%0Ti5n513+WwVjmlrP7$3k|7I&5@e#LH9+ z2$_y2#Sd6u1<>JTw&dGsk5;?V|Js%#g8RluKou;ff=Vg?`EGs;g{UnVJ}Vaaxsi%I z&*+l--psS^GP@;Q;@|hX<j3`2dh%Z^cG)!_A1mk7zOC`lAk)bTD&rp84$H_`Pn*Lo zZB46^ZVevDy~>sWADXr@u0K=P-;Y{hxD`D5@?0tf^6-+1X!)XhwH~CX<Q<hc)2oYl z6Y=D1ZBVM0Y){S3ky^2$0Wl!tra0XftjUho&L@8a);^9B!D6LW{);WJ@)6hMe?-)o zmYviUY)QflfpR)SOzflxZ!EXC?OCml2*CvT6PVbEvQufMA!a5{&Xz@{CXUZ(&+Sef zITeOu8(?f_fNP`ZqN<g(ML?8%9xM{zMSt)@`TvD6I=2{@`$=LIVVn5t{Ah66dbuBW zCKYG(Uh#<I;{j4Dg6)E@>_F@~-epX0;c>KtA^5pGy(j<#Pv-(scr8b|1A_l_E)1`@ z&77wpEYl-&c0E5~Bxe(>kqQJi&5=gZh%2uh2fs8Iw3IoLpBn7}taIeNgQlGoUypJW z<O1EML+FQohQNC~;5f?*7FdOmK97&^+zb}r9Lc*%&+Ki84oG_Fk=<PaW^T+7=c0){ zN(}4}jx(kfQM(UH2(K}4MC<j;=X_@{{aqL?|63cG2O_&YRn}+{lR*QlyYExlGC5>T zNd>SHGd_@UF_U6-DOi>|r)`j;6Jm4Zx>J|cS`=9u(z6}71@nVg7`U&`(C$Zsr>x-* zO}LYvuV7`Un)7t=p2W8hX+~8A_Fh&_RdpQA4`=29Gb)x-JE1f3#N9ykX@W1%G)V(R zz7QG3p0Cu}7VLYoI@|}&Gq+%n3-jBye13-AMB`0yE@Uu!buMn+3QUZ3_^1HJ&=eZ^ zoz)Vk_;t1`-Xn~51YxsqRuHXry>H0OXNWIam3V2T;j<rZ&n)P6D&Tv*TeZb|w#T1r zi$BsD6Pz=mb<=GtwhP=}P?7wS;!eJA6>#{(N9nj^&W>M*CMM=^I?Q4DMM~ApF5XC{ zQ)c@nT!O1b6-4|nFsgU>$hh;f1srnhwO<}swqL@-?VhMTkIlLQOG1wi({jMzbc&bz zd808X<$J|reyo3CUPK4Wm`F*{ioNmzoqZb)BQ{s(drvqOq+*S1WUSXdTJt+NFf^Jt z5FA8oaP~7ULAS^Hb-?n3a@eikoVSwk&`SPQkL<@4Fb@9&XScCenGtkIQG#}4t(iD? zY#4ELKZbv4n)L+ZNi%;GVX|^5Lvm?Bld~Ih(GbtmYkS8d7LqxT@EeA_1Z7XkLO4e3 zoRU_~5d(H$`lor33<YNATBm|*$q&_?tWQ~amT#!uUO~1-wlI4HM*zD_;<YY~I7W^l zFq1nFF{~kUNk+RY*5MSWo;hp3Ba8-W(EO9DgPQTGB)dkf`DvIG#drQTQ<jisoc_Ty z^3qI&ROlK)HC$}X5Bqa3&Fo598gJ%y9^%@*XW#J(KYZf6<;xSqOnX-L9IO>#EB{)4 zxi)}{UEH?S5h+r0$>)Q3r&^kJ6^w@sfIssaQ+fGRhdU;mr&S}bk!<k8DcvG~e^<oG z!w?9keey{iR5JlyJ-WUTX`9{%9N_$U?tS&rUxC1P!CQ<eIb5I^i1`W!fgPd0ga#pI z1Xfjx^e`LKUFdB`5QDjQhc0kp<5b{XGr8LH9g(u|qu{~ASk0IE1qyj<PP;bEZh}Fy zxekvjj`kBI*AXwI#rtDU2yExgCtxgH>yub2l9aqWZ>3}U^Yg=#XT)L<wsB7BNy=EH z8$5ITO~19OzLW1nGOf4Em?7A;aY46IZUGx+y@HMy8s$&540cmaL$hyD|8xxxX&Ydw z@ez1I?Jr(Ov}%bk5}b20MU|a3zjc*Ei^R-SE2Cs=@fE&xAp`Ze1-sPRUCKVk-{Z>w z3#!31lIu#-KCycz?5MEYwS@U-bf-eml2&}&-<g~5a`<elaQK`tmsyL$^WgE>thEq! z#(ae|73|d<xjbx+uZ}I5-|Ydwk)2zy!4I156bD1{w=uBxX-KY=>2+KF|0w^<cr0VG z4xGxE>{a9jcF2J2|9lY3ZB#NA--h9q@O9c`Hm;BnIG!(KuIH9lb-2WH%gf+vst$*1 zfx84>QOo^yJ*ak|r}^Q+b01Y?zecbz1c=JUK}?aQTH?OfT8?qLNs((EkI}Vfe+D*6 zC@Kmo$nm#Q6feSZSD#dgU`ayjSgl)e4!f}qu}qRmFd(klN1LP+F$rurVkrW#p5xn8 zCMe6i(BJd0WQojk$qG<8iizx#J`zO88S(avej|_WPhT!?)TTw&La(a&<Q4&4qJrd- zTN|8fdR&WA?+|_wQXlGxVIA=<G6-Cf4vuppwe}@-&FE}*d<;l~s4Qb`vW9W7>nyPi zlUVA>1^Aun?1^9c17RDZc#nY$ldH&fi3ru(gKEdi)S}I9(PqZJN{{hD9$W8THMU+T z3~U5_Z&MCtSgDrl84<313CXR44~&%LVux*j1QDsHxmn1DMeS{2|DF?F%^iZ#_T-K> z7(TN9N`1t4I2$e6MQqWFx=sIesR@d|>rmt-b$Fj;#{7%!OmXW&8EWz9z<9`0=<9%E zFYT5(xj0aE3#<kh674Zpfmw)_c&v7drCNL+y4+#Ne#$L8ld?ge*zg@aW)C4=51b^6 zi2zGbNEVGwY>rlArdGr4<^-Xt6Y;=Zf(jmjLB4^alXI6KN{;?c{NKs(_PVema3A;| zL*(d$)V*1ZJ@r1s)^q$dEa6zK{Y)Q{`|^D7)jHQjq{nWgexlUcLGe!c1GRCC_8kOO z^mgSbR>Wu{`~-KD@<P>;+}%-aEY<*!OPKo#0x^h5Ok6caQfRL>!XO%O`zWL?o$4VU z6!B7xsBX;O$AYL4>ABjVBFic63G>I=h6RcfR%&x^34uN$x>|cNtjSm`NYE~49oc5+ zMOcTzqh|>C;vrV0!Oj7~LUo${r1zBUsZCd;;U<29I+gNNcwOIw3-U3B?O`wH7B(&v zhCZe`@XPPOn)>9I6=GWAmpuwYH+)?@(*N;e_|7N~fZ0XvRdXKc&NDxnFAti@d1i8+ zc?Hc-TGM@V&ODuE7F}lMEOVc`Q?%xs4PX|_^w=$y0?3@Ppo7Nh{AsK+2eV5DOU7w0 zm)bDSrguYLY^OBYa%Wh>t!5R0U(<+$7VW1sX(d^o=;Wr*fmAmkACv^COf%8LZr+oo z^aZeJP~7|p{`3kn{wr>(JX^A+NCyKC!MNbFt5h}ECC-<I5X-f1Jn)FPS%){3S7UIV zQ-OuEm=-RYOBO=zu=^@IaINHy2%iaM+YaRqovm;Wh>j*iDl!q2!!$-?VrtPvtg)%c zyW7L-i+&`cuzmDW)`MjTsfPiAH{;Qa-4u+t1s{<4ofs^F)5PU98Qd@WGvNF=ep00W z5%D-C;WvVUl}oNopOD8-+fFngzm~#DIJB-HD84w7a*tLv5~M_p<Zi06`W8dSoZRv5 zr(njBp>6w#r7rrKOxgwIi<&|gvK59wD@iVv8V_mL-g36@Kb&!MdA)O4gaj$=M`O57 zaYA`Yqv{eyUhuoc%cf;%YE!0nDKZM0o4=N&nos6xok&@5HhoQZ)leI$P$4+`*gm4> zY`d33Cj?n5C?*BpfBHh@uqFq9e=+Sv$JJpd+PNozG!3}N7#~$HG*bL@s3x9V9NMVH zgAx3f$Fyia;kd)$a&Dw^s`5qxLJmVNYj2qD?NM@hn2CQD$3}w1D@S_1;%<Xy4yiK2 zvEg1!go{c{5ru%3SHnpmPw)u0ra*tLBT_9H{*-9nGwBOkbT}XBlMOIEp+&;{!JK+# zmr^<cnGTT5^`ub>$u}-LL>T>%{92FH`n{VUoe>bFAau@7^#ofp27Gccvv7pGF`+8S z`zn*|;do7h!ct%plFujrcvkxR?ezC1$KFw-imNmo5!JyYk-=E|1UhD0`~e01?#bCH zSs1cfyX10VO96u#l?ICO?yXZXOZ~<E$?N`GfhDCm&HKPJH9EGjvwcE_$`7{k*S>Hz z)SO58W|eiwA}Mj&mzncX;81tGgSN$RHdue9F_>}Tj+KJBZ3oT<XQaXzwM@-I6=HUQ z6Z!Os!Shm+wT72~Lzo<F3^JP_QBWY1;n|fz1NJDmY2G-lD%`ciF^C2HISHA8Z*{Z5 zKr3>Jwv(PuxGd|Ayw6Euqt*}!7gw<+$7N2&MX2a4A~`s4_<{_0;AF_@G14UlZZC0s z9J@?MD|8}Q{5&_NDX#cdvPL!&W^&`gb}>8b`O}j8D)bXD^Ra&I$)D&f>;=y5@X-pB zvJkkyz;m{0K6^qQ30<2!*keC*zg~>Ylxv=fniAQX9MEfNX-!D5LZA3@J{t%dzuo8{ z(Bu-~ynn~pV4xe0JZb=T)56@&$h*8d`2?;JG6Pm?`=#C?nz<b-H$UNfl8lVAX%dT6 zFG8kcDmut}ZXeb^q}L8j{v=Four3FNCqTI`=1&x*<dWloP5!m8OX|<nj_rb|7*G|9 z=p-S)E(R0t5Ap^|=uH55XM{Of0V?fGes#S8S{}eXnD<_OW8FM$H9OlYQsh}2y(SDH z_Mj;QiYqOAtra>XaUmu0bOE(e-IA7ZJ_oIU_g=hFEr;SHZj&Jig%Bikik3ALNofh| zAzsx#nd1E`b*5&3q{S)in&cMOE*ZcN3~n#eA0a22lkkc&b8)&?$LvXJ8U?(fWpr^3 z=!)X(<>y(XK@=x}RUE+#!2(XR3-e`@S2jqGtKeD*q9Xe;q^~~?3+*-v0QiHX^73Dl z6#WJPR^qom&ifK*L%xn8`4U}Oc0`fg@;0WbO1l74vY-5^fj3<$yoqxc$Nl%9eecXw z_A0~u8K8#SIMOaBW3{K?R~{N2e}YC}fI40i{aF7j3Sop$ypOU=Z5}nKW8Qm+p7-}x zZ-IqDOON(b@Uzg~<qqLDr&hHDV7()e4%oVGi9!)X3-NY&(F&)+w5*Dgwl+h%QvMeu zge;|C2?+UGiASe$lGyd9wfI`l^oX-snr%bsd`GrD9hBMGUe(#uI-{Zv7jJ@Gx}oh* zHMJel-P%m0N_{M>mVLuBr*JJ!%1kj=X(>GOScGkmrKq$Kh<#tfq{K>`Igha0jRx}A zsbv74ibX0SQwpavoZJ!MFrb1y2y!sca9lsY=i3QvL{Qz;EfgbagTy@@0lH6#d&{Y? zYL1iS?f<ys?IN^G*`)+n3QX(gfoYxv%f)IhVDA;{UABJY(NwlR+szRLB^-_HIQB*A za2E(u=!8Lfn1WU3;I&Le#zYK8;7W)*l<1qA?)Vv@r(n!HKbLbYyYOxLnxnp`2b-T2 z=MMmqI%ZlM7Y_Dr9-P;AH`mK1dORj(0LCaZrs-)voafV+(lmLw50}Pt$7aTKo5u8& z+&C!@1sw|EY);l$m3Kz<cb2#+w{NMlM>f+LHPgubklW5XJC&|xXY-pK=l7?ZQ<z^( zT%fKZVEWx=dbv=&+`cfKUyX(|P5lVwJ%{w4r6Da{*f+3V?AMv((Ia_xD_8IM&GhsZ zJ=v6W@d&)ys$s3zOlRxV+2LV|y#e(>0F{4#5u1LrnJ#{=E*9tVnI`n`{4TbNoc#!k z0GLHuTdP&9^>G~%=kpV!FGcnM3?e8*>BIOTzvP<Ko%2IwKspGj)xGm`pY<?mmj8xa zbUj2+L#H)LETfP!{mEamx{~}N=MnY!hxDacnXa=$crUg%5s9jSHJ4a^GL6mgHV4H0 zXT_tw75D!_yv+idr^cgLB>k$+Xj(x^*MW{0LNg|c{wS2Aeix7UJa-oPiFcj|ma^;> zIE#wyB@?n2r-WL(xYn?Up>DY+c7Lx#tQ`RQ5$CgHN)YjBqOgabWBqD3zf}7q`0g^w z*9EBj#lhU)mN}TGcgR?mpCAZQqmR@N+O2i3-Z(BM4fW6SSGn#9<s-IeuD6Ayz?j`r zH|2qo8y%AUKPni{0mdKIFKhIf-f;YkGnE2ij_*9(?<JrLUK@!E5$Amp`;?AIRHn=W z&Dp9w<cc(4Q@C(0a=?7eY@bYH(f21nwvd^hjEL+X#qle6t6=|668-92NLsmZey0?3 z)=g;<nuzM-Lc)$fLY*LgL4Dc}0haXM9BzHdAsAxu0rIi1*+tXy$}YA~IB0Z=zkgL~ z^L>OUSoL>Z@fs1kv>exBxTimRJbmmclEkGAVH{Vv441dx3QJip#*ZdZ56Q&2+v569 z(pS1xKR^mBBb#+t8}gsg((pUS$8hlicW5)A$D@d(2_m)?{+3I4w6CL`<((0o>@Qrg zKwwKh?qUHjIgd{w6d+cJXfv5S)poCm^E=VHmz0mjIQL=9F_OhXo!w*LOuoRWmMe#k zUt97KelfFV##Bs{VD$HJho#H05eK^@(z6WCaY0-=+W(#5qkLta2Y-f})i$=vTOSOy zsH^Qp{4=$7FxX1OOm0U4kQh*{9kYr6qWYYwUyjO+9qR8qF^|Hk4*sk8PW2%Hv8zAI zlXw+#$z3VXLRe}Bw5yRG_VG~Gas-@-=+Y4PKRK?uGVXtH+_XpB|Khm8w-{Uogtkz( z3w7GXLWER7jY2fBDXnd~Gb;fC_eJ2Ow+&q3ym_2hr{Ry-(y*tn!TQM0oG*u8-rh_} zo_tN-e#U%<O}HU?=QAn3oKmEXfN_6!+E3r|g0ujP#+2Uk8NKIIde1w(LvQv(X~-pE zLVW#lj)E?OGHzWU^NM%<(*+u6rQHucNA|4_ElbAu?<~jQ@JP;%1KR^O-oC)ORK3Eo zysz6A<U4)rd?AWX9t!3jr@m{Q{U3*F!k?_+an$(TkBh3@2b|Yy%%=vONz!@GF~5q_ zTVtM@anq;L5&y_X{LLOCCdW^S<|<8(<m^~R9GJi_vk_AV!bhAo0N5*{=#=Imp53C7 z>=xps$7;YNy5KK`3k-Bux5j$m=EnL=I@T|f5IB6``2}KWm3V5s+7~JFf$v7$i|kn+ ztk7GrMLac!PjSkwayK8_Z~fIAw*tp{Zb7T>*8Z@#0wuo0$(~!F^NxB>hfs7aEmNO# zudoJu<K_l@9|LX!xW8DiMr`yOjB0j^_fi#HWHZ9It47jgWHX3ZEAdLswDHd8^!UYE zc61u&h<@HSZv&UX7LV1572+)r@cd!1OF&?AP=TBoB74r!b0XEe&xi>2z&2A0-he>l z184=Pf>uKrPdqFAaLNtyik-<N7qBff#sl8sPY>pebHvX|lwgO5?W1&3-0DTqEi!$} zYQ#?daafMBtnbn{Ym7cX3j5;njuG)h6#WixQ3W9O^idjSlYK3~uE}Yl-ixea2}+%l zgEK@;3FZi<-4yCWvJwMys7XP;O`+^<suJ2@8Q&-yk^CXJN<=DhKSZD?7SLgKZ^TKx z`kv9`sw+aZGy#e*D>gWV;QT1^8cv`dEnySIL`YVZB5Zn+;m|;ZU(G9EPzGRkn#GE4 zLtR0D(kKutwuR43BJ;Yk@anmc+$=8a#u!=j<bC|kYN4hHTnlz8Im*wU1ap63nXG>W z`3-_ftJ4=btLk(BM3bnz`M#awNU<VPg59i;?9v$LW@Qh=?;}url0P*GO&4_L9B6I` zD&dMR1O;))<`l%D3tKK3xve+Jms~%D)_(p^FD234Gy12jTKY&-!ASpj`sAQE`tc|E zyOYxCC25bGp1_%X{PX<Df075VO0tlGpxXgZ@%9sq1WU!h<coj^;{yuuUZ~k59RT%Y zf-o;1<_0ao3jLO_QMtO!)&v%jJ|<V7i9H4Lm*GJ#c0vlZ(2PJ3I?=yv`o}}&yiHy~ z{lS5Fzh*1<-wy^08XOO6Nhf*w$aGJn4mF#Je{Rsxsp?%~BSeHPXCj;hyQ4{!FW4_; zNv6EIvOOcHlv-|)>BVIek;_2Uk>cqGRRl}y<=8BrAnlEqE7tHhQI%4zwZYoWJf7_= zAgXxqL=7s~da!-cDTgfB(`6-^R(8wJHZ&wVVsvYYhqkxs^AHarOhkl?4t%|kF4=eH zv1FaC9LI){E!U#yiyoJ$pbF(KXQJm*h2E`4p+2CrUisu@+(ih3sZ$ja-bA3k-3t2h z0|C_3#^&UpCx#NlQUE<VJBf*r-<)14IqhQ}PjAeBU^uM>jqI<Ow1Vy2v4L>|h|j@g zR2Z*O2eJr#wja2tz;~MMaV8ZSugn@7Y#oims4g|0TT^-ditJXsg$fF4RBZ(b>I7#| zIzdl1$apAR=!l01+B_Amm$}K6sD1$<!5SzFtQVOGEg{JPTtUr3P_L#~_LuVCaNdgJ zhWfp7o={RwW&L=&8|1`RLX)qvKZ~={n^;GGSWyT6QNFH`=}0>=3+e0L6_^Iu+A!^{ z2N2)Zw<f1C_nusjrDFeCvVgdrR;{iAnjA4VMlwPwRjbbc)8BK<0D5r3WvIH6sHORt z+;Q9sjRatYMh6R4aNX2N0{udrjyL+-V`{xsn9BR1;;jZbMVKr;5!vH&BRpUXw9c-s zSgE!qdxV(AaV&vCSjO>g&Qn*Ycpe|PmYlZ@b`0G#x*>XPFde!NMo8@mI2Q%AO$?2N zONE?==@tT}8`k-T3T$On2&Qqxo~gr4<3T~1OJ#*12Yp5_Mm7;W`ab6h`?;vyL?EM7 zYs61HlpNd;kF$@J^OJhpHFU9Go2CQ`wEAv5S;O{?g(l8E)X64H>aivjv2lbSpg<O# z#woIwu&yUEX)H~OeQ5ABCxIE+9-a0dt?Q)^r=SmD2R33BWuWGP*8qSAkFv)e4h2QY z7XnO?WpPPw5vn@_dsRiGs^lbI1&-cOf-Vv4p>u?-!;|TPvYo{--F%08GXp3$&W)0D zeO#H7I{4k>fmN3t+diCk8(gU?V?C_Q8V~+uJHpLU5Lm11zIg=l98C62@yLxKy8s8o zFfWjm9n6uTbX9OCD|AL_3(3FxE&iOD!iOyVC~+fCNIm31e1JH<MQk_TAGtUcm>3<E zoE8o~N?L^%E4y%{v-p{4nH~pI$*&@t7Oza%^xufy7BS#b79I3p(<JvPXVdw;d+_PS z8dDjc2B3jQpRh3S=x>Wv^kCAj%?n)mJJ#XhrmX$n;i$pD5g=brl0WStet<~@aZh-s zg185jIuK!s1qak58Lk|jwc6<x5!a%7rK3Ni((BBkrl5sJEk=+t>z4V`astRv5q=k? zJ)h{FX-0o+M{)4IzU|Iz{&7-j=0whp-k(M`NY<uNoKZQ4CNe1l_7WGLlI|04OOeqX zF*zjsuzRFT4rEbI2j0@ZzIo)m=1FmTD6+e7gur|94+VDT-@`%zMufA4xPmx^>g0M< zOL0y@7+(+uii6N$p@4kiBjijf12p3h>eTX!r^C4`q@%D2`6E@nq^x;Z+U&PWPmf8P zNA-L<RQu*^VR`cmFJ+>>or#BeyN-}{BHvlrCw-6L=^o9C!`9KedAbv(`u4Z70Tw?A zb{d6f^BwK+P!2Jr#V!_M-V}d$17ijfS;GLF*K7-SL3ceEm?VB>w--ib+d|(AtkYBQ zC3bZgiS)uUAIdBJ2q_WqDMge$O?5E#s4Ak6iaSV`?-#ezPxArVOUA6lhNf5@iEsX2 zW2lbSTZkiD)>bly*Lv`V-ZET~H*^Ld5${`M4KUciH2*MP(T`8`>muI`W8;jSSH37; zNO(lLzT`4YIptB#@othB?{agy8wohSuj(Vgg<2PH!)wuWy~|Mu$!VTMJY18!NK}tl z7p_$xjB6M|xNhwG8iu0#%N$#Zavr5uXcc`4dEk%k8<eJgBD-lgpvq0o?#c80VcN5K zT+IEIqI$`fB*x`_J;qF#>#_5*yy~x8pX6Aqel$k^#W9_3r~z|tP48b_gq8%3zyN1u zUTM9lq>pS`p*Ox2dJ9yXh7U{$S3e7i&Xn*B@i_kIWc^zbpq$K!C-!^9cBb7)2qhZ9 zFPV+EPIb{#G?w-hMs7<}wr5V(+;)Ps7Xe1rt$&3(F8yW1c}?IkH2Y_khs*41>Boy- z>;3hV;{AY_f2QZxUn%>#f3?`rHR-TVD-Juri6eEzcUEVs6gYiYyaa1ahA3K`CObJ> z`hoVkmY&_~Q?QDufl=@XOoiAeR(d0x)`8f`zwt`_gH)y;ZWm5vf4PD<8M37ms82v1 zAq_bqU7CJ4wZKnqvY+bA?JMg-EtUvg9Io4Gh+F#9qL9BviPb_m$cp3-K86b7!<+2s z)N28My9j!&V2s1*$P)aS{=3mp*7X`o$_J}#ZW=5{G!E&~cQGvM@UzGU?)W2}W+FCP zl1v$0!^HZd*asu~j~8^Lj2Ajjw`UHh@t+V~yp5xqisSGetJGohqD9W3@72<XL!<IG zdA2gXsbuk+{bVOYslwb)_Q?j@mYn4Dt~A*ME;)Ke$wit?lVe{HrP7-u$OdAL-H<oV zFvc)cAs&nA;8r@Qi3gn(*Upaz;<or)-2VhkU_iHC(y2x91d0o0FRk{MB)M=r_Ot~M zfycHx&S6R;gqJ)f&Aa1kn9~C5aR}QH-RZCf#Z6)uD$b_h1two;aqS-y;&)}Z@PMu+ zfwI?-1>a3ZM7Ri{vV-hfE90T#HKC!m$91yj9W80fh9KuM#xMsA8rdMl<){l80!LwS zlHz0n?0-O9d;YmFKuTy)!e!7Y+SEp`b+a4s9L;42_+kkGmzEGvCG1JbM&HCb@)2i0 zECW!mtMpHi;pu|;=x1w4KV>}M^YHY$ITzey4`w46XxB4>{K0Ykf5ih8L{+5Q5ZXdR z4`T2|i4`l#*OlE=i{y+VR&}1(F;#zH=LAmrD`@i|v@TZZ9~UK_<1kHL2YHD+@yI|4 z&5v(ZXqHWj@PfAxOQb@?U@wa_LSgn_QS4edi6mV-40^0dMVqVo+O;2J*KWQHN`0Xp znQlmb%$7&$J^9$1cGW5rmtPAUR)3Mp&*c8@RH1gZIPkr82@g+kA+!JY;u`W4oD|o7 zKBll<@o#XU_F>UUlYN74eIjmpKkrQE+s~1^k!r_W<)@+qIp?^BwFwe|Oj)(|D5Edf z?ejVPR&96r#clI(9MsrP{o<Bzad+zAzj}U_p@0{K^?^gE`YIP8-cLk%U(OA2Uf?L` zzKp_t?gyG0Jh?u+W+)QbCN`L#Ex-!rrnQ$}52iKQ=fr7N%$L?iMkaFK6!?~G_V?po zOLaV--m+fP`<*{~ZJ6F;KBH@xk@t738#Nf#@4{3rceJ&2K9v<24pUT-1_>k$cBL9i z(^;EN=Ldmx_Box$i_<y&AI0hPT#~bTjrnCC=0#!5jE%`I53BI3UtAb2exEMMnZ+gH zMJ>sBVIF_r;U+sborjLf`I4O9a}Lj^bI{4B%`M4u#W@Uoqc{f#;mPTeyy0Lz*O%l^ zy_V!{1nhE*J6;9>>kiZ7XdD-3ZL%cClLnO0%O{#^wAXzqC#O>ZH`Nf9<kX(ic`cpJ zX<L{MHB?dzyQnmso=fs_uQ8v6(q6C=!k8Hw7srQH=<<uV<~hlnU;$HKnwL=tFKQmI z(;xHDDbgla?!(rFEkFjMf9P%rtvJ9KbSAjb=9UCgMmmRy|LnOWFU%8_6l|azj;G=_ zFDH*@dd+LOuf;3#ocg<cDlapYp5(DS%t42hnZx-!)nG679P-k1$Q*3k?2t)SpAPxD zUPE5zLyqhUAI%@<iLlS>HS))Ljr?kV_SrD<Wj^xXhecqxKK@7NwM&bKz6l7>B0Lo) zup$8c*F9%&Njd{%tk@jTFD}ktpMMpB&M859){yb8_W<_Yy@q^?kMfsc$c%{>smsO2 zVArHWzN?5gJgXt=G(IrDiHC`Y@e6TRCDm#$#RQk3&GqRF9@@eTI5wNE!6T&^Fpm4@ ztz-f}lxZLs%ycr<?%@Nqwptl)5~`fo9i<OyrgmHU#XGm~#aoMC+~>^zGb1sSmc?C& zu!2eL9UQ!h4od!BYK{vNx+#d(0(7E@$)$bY*d@87bVD7rw71~zp(ld(oStR+b78l) z2LBA4$_2o8ZQtvy!}svRoR@MRnc{nx_^N}2Z+hm3sbO_x>QJgVd?eC_RTo1)CG9MT zV6R}Q)lf6tPk$0V3ub5PnBv-tE)bH{=@Jv-T!}=qOT;6{7DK$cNsuOj)oerBaZj_E z!gzzv#s4ar&d6pUrsREb#@M^sf+q#pcL1TB(m15X`6MLU4zx3zCPQY89D%_>;{9q? zlc&eijXuwT3hkQgMxEcz$DO;Z+&8i!$61?Q=(#{v79nvr8JmQ}7!$sxWdH>b+RMjK z7|bwEA&t0j5Hu%c1P6<NkUIJMT#f|R+qZp`oQG;Khf|3=r-0Bw>&@|rfkh&FyT~T! z`bEkDMs`lcvVfa0vTGO~?20H$S>(%HoHzM!e$8-FZY;4AqPwxeIm0itdX07!jludw zIU>@OYfu`rOroVR2fJr4UjwRk=GHk-YYSG5C-#At%iJ~Z!Y=3I{j7Sbvz^=uxKCyU z+%9ZrWIbX~*Z}>I!_V=__id8<45tZLQg?s5`MysYzI*Fwc-<DwaLL+|C-tV3f<Gtd zmU~j)7bv(rqu}w{WXe~qv^-l&*}jAjR8Pv*ie{8O;5b%X6cJY2>F2+=FT@RW6X?e| z0J?k+`gUYci}=V^*vh3m^+owxWi&7I5gw)S*=!>FHV+{kZs}`gPUHu4^)MlCiacQI zdodt`3{Px=c^=|>ky0>#4MorEop2Yc#V)+8C5`ae+>Wwh>#^}2JVxc{_*9CH*M<{t zWuE<q`UQl%VPS`IN<{WMZNiBiiSydkMOk1Jyqild^L4n~`HOr}dTbp(fo~{%myy5( z1-a=1+{)Y+A@gX-H?%}2;KDJnEN2=HI#aiS)3oO6L$t+{VXMI2=C@QAx*=Hz!m?iw zL80L?g1vm0;2is(?{DC=?}Hk%nsH#Jp(p9}-r)on_ubqr>+!9dnOXz*KA0>{axaDQ zQ%tNuk*48;Bry^Vm4Xz6`@sUDpoEeQa<RvjH%*F190-GC6GEX{Rpy@;)ep1ha-O2R zzw*M8-cp(W1|~I=;`&|VfeU;HVI{mduK$R<4M&m<i<y!^RJQDm=qsEPoE7IjL;$r8 zbdWB0DjZp{`tOK*ZzF#SX7AlyS&n?@InZN+ow^C~y_zE5=^65!EOm>NjhjQh;~n{g zk13mc8@PdY#OZ){^}9Qagk0tL7t#@K2JcQN;oY*%fOl`Ec-OT>yju^Q;Ij*O@E#Gb zG%b;ny-gxy87fYg>*weI2-8IL=ryl@2kTy$w@FmUxu_e%tdqoX165{3h~5j!sy;_+ z2^B%Q=3)T%OLNN9#1s4swaZKjfsv6@LQ_+Sl_<?pCL>K#g3@A5G6Y|xK@&b%)jmU^ zmlV}xFY_cEghFo)0xczpa}famk-h`UD?%5iR_~?j!!UFL7QJ8?>aNsTt$zIg>`EWP zpFEXys`H*)n#=+3W-{q`F-??YuCkeF5`@~E#c**vy_bnVEa^l>=EFp68T*ca`qXTR zu$TK0IhTA~5Bnu{>tVK1GQR6!4|AOY&!KlMTwR3vNU(+UX@|OogSRR4(vRZF+p?1M zgSr1MSJ|SH^iaCitKFPaE@R!rK@i0_+%`XxvSfn{Uisk9yq1{<AvxtEj{r8EQx*0r zZ*0od;~~;yIeAHFsL<_)MToU#+~VF8Xl}riEmFHwuXr#{D~Gh(#Ds09&hPjACX52y zCSLq8x)BvzGdqjUE+3LmhJ9vRc{Is$uBo^xiV`M|Q*c=+E>imsz6W{r!+dQ<cc8wl znsT5oS*gt~o7-K|kp!l3bQ;?)`HPHYjwnA4mbCWdAeRTK+}2AN&Pq}i&Js$=dR*nl zX9{-XY^f~|CaKy2Yj7Z3P+SUeg<<wAb1T@@vx{6IT_M_~kX+*{@a|QUpi(38{b_!V z^a}4uIa%z|R2|2wda5VCOr@+J1p0Yr1*JQOhO%o&2e)|zrAuYtwaPt>402bNM-UM$ zO$MYI`=;_!ZaH9}e0P2=C8M*;$OwKKf(HJW<I~BjzEIyOE)?rD*j`1>8NQd}>}j)G zQVZFu3Hy{t05sJt{AaTzDGs;4CF|p%BBo3pT&`?9^00N!rnymWwZHm{#4y@fT4hx& zx0lnlZHYnS;WKB;cc~k%_zhXpyB#I82ehuj(8D(HQX)PG$Shf-f8`xD4>$2fcg(x5 zztpB1v3pUKn@;Vqoi32*uVA2%x3fgrE#Y9p21wi0ESn~!HwXfm$J<AyZ!<mpq*L@i z7rT?#=+o^p)JPE={9(VJ#`S0}X|DiAcYs0K0v!C&03`o&alBLdw#+x?osROqUeS8# zuSbK=F7V{CFb4sykgso0^qgF>k!`x-zTBtJPQ#Z8lpAW#p@kRh`?K5H^-@_3wQwPL zG#w1+nZ7W^)z!6Dw<%1>?`u)<$@=Q+{zk5|1rGRhtk8)adVO)BqXt4zv~dwOGzXbF z3wad=M@E8N;mwKUd<nL4eR3ydbf)`Suhv9J<i5lWVCzBpR78C4gK<OdL*xnEk23?a z$#Zkb)HwGEwreSEeoinAE6E&@VsylV)5np{7gIxg&%Gc;7_9P~LmKIxsqWgM03vVh z=2^fm=Jd$|Jlwli9O2eeK5j)H?Q?Dq4jX8Z^3Rt#l~TUS(S+R+kT%+-m1}&Ze>1C9 z{!Y;5(n`oa>>bNfb#QrVSXiElt$64IU*HdIv^cKC3kYctPIh^DJg#*rB&CO6&FV!D zPOSP?kschg^#+-dXE9!Ii1A&fCzSp`J(Ce<mVW|=slslRZr4`$6I0{S94QTS!s~jv z_z*o_?hlE<&_gOGNjKGm`NTUin7)`!uQm;=H`7_G)lmBun9h~h?VX|6(JoK;M9Jyv zzZrO@7uDR1DLDWEQFdL7_0dvKPY+#`ZWjXy!|m)6(EMf=5}y;SVBG}pdCRW_*-`pL zlAjAF`Pv3Bg$#;C1kyPts5i(u$EH`v_>H!dHw*Tc(ou{ohE>Q_{Ev_MYHar7O}4H$ z7_DHFJz2cIlI!x-EG}hWAsH9BV@{V&ZpnBPc*tGi6%8FeEidA-j0WY5tPA9e1k8lX z@9eYLJD=I?oiC+#2(Wnvi{*DX+^03{B@pz*4YuB5`R9}yTv)~pSS+^iXE@v=ar&Zp zE>8QQRT04)!pD7i&n_-+DyzK+pc@fc2Y6OX=LBwA1d$ka$#t+oOQV+mHPa%Z5r(OM z(=sh?7xwz|AVAXjY|ZSoF;Re2-nz1Q*59Nyk&A*WY)hhI-xkH!<Mw17cvr9s;e3%j zTUm4msOY<N@5UhbmsUpt_5jo36l_I_&`OJzB|Fry17Dke!v}y{G)(!|^WL+dEf=iZ z08h{BDQLe7=xK71;n+>Cdq=u@mA(GIovs$8`r*l&(AD2lx;izZtG6AiN_6$6=YuY@ zc6E{DTy$0Y4s><q|5duefnB7lcbI)ZvXgqz6&ZiHfvxf1rK_{Zg&gSWWT&e)HcMBf z@r4K|El$DC+=Q-ZFQ+SCn}36@@Z^Un-}Bz-3ctV8)z5p;)w_URpsOEl6<z)2e}b;Q zm(tZsvH<pQv7K2F_NxtZ)BWmPctH7nrK0sctUs!kzBP39cV7HIxnJE=Mpy4J`+#JB z#VT9AUwtRF5~NP-cfVg<UZks+W@^7$oZsAjRT^KQD=iNG^qIX4LbR9Dm9NdeL07-X z=<1sHPFD}6bah=Xx_TGT3v~6sR?*eZ{wL__`joDo+=Q-Hq;&PGjIOTkMOP2^rmO2x zx_T!$@R|RsboJ{px_XD%2fBKq7hPSF($%kmALHHA)vZOkdeZ6Y%FWVMX?#Hr)Z!HE znN8@5_Hw%NwfQ&b>Q5P6o%i19YJEyq-|a<L?*e*(uAYUi@NzKkUyy^43;}tMWlvos zO>)cx(TZ@M2WFC9v(A3#V7h;1JEp}ZyNN5QdQEn>aJJEIrGfMRx^OpCCn6-(NoWm+ zBRn64jyO#K0UGQcUuU<LNA?pcf9d$-zGb&k2STqz0Y8=$n<fevUbGo8jk|mrw`J2H zSV^hUWvG(B@PBtYx24k|IQ<<bbZcosFK?4Nuj(<Wyp!hpKf&?-oN~MiH{p2Cq#W;} zjN|<=aJ<<?&9^tldy$3T#uJrIR()_;rY?Xk5m1ID_WKlhf`h5U9ZfoSspnlU&e9lM z_P@ywL)F3eq8E#{+!Af)^H(saT}V}=V95KFPY!u27?1)Kn66CE+3C|<@>0;H`-W#m za~B9MGV%>mFXE_n!Q6aLN#*I3qb@IURHb&ezM{nX)~x>lN41sn2-e{cc`(XuCi?T? zcM&czW-CL-G}arO-8E1QUDGWYW_2X1+Aa?<60<g>mR74)ZX`TwI&I{Ee>^tKZlF5j zh^g_m?uW4l=CrM+8P;?IrG1HGbQ`SvF(+cU9T*Q2+uB_<E<C%j9Zke#x<=jr%)|Bl zA!vr{tc;t|>*nrbF=QIy1FKYZRDY6wL_a+FLLZY)O~*fHuBFjy<fP@p6eU-}{qBx0 zn@T(+%;x@HvkAeuI_al6-9oIKJw<#*gB=f0dPg$mLzqXO!Hgb%77lGc8!7L+=by00 z=dY0|kZ1)tk_D?T4+^;&a+F(@!Lw>nJnC@TC&rkD9S~Wz7C>^(+z>Qd1POh~f6FcQ z06^z}vY*dY7LuH58hpA3#6mIvFGKVK1L$GD(%HT(oOo8A1FDgyS=jUGslLYn4*Qc9 zO;v#ifl{s*-<BBDn*W|PF&p0%k8=Zm<lZ*Y#7~aLXfWhilmR__|D<_9$G;EyF_~I! zl{s-J)d9HbLO-fAb(eEivS!8;02kfxFCGN?-g%S0e<R3;JUD%Z%X!_ZKkHC;z9UTt zl9lTECotL}9lh5%A*$UIrC=)GUY}&u<q|Jzet+7WdN8OOnDM^t{Epp+H!Ae8IQ~G- zhi@!ByhC{S{<4QdawhhZaO;NB!@Go*2g)Aq)${eGhtr-PEPFVc3V=VBgf9Q)jD3C? zd=|&MrE~MnOU>E9!WMBG<JwUV+FkG}zCWfrTjp-1K>vV{hxRG%(=1=-@tdskU&_{b zm(9>lV_)r{mNPKB%n32&Ve3>glA#p|mc08j`*>YUfq^Sq5k5s;C`0s32YFeB==9cC zwh#4|v&ZO6<rd@$6L^TO3GjMgPUfScHIXw*zm0zSo<RMZ(nU?6uF?KPz%{OIyY_fY zhRUP3SBA6i(<Ptkv4Yb*{kEEWtl;$U6wUfH6ThP$1&u>=rD{5Q>oJV}Tm(_Y+~gVq zcR#hbuLm~zcXn@a_)}-LrjY}$<s)kU;KT2t+2cwQ>sqL=tZZikIP48<U;gGpbJWua zyAjmc(jJ%l7_lgl8j~r5l#Xxu+OjTXT6LJ;LNCLVMRNo)3CWbQZKkWorr9_s>Gtfr z_xD?y@}LvFnuKa)h@piX^k#<#$b0Ub6ug1z?~Rl6n!~oEV1Etisbxk%<%bt>I8jWE zQb7w=`pBy7kL>o_+vk<2eNjpei{kBA0ey4(^miwvb|obuweoh@gfzZa!n&UOaM)E8 z#<0EekoNcjnvQnPMm`mo7GG<!8$;U;i8*ibwi`m*E+|YwKyOoBRNmz|=QQa^i3_AA zjdtfU=6~jvN2f&&Nea&4uK+~yd29x#qsVKm#84T87Nrmh*L;8MCf|Rv#5nqbj=m3` z|CVD^2u<4)P`lldc>Bfi4%DM(T4B*G8LWdL0b;%+4xbEOp+(SXvH-2nBG{0$!eJF! z9-?JCzCrK1_&3I#evVHk`wn{}!x%;C#_b7$q;5pGG2Yq(=)+|_*%!Sk$%Fl<3{BTc z9xx0+VBDVk>EX(}yq{I2nfKGX@9S|_KF{$;!guD#MN1^TVvC)0O0+CHLe8LEr^xTj z>?+anK_X>E9_PjpUFlk`lx+S})E7?0H)jOOTT~!=%=`TZC>-S1G{wj%NND~nclc6l zr;ygMlBFlBPBFvMiz(aL3Sa1!BO{7QRL=2ApbhqFK;p7k`BURySpNH*)UbRx>jkwQ zj5?_J4`HQJQn}8ri)G<l{G^cABRi3$Bk19*26C(Z22!e&*JQ5&0@rV<?bL!Arz*sl zUlha8{j#`DyetG!X|tkOi*EzTXUn3^l}zuCSzm+fT>5GZe4!aE7~~=7vR5?NOM0rO zb;r{`_nlU(n9?X`zpn7<CLT-GsadGlX$aByy&$Ki5W=AOH6&*sYI5D)ov!X1EU9O9 zplV^CGgmPY;&DFi(?|T{SC!PQQ%MH<yFe-Z#ip$VsVL7_)(I!Gs%=q$BpqcSY#1`Q z?+I(kHZxzwh$ZNbx#XfZ5bzGJMfN=e@V+w9O+b+8kuxpSN1+5tmKjZKm(LQ!s>-MY z)Ini~3W8+TKrTvQ<s!f5An*)C2)lNT2Q~b@w7M6vx&@Y-I3QNqs~4;4oJQ)$(*D4s z&2~OnD8v{W>`$96x#D*>0|5;#C2N*k61&-oxd`gzFd!HUCP~^QfJL3GIvapImnP-o zIHEu?6<iie(2r0t6orBtQOBp4DlPydzytgtVM;DJPv2|+C~GsI2!R^yB&WSoldcUK z6X)58k}Mz7+DtJjjtQ1n98<6535AO(2A7Q{sDMwnOjxjU=5m(V*9!xXklBu=7L83O z!Gbc3Old?&8Pmy*Et%%Q8R6v{3vJ4a5~8}C!~G1%tG+L1LF`smZODiGg`dyxc)G#1 z%2#sjj5bV-kzJ}MR3)ZhznoEQ8DUjw`31|ZM?#Y22WMog_a_By5FwITT;Ku66T7kC z!Ltwf(g&uR1=7(oV85P^DPx7=royk+`Qkd13Rioe)+N3iYeeFZGq03FB7GW>-5kU4 zM|OII+sKLK*2;Tk$n~?jPznL|xb)i@))2ds>XqsFU>|1B7+)V{pDKIV`9p9bAj7}r zyyw^hP9e}&oxL@uXY9dUX`IaJ0D&!8?7LX%$lii#i9OhIjQrVKzm4@$9kv)F|7^OK zUB1a)_C&gu{UGdRpujo|LumyJjw!KE4EOW0Y7#H+aQmHXA6%6}c&^Y|sRiq|-_XM$ zY2M}z0zMIzQP0_x=~khwA-ujRK2ga>C^|d8wy*JN!ENa*%5?WQ&--#^IM4eI2Ia1; zhx^utQoWW!{p?Mk{>K#R=M|y;VhQTy(U1<r6x1A<cUWCe1hp<94{zOk(n4*`;UK2= z=i<txjNV_qUR+IoxhN6D5ebZG!ZR_w$bJyuKPR_C5kY*Y0rGQ5XI~cB^n6Ml=arEM z-1)tnv-CpUmy{i;^b+Bl&%}309C;<D(=G~$x?kdmPoI^X3Of9g)tXka?yLA;HK)sy zc6-g~G4sX7{2!HU>UX$Gse0;euRiTXp1!0r+T;`N7kRZ+&*ZJbPxeFpsklY|+|56+ z7hi4W;lwMjZb#3tYC~13=e%mM#;U~{s}^glQc?L*y(q5|wMb*xlN<fKa+Fem$12hq zd-<qRN$Y3cA9$~QmjdltQ_qyJSF*Ht(U9Dl{*ClXI&@N8DBxe|=SSOb4(A>1R@fG< z7^1zcU}qoRV)sO?DhvQcUNTgzB#JpqPfB4;><`0q2H|)=>W2@i*-k1Z*m{Glv)N9} zl2viEKe2xx{&0w%a!l0}1GG2%^5g}r+6wHSvJuj#s-puV&iDuYFFz{ed^1nv0`_JH zpVRyH4=fL!yU$KaBlyuPbWTQ+s1yhz@e2vu^w%!o22Zwy_}P%1&6M_&gcafGf8;uY zq>c#T-Ru>TZ&I>Zmw+xgG_hayLy{EiM%j5~usgjBcFz=H_lFdAH-EJRyL*QVcFP?= z|4p#_RkRt{tx$lJ1~1ANT*AccDP|L3r_%M|iC(Z<2V5L>)K=2Vwqo8EVE2^ug59J5 zJ8Iu%usbBNhpAG@=e&e43L`aQ!a)x-MYx_9dl=in35G_A|CkmApp$k{@v}-VP0<U_ z@_vv|7P$bayuU$`nIOTFBef%xG}vxA6rl`<PJ|Mj-zAPdr|MqeUnvWc#Rr~Er&mc? zMN{=uwNwxF;T`Gsr2=qVg`A|w2X8_#GH6$l$wx!uxk0AXK6Rh>cG)nSW!}tkM4l~E zp-)~JCV+uz5X;G;H0^>(MX(x6Q<r+E<{YOI>S6iSpXX1WW_KRVF=oo^O^wG)1uE2O zLR1TtzX1p%*FYprsS<5_ypw%XRsX)}c^Dd1j)@AdWi`y7qnc1oGv+_1Y0h>4W&r0( zenQE3Deg@}(^iQ#6zM>lk?cJ{MzxW4p*&Omk{HBj5@Ib7)vB@|`3Ko9T#&H4fRkfe zd0~NxddODgloZ?ziuSYl@`jicCC3!%J7LN2z9tp>y0fpo0#@Ea{-~Y(@ejK_lqG?u zd`qJB9sS(VFh>;yB2y+SR8?$&+V4i|6gHCzr(l`fkzGt~v|Za{a^pbRJ}2jS(e%~w z$+=&^9x9vM4ZSD#a37Pqy06Kp?4{WwOs+R9R`&I{C*~tNTYKyfPWA{s3ub5ob&Ml| zpO>%NcwAC_PRui+^`6*=d@xU!P3)4=#KK5_+sDK%-26zN>0@FS^!0e?{dYXRy9U9; z#_LxT`-&zuT8ClF&=EuCGi4LYPc7omEq!(Gt_r)OY-V?qW)^&;clI$e9Y);*x5ML{ zO5J41R&D<AyLmkLcJ>HXcRGGpHWu<L>8&EdR;w7U5Z3SA)Z<>AC)CUC-Pq$^jgsq? zBYKq(eU#nZ18idxTirL<uIOv*yE;NVUIw<SN?;3QOt!mC;GmRwn}98>@Dsp6em+Y+ z98S#fq%|zlo@+lr%rN^o6@9DhW015>YF(9j@sz&Fe%>e(P{s=<HO6CLisNL<A&LBv zqV{oi^B_g%?B&3_`AGV6z>0y@*qT9T#VYqRDFFWN;(fi_V5_*#O@H^UUiVg)-Mh2b zy<5ue-O=mbt$uH>bPrRiel+IdGp%BW4R%*q2dj!V!=Ucwo=WFDyI_6F(zV$sXKB?3 z=xbI>Tyv;u<<yW%81C#F-U`WEt?`Ed&xpO_aeKrQ5Pj4J%(Rj0(Hc)|(M#B4{EZz| zA8FVmuBXL2BKZa04u8GjDC}V@7sdgx@tiA<Ip0M5(jI8WlpF5E^^4;@`IF5#mwY2V zSvT49`BM*X0rKX7t?>u#r-564vlTm^o3rI#+Sxx^W#=E|htS~Df23pSE=J*S9WAY! z5Pxvztb$Rvafr+fdcv7IslF(L8F{phZG!~LEeXlN<eH`XnCxkIbS^yGQPl+{3$%3u z*S7UO9ZA@f%Z`$^mh}`c)^38W-G)$RyKSu+c$5KF+tD)IG<)WvFLTbQcyokqepNR| zxHat~ZR)E%S>@I-`nFli)I#B;w0oL{c~iovP5&S*?P_UP4P|fPt3R*ga3i&Ejihbj zhua`LRM|rSbsM{Z0-upR4gpo$Ra76}ZqIm|smi=-_v8J}4Td4$#W+mwF`q)KT^6-= z*{{90VQlvkHDbw8bp2I5p`bGa4<v`Nl;w;+F2m?aslXJ<4-82@q1%|@SdR`yQNz+3 zd0K01|Evc-Inw^+@^jEA7P+K6(*9Z2cH&Tk0)1yAuV(>F**88}`bJ#1UVwkJAK@&F zjX(g~=;Cz>h41kFZR|DF4>AQ(&j)|of^sOFC|-!d95kXkd;~(FQ~|o(hc?=7?|tJA zA0N~;7G-6NBNP<oFbb;a62}x_S{#a{$VaMzTE+GHp^x<b1!SC#>=uT#o!!k)w^`(? zb)CjJ1mI6(amStzPh6yFU;TAWo4@Mfo%2I@j}yjC9A#B4C<O?L^d-7VY{vLzRBGg{ zaSFm4V26xU$(_Pv8Q%8v!<|)(a&lZ1tU>@mcd{~(2Zi$Dw<4We6D$f&a7T4SweTvt zqq9XRLTI@Yl~3Q4Kf_auOz{U+cM6;pc6YVvkXPBQUcOV;;x`A;MolH}SZ|5R(bvza zBkM1(iya7KvmIdKQ{oC@&FH%^V3T4Qy7e}yS@Ct=F4&XRt^TDeJF^5Uk5{87g`>S! zr#!-r?gU-_F8hj(ghzHC>tRa5QiZ9zqQZ_6SF5(wUI)s>3478X(J;lQYixzqCEXyr zrl4;w6ewBA2#jI1>A6}9F<oIJ@se4^-Mv;71&e)<1vcHFcr9nws27IwSm>w5t}J`@ zm&IoVvKk}1tl(*j(3#LF-W90hx`wzS|NrRacc^12JbqskC+NS<u1g2=NH(eOv(aah z|6TD}B9QC?zoS%qkv-Gn&V@OkIVQ2C*rUm2P_f)i%!$12=lJ?msuaB9yZWnUI*YNR z?I(B1nQTLi%Y+Y4&&Y!ejX{mMM{Eq<B~HDX$|>S!d#Oq91|?=6EohZoc##dp`eBDG zQ-chLB+q~<Y#4>s>7#W67rQ#n9n3P=*tTwQ=Lo%whrYhX&F+n@ero)f4MMxes!Dw4 zhrt*~>rZ3(FK(H$J|5Xd4t2Yi4}V=ee`-i;ty+VcnFqztri0aywaV;28|vSEq*ih2 zdIv{UT942-v~q%6=VWsx*#(0@lUBQUxxW@ZvNQaKkcdP0-d1JZ)3Tge8=<T~4EaeF zF@rr>SqdGDjQ4f!s$%ZQOd%yf7DLq5nHBY`r8Zcds%|ezchmif`+x|DN1MT=PpDH( zwbdPYyW<Y$W@2Al8`m8unZR~#o4RN<kZfpgrEct!Iu;gb&f__xjyBr0f%7(cZf-hj zvNm-}H-k;gyI}uX(CvS>lTn;RN)Salk>U2xu#h!~DrvHJM~jsO&%OzjY<=e)p>tCE zzeDFw2uTP9hBq+sf?aV~m%r+gCJq=ERoS2v*OPpja))ff$ZU0=jYksjpxj=#ktw`} z+lAdhY;+qN+fCEAS_xel&@Oq6S3b|^wPA(e;=mrRJ<@XzY-^7W5>$ihO`(dCinJTV zP#c0i{}w3VE@Q<J+AI~oJU(=>;z%*OCj0du>C9Dj*^y#g<Ly`Un5h>RyC4dA{{{(E z4qM4tVUIzG66>cTf{H0luSi(B*F3GJ^8gio3usEG+t_ahxfQ@JJ`!;^fjx#2af+a) zuyOI(cJ9>}u~!-z#YazR)GYMrR({(wuo(>=pHst}koE8pw6?&hMrzi09fhrc>@#3h z38p&;re9Y$P-6zu&-M*dzABLN_Ev#(`u{vg|5*a54i;|-q#U7T+ySJ^i_Z$A4feF( z3%k*>9`|Y$38VS?Qs}67_=euA<)C=B6mK_d)lyU<Y|vYqV@WPqT3nJ(^;nW!y5eC( zdD;FbCAPDp`Mx~hXpVQv5%O9`P+0Du_IO(tQG%|JqIZHtd8{fi)a(sf;JN*uUyMaM zh8-k_^NWD$8^50`Ta5FH&j$Q{z6{{!_PEz*FO=O=ed*$2D4r{&iob7uDcZ`YBC;LX znr@g5Ck_&0{e5!OQ-0zH)6&I|SGkt8k`!@px@7kQN4RcM0|FFmmkx2WCY7wK3gytx zr@hJ0ZE}rGL&WM+QIL40APF8Ewj(L>@-@KoUt!DsK#&B_TBu2UfF}4>u_=`RH}YKA zq_qD~JM=)_p3E2{Th%{mAE|Y|W*Y7VZ+fghHfpZrfPSohD}_6%>;`5Q*+czXT3V8) zUFeok7<c<L%m&-rwY)OSF5w|&owujCM7(%h;9$<RGEB4MRN7>IGyb8HV_{;wAmcuh z3^D*kDH*%FG(Dz#NYool?dhEooTQu!R*9Xl5DqP1Q9>AC(O6|YAjP*rTULg!98`Sy zJ~r@r`w<hV*1iJF65E!#Dq-NHkx1;){#>V9b*lJImeHNZW%~xmlj7|U<X_iSzdx-@ zVD><o5BkbV6tOG#4q-uJDfb3oc`y}dpe1CP3etXl;j3_U|8{cX*pt&Gcd_>jwo4?- zy578wO}h~}cx}8bWE{I>Ff%X>sh=u~lOyGtl6A_85vFmFrty2;+%<7a;12D)K?A;v zuc5woP%2Oruu)Q7)}|65vR@+IHtt^&+u$fq0+2fG53h~Dkiv@B5Sdqx*Xyei5ZK32 zpr(Oj>#_mhk!2)K9#i-#(c>-gkWR3Lgek)X@e9A|Gb+BhbSvI`dbq@eM!W9I{%(_f z$$z0FKp5Mfx9QaFg!>F%@=y8w!MYzuM>B-OMSNh-DL_}eFH%jM{A^9=tS}*g&64}K zIHoS2&7XZXXZD)SYg>FXz~QgyY_82_^Vzc5RN0%`DDh>%7Ja!@p+7buibtgreQ=vr zZXslKg^30L47Y!2f`~tkdz}Q_kQQxaScFgW!f5;1SF%r}O8ZYn2%@9yp58ZB!KOw> z=o+$=6Svb5x1@He-Spe$UIgt{*e?W3s$p}X=<#T3DDd=noSzbZ_;HXL^aTA*$Sc9r zh&&lw$(;TLp>`16EV*`z&<b$gFqUARw8D)waKgd9(Seab;)WKhkUZ%mNr(_0sqh@= zZ;7f~YAug)grvY)1HM&BbzfJMqQ<h}AmMNkVT~NWDHRplq)0mww>uKUOivvrz%|(m zFeT;@R>17M?b~GO8rbbVvI+)g*mZca(f$^mY%*VF5hN>$Ajah=o6rdcCwB7ot?@{~ zP@bfV)T^sPngTjhbKV24kHJ#5ihRm=z{F-E!yU}gFVB3NECxu9(TW$WJT30ezUEBg z76;Q<TR)ewmtJ%pAs6j8bs_?a%z+3s+xML(z1**58D8oo6xxw>wB9Z~)Mp!rRzoW? zoH9_Q^xl@y`;#LDW?m#Am_T;!7t27Fvp<ZMA1?ofq~zc|3=5_@=JwW1*3M313#$GP zp4tm>^mUq8t}VLL<vf=;;$)0jW^ZE8Aq0{rG5Of}nw?081HA>a%D`pX#DjyKZ&+7e zt~m;YRaCn77wBGh5N1O)vM=~O&E_0OppT<xx5poEi?`P<MLF<st!*LXX9G_ra@*yp zmdJq|p&MnNt8D3^t&|u0^GK~G)L`8Ks+;FIDe?sl3VOW=L~9&2pq@;a+fBpx1%}wV zJR`Gn*c2msv0pm|GHv{<UoYUEDB%9ZfqQN_aR1@J1%YbpsCNW&F(?6jrr9=NyKrT* zC-Bd#67V-nPk|3f+Bpnzpf@@6L$t%`WbCA5*ZdIea7HfJkl`AeEXMM!UyOC{yck`+ z7;hFA<LyH<4JVeqH-O%Y@h@MD;~_WS7X#c%tKz)48Q#U}SK8|Ytg<4b)`*vFvL-UR zgXB&n4<8)BDWn1c$B2oHvTMTVU<_^I;M{q1l#D}gv}zU4TjG>fL1i{&#FSIi%c=Tr zc1<8`daWq49A;=8A;1b{U-Gw%6t5nYN^6v?DN(@-Qx(Ih);`E!ZM?mBnAzg(G6KlU z*ViWn+;@m5;D@6!3i$cE1^P|Qy2h4yZbX5y#ug*1q|{K|nc40k>z7D~DD&4Sd;Ktf zLa<|?+&YEu9C#<1?Jwi8O95u!kqQ+SEe=V7@!XGw5cdeMS19l5Cd($1v3L_V_`N#a zaGb;*cM`h>5^K!(*Bg#0@<BZ2L*61ME0UPXVKt}KcC>epS&Hj*=sBV}67>1?lj${# zP7hSuujYvXUhXvbR5=Y^?KG&SYA8-5+X?v*Y!s;RGQ#x-+OOyN<-ld3@p5mZE|2re zD@Y%p`P$p=*6P78PuY4BeWggEc`uIQ3=@w~Im7&uqsuu(ba|m1UHTFnd(-IIpo`R_ z$}UboCbm<yA!X4qUqC>?@Ut&6d`k;EridbJS&KpuQ@bt=EoA*gJxpEya=>P=e(j+u zzn1Tn-O^s_w@hjA?5Tq|IZbbqeM_#5Yj=&K55>c<in?SR)T5@e1<yS}V~N#@-6swc zl`&O}+R|gHJ@g{sm@mWbE+lNdf)o$m$MvD_EEEw0ZE{<_4?9U!r%g0U32bPTt{n+Z z9jJ&}cd9%p<awZE&LOQj`(|I$zS9H*Tas^wiA%U15LfxU>u=Sxqc1VTFM2e%ZPTGe zN$ddRb+pE2C2DgGI<EPDbT_LNWh0qarVnb~9Rk<8op(07;-rar+m?mSrrnozD0ZA` zgtaK~!6S5~<vT-rQ2mZbj!G}JzekgklhezhX0v520_aUnUQ6GRt(MjBWa|=}i+vQ4 zyq97(MSh)l*EUzL<TD$JCihLLaS^uDDvBJU$x-de{y%ST0$^uV-~Hb^C--J%$UX^4 z5FsD}+7b|V3D`+8A(KpI(wPaFuy~!!+)0Ma#>|~0(30Q;5M09|F10~Gt+m0rRc#Pl zT5Zs3-Cl5^E)^7giz3*%^|k-c_xC%`bDujIitoSnwIy@!eV*q$=lsrZ-_8Tid|2-Y z_va3>MIYT?0lc?wSE%oM&lFAEjUhyHdbWmC9x>8vve^{kCD9XC7UqL^(iM-)_$y<z z@uot!8;(^+%yVHZ-S>n8?9BTJ?D7IzE6S-^nlwnTwVnrJ{V-9#k6Ej!;L<Cjo%cSU z>XPtBHf1<F+dDseJX%hF-z$k!2wy$Ped-Dxoy6S0*u-pr87x1DD0*B>*-yQF7R0%Z z8v+GZvI82!Z+6lxI9#_B-CV5Ud>whAzv8>sA<!3vpY_@VkQx#b*Ch+cD8-Q@ttu>c zbLKTC>AA=Kxpe9E&zj-Usy^+HzV;+HJsxqj(N|pvZ(lKmm}>|RmsZ92#@kl-jSr_c zMn3U&R2E6Ns)HshIud`mrFfJ|xG<z(&o<Z=1czR6r)v5>V&LW_i^IEZ;s$T@(L3!$ z*fQTP<t>PKM)*4Gn;kw!l<g!j$cGvIcEyB_f;xY>&k?HMfQBQb!jC6R6=rW@Mh{B| z(K|@m=*94r8E@O0ZmzC2gum}q(}e71i=pZJDx_^w_#z>uQ2Z=gK)SOI7qLLNx!ae7 zFIl8yi591}7Q@Cwc^t7x6kFcAZ<Wm-C7Dn7T0jWJodk!M;F7<7Ho1o37kf8wV)aG} zx;aJ|Ebx1729HfDE~JLe&Crv=+v!+bA0CGJp=?mY?Gf}JzS7pu{zX;pEhlSfr-mO) zzwp+RO~;eA^oXX)-}+NbS91-oElDql8sA3CMJ3(D>IkYD9y?LT46s1<+Z;cWJF4j( zh6{Wlx52`DAKm{1n#spJK4+$dvLJ}u1wv0+>dU5B*4%J|X&T}fCt*~f`adhY8kSmD zyu_8QZ}(>x2Q}UC3@z@I@XymP-051_fB<<Nos-EUmO87vQrn)BWLcQ@buTlR8@_6D zODz;?M8UC})U%qL5~BX#69~XenXvBqiF%*t!^fOkoDNt{+Gatvqspmf({+3r_BIcr zBy7Mlp<s>g=d~92d1+7KOt>+<c^MbXmM&35L#da~E4kIJ+t(Sf8M1QklPfeO^mFC7 zJgL2Vf)D3s_U_vMo4r#o_RoCpb{vi~42=hExT4j^;s224-xzjSH-~fVTxXIP0fC4r z60Rm9UO;D4C*AO^lD>;>MLb`idpr_^w!UBLj(PJR-Y!@n4$)EI9%6*o#vJ4G4JXM0 z3dLtaJe=<4kWQ*aVUssfEmuSn{lz}q?9wnA!)vkj^Ow-!Vjzx-&^nush{NmRFG|)Z zOcq{p2`{VglBI>0yx687=9TY&r%=LP2+MC$SQt;p5;=d+8f+5ThB2{&KbZwa+~3?M zor-DwRoy{<6*#>t+~CvZcO8GtIeGh5NJl7`3AYE>vvKC-BvpE5KWmj$BVRAXs~R|9 zC0ql8JDI$G{Bn3u|08GkC~bjn){0#MMZ1HYcQvk-l;sJo5@E~2>q35jaq<NsJ_IB! zJxiFkEFADjOPZQa8EAs#@<eWxmp}bP%|-Ak%s(OZ>BX1ubhvS!wFCN35=^w8e{ZIJ z+IvS*wlVxIx!(Cp<T(D#)isV|wt!-V!s+vvojG8tK4liHP9m%@A3l|jS?(58|E^g@ zMmB|T2zHu(W1*l*#LpJ$mKuK9>NY{g7JfJNVTGJqIubk-O9xbZcyn>XwwrE>l58hC zOj6#-!if<S$%~)r*)X3hqnqO0FhlZ=&Vu7vg-BuX*?<67>(~Djma)X<dXI4w=33<K ze+MwgXSWM~Q@s$v{ak415lg&4n;`Pahr2ME?r@ajeG3^~5N7zVVru>Oho=`hnZ0#K zn47fuuT2`Bhr^8<B<AWjTF@kX8C%9;CeY7^8vWKUOqy;G?r!X{N549GFd71PH^RbX zV?%V;YLrD0zGSMQ@2t!?VWm$H`hYKT@CIj~ajZNKY=rLr5NoCw{@l*Lpnes0NT#7u zU@2>Tmc){|xGy^xhYnD(LRETLv@Vm}?Xhdkjb;fc={3YK21-$t++h&WTvRd?5$=jP zHf9C<bIQV04S_ro<okGO!5{ip;Y9_dr*R{!`Hi&xk-i{)?RkWR=$%~`{}C(5Ci8NA z;5f)N+!PcLIUYnMr3Ts!pUJH%ZZoQ}qbZ<E+xVZ^gJCx(_}OUT?85A`nDF_$icV9D zO>&c|VD1&woaArUAo`G=ae+8XypP9i>p?r7FGZgK(n@Xf?C_x?%04i7eoqtax+oLk zowHE8m>xFPUS>B^J2j;(%nm=a+b##nVQu|EoBBVQW5o$R^3L}ezBh!gTsfeyC9gSL ztk}(8KKACr@#e3kH~)Z_NH86<ZcUQSdgT)&Rar8^@vJCZ0<nc>57bWA17$$c4<{9J zz#yrJl%TriVi#0N|9P{<&exTL@k$cGlY*w4;FlfbLqq+u3;7lh?Mb0H!&wQi#}rUz z42JNb1)g)_xcEHt^vDnp%hX@2;`+)8S;cR)3?=wng#@V+q+PiQM!3CL{{p-HZlnA~ zV77SqgE3F2)exMYW*6J+<MX6&aDysZ-iOSGX=+W+K?yk{d<ia^e|h1V7wTVF@b}o= zOze)VGFa$>@bF$4<Zqvi!H#hGD-e{#Fb052eEdrAwu#_`*3Ea$Cv6CeMBE!JwH%d8 z)lilucO6(l7(32@B#(x0&IT%bHXkwLjchR`vet7JU@*JDm~#wGP9?t72NO}0v5GSC z68YDFrYBW+d3Zw|$zY(Ec|8{gCCu^iB>^PmFT2EDqzR#LDg+_fM|eW9p1I*Sg0bCm z$cDHU?35~ZO8un}L&dg?yg83%wI;65<KX~>1$gO-p?^TeN_eisGeGWmV1+q`wjEj_ zWcu!<Q6Ex+M&nP~;wYQ)#ie1-Q6|!+P+cKkLhO^J=9NcF$;x?I#U47~40TzOe+&4P zpS76$ED|=b|6Svlio7okCeCaS6BZyLWLIJNi-G@db3KLU&@AX^VL5p|;2{b~vT;&3 z%%aMu8(9lWfR(y&TA<fFtGK-|tL}Lx=vN?zBn>Bu1KA2T8DZpi0QInis-|K%?g+-$ zTOChRkX&1Mu1r2IKP<5ymd63W*w5{wwc8Au0mC<j1N%Wg6#5S^`4}{h{@o;K?mEc7 zqC=i)%+k7wAWWbaV@hw#sGzLCRnDI%z!Z8O)`U(Pu>0P6?0xz0GwwSsSSWsOWu@*O zIz+1wrbb@bEOu97Kp+u8>Tg&I=)aWF#5^pYXksGcOA_>d%1tCHysj8-V#%k;0LsJv z^y;w(s;`k?oBpC@MQZD+fMkf*`VgkVy$5?vxcJ-yg_9?YSFs~Du686JPL&cyn(;oA zIjUWbf`p%;R^nvrW#F&e>Sf{6zA)eUutx=Rg!|>Hd3wzBQ1_=%ycPO;pIME<sMz?# z`g?`>b*C~3CQ=u!IA~P6i1VX(;?(f4lRi&GBbh{67#0>4=@M@MKJ}MG@H}GjWfoS+ z0+ZmfmY3RFf21*%C|B~mwi5Ym9$;lJL@S#D-)CDVLv!R#y2#z&UDmc*BpW#3o>F&C zS=1IQk$oB#a>{%$A0~RjTnu|sQu8EXO_7iqHXk%OeAcRb{R%rEwSWVDK~I5<TA12a zd|mQXJmz3ciKR`%!d|>FUm=<BXZv7*sN!$5#R#$AZO$u3VvMVfGQj`N3?MFZaUuMt zZT87ig;P+=RLQEnKY8i_hP|B?7m6P+tp8Vss&=%g*e~=suGnKo-ipU<?u|U|6BdP& zoShxM?~eeww_z*H{(K>S1%9(1T)m=jA`=BhWGib2%zL?%+o$lj6vI3C74l;)_kc-1 z^FhS0jb#GZL_FM|&_`B0a371kg)s>5VEx0`&(-lpl2z}Xy|QpFpI6EEc@8(>1PzZ- zxvWd8rVLC!#aAHaZ<=P0yYi>RFK7p9`>BdR?W%52x(xjP=U2lZSkJ8-U?=0}{XXY} z@xV#K7i9WuL#WOwb{j9qpSzOk6hL>*_Nav*TLGFK9%<tBZq_g-eD&%F3Mays8UFqJ zAlG=|5|8*lplPYl8YZTr$zXs>d47Y@;fJ_+sYoPz<LVySb>ThyvMhYNx{t!r3}w<7 zV`dZe;?!eIE`z1FhIiL_J!?4Xt`dmNsNy5D2-<SXX+=f2mdf3Wrg3$TY>DvR2%fhc z3!d*Acm~X{q<zoap!P;tnS34ZnZ7M*a){qb9#q;_HHL9<z<DcItf~mEf7Dm2-N|-p zK<_%Q&~Ucg-n!?N@gDJM;jG=m)p+@ucsYDsqR6$Ld4>903;FH>x`F<^mFK2aJv&<> z3EfpcPfC|LGCO?1nHjHBYwQnD2ri5K*}R<+=Q{KfSu6_<t1?+SqO;Fiv99u#!{9tS zx@xaiIL_wn!bS6+6OMR%GZDIXnJ9*E8sG&IJ$1#qOx@(C`JsGpqahX^Cx7!Q6|SMv zJeOiMU3rr!N~c-egFF}`Kzb8$6fzeB$vI2V4&jO`3opW>6aJM(fiDcVu<LwXsKUR* z25Vz#5Bt<$#Ukc9l2x?6^EK4_^%1AKD>W*GO7!H#g|ozP@M4Hc5ACC~C8(^feuPd} zdRoq#3^Pum!-||a*Rj?hS$+zu-cUFj(TsDCp>M&Fq<DLhc?iy$#z5M(1NxTuS1u)9 z@<=|91i-Q%0?^84K8ufF=sotjIpHrznSi=-lJ94OvUiy#W0}3#(hjOM=;w`8vf9IW z!OJ>4bJ)u|jCO!0?9iUBmUM`7@T)PVZ-Ik2Dw&y;e<2aVjpkoHPo9M1!-JNGVPoaP zUx6Gf;R9FJA5wa6F;ENzMJ){<wZXh}<TC)tQA&c6uIoTG6hFXH%IuHj3R!OOL;Iu) zsTyZWDFa}pmvd$-a=82+>nqnt5zl{Fm19HwCC&}y!9Tc9uU3(c)E`fa_97jAu2ap8 zLBwlu5;##|i+ETPPS<pABIB$=y`FFc7`{=bCW1V)pR>)S#LiHQOOG?;obVp^LPLxw zMl4c9fq7Dg0=x?N{5FRVfSV^!J5SUUj(-^NDOFJd>E47xW+YAw(<sf$*z8Wd#m>H# z`*caT*3kl)O4mO2keW%)(mS+2X#|3Ui;1`)l%!o-oS6YQplbg?%iLgAzs*5$A<Uz* zHhfhEz{#ty01Uk^b?i<PKh-5Y8dUBhA!F*PoRCkM>^T5@ESs~q3YUXmjC!df?m@0Y z`}38f#qd&TT`QD3X8gLxm97(P?e0*ued7UDSD}ST%c9#eV?mVf2kIh9@peLrzFEBE zA9=^}1qSYg#SO)yg;T8uIhsT9u#v-i_v_f}Q)P5z-y1G+wekC==p=7`d-csXC2#)t zQ@r_;ycys=&L8ZmGr~dcW1>o_XP*Bhc%M>$N`0IumsS!iynvO?PgiRE&Dy@68hdr1 z3q?hiLL*_+Kh~`6L%udO^|>cm+q<4(Z4cH$)!ua}xW{^hnjq5wU+tEsUu~MVJIy+I zN?cNU$Qi<%N3`3rdBdkjzpg{LEt$57yL_SVsafcQ)rGnTgk5>VQ!Ml+Gc5E94SI^I zh-(n$a(~x{Yu@$w>bo9EfcpBUc-K#P7XV}}jxe8a5WW@h@IQnx-`DD<q0AWDh(t@k z%in8FhN49q(!@|!w2CMIMG)ZW!!b7H%#-anJ0FH0kXJw4#u`HSac+akr6K!bSS01~ z1Tdy*H^Pvr>E4hiCi**o+y9R{%y&v9DzjNcO`!1tHGXTt#9$sDL35Z@{1jJJyzN&% zh8;!WSqPuFvd41G#Xs<83IgFDugq79VQCLfY)D1J+mk20#1q8<U5R7ekzDzpu4Eqh zq=pM$*RKix<0XILFZsH?#NHmqxjT+i41dqHo?<wa6=kK<Ehe4jgg5`m!%C4a9;z}` zwUlS(?}e#ibzrXXl{=1PJ|C(lg;&6VX*`w_aCGst$d~DN>Z#?Hgug1@|F1qgQCx;^ z3?G@5H(~YuKhc7Hj|IP<0CU_YN^HP1mA5ldix-n`Y+;8#`@Mu6sCAk-s&U)zWq2xr z@UD|@g1r4xma?}Zw<8W){+9?FQ`=|NBY6LOuUbyB{2$GJf*<nXW~5m_`71O5$h@)! z3S84Icj|}2a?>rIP4#MMDoTOn3}lo9MtDUX0!hNGAd9fw91Kye@%=KtBx`81QET<m zt@h$4l>C>zxL)4&LbwrSj-eZRaF?d<3*mCvZrmQ0kd7F3kzylbq7F*+EhMQP4c829 zY=84Rf4)%vQigi@HrwL^=#xFt9f>7PN(`IN3nctCDzS#1&C@>SS&W%4K96U+Gjqt- zt6uOJ40)T*SN(6ty}ri_A<WG1G4A!I-^=hnVEFK$VTcxB#(;;fN2+#XeV9u_SUGGQ zeH@BKIb&&A?XG-BBgM{MR}mW3hhHBj^!Q6N+g`28d8I~4{nn)oh57v!F1w-96D_%4 z5{@K^iaR|q^Zk5xj&dNr<6^T+EXG6jrJMR-#Il3&di~4Qu%M~_2`Q;zPsO6cwy~c^ zZzYZ|TRePx4mhGzEbbYukVJ}&uA1y58{tyr(Jisb{riMe{)X_nIiBtI^9e0&c6hY{ zV}veck^VbTRf`D{i+oM2f#x~g$O~>ny<QUTi;F_^)6an4w|T?__;|gP4rIXcQ?C;| zET?Q!l35vlMLwK{72Zgb0QeO<bppK4aKS<k^9qeuaSMoW+-VHu1~`4l6!W)T;eZSk zF`j?1cov7>@#s?`<W0Y0Aokk&{8aJf5hLf)(F?%ZY!ptWWJQ^ARyHuH?a$1KOddV; zKQSj*1D&*TM}1au8_lm28eSf2-yN%y4Nlq56oE)|6Plq%^m)Y4OC8_f7&uXyHmLgV zLi1()I$L>$%TLx3GKEcU3{wr5ZJ{{NZv1WLMqMS#w_X(65MH%M!A2(fsb!oJV!Oz< zg-JghS$-G9nVd~_kc{zDgbx+>tdjqU^=(!AqX)%61zvNcW82AN<mE)_5GTe<XLkFm zB1@;xd(!2}&qKY;d@;o&1!ctwO5;B`w!tU%bRfLcIXEDsHl$7(h`*x>LPZnl5O-o* zVX@k2T)@`|&=!M}cYuhQ5j6nKhj%pOH&{$C>{($qKXMFE-$E{ofcog}2-Lr8KxYEp z&oAU(T$qh->bbo2Nf6VW8hcCx0VkcDK%tcp+^Y)po6V{jXE&;NP`@KSv^jaG3fy}0 zIzX7q$Y8E3j++xRa!#tvpm@T8l8u4jw}eMNELvII!-v_wbW(NsOT}lhgFeCQ9iocn zUl%tn0p=~nXTE<0gPPU}7S)Hh&r?&9#_;eJN%N7nr-;lE1sZf#akD}18i$^KYAXJr z1_9m*BQV?FAmd>A@)$Y)YbdT4*PT);m%8FBbdiLn^XuV1+&(C%bJ|2^KQx$bK5mtE zf_t8zF|TfVZRRGfKnYL8O?$)cfhm5;hgUU14nLM-%G`=`Vunf{t*sEQoYL<)$j3n= zeBT7O4r*wJ?V{Z3hSs{%D2Jn98?UYd@)G{ig-P42Cx(~{E{Bg?VPTMY;d2b9ighu> z4*^oi8s^dvzBo_QJ~@2w3eAln|B-rK?V!5YB2`w9!rGw3gRtkYrEet#3$QzL*diOW z?CXrzrzt-YAdTUd$5{YlxFQ>ZjyAgS^)uc0I5%?3=V{?ub+s1j|Hw0&$?~H<-o2+a z%U9TO#^r|wMe6{-55^(@-ZsAqfbWlG0C0$QGy=fCj70#vo&M`H0ss$>{MuCj%-KL@ zyQQ{|IS@YPsYV&sKS21*99!G}$<@O%lmMyf(ZXFK*g}WLjV#&b<<<SR1^+L1uGcL1 zy@1sh?C#2RzlVLf|BPH(Ab-KUaMuD}7kB)dCa&U+|HT3=cxm{?s4{pO!@F?#Hnhc` zv~M86yB2H^FKogmPmu#YQ^f|8{Wo4vnAahs7(K#+P2q3EN^pxU5Sb;>)1z})xVm+5 z-}n=D-`z9a_a)s|3~yRy0OI4q!l@4yPS^CwqzNCt*v2-u`GWAdXUmcKk&CV9BK+O6 z^G(Z?On}#yoY@5*B!i0A?SKJFhr$;fitjUaM&0J$POsa%+x#w6KOf`JTfQpEk@vXJ zr(^Zz`+96Ha0h&|ABL{$Xc8|yy*_-2dOkVq-rr*#ne>Bjh4jbpz24+0CKql$Np$zU zUJqRI4HHa8-An79mB*G%sx(jF)_eCu4{{PwETLqWS;Q4UO?i7rl3H#EBU4{y-qOQF zUY-N}vwa`IDzpfdQD`GiGsye_8{;^-t)2xE1)7f_y?BNu9>N;ZY39S-c~3>Z!6fXr zKVVn%?&H)1b#_=tZ~%w5<X)lJ7QVEDr7aV?tOr*Z^|oa_@#3`-67?&{9%-OPpJ*pl zqWwgVr%ao+kb^>yJX%=vvO>e>?7)*VNi`4}6rW_UWn{dYBUh)NxN1;Wyst_oH&`&^ z<V^+A7MDvORP!GO(4j{9?c|phmMITM{bgTeY?*hROnE1BM%_u338$!A!Se?lKbg~1 z;S_Lx!xP4f--D!2Zn7YaO>vv4j_<5;(?a;BvDy1fa^00mu6Pd8LtJ!JosX*Cc&X@O zqz6<LFhh~!jqLA@5~Psirb7LGetx+@C}BFYsC@<lrr1zV3T`Z3gWk>$7UwPLW;xef zsx=~1mBqxV2kMh6P!j~5#c?M}RiSQZpfGnW<AuFbexK1QTD}%5CDzLN_>6PsBAa|& zcp(MidYFz7ZE72~q#Ix+{r$+{;~IL;C6@hghGN_c4%R(qQN^<M^5notd`n7&S6!jf zEwisJi4BzzS%ht2SN{_ptt31mjpT~!gI)K0w^h>zF}CG5U8DA5agg6;2T>nc2I0C7 zVz!Nb3)fts=g;@g^N~RMRDH)aR~*z2nRi^r7?$j$#p)XBp8n8aSbvH-a4s+F!}Ia} zLn2Q<p_bWoX(V5Z8cF>k-VG*vfW%6%(tlLpSY)MKVRJq}ilvmkf0|4(>28bn{xEZI zOj+?u4dKUrb3RNR$D-#%XHFu0UhSc6LId}*TNT^UKh)IZ&iHu5^+&6eW&$Z@4%Y~z z|G?$vlu<IAs=72bk*9WiVct3hl!3jp(73N~2CeJlf}r0148xOa;R;QXp{`==a54Ju zOe(@#r6PnA3`0j<ntW@f`|fmA;zS&I0Fp|&RN$&5D%NIQ@lliG1+Depr>*g8GbmYq zl~J-pH`z5xAwbHqKy=joe023UDo;JA^S-hXRp&K@56?8?`)y@Swz5fI+2NV)`?9a> zf@EbTDI3l<6Pa-K*uI#Bp|dEN34IC`SNbD9OO_L=LAxZ!JRe>P4-Xekc}bl-*J3<Y zLuQKRud|v~J&Da!EmajQ0&MeCDn@X*9ge9&tP8khH@`dWdzRBN5SaA6{mM)#(qBnM zvb0-*tPX*1&UD{hu1b9hRmztbL6FAmU%5ZRfJl?UVEPT$BsVNhfn*4xZeb1otQhy4 zaLWWiCKmnEIfoG|0|vj@;V*1LjM@+$#Jhn$p$<5J)&qo)@YB?xsT$v+i{G<I4o&P# za=?cF*j@p5_QaU8v4BliD}+zZ(@gGQQtF?`%b+!3Fp*sRkha7Fq+3v!sr%|5jh)uN zsU0QF!9w=XuJ+eOs{TrK%$N!vBn5%E_{+E=JPxf=3jc<+Ee{9g;*qg_Q1NAwvukW3 z2|y&Q6r8Vx3DcD7kw#3XMTue>XWHTAI%|2syMMvKIz`+?*YBr3RFMmu(%`3AE9QTG zgT+(TpAFu4MmVrQJ<bs6rpwOZyY&9k<98wM0%vZBEAb&Ih58HEu}1oJ6qbtaWG*#@ zhcen}WT$s9Gx6T<j1NePV}&W~P^$_HQo~0qq&43S#jj=tavuKPxz58M7>|bgPv%CS zR)@s$QDy`QzvERAednauDek3kK*KwIH{Zw0Vi(rz7N9S%1+?5a7A=2=oI69yuf@J2 zUqWbtX|WlgW+#J!?my-@xzpHv%1Ym7UytV)F8Kv+HM~oWw&`d$GxJoVi*P*<YYcO= zjL*-htO|F5-_p^RTUSt~lPs1EoB`SXFL3RrY~b8*y%|?v*y3=&g(&M>C44i^3wmYH zO{hjEBQs!64zKmTr*q;Dr|Soq0ASnWsCNi#r7Q96x3lPi6LqC5^6@6MKt|^G9yYvt z+!;Zw_4N9AW;-9}IrERqbjw@(mOXyUPiDI1jobnPoo!wsO+w40WJTDv`M@y(V<v2S zw{xCk1EO~N-^I2&(DelU8xm}5F|13m?XR&)6>t&!Qfzy_ODdt7X(XS9Fu;u(jYLI% zdPsckScD^_6YjYJ17El{FMMpCP+vO2^6<LabtZ_mDnnC|t)=aUo`$X6gTg;I9I;9M zj;I#-S_ap^ETNj%hoM@u(C=C3%bdp8s<?%&D4r%O1Q6BY);Aq-8XR%nHq$NNcf@%n zt{XuJjG?q{M|CUiz&z!2kAl<ZG9j7z@HT{R?%M!2(--pK`L@E)_*S}Vn4yDTKjtuT z)4UDdY3^-TRAw;6+juoZf=wl24DTM%N(?~fhTmE?;es%A^-6g$><98XH*n`tew1{0 z4mT++`<wGr-?ucpXC!HX@(p0ed`YSe#Wxs~a1%|3Qa-#Di@9;V^};_+u|$C(MMpW= z_82v3LD$$Q4`xPT0=(j#=3ENlp)q7+kFoynm-F@RlpsCpFj3+@d0nJQwDv0Ct4iK? zpXPe*`e_oxW~>v^%`G^6#&;bv<FCgVzb7-}f7XoWBr}#WNgC=V#|6Q`lO1PYYL#6o zNQq8*C&Lbd&2|1J{Z#eFs(2tDeuXu~J|7vw4-#`wvkn=@f=}DLh$#&pg9WFv;pT-+ zv4CCw^nC65>EV;ZN&3{M7YUE>RN72@e||kbZ;|lmaDROU98m#y+}_&|4vs~^eZztz zjA82a1Ma2MUNdANJoG06rl9>5-z5L4YV|?OfQ-z_)#{(>2L8k2EUlWL2tB+mD9qc( zFBg~t4(Ey0BkplO+oPje{WNNR(*kMFjb=Z5_D>*KlC3y@PiuXAru$#7`>8`qT8-E` zK9sKGv$l>S9O8}1IZM3OrC1%FwB_M5ZX6sd4YGVPRf+FNHuR}ErRg41_#`C_zGgHI zvA@Ojyi^<<T;$>akWQs)?Y!`aC!W;^fVUB<cc4yFbcf9B^XO4{2*^|w4nBT?d|cN! zV$ngeMD}L}jYI0~o~K`()XwnM1(E{~*<63$a^S5^zS?PWKngB2bp`cVS)VmOMSuNg zGnf%k{iEg>ZV2~}TAYG=KWV=-g?lqMgB_?ipIqSj>?cPfS$t<feUD)>W@n;B6mF=> ziyy>2xejUeOBdU0l5PHLkk~1ym|XwB4BPs}bX%#~vNu`2pzT@J3SY)f`f*OoQiRn; z<0St8&J)c@eGLy^bvRtld3z$0n=|W!r%S{(hW~A3MMqo!5#84}&UD|;BRL(7%dhn} zh(CT~+VZZSVR^rL%H?5Y+sIGvWEggN{sSkXT9N<eg<=wmZ8a4)vA;djeYfjAnw%sS zc6B!!ZgBJXha+wt{~3oVFAqnYZ%iYWo{Z9zGK1gM5PAJVX9iz2Ru40XMqkPd{*0E4 zZWSL&F-d$XJnWd1<q)12UBh+XLq?4=h)W`poGlYXyvI1gobZl?rWVGlvO?Z9<1(=r zss<NBiYcVcT%MZc8B@3uC4}Y_mbd-;W(s#M{;!zAYpyyHz8f+BV;LNXc>fu|FO&D4 zk%SF=(SB(Pf1SD6*}xYUIve=lNMr*)qK!$U1Ie#>g~IjLQ^dR$^@9-q6D|f5;wNQ$ z8g(2tki;E}an7%1w#=zvCgP_IM3OUc!EKZqh3_$rnNt4ut~?xGXBJ*lcwJ^mDdqp{ zSX#Muru%;7wDPICNct8JIHZV(tEq+X-DM~^TfH&C8>p)$nVEhAbR6(b1GH9ZvR+Pe z-miL+IhXUV7={A)_*M9nG#tCd{PWU4W08n|L?<WdtLQ}{2Y9oG%42HLfAID>;dT?H zmip#cud)zI)$M2|BZLNm3VPk_P|-oVgzlx-CPg6W$5+RjZ;5joid1AZA)1By$Wzn^ zdIz1UQXhUua(Z2OEA@jbxIpsLeSAHPb_ltB(F!t1LOZ^&f>N5Ww8Bk;BJ7e?IM1)= z!rS=zscBz5UJ`R`T)vWM3C}u5c#CZM*si>_?1yjP4<XoTedk%3C$aBcKy?Wb7lHX~ zGbZxk3*5!BKfJH*In3JNuJDt7++^@BY#7iDH|MD|^50)+t<0E&Ui>WJPVVNE7e@Tp zwgLKpHQc;RB@B(>Cp&uNB49=zUUo1vs6EcV?xQ<v=4F;eK}YI*@qwN+YgLKxA>6&6 zJk89nU$I}`sb7<%P-dqRkq|yM?cRT|U+<mvt4@>+VI2b;uD%QhaR`4@`>L1gH`2jm zfPFd(yB!9*#&87K<wMiMIO;}42FG&@PV2)3LQI^PBOuq`6P=O|rrDRK6Tf;^1Gl_h zDUX~#KYQ^~iMe`fD#1ahDZSqy7|92n6hz$yO5d5FG<1Ts@q}xHUI|pt%{N%cvOptM z!j`nV2`4Jp8Rn_Vh)|}E|A>ttZZFK)S|DXFke(@xK~>CBMgrwee5VGW7)pe`6m=ze zh>{bz)n`LM#WLTh>*8jxDc;Xt8W#HixB0b)3ylYQ&QYozeZqx~_v`S;9;H-LKV+Eq zxBKhPrnW;>!Umh$Y$|+IQzHd;=Y>~Hp{Jax30!Mz=DRVT306^zVG+$w6`s$n&!nre z$^vI$hUic6eY#(t!h?E7pX{q`pyE-p!e7|)_X)SPWp7b}sQ8Rp_Lv%_L>U?%6v8h| z4&pAhs|SSruVo4%3d=2epr8s#M$yc5QwWWR*|FW4xgUpeq&o9?;qQ1eTN^@yav-+d z%%{KEf5cuoTZ2GLPQNt07-(W8$A`!4d0q;s-_*di)Q6MA27YdEu{9>_SL;#=yiQ^H za`m;d!`*g4`Ld#2a(55htTk{W#h|+n4%o41v&e9-CnP_>aE#B<H{oS|H#43W4)3o} z(j2}<37BT?@oD9u)!lzUdvtuTGp7~5#IyY`ypaK~*+1YZ*NZ{Me0^ncQJ^JN95sF( ziJ9aL+lXYg?^j(DUoXfn7Fb5OeHE!cWCCl(!sBphVa`i<`5s$>0q;_|Wd7Hw%-1By zQLdh2yHo9m;`Q$D=+Qk6C?-Ilb}=)jzUVRr`1Q11CYk+BEF(09)+qzUOXM{V>or47 z@dXAJ=6~2K2NIBkkDe;d(G>h;Hjk?DFP7@Lg#LcUIoZa6Q0d^Wt@!fpRjb4iLg3hQ zgEC19lge6N96ns#PvH7_U0;^Kp}Lh*^!(NU+@Y;p6}R%Aa&a%iPxry_!g0vG@M`IA z;aB^r^<<w*Zqwe>u8li?p-1KGLN4^Ahe6}dp?SvnD~)H;lkWGDulyF6g|g`qPh6Uh z|Lxz)@P95|^v^l<TaRy;B2*Gaz-%SCin`^rbCqPbIP%I>+gyKe3Fi5(QngImKQAu+ zda39C?bO@<DA2r^i76KZW#lL+q2$9qF>SI^9hj_Sd;b63++Ky!Z*!X*sLt)tc|N%( z;gg{s5Rh%nl#ho`h7k_LP)z)M=NGdfPjOncierUK6aB+l#Lyc6#2w&3CkY}hQz@mr zm|N_kyu+B}f*xvOxq@K|Xbx+TL{R$KZ$B7d?}$y)_XaxP&bKbl-+w?^GJMhTjLKhb z2vh(t!=~sG(i4&;$F^2mm9$n{R#@d3H*Gd0nyZE4SFEpEA%C6mv_0Nd?Z=l30PeDi z7RD`0+`@S5@@O@@ma~{>h_nc=*gSj|28xEdZ4`6jONg!kW%f!HttQIc1}9w<1u3uv zRHeG-L*yiIaK_vt%C)Ielc&&tO%krGSdGP3wkGhXk8O$WJ`>HCfpum<K;h#hx2so$ zrwE%An#|YJ7f%y;E_sj-Xk_TYoEP(s2=aFq>ds>(rY3#q65gArn64%@gu|y9`!CZO zSu&QIVbl;De&l-2+K6oHS!~ZfnmntiyLx(DxRqz=nA=l)H4>^GZSs>_m1fUL%x4~o z-=$pYyVj`d)}2;ANEt6ax!9I|BwhNdBzgAlSv!5Ddu@vrhn@NxY3T0%XY_sdX$V55 z8Sd{rEa)HQoGDt)k{I_5AP$zIaTx)Lo74{}sqYc^cyX#Yg|1OoJY@e?^sf{jwPl!f zlTpVkln}O-r1r3oLv64C>%!%S?H;vHs9QxZ#3mX7Zu8-kk5pH*f&Aa67*4WpBF~h) zAG#04%+*;jfM_D6<05~WK6kys`kXUOdmTk}_h{8%l&7%g!|8-Ym@4%|hnraJ-AQd< z(kc8pExs`8o7pv5vQ%BMrMiTtm^`ppX0R}5l)SHz11~H*GUNL;0YYobUU%eahZk&y zVwX2qOXhw7Xr2oC96;~7qJ9+$zql9aeJ*5Xb31k99B`%&)Ccc??dc<Cm;EAixU)bb zU8<8Lp@u<kT6NM(9Pr%%SqY4!T+WNfq%xZ#Tc0mJ!I5QBc+mrvaUiLbl6wb*?ar7W zA2~ITm)vRypBx-`f?wExd*Lf5_`#4=|9a<x197qnFp4D{cRNkNPAwd#1PZ*3^Z9A6 zsIJX4_l0USy3sV2@AT<~rgk@lL)4dJyC>S|H>%ebg?Dpp_N%ydwv;Q<MO^?-LaN@_ z>%iih?Ef@r`p0q8J^QVH3*V%~9v?oKjz|7EEo!AP-BwQDUkHz$pap)xxvQLKq=W@q zwT_~d5S38{E9T!5=}n;|lM_M4hYlfp7KI=8Ypg^ym?@Dq)2fTdXu$9cZ{@(ba=5#e zgl}!v2*P~psT0Co&m{W{Rc;<(pt(Wkit~b}Ikn@L7*xm6hm+obvFH4+8N~Y1o4};6 zB=cs_`^e!6VX0a-f5enqy%>gH45|otF&)JZtKvVdk|v%f(w_$ecnvqt@gp~VwTCeU zbwC*H%O>f5$yEZMR_qH@-fvK`?V>qgVFD6++D1<4u_vE@1|d>lZ_qiELPt`nE`0Zy z`MR?fk*PzykJ2&e=C^^vxS0%;SqwLDQ$ulzqZihOUtBz;nniBC@!0}-PrR={N1QX6 z@bi`9MC*^|hZk}tSNvoynPy-H`<Ku~)gztPK=A5Uk_3dkTliZRllCT`=H1NnL9p=G zudFpO#aEYU8=dlQJXL;OW%*pD`0PpH##3n`t$n(~(2yD_4mre@(g_mbt(S;5Bw4>5 zrhHb<PO*fG@SW3ibVU6@wIXIa#6?dI5MN_>yrfi;11l8WJ73Kn7KO(!<3Tv5r8F>= zjWlM@odRRuu)?)5YCPHV|3k?SEX0zcZ(`IV9DB*PvkIrm&p2V)#>MOmm4V?}Y_$2| zH@n5$4uE&pVx5ShlE}Amw#7Oa_J;if8kTHY7#ic!v~@$_boxfnJm)KgCTcZ{-?#RG z3uq;?wXgt{&6E@M*S^h@6*cl{nda(ZK}TrH)(F=oPc=3Y;Kv^DQ9mChqL=ykp#8{H z+iZ&AQD|jZ_}(iGT<o3ov^4>}M@6S#!UVIbwjPhDp!9DZA*K6V{yvA?xuXY#%cRBl zJlUS4m%#^4(JQ{|ukgpxZbUZtl4+r}X@d{Y7F|8vYX=9Z>chJo%fdG=OJ4R_UM6VM z`zvY3^TNU@0nAk6Xw*gaT3u$j$4YNVJGX`0t_2-b>U6jPHZV7Q&ej2U{BIq0GmU4> zaG1tSN82z7IzXvm;Xm6fmM|?r8zoT_Jfv$Nf>g`%)u2>|Da-EoA3il?+G60RDFdG2 zU=RvR>`0JrQRdB2K01X&+`9IJ5LR<XK7Vn#8v0bv4&U^KE-Oh`4_{@k>Y@a^2?q*| z2RNKqBK<WPkq$R7pKCt+93c)Xe|5g@T=}@)V_L5A)6J>-AU2mAZw)HhRzs=iQ}@%F z>gb(}wtpsyBq&d-YfeYn36vKR+ISlI$Cx12SC_^-CkqQev}&cErm?&MQhN^PKB{np zuH_)`bJWW+eplYzlJLFdQ-yhV(}0Y!A?tL`S_t-I6Bg!+LCc7<IXAtj?hh6rE1r~e z!r6%Mo*UjAv4tNV;bpVJpV9G*hkSMqlSU(E`|eVf*<Ln{*}4nnD=UoIuISO}RNKsg ze8x6d?T!5sDF6Npb#^)5j&a8EeLX*>%r;GoJ(k(hIEO<D*z$ivJrE<Ct>TvU<YNK$ zxj5W^wFUzyzuS?;^v$C?4%37?%y?w+mjQ%GoGK1N9fF_;9Wgpsu`o+eGqK~sJlYJ& zZOJzjNbcj%>YC@sbOtfCof18Ods%pAf&2s>8KZSKEueMnchO-2gaJw5Ekaice~wV} z&kHI}Cn-@$T2@aUyEFLq9W2R!N@V5qbH*(45FYjI+kmXBIV<N$4ltY(UUy>6_C3yz z>GnOXtYrIMi}Ex#eA^aWJ<H0R-oFIebHnR@U%ZnY2~%J=hqe8Qfc5KH0+v26sPG9k zKAi>4#7^0w$0F{3sDvJv0&iyA|BM4~)pX$9X1M>OTHL=Si~GL|@E!&C=Z0GiLaA`6 zLeaFa^h7X7R$kqp@<1s(a`-@SyVW7Gu`;mIoF|`$`~Meqi)!>TPvUwHsEj>$NxlF& z2f9HYRd?k#7jP2OxcV~jjc2VQmxSW6S!Em@_H=ltdUIWPSDm%DEX=DKJm23g{5OMV zL3rCUA?^#*2DGmD38QbY-0ch0p!cH&Va&XCC;D~xH)4UPN=<6GskL3d)66_~E!xr4 zzf)p4d;D)pskxDJC-EB1qT8I<jG9pC_iXtT8Z*7{wKh|%#q3cLjN(Y~&{NhH&ku;i zYCT14!vdzC&*k0q6%NuPvB1GEfp*7wa-$6*Eigt*tS&0X4b>)}!?qfdlNoL?{amJf zk=7F&w#_R~DTYm``BGGr-NBj;y#k{q#{FV4=%dT9kmrQktf?9LiNC9U(#*bx%+qhX z&=~GIgH>n??&bblO%xSQ<u!bH1%@8J%u~a^qA$_^`(}QC2Uy)D`1aT-a>p&hN`e<+ znxawP{0if5ruV5a^|8r&RU;5C&)k1>ilpI^@ajub%;48wS=(j|1Aa#2oy-qYG?L_j z%T3JS@j27_k@Iep@bKnWc;E7$Gf^>K`R$URo7v<Cxk)W`76425!G|s*qI8z^yZWb7 zF@UsQ%Bm8p?Kj|eWOj{|ke_E(+f#M(s;<a8)m~%j=Hl?{OKcFPBdHC%uCs=;OTtg> zf?GfbIg?a!jHNzyiI!Rjx8VA$W1WDxP^fTZa^oSBIWGeX7YO?r&_L>nt1Z;_05vGm zmLZrsk7JR1qy&AzN{qduS;WQCJIAk`!vIony=FIrf3aEP6m6o59%0b%(+0i&pvg6{ zk~!fku#zazjv&zvW4knB#K_E5Bes0u<r@koQEPwl0X*?_;ifCulx-2^u2n$rKG0gT zwDx@Aq<S?oI4;~WsBF&=9y@-OdrDy}HxCL3A^hZcb9cS@xSpHXaK%#!VKqH6A61S( z(UwlFmr(q#9mSdM2~2*kn4Kk@xyHV;u*hl^_rm?ws*k3kkg{OTES{%JC-89*IDQ7s z8B?4$70%Exd$iWkT^C@+K_9wuhI#cj+2MWMPWCP}AC2KPm#sWPuibwKi!J~`bthG~ zs}&_?*Y2@YGx;ZRm~aM%<5glo*%Fg;t7POnO{S1L27vo7d7Jok!ozq{6^`Mr)u2c9 zM^wxTj3i$$`|~l-7M~}p6!+50w(7H7VlQHV^U1)tpm6H?!pktH_{j}P84cj;H!9Xu zbDB=Mpm-}SvDm(Ehn~Z%>2tG%+~e%hVhz+Jvv8xFX5>$8(`JG&r<;OllnX|2aY^{> zHsKV9nB(Oq|EJ-`<cRL~pDtd5Yl;5RjoU=X;k^@Ve;xG&(Dlh$jC=wrTu}eG#_+jI zb^6mApH*=Ndp<7tymr8H!t98xcR?i!!Zj+?xjPXdpS{$WSrj3>=BW=zGwan$lbFrl zJWGk|Oi}D3sjB^JQxmPKmQqIH9;)Uq_Oip;4$0#B&`2NLgWy8O(4LygTG}xA>w%_h zkLr;T*9nCLzi<>0&TEn9=7zZ*&6-%qOAF7S(}QX#Z?Pwljz7FCz8Aw>JDRR6qitun zmds`|Hke^#Rd0!`>Y<c}#Wak&PIF3LBiravEmTu$6E@;iDu%bPQyF<#7nXQWq8a2Q z$J<CAhJT~b=jly21&ZL27;er;Kp!~vjdSY<IC>nweGuRX@2Bv3Hif&dLJYH4H(tfz zId886Z=75nF|)ska||{dhO^$$n4hva+ytt_070_5gk*X})1Y`QHJA(N_4Y7wlY=XI z><kvh{mBV*B9#aApm|W8*7&g=g_9+Hu@1K7A~)rK3&IB|qprI#VcU4&8pBTu&`^E2 zeimm?%ntYN(b*CC@Q5~=!_<3@kPfE0oL7D*=J0=Gp1hY!$O>CW{ldN5NN)^(cRF1; z!>2jUBOmTFN~@nF20uG|%t%c9_a9D|FJl>GM{t;4CMY8Iap^1kFWLtlzNYZe^ogT9 zaXPO;sd+iO^A9GS#S)V!_SZ4kpDK`xF5%Mcn~Wk@3OAR8J1^$bVnq@SqYGd!93bWb zS-jZv+OOcFRNW|%0p=B-zZFi+aU^fBpH6@WESQKNVKCxWUV8uKZoR@Z8%X^R^yd43 z#M^CMCQ*+M|8lyt<&CzyhRuKx3#+bpRbd4yCZtgJuyxa>7dSH0vF1U;niXN2k>UT! z9lZT^u;umxFtVm_#FQyWugTPj=vjZNb9}0BiH8zg?^8=sbHy+l!!Ov<eE3REL>4CN z&dKw>;w3Dz4}gTG$(lDOk6I@i?!OJDDAlxDl>8cY@XmAxRd)<?`s$xD-n2-(e1nh8 zmgl4p9$<sj+DlkI!)h4*W?#&;ypQw~l>pDaS<fhm=EOWO@~wZ9?dC$74P0DUAU;Je zXq(=(241wWZ*7BEm*1|6QjQENYSBO22cnDOHM);;pN*qI)JN%J?N?oR4HCi~kP7Ui zMnHzqW&F^laQ^&slby23oq5})7xyQ-URM(Igo#PmoYb-K)2K45hx)U_8_(!LaLSk4 z#<j;B1JKvZ(R~Xu#zE9z5hzl>=7iU{RxJe#?))PtRgNODNemtZ`DRd)MYcDej)HCd z>VFKD)Q8(nSHJonZ&SZ|a=Q4geCr=?Ba@BKmM`FQZr~K>`3!GI*>m~}ADc))F%?>k zLWCX-bU^ZZdhCpHfd0RwAd3VP`oE03a7`VK;%J8+G7SF_ci|X?Zu`X{Etp<Q3+$It z3*eIg+lb^f87z+>|0nHILwLPpyh0j{;f^yz$>Et(5qHqlY6ezPT~m)NoP4<djC}Ej z%tDl`ER;-Q0<G=7%9bn$cb|b7&vm-!C)>9mypQeC-YT#|i9~)!@sc=<>aOOHtaw&o z&H+sX)08XKG%0B{N#>G}lUaP{jJyu*sVkN<*X*%sR+AK>Cf!X!%^CTrm34ViIyv;W zq3*XMIs0Gu6_-6F1E>Fh+*%auAOzr+wI`FJ3g5&*SJit3<Y&4+amFKVj(q?Cb0&w` zT-CEQc>l3?GBk&%o87?0$FH9LUJhoE>9VA@>Hjg~=oXq=VFI`fp-ct4Y1*2f{w6K< ziBt1+4FK@HNW?;}KDQkRa=yiH=FQcgyuR5FCl>_T)%<rd|8?=-A^xk&pIkS;@pY1> z_RlNp_|&c^PUD}tEBS}e5Wl^Je`eju)miV=SGtFAKGese6h2-;7{n6O(+3^5e*97+ z>IM$Yy?}W>XuNF}86&MS;)FyE*q%ZIT4Sea3?Kz9b&kJ)LC%+vzJSvRurm?m+X$y* z@Ny{~MYk60U;GHl@Yczy!q0|V_<|qWG%$uCyLhp;C@>sV*H>=1H<s&rxI^sIahv{& z;tq?%4pj`l&~h(}mzX($$Z$-Hc`;ZW>Sia~(f?jtApd9%WVu8-*nLvK_*;LrdsxmE zE3pHE*4rnFGWEAounRn7zk0?784_VZ{@_ZmX>7nEOY`6|#{*Ma&pIJbT+d6yeozFK z-hPuj{kxS<eSG-1@mS!CRiIpEj^XCqorVe6%4L8PQz7XXIn#idjC>BMAS0hA0P@Ln zd}}J!?_pUp@EKz}oB}rgAlK`ELHjQ02T!6&8Gj991O)=8H|WuM!An=zC7fnJ1=~|Q z&}i9HO$P3_v4kqTx#y9{X$vF_!<TNUS2I95OQPb^Yi%VdZ&raxSJEf=VFJ5TuWwQr ztIwcaGdMSy!A1d5c;Yi4MN>1FpP9ig;W;%k&^bUF3Jlw6cPE&mJb3jH(%PgX(HJjw zDx~QaXs{|&uv66YudV=Lo(Cm~TGv5KGg7Nj*4McD82=fS7T=`b?4OfFf{*b}UZ3iW zK#d|7d^}QQ(%b`o6!^HHP`|a1e^p`51%>0<nBs1P)Qc_h7~TRyb0F9e#~2R3yqXqQ zDhLB{=@=TGldRYlwh~dOh%0TC4;!!hLUjOn(HY>QSJ$Cv`UtZ37Zzrne-Pt0cO)71 z69y>o+w~+~z&XHDVlE(i7nNG09NM4G;%=or`*?NFS{f(>j?=qOnbYZo&m}*9qIj4S z`;tfMKLI_O)v)5eY0$Bqik6tR9u#Y=7!R`_JJ{jHFJrNu2+!dtbFABwXRs)#IPwgW zoo8*(i5kSH`H=r3frto)P(ccf7y-Xb`Y-1HpplHO&TTC;$alm^iTesG`Qg-61u$jd zs=8TV29SW!-Zjd8^FJL|YSQw$hTnzRi^(S_RAu(>5D@GiLnE>Hyl|;bU$IwV@f#%t z46BUe8)|(r0p0_-gxf3QY<^+Uy{ly7IRn*EPFTQLqM-e0MNVhRFR=plaoZd`zZ~qe z9MuaCB0R{>)$|0XN6huKxP(*wN{zP-)P<vq8O!RC0R+)eXl5UXdGUAod4<KKGF?_! zJjzAu<|AxavaK*z4&3vNBIiN#_ZQ~rhXdw_n7gg8$S><=4ZecENU0UdPughlxdrHr zY$ivhcyAY8PgoNVylJtQV+4~wh38C3qBI^eO4!a|#!esu$|<B=UqDn~?f{i3X)ATI zk5C{<M)D8^ty>P<4kU;r;M?6_x6*w*&jnSEkVk>aj1S>EJflWmp^j`P>7#+Ss#jMi zo>h3Z{wj$qShgHq^*Sm`=7fJT{X#(Wvt9vSqQBot>4KaChZNhxwRegsjElAw=HQDb zhgqk7o^R^-{B4D^URqcv0S<J{UOcP#7kawxUGTwh-+saqb;y?~N|H`zmUYisT-dUp zfF6#qIERFAgNZ!1b;a8~b7yh5(OE|9>LbXK>WP^8<2*SBv{8o-hbI-##7F4N_I{(Z z26AgMTD;TN1v>d_7QKUc$E>&$UxIL|y49?}q4x4&goeY!j<~Oo1b6YY=xIA@=Yz>5 zZ3Tz=asPrRY}g_w0@@)q!dLPhy!?)oQFZfg+NSw)!~tiHhF@^huv}d!tQQq;1<w4~ zQ+MhjgQ{etBg|sTylk5P1sw2KQXlpQ1BFwxQM6FwX);sPsZPq!nMyR{z1uN$NETQ$ z#UG{lg)`ZfIk*!}dp+OKKJ?aka4~wkf|D{<7|oDY$9OoX<mtkHL!N-VUytWj#YV7i z+)r<Fy%;`L+;F(=%tZ<{&=F=)g&2!~bq5kGgW~r)ihp!J5aa4k_VN5Pcz$_nfoQlA zPD5C%<R&}a?|4x;j!4q1DIlC177-)vE-=f5VGM3T#`6?$9lnj!FFLfUX9NBzaTi>N z#bq}BGlV;NAi!CSdzdBEt(Q>-7@*VH!2;CY0*XT&#c1dF`8^=CZ`QT!HB1Y*o#2+- zEF90^lO6Ursk3y>)k!;390UPXgmX|X7lt?Ot6y1vWXdKZ5T>JfZ@7h1hgPlHz@4>| zy^k%|OF8a-se)MV6w(>M@6SmYo*O<&eF#|swmF}*%`r6(K;GwDW9poVT7EIKK9eFY zS<HCz(UfTefX8lD@y!Irc#%d63lCZ<)+_=g`jLkCry$4y`3HF0x$B{~(+t&lE0)&B zW$kOn7o$0(ENumc7V?6y_-OS-(8v{2Mk9>1ZOVsQ^aP3G4{0b<Jfoi4U>Ye8EJNE8 zvGPQxJrTlZ_W>vo=DFbrlsXIVSOikx0EyrEp2hMFus=ks?4!D)&*q@Gy332(ZjS^A zRy~OehhfY|j$;%&$E*3m@DM=fZ8TkBsl~9ESb!#%KsU2Ycn{@)2APqAe)oy>Q+D?S z+GN{`1{%g$LdK<pfX_y~IS=G}#>T>V34V*<Rcv?^`BP85P;p$1<C%~4;-<n`^I)K; z0B9R?d+JX~=l=)G;W7ck{13vJYM4bUaXyLg4}h{?`corRvC{gx3QN0q{CtrPpp<QH zyj?har!j6AJ1EwGd`MgxK=0k;1gu`biI}_sA8v(h|LMM!#UrFj>%inCP5iVXP!74_ z$iW_RzKL~%fOEn-t6aSP1BInmXI{-m_ehF23uU5*MH@^9HSw&u2se@zXGH~hu~>%J z1kSyX89p~YW_ide+f+<XESimYqBsShps{*PyMC9U%<8DPEkD;4_aZuPfDvD{DmCB; zR4HB{2?p20j0?ZI`VjfDw66dSc>2A#aGVR@?rIr-l()&T(JS#b*A+RrfY|PjI5)N~ zygAQ-$tj07XY?~A-S4})r|vlPvyt)A<%5-Se`#QHq^~qo9+}9M_g2PxOS}3;M+OFW z<W_H9S6a8FeNCxvVsf}NIo97>Dd&cJ$4c8P10}xnPL%sf<K>CLtIE0UV*{np?U$GP zDy0%XR|ZE%N|n*l(BO7m(L<Fh$I7{((UBc1?4QArO0HCze9;SXy_0)OmEOUj+`5+L z?ovz7=2CNack`O{rS5H;TXNec2Z#DggZ;VD@xdLX-MvG(UFC7c)@YksI@gstTh?@R zt}V4UZ))k<+`Oix%jTjtmUfgYr4iOt+Eu>NR@2tnzR`v)t+}wXW6S28R^rPa9NE>o zqjnv;c9+K|SV*qawWhSLwXLPp*0E+|Yx{-vLtD#5Ep0C-tzo7urLNYCnJR<zO-@us zhf8C<m7Tdt@3>|>UK;5g7U0Hr8RRA^y_Lbf9N@P%4~`6s<|ZoReZ7^O0NP(>N<+On zCTtyjqvPdL`HIQjq0+!euD4R@?b~Ui0Bk{}GB{i=jSdV<lq+`sSb2P)RNh@4sgy>? zDibvz(ta}O_U_z7@9@}Axx`HRc9kY4%H!3&&I~YK?(G-EC(G5#6T7yT`gZn?>?r%5 zwY04(b(gxfvIV)e*46fk&d&CZQfXaB=ceZF+<19tl!@+Tv&VY-Uzpq3J7Me2ZSL$? z-I8qerjE5OC2eO7A`Ol9_D|cl?lnERk@8S^cmja#Ee-WfR6w$ka;Xn|8Xp=QW(US| zW8<ScN)cFq%@Db?xwECKrSqbeQcGLQrY?s}SM#RL?Ca{z=5`RSwS8@A!<J2(OI_<* z*LB-23kTPhHnnW(=-gK7SiPZTO?MT+oFqz`j=jT?s<gJ{qSiGnELgZ(85}7MmxqT( zcb9YHgCjfmabTc4UfMGb?L`<44V1e2K(m4Iav6HkExC!E5erf(6gH2KPVy8RGc=qN z1!@b&E6{D<&}2VA=p7njcX*|Uq&$?6!VJJ}Yq_v_%{INpNJ%IT>2;RcTe`YSo0@xS zw_NY8OpY+5(8{iDYToRm)Conb-m*@}Yh=H(cQ+`zx7;^40$S&KcSGB~+d(&>yY2u1 z28W!~j7&v0hGsSuVYQG%(*iy_a=qi@y;m9w8P@F+SLFsq$M^J(_dCP5u&rZtb6aU` zb9b{-0DC{)J6tLafdfO3!jKIIo{Wx7<hokcM4W40&Bk|Z?yg;E-wr@Lra45`1!0xO z*f?LbvBSZUQD6<7kHay<WNNp%Z|q7T;P#X*(;XD?uz_Qfm1(rn-nO~9vkMLauQZAm z)zpxJu`!`FOUoIJMm#E&$3}->4o)cPrmS!7T3>_W&1=_oR+l<CGBH-}GYmf$>J`fR z#nPI#j`o)7jhgcAq27_w*yO}c`#F6D&+s`{9vXPj3j~Go&i-*|b5DtVN0w;SZLOVa zN}}y^#qPAD6S<-Cj^4g2fhiEG-LOco<Gp)Ih@n0f2H2gAmB+_N$4haFn|Q5uFEh(g z_}IWWjMp$L1vo@EK0e51jh8Ev<0I3czVV`#&fLJ@NWUfnVO}Z8WwRHfEf0%-4!~E2 z5K@U06NyG~XSgf$7}OYLI2<(8+<Bo<Pv6+2$ao?*F}dAFHyJPhDTo_PTvh7rzZ_8k z<9F$xXS+KQUna<Ghzut-64j~@buCVHEj_JWup<4K?#Lf+Y1z_}8yp#|lqQBoHG6}{ zgzbvW!i3G_M1KW(8UcI96E3OWoZ+=@YU%9CiLb9IwQp%_^IvUhUE8{9S%cWZ_VL~k zWYWY)@7To7(Mm4GU#S$iep|OFoE5vOVRCYCqEsH490syn7|ZQ4QE2zV2}(N$pMP$y zG6p|`sh2C`S3=B)f>aJOk?xjFxt7k((&p|?Qw?&)9E5&i5ZY7_)1>djmBY4unymIr zFo?*~Z}8BtUF(}Wk7e{N46znAn=k`|A=0mZ2*{ayUERH|gi5fs)Y86XQxzfg9#M?T z2Gdg{NlINE>$<n{rs|!hTlEhP!10;iuD$_Nawf|qpkw>y><@+{6hzeRDv8*o)l8I8 z5^PE=IYH3KNlhse1X#T=+a+*mtcE8ruhx#W)wxXUf>4Ia=yf%>b+%mCg=_@SHT#G> z7c=Ug93H;X0IjRc(+NLOv~2CJb=30S971A*t&OPG+0wk$$2Z1rQ?~Dr%XXl>eXuex zSVk4Jm8D>B?(A&dmSu<rh(r?|9V?GaV+mD;HaccgjY9jvmhLXJyF?&3EpBlorK_c@ ztF@!ufnxi(n(1!b+yPK>Qt&2rAsE>Nu_>5)0(Xf&aq>Qwv0`kZ38VG(S};0EYe#2m z_cnf7-?DZK`ssza9apVGJeFMl)ApJ)6LwT3TDseYG-WuKlyHOfnvN~)(#T3{Hg6F( zU$ZecJ~?9gQQzq3u0dF^o;EV=1C=EmcM4y9H%u50gJ)>v3H!7eH?O^@wM$x1Yx}wm zgPg-?9SUXVwi>XHp@77RM-4Qc)aK?3TT1Jix3qPOm280eclUzTutAA>K?b<Ab;E?v zsV{7AZgW=DU0UDVw$1?yk2XeOc7Q2C=)bvyshN4eZU|P=qq4Hn^<or4EfNY!^x(ej zxl(J_nA8(26qG0!4}dA5>E>ECceJ$$jx9YcYjR^Er^@)Ca}+@hDnvohf~E2s2~3oR zN1a)jjqtous~ZXIZcAz?zyOWs0jJ7nt~_EI5=N60Cs%Bcn_HxtcB5MD6!#qO9U9z$ zHk+^<u|9?|4q#luc;LCYF{veBqvUW&H%yc#`(b&kuS)CUhJt%}1mc=Ne)>zdv~O(h z*xGK}xr>p}VumMCVx8N$ROnp0wX-B4?4y;su+}z~R&Qx-TU%;fYnym3!UO4QRFh(x znF8pySpry#y4ks9O?O9UskOVMv$-2Oa|Ju0;fY@48Q5K7OH2&N{PD@UMC{nu>io24 z?dB**;6i2#RHl(c%cd=D_KJvtW_$LUQW~GM?GP7(%T8<`+J*Q>yU8ej=$@srj4&ga zMDsVj(Cnos4#&$7Sih6n4w#Vdl1VXF*!n6%Zqg30NBxeb#`*Z7p@mj51!d)kGDWv8 z*(>9dSlKAEngYNqX{k0zqyK0RcWrI$#-tGw*xI@lYoxWKv`4CtC?=6-+8RS2d$ZUT ztjo2z32AczurIAoHgx~!9=KO)*U;!5Ovb3lfnbPeLlv2^CF$-H1AB9QJIg3#P8A8i zk@jS?<v1`C_tTV;t%t0Py~?(W>bR-mQLXO-Ofp_eW&~eV9*2&Qcq9FLC$Of{xlf2X zA?sZ=JW6*8o_1f=FVNY%)%7rE?xsjc3pK*-H(AwPYTnXwQ53xBm1DBZC!JPoxj><B zc+7W8TgmHfM@=OYi$iRf9wlu>9u4PFQIB%d+&5(B;6TOQ2nlMGN+pDhQBY6E=9c!- zn$B(5FawfwC{xu%??UK|mMVQ?FLLSzO=QmZ?c60p&9n>WKT>s3jT2NbVdEOSeu_Mx z>Ps;3XPn<5q&KDtXq2TclrwYLZs;5hNI7GSZSQ14IT<Q?zIijNS(}qv1GX*p72OHC zxVo#$?a0zDEL?c-grl)sN70}XS2R>@>4A^5JA_tuy|C1_8HDaww=P1bYh$Tv<7#*o za%Piw)Y{fH-M0G5=q?D=c5wH^h#^|SXBa!0nR<oY?L<8~HaUb>Op^c)+2tIsFC|RW zWD<z68@e0MNpy&d+tk)|ZDSyTsET{-E#2@wLzSpc=z4@HvZMP&=>P5QxF8bPpa9F& z(%FKTxA7syXmC_fVZ7Ww2s=Vb;a$i<G`-sghhV8NlnjVFJIsO>dTxPL-~njuNNhsh zu?5$O-hNT8v#oVgD+-2~eho#z*++*k{dZ}h(uyL@WGUJdGG-`+sa(OeCPNRe$Wsqw zNScf!1=9@&m&=`NS2u$+HMl!DVq7-5xZtL}<49NAn-n7@{3P@E<2q3lTH?F#Gm)h& z1Y$|mj{fq5+svDryWA4WuFW((A%j#a*h6_>aBr?MJm%Vpmf)(a?f)8S6<b?cFI;bm zP>*{xjV$6_dcd6^Vt@K3m`aZ~m87L-P1}~P){9!uFb(clv8I8f{L_7dlHN7ieDrm( zr)##YX=~|<&aSwv&0V>QUgR%XkBhVhXto=JV;Gj(&95VAu(yA32Yl3oPpv<VcdTn` z#&~dlTCI9oqY1XQV-8I0M9`TcD=c*O*3yn!?s+e1pJ{l*$>^$^96=KFpPL&UkvA|m zh9H9d$-Qhel$y=0YfIhO=q=sObX_Af(@|Pe;teS8Hm9PqUV+{ePEc=8xfd~_ok_4= zj9K7tvn0z5J6o9G=8jHi1tr{hVisS_r6ZP6619~yPt1)A-R;f0<jiw##Mp43WH<U{ zl!C%vbBSc>#<T-TbJse|RP2N4i#^GeA-^*Y2^=xJG^KqQAq=pzwiUer?|Ub<zn~9< zHg7F;nq%8!m1Zv1WSqQrvNGyJCo=-wF$c>THAntlX6!0s7XVK;VqI$snqqWd)X=U0 zvm#)ZFqQ!8ga-8|&0%j!VyR1mcC@!`%T109UV*JV+*?6a2WBI<*5!R1=^yOHTR9<} z$(7*54<o4B3RgGdaAP^<14k^D<eZ5DUbejLvRH}x3f!UUrgSvwj2&ny-KF;Rc-PWk z$K~jVN$fzvHu~pNN{Xav-%FdDyVsZ2txbKnJ0{Ecg%YtSz|BBeW>2ACN6Jd2V&8Uj z)v-b5?EZp8lj_4qC=s9?6rXYwfx%4}mKlDO_u>*%JZQYUd(h$@wGMs0u~@@6Gai91 z^g4*OWE&>S)(l@3932kng7@~1MTZwW5cN~Al~z?A=^Mod<Az^%)g(qkT90p{JLkIc zp5AHvW%GJGQRdMU`q*rG`}&yBXhvtXy+ex?_M22S9m*&<HKCAbUEO9xjqYKaO6NM? z+lpB2#J^-tuyt$K$|agAZtyD2f0ukr_UgXTVNgAz54+M7ap|J9sEhW5z26-hXcxOh zn5K-I(uz4MtySwW)xu`adxRI|F>|c5x#q@!JX70>iR^Z3-6nX^i?aI8up$8(13#ct zZ@UH43}06XC212pcWkHpOh~&yrXoTb16(;N6w#xuoys`l6}9RwxwSb_L9H3LrR`4q z8aB4V2MJx{xB*U#iyZFTDdJ4UlmXBD(7M@}ivbpQhJgy%EewhpTcWC&KM-+=&m-gL z6PfW{&&xGtp%kb)nT2b$=xDgq!0-q%gH6pX(FL7xy;e2fTG`gzz74&rdrN0~q(QJ? z*sXV`>#d!}p)?~mTeB~1F*B<JzeP$TqQ%OP#ViS7p|eO1EB2-dy5BFxn*_{SSsHaj zxA|fORFc4!Eh|c6B)otNB9$b}>yoaVGAy53mj`n)-rPhBk=wTFgIL?LrVWXDp-;$+ z1MR+RKWLa*UMkh#`L1dwQ%O}OqXXSbd=KKkkWgJ$Rk3mYDN|QkN~zs6P?u9(>yfW| zBVw$yjinpvc5PX0FEtinHk|n$gm4TZdl?tGB>3cbA3>%X@EGB_7-dUJ{gY$QcTKAA z%Dy31lx~M1Nk5@DY|GqOVhJRgtw};(znLYBh%ZGpSak#pe8qEt)*#XC3SlG3G2yX5 zQ8f&tKgiuugQ|&xi@5zHf_KO0sBwKU6J)0W)UXCgpw*a<(#DO*vZcMX2T9t#c2n1d z+23Voyr8ripLS;R%}*{6yHm;(BXkfWj?(UmJFh$n?KuU~!eH@u+A%%cJ1I(#W|_go zsH@kki}@;W&gjOf<pc2zvem>a1U)fQuIyqPZ4O37AWl10iXbH@h(Wubh;YH0X6f6V zvNDPJDB-~-C$^<|MHa`)#0#NU;tysD$?P%B!$U3AJ(07?<-=A4l{=ths=AxsJYr@g zgKq?qu>Q*8f5!aW`9Vxs&e;;7=L=iRpRe0AnW~&(T0{MV!}9J(kFhBkhh2?qH2>$Y zZjO=$)XzEfuJ0Ynauy<$<x(OE4OGhN$cFMYh$UEndoD>)jF6l#sHoMXDh3)E@d4xj zA+G6KWP2hgH@CLR%Yh+|{vsA{j_<1mQ3IkBkR^z6wzCZ41EWL(Cf48!8$fXtUiU#D ziQr14Ub+Oy3@Fc|ETUFyC&W`!P1D;HcQ>cP<aP)@+C{w+H4Y)OOjBG+ce1T>3$ABk zsper}qQX2ARfO-ya}aQOd|0?19VNyTY)@*CI?9#kB{GjHV@<xq*=BUvC3=EI%KFQF zL*^5&8OPm<(3E&i%@x_L*+Armj@7c)yE{AD45@5Tg|Q*aeuPUd5#vC3%!aa6!Q6XG zif`w}M@MnWgBWs8>Q$zeWG3Ktt|$$4J9S$m_!9MBp;2Pr3%5nrMtSH#P`Zh+xP0>{ zBe{n?5Gfb3aUs!R*ZLMkB4zZ9kX3|_UK$baO1O*&Io<DFGXM7W?er9;bT7BGcWuUp zk9n}O8ZL=a9T#bPcPo}jr_U+=EXhJ_!UeGjlEe-W({TO7*t^!1i0x_)LA+Ty2U#5` zVvvpRofc)$0hVbQL~s@l4y3C{uogL09!GELzj7qu5Vn~>7Dq759mmf2aA|m=#*2~| zWPTT1lI$)^3nJJdh^%dKza1jEv$@JxHlf|JVC=-~)~xB+<iSnYf9twL@ky~J$;;59 zR`dT@Ry8)GF>|S9a{b9n#c05z-=9uoV+#>5rBK;RBkbKfqS%KxzfF<g_u4I+)3Hq= zh~m<L#6}d4YDE)>)=M;S@kMz04ssQhU$c=i-8VXhB56r9>6Ro(UFnwKTCn(8x;3~} z@ubSXJ#i%_jG}5bKlfQAY)V8UF5%jniO^$6)-%1_h+HEhlKtvaVjT`-(TnZ0q^5$W zncTP}PHD&&RY$Ra=u(bqqXfU{fRX=H`u66=9GM~HNy~044G&_-O}Mwq)FiWOq2KMJ z6H-b97xD9su2$k;<Q(wC$n#L7D`fJJ3u8C99tQHHFiPEyBjv#zJ1zdOopdwY<=Yit zHZf9~loeP_+%SKxs}bTWaPv_D#PY*!A9bs}HlmhB(@a{yQl?wl0*T_A%#&qDMmAmh ztj-zWS4Jm2VJMTgL>3pjD6PTMm*mBDMNmAmU#?7;3bCM=vX%ITOwSO_y5fr0v|Wi| zLW1cDF6PtAf^Whd_~;Jcn#Jd8!W}k<>2=dMY6^eZ+`5L~!+wB0f>O?WT>mf|T28nw z8!KU2S}Bn$WLxwID&@qs*wfld;-N4~_~<xy673d#DE|*`-EEr4#**m)QE@<rVINBh z&p`3%BF6jiYGoi#o>94P#Jo#=<?3w~+99umBsXz=M53t&1bD?x1xZU6lGTcfD_y)E zLqj1mh4e4khUNy6I#WY|lOr;Y6#KOdFVD$wAC`#En1s?ZHEvb)L#NruQW2HXfiP2) z+(&+_Y52}$JvL^~q0!)0NM~jNtAw=^(&hcqkMP^~jhh$CSYR42Z*C(Bz6q9=L@cEj zWt5_6n^Nj@Y9z&xC_z;_Ny1ag4mIs0ozKAFcI4?ObZMYTXu}=#iI+aIkEr9oEzCWn zF)+?EeolLBsRJFn^+IB~Ejfalro|(T`Uc^mxQ@lhwzT6KB~pyrbZ-?jq@QGy>I}P0 z0kI+Qro%gA^~h0&5pV7TF)T1co4@_aO4%_tU7RJf#OR0EfLV#{9W_Y-jDrP5f-d~f z1XRRZdp-Qa;(MSS=ni|pLriXlP00MMxF<ch;I14+SuM^cl}M<Tz|(GqTV!xFJ2|e{ z#wjTTi^EKcPD?j->eOUv7<rl>my)$P-OSmESToxoQQopbHG2QoZ$&*{+kydTnXUp@ z)k?38f!bs&-A;r~+@rH)bDN1^JtgcuC&lyUIre#MO}bNZ%k$Gu?vU4GFHC=XQTpk{ z>8F>ZpI({-1zmBUu%IX|Ovqq+>NOQvB@#bI#V~DKn+XK6B@;?XHL(-JLgS=P!4qU~ zu}LX(t9jRP-y%n-Dp4i5zU3mY=~ZF2k&mmLwWp&+su`NVUjnF7J<(jw(_~Ta81@j! zO)*;#w<sb~)GGE3D|3gInP`kpXoKgqAFgrqtl5&f1Wo8bZc>~KPqjj$6%&Lp`^EGM zcjJNo6>++WJ%jS1>n@>V{F{Aqf>1~k7<C^g?lx%Zy-8JVj}BHdpyg*DCo$II&(d}_ zVw|jVXL6#O$OfGORo$R&CU4tuRT6|`uyf!Z0~1i=F&P@vC6IR@{|=E5+m@OvbMbLQ z3eUh6p=x&$ugKcXFG{^45n0%WK@xgMN1Y%+M<PEO<+cNn1Gh%5;{4xuz{H@k?5lfk z6H7RpYYo+lQQk}1kCX3D48W!SF+4m;wh$0(0*P+635e_-@VK?XSt3mO6*oq8K5Eub zUzbI6vnzMMkK#TpnC(<kL|;PB9+;{DTOZ_$Vc5i%2^M0~q-K~004n3sdBC5f8e#w+ znRGuTw20}GmX!gyzc`6(>q3e~t?jA{=ps7^JtYIH%J_&BWD!7(5k**5fpCXG4ga+b zNqrb;mT>x}?q<1}<BMu|LapqpRWq_y-y~6&9l*n?K0G#JY8MGZC^VyFE@JOW_?dEK z458#)qeNCxcWd+}+oIOBl44gIeG#iUcXjK924dc8G$-CB$A+=C65u6rlqDh0%u<|` z{5ZIXJmeXnWa&6&kGe|e4l5_mX0pXed$8PAr8(lQ0GFQkA`qZ<VpuzvgoYI^qBS$P zgKbv|UuI?bh#tjD0Buk(Uz8HKjXy;PUwUQe`CfiRd~t}J@a+84fTzbJGNRS2Ix{P5 z*&;l%_>3QF=uA>Y>TZrKKjoR?<E36yogK=`>yxy}0#EJ`2?FF!L=oe>t{TX1N9>s) zaQeo}Bn8U*oGA)HyQtZ&D4a=)x~SAu<#@bxfNa5-B$fz-sJ27_f&az)&~DEv8C1k^ zZfW!CE~ydH#mqC_wsxkFxbDDBgs8E{x?0$`_2~UwHPds0T&Xi8?4bxH`j`wzd^{yj z;<f;5x_zRM)Tbn&HAq<2BG4|J#3lO6+b4J6aWIRkn&AVyEs2i|xNNXKGG)k$sBhwJ z!XnMYTx$epgcslw<Ju(=KZCd4RWlI&B4T5ZO*aOPAQ-*0?AzWk5=udA#}9@|rCwDF zh>m7dNvi^r;UWLELMJIiBtJ4HW3GxvZo`1FDMV}`6I4|6Po(l#UMOr1Zlgv;<xkUI zmZYZxYbA^*9$_oNF(X$<yVoa(bEqN>?2VaWn8&>t63VhRqaU-Mi4j&;B3Y%`SA8H_ zWEC21Tf0jgTfmeUFf=$kHE(rXi_XAS<3-wuPI%AiQOtj4REEhK5l+{!%o#h}yMwwq z<9~4!YS27K$@Cv3^&+d_kt}`h^DI?s<C=A_RJ0$KSMzAM61g^aY|MxqS=18WsFIi( zwIVf=uA+jjrns|EsZb_{$=Fw5Ms}+w;|mT#1+#cl3dvnT2-}e*VNp2Ian^OML7i=G zCs~Lxwi-T!X|-D;W%k94Uw3NN?noR{XxiOo4_HBoCuFSN)=fdwx^+r9h&E8w2jZq5 zxy0uE&+<X7E2bCZrfIPfEs!-ydNvszHmuEt0s6QDrVcrkKtMR{=s@)UD@G%O-Ks*n zwro}=4K`zRsZLCejRC0%C?PUFtT*W)HJj)G(Oh3;Z&ZbOkEd5jDN4LW?tQzcUH<o2 z`)XSw{~%&V8zOSS|FA2nKZzo2M2$e#rVwC4_t1@|Ye)rh?Krtv>?Gzm;P3SOF%uc) z4;POh1zs#tqgK5QN{f!^&afvL5enzyx{GB<rf{139ZySiEVvTlKo`Xbyz-Mc%ZkIK zY>w?CfdSJt4U1tuc+Ae+CXPvadUutvh3$12K9TBF?nH1nYXylytuSL&tHj&F-obaK z-;`*8?nHB!Nvc0Iceb=QS5Z81pkOa4l$*H5tGdnhi9HaP*o3P#mMi9gJo!j0kc>aB zlQ8qdF2Yg>=LyR&*KWbHlRPP7y{G{A>)b(NKIf`ED1Yq;G2)yGzO;vqOkLY>q@%;R zki?ftXa=!|_rf-Vw@u<kP~-)LAhFN%Y9^temuHmdioFlXfCDc&<k~w_i!Afbae&QD z)Nym|ra>FSPLK3OJ%+a>fwmOEa`^B(rx?_An@G4DIe?se7IZP#S9yEZ@8el>Fi{m| zM{buwxSeOnm}Qa{kBz#c0Vg#ZQURH6x7QYW<Spi~nfkXAJsLP7%&p{gf_#!%GuixB zvG^{kKnMXgdJ9=QR!T0WtBi0<LlN^bPHnjF-edPi$2g_2+HB-2u~scaZA^Xo^Y(~^ zYts$TJEs>5n>%2a`8Q40j*7FEV&SA+OyWsqH%?Mwh)2`PQ*AF&SRI>LD6e-~yiP;_ za2fNlB0i%8E66e@PP$Q!RoZX!iY87G`MJ%G(FpEsQ09PnXh}wg*+F22pLjWSj~Qgo z&(_7KU{J(abDLI4Y>UNam$z2(HLfyYg?3q4L^BxkM6py$R3i{0z9b^CinB5Pmre&J zBnK|O0-W8-cv6x;mB&PjoD@UkS5iKZIvpLIwP5TT)hpF*N+N09qC|irA*6+`%}MZJ zhv~^KWLh)%=QtdwOHUIB<yamYMW<HLG!vX~_HX;_bvGg>DJ{m&W445TOL1D7rwTY~ zV_;@|%CZ*-T*1m(pfR68K1h2FQmyqOSq>;E<9(hP=M4n9Z2FdLhDj==L6)i5RjQcT zKFg(J81D5=j)q>mY3XGaDa6o}xKN6&iYPCln4ABSLRJmv_Fb%Ljf|-pQ`KulVE8&L zvKXVaSvxptXGoZ}Q9Vn%TV`{{76DaEfx9JHF#rlBuw5CN@y$l>kqso=j?LVXRCUOt zF?O<JXmmSTrRIji!6FusH!G&l+NEq;Im@leR;zFU-0!t)$0VjhJhAfvFrj8F#p9H$ z5Y!4AGLoUGO;k#+XgL1n8AisPl8U)r%7AP4E-ub$f-O*m`5ArxQT(f-&^9*ms|@H= z$XIH|Kolz>V~X1G7!A=R5`VbOEkPDk;?y!XYR}}0T9HUZV=8CcYj(kqBkn<>#kD|V zF|VXl*(qJjAXS~A%#t2T7;MejoT$0TI>;DiF_!1UG67V(uI*I9?@~MxMVJyNEyyrW z|3Hu9z4DorHX5%|Z<6S5ON@inl0@B!(_I|E4Rk=ZCRUTGh~DKoia`{b@|{M#Vp9hR z{{!#@<*dpxff1Mmt7@#7Ocgh5`=CmEH@HBoRe<wH1#tH$LI!qJF-d|^Nm&$2nc`vY zE=`n}7co9-eiE_69UW%P%dMA=Az@~SjD$2cVP#4R2GlYmY7d&*RleO-`)nfhl*L?; zLrv>*Ey%-l>6?aLQ0p4P6B#keb-vck7ZF)Vv|TUYAxl>k!Gv;bZfVYO2aRKtO^u$p zHaA?0jSL!7_mZ|6f{5I%J>9KUB#3ay=!RfS@6g!J-l``p`cBNI(acnH16PiTe^L*z znR@pU-C`Fh?p6dKIy@Bdh#Y!NTgD;~&x}4D7o_DYe7|uE5+Y5Zg@BESKH2XGQY8r` zvkBX13V=va%sq=#)ARvzaB67XV-#qq4T8y*n)Ki3{)m|Z{pH;Vl0LJB6ms<ZrGy`t zFVF0yD*PM<se;nkZDLmMsnIdq>1&{hz8(t>MW*gz&WxyJzB32X-20MUw}>f4sH|H- z60!zDNx)y33YO?2-NkkvSzg_J6ep_4(;cBP#IU_pN|B-CmNcC;@$4!*p+JX-p^9qe z{*e}}>82dWqgNIzUqOQp;|?nze0w8XEKLQi(H=6DR!_!UxyatFJ}nC;H(*>aNoqwI z$R-V`&xvzKl&5Bo>vpYmw(9iSKRAJxa)eZ3w@=0N>64L#v9CldOR6}$Lv^Q&P7x>i zx-u3#Sr@C_xRS8cHTEbpTo2Qb&gz_FwbD<ADH>4QFK+4df_0;h#B|i;)I`RYaAErv zOY^fljLx-|{%;#q($gqtumxdWGe(klnV6>;$FljfS&G>8?e;w)&Bn1wPqep{+DP%# zL;AX=jSf^)&S|+xjfh^9s`F@$G$4wRh}50n9)6*I2Od0STBKW_dQ?G_nlv~wD`G17 z47zo88=U--`N%1z^i75DApnmy%36E=w7sJ^CUuz50}1_u3ZpDD@;nTUo}_O`CDfZE zVd3`io>rcr5Nq2yT_;R+fuzP0I604t<(X9uN0eIW_U3&|i)TpxcGWrdaqu{c1pqB& z&D7^C7+k>UmlWfb>@?$q37#Aik$_iA2c=kD{875VnqkpzwA?$pRq<@(80`bazN|cq zI$pY;MJK(b+?a-B{XoPrvkzt5cLd-mPN5Jgjn%03w8~-<WGA2qQx~39nSNrTY+UU= zvsz`v5~kgiX{;~JNXgXg0T;!QaUqK`@R;IJ5uT?U4sW>{cI+5Y;*RTLx^>eZ%d~Jp z60nVfSw)AOT5>*#?WI>_N+|5^m{J{GyuhGT!wU3*F5KL-PGGGP>x^hE8EjMZP~v`x ztT83MObD>*{vg54v{)sd^lrzQ?kv%L1sUDReNgT}agRupjntpX5o+s6#2uGVDHJ|Z za%@zLHn+BWaL^>I3~Mx+Y3cL^YP?Hr9UYzrS-YpURo-ny7vdIgS-bfKX;7OoOFWuL zN}G@w3h0u^j@?+^6J?L8M!hI8ZB-aV@ebbA5}wIymp6CN+e)=>;)co|_8>`?%u{Bm z59qF$jx~0(aDaKZID%%_#dAwrXaMMTl1<j7O6t7vk@QMA%~e~F*$y#3Pf<+rGf6g* zPw;s!O5D`&H46l1IY6SsC7DmPI&1Tm?v8|*lgLo4!*HcNrT=u2T1br0n~KF6caNeS zn4p0QK(0}en2p~EH`6pxBML=y$48-DbVUor5}vYQWc{1pSdrEUJMlDCVt4}(!KHSu zJRzSzpM|7LgQKc9ibR#_3z(QHR`4Dx=73MBImzfulWqp-gJc`yrSsA8ViK6R)M$m| zep3t5%JNj*hWH`QZY8N{_|zF$6A^bi*svpO%%{#469twqfor=a5JjHZ?iUyi>1LIL zWSG)ZKJg*|iIyClGl*Kmb}2?4Vq%?ZlkPpk3oF-r3LeuyJ^drfD@8uceyw`d*dn*a zZF{3auGCT6Rr8KTZ=L(vXpWF3H=9?)%Y!iv4VhJ@l17wC|48~4SpLUAIR;Z=JDjvc z`B)jCE<usyiEvCw7vM7ll_?joH5sxhcpK{!GE8jsHtS+$8Ip$2s)9F177We(#2I?_ zA}ATTv9C#Pz)MgF?;102q2!B@^t9e%+9?1>QLE{Y7N!v;XSTu2Ui4-(M+qRrsPuB( z6!p_cU3$w!FQ#%b<IGaNL!xtA5_jYbhTU0?0UV_2lb$!GN-n%r7CpJjg=#7`mHpsZ zk=EhH5ZY3kFge#+OE4q~()4nhpT^0WDb+<yqZjmth=<uZnL4M55hO@e`Ygsx^L5yu zsTl0(vTC!451AMskv21MJP4Q(FoX<Mqo$;E!7?Ukul33Xx6iWEvl6=`W}#`upq^N% zcWgASiHbmJ6=eam73y$m_7Y+G!&;D@s(N)b6irzyMendx!en8<iE|`db>n)u2j;x7 zSW;4pp587#5tnU>MP`m>(XqD3!pQd9LZeJmWBxzh-UD8%;#wbm_kK6~yytM}%@)O) z!~_*$jPYu&AjJX*oO2K&auhrQQGw9J=v88g8XLqCu_5*@v9}m2i6sVWV(caMYrJYK z(dhR)&zhM%`#pHS{J-Dt`}<3H&z`zw&6>5=tXZ?hUsevBU>?Kb&V{3{4=^QnL%O0w zF1c>UrI{6JIxATO8weK~w$oOCCtHnSo@B}Q(Kn;n(9J%Wn<vtSIpb&CRDny7ycU=` zto6^kHQaTG-h?&kS^UE+Su*dz&NrJHO2_O)l&=M|!)+5984=M|N8wO)aYwBMk@jd~ zcCkd<lyfTBKaQ|?#tSC{C?7!QVznl_ule}#0tklzH4N&_9t_VLma5tS`r*2UTMz{t z92~4wSd~Q@6VM%KVwxH8w7=#)j}Z;WVDARu$?c5qt=@yVj1oIk6Z520L%ZZ2s%zpP z-d(uEYj=4K+=j=ly5lTW-gX>RK}oX|vzS)Tl)Q4tts%&7mJ7HUZ56hIM*^r$*P<v~ zpd-?AIS}4Khv00XV+KP0L~aVq4KxG3Lr&y%|IWt~?yM3am#L?fPSX)rZdVBH)>7on zU~Mujgf~993B|6-EoHZ!y!(hPK*GZtNWA#N$uEXL!s3-aVG2=%854RJY()zVXitXl z0t{ibLtu*GDdr``x7GsB6C%e3T@@i)F_SBTMYqtWF!-jB9yu4`T;0zG6P=}{o-0Qd z2Rk^WlcOTj2570H2vXmikHp}7BX}p2<bm^H+>wMYK96urLkK3CwVoUbPYZFXAVir^ zg)l~dnpjt&=GERZVV8>IHWtgxnXAN7shgT&h@I$gc<tLoFVn4NQX_XKWOYcLpuJ&x z8+QA|D)lV*`m_j#Kq}FB0B&Uzk*Pgnj^%v&Gz&{0-@@+=0e=dlY?cGEBs!E4u{>%g zX?X`QxXG$FNTdA_4%)(rw#UcBSblCT!THkpld#3&!jY##9{jm@W|(Ab&7^fwTY+lE zs5AxrQASX>_*;#-e-hmBjl9Ds3b~E7ijxTK?6jZv)a&o*Ez&#^NmSg0>?q<1uGc_~ zbqAPau`Q!Vj2I`ce8**}2-zwq^r!&Fe5_JYXtAS|sWPTaxfp~R0^DgckU`>snrJ9u zc04Dgnp3|kSrQ$F%WC#4TqLzf$vk5-!GmQH%kld2Pw5pRI4R=VoJAOv1ksvPWMIe? z5Hhbu?%$4!2gL_<;*j$_KSmlC3!WiV)!Ca%SchV@UCD2S7C-QTcxF&$Tb7~jBai7I zuS}<{+kcJT6J}$L$Jwd9?<T7S-a-O3-Wv@a9mB~aT=HiHr`1RwJwP%ZREYrLxV5We zV6$r~Fgs^SI+?%OXeyc0XoIq^)nwX+9iWWc4V+nuP_bxr1R`B}K0WeqN@HsldvyhL zFZnXlj|DTK+d>p}B<<2*BeM?E>zSk@KzfncaCm26>;%Td)OHxoJGxdNq8h@G^Wb3! zWzASpU_B-2MeCFZ1LVwbKj6~{Sfd9I3cZuFTkMV$lob|Ra5cH$3a^fNf}w!<Duw=R z;1PAFCS>rqrc5s%sLcWiz|yV_wn8-;W+@!Xx?A?#GkBHAOq@9GmHKB2mS(|md4F8$ zV+6I01Dl6K5aJ7pjC3W4s6)&r_#YAx<SQ_+F%mR%A3@ztmvqOUF_F;lY$E9}^b^D* zMtnHO+b3BVy?Ap3f>P>kqsM`5V^**cMSCDqcN@+}GW7<Ln6@-799)ttX-}6DJ$%Gy zh$=Eyo9S`93@hbG7j^U}{aLAd;lx^JqMm@~#{R+L5*R(AiwADzF34h-#@N}j?XT&# zCxe2WjhcQIQKGyn-P#nuV}@ZVjV-e}ZH+B({B*eF;;;sUX54Dd9H@G;4}}K<W~1l> zl8#~W>l}q`)k(z-*LgT|*f}uBCiburON`pXNp&81hk(f73q224q$5*+y96OaK&%nC zvuKza!$Gvz;37#SBBpHkP)u160zB=+mdaG>jGhvxIHECT;XN$FbzDxPe3AJkzyVmy z5oZf*jPCRb4R2^>q>kZwb)!WIyp%>h3vTN<Iz^tzyn|*<M;Mf7!fE4?@tJx9w*6+4 zVjKz@K6$F5D`7M<bIR=<1`Zxx(!&vAhIANQeH^@wX?yi!?WY2fgO)Ah!U8T5Hn$bG zDlCWryVX5hzyB$=M0h|0z5z5~>xyaYgW-`?&^UKJq859oh0ACUyme8MxVC#OVi(E| z;*J2xpuvLX3%$zlK5L%-p$(Es5Ctc;3l(vTC?cJv;LXJD_WkIgxN{#)y|vwA(4e&l z!=V0{2I?<Ahhb`EJ3mG3sMkW=yW;wU?ln68LETS8<ZjE28)dF);q!at+-)5X3K7N} z0>WWcS?3eNh<WXF32E4FF?@*Ia_M+c4*Oui@d}_d4VD3t0qmgV$O%50kaFuBr(#tE z7XIz9H?}Q5K`}au>=$aG6_h_w#EnB#>I`BJ?qb{8u5T3niFl!h&WV)LVPit&-Q6^S zsKmtyE*p+N5}^vWS`x%?v*xt`c+Iu*8tU)}_n;O;Wo@b8G<M)F+y8Lj;K5sMyVW)W z2OSKL!H%8KFC1y7<CD&rJ1yRRyFuG+J8;m9frIuOGH?*0k?k~N_QD^c_yPOzO2W)} zb7s$3IDgQ>*@xiVd60q>%||9qDW@Me2vfQM3}ntcR762E;xfp=XZmae89~PM1EO!y z2Clfnkf6sQ3MoVJG8a*N_s2UF3ta#q_{aqrNguho^91K_80dvW0&z+LYB5uSB$DoD z&P9A$;h)rKx`EhQSQ_l#Or6~RLr4m=&~|yxUw}<Rs+D){Pf!w|QhUd4+p};bnOZ4J z&jfd=M4M?%plz#%?jnOH!`Kt7!mb}{hsr7pmsHm1CPC6F^vnW24okZ?+<X)dr5Y|L zJLpHIPZBy6+uyENRA?NBA2-ht5eQOEd)-o+KfEH~tPFvQwc;&)UYnqq*sEBupK|xd zV@Yk@Xalo%DLQ7*O(q=eB3M1+7jxifbFuLkXDcksm7QXofcoLtx*s065OS&4@&b|z zHmoZJQ0<2Eh8dK`pNaPH7S(WhposIin=V{=F(=$@T<O#19-3zdR8j6O^h^?z<b_ZI zsb*p%vrW_Nw0@l}E)11Xt6GZbfyA?GG1SU12}O>vYTbqqrxx8phPX@4@}bb?1NstA z2r#Xr0Tz?(8v;pj52f@-c;L)!mr-yo6p<NEbQ}YgIa%dmr$z=t@sq2*)tR4K8TEBK z0grp!;g=o&6uTWiv5nbx3bKz{#q-gHf+wsxf5h(2eBf5XGdR3g2F$8g42x@!<}RG@ zjwOk3m=YMa+4DEzP|}p&mPy*T`P;mnYiNS)@JS&lZNJPQw<WweLZ+LdF5{Il1w3=` z##=bZn+ew}h@Y}b>`dJ@)q#sdFce|F3w}Rx^qzQ4Xtx&FC}3OkHzVcx@4%AmoD1CI z%r<x@70ojOt~HG19?on!KX4_A!Uc97@7N=A3qjp8_@aTi0pdET-f6LGUN|y$$3S8w zm>BbFv9}VqzQcq%omPxjrWV{{12?WyVhi6GV?mz1xI<9PE`%l6QfCi^c1F>6FmwLF z^JXzLE3b!&$&hL)bUs^~zQ=h2vuSDFqvgj1%(^1rxi}Xg=iDi<7L}XZ(V{$=CGZPn zO=(Uv6y7NC=o&E;@o_nRdXA061#F-oUY(v@()3k9=u$I8x^ZDhbO!1$oo@{2!HWc# z_eYGHi0Hi*(8Ny6%yTVp7=N@*2bxyz{33m@e6iPB=aWmjU^7F7(sj@CR(ka>W^i`5 z3~4%a*=wg0Vzy20Rb;08+GSThY2m;00w8($Zo}GIp_F3<^Zq0^*?9a2W_b9y@Nytc zj*fL{|INn`<Y)j-5)zp?mxs{vm<sc8bITY`3ov|<iY46%M||oW3~kOSMU&!*j}{<N zUbMlY=&;9;f@xc<$9$b=AfV!}0kE$zdyd_+bx*`8;+rQp73Mt>N!xJHD=IK?<g^*C zUVpiwEWvPzlEL`N)eydF%(&LcA}RO4Bh7(zHa{!|J3_*J4D7&oFAbqd=i~hmY<Pp1 z*Gpf8hmg3q+!=%o?On+0A?XS+Z$oqxU?;<HZ=+}8fs9G3fU5`<V^YPmS;S+ao<U9k z96>|^x(+;f6j%kHt(1MIV!r+`=Pc#~RN&T3?|zjGyv?~^MrI!@|M|A&IR~`=7^e8b ziXHyZ49<=@cK}vG3Ler02wchYAw0n}EC4c^DLphO`D<PXAWRfznBlOu6<#^-LnlT7 zp~3+5I+Y#CMsvLfE>etyGRtBG>nD|RmD9q+nF1VgazRYUmR<L3E$smq>u*Q}D?^7x zp}TN?<>Ri*vp46o_KUs9G#WXv8BzQa$%uFrc#FE6Qj|e@SLg|hlkYCz6l<(MR_4TE z${6{C5*wTY%akN8Dso3JT8YBF(+9xZaQPHL*%!=g|EX**F>iFN(djd4NDI<gg~M<; zci!Dy92{sfp`lelAAcR2f$qQzaHegV5jD`V4q}HvP*)_h%F|*l=MrI(E+kJ!(S|y< z3Ry85#H@gBh%-84F34JU5P1g)^cR*5{w{6WsbYok*m>9@ciVu;f%a*-(GFM~oOTzU z3UFf3X$QQwu(ZIdXV}vqwi?v1@jitlvh!fa>!3u2&9QT@l$()(9b9W+t;J4E<VYts zZWwI43t51t)W|sk2{I_r;B6}V1KW@gpf29VHFsr)dAqG00;PKq=tUHR7mu*m#X<$H z%{cRxyEYSR=sKE{Go^L~@G69)0?7ny7W58M*WGoCh04KL<Q~$TXZ`+M(QL$cW>G#b zBq&HxoXzjWC@#8&M5N1LSGu+VA;z1iG)x@47JU=U4C<T@2{*2-5?|sr<FqW`roT>v zvMVc_KNgK`bK+RsgO_$FnCG!ALwDi(Ph!Dk9}=NRZpr>_6^@-FDeiJgdf7v*U`q5Y z^KG@zv(mOLI2kHOe=e~lbAgSS36_CH&UZ_YYLpqj3Po7(dcz9glC9Hw5Jr<Edp=1C ztH@vGjbd55GiewD3v~(GWW<`IiG0jZ_sUv{7M=HDK{eh33}Jj1@YP^<93HG`RKM#& zSDLq6ysW`~c%&Lg(Yws8rQ&wfaS)wR&Z=T1xW#UEA_*CBGV_429T8+QA57x@W7dqp z?stg${T@u6^YLN{!3Jfo#f$})V~KWh7H+9LhtVXo;w8PHAjJa`1Lwlw!JuBL3CfUP zK(g1<hRqvTR2IeW@y86kyD__CFj+>2?d)T-4)}{`p>Xv=*j+}C2;tb3ZO&eJmXG0H zP0JuvOTBdLm825!6!OHfi4^!%=yseIVL9`4QcxqbZyY6f(ZyAOGyP)jcsRi&7rnj| zxH%ZVmsM1SShsYwhW1D;JyC+pIa(Zn1YK?1*E9UfKg$gE@TY?R5tV0Ag^x`fXsTp4 zaM7?_xIif-uz8aT2orqsN=CGpjk@y;^y6&4Yspj?BuXxM^aTiF@e8pL>2)xP@pw<S zei6Jx&+b`t8ton#dx{GW;EARvjA=4*%7K3owRp+PuMt|hAW_`DPG;#C+*X)_*cM(r z!8DiH5UJA}2Y52ZK@_T2VN3(A;k{r7+qV6Ot(>+nJ?+*$4Lf9PgCrZILTGL%NI4k4 zrp(b)6CZIeEFDw?L&QE+te8r&=4V1HcBCR?78h6M##ZZ;3J#g*!h<b9a{)B(VPY@1 z9T+owk~z=Au<_rGug}IvF`F>$#KbikhXF}g4AeTf-FX@YawQmnMhQxY+Q%TMUPP8P zkf8Jx@j`iAZEydOAH=9|e%Xqyqj#(j1IZ#@`K>g=w%}25Ja4!so@s$Eo5tj<b)(@j zp(z~Q!m}px5DEahMHNoQ=zW6e77KUA2`cr7Rf5N2xiMj`=Y#NK9fJ)co<uZet@9X8 zZfL?tB$(yIWnzT;%hIquGDHYM)Vsr!7^xkLaixbCfl=OR7(;mz1Ujhg#w@Zs8i&Re zy7sm*clXN2?NIN5eGYFMGiEZjW!TFSCG;{7P1*CW@Rqk28c>e8#V=7DZM%Gs#txzE zToXHVh6*ROC>8}Azc?e@!kD4kBvAn*@BKT+Y{)%T9O`!sd$!>v+&x`j7j8+R78o^h zjBf7be;K=lgz=LXyR8izHE?07gAT9tq{TNO3d)M7MrPkY_dayE7HSdM!)>nRRtIUP zTQBw3HejmOz*>JC#3hv$tPI>?b~`;6Mw72(+dG~VpIl7xzJYy0A~cq=G`Q;FChwnN zG)rx4Pj7qi^F`)Rke*u?&P*NT6LbXw)BJvo8X2No8YlSyxGwg4P@dgAKqPVh>CV*3 zghg2-<BTj*dS=QjNGis&3ddp1`Wj}f*p=E#p}IRpWybM;sdWH#j=vrphEE+ICNzj1 zoJ>szSz;rFTfCuVD%~c+?cA99Kd09n9JCA_2_Hr{WZ0{y%rO(~=n<oa?!wovxQU?; z45L;b1l@@Ynv2E`Oz7oJoyC?UtINwBy8(D?z}(~+AmUA8(YVN<Ty9)B5D6vBVy(-# zZmJZ%yyB#}(56DCFA^(qH%343fM#>WtJYL$SQdK^8ePEJBtdEIEDW=X8NskLP6wq0 z(jvk{sI&OkxXbJwxFk{o6U2<t&2?=S>gY}Sn4{Y?lp0a(a2gjTjo{-c#RKitiMS2B z27@^iO1OzFZLvJ}!=j|uS}_*7%F)?P5fEiF1amVfWy(|M(_AMbY_55FBkZ+{S-RQt zw>g1w1}Gw)rPmj(jPB|<S1m;yI*n$E&Sd+|#vvl9s<07;=e`T@8LdHUzz&eY!Af9l zf>Q55iFnEkoon2i_YLw2OyOqWu+4*$`$8tst@A70e-R9YMo|u2EIXoJ4uz+*cok=a zOq(l#@fG=8G2WNv3(pgV^Q}X+9^Yls^OOh%)m~hJaJE^ZTfyK>h6wvK7>KRuhM)!1 z*J|*3Rq;NJh^c&3;+P(0E1U)tv0t6W2$MZ<2?dX_UtI<F{ttI9F)ez>D``x^lix}r zyesI%JDU~QbJELS<Pes%2LhW@cpNk4wkw2W+?7sLc^)IPA2l>%v%of&JExC4S;uiO zUC}!V6EG5%^-*Ksl83*sSHKk#?G@@{9?Kn+PCG=I7qGm~=)D~*FsXQrcWSU(1~BFd z`@!vGJhsq#gpdpLpD$deI3AK|eCdXO16cmRVB(%nb9M>$q_;Uz7JgTqIXoqP=eS1f zPHq&|?rtsih9-~e5Ey}?*p%npTC^7+7g*rlw$w!`v5V+3iOfxs%Y;}vXP!t9XS~!} zJa{{9=mbWCwH*M8vP3}woO@XcW2sJyf!3}0v;osYoY>@9o%~*-x#1boc6LKS7B(#i z%>&0w-Wi^$2?_BV*O6TbRLX1bn3s6+*}=BaJqQSYm?&c{N$=>OGbf<PnzS_h{MznW z+nM<iMqqpvhro=7Mv}k^FAq~!#0~4{PBo3K{wkz#Y@Xe7h}h@MhRY|Pkiw&s8aauF z)8Pzza_zEP38Tvn^ksKSA5O{3*sz*821RU>`>L7tM!;fWDyf|K`~o9egINVZx9fR> zbbo(wU+AN}W?)om*8}xWxDZPIY*(JS<@K>%Igvu_jGs9L2IgX1WQB3Z+e|gr6#x9g zPWZqM;FhBm#RGr&Jk%)&V1L?xQ9+Pd9vfi}n#u^ofnA!Wt|GR**91KPZ1OfZzN^P* zKOPnvI2BycNq3wV$|3o~a*-p=(}$E?CtztZ$8oCN!WJCli}Nc*XbT+mQ>jELhOSV& zkAhR#YKZp&)O1XS(gUBSLZ@_&;I_V9&%kP@M~enFz3P+F+3`u7c9KtW#i^L>^57s< z;{IaE?o3KN9CJ`MD5wM*S3S)YmH{SPelhB8^q!-5Bi(!UYl%5UeGi<c597;H#WKU1 zFw2@LF3w2mAGD1hRYyPoJE&movMU`J4g5eIx6x|EK{9r4&_V2FSF9tyfx-n0$OS6l z;#PL^)(J{A<J?Kh+Zi%DZH?mLgnLco$*u`^9mJXy1DnY=2e9X4mz=zc-r{hPNI?do zNZz@FxX>90j^Od!de{vFw?|H1P*uru@j<U}PDixY7ky%b;6iwWfJmeSkkqIN@%y|? z<da!+f9Klb2?puX&kEq3?+jG#R#(_?6C88M)3m$IM|{H(NDFthBQ?SNA_@`+2Qr*k zl9cl-#kLW*?qgb!x)_Rk^^XX4&vl#PAv+JS0*y!V5c<!&S-`Z`yV03<)v~iVznNy| z;=hb3zz;hZueiAEnoe!w$Qqp@MfeJlCCvpXoRe572*>kLxK!$tigIffKk1srIQ&7V zqe15l>-53h#^QD>9-tLw*iW(P_s2)UD@>RF;aoG+p4j0<NEf9~k-)&B6kEs81lW0% z8f=Y2=c8MJUBI&GwwlN#&5Rh|hG^rvz(Lo%f|(ZETVdS}l}V7?GlHm~sZ1|cCE7CI zcC8lUS>&)z>WNWt7mZkkbf{z8)6ghEbmkVUW8OBS2Ud}fJiIrKd6Eg#LOP&b!ijf6 z_iP(yaAWUTRuUQV39BIroJ^xztjH?dBWM#tj2%Uc!Aold-47dKsNREq444j_69c^@ zs}8))RK{#%HH!5S>_lynTu_DmA-h2^7Wc++8+#HkULxT|QO}b}$81OOel-4;aYOeS zYwmnVpV@H`5NPfQU?z6K3u-wn4AT!>tBfmxszd^gYlyQ`IB!Nr$aI7&E-ccI3@WRF z;T?P+y(d5(^zUP;$(yyTAH3RW3M4tB(R82&;1=(zXmm6$8(jtw6pR^R8)wJE{swle zw!%yWlL#A@(&a--x@X7Lp$ncP1z0619P9<pn9Iox9Dqr8Ie6i0&I89eZw|RsSiKRK zD5#efzhZBUg=2EeUt+|81TdxHmM&tN(c2kTTd3a!3{m}rLI0pb!TA`4T!;EW!43)| zBcgEUUN48;z#u04Q)FC#GLSoN&7KNGP(0ygs0%V+QihKT5b=0N1*_0SHvyX6)eJUB zR-wans9{*GIxm1#8Wud<R3d8t!BY1L!}7;eiw{6hH1i#E#q6xRJhi2Bu#)ocV=W>O zdlbURrW-!nLlI$T_y~LJlu`BPk~_*!>>nJ3z{CM$A+<;DHC#{@%Yj3eI~&MXd>IcV zU~DdyiI^Qx;JAUf8MqAWZH0~2OaFNM(_wmO*Toeq*W$j7giG*Ht=LmNc8tV$%Lhx^ zAoK@Z`N%%jvfj*7M$<w2kR5=R#Bng;VYWm{CH4h`>4J(q(MVKA+ZdeujD>?TG-`60 zNP7X-f#uO}l*|eM?HJofv(Afw<Lziz6{ygf<G}FAIQ=h6tSA;J-K{EA4ol}5q?}T8 z<cN#f#s!3g`*(9^dRJ~1;0#64KG#M=i0dBiNX^6(X<oNCp5r3twqTD)KLfTYf@PFE z{sD<KjoyJ&3>5f2o@?Cm4tKX>T!-6P!(-|ts^pCaD+wQVV}D`ccnnKC6c=9^B%T-1 zLb>RHAv%>EvLE9RlhPt|0VCjZbMPW&<Xz(~JaLnbb%_cz&vAs5!Uz|H14ZK;GXL_0 zhG4(%ylvwtGq%a}>%%4vUvcjuy;!%S!A?juc@J6}-!`JH?xHd0KaO`$asiip#b}Ez zz{0ikaM%hd$nih%ayfAoo_;|15WSl+dIVir#C)ilP{*K+RKac8wvIdmx5_wNVN)Z- z8>NiY)l+pHo&UMuu%`Wy8l{hd`_LH~4+_qMx6&cJH;Dgt><3*7>LH&o(^rf&oj;ME zN*bAECwhN~1mM|C`!G23kMYdBFlw5b$%XCioWsWAJ(<jyL60qNU1NVH*mq~_H$75; zN|q4}sW>L4B_5$jM$%N{sRJsxlzQ9958Yz~46t7BEkLWcw<?~ET|M4!h9QgeNTr2a zGf*E_iy<BxSfl^;iJEij8+Zhkv7DVku1PVEdK?J0iW)f=CDx!bBO3E5?ZbMqyY1fR z+Bq;RTwt!iPQw@CM~<fNG~)=GDqYA{o`B;pivZiTX=Ev2owMMR^qujD6E1%md-uj1 zYGNwrWP~jsorg1_InpAj5kLf(xk6V}#j1!?J4`jfj77nhg-aV(E`u<3t<gmX?^mdC z!$<4_UJegzhuGmGhP8FN17z<n&-fWNd5A+c7paz^b?Oe}O!y%;k?j@h!p_dT)q9>D z{RVx9647n;=7YsxxH1X**W$E3I$%TMm2BQp#w~F7gb=YTLJSsf)Srg80v3QmA-H|4 zN$%wl^;x9GDdW{;z9o#Gl0}B#hw}hgZcu{G<7O`?_#=Rzx!3fYFnS1ZY<JB>XUA~l zQJm^}(H?Idyv<}GHri%3Epb*+hqw4~WtNR1drcTSY8;GB)M_n`##%e%q_8qa&*y}o zU=`OD#sAD&f^B+TegA0Uj1Urp=cin05F#9#7M&Rj7xT&$w)v$C^2pM`m~jlblk1U8 zi-#{3!l#DThDD*z2%9&tIX<I$QL)!};<ZGlRuY_JCJ0v<Vpvm~ll_Of7iSsRo=s7Y zU*6z=M02PW3&8nr7@oTsBIB0e<ijz1SsQmDa8Fb)IWA784(A{^Qm6aebqhrVjRdR1 z6rQR?oZjOxQaqjA6=x)FA0H$EI3G_)<&#TjLPoSAInTJ4KXme1qUZrXJjCQH1Ef9K zn&3PQ5l~D5=aY~J6xcc=oZ@9<I~IX_Zfr9FNtndui$q{o2uW^>qO(bk5OV)vyA)A~ zi@J|XHqgNFWEUj1xV(S+kaFK`Tf?qN(9oozEfbgre4w={u&68qSe7A(1vzH`LbrX7 zSajTr)8l9~7=g1bT}Cz~+k%dHstbOgFdIs>F=4RV*l@*%ee0yiom!aHOU0;q4;|f7 zGV?)_(}Ei;eVp1z;Ixb><{}O&WcVHn6ZG~f;MuB${s!fdr-mED7CQq(s_S{M)MFn7 zUJ0ydpEqnzScc0CX1B2uTSkm8D1$uGVX*$417<lBl@F%iEPY!0F0ev4hoCoFSoN&y zu0qxO7jrWRivq+g&Gb5?U^O~mnbH%Tra5vGM`Nd6(TT+Z*1Uhulv5OV^IDz5soFv6 zu%K3PUDy*>+2}NwW%VSbUBU?i#EK#l=7O6xzk|k@;Ivn4Zs}D-CI@iQp=g_<pdpmz zD>2LBjW0S;IiV^92ZE!_@Hyb2SlkE@I}fe$CA=tsNXHX?xM%DAM!e^N*Yxbj+F{9f zfGubu!&w~+LaK3{YO$0+TR3gu>;((;w2d8rLQk7RM=>pAog{Fav_C?G605Sk2=82| zGQ^1g^2_-M@lQLQg4O`!{_uymZ3C{v+mTSp!Ot8UA=`I0HV6j2I4D+3m{}AEst`<5 z5PVw)SX&H<#kUgVpy9`1;{9u}Wu19^81x(@AO=iOU`*HdDkzf=-tQ-K92B%0a4tDM zmZor*41uaD345q6;7(geMXPvT5DXdKr?X($^ySTWLQW!({ZOG6NmmTnyojbvly4ou zWOSFt_W7Zl=xHwNho%uT<&f|}X+X(e^lWY~u!^W0H3nL1*r2^>>tM1E-;eDd)eaqQ zD8zBC1#6k!M0~@P+k^$BD^k>deIaNatOc>5XP0rJ%Mg3*ID&HLP1^PG!`bjiZP1=! zXj4UV713V75Qk$IxH5xCS;dODM&)UaX`*h!6+Qt*rD1I&+YwoEvO>Ji;58>W=V;?0 z2MZ4b-IcLALz;uP47-4|9tq>Z>A*n&Cs!3XcHA-8e>-lK&YJ^s3d3E4u<Ltpo)Bu4 zx^3rtuNcT4#4#^egu7Z$XjI4HwFsgD^uQ)Mm#<l(Aj?7JcJdh!jW88aC#X#ZS^^rE zjdwu^RUym<>(Fb1#UMnkGJ?}A>2B0Hqc~dET`pcHivcw2F^}GOGXeDD=9drvndXJB z(al-FTNd23cfy5O4FkZS@lKhvv2YIAD_f<Jw*-Nw67=pcq$hV2OtRfx-*IFN9`C7? z<g)g8LyooY$dcxqwL%SYHUG4E)7o{aQwGZpdO$gyN93PWFjx6<>l~s?=X#@1E)3Ho zj!1x1J}t}ue5Qv}=Ny5zD2Flnjpo`k7+6{LjvH$z1sW6X#E8$+=>RH-HA%Kt92FFv zV(ez*gb^bUXH@E(wqm#i<}?wL0&Lx$d~zZAJNUvNP3i7|Tk=^Jl0g{fuy`8>mp!n1 z(mS>&>CSMKKYRo{sCVUX$$+rr3{ZwZ7lQ_KCQBEt1TtLZ)jFO#9ERN$4d&4B2m(hH zZ&}RaRh8J3$D>69L*Sng7RfPy35P2LW(J&Y-)TGw^J4xgaN0sIW}=AZL+xNpgK2>( zavg3sBBw_Ji3o4YU`iYeq@5t54MB15w7J%a1<l+Xi^i-9uB;$+4bviJQXP7WAD%QK z48!IfB2`*}_S!mYSO9(rAx%MI!E7k|9FHR)@ni)e5_Cdv@Wyp^P9|d1iYRH=H+D(v zlt|QtpAwvQ=)p^+Wx8|IVl+(%9sgC&q%IyV&Lp(FL+nww|3ch~r2D!ouYqLz#s=p< zw5LYK3OLy82mP6D2Ov=zyEte*x5&wd;fvE`sAoT*OBK{|a<r=TB>h5D>Q;)K=1s?Q z76Ef1g0N^Xo`E`aLKIA^a7ebfkVdKnWhinBSPhE?TtGVl=tx8G#nY#FSST<=Z3iUk z)KdzQUc7LMo%zVjMohY&b<CUNa0x;ovvkv7S`zeHvP7jRwh>taRo?P|z-fHQ4ld^~ zVZ^2e6C8nwD;-2TvL>{eMbSOW`?n<mQVRTXykXHge*%AviXetw2z>Zpm!!~uEyUQ> zl8_c5Cc;ptoGuMiBNQ!wiD;Z+GDzk%1n2*R_y5S)fGxbFPPA#5Al3sFa@KRc1yXP2 z*rfC@D1fJ>sc9n;hM>n{q;_RN-x2GvwIYzzL1n=VG=eCH5t|_j$yx^M-yt>t(3YJD zVCLvXMU?C^2G7Fb;Aqyt2g5`b<`eh`o;Tzj1%M)~VgT5F8*#8P&rHJXc%*k0V&b2i zEeIQF%6v<axHK3zA3o9&)bu$ALhlmaV~b^fW*MPu$H9#aOl>&v!_1Qzz+j8p6r^2A zK=&sFhM#N4j_B>D4n&1QgQiQ%5iJ=4#BFS8iDE;PWY3991O|~pXvu7F(Kbv0<Rv}a z$fFf8PCi+MjBVKimJu_M#GR5ZL|l#l{nkvZq8(Oa!Ax+$k)Tsh*&%wJbxqVvXv8u2 z>MImI_&^jZ7DVfs)>^PxnGLjCn?jIv%6zrw1*XX`=Vsz~tEPY=T+7R`GCKw(lAN3n z6$o<UMcgae++iE1KG<2{qhTeKSik`XgZ#mc3Zi6O9VOXLkhqvL58icrN*V`8^JmO1 z+yk6+Lg*)UCGH3Fp~`_Y2@Li|EX3_d(FN9wHnsG`h2s^s2HIAtL@=3IH|(DxUR|*l z71F(}PVX99eL9WK$AtlJn-DmQ*iH!oyZU7ygm$S2gCWtRA?V>L=bICYsv8CEzSxn< zrFj2}DifJl*9fQKcG76k{pl{)ci_<*I~v))V=nIj>*ge$r?3HADWK?pgE|)TQobv| z6>LZ#Hh^oZC$k)!*E;O(kR@_24?MQx#YO$XA5Fjhn&w>G<kohBqQ<g>AXi%UL<bGP zGM8BfME4U-WsDk^oJ9iihz*bQkf`Z2@VFQp?PwsH7_;gZGw)HV!d6eT0(#QT4Lg<# z&0F9FkQuD2AyELk!}3U#@ux0&E|*-#2$~b5zg)tB_I0oW)qZ$6ml!4aD{g|eOrb|k zjvqSb&B|cYQvfAIXeb(*A(IH?T+W39gRVLP7;Me_-6=^;oQYu%%U2xn@FVoO%A#5G z7N|52-NcG2h!%|b5COvd2fT|G4b(za++@>59N3+}(#WZFKtviMu>-F>;J2pTTMBkX z#`TLZ$qM!`mYYeCWyfOR%Sz}}T!`R5@D`(8o<O0OQK;1}FLH9up<^clC9s9hRU8ac zztI>skm4%#?5G;tZyHWXU=-5Z)s})+KW9tA5LHTNFF=a(4N)Kl>r#$QF!z}wIQt&E zr~I?9e!-h$Y4HPRBk}+QtT@>l#}NWW5NGH|*92(StvE#JK9hj`nRO+M&@jq_YynC# z0;hvTX)ym8VyUddiKh&jjxdPuMaR5o2IaAiDVUAGk(e*-*U=z}lg429wX0oF3{hfO z=Il~k(opDcL@Ja<t+Fm4Ofe&LY{#2wx^PaaFruAv;H-{HjE(t~wwB?oI8+}6=fqJE zG81q*8z<>zDIwF;3Rz~<rXgZ~*xo4}xR~@sfWombU!V;i94ohn8f6Hc5Io-JqAV@V zG<39^3nR5eDKP$+S%?BbcN`oh3IT{567iQN*pWLYNamPMc+x_U)xhRW6RgYJp16oE zXSg>=c)x(_)JO2pP_4GYqu8waqa~uCKrvULkJE&0A#Q+aHJb`-_9r7$A(9(kyu2VJ zMN2`*V*%XOnm=>a0o<yE)yplKnJR4n0p-N0O^Zm6lZe=AXddWeW5jofieQI?rT$PC z)kCAiVxe=3Epn*HPK^io@ji{PLaHP|&SrNJAaJ;GK41<rL`5JiI7z^X7K?KpZ!A)d zK~^(B#sWSS0sGH^mFXd>c(F0%`cTXSvSn#lW_*Y0L!?RL*#Cf;MmUO*i?dX0br978 zY8Ap{Ba^+tV2%c;FU^_;iwbV<z~&R|=kswXlif=X#&6USM(Fik2Qc#OL=E~4O?Z`q zSRMK$4A7YDdB77bcXPnC;m{;`61P_dQZ_}jXb70ufk@0Iw6!0SQG0De^~md(gFXs? zAiO(|RGri8i`GIt51<>0@Z|Qq(EFhcL8?J*GmL1G(a|D2=in~Ihc$}J42;vjJDNO1 zMLZX$S&{AXfCn|Ss`<^U57g}U)4$V9icn7y*Jda{kdT-tx`O)~dt_Dxjo1`30on{s zS3`zQ5yh=00yy+wd>$XXLyMY7!^w_Oi<fiEWe2L)Vqg(=5*z4oKHjp!=pkWvh{7?1 zRffOWZs>$P0xA-_M+%FuanLAo(JTwt&cI>8)2{#2%~y)as0lV~cmc+!!o`IvbJ-!9 zl{EIFSFgyx;TGN~5|VhC52qePss;6D5Vx7L_Qy+$#0`eRZ2&?X*Y{xf6}4(|LmwDC zL>!LEbk0o$THXwCniP1+o+uT6ItFivT-tC^n?4;o16e=fCZ$3l9#GlCR;GcdNp{ZN z6OI2-a&&#kCF?*|!YV2z9bC?Ht`rm+TJp#vQOq3yMitl{HCL>4<;zMR_R0SAFcu|} z*fD5mLe4x3aUV@B`&wXI3&CiZU)Q6HJyx7d>OM5}gZhHpu{$RQ?~`mrs2dbhW`9DS z@KlV~^#xH}LU{Gh^F=k8UiNp4GAUwc4dSdt$voh6+h(n73Tz<`yt@>>lKyIB7|P@v zAhs@I$Wg50lo8YdUW!-4@U*i#5Lbq=3l?X6IunHYzCkmr%9}h)t<#_CzKgmTzzjhH z0|s~!)a}qL2jJ{2^^f66*N~|YSeONR!y%%)dObyPd|K1oI3qD?%MKs{Qj{%^1VCVq z@Unt5K(^8uE`e<08WI|hi)xQU0Jz80jvEa^7D8EH7@>_Ytqo3RtuGEr)S-bEW+&_w zmD#!RPIwihI)IN~LIQL0=5s7cx@_>24-`iFz&rzeex)LRt%wOIFuRtf4{?662c;9A zndSwJYe0WHLRDd)8ir06F)`pvoZ5LFu-_QLMkCG(0W(R}RYXfVFQ5!05hgRDP{>;J zx}Sw$3#P+5TG7pby0nNEiz)I;z|&mtF$paz-Ue(xhL{p2eI?(Kb9ygYCp+joeqY@1 zPQ?SK5KI(?&AKiG>)1jn7dLP^ui`14UIZ&D*p!6X?A#w1vRBAt&cO$@E+~J-#&{r2 zjod^a(>OKKXYpZGpx6dMf{j1y{h%<@Fjat?%0;taZ=$f2@CFU((yARLu{c|n*n<9` zhkBX7il!6VtRrdv4nl-NFaXS2RP;~D;#+M$;1Irq27T^;IfE;Di3j%q03>%pXoH$K zI^mTdKBOC3oq6b7n9I3>Q9$Vu;9|U?p44w;0ti!=_4sd5;1DR4q^H>3(M(=Yq7{-` zVIbY01&kBJyqaS?Pv`x#QR?AFYQzDGS+lV*oJIXyN0_Xtz3%+E2l2ELlcKGh$8|J5 zJ;e~lCQK@qS`e*h`yGmFF1#O3W2ffPX2fveFb~yd!7Q11<gJXo4e$qz4;GU{oK*&c zr5`hXNGl=@XBkJ)5`A%k&BCljOie_1v`GhJqdJLgoFQFU6&?clcqCc{p+NnTO4U@r zl`HA^Fm?=>e8h`)L`M?=fb&)*EVc!9okY_^q!!tRDZxoXS~!~rh1}P1RYc`TlHocE z$2TPMb)z?o9UP!rISRp8fd?$S3%aDHjfb63U-kIpc3ItM6>9zojLi>s-B@Z^gPK+7 zE{>zJ6>wDSg*m+edI1R}EsPh!EKM@@w!RJPTD91Y$byZr8GVGI2-si`W<K{r(B%(+ zKR1!erW~yF&*2*e;t6Vt^njB>RwF{~s%L=JbUA(+&8TM~-Nr8Z_L9P)FVX#9&AE{j z6H7qLQ~(V>qFB|kc7<>;Fj!5v$if0sA+{tmI&RGyJ7!8EsMZ8p=G9<A42KtYY|-wX z%P@8!&cGT*%Z66BAOg~{&p=;v)-v;mm4_h!>qPhDr{Nd^?1Hav7&}wsD;6ubu$q=t z49P-_foDUum7%{y{2W@iJ*H)PPzP)(#9f3VY<Usi81I*PW**fISYpTe2&)nuD?z(6 z*heeaXrcvL+@b!7`_VuQI2{>9i!U$<nA9*UDrML<!g9k@x*1Jeh$NH+x|9t9q(aPt zMGFt2Q)BpIx7hAc5Zk-$VPzRS8Xx!&Y$D)w9>EUxv$6kIn!$+C85EF9VVVt81T3(# zIu)=q&xL4u0V6Y>7>z(p&`D2h!41<%SS)z0W{O#Ji{#dw-i7spWDF)F9~xaSj?h)H z_8ex#cpU?+1KS}(ehaXlgjj57Pt0G|4?oMcY-#yYi*xN~ftV-36g+Owl7n0e2>dQE zXF1x55J4SFnT}@|;&`6MZItFj#{?u{YlNdTB|u6BtS2}?iV4LNknuHY4cv$DAcxFd zx`eRK#z90{_fR(qR6_~znvC=SaAMG`UdHhYldMh4lC~dmc5$T=7~T}-2&b44x2jnS z_B$Bf++(Q-O1q!~SDFcz@f;hlENT>_%&@_cWM?y0a7fYG3hasLoCMFN^qxFa+_(nJ zVh2(3K_S(ShzC1!L9bwrK|C2+O`U6p5A$rs$}_#9ZV@<fPQA@+i$TGbh_g8kJVR?T zX2gy%9ft^$trbcaJ)B5F&JbmovDpe}LRQZuBCy$@UE|X_A!l2QhU<w~OB&`RTu6xt z$5uLN+p7Ymi;-j6tY|DiuD)X9u|tZ+MdVXU56EYN=?9UK<B*wrfeAUW1=-@FiIwd& z91lb2dMs;u=|Rhzn)3<v#dT^TBd{%7NRIPE(CbF6_65)^j1JfaN&V}mQmqG)^Wx9? zbduMpOcbefq9E*}cjHUf?R?Z}=vWn&gmSVKli;)mnlUgqYu^+WYNe77fRG0Fpp*m* zh%a~yF*E_0rRmb~T(UF3qzUo8!)^qFxU}Mfc@>xTCYfdnD9q0!>>_NWK>|climS`W zh?PN<<RCu!m=~ZdR4_~e&6hwOUZxw~{WihJyTPS-cePK!oIs7VRA?6ykO67d-l0&Z zk>UlK72RSf;RX+MZgM-t+9bkd?f|3&sZ5zlsUsjml0`oB?39Wg(P^|Jc4k7`uS44( zLV6J+#^PnKj7I3Lzrc+LWrD6o$Tdf%7O}b~Z*4WD^lCF6&#;f)r{fOo-#j30^MkDy zxVF?CG9#M^fTwM3kN}<5jh|S`QrpQ9iNYo!6QGn&;Z+yU`aE#P*Z4fjV)bIwMDfk~ zhR%aKV9IGP(^=gD22I(%gtZDv3e3o13}TT+N6b37Hp8_!?3EQ`<l~}(Hpeaql&07v zdB|DUmM3?l1+<(Xeid@NLRTzSqX!Y6i=(bmR4`j1;g;}rE1&t1+E2|(b>Jeda~oUj zI#U8)qM@o-|MNQRK?Hyo=!QhXZ^B{BU(MNQU<#JA$HBOF2I_~ptDBtMYf*ndy}@2- zQG>R}<tzmZXwmQs+*Q~H@!)fam0*h27l+Qdj+%C&h^bt7u8p7+x^D-+$U6XMd{48? z*N(MW(EzC?h$q^Y{*)z?Qjw_j+j2&UFosyrKp@{xh|BqZ%l8O3Y~rz3id0Do{e>ae z&~%lG%h}AT;!$?{M1QKVV5M9IWPC&qFNc8Gtx2P2@p{)J+v3A8*gH<^z&Q<cWWO8r z;@WtSMz8uj&Mt$XE(>t$FysfviNImdjF}1^4}4%MIWlTOKz9MW;e6|va}Ms<n%?_c z+m?K5ECaVY-)edVIrFxjHGBF&3-|BX8gFdE=WY;8oC_BZLJZ@rd6Zq*YO7E{IaUXa zZ9QZ9^v-n#5BA0XUmC|&vQ(n<(Yam1vb7si4D^2U4<3XolYA>Q26f?nb7x`17zwbm z|ExJfwt_#GJsqcoi=$<vU;^+j&_{I}B5Hw-p^>D=K3ONaq=7GZ@~Qm(Xll?jyOW0m zxm)28O8g1_hyJV(G#~sSm@NT455oUv+ZWofKVT!rA3Msi8~HyXKvZ0Kjoek7<9^Wq zZ#A(6=$HqPocJgEz%ScB=%DSk#h=9mZG7k!2Yz|_a=?82;UX8{FG_-i^QN;l;K7y= zfBeiK!@sgEEAE5k<6CubJ%Wy5_?s*Rq=&y)mUmYHgih{}gz%pDS8sLUm%ZZ$&7v6o zz&%OB1aXXSo};Q5GzDHi#NV0*{Nj7Ip+K96QYlZ(?raW3?P0Q8Nbnm)TDSpZb)^>~ zFbe%ql!6Txf#caeemD+pE<5I-svb;;Mn!&P!#9r_6yZRp^RO5Hx?{Zg_><&?`eMh{ zFZi;hx6>-%{`3qEpI^;LD_ttJO8LKh-z`(6WR+e?Th?n-GBF#q2mab)baqkFwjvun zK50XN+7Yf?Z+up}gwKj{i#GF~-}3Ekh*mbdDNS0ko6>hvYwg|iLneHfe&rIrO3$q( zEfuT7X7awFf%VdDR%Gj~N&wQT<iUhr4<^^9`20LQtC~!7z2?V<8coT#tZBz&YIa}p zQIbqmfqd7HJrLOgckDBN$J4V#l?`hHH>(ZYV*cHge3KPca;s3Xdom^4_{=1kf{a>= zOCFqzuT;|7MeehL+_X}=(tWO{{%SY4&tAU!f4YRMvOT&#BRMZg#(Bt}4|zS3eX`9~ zB>4CG<WKlvzng#C(6T9-N~*Pf?z4hi^t-@))~w&f?lW`!vWtA~H~nPv!({Z^7pUKN zy3NG&<q7bvQp-ZA9>j5vA8?%Rzx?Eo*$3eF83DwM7>~ckA1>selgmPhS~4N44QQCZ zO+L5cae95oZA@CT#^y%L-L#f#5H2^ZE*z+Yk6l6^L;dIO6Z7FA!f(D!XjDY|U690g zx4{Uv8Ek_a{KJSW^EI1!EUb$%>wZowf1WIH6u2aPJ`=txX+(tsHurU!G1%rs)n#`c znJv0BsW$#=MfR`s*eX(wt*)#peP#7>5OH>S^*Vi562iFg7QTh1hIy5yufAGuMb@-l z<J|1@R39F}YeG+5iT$qkgK)EtlM7NzB&K<D*Gzw8qDrm9H(OBA7omk7fU3t?Np;x; zM`jOU3Gffs4<Pz1-~oNKWPeUp5b8fxKjF`**^QY9qL#TH8j@Dk&6|Cfm95eK?a4hx z!L?SG-snKd|0e))5f|-K$yfLx(0&kel6D}c_JISWfwPp>ws+Oqs>?1HxM}W_vWln< zIjfixiuOT6_^(`WeAWjAG2&{al3)%>xx{UsK0s}s4XQ^ZE3$93X`v)(zDIz%d(xiu z8|IrX())qv2M!Ynmdf|TAdx;%Y{0eBhZIuDz!yph7`30K8qkGLkJYaDtd>79?SXob zOFGI|g-Pgv+3L}sghv!q@>@er19BR=D+f)y@6y+)Hoh&0$_Z&!tGQ(qGx2=YCZ2A0 z#A?~`GxF=t(xa=kvW~8vWn`kh4S={tYqsNm0W1G?LW0$PLV~phZk?!h>xxXZJ>M4a zlQ#9e^#pD8`~%nKv&m^GeojlzOObY7`T)MHyJ&@C;OmFFy|oNyE<o`GkAdp3Rv$}_ zO|@9hN-t$Im!|in%D69mIK@0aoUXC&r_-aVzI_|dlK}(kU=ZtUj3G?!z+WB5a5N8A zKZ;~eQFdd{)?}2JY9&ng0Lr*TyGpcM2~jY5%pVE;eH+8x?<C^jvFaBERB;K?F^ceq zWylpUlLxvLRnbyRJLBd9KgycNnsCOtehO4Kt*vla9aF4EpOjU^43UG?2om?{&0I=p z?KD?&GSC^8pf7{Egt@sHxNq)PJrYZB<1t!lSW;Jond}by^&4t3EKcVV++e6*f<<{Q zL8NO5c5_GwOR$`vWi&bPz-|Dfn;}7zI5p(dkW=fXWn^TRubEGlUcs2Zi8b-fQ=k}R zrzBS-S`*4C6=}`Bsl3(|o%6;s&#^PiecbW{%eqwzOr#!X6MNqr2J{RYDF!zFSD-bt zpH%Ws0(hHYv2MA)7wkp)mLRFYvqa{l@>>FZgFBom6}7V^P_X^M#tCf<OCIwm*a0Zm z;WDD&vgBGrL3V9&TUrv)s)T>?qFz5Np?*h^xR0`WU<lVHw=&_@<XJX^glCi2necjY zCdD%n&P=Z(Gq^6j%@TaWamza-<Fg&E;?ldyS{~1q0g+#Xfa8t;{{V1<0n~HnABw*& zNIt`=mdN%^=QoG4qlxv!$7;D9n_NQBE=hi?&)+65@$;qROMa?u{+Cd3OH9Pk$#c}P zz}$U<U9z43bF&p(9F?e(3<%A-0DX`O54#q+RclLDloBu*(kpz4tkMAR8@k!#X>#(V zfAW*mhBn*&2@GUsSASc@&r{Xs@#BYBDHUza+D-#c%TBAFO*Rj#pIv>WU~-|7`=eBM zeAad+rarqfy^9kB%-@y1#e}y~HHL(<t2bAXa5Dh062GlJ%7jO&Pq~Drs?RdvS@fzB zm4xJ<m`0Z09Y%FS%K5kfv_P4b-IhMYp59JRBp=L9te#v|`pMO6#27u`dBYlym;V6H zexJON;O8PVgP+?V7?KHoXd^?(O_8_hR7~TF^fHta@>we1I~2*9e_B~s*}yguD>BI5 zWjmjqMJWwUJ(+TN<@79+YU&R48Z+&iq0VhH>r*hZ%?m5mDivw8+nr4mDFCB3$APhK z&t=0;&*oM(*feo~#JTIGgGrl3>E^kv<@sJkM|SDIeAOR4whjUn9rP==#($Myf6|t% zNFJdWd?b05U#})W&cy68%s#&EO79{a-BrE6im&@ItC-F<TO6f6^ik@l)pZ2o`xO^j zD;C;ssHXk~{h<}4tIJk(X$k7JRlQn*I&SqHJN8@OajDz!u3M0)x*d;hF}^9**?1ct zI333~-o`h@#y8$~GoIrESH130k2Z3ci<29{9yqc1Uw%T!Yr=$NV;@TR^Vj5W{MGE& z7sHYr`*X6iqmzgD!?IYvDO-Cxv^I;)9D0mzrJOks)i#-he^7u+KdF7&tt5y8>lBdZ zABWbcg7x1J|7<u2h(CA%nOB#Z&!>I>bz!<|qk>$J@!hU=F3qF1+I{vy56}==T;ZM) zJ+-~vXAPgwP-nZ(prMu%iiyj629jJ4gtgx8AhO-}7HwsFW1BuPJ2N@Q$duZ$$<Dr^ z4);!3|D7<VorYHDL-W{cncw`fk9<rhnQ`#n#y{WQ8#J)@R2$UxF25I6uC$1gLWK=b zY=ezd3=J&{=>w2HU_F=a2a>OP1T%#HvdR`1#ui)K2)6znKE5~HK8Ej#k6kC~!`IVq zRCyDuj!jq@ivpEftuj7Pxz#Fr)#Jg?V?WUEceXa(^P)@bsjUG7R5>B;Hy;;T7zD@$ z4KXl>Y=@8S{x_IQ6<e($Kt#pXY&(vxZh4l<kGJwzl_)>nI>HCWH{QmlMOVOCsyx9e zPf+CvRv90tJi#hY@Ej?h83u<<EUXi?1(ok@ws4z#6WSBBO*_h!=<QKePAEXY^jAV_ z8v{EVZ(*p~VoQ8%xxIaCuT9nN`iSe6E4Nx@pbM2-tuj7P8T%_%_S3s==n=chY$M1l zuE{OxVJ;_>`mN*xANEAKJ^)>RDY@U$<P694&qyw2!o|sTF5$Z5UMAd|{N61%Yc6U= zyQYnR?2S~!VC9Bf|K+1Xe?7S_d-m+QsB-ytcD(#M>t9~M=Qp|)pPOQ>eq)nvix&8N zCTudTRN?q!c@ii1ZgvjcV27P`9RohN@bLNtxmPIE8-)h#fPZ$F06ww!c#59mlT*oh zPfeC4*-tAQNgtc#YOGT`eEWP+Ws^-au>|&-UlLlw9y!}`2mG_cP&6=fm{m8>@;`-Q zJyD|P0F)T8PF%tbA^OSZu1m&4&apctY4>B?WE=ywhwpQe>#<wRuCJb+8=0M+KanHh ziTv{hOZdFu_(mig-?+Nb5>_{U%7jlFZ|G_XH+225tGIO3ZQY*{6k;@!KnIfq3W)QV z<YY?ilaqU?liiyN6r>B3DIOFg2$U%R<-Z9E68^h!MH8y5Xc8z$xS{Lsx+39sfJh}u zU_?L+1veO~{=plLNnmsukMh@cg*>>ns~SVP#ueKfthIcP^*lzqVb;6dmSM~DX?8)5 zpS$x9`EzE&!wvXZ)9^$ie*V(<8hONPjb}AQ`=SzPYxzj99`h|iSF~n5le|s!^X=pd z?gNj=-m3niitiV)*C~D8&OXVq!$55K{dt#UZ~Sv!7j*wX{$g(FXEj_&&HwR+e>AB6 z(%MQc{*|>`YWjYpwx$M}SW|loVmAA@_9b(VZ#;?6pVYXjQHB1{_z1rrX?)kdPiVTR zsoMC_itM7M-|7#JMRJsX<PGb4WUbFNyFN@ZE!hL<gQ>*nGwHwheP{JG(*5xbzpl9* zDC_$FI<@fx>@OHTE9(zd*B{3>EVYrH(Qujl@u!A2?2i*`zt$jKqxmZVuAg8PUDM?^ zUGQ^zmsNSZ)!8N#x{{=MYx*RiJ*|32hOZa%_Zp&|Yd$6v&OlAD*H@R_ctrMbdOl#o z9}hG<21sr^!UIqgKZ9J6<?zE&QKLX$sT^hn1~p91E!Btl^Ir9H{yfm|NJChG<r?kQ zGRS}}w|ku0PO>e4{C!O6_puD8X78n!aMyQ9^@=JM<(1VlaW0Vkw&B4BPO=C7i4FX$ z4o3I8&cr{9&yv<!t$pS4DpWeNnnyH0Az`{ZitbshO%huS3AURl3c!er>Ua6p8jp0_ zj{wB-Z+IX`{=2r|pO(Ey2kfW!hAy)i34RCUtJ*N~fgAe<U|eW}abdY*j?0tVnQ(jZ zo=bQyd4#)^N7C2K_8-v5KcaS)kdZC1cEFC*POEPR3GXFOr6}=~wNt0Zlv+9zG<2xo z0Vi6{4b6CLXl_r^pH_T($apWoK6ZTekhNE@+7#o1P?`Xtr1qfD2(Agf9VEP$a4VbL zXYB+nrxTvg&LrQ?B-hR)-wqPqOP)zl;u&iP6RiKLG+Pw^MfgH{lYM)W+1|BGxYqEF zg!humQzTrTUPHVi;hOYDCfsO79VFbAqQ}X;$I0k1h53GJnAts=s$-tD{vkk;bJOTs zAVp<&2h;pKIVVl_?$k=PHqff`57r~)#Qp3JAa>uwfK(fkvvbmO4QlnngN1x<fU8IK zuzhi2*0=G{3U=U!akJjHZ&&|8ZKdxfMIKtH`MR4x6+!Q5{;SYfe{|k|fI0{3t@(@r z0v6jPpU__;3!ejGTx3b@3fEwFX{>}ge<AcC18z_7CM-&y%8eb)7hiXU%!X{EE&k2t zZseC443BNtErV11I6EtO+AXf9VF*L|m&qSer2ip($JSW(PI>{20T)y+t|I+noRMLK zbvA*haj2iIP(RfwmfF*7uGKe(gm=>O$<fZYb~>#+4YvSw3YOIr0J^sa6st{5?(LgI z!aM1yRg^fj`s*r+|C)gA?E$S@jKF2l_*ks9u`9{;R~o!nf=`phz<OZAN5VVll{9T# zY4Fys$)Yg;ImrWwB`6>#c_5MSP71Ild9eJNbn_Ddg?1+UcCfIXPX5k>zbBdwB&eOq zz8$VK{g?lEpr2ms5woqQR+lX~67z6Lk{$}50j|co0s&w(?ig0%J?WpZ8pF4>R+QZx zNV+F|S|+x-R?;0;AnVU5ep$=bVqCLWi)vwV_B2Y{`cOAqi)#W@J*x8-Xe}b3OJ##Y z-CFb?ZY}yx_E__E!&>|xG*-73eZ~O7ilykk`_pomhEFWT0ueBOG&-c(QiMG7Sl+x^ zJ6>`#B$(U;efgBEvTn9)%@HfIbvO6+`8!>6Sw)9seQg>0RJV-(;0hJXIA66&=)&gV z8(4|oI9v-bI~?XEx^@)*MFsm~jrHFFiu4XYLX{u=C#qoa{paCGVLdw;j%z;XH<4SR z{8p1tZqgj<XU>T<(43h3+A)e>C(fngCQB$<(O>zh(9|dZF=`TYH8q9)*;I>~LXO&L zfoq7`0Vj}I{coZ6ri6Z?!yOP?dB}sPz4CXVXbjqxTsW&e?J8BGf#uu$!IvM2A&vYe zyZ$GboQ>+s<O^t#gxGIvEBO(jhPD)^lQle<yuzPXc&^cwou6JvoAZS!+*pD~Lz1ru z6=i+<J|G`G3FRiu_f!95D50qzfONpUw@c*#Zkp6axM6e^=SRYErGzA@om)!qn9qA2 zYky`H&EBpy#9b!=;z|4KL&#;J{0E^dj_<REjjim)gYhwVCoAjQwcmW_-+M%kLZMNI zSdBwqlx)MU?R<yO^OGx?aAopjk}lg7c>C|QkVpQ@&=xoBBX`F?yN|)djA_m0bJO(8 z1k!07q|^Dd@L9k4qELw-<CwTDTW}nEp^Evc%UrM8_$6tmE&)ip#g!OPZCvS%wfUOR zCe_wVNAJyofiuzUCMMTRppCvRp@-TiBglW{tM2!RdV#2TA^DUm=TrKEK!Bz=BbkUZ zl9x<?W-nFWr(k`*dUJ;Ko3q<_j&wVBkrVOH+x&VvJF$yVP%yvv&M=cjcQ~hN&7Mnc zr6b6#)&W-AOVty(pF0t4W6F?lb9O%y?nm>M@Ot(U6F$m5b_pM6zvzO5UvxRKi%PJ! zVtxGO0Y5$wF+}}7+2hIc{CS>dGHuzT>Em1<kEbu_%)h9*I#j)o%jvb`1O8lvb;N1Q zo=sn}BcYel_qDQ$n)|NyopRalJ{JE>>cEi<h^1o|x}5ckL|-Q4#)f`IHB~qIt5-Si zm5>YH0f~80emw}f^?sBtsANAHna;1k0#XRQqSUB#*A>Wu(A(7sy)<g$N0^2mjRFE$ zqS!-I&g~ljt5xUCT#?n9@&%QA*A3uQ)VB#Yt|}YgQ|f1P_>#=qFv<noHQx|84I~-l z`Vpb!?&!Yz0Q3v()29v~pcKt<IgYY>e~gmCFO-ZBR)HRRhHKXgKaaHh^3Wk&1n){= zFlxhyALK#Od+7)K`XK!bUtFHAyXgZ@v*lS%K#BftB^uYm0xl<DHNNcHsM<s$rK_uB z>k|oE6pgt3alUg{jeP)7p993UG>9k*PEuI|v+6X_s7N2^Q+)<wY=db#hrT&vFMRAZ z$v!3>pmBQS0MC;`zj9|>2jsBMy6K`yw(fdW)CZ9vW#_S&CLGTA!cO>~;Og4p49Mox z&=_qVefkwd1=Z;uzcL`A+90AR(Xub#DWaifN6DU3Ko<QK)x{}zD^9^bBew>R_$*mL zg?)v!f`p^0I1|JnUG-GQBTmgu%aCwd_B)sGyX-zD+?Ty(3GAm>zhB(zp%l~D3d{Zi z7^CrXU2+@YzC68}Jmc#0*1DDdcBr{C5Pm%j*7#YH9&IdRReF=LjN5sN3<F`&<;M5< zE@>k>>}X1qlasTP?7zr0&ZcaEC{OOP1Y;ZrhR((|Rht6iSPI~xZ=o<R%8mikSejlH zwBsUYY&v`evaU|?%UY%#7x^QAu@Pep=S$Ozi1Uk3S_$e!JJtURP(eFB2-@+0Mrptc zs2vX&(A9sCQw-R=$U_S?Uw3oQC@u_*8Kbbiz$<*l0Ky9G*nd0i*ndJh4u~OxxXrZ} zGl=}@&`Dnq;|b~Mq{-XT`^gTm*k5#06WBpH0VR4kiVy6doPf3dw4YwhC&hKu)q!;k zu5u99n-z^Xc3?Q=zxg(Id-7-o9W+BoPl1ru0)WHxX9*@_3MK;w<83%NzTEADFHe7k zjbPDC>945G`?;R($A%Kb`gG@IwUS(NrL~IHb-9QarlV&`0ner%8wJ2zcp_KbiPc|m zG1oCC>pJRl5ZKBfbc{25>k(Y)vjpyUZE(MPh)p8lq4aqsJa2s<;p6mVDj+9YAEljg z{z<?QrEaY&Cb4S|Q_=QY!u7Ny!Lo81T9SVriWk~cqiIuy>-^h+S#1gIZYe$0&QCdk zr@LI6^b%_Ik&nB}&lwQg2E@MW)XsO4vpA}=(v@zWR?<A&mOTkY0^`PnzMtN~Vct=F z$nnL8;I~q@b1Hg_dU}#G`K0xPsd^VaO-MM?dP0JFLJ8{$3GaK`#zi)1*+tdcIE%Mg z*C?T`>o;G%^Qh}T($M%v>l!olZgMIOjHg=HNLZP|Ofep23Jnqo@2AfAp{|i|Q58o@ z<8h><Q6oWJ%P|~E5s{hi_B)T$Z-9+`Yb5?T#9XC*jbkaE6FdeFC~j==A1X<U7#%9% zbUfR97yR?Hqg42GSd^^NGYMD@il_POVcMXMz5R?=$4*YK1Xm5;LO@h@Bn%}dr&qv+ z*{Ky-09n0k0WA7~^LzG#QAY76!}N#Gb5UFg>PLL_(*Rf3>S9;`yY_ATDRr>L&g$Sl zOam+O&_d1E4GLKQfRYCE)<6p&78CfY&j=PkpU__;EAnGpbV+K1T!UY`8s^^VXYT*+ z)ll^Ge|<F+UH@NM4YPjhar%F-8V(AT{+-p3htgOL&(y7k@NKK1C|kc8ikwkjvl@yL z|K4g?C&2Z8z8ZYpuo|`tjn%CNpAlArPjIWje?rYDaDmk@#x+>1hJ0M0f88JHEk<v6 zi?dp@Ud(dRGvDUxYsFc0wR(PitvIW$*86vOYU%`GoK>#H5#&p6(m-JBlZ-qRlK0S~ zov=GP`8D+@{D&=N`M;>1Jc@n_HRGqM2eETB&YbYQ+<ZQe@cZOp3b%)oPn_ES30?hL zaqe;)StUvwm!c~jyVrFUb+i-M-A+Hn?%z6skU5%4`aahDc;7tI)%<whJQCErZUxje zU&6pn5J~7@s_Ove_@k3Ec|3ZijRXlA$pqgO64ccM-xU(n)l^!B{@bCpsXG4{;V&RD ze=J~KyOeF9qYRsXe<n<U>adzFeB*E<2iz7KU{UMAP-}Y}@$U}5@^&EkT--8(P2<7j zQTzcn*GChWgWBVIpN4wepsc?c{@Ln3vLm=V`H%lZhyU5G58U^&|00}=D1Hc{_<iy? zEt;PsM>*AcubZtf)`{)3%L!1ek1I+*O$I{B2{=RY7~=jDYT0;KAv180a+pgoO&bZn zF4}aOcD^RiKK&SK=CC5zN?EOzwN~BM4SU=x_D5E62DN{XjQ`<PKHTD(h+AC0bb8${ zt7kId%<3xYd#kFS@$0kdzxeg9>J_xBU6EZwyV^C`qxfRmov07=SM=)aYOin)^Gd3I zurz+jQ~#FiVRT??<+JK>G@~7d<}Klh>=q{6lHKMKZp$8I!h`5HFr+|6=yL9>exM@1 zVW7O9EW$r$)0K7#d|I(#Zp)VY8#PdkVmd?vQ$qu-SbvA(M0cO;YM!6NR{>iB5#*)V zsEQ!3O7EyM&s`C!lOXr&z&~>ix9#%bQ1{!iCCLTxZu#vnF*r-w^eL~`eSu@!=-bAG zfAgZe%xuGGfEu<t&1_#JXNTQ$QEHEL=M~60C&e#Yp)OhE4g;qewg>RZ62=c%2y>Z# z5dedkZLT-7?MyS<I*}nQTW6iJnQfg-qFl69^9_Zwr40j$Vl$gh9Y8=+RLp%!R_R_c zv-xz0w}3G2qQCFjjd#%;O+F%Y$ZL<sq{nkxb9{=Oz(kz9!&uS=SD4?CNn>g6_8RL{ zDq-=L6HwyNqJ%B}asn3r#je8&n#9T;>MB&jHhZ>930AigiZ<QiHz)x81-Bc0XO$lS z&>zeO(6cXfV(e0!5#aktxS(S-V2k!@@=GUd$`xC)AN<nfk#D!04^^MLP)LQ7*%IW+ z$!tlMh9^7#+`v@p)_H!h&#km^&(gL}?TE^e@CJk(WuNIFujz*r2`3~MCdJo<$r^2Q z)+8@RsV^qKNZFBb?EJIPe66Ti6XEm=3B1nj3*sJ>$cN+1y9Wl!bEu8Bz&~4T2ZSB4 z5T&xb=JRDVtkj0O;$U|?R9fIZIgMZUU%u*AKRriadX9ke(?s}6-O8nYD;L#7_)T2s zHqbilf=ga{H)-zf^d$1tld4O}SC>}r<ky|myZLo@^<@I_b^k@Z9u6EIE|;q_k{hUb z+(2{16qqa2E4Zwkv7uLZ?(>cSdYxju!oPsM;?4?tZM9xynW>v)4@cB*D^!-&FG(|B zCh7?^qn=vO(=FUB-a=DM3rsO5k-H=NB;2Y&!rAE467IyF8VL_oA8`qfRG(wQa~Qo! zu-_7Qzs)0C-2F#j%F|}!pI^dD7e8m%#f+2ErL==C<)#&yQQW}P(7-q-KMTN-r)KB! zylras7K{Yq?#t8jjk}-E!%1Ej2*bZLRHregl_!(a=9s!MXFjHF{+Wpr@Ri#0jxf5} zxk2;|>V|DF<Y%}<2;NN2{6Qe5U7D)bJyTW3v|1buX%N00I8kXQ3m^sFr53}Z_;PEM z0&FEn0hEa9_r`Sf-UXO{H-Ta>9*V)yb>g5BM&2xO(A+(rU&$#By7z6G&mBKL?bIcF zxl@<$O#xK%4QZQ`);4tQy2F<6X;L6$`y-Z+AESf3-!;>j_XoJi`=!#hL8S$fcvlDZ z<~E$2UGI4Rj*i&`-d|1t??0$0VZ6Vb0A|0fD^U%a-hM76F#E%cM(UWo&1}B&EuPHf zBtHVMj=(i7GI*Hp@O77MH}L&QvYcaBP9qPrvh;SxYHsJDTfso0CVz;9{=;Iog6gfP z{&bym=mg2mAd8)M2Z`)XNU)m6{SO!a{}?3r79``<RG~?znf#n+Jmaz*;i<h3hVUr2 z0*@wWW*;>3F~2_M=E<%&=MRTUv%sO2C->Nv!7!8mCFIJHt6z041WvyV0OW<Zj%tSb zO8#0X)u;lEJ#}%V=F``M_J^fdeA@lTyc*Ww*1+lkhX9i}V)Ch!2XbfLG87~7M~`KC zwKmJ8u3c>8OK$X&ivxPPkHN?{6~55VIT8L`@+Q;YOkSnm>Z|mK1;tjE(xG>0my5dK z>!L2#<IAR~^l#L-b07ONvHNFh9J1g!UY=^r{>H}lvBt4iW#jvx@s(YWw~~#!Yv!); zsM&ph;eE7UdfXbt%s-c)ehccK-37U4v%Uq?h+&J`IE&t!XIXV@E1x3?OaKYIN~Vtl zjTswHfMp3wyPVbqB~C-jO7LL4e3M6IKM+s9?Lj9$h3hLN7&S=#oBt`4Ih`x#vE(WK zJcZtY$mei39uZKmTf8~FhwBB^l03iJH#;Ev88ZirYFKs>yl!#v0n~Dno4_uPu@~RQ z*u!_WZ0Qk>vHvMd`tD8Da{^<(CwnG~z6En$l-&*H+k3LVWZryR<m^s{&e|o0UgYlv zbnV9bF+k@%bXJ&vf1cr%$vfUr$A39M)uXx?I)0BncJL+RZJ$1ND25L*@;)0Ed4RL# z>uzjoEzQ$_Xq<ML`zHE=@z!TJ%|3iPYgNdO5doL6bzOTAOQ%pfICR6K(rg+C@09cg zDjIJv7LGeesV|9p#nV9ID!Gr9)Ybe-)ZWKfyT`9UnTx7&N+bQ`3qyAkKsLXi#PD1- z|9!}#HgIx!2DOeesCA%7TKk(Lqk&`#I7M`&zvVsNLITxYQe5s+vdVf;3gGd!-nZa~ zg)ER|UPtVk2Vw_j@_Eu@)0!t>2Ij$_COAM8rw7ha?z0w%T6E|B$(LSde`OWjZ-<N8 z6u6e%;JDKb$$d<?j~fr14bgxgg)uZys^6OJa6K8&^;RDYNcHzY{b$LCo@IT{Yw|pJ z=WPH)?lcnr{MV5nFHqZ84ycBv>XIj&T2xBUnkqeQgKI0F@Z{Uv;1}{P0Ctyl%wYS^ z-9Ubx;FxbBj`?1939lzOVV#JeG;2(RvW2*bZh*I&@*+b^)WtaPzHx_v4i8fo;EO*` z)=-ObJDI}+FuLZxEzt7)WBlmzr$cTZ414DpUV^<B(xpCR`L{TygluS7yt>B^7e&e_ zpXzor9j*{J6QG2-?(=Iz)7(`aU%%k&{sOV4AaowId&f{V9!cI}`di5p6irW5-=t`I zvkFTPuAF4Q;kbU2eVu438i&7IYj%t`a2A)E;TYJ8fCp$C7q+Ueb4T(z8{fwoZ?(of zxoCcfh@#=WFa@~C2HW8yY^5EoyjVrri`C0{sp)dG0}hCpxrR`-`xe}9)R5TcIk@q1 z)?v6(CJ4buA4y)u-4`UioPA`h6u<wpq<^Bth`W~ILLie#*-2bE6G8cE4vx%^BmlxQ zlR8-R83BYACZh#ah41ns^!l2deUKc38$%Zy2Ajqcl%2?VqWW$XIqz0Ka0wsq#>?dF zOpF<EOb#<tP6jG91l0Hlw}mXn#49|ZZ3*Sq1ajc*|5KA+(DH^8Qv7(7-SZnyF_OUF z25Z;~Vi?)A^Ig_A94WI({z@p{P51m@kh_D5-%;sFWS%F%o<<Cl<E8m+q5t7c)xkk% z{t|xa(YFVsD6QSlF6p5a7#J_A`rS~GKfGG|E{%^DgU^50m<Ae&``ZN=+hw?6RBcSg zG4REPQP*FE0`%bkA&g|;ZndU{Lo0dhyR?$^YSQfod}CYGt5<XQqBQNbew2$AYrduR z4O=+y4Ncd1VEYW5{s4IBBR-)&MohWmzhNH>NW&pW?O(3NNT62o9m9n5#Oi%H{Tp`^ ze@j2&#uq~Cyz6a#5lO~O;pGJMc9?5Gvc@D;9Z_uTi304&XE{OT$-xP#zsGG=Ya6-F z9WUF)ebzu<u-*7iC)Mt8xwgv!=#K@^Nl>WZ6Dp!GY}IOxxAruW1M>1p!1`F=VeBlB zfV-g)W%WvM+Qh6N2%^l*z;8AiixR3Fd_kfT--LSf&9Nw^5?&vR``!}lVoP1BU@y4h zfLY$yL568JH8Uhoec+1CeM(koluaRP96-$xlTye;e&#!0<5%sb80Dt-k}uthJ+VfM zwYZv=sMQFEW(l8Emw-`aOS+sw76&<SN|&3NaC4VCEP;*2tqMWP3m7Wp569q#f5GkJ z7uG9S@=@s>@wOp9>RJ!uI$#Xz2+$#*q?_m;8><}oqhU0gpyUFGu5mE;LvI<E{Uv#s zKX0X<fV)^M6@>P-m13`J*6{ra&eg$KuB&cVtSvBfA@y7>WJ)uKZ>m`ys)wUlf4S z4{MIWo>#B)gTT7Z*54LL`z;R)Z9C~Q9eHo<KAot(JLGm25&5c>zFk}}Yr_Sz50Y%z zS+^Yti2x%XT}h8=wuEDvSJO9Zb@M~rEa9PUFLgu0OWjTxpakNhZ0#$5317uOQP)>f zTwk56M%Ndh>(vB;YXU&vRHQY#BYmaGvR-Mr%I+^`S9K*|EH1!W0odCv;qB%Rnq7SX z%R&!zdx2`#3*BDtVYOcG@nsJy^kt7Xds*6>y_VSFbhf1T-+Noy-+Q0k*UFvUcS%1> zThi~rewOxNzvKE_+Hw8A?C;v^PlTXTAw&Z<9OJ5a#?NY1KloK<goq<R&PS{!0YM-) zla89tXhzx@7#kCtALxdk2fASjq<uWp?a$qi{pW5!?}hZA_c{R~GP4tUy~(d7y)WsF zpG){NHM_C*(}@3=o!$3-hW&c5-{<`Kyx)@k$Xn8Xb$@()3Ak-NcyI+?{7(exT=1T` z0JR06F3<6^Jim}P<)PhNm;?3}gM9*EKeIQ!&g^|7af|F5dq2d4hk8He5+3XQ1e|EI zCjgC=SknKq{zwo&UO|Y#So_}*a5qv-x-q$l3fxUbO;D3Q;63_DaErc#I@~4MQG^%i zN9AYgZaToW1X0u^P?YG1H9<$H@=&+ex}kyBy1mV>x4S(+3PSb+Js#_UgvWZk+S3wV z?fFhmB)rp8BSHzGxIJ4<(hwg8itBi(4Jyws^b4{b3;`zP=TrVZkBg&NY_FwH(0X%i z*Y_3K^4#XryD|6g-9PWn-;;aZ&=c8L_IiPY@KLYjoca&@UfGX{{oe0~GLE6F9fjbn zo%(-2VaxCHOc2~KeVGBUUj7<ruB8d>+UAcCy)OGGf(@Tv1KRrl4JTU;9RJ%1x(KYf z1n1o3UpasOl`rMR{iO|0H9@(5s_FD*<+`p<?{-snB;VA1DI-E<OM9G*pgDqspEvZp z5+QYftmVD=xxDv>eewBWU!f^`zu!gu@p*awtNWvatNY)IFM*Zc9A=1(pWSp>6RLNH zxO$nNNbRZy8=DwB2^S$x>v9#t5S&}PtcIV<YQKk+C6l_Q>0`&|KJ0p_F*CGVd&G6v z9TLH~iUIQErM`#Fpk;10Oxf58zeLgVxBUG)nJjT$4_p3&09vD&rLJJWu5sD2{Jh)} z&dXQkAh(tI%Xy8R(qfgp+3;b5Wq;UkYOP5Btnpus(O1)Pj1F=f0!|e0=JyAr)gZc- zH(hT?3lbuK^I|`kb!&>Jwap;h)BAQhct!SMc50U*?Uekoy!cw)cx_|&@&irtpI_u# z+YlJua1^u{;P*E)&F!82s@p1vFeI3=(-g|?tG$2rPV*<t!3yBo%=?8>J*o?!clX!; z;$(vfI5|9=al%$)6WSV&sDLZ$<E7?zn?n|wNGl0=KJ@(6VVI2C_)gP@h<uTq+I(tr z*0ue8@W$plnEtmOZ}-T$?)$!5t!aKv=sm*#vOzYUPn*wl1Hov~1v*NiqVN`i7d6V@ z=Zx;RGXV4J-H+*kpBH*9g=}Djwbq(ywWeCFsa9*M)e6R9UvpIejkcBzp!+Sm9Jqe9 z`3o|GFPeW25Sg%~`z0V?{`FY*zq`L4?DaWBFVe!yfh%$t_&0wlG>qGk?XZD3l?s=e zz)72*Bch(|_Ay!U$K956Hw0eY{UL^&y|~vSz3}r$ucvz%9<76X^MHQ1;Afj3VR(G9 z=PNh`q*=ochME+VwLVu87%V{p5-Ghdv6LBE)6P9PJw=KvhS8_9uJ{^R1scWsQ&(iY zXTV?pJsPy14|mOF6$=8gMbq5MA(ai9Uh0jF-xgcDuNUz}DEhn7TQyaO`%P>q-GCy* zxi6blfPZ$|Z7XzZz$5#l(D5HIVPrn1<kvOWUl-Pna}4RO=8I9As?1s|LPoO|epm%R zEbk4c1S0MQWT(PYtS~~pv9KXY5SI#1w89guFwUu1nAT7KU(~kl^x#fAtg?h=AFG3d zA=WYDY+VPB!dICFS`^nG1Ydu!ima-kn~uO_M}f(Xnw~9t6Ue$LTTNTYYTmC2OgVof zl%*N>%f_PsnHnnZnyl^oA7Ki}uakAr-X+`)O~!WU$u7pspX~Aq6VA%72Q$xZYgpZY zpVbX-VWz;9vzNNQ(-jHtbUhx@f(gerU(}3*i@-(<t{k03sG5aIdR%jbU1D9%6w8^? zIcK8fOjJ&(mQar%s8+xt;N_Koh7R!hlk+=rH*=*N2x8_?sMdbyYOGUdlnv=%$Ej8u z99D$BO*Bhbej$NEn0dKR$toLlS@zOxN3O^=+Qf|CmHffWt$J1&4$yAQ-w2?^Ir~@+ zhLhBKxEki_iiEA)1`Y{0bA`v=Zcdu^MhpoUN4x^1L!Ht$0F1x8EV~=PaWrW@Fo?$y zk*y{BYx6&vqi>BoDmxrH_+P1QDb{AG6&a>j-5aLr`xy>JcK8VJNHs7C>e@fRP}PGt z(~tmBR~e+b_AX9svfjN*Cpx`1DDu!k&DVuMAfv0~V?$#&s=<kl7+}q(2K$pw&?Toz zksqS~)|L*}S}$&`)d9hdCG_SClHQvx@&6^T==bj%eGmFpQt97^GJNv|m4Bz;24lB$ za{k{bP2vB4P~K2f=oe$bDcJ;gqmUQpV7twnHV)YRm#-h>WaGa%?#BNA=D7QBP+fra zvjIbs{k8e^W_OoA>T*{As~j_=lycfE2lwa+s#LvvZ~&GHVAjMliat1VM=$-h!r%8d zuYuZtbyELd{&*1GuXJgu-uj_;X}LIGlgHnGXt<~`{=Tm9o~HQwjiwj6#^1kcz8q_; zXz!2Bm-UFhFYfv0p7Hl{J>QMLO(bE2`PV4?+d^S8g<mKCj#)UfrPstO;2lsu&b-12 zIEJIqfB9iSSMSc?9(Us$g1>L&U*#^y2g=2zfW*72FEISsTlr_X1W@fYr^ocND&bpN zPg0xax`jO#xAC#Up1<1Q=xaj6!BWYWobA~s?p?Lv-qn5F`QMlSkvnOa^ZuCsvniPL zeXY*FQ9C#(YsE>~DoXEF=`lR1Ii`9k&uuQPKESUBs()bEy+7t}=lFU%UqS)Dq~Ta@ z`;KjRneo_Ou6<lX-p92Ixe2_m>Cz^AUE1_GzaDRTnqN;h0kG)2$D!GS76J4cy_Q}} z9#G6NyFLq>;%nKPJd=78J0cMLAM+;>i!6Jx;TeVkMD{ZTWC{TJdkwY!Uc0mrUvD(N z!WevSG<|>{-_u%tqt4;XJ^>f$KBiyv$LI#F!(j5q`~!%o?1TJRc87#x8}8yR>aN<$ zHA{H8wzLrmOB>&yXE#c`(YUG!39EnvOL)BLB__NCJSbr;a1==qL^y(;gxgxHXwiio zV^w+;d<e3u3^pVPwn>0Zs6fIq4QJO-;%tKr2`|^aV!~IL9cx1qG)WU=37Vrxnj<B^ zyjsA*zw+k;-Q6u~#1nYVfb8Qm-f;hM_F(!~eg2h^3Vxiu-{lM$2ac)TP-CeF8jmHj z>C~)svX;hAP-`c!@o{Jzkp<AopV|004E-M7r@SY72d7|nPYs=&k*~;=P~WT9S@Z4A z^NZ&|%*361lV&2$JU^s~{5M^G#}ho`Y30F3Uk)w#*mHbKp9r+ed9iRDE*9R-w!X?P z?m~cX>GHaMU+;1v*g$q73<6AkKmR8`|CyiAfWjv<oYr7|E2lNw+ra#L5z!7A4>qiE z8GmVbslkFfywva-qkX*AfDo99_OQHm2{qkIYER<Hob1Wk>5XVX0Ou!$(ega+GzNl# zE*!19e03NFqHs)wtNu9%F_=A+U)q45HyYl?eTFYrWWTPRTayWWW$i}3%OlAUH3RA> z(6Kz@2$sX?AAMetJwZF)SBN&r)HMw!@)d#;Yp3!G#Bzf*Ti$pc-RsY5ycz*11vz$Q z>z?cJO9S_J2ebO!)n}@HaK)75V?xoX(7UHDt}c5CvG;l8JQ+vMCxJ%Z+$TFJdzHI| zSF_V`K8pOa^QS;7Z+d=It>pg<xcDx_#ZEi3$DLd7=M&XWqi*x(Lb=_+XeRy?|NIY* zWd#@yIwyvFTxWa!FJ4BTi1?P#w}U?_t%J^y>EcRuV#5^;{-85zty&v`Xz*x;f3QAj zG4797;zsh4Czib0n3P?C;<lh&hurbb3=ra=bF2<J7vrFF2oE~@HZ88`#;5cD3}4Rw zGkg<*nr|swbNfYT+O$mT8-7DR1Bxbq$1dI{^v8%XjPQ+v&VaN^mSjnOUT9N?o!P7T zd;VOIgUVNhd|IqOX!w`yhOc3`PV7!DTw#<H{6NbIDDikv!u&wX38<drYtHxd$d%d9 ztOd&%Nb;VpI-f2;R-?;GYA3r4*n=t2SG!NUBt+2pU%vDj`y;FD1WMoO61s3-QoY(8 z*ImtbSqjlrD&3mxbQ#6;WmX!8H7f0Cx~^?pO1qH$*cV!9h)k6ZuasGM@%66t(8ylf zW7nodm1VH5?fbpW;qy(`<>>pu^v=@vow!xs9P&vq58({jrA+$X=19Se7$Wncr(MAl zj!W?R%lFyEO1@)rVfr?H3>5vF4+(&M2fXP!+kj&%c!wS>zf9qnKNXJo7eh8!**!v8 zhEv-6AeRn=Ob$7WgF5Xe$o>f;i%uq?+~@K(YpU)a+>+vSqo+_zc8%JDZu$l`RlA2; zT$#Dg$w0<%SsSQntUc<=<7O;7^`Gmf-_x3QL(VG~czXL5Du3%E3aXEiH{7Z28|i5j zGpE5L0xK*WYKJ;HvsGSvW?Qtm8wS4{4i{lAN>{T@P{V4t$~na`|3zr&JHXJ(^5=~t zWB&7yzr-%{ElKX?k=fnJ12m*OfLjX^7`(TjJydPBtI?-g+g|HGB#?1}AB1n{yWz|g zSp1*R6*T3nZ94v$J_lo$XRwZ5eF^FF)!Jz*4Rf(uR6g)5k4`PJBhkQ-MYL)7DciYh zR8A=T+zvtAqyU<tooS?>BY?ppicrmHhi7HAt6gtDaVs~!H+0YQ?;rdSbB`gnxYTw0 zIdn*HI0@f|6Awl{aCvDoOKD_Ynx5u}<1|LJaC^a`q{j0+i^L>R<jWWM6gthFVl9Cr z)RI53&L0iE(lfZr2ymVbT(&TFlRq1Bscamb91B9wAYFPfNT1*b>A#CX=GCBVGM4x@ zdjqYw!sAmF2B=!w%@qn!f%XiwNZDO!2KE2tb5Har`wy(A|3HYHDcNnf38>|RAhBzZ zpu$nfzSy<&T~kj2MN6ZBhS9fhW!_>f0cC1QE}~#)Y7m~S#KTGlfQvj8eH;CU{OU5h z+-J~?JI=!`!o~eIhI+okP4yiNpXuN(N@}X*;1o}Fk-snC-uGrs_0852;8sgvs%yvl zUNzOzFx5vVaMf^g-7jSK!d$ORE^>2yv;%g1AKNt~xVaABuxOjz4Ur*3W1Q>3Q*5q% zs+;STu27ik%R;Squ4UlxbN;{o=69ds$9O(B(&xkP818q6;vJqB9d=(#@2?`~{_2&` z8If~kmuKm)|7@3Q5Um^E*Z7d+pEm3JQ=EAkJ)Pd|w|Hp_MSk0D4fWSG-F^eVBz*s- z=fgao#y<Vwo=;iQQ$3%dx7IT~&+4TjXZ1Rlm*davb+3Kj+w1qetjh0uy=qCX_IiUw z-strrUi!L#j$;4c|BLW|jb<x0n%9uVt}!e?r+D%IA?-WBtSXYW@4csQ&zU^rj0hMA zMhsv?RCGUe1!kB99D=K>tGg<KISfM-L2?jL31UDLK}C`Xs3@|yfT##YKvY~5F(4?S z|NB;lbM7$izu$hBhdCXptEzK%b#*nLg)G5^VwgdPi8_=5xIy@w^e!qy>@t}~05gq% zm-5$9&0}5uAf9#&Dp*ip;1}S?2?5^}>@UC$dw;<&tNSsma5yaYs^LYGSTevfsb~QM z7MP+!0E-F%Qcxu*sPF0fzGyg$1<}K+O`)=dlpFX*xxr^k4biKsy~TjHP<RIZQxu!& zH2;g{VhT7`SeTJJV@4Kbb=zdnjXp^|PQA*<O(`K@PI^BTF>KR7fRs`(N@+FKMpm<w zid`uodO^WJzJxfiP>Kfu!wSc;UyL=ygMdjzD;coT6b}N{7JbTqPfdX!V0g91t0Ca= zYO|SR1k7fc!2F(RNeGZKDRyOo04WnUT<UFOUDv>ahY;>$PoNxUe*P<RmSf_oY;k(r z7?<+T=<;|?ZUVPXvQWWDF$)_wRK=Fy2~nMRB6ltyM3|fVY%W^!tGUmL=D@RgpR!$j zn)j`&Kz}T(C?blAq9I%W3@IAV+8<vux*ErnLx1{8&%A8C(@jv!e_O`ddNTDkuQL7^ zj>*PnPxb>j_$<u%n4eh%bMb<eT2b(>dC1CT60db7xMan)Y2iedw`^>*?igfNJ`++? z?X8okxN3-eOvBYo*#baZu?<7Y?A!4`<XH2B*9d6b%9i?B+=3U!`|1<3bwp0|AICWg zRCxFy+>f38p*cJxM4#oeEVA5jNsUoKH@i)ZOFj(_R^1LWa`OTgI4_uo@eG0U(i_vD zvoXCd?c(;OSL8_ChdJ+I1Ow3a{Lk`*(-8$z@dzhE9xIq*Hez!MR+*4B1#cHP3~v{F zW&%HhLW~PMP_V6#X)Wuz*CdzG!&tXxTtXd#Zdc+jH%gz`MpQt*`{^M*lNSZ!UgbEw zjK#eS@3M*iOLZSB+`%XGqrNl?09Q~W7`OO#^=a<cY;0qx)RiH^kD5&rnCZVAS3mH; zW*0oLDGxf_E)7H?*hJ{Cgj_>G^<CpRl#}GEur%m~DRv#@ci)C1*lKoVPt3vR*_<u> zOe>gOfX~u`4OAWChCZbq@jVE)Mz8YXgAed(NX&1E$DpHIqaWmcm+Qm_F>FED3Km6y zh7P7T;)4jn-y8iP_p@B|h0pkOiW?K;Kx)3{4fjSdhvgMy;i72R3W9_G<;78l$zB{? zXA#?rquwj5V)5hx+|5zvhp@mGQ36JBe9MtzDN{B2FkdZ)$prgj{y<b9CgUa2eldSy zA6Dyr1MQ^*nE~LTTLb|q0ZtJ!16ZQE{&?4}FU5fQc<w6y_KXQPe+in<XL;BHbix9d zvgoCD1^apZVqw;+6u=D+zoSg={_H2S@fndbH3y$LIji_NkTWP3pFz39sOd8-cLsb$ zFju8cn^26nds0NWPx5AaC%looTx533VTeO^ZEJ8R0?l%p8p<bHhNefP;d>vCl>qqZ za54pq>Y1D+a(c8RXE`2LfspXioSkga(=nJc{@L7@a^ZamMZh6YvMhh32y}(dJX(Ny zGJq|*POwGy240$e<93{`&&LW2j(5W^jN^^$&3MrTAxm;r=E%kZ$SBLY!Vk)INw#Ur z^eqXBDq0?wzU4ML_N4c^VIi9CeLd(?JR@zGzRgp(CxQ|CsU$itG|__Hyl8Q|T8>9^ z#4$Gf85|*GdiJy62#)bNk6_4z<GGwSjbm``2+6b>kvp4(A^FyCdrCBlH7R=<gq|km zh6#orl{gw}^09c##%@Pt-XRR*Ezf$Ohn99Tn|ywU;T@lf^nJYhIZrR;dCgM2oC;*i z^$Pk%WR0facy!hnp5E-^`#C+;ui+qyUI&pGv$hvPAf;dRWLQJ<Y2^T?TB(1U8SU%z zLEbaDUA=*WCvm(GF5_$^;!dMLgh>-6?%0kpIZ+zl#N<piz9D!;lLfypc-c&m<I@jt zQhFdg%@BB5zbP{FH}zYP`k|pclr>X?$@gYIC@t~9>?b&~J|S-ap`~F0In#DkBPL`4 z>L#NMBleBDhtbex+|8JH)Nxq19``UsDzS}IC76yF89QRPSgJPQ+FUSh?A^FHC;Krh zqh3rw2c{J78wir<zCc8s<^((T#$v2DS(tsdEg$`7&mXUMsz!il^a0EIZW*Uz@mP5F zgc(biV_=PiBkVTDieQ<cc^(&R?a#j(I(*oS_ePp~jZ7_EZUL}b0R8Y)>pd|i_|%KA z;^9#J5Xl{zg~tu`7~)Q!XytS|={Hnua)Q1UEVo2rI-b*Al#KZ$G!C0;Yhdt2T<EZf zu?7UhL9y^7Hn-z-peoTuZI6)e%#Z3qRPDcUN2jQYq{)Dw@vlR~^>U=-_gU7w~Q zs$nc_{9qbn^NGiV{qd&WT{MhH0PizY5BC_jAiD>T1jv{bI?UM-JZ2Ujn!)*9zN9mX z^AlLMIHWjZuq;l(*y40CUQFNuP-vJx2<fsNi_tSCHezuy+PeMCN6(h@+n^0vmSE{^ zl$K&xP+gx;YG4HvV|>acDAqT5Ro)hBEJg~ZoW)82?=!_Z#bcm8@2eErh>XdlH^s`- z=ro}ZbvY0u22*<{oJpLFLGk3j<4=EUs2^9@O4W<WH*gn&u(3%)nn0AY5k`wfCnGB- zx5JpwPOb^v2yg$vyh|}Si4Se?j7`dGVq^KhpkGZztQda!+)Lyr@dT`;VU$ijN-iFS zSP8zRN$AX$;!zP1)neWCy1Uu+3Z=lW1e+<Q*es75tL?!z^nDWywzj+kZ{{Bzk;7fY z5(wQvj;|qt9AAWjCNgdX8*<n|zn=P(l7UZCAcviGuql9V6UpHP2%b-rs2@nq)UzWM zBXT*)=W<LS*tN#Q&A^5|X|O&(?0Tl>QA9Y-mP9otL-GNfN#g*JA(h)j^E_XC9dm;E ze$o7WYBVkvdcWmNN6@lpKA#4+zNgh+YicEm@0dCVy3fFZFH@T(a}+O2=8nk5_o)hI zqaqmXWaxnA`s5|g8J5g9aLG(lE9Y><Tqka7rB0o^{t0V%g$E~f4v)nGSLhHO&L*D< zKel-7irIU~C<@8>-GbTqv0#ph1EyB?S~Nzrj#<Pgmp8&S#)4D_S_WU9<aZ%nF~HXV zWk8`bPR0A-_$;IaUM_3G4qo0VNxUCBTP~jKTN)?j1g%|tWrWL1;XG;94pb#D<*Y2n zl!NQmoVPYw97pB^Z9R^7xP5ILI2>q%<4C*U(FtEe=b_)6*Bi6HKTz>e)zQYQGs-Uv zV(E@R%^z_dAS5wneN;eGo3y5D#y-F_WANlc6mB6w=Bt95uxIk0{B+*|u7d1nF&hh! zowuvme3gYJ?}zYg`*t-%&$n7Z^Ysp_UlFt;>v1ZqU=Vpc+|5(?-O!Ygn8&kU&4&Ng z><1yu1muHI%7TA(-Z%&X;2)R2*h)7S=TE|J9zl}|mr;lZWXlRy7Xo;7;rkNfa}i_J zjx>)`UFmVd7{-?Q`hCc|JbYzGEIrmRoz>9fY|7)Y)S8WV*buNgDfvOb<KYmBb%ta= zP6ZqWWG`jFQe?;kNRB!qN5VBAglh=lz_maKb$x7wD_zPfcT&qsMxM&N#r^s@UnQ@k zxSo9_^&uC`AEsVO1Ig|*v^F3-&DtQ^FdM=h)K%IM?vNGij_fUzgKf$ET((Z1=R!1C z2GQV0a<S;6{JrGk=YpXk4;xx|Zy^xhTQ~)`2;wXxbk{+Sae1icFszC%DgkWCwZXVO zx2tPmO{JTfi-oqiNQ%U|z0WK6o%{4?Sz3RUzmKG&J;xa_FxdCe;{|Me&WExG+>?L6 zfOE*>5Sh@ueS*XM)ezO~+Q@zF4G`|&Ez((8QP|^n>(l!(v-X_F$IZdOKqkK3!4BSB z-Jo|+H|z84)qEm#A(dz&t8v23E52ZAna4(J!3NBp+vP^hF6<9Y;NJ946z~6(UZH*L z=g{AC9vS_Sw}YOSg*fH>4azQAqqD^^9=hOkBuqVIK%#gFhYz8!=Bf$?SNI51Y+%gl zs1iji{spF|fie2tlFNuMp2}3i0S_!K5go*(Bw1!paARyOGfMb`65V^r0N?Pkzm(oI z(6uSHy27p~;fM8XYA?;!uTXQ_{B$c{#MDOG5$@z?XSf$iat@aR{hLS086$ZZP(G#K zXB7^ICKQ4uWX+&%-3t&gpgxx59E94OSzJb0ydDMlM%IrIlN=gTY+{NJjp=D(dP+=2 z!Ag-`kD?N!_TI=%o>QKHZRZQHro44L28$rZurr49Y>L{IwCH`f+e(EWTS)(Anh#*l zW1(voq7n_U*0}>pz(?RLkvnW%cc`ltn$3GG*nsW-p)ph>K@4(}3{SOZa}eGBAUg9` z+Zw}lN={gh+5yZNLW=xm+2#FeT*Vz|Ae2=u_k$i(op!zFRGl_MMiTQ&y~kjwrnEWy z2^xuqU=hpROfIt~5}E~9L?>>!dvo{|RXx7~cr<#;qHBZa>wj;#+oiSp>6G5>kyWzX z?INJkgl9KVgf76^LULZLxqR6eji$68L5v{%`S4{?u#*}zrHDHIlZSd3cBOWDZR<5^ z1+=Xr|KzL{&@7AmKV&U{wsquxIcGzD+`l#d`?z1K2jm8Mas||GUX!&mi{E{@qw-=} z&M_$T)HOyZxG(n}YK)`(-#*N=OQ+@R{5ZOiHf^f3(oB^xNnIDsQ7|##rZlUo?FRA$ z+75KJQ$q|j@g~E5){8=&X@)R8_HNft<h8raadnwp<t`2qMU}&qGy`<L55Jf*`QGH? zoY5Wo@%YvlFIr!e?5-}l7|IJ+nG%-Wtr8k^QHimG$5>C`EE1TNd^_m~=vW+5F$x_! z#G{TjBRB+j#dWld@F0ZR0N%9314us4f#E9P*l&Ki?-1iqiK8&K9(5JQ*{dcPEr_Z> zO4LzUV&d9ZQh=h>ZyZl&byRoES=|LB5_-i!U?gKK<yK=29@-L1Vt2I4bJKz)(c%<y z;uB7>;jMFm)f?@w0`{VCGunDEKglo;Ix*N}MJ1l#a`=hlH{48rgXfJ=pjfQFi)Ymk zuob{6#{ba>Gi28w7(yc?c!6EKr?(_#|(8&84)o*J+UraItJMpfDq-kvB`i<2My zZYD6Fek`k?aG)YNl2hPF$Oug1bLfZq6oc6`AVnC#T6mf}F?g3dZL1HWhO^Emp`NS4 z?X=;yu+fGtA`4TGvNMYdv#M!))f<o>S`;;OUQ&e#N$ta8S<;=JGTBp!KcIa7Fq8I^ zP_8r8^VD>EUM)5Oz6@ds%22Rnk^qZ;NdP0aCV_8UCS5F1Ukvko@hbbc+2zm$hvc&} z4AIV{WWL<s=qxzs_cZB<p%A$%Z0YufE!{P&c4+9Y0S*KR7hN0|-h@jPTy#@?fdVTa zg92){f}+%*=;lyVe#SN`uD+<6zBqKjdxS~h0w$XTMX^EA-J$R=*k<Gh9mbb@Gc=rL zQ`stZ!N@W^!}v5o8J<phmcD0Gvi@7hXXrX%H?o~^+xZM#C!7}C>&1b+o;DP)B}Yt% zllM%D3BAjclwCzV^x{vG5JKaCIysP7H>W-)*3VPl@&?JbsbNIUiCe$xlQzx?F8m=7 z)Oa{Mbq~Zc-p{FXv1J3|fC>l45&kiYAz|(s#sXx-jQOz;l&wcXzu>8!6~8p}8g^uH z|LEWeaN#c<@n%qG%LR-Ip(RNc9`NN;9G^o+!OU>X@5@Ygnq%B5(Gp#uB?chMtmjxg zvpF>Nbw~+EX>hws<&~fmOC$xl$Q;U5dcx4m3ZsXnRwP$5V6`*QLUJ-}=m$LMny8Kj z=K<>S>){$m>7G5^F_3q9Na`8XZUjyn{Tc0gz(fv|e6dJobJSpkpG&wD&!OQLCme}K zm6)hXJ=m9ub?6PZnE_5EZUMGiFzVsB%RG0tBneG6NIZkNR`GdmFqK<^sgM)^cE0|Q zz7J_pp)2lByv+^5+u?hZV7wO&=FOYI*|`7QRo#<4+aI4*X5dghZbE_IWM`%Y9P}3? zXY(X&w&4R6Abjw?z%#u3^bGmv2|jkyx0`&xydC){F?>K#j(n6DKKz;5?{E?ij+M?u z7~n1%Nb%@E!v|y)b17)Wqon3}1qA#Qyh=l@ucpO@3IYaclo%{>!#D%dKcQz*4}NCW zE_*?07k5j=>c_0<X1T1UhjXAJujYhr+km%mVF&@+P@bq~U>ux1j+@bO*%NHQgzQ-i zn1wPHh&cbQaL3*5Dw+B^MJw3@zDh2j^4J0l^r#}5I)(2i^&n*<FQ&&+HnK5m6Zd|b zvbJ+Js{GRfJXTD~y<n#NQ?XizD?sp#OwXlBmVc(vI(n&jS<jh!E1%%5j2vk1$ohdB zMKeA`sCCjK-C%a|zocLkkX!m~>N^E)zEjJI_^tGAAVTo&tnbL=cUh0{VEz%D&&zhd zGU6DCWp}vJfELZn={PHdY2X30L;E3(gy1qMbm~n2?+zK)(qMUjsO7<LHsBr{(wiuG zX0j`unS9;`yoeVjP1LJuHA{E3`oaWwF7$gopQ2&42+IdbU%rFAE-ohy1S5<N68Ci3 z9u{``=D4M%+LrzWS3bSp;*LREJADwPZ%ZG5fnT$?i(#WEometN=~29h($8b_OYf%A z>282Vf<Z18>v+x%5vA9P3CmTjTA8BsT8G7A!FcEp9fna3qV!WNUMouXUMos>ekV$I zer)Ta;^2c!7L9D_%#bXlq_6RO*GBa$&05ZL_~luz@wUjnvUbzAJ8Lg|T!S@p>wKPd zV?S6a01(9ygt@Jf8Nd^FV;3Y=?MHGaC)JLxR6D*>?fCA6Z5QtFT*_EFDhDuGaLb;A zq!R}d(!sL4_%74FYneTw_hSm;N&JPDS#uJPfGZ;IfAC_agx)hi$_gg{lsV_&-3L{R zHs0&iH#3e|I$%Qj!2@#W532#NS}nM0(QcKUnhYw=UiUey4FJ+$G8bNxlh4@6_!*vk z(n|ifHsISN^aJt!tV@rt9^z5d0g5`~nPPlwK8JblVwm@~uX?Mmlk16s=N9G{L(qzS zt<}|-Fy`<Wny*8Hfu3OCYtFYUN4?#XYn<wT0?c&IP2yWQ?l_E>W0Eg(DItrLV@DZc zD$#_gZXPFzDn+$HqMIM9y!_DZ{hVAK8LWN^vU5s1DNEI^KRo?!F`iqX3L2Nw>)t-0 zTRE!wEzw?DmV!{}pX>_47DMc#i*9v8;$fh8*zq88{8@&`Sy*`#!<u;XdO9ZMVob`B zqCQrhm<5wCIM@{i2S?j2-DuwaiL)0Y2xpAuk(is0JRZ$PXkvmt%RT}oG~u5nIs&j+ zCNvSS)Lau?k3}!IM1W8)anunY)Z<&eh`K(_=axd#nlPZM8Xb-jI=nSpt$BC<raR!e z1GkXM@J<WXBAu`~_y>JExN$Yo1R~UDc~o3)_q_#wSSw}fUfebC<*lFbV5F$)0iYhu zKwydgosBa3&*1^<g@_mpDO9#b@n-xU(QwNQ5FWPP;wq17l(|i%-lFW1%_bg%dhJCN z8F%er>bD2>yQSFgT8V?2z>RFY;Pn6a#E>YdyraPUHGP@eA<XEI<Z#q`200Ks!KdNX zlUf&|PyL}7t}CuHZ#7+aBUEZ`9B3ap9>iCpdU9}@<<gm_d>|x!(S|^ZkI@MMZ)XHZ z2^>Gd&{v7dC7|2;D0Ye5eAO2dz3IH?`6#X{a7j?2;yKaB-|ULEKFY2Bsiw$IZ4XcT z8;s|M+u*tFUNc_B6N@{B;V`uF!-xT`6BtTV`%6>f{;Dp$49?4LpcAM{hzf3#xWto> zGjE9K3w&fAL?S1*6-}(``iYulwEEE}d9WJ5-sTMaIpac7`<pDZD});6u)kZlA~(xr z1_0vG2*S*Al>*YCV<~|KA!BFN8IY)Mp09Z6qsfoA5m=lVrOwQN%p%r%>YBW&L{rp5 z(~~d~ophS1nbS((DRIsGdU&qCO=2=pz!$?J7mQ9uk2slFP*tb-&H_&lUUR$QR+Qnb zL{-J+Du#**ySeSq^4k#=*6ycuho?Ikf~QA+c>3Q87(o@u=%O5noqrhVQB6tAOF?vv zdM?k0qv0NY5_;iDI8>A(M`r5#XlgaqKL*jq93PEEEq%1eSQ{a_Q4=5S%0~C~1uIg? z6H$C8o(VP}R64U0Je~NgJUrd5hUaQ1V^^N)i7AFf48!qls8fgqWqD?2csdgcJl*8k zEouKm<qI~3;4l=`VMn1fjv|CFFUN2Ou^Jd%YMh1wK8?g6S30vRJY7i)o^Ji%>319O z-9}WlU}L0?LWdG6mBdDsvUC(gM@OB3UB?-u0=dzde}d;vqykU3o8Y<WHgF<Ty!c2@ z@g*y!;aZ^rT6K!5Z@Q0`p|d%no44@wqv!f)ZhNw5qO>-RT4(<Bo;t3L{Ga-T$MWCx zix?ZVQQWnCW3H<DB9@^mAL}`&v8d<3Q>o{~`h_o=s{4hHuDW0N=zrfYe3AU0`h~~x z-}VcS;6LaW9`?WM7e4vF?-wz!|E^zn1XcG7A6<37@X`OiU(|N};{Q^8dpwr^vic$f z|NrWXVE?P?i<1A_>WhQ@SJhY7S3s53cbJc^vigqk(f_XcqCrm2ujMMTJ0||_eK6=^ zHtKT+Ja;U!yT@foJjmS@&(m+gDyI+LfZ9dxuH-=*e~_=$cg1V<)9jvQ8gE+S)m7YM z5_}Ooam9$X!bH@HL@{~wxeA`E1Sxz6lcT7bISN;{F^o+xsQiRh31eln-7!i^Ua&$y zUOL;nz$ba>Z1eJ0<i+Y*L3-T<asZ(Yu!B4R=&S~sEFoYT@B8D`F2hGv<8D-vw48Sy zGlfwWnd)LQ1>ZrugaQ8$gBAhPc&5<>XBtvcZVGMb`^8b1oQ`TMT1{bF8`=^^9Uwk& zKpl)eG$!sNeKM{EJ94AS%8eB_<q6=(>@#%5O>S8(q6s|M<rW_qQ4riS%9p(!<<n6d zU+)C`Ips7v^Xl<FlG~h`*bDl)(i={51Y3iV*4Xj%RKv|vo@jKVk}$p+$(3W!&Cw8= zTcu-p_!I3zprd`UKIn1Fru_`8iq1F(9Q2vbeVDA3tDWx1(^}PE9?IOHp`bRjaR72~ z!1X5hI!%rO@4))(jyp}ro!GKPq)q-}i5r0325#Nk1D+mzQ{(=w`Z6^*zZ2SOC2CMo ztSg{Yu_t)P5>BRWKA!v4AFRK&TfAomSc+pkyLC~Vbz2zbTAc0okva}hVj#c(Amq8G zgr4Xzumv0ejd4<+VMFV=-Ew9C_^oLn0#C}aRB@s!!E=D{oJ$N#ms|<YmHmvT-(B$B zHKK~0o{mzVj}khcslhH%mzdP>AT=HmmDIjL9zy#p^whJM8XXs@JDb$-Aa!S(+IC^R z&~sdfb?D*EjK!1}ZD@{o(KK9uO3>n)92c3Ya}l^A#+uw>6Qb<Q?k+RHu<HKmqT^g~ z$vYl+RTL*d!ESp{v^)5ow%WeO^-mPpeYiJdN^n~GpExpdNc=Yg8y@xmwlaqeCAT|( z#i}xxt@@s4*a#53P?0xy5g>TwghB*``dZH&#}jC%qPwmOw(=BdCq>y1HCW<$q6d`` z>s)k}N2#t4Gc4&fP;5*jt?W^M;~^828jeX#rpRY9&7r{vG!I-w1KQDUiH?>`g^^eI zOX-_D8mdj=Ds&f$CR3pcZ&K^7tnB^u^M1pxe*c8|Hl7|jMyYm_CEQm=)ehtF$LTLA z=ntfJVgTQ!cnM`hFh=paRDGG|;Ok_fRhPn&SScuj&@rJBm!T{l#YHiEmZw*-NUH$h z;UTcVCLhaED&F8(;R^u*f65zssh?=m0LBZcu8(t}AY5Z%s1=S`!+CKxpU)9{Z}Yn| zY?by;RAtjNo}yN8%hrTkozV`7O30c7uRcgFVpaVkMO-U_PtgFYh$=Nv$QZJvgX1N0 zC{?I@_f$^>>+!UfX=f(abv!^@<n(!7?dSwi<~oW`zX^U}_9v-F&}5k?sXKXaPDq3J z1TSN7?vl`d@Nol~dSDWB0t}?5UP7H2lK89pcqr)yT~N&Hs05A2EduBp7=>4TqlY>t zD9@X&UP`S^(IImWu(bB^I_t(n4w~h3rJH5<g@H=rc|Z6fh`bT`!9HOwGLYK}!_-r$ zms0q=1baBaxMgy1kkrq4IJrKFOHdq;rrS^`xdLVQy=@LS!9<@7^K2|l3IW&^Ey|FM zCGJh8Lst&$JJ2bJdogQFIl<H$<}4#)%?vR4(JPO2wflQ>Rve<LIct^25TCO)*ib)b zWd>O4eSO;BqaKH-iuz3+L!5d=W$Kv$mU@v-n?e0tKZ)u%M2z~mZoaPRF~q4isZ2dH zz?J+l|KF02LBy#0)xs(tAE&;-hDIfy5#UPRr_IQFY^~Ba22mCDn|yqndPN2?90X(r z80wCP`mO|;V?J$uG<y8eZOoL~=5O%)?Rw+6{$^PRF_j+S(@;&MUT1)HE)lR8YTdV< z!`v89jnBepcUDJ(tmD=2T>Z!)%bkogB}`Ln(qJO)2%WfMH6kgg{4z(s=c$NtOMR?m z>NmrPDvXZtk$l7HD6<|9f3~3sw;ag~aCy*uUo=jYkm`As6VkJomrNcO1_z-V;(+Zp zmPVvn3wZ#tFezz}hlRlwUSZghp23Sc2$(@L^QG!Jeb5AWbTLF7kfjb!bHaSu5XYKL zh?~(k1G0<ia1fV)#u~-AjHqrVYD%WgoFS-_%Zx)MjzB@};&~g?eYvcGJvgkr@R<kA z1AJapZ>Utigj#}WH^}}F3T-r)-$`vxf00JG`EeeRpU(D(8*ydR2<LgQ8z*mb;m=wX z+=bh3+toc(4S68_EI%)&Kf%W&-|nj*Kq&-A1>>If{0kAi&_l>P+W=q<js}*aTL*Uy zn66qE!@Y;s^>{!{w)8VTMK!Wi?J`ur{?zaQ9>cUDeUj&V4J&aHUSGs#k@}FI-D(&s za&mfsU3(C5sZSwC&y%ngLZ!V4BT9ba%z(k2^m5=`3e8412uFwIAp;V#s$lD7u=N5= zc)z7~0#@T@u@y^lj-GKbkM|^*bCZH~SDE7MSPJ7dDa2hx3S=%bkC^ZrS6wA5u>i6e z^LE8Vj7+StnP`gY(NSt#O@G#3O^=7m6+gbCfZ}$f<dPp>+)bYV^Q|YG7>pb43$epX z0t@D`uP#<|DcLB-LS<`oe5^BI@E9s#xR?P9d5r&Ju<R#C497)0RNY*t>%qGM%PsM* zOMXKCC%|O<#3d_@n=L=bMU@tj$F=r`cd*jPf^(A(>vmO;k)kk`!njQeaaWPzkWxUU zIIdVJF)x{nc}<m~(jK#!Xl^Rar9Qq=rTOr9rMbYU(vCx=9d~@J(onVY7n)L63E45f z!Zq(JFg9sM-q(^pazo^PG3XPp4LxBMt8bNo#t<ve@ru+97CG#q;z~;aJuXLmT|S!~ zeIxZVxa_uLSY%)Y8$11r=S(CjtvQ9L4jqxYV<(I>w~sPrqDEmwZ45R~qQWDM53V*b ztCR1tZM>Vjhsw0~r5+R0nOs=zwy1Rw?i5`hAHb0*4q#V4sGLNl%$R)ez-ub5P9hsv zlDh12g^FF{y*Br<x(&h?VqRCG{OXEYrU3AuHKuQK)OVt(fD`XwmhPcCdsiIqKXAxA zeh7jRA}CeI5CQ7sL_Wyf<sPPkPY{(jM1E>F++^^9x&0V4U_pafkbD%I<egn|C&GBp zv(JTpouj4y311t1OtfOasVtZJdu<dBst-z$X9gIKP&SD{#;Fpb^RR*KW&<R_rg*kM zVk-EcZf4+EQ7xi0oOX(iuH8Qo%(&3JFx_x=tFZ0tRt;vug2vIU>sA@Vd*ZFzGH&xB zsTkL`@9$ykJ3h&%LzCe`F07jTPBNF<gl^<n7x6nRCzL^EyoH}FlusJbsc9~{T?E{s z%6x=Pnukq}4BIyLxo?WQZbuXNP!6jEKDy8U0&}0y$^QlF8F*U!KS$0sbFa;Bqnw~& zKQj@F_|k_PZJWm}SS|AsOXMx{<?I}~sHW?BSD=GkvDLP#tx1?Z?h4b#FWDo7mr|=3 zuqqW@b=kszEik7nO%WKw_bf6j(n!D!Yi2Ff##3s{M%lPA`cvZ*#e&626eP4g7Xjy9 z8uZ6f>Qb3P_b113?xgmhUhPvC(ax{B`ED`yTPcorpAmD5nEB02g<<{XyD^lb7=N+2 zU^o`iqj&&EzqmgqNZe?8jf7uf`)pmOT#^~!3bpF5URli*HBJE3Rf8z%7(_!^U7?n> zjTcC^;WCBk*V|JM@nQ0Zf|U^Q!aV)E^t}uF7$$mCu!rG$f^ocNG7f7a_$I+PBz&+C zN#7jx3Vc<w;zMIRiI5jO^#o7LC?H>k$0_0a$nb=*Q+VoWcq#!;Z*i0Imf;D}o49s| z<~n)mX?Q9zJi%TWc`7kHMYE}4BgVr?SW%z!2?aZ!7^)a}x8u!n1iWqNAYc>3G=Tde zK>p%$Eylg5gpY&}@yN|+J-9<6Ws0+&?Ws4pvw72CLck`XaB?P%NArXss^D~@3Jx|; z$vwD>5j6qKf_QP;S0k>b?tItCRWZ7uJYs%Z#4%`Vg&%6n^LcgFsxil~1>w;K4IM_w zITj1fNy78X-lg|@USMw@mxl1LIL+oA-B9f9d$S+YRn3~2n#(mCSJGT|nB;P5Dy(e_ z!)h*juds%NnhS8M%gztgWnUy%5r)TDJhf#1i{*7@0LF~lEQINdwn?}^+#(BZ!F;1= z_cgyR-GK0Epg7A_<FXp2=0M~J(JsskK!<)Sg7`@$+spt!d>%nSdWIEHW&rup$NSPY z>ZNYns}u$OxZ@FJ7Z-YKQPi%W+GPYDlFy7Ns7Eo%rGjZzfw2l<@l^4sN~w<bsUX-< zXTvV4KT(WFm6)i?%b)gzj^+tSeZn>90oVLpP^iCK^-AnE@iI_yx-46TLGwpPX%9zL z9sV~A#D8O23=B+LhBXt?mYB5hc_@}ru3-Na4gIf7iLTC+#YhQq#(s&030qq%4ba0| zbznEbPv7Xni+D2dm+N^hV1BVU-d@qPX#1Dz9l|Ifum2#NDu3Y!i>^kRwzy>M_d%Fr zV-VFH2P+F4XH9^p$qBKdk4Kf5C|~rtNw!OOH`3ib*-pTdd9})(6GtE-=y}wvWx+-C z)6G2^sv)08ZOmSO#h+`b<u@`pKFK+EJnV^KL2oX<>yvzvlTs%@=yehQ{_#%ywGb%R z7!0`UcoF{m@f!TO#+<}f1y~yd0f+;zZuryVY9VN)1~GKO&07<Ilg}Tok<T?Zq|siR z^#N9p?&{f7L0^smxDU${rt55Yf{5eZ%G$evCZXGhu7LZ1@jiXgs{7t(TJ?>X@48~X zdy<RlCu6$z*addQF7Rzz8E<m|inR{!)nL1J$S+2t7xLWe1~jo7NCU0^M(mA>VN)i$ zcJ~$o-ZIDmAjn~Sn#iq~ZMA2ai{LJz@y@BIyAQuOC)n(#o^iN%5c6C1V$kQOZc3>0 zFQPT7aiaGRkV^Q(J^~R%_7URr<UIId@J$dm2XO|v-m{dGbrYtZCY*X|=iHQl#VPo) z+^$_a&-=J{sNEzM3r0eRq6z9Z1;+GfkFyA+S!CxR7wU{6pozF3?2VYiA~zekaLh)& zlz7^*$s*={ls{eMDakdC*0D|-kAgY@qukiMC(E@c(bH}mr4p<Oz16E^%T*FS-k=UZ z&?$h>?uTYgF*IxJ6$4ITAC5FhX|>0=<gea(sv}hc4Y0=HXs3rCY0w;50#8ZzLy5<d zl&Bg<U@>+Clc1>`*$tj<OcIShKX`Cn$*F!M{<Nf;EylP5Hi`lzc$>C0yjb~CbL-8# z*sF_9`+bgi6ZFqlAHs1wNo9_&0>@V|iRT#A*4)#Gc$O^$1pnl;m5sNI_q1Lk>J9&F zy_t*yZTlR@x@er>T(b=4n%ix)ZBI_87-f2D7WX}~Qj7e)C#tX*3Y^-gvw;HEQVj}} zzo6)8P~Z^5ponFRh&0SN3qoo-z<5M`lv(}uaJ9b*uF;Ty!2LjSZRL?jPxI;Iegigt z>cUcv`lV$^F^1DG&iOe5^v3!|NImb9w80hrBE0PcDC3%*eA>9!B@;S=%u4l5sH`I( zZ0s#j8If&}U76^SNg%*>i>b{ohNBIdzcEdKOS+&qZhr6SNPrm+Y6~RH0GAB*ti`Dk zG|l*zoA3v=KhPv`eD2tSowg(2wkz?BaLG(Y2nH{MPw)4L(N5IKXW-8n9i7S1V{#o; zQRKsW)9j{yu%UcT46EC?7qPu<Yz^5SB0e*~X2|8M!c*vp_SEx5ZhKx#ePuU*U!}(I z{^=Msg`2r4u<i~YRURt$9+ZEC=~6VhOM$7U!-PgBn0f-!WNyJG8x*ldmqKfBwWPOs zrmXgGscLiq3g!YRpOj+KdSBKNbD%ZHmi27vR~jw&H8qwe8ft7Xg{L=Df@h#Ck&#;s zBT=>z#n@9rbfiE1g=zkB4N}|;sa6@3{i6H*S$PirbkiQc!>Ng>Oh)J^KHeTHMV*dv zU^?0LXCyiu4NYR~gnNu9M@5b|v1LU2LIpZ98SN_`Zdi(kpnah!^sxx3Cj`kHN?5xf zm7oH{eaWXNJAN+t96lf=KhDV!SR)ke>6BgyEKFG;35!h9uzaOwUgcRonUNP<%)i5u zj}f#A7|^`nV*DY5Y@aJ3sRMcdC^Z12Lf&+YN>Gl4+XWZPXBdVfI^?H^dseVwgA~WD z*k;&pnRZiQ<YmSwUeV9_l(Z?<y$}A(rCtd)3SsYj(-!!iIQo2b>pjzzJ<_`{yoa8; zC86?<li>-~;v&vO8_4jo;=>LW6$Tb4BY9w)E<~eAJls%>hnU))Zt+0%0#|E6Co@1w z$NtgBpW<3}M|A9tm`qAB6Rfq}er;+Z6^$mcC!yO1^NheJj^R*5GSvW4u|tGjzc#g- z0W^pqlc%~TxR270`+|u!KxmXW8nFR^1oR!AO)Lh~@!c_-biWp^Yu8h3wVn&&PUx}! zh~84ui+vKFSG-CaH+TXfxeW(XPxltCP0sa$9<Y#&weSd3_nFT~+uoY|l|#X=$tO9$ zxRLrZpWtMv0$kf%W#_4lIR7%$B5X&HqLI}M=hKF?&`;<np5}EI@W7-P2PVKK3#5(7 z_ZaXVk;axB8OiW|IN&j~kTjZ=#hmTeQM`ybmXld0^-K~re?^tY5ylg6QQLx;!H1hn z#6v7@UEgEQ1J%6afKUdyJAJqrQ++Y(VLnC_rtq{6DnL5=ld+g?O5wEv#7GaXG6o~r zN?Z0d%nTTLOWDvPuS|%Mmv$1vRhF9X7nuRJ=<w0)?P5|TiqY<iKV{qfG&RzSJ4aGO zuNayL>#FDuv9vP%AuZl`F=^2eM)JYoGCVjuH^B5a*Py7>+HDoy@0n<Zx@*Q!@M3B6 zxJ+G&%hb>v?*!d(oTinkds6q&w}6UZouCMY%h_hi3*WF<&<VmD+L<Pwu*(Xmw|Sn7 z80E}89JPApN@@P{uq2GN`;<+t675X8zxq1!{V=&B-s&SbVH~OpSe)5RMRDy=3|C)= zKTIt{D?xM|pcesp82~3+)h#_2b&=Jx&u6wNB9?aTQXgHZUHfp~u6>A=+UnCi-a^nU zJQfJiW;WQ;slk~u?&aP0jMxk>S9QL)Ya(rix0n(=R~d}W@JiaXmK(10Fg0wj-aOOn zf3#k|w95=IW&L}9^`2Iy8K}f@Xx+zMg7$L>Mtv%`mx?^%X5+aTSG7x_S^uEjay-b* zc2|rdA2R$y45bEcTXG89;FQ!%ZbfGDSs+2SoHm&txWFpXw#MIM3H2T^)fye6^%-aw zXIz4&Sb7uw+&q;doY0498j2?HSQG4t0BA5fKsR)NDWr-XHYJ6PQ3-Z6!Uh6_jS{f2 zk?<SMnzqU=2R2S^?aGFC$_wQdyWAy|4V`dx9wN^B15jOkD_pn2<b9dCKM4-aK*&7m z(>)sY$J~1OQ;%1?k7@}h^V1zYj3{Vw5!z5JbtJ<5HVUV)P#Z_f$_zk5Y<!I2(?eti zSQ`K4qi3{mIXw%Nbe4!$olgEC6^!dIT`|AzXFcyv9kdmEFtvcog9X6~E)Q1lCHPYH zG3}+pHZvY1hVMRi81$UAo%Wns$SuS|^*W;e4Sy~w#^>p%*3+*+)n7wCQM3J|A#61b z5&mt-p{)9$sb9F~_{H#vaN!dZCHX87K23UIwZyQ>my;)OOEN(Tt4JoSmKavu#Om1! zTDszsh5~7kY9hBvPk{^fU&_=U?!=!v%gs1)wFS4E{=Zu<H~py1^K6gwwV4?Ji0dmu zWCj4@p$Os|X)~DtfOsW>Fs&*xz-7&R^^DoZp%TZSzK+2YpX%B%w#Sc2e$H0^IV_4G z?prF&l|hg+(6kGWNWbNAK*3lQwL^pG^#TWvm6RBmQ(5$uT^`IV5KwvN;Wlx?DBR0R z;Uy1pHWz9AX2}FKiz8A`^>T8JQ88JAH4rDP%0Io~36~kZCs+-ahhV?TT)DxhHzfHm z10If<<G?v6-qyx~%nW5qc<0Tw0aNb@z1`y!(}>q0Tm8z}<e{jE&lAb#`FY-~xiE(R z>fn)ad;P(pLJ>p^UdsGk3I%j*LBS!)Z3v8IFmM{!;de>$RmQ$bMW6n(u=E<Zi)UN! zS?;nc#@V`ILhE*!$;oASR>aMvpc_H9LECR5+9`xY^CzV1p&4+URU1A9&~Xt9$7!9! z5p_{*7Gaq^e}Hh2k+z$OT0DS@MrJ>$Ypih0)@JT%x4??N?H}muTS4j2Az&?#`L-N@ z`y*ZsZz%dL^Jr+JTjigM3Ox1n;BKDLnQ|sna}UMU!%=PUr|q@eC#h?1fcu8KWY2`! z>Sh69FWKZ`>@3ITk!V6kPK7Od<bppPMb$?k)}Ly&GzL5~{#YFO9E+U@<{_grgJY#F z$*D9X$X^W8u{cmVmPDi!!)GjYn5;Je7d|Q}aDT$`cbp4I9EoN(J_#|esXe{IbIy54 zZ1UJNn|%z0S#|y-qV&*({z<rsyitw*?9*|rRO4ik8F;{^Y>T)c;8>*k6|}M9UKH>( zmfvFu9sTt2kJ*eR<Sy|%G^E*gs(H!DcG8)gdXfe*@5C#IZ&V&{qO|gk0cL|T%m()n z3=R4|K3WtV_UQ?p5_f0qJK;~K?glka9zetNQ>V-1nbg<%l$WrrUD6pzJG(=zDP}C1 z!97<u2oN`#9B?y7;P<e65+Wbs$ruKFk^G*3-^0d_&;%K2ulfd0r8)37hlHdQH&xMk zN`d5qq^)?*6&$*KKhxAHorD#qvjKW`d(-jT7sFF*l+{&<tn+RH%uPeg5GOP>hF!s@ z5|Xh_6*8`vFh?i`B&PtU1Mlf)7$R7*m8wpE$DhCV1#)y?2`BQD?&6Uj#(Z}u!(Wrt zcpNXcrD-d@Lzy(-6pmAULXNa&o~?5G?7^vcI-M1|D73Ng84H#$@i2Td--d8!gV`kV z%eu;C2<6skpz)}L7>D{J#*RNaQ#4{y<SCnxC{0GH7U=ga{)oOHsnFJLz|ho7RXA(H zFaSgWTP$^qWD5)mEpFg&qHeeo8N71>8VEd+#`IK^Fe6PD)#A@6r9b10SY1zEp+a&4 zh`1rU5`W!Pi_0-+UrtD<W)RZpnh<#g>h7w=wHSo2y&ky|)G)lk1idZ)7)Sg10!tU% zo#>Zn2!?gj+Y&f$JN886=f?i{GX#2)Ecy6P-|bV1O!riD(NoU>aEE?y^}AKn;%_ZS zKgE`5nuEppc#>TD0E~MjN~QHJiT->ADF(|hK39cx6%x#H7!rINw;Gh>B|Iah4)R(@ zZs|5e;lQK_Q)WOEqM!@qOpXxVHim#1*gkI>k4l_``Zx*O@KS8Uqj!uZacMk>&;NDB z^MCv4+aKJ+mGC|4`$&`icQBTylV0YM*1n8{_Vs!S7<&REZUUC5CB)bh7_sKY6;5J| zFIaWNolHPI&=7hEZ<u~wPd!Ct{il!!dBb$hf;K-r(&s8b4F$&m?zjgznj+nUsS2j6 zP;dBj;c@>o3A0%1SaC*voZ?fiuU&{r5JpXvcVe*`jedHUCn^?2MzSN#2-Z^VYHjcp zMf%_I>L9MO1wK_ur!8sNqgCS;K-_ym5Az)sOn`ZChD-<^#)}~8;ow;tusK+zB<kOw znr~6@I}Fz-aTo;GXrk(3Q8B=vg3F=G;0Uar&;x&lfiyk@j`+`nEF~o5-GnSPkdzO& zUo4*-Hct2>{tP2CouSV5jKb#`TvQ2ep@n#pDy8#$(KJI#Z&{2#zoq6-h3~E4C2Hlx z3ewTxcpXc}x@vh5|6Wv#3ivHGHIV8H9%Fqx762Pwo(|rp@BQE)eFyo{RVOuA&Eh@d zS?VQ)6c)XH$Fr1^I(NFd{0{z|jwkQ%tpWykF25arrYB)0k0WB(f1LrVZ4!7tuEI!! z{>4*ho;r29D!UbbE5|eg$}*hb5n(rru%3bQek>CWCI46VecrgO{A3vW`Y;GT&@Zr= zn3-C_&GM4eYKE^)y+_}BDd<GTM&>vQJjDnU#SR5J_e?^^M`zN@Alq5e^mJ*^9cNPX z*BN6D$iiwe?_G3;<#!;8j|4sw;?N)YoX85}WK`6(6H&r2jf{g`h$&M`DZg0COq9tp z&+u*IF&l*9G_H;JdC<M!n-EN+Z(0DW!fuJBAMogPs?Bt@KRGGI?=)b=H^xgG5~a02 zIhKVsHZ_SwI4$)Ieb0~=7Gbz(fk|55A<-_xYNg|lI)<E1y~hq~Dsd`sor<kZPZ<0h zX6tMiWkx&+A3__#+!1EMRxe(j$y#Fq;^=~?H=5uW^3yQ<p2mHXLyp=UmimBQ`2+Md zAV<JUxOI<!x7BEloCp}r_o;FJBE5!BjP_A$^j>>QZZBRSLd^KAXZb2?AN6e3LNbIj z3&EPrW{f@*$<+000K232f6B6$zX8i-j%BPPgyk~FG6IBUS_=@C5imOaK13PnePMaH zXBjcVGG5{lmJwrFMvSm*H#$*$T#q4HSl(k;&d5!76SXs*8{GpNIsRzWABG6}2jezF zH#zwdHcN249jrzv!ttj5L>#UlV%4U5dlYha?m~3G`;!n;;)YbPgTj4m%Q(AjK@K6l z?xTk3NwhgVOTPk~@UP}WKJhN9@9-$AgRAPr!MOds)m=X$IljYTt6CgS<B?iAq9MIf zbIQmamN=JSn0_b;i}Sr<asF*&v7!&M_$5d0FM~&MZw~%P)h4Q1Z&IIt+Soq$j06!x zjN}VOz43w(iv$rY61$4iKc!qLHU+;;Phy$5qRRN{LJwID&AS?8?Y*Iny#k9=keHU5 zN8Y|k%_K`RgE?Rcl;(gNiQl9?BX8fU@rJki({u3Has~nC$shzN4G8hJg&2fK^ASpA zpoB#ftZ54+v@cRZmjHl}Dzl^zBc$A5R0R>>?`g311lE;YL9GN<AQwz{6<Og$Xb5-7 za^@(i|KiK!9F*QUS4pNHz$74!3g|Z=_+<rS1)cEc9hK|>2EuZi>S)pT3=g+nG#JL7 zYQ4Ce<G96F_w=NsxnGY9V|_5({|ltx7_RO|LBp{I_cQ5;C8bk8;gdH9FYhHk<@mmX zdrrs#Qm=A+-<Pt}_;R!_RNe={<>^TH3V6=`TI#aP2tjw`+%<(C$3BE74^<_Yqir zJLZ`eto+tmssS=C3-ODMB@5}aJ(R-hd0<tJ`l^h9dK_#N3spQ)u(%Igp|)%sWu}2T z)>|81sB)j{y~T+z$9ofCFQvl%Hr63S!EEpxiA=CM8j&;kACE$dXOulK$Vk=ML^%;y zJXIGH727K4;}@Iks6+=$K^>gZC$2#k;~MlLj`%`9{KHZMc%q+4jh_Xnw=Z#6WaK&n zqvsh9a=%z^-twj$>(`C{bsp4o!$HkH<A0PZ6TC$g`<a~%(C+li@wB|zxoGz1QXp~- z&Vb6)8gq4TX=)Rj%d2?G)LijfAN<O`xYo4uP3mV_^oalT8J=C@4clQTXh)r?n`Hg@ zkKhxI8v6oX6_FWQzu+0EnK}(RJ?brm?;&w0Ge*e}9DZ&KtN|g>P`sZ_GYF?z9`LpX z-mi)Wa77yTLx&eK1rN_Py2;I<B`*)BXB0LrOGDga${6A<S5cIH;qu{AmPbC}g!ZWI zRcw0APdE9^IP8lWy-+Z{@K(4Nqek&!uai+@2iU~?#1OQ_GN5hzoe3-u=LU<p3|Sn! zO!1^^vk}s^*w3^jQY+Q0gs_`x+Y5ybj*!|~@XVmt-K3sDmcn~%!5t;TNNDOWktno! z?!Z04=T=6wC#i3?6pANaNTM&#g!qh$&aYCKwp<g_>pg_*6hGm_^eb;^^_F7M*ZX*( z@jXV&DFevfzib4O2_*RG?_tHP3hWQ{RPU$0#K*L~D1HN%3Gb(N;A4iiN?AD;S-=SB zLXQQ%7#|(4kYF)3-xg3404wdi3CVtVjE${{v}j7sn~<!B*Vx#`DZGRg|7jP4msa!p zh7(n@q`5_iH&=7A`+84KUbS&E2IyuP5P2d3Zd64~qs9f}o*odx#v*j2U>eO8Vd6*Q zvbOETo^5A8s^#0*4pIPw)Gi2WS3%!9agF_KwA-^g1UGUUod{do6cGtaDWNMiyBSHW zM!%`iHr_O=W~|=#>UmV$nwPzZuXi9|QTB3*f0kE!wVLC{p)z0njz^fC?4h#vV~wI_ z>aVl#`5F(2AZ&X0K?vWc;rIFYe4jt60D+?l{#At5miE~6Opi!}oQFMymDd~P>K*-C zD2~C|c&HMZuh|bn59W<>Q<W)w&j&6;bvVV=X@?6^xEVXc-i&S6KEMCg@+d&)nZcWX z`4WQpnXetS5Ck1QiO}b5aRhLpp{nt9qrdZL{Shi1b;6kv=8B$bgc^>ej#``Ej7yVh zo8Bhx8K@_+pUx&*PiJq>M)ahdsX6pc&3PsV-q&;2it5PP+(lFgT9mgekFi_wK9=vt zdA~CF*Sx`UFf%LvwS0KL&tFi0&(?z7{0uJ~RVb%0qY5V#!oR8TXMC(6+-A+><7Z#K zhoc)_A#3)pQlDb!v%XwCqF3|jmzTm}`S=XWpN$uN5j;EppY(s7{}Sw6sc#Eb;nEEj z;Ndh|=+(h4#%P>Ho%X&frHNeCzMk`G4kxBVqRLDZM<OQBSNU|spm57vEQ+8qxR27< zw85B(;xZP{fH#u-ydlrK<1iH@QJ5ep>;$1}lL@S$gvu_T_gpYHLO;sIJegxP>uY=s zUx3)>)62N@Uzarq+QF(KcP5e;9ZkXx^{}l#b78oYv-8sMbH4JkBWGxCwA=-5-Pc2l zE;ps2Pp22Lg)B<HKr1e*vkvh6Q!t6vrW<}}vP{GAP=5Fe03L)+E&(#5{{qe=2ApO5 z^dCG5r%bl8Ts3Tr;h}L;ES`2JD=6NmNDao2j+nuzkyx03czBXcSP+Dmq~ZZA)VLp6 zgg4t&97_j3{j#UrCUpXK!uoNI?;&v*O&Dbc<kg>;3^y>4q4&$sFKJE5?D@!*%r(gR zbZCX)^IWjeEP_^ZqjW&Quu5+{4s*X$u1yS9A;XBJrsh9VmzmUMSVAFnnMqw{QoCnx z9f}MLtx+khuL*7mAa+YZMY|L#+9Lz;lOJ*H;}(k$2VkHE5Zlt&&B7lcG`VVGv#%1g zHMBapnFGp}<Y)YRmAs#=dTr_*t{gu|4dE_p8Sl)x4V6CICzo0J80;~xxI?aKf#d6Z zB$Z@#q;|5NG5!42h0Do6xcp;NuzA5<^8>WQC;*5uyl%obnb4i~8iz`>Lc3~pikUA? z>4N^-#aKX9UBwjcUk{x)G7`gZEfYgBb4o|#prf&o%ETqAI}>9AfpuSBOOM9<EelON z3vy<6gkj+bXkD;FCBx=6J{Q(N!}DEwng(@0UG%+is)Ss$#3LC{txZleXI2pA@kK2M z?7y*89l&G<Dll9pX^@GDw0K*p24ZJua`l*7KJKsqJNQl)<!s^WmO4(CJ#sp9wI7V1 zVmYXP)B}}z{eiW=oO0oKlwz`v<40DMMDr})=SN16!_l%Y?2bR(djikLNWyV*QECg9 zghl|FN%(u8UKTaDKi3mhDy;dDU+5c{!r?FsBc`xg6ibK~+a!1&8UqI=2Oq$JBkl)0 zT2x;PPc?9q!Ohmo=aHo;!W4k6<?}D&W-a8u))C0`^BnO-C(uFEO7*YHEQpLsxAN&^ z(^SaZKFn)@o$y-ADs0HGaSmP5+N%B8xDy%+5oFw2qY4}p*JOBRL|EX4898{+QmJKf z@Tm2=dq{f2cY*?#8=`A8JVx53!5WV$F;QsV*h#%()41lX$9g0jx0_~M9F9e0UK}=b zb<qUJzy(Nq0kmq0v0V9p?GJ0Z4}yCsp}SX&KI9TgM#>U(!Ru@%uc!7|J%D{Fyr~AI z+(1&AjlI;Fe#ld#tfcu0w$NRC>8Mn#PeC3bL(h*B4O`7jxplK?pmN&UU;06d@Zm<~ zG#+B6o(h{V-%V9Mz)n@(FKsGZY2k}Z^?9$sj|%l6W_9DejsY}>M7b+cxx#*b5{8cW zi$yfV#M%%MMsAZ4Wh`Zs0bszr<_>h2ZxO;oU5P=R(2YG2_TJi5h`ancKQ?4UcTq>2 zg?%TYyC8M=XPdGSs7F7&r^0ybOEedu+Aq4)w1P|JITEAWBtSZMpabTNQSUeqmdb?% zBafz#Q+r_tG=dK2TE^nBNLSdNrJN3%TWnT`CGN#--xFf7hN>>|M6hj9jhY%Zn?jG= z0N|FVhmZl05EyU)!I_FbT{8v&D}&}nr)qpDaM;y+1R*_|5WoQlR|$eBp=W$<9QI(O z7joRIw_&Nbs3#7!bHq@tsLaMXBM~mVR+w&M5ZS*m7<rHdsv4?{h#_d`eJeb-3S#&K zF{cUh(@Q)@GTV1RU3Tn=KY#xM-P=JW^l}f@3bk=gDgIo2BmPXq&E=>mwf@4Szz`MQ zm^izBNGqxhTj%sIoS3w}D{t~KDBkc0n*!SedRJRA*1O|wgAY~@xj2lxC|0ipr2D+@ zsLIQ2T=5s1i?6Et)$m;1S4#Nzl3)^)m&44(SJj<5@YgX3R|uX8nn8>XX8<S=m#U-K zn@%xzZQ<&E6`Co3`gYIM*_htim&*DooN7Zc_#2-8&0jr#g^9JR2+W$j)GK(Q%e0q& zBnMGOGYDsaCg43<XYPvUa3}LjdveS?<YGP=xj5XHjiZtQYG3w8Meu)AG_j8OC)U|s z7yj*azp5+#uj+nV*I@j%?ql^J0AVjM?L5w{e%G^iGz#MAD<MH1p!z{@1S^uMag=S1 z3m&2fe1Li+Yf%<TXHnKhKA5^O`x9=tKgs@@hTd1@zgZWbAL~}sL)me{)z7UogkZ5a zC?A``;%5Qhjf_)I=nFhhE7nGvzwz&IJvN(T$@=UAvO(UM_ii2fhtwTi*J3at^lv=# z1x#1KD}Se-Eh6-NsX>%ul9NMoZGvKX$D<2KFUF^E_zK-NdY{9S#Qcs67KvKL#_YYq z&fe@nIcQyjayH4<dvT3DH3+t+#sMl)9jGx70w(ov&CN9#I;_^nTKv9Q_s6>UO73-$ z&o#9!H>I{==9Cx|+nAS)3)kGx<PL8Jl+FHZ+T8~(%8tHzfD6Fgc$803Ki6(!5lD~l z-YAB!t|coHuecYjBOT7S$n2mT_hJ&c;Z@6)rA?o{)dh-C>iO=T4CeGwNDUTX6H7sx zgA$o7E)1<Qm>7$-`vb2Vuh@^XPN06+qaHzQqxGI#e3s<Bn}^S<`M+VlR?k#hj29g3 z`0kU!5lej$I>kjJu%Sht0TTA1J>i~Q@e`XkUd?|3M<;-IqHr&J)!w4tio`DzdRf$Z ztz}guUID`K1JqC9+#GRK<c<K!@dG>)dcNnMJ6)V?enct2#KL(+_&iwcv1(GK23{}p zz-a=1qu+yA3q5Xh;TZ4%$E0f0A=nxo!~bGtk||jmk!1D&b#LJwWCf0~)utlJ>{ybO zK8dijGV7ldy$vbcScuQaYLm>Z7|YV@9#~k~nY9}D#|==w7CZ<1a15<B2KdLt@UQhr za+r&;;VVco0i{$h0ZHJfs5SygCPYb4Q}6mj)aV>L03+OD6eS!3^BzX+z%era8{A=o z<E5h2C=Q6{tLV{jOvW@U@l7PY&oN@c@p<;HY^;iQWfMRA20t7l^EU!N92*Nh<?80s z0@8z@^nPcE*WY=*Md7Xoim-ev_Y!0I03;+Z;aG~3cH~yzc9Ghh_ci644;HL0z-M*A zM$(y4G$&Kc=~_>$P#Uo$8{LX=tsE+<c=#QqgAaMfXJr0B%H9SREC$1<^TpsCe&L%l zF@6{*^?h#`%rHF6p{Q=NqP~d%iH2vuO5hn*6xyt%3A->BwiucT9I}+{VY<TOse{$( z23R-oM%LekU?O{fny8GK^~G{_C8KXfZ>*6z8Cni_44dB%iuM-aTLl!lAc629jFH~& zUu!Z^i%Bpbc|W3!JT{}xoz6bDSEuluR5Y&$-zuO$fI#>V#?X1q(?Jr@@&1TTyt}qx zcYQdE8aR8=Td6!_xrsr60D<r!jG^<Crz1)`q4!60;(h!~+`+=5zbSm*Ll?)_(TPEU z0D<r!jG;5$(y7TL$dC6&bm9ZUS<}@@yegc+cQHl=d>x$_6bKLqAHo<qxB2`a3Fvr# zL?=F`oHJeR%$gMPS?4K*&lQ^2lG(3y3<?AYgb!g1onD^KIYP(#JsseP4@Kvjp(uqf zM<RYX5aDZcmI)7H9J%lzG(H42q|fuDkrr9>eu)N}N`nHrJV;a>j$Wn00y`Dr>S$Q* z-4MAdOpL!5iF7A=SP-b>CB0~(YMnX>VyB$BIrti0VsXeEqfF*L@$CeV$ei~xT7`9N z-{&n?kc@i~dwgbW+zV8f*jRhdGVTQ>j!@Caf}N#0?v$YKO%VCDm$gQCyG@Q`Ba(Ko za^F^kYcom5y&%2Q##&{N^coPv&)h!=Yg=z^V1_U%?uFQ;&p!-sf`ee(??%0hz|<)$ zHly1ic^YVwQ=zJ}Qs>GDeQqzfdx;_Z@}NI5Sx%d?tQlF+{;v}vi$7aBR**8xdQUWk z*Ux$}$CKUXt=C;vMq{~VrOBpZsi?WxYq+eRSz`&$RAmZD=r30|5S==aIzum~_#Ml3 zbt1~f#Ad)@5941bdzo7t0-KihlWo0qnHCxFenfjz?N&OH1xUO&n9Nc7-khy@`0T7R z9(x^26gjB<ii3qJMwxmVidpy!&Du^=p(AU)zyn|TDSeIy#kCx@C2LBE&(<0+1n9QO z`Z^EtK4qHEXs87CRPWUIxQ1D>sc^D|fEYA9%IZ}oFi{&C_^V&@I0j)Af(6_r9O;N- zd-X4>b58%I`mh?AE4uG|8d%20YUfE<z!%5T>MJD4`s!P%%ksx$24ouhMF_8V9aK|z z$T6Y%ECHWYeQtGBItus#3kJETn`~pn%c*#A@KM0;ioC6Pu_-wQC6(|I_oRd|6?vOo z4>z<^viBo8B}~SurWHpbRt>+ehTB6oB4t!yD-e+S>m@LTPIpVEK9e9n-XGD4>a{he z{Jp4Hep$0->L)v~+HVay1j0vZpRFl8#nNfaByqo`6KfhRIN{HQwy2r#fjeq8Er66! zhWYvyX&piWsrOr?DWzR|g6cEp_Z@nO%=6=FjH_Yhd2HS?pg@2?_z=d>`S~?q$FG5% z=e^%CA8(b%aDJbtU(ozYlazTL*~owb0RrJe7(-`^rPGj01LVj1U4AeP`j*_9^ZP13 z<$$lWV@%p?8o0C&g8~5p;X@chXQ8Fjm`elD@&1TTtod_RXZz=O0vf)V-GxpJ3IwE+ z^b#0D=Rr%SHj{vk_ahnurjue&hXmdeUj__+lGr#=YE4cy1D8s4#lY9~G7Ku0K|Md& z6*}@bM8!(o+?NwoG^WxMd<xMVI1Z;6xc?c+lk`U(fTt}DD6s2z3I1F{fhB%szQCn; z4`);(4$JAAxOsR|H$3Ht>FTf+dEQ66d@YVGwEnO?02p-aX|V)E%)05}k;?9-FzDMJ zqFo$B$^fmW`Dk9#*3Cu88t$~A6pKL$=)6`fz<C*qxz>3Z3*o~-o7M^+;$Gp&|Isr( zHf{yIr>?5-07X;>f+6-I{1EjW4^_WQA4r?xKaidWjqY&k^(GZ$RaK#CisEl7w|eJ6 z&3o*C2tH%L^-0AMW2Gf#^_EX?gZ4yneUQa#TW8?X*7{%z)t<K)_Bum?r4FQh?1A*N z)KYvF>cc+l6AgBY)x4~ESuQN%#f8|x)o~N!<4*4HNR{6M>4!AG4{6YWq)zV;@7S!T zM4a^$XxIvMnE2HVJ~3XEXwB5E-+`>-mvWp4{u63!aJ&_K4n0=&c~F7r3I2uY9mcT$ z5+8;{4AW<E>(_m~iHQ1Ml=J+Ia+Vvo78-h_9vlats@_&$#s+t*-ovcy(Z7j5PAMko z@JL$ttO(7<asjaM>&Q^W0Cga>1{s25bMPGmoN&xeZ$eJscpORybj0yj42X)|_C3;x zF?tb;>!RsEx@dr!9y}?P@J_H6I1#Wmy)R9Ged&QBei^9efd(SxAv28lO)|A8gXp3G zro%1UX7U7CDnZBK1|+^NpBZ0$rO$LeiYos)G^guE8UfhK)NjV|aPS1!oG}1~vPUBC zaE#=8G{tJ4dN7U8uJkT&JtKpc8HSfQF<tIy6$kzC9$WFZ$t)z(&ES4K^;yb$1_z_i zEo{tl!MBm;BQ-EBY2Qk}g}z}xqJnoJak3e1{gCJ3WaRhcw<%yBPSurO7<E@8zf%U_ zwYhKT{|1(~#6K|*gX1r#705l}SE$WwA)6Idp5T8z{XAx)hzm1SJiXOWK9zGp1`}up zk9js)15@jNkd5D*bpIa1#)lN{gRS5nTu9BK27D%wIMx_OAS(qj*kpl)7~&{3I7$tU zs)skjpnk#gB?rz+&3g13QD4Tw^i60V%fj?PYAMPFAyd;+QTM|$>Ru#|m>0U*62L`6 zWO8U~Dh1?rP3a0GPLYkZ;ZiC)lOR4MhtGl3U>+8eRI)5q%uWjKalPfaZ-Hic!88uB zZ}XaVvHBo6o`pG|H<*fHOdeOIiX&9y%dSCx_Ba}Y=DYY8qe)qK6>y~nE-G1TPBx|6 z_#$YEZNb4LZUTtXO=e7~iLu8>7yC5aTkU|wc?`S|$hWoK8kjP@NT<T<EZ>|HvG0w0 zu@Z5Okt-3zx@j?CRCnAU&L=22TImNZDU~=}&-k=0vaGJW#<~uHkg@j4Yxp@N4sGvB zn6;4_($9OW%-F@9nXN?lj0=_NC49%8|7Dr;zsQU8zt~T2@P}=uU}isM250se7)H%R z{$wzdGyBZ+YrM<;T6!AK529Zzwb<Oi+idEznOp>vOgD*2B#{KTWcHR&ENyd4<jrA4 zwHQ`Zg)%1XC#jELtbPRpNR5D*>0dcW{t6x>zzqgGW(-VY!ul+se~2<9YM32+vOjD} zeImz7LxY)t1kZ#LkkR~K%)6dtcvs<JWda`Nr8eC91W5s1g$rWh_=Z|zw1l4oQ9}~7 zjDwF4Ox_gQ6KEw=&fSS|iH6Pkw83gng?Zk`rC(Uh`n$D}rC_Z_acG)a$b^41IoE}l z6wJ8Hh59W|mujD?diC^Oi4#Gx`ej*kklJOpXWey|I5A+LbRt$&9nY50tZvhMT%u{% zr=hCV==Y+K&F~#d^cLB?hd)`b748&#Xo><Y6Xbj>7PMrW%iM&%!m~}oB_jeHcy_{h z-y^K=UC_`2VjN&OD0W0#I!J$H5Zg;I>tbGyxOxWSFH+w@Is<E@81?W_MtT`<J^`_V zvWO>HjuVJQmtO1<Q<n<duCwv98eFPwpB2~fB1?Kh17QHNMcCr$ss<;Y;u*wKxliY! zonkNYbnbcvtk3<JMy)^2{YL{45SZ-5QV*jQ|6$4XOor|w@FfB-0R}$ySD)6<5gvg9 zu^Hv+m7LFv<A<CLP!~qX`!&bZ634V!_tX~0%Gw)wc3rMMs`F+&aeP(pgZgwZyJ**P zgW8?l^DA!si_hgf*=%eTxvO*eU7fozS31X!`9I3Z?37ynl;zTgwN}<9z{=XM$z$K@ zr`o^PR=K_ROjp0w9xG=e57r%3k07J!jh9!Y)tvf+8Zcl`gHa6x>8J(|Fu=DR>2=cg zV!2;~6R*tN-^-)MjNA`8B=_riWM8hns<%pVuh!SM#b656Qeul`n~lm^6eZU15Rb); z&ks5GvVK|A_)M!c2!c)IdLwNyd{k$BU3^FcACf@b2W};siFkz^hp$M!$${|A<PS*^ zRT4Xk<Nz@7OB^f_+kD3RHo(4A_aUxX9?E%^J1*pdRhLd1P<|a@=Bf$|6p_`1`V*Ar z@m?^gJ(L_wLBwEvj}FQ)oZO>DBsf{mlGXDpy%zgCwKi*gR>0Rp{)NMOfbY%zDO<pQ z${q#rqZ(9mQB8bauX$fBeD13?rxp_Jto1YAQ&vOk%&LRW#Cl7h!=RSbdzWex{%6=s z>4uG5Q-@4hRsRBu_#x$LYd9FEjBxC)J{NL5IF{9zQBxcr*W81KkB|ek9zfN@F{18v z)cBBcY2d8X_&?pVi6bCG_~W$q*GVnQe>p$Mo{7g}3SKObSK`(cY%z|51%sgGk9Xtd z6wWh_e->^wjxVe2t`=nf1cjmMBdW`M;qs&B`09e}QytL)G+LCwRW?Lw8*t$s2ZC|W z{#XjOB+wLZasZ;E++Yk^|Ngtx@SLa6_u*KYv)(vn)O;6Zfsh?F-#}TwF|76!^nEyH z)p^-Co~t(ktsfzi>d!Pch*C*?wI{&!=KeZ^*zm|oN?+`w8eoR}vd)CMPRbjP!<s{7 zVU#lfy(JgAmru%7%X@XcfP@7o!;_CTCEt>m;@;jAQLMMAI9Oxsj(Y_y3nunY-{>34 zB5twD)yQzX86IX;-wZ)6LcXXz8;u2yduu*~0)pd-noEu2wVGcV$L^Yw&A9n^ttH0s zew}Y++_Y5VL{To8WKo`mEQ?ym!ePk5VaUQ^$iiXB!ePk5VaUQ^$nL+}k^TMrnhid7 z6MGzWI1F_-40SjRbvO)lI1F_-40SjRbvO+5J^umq*|efQ8!xK{<uD<_+`~`m_>eX} zq>K;g;zO$VkS0E)h!5#S-9J{Zm5LZmOGrRXk0g2<61@$H-iAbPLjr05B!SnvNCLw& zNth-XuR}e^HykNQ=$)6UP1Wy*u~fCc#z<H;Rg-Hz$<G4l7~%6#&7mB{Ce@makE<Q& zr24Z=R8S7@sqW93#siJ#YrKvF4fQiI_EewO-d`K5j_fFTEX%Pr^)!V9PqT1&cqKW< z{e9-V*yJ3#!z^3~!dSS)Cg-qG&72pToa3G!b8ZzBgkn6;L0<?D)P2d|7JN5Vf2f8y z_SYCuOB|DGJueQ&DVt$NQ`94Trez|U#ufB;SwCgrGlJsfGPSPym>T%(sqrf{wtlTK zm>OH7YtH27>6#n(dAH_4en!=r0Znf8a-Gd}-0(ueDP7RmjnYI>1IFg?iZ68uI;mmR zUW8hbda3q1)CuQL7Bcwidwr^!0IYc)O8!2pZ8oxKI#q+F7cHb(|H7h`@L}Q%7ueij zcEhqL!;3-5Rj?hD;$G|#9h0)YOoWFWW_ZTaf^*;HiZYQf>ly80%o$)cND44PhyP>Y zFX9v)_oC4z!@)LIj#g9QRn{wdTtWEvOz&NX8`8ojOJehpuKb!KyUmYI-I9lj3>O|{ zSp-RVKe67!;l+hc=Oqmc!F6rXB-j|48?*%dnkB3fk8}01rC=XbVz%M9&1{8J`d1Ip zJ14kclPw4}yZRf|V}6#shYSWx1a98i@<EB-7$um7qeSJHG82Poq;d?N31S+YHdc;- zMG3~pfPg~K`Au92$uQ6fjpKpp3#y}4n4hlW0eERF-4M!6W2!&H$Es4uQ!Kh8l8&i9 zhe?sC^K3Glt7dxTMy-p5?9kEys%f4Q?dcwif-QsG1uyNP4;Ah#iuVj8(yeS|;|3}j zE5e?73vZ<GmdTe;afgvX7@vXVbYAN=kA8Vt2|d^obA~xzX418(@gh(iAKcGP+Wjzy z%Vptq-g@e!MivdOW|s!h$}*0Nx5!k3BheI&Y$*z&El;HtOLabw7Xvx4;FJbf?6{=s zH+98-IAVUtdkB{uQC`SiJO*oS#@JCjp-=RwxU~2%?=u{CsL%3-<g=Be!qIkx(Tois z?!^j&sQ3B2HvrKUg<ljpqVbsCCdL!Z_T^2Ya|;*pdf&prcSU0+6)wyq8hLxm(5ct? z<c&adER@MWl!IzUOm7q8iEj6)Nc5Ndp;T!bTJR{F6|(kmCeg@i5a?@tLA7Kxw(Kc) z6)4Tn6MdAqsDlPmcpjRgl+b)1S*NJqNfTAS))Q4zcOSd{(e~yAhAU#KOyoqIh7B-h zW0Xjo*e>Tr=cfUVJnv&{yX!Nc*+P^0Lr<O+o5wjb`ssenT$_;_Qb%JKeRLUQspaZm z)?j94V(tR$2l1XbI%vF|e&^B3&Z;i92dm0e-R2=IQ1FU4UT*szB>$gBaB6~x^|IT5 zV`AO{=t!<AM|IH<ocX8o{n!c_5%vXX&VwhMBHM@3%Oq$}@*ZPQbE1AgZX?@V==MGf zquDVAhA&V<;`Q9mp>}9$;Cv6!NDO5Bk~Ig*+Qrz-0EdpnVu{1JsB?7pDcNLpW_`;= z{kK_@dCL_|<{UfNw-9Xc0D~fyM?Kl2lEHBwR@h_9)i3xbjxp)kkYOWaZu+0bu`&IV zaqP(%N&V7tP>jkfhL5OFvIZ3#1{E9z6&wZ?90nCipFiBf^;Hl<Cl(c{ii$??ev-)H zFv#IB$l)-^;V{VIFv$7zeAS5e@m?zt;X^d|5D7j+fe#V*vNycxe`OZiqdZC2V$Sns zW6ccTi!`f)K=qR~t>&rgMLw~#Zki%`qg;J}f8yA!?m-D7<i7ON#_=pJyfZ|~C(4F? z(IcAAbCCJL*FjK@<>c4FMy}o8!#{lfr3O<YU^w#zg^Kh$_(&T=E8E=Mbu_sHiCgv< zxPoOE!woIY>CzeWK2J+dvT4q0O1XLv|HSc(TE+&nOszKlH`Q0h@hy}I2vM2$bspd6 zW`iRS^LBzkb{-{Rqp}MB#POcmV;p<cB%ngn)bz{ZFgRlst0Sx&x(ji@TBaW0i5!M= zAcl`<@gY)th!P(nw3DxX*fT~HU*`NoL1!*Wr81ghSEbsbf~9rX-9n)2WtQhw?h}3r ze!|R(Vw7Lh45Her!I8Vhmna8p55FdO7o^&VT*J>=6bI{39IQ!kurBF9ZHB&4fmD#j zn$@AlN->;$gsEm(zd}jCX3;MH;$9?lc@W?r{LyAf)}zRR?qQKZ3mP*@T}T{f+c7JO zshQm`p~uZH=bMH#>n7!vvx|js2Wo)e^*mD|U^xEM?H@2+WlSv3;kIoK4AdIY>r=^x zxJ7sfLVpu5Gr&2N->ym07z*55Q^mNOT8t+v1qH;gPbG0D2nQ1e1p)*GM&%$JVQDk7 z(N9-Y7!L);T~&@;&AZT$zwipQpDV5rk4>S+cyP|;1w2P-*8_#XpMK0o%7uX3M&@$i z8#cIZ-d!-Q(GUOm=sZ(E9KBP%5J&d_`5sR~))5yUWCGwB(ebpBF+RP{p4zNS59JPZ zXpJXpfX$LBkai|g#C5JBu8Sc!#`fUK{B%=2aFA4rGa(@d<Gt(BPx3ty{xUf4ZV**O zhy><8_@nRrmw{4=6HuThUWz}(f5M+X!7_diTt41{c>$BuB=rb;`XlN~4(9))5j+_D z)H7)(WpMa3?W8OUw@}VIK6?QTPt1gb4IoeDyh*9=n>m|u(4xP}nM~pD<lIMc5w|XH zAa5KD%paMLxS9D+Q5oQ={8t&cJ^vtmPZYesdLCZ*L?Ld5;=~9)UF}Q9a$#^IHsFOc z2c<@(S8>n6VO3{)h{MyjCysA1T^+usde*p#at*g6jv*1{jh&EoVItFqL~{J72Ljk< zlK{3$|G`h6=^2o%_iMECu#J;NZ;aX7XrJSStoK=3?}z{5qU&Gb11z+!d2Oq=8kMt% zpG7%qaxh%2$r;Q-dyFR{y;Vit6yDa@o<EG&H1-!v<;|EeMZe-^jQX|OC~U3NsOnSf z9?i3=SAAvN=2h`uf>Er^QGEEK8}70_%-VdIHUqoCW*}5?>{|Z`pNim$+RakFRfJ<F zy!RVJqh2(nOMw36>p1c0srlSl%}*`l`z=HDR1%-6A0zR{c%{M;|HP-tBwl5B_}-qX ziJMTgi4MM@%Pc#C>JH`VAK|Z98Nx9mdj+K9aD0?I5bISqzR#P4V<9+36s*VH6*$%x zY+`HNRPZn^3(;TrlQ=*lJa3nw)Yy)>`Y=zAo4=r0>K0s5Nr&TYut*s)y_jlVw6WBB zf+QvGMcVsz+uWcpK(-L~B6hdOEU|GfFgLaQr85O9QFstmOgHOe2THAQOvPxlm|?@o zmUun6ARf;D*6@M?A*a>soqoomH0Imdz~-7QhU=W9KGU`jmFTHwOuY`XHtdZ~OF8#! zSm}4}jj8XQyUO(F?@WphQ{lq|ruQF03*)oE_B60~FpaQsUU>+t%>9HG2XTvoDWZwN zr0VK(BhB-C^uOJ(D~r!qHt^msYW9IMNM@@I6TDBv>%3nkf2P>rXI{bX0!^R?*e@PP z&7tpw6fBW(`VJqpWr^J!S0fGuZz`bR<6g|NgDe3m&jWa}qZbUwqq0e*0N9Q=1mdrr z9L!r~g>ERN(gqHE-PlX7`{_OP-BMQ!9736<6tB&`WS12$;kC}pIX{ALi}}0l5UwGH z0KN{U(4f#tyWl?lSnSYi*MJq;<T}Ev1E$}D5oYu?{@nEl4%|I1$6smG7y#P%xKqS1 zg1TdneY}t6>SMMNBEV*-k7h@~(ok=k*EkX|1PsDDOqF}x{3!J)m^27chRgxNO&$6& z&qyuc@6rQ*$}X3V61v2dpE2{{hE3GF4*^~olVe#|V3?Vg?;)|MoF12>LhMN=auzE# zIX%sV7OiS<1hUqn7hJtA_qlUbjx;m;75v&5C2IFYHv8Uc7H+pb$4oyLdqig!19m09 zvrXbV8V7Ra5#h|h+5}CbiM+USJvhFesIi{Bbv_%{e1jVPC6v~cq9+Mz1PJQ*3e%vE zvD*}jji#b<NSx4>xpf|Eah|~m|B~cR2JAFA5g<5S1xM`0a2|;sdn8^i!aD}Q36r$9 z!d^LFXq0z^;9rvbngL%MoCpw{8IqaxzCdL_p)IcqVQmBUzLL0+-y6^VfGyV$9T)mT zp9&|Es(uSF(xNRkqo;Evcj+B)-HqpndZ~rfNE2!5S$4@A@D#)1(XIVDm~HZy^YP~@ zC}_yo?nqz}!-r4fUW_Q8Sq8Y|z=(5#MPz5NxEH|PZ7ifcj`H!J8yECO(T-|eiQ2sK zYH3GRLBNm>yVWU#u*+?<nmCTms@4^#y(<Xe7Tp~^jkA!k|3}+f2UdA3{o_ZTY)%wO zNP-54;{*s=+^s-@lK}PJzV9v6?=8h8NYOy?;8xt7;KALYNbzFDo!@6>pWXAE0QY;} zKYoWcJ3Bi&J3Bio&uTT=17`QOd%K#Nc>0j*=Z29>FPl(-_!#r)f@7ogqdvqX6Xk2W zJ?Mnd4J*2=Oib}{eb*F~!_vrMX*`{UyXfrC%)0Q*K8t!T_s>Gl51-Mi0PUC>=Kah* zl_o@{I%Z|LoWmnlbEEQOGPlPv6__xmVtoc%rYG`FRkHm^4d#z{eyW+#iypO0!Ic|R z?1Y>`Z(yb11sXKM7`5Y*fUu|Np`jFtjmBS8)qHq%fS+mp-HwXIeO41Qls;ZyBibul zGb@H$vv&}DYH}zp7YN*5UJ-D66UjoAw;8qm>L&_Llb~U%g<_~RiG~f695c;JEoRaU zWA0+GP&Y(F)NmR`48}A`jbdPGx#h`5*>9<NPi5syrB`3@F@sAqpt*bYg$}DIQVuay zN20k#AAE4N;%CR<%tvns+y*<Q{#zNF)eTm-DuosJl^GM=#87?p5Y(vgTCo}f#e!g$ z8PQau+nXg6YIJDgrf<uxlu9l31f^Eqy!#cz{z~41VssfnnHXW8Wt#ddJX{9EcFWZw zHwkeQdyu)t<C2k78Uv*|a3x|(BMoodTU!Ems-_0rX_rSKmH!HHIBk?r7npEMm@uae z|1A4OLR_Sm>yl9Ya1C}#JiWvTBe=H%J9U$ckupWyvRG5J<dnW;eZR7|m8qe6b-}LR zws@zFQ-gmNZ6$7NJdyl?=#6J8ffy_Kqg}$(y4|(M)LlM%TUYjpW@1<$$P(Dh5{Pz_ zVxBN#X16C<0^Pe+MVDieo%t?JM;LoYIhA63c?st?tU1%LM=ZQOQwzpdi()}TUp}FR z=ZRy8yc%$bF_(6hB4DmKf_<*W5wXNuB9?fcqkT^2ye~<FW-kGcM4D3~xN@2jfttQF zU+!Yw@H1~bKOmTu*_^+FO$%bvQL;hj`Xzebj_7?kmU$JoN3v~<vX}T2jh4+LxUEt4 z6V&%lNGd#mL<*yINm%>k<1&U}TY(8-G=t~yx&r}jMsu|0X_CVaw*u2^EzOLk^UULR zD^5sa`gFqh{>(|~txHwZ=~B_nIl{#zH}*22c&!uo5vu!fFV!ySY65LLrg{u9-6Xs} zj)Tkvv#)gy3PDGO5~UDTO>8N(Iwg~e)Wkk8c^}%AmuD7cgeLYd9$`WR-e0}aF;P0P z2erE@)dRwOOT}qM$9R%jAC*XHU+4LwG-#EJ`))klYs~U1N-WPBIB$XVq0$&$IHXYH zOogFi_N&&zCRf&QlqoE4U^PgRW@t>_B0OMn%`szOGKT6F7M{%_Fl^OPJh+Glll*Uo z;H(LSpsv_mwaggU6hWm_%JkCKcAAzFtu;qFTe;gl9UK4U(Ayf4C_`lJ6QAoiH0WAu zKZnK;yj*Qeaj|ef-eRV=DM}Y(DCMPPIICZ{&wSfliZxA-<7>g{ML`rYIl@3`PC}(e zHiiL>)eGW3OeyJZSS}oepefsChA%Bu^`PQacueGSL1q0T3XYa2!&U{2ZxwtcCt@1N z{c14Qa}teb#%sg)WqCJjd^O&fN9Nubo9GzYCb3H(;x2K9njUNxJ|hNYZOX)iF)9(7 zKny^yigCCDkIrKsi*p9e#msPSBi{ul-fBP}E*Cjz^QVL;y7G~0{%?`KmmR7%deN() zyhC@g9a+IG(~e&a3i#C+Ysi4HfCw|z*kWR~$O}vG7pr0&@aGK;_TS);4AIT=TI9uV z*cpoe5oQryh%x+<@1<kOthXRcZ|p9W+y{uYj9Du-nV3zYpEuF;^B&~QG*T7%ujr{u zAQZ`l9;DI5U2L9(=b`-)&Hf`vl4ud$5`pi9*F1TK!PUZy87gm`gjs5g9FlD`3HV(I zm}!hz4n7cw1rVJcOF_(c5K?i`&f=f7Y;Hj8f2s%}Qb(-UOrw@&HV*N@dEtfKa+vb; zc}O#+&wK{bROuAoP2?Q#y+_V#->vRtMe)-!#ceCu!T|?PZNPCI#f{cxq9T`0@et9B z^_@@mTW<~6g$u5jMjY0{lX{FXbjy#Y@D?VUePFH3B+<z9{gv*)q06!1-0~kqH&Qca z)dyQ5B6VCOLaF0$Ii=30)X4(zv*<-G!9T<5RqD^EF@3#U0OTtCY_AEJ(FA&!&uLo7 zcMEAr=P2enQ@e3W3}pI_!dxdXlqdn5Ad++|2DgP{@|r}$rznZmQPHf{%HtZh1j!HS zX3X@VE3Ae{PGY`R-&p2jUk?S|`<WXQB;yXwix1emA3#MP5CvZ1<koeoj?UVjiJ%OX zF%hTJ&!Ai1mixY;3%C{qtPQ|uS^dO3O~ov#IJ#yxs%(O+*MBya`Mid#*EPosO$)_7 z{aJLuvx0`#T$e9-M)d4PYj2Z$uKQX1oQ}BRDQ6o!&Y}{uDDx=Q3f3mMq<wNXV(o*s zK9GK?+Q@Q8%;(yMS@?aJja>aRPSM^)-wWWO_d*otY9+tSv+#c|0nGBjWL?<p-ojW% z&xp1#HaIWRO6VoIu71h;zBezGnGth&rgjo$Huh)Zf^if>CIFePQP9>{m71um)4@K_ zWIU0#kQT{CxNhS*G0D;VE5bEnwv_!~JmqIRy0aUM0c>>jMm7NS_8CB*L<4;IXo61Y zyiSPLY&MEhv~qAtToaZ-i}2HFcp=p564JQ*Ggj*VKpFrJyCy;S%bKTKv-{|%9;p-# zDHL_j)W>g{<zg%(AN&~)gdfJ9dH{=EBd~q^pyFoI+cZ6w)@`{Qew=o99{0WsRU4PR zZ;<btYmT4%FpD*#G|TFx9W5?*s5EF%QK!INFm8Ut_zQNT2yr7f8C2e8$OHyv3Qar5 z90rCjDn8B!xsps?bXEvysmx*#1Z{^W0xcc}6Ph9r6e7Z2r2v{jR0&=^6Dkxh$@&pK z0#hd+;+WN9*CCe`L7OENEgt9L#?-aYlm%wMN_8Vhava-J;W-g5{NLc0hXmlaK#@@u zp5XnhOqRwo3dtGta)p~#L@xp%KUoo6h8PKmPTJZElP(L#JG)|&Q{~DS2v@F7FbNd( zLY8?!vfC^ORYQo`_a+?*hAljAcmQe;8kT&BN6krics477_EUuy_oU&JJUO8@<}EG< zad*rV%t4&hOQSaY9G2#3K9*Mk#-M#M=KF8+SMW*yhZ^3L?PfL;Z?@8JG3aAqAYsWs z!jb{Q?_<!w!a%~3frKRkhTq5FYYPJjO9m2_3>bbNgK`!I5|#`kEEzDY7-UsseSDu_ ztXe+_tCvah9nwcSl@M{05b<J&Ia!K=+X(6@%wqB^sP^b?+s{XPfA425Dh7xv1H_d3 zQ7&MLnfgS6@=pG|c*QBvSmSq$ZseO1xQDh)^3NfzYC`(>$W;=p-j)Dd0m!YML)_HC z^iagcfE#KggjOa~hlL<&NE3*7f!Cu=Da;gVYqFvsD|(1_m~}G_`CX##;!A!vXgT|p z-#BV$x*3-Phao2zcyLeYPF-%`0Ru2~-7&jY%zOQ*KOn7m%zL3;S~0RcRa&X;C`(_M zF75YqW?HtHyYbv}x#pNT$cN<7x~NzMeVt2m@>aaLhU(I~<qs;fw<<rVoGx#3a6zAr z5JinOu*6KwEA1~*<6mwTU9Bt?+p1vEbC&c{QR6UjZTzX-N`4r%LQmYxIBLhVC0=QD z{0>K&-E$o$+ShqY%^hN*a-ZGee~Z@X`h+(3?1ONh$WL?{lxSYz25zE2gB6WFji}g5 znM;~2MT|g!sl+_+nx9alxKvhh3y6?q_oK<9gs=0Im50W=c_@@&3zR$p=@BON69q>q zg<)xf&Ysf3B(^-BH|HnM+b`1utNMA;CxITD_&VTOHKxbR7t<4e*CLa1ytJF~rWb=4 z3N2uI<>$R(4-ICR8+HsE-x(f@N*Wt4OEA7VJk?uEPwSc1xoO3~BYKjNza%PZNs129 z;%P5_vsUP<S`iOmT7QrE&F{g;b4*6eJQy`M@)t)gixVTvD#c^g!D!kFV-{uv3>Y<M zMpCn)Vh<^hVdK3n^W_{h^S!V0mk(U>MS@FY6!T>ZL&|Q70uZ<WpKT`!wUw$%PsN<K zhh;;Mc|nnI2YDlB-V}sbFuK0|WE@<ULp`$FOVgvSDQ0LO?;5jsTgq7GU$NMvGi)Vb zD<zU3UXpwZ#Q5Sltp+^DO(iT2UPZ=>ES_q$L@x*F%JIeB@--0Si^nvR`dCIs$#8VH z*^vO2=)ur-@aJeMKd0!>{}-=mcfo5J9e$3kKE|Z<mgw=&d3+KYcNQLVqhGwFaqdeQ z9e$3khPoapbC>o7U$pSWFX-NW!8<W@-GcrqajPhaMo3@u=XsI-_NO!(!hF@m6`p)O zh|_64em+%2DjwpEy&{|q5!qj6$FRvkSKtqLxJ(ZEzN0U)>WR=zVjBy(E1~z<@fqFB zIAniGpE`pb!?B-2GO~$Bnq>?~Vv35NY&3Q>DpljEYLdYb^E4%I5KDjp5`LfyfpD|^ zAarE_2HA&ELc{DM@B*MpVVky_>X0s}6aIAi#@Y2J>Xzsy#%RXbAzt=)W;NM9lX*&# zbWMU|?$|br^Tld>pk|}OG)VzcXMq|p(i-)g-=i6>*8y;cjtqDF9+kiwI+cZHF^qB) ztz0?mCjBA1$VV3;lxygxJT&}lm=qwrWf4jUl&_UQmC_ZR;arYyY(}nd$2Z-KGR*<Y z%>1n-EeW}*V)2bCsj{8HPVv0Tc{}gN#5g%Y6USjXGtHnoAxhLxASWr#Y8t+^64OX{ zxezQB9xuLGy#`7jp|$~1o^09}q@VtZ>SiF_*p*~ttBC4du@W~ZMkVf7+X2%~)nBY` zV$Y|2AaxsRsmPo=6p5M>eZk_`O9vw+hW?a>A(XD;?1lnr`A;dKN_C)JJnxq(bzl+d zpk`GTiYuD}E-9U5i_;m)gB`FuxYg{rwxUncJ)JO8B^UbePc&Q@xfvnhY(TEdCeMN> zeI^nLW7v2wSJ1~<y{ng73bQIU)GU2MzBQ-ZT@?yAr_`6Us6sv=A>a0pQ}0<qLZaRm zC#p(zaP#ET;M4c;k@C7Fse;Tk_*9K(W$0opX8?2-FpcKZrlCEMYCEJZJ9?UBT~WB> z@jYvqG%(1N@z6paq9)DVLR+Zopj7K%k+%aT_Bj<a$V_b+cDQ*rK!tCB6`5q*Sisb1 zf0^3dd02QiK$Ft|Q?wm%k2O<c2QX7x8+#A>wnhWwI8o&oOIL^NcpV<sZ96!}ZK=#% zaRX)XqO+AsYic5B!(TI_P8T_9*<@mA@dmN(nVMbg5YLeZR9G?%;jQBqhN}OKai{D{ zJOWy9098Z!iM%=vmcWe9y5djQpPXI3Fh`c$R$1cnBL%^Qar<}oOgu6-r)YiiM(}_C z`yIG`_MBM=sqN}#A7T$S@pOT>WPuRK<GNzXgK>T4HMK5f#pAQWVOAGKYuLhJVBrPL z>~hBVkLWZ=ddwZ|MWOzprKSCqt_DxF8q!mvDLhU8%^n%^2OX2QjMktncbL;Ku?1l1 z{BfiZG~jAw1m$-A@Gln5A+~7-JinHUnmUK;l!>L80fCgVl7+|y^4?%6cTVv<eUU6* zmjySHags#+71@VK(0nSY66C2=8G5PQ5>U%FGNWxi0p^p>bp;Zobgc5IIOQv#{43Ox zO=4p+h}v+JKy%Zp-lmeNi3`7~WO>|d?k>A$*7AF_pwSWw8m}Zm(&Ddpq~p1$_j7%O z68PwU2>hSpG;D>oUzsE{e}*Woe-D+>>$3J;Jxs5^YCmPDxM1Q9TQHIi?oTV?{l!pP zt{N(anafqf#C%#!;aY(HLe>Vg>Ld;fle}<o8A;@w8^Yy|c7BTvBf1#iPF)Gz^(TNo zb%WlzO~Nf02%Kc+I{(a$XMU57-;E6h$;Op4yJm?IN-Hes+{B`eG@^g$AXdd=<E1-V z=5Qs65Z~Ln(fCN<tO!jVxQ?1(bj=y*OZjWVi^sT?H>-XYk5w#rmsfFQqPTn$%qY_U zN@_rxKqU$P748W6&?Dz70r5*v1hmG8ki-$(Ei%gXpiY73eR1N~$W9+5aTW2W;wNNJ z4%ai2s3IAo)oV?g1P})&N@?gQPD>-q+@re9EXi#&>5S_H#6sHQfR)IF-h1g%%)Q=e zE_a2N9I~+Uhw%Q`41#qYM}PB4z5Y&|Fi63(*1X_Jp9ID*x)NfTi`l6$hMONCi-hIS z36(p6@guIEJYj!DOwkR!a;9SL8>m!+#RiJRW|S#7P$W2`OwnnNg&N@7#NbIXO~W>m z`jtJhH`(VHNSBMv_j*9i2yqm;AUdbMSxm;#e}&L|_#1H;eLoGuMrUuxCrV@O{-EOp z;a)g)IyG*mb1f|-to3?{OBYSLmtOq@aQ#rVG;Syffa|ZtQ#bCZ=#L$U#u)E4bdkgw z?^C#|RI(tU+!>s$1!JojD3!Pfd-7N*OB}bQ4u^Z4z)}m8`N(TEs}NjVdCbU233~!0 zWBPb;V9kn>ppD`p*JKL7L@WHLzeDYF_$z6SeKmbM48YY2yySDuaZ3U{o&B6dcmR*B z!-gL_-%w|eVQe>;ZaYrkQ1DFL%qS6FyBV<NYMRa!PRL?K%#I15R>n%leL6Qe+UqPW z?LPO~AeVNfcrd7eT2dMY7-e8ptLSE*=D1Jwm=n%Q9KGZ*gR7dEKm<26)Yc%cVw+C3 zIqT{iy(~&fdti)^+B@m>m;u@7Wr+i!C<Yv&heOoVUcQ4r?2c&@C2gXlWh*qBRdG^F z!v`=wKz-UJ@7TPL7Xjhh=5-K-j`DInHA(3-x{NLq3S%PYFAm)Hf%yU>FdM<1F}OXa zoP4g;S4B)YvJ(bioN~OvJiCNXLQ)f^G_u5CH4!-jL`wh_jYI6@-kmIn%OyYeln#eD zsS^x#y8eaDn=@d&vwP5ed*&y!g`_t02?G3`OM44j8Cz&OF^>N^meJ7mJ#i8_4xR8r zoJ1KXQO0q%m}2o<X+wss0@}(7$+AgI?gCGj-z<Hwg)ju#4B;?K<7NqO4s&ZxjL<|S ze-6**Ossc+i3d7OC;BM<?sw)vf_0Pl`%(%-f5jF}*$`&ku#p!!k%%vhMxEg6^oi;F zu_x8Wp7wrriEzhfNbJx|>iT?#Nu&b2BwV*%0DG7tt>V;cV+n23A%Ft92u0qZQx1*L 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%0DZLpUDP&xq4pCVg8GEE;qay4ADE8jV%^cje&!jJ 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�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 WPjvbzmo<g&K7+$Q5EUTG>HHrM;qJQt literal 1945288 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	jOdKVr`65$ORB`19tj`P7nv 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࿣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�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Ǫy@KmewC~RTW-Zs2e=-#G{2Yhuq7m1 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�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%0AvP)F9vRRUxV9BUftcVXwI7lZMMuKk%9DOf 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	UzsB&$=$jG)8 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 U-ry<tKmNAD`@cW$W6a_I2QG4-4gdfE diff --git a/src/dns-trace.c b/src/dns-trace.c index 4566159..8be044b 100644 --- a/src/dns-trace.c +++ b/src/dns-trace.c @@ -248,11 +248,18 @@ int handle_event(void *ctx, void *data, size_t data_sz){ uint16_t class2 = (s_event->buf[pos++]) + (s_event->buf[pos++] << 8); uint32_t ttl2 = (s_event->buf[pos++]) + (s_event->buf[pos++] << 8) + (s_event->buf[pos++] << 16) + (s_event->buf[pos++] << 24); uint16_t size2 = (s_event->buf[pos++]) + (s_event->buf[pos++] << 8); + /*uint16_t type2 = (s_event->buf[0]) + (s_event->buf[1] << 8); + uint16_t class2 = (s_event->buf[2]) + (s_event->buf[3] << 8); + //uint32_t ttl2 = (s_event->buf[7]) + (s_event->buf[6] << 8) + (s_event->buf[5] << 16) + (s_event->buf[4] << 24); + uint32_t ttl2 = (s_event->buf[4]) + (s_event->buf[5] << 8) + (s_event->buf[6] << 16) + (s_event->buf[7] << 24); + uint16_t size2 = (s_event->buf[8]) + (s_event->buf[9] << 8);*/ type2 = ntohs(type2); class2 = ntohs(class2); - ttl2 = ntohs(ttl2); + ttl2 = ntohl(ttl2); + size2 = ntohs(size2); if (type2 == 1) {// -> A uint32_t ip = s_event->buf[pos++] + (s_event->buf[pos++] << 8) + (s_event->buf[pos++] << 16) + (s_event->buf[pos++] << 24); + //uint32_t ip = s_event->buf[10] + (s_event->buf[11] << 8) + (s_event->buf[12] << 16) + (s_event->buf[13] << 24); //printf("%d %d %d", s_event->ttl, ntohs(ttl2), ntohs(size2)); printf("%s (%d)%5d", inet_ntoa(*(struct in_addr*)&ip), type2, ttl2); } @@ -260,7 +267,7 @@ int handle_event(void *ctx, void *data, size_t data_sz){ } printf("\n"); - pos += 2; + //pos += 2; printf("%d\n", pos); } /*for (int i = 0; i < s_event->numAns; i++) diff --git a/src/dns-trace.ebpf.c b/src/dns-trace.ebpf.c index edc357b..5297f24 100644 --- a/src/dns-trace.ebpf.c +++ b/src/dns-trace.ebpf.c @@ -125,8 +125,9 @@ static unsigned int get_answer(struct __sk_buff *skb, struct event *s_event, siz // Get the 2 first bytes to identify if it's a message compression or not if(bpf_skb_load_bytes(skb, tlen, &buf, 2) < 0) return 0; - bpf_printk("tlen: %d", tlen); - tlen += 4; // For the message compression + // bpf_printk("tlen: %d", tlen); + bpf_printk("Start at offset ans: %d", offset); + tlen += 2; // For the message compression /* * According to the RFC 1035 (https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.4) * In the section 4.1.4, message compression, the first two bits are set at 11 (0xc), @@ -146,24 +147,29 @@ static unsigned int get_answer(struct __sk_buff *skb, struct event *s_event, siz // Get the class and type if ((void*)(offset) >= MAX_UDP_PAYLOAD - sizeof(uint16_t)) return 0; - bpf_printk("offset: %d", offset); + // bpf_printk("offset: %d", offset); bpf_skb_load_bytes(skb, tlen, s_event->buf + offset, sizeof(uint16_t)); uint16_t type = s_event->buf[0] + (s_event->buf[1] << 8); tlen += 2; - offset += 2; - if ((void*)(offset += 2) >= MAX_UDP_PAYLOAD - sizeof(uint16_t)) return 0; + //offset += 2; + + // For class if(bpf_skb_load_bytes(skb, tlen, s_event->buf + offset, sizeof(uint16_t)) < 0) return 0; tlen += 2; + if ((void*)(offset += 2) >= MAX_UDP_PAYLOAD - sizeof(uint16_t)) + return 0; + //offset += 2; // Get ttl if(bpf_skb_load_bytes(skb, tlen, s_event->buf + offset, sizeof(uint32_t)) < 0) return 0; if ((void*)(offset += 4) >= MAX_UDP_PAYLOAD - sizeof(uint32_t)) return 0; - tlen += 2; + tlen += 4; + //offset += 4; // Get data size uint16_t size; @@ -178,6 +184,8 @@ static unsigned int get_answer(struct __sk_buff *skb, struct event *s_event, siz bpf_skb_load_bytes(skb, tlen, s_event->buf + offset, sizeof(uint32_t)); } //offset += ntohs(size); + if ((void*)(offset += ntohs(size)) >= MAX_UDP_PAYLOAD - sizeof(uint16_t)) + return 0; tlen += ntohs(size); //tlen += 2; @@ -190,7 +198,8 @@ static unsigned int get_answer(struct __sk_buff *skb, struct event *s_event, siz else { // get_labels2(skb, sizeof(struct ethhdr) + sizeof(struct iphdr) + sizeof(struct udphdr) + sizeof(struct dnshdr), s_event); } - bpf_printk("tlen: %d", tlen); + //bpf_printk("tlen: %d", tlen); + bpf_printk("End offset ans: %d", offset); return offset; } /* @@ -335,8 +344,9 @@ static void dnsanswer(struct __sk_buff *skb, struct iphdr ip, struct udphdr udp, offset += sizeof(struct dnshdr) + query_len; // For the pos in the answer section in the skb unsigned int offset_ans = 0; for (uint16_t i = 0; i < ans; i++){ - offset_ans = get_answer(skb, s_event, offset, offset_ans); - offset += offset_ans; + offset_ans += get_answer(skb, s_event, offset, offset_ans); + offset += offset_ans + 2; + //offset_ans += offset_ans; // For eBPF verifier, to be sure we leave the loop if (i == ans || i == 5 || offset_ans >= 512) break; diff --git a/src/dns-trace.ebpf.o b/src/dns-trace.ebpf.o index 7944a1ff8c3cfb9da70941c081a66531ce5e117f..fcfd45aa86ab047eabb0d4883bcf386fdeb4c71e 100644 GIT binary patch literal 37064 zcmd^ndwi7Do%flU%;e65WCGzP4-g;$5|VI>2pFs=QfwoNg4zxtnUE>Dk(nTfmsqvM z-i)nnsnrsytJvGJY8AI`lik*qZSB6)y1TUNZrQfm@^-s6)^1C0vfuBy%$%I$5&FLG zfA9Is^PJ!J_dDlze&=^C&w0-CJagxU%~u2i0bxQw{8nU<;R><w16jIBl1*YdQVuUr z{Nbr8eh!)Ew+XR(`XA4cL)_lJ+H0MDR^kfa&X%1C$~seC&w=TqDqTJ~LZlvgQ{v$x z3g;sI=(%&}o(l>Q1?#zx5GxViiz9+#_)(k?a=~Z1;XMj7J<~mxBV>J;emaf=?>Q~? z=OS|qc+U}4epnO$L0_wkMD$}SPR&#C@F5lF<|%!<V6O+(EjljGFBf+J58tQKl?Tcs zQ688q<Kd4gelF}<1=81U$6jOKuu>;(Ks|qm{H*UV>PyTD4VNnYtS{?Xv;3#Bp7cX4 za9I3AVp9)er>O_q#RRB5XY7q?z2Af$4+-`^uKYLLqEbiasF>w2q~_48u;;xp5);+; zHR?C*1bdm)v`_NLYtqhFVNVJ8yQh3YDx%*n2Ic2BQy%L-R-bC$tiA`OzHjPw%S9Zf z-a*M0A6JnWo}vi$UxwY&Uy^pUPCp^z1Jg$|KCbaG9Us;4kc?ZjpXi@O&{I>oUh1>! zF+zV>>6n1^n1nd%7ghe&z{LWt7~_YdPJZTNezt_kzvswbNqe>i>IHkGUH*`hf3D8Y za!mf@k;i2I@<27XLL`r>`X!(EtkRoXCBzCLTAqAHV&k{g>1QN9FkSbXM`d=|e@{E* z(m%Aj2ywRDAIbbTpdCiR-x`=E6(o<S{#+hV6OY}0nSlO&7zgJI2I{*T$8au@5aqe- zT|&HyN|I{*q=a(5BGo!o$&*Kv-I@L~mDWLzZm;1!3B|ogj_RCieLua1a$zsr0X?V? zLZ-jNCI;Gb502*u5HkJlE`_%SFn`jYM^*o_+w0^7_|5pgEAWQ&U-HPyjvq(Q4WOvx zkyj+YJfOzi1^W@>hM_$FXEOh*@GCu*srNMHht~b7{;l`P<WdgTh}LPwzb93GFv;0H z&GE0EH;sRXm0FSf>_5qTTZ7ua4`}_Cf9d0}_?}F6;GqFk4&*F{^NGAZ=>GAXuFru* z2W7gjsFVta_iMd08X-0PS5nS;s_UGZU+A|)+G}B&?$m1UfbRF?Z|H9G$nR-yPi4lz z5prM$<Qxa=ubkqC^>v4~^ZK^`(Lq_>a6JIR4M=|uoc*6wcJ6=dkd&7P3gtW&y-KAU z*8bRq^d4BZ=y-l0BF=%1TGunWjMo#eg<DQdsdCW%Bg%if=ctTf@whDaz(cD11FMyt z&*|~C`&NA&e-ug)sQ*o?-}=qhrX9L+)wrYoTHsLX@ZfN>ULfCtL&;CU@wUIOO}EHV ziRMVZmA@;HcmEU0{^1lgsc}ia?>VCF*X_SGFnn$V{9UM@hxis98++&He(T(yVAK9b zm7k(oAM5=P(wqA7dPskp`GfNvG25Hh?fplTJ?t0cyX}`LFYv<H^4NJ0CMu63#IHP~ zuPgs4*`9X!%;%OrKk&s1E|-3^%cVY3&uqDms&aKZ<if8U;;x_P=YHngAK(+)k6f`G zShP>(x97((*A>^le(lo&WeEE}tMrX)7t21DJKnxBA=_V%ljLNzZrK{hljG__`UPh` zKYzK`p{Tm-Wv(l3J8?dF6aK0x-6j1K7JFrUW%FiM^Un@kvva-9wLFF)hZu(!8618b zqU3X`b66PkGPp&m`Jc1SHHJK;C-;E3-c9Xl(bJbWt`p{oJ)-2?xzO~(=gWCYCpfF) zT$wX){*0q=C&M<5ON2bJ?*fb5=;REE$t%ulr<>^loO0SJCm?Q6re@EsA3a?eQ>l<B zS#)0026d*>>e?V=CIilBW*F|7xAL%o2RZr?0%F^!CQHH@R+T2RJz$%XWzVkVjk=t? zjN<cF_LQ+($CJ_Yjg=(>oG=(Jpc7Q-QqSr*Ahu^sRFu-ii?j+uI;rslJYYm7cC#2? zX6v@aBsKB*vIIrlVUzu=c2Q8=T4Cs{^RG3|Z_KpEwT3k9!JMXK6aP6DnAV3LZ)9Ba zZ#NdyWh~fkNXr7xlx$+x0#jd8T1edbzJSraQR}8-3~iLlghs20&!?SrG0Kg#=njT7 zx|z(VH1P$f&NHelJ$iaHTGSl}bs3IvKuLB?7}EFz7Mj{0<OLdm78-g`^Dryt>7`tW zj=>tx<iQN<22UGRm6^M5II78$S(Yj&dp@57Fxk2FzkvDAWRWXp6jq>S=yT_ynB8^7 z_UX7NE1MTQY`AA9kmejV+(WwBcHYQg!)?^nwWS4z4YyfKCt2kdpk%`zoFI46d1qo% z_92}c9r=tfU`R93a9PhQ%JsjIn?a5&hBTAr1zb$VYuRG79M>|mq9Ki9bU%|Z6T9{q zH79inTtUTQ1I}i2Z#Sf;uY{Ou4S77n+HS}SeH}n5L-uM`NbC!o*Zan*;~4|~uPSG3 z;0$GGV-LDbptNN6{5tQV60dU3c}*M8CK(^W$t8xa%6Q@$Lw0BulNtI{HknqIiQMKH zaY{q;T!8nqtGDSGWlu8nj!es(x9b{Db?7XvrwreCvSh3$F$7QOoToB{p7)w=lpWPs z=r=<j%cvP=dth>4{-m;SXi~}48IvXlwqg+<TrNVBt}459+Umkf!a?+?P#|y>Zsv04 zh^xw06=DaY5((B77J`hBEG%3HGS|vh$ZUCKfx<%QfGodQsw8LxEQmsr5QS19=C>kA z;A&Vr1%l8dm1$C00J_5pL@f<SSfUDp3}A9O>{~cZh|;jsTebj=ALHJ9c_tZ3ox;H} zb%9J$Q66B1X|*VV1uUF)Rhfr0)59>74B9t?xeb^ptzmso;;f7{Vb<rOVko8LU?567 zd#b8Au@Ih-QZ&bigqW-S1AX%{%8{fpqZ}?SE-aERo3AYmFPug@7ic@fv~!`hQ-Z2O z43g?vv}<Xksp6BDO_NnXHnu2se8VC*Rk4_L@p2KY$igLnmb7M8puTMD)NO^^!#AMN zTIQ`suBBnYsE(OQ)GwE~fw_s7F&_;uIhP}+Ot~T~W)?Ha%H?8al*Fn++36Y!rN!7% zzwf;PXq${$tafW5n@I??fVNUL(;DcEW*cg4rVdiNE>nj>*5OhnX1SsWo6>4gk|(DX zwaW*=n7~^sIeMDF4tzI|ub0jk6})ZDxt1rn&m|(*$U?~Dh5@$La0D*OCeJGg%#b^J zAEIEUko04uXXS|k?u~^W!AUBdp%jL53Z69lLKY+qmfF7qIxyeT?gc!lF$jADbCmWn z(sT19e?IAXC6d09bY+Do$OVxtH6RMOhb0+BvbX_Jun3&u6*w`3rWH47GN@KIxxs?X z;BbFm<OOpUN&WYMle1Vp923l+vqS_r8WpGsD)0$PYIB0hk*dI;C_Vx<Luh*O7c?0} zr$xxkDPc4WZshNR1z$%z`QLCV{STi0lc(PpN;@#G;OF3!Wi*9n#H5Z8nl!Sks2~sV zWSL2xW&xJ+B#NteMhMSVW#^R>tp+#p`GQLksiK=f$)cx-f~}yZvQx+++L?4iQNeD+ z70NKFIV-%O2;&hgagyyG;8q*x82Xnci_p@V+>j+-%aY8e6Of!CHN4z_HI^d3Pv<N0 zyLV@}|8)u)6!*1xXfH*6Zv~sKU>b^_Nj=ANKOUP!f_}~YL`-DCCu2ETa443S1)qu) zWx+$Sk}UXi%+mI7tRgFUBsMb(J`?k@;Bc%m3x;A<S#Tt_M1udo_|5%ntS&2gG<JCw zJQmxS1%DCSoCS}^nzP`E*mYU(x!ATW_<Zc<EcilfhXk*)&@aZ?vfxXxbT-*v#_q|2 zW3hu-@O11$7u~_k&&2WuXXi1J!ape<t}665J4x=BV~4W&o{bG<!E>?4F8UfX9FOH4 zg%U(kxCV0%fL0<K?fKX-5h5k$6kISebdD$pqFc*`Zp@vdS|gtt=2j>xB$!tbl)5FT ztjLid#$@v=B3ZDYA~y>bRw#R9vZ{)FDOtcg)fEL<u&6@y6e(F;G0FP`?8#kHQ8LHF z*?Wwrrb5ik!&&C4r;1u_odioOa)kFCCagz74`-QBHcx|2D8aG{j5#TjZdqBO`ioSu zs$#jw%xU3@;@K#MAzTi{n9>5pth^+r6*IdeXB4alSGun`_cg0$|I!{OqxLv?-5w{u zvd76A_Bi>qJx+e3$BC@PZ|!k%Ru2H_zTepc;199oSvUMK)|jpLpY&)5VEE_08QUz1 zA5qm2;py{8P0Bwir|*lAApc2q36b>YB9hO-@;_fBLUfYsQxPFE#tN2HQUT}df~7e* zGu4wS3F~rlDwHZtI|Zu(QWYnrg2rH$zBngKuU5s$^p~ism!#L^XVa`LkTkC$1?!5k z^ra=D_{S)SA(U;--~wrAUg1=klr<^TW=VRQGDXtUl_?7`VHVDah-?R#Ep-&-6lcuH znWU;FFLKdrb#h9w)ybKxsw2~ss_IC(tUweTL?QCp`EW32N~RV$Q<Yk_PfmqWCFyBa z_UWqDl0QRT*Xfg-nX#;SvmVUS7kwg2&psq+mYCx`WUXWdRO4nY#<emX)=F6VA>`&s z7Yyd`x&hBKf2FdOoSgXsk}s>b;9!<s_yIAW83GFffd!i2h0f5tycwF;H$$^>HoZ{h ztq$-Kr|882b^%2%3b0^BH&}F4fEPc-zbZgO6}?%esZwBjfZbJt8>Iw=sSEUeiu46~ zfA#{spK8_hcR#gil8Mzd_10r}E~Cf;QoEwR^#UK)R4H)R2@CusE1>v?vgEU@BD!;C z*y$yc9D-$5>s5$qCS*7T(*ie=3fvW-8yAsg0A>{yhaNbg@Vx;pG!_RRsFULN1=t#Z zRT92Gzy?`zg-naw2Lqf1mkf->%7^zU+4DyB0f}qw#ubera4e8t%iH_=!C3kiIMu!Z z_E(6$fm2=RfivQ}AnISmso^H1{27UlfcO>Jf5J&D>xQcjkwR#UK<!h3{N;h`ZvlJh z-8j{5gz(cKR;+jeXJ|boo(9qIHRu@zu~K}S@BotiGl{Q)_%VssLHv?LB^>kz5Uc8t zrQ!QPd1$3oqbRX~uQ!zg)l}j{mj!ML%&0AgA$4HX#xPJWA#oEpSCDufSL<s)G~5K@ zW)e3e%`OnDdXZh$It3&e56VF%upOt_17xon!l~hEw8Do0>kpB~aPhz3j-?SMXTTwt zCc|nS3+^B2ZqUvyddbJ3h9S_-PH@S;WFY(U8oqu25og=ArARJe2Q#kC*Tn{s?3int z4csNAFB&MN>z*hUVh551Iwvm=-0(Eer7ORRbM3cL%HM-%SOMY{675j_LlUom_&JDG zBgj}6e4ykv00?RbE@Ux!2rkSHLCIF*ZeezXTg?uyhEWyQ<BD8Dt{!!ZLUPv4-ooMb zWFyLDpy3Q=(`lP_vEpXWW@p=MV>jv6Yu52L9iK#1Ckkd8yaU~Wp;yO7pW<fE73fe5 zRXVQI@gW@#>G-&A(-9r}m2d1X(RTj1_M0a{7g}HLzA)^NXZTmg2X#EC;|lHXIvtxX zzE9%;pY}MPeyx67#HrE_r+oBp-Pzxr?)O?dTe^37dlP-BWKXwOUte2aTUWDEr21Ny zwsog!(tRzhiQ2@@-uBv7v9zP7E3vdcmFUaL#OABsw&5MuZV;^<cqb$tU%zF``t9*+ zuexzV{JQPU8{%=%6>n=vw}|xq-h@bYr$txGzIdWL-Iq+HAWJ9P#O}m?(chg)?&?mo zd8v+`zBCl|BW?Z4cv@tLy)B*n2_coi>QqXk)1BFTRIPF?YtXqQfm+1z@cfoUpFl0* zsogu{ojomW@tynAFrc#swbxmfHOLfw$?jb{``hDv2~>1%LM4&uGB)ZA*z}=F>7#fr z@}+l=(U9uj*_BL>VYMYwtu1|R0#@zmPxS2<ut#(zx<&8qbX>ZqtEF$ZfUG|e?`rAo zg)ySHuP5Ep+S4iaqOnjA3`1olNVg^p7io|(+0&Oy?}wvzAz3P(Y)^K#CH4sur(5HS z(YjM~w4^!&7}A+&26`4P(<ZuGdXsT5+FQDko%=;!qN^vJh$nlO!xybBos!BhS7w+i zP0C)jph_x9skkeFPSD=jb4wh}of6$0e76V<R=-lDCEe22)`!Zm8p%|=y{~0gwsCdm z>Ti^yWM3++5+GrsyS1fPBztvM`iCmw@tp~%PALQAIoZ2+c^n;E%Fx&nx24h~R!V^+ z$Z79v*_Be(%J(v48)l79r_wE5z2cT+Un0)N+m-5xrxM7KLI>#S?{15?CHBJi97fVx zDwe}4t}H?gG6X$~QjroV(k<zP=-U?`+XdqBl<uCXp4Q!}z~rq7R3)`Lj^5gicjG!l z2g-%@9r098e_v|?gmMOC9c_K6r$~077pcK6(mg3Q0J?3X9x#m4J!x4dwm;e+&Sq-u zNTARZTL`^`=VUJx_P6y4U6d>s*7SG5>)=z2PA)Jwx>GH!Y0NHHT`szJUegZ?0nh_> zu9w4d%N9xZqZhF2YS`A6WU`h{Vkn}%J$(Z0y_cQ8wKK_xvqxWIj~Y39x?8#uqPxEf zdIfwURMIqCNDekxukj-}1xKRdZ8D9JT4YL<CzX)K(*`|_sMl}!(wtBv=NFL_yAo+L z)2J~PM`-U#3l<=y>K&g3(JFf3`?f?Hy5sZ`vyLsUR~*L5)LaB|a53a@>Ez7R9^~ps zU)uw`)_NHz<id&bKKWcO=xd@$2aXIueT^j;lSk#0Tg7shlB*V7mbeHs^)=yGgacs` zugyjdGN{*2l#S7Ar@?a1gfVHvfMJUumo@bY=5fnauLSc-KyOg|0P9JtL$DOYbvRJ> z9BzolLGwjzhBh2>se}xy6X_Dr??KERQ4e%CVg&ig2Ck*XWNBj=1oSEQ&{K@Dl%9gq zZITpud}r+aiXP)@+TwxFGO_ZLfqujezVzdRh`Bx-z;Or%n|TDsXK)})Vm~m3fDE!t zAH(56?{UOm!Xfu>5I?195Ajzt-Gq2V(>oCVgQf=%|Ffot5dTEeBZ&V?)29)i)ijNu zV_24ln2$9`HzA&;=^cpY;+O^g0Ag;{%k=OW7uzzuZWq!!Kyyc)^Z@8}njQjug{DV9 zU#;oWptot7y=y0E`qBg4rRgEid?8ns3+Lah=_b&;|B~f`W|)m*0Q4d7=YSpoeORYq zM?b1*kDVT29*!o^f2H{Yp#K^)f^2_D>3+|0Sd7j}5iC>Xlh1<z*~477jezjT$c7;A zV!oyI&jo!_(Rl3<cHm$DOXmL>h)TsW=in+$K~xOaiJybuJ;rN@@hh5dQlei~f#&@U z#%~T^?tdP%d{O}Z2x#W_aC}44O`u-_&2h8?$4Si}0R4T?)rg01wBcZyAyn9myJMhv zt3*D1{!`G4L7xPzgY=ada|2-VjtaqyO$l(4={Oh3tT6JdN|#r|6f6L3LpcKy7cWI@ z{7?Y-Lf}%wOAt@f>FYpyiq81DLE)lW$aENEBg-#UbM&MJ(D1LA4h)mz6C<`61Ev{u zCy3bNfiy@f(<}pKpsp&VOWyjdv}n1Io@lYHmyq@fTP~P0i)edcJ$A{B>yWv8IcsdW z`l1H8ptcv;MgtebT*a#;x?0s|mnQ%JtZ#i6hH{0d7Hs`k$Yqz3@Fs2}<f3GPl?fJI zxIeHK3S9jq(i7f^EuHY54K3qk^H-(Pef_OzFVi;OA{0>V9S|OZ7OK^vhsay&9jLqg z5?d%2eqOS70+Cwvd5CObvfZmf88z$B3%oTR*Frt*#tv0fwYS*e%TmU(RSDJA(xCBo zb1Y|xSGUAl0KH2bmAa^ERU4WJPOV-cD<)0tPWN=As(P!vIcvQQ*KLe9$FFLB>+&Y7 z5o}2Ix+bVvX$y48up`-9Ywqx}b{H|ts9#m>y=9Fjw7|!wFbrOFEi;bImJd!XTWsxG zuTIrp-b%q-<sr(|(qGr7jkhyn#JnZYLV8vwSnI7=rWLBbs22AgBIM3=H^0{XbLu+I z1-hE>0ZMaypzNsD7Mlsv+tZh+6jId6JHu*kfmgThin_YGOT48^y({s4e!3&!U9-h& z?P*J__UgQvb)H<$FY)S0<6gWM_dE&NjLG&YC`H58?bEK!c03kg-6U1p{#Um?u!g>I zb}6bBsBM-^r55QsrD_Zas}bfHwi?q)Wz9NuI|bF~i}E&4bp)NbW}UgmLW(ULu8Ci> zb;FkJP7>UTjd9eN8$WFU8!w(#p5ZMPGK{<PQG-~Qyu{<(o5^jgH9b+rjv1yK%2>&4 zcd0Fzs*HO2=62}|e0-7c&@@_kwwtnX{CcCh|1<rmzM&d3T&7Jkt=x!?Qq7L?jvjo- zk?9Oeyjv1pTaVWbZfj3>I@yiwEe|2%cDq^ReYaCtr&-p&<JucGY|&}{d{?W=XlG~o zKkjYEw5xU7u9MP1Otpqn#Q|9Z*1~qX-u4>ncP3&`<$8<PIy1H&kQl}4))+lO4!0|M z`s8rKJv6rNB#Gj&!RP6Fb;ISglLgQcwLMogcl`G=bC+lfbaj}6fz?WK{IPDg-R4Pp z1*z;^zqbzk1kEn;nIl^fE5%~3LA3}|w8QkOjBBCM!wix{r$HGY7B9B^m+1v+M+0e@ zNKj2?Ba$mK4_h5KHM|RQPM)%xC9sd0?(udeGAU6<%us!|BvT2DDa=)vk@`E+UNYsi zGf1`Q{eB&t!w}sZMJ@5{UT(YA=aVJZzj8dm<T{wlIk464G!$0t?Mb#Rs;*K_tfr5z zUcW8A_44L;^ZM<Z-?{#Buf}v0<4e6JpmW~33K_4WD(G3NjLfW=RhMnE@g}jW!U=z- zUFY@gg_@R~V_4n)2Wq*juePQxrPgf-)_VE*Yps+C>R@>5)>yzR!g;-)aSZQn*lFsq zVr56im36&fDJHyiX&F7fZLf^KL@l?dbmGQWOCZ_~w_RX27_)CFuTFY%`mOgc#|(A( zEQFi1*=<{0C!spBP*+%WKat7GyR&iESy7u#?8Dw9_M4Nfaya42JT8@4sE@s2K#Qrh zo2(S>A=H(5iO2B+`}DBVlbJn7jQz^dof`a_&y3OqtyoW0k6ClI^I?F;hdH>Mb|hOn zIHhrd!-Ta9TjFd)@H-P;RV&wA3vaGlXzq6?!|-Wk6E197=q*^_wel*q@YaQ#<`sXv z#lLZ(TDdY~W}kTR;<0lDFH7vB4UI|(Xj!OWE{3<RB_<_kSiBgst*WhHo=n%3#om-D z95Z1(r+${8%s8+1OkR}00p&aVGG(e^rx*SN`bv4>MWIp+tPmgDoxePp43$#DOd?$( z8dXlds;Yg7bbntrTl$jBW5`-OG{a-PWNU)UZCaSU*OvD3@d>xqJ?^m}RO;g~?8~0e zd$Zi8`5pFS@RMNy&X;5B$KZNkZs9OZzf6G>_IMU?e+>Kdlo4;iQHECsxvfUrgQFA= zzMC}u0Od0yVxz`S08hfJkJ~Jq58R<K_pZX5BVthFwcN{Uj>s)zSsrlybrEq?%X^u= zGa^oEJPcgAFCtE9`~#*Rh=?;9|BC7H0KSA3g)KK?52|=5BKRJ)!TG?R#(c(K{0!=+ z@%_ZdB7*OkF#Q*R^It&yH2z!QvW+42P6Fg6bZGg%K_1=~5(hPYH}*}-+CpMb<L7}3 zJ414-mimeFfQPjF+ratzLUPNNa)Xa)`6%SkdqU#0#(ZZo|6oXrYWz0f@}ZD8t8pvv z)CWU&6<pQleZaA!At9gXgGXEn>}mPaz!k?s>NOVdUT69fA+b@*i?NXx`+7+5HEY^e z4IDlhQXf2%r$dL9^DUXcD-j{z6#(y@z-3>L$Zc}wCoTp)q|=-HLmGELo_{<?oN(|- zjirB2<jD7GsP8b+7rvAuPHQ=F9`G5Br9V&Qh*1Zh)mZxXCpn@D{fPRcf6wHICXJ;( zio#-}#?l{oVbQGd4^Un?Hp_Qt{CnW3zs?aI8cY9I;JarFmjVxHd{G|!Ul|r?LRtR1 zfn#-Haa7~`fb;S3#xac_CdQYzr!{^NxMW9I$ahItCml-AFIgXc4-iJ>Iy5$Njssgh zsPQ(WpM4w3vv4KwX^kI%d`53rz(q1YaWU|y#>arGI$#g_E%g)U1Eb0kzY09<U|2qm zpqwvxm7NKQW-Ui58MbM>1^fDW=-m4p`G6ybN~!-|qz~hh27!J|{l|gxD}y3WW2GHF zbL5!fWcu$SeK9(_e8&g*O_1;U02_IuP9MYbu;n)g1*SBapLh=N4h!c4V+xb<HppjU zuwcrP*yzU;m5~=iepKTxApNS_f?~wNmB1%0Tm(Go;IkUb@(u<?1^OlZL0k;%X&k~c z%~cNvMWcl)fj3&X2$<uN`I(-$SK}LjXFe7bgBC6ZKBVzyA)hl6#McZeKh849ccY+> z@_fioX}R?0*HIq}=L46ZpBwvUp1{|T7A^*E)c8lxH|15>Z{cF#W{r#Rn5FSF>SN*g z!22v*3_PfD3)0X2MNr7^W??V!OyChqUJT4@ZKbXo?cBu2E_gmyK_2jvz~Q4p?9iAI zLkCZm{Gi5+7|eC^d(8g@^k*`Wei0tLgr5;&#KJ|u=DK+q<mC{a)^bJ+XLv&X1CW;@ zah|?z3<6iYf^nfSlQEd<sF9oNs42fnr~fkY=fk)rC;vuAzC&Z$S2UvE@q<0aUUS`( zh2wNwr~faczvwhxtF>?#xCD7wAIj$eo9i6^s%zFr0Pis>InFXPYD{?;atw8uzXiA) zA2jW-a2ari#_y%RmoN`$tkq?%Ym|o}AJX#g0#7*^5XUSW13s?tuOZKWC6Kw!1@WjX z{3<I4zu@54v^gSA<lR=7c@;nkaWe1A#SBBor>Gm@7R<#tVgr=r1p<GVRE&p@0cyq( z;LAjKAFgj{vb(jjzb&zJXEL1{%V|k<)$B@iC;F0Z(%$y5DLb+Mw{I+~JAq9>KJH-| zoyna`J3IGw)zsHZ8tdZjT}#y)d&U4vN$yK~u#-#nRBZ=aHkEF}Em{rl)4CO>wWq7A zhcpsW)Y-XmIS{UhTrPJcI(rj+c&(_N3g8MbLE!pel!8pQ$MGyB(WeC1LhcZlF!_W) zrbL;@51O-($k%?w>^Be!gv$yV!li4&WoyHes>1n^+R*E_dEsy*^s$f^F5Vu_pA!lF zr{a7XoYI@Z`Ew(o(~9#r)7*$$h$8c6hx6w}Lf?g`EE0M-fLHt@p)cLBhRXga0Or-< z!nxr*q|J}a!#Nt67tY@m34P`cFI*l8ok5bRv%;}u;nGNLxFS*+jy2VU!}F-+Lr4;c zguWcA4VNuKQC{eOp_F{653WH`w{HT$QY*uSb0#R^8@GGmSS0kdVD0R1`9<NWi^H){ zKI$UNnHP>-jas6bPu;#IToMVLqRykp0=vHzz?C}^diIVlgu?(Hs5Rl)k<brOTxDca z=*aCJ=uP1nky$h=Tot(pW~~W5j_lJSp&tc3)bDm!9SQwjK<)eP^k84;O@8_s3BC8u zP2oHM76o7Yg1q0Ns`;V&;Edu(sL&(p7kAW#i$f2BwH(RjMAn4!Yr``m`0_Lo`sp2; zAbSY1Rgw8HX-&AOHuUdztO*?kYbKHxM>g4_??d#26wQ^QIgy1_a}sLuL&szhYgq&2 zeY;FB1!{}osK&^g@O<!#Yf=A8BcT^z=giPokfV4LKy5I<mjbN5^&cV-4i|(j$Jexx z(Dj4x-y$z`J$$gZHWJ#pDH5vj!bNadd8D2xnrqP>q2*pAw3)3RS|L63b}w8JS|OWa zAN(?hDYu~hp;~5Mhs<86IUT+z5^7{W+Z3Lc4$lIRejB_KywE7zTOL^(3EdChmxW#j zoE1SA{xD!T^afgDO62Y6Vt}#GuOZDxO~ZA;AnWs1;qM{L5wD+{I1MK72}4xADl=Xb z73Q^rv9hSTHyz6aii+lOJTjtUs}Dcv!|(Os@Au(n?zhLtqw;^x#;_!aiVu!wf)kam zNsSjp#gpTiGQEBk%aKOK{SHULs9GD0lSMQCr!`g-6@N39p;1(P&4>R(A3l~H6NISv z<^){&;SC>tWWw$j6;U64xevd|hhOc(=PO_1Lsb4R<3#-T_@uwXhyQ*bK5oM&2=I>& z|8iUm$A_rE@^yj`6+iXixBBRL+K2zF5C4Dr@L%)cPv$+|xDXZJ@Tu<yef)O64<F0* z2|`pn;=}*E5C0h-{@?oW^{aAD*-`P2KI!?%{rC`-ug6Wq=a=>4Lsb6f=R|zW<P(Ib z{NLvBf~Y9<Nk7AfKhK9R_aes?5EUzY((_LM#)qib<io$thcDOs;}k^&|2SZLh>Ct6 z{u-Zt_%<K@W*`1mAO7F?@N0eecly}*K_C7DK78EnPY|N=|CGlIqT)rL^#9<)|7RaQ zKRFy9qC&n$K28u7g+6}Z*J|TKRLt_>&-3Bm>toMTK74G0Oc0{thd%s2`0$_cu?O4E z6NIQp`0%@Y`29ZoJAC->_u=2~!~diY{}CVlmwfoY@ZrDW!~Yi_{!e`P>wK;|zwt@` zdmq03`)Q|bq5^-HFhPh4&xb$Hhrh&!-{8Y<^x>EI@FPC_n|=5jefaP6;a}&&=d+jb zAu4wH@cVuEclq!??8AT9hyP<A{#SkYFZ%HR-iQCP4<C;!CJ2}}eE0=E>!Pzh>F4^S zmwWW%N{$LVj+h`s#cCh^dLRA<AHLlCA6G(DZ1G9|E+2lY4}Z50|Ghr^!#?~E`|$Dj zV}cMBcx*C3h>ANL{-tt#7834yUhb`8TdT@R&rewRQGnc|wo1r1dh#qL$lEkuJ|nV3 z3C(xsf$KH@pwoZ&uT?C!#Ia|U=5KSZU!La6Jyfe)?0iT)axc~5zgzP0Y(mCa!8<ko zWR@kVI?X@kq~~Wn+|-qO$5x)*lAATs?3Xf0h+B;lgb*YX1w3J$h>g^EfHXk}$&aPR z3qs>|cU78@;73|x!|wqnb0bp+(>&Y<DYfi0`@=s6e=_$qbtuvCGl<DI*wcLDN4k%n zVadI7#H<lN(K@SLWaNX|HAZecLiy7;-hqR`;DZWg@ZUQ44-QuCo6X-!MF>Wp`d5xD z{<b5Rd;3=U%->*uNBj7f7Ys(<?;N~D*U!k~4*qusoBLvup6?FW`e*8<Gx9bE&(ck0 z<b0NI=ie%KqqFutVqvzA`P&`lCtj-?#Nh8aczQmyD}7AQ|Mg%n>G`bI#*=l|Hu7x_ z{*Hr9&m;TGIQU$Hftao?B|spiD@~6l=5sE7^2I<*S1uqxAbu9dVgdwWy0Vb~f%ZL* z<7xr~%4y4W1PH`*-Ax1t#B|Lr0tDt~|4$PjP)=72;9wx;VfNQZ<FTqN6Ooj$t}hZG zP~QtUUM4^=`u<J9jJ}^+7>^mnZ!FBmiA$*nf%&;xy4u1V%j+%7FR%FdAp_IX*J@r@ zxD0rwC6593SeW%y*A11v9Qf0goNe{Eh4~rj7cE=?Z1zD|K0l%Rp(SVAj#_vI@L3D< zGsL-iJTgB&&8)UCKcBScCw>xnlO^|n&Gm)(=is=<lFtPmwD3IOPg}SW_;Cx*2mUJy zvoF42;f288v~U&h%NDK%{#Oex0zPA5_T@J$yaf173)cXfKbvHIYH>{0^AGV-9Ok~2 zxQ>S<=lfrL_lkk?1{|9#%xeh$Scie~<v8#flMKWwaO|=0N?>z;NI5^*{GcW0SUhCm zi-G^b!mELwvhXFqeAkPC`qtoh$---a`8Plel&{0_Qwy^{n|)8pFU27z4MfCEIEwXr zOuQb)bPHbwywJjL172?7%bCZ*8-U+o;VXdo_d*QRe<h9%3vUFz*TPo;f6T(0fQKyn zcHl2scr);~EX=vh+$XR+UTZ^~1QCeei36`K$w1tUW15Ap0mfh0%0T%R9Lp?xEpU^C zId@)d;jO?oTKIb4T^7CpIBj8$hr2Ay@$xwfZv%eL!rOtrXW<)xPg|IC_b)AcGw>fR z{4U^0ob(Y`zjx!9X5l!nXW<>di!Iy&ywbuufiJUgEAZPb+y=bO!t7rO3v)j0voOck zofhVJ{E&q?em-U41n}b)ZU^SOdkm}}uU#V+?g0Ldg_FQPu<(0;e`ev`z`wR|CvYSe zCj{#6!ohdn7>K)Zlv}t5c#eg8fom+h2lxsL_W{4d!YSZ)SvU>cY2kk0eHPvee2;~1 z0haF|A*Ox%a6D|udHp(SVfz0W3-1RWvGA?HFIo5i@V{F4HsCWBz8(0N7QO@cw-&w= zIFyGI0__{X5w$Sq>lqfNJxeTn7w|F*zZdut3*QZVrG+^juC?$zz;O%T3%uLH?*qQY z!tV#>yN3+4_aKgsTKGQT&scaN@aHUC1^ldqKLGr97XBdcKUnxfz(25X4EU!O=J@%Q zg+C1ZriDKOT*X8PwD*1-OD#MIywbuC0I#z!%im<-j{;wBVcN6P!X$ev{4wBt7M=%u zkA>$04_bHu@WU3S|BhO?3iufdR|Ah&_(9;8EKL8NvhX6{pIDgdi%|=6J@H2ie;nBS z!yNth2^>>MATatQj`<co1YB=n)_0ACS>BZvUINT_IT;vz3dg%F%=YWBFzc7L@I%0N zIrt+M{xsyDvM{Umn1#7M_(zQcpr6L^V@v)p@GmX=4DcHkX8l5iI3bW-iKEoQY~MK+ zX8YDynEL81{0Q(`3sb({!kjO!wlMq0b_+B8yDZH9(q-Xif%jUN>F;sykb|Fe@CzCn ze|_JPzwTgjgGc|cy!;}Z5DYGL@C*l6TA21%TbTM9EKK<-3sZi%g(<(<!jxa{;JAZ3 z9K6TDw>tQ43$whBYHa-Vq$B^5g=x==PWqP}{HleYLi(Ru`9A~v-xj96-&vUbHK!OS z1mpia3oiygX5j~cXIq&1=2@8YVXcKJZ?G`O+gb}#zTU#TzHPQJ<;@n30mm&&f2J+W z^tU_seGb0g!G|nNeMc>P82A|r(_h0Deh~Ou7N)=c(Zck{X$ubl|EGnI0RPs)oWD#k z{X<{A<o*EXqY|CK$SWL7A2Jv@*N6-TH%XMm8y(#2;B5}>b?`n14><UsgNGb^)WOFb zeB8k!4nE=FlMX)R;86#kb+B|4c*bAy-DeAzP+;K-2fO=`jgGv@!SdZ_OWzJl&hgyg z;9dvsbMSzJ4?1|z!G|0?<lv(Y9&zvq2cLBCDF=^QnEm;zgUuE@*{pwF5GMqKPlXlc z`71bnV&NBn&HWwa&*NA^LI;+&#sI|B-)v#ZcR0A$!2=E+bnuXak2!e6!6zMj+QFj^ zmX6RoIUi{Mkwxq|xX!^%4sLev4hQ!-c)-Df4jyvwF$a%0_@skRJ9yN=rhl0FmgxRr zu;*a2|7YY)j=b5yI~?5W-~k5@I(W#z#~eK3;FAtM?ch-dTaR#LdzXY*GZkd}JJ{^+ zF$LvKj=b5yI~?5W-~k5@I(W#z#~eK3;FAtM?ch-doBcXdAN#qatbYzADiGH>xXHoI z4&LG5UI!02c+kN^4nF4K5eJ`i@M#B+I#@o$u<B<&XO;E0=0jP32b=vms-WC{u1>te zNpC;5rhLGW4?1|r!N(jt;^31GKJDO92MfLb1XEQ1cd+MR`Ar@ZBhdaPM=rm~lTsz$ z;mCU(JmBC#2M;;;n1e?geA2<E9X#q_`B2KTw<K2sM693Z;5r94Ik?%uI~?5W-~k5@ zI@s)=(JEeF<u`o<2*f9>^u+R;J_-?t&3>7|XPxwUd6cNY^c4=Sa&V)A<u`v;{%ww2 ze)DI^_c`)|4nE}IqYggq;1do$<=`_8KI`B-y&pppW&Is&_P30@(UEU-Fu&zBf%-Ze zZ1$^|hVp}s{E&l>I{3JQPdNCLgL#j~!28kXa8wW=a2de<ZPs%}UPmDU<+N{$UN4yR z<~>0p|Lef>fv*H!2#DIY#LoU*@s^!C`x1NgzlPNIB|2*_yY7lw{)GsE{$E1%?+e-g z8<aAw0DlC%3;(#T5&l5L7ACvfdnWpi5`OR&=RZ#4-{CX=>L5#3R^g+$gslgES&jdI zR)0WgC+le)|7Bb)Y)H546t$`SU5xb~)tkCy{!(J|WtY{(FBURtFmWSseSDQ-FVk_o zjO*hoHCxB{OKh2Y*$S0wxrPl2)@xXgn)L9$H)$FEiC?o#%dz$T&%+Op)mkEC6pb8I z<UP7S7=Z)jGjj5*X;vm}(i!acf5@_iqfD^?=ZW%HXrt`$JyHI-U|K^!>g4I{E=4w} zNIn~<N>hG`=6?_|%XfV+s`uTj<%7)O*1yIl|5=^iZ6#B_RE87(nwUBp3`56NdY@^v z!#Cxd_^Xf`+D^Jt=P%NB7@3>)uOXPoe~ld~M~PlPPXnaw#(v{J>T`86XZKW|h4{U- z{w8+Q@)@DaW4ey%JY&CRl8VjQP0MGL6WPD<Jt{}ZWEInXy27>pGVolT%(1VEXQBSX zLy_|Ard<c_MCEVe!z=_(cPy6Attz+tX7H%f?I(v8fr)U$TE7vS@=g5T7LRfhF4hWf z((PdQCZEBtgP6$veSElvVC<s(B{*FB$#->vB_6zzXRJpY<!)L&Gjx*3d`ETp{BH{e zmQ#wuE&mDdT%BNvfopiidR3mYCzIcB9tAN``P&Yv6iqrI%jdP#<fktf_{?Ua@<(*} z2b>ASP5UwApQ!vpx_l3E29`eshg&|MiH0_x<D=mL9GP%j=Qrt@pTRBvN8mX_RHkdX TUPj`$9zV?YJPxDJtSkNpEC5kN literal 37032 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 S0m4B&ewdHvHAbJ=NBl1ecSL^x diff --git a/src/vmlinux.h b/src/vmlinux.h index 1c32721..759a141 100644 --- a/src/vmlinux.h +++ b/src/vmlinux.h @@ -157,6 +157,7 @@ struct file_system_type { struct lock_class_key s_writers_key[3]; struct lock_class_key i_lock_key; struct lock_class_key i_mutex_key; + struct lock_class_key invalidate_lock_key; struct lock_class_key i_mutex_dir_key; }; @@ -265,6 +266,7 @@ struct file_operations { ssize_t (*sendpage)(struct file *, struct page *, int, size_t, loff_t *, int); long unsigned int (*get_unmapped_area)(struct file *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); int (*check_flags)(int); + int (*setfl)(struct file *, long unsigned int); int (*flock)(struct file *, int, struct file_lock *); ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); @@ -274,7 +276,6 @@ struct file_operations { ssize_t (*copy_file_range)(struct file *, loff_t, struct file *, loff_t, size_t, unsigned int); loff_t (*remap_file_range)(struct file *, loff_t, struct file *, loff_t, loff_t, unsigned int); int (*fadvise)(struct file *, loff_t, loff_t, int); - bool may_pollfree; }; typedef __s64 time64_t; @@ -305,6 +306,7 @@ struct old_timespec32 { struct pollfd; struct restart_block { + long unsigned int arch_data; long int (*fn)(struct restart_block *); union { struct { @@ -336,6 +338,7 @@ struct restart_block { struct thread_info { long unsigned int flags; + long unsigned int syscall_work; u32 status; }; @@ -370,36 +373,6 @@ struct rb_node { struct rb_node *rb_left; }; -struct sched_statistics { - u64 wait_start; - u64 wait_max; - u64 wait_count; - u64 wait_sum; - u64 iowait_count; - u64 iowait_sum; - u64 sleep_start; - u64 sleep_max; - s64 sum_sleep_runtime; - u64 block_start; - u64 block_max; - u64 exec_max; - u64 slice_max; - u64 nr_migrations_cold; - u64 nr_failed_migrations_affine; - u64 nr_failed_migrations_running; - u64 nr_failed_migrations_hot; - u64 nr_forced_migrations; - u64 nr_wakeups; - u64 nr_wakeups_sync; - u64 nr_wakeups_migrate; - u64 nr_wakeups_local; - u64 nr_wakeups_remote; - u64 nr_wakeups_affine; - u64 nr_wakeups_affine_attempts; - u64 nr_wakeups_passive; - u64 nr_wakeups_idle; -}; - struct util_est { unsigned int enqueued; unsigned int ewma; @@ -429,7 +402,6 @@ struct sched_entity { u64 vruntime; u64 prev_sum_exec_runtime; u64 nr_migrations; - struct sched_statistics statistics; int depth; struct sched_entity *parent; struct cfs_rq *cfs_rq; @@ -438,6 +410,9 @@ struct sched_entity { long: 64; long: 64; long: 64; + long: 64; + long: 64; + long: 64; struct sched_avg avg; }; @@ -495,6 +470,48 @@ struct sched_dl_entity { struct sched_dl_entity *pi_se; }; +struct uclamp_se { + unsigned int value: 11; + unsigned int bucket_id: 3; + unsigned int active: 1; + unsigned int user_defined: 1; +}; + +struct sched_statistics { + u64 wait_start; + u64 wait_max; + u64 wait_count; + u64 wait_sum; + u64 iowait_count; + u64 iowait_sum; + u64 sleep_start; + u64 sleep_max; + s64 sum_sleep_runtime; + u64 block_start; + u64 block_max; + u64 exec_max; + u64 slice_max; + u64 nr_migrations_cold; + u64 nr_failed_migrations_affine; + u64 nr_failed_migrations_running; + u64 nr_failed_migrations_hot; + u64 nr_forced_migrations; + u64 nr_wakeups; + u64 nr_wakeups_sync; + u64 nr_wakeups_migrate; + u64 nr_wakeups_local; + u64 nr_wakeups_remote; + u64 nr_wakeups_affine; + u64 nr_wakeups_affine_attempts; + u64 nr_wakeups_passive; + u64 nr_wakeups_idle; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + struct cpumask { long unsigned int bits[128]; }; @@ -564,8 +581,22 @@ struct posix_cputimers { unsigned int expiry_active; }; +typedef atomic64_t atomic_long_t; + +struct optimistic_spin_queue { + atomic_t tail; +}; + +struct mutex { + atomic_long_t owner; + raw_spinlock_t wait_lock; + struct optimistic_spin_queue osq; + struct list_head wait_list; +}; + struct posix_cputimers_work { struct callback_head work; + struct mutex mutex; unsigned int scheduled; }; @@ -600,6 +631,13 @@ struct seccomp { struct seccomp_filter *filter; }; +struct syscall_user_dispatch { + char *selector; + long unsigned int offset; + long unsigned int len; + bool on_dispatch; +}; + struct wake_q_node { struct wake_q_node *next; }; @@ -630,19 +668,6 @@ struct seqcount_spinlock { typedef struct seqcount_spinlock seqcount_spinlock_t; -typedef atomic64_t atomic_long_t; - -struct optimistic_spin_queue { - atomic_t tail; -}; - -struct mutex { - atomic_long_t owner; - spinlock_t wait_lock; - struct optimistic_spin_queue osq; - struct list_head wait_list; -}; - struct arch_tlbflush_unmap_batch { struct cpumask cpumask; }; @@ -659,6 +684,8 @@ struct page_frag { __u32 size; }; +struct kmap_ctrl {}; + struct timer_list { struct hlist_node entry; long unsigned int expires; @@ -666,6 +693,10 @@ struct timer_list { u32 flags; }; +struct llist_head { + struct llist_node *first; +}; + struct desc_struct { u16 limit0; u16 base0; @@ -682,6 +713,12 @@ struct desc_struct { u16 base2: 8; }; +struct fpu_state_perm { + u64 __state_perm; + unsigned int __state_size; + unsigned int __user_state_size; +}; + struct fregs_state { u32 cwd; u32 swd; @@ -763,16 +800,31 @@ union fpregs_state { u8 __padding[4096]; }; +struct fpstate { + unsigned int size; + unsigned int user_size; + u64 xfeatures; + u64 user_xfeatures; + u64 xfd; + unsigned int is_valloc: 1; + unsigned int is_guest: 1; + unsigned int is_confidential: 1; + unsigned int in_use: 1; + long: 64; + long: 64; + long: 64; + union fpregs_state regs; +}; + struct fpu { unsigned int last_cpu; long unsigned int avx512_timestamp; + struct fpstate *fpstate; + struct fpstate *__task_fpstate; + struct fpu_state_perm perm; long: 64; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union fpregs_state state; + struct fpstate __fpstate; }; struct perf_event; @@ -797,7 +849,7 @@ struct thread_struct { struct io_bitmap *io_bitmap; long unsigned int iopl_emul; unsigned int iopl_warn: 1; - unsigned int sig_on_uaccess_err: 1; + u32 pkru; long: 64; long: 64; long: 64; @@ -882,9 +934,13 @@ struct uprobe_task; struct vm_struct; +struct bpf_local_storage; + +struct bpf_run_ctx; + struct task_struct { struct thread_info thread_info; - volatile long int state; + unsigned int __state; void *stack; refcount_t usage; unsigned int flags; @@ -903,16 +959,39 @@ struct task_struct { int normal_prio; unsigned int rt_priority; const struct sched_class *sched_class; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; struct sched_entity se; struct sched_rt_entity rt; - struct task_group *sched_task_group; struct sched_dl_entity dl; + struct rb_node core_node; + long unsigned int core_cookie; + unsigned int core_occupation; + struct task_group *sched_task_group; + struct uclamp_se uclamp_req[2]; + struct uclamp_se uclamp[2]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sched_statistics stats; struct hlist_head preempt_notifiers; unsigned int btrace_seq; unsigned int policy; int nr_cpus_allowed; const cpumask_t *cpus_ptr; + cpumask_t *user_cpus_ptr; cpumask_t cpus_mask; + void *migration_pending; + short unsigned int migration_disabled; + short unsigned int migration_flags; int trc_reader_nesting; int trc_ipi_to_cpu; union rcu_special trc_reader_special; @@ -946,6 +1025,7 @@ struct task_struct { unsigned int frozen: 1; unsigned int use_memdelay: 1; unsigned int in_memstall: 1; + unsigned int in_eventfd: 1; long unsigned int atomic_flags; struct restart_block restart_block; pid_t pid; @@ -965,6 +1045,7 @@ struct task_struct { struct completion *vfork_done; int *set_child_tid; int *clear_child_tid; + void *pf_io_worker; u64 utime; u64 stime; u64 gtime; @@ -1005,6 +1086,7 @@ struct task_struct { kuid_t loginuid; unsigned int sessionid; struct seccomp seccomp; + struct syscall_user_dispatch syscall_dispatch; u64 parent_exec_id; u64 self_exec_id; spinlock_t alloc_lock; @@ -1013,6 +1095,7 @@ struct task_struct { struct rb_root_cached pi_waiters; struct task_struct *pi_top_task; struct rt_mutex_waiter *pi_blocked_on; + unsigned int in_ubsan; void *journal_info; struct bio_list *bio_list; struct blk_plug *plug; @@ -1094,6 +1177,7 @@ struct task_struct { struct uprobe_task *utask; unsigned int sequential_io; unsigned int sequential_io_avg; + struct kmap_ctrl kmap_ctrl; int pagefault_disabled; struct task_struct *oom_reaper_list; struct timer_list oom_reaper_timer; @@ -1101,6 +1185,8 @@ struct task_struct { refcount_t stack_refcount; int patch_state; void *security; + struct bpf_local_storage *bpf_storage; + struct bpf_run_ctx *bpf_ctx; void *mce_vaddr; __u64 mce_kflags; u64 mce_addr; @@ -1109,6 +1195,8 @@ struct task_struct { __u64 __mce_reserved: 62; struct callback_head mce_kill_me; int mce_count; + struct llist_head kretprobe_instances; + struct callback_head l1d_flush_kill; long: 64; long: 64; struct thread_struct thread; @@ -1432,6 +1520,13 @@ struct pt_regs { long unsigned int ss; }; +enum { + GATE_INTERRUPT = 14, + GATE_TRAP = 15, + GATE_CALL = 12, + GATE_TASK = 5, +}; + struct idt_bits { u16 ist: 3; u16 zero: 5; @@ -1440,6 +1535,13 @@ struct idt_bits { u16 p: 1; }; +struct idt_data { + unsigned int vector; + unsigned int segment; + struct idt_bits bits; + const void *addr; +}; + struct gate_struct { u16 offset_low; u16 segment; @@ -1483,7 +1585,7 @@ typedef struct { } pgd_t; typedef struct { - pgd_t pgd; + p4dval_t p4d; } p4d_t; typedef struct { @@ -1498,12 +1600,12 @@ typedef struct page *pgtable_t; struct address_space; +struct page_pool; + struct kmem_cache; struct dev_pagemap; -struct obj_cgroup; - struct page { long unsigned int flags; union { @@ -1514,7 +1616,14 @@ struct page { long unsigned int private; }; struct { - long unsigned int dma_addr[2]; + long unsigned int pp_magic; + struct page_pool *pp; + long unsigned int _pp_mapping_pad; + long unsigned int dma_addr; + union { + long unsigned int dma_addr_upper; + atomic_long_t pp_frag_count; + }; }; struct { union { @@ -1572,43 +1681,31 @@ struct page { int units; }; atomic_t _refcount; - union { - struct mem_cgroup *mem_cgroup; - struct obj_cgroup **obj_cgroups; - }; + long unsigned int memcg_data; }; struct paravirt_callee_save { void *func; }; -struct pv_init_ops { - unsigned int (*patch)(u8, void *, long unsigned int, unsigned int); -}; - struct pv_lazy_ops { - void (*enter)(); - void (*leave)(); - void (*flush)(); -}; - -struct pv_time_ops { - long long unsigned int (*sched_clock)(); - long long unsigned int (*steal_clock)(int); + void (*enter)(void); + void (*leave)(void); + void (*flush)(void); }; struct pv_cpu_ops { - void (*io_delay)(); + void (*io_delay)(void); long unsigned int (*get_debugreg)(int); void (*set_debugreg)(int, long unsigned int); - long unsigned int (*read_cr0)(); + long unsigned int (*read_cr0)(void); void (*write_cr0)(long unsigned int); void (*write_cr4)(long unsigned int); - void (*load_tr_desc)(); + void (*load_tr_desc)(void); void (*load_gdt)(const struct desc_ptr *); void (*load_idt)(const struct desc_ptr *); void (*set_ldt)(const void *, unsigned int); - long unsigned int (*store_tr)(); + long unsigned int (*store_tr)(void); void (*load_tls)(struct thread_struct *, unsigned int); void (*load_gs_index)(unsigned int); void (*write_ldt_entry)(struct desc_struct *, int, const void *); @@ -1617,28 +1714,25 @@ struct pv_cpu_ops { void (*alloc_ldt)(struct desc_struct *, unsigned int); void (*free_ldt)(struct desc_struct *, unsigned int); void (*load_sp0)(long unsigned int); - void (*invalidate_io_bitmap)(); - void (*update_io_bitmap)(); - void (*wbinvd)(); + void (*invalidate_io_bitmap)(void); + void (*update_io_bitmap)(void); + void (*wbinvd)(void); void (*cpuid)(unsigned int *, unsigned int *, unsigned int *, unsigned int *); u64 (*read_msr)(unsigned int); void (*write_msr)(unsigned int, unsigned int, unsigned int); u64 (*read_msr_safe)(unsigned int, int *); int (*write_msr_safe)(unsigned int, unsigned int, unsigned int); u64 (*read_pmc)(int); - void (*usergs_sysret64)(); - void (*iret)(); void (*start_context_switch)(struct task_struct *); void (*end_context_switch)(struct task_struct *); }; struct pv_irq_ops { struct paravirt_callee_save save_fl; - struct paravirt_callee_save restore_fl; struct paravirt_callee_save irq_disable; struct paravirt_callee_save irq_enable; - void (*safe_halt)(); - void (*halt)(); + void (*safe_halt)(void); + void (*halt)(void); }; struct flush_tlb_info; @@ -1646,15 +1740,15 @@ struct flush_tlb_info; struct mmu_gather; struct pv_mmu_ops { - void (*flush_tlb_user)(); - void (*flush_tlb_kernel)(); + void (*flush_tlb_user)(void); + void (*flush_tlb_kernel)(void); void (*flush_tlb_one_user)(long unsigned int); - void (*flush_tlb_others)(const struct cpumask *, const struct flush_tlb_info *); + void (*flush_tlb_multi)(const struct cpumask *, const struct flush_tlb_info *); void (*tlb_remove_table)(struct mmu_gather *, void *); void (*exit_mmap)(struct mm_struct *); struct paravirt_callee_save read_cr2; void (*write_cr2)(long unsigned int); - long unsigned int (*read_cr3)(); + long unsigned int (*read_cr3)(void); void (*write_cr3)(long unsigned int); void (*activate_mm)(struct mm_struct *, struct mm_struct *); void (*dup_mmap)(struct mm_struct *, struct mm_struct *); @@ -1682,6 +1776,9 @@ struct pv_mmu_ops { struct paravirt_callee_save pud_val; struct paravirt_callee_save make_pud; void (*set_p4d)(p4d_t *, p4d_t); + struct paravirt_callee_save p4d_val; + struct paravirt_callee_save make_p4d; + void (*set_pgd)(pgd_t *, pgd_t); struct pv_lazy_ops lazy_mode; void (*set_fixmap)(unsigned int, phys_addr_t, pgprot_t); }; @@ -1691,8 +1788,9 @@ struct flush_tlb_info { long unsigned int start; long unsigned int end; u64 new_tlb_gen; - unsigned int stride_shift; - bool freed_tables; + unsigned int initiating_cpu; + u8 stride_shift; + u8 freed_tables; }; struct rw_semaphore { @@ -1716,7 +1814,7 @@ typedef struct { atomic64_t tlb_gen; struct rw_semaphore ldt_usr_sem; struct ldt_struct *ldt; - short unsigned int ia32_compat; + short unsigned int flags; struct mutex lock; void *vdso; const struct vdso_image *vdso_image; @@ -1767,7 +1865,6 @@ struct mm_struct { atomic_t membarrier_state; atomic_t mm_users; atomic_t mm_count; - atomic_t has_pinned; atomic_long_t pgtables_bytes; int map_count; spinlock_t page_table_lock; @@ -1795,7 +1892,7 @@ struct mm_struct { long unsigned int arg_end; long unsigned int env_start; long unsigned int env_end; - long unsigned int saved_auxv[46]; + long unsigned int saved_auxv[48]; struct mm_rss_stat rss_stat; struct linux_binfmt *binfmt; mm_context_t context; @@ -1849,6 +1946,7 @@ struct vm_area_struct { const struct vm_operations_struct *vm_ops; long unsigned int vm_pgoff; struct file *vm_file; + struct file *vm_prfile; void *vm_private_data; atomic_long_t swap_readahead_info; struct mempolicy *vm_policy; @@ -1864,8 +1962,6 @@ struct pv_lock_ops { }; struct paravirt_patch_template { - struct pv_init_ops init; - struct pv_time_ops time; struct pv_cpu_ops cpu; struct pv_irq_ops irq; struct pv_mmu_ops mmu; @@ -2010,6 +2106,9 @@ struct vdso_image { long unsigned int size; long unsigned int alt; long unsigned int alt_len; + long unsigned int extable_base; + long unsigned int extable_len; + const void *extable; long int sym_vvar_start; long int sym_vvar_page; long int sym_pvclock_page; @@ -2020,6 +2119,8 @@ struct vdso_image { long int sym___kernel_rt_sigreturn; long int sym___kernel_vsyscall; long int sym_int80_landing_pad; + long int sym_vdso32_sigreturn_landing_pad; + long int sym_vdso32_rt_sigreturn_landing_pad; }; struct xarray { @@ -2035,15 +2136,15 @@ struct address_space_operations; struct address_space { struct inode *host; struct xarray i_pages; + struct rw_semaphore invalidate_lock; gfp_t gfp_mask; atomic_t i_mmap_writable; struct rb_root_cached i_mmap; - struct rw_semaphore i_mmap_rwsem; long unsigned int nrpages; - long unsigned int nrexceptional; long unsigned int writeback_index; const struct address_space_operations *a_ops; long unsigned int flags; + struct rw_semaphore i_mmap_rwsem; errseq_t wb_err; spinlock_t private_lock; struct list_head private_list; @@ -2051,7 +2152,7 @@ struct address_space { }; struct vmem_altmap { - const long unsigned int base_pfn; + long unsigned int base_pfn; const long unsigned int end_pfn; const long unsigned int reserve; long unsigned int free; @@ -2077,8 +2178,7 @@ struct dev_pagemap_ops; struct dev_pagemap { struct vmem_altmap altmap; - struct percpu_ref *ref; - struct percpu_ref internal_ref; + struct percpu_ref ref; struct completion done; enum memory_type type; unsigned int flags; @@ -2154,8 +2254,7 @@ struct file { u64 f_version; void *f_security; void *private_data; - struct list_head f_ep_links; - struct list_head f_tfile_llink; + struct hlist_head *f_ep; struct address_space *f_mapping; errseq_t f_wb_err; errseq_t f_sb_err; @@ -2174,11 +2273,12 @@ struct vm_fault; struct vm_operations_struct { void (*open)(struct vm_area_struct *); void (*close)(struct vm_area_struct *); - int (*split)(struct vm_area_struct *, long unsigned int); + int (*may_split)(struct vm_area_struct *, long unsigned int); int (*mremap)(struct vm_area_struct *); + int (*mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int, long unsigned int); vm_fault_t (*fault)(struct vm_fault *); vm_fault_t (*huge_fault)(struct vm_fault *, enum page_entry_size); - void (*map_pages)(struct vm_fault *, long unsigned int, long unsigned int); + vm_fault_t (*map_pages)(struct vm_fault *, long unsigned int, long unsigned int); long unsigned int (*pagesize)(struct vm_area_struct *); vm_fault_t (*page_mkwrite)(struct vm_fault *); vm_fault_t (*pfn_mkwrite)(struct vm_fault *); @@ -2200,15 +2300,33 @@ struct core_state { struct completion startup; }; +enum fault_flag { + FAULT_FLAG_WRITE = 1, + FAULT_FLAG_MKWRITE = 2, + FAULT_FLAG_ALLOW_RETRY = 4, + FAULT_FLAG_RETRY_NOWAIT = 8, + FAULT_FLAG_KILLABLE = 16, + FAULT_FLAG_TRIED = 32, + FAULT_FLAG_USER = 64, + FAULT_FLAG_REMOTE = 128, + FAULT_FLAG_INSTRUCTION = 256, + FAULT_FLAG_INTERRUPTIBLE = 512, +}; + struct vm_fault { - struct vm_area_struct *vma; - unsigned int flags; - gfp_t gfp_mask; - long unsigned int pgoff; - long unsigned int address; + const struct { + struct vm_area_struct *vma; + gfp_t gfp_mask; + long unsigned int pgoff; + long unsigned int address; + }; + enum fault_flag flags; pmd_t *pmd; pud_t *pud; - pte_t orig_pte; + union { + pte_t orig_pte; + pmd_t orig_pmd; + }; struct page *cow_page; struct page *page; pte_t *pte; @@ -2233,7 +2351,7 @@ enum numa_stat_item { NUMA_INTERLEAVE_HIT = 3, NUMA_LOCAL = 4, NUMA_OTHER = 5, - NR_VM_NUMA_STAT_ITEMS = 6, + NR_VM_NUMA_EVENT_ITEMS = 6, }; enum zone_stat_item { @@ -2246,11 +2364,10 @@ enum zone_stat_item { NR_ZONE_UNEVICTABLE = 5, NR_ZONE_WRITE_PENDING = 6, NR_MLOCK = 7, - NR_PAGETABLE = 8, - NR_BOUNCE = 9, - NR_ZSPAGES = 10, - NR_FREE_CMA_PAGES = 11, - NR_VM_ZONE_STAT_ITEMS = 12, + NR_BOUNCE = 8, + NR_ZSPAGES = 9, + NR_FREE_CMA_PAGES = 10, + NR_VM_ZONE_STAT_ITEMS = 11, }; enum node_stat_item { @@ -2295,7 +2412,9 @@ enum node_stat_item { NR_FOLL_PIN_ACQUIRED = 34, NR_FOLL_PIN_RELEASED = 35, NR_KERNEL_STACK_KB = 36, - NR_VM_NODE_STAT_ITEMS = 37, + NR_PAGETABLE = 37, + NR_SWAPCACHE = 38, + NR_VM_NODE_STAT_ITEMS = 39, }; enum lru_list { @@ -2360,8 +2479,6 @@ struct rlimit { struct dev_pagemap_ops { void (*page_free)(struct page *); - void (*kill)(struct dev_pagemap *); - void (*cleanup)(struct dev_pagemap *); vm_fault_t (*migrate_to_ram)(struct vm_fault *); }; @@ -2396,7 +2513,7 @@ struct hrtimer_clock_base { seqcount_raw_spinlock_t seq; struct hrtimer *running; struct timerqueue_head active; - ktime_t (*get_time)(); + ktime_t (*get_time)(void); ktime_t offset; }; @@ -2409,6 +2526,7 @@ struct hrtimer_cpu_base { unsigned int in_hrtirq: 1; unsigned int hang_detected: 1; unsigned int softirq_activated: 1; + unsigned int online: 1; unsigned int nr_events; short unsigned int nr_retries; short unsigned int nr_hangs; @@ -2436,7 +2554,7 @@ typedef void __signalfn_t(int); typedef __signalfn_t *__sighandler_t; -typedef void __restorefn_t(); +typedef void __restorefn_t(void); typedef __restorefn_t *__sigrestore_t; @@ -2473,6 +2591,7 @@ union __sifields { struct { void *_addr; union { + int _trapno; short int _addr_lsb; struct { char _dummy_bnd[8]; @@ -2483,6 +2602,11 @@ union __sifields { char _dummy_pkey[8]; __u32 _pkey; } _addr_pkey; + struct { + long unsigned int _data; + __u32 _type; + __u32 _flags; + } _perf; }; } _sigfault; struct { @@ -2505,22 +2629,6 @@ struct kernel_siginfo { }; }; -struct user_struct { - refcount_t __count; - atomic_t processes; - atomic_t sigpending; - atomic_t fanotify_listeners; - atomic_long_t epoll_watches; - long unsigned int mq_bytes; - long unsigned int locked_shm; - long unsigned int unix_inflight; - atomic_long_t pipe_bufs; - struct hlist_node uidhash_node; - kuid_t uid; - atomic_long_t locked_vm; - struct ratelimit_state ratelimit; -}; - struct sigaction { __sighandler_t sa_handler; long unsigned int sa_flags; @@ -2581,7 +2689,7 @@ struct signal_struct { unsigned int flags; unsigned int is_child_subreaper: 1; unsigned int has_child_subreaper: 1; - int posix_timer_id; + unsigned int next_posix_timer_id; struct list_head posix_timers; struct hrtimer real_timer; ktime_t it_real_incr; @@ -2644,6 +2752,12 @@ struct rseq { long: 64; }; +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, +}; + enum perf_event_task_context { perf_invalid_context = 4294967295, perf_hw_context = 0, @@ -2656,6 +2770,7 @@ struct rq; struct rq_flags; struct sched_class { + int uclamp_enabled; void (*enqueue_task)(struct rq *, struct task_struct *, int); void (*dequeue_task)(struct rq *, struct task_struct *, int); void (*yield_task)(struct rq *); @@ -2665,12 +2780,14 @@ struct sched_class { void (*put_prev_task)(struct rq *, struct task_struct *); void (*set_next_task)(struct rq *, struct task_struct *, bool); int (*balance)(struct rq *, struct task_struct *, struct rq_flags *); - int (*select_task_rq)(struct task_struct *, int, int, int); + int (*select_task_rq)(struct task_struct *, int, int); + struct task_struct * (*pick_task)(struct rq *); void (*migrate_task_rq)(struct task_struct *, int); void (*task_woken)(struct rq *, struct task_struct *); - void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *); + void (*set_cpus_allowed)(struct task_struct *, const struct cpumask *, u32); void (*rq_online)(struct rq *); void (*rq_offline)(struct rq *); + struct rq * (*find_lock_rq)(struct task_struct *, struct rq *); void (*task_tick)(struct rq *, struct task_struct *, int); void (*task_fork)(struct task_struct *); void (*task_dead)(struct task_struct *); @@ -2688,10 +2805,14 @@ struct kernel_cap_struct { typedef struct kernel_cap_struct kernel_cap_t; +struct user_struct; + +struct ucounts; + struct group_info; struct cred { - atomic_t usage; + atomic_long_t usage; kuid_t uid; kgid_t gid; kuid_t suid; @@ -2714,6 +2835,7 @@ struct cred { void *security; struct user_struct *user; struct user_namespace *user_ns; + struct ucounts *ucounts; struct group_info *group_info; union { int non_rcu; @@ -2755,6 +2877,8 @@ struct assoc_array { long unsigned int nr_leaves_on_tree; }; +struct watch_list; + struct key_user; struct key_restriction; @@ -2766,6 +2890,7 @@ struct key { struct list_head graveyard_link; struct rb_node serial_node; }; + struct watch_list *watchers; struct rw_semaphore sem; struct key_user *user; void *security; @@ -2913,8 +3038,6 @@ struct bdi_writeback; struct file_lock_context; -struct block_device; - struct cdev; struct fsnotify_mark_connector; @@ -2982,7 +3105,6 @@ struct inode { struct list_head i_devices; union { struct pipe_inode_info *i_pipe; - struct block_device *i_bdev; struct cdev *i_cdev; char *i_link; unsigned int i_dir_seq; @@ -3092,8 +3214,14 @@ struct xattr_handler; struct fscrypt_operations; +struct fscrypt_keyring; + struct fsverity_operations; +struct unicode_map; + +struct block_device; + struct workqueue_struct; struct super_block { @@ -3117,8 +3245,10 @@ struct super_block { void *s_security; const struct xattr_handler **s_xattr; const struct fscrypt_operations *s_cop; - struct key *s_master_keys; + struct fscrypt_keyring *s_master_keys; const struct fsverity_operations *s_vop; + struct unicode_map *s_encoding; + __u16 s_encoding_flags; struct hlist_bl_head s_roots; struct list_head s_mounts; struct block_device *s_bdev; @@ -3144,7 +3274,7 @@ struct super_block { int cleancache_poolid; struct shrinker s_shrink; atomic_long_t s_remove_count; - atomic_long_t s_fsnotify_inode_refs; + atomic_long_t s_fsnotify_connectors; int s_readonly_remount; errseq_t s_wb_err; struct workqueue_struct *s_dio_done_wq; @@ -3156,8 +3286,7 @@ struct super_block { struct work_struct destroy_work; struct mutex s_sync_lock; int s_stack_depth; - long: 64; - long: 64; + long: 0; spinlock_t s_inode_list_lock; struct list_head s_inodes; spinlock_t s_inode_wblist_lock; @@ -3166,6 +3295,13 @@ struct super_block { long: 64; }; +struct vfsmount { + struct dentry *mnt_root; + struct super_block *mnt_sb; + int mnt_flags; + struct user_namespace *mnt_userns; +}; + struct kstat { u32 result_mask; umode_t mode; @@ -3261,6 +3397,25 @@ struct key_restriction { struct key_type *keytype; }; +struct percpu_counter { + raw_spinlock_t lock; + s64 count; + struct list_head list; + s32 *counters; +}; + +struct user_struct { + refcount_t __count; + struct percpu_counter epoll_watches; + long unsigned int unix_inflight; + atomic_long_t pipe_bufs; + struct hlist_node uidhash_node; + kuid_t uid; + atomic_long_t locked_vm; + atomic_t nr_watches; + struct ratelimit_state ratelimit; +}; + struct group_info { atomic_t usage; int ngroups; @@ -3507,30 +3662,32 @@ struct address_space_operations { struct fiemap_extent_info; +struct fileattr; + struct inode_operations { struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); - int (*permission)(struct inode *, int); - struct posix_acl * (*get_acl)(struct inode *, int); + int (*permission)(struct user_namespace *, struct inode *, int); + struct posix_acl * (*get_acl)(struct inode *, int, bool); int (*readlink)(struct dentry *, char *, int); - int (*create)(struct inode *, struct dentry *, umode_t, bool); + int (*create)(struct user_namespace *, struct inode *, struct dentry *, umode_t, bool); int (*link)(struct dentry *, struct inode *, struct dentry *); int (*unlink)(struct inode *, struct dentry *); - int (*symlink)(struct inode *, struct dentry *, const char *); - int (*mkdir)(struct inode *, struct dentry *, umode_t); + int (*symlink)(struct user_namespace *, struct inode *, struct dentry *, const char *); + int (*mkdir)(struct user_namespace *, struct inode *, struct dentry *, umode_t); int (*rmdir)(struct inode *, struct dentry *); - int (*mknod)(struct inode *, struct dentry *, umode_t, dev_t); - int (*rename)(struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); - int (*setattr)(struct dentry *, struct iattr *); - int (*getattr)(const struct path *, struct kstat *, u32, unsigned int); + int (*mknod)(struct user_namespace *, struct inode *, struct dentry *, umode_t, dev_t); + int (*rename)(struct user_namespace *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); + int (*setattr)(struct user_namespace *, struct dentry *, struct iattr *); + int (*getattr)(struct user_namespace *, const struct path *, struct kstat *, u32, unsigned int); ssize_t (*listxattr)(struct dentry *, char *, size_t); int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64); int (*update_time)(struct inode *, struct timespec64 *, int); int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); - int (*tmpfile)(struct inode *, struct dentry *, umode_t); - int (*set_acl)(struct inode *, struct posix_acl *, int); - long: 64; - long: 64; + int (*tmpfile)(struct user_namespace *, struct inode *, struct dentry *, umode_t); + int (*set_acl)(struct user_namespace *, struct inode *, struct posix_acl *, int); + int (*fileattr_set)(struct user_namespace *, struct dentry *, struct fileattr *); + int (*fileattr_get)(struct dentry *, struct fileattr *); long: 64; }; @@ -3596,6 +3753,7 @@ struct file_lock { }; struct lock_manager_operations { + void *lm_mod_owner; fl_owner_t (*lm_get_owner)(fl_owner_t); void (*lm_put_owner)(fl_owner_t); void (*lm_notify)(struct file_lock *); @@ -3604,6 +3762,8 @@ struct lock_manager_operations { int (*lm_change)(struct file_lock *, int, struct list_head *); void (*lm_setup)(struct file_lock *, void **); bool (*lm_breaker_owns_lease)(struct file_lock *); + bool (*lm_lock_expirable)(struct file_lock *); + void (*lm_expire_lock)(void); }; struct fasync_struct { @@ -3649,15 +3809,15 @@ struct super_operations { ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); struct dquot ** (*get_dquots)(struct inode *); - int (*bdev_try_to_free_page)(struct super_block *, struct page *, gfp_t); long int (*nr_cached_objects)(struct super_block *, struct shrink_control *); long int (*free_cached_objects)(struct super_block *, struct shrink_control *); + struct file * (*real_loop)(struct file *); }; -struct iomap; - struct fid; +struct iomap; + struct export_operations { int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *); struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int); @@ -3668,6 +3828,8 @@ struct export_operations { int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *); int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *); int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *); + u64 (*fetch_iversion)(struct inode *); + long unsigned int flags; }; struct xattr_handler { @@ -3676,7 +3838,7 @@ struct xattr_handler { int flags; bool (*list)(struct dentry *); int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t); - int (*set)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, const void *, size_t, int); + int (*set)(const struct xattr_handler *, struct user_namespace *, struct dentry *, struct inode *, const char *, const void *, size_t, int); }; union fscrypt_policy; @@ -3762,76 +3924,80 @@ enum vm_event_item { PGREUSE = 24, PGSTEAL_KSWAPD = 25, PGSTEAL_DIRECT = 26, - PGSCAN_KSWAPD = 27, - PGSCAN_DIRECT = 28, - PGSCAN_DIRECT_THROTTLE = 29, - PGSCAN_ANON = 30, - PGSCAN_FILE = 31, - PGSTEAL_ANON = 32, - PGSTEAL_FILE = 33, - PGSCAN_ZONE_RECLAIM_FAILED = 34, - PGINODESTEAL = 35, - SLABS_SCANNED = 36, - KSWAPD_INODESTEAL = 37, - KSWAPD_LOW_WMARK_HIT_QUICKLY = 38, - KSWAPD_HIGH_WMARK_HIT_QUICKLY = 39, - PAGEOUTRUN = 40, - PGROTATED = 41, - DROP_PAGECACHE = 42, - DROP_SLAB = 43, - OOM_KILL = 44, - NUMA_PTE_UPDATES = 45, - NUMA_HUGE_PTE_UPDATES = 46, - NUMA_HINT_FAULTS = 47, - NUMA_HINT_FAULTS_LOCAL = 48, - NUMA_PAGE_MIGRATE = 49, - PGMIGRATE_SUCCESS = 50, - PGMIGRATE_FAIL = 51, - THP_MIGRATION_SUCCESS = 52, - THP_MIGRATION_FAIL = 53, - THP_MIGRATION_SPLIT = 54, - COMPACTMIGRATE_SCANNED = 55, - COMPACTFREE_SCANNED = 56, - COMPACTISOLATED = 57, - COMPACTSTALL = 58, - COMPACTFAIL = 59, - COMPACTSUCCESS = 60, - KCOMPACTD_WAKE = 61, - KCOMPACTD_MIGRATE_SCANNED = 62, - KCOMPACTD_FREE_SCANNED = 63, - HTLB_BUDDY_PGALLOC = 64, - HTLB_BUDDY_PGALLOC_FAIL = 65, - UNEVICTABLE_PGCULLED = 66, - UNEVICTABLE_PGSCANNED = 67, - UNEVICTABLE_PGRESCUED = 68, - UNEVICTABLE_PGMLOCKED = 69, - UNEVICTABLE_PGMUNLOCKED = 70, - UNEVICTABLE_PGCLEARED = 71, - UNEVICTABLE_PGSTRANDED = 72, - THP_FAULT_ALLOC = 73, - THP_FAULT_FALLBACK = 74, - THP_FAULT_FALLBACK_CHARGE = 75, - THP_COLLAPSE_ALLOC = 76, - THP_COLLAPSE_ALLOC_FAILED = 77, - THP_FILE_ALLOC = 78, - THP_FILE_FALLBACK = 79, - THP_FILE_FALLBACK_CHARGE = 80, - THP_FILE_MAPPED = 81, - THP_SPLIT_PAGE = 82, - THP_SPLIT_PAGE_FAILED = 83, - THP_DEFERRED_SPLIT_PAGE = 84, - THP_SPLIT_PMD = 85, - THP_SPLIT_PUD = 86, - THP_ZERO_PAGE_ALLOC = 87, - THP_ZERO_PAGE_ALLOC_FAILED = 88, - THP_SWPOUT = 89, - THP_SWPOUT_FALLBACK = 90, - BALLOON_INFLATE = 91, - BALLOON_DEFLATE = 92, - BALLOON_MIGRATE = 93, - SWAP_RA = 94, - SWAP_RA_HIT = 95, - NR_VM_EVENT_ITEMS = 96, + PGDEMOTE_KSWAPD = 27, + PGDEMOTE_DIRECT = 28, + PGSCAN_KSWAPD = 29, + PGSCAN_DIRECT = 30, + PGSCAN_DIRECT_THROTTLE = 31, + PGSCAN_ANON = 32, + PGSCAN_FILE = 33, + PGSTEAL_ANON = 34, + PGSTEAL_FILE = 35, + PGSCAN_ZONE_RECLAIM_FAILED = 36, + PGINODESTEAL = 37, + SLABS_SCANNED = 38, + KSWAPD_INODESTEAL = 39, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 40, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 41, + PAGEOUTRUN = 42, + PGROTATED = 43, + DROP_PAGECACHE = 44, + DROP_SLAB = 45, + OOM_KILL = 46, + NUMA_PTE_UPDATES = 47, + NUMA_HUGE_PTE_UPDATES = 48, + NUMA_HINT_FAULTS = 49, + NUMA_HINT_FAULTS_LOCAL = 50, + NUMA_PAGE_MIGRATE = 51, + PGMIGRATE_SUCCESS = 52, + PGMIGRATE_FAIL = 53, + THP_MIGRATION_SUCCESS = 54, + THP_MIGRATION_FAIL = 55, + THP_MIGRATION_SPLIT = 56, + COMPACTMIGRATE_SCANNED = 57, + COMPACTFREE_SCANNED = 58, + COMPACTISOLATED = 59, + COMPACTSTALL = 60, + COMPACTFAIL = 61, + COMPACTSUCCESS = 62, + KCOMPACTD_WAKE = 63, + KCOMPACTD_MIGRATE_SCANNED = 64, + KCOMPACTD_FREE_SCANNED = 65, + HTLB_BUDDY_PGALLOC = 66, + HTLB_BUDDY_PGALLOC_FAIL = 67, + UNEVICTABLE_PGCULLED = 68, + UNEVICTABLE_PGSCANNED = 69, + UNEVICTABLE_PGRESCUED = 70, + UNEVICTABLE_PGMLOCKED = 71, + UNEVICTABLE_PGMUNLOCKED = 72, + UNEVICTABLE_PGCLEARED = 73, + UNEVICTABLE_PGSTRANDED = 74, + THP_FAULT_ALLOC = 75, + THP_FAULT_FALLBACK = 76, + THP_FAULT_FALLBACK_CHARGE = 77, + THP_COLLAPSE_ALLOC = 78, + THP_COLLAPSE_ALLOC_FAILED = 79, + THP_FILE_ALLOC = 80, + THP_FILE_FALLBACK = 81, + THP_FILE_FALLBACK_CHARGE = 82, + THP_FILE_MAPPED = 83, + THP_SPLIT_PAGE = 84, + THP_SPLIT_PAGE_FAILED = 85, + THP_DEFERRED_SPLIT_PAGE = 86, + THP_SPLIT_PMD = 87, + THP_SPLIT_PUD = 88, + THP_ZERO_PAGE_ALLOC = 89, + THP_ZERO_PAGE_ALLOC_FAILED = 90, + THP_SWPOUT = 91, + THP_SWPOUT_FALLBACK = 92, + BALLOON_INFLATE = 93, + BALLOON_DEFLATE = 94, + BALLOON_MIGRATE = 95, + SWAP_RA = 96, + SWAP_RA_HIT = 97, + DIRECT_MAP_LEVEL2_SPLIT = 98, + DIRECT_MAP_LEVEL3_SPLIT = 99, + NR_VM_EVENT_ITEMS = 100, }; struct tlb_context { @@ -3843,11 +4009,10 @@ struct tlb_state { struct mm_struct *loaded_mm; union { struct mm_struct *last_user_mm; - long unsigned int last_user_mm_ibpb; + long unsigned int last_user_mm_spec; }; u16 loaded_mm_asid; u16 next_asid; - bool is_lazy; bool invalidate_other; short unsigned int user_pcid_flush_mask; long unsigned int cr4; @@ -3873,14 +4038,15 @@ enum { __SD_BALANCE_WAKE = 3, __SD_WAKE_AFFINE = 4, __SD_ASYM_CPUCAPACITY = 5, - __SD_SHARE_CPUCAPACITY = 6, - __SD_SHARE_PKG_RESOURCES = 7, - __SD_SERIALIZE = 8, - __SD_ASYM_PACKING = 9, - __SD_PREFER_SIBLING = 10, - __SD_OVERLAP = 11, - __SD_NUMA = 12, - __SD_FLAG_CNT = 13, + __SD_ASYM_CPUCAPACITY_FULL = 6, + __SD_SHARE_CPUCAPACITY = 7, + __SD_SHARE_PKG_RESOURCES = 8, + __SD_SERIALIZE = 9, + __SD_ASYM_PACKING = 10, + __SD_PREFER_SIBLING = 11, + __SD_OVERLAP = 12, + __SD_NUMA = 13, + __SD_FLAG_CNT = 14, }; struct x86_legacy_devices { @@ -3911,19 +4077,19 @@ struct x86_hyper_runtime { }; struct x86_platform_ops { - long unsigned int (*calibrate_cpu)(); - long unsigned int (*calibrate_tsc)(); + long unsigned int (*calibrate_cpu)(void); + long unsigned int (*calibrate_tsc)(void); void (*get_wallclock)(struct timespec64 *); int (*set_wallclock)(const struct timespec64 *); - void (*iommu_shutdown)(); + void (*iommu_shutdown)(void); bool (*is_untracked_pat_range)(u64, u64); - void (*nmi_init)(); - unsigned char (*get_nmi_reason)(); - void (*save_sched_clock_state)(); - void (*restore_sched_clock_state)(); - void (*apic_post_init)(); + void (*nmi_init)(void); + unsigned char (*get_nmi_reason)(void); + void (*save_sched_clock_state)(void); + void (*restore_sched_clock_state)(void); + void (*apic_post_init)(void); struct x86_legacy_features legacy; - void (*set_legacy_features)(); + void (*set_legacy_features)(void); struct x86_hyper_runtime hyper; }; @@ -3931,8 +4097,14 @@ typedef signed char __s8; typedef __s8 s8; +typedef __u16 __be16; + typedef __u32 __le32; +typedef __u32 __be32; + +typedef __u32 __wsum; + typedef long unsigned int irq_hw_number_t; struct kernel_symbol { @@ -3941,7 +4113,7 @@ struct kernel_symbol { int namespace_offset; }; -typedef int (*initcall_t)(); +typedef int (*initcall_t)(void); typedef int initcall_entry_t; @@ -3991,6 +4163,26 @@ struct _ddebug { } key; }; +struct static_call_site { + s32 addr; + s32 key; +}; + +struct static_call_mod { + struct static_call_mod *next; + struct module *mod; + struct static_call_site *sites; +}; + +struct static_call_key { + void *func; + union { + long unsigned int type; + struct static_call_mod *mods; + struct static_call_site *sites; + }; +}; + enum system_states { SYSTEM_BOOTING = 0, SYSTEM_SCHEDULING = 1, @@ -4001,15 +4193,6 @@ enum system_states { SYSTEM_SUSPEND = 6, }; -struct orc_entry { - s16 sp_offset; - s16 bp_offset; - unsigned int sp_reg: 4; - unsigned int bp_reg: 4; - unsigned int type: 2; - unsigned int end: 1; -} __attribute__((packed)); - struct bug_entry { int bug_addr_disp; int file_disp; @@ -4025,32 +4208,17 @@ struct tracepoint_func { int prio; }; -struct static_call_key; - struct tracepoint { const char *name; struct static_key key; struct static_call_key *static_call_key; void *static_call_tramp; void *iterator; - int (*regfunc)(); - void (*unregfunc)(); + int (*regfunc)(void); + void (*unregfunc)(void); struct tracepoint_func *funcs; }; -struct static_call_mod; - -struct static_call_site; - -struct static_call_key { - void *func; - union { - long unsigned int type; - struct static_call_mod *mods; - struct static_call_site *sites; - }; -}; - typedef const int tracepoint_ptr_t; struct bpf_raw_event_map { @@ -4133,7 +4301,11 @@ struct perf_event_attr { __u64 aux_output: 1; __u64 cgroup: 1; __u64 text_poke: 1; - __u64 __reserved_1: 30; + __u64 build_id: 1; + __u64 inherit_thread: 1; + __u64 remove_on_exec: 1; + __u64 sigtrap: 1; + __u64 __reserved_1: 26; union { __u32 wakeup_events; __u32 wakeup_watermark; @@ -4161,6 +4333,7 @@ struct perf_event_attr { __u16 __reserved_2; __u32 aux_sample_size; __u32 __reserved_3; + __u64 sig_data; }; struct hw_perf_event_extra { @@ -4236,13 +4409,7 @@ struct hw_perf_event { }; struct irq_work { - union { - struct __call_single_node node; - struct { - struct llist_node llnode; - atomic_t flags; - }; - }; + struct __call_single_node node; void (*func)(struct irq_work *); }; @@ -4258,7 +4425,9 @@ typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_ struct ftrace_ops; -typedef void (*ftrace_func_t)(long unsigned int, long unsigned int, struct ftrace_ops *, struct pt_regs *); +struct ftrace_regs; + +typedef void (*ftrace_func_t)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *); struct ftrace_hash; @@ -4308,6 +4477,7 @@ struct perf_event { int nr_siblings; int event_caps; int group_caps; + unsigned int group_generation; struct perf_event *group_leader; struct pmu *pmu; void *pmu_private; @@ -4342,10 +4512,15 @@ struct perf_event { int rcu_pending; wait_queue_head_t waitq; struct fasync_struct *fasync; - int pending_wakeup; - int pending_kill; - int pending_disable; - struct irq_work pending; + unsigned int pending_wakeup; + unsigned int pending_kill; + unsigned int pending_disable; + unsigned int pending_sigtrap; + long unsigned int pending_addr; + struct irq_work pending_irq; + struct callback_head pending_task; + unsigned int pending_work; + struct rcuwait pending_work_wait; atomic_t event_limit; struct perf_addr_filters_head addr_filters; struct perf_addr_filter_range *addr_filter_ranges; @@ -4355,11 +4530,13 @@ struct perf_event { struct callback_head callback_head; struct pid_namespace *ns; u64 id; - u64 (*clock)(); + atomic64_t lost_samples; + u64 (*clock)(void); perf_overflow_handler_t overflow_handler; void *overflow_handler_context; perf_overflow_handler_t orig_overflow_handler; struct bpf_prog *prog; + u64 bpf_cookie; struct trace_event_call *tp_event; struct event_filter *filter; struct ftrace_ops ftrace_ops; @@ -4391,6 +4568,7 @@ struct ns_common { atomic_long_t stashed; const struct proc_ns_operations *ops; unsigned int inum; + refcount_t count; }; struct ctl_table; @@ -4432,13 +4610,10 @@ struct ctl_table_set { struct ctl_dir dir; }; -struct ucounts; - struct user_namespace { struct uid_gid_map uid_map; struct uid_gid_map gid_map; struct uid_gid_map projid_map; - atomic_t count; struct user_namespace *parent; int level; kuid_t owner; @@ -4454,7 +4629,7 @@ struct user_namespace { struct ctl_table_set set; struct ctl_table_header *sysctls; struct ucounts *ucounts; - int ucount_max[10]; + long int ucount_max[16]; }; struct pollfd { @@ -4466,30 +4641,22 @@ struct pollfd { typedef void (*smp_call_func_t)(void *); struct __call_single_data { - union { - struct __call_single_node node; - struct { - struct llist_node llist; - unsigned int flags; - u16 src; - u16 dst; - }; - }; + struct __call_single_node node; smp_call_func_t func; void *info; }; struct smp_ops { - void (*smp_prepare_boot_cpu)(); + void (*smp_prepare_boot_cpu)(void); void (*smp_prepare_cpus)(unsigned int); void (*smp_cpus_done)(unsigned int); void (*stop_other_cpus)(int); - void (*crash_stop_other_cpus)(); + void (*crash_stop_other_cpus)(void); void (*smp_send_reschedule)(int); int (*cpu_up)(unsigned int, struct task_struct *); - int (*cpu_disable)(); + int (*cpu_disable)(void); void (*cpu_die)(unsigned int); - void (*play_dead)(); + void (*play_dead)(void); void (*send_call_func_ipi)(const struct cpumask *); void (*send_call_func_single_ipi)(int); }; @@ -4525,8 +4692,8 @@ struct rcu_segcblist { struct callback_head **tails[4]; long unsigned int gp_seq[4]; long int len; - u8 enabled; - u8 offloaded; + long int seglen[4]; + u8 flags; }; struct srcu_node; @@ -4554,6 +4721,10 @@ struct srcu_data { struct srcu_struct *ssp; long: 64; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct srcu_node { @@ -4583,201 +4754,119 @@ struct srcu_struct { struct completion srcu_barrier_completion; atomic_t srcu_barrier_cpu_cnt; struct delayed_work work; + struct lockdep_map dep_map; }; -struct cgroup; +struct notifier_block; -struct cgroup_subsys; +typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *); -struct cgroup_subsys_state { - struct cgroup *cgroup; - struct cgroup_subsys *ss; - struct percpu_ref refcnt; - struct list_head sibling; - struct list_head children; - struct list_head rstat_css_node; - int id; +struct notifier_block { + notifier_fn_t notifier_call; + struct notifier_block *next; + int priority; +}; + +struct blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block *head; +}; + +struct raw_notifier_head { + struct notifier_block *head; +}; + +struct ldt_struct { + struct desc_struct *entries; + unsigned int nr_entries; + int slot; +}; + +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, +}; + +struct device; + +struct page_pool_params { unsigned int flags; - u64 serial_nr; - atomic_t online_cnt; - struct work_struct destroy_work; - struct rcu_work destroy_rwork; - struct cgroup_subsys_state *parent; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; }; -struct mem_cgroup_id { - int id; - refcount_t ref; +struct pp_alloc_cache { + u32 count; + struct page *cache[128]; }; -struct page_counter { - atomic_long_t usage; - long unsigned int min; - long unsigned int low; - long unsigned int high; - long unsigned int max; - struct page_counter *parent; - long unsigned int emin; - atomic_long_t min_usage; - atomic_long_t children_min_usage; - long unsigned int elow; - atomic_long_t low_usage; - atomic_long_t children_low_usage; - long unsigned int watermark; - long unsigned int failcnt; -}; - -struct vmpressure { - long unsigned int scanned; - long unsigned int reclaimed; - long unsigned int tree_scanned; - long unsigned int tree_reclaimed; - spinlock_t sr_lock; - struct list_head events; - struct mutex events_lock; - struct work_struct work; -}; - -struct kernfs_node; - -struct cgroup_file { - struct kernfs_node *kn; - long unsigned int notified_at; - struct timer_list notify_timer; -}; - -struct mem_cgroup_threshold_ary; - -struct mem_cgroup_thresholds { - struct mem_cgroup_threshold_ary *primary; - struct mem_cgroup_threshold_ary *spare; -}; - -struct memcg_padding { - char x[0]; -}; - -enum memcg_kmem_state { - KMEM_NONE = 0, - KMEM_ALLOCATED = 1, - KMEM_ONLINE = 2, -}; - -struct percpu_counter { - raw_spinlock_t lock; - s64 count; - struct list_head list; - s32 *counters; -}; - -struct fprop_global { - struct percpu_counter events; - unsigned int period; - seqcount_t sequence; -}; - -struct wb_domain { - spinlock_t lock; - struct fprop_global completions; - struct timer_list period_timer; - long unsigned int period_time; - long unsigned int dirty_limit_tstamp; - long unsigned int dirty_limit; -}; - -struct wb_completion { - atomic_t cnt; - wait_queue_head_t *waitq; -}; - -struct memcg_cgwb_frn { - u64 bdi_id; - int memcg_id; - u64 at; - struct wb_completion done; -}; - -struct deferred_split { - spinlock_t split_queue_lock; - struct list_head split_queue; - long unsigned int split_queue_len; -}; - -struct memcg_vmstats_percpu; - -struct mem_cgroup_per_node; - -struct mem_cgroup { - struct cgroup_subsys_state css; - struct mem_cgroup_id id; - struct page_counter memory; - union { - struct page_counter swap; - struct page_counter memsw; - }; - struct page_counter kmem; - struct page_counter tcpmem; - struct work_struct high_work; - long unsigned int soft_limit; - struct vmpressure vmpressure; - bool use_hierarchy; - bool oom_group; - bool oom_lock; - int under_oom; - int swappiness; - int oom_kill_disable; - struct cgroup_file events_file; - struct cgroup_file events_local_file; - struct cgroup_file swap_events_file; - struct mutex thresholds_lock; - struct mem_cgroup_thresholds thresholds; - struct mem_cgroup_thresholds memsw_thresholds; - struct list_head oom_notify; - long unsigned int move_charge_at_immigrate; - spinlock_t move_lock; - long unsigned int move_lock_flags; +struct ptr_ring { + int producer; + spinlock_t producer_lock; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; - struct memcg_padding _pad1_; - atomic_long_t vmstats[40]; - atomic_long_t vmevents[96]; - atomic_long_t memory_events[8]; - atomic_long_t memory_events_local[8]; - long unsigned int socket_pressure; - bool tcpmem_active; - int tcpmem_pressure; - int kmemcg_id; - enum memcg_kmem_state kmem_state; - struct obj_cgroup *objcg; - struct list_head objcg_list; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; long: 64; long: 64; - struct memcg_padding _pad2_; - atomic_t moving_account; - struct task_struct *move_lock_task; - struct memcg_vmstats_percpu *vmstats_local; - struct memcg_vmstats_percpu *vmstats_percpu; - struct list_head cgwb_list; - struct wb_domain cgwb_domain; - struct memcg_cgwb_frn cgwb_frn[4]; - struct list_head event_list; - spinlock_t event_list_lock; - struct deferred_split deferred_split_queue; - struct mem_cgroup_per_node *nodeinfo[0]; }; -struct obj_cgroup { - struct percpu_ref refcnt; - struct mem_cgroup *memcg; - atomic_t nr_charged_bytes; - union { - struct list_head list; - struct callback_head rcu; - }; +struct page_pool { + struct page_pool_params p; + struct delayed_work release_dw; + void (*disconnect)(void *); + long unsigned int defer_start; + long unsigned int defer_warn; + u32 pages_state_hold_cnt; + unsigned int frag_offset; + struct page *frag_page; + long int frag_users; + long: 64; + long: 64; + struct pp_alloc_cache alloc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct ptr_ring ring; + atomic_t pages_state_release_cnt; + refcount_t user_cnt; + u64 destroy_cnt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct anon_vma { @@ -4794,10 +4883,7 @@ struct mempolicy { atomic_t refcnt; short unsigned int mode; short unsigned int flags; - union { - short int preferred_node; - nodemask_t nodes; - } v; + nodemask_t nodes; union { nodemask_t cpuset_mems_allowed; nodemask_t user_nodemask; @@ -4830,6 +4916,7 @@ struct pglist_data; struct lruvec { struct list_head lists[5]; + spinlock_t lru_lock; long unsigned int anon_cost; long unsigned int file_cost; atomic_long_t nonresident_age; @@ -4838,7 +4925,9 @@ struct lruvec { struct pglist_data *pgdat; }; -struct per_cpu_pageset; +struct per_cpu_pages; + +struct per_cpu_zonestat; struct zone { long unsigned int _watermark[3]; @@ -4847,18 +4936,20 @@ struct zone { long int lowmem_reserve[5]; int node; struct pglist_data *zone_pgdat; - struct per_cpu_pageset *pageset; + struct per_cpu_pages *per_cpu_pageset; + struct per_cpu_zonestat *per_cpu_zonestats; + int pageset_high; + int pageset_batch; long unsigned int zone_start_pfn; atomic_long_t managed_pages; long unsigned int spanned_pages; long unsigned int present_pages; + long unsigned int present_early_pages; const char *name; long unsigned int nr_isolate_pageblock; seqlock_t span_seqlock; int initialized; - long: 64; - long: 64; - long: 64; + long: 0; struct zone_padding _pad1_; struct free_area free_area[11]; long unsigned int flags; @@ -4881,8 +4972,9 @@ struct zone { bool contiguous; long: 0; struct zone_padding _pad3_; - atomic_long_t vm_stat[12]; - atomic_long_t vm_numa_stat[6]; + atomic_long_t vm_stat[11]; + atomic_long_t vm_numa_event[6]; + long: 64; long: 64; long: 64; long: 64; @@ -4909,6 +5001,12 @@ enum zone_type { __MAX_NR_ZONES = 5, }; +struct deferred_split { + spinlock_t split_queue_lock; + struct list_head split_queue; + long unsigned int split_queue_len; +}; + struct per_cpu_nodestat; struct pglist_data { @@ -4930,6 +5028,7 @@ struct pglist_data { enum zone_type kcompactd_highest_zoneidx; wait_queue_head_t kcompactd_wait; struct task_struct *kcompactd; + bool proactive_compact_trigger; long unsigned int totalreserve_pages; long unsigned int min_unmapped_pages; long unsigned int min_slab_pages; @@ -4938,40 +5037,38 @@ struct pglist_data { long: 64; long: 64; long: 64; - long: 64; struct zone_padding _pad1_; - spinlock_t lru_lock; - long unsigned int first_deferred_pfn; struct deferred_split deferred_split_queue; struct lruvec __lruvec; long unsigned int flags; + long: 64; struct zone_padding _pad2_; struct per_cpu_nodestat *per_cpu_nodestats; - atomic_long_t vm_stat[37]; - long: 64; - long: 64; + atomic_long_t vm_stat[39]; }; struct per_cpu_pages { int count; int high; int batch; - struct list_head lists[3]; + short int free_factor; + short int expire; + struct list_head lists[15]; }; -struct per_cpu_pageset { - struct per_cpu_pages pcp; - s8 expire; - u16 vm_numa_stat_diff[6]; +struct per_cpu_zonestat { + s8 vm_stat_diff[11]; s8 stat_threshold; - s8 vm_stat_diff[12]; + long unsigned int vm_numa_event[6]; }; struct per_cpu_nodestat { s8 stat_threshold; - s8 vm_node_stat_diff[37]; + s8 vm_node_stat_diff[39]; }; +typedef struct pglist_data pg_data_t; + enum irq_domain_bus_token { DOMAIN_BUS_ANY = 0, DOMAIN_BUS_WIRED = 1, @@ -4992,6 +5089,8 @@ struct fwnode_handle; struct irq_domain_chip_generic; +struct irq_data; + struct irq_domain { struct list_head link; const char *name; @@ -5002,13 +5101,13 @@ struct irq_domain { struct fwnode_handle *fwnode; enum irq_domain_bus_token bus_token; struct irq_domain_chip_generic *gc; + struct device *dev; struct irq_domain *parent; irq_hw_number_t hwirq_max; - unsigned int revmap_direct_max_irq; unsigned int revmap_size; struct xarray revmap_tree; - struct mutex revmap_tree_mutex; - unsigned int linear_revmap[0]; + struct mutex revmap_mutex; + struct irq_data *revmap[0]; }; typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); @@ -5044,498 +5143,6 @@ struct ctl_table_root { int (*permissions)(struct ctl_table_header *, struct ctl_table *); }; -enum umh_disable_depth { - UMH_ENABLED = 0, - UMH_FREEZING = 1, - UMH_DISABLED = 2, -}; - -enum refcount_saturation_type { - REFCOUNT_ADD_NOT_ZERO_OVF = 0, - REFCOUNT_ADD_OVF = 1, - REFCOUNT_ADD_UAF = 2, - REFCOUNT_SUB_UAF = 3, - REFCOUNT_DEC_LEAK = 4, -}; - -struct kref { - refcount_t refcount; -}; - -struct idr { - struct xarray idr_rt; - unsigned int idr_base; - unsigned int idr_next; -}; - -struct fs_pin; - -struct pid_namespace { - struct kref kref; - struct idr idr; - struct callback_head rcu; - unsigned int pid_allocated; - struct task_struct *child_reaper; - struct kmem_cache *pid_cachep; - unsigned int level; - struct pid_namespace *parent; - struct fs_pin *bacct; - struct user_namespace *user_ns; - struct ucounts *ucounts; - int reboot; - struct ns_common ns; -}; - -struct task_cputime { - u64 stime; - u64 utime; - long long unsigned int sum_exec_runtime; -}; - -struct uts_namespace; - -struct ipc_namespace; - -struct mnt_namespace; - -struct net; - -struct time_namespace; - -struct cgroup_namespace; - -struct nsproxy { - atomic_t count; - struct uts_namespace *uts_ns; - struct ipc_namespace *ipc_ns; - struct mnt_namespace *mnt_ns; - struct pid_namespace *pid_ns_for_children; - struct net *net_ns; - struct time_namespace *time_ns; - struct time_namespace *time_ns_for_children; - struct cgroup_namespace *cgroup_ns; -}; - -struct bio; - -struct bio_list { - struct bio *head; - struct bio *tail; -}; - -struct blk_plug { - struct list_head mq_list; - struct list_head cb_list; - short unsigned int rq_count; - bool multiple_queues; - bool nowait; -}; - -struct reclaim_state { - long unsigned int reclaimed_slab; -}; - -struct fprop_local_percpu { - struct percpu_counter events; - unsigned int period; - raw_spinlock_t lock; -}; - -enum wb_reason { - WB_REASON_BACKGROUND = 0, - WB_REASON_VMSCAN = 1, - WB_REASON_SYNC = 2, - WB_REASON_PERIODIC = 3, - WB_REASON_LAPTOP_TIMER = 4, - WB_REASON_FS_FREE_SPACE = 5, - WB_REASON_FORKER_THREAD = 6, - WB_REASON_FOREIGN_FLUSH = 7, - WB_REASON_MAX = 8, -}; - -struct bdi_writeback { - struct backing_dev_info *bdi; - long unsigned int state; - long unsigned int last_old_flush; - struct list_head b_dirty; - struct list_head b_io; - struct list_head b_more_io; - struct list_head b_dirty_time; - spinlock_t list_lock; - struct percpu_counter stat[4]; - long unsigned int congested; - long unsigned int bw_time_stamp; - long unsigned int dirtied_stamp; - long unsigned int written_stamp; - long unsigned int write_bandwidth; - long unsigned int avg_write_bandwidth; - long unsigned int dirty_ratelimit; - long unsigned int balanced_dirty_ratelimit; - struct fprop_local_percpu completions; - int dirty_exceeded; - enum wb_reason start_all_reason; - spinlock_t work_lock; - struct list_head work_list; - struct delayed_work dwork; - long unsigned int dirty_sleep; - struct list_head bdi_node; - struct percpu_ref refcnt; - struct fprop_local_percpu memcg_completions; - struct cgroup_subsys_state *memcg_css; - struct cgroup_subsys_state *blkcg_css; - struct list_head memcg_node; - struct list_head blkcg_node; - union { - struct work_struct release_work; - struct callback_head rcu; - }; -}; - -struct device; - -struct backing_dev_info { - u64 id; - struct rb_node rb_node; - struct list_head bdi_list; - long unsigned int ra_pages; - long unsigned int io_pages; - struct kref refcnt; - unsigned int capabilities; - unsigned int min_ratio; - unsigned int max_ratio; - unsigned int max_prop_frac; - atomic_long_t tot_write_bandwidth; - struct bdi_writeback wb; - struct list_head wb_list; - struct xarray cgwb_tree; - struct mutex cgwb_release_mutex; - struct rw_semaphore wb_switch_rwsem; - wait_queue_head_t wb_waitq; - struct device *dev; - char dev_name[64]; - struct device *owner; - struct timer_list laptop_mode_wb_timer; - struct dentry *debug_dir; -}; - -struct css_set { - struct cgroup_subsys_state *subsys[13]; - refcount_t refcount; - struct css_set *dom_cset; - struct cgroup *dfl_cgrp; - int nr_tasks; - struct list_head tasks; - struct list_head mg_tasks; - struct list_head dying_tasks; - struct list_head task_iters; - struct list_head e_cset_node[13]; - struct list_head threaded_csets; - struct list_head threaded_csets_node; - struct hlist_node hlist; - struct list_head cgrp_links; - struct list_head mg_src_preload_node; - struct list_head mg_dst_preload_node; - struct list_head mg_node; - struct cgroup *mg_src_cgrp; - struct cgroup *mg_dst_cgrp; - struct css_set *mg_dst_cset; - bool dead; - struct callback_head callback_head; -}; - -typedef u32 compat_uptr_t; - -struct compat_robust_list { - compat_uptr_t next; -}; - -typedef s32 compat_long_t; - -struct compat_robust_list_head { - struct compat_robust_list list; - compat_long_t futex_offset; - compat_uptr_t list_op_pending; -}; - -struct perf_event_groups { - struct rb_root tree; - u64 index; -}; - -struct perf_event_context { - struct pmu *pmu; - raw_spinlock_t lock; - struct mutex mutex; - struct list_head active_ctx_list; - struct perf_event_groups pinned_groups; - struct perf_event_groups flexible_groups; - struct list_head event_list; - struct list_head pinned_active; - struct list_head flexible_active; - int nr_events; - int nr_active; - int is_active; - int nr_stat; - int nr_freq; - int rotate_disable; - int rotate_necessary; - refcount_t refcount; - struct task_struct *task; - u64 time; - u64 timestamp; - u64 timeoffset; - struct perf_event_context *parent_ctx; - u64 parent_gen; - u64 generation; - int pin_count; - int nr_cgroups; - void *task_ctx_data; - struct callback_head callback_head; -}; - -struct task_delay_info { - raw_spinlock_t lock; - unsigned int flags; - u64 blkio_start; - u64 blkio_delay; - u64 swapin_delay; - u32 blkio_count; - u32 swapin_count; - u64 freepages_start; - u64 freepages_delay; - u64 thrashing_start; - u64 thrashing_delay; - u32 freepages_count; - u32 thrashing_count; -}; - -struct ftrace_ret_stack { - long unsigned int ret; - long unsigned int func; - long long unsigned int calltime; - long unsigned int *retp; -}; - -struct kset; - -struct kobj_type; - -struct kobject { - const char *name; - struct list_head entry; - struct kobject *parent; - struct kset *kset; - struct kobj_type *ktype; - struct kernfs_node *sd; - struct kref kref; - unsigned int state_initialized: 1; - unsigned int state_in_sysfs: 1; - unsigned int state_add_uevent_sent: 1; - unsigned int state_remove_uevent_sent: 1; - unsigned int uevent_suppress: 1; -}; - -struct blk_integrity_profile; - -struct blk_integrity { - const struct blk_integrity_profile *profile; - unsigned char flags; - unsigned char tuple_size; - unsigned char interval_exp; - unsigned char tag_size; -}; - -enum rpm_status { - RPM_ACTIVE = 0, - RPM_RESUMING = 1, - RPM_SUSPENDED = 2, - RPM_SUSPENDING = 3, -}; - -struct blk_rq_stat { - u64 mean; - u64 min; - u64 max; - u32 nr_samples; - u64 batch; -}; - -enum blk_zoned_model { - BLK_ZONED_NONE = 0, - BLK_ZONED_HA = 1, - BLK_ZONED_HM = 2, -}; - -struct queue_limits { - long unsigned int bounce_pfn; - long unsigned int seg_boundary_mask; - long unsigned int virt_boundary_mask; - unsigned int max_hw_sectors; - unsigned int max_dev_sectors; - unsigned int chunk_sectors; - unsigned int max_sectors; - unsigned int max_segment_size; - unsigned int physical_block_size; - unsigned int logical_block_size; - unsigned int alignment_offset; - unsigned int io_min; - unsigned int io_opt; - unsigned int max_discard_sectors; - unsigned int max_hw_discard_sectors; - unsigned int max_write_same_sectors; - unsigned int max_write_zeroes_sectors; - unsigned int max_zone_append_sectors; - unsigned int discard_granularity; - unsigned int discard_alignment; - short unsigned int max_segments; - short unsigned int max_integrity_segments; - short unsigned int max_discard_segments; - unsigned char misaligned; - unsigned char discard_misaligned; - unsigned char raid_partial_stripes_expensive; - enum blk_zoned_model zoned; -}; - -struct bsg_ops; - -struct bsg_class_device { - struct device *class_dev; - int minor; - struct request_queue *queue; - const struct bsg_ops *ops; -}; - -typedef void *mempool_alloc_t(gfp_t, void *); - -typedef void mempool_free_t(void *, void *); - -struct mempool_s { - spinlock_t lock; - int min_nr; - int curr_nr; - void **elements; - void *pool_data; - mempool_alloc_t *alloc; - mempool_free_t *free; - wait_queue_head_t wait; -}; - -typedef struct mempool_s mempool_t; - -struct bio_set { - struct kmem_cache *bio_slab; - unsigned int front_pad; - mempool_t bio_pool; - mempool_t bvec_pool; - mempool_t bio_integrity_pool; - mempool_t bvec_integrity_pool; - spinlock_t rescue_lock; - struct bio_list rescue_list; - struct work_struct rescue_work; - struct workqueue_struct *rescue_workqueue; -}; - -struct request; - -struct elevator_queue; - -struct blk_queue_stats; - -struct rq_qos; - -struct blk_mq_ops; - -struct blk_mq_ctx; - -struct blk_mq_hw_ctx; - -struct blk_stat_callback; - -struct blkcg_gq; - -struct blk_trace; - -struct blk_flush_queue; - -struct throtl_data; - -struct blk_mq_tag_set; - -struct request_queue { - struct request *last_merge; - struct elevator_queue *elevator; - struct percpu_ref q_usage_counter; - struct blk_queue_stats *stats; - struct rq_qos *rq_qos; - const struct blk_mq_ops *mq_ops; - struct blk_mq_ctx *queue_ctx; - unsigned int queue_depth; - struct blk_mq_hw_ctx **queue_hw_ctx; - unsigned int nr_hw_queues; - struct backing_dev_info *backing_dev_info; - void *queuedata; - long unsigned int queue_flags; - atomic_t pm_only; - int id; - gfp_t bounce_gfp; - spinlock_t queue_lock; - struct kobject kobj; - struct kobject *mq_kobj; - struct blk_integrity integrity; - struct device *dev; - enum rpm_status rpm_status; - unsigned int nr_pending; - long unsigned int nr_requests; - unsigned int dma_pad_mask; - unsigned int dma_alignment; - unsigned int rq_timeout; - int poll_nsec; - struct blk_stat_callback *poll_cb; - struct blk_rq_stat poll_stat[16]; - struct timer_list timeout; - struct work_struct timeout_work; - atomic_t nr_active_requests_shared_sbitmap; - struct list_head icq_list; - long unsigned int blkcg_pols[1]; - struct blkcg_gq *root_blkg; - struct list_head blkg_list; - struct queue_limits limits; - unsigned int required_elevator_features; - unsigned int nr_zones; - long unsigned int *conv_zones_bitmap; - long unsigned int *seq_zones_wlock; - unsigned int max_open_zones; - unsigned int max_active_zones; - unsigned int sg_timeout; - unsigned int sg_reserved_size; - int node; - struct mutex debugfs_mutex; - struct blk_trace *blk_trace; - struct blk_flush_queue *fq; - struct list_head requeue_list; - spinlock_t requeue_lock; - struct delayed_work requeue_work; - struct mutex sysfs_lock; - struct mutex sysfs_dir_lock; - struct list_head unused_hctx_list; - spinlock_t unused_hctx_lock; - int mq_freeze_depth; - struct bsg_class_device bsg_dev; - struct throtl_data *td; - struct callback_head callback_head; - wait_queue_head_t mq_freeze_wq; - struct mutex mq_freeze_lock; - struct blk_mq_tag_set *tag_set; - struct list_head tag_set_list; - struct bio_set bio_split; - struct dentry *debugfs_dir; - struct dentry *sched_debugfs_dir; - struct dentry *rqos_debugfs_dir; - bool mq_sysfs_init_done; - size_t cmd_size; - u64 write_hints[5]; -}; - typedef __u64 Elf64_Addr; typedef __u16 Elf64_Half; @@ -5591,14 +5198,23 @@ struct elf64_shdr { typedef struct elf64_shdr Elf64_Shdr; +struct idr { + struct xarray idr_rt; + unsigned int idr_base; + unsigned int idr_next; +}; + struct kernfs_root; struct kernfs_elem_dir { long unsigned int subdirs; struct rb_root children; struct kernfs_root *root; + long unsigned int rev; }; +struct kernfs_node; + struct kernfs_syscall_ops; struct kernfs_root { @@ -5722,10 +5338,10 @@ struct sock; struct kobj_ns_type_operations { enum kobj_ns_type type; - bool (*current_may_mount)(); - void * (*grab_current_ns)(); + bool (*current_may_mount)(void); + void * (*grab_current_ns)(void); const void * (*netlink_ns)(struct sock *); - const void * (*initial_ns)(); + const void * (*initial_ns)(void); void (*drop_ns)(void *); }; @@ -5734,6 +5350,8 @@ struct attribute { umode_t mode; }; +struct kobject; + struct bin_attribute; struct attribute_group { @@ -5744,10 +5362,34 @@ struct attribute_group { struct bin_attribute **bin_attrs; }; +struct kref { + refcount_t refcount; +}; + +struct kset; + +struct kobj_type; + +struct kobject { + const char *name; + struct list_head entry; + struct kobject *parent; + struct kset *kset; + struct kobj_type *ktype; + struct kernfs_node *sd; + struct kref kref; + unsigned int state_initialized: 1; + unsigned int state_in_sysfs: 1; + unsigned int state_add_uevent_sent: 1; + unsigned int state_remove_uevent_sent: 1; + unsigned int uevent_suppress: 1; +}; + struct bin_attribute { struct attribute attr; size_t size; void *private; + struct address_space * (*f_mapping)(void); ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *); @@ -5758,6 +5400,14 @@ struct sysfs_ops { ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); }; +enum refcount_saturation_type { + REFCOUNT_ADD_NOT_ZERO_OVF = 0, + REFCOUNT_ADD_OVF = 1, + REFCOUNT_ADD_UAF = 2, + REFCOUNT_SUB_UAF = 3, + REFCOUNT_DEC_LEAK = 4, +}; + struct kset_uevent_ops; struct kset { @@ -5866,11 +5516,7 @@ struct module_layout { struct mod_tree_node mtn; }; -struct mod_arch_specific { - unsigned int num_orcs; - int *orc_unwind_ip; - struct orc_entry *orc_unwind; -}; +struct mod_arch_specific {}; struct mod_kallsyms { Elf64_Sym *symtab; @@ -5914,17 +5560,9 @@ struct module { bool using_gplonly_symbols; bool sig_ok; bool async_probe_requested; - const struct kernel_symbol *gpl_future_syms; - const s32 *gpl_future_crcs; - unsigned int num_gpl_future_syms; unsigned int num_exentries; struct exception_table_entry *extable; - int (*init)(); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + int (*init)(void); struct module_layout core_layout; struct module_layout init_layout; struct mod_arch_specific arch; @@ -5947,6 +5585,8 @@ struct module { struct srcu_struct **srcu_struct_ptrs; unsigned int num_bpf_raw_events; struct bpf_raw_event_map *bpf_raw_events; + unsigned int btf_data_size; + void *btf_data; struct jump_entry *jump_entries; unsigned int num_jump_entries; unsigned int num_trace_bprintk_fmt; @@ -5968,7 +5608,7 @@ struct module { struct klp_modinfo *klp_info; struct list_head source_list; struct list_head target_list; - void (*exit)(); + void (*exit)(void); atomic_t refcnt; struct error_injection_entry *ei_funcs; unsigned int num_ei_funcs; @@ -5976,6 +5616,7 @@ struct module { long: 64; long: 64; long: 64; + long: 64; }; struct error_injection_entry { @@ -5983,11 +5624,6 @@ struct error_injection_entry { int etype; }; -struct static_call_site { - s32 addr; - s32 key; -}; - struct module_attribute { struct attribute attr; ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *); @@ -6007,7 +5643,7 @@ struct klp_modinfo { struct exception_table_entry { int insn; int fixup; - int handler; + int data; }; struct trace_event_functions; @@ -6033,7 +5669,10 @@ struct trace_event_call { struct trace_event event; char *print_fmt; struct event_filter *filter; - void *mod; + union { + void *module; + atomic_t refcnt; + }; void *data; int flags; int perf_refcount; @@ -6048,6 +5687,747 @@ struct trace_eval_map { long unsigned int eval_value; }; +struct cgroup; + +struct cgroup_subsys; + +struct cgroup_subsys_state { + struct cgroup *cgroup; + struct cgroup_subsys *ss; + struct percpu_ref refcnt; + struct list_head sibling; + struct list_head children; + struct list_head rstat_css_node; + int id; + unsigned int flags; + u64 serial_nr; + atomic_t online_cnt; + struct work_struct destroy_work; + struct rcu_work destroy_rwork; + struct cgroup_subsys_state *parent; +}; + +struct mem_cgroup_id { + int id; + refcount_t ref; +}; + +struct page_counter { + atomic_long_t usage; + long unsigned int min; + long unsigned int low; + long unsigned int high; + long unsigned int max; + long unsigned int emin; + atomic_long_t min_usage; + atomic_long_t children_min_usage; + long unsigned int elow; + atomic_long_t low_usage; + atomic_long_t children_low_usage; + long unsigned int watermark; + long unsigned int failcnt; + struct page_counter *parent; +}; + +struct vmpressure { + long unsigned int scanned; + long unsigned int reclaimed; + long unsigned int tree_scanned; + long unsigned int tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; +}; + +struct cgroup_file { + struct kernfs_node *kn; + long unsigned int notified_at; + struct timer_list notify_timer; +}; + +struct mem_cgroup_threshold_ary; + +struct mem_cgroup_thresholds { + struct mem_cgroup_threshold_ary *primary; + struct mem_cgroup_threshold_ary *spare; +}; + +struct memcg_padding { + char x[0]; +}; + +struct memcg_vmstats { + long int state[42]; + long unsigned int events[100]; + long int state_pending[42]; + long unsigned int events_pending[100]; +}; + +enum memcg_kmem_state { + KMEM_NONE = 0, + KMEM_ALLOCATED = 1, + KMEM_ONLINE = 2, +}; + +struct fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; +}; + +struct wb_domain { + spinlock_t lock; + struct fprop_global completions; + struct timer_list period_timer; + long unsigned int period_time; + long unsigned int dirty_limit_tstamp; + long unsigned int dirty_limit; +}; + +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; +}; + +struct memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + u64 at; + struct wb_completion done; +}; + +struct obj_cgroup; + +struct memcg_vmstats_percpu; + +struct mem_cgroup_per_node; + +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; + struct page_counter memory; + union { + struct page_counter swap; + struct page_counter memsw; + }; + struct page_counter kmem; + struct page_counter tcpmem; + struct work_struct high_work; + long unsigned int soft_limit; + struct vmpressure vmpressure; + bool oom_group; + bool oom_lock; + int under_oom; + int swappiness; + int oom_kill_disable; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct mutex thresholds_lock; + struct mem_cgroup_thresholds thresholds; + struct mem_cgroup_thresholds memsw_thresholds; + struct list_head oom_notify; + long unsigned int move_charge_at_immigrate; + spinlock_t move_lock; + long unsigned int move_lock_flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct memcg_padding _pad1_; + struct memcg_vmstats vmstats; + atomic_long_t memory_events[8]; + atomic_long_t memory_events_local[8]; + long unsigned int socket_pressure; + bool tcpmem_active; + int tcpmem_pressure; + int kmemcg_id; + enum memcg_kmem_state kmem_state; + struct obj_cgroup *objcg; + struct list_head objcg_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct memcg_padding _pad2_; + atomic_t moving_account; + struct task_struct *move_lock_task; + struct memcg_vmstats_percpu *vmstats_percpu; + struct list_head cgwb_list; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct list_head event_list; + spinlock_t event_list_lock; + struct deferred_split deferred_split_queue; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 64; +}; + +struct fs_pin; + +struct pid_namespace { + struct idr idr; + struct callback_head rcu; + unsigned int pid_allocated; + struct task_struct *child_reaper; + struct kmem_cache *pid_cachep; + unsigned int level; + struct pid_namespace *parent; + struct fs_pin *bacct; + struct user_namespace *user_ns; + struct ucounts *ucounts; + int reboot; + struct ns_common ns; +}; + +struct ucounts { + struct hlist_node node; + struct user_namespace *ns; + kuid_t uid; + atomic_t count; + atomic_long_t ucount[16]; +}; + +struct rhash_head { + struct rhash_head *next; +}; + +struct rhashtable; + +struct rhashtable_compare_arg { + struct rhashtable *ht; + const void *key; +}; + +typedef u32 (*rht_hashfn_t)(const void *, u32, u32); + +typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32); + +typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *); + +struct rhashtable_params { + u16 nelem_hint; + u16 key_len; + u16 key_offset; + u16 head_offset; + unsigned int max_size; + u16 min_size; + bool automatic_shrinking; + rht_hashfn_t hashfn; + rht_obj_hashfn_t obj_hashfn; + rht_obj_cmpfn_t obj_cmpfn; +}; + +struct bucket_table; + +struct rhashtable { + struct bucket_table *tbl; + unsigned int key_len; + unsigned int max_elems; + struct rhashtable_params p; + bool rhlist; + struct work_struct run_work; + struct mutex mutex; + spinlock_t lock; + atomic_t nelems; +}; + +struct task_cputime { + u64 stime; + u64 utime; + long long unsigned int sum_exec_runtime; +}; + +struct uts_namespace; + +struct ipc_namespace; + +struct mnt_namespace; + +struct net; + +struct time_namespace; + +struct cgroup_namespace; + +struct nsproxy { + atomic_t count; + struct uts_namespace *uts_ns; + struct ipc_namespace *ipc_ns; + struct mnt_namespace *mnt_ns; + struct pid_namespace *pid_ns_for_children; + struct net *net_ns; + struct time_namespace *time_ns; + struct time_namespace *time_ns_for_children; + struct cgroup_namespace *cgroup_ns; +}; + +struct bio; + +struct bio_list { + struct bio *head; + struct bio *tail; +}; + +struct blk_plug { + struct list_head mq_list; + struct list_head cb_list; + short unsigned int rq_count; + bool multiple_queues; + bool nowait; +}; + +struct reclaim_state { + long unsigned int reclaimed_slab; +}; + +struct fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; +}; + +enum wb_reason { + WB_REASON_BACKGROUND = 0, + WB_REASON_VMSCAN = 1, + WB_REASON_SYNC = 2, + WB_REASON_PERIODIC = 3, + WB_REASON_LAPTOP_TIMER = 4, + WB_REASON_FS_FREE_SPACE = 5, + WB_REASON_FORKER_THREAD = 6, + WB_REASON_FOREIGN_FLUSH = 7, + WB_REASON_MAX = 8, +}; + +struct bdi_writeback { + struct backing_dev_info *bdi; + long unsigned int state; + long unsigned int last_old_flush; + struct list_head b_dirty; + struct list_head b_io; + struct list_head b_more_io; + struct list_head b_dirty_time; + spinlock_t list_lock; + atomic_t writeback_inodes; + struct percpu_counter stat[4]; + long unsigned int congested; + long unsigned int bw_time_stamp; + long unsigned int dirtied_stamp; + long unsigned int written_stamp; + long unsigned int write_bandwidth; + long unsigned int avg_write_bandwidth; + long unsigned int dirty_ratelimit; + long unsigned int balanced_dirty_ratelimit; + struct fprop_local_percpu completions; + int dirty_exceeded; + enum wb_reason start_all_reason; + spinlock_t work_lock; + struct list_head work_list; + struct delayed_work dwork; + struct delayed_work bw_dwork; + long unsigned int dirty_sleep; + struct list_head bdi_node; + struct percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; +}; + +struct backing_dev_info { + u64 id; + struct rb_node rb_node; + struct list_head bdi_list; + long unsigned int ra_pages; + long unsigned int io_pages; + struct kref refcnt; + unsigned int capabilities; + unsigned int min_ratio; + unsigned int max_ratio; + unsigned int max_prop_frac; + atomic_long_t tot_write_bandwidth; + struct bdi_writeback wb; + struct list_head wb_list; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; +}; + +struct css_set { + struct cgroup_subsys_state *subsys[14]; + refcount_t refcount; + struct css_set *dom_cset; + struct cgroup *dfl_cgrp; + int nr_tasks; + struct list_head tasks; + struct list_head mg_tasks; + struct list_head dying_tasks; + struct list_head task_iters; + struct list_head e_cset_node[14]; + struct list_head threaded_csets; + struct list_head threaded_csets_node; + struct hlist_node hlist; + struct list_head cgrp_links; + struct list_head mg_src_preload_node; + struct list_head mg_dst_preload_node; + struct list_head mg_node; + struct cgroup *mg_src_cgrp; + struct cgroup *mg_dst_cgrp; + struct css_set *mg_dst_cset; + bool dead; + struct callback_head callback_head; +}; + +typedef u32 compat_uptr_t; + +struct compat_robust_list { + compat_uptr_t next; +}; + +typedef s32 compat_long_t; + +struct compat_robust_list_head { + struct compat_robust_list list; + compat_long_t futex_offset; + compat_uptr_t list_op_pending; +}; + +struct perf_event_groups { + struct rb_root tree; + u64 index; +}; + +struct perf_event_context { + struct pmu *pmu; + raw_spinlock_t lock; + struct mutex mutex; + struct list_head active_ctx_list; + struct perf_event_groups pinned_groups; + struct perf_event_groups flexible_groups; + struct list_head event_list; + struct list_head pinned_active; + struct list_head flexible_active; + int nr_events; + int nr_active; + int is_active; + int nr_stat; + int nr_freq; + int rotate_disable; + int rotate_necessary; + refcount_t refcount; + struct task_struct *task; + u64 time; + u64 timestamp; + u64 timeoffset; + struct perf_event_context *parent_ctx; + u64 parent_gen; + u64 generation; + int pin_count; + int nr_cgroups; + void *task_ctx_data; + struct callback_head callback_head; + local_t nr_pending; +}; + +struct pipe_buffer; + +struct watch_queue; + +struct pipe_inode_info { + struct mutex mutex; + wait_queue_head_t rd_wait; + wait_queue_head_t wr_wait; + unsigned int head; + unsigned int tail; + unsigned int max_usage; + unsigned int ring_size; + bool note_loss; + unsigned int nr_accounted; + unsigned int readers; + unsigned int writers; + unsigned int files; + unsigned int r_counter; + unsigned int w_counter; + bool poll_usage; + struct page *tmp_page; + struct fasync_struct *fasync_readers; + struct fasync_struct *fasync_writers; + struct pipe_buffer *bufs; + struct user_struct *user; + struct watch_queue *watch_queue; +}; + +struct task_delay_info { + raw_spinlock_t lock; + unsigned int flags; + u64 blkio_start; + u64 blkio_delay; + u64 swapin_delay; + u32 blkio_count; + u32 swapin_count; + u64 freepages_start; + u64 freepages_delay; + u64 thrashing_start; + u64 thrashing_delay; + u32 freepages_count; + u32 thrashing_count; +}; + +struct ftrace_ret_stack { + long unsigned int ret; + long unsigned int func; + long long unsigned int calltime; + long long unsigned int subtime; + long unsigned int *retp; +}; + +struct blk_integrity_profile; + +struct blk_integrity { + const struct blk_integrity_profile *profile; + unsigned char flags; + unsigned char tuple_size; + unsigned char interval_exp; + unsigned char tag_size; +}; + +enum rpm_status { + RPM_ACTIVE = 0, + RPM_RESUMING = 1, + RPM_SUSPENDED = 2, + RPM_SUSPENDING = 3, +}; + +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; +}; + +struct sbitmap_word; + +struct sbitmap { + unsigned int depth; + unsigned int shift; + unsigned int map_nr; + bool round_robin; + struct sbitmap_word *map; + unsigned int *alloc_hint; +}; + +struct sbq_wait_state; + +struct sbitmap_queue { + struct sbitmap sb; + unsigned int wake_batch; + atomic_t wake_index; + struct sbq_wait_state *ws; + atomic_t ws_active; + unsigned int min_shallow_depth; +}; + +enum blk_bounce { + BLK_BOUNCE_NONE = 0, + BLK_BOUNCE_HIGH = 1, +}; + +enum blk_zoned_model { + BLK_ZONED_NONE = 0, + BLK_ZONED_HA = 1, + BLK_ZONED_HM = 2, +}; + +struct queue_limits { + enum blk_bounce bounce; + long unsigned int seg_boundary_mask; + long unsigned int virt_boundary_mask; + unsigned int max_hw_sectors; + unsigned int max_dev_sectors; + unsigned int chunk_sectors; + unsigned int max_sectors; + unsigned int max_segment_size; + unsigned int physical_block_size; + unsigned int logical_block_size; + unsigned int alignment_offset; + unsigned int io_min; + unsigned int io_opt; + unsigned int max_discard_sectors; + unsigned int max_hw_discard_sectors; + unsigned int max_write_same_sectors; + unsigned int max_write_zeroes_sectors; + unsigned int max_zone_append_sectors; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int zone_write_granularity; + short unsigned int max_segments; + short unsigned int max_integrity_segments; + short unsigned int max_discard_segments; + unsigned char misaligned; + unsigned char discard_misaligned; + unsigned char raid_partial_stripes_expensive; + enum blk_zoned_model zoned; +}; + +typedef void *mempool_alloc_t(gfp_t, void *); + +typedef void mempool_free_t(void *, void *); + +struct mempool_s { + spinlock_t lock; + int min_nr; + int curr_nr; + void **elements; + void *pool_data; + mempool_alloc_t *alloc; + mempool_free_t *free; + wait_queue_head_t wait; +}; + +typedef struct mempool_s mempool_t; + +struct bio_alloc_cache; + +struct bio_set { + struct kmem_cache *bio_slab; + unsigned int front_pad; + struct bio_alloc_cache *cache; + mempool_t bio_pool; + mempool_t bvec_pool; + mempool_t bio_integrity_pool; + mempool_t bvec_integrity_pool; + unsigned int back_pad; + spinlock_t rescue_lock; + struct bio_list rescue_list; + struct work_struct rescue_work; + struct workqueue_struct *rescue_workqueue; + struct hlist_node cpuhp_dead; +}; + +struct request; + +struct elevator_queue; + +struct blk_queue_stats; + +struct rq_qos; + +struct blk_mq_ops; + +struct blk_mq_ctx; + +struct blk_mq_hw_ctx; + +struct gendisk; + +struct blk_keyslot_manager; + +struct blk_stat_callback; + +struct blkcg_gq; + +struct blk_trace; + +struct blk_flush_queue; + +struct throtl_data; + +struct blk_mq_tag_set; + +struct request_queue { + struct request *last_merge; + struct elevator_queue *elevator; + struct percpu_ref q_usage_counter; + struct blk_queue_stats *stats; + struct rq_qos *rq_qos; + const struct blk_mq_ops *mq_ops; + struct blk_mq_ctx *queue_ctx; + unsigned int queue_depth; + struct blk_mq_hw_ctx **queue_hw_ctx; + unsigned int nr_hw_queues; + void *queuedata; + long unsigned int queue_flags; + atomic_t pm_only; + int id; + spinlock_t queue_lock; + struct gendisk *disk; + struct kobject kobj; + struct kobject *mq_kobj; + struct blk_integrity integrity; + struct device *dev; + enum rpm_status rpm_status; + long unsigned int nr_requests; + unsigned int dma_pad_mask; + unsigned int dma_alignment; + struct blk_keyslot_manager *ksm; + unsigned int rq_timeout; + int poll_nsec; + struct blk_stat_callback *poll_cb; + struct blk_rq_stat poll_stat[16]; + struct timer_list timeout; + struct work_struct timeout_work; + atomic_t nr_active_requests_shared_sbitmap; + struct sbitmap_queue sched_bitmap_tags; + struct sbitmap_queue sched_breserved_tags; + struct list_head icq_list; + long unsigned int blkcg_pols[1]; + struct blkcg_gq *root_blkg; + struct list_head blkg_list; + struct queue_limits limits; + unsigned int required_elevator_features; + unsigned int nr_zones; + long unsigned int *conv_zones_bitmap; + long unsigned int *seq_zones_wlock; + unsigned int max_open_zones; + unsigned int max_active_zones; + int node; + struct mutex debugfs_mutex; + struct blk_trace *blk_trace; + struct blk_flush_queue *fq; + struct list_head requeue_list; + spinlock_t requeue_lock; + struct delayed_work requeue_work; + struct mutex sysfs_lock; + struct mutex sysfs_dir_lock; + struct list_head unused_hctx_list; + spinlock_t unused_hctx_lock; + int mq_freeze_depth; + struct throtl_data *td; + struct callback_head callback_head; + wait_queue_head_t mq_freeze_wq; + struct mutex mq_freeze_lock; + struct blk_mq_tag_set *tag_set; + struct list_head tag_set_list; + struct bio_set bio_split; + struct dentry *debugfs_dir; + struct dentry *sched_debugfs_dir; + struct dentry *rqos_debugfs_dir; + bool mq_sysfs_init_done; + size_t cmd_size; + u64 write_hints[5]; +}; + +struct bpf_run_ctx {}; + struct cgroup_base_stat { struct task_cputime cputime; }; @@ -6057,30 +6437,30 @@ struct psi_group_cpu; struct psi_group { struct mutex avgs_lock; struct psi_group_cpu *pcpu; - u64 avg_total[5]; + u64 avg_total[6]; u64 avg_last_update; u64 avg_next_update; struct delayed_work avgs_work; - u64 total[10]; - long unsigned int avg[15]; + u64 total[12]; + long unsigned int avg[18]; struct task_struct *poll_task; struct timer_list poll_timer; wait_queue_head_t poll_wait; atomic_t poll_wakeup; struct mutex trigger_lock; struct list_head triggers; - u32 nr_triggers[5]; + u32 nr_triggers[6]; u32 poll_states; u64 poll_min_period; - u64 polling_total[5]; + u64 polling_total[6]; u64 polling_next_update; u64 polling_until; }; struct cgroup_bpf { - struct bpf_prog_array *effective[38]; - struct list_head progs[38]; - u32 flags[38]; + struct bpf_prog_array *effective[23]; + struct list_head progs[23]; + u32 flags[23]; struct list_head storages; struct bpf_prog_array *inactive; struct percpu_ref refcnt; @@ -6117,10 +6497,10 @@ struct cgroup { u16 subtree_ss_mask; u16 old_subtree_control; u16 old_subtree_ss_mask; - struct cgroup_subsys_state *subsys[13]; + struct cgroup_subsys_state *subsys[14]; struct cgroup_root *root; struct list_head cset_links; - struct list_head e_csets[13]; + struct list_head e_csets[14]; struct cgroup *dom_cgrp; struct cgroup *old_dom_cgrp; struct cgroup_rstat_cpu *rstat_cpu; @@ -6231,6 +6611,7 @@ struct writeback_control { struct readahead_control { struct file *file; struct address_space *mapping; + struct file_ra_state *ra; long unsigned int _index; unsigned int _nr_pages; unsigned int _batch_count; @@ -6243,13 +6624,16 @@ struct kvec; struct bio_vec; struct iov_iter { - unsigned int type; + u8 iter_type; + bool nofault; + bool data_source; size_t iov_offset; size_t count; union { const struct iovec *iov; const struct kvec *kvec; const struct bio_vec *bvec; + struct xarray *xarray; struct pipe_inode_info *pipe; }; union { @@ -6258,6 +6642,7 @@ struct iov_iter { unsigned int head; unsigned int start_head; }; + loff_t xarray_start; }; }; @@ -6275,6 +6660,7 @@ struct swap_cluster_list { struct percpu_cluster; struct swap_info_struct { + struct percpu_ref users; long unsigned int flags; short int prio; struct plist_node list; @@ -6295,6 +6681,7 @@ struct swap_info_struct { struct block_device *bdev; struct file *swap_file; unsigned int old_block_size; + struct completion comp; long unsigned int *frontswap_map; atomic_t frontswap_pages; spinlock_t lock; @@ -6304,32 +6691,6 @@ struct swap_info_struct { struct plist_node avail_lists[0]; }; -struct hd_struct; - -struct gendisk; - -struct block_device { - dev_t bd_dev; - int bd_openers; - struct inode *bd_inode; - struct super_block *bd_super; - struct mutex bd_mutex; - void *bd_claiming; - void *bd_holder; - int bd_holders; - bool bd_write_holder; - struct list_head bd_holder_disks; - struct block_device *bd_contains; - u8 bd_partno; - struct hd_struct *bd_part; - unsigned int bd_part_count; - spinlock_t bd_size_lock; - struct gendisk *bd_disk; - struct backing_dev_info *bd_bdi; - int bd_fsfreeze_count; - struct mutex bd_fsfreeze_mutex; -}; - struct cdev { struct kobject kobj; struct module *owner; @@ -6339,6 +6700,212 @@ struct cdev { unsigned int count; }; +enum dl_dev_state { + DL_DEV_NO_DRIVER = 0, + DL_DEV_PROBING = 1, + DL_DEV_DRIVER_BOUND = 2, + DL_DEV_UNBINDING = 3, +}; + +struct dev_links_info { + struct list_head suppliers; + struct list_head consumers; + struct list_head defer_sync; + enum dl_dev_state status; +}; + +struct pm_message { + int event; +}; + +typedef struct pm_message pm_message_t; + +enum rpm_request { + RPM_REQ_NONE = 0, + RPM_REQ_IDLE = 1, + RPM_REQ_SUSPEND = 2, + RPM_REQ_AUTOSUSPEND = 3, + RPM_REQ_RESUME = 4, +}; + +struct wakeup_source; + +struct wake_irq; + +struct pm_subsys_data; + +struct dev_pm_qos; + +struct dev_pm_info { + pm_message_t power_state; + unsigned int can_wakeup: 1; + unsigned int async_suspend: 1; + bool in_dpm_list: 1; + bool is_prepared: 1; + bool is_suspended: 1; + bool is_noirq_suspended: 1; + bool is_late_suspended: 1; + bool no_pm: 1; + bool early_init: 1; + bool direct_complete: 1; + u32 driver_flags; + spinlock_t lock; + struct list_head entry; + struct completion completion; + struct wakeup_source *wakeup; + bool wakeup_path: 1; + bool syscore: 1; + bool no_pm_callbacks: 1; + unsigned int must_resume: 1; + unsigned int may_skip_resume: 1; + struct hrtimer suspend_timer; + u64 timer_expires; + struct work_struct work; + wait_queue_head_t wait_queue; + struct wake_irq *wakeirq; + atomic_t usage_count; + atomic_t child_count; + unsigned int disable_depth: 3; + unsigned int idle_notification: 1; + unsigned int request_pending: 1; + unsigned int deferred_resume: 1; + unsigned int needs_force_resume: 1; + unsigned int runtime_auto: 1; + bool ignore_children: 1; + unsigned int no_callbacks: 1; + unsigned int irq_safe: 1; + unsigned int use_autosuspend: 1; + unsigned int timer_autosuspends: 1; + unsigned int memalloc_noio: 1; + unsigned int links_count; + enum rpm_request request; + enum rpm_status runtime_status; + int runtime_error; + int autosuspend_delay; + u64 last_busy; + u64 active_time; + u64 suspended_time; + u64 accounting_timestamp; + struct pm_subsys_data *subsys_data; + void (*set_latency_tolerance)(struct device *, s32); + struct dev_pm_qos *qos; +}; + +struct dev_archdata {}; + +enum device_removable { + DEVICE_REMOVABLE_NOT_SUPPORTED = 0, + DEVICE_REMOVABLE_UNKNOWN = 1, + DEVICE_FIXED = 2, + DEVICE_REMOVABLE = 3, +}; + +struct device_private; + +struct device_type; + +struct bus_type; + +struct device_driver; + +struct dev_pm_domain; + +struct em_perf_domain; + +struct dev_pin_info; + +struct dma_map_ops; + +struct bus_dma_region; + +struct device_dma_parameters; + +struct io_tlb_mem; + +struct device_node; + +struct class; + +struct iommu_group; + +struct dev_iommu; + +struct device { + struct kobject kobj; + struct device *parent; + struct device_private *p; + const char *init_name; + const struct device_type *type; + struct bus_type *bus; + struct device_driver *driver; + void *platform_data; + void *driver_data; + struct mutex mutex; + struct dev_links_info links; + struct dev_pm_info power; + struct dev_pm_domain *pm_domain; + struct em_perf_domain *em_pd; + struct irq_domain *msi_domain; + struct dev_pin_info *pins; + raw_spinlock_t msi_lock; + struct list_head msi_list; + const struct dma_map_ops *dma_ops; + u64 *dma_mask; + u64 coherent_dma_mask; + u64 bus_dma_limit; + const struct bus_dma_region *dma_range_map; + struct device_dma_parameters *dma_parms; + struct list_head dma_pools; + struct io_tlb_mem *dma_io_tlb_mem; + struct dev_archdata archdata; + struct device_node *of_node; + struct fwnode_handle *fwnode; + int numa_node; + dev_t devt; + u32 id; + spinlock_t devres_lock; + struct list_head devres_head; + struct class *class; + const struct attribute_group **groups; + void (*release)(struct device *); + struct iommu_group *iommu_group; + struct dev_iommu *iommu; + enum device_removable removable; + bool offline_disabled: 1; + bool offline: 1; + bool of_node_reused: 1; + bool state_synced: 1; + bool can_match: 1; +}; + +struct disk_stats; + +struct partition_meta_info; + +struct block_device { + sector_t bd_start_sect; + struct disk_stats *bd_stats; + long unsigned int bd_stamp; + bool bd_read_only; + dev_t bd_dev; + int bd_openers; + struct inode *bd_inode; + struct super_block *bd_super; + void *bd_claiming; + struct device bd_device; + void *bd_holder; + int bd_holders; + bool bd_write_holder; + struct kobject *bd_holder_dir; + u8 bd_partno; + spinlock_t bd_size_lock; + struct gendisk *bd_disk; + int bd_fsfreeze_count; + struct mutex bd_fsfreeze_mutex; + struct super_block *bd_fsfreeze_sb; + struct partition_meta_info *bd_meta_info; +}; + struct fc_log; struct p_log { @@ -6420,17 +6987,18 @@ struct bio_vec { unsigned int bv_offset; }; +struct bio_crypt_ctx; + struct bio_integrity_payload; struct bio { struct bio *bi_next; - struct gendisk *bi_disk; + struct block_device *bi_bdev; unsigned int bi_opf; short unsigned int bi_flags; short unsigned int bi_ioprio; short unsigned int bi_write_hint; blk_status_t bi_status; - u8 bi_partno; atomic_t __bi_remaining; struct bvec_iter bi_iter; bio_end_io_t *bi_end_io; @@ -6438,6 +7006,7 @@ struct bio { struct blkcg_gq *bi_blkg; struct bio_issue bi_issue; u64 bi_iocost_cost; + struct bio_crypt_ctx *bi_crypt_context; union { struct bio_integrity_payload *bi_integrity; }; @@ -6488,6 +7057,7 @@ struct coredump_params { long unsigned int mm_flags; loff_t written; loff_t pos; + loff_t to_skip; int vma_count; size_t vma_data_size; struct core_vma_metadata *vma_meta; @@ -6502,175 +7072,10 @@ struct em_perf_state { struct em_perf_domain { struct em_perf_state *table; int nr_perf_states; + int milliwatts; long unsigned int cpus[0]; }; -enum dl_dev_state { - DL_DEV_NO_DRIVER = 0, - DL_DEV_PROBING = 1, - DL_DEV_DRIVER_BOUND = 2, - DL_DEV_UNBINDING = 3, -}; - -struct dev_links_info { - struct list_head suppliers; - struct list_head consumers; - struct list_head needs_suppliers; - struct list_head defer_hook; - bool need_for_probe; - enum dl_dev_state status; -}; - -struct pm_message { - int event; -}; - -typedef struct pm_message pm_message_t; - -enum rpm_request { - RPM_REQ_NONE = 0, - RPM_REQ_IDLE = 1, - RPM_REQ_SUSPEND = 2, - RPM_REQ_AUTOSUSPEND = 3, - RPM_REQ_RESUME = 4, -}; - -struct wakeup_source; - -struct wake_irq; - -struct pm_subsys_data; - -struct dev_pm_qos; - -struct dev_pm_info { - pm_message_t power_state; - unsigned int can_wakeup: 1; - unsigned int async_suspend: 1; - bool in_dpm_list: 1; - bool is_prepared: 1; - bool is_suspended: 1; - bool is_noirq_suspended: 1; - bool is_late_suspended: 1; - bool no_pm: 1; - bool early_init: 1; - bool direct_complete: 1; - u32 driver_flags; - spinlock_t lock; - struct list_head entry; - struct completion completion; - struct wakeup_source *wakeup; - bool wakeup_path: 1; - bool syscore: 1; - bool no_pm_callbacks: 1; - unsigned int must_resume: 1; - unsigned int may_skip_resume: 1; - struct hrtimer suspend_timer; - u64 timer_expires; - struct work_struct work; - wait_queue_head_t wait_queue; - struct wake_irq *wakeirq; - atomic_t usage_count; - atomic_t child_count; - unsigned int disable_depth: 3; - unsigned int idle_notification: 1; - unsigned int request_pending: 1; - unsigned int deferred_resume: 1; - unsigned int needs_force_resume: 1; - unsigned int runtime_auto: 1; - bool ignore_children: 1; - unsigned int no_callbacks: 1; - unsigned int irq_safe: 1; - unsigned int use_autosuspend: 1; - unsigned int timer_autosuspends: 1; - unsigned int memalloc_noio: 1; - unsigned int links_count; - enum rpm_request request; - enum rpm_status runtime_status; - int runtime_error; - int autosuspend_delay; - u64 last_busy; - u64 active_time; - u64 suspended_time; - u64 accounting_timestamp; - struct pm_subsys_data *subsys_data; - void (*set_latency_tolerance)(struct device *, s32); - struct dev_pm_qos *qos; -}; - -struct dev_archdata {}; - -struct device_private; - -struct device_type; - -struct bus_type; - -struct device_driver; - -struct dev_pm_domain; - -struct dev_pin_info; - -struct dma_map_ops; - -struct bus_dma_region; - -struct device_dma_parameters; - -struct device_node; - -struct class; - -struct iommu_group; - -struct dev_iommu; - -struct device { - struct kobject kobj; - struct device *parent; - struct device_private *p; - const char *init_name; - const struct device_type *type; - struct bus_type *bus; - struct device_driver *driver; - void *platform_data; - void *driver_data; - struct mutex mutex; - struct dev_links_info links; - struct dev_pm_info power; - struct dev_pm_domain *pm_domain; - struct em_perf_domain *em_pd; - struct irq_domain *msi_domain; - struct dev_pin_info *pins; - raw_spinlock_t msi_lock; - struct list_head msi_list; - const struct dma_map_ops *dma_ops; - u64 *dma_mask; - u64 coherent_dma_mask; - u64 bus_dma_limit; - const struct bus_dma_region *dma_range_map; - struct device_dma_parameters *dma_parms; - struct list_head dma_pools; - struct dev_archdata archdata; - struct device_node *of_node; - struct fwnode_handle *fwnode; - int numa_node; - dev_t devt; - u32 id; - spinlock_t devres_lock; - struct list_head devres_head; - struct class *class; - const struct attribute_group **groups; - void (*release)(struct device *); - struct iommu_group *iommu_group; - struct dev_iommu *iommu; - bool offline_disabled: 1; - bool offline: 1; - bool of_node_reused: 1; - bool state_synced: 1; -}; - struct dev_pm_ops { int (*prepare)(struct device *); void (*complete)(struct device *); @@ -6702,6 +7107,8 @@ struct pm_domain_data; struct pm_subsys_data { spinlock_t lock; unsigned int refcount; + unsigned int clock_op_might_sleep; + struct mutex clock_mutex; struct list_head clock_list; struct pm_domain_data *domain_data; }; @@ -6753,7 +7160,7 @@ struct bus_type { int (*uevent)(struct device *, struct kobj_uevent_env *); int (*probe)(struct device *); void (*sync_state)(struct device *); - int (*remove)(struct device *); + void (*remove)(struct device *); void (*shutdown)(struct device *); int (*online)(struct device *); int (*offline)(struct device *); @@ -6810,21 +7217,10 @@ enum iommu_cap { typedef u64 dma_addr_t; -enum iommu_attr { - DOMAIN_ATTR_GEOMETRY = 0, - DOMAIN_ATTR_PAGING = 1, - DOMAIN_ATTR_WINDOWS = 2, - DOMAIN_ATTR_FSL_PAMU_STASH = 3, - DOMAIN_ATTR_FSL_PAMU_ENABLE = 4, - DOMAIN_ATTR_FSL_PAMUV1 = 5, - DOMAIN_ATTR_NESTING = 6, - DOMAIN_ATTR_DMA_USE_FLUSH_QUEUE = 7, - DOMAIN_ATTR_MAX = 8, -}; - enum iommu_dev_features { IOMMU_DEV_FEAT_AUX = 0, IOMMU_DEV_FEAT_SVA = 1, + IOMMU_DEV_FEAT_IOPF = 2, }; struct iommu_domain; @@ -6854,22 +7250,22 @@ struct iommu_ops { int (*attach_dev)(struct iommu_domain *, struct device *); void (*detach_dev)(struct iommu_domain *, struct device *); int (*map)(struct iommu_domain *, long unsigned int, phys_addr_t, size_t, int, gfp_t); + int (*map_pages)(struct iommu_domain *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); size_t (*unmap)(struct iommu_domain *, long unsigned int, size_t, struct iommu_iotlb_gather *); + size_t (*unmap_pages)(struct iommu_domain *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *); void (*flush_iotlb_all)(struct iommu_domain *); - void (*iotlb_sync_map)(struct iommu_domain *); + void (*iotlb_sync_map)(struct iommu_domain *, long unsigned int, size_t); void (*iotlb_sync)(struct iommu_domain *, struct iommu_iotlb_gather *); phys_addr_t (*iova_to_phys)(struct iommu_domain *, dma_addr_t); struct iommu_device * (*probe_device)(struct device *); void (*release_device)(struct device *); void (*probe_finalize)(struct device *); struct iommu_group * (*device_group)(struct device *); - int (*domain_get_attr)(struct iommu_domain *, enum iommu_attr, void *); - int (*domain_set_attr)(struct iommu_domain *, enum iommu_attr, void *); + int (*enable_nesting)(struct iommu_domain *); + int (*set_pgtable_quirks)(struct iommu_domain *, long unsigned int); void (*get_resv_regions)(struct device *, struct list_head *); void (*put_resv_regions)(struct device *, struct list_head *); void (*apply_resv_region)(struct device *, struct iommu_domain *, struct iommu_resv_region *); - int (*domain_window_enable)(struct iommu_domain *, u32, phys_addr_t, u64, int); - void (*domain_window_disable)(struct iommu_domain *, u32); int (*of_xlate)(struct device *, struct of_phandle_args *); bool (*is_attach_deferred)(struct iommu_domain *, struct device *); bool (*dev_has_feat)(struct device *, enum iommu_dev_features); @@ -6940,13 +7336,6 @@ struct device_dma_parameters { long unsigned int segment_boundary_mask; }; -enum dma_data_direction { - DMA_BIDIRECTIONAL = 0, - DMA_TO_DEVICE = 1, - DMA_FROM_DEVICE = 2, - DMA_NONE = 3, -}; - struct sg_table; struct scatterlist; @@ -6956,8 +7345,8 @@ struct dma_map_ops { void (*free)(struct device *, size_t, void *, dma_addr_t, long unsigned int); struct page * (*alloc_pages)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t); void (*free_pages)(struct device *, size_t, struct page *, dma_addr_t, enum dma_data_direction); - void * (*alloc_noncoherent)(struct device *, size_t, dma_addr_t *, enum dma_data_direction, gfp_t); - void (*free_noncoherent)(struct device *, size_t, void *, dma_addr_t, enum dma_data_direction); + struct sg_table * (*alloc_noncontiguous)(struct device *, size_t, enum dma_data_direction, gfp_t, long unsigned int); + void (*free_noncontiguous)(struct device *, size_t, struct sg_table *, enum dma_data_direction); int (*mmap)(struct device *, struct vm_area_struct *, void *, dma_addr_t, size_t, long unsigned int); int (*get_sgtable)(struct device *, struct sg_table *, void *, dma_addr_t, size_t, long unsigned int); dma_addr_t (*map_page)(struct device *, struct page *, long unsigned int, size_t, enum dma_data_direction, long unsigned int); @@ -6974,6 +7363,7 @@ struct dma_map_ops { int (*dma_supported)(struct device *, u64); u64 (*get_required_mask)(struct device *); size_t (*max_mapping_size)(struct device *); + size_t (*opt_mapping_size)(void); long unsigned int (*get_merge_boundary)(struct device *); }; @@ -6992,6 +7382,9 @@ struct fwnode_handle { struct fwnode_handle *secondary; const struct fwnode_operations *ops; struct device *dev; + struct list_head suppliers; + struct list_head consumers; + u8 flags; }; struct property; @@ -7026,170 +7419,176 @@ enum cpuhp_state { CPUHP_SLUB_DEAD = 11, CPUHP_DEBUG_OBJ_DEAD = 12, CPUHP_MM_WRITEBACK_DEAD = 13, - CPUHP_MM_VMSTAT_DEAD = 14, - CPUHP_SOFTIRQ_DEAD = 15, - CPUHP_NET_MVNETA_DEAD = 16, - CPUHP_CPUIDLE_DEAD = 17, - CPUHP_ARM64_FPSIMD_DEAD = 18, - CPUHP_ARM_OMAP_WAKE_DEAD = 19, - CPUHP_IRQ_POLL_DEAD = 20, - CPUHP_BLOCK_SOFTIRQ_DEAD = 21, - CPUHP_ACPI_CPUDRV_DEAD = 22, - CPUHP_S390_PFAULT_DEAD = 23, - CPUHP_BLK_MQ_DEAD = 24, - CPUHP_FS_BUFF_DEAD = 25, - CPUHP_PRINTK_DEAD = 26, - CPUHP_MM_MEMCQ_DEAD = 27, - CPUHP_PERCPU_CNT_DEAD = 28, - CPUHP_RADIX_DEAD = 29, - CPUHP_PAGE_ALLOC_DEAD = 30, - CPUHP_NET_DEV_DEAD = 31, - CPUHP_PCI_XGENE_DEAD = 32, - CPUHP_IOMMU_INTEL_DEAD = 33, - CPUHP_LUSTRE_CFS_DEAD = 34, - CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 35, - CPUHP_PADATA_DEAD = 36, - CPUHP_RANDOM_PREPARE = 37, - CPUHP_WORKQUEUE_PREP = 38, - CPUHP_POWER_NUMA_PREPARE = 39, - CPUHP_HRTIMERS_PREPARE = 40, - CPUHP_PROFILE_PREPARE = 41, - CPUHP_X2APIC_PREPARE = 42, - CPUHP_SMPCFD_PREPARE = 43, - CPUHP_RELAY_PREPARE = 44, - CPUHP_SLAB_PREPARE = 45, - CPUHP_MD_RAID5_PREPARE = 46, - CPUHP_RCUTREE_PREP = 47, - CPUHP_CPUIDLE_COUPLED_PREPARE = 48, - CPUHP_POWERPC_PMAC_PREPARE = 49, - CPUHP_POWERPC_MMU_CTX_PREPARE = 50, - CPUHP_XEN_PREPARE = 51, - CPUHP_XEN_EVTCHN_PREPARE = 52, - CPUHP_ARM_SHMOBILE_SCU_PREPARE = 53, - CPUHP_SH_SH3X_PREPARE = 54, - CPUHP_NET_FLOW_PREPARE = 55, - CPUHP_TOPOLOGY_PREPARE = 56, - CPUHP_NET_IUCV_PREPARE = 57, - CPUHP_ARM_BL_PREPARE = 58, - CPUHP_TRACE_RB_PREPARE = 59, - CPUHP_MM_ZS_PREPARE = 60, - CPUHP_MM_ZSWP_MEM_PREPARE = 61, - CPUHP_MM_ZSWP_POOL_PREPARE = 62, - CPUHP_KVM_PPC_BOOK3S_PREPARE = 63, - CPUHP_ZCOMP_PREPARE = 64, - CPUHP_TIMERS_PREPARE = 65, - CPUHP_MIPS_SOC_PREPARE = 66, - CPUHP_BP_PREPARE_DYN = 67, - CPUHP_BP_PREPARE_DYN_END = 87, - CPUHP_BRINGUP_CPU = 88, - CPUHP_AP_IDLE_DEAD = 89, - CPUHP_AP_OFFLINE = 90, - CPUHP_AP_SCHED_STARTING = 91, - CPUHP_AP_RCUTREE_DYING = 92, - CPUHP_AP_CPU_PM_STARTING = 93, - CPUHP_AP_IRQ_GIC_STARTING = 94, - CPUHP_AP_IRQ_HIP04_STARTING = 95, - CPUHP_AP_IRQ_ARMADA_XP_STARTING = 96, - CPUHP_AP_IRQ_BCM2836_STARTING = 97, - CPUHP_AP_IRQ_MIPS_GIC_STARTING = 98, - CPUHP_AP_IRQ_RISCV_STARTING = 99, - CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 100, - CPUHP_AP_ARM_MVEBU_COHERENCY = 101, - CPUHP_AP_MICROCODE_LOADER = 102, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 103, - CPUHP_AP_PERF_X86_STARTING = 104, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 105, - CPUHP_AP_PERF_X86_CQM_STARTING = 106, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 107, - CPUHP_AP_PERF_XTENSA_STARTING = 108, - CPUHP_AP_MIPS_OP_LOONGSON3_STARTING = 109, - CPUHP_AP_ARM_SDEI_STARTING = 110, - CPUHP_AP_ARM_VFP_STARTING = 111, - CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 112, - CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 113, - CPUHP_AP_PERF_ARM_ACPI_STARTING = 114, - CPUHP_AP_PERF_ARM_STARTING = 115, - CPUHP_AP_ARM_L2X0_STARTING = 116, - CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 117, - CPUHP_AP_ARM_ARCH_TIMER_STARTING = 118, - CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 119, - CPUHP_AP_JCORE_TIMER_STARTING = 120, - CPUHP_AP_ARM_TWD_STARTING = 121, - CPUHP_AP_QCOM_TIMER_STARTING = 122, - CPUHP_AP_TEGRA_TIMER_STARTING = 123, - CPUHP_AP_ARMADA_TIMER_STARTING = 124, - CPUHP_AP_MARCO_TIMER_STARTING = 125, - CPUHP_AP_MIPS_GIC_TIMER_STARTING = 126, - CPUHP_AP_ARC_TIMER_STARTING = 127, - CPUHP_AP_RISCV_TIMER_STARTING = 128, - CPUHP_AP_CLINT_TIMER_STARTING = 129, - CPUHP_AP_CSKY_TIMER_STARTING = 130, - CPUHP_AP_TI_GP_TIMER_STARTING = 131, - CPUHP_AP_HYPERV_TIMER_STARTING = 132, - CPUHP_AP_KVM_STARTING = 133, - CPUHP_AP_KVM_ARM_VGIC_INIT_STARTING = 134, - CPUHP_AP_KVM_ARM_VGIC_STARTING = 135, - CPUHP_AP_KVM_ARM_TIMER_STARTING = 136, - CPUHP_AP_DUMMY_TIMER_STARTING = 137, - CPUHP_AP_ARM_XEN_STARTING = 138, - CPUHP_AP_ARM_CORESIGHT_STARTING = 139, - CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 140, - CPUHP_AP_ARM64_ISNDEP_STARTING = 141, - CPUHP_AP_SMPCFD_DYING = 142, - CPUHP_AP_X86_TBOOT_DYING = 143, - CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 144, - CPUHP_AP_ONLINE = 145, - CPUHP_TEARDOWN_CPU = 146, - CPUHP_AP_ONLINE_IDLE = 147, - CPUHP_AP_SMPBOOT_THREADS = 148, - CPUHP_AP_X86_VDSO_VMA_ONLINE = 149, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 150, - CPUHP_AP_BLK_MQ_ONLINE = 151, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 152, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 153, - CPUHP_AP_PERF_ONLINE = 154, - CPUHP_AP_PERF_X86_ONLINE = 155, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 156, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 157, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 158, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 159, - CPUHP_AP_PERF_X86_CQM_ONLINE = 160, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 161, - CPUHP_AP_PERF_S390_CF_ONLINE = 162, - CPUHP_AP_PERF_S390_SF_ONLINE = 163, - CPUHP_AP_PERF_ARM_CCI_ONLINE = 164, - CPUHP_AP_PERF_ARM_CCN_ONLINE = 165, - CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 166, - CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 167, - CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 168, - CPUHP_AP_PERF_ARM_L2X0_ONLINE = 169, - CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 170, - CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 171, - CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 172, - CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 173, - CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 174, - CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 175, - CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 176, - CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 177, - CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 178, - CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 179, - CPUHP_AP_WATCHDOG_ONLINE = 180, - CPUHP_AP_WORKQUEUE_ONLINE = 181, - CPUHP_AP_RANDOM_ONLINE = 182, - CPUHP_AP_RCUTREE_ONLINE = 183, - CPUHP_AP_BASE_CACHEINFO_ONLINE = 184, - CPUHP_AP_ONLINE_DYN = 185, - CPUHP_AP_ONLINE_DYN_END = 215, - CPUHP_AP_X86_HPET_ONLINE = 216, - CPUHP_AP_X86_KVM_CLK_ONLINE = 217, - CPUHP_AP_ACTIVE = 218, - CPUHP_ONLINE = 219, -}; - -struct static_call_mod { - struct static_call_mod *next; - struct module *mod; - struct static_call_site *sites; + CPUHP_MM_DEMOTION_DEAD = 14, + CPUHP_MM_VMSTAT_DEAD = 15, + CPUHP_SOFTIRQ_DEAD = 16, + CPUHP_NET_MVNETA_DEAD = 17, + CPUHP_CPUIDLE_DEAD = 18, + CPUHP_ARM64_FPSIMD_DEAD = 19, + CPUHP_ARM_OMAP_WAKE_DEAD = 20, + CPUHP_IRQ_POLL_DEAD = 21, + CPUHP_BLOCK_SOFTIRQ_DEAD = 22, + CPUHP_BIO_DEAD = 23, + CPUHP_ACPI_CPUDRV_DEAD = 24, + CPUHP_S390_PFAULT_DEAD = 25, + CPUHP_BLK_MQ_DEAD = 26, + CPUHP_FS_BUFF_DEAD = 27, + CPUHP_PRINTK_DEAD = 28, + CPUHP_MM_MEMCQ_DEAD = 29, + CPUHP_XFS_DEAD = 30, + CPUHP_PERCPU_CNT_DEAD = 31, + CPUHP_RADIX_DEAD = 32, + CPUHP_PAGE_ALLOC = 33, + CPUHP_NET_DEV_DEAD = 34, + CPUHP_PCI_XGENE_DEAD = 35, + CPUHP_IOMMU_IOVA_DEAD = 36, + CPUHP_LUSTRE_CFS_DEAD = 37, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 38, + CPUHP_PADATA_DEAD = 39, + CPUHP_RANDOM_PREPARE = 40, + CPUHP_WORKQUEUE_PREP = 41, + CPUHP_POWER_NUMA_PREPARE = 42, + CPUHP_HRTIMERS_PREPARE = 43, + CPUHP_PROFILE_PREPARE = 44, + CPUHP_X2APIC_PREPARE = 45, + CPUHP_SMPCFD_PREPARE = 46, + CPUHP_RELAY_PREPARE = 47, + CPUHP_SLAB_PREPARE = 48, + CPUHP_MD_RAID5_PREPARE = 49, + CPUHP_RCUTREE_PREP = 50, + CPUHP_CPUIDLE_COUPLED_PREPARE = 51, + CPUHP_POWERPC_PMAC_PREPARE = 52, + CPUHP_POWERPC_MMU_CTX_PREPARE = 53, + CPUHP_XEN_PREPARE = 54, + CPUHP_XEN_EVTCHN_PREPARE = 55, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 56, + CPUHP_SH_SH3X_PREPARE = 57, + CPUHP_NET_FLOW_PREPARE = 58, + CPUHP_TOPOLOGY_PREPARE = 59, + CPUHP_NET_IUCV_PREPARE = 60, + CPUHP_ARM_BL_PREPARE = 61, + CPUHP_TRACE_RB_PREPARE = 62, + CPUHP_MM_ZS_PREPARE = 63, + CPUHP_MM_ZSWP_MEM_PREPARE = 64, + CPUHP_MM_ZSWP_POOL_PREPARE = 65, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 66, + CPUHP_ZCOMP_PREPARE = 67, + CPUHP_TIMERS_PREPARE = 68, + CPUHP_MIPS_SOC_PREPARE = 69, + CPUHP_BP_PREPARE_DYN = 70, + CPUHP_BP_PREPARE_DYN_END = 90, + CPUHP_BRINGUP_CPU = 91, + CPUHP_AP_IDLE_DEAD = 92, + CPUHP_AP_OFFLINE = 93, + CPUHP_AP_SCHED_STARTING = 94, + CPUHP_AP_RCUTREE_DYING = 95, + CPUHP_AP_CPU_PM_STARTING = 96, + CPUHP_AP_IRQ_GIC_STARTING = 97, + CPUHP_AP_IRQ_HIP04_STARTING = 98, + CPUHP_AP_IRQ_APPLE_AIC_STARTING = 99, + CPUHP_AP_IRQ_ARMADA_XP_STARTING = 100, + CPUHP_AP_IRQ_BCM2836_STARTING = 101, + CPUHP_AP_IRQ_MIPS_GIC_STARTING = 102, + CPUHP_AP_IRQ_RISCV_STARTING = 103, + CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 104, + CPUHP_AP_ARM_MVEBU_COHERENCY = 105, + CPUHP_AP_MICROCODE_LOADER = 106, + CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 107, + CPUHP_AP_PERF_X86_STARTING = 108, + CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 109, + CPUHP_AP_PERF_X86_CQM_STARTING = 110, + CPUHP_AP_PERF_X86_CSTATE_STARTING = 111, + CPUHP_AP_PERF_XTENSA_STARTING = 112, + CPUHP_AP_MIPS_OP_LOONGSON3_STARTING = 113, + CPUHP_AP_ARM_VFP_STARTING = 114, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 115, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 116, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 117, + CPUHP_AP_PERF_ARM_STARTING = 118, + CPUHP_AP_ARM_L2X0_STARTING = 119, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 120, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 121, + CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 122, + CPUHP_AP_JCORE_TIMER_STARTING = 123, + CPUHP_AP_ARM_TWD_STARTING = 124, + CPUHP_AP_QCOM_TIMER_STARTING = 125, + CPUHP_AP_TEGRA_TIMER_STARTING = 126, + CPUHP_AP_ARMADA_TIMER_STARTING = 127, + CPUHP_AP_MARCO_TIMER_STARTING = 128, + CPUHP_AP_MIPS_GIC_TIMER_STARTING = 129, + CPUHP_AP_ARC_TIMER_STARTING = 130, + CPUHP_AP_RISCV_TIMER_STARTING = 131, + CPUHP_AP_CLINT_TIMER_STARTING = 132, + CPUHP_AP_CSKY_TIMER_STARTING = 133, + CPUHP_AP_TI_GP_TIMER_STARTING = 134, + CPUHP_AP_HYPERV_TIMER_STARTING = 135, + CPUHP_AP_KVM_STARTING = 136, + CPUHP_AP_KVM_ARM_VGIC_INIT_STARTING = 137, + CPUHP_AP_KVM_ARM_VGIC_STARTING = 138, + CPUHP_AP_KVM_ARM_TIMER_STARTING = 139, + CPUHP_AP_DUMMY_TIMER_STARTING = 140, + CPUHP_AP_ARM_XEN_STARTING = 141, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 142, + CPUHP_AP_ARM_CORESIGHT_STARTING = 143, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 144, + CPUHP_AP_ARM64_ISNDEP_STARTING = 145, + CPUHP_AP_SMPCFD_DYING = 146, + CPUHP_AP_HRTIMERS_DYING = 147, + CPUHP_AP_X86_TBOOT_DYING = 148, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 149, + CPUHP_AP_ONLINE = 150, + CPUHP_TEARDOWN_CPU = 151, + CPUHP_AP_ONLINE_IDLE = 152, + CPUHP_AP_SCHED_WAIT_EMPTY = 153, + CPUHP_AP_SMPBOOT_THREADS = 154, + CPUHP_AP_X86_VDSO_VMA_ONLINE = 155, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 156, + CPUHP_AP_BLK_MQ_ONLINE = 157, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 158, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 159, + CPUHP_AP_PERF_ONLINE = 160, + CPUHP_AP_PERF_X86_ONLINE = 161, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 162, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 163, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 164, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 165, + CPUHP_AP_PERF_X86_CQM_ONLINE = 166, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 167, + CPUHP_AP_PERF_X86_IDXD_ONLINE = 168, + CPUHP_AP_PERF_S390_CF_ONLINE = 169, + CPUHP_AP_PERF_S390_SF_ONLINE = 170, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 171, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 172, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 173, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 174, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 175, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 176, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 177, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 178, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 179, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 180, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 181, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 182, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 183, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 184, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 185, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 186, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 187, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 188, + CPUHP_AP_PERF_CSKY_ONLINE = 189, + CPUHP_AP_WATCHDOG_ONLINE = 190, + CPUHP_AP_WORKQUEUE_ONLINE = 191, + CPUHP_AP_RANDOM_ONLINE = 192, + CPUHP_AP_RCUTREE_ONLINE = 193, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 194, + CPUHP_AP_ONLINE_DYN = 195, + CPUHP_AP_ONLINE_DYN_END = 225, + CPUHP_AP_MM_DEMOTION_ONLINE = 226, + CPUHP_AP_X86_HPET_ONLINE = 227, + CPUHP_AP_X86_KVM_CLK_ONLINE = 228, + CPUHP_AP_DTPM_CPU_ONLINE = 229, + CPUHP_AP_ACTIVE = 230, + CPUHP_ONLINE = 231, }; struct ring_buffer_event { @@ -7223,7 +7622,8 @@ enum perf_sw_ids { PERF_COUNT_SW_EMULATION_FAULTS = 8, PERF_COUNT_SW_DUMMY = 9, PERF_COUNT_SW_BPF_OUTPUT = 10, - PERF_COUNT_SW_MAX = 11, + PERF_COUNT_SW_CGROUP_SWITCHES = 11, + PERF_COUNT_SW_MAX = 12, }; union perf_mem_data_src { @@ -7237,7 +7637,8 @@ union perf_mem_data_src { __u64 mem_lvl_num: 4; __u64 mem_remote: 1; __u64 mem_snoopx: 2; - __u64 mem_rsvd: 24; + __u64 mem_blk: 3; + __u64 mem_rsvd: 21; }; }; @@ -7253,6 +7654,15 @@ struct perf_branch_entry { __u64 reserved: 40; }; +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; +}; + struct new_utsname { char sysname[65]; char nodename[65]; @@ -7263,15 +7673,759 @@ struct new_utsname { }; struct uts_namespace { - struct kref kref; struct new_utsname name; struct user_namespace *user_ns; struct ucounts *ucounts; struct ns_common ns; }; +struct prot_inuse; + +struct netns_core { + struct ctl_table_header *sysctl_hdr; + int sysctl_somaxconn; + int *sock_inuse; + struct prot_inuse *prot_inuse; +}; + +struct ipstats_mib; + +struct tcp_mib; + +struct linux_mib; + +struct udp_mib; + +struct linux_xfrm_mib; + +struct linux_tls_mib; + +struct mptcp_mib; + +struct icmp_mib; + +struct icmpmsg_mib; + +struct icmpv6_mib; + +struct icmpv6msg_mib; + +struct proc_dir_entry; + +struct netns_mib { + struct ipstats_mib *ip_statistics; + struct ipstats_mib *ipv6_statistics; + struct tcp_mib *tcp_statistics; + struct linux_mib *net_statistics; + struct udp_mib *udp_statistics; + struct udp_mib *udp_stats_in6; + struct linux_xfrm_mib *xfrm_statistics; + struct linux_tls_mib *tls_statistics; + struct mptcp_mib *mptcp_statistics; + struct udp_mib *udplite_statistics; + struct udp_mib *udplite_stats_in6; + struct icmp_mib *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; +}; + +struct netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; +}; + +struct netns_unix { + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; +}; + +struct netns_nexthop { + struct rb_root rb_root; + struct hlist_head *devhash; + unsigned int seq; + u32 last_id_allocated; + struct blocking_notifier_head notifier_chain; +}; + +struct inet_hashinfo; + +struct inet_timewait_death_row { + atomic_t tw_count; + char tw_pad[60]; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; +}; + +struct local_ports { + seqlock_t lock; + int range[2]; + bool warned; +}; + +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; +}; + +typedef struct { + u64 key[2]; +} siphash_key_t; + +struct ipv4_devconf; + +struct ip_ra_chain; + +struct fib_rules_ops; + +struct fib_table; + +struct inet_peer_base; + +struct fqdir; + +struct tcp_congestion_ops; + +struct tcp_fastopen_context; + +struct fib_notifier_ops; + +struct netns_ipv4 { + struct inet_timewait_death_row tcp_death_row; + struct ctl_table_header *forw_hdr; + struct ctl_table_header *frags_hdr; + struct ctl_table_header *ipv4_hdr; + struct ctl_table_header *route_hdr; + struct ctl_table_header *xfrm4_hdr; + struct ipv4_devconf *devconf_all; + struct ipv4_devconf *devconf_dflt; + struct ip_ra_chain *ra_chain; + struct mutex ra_mutex; + struct fib_rules_ops *rules_ops; + struct fib_table *fib_main; + struct fib_table *fib_default; + unsigned int fib_rules_require_fldissect; + bool fib_has_custom_rules; + bool fib_has_custom_local_routes; + bool fib_offload_disabled; + atomic_t fib_num_tclassid_users; + struct hlist_head *fib_table_hash; + struct sock *fibnl; + struct sock **icmp_sk; + struct sock *mc_autojoin_sk; + struct inet_peer_base *peers; + struct fqdir *fqdir; + u8 sysctl_icmp_echo_ignore_all; + u8 sysctl_icmp_echo_enable_probe; + u8 sysctl_icmp_echo_ignore_broadcasts; + u8 sysctl_icmp_ignore_bogus_error_responses; + u8 sysctl_icmp_errors_use_inbound_ifaddr; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; + struct local_ports ip_local_ports; + u8 sysctl_tcp_ecn; + u8 sysctl_tcp_ecn_fallback; + u8 sysctl_ip_default_ttl; + u8 sysctl_ip_no_pmtu_disc; + u8 sysctl_ip_fwd_use_pmtu; + u8 sysctl_ip_fwd_update_priority; + u8 sysctl_ip_nonlocal_bind; + u8 sysctl_ip_autobind_reuse; + u8 sysctl_ip_dynaddr; + u8 sysctl_ip_early_demux; + u8 sysctl_raw_l3mdev_accept; + u8 sysctl_tcp_early_demux; + u8 sysctl_udp_early_demux; + u8 sysctl_nexthop_compat_mode; + u8 sysctl_fwmark_reflect; + u8 sysctl_tcp_fwmark_accept; + u8 sysctl_tcp_l3mdev_accept; + u8 sysctl_tcp_mtu_probing; + int sysctl_tcp_mtu_probe_floor; + int sysctl_tcp_base_mss; + int sysctl_tcp_min_snd_mss; + int sysctl_tcp_probe_threshold; + u32 sysctl_tcp_probe_interval; + int sysctl_tcp_keepalive_time; + int sysctl_tcp_keepalive_intvl; + u8 sysctl_tcp_keepalive_probes; + u8 sysctl_tcp_syn_retries; + u8 sysctl_tcp_synack_retries; + u8 sysctl_tcp_syncookies; + u8 sysctl_tcp_migrate_req; + int sysctl_tcp_reordering; + u8 sysctl_tcp_retries1; + u8 sysctl_tcp_retries2; + u8 sysctl_tcp_orphan_retries; + u8 sysctl_tcp_tw_reuse; + int sysctl_tcp_fin_timeout; + unsigned int sysctl_tcp_notsent_lowat; + u8 sysctl_tcp_sack; + u8 sysctl_tcp_window_scaling; + u8 sysctl_tcp_timestamps; + u8 sysctl_tcp_early_retrans; + u8 sysctl_tcp_recovery; + u8 sysctl_tcp_thin_linear_timeouts; + u8 sysctl_tcp_slow_start_after_idle; + u8 sysctl_tcp_retrans_collapse; + u8 sysctl_tcp_stdurg; + u8 sysctl_tcp_rfc1337; + u8 sysctl_tcp_abort_on_overflow; + u8 sysctl_tcp_fack; + int sysctl_tcp_max_reordering; + int sysctl_tcp_adv_win_scale; + u8 sysctl_tcp_dsack; + u8 sysctl_tcp_app_win; + u8 sysctl_tcp_frto; + u8 sysctl_tcp_nometrics_save; + u8 sysctl_tcp_no_ssthresh_metrics_save; + u8 sysctl_tcp_moderate_rcvbuf; + u8 sysctl_tcp_tso_win_divisor; + u8 sysctl_tcp_workaround_signed_windows; + int sysctl_tcp_limit_output_bytes; + int sysctl_tcp_challenge_ack_limit; + int sysctl_tcp_min_rtt_wlen; + u8 sysctl_tcp_min_tso_segs; + u8 sysctl_tcp_autocorking; + u8 sysctl_tcp_reflect_tos; + u8 sysctl_tcp_comp_sack_nr; + int sysctl_tcp_invalid_ratelimit; + int sysctl_tcp_pacing_ss_ratio; + int sysctl_tcp_pacing_ca_ratio; + int sysctl_tcp_wmem[3]; + int sysctl_tcp_rmem[3]; + long unsigned int sysctl_tcp_comp_sack_delay_ns; + long unsigned int sysctl_tcp_comp_sack_slack_ns; + int sysctl_max_syn_backlog; + int sysctl_tcp_fastopen; + const struct tcp_congestion_ops *tcp_congestion_control; + struct tcp_fastopen_context *tcp_fastopen_ctx; + unsigned int sysctl_tcp_fastopen_blackhole_timeout; + atomic_t tfo_active_disable_times; + long unsigned int tfo_active_disable_stamp; + int sysctl_udp_wmem_min; + int sysctl_udp_rmem_min; + u8 sysctl_fib_notify_on_flag_change; + u8 sysctl_udp_l3mdev_accept; + u8 sysctl_igmp_llm_reports; + int sysctl_igmp_max_memberships; + int sysctl_igmp_max_msf; + int sysctl_igmp_qrv; + struct ping_group_range ping_group_range; + atomic_t dev_addr_genid; + long unsigned int *sysctl_local_reserved_ports; + int sysctl_ip_prot_sock; + struct list_head mr_tables; + struct fib_rules_ops *mr_rules_ops; + u32 sysctl_fib_multipath_hash_fields; + u8 sysctl_fib_multipath_use_neigh; + u8 sysctl_fib_multipath_hash_policy; + struct fib_notifier_ops *notifier_ops; + unsigned int fib_seq; + struct fib_notifier_ops *ipmr_notifier_ops; + unsigned int ipmr_seq; + atomic_t rt_genid; + siphash_key_t ip_id_key; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct dst_entry; + +struct net_device; + +struct sk_buff; + +struct neighbour; + +struct dst_ops { + short unsigned int family; + unsigned int gc_thresh; + void (*gc)(struct dst_ops *); + struct dst_entry * (*check)(struct dst_entry *, __u32); + unsigned int (*default_advmss)(const struct dst_entry *); + unsigned int (*mtu)(const struct dst_entry *); + u32 * (*cow_metrics)(struct dst_entry *, long unsigned int); + void (*destroy)(struct dst_entry *); + void (*ifdown)(struct dst_entry *, struct net_device *, int); + void (*negative_advice)(struct sock *, struct dst_entry *); + void (*link_failure)(struct sk_buff *); + void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); + void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *); + int (*local_out)(struct net *, struct sock *, struct sk_buff *); + struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *); + void (*confirm_neigh)(const struct dst_entry *, const void *); + struct kmem_cache *kmem_cachep; + struct percpu_counter pcpuc_entries; + long: 64; + long: 64; + long: 64; +}; + +struct netns_sysctl_ipv6 { + struct ctl_table_header *hdr; + struct ctl_table_header *route_hdr; + struct ctl_table_header *icmp_hdr; + struct ctl_table_header *frags_hdr; + struct ctl_table_header *xfrm6_hdr; + int flush_delay; + int ip6_rt_max_size; + int ip6_rt_gc_min_interval; + int ip6_rt_gc_timeout; + int ip6_rt_gc_interval; + int ip6_rt_gc_elasticity; + int ip6_rt_mtu_expires; + int ip6_rt_min_advmss; + u32 multipath_hash_fields; + u8 multipath_hash_policy; + u8 bindv6only; + u8 flowlabel_consistency; + u8 auto_flowlabels; + int icmpv6_time; + u8 icmpv6_echo_ignore_all; + u8 icmpv6_echo_ignore_multicast; + u8 icmpv6_echo_ignore_anycast; + long unsigned int icmpv6_ratemask[4]; + long unsigned int *icmpv6_ratemask_ptr; + u8 anycast_src_echo_reply; + u8 ip_nonlocal_bind; + u8 fwmark_reflect; + u8 flowlabel_state_ranges; + int idgen_retries; + int idgen_delay; + int flowlabel_reflect; + int max_dst_opts_cnt; + int max_hbh_opts_cnt; + int max_dst_opts_len; + int max_hbh_opts_len; + int seg6_flowlabel; + u32 ioam6_id; + u64 ioam6_id_wide; + int skip_notify_on_dev_down; + u8 fib_notify_on_flag_change; +}; + +struct ipv6_devconf; + +struct fib6_info; + +struct rt6_info; + +struct rt6_statistics; + +struct fib6_table; + +struct seg6_pernet_data; + +struct ioam6_pernet_data; + +struct netns_ipv6 { + struct dst_ops ip6_dst_ops; + struct netns_sysctl_ipv6 sysctl; + struct ipv6_devconf *devconf_all; + struct ipv6_devconf *devconf_dflt; + struct inet_peer_base *peers; + struct fqdir *fqdir; + struct fib6_info *fib6_null_entry; + struct rt6_info *ip6_null_entry; + struct rt6_statistics *rt6_stats; + struct timer_list ip6_fib_timer; + struct hlist_head *fib_table_hash; + struct fib6_table *fib6_main_tbl; + struct list_head fib6_walkers; + rwlock_t fib6_walker_lock; + spinlock_t fib6_gc_lock; + atomic_t ip6_rt_gc_expire; + long unsigned int ip6_rt_last_gc; + unsigned char flowlabel_has_excl; + bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; + unsigned int fib6_routes_require_src; + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; + struct sock **icmp_sk; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; + struct sock *mc_autojoin_sk; + struct list_head mr6_tables; + struct fib_rules_ops *mr6_rules_ops; + atomic_t dev_addr_genid; + atomic_t fib6_sernum; + struct seg6_pernet_data *seg6_data; + struct fib_notifier_ops *notifier_ops; + struct fib_notifier_ops *ip6mr_notifier_ops; + unsigned int ipmr_seq; + struct { + struct hlist_head head; + spinlock_t lock; + u32 seq; + } ip6addrlbl_table; + struct ioam6_pernet_data *ioam6_data; +}; + +struct netns_sysctl_lowpan { + struct ctl_table_header *frags_hdr; +}; + +struct netns_ieee802154_lowpan { + struct netns_sysctl_lowpan sysctl; + struct fqdir *fqdir; +}; + +struct sctp_mib; + +struct netns_sctp { + struct sctp_mib *sctp_statistics; + struct proc_dir_entry *proc_net_sctp; + struct ctl_table_header *sysctl_header; + struct sock *ctl_sock; + struct sock *udp4_sock; + struct sock *udp6_sock; + int udp_port; + int encap_port; + struct list_head local_addr_list; + struct list_head addr_waitq; + struct timer_list addr_wq_timer; + struct list_head auto_asconf_splist; + spinlock_t addr_wq_lock; + spinlock_t local_addr_lock; + unsigned int rto_initial; + unsigned int rto_min; + unsigned int rto_max; + int rto_alpha; + int rto_beta; + int max_burst; + int cookie_preserve_enable; + char *sctp_hmac_alg; + unsigned int valid_cookie_life; + unsigned int sack_timeout; + unsigned int hb_interval; + unsigned int probe_interval; + int max_retrans_association; + int max_retrans_path; + int max_retrans_init; + int pf_retrans; + int ps_retrans; + int pf_enable; + int pf_expose; + int sndbuf_policy; + int rcvbuf_policy; + int default_auto_asconf; + int addip_enable; + int addip_noauth; + int prsctp_enable; + int reconf_enable; + int auth_enable; + int intl_enable; + int ecn_enable; + int scope_policy; + int rwnd_upd_shift; + long unsigned int max_autoclose; +}; + +struct nf_logger; + +struct nf_hook_entries; + +struct netns_nf { + struct proc_dir_entry *proc_netfilter; + const struct nf_logger *nf_loggers[13]; + struct ctl_table_header *nf_log_dir_header; + struct nf_hook_entries *hooks_ipv4[5]; + struct nf_hook_entries *hooks_ipv6[5]; + struct nf_hook_entries *hooks_arp[3]; + struct nf_hook_entries *hooks_bridge[5]; + unsigned int defrag_ipv4_users; + unsigned int defrag_ipv6_users; +}; + +struct nf_generic_net { + unsigned int timeout; +}; + +struct nf_tcp_net { + unsigned int timeouts[14]; + u8 tcp_loose; + u8 tcp_be_liberal; + u8 tcp_max_retrans; + u8 tcp_ignore_invalid_rst; + unsigned int offload_timeout; +}; + +struct nf_udp_net { + unsigned int timeouts[2]; + unsigned int offload_timeout; +}; + +struct nf_icmp_net { + unsigned int timeout; +}; + +struct nf_dccp_net { + u8 dccp_loose; + unsigned int dccp_timeout[10]; +}; + +struct nf_sctp_net { + unsigned int timeouts[10]; +}; + +struct nf_gre_net { + struct list_head keymap_list; + unsigned int timeouts[2]; +}; + +struct nf_ip_net { + struct nf_generic_net generic; + struct nf_tcp_net tcp; + struct nf_udp_net udp; + struct nf_icmp_net icmp; + struct nf_icmp_net icmpv6; + struct nf_dccp_net dccp; + struct nf_sctp_net sctp; + struct nf_gre_net gre; +}; + +struct ct_pcpu; + +struct ip_conntrack_stat; + +struct nf_ct_event_notifier; + +struct netns_ct { + bool ecache_dwork_pending; + u8 sysctl_log_invalid; + u8 sysctl_events; + u8 sysctl_acct; + u8 sysctl_auto_assign_helper; + u8 sysctl_tstamp; + u8 sysctl_checksum; + struct ct_pcpu *pcpu_lists; + struct ip_conntrack_stat *stat; + struct nf_ct_event_notifier *nf_conntrack_event_cb; + struct nf_ip_net nf_ct_proto; + unsigned int labels_used; +}; + +struct netns_nftables { + u8 gencursor; +}; + +struct nf_flow_table_stat; + +struct netns_ft { + struct nf_flow_table_stat *stat; +}; + +struct sk_buff_head { + struct sk_buff *next; + struct sk_buff *prev; + __u32 qlen; + spinlock_t lock; +}; + +struct netns_bpf { + struct bpf_prog_array *run_array[2]; + struct bpf_prog *progs[2]; + struct list_head links[2]; +}; + +struct xfrm_policy_hash { + struct hlist_head *table; + unsigned int hmask; + u8 dbits4; + u8 sbits4; + u8 dbits6; + u8 sbits6; +}; + +struct xfrm_policy_hthresh { + struct work_struct work; + seqlock_t lock; + u8 lbits4; + u8 rbits4; + u8 lbits6; + u8 rbits6; +}; + +struct netns_xfrm { + struct list_head state_all; + struct hlist_head *state_bydst; + struct hlist_head *state_bysrc; + struct hlist_head *state_byspi; + struct hlist_head *state_byseq; + unsigned int state_hmask; + unsigned int state_num; + struct work_struct state_hash_work; + struct list_head policy_all; + struct hlist_head *policy_byidx; + unsigned int policy_idx_hmask; + unsigned int idx_generator; + struct hlist_head policy_inexact[3]; + struct xfrm_policy_hash policy_bydst[3]; + unsigned int policy_count[6]; + struct work_struct policy_hash_work; + struct xfrm_policy_hthresh policy_hthresh; + struct list_head inexact_bins; + struct sock *nlsk; + struct sock *nlsk_stash; + u32 sysctl_aevent_etime; + u32 sysctl_aevent_rseqth; + int sysctl_larval_drop; + u32 sysctl_acq_expires; + u8 policy_default[3]; + struct ctl_table_header *sysctl_hdr; + long: 64; + long: 64; + long: 64; + struct dst_ops xfrm4_dst_ops; + struct dst_ops xfrm6_dst_ops; + spinlock_t xfrm_state_lock; + seqcount_spinlock_t xfrm_state_hash_generation; + seqcount_spinlock_t xfrm_policy_hash_generation; + spinlock_t xfrm_policy_lock; + struct mutex xfrm_cfg_mutex; + long: 64; + long: 64; +}; + +struct netns_ipvs; + +struct mpls_route; + +struct netns_mpls { + int ip_ttl_propagate; + int default_ttl; + size_t platform_labels; + struct mpls_route **platform_label; + struct ctl_table_header *ctl; +}; + +struct can_dev_rcv_lists; + +struct can_pkg_stats; + +struct can_rcv_lists_stats; + +struct netns_can { + struct proc_dir_entry *proc_dir; + struct proc_dir_entry *pde_stats; + struct proc_dir_entry *pde_reset_stats; + struct proc_dir_entry *pde_rcvlist_all; + struct proc_dir_entry *pde_rcvlist_fil; + struct proc_dir_entry *pde_rcvlist_inv; + struct proc_dir_entry *pde_rcvlist_sff; + struct proc_dir_entry *pde_rcvlist_eff; + struct proc_dir_entry *pde_rcvlist_err; + struct proc_dir_entry *bcmproc_dir; + struct can_dev_rcv_lists *rx_alldev_list; + spinlock_t rcvlists_lock; + struct timer_list stattimer; + struct can_pkg_stats *pkg_stats; + struct can_rcv_lists_stats *rcv_lists_stats; + struct hlist_head cgw_list; +}; + +struct netns_xdp { + struct mutex lock; + struct hlist_head list; +}; + +struct netns_mctp { + struct list_head routes; + struct mutex bind_lock; + struct hlist_head binds; + spinlock_t keys_lock; + struct hlist_head keys; + unsigned int default_net; + struct mutex neigh_lock; + struct list_head neighbours; +}; + +struct smc_stats; + +struct smc_stats_rsn; + +struct netns_smc { + struct smc_stats *smc_stats; + struct mutex mutex_fback_rsn; + struct smc_stats_rsn *fback_rsn; +}; + +struct uevent_sock; + +struct net_generic; + +struct net { + refcount_t passive; + spinlock_t rules_mod_lock; + unsigned int dev_unreg_count; + unsigned int dev_base_seq; + int ifindex; + spinlock_t nsid_lock; + atomic_t fnhe_genid; + struct list_head list; + struct list_head exit_list; + struct llist_node cleanup_list; + struct key_tag *key_domain; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct idr netns_ids; + struct ns_common ns; + struct list_head dev_base_head; + struct proc_dir_entry *proc_net; + struct proc_dir_entry *proc_net_stat; + struct ctl_table_set sysctls; + struct sock *rtnl; + struct sock *genl_sock; + struct uevent_sock *uevent_sock; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + struct raw_notifier_head netdev_chain; + u32 hash_mix; + struct net_device *loopback_dev; + struct list_head rules_ops; + struct netns_core core; + struct netns_mib mib; + struct netns_packet packet; + struct netns_unix unx; + struct netns_nexthop nexthop; + struct netns_ipv4 ipv4; + struct netns_ipv6 ipv6; + struct netns_ieee802154_lowpan ieee802154_lowpan; + struct netns_sctp sctp; + struct netns_nf nf; + struct netns_ct ct; + struct netns_nftables nft; + struct netns_ft ft; + struct sk_buff_head wext_nlevents; + struct net_generic *gen; + struct netns_bpf bpf; + long: 64; + long: 64; + long: 64; + struct netns_xfrm xfrm; + u64 net_cookie; + struct netns_ipvs *ipvs; + struct netns_mpls mpls; + struct netns_can can; + struct netns_xdp xdp; + struct netns_mctp mctp; + struct sock *crypto_nlsk; + struct sock *diag_nlsk; + struct netns_smc smc; + long: 64; +}; + struct cgroup_namespace { - refcount_t count; struct ns_common ns; struct user_namespace *user_ns; struct ucounts *ucounts; @@ -7296,14 +8450,6 @@ struct proc_ns_operations { struct ns_common * (*get_parent)(struct ns_common *); }; -struct ucounts { - struct hlist_node node; - struct user_namespace *ns; - kuid_t uid; - int count; - atomic_t ucount[10]; -}; - struct perf_cpu_context; struct perf_output_handle; @@ -7350,6 +8496,10 @@ struct pmu { int (*check_period)(struct perf_event *, u64); }; +struct ftrace_regs { + struct pt_regs regs; +}; + struct iovec { void *iov_base; __kernel_size_t iov_len; @@ -7372,11 +8522,12 @@ struct bpf_cgroup_storage_key { __u32 attach_type; }; -struct bpf_cgroup_storage; - -struct bpf_prog_array_item { - struct bpf_prog *prog; - struct bpf_cgroup_storage *cgroup_storage[2]; +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_CGROUP = 1, + KMALLOC_RECLAIM = 2, + KMALLOC_DMA = 3, + NR_KMALLOC_TYPES = 4, }; struct bpf_storage_buffer; @@ -7396,11 +8547,142 @@ struct bpf_cgroup_storage { struct callback_head rcu; }; +struct bpf_prog_array_item { + struct bpf_prog *prog; + union { + struct bpf_cgroup_storage *cgroup_storage[2]; + u64 bpf_cookie; + }; +}; + struct bpf_prog_array { struct callback_head rcu; struct bpf_prog_array_item items[0]; }; +typedef unsigned int sk_buff_data_t; + +struct skb_ext; + +struct sk_buff { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + union { + struct net_device *dev; + long unsigned int dev_scratch; + }; + }; + struct rb_node rbnode; + struct list_head list; + }; + struct sock *sk; + union { + ktime_t tstamp; + u64 skb_mstamp_ns; + }; + char cb[48]; + union { + struct { + long unsigned int _skb_refdst; + void (*destructor)(struct sk_buff *); + }; + struct list_head tcp_tsorted_anchor; + long unsigned int _sk_redir; + }; + long unsigned int _nfct; + unsigned int len; + unsigned int data_len; + __u16 mac_len; + __u16 hdr_len; + __u16 queue_mapping; + __u8 __cloned_offset[0]; + __u8 cloned: 1; + __u8 nohdr: 1; + __u8 fclone: 2; + __u8 peeked: 1; + __u8 head_frag: 1; + __u8 pfmemalloc: 1; + __u8 pp_recycle: 1; + __u8 active_extensions; + __u32 headers_start[0]; + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 nf_trace: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 __pkt_vlan_present_offset[0]; + __u8 vlan_present: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 csum_not_inet: 1; + __u8 dst_pending_confirm: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 inner_protocol_type: 1; + __u8 remcsum_offload: 1; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 tc_skip_classify: 1; + __u8 tc_at_ingress: 1; + __u8 redirected: 1; + __u8 from_ingress: 1; + __u8 decrypted: 1; + __u8 slow_gro: 1; + __u8 scm_io_uring: 1; + __u16 tc_index; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + __be16 vlan_proto; + __u16 vlan_tci; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __u32 secmark; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + __u32 headers_end[0]; + sk_buff_data_t tail; + sk_buff_data_t end; + unsigned char *head; + unsigned char *data; + unsigned int truesize; + refcount_t users; + struct skb_ext *extensions; +}; + struct bpf_storage_buffer { struct callback_head rcu; char data[0]; @@ -7408,13 +8690,11 @@ struct bpf_storage_buffer { struct psi_group_cpu { seqcount_t seq; - unsigned int tasks[4]; + unsigned int tasks[5]; u32 state_mask; - u32 times[6]; + u32 times[7]; u64 state_start; - long: 64; - u32 times_prev[12]; - long: 64; + u32 times_prev[14]; long: 64; }; @@ -7434,7 +8714,7 @@ struct cgroup_subsys { int (*can_attach)(struct cgroup_taskset *); void (*cancel_attach)(struct cgroup_taskset *); void (*attach)(struct cgroup_taskset *); - void (*post_attach)(); + void (*post_attach)(void); int (*can_fork)(struct task_struct *, struct css_set *); void (*cancel_fork)(struct task_struct *, struct css_set *); void (*fork)(struct task_struct *); @@ -7444,8 +8724,6 @@ struct cgroup_subsys { bool early_init: 1; bool implicit_on_dfl: 1; bool threaded: 1; - bool broken_hierarchy: 1; - bool warned_broken_hierarchy: 1; int id; const char *name; const char *legacy_name; @@ -7469,10 +8747,11 @@ struct cgroup_root { struct kernfs_root *kf_root; unsigned int subsys_mask; int hierarchy_id; + struct list_head root_list; + struct callback_head rcu; struct cgroup cgrp; u64 cgrp_ancestor_id_storage; atomic_t nr_cgrps; - struct list_head root_list; unsigned int flags; char release_agent_path[4096]; char name[64]; @@ -7501,13 +8780,6 @@ struct cftype { __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); }; -enum kmalloc_cache_type { - KMALLOC_NORMAL = 0, - KMALLOC_RECLAIM = 1, - KMALLOC_DMA = 2, - NR_KMALLOC_TYPES = 3, -}; - struct perf_callchain_entry { __u64 nr; __u64 ip[0]; @@ -7578,7 +8850,7 @@ struct perf_sample_data { struct perf_raw_record *raw; struct perf_branch_stack *br_stack; u64 period; - u64 weight; + union perf_sample_weight weight; u64 txn; union perf_mem_data_src data_src; u64 type; @@ -7601,6 +8873,14 @@ struct perf_sample_data { u64 stack_user_size; u64 phys_addr; u64 cgroup; + u64 data_page_size; + u64 code_page_size; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; long: 64; }; @@ -7644,6 +8924,9 @@ struct trace_iterator { long unsigned int iter_flags; void *temp; unsigned int temp_size; + char *fmt; + unsigned int fmt_size; + long int wait_index; struct trace_seq tmp_seq; cpumask_var_t started; bool snapshot; @@ -7719,8 +9002,7 @@ struct trace_event_buffer { struct ring_buffer_event *event; struct trace_event_file *trace_file; void *entry; - long unsigned int flags; - int pc; + unsigned int trace_ctx; struct pt_regs *regs; }; @@ -7735,6 +9017,7 @@ struct trace_event_file { struct trace_subsystem_dir *system; struct list_head triggers; long unsigned int flags; + atomic_t ref; atomic_t sm_ref; atomic_t tm_ref; }; @@ -7745,8 +9028,10 @@ enum { TRACE_EVENT_FL_NO_SET_FILTER_BIT = 2, TRACE_EVENT_FL_IGNORE_ENABLE_BIT = 3, TRACE_EVENT_FL_TRACEPOINT_BIT = 4, - TRACE_EVENT_FL_KPROBE_BIT = 5, - TRACE_EVENT_FL_UPROBE_BIT = 6, + TRACE_EVENT_FL_DYNAMIC_BIT = 5, + TRACE_EVENT_FL_KPROBE_BIT = 6, + TRACE_EVENT_FL_UPROBE_BIT = 7, + TRACE_EVENT_FL_EPROBE_BIT = 8, }; enum { @@ -7755,8 +9040,10 @@ enum { TRACE_EVENT_FL_NO_SET_FILTER = 4, TRACE_EVENT_FL_IGNORE_ENABLE = 8, TRACE_EVENT_FL_TRACEPOINT = 16, - TRACE_EVENT_FL_KPROBE = 32, - TRACE_EVENT_FL_UPROBE = 64, + TRACE_EVENT_FL_DYNAMIC = 32, + TRACE_EVENT_FL_KPROBE = 64, + TRACE_EVENT_FL_UPROBE = 128, + TRACE_EVENT_FL_EPROBE = 256, }; enum { @@ -7771,6 +9058,7 @@ enum { EVENT_FILE_FL_TRIGGER_COND_BIT = 8, EVENT_FILE_FL_PID_FILTER_BIT = 9, EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, }; enum { @@ -7785,6 +9073,18 @@ enum { EVENT_FILE_FL_TRIGGER_COND = 256, EVENT_FILE_FL_PID_FILTER = 512, EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, +}; + +enum event_trigger_type { + ETT_NONE = 0, + ETT_TRACE_ONOFF = 1, + ETT_SNAPSHOT = 2, + ETT_STACKTRACE = 4, + ETT_EVENT_ENABLE = 8, + ETT_EVENT_HIST = 16, + ETT_HIST_ENABLE = 32, + ETT_EVENT_EPROBE = 64, }; enum { @@ -7819,7 +9119,7 @@ struct fwnode_operations { struct fwnode_handle * (*graph_get_remote_endpoint)(const struct fwnode_handle *); struct fwnode_handle * (*graph_get_port_parent)(struct fwnode_handle *); int (*graph_parse_endpoint)(const struct fwnode_handle *, struct fwnode_endpoint *); - int (*add_links)(const struct fwnode_handle *, struct device *); + int (*add_links)(struct fwnode_handle *); }; struct fwnode_endpoint { @@ -7847,8 +9147,6 @@ struct irq_fwspec { u32 param[16]; }; -struct irq_data; - struct irq_domain_ops { int (*match)(struct irq_domain *, struct device_node *, enum irq_domain_bus_token); int (*select)(struct irq_domain *, struct irq_fwspec *, enum irq_domain_bus_token); @@ -7862,6 +9160,13 @@ struct irq_domain_ops { int (*translate)(struct irq_domain *, struct irq_fwspec *, long unsigned int *, unsigned int *); }; +struct xbc_node { + u16 next; + u16 child; + u16 parent; + u16 data; +}; + enum wb_stat_item { WB_RECLAIMABLE = 0, WB_WRITEBACK = 1, @@ -7870,26 +9175,6 @@ enum wb_stat_item { NR_WB_STAT_ITEMS = 4, }; -struct disk_stats; - -struct partition_meta_info; - -struct hd_struct { - sector_t start_sect; - sector_t nr_sects; - long unsigned int stamp; - struct disk_stats *dkstats; - struct percpu_ref ref; - struct device __dev; - struct kobject *holder_dir; - int policy; - int partno; - struct partition_meta_info *info; - struct rcu_work rcu_work; -}; - -struct disk_part_tbl; - struct block_device_operations; struct timer_rand_state; @@ -7907,29 +9192,36 @@ struct gendisk { char disk_name[32]; short unsigned int events; short unsigned int event_flags; - struct disk_part_tbl *part_tbl; - struct hd_struct part0; + struct xarray part_tbl; + struct block_device *part0; const struct block_device_operations *fops; struct request_queue *queue; void *private_data; int flags; long unsigned int state; - struct rw_semaphore lookup_sem; + struct mutex open_mutex; + unsigned int open_partitions; + struct backing_dev_info *bdi; struct kobject *slave_dir; + struct list_head slave_bdevs; struct timer_rand_state *random; atomic_t sync_io; struct disk_events *ev; - struct kobject integrity_kobj; struct cdrom_device_info *cdi; int node_id; struct badblocks *bb; struct lockdep_map lockdep_map; + u64 diskseq; +}; + +struct partition_meta_info { + char uuid[37]; + u8 volname[64]; }; struct bio_integrity_payload { struct bio *bip_bio; struct bvec_iter bip_iter; - short unsigned int bip_slab; short unsigned int bip_vcnt; short unsigned int bip_max_vcnt; short unsigned int bip_flags; @@ -7964,7 +9256,7 @@ struct blkcg_gq { bool online; struct blkg_iostat_set *iostat_cpu; struct blkg_iostat_set iostat; - struct blkg_policy_data *pd[5]; + struct blkg_policy_data *pd[6]; spinlock_t async_bio_lock; struct bio_list async_bios; struct work_struct async_bio_work; @@ -7980,18 +9272,6 @@ typedef __u32 blk_mq_req_flags_t; typedef unsigned int blk_qc_t; -struct partition_meta_info { - char uuid[37]; - u8 volname[64]; -}; - -struct disk_part_tbl { - struct callback_head callback_head; - int len; - struct hd_struct *last_lookup; - struct hd_struct *part[0]; -}; - struct blk_integrity_iter; typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); @@ -8025,68 +9305,77 @@ struct block_device_operations { int (*compat_ioctl)(struct block_device *, fmode_t, unsigned int, long unsigned int); unsigned int (*check_events)(struct gendisk *, unsigned int); void (*unlock_native_capacity)(struct gendisk *); - int (*revalidate_disk)(struct gendisk *); int (*getgeo)(struct block_device *, struct hd_geometry *); + int (*set_read_only)(struct block_device *, bool); void (*swap_slot_free_notify)(struct block_device *, long unsigned int); int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); char * (*devnode)(struct gendisk *, umode_t *); struct module *owner; const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); }; -struct sg_io_v4 { - __s32 guard; - __u32 protocol; - __u32 subprotocol; - __u32 request_len; - __u64 request; - __u64 request_tag; - __u32 request_attr; - __u32 request_priority; - __u32 request_extra; - __u32 max_response_len; - __u64 response; - __u32 dout_iovec_count; - __u32 dout_xfer_len; - __u32 din_iovec_count; - __u32 din_xfer_len; - __u64 dout_xferp; - __u64 din_xferp; - __u32 timeout; - __u32 flags; - __u64 usr_ptr; - __u32 spare_in; - __u32 driver_status; - __u32 transport_status; - __u32 device_status; - __u32 retry_delay; - __u32 info; - __u32 duration; - __u32 response_len; - __s32 din_resid; - __s32 dout_resid; - __u64 generated_tag; - __u32 spare_out; - __u32 padding; +struct blk_zone { + __u64 start; + __u64 len; + __u64 wp; + __u8 type; + __u8 cond; + __u8 non_seq; + __u8 reset; + __u8 resv[4]; + __u64 capacity; + __u8 reserved[24]; }; -struct bsg_ops { - int (*check_proto)(struct sg_io_v4 *); - int (*fill_hdr)(struct request *, struct sg_io_v4 *, fmode_t); - int (*complete_rq)(struct request *, struct sg_io_v4 *); - void (*free_rq)(struct request *); +struct sbitmap_word { + long unsigned int depth; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int word; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long unsigned int cleared; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -typedef __u32 req_flags_t; +struct sbq_wait_state { + atomic_t wait_cnt; + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + long: 64; +}; typedef void rq_end_io_fn(struct request *, blk_status_t); +typedef __u32 req_flags_t; + enum mq_rq_state { MQ_RQ_IDLE = 0, MQ_RQ_IN_FLIGHT = 1, MQ_RQ_COMPLETE = 2, }; +struct blk_ksm_keyslot; + struct request { struct request_queue *q; struct blk_mq_ctx *mq_ctx; @@ -8102,7 +9391,7 @@ struct request { struct list_head queuelist; union { struct hlist_node hash; - struct list_head ipi_list; + struct llist_node ipi_list; }; union { struct rb_node rb_node; @@ -8122,7 +9411,7 @@ struct request { } flush; }; struct gendisk *rq_disk; - struct hd_struct *part; + struct block_device *part; u64 alloc_time_ns; u64 start_time_ns; u64 io_start_time_ns; @@ -8130,6 +9419,8 @@ struct request { short unsigned int stats_sectors; short unsigned int nr_phys_segments; short unsigned int nr_integrity_segments; + struct bio_crypt_ctx *crypt_ctx; + struct blk_ksm_keyslot *crypt_keyslot; short unsigned int write_hint; short unsigned int ioprio; enum mq_rq_state state; @@ -8144,28 +9435,6 @@ struct request { void *end_io_data; }; -struct blk_zone { - __u64 start; - __u64 len; - __u64 wp; - __u8 type; - __u8 cond; - __u8 non_seq; - __u8 reset; - __u8 resv[4]; - __u64 capacity; - __u8 reserved[24]; -}; - -struct sbitmap_word; - -struct sbitmap { - unsigned int depth; - unsigned int shift; - unsigned int map_nr; - struct sbitmap_word *map; -}; - struct blk_mq_tags; struct blk_mq_hw_ctx { @@ -8204,7 +9473,6 @@ struct blk_mq_hw_ctx { unsigned int numa_node; unsigned int queue_num; atomic_t nr_active; - atomic_t elevator_queued; struct hlist_node cpuhp_online; struct hlist_node cpuhp_dead; struct kobject kobj; @@ -8215,7 +9483,6 @@ struct blk_mq_hw_ctx { struct dentry *sched_debugfs_dir; struct list_head hctx_list; struct srcu_struct srcu[0]; - long: 64; }; enum elv_merge { @@ -8307,8 +9574,10 @@ struct blk_mq_queue_data; struct blk_mq_ops { blk_status_t (*queue_rq)(struct blk_mq_hw_ctx *, const struct blk_mq_queue_data *); void (*commit_rqs)(struct blk_mq_hw_ctx *); - bool (*get_budget)(struct request_queue *); - void (*put_budget)(struct request_queue *); + int (*get_budget)(struct request_queue *); + void (*put_budget)(struct request_queue *, int); + void (*set_rq_budget_token)(struct request *, int); + int (*get_rq_budget_token)(struct request *); enum blk_eh_timer_return (*timeout)(struct request *, bool); int (*poll)(struct blk_mq_hw_ctx *); void (*complete)(struct request *); @@ -8329,19 +9598,6 @@ struct blk_mq_queue_map { unsigned int queue_offset; }; -struct sbq_wait_state; - -struct sbitmap_queue { - struct sbitmap sb; - unsigned int *alloc_hint; - unsigned int wake_batch; - atomic_t wake_index; - struct sbq_wait_state *ws; - atomic_t ws_active; - bool round_robin; - unsigned int min_shallow_depth; -}; - struct blk_mq_tag_set { struct blk_mq_queue_map map[3]; unsigned int nr_maps; @@ -8388,42 +9644,6 @@ struct pr_ops { int (*pr_clear)(struct block_device *, u64); }; -struct sbitmap_word { - long unsigned int depth; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long unsigned int word; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long unsigned int cleared; - spinlock_t swap_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct sbq_wait_state { - atomic_t wait_cnt; - wait_queue_head_t wait; - long: 64; - long: 64; - long: 64; - long: 64; -}; - enum hctx_type { HCTX_TYPE_DEFAULT = 0, HCTX_TYPE_READ = 1, @@ -8452,8 +9672,9 @@ struct blkcg { struct xarray blkg_tree; struct blkcg_gq *blkg_hint; struct hlist_head blkg_list; - struct blkcg_policy_data *cpd[5]; + struct blkcg_policy_data *cpd[6]; struct list_head all_blkcgs_node; + char fc_app_id[129]; struct list_head cgwb_list; }; @@ -8623,10 +9844,10 @@ struct efi { }; enum memcg_stat_item { - MEMCG_SWAP = 37, - MEMCG_SOCK = 38, - MEMCG_PERCPU_B = 39, - MEMCG_NR_STAT = 40, + MEMCG_SWAP = 39, + MEMCG_SOCK = 40, + MEMCG_PERCPU_B = 41, + MEMCG_NR_STAT = 42, }; enum memcg_memory_event { @@ -8648,8 +9869,10 @@ enum mem_cgroup_events_target { }; struct memcg_vmstats_percpu { - long int stat[40]; - long unsigned int events[96]; + long int state[42]; + long unsigned int events[100]; + long int state_prev[42]; + long unsigned int events_prev[100]; long unsigned int nr_page_events; long unsigned int targets[2]; }; @@ -8659,23 +9882,29 @@ struct mem_cgroup_reclaim_iter { unsigned int generation; }; -struct lruvec_stat { - long int count[37]; +struct shrinker_info { + struct callback_head rcu; + atomic_long_t *nr_deferred; + long unsigned int *map; }; -struct memcg_shrinker_map { - struct callback_head rcu; - long unsigned int map[0]; +struct lruvec_stats_percpu { + long int state[39]; + long int state_prev[39]; +}; + +struct lruvec_stats { + long int state[39]; + long int state_pending[39]; }; struct mem_cgroup_per_node { struct lruvec lruvec; - struct lruvec_stat *lruvec_stat_local; - struct lruvec_stat *lruvec_stat_cpu; - atomic_long_t lruvec_stat[37]; + struct lruvec_stats_percpu *lruvec_stats_percpu; + struct lruvec_stats lruvec_stats; long unsigned int lru_zone_size[25]; struct mem_cgroup_reclaim_iter iter; - struct memcg_shrinker_map *shrinker_map; + struct shrinker_info *shrinker_info; struct rb_node tree_node; long unsigned int usage_in_excess; bool on_tree; @@ -8695,6 +9924,16 @@ struct mem_cgroup_threshold_ary { struct mem_cgroup_threshold entries[0]; }; +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; +}; + struct percpu_cluster { struct swap_cluster_info index; unsigned int next; @@ -8750,6 +9989,721 @@ struct fs_parse_result { }; }; +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; +}; + +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_MAX = 28, +}; + +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTPKTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + __IPSTATS_MIB_MAX = 37, +}; + +enum { + ICMP_MIB_NUM = 0, + ICMP_MIB_INMSGS = 1, + ICMP_MIB_INERRORS = 2, + ICMP_MIB_INDESTUNREACHS = 3, + ICMP_MIB_INTIMEEXCDS = 4, + ICMP_MIB_INPARMPROBS = 5, + ICMP_MIB_INSRCQUENCHS = 6, + ICMP_MIB_INREDIRECTS = 7, + ICMP_MIB_INECHOS = 8, + ICMP_MIB_INECHOREPS = 9, + ICMP_MIB_INTIMESTAMPS = 10, + ICMP_MIB_INTIMESTAMPREPS = 11, + ICMP_MIB_INADDRMASKS = 12, + ICMP_MIB_INADDRMASKREPS = 13, + ICMP_MIB_OUTMSGS = 14, + ICMP_MIB_OUTERRORS = 15, + ICMP_MIB_OUTDESTUNREACHS = 16, + ICMP_MIB_OUTTIMEEXCDS = 17, + ICMP_MIB_OUTPARMPROBS = 18, + ICMP_MIB_OUTSRCQUENCHS = 19, + ICMP_MIB_OUTREDIRECTS = 20, + ICMP_MIB_OUTECHOS = 21, + ICMP_MIB_OUTECHOREPS = 22, + ICMP_MIB_OUTTIMESTAMPS = 23, + ICMP_MIB_OUTTIMESTAMPREPS = 24, + ICMP_MIB_OUTADDRMASKS = 25, + ICMP_MIB_OUTADDRMASKREPS = 26, + ICMP_MIB_CSUMERRORS = 27, + __ICMP_MIB_MAX = 28, +}; + +enum { + ICMP6_MIB_NUM = 0, + ICMP6_MIB_INMSGS = 1, + ICMP6_MIB_INERRORS = 2, + ICMP6_MIB_OUTMSGS = 3, + ICMP6_MIB_OUTERRORS = 4, + ICMP6_MIB_CSUMERRORS = 5, + __ICMP6_MIB_MAX = 6, +}; + +enum { + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM = 1, + TCP_MIB_RTOMIN = 2, + TCP_MIB_RTOMAX = 3, + TCP_MIB_MAXCONN = 4, + TCP_MIB_ACTIVEOPENS = 5, + TCP_MIB_PASSIVEOPENS = 6, + TCP_MIB_ATTEMPTFAILS = 7, + TCP_MIB_ESTABRESETS = 8, + TCP_MIB_CURRESTAB = 9, + TCP_MIB_INSEGS = 10, + TCP_MIB_OUTSEGS = 11, + TCP_MIB_RETRANSSEGS = 12, + TCP_MIB_INERRS = 13, + TCP_MIB_OUTRSTS = 14, + TCP_MIB_CSUMERRORS = 15, + __TCP_MIB_MAX = 16, +}; + +enum { + UDP_MIB_NUM = 0, + UDP_MIB_INDATAGRAMS = 1, + UDP_MIB_NOPORTS = 2, + UDP_MIB_INERRORS = 3, + UDP_MIB_OUTDATAGRAMS = 4, + UDP_MIB_RCVBUFERRORS = 5, + UDP_MIB_SNDBUFERRORS = 6, + UDP_MIB_CSUMERRORS = 7, + UDP_MIB_IGNOREDMULTI = 8, + UDP_MIB_MEMERRORS = 9, + __UDP_MIB_MAX = 10, +}; + +enum { + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT = 1, + LINUX_MIB_SYNCOOKIESRECV = 2, + LINUX_MIB_SYNCOOKIESFAILED = 3, + LINUX_MIB_EMBRYONICRSTS = 4, + LINUX_MIB_PRUNECALLED = 5, + LINUX_MIB_RCVPRUNED = 6, + LINUX_MIB_OFOPRUNED = 7, + LINUX_MIB_OUTOFWINDOWICMPS = 8, + LINUX_MIB_LOCKDROPPEDICMPS = 9, + LINUX_MIB_ARPFILTER = 10, + LINUX_MIB_TIMEWAITED = 11, + LINUX_MIB_TIMEWAITRECYCLED = 12, + LINUX_MIB_TIMEWAITKILLED = 13, + LINUX_MIB_PAWSACTIVEREJECTED = 14, + LINUX_MIB_PAWSESTABREJECTED = 15, + LINUX_MIB_DELAYEDACKS = 16, + LINUX_MIB_DELAYEDACKLOCKED = 17, + LINUX_MIB_DELAYEDACKLOST = 18, + LINUX_MIB_LISTENOVERFLOWS = 19, + LINUX_MIB_LISTENDROPS = 20, + LINUX_MIB_TCPHPHITS = 21, + LINUX_MIB_TCPPUREACKS = 22, + LINUX_MIB_TCPHPACKS = 23, + LINUX_MIB_TCPRENORECOVERY = 24, + LINUX_MIB_TCPSACKRECOVERY = 25, + LINUX_MIB_TCPSACKRENEGING = 26, + LINUX_MIB_TCPSACKREORDER = 27, + LINUX_MIB_TCPRENOREORDER = 28, + LINUX_MIB_TCPTSREORDER = 29, + LINUX_MIB_TCPFULLUNDO = 30, + LINUX_MIB_TCPPARTIALUNDO = 31, + LINUX_MIB_TCPDSACKUNDO = 32, + LINUX_MIB_TCPLOSSUNDO = 33, + LINUX_MIB_TCPLOSTRETRANSMIT = 34, + LINUX_MIB_TCPRENOFAILURES = 35, + LINUX_MIB_TCPSACKFAILURES = 36, + LINUX_MIB_TCPLOSSFAILURES = 37, + LINUX_MIB_TCPFASTRETRANS = 38, + LINUX_MIB_TCPSLOWSTARTRETRANS = 39, + LINUX_MIB_TCPTIMEOUTS = 40, + LINUX_MIB_TCPLOSSPROBES = 41, + LINUX_MIB_TCPLOSSPROBERECOVERY = 42, + LINUX_MIB_TCPRENORECOVERYFAIL = 43, + LINUX_MIB_TCPSACKRECOVERYFAIL = 44, + LINUX_MIB_TCPRCVCOLLAPSED = 45, + LINUX_MIB_TCPDSACKOLDSENT = 46, + LINUX_MIB_TCPDSACKOFOSENT = 47, + LINUX_MIB_TCPDSACKRECV = 48, + LINUX_MIB_TCPDSACKOFORECV = 49, + LINUX_MIB_TCPABORTONDATA = 50, + LINUX_MIB_TCPABORTONCLOSE = 51, + LINUX_MIB_TCPABORTONMEMORY = 52, + LINUX_MIB_TCPABORTONTIMEOUT = 53, + LINUX_MIB_TCPABORTONLINGER = 54, + LINUX_MIB_TCPABORTFAILED = 55, + LINUX_MIB_TCPMEMORYPRESSURES = 56, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, + LINUX_MIB_TCPSACKDISCARD = 58, + LINUX_MIB_TCPDSACKIGNOREDOLD = 59, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, + LINUX_MIB_TCPSPURIOUSRTOS = 61, + LINUX_MIB_TCPMD5NOTFOUND = 62, + LINUX_MIB_TCPMD5UNEXPECTED = 63, + LINUX_MIB_TCPMD5FAILURE = 64, + LINUX_MIB_SACKSHIFTED = 65, + LINUX_MIB_SACKMERGED = 66, + LINUX_MIB_SACKSHIFTFALLBACK = 67, + LINUX_MIB_TCPBACKLOGDROP = 68, + LINUX_MIB_PFMEMALLOCDROP = 69, + LINUX_MIB_TCPMINTTLDROP = 70, + LINUX_MIB_TCPDEFERACCEPTDROP = 71, + LINUX_MIB_IPRPFILTER = 72, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, + LINUX_MIB_TCPREQQFULLDROP = 75, + LINUX_MIB_TCPRETRANSFAIL = 76, + LINUX_MIB_TCPRCVCOALESCE = 77, + LINUX_MIB_TCPBACKLOGCOALESCE = 78, + LINUX_MIB_TCPOFOQUEUE = 79, + LINUX_MIB_TCPOFODROP = 80, + LINUX_MIB_TCPOFOMERGE = 81, + LINUX_MIB_TCPCHALLENGEACK = 82, + LINUX_MIB_TCPSYNCHALLENGE = 83, + LINUX_MIB_TCPFASTOPENACTIVE = 84, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, + LINUX_MIB_TCPFASTOPENPASSIVE = 86, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, + LINUX_MIB_BUSYPOLLRXPACKETS = 92, + LINUX_MIB_TCPAUTOCORKING = 93, + LINUX_MIB_TCPFROMZEROWINDOWADV = 94, + LINUX_MIB_TCPTOZEROWINDOWADV = 95, + LINUX_MIB_TCPWANTZEROWINDOWADV = 96, + LINUX_MIB_TCPSYNRETRANS = 97, + LINUX_MIB_TCPORIGDATASENT = 98, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, + LINUX_MIB_TCPHYSTARTTRAINCWND = 100, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, + LINUX_MIB_TCPHYSTARTDELAYCWND = 102, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, + LINUX_MIB_TCPACKSKIPPEDPAWS = 104, + LINUX_MIB_TCPACKSKIPPEDSEQ = 105, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, + LINUX_MIB_TCPWINPROBE = 109, + LINUX_MIB_TCPKEEPALIVE = 110, + LINUX_MIB_TCPMTUPFAIL = 111, + LINUX_MIB_TCPMTUPSUCCESS = 112, + LINUX_MIB_TCPDELIVERED = 113, + LINUX_MIB_TCPDELIVEREDCE = 114, + LINUX_MIB_TCPACKCOMPRESSED = 115, + LINUX_MIB_TCPZEROWINDOWDROP = 116, + LINUX_MIB_TCPRCVQDROP = 117, + LINUX_MIB_TCPWQUEUETOOBIG = 118, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, + LINUX_MIB_TCPTIMEOUTREHASH = 120, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, + LINUX_MIB_TCPDSACKRECVSEGS = 122, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, + LINUX_MIB_TCPMIGRATEREQFAILURE = 125, + __LINUX_MIB_MAX = 126, +}; + +enum { + LINUX_MIB_XFRMNUM = 0, + LINUX_MIB_XFRMINERROR = 1, + LINUX_MIB_XFRMINBUFFERERROR = 2, + LINUX_MIB_XFRMINHDRERROR = 3, + LINUX_MIB_XFRMINNOSTATES = 4, + LINUX_MIB_XFRMINSTATEPROTOERROR = 5, + LINUX_MIB_XFRMINSTATEMODEERROR = 6, + LINUX_MIB_XFRMINSTATESEQERROR = 7, + LINUX_MIB_XFRMINSTATEEXPIRED = 8, + LINUX_MIB_XFRMINSTATEMISMATCH = 9, + LINUX_MIB_XFRMINSTATEINVALID = 10, + LINUX_MIB_XFRMINTMPLMISMATCH = 11, + LINUX_MIB_XFRMINNOPOLS = 12, + LINUX_MIB_XFRMINPOLBLOCK = 13, + LINUX_MIB_XFRMINPOLERROR = 14, + LINUX_MIB_XFRMOUTERROR = 15, + LINUX_MIB_XFRMOUTBUNDLEGENERROR = 16, + LINUX_MIB_XFRMOUTBUNDLECHECKERROR = 17, + LINUX_MIB_XFRMOUTNOSTATES = 18, + LINUX_MIB_XFRMOUTSTATEPROTOERROR = 19, + LINUX_MIB_XFRMOUTSTATEMODEERROR = 20, + LINUX_MIB_XFRMOUTSTATESEQERROR = 21, + LINUX_MIB_XFRMOUTSTATEEXPIRED = 22, + LINUX_MIB_XFRMOUTPOLBLOCK = 23, + LINUX_MIB_XFRMOUTPOLDEAD = 24, + LINUX_MIB_XFRMOUTPOLERROR = 25, + LINUX_MIB_XFRMFWDHDRERROR = 26, + LINUX_MIB_XFRMOUTSTATEINVALID = 27, + LINUX_MIB_XFRMACQUIREERROR = 28, + __LINUX_MIB_XFRMMAX = 29, +}; + +enum { + LINUX_MIB_TLSNUM = 0, + LINUX_MIB_TLSCURRTXSW = 1, + LINUX_MIB_TLSCURRRXSW = 2, + LINUX_MIB_TLSCURRTXDEVICE = 3, + LINUX_MIB_TLSCURRRXDEVICE = 4, + LINUX_MIB_TLSTXSW = 5, + LINUX_MIB_TLSRXSW = 6, + LINUX_MIB_TLSTXDEVICE = 7, + LINUX_MIB_TLSRXDEVICE = 8, + LINUX_MIB_TLSDECRYPTERROR = 9, + LINUX_MIB_TLSRXDEVICERESYNC = 10, + __LINUX_MIB_TLSMAX = 11, +}; + +struct ipstats_mib { + u64 mibs[37]; + struct u64_stats_sync syncp; +}; + +struct icmp_mib { + long unsigned int mibs[28]; +}; + +struct icmpmsg_mib { + atomic_long_t mibs[512]; +}; + +struct icmpv6_mib { + long unsigned int mibs[6]; +}; + +struct icmpv6msg_mib { + atomic_long_t mibs[512]; +}; + +struct tcp_mib { + long unsigned int mibs[16]; +}; + +struct udp_mib { + long unsigned int mibs[10]; +}; + +struct linux_mib { + long unsigned int mibs[126]; +}; + +struct linux_xfrm_mib { + long unsigned int mibs[29]; +}; + +struct linux_tls_mib { + long unsigned int mibs[11]; +}; + +struct inet_frags; + +struct fqdir { + long int high_thresh; + long int low_thresh; + int timeout; + int max_dist; + struct inet_frags *f; + struct net *net; + bool dead; + long: 64; + long: 64; + struct rhashtable rhashtable; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_long_t mem; + struct work_struct destroy_work; + struct llist_node free_list; + long: 64; + long: 64; +}; + +struct inet_frag_queue; + +struct inet_frags { + unsigned int qsize; + void (*constructor)(struct inet_frag_queue *, const void *); + void (*destructor)(struct inet_frag_queue *); + void (*frag_expire)(struct timer_list *); + struct kmem_cache *frags_cachep; + const char *frags_cache_name; + struct rhashtable_params rhash_params; + refcount_t refcnt; + struct completion completion; +}; + +struct frag_v4_compare_key { + __be32 saddr; + __be32 daddr; + u32 user; + u32 vif; + __be16 id; + u16 protocol; +}; + +struct frag_v6_compare_key { + struct in6_addr saddr; + struct in6_addr daddr; + u32 user; + __be32 id; + u32 iif; +}; + +struct inet_frag_queue { + struct rhash_head node; + union { + struct frag_v4_compare_key v4; + struct frag_v6_compare_key v6; + } key; + struct timer_list timer; + spinlock_t lock; + refcount_t refcnt; + struct rb_root rb_fragments; + struct sk_buff *fragments_tail; + struct sk_buff *last_run_head; + ktime_t stamp; + int len; + int meat; + __u8 flags; + u16 max_size; + struct fqdir *fqdir; + struct callback_head rcu; +}; + +enum tcp_ca_event { + CA_EVENT_TX_START = 0, + CA_EVENT_CWND_RESTART = 1, + CA_EVENT_COMPLETE_CWR = 2, + CA_EVENT_LOSS = 3, + CA_EVENT_ECN_NO_CE = 4, + CA_EVENT_ECN_IS_CE = 5, +}; + +struct ack_sample; + +struct rate_sample; + +union tcp_cc_info; + +struct tcp_congestion_ops { + u32 (*ssthresh)(struct sock *); + void (*cong_avoid)(struct sock *, u32, u32); + void (*set_state)(struct sock *, u8); + void (*cwnd_event)(struct sock *, enum tcp_ca_event); + void (*in_ack_event)(struct sock *, u32); + void (*pkts_acked)(struct sock *, const struct ack_sample *); + u32 (*min_tso_segs)(struct sock *); + void (*cong_control)(struct sock *, const struct rate_sample *); + u32 (*undo_cwnd)(struct sock *); + u32 (*sndbuf_expand)(struct sock *); + size_t (*get_info)(struct sock *, u32, int *, union tcp_cc_info *); + char name[16]; + struct module *owner; + struct list_head list; + u32 key; + u32 flags; + void (*init)(struct sock *); + void (*release)(struct sock *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct xfrm_state; + +struct lwtunnel_state; + +struct dst_entry { + struct net_device *dev; + struct dst_ops *ops; + long unsigned int _metrics; + long unsigned int expires; + struct xfrm_state *xfrm; + int (*input)(struct sk_buff *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + short unsigned int flags; + short int obsolete; + short unsigned int header_len; + short unsigned int trailer_len; + atomic_t __refcnt; + int __use; + long unsigned int lastuse; + struct lwtunnel_state *lwtstate; + struct callback_head callback_head; + short int error; + short int __pad; + __u32 tclassid; +}; + +enum nf_inet_hooks { + NF_INET_PRE_ROUTING = 0, + NF_INET_LOCAL_IN = 1, + NF_INET_FORWARD = 2, + NF_INET_LOCAL_OUT = 3, + NF_INET_POST_ROUTING = 4, + NF_INET_NUMHOOKS = 5, + NF_INET_INGRESS = 5, +}; + +enum { + NFPROTO_UNSPEC = 0, + NFPROTO_INET = 1, + NFPROTO_IPV4 = 2, + NFPROTO_ARP = 3, + NFPROTO_NETDEV = 5, + NFPROTO_BRIDGE = 7, + NFPROTO_IPV6 = 10, + NFPROTO_DECNET = 12, + NFPROTO_NUMPROTO = 13, +}; + +enum nf_log_type { + NF_LOG_TYPE_LOG = 0, + NF_LOG_TYPE_ULOG = 1, + NF_LOG_TYPE_MAX = 2, +}; + +typedef u8 u_int8_t; + +struct nf_loginfo; + +typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *); + +struct nf_logger { + char *name; + enum nf_log_type type; + nf_logfn *logfn; + struct module *me; +}; + +struct hlist_nulls_node; + +struct hlist_nulls_head { + struct hlist_nulls_node *first; +}; + +struct hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; +}; + +enum tcp_conntrack { + TCP_CONNTRACK_NONE = 0, + TCP_CONNTRACK_SYN_SENT = 1, + TCP_CONNTRACK_SYN_RECV = 2, + TCP_CONNTRACK_ESTABLISHED = 3, + TCP_CONNTRACK_FIN_WAIT = 4, + TCP_CONNTRACK_CLOSE_WAIT = 5, + TCP_CONNTRACK_LAST_ACK = 6, + TCP_CONNTRACK_TIME_WAIT = 7, + TCP_CONNTRACK_CLOSE = 8, + TCP_CONNTRACK_LISTEN = 9, + TCP_CONNTRACK_MAX = 10, + TCP_CONNTRACK_IGNORE = 11, + TCP_CONNTRACK_RETRANS = 12, + TCP_CONNTRACK_UNACK = 13, + TCP_CONNTRACK_TIMEOUT_MAX = 14, +}; + +enum ct_dccp_states { + CT_DCCP_NONE = 0, + CT_DCCP_REQUEST = 1, + CT_DCCP_RESPOND = 2, + CT_DCCP_PARTOPEN = 3, + CT_DCCP_OPEN = 4, + CT_DCCP_CLOSEREQ = 5, + CT_DCCP_CLOSING = 6, + CT_DCCP_TIMEWAIT = 7, + CT_DCCP_IGNORE = 8, + CT_DCCP_INVALID = 9, + __CT_DCCP_MAX = 10, +}; + +struct ip_conntrack_stat { + unsigned int found; + unsigned int invalid; + unsigned int insert; + unsigned int insert_failed; + unsigned int clash_resolve; + unsigned int drop; + unsigned int early_drop; + unsigned int error; + unsigned int expect_new; + unsigned int expect_create; + unsigned int expect_delete; + unsigned int search_restart; + unsigned int chaintoolong; +}; + +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, +}; + +enum sctp_conntrack { + SCTP_CONNTRACK_NONE = 0, + SCTP_CONNTRACK_CLOSED = 1, + SCTP_CONNTRACK_COOKIE_WAIT = 2, + SCTP_CONNTRACK_COOKIE_ECHOED = 3, + SCTP_CONNTRACK_ESTABLISHED = 4, + SCTP_CONNTRACK_SHUTDOWN_SENT = 5, + SCTP_CONNTRACK_SHUTDOWN_RECD = 6, + SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, + SCTP_CONNTRACK_HEARTBEAT_SENT = 8, + SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, + SCTP_CONNTRACK_MAX = 10, +}; + +enum udp_conntrack { + UDP_CT_UNREPLIED = 0, + UDP_CT_REPLIED = 1, + UDP_CT_MAX = 2, +}; + +enum gre_conntrack { + GRE_CT_UNREPLIED = 0, + GRE_CT_REPLIED = 1, + GRE_CT_MAX = 2, +}; + +struct ct_pcpu { + spinlock_t lock; + struct hlist_nulls_head unconfirmed; + struct hlist_nulls_head dying; +}; + +struct nf_flow_table_stat { + unsigned int count_wq_add; + unsigned int count_wq_del; + unsigned int count_wq_stats; +}; + +enum { + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, +}; + +enum netns_bpf_attach_type { + NETNS_BPF_INVALID = 4294967295, + NETNS_BPF_FLOW_DISSECTOR = 0, + NETNS_BPF_SK_LOOKUP = 1, + MAX_NETNS_BPF_ATTACH_TYPE = 2, +}; + +struct pipe_buf_operations; + +struct pipe_buffer { + struct page *page; + unsigned int offset; + unsigned int len; + const struct pipe_buf_operations *ops; + unsigned int flags; + long unsigned int private; +}; + +struct pipe_buf_operations { + int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); + void (*release)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); +}; + +struct skb_ext { + refcount_t refcnt; + u8 offset[4]; + u8 chunks; + long: 0; + char data[0]; +}; + +enum skb_ext_id { + SKB_EXT_BRIDGE_NF = 0, + SKB_EXT_SEC_PATH = 1, + TC_SKB_EXT = 2, + SKB_EXT_MPTCP = 3, + SKB_EXT_NUM = 4, +}; + struct trace_event_raw_initcall_level { struct trace_entry ent; u32 __data_loc_level; @@ -8806,119 +10760,10 @@ enum { PROC_TIME_INIT_INO = 4026531834, }; -typedef __u16 __le16; - -typedef __u16 __be16; - -typedef __u32 __be32; - typedef __u64 __be64; -typedef __u32 __wsum; - typedef unsigned int slab_flags_t; -struct llist_head { - struct llist_node *first; -}; - -struct notifier_block; - -typedef int (*notifier_fn_t)(struct notifier_block *, long unsigned int, void *); - -struct notifier_block { - notifier_fn_t notifier_call; - struct notifier_block *next; - int priority; -}; - -struct blocking_notifier_head { - struct rw_semaphore rwsem; - struct notifier_block *head; -}; - -struct raw_notifier_head { - struct notifier_block *head; -}; - -struct rhash_head { - struct rhash_head *next; -}; - -struct rhashtable; - -struct rhashtable_compare_arg { - struct rhashtable *ht; - const void *key; -}; - -typedef u32 (*rht_hashfn_t)(const void *, u32, u32); - -typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32); - -typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *); - -struct rhashtable_params { - u16 nelem_hint; - u16 key_len; - u16 key_offset; - u16 head_offset; - unsigned int max_size; - u16 min_size; - bool automatic_shrinking; - rht_hashfn_t hashfn; - rht_obj_hashfn_t obj_hashfn; - rht_obj_cmpfn_t obj_cmpfn; -}; - -struct bucket_table; - -struct rhashtable { - struct bucket_table *tbl; - unsigned int key_len; - unsigned int max_elems; - struct rhashtable_params p; - bool rhlist; - struct work_struct run_work; - struct mutex mutex; - spinlock_t lock; - atomic_t nelems; -}; - -struct fs_struct { - int users; - spinlock_t lock; - seqcount_spinlock_t seq; - int umask; - int in_exec; - struct path root; - struct path pwd; -}; - -struct pipe_buffer; - -struct pipe_inode_info { - struct mutex mutex; - wait_queue_head_t rd_wait; - wait_queue_head_t wr_wait; - unsigned int head; - unsigned int tail; - unsigned int max_usage; - unsigned int ring_size; - unsigned int nr_accounted; - unsigned int readers; - unsigned int writers; - unsigned int files; - unsigned int r_counter; - unsigned int w_counter; - bool poll_usage; - struct page *tmp_page; - struct fasync_struct *fasync_readers; - struct fasync_struct *fasync_writers; - struct pipe_buffer *bufs; - struct user_struct *user; -}; - typedef __u64 __addrpair; typedef __u32 __portpair; @@ -8927,23 +10772,8 @@ typedef struct { struct net *net; } possible_net_t; -struct in6_addr { - union { - __u8 u6_addr8[16]; - __be16 u6_addr16[8]; - __be32 u6_addr32[4]; - } in6_u; -}; - -struct hlist_nulls_node { - struct hlist_nulls_node *next; - struct hlist_nulls_node **pprev; -}; - struct proto; -struct inet_timewait_death_row; - struct sock_common { union { __addrpair skc_addrpair; @@ -9011,29 +10841,12 @@ typedef struct { wait_queue_head_t wq; } socket_lock_t; -struct sk_buff; - -struct sk_buff_head { - struct sk_buff *next; - struct sk_buff *prev; - __u32 qlen; - spinlock_t lock; -}; - typedef u64 netdev_features_t; struct sock_cgroup_data { - union { - struct { - u8 is_data: 1; - u8 no_refcnt: 1; - u8 unused: 6; - u8 padding; - u16 prioidx; - u32 classid; - }; - u64 val; - }; + struct cgroup *cgroup; + u32 classid; + u16 prioidx; }; struct sk_filter; @@ -9042,14 +10855,10 @@ struct socket_wq; struct xfrm_policy; -struct dst_entry; - struct socket; struct sock_reuseport; -struct bpf_local_storage; - struct sock { struct sock_common __sk_common; socket_lock_t sk_lock; @@ -9068,6 +10877,7 @@ struct sock { unsigned int sk_ll_usec; unsigned int sk_napi_id; int sk_rcvbuf; + int sk_wait_pending; struct sk_filter *sk_filter; union { struct socket_wq *sk_wq; @@ -9075,6 +10885,8 @@ struct sock { }; struct xfrm_policy *sk_policy[2]; struct dst_entry *sk_rx_dst; + int sk_rx_dst_ifindex; + u32 sk_rx_dst_cookie; struct dst_entry *sk_dst_cache; atomic_t sk_omem_alloc; int sk_sndbuf; @@ -9122,14 +10934,17 @@ struct sock { u32 sk_ack_backlog; u32 sk_max_ack_backlog; kuid_t sk_uid; + u8 sk_prefer_busy_poll; + u16 sk_busy_poll_budget; spinlock_t sk_peer_lock; struct pid *sk_peer_pid; const struct cred *sk_peer_cred; long int sk_rcvtimeo; ktime_t sk_stamp; u16 sk_tsflags; + int sk_bind_phc; u8 sk_shutdown; - u32 sk_tskey; + atomic_t sk_tskey; atomic_t sk_zckey; u8 sk_clockid; u8 sk_txtime_deadline_mode: 1; @@ -9145,19 +10960,36 @@ struct sock { void (*sk_write_space)(struct sock *); void (*sk_error_report)(struct sock *); int (*sk_backlog_rcv)(struct sock *, struct sk_buff *); + struct sk_buff * (*sk_validate_xmit_skb)(struct sock *, struct net_device *, struct sk_buff *); void (*sk_destruct)(struct sock *); struct sock_reuseport *sk_reuseport_cb; struct bpf_local_storage *sk_bpf_storage; struct callback_head sk_rcu; }; +struct fs_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; +}; + typedef short unsigned int __kernel_sa_family_t; typedef __kernel_sa_family_t sa_family_t; struct sockaddr { sa_family_t sa_family; - char sa_data[14]; + union { + char sa_data_min[14]; + struct { + struct {} __empty_sa_data; + char sa_data[0]; + }; + }; }; struct msghdr { @@ -9270,12 +11102,6 @@ struct ifreq { } ifr_ifru; }; -struct vfsmount { - struct dentry *mnt_root; - struct super_block *mnt_sb; - int mnt_flags; -}; - struct ld_semaphore { atomic_long_t count; raw_spinlock_t wait_lock; @@ -9330,25 +11156,27 @@ struct tty_struct { struct mutex throttle_mutex; struct rw_semaphore termios_rwsem; struct mutex winsize_mutex; - spinlock_t ctrl_lock; - spinlock_t flow_lock; struct ktermios termios; struct ktermios termios_locked; char name[64]; - struct pid *pgrp; - struct pid *session; long unsigned int flags; int count; struct winsize winsize; - long unsigned int stopped: 1; - long unsigned int flow_stopped: 1; - long: 30; - long unsigned int unused: 62; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + long unsigned int unused[0]; + } flow; + struct { + spinlock_t lock; + struct pid *pgrp; + struct pid *session; + unsigned char pktstatus; + bool packet; + long unsigned int unused[0]; + } ctrl; int hw_stopped; - long unsigned int ctrl_status: 8; - long unsigned int packet: 1; - long: 23; - long unsigned int unused_ctrl: 55; unsigned int receive_room; int flow_change; struct tty_struct *link; @@ -9393,6 +11221,31 @@ struct posix_acl { struct posix_acl_entry a_entries[0]; }; +struct tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + int used; + int size; + int commit; + int read; + int flags; + long unsigned int data[0]; +}; + +struct tty_bufhead { + struct tty_buffer *head; + struct work_struct work; + struct mutex lock; + atomic_t priority; + struct tty_buffer sentinel; + struct llist_head free; + atomic_t mem_used; + int mem_limit; + struct tty_buffer *tail; +}; + struct serial_icounter_struct; struct serial_struct; @@ -9408,8 +11261,8 @@ struct tty_operations { int (*write)(struct tty_struct *, const unsigned char *, int); int (*put_char)(struct tty_struct *, unsigned char); void (*flush_chars)(struct tty_struct *); - int (*write_room)(struct tty_struct *); - int (*chars_in_buffer)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); int (*ioctl)(struct tty_struct *, unsigned int, long unsigned int); long int (*compat_ioctl)(struct tty_struct *, unsigned int, long unsigned int); void (*set_termios)(struct tty_struct *, struct ktermios *); @@ -9430,11 +11283,12 @@ struct tty_operations { int (*get_serial)(struct tty_struct *, struct serial_struct *); int (*set_serial)(struct tty_struct *, struct serial_struct *); void (*show_fdinfo)(struct tty_struct *, struct seq_file *); + int (*poll_init)(struct tty_driver *, int, char *); + int (*poll_get_char)(struct tty_driver *, int); + void (*poll_put_char)(struct tty_driver *, int, char); int (*proc_show)(struct seq_file *, void *); }; -struct proc_dir_entry; - struct tty_driver { int magic; struct kref kref; @@ -9460,31 +11314,6 @@ struct tty_driver { struct list_head tty_drivers; }; -struct tty_buffer { - union { - struct tty_buffer *next; - struct llist_node free; - }; - int used; - int size; - int commit; - int read; - int flags; - long unsigned int data[0]; -}; - -struct tty_bufhead { - struct tty_buffer *head; - struct work_struct work; - struct mutex lock; - atomic_t priority; - struct tty_buffer sentinel; - struct llist_head free; - atomic_t mem_used; - int mem_limit; - struct tty_buffer *tail; -}; - struct tty_port_operations; struct tty_port_client_operations; @@ -9503,7 +11332,6 @@ struct tty_port { long unsigned int flags; long unsigned int iflags; unsigned char console: 1; - unsigned char low_latency: 1; struct mutex mutex; struct mutex buf_mutex; unsigned char *xmit_buf; @@ -9515,7 +11343,6 @@ struct tty_port { }; struct tty_ldisc_ops { - int magic; char *name; int num; int flags; @@ -9529,12 +11356,11 @@ struct tty_ldisc_ops { void (*set_termios)(struct tty_struct *, struct ktermios *); __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); int (*hangup)(struct tty_struct *); - void (*receive_buf)(struct tty_struct *, const unsigned char *, char *, int); + void (*receive_buf)(struct tty_struct *, const unsigned char *, const char *, int); void (*write_wakeup)(struct tty_struct *); void (*dcd_change)(struct tty_struct *, unsigned int); - int (*receive_buf2)(struct tty_struct *, const unsigned char *, char *, int); + int (*receive_buf2)(struct tty_struct *, const unsigned char *, const char *, int); struct module *owner; - int refcount; }; struct tty_ldisc { @@ -9555,774 +11381,6 @@ struct tty_port_client_operations { void (*write_wakeup)(struct tty_port *); }; -struct prot_inuse; - -struct netns_core { - struct ctl_table_header *sysctl_hdr; - int sysctl_somaxconn; - int *sock_inuse; - struct prot_inuse *prot_inuse; -}; - -struct tcp_mib; - -struct ipstats_mib; - -struct linux_mib; - -struct udp_mib; - -struct icmp_mib; - -struct icmpmsg_mib; - -struct icmpv6_mib; - -struct icmpv6msg_mib; - -struct linux_xfrm_mib; - -struct netns_mib { - struct tcp_mib *tcp_statistics; - struct ipstats_mib *ip_statistics; - struct linux_mib *net_statistics; - struct udp_mib *udp_statistics; - struct udp_mib *udplite_statistics; - struct icmp_mib *icmp_statistics; - struct icmpmsg_mib *icmpmsg_statistics; - struct proc_dir_entry *proc_net_devsnmp6; - struct udp_mib *udp_stats_in6; - struct udp_mib *udplite_stats_in6; - struct ipstats_mib *ipv6_statistics; - struct icmpv6_mib *icmpv6_statistics; - struct icmpv6msg_mib *icmpv6msg_statistics; - struct linux_xfrm_mib *xfrm_statistics; -}; - -struct netns_packet { - struct mutex sklist_lock; - struct hlist_head sklist; -}; - -struct netns_unix { - int sysctl_max_dgram_qlen; - struct ctl_table_header *ctl; -}; - -struct netns_nexthop { - struct rb_root rb_root; - struct hlist_head *devhash; - unsigned int seq; - u32 last_id_allocated; - struct blocking_notifier_head notifier_chain; -}; - -struct local_ports { - seqlock_t lock; - int range[2]; - bool warned; -}; - -struct inet_hashinfo; - -struct inet_timewait_death_row { - atomic_t tw_count; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct inet_hashinfo *hashinfo; - int sysctl_max_tw_buckets; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct ping_group_range { - seqlock_t lock; - kgid_t range[2]; -}; - -typedef struct { - u64 key[2]; -} siphash_key_t; - -struct ipv4_devconf; - -struct ip_ra_chain; - -struct fib_rules_ops; - -struct fib_table; - -struct inet_peer_base; - -struct fqdir; - -struct xt_table; - -struct tcp_congestion_ops; - -struct tcp_fastopen_context; - -struct fib_notifier_ops; - -struct netns_ipv4 { - struct ctl_table_header *forw_hdr; - struct ctl_table_header *frags_hdr; - struct ctl_table_header *ipv4_hdr; - struct ctl_table_header *route_hdr; - struct ctl_table_header *xfrm4_hdr; - struct ipv4_devconf *devconf_all; - struct ipv4_devconf *devconf_dflt; - struct ip_ra_chain *ra_chain; - struct mutex ra_mutex; - struct fib_rules_ops *rules_ops; - bool fib_has_custom_rules; - unsigned int fib_rules_require_fldissect; - struct fib_table *fib_main; - struct fib_table *fib_default; - bool fib_has_custom_local_routes; - atomic_t fib_num_tclassid_users; - struct hlist_head *fib_table_hash; - bool fib_offload_disabled; - struct sock *fibnl; - struct sock **icmp_sk; - struct sock *mc_autojoin_sk; - struct inet_peer_base *peers; - struct sock **tcp_sk; - struct fqdir *fqdir; - struct xt_table *iptable_filter; - struct xt_table *iptable_mangle; - struct xt_table *iptable_raw; - struct xt_table *arptable_filter; - struct xt_table *iptable_security; - struct xt_table *nat_table; - int sysctl_icmp_echo_ignore_all; - int sysctl_icmp_echo_ignore_broadcasts; - int sysctl_icmp_ignore_bogus_error_responses; - int sysctl_icmp_ratelimit; - int sysctl_icmp_ratemask; - int sysctl_icmp_errors_use_inbound_ifaddr; - struct local_ports ip_local_ports; - int sysctl_tcp_ecn; - int sysctl_tcp_ecn_fallback; - int sysctl_ip_default_ttl; - int sysctl_ip_no_pmtu_disc; - int sysctl_ip_fwd_use_pmtu; - int sysctl_ip_fwd_update_priority; - int sysctl_ip_nonlocal_bind; - int sysctl_ip_autobind_reuse; - int sysctl_ip_dynaddr; - int sysctl_ip_early_demux; - int sysctl_raw_l3mdev_accept; - int sysctl_tcp_early_demux; - int sysctl_udp_early_demux; - int sysctl_nexthop_compat_mode; - int sysctl_fwmark_reflect; - int sysctl_tcp_fwmark_accept; - int sysctl_tcp_l3mdev_accept; - int sysctl_tcp_mtu_probing; - int sysctl_tcp_mtu_probe_floor; - int sysctl_tcp_base_mss; - int sysctl_tcp_min_snd_mss; - int sysctl_tcp_probe_threshold; - u32 sysctl_tcp_probe_interval; - int sysctl_tcp_keepalive_time; - int sysctl_tcp_keepalive_probes; - int sysctl_tcp_keepalive_intvl; - int sysctl_tcp_syn_retries; - int sysctl_tcp_synack_retries; - int sysctl_tcp_syncookies; - int sysctl_tcp_reordering; - int sysctl_tcp_retries1; - int sysctl_tcp_retries2; - int sysctl_tcp_orphan_retries; - int sysctl_tcp_fin_timeout; - unsigned int sysctl_tcp_notsent_lowat; - int sysctl_tcp_tw_reuse; - int sysctl_tcp_sack; - int sysctl_tcp_window_scaling; - int sysctl_tcp_timestamps; - int sysctl_tcp_early_retrans; - int sysctl_tcp_recovery; - int sysctl_tcp_thin_linear_timeouts; - int sysctl_tcp_slow_start_after_idle; - int sysctl_tcp_retrans_collapse; - int sysctl_tcp_stdurg; - int sysctl_tcp_rfc1337; - int sysctl_tcp_abort_on_overflow; - int sysctl_tcp_fack; - int sysctl_tcp_max_reordering; - int sysctl_tcp_dsack; - int sysctl_tcp_app_win; - int sysctl_tcp_adv_win_scale; - int sysctl_tcp_frto; - int sysctl_tcp_nometrics_save; - int sysctl_tcp_no_ssthresh_metrics_save; - int sysctl_tcp_moderate_rcvbuf; - int sysctl_tcp_tso_win_divisor; - int sysctl_tcp_workaround_signed_windows; - int sysctl_tcp_limit_output_bytes; - int sysctl_tcp_challenge_ack_limit; - int sysctl_tcp_min_tso_segs; - int sysctl_tcp_min_rtt_wlen; - int sysctl_tcp_autocorking; - int sysctl_tcp_invalid_ratelimit; - int sysctl_tcp_pacing_ss_ratio; - int sysctl_tcp_pacing_ca_ratio; - int sysctl_tcp_wmem[3]; - int sysctl_tcp_rmem[3]; - int sysctl_tcp_comp_sack_nr; - long unsigned int sysctl_tcp_comp_sack_delay_ns; - long unsigned int sysctl_tcp_comp_sack_slack_ns; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct inet_timewait_death_row tcp_death_row; - int sysctl_max_syn_backlog; - int sysctl_tcp_fastopen; - const struct tcp_congestion_ops *tcp_congestion_control; - struct tcp_fastopen_context *tcp_fastopen_ctx; - spinlock_t tcp_fastopen_ctx_lock; - unsigned int sysctl_tcp_fastopen_blackhole_timeout; - atomic_t tfo_active_disable_times; - long unsigned int tfo_active_disable_stamp; - int sysctl_tcp_reflect_tos; - int sysctl_udp_wmem_min; - int sysctl_udp_rmem_min; - int sysctl_udp_l3mdev_accept; - int sysctl_igmp_max_memberships; - int sysctl_igmp_max_msf; - int sysctl_igmp_llm_reports; - int sysctl_igmp_qrv; - struct ping_group_range ping_group_range; - atomic_t dev_addr_genid; - long unsigned int *sysctl_local_reserved_ports; - int sysctl_ip_prot_sock; - struct list_head mr_tables; - struct fib_rules_ops *mr_rules_ops; - int sysctl_fib_multipath_use_neigh; - int sysctl_fib_multipath_hash_policy; - struct fib_notifier_ops *notifier_ops; - unsigned int fib_seq; - struct fib_notifier_ops *ipmr_notifier_ops; - unsigned int ipmr_seq; - atomic_t rt_genid; - siphash_key_t ip_id_key; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct netns_sysctl_ipv6 { - struct ctl_table_header *hdr; - struct ctl_table_header *route_hdr; - struct ctl_table_header *icmp_hdr; - struct ctl_table_header *frags_hdr; - struct ctl_table_header *xfrm6_hdr; - int bindv6only; - int flush_delay; - int ip6_rt_max_size; - int ip6_rt_gc_min_interval; - int ip6_rt_gc_timeout; - int ip6_rt_gc_interval; - int ip6_rt_gc_elasticity; - int ip6_rt_mtu_expires; - int ip6_rt_min_advmss; - int multipath_hash_policy; - int flowlabel_consistency; - int auto_flowlabels; - int icmpv6_time; - int icmpv6_echo_ignore_all; - int icmpv6_echo_ignore_multicast; - int icmpv6_echo_ignore_anycast; - long unsigned int icmpv6_ratemask[4]; - long unsigned int *icmpv6_ratemask_ptr; - int anycast_src_echo_reply; - int ip_nonlocal_bind; - int fwmark_reflect; - int idgen_retries; - int idgen_delay; - int flowlabel_state_ranges; - int flowlabel_reflect; - int max_dst_opts_cnt; - int max_hbh_opts_cnt; - int max_dst_opts_len; - int max_hbh_opts_len; - int seg6_flowlabel; - bool skip_notify_on_dev_down; -}; - -struct net_device; - -struct neighbour; - -struct dst_ops { - short unsigned int family; - unsigned int gc_thresh; - int (*gc)(struct dst_ops *); - struct dst_entry * (*check)(struct dst_entry *, __u32); - unsigned int (*default_advmss)(const struct dst_entry *); - unsigned int (*mtu)(const struct dst_entry *); - u32 * (*cow_metrics)(struct dst_entry *, long unsigned int); - void (*destroy)(struct dst_entry *); - void (*ifdown)(struct dst_entry *, struct net_device *, int); - struct dst_entry * (*negative_advice)(struct dst_entry *); - void (*link_failure)(struct sk_buff *); - void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); - void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *); - int (*local_out)(struct net *, struct sock *, struct sk_buff *); - struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *); - void (*confirm_neigh)(const struct dst_entry *, const void *); - struct kmem_cache *kmem_cachep; - struct percpu_counter pcpuc_entries; - long: 64; - long: 64; - long: 64; -}; - -struct ipv6_devconf; - -struct fib6_info; - -struct rt6_info; - -struct rt6_statistics; - -struct fib6_table; - -struct seg6_pernet_data; - -struct netns_ipv6 { - struct netns_sysctl_ipv6 sysctl; - struct ipv6_devconf *devconf_all; - struct ipv6_devconf *devconf_dflt; - struct inet_peer_base *peers; - struct fqdir *fqdir; - struct xt_table *ip6table_filter; - struct xt_table *ip6table_mangle; - struct xt_table *ip6table_raw; - struct xt_table *ip6table_security; - struct xt_table *ip6table_nat; - struct fib6_info *fib6_null_entry; - struct rt6_info *ip6_null_entry; - struct rt6_statistics *rt6_stats; - struct timer_list ip6_fib_timer; - struct hlist_head *fib_table_hash; - struct fib6_table *fib6_main_tbl; - struct list_head fib6_walkers; - long: 64; - long: 64; - struct dst_ops ip6_dst_ops; - rwlock_t fib6_walker_lock; - spinlock_t fib6_gc_lock; - atomic_t ip6_rt_gc_expire; - long unsigned int ip6_rt_last_gc; - unsigned char flowlabel_has_excl; - bool fib6_has_custom_rules; - unsigned int fib6_rules_require_fldissect; - unsigned int fib6_routes_require_src; - struct rt6_info *ip6_prohibit_entry; - struct rt6_info *ip6_blk_hole_entry; - struct fib6_table *fib6_local_tbl; - struct fib_rules_ops *fib6_rules_ops; - struct sock **icmp_sk; - struct sock *ndisc_sk; - struct sock *tcp_sk; - struct sock *igmp_sk; - struct sock *mc_autojoin_sk; - struct list_head mr6_tables; - struct fib_rules_ops *mr6_rules_ops; - atomic_t dev_addr_genid; - atomic_t fib6_sernum; - struct seg6_pernet_data *seg6_data; - struct fib_notifier_ops *notifier_ops; - struct fib_notifier_ops *ip6mr_notifier_ops; - unsigned int ipmr_seq; - struct { - struct hlist_head head; - spinlock_t lock; - u32 seq; - } ip6addrlbl_table; -}; - -struct netns_sysctl_lowpan { - struct ctl_table_header *frags_hdr; -}; - -struct netns_ieee802154_lowpan { - struct netns_sysctl_lowpan sysctl; - struct fqdir *fqdir; -}; - -struct sctp_mib; - -struct netns_sctp { - struct sctp_mib *sctp_statistics; - struct proc_dir_entry *proc_net_sctp; - struct ctl_table_header *sysctl_header; - struct sock *ctl_sock; - struct list_head local_addr_list; - struct list_head addr_waitq; - struct timer_list addr_wq_timer; - struct list_head auto_asconf_splist; - spinlock_t addr_wq_lock; - spinlock_t local_addr_lock; - unsigned int rto_initial; - unsigned int rto_min; - unsigned int rto_max; - int rto_alpha; - int rto_beta; - int max_burst; - int cookie_preserve_enable; - char *sctp_hmac_alg; - unsigned int valid_cookie_life; - unsigned int sack_timeout; - unsigned int hb_interval; - int max_retrans_association; - int max_retrans_path; - int max_retrans_init; - int pf_retrans; - int ps_retrans; - int pf_enable; - int pf_expose; - int sndbuf_policy; - int rcvbuf_policy; - int default_auto_asconf; - int addip_enable; - int addip_noauth; - int prsctp_enable; - int reconf_enable; - int auth_enable; - int intl_enable; - int ecn_enable; - int scope_policy; - int rwnd_upd_shift; - long unsigned int max_autoclose; -}; - -struct netns_dccp { - struct sock *v4_ctl_sk; - struct sock *v6_ctl_sk; -}; - -struct nf_queue_handler; - -struct nf_logger; - -struct nf_hook_entries; - -struct netns_nf { - struct proc_dir_entry *proc_netfilter; - const struct nf_queue_handler *queue_handler; - const struct nf_logger *nf_loggers[13]; - struct ctl_table_header *nf_log_dir_header; - struct nf_hook_entries *hooks_ipv4[5]; - struct nf_hook_entries *hooks_ipv6[5]; - struct nf_hook_entries *hooks_arp[3]; - struct nf_hook_entries *hooks_bridge[5]; - struct nf_hook_entries *hooks_decnet[7]; - bool defrag_ipv4; - bool defrag_ipv6; -}; - -struct ebt_table; - -struct netns_xt { - struct list_head tables[13]; - bool notrack_deprecated_warning; - bool clusterip_deprecated_warning; - struct ebt_table *broute_table; - struct ebt_table *frame_filter; - struct ebt_table *frame_nat; -}; - -struct nf_generic_net { - unsigned int timeout; -}; - -struct nf_tcp_net { - unsigned int timeouts[14]; - int tcp_loose; - int tcp_be_liberal; - int tcp_max_retrans; -}; - -struct nf_udp_net { - unsigned int timeouts[2]; -}; - -struct nf_icmp_net { - unsigned int timeout; -}; - -struct nf_dccp_net { - int dccp_loose; - unsigned int dccp_timeout[10]; -}; - -struct nf_sctp_net { - unsigned int timeouts[10]; -}; - -struct nf_gre_net { - struct list_head keymap_list; - unsigned int timeouts[2]; -}; - -struct nf_ip_net { - struct nf_generic_net generic; - struct nf_tcp_net tcp; - struct nf_udp_net udp; - struct nf_icmp_net icmp; - struct nf_icmp_net icmpv6; - struct nf_dccp_net dccp; - struct nf_sctp_net sctp; - struct nf_gre_net gre; -}; - -struct ct_pcpu; - -struct ip_conntrack_stat; - -struct nf_ct_event_notifier; - -struct nf_exp_event_notifier; - -struct netns_ct { - atomic_t count; - unsigned int expect_count; - struct delayed_work ecache_dwork; - bool ecache_dwork_pending; - bool auto_assign_helper_warned; - struct ctl_table_header *sysctl_header; - unsigned int sysctl_log_invalid; - int sysctl_events; - int sysctl_acct; - int sysctl_auto_assign_helper; - int sysctl_tstamp; - int sysctl_checksum; - struct ct_pcpu *pcpu_lists; - struct ip_conntrack_stat *stat; - struct nf_ct_event_notifier *nf_conntrack_event_cb; - struct nf_exp_event_notifier *nf_expect_event_cb; - struct nf_ip_net nf_ct_proto; - unsigned int labels_used; -}; - -struct netns_nftables { - struct list_head tables; - struct list_head commit_list; - struct list_head module_list; - struct list_head notify_list; - struct mutex commit_mutex; - unsigned int base_seq; - u8 gencursor; - u8 validate_state; -}; - -struct netns_nf_frag { - struct fqdir *fqdir; -}; - -struct netns_bpf { - struct bpf_prog_array *run_array[2]; - struct bpf_prog *progs[2]; - struct list_head links[2]; -}; - -struct xfrm_policy_hash { - struct hlist_head *table; - unsigned int hmask; - u8 dbits4; - u8 sbits4; - u8 dbits6; - u8 sbits6; -}; - -struct xfrm_policy_hthresh { - struct work_struct work; - seqlock_t lock; - u8 lbits4; - u8 rbits4; - u8 lbits6; - u8 rbits6; -}; - -struct netns_xfrm { - struct list_head state_all; - struct hlist_head *state_bydst; - struct hlist_head *state_bysrc; - struct hlist_head *state_byspi; - unsigned int state_hmask; - unsigned int state_num; - struct work_struct state_hash_work; - struct list_head policy_all; - struct hlist_head *policy_byidx; - unsigned int policy_idx_hmask; - struct hlist_head policy_inexact[3]; - struct xfrm_policy_hash policy_bydst[3]; - unsigned int policy_count[6]; - struct work_struct policy_hash_work; - struct xfrm_policy_hthresh policy_hthresh; - struct list_head inexact_bins; - struct sock *nlsk; - struct sock *nlsk_stash; - u32 sysctl_aevent_etime; - u32 sysctl_aevent_rseqth; - int sysctl_larval_drop; - u32 sysctl_acq_expires; - u8 policy_default[3]; - struct ctl_table_header *sysctl_hdr; - long: 64; - long: 64; - long: 64; - long: 64; - struct dst_ops xfrm4_dst_ops; - struct dst_ops xfrm6_dst_ops; - spinlock_t xfrm_state_lock; - seqcount_t xfrm_state_hash_generation; - seqcount_spinlock_t xfrm_policy_hash_generation; - spinlock_t xfrm_policy_lock; - struct mutex xfrm_cfg_mutex; - long: 64; - long: 64; -}; - -struct netns_ipvs; - -struct mpls_route; - -struct netns_mpls { - int ip_ttl_propagate; - int default_ttl; - size_t platform_labels; - struct mpls_route **platform_label; - struct ctl_table_header *ctl; -}; - -struct can_dev_rcv_lists; - -struct can_pkg_stats; - -struct can_rcv_lists_stats; - -struct netns_can { - struct proc_dir_entry *proc_dir; - struct proc_dir_entry *pde_stats; - struct proc_dir_entry *pde_reset_stats; - struct proc_dir_entry *pde_rcvlist_all; - struct proc_dir_entry *pde_rcvlist_fil; - struct proc_dir_entry *pde_rcvlist_inv; - struct proc_dir_entry *pde_rcvlist_sff; - struct proc_dir_entry *pde_rcvlist_eff; - struct proc_dir_entry *pde_rcvlist_err; - struct proc_dir_entry *bcmproc_dir; - struct can_dev_rcv_lists *rx_alldev_list; - spinlock_t rcvlists_lock; - struct timer_list stattimer; - struct can_pkg_stats *pkg_stats; - struct can_rcv_lists_stats *rcv_lists_stats; - struct hlist_head cgw_list; -}; - -struct netns_xdp { - struct mutex lock; - struct hlist_head list; -}; - -struct uevent_sock; - -struct net_generic; - -struct net { - refcount_t passive; - refcount_t count; - spinlock_t rules_mod_lock; - unsigned int dev_unreg_count; - unsigned int dev_base_seq; - int ifindex; - spinlock_t nsid_lock; - atomic_t fnhe_genid; - struct list_head list; - struct list_head exit_list; - struct llist_node cleanup_list; - struct key_tag *key_domain; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct idr netns_ids; - struct ns_common ns; - struct list_head dev_base_head; - struct proc_dir_entry *proc_net; - struct proc_dir_entry *proc_net_stat; - struct ctl_table_set sysctls; - struct sock *rtnl; - struct sock *genl_sock; - struct uevent_sock *uevent_sock; - struct hlist_head *dev_name_head; - struct hlist_head *dev_index_head; - struct raw_notifier_head netdev_chain; - u32 hash_mix; - struct net_device *loopback_dev; - struct list_head rules_ops; - struct netns_core core; - struct netns_mib mib; - struct netns_packet packet; - struct netns_unix unx; - struct netns_nexthop nexthop; - long: 64; - long: 64; - struct netns_ipv4 ipv4; - struct netns_ipv6 ipv6; - struct netns_ieee802154_lowpan ieee802154_lowpan; - struct netns_sctp sctp; - struct netns_dccp dccp; - struct netns_nf nf; - struct netns_xt xt; - struct netns_ct ct; - struct netns_nftables nft; - struct netns_nf_frag nf_frag; - struct ctl_table_header *nf_frag_frags_hdr; - struct sock *nfnl; - struct sock *nfnl_stash; - struct list_head nfnl_acct_list; - struct list_head nfct_timeout_list; - struct sk_buff_head wext_nlevents; - struct net_generic *gen; - struct netns_bpf bpf; - long: 64; - long: 64; - long: 64; - struct netns_xfrm xfrm; - atomic64_t net_cookie; - struct netns_ipvs *ipvs; - struct netns_mpls mpls; - struct netns_can can; - struct netns_xdp xdp; - struct sock *crypto_nlsk; - struct sock *diag_nlsk; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - typedef struct { local64_t v; } u64_stats_t; @@ -10365,6 +11423,7 @@ enum bpf_map_type { BPF_MAP_TYPE_STRUCT_OPS = 26, BPF_MAP_TYPE_RINGBUF = 27, BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, }; enum bpf_prog_type { @@ -10399,6 +11458,7 @@ enum bpf_prog_type { BPF_PROG_TYPE_EXT = 28, BPF_PROG_TYPE_LSM = 29, BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, }; enum bpf_attach_type { @@ -10440,7 +11500,11 @@ enum bpf_attach_type { BPF_XDP_CPUMAP = 35, BPF_SK_LOOKUP = 36, BPF_XDP = 37, - __MAX_BPF_ATTACH_TYPE = 38, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + __MAX_BPF_ATTACH_TYPE = 42, }; union bpf_attr { @@ -10499,7 +11563,11 @@ union bpf_attr { __u64 line_info; __u32 line_info_cnt; __u32 attach_btf_id; - __u32 attach_prog_fd; + union { + __u32 attach_prog_fd; + __u32 attach_btf_obj_fd; + }; + __u64 fd_array; }; struct { __u64 pathname; @@ -10589,6 +11657,9 @@ union bpf_attr { __u64 iter_info; __u32 iter_info_len; }; + struct { + __u64 bpf_cookie; + } perf_event; }; } link_create; struct { @@ -10626,6 +11697,14 @@ struct bpf_line_info { __u32 line_col; }; +typedef struct { + union { + void *kernel; + void *user; + }; + bool is_kernel: 1; +} sockptr_t; + struct bpf_iter_aux_info; typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *); @@ -10653,6 +11732,10 @@ struct bpf_prog_aux; struct bpf_local_storage_map; +struct bpf_verifier_env; + +struct bpf_func_state; + struct bpf_map_ops { int (*map_alloc_check)(union bpf_attr *); struct bpf_map * (*map_alloc)(union bpf_attr *); @@ -10662,6 +11745,7 @@ struct bpf_map_ops { void (*map_release_uref)(struct bpf_map *); void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *); int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *); + int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64); int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *); int (*map_update_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *); int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr *); @@ -10672,7 +11756,7 @@ struct bpf_map_ops { int (*map_pop_elem)(struct bpf_map *, void *); int (*map_peek_elem)(struct bpf_map *, void *); void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); - void (*map_fd_put_ptr)(void *); + void (*map_fd_put_ptr)(struct bpf_map *, void *, bool); int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); u32 (*map_fd_sys_lookup_elem)(void *); void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); @@ -10687,17 +11771,15 @@ struct bpf_map_ops { int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32); void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32); struct bpf_local_storage ** (*map_owner_storage_ptr)(void *); + int (*map_redirect)(struct bpf_map *, u32, u64); bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *); + int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *); + int (*map_for_each_callback)(struct bpf_map *, void *, void *, u64); const char * const map_btf_name; int *map_btf_id; const struct bpf_iter_seq_info *iter_seq_info; }; -struct bpf_map_memory { - u32 pages; - struct user_struct *user; -}; - struct bpf_map { const struct bpf_map_ops *ops; struct bpf_map *inner_map_meta; @@ -10708,12 +11790,13 @@ struct bpf_map { u32 max_entries; u32 map_flags; int spin_lock_off; + int timer_off; u32 id; int numa_node; u32 btf_key_type_id; u32 btf_value_type_id; struct btf *btf; - struct bpf_map_memory memory; + struct mem_cgroup *memcg; char name[16]; u32 btf_vmlinux_value_type_id; bool bypass_spec_v1; @@ -10722,10 +11805,13 @@ struct bpf_map { long: 64; atomic64_t refcnt; atomic64_t usercnt; - struct work_struct work; + union { + struct work_struct work; + struct callback_head rcu; + }; struct mutex freeze_mutex; atomic64_t writecnt; - long: 64; + bool free_after_mult_rcu_gp; long: 64; long: 64; long: 64; @@ -10757,6 +11843,11 @@ struct btf { refcount_t refcnt; u32 id; struct callback_head rcu; + struct btf *base_btf; + u32 start_id; + u32 start_str_off; + char name[56]; + bool kernel_btf; }; struct btf_type { @@ -10783,17 +11874,20 @@ struct bpf_trampoline; struct bpf_jit_poke_descriptor; +struct bpf_kfunc_desc_tab; + struct bpf_prog_ops; +struct btf_mod_pair; + struct bpf_prog_offload; struct bpf_func_info_aux; -struct bpf_prog_stats; - struct bpf_prog_aux { atomic64_t refcnt; u32 used_map_cnt; + u32 used_btf_cnt; u32 max_ctx_offset; u32 max_pkt_offset; u32 max_tp_access; @@ -10805,6 +11899,7 @@ struct bpf_prog_aux { u32 ctx_arg_info_size; u32 max_rdonly_access; u32 max_rdwr_access; + struct btf *attach_btf; const struct bpf_ctx_arg_aux *ctx_arg_info; struct mutex dst_mutex; struct bpf_prog *dst_prog; @@ -10823,11 +11918,13 @@ struct bpf_prog_aux { struct bpf_prog **func; void *jit_data; struct bpf_jit_poke_descriptor *poke_tab; + struct bpf_kfunc_desc_tab *kfunc_tab; u32 size_poke_tab; struct bpf_ksym ksym; const struct bpf_prog_ops *ops; struct bpf_map **used_maps; struct mutex used_maps_mutex; + struct btf_mod_pair *used_btfs; struct bpf_prog *prog; struct user_struct *user; u64 load_time; @@ -10845,7 +11942,6 @@ struct bpf_prog_aux { u32 linfo_idx; u32 num_exentries; struct exception_table_entry *extable; - struct bpf_prog_stats *stats; union { struct work_struct work; struct callback_head rcu; @@ -10859,6 +11955,8 @@ struct sock_filter { __u32 k; }; +struct bpf_prog_stats; + struct sock_fprog_kern; struct bpf_prog { @@ -10874,14 +11972,17 @@ struct bpf_prog { u16 has_callchain_buf: 1; u16 enforce_expected_attach_type: 1; u16 call_get_stack: 1; + u16 call_get_func_ip: 1; enum bpf_prog_type type; enum bpf_attach_type expected_attach_type; u32 len; u32 jited_len; u8 tag[8]; + struct bpf_prog_stats *stats; + int *active; + unsigned int (*bpf_func)(const void *, const struct bpf_insn *); struct bpf_prog_aux *aux; struct sock_fprog_kern *orig_prog; - unsigned int (*bpf_func)(const void *, const struct bpf_insn *); struct sock_filter insns[0]; struct bpf_insn insnsi[0]; }; @@ -10907,42 +12008,112 @@ struct bpf_offloaded_map { }; struct net_device_stats { - long unsigned int rx_packets; - long unsigned int tx_packets; - long unsigned int rx_bytes; - long unsigned int tx_bytes; - long unsigned int rx_errors; - long unsigned int tx_errors; - long unsigned int rx_dropped; - long unsigned int tx_dropped; - long unsigned int multicast; - long unsigned int collisions; - long unsigned int rx_length_errors; - long unsigned int rx_over_errors; - long unsigned int rx_crc_errors; - long unsigned int rx_frame_errors; - long unsigned int rx_fifo_errors; - long unsigned int rx_missed_errors; - long unsigned int tx_aborted_errors; - long unsigned int tx_carrier_errors; - long unsigned int tx_fifo_errors; - long unsigned int tx_heartbeat_errors; - long unsigned int tx_window_errors; - long unsigned int rx_compressed; - long unsigned int tx_compressed; + union { + long unsigned int rx_packets; + atomic_long_t __rx_packets; + }; + union { + long unsigned int tx_packets; + atomic_long_t __tx_packets; + }; + union { + long unsigned int rx_bytes; + atomic_long_t __rx_bytes; + }; + union { + long unsigned int tx_bytes; + atomic_long_t __tx_bytes; + }; + union { + long unsigned int rx_errors; + atomic_long_t __rx_errors; + }; + union { + long unsigned int tx_errors; + atomic_long_t __tx_errors; + }; + union { + long unsigned int rx_dropped; + atomic_long_t __rx_dropped; + }; + union { + long unsigned int tx_dropped; + atomic_long_t __tx_dropped; + }; + union { + long unsigned int multicast; + atomic_long_t __multicast; + }; + union { + long unsigned int collisions; + atomic_long_t __collisions; + }; + union { + long unsigned int rx_length_errors; + atomic_long_t __rx_length_errors; + }; + union { + long unsigned int rx_over_errors; + atomic_long_t __rx_over_errors; + }; + union { + long unsigned int rx_crc_errors; + atomic_long_t __rx_crc_errors; + }; + union { + long unsigned int rx_frame_errors; + atomic_long_t __rx_frame_errors; + }; + union { + long unsigned int rx_fifo_errors; + atomic_long_t __rx_fifo_errors; + }; + union { + long unsigned int rx_missed_errors; + atomic_long_t __rx_missed_errors; + }; + union { + long unsigned int tx_aborted_errors; + atomic_long_t __tx_aborted_errors; + }; + union { + long unsigned int tx_carrier_errors; + atomic_long_t __tx_carrier_errors; + }; + union { + long unsigned int tx_fifo_errors; + atomic_long_t __tx_fifo_errors; + }; + union { + long unsigned int tx_heartbeat_errors; + atomic_long_t __tx_heartbeat_errors; + }; + union { + long unsigned int tx_window_errors; + atomic_long_t __tx_window_errors; + }; + union { + long unsigned int rx_compressed; + atomic_long_t __rx_compressed; + }; + union { + long unsigned int tx_compressed; + atomic_long_t __tx_compressed; + }; }; struct netdev_hw_addr_list { struct list_head list; int count; + struct rb_root tree; }; struct tipc_bearer; -struct dn_dev; - struct mpls_dev; +struct mctp_dev; + enum rx_handler_result { RX_HANDLER_CONSUMED = 0, RX_HANDLER_ANOTHER = 1, @@ -10985,12 +12156,12 @@ struct netdev_name_node; struct dev_ifalias; +struct net_device_ops; + struct iw_handler_def; struct iw_public_data; -struct net_device_ops; - struct ethtool_ops; struct l3mdev_ops; @@ -10999,10 +12170,14 @@ struct ndisc_ops; struct xfrmdev_ops; +struct tlsdev_ops; + struct header_ops; struct vlan_info; +struct dsa_port; + struct in_device; struct inet6_dev; @@ -11050,7 +12225,6 @@ struct net_device { long unsigned int mem_end; long unsigned int mem_start; long unsigned int base_addr; - int irq; long unsigned int state; struct list_head dev_list; struct list_head napi_list; @@ -11062,6 +12236,15 @@ struct net_device { struct list_head upper; struct list_head lower; } adj_list; + unsigned int flags; + unsigned int priv_flags; + const struct net_device_ops *netdev_ops; + int ifindex; + short unsigned int gflags; + short unsigned int hard_header_len; + unsigned int mtu; + short unsigned int needed_headroom; + short unsigned int needed_tailroom; netdev_features_t features; netdev_features_t hw_features; netdev_features_t wanted_features; @@ -11069,7 +12252,11 @@ struct net_device { netdev_features_t hw_enc_features; netdev_features_t mpls_features; netdev_features_t gso_partial_features; - int ifindex; + unsigned int min_mtu; + unsigned int max_mtu; + short unsigned int type; + unsigned char min_header_len; + unsigned char name_assign_type; int group; struct net_device_stats stats; atomic_long_t rx_dropped; @@ -11079,29 +12266,16 @@ struct net_device { atomic_t carrier_down_count; const struct iw_handler_def *wireless_handlers; struct iw_public_data *wireless_data; - const struct net_device_ops *netdev_ops; const struct ethtool_ops *ethtool_ops; const struct l3mdev_ops *l3mdev_ops; const struct ndisc_ops *ndisc_ops; const struct xfrmdev_ops *xfrmdev_ops; + const struct tlsdev_ops *tlsdev_ops; const struct header_ops *header_ops; - unsigned int flags; - unsigned int priv_flags; - short unsigned int gflags; - short unsigned int padded; unsigned char operstate; unsigned char link_mode; unsigned char if_port; unsigned char dma; - unsigned int mtu; - unsigned int min_mtu; - unsigned int max_mtu; - short unsigned int type; - short unsigned int hard_header_len; - unsigned char min_header_len; - unsigned char name_assign_type; - short unsigned int needed_headroom; - short unsigned int needed_tailroom; unsigned char perm_addr[32]; unsigned char addr_assign_type; unsigned char addr_len; @@ -11110,7 +12284,9 @@ struct net_device { short unsigned int neigh_priv_len; short unsigned int dev_id; short unsigned int dev_port; + short unsigned int padded; spinlock_t addr_list_lock; + int irq; struct netdev_hw_addr_list uc; struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; @@ -11119,15 +12295,16 @@ struct net_device { unsigned int allmulti; bool uc_promisc; struct vlan_info *vlan_info; + struct dsa_port *dsa_ptr; struct tipc_bearer *tipc_ptr; void *atalk_ptr; struct in_device *ip_ptr; - struct dn_dev *dn_ptr; struct inet6_dev *ip6_ptr; void *ax25_ptr; struct wireless_dev *ieee80211_ptr; struct wpan_dev *ieee802154_ptr; struct mpls_dev *mpls_ptr; + struct mctp_dev *mctp_ptr; unsigned char *dev_addr; struct netdev_rx_queue *_rx; unsigned int num_rx_queues; @@ -11144,6 +12321,10 @@ struct net_device { struct cpu_rmap *rx_cpu_rmap; struct hlist_node index_hlist; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; struct netdev_queue *_tx; unsigned int num_tx_queues; unsigned int real_num_tx_queues; @@ -11151,8 +12332,7 @@ struct net_device { unsigned int tx_queue_len; spinlock_t tx_global_lock; struct xdp_dev_bulk_queue *xdp_bulkq; - struct xps_dev_maps *xps_cpus_map; - struct xps_dev_maps *xps_rxqs_map; + struct xps_dev_maps *xps_maps[2]; struct mini_Qdisc *miniq_egress; struct hlist_head qdisc_hash[16]; struct timer_list watchdog_timer; @@ -11205,6 +12385,7 @@ struct net_device { struct lock_class_key *qdisc_running_key; bool proto_down; unsigned int wol_enabled: 1; + unsigned int threaded: 1; struct list_head net_notifier_list; const struct macsec_ops *macsec_ops; const struct udp_tunnel_nic_info *udp_tunnel_nic_info; @@ -11212,6 +12393,7 @@ struct net_device { struct bpf_xdp_entity xdp_state[3]; long: 64; long: 64; + long: 64; }; enum bpf_reg_type { @@ -11220,29 +12402,29 @@ enum bpf_reg_type { PTR_TO_CTX = 2, CONST_PTR_TO_MAP = 3, PTR_TO_MAP_VALUE = 4, - PTR_TO_MAP_VALUE_OR_NULL = 5, + PTR_TO_MAP_KEY = 5, PTR_TO_STACK = 6, PTR_TO_PACKET_META = 7, PTR_TO_PACKET = 8, PTR_TO_PACKET_END = 9, PTR_TO_FLOW_KEYS = 10, PTR_TO_SOCKET = 11, - PTR_TO_SOCKET_OR_NULL = 12, - PTR_TO_SOCK_COMMON = 13, - PTR_TO_SOCK_COMMON_OR_NULL = 14, - PTR_TO_TCP_SOCK = 15, - PTR_TO_TCP_SOCK_OR_NULL = 16, - PTR_TO_TP_BUFFER = 17, - PTR_TO_XDP_SOCK = 18, - PTR_TO_BTF_ID = 19, - PTR_TO_BTF_ID_OR_NULL = 20, - PTR_TO_MEM = 21, - PTR_TO_MEM_OR_NULL = 22, - PTR_TO_RDONLY_BUF = 23, - PTR_TO_RDONLY_BUF_OR_NULL = 24, - PTR_TO_RDWR_BUF = 25, - PTR_TO_RDWR_BUF_OR_NULL = 26, - PTR_TO_PERCPU_BTF_ID = 27, + PTR_TO_SOCK_COMMON = 12, + PTR_TO_TCP_SOCK = 13, + PTR_TO_TP_BUFFER = 14, + PTR_TO_XDP_SOCK = 15, + PTR_TO_BTF_ID = 16, + PTR_TO_MEM = 17, + PTR_TO_BUF = 18, + PTR_TO_PERCPU_BTF_ID = 19, + PTR_TO_FUNC = 20, + __BPF_REG_TYPE_MAX = 21, + PTR_TO_MAP_VALUE_OR_NULL = 260, + PTR_TO_SOCKET_OR_NULL = 267, + PTR_TO_SOCK_COMMON_OR_NULL = 268, + PTR_TO_TCP_SOCK_OR_NULL = 269, + PTR_TO_BTF_ID_OR_NULL = 272, + __BPF_REG_TYPE_LIMIT = 2047, }; struct bpf_prog_ops { @@ -11263,12 +12445,6 @@ struct bpf_prog_offload { u32 jited_len; }; -struct bpf_prog_stats { - u64 cnt; - u64 nsecs; - struct u64_stats_sync syncp; -}; - struct btf_func_model { u8 ret_size; u8 nr_args; @@ -11302,6 +12478,7 @@ struct bpf_trampoline { int progs_cnt[3]; struct bpf_tramp_image *cur_image; u64 selector; + struct module *mod; }; struct bpf_func_info_aux { @@ -11332,126 +12509,9 @@ struct bpf_ctx_arg_aux { u32 btf_id; }; -typedef unsigned int sk_buff_data_t; - -struct skb_ext; - -struct sk_buff { - union { - struct { - struct sk_buff *next; - struct sk_buff *prev; - union { - struct net_device *dev; - long unsigned int dev_scratch; - }; - }; - struct rb_node rbnode; - struct list_head list; - }; - union { - struct sock *sk; - int ip_defrag_offset; - }; - union { - ktime_t tstamp; - u64 skb_mstamp_ns; - }; - char cb[48]; - union { - struct { - long unsigned int _skb_refdst; - void (*destructor)(struct sk_buff *); - }; - struct list_head tcp_tsorted_anchor; - }; - long unsigned int _nfct; - unsigned int len; - unsigned int data_len; - __u16 mac_len; - __u16 hdr_len; - __u16 queue_mapping; - __u8 __cloned_offset[0]; - __u8 cloned: 1; - __u8 nohdr: 1; - __u8 fclone: 2; - __u8 peeked: 1; - __u8 head_frag: 1; - __u8 pfmemalloc: 1; - __u8 active_extensions; - __u32 headers_start[0]; - __u8 __pkt_type_offset[0]; - __u8 pkt_type: 3; - __u8 ignore_df: 1; - __u8 nf_trace: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 __pkt_vlan_present_offset[0]; - __u8 vlan_present: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 csum_not_inet: 1; - __u8 dst_pending_confirm: 1; - __u8 ndisc_nodetype: 2; - __u8 ipvs_property: 1; - __u8 inner_protocol_type: 1; - __u8 remcsum_offload: 1; - __u8 offload_fwd_mark: 1; - __u8 offload_l3_fwd_mark: 1; - __u8 tc_skip_classify: 1; - __u8 tc_at_ingress: 1; - __u8 redirected: 1; - __u8 from_ingress: 1; - __u8 scm_io_uring: 1; - __u16 tc_index; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - __be16 vlan_proto; - __u16 vlan_tci; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - __u32 secmark; - union { - __u32 mark; - __u32 reserved_tailroom; - }; - union { - __be16 inner_protocol; - __u8 inner_ipproto; - }; - __u16 inner_transport_header; - __u16 inner_network_header; - __u16 inner_mac_header; - __be16 protocol; - __u16 transport_header; - __u16 network_header; - __u16 mac_header; - __u32 headers_end[0]; - sk_buff_data_t tail; - sk_buff_data_t end; - unsigned char *head; - unsigned char *data; - unsigned int truesize; - refcount_t users; - struct skb_ext *extensions; +struct btf_mod_pair { + struct btf *btf; + struct module *module; }; struct scatterlist { @@ -11476,12 +12536,6 @@ enum { Root_SR0 = 11534336, }; -struct ethhdr { - unsigned char h_dest[6]; - unsigned char h_source[6]; - __be16 h_proto; -}; - struct flowi_tunnel { __be64 tun_id; }; @@ -11489,6 +12543,7 @@ struct flowi_tunnel { struct flowi_common { int flowic_oif; int flowic_iif; + int flowic_l3mdev; __u32 flowic_mark; __u8 flowic_tos; __u8 flowic_scope; @@ -11496,8 +12551,8 @@ struct flowi_common { __u8 flowic_flags; __u32 flowic_secid; kuid_t flowic_uid; - struct flowi_tunnel flowic_tun_key; __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; }; union flowi_uli { @@ -11509,11 +12564,6 @@ union flowi_uli { __u8 type; __u8 code; } icmpt; - struct { - __le16 dport; - __le16 sport; - } dnports; - __be32 spi; __be32 gre_key; struct { __u8 type; @@ -11536,146 +12586,26 @@ struct flowi6 { __u32 mp_hash; }; -struct flowidn { - struct flowi_common __fl_common; - __le16 daddr; - __le16 saddr; - union flowi_uli uli; -}; - struct flowi { union { struct flowi_common __fl_common; struct flowi4 ip4; struct flowi6 ip6; - struct flowidn dn; } u; }; -struct ipstats_mib { - u64 mibs[37]; - struct u64_stats_sync syncp; -}; - -struct icmp_mib { - long unsigned int mibs[28]; -}; - -struct icmpmsg_mib { - atomic_long_t mibs[512]; -}; - -struct icmpv6_mib { - long unsigned int mibs[6]; +struct prot_inuse { + int val[64]; }; struct icmpv6_mib_device { atomic_long_t mibs[6]; }; -struct icmpv6msg_mib { - atomic_long_t mibs[512]; -}; - struct icmpv6msg_mib_device { atomic_long_t mibs[512]; }; -struct tcp_mib { - long unsigned int mibs[16]; -}; - -struct udp_mib { - long unsigned int mibs[9]; -}; - -struct linux_mib { - long unsigned int mibs[124]; -}; - -struct linux_xfrm_mib { - long unsigned int mibs[29]; -}; - -struct inet_frags; - -struct fqdir { - long int high_thresh; - long int low_thresh; - int timeout; - int max_dist; - struct inet_frags *f; - struct net *net; - bool dead; - long: 64; - long: 64; - struct rhashtable rhashtable; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_long_t mem; - struct work_struct destroy_work; - long: 64; - long: 64; - long: 64; -}; - -struct inet_frag_queue; - -struct inet_frags { - unsigned int qsize; - void (*constructor)(struct inet_frag_queue *, const void *); - void (*destructor)(struct inet_frag_queue *); - void (*frag_expire)(struct timer_list *); - struct kmem_cache *frags_cachep; - const char *frags_cache_name; - struct rhashtable_params rhash_params; - refcount_t refcnt; - struct completion completion; -}; - -struct frag_v4_compare_key { - __be32 saddr; - __be32 daddr; - u32 user; - u32 vif; - __be16 id; - u16 protocol; -}; - -struct frag_v6_compare_key { - struct in6_addr saddr; - struct in6_addr daddr; - u32 user; - __be32 id; - u32 iif; -}; - -struct inet_frag_queue { - struct rhash_head node; - union { - struct frag_v4_compare_key v4; - struct frag_v6_compare_key v6; - } key; - struct timer_list timer; - spinlock_t lock; - refcount_t refcnt; - struct rb_root rb_fragments; - struct sk_buff *fragments_tail; - struct sk_buff *last_run_head; - ktime_t stamp; - int len; - int meat; - __u8 flags; - u16 max_size; - struct fqdir *fqdir; - struct callback_head rcu; -}; - struct fib_rule; struct fib_lookup_arg; @@ -11713,42 +12643,6 @@ struct fib_rules_ops { struct callback_head rcu; }; -enum tcp_ca_event { - CA_EVENT_TX_START = 0, - CA_EVENT_CWND_RESTART = 1, - CA_EVENT_COMPLETE_CWR = 2, - CA_EVENT_LOSS = 3, - CA_EVENT_ECN_NO_CE = 4, - CA_EVENT_ECN_IS_CE = 5, -}; - -struct ack_sample; - -struct rate_sample; - -union tcp_cc_info; - -struct tcp_congestion_ops { - struct list_head list; - u32 key; - u32 flags; - void (*init)(struct sock *); - void (*release)(struct sock *); - u32 (*ssthresh)(struct sock *); - void (*cong_avoid)(struct sock *, u32, u32); - void (*set_state)(struct sock *, u8); - void (*cwnd_event)(struct sock *, enum tcp_ca_event); - void (*in_ack_event)(struct sock *, u32); - u32 (*undo_cwnd)(struct sock *); - void (*pkts_acked)(struct sock *, const struct ack_sample *); - u32 (*min_tso_segs)(struct sock *); - u32 (*sndbuf_expand)(struct sock *); - void (*cong_control)(struct sock *, const struct rate_sample *); - size_t (*get_info)(struct sock *, u32, int *, union tcp_cc_info *); - char name[16]; - struct module *owner; -}; - struct fib_notifier_ops { int family; struct list_head list; @@ -11758,32 +12652,6 @@ struct fib_notifier_ops { struct callback_head rcu; }; -struct xfrm_state; - -struct lwtunnel_state; - -struct dst_entry { - struct net_device *dev; - struct dst_ops *ops; - long unsigned int _metrics; - long unsigned int expires; - struct xfrm_state *xfrm; - int (*input)(struct sk_buff *); - int (*output)(struct net *, struct sock *, struct sk_buff *); - short unsigned int flags; - short int obsolete; - short unsigned int header_len; - short unsigned int trailer_len; - atomic_t __refcnt; - int __use; - long unsigned int lastuse; - struct lwtunnel_state *lwtstate; - struct callback_head callback_head; - short int error; - short int __pad; - __u32 tclassid; -}; - struct hh_cache { unsigned int hh_len; seqlock_t hh_lock; @@ -11853,7 +12721,9 @@ struct ipv6_devconf { __s32 max_desync_factor; __s32 max_addresses; __s32 accept_ra_defrtr; + __u32 ra_defrtr_metric; __s32 accept_ra_min_hop_limit; + __s32 accept_ra_min_lft; __s32 accept_ra_pinfo; __s32 ignore_routes_with_linkdown; __s32 accept_ra_rtr_pref; @@ -11863,8 +12733,6 @@ struct ipv6_devconf { __s32 proxy_ndp; __s32 accept_source_route; __s32 accept_ra_from_local; - __s32 optimistic_dad; - __s32 use_optimistic; atomic_t mc_forwarding; __s32 disable_ipv6; __s32 drop_unicast_in_l2_multicast; @@ -11884,68 +12752,12 @@ struct ipv6_devconf { __s32 disable_policy; __s32 ndisc_tclass; __s32 rpl_seg_enabled; + __u32 ioam6_id; + __u32 ioam6_id_wide; + __u8 ioam6_enabled; struct ctl_table_header *sysctl_header; }; -struct nf_queue_entry; - -struct nf_queue_handler { - int (*outfn)(struct nf_queue_entry *, unsigned int); - void (*nf_hook_drop)(struct net *); -}; - -enum nf_log_type { - NF_LOG_TYPE_LOG = 0, - NF_LOG_TYPE_ULOG = 1, - NF_LOG_TYPE_MAX = 2, -}; - -typedef u8 u_int8_t; - -struct nf_loginfo; - -typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *); - -struct nf_logger { - char *name; - enum nf_log_type type; - nf_logfn *logfn; - struct module *me; -}; - -struct hlist_nulls_head { - struct hlist_nulls_node *first; -}; - -struct ip_conntrack_stat { - unsigned int found; - unsigned int invalid; - unsigned int insert; - unsigned int insert_failed; - unsigned int clash_resolve; - unsigned int drop; - unsigned int early_drop; - unsigned int error; - unsigned int expect_new; - unsigned int expect_create; - unsigned int expect_delete; - unsigned int search_restart; -}; - -struct ct_pcpu { - spinlock_t lock; - struct hlist_nulls_head unconfirmed; - struct hlist_nulls_head dying; -}; - -typedef struct { - union { - void *kernel; - void *user; - }; - bool is_kernel: 1; -} sockptr_t; - typedef enum { SS_FREE = 0, SS_UNCONNECTED = 1, @@ -11981,7 +12793,6 @@ typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned i struct proto_ops { int family; - unsigned int flags; struct module *owner; int (*release)(struct socket *); int (*bind)(struct socket *, struct sockaddr *, int); @@ -12011,32 +12822,6 @@ struct proto_ops { int (*set_rcvlowat)(struct sock *, int); }; -struct pipe_buf_operations; - -struct pipe_buffer { - struct page *page; - unsigned int offset; - unsigned int len; - const struct pipe_buf_operations *ops; - unsigned int flags; - long unsigned int private; -}; - -struct pipe_buf_operations { - int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); - void (*release)(struct pipe_inode_info *, struct pipe_buffer *); - bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); - bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); -}; - -struct skb_ext { - refcount_t refcnt; - u8 offset[2]; - u8 chunks; - long: 0; - char data[0]; -}; - struct dql { unsigned int num_queued; unsigned int adj_limit; @@ -12061,437 +12846,6 @@ struct dql { long: 64; }; -struct ethtool_drvinfo { - __u32 cmd; - char driver[32]; - char version[32]; - char fw_version[32]; - char bus_info[32]; - char erom_version[32]; - char reserved2[12]; - __u32 n_priv_flags; - __u32 n_stats; - __u32 testinfo_len; - __u32 eedump_len; - __u32 regdump_len; -}; - -struct ethtool_wolinfo { - __u32 cmd; - __u32 supported; - __u32 wolopts; - __u8 sopass[6]; -}; - -struct ethtool_tunable { - __u32 cmd; - __u32 id; - __u32 type_id; - __u32 len; - void *data[0]; -}; - -struct ethtool_regs { - __u32 cmd; - __u32 version; - __u32 len; - __u8 data[0]; -}; - -struct ethtool_eeprom { - __u32 cmd; - __u32 magic; - __u32 offset; - __u32 len; - __u8 data[0]; -}; - -struct ethtool_eee { - __u32 cmd; - __u32 supported; - __u32 advertised; - __u32 lp_advertised; - __u32 eee_active; - __u32 eee_enabled; - __u32 tx_lpi_enabled; - __u32 tx_lpi_timer; - __u32 reserved[2]; -}; - -struct ethtool_modinfo { - __u32 cmd; - __u32 type; - __u32 eeprom_len; - __u32 reserved[8]; -}; - -struct ethtool_coalesce { - __u32 cmd; - __u32 rx_coalesce_usecs; - __u32 rx_max_coalesced_frames; - __u32 rx_coalesce_usecs_irq; - __u32 rx_max_coalesced_frames_irq; - __u32 tx_coalesce_usecs; - __u32 tx_max_coalesced_frames; - __u32 tx_coalesce_usecs_irq; - __u32 tx_max_coalesced_frames_irq; - __u32 stats_block_coalesce_usecs; - __u32 use_adaptive_rx_coalesce; - __u32 use_adaptive_tx_coalesce; - __u32 pkt_rate_low; - __u32 rx_coalesce_usecs_low; - __u32 rx_max_coalesced_frames_low; - __u32 tx_coalesce_usecs_low; - __u32 tx_max_coalesced_frames_low; - __u32 pkt_rate_high; - __u32 rx_coalesce_usecs_high; - __u32 rx_max_coalesced_frames_high; - __u32 tx_coalesce_usecs_high; - __u32 tx_max_coalesced_frames_high; - __u32 rate_sample_interval; -}; - -struct ethtool_ringparam { - __u32 cmd; - __u32 rx_max_pending; - __u32 rx_mini_max_pending; - __u32 rx_jumbo_max_pending; - __u32 tx_max_pending; - __u32 rx_pending; - __u32 rx_mini_pending; - __u32 rx_jumbo_pending; - __u32 tx_pending; -}; - -struct ethtool_channels { - __u32 cmd; - __u32 max_rx; - __u32 max_tx; - __u32 max_other; - __u32 max_combined; - __u32 rx_count; - __u32 tx_count; - __u32 other_count; - __u32 combined_count; -}; - -struct ethtool_pauseparam { - __u32 cmd; - __u32 autoneg; - __u32 rx_pause; - __u32 tx_pause; -}; - -enum ethtool_link_ext_state { - ETHTOOL_LINK_EXT_STATE_AUTONEG = 0, - ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1, - ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2, - ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3, - ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4, - ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5, - ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6, - ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7, - ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8, - ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9, -}; - -enum ethtool_link_ext_substate_autoneg { - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1, - ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2, - ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 3, - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 4, - ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 5, - ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 6, -}; - -enum ethtool_link_ext_substate_link_training { - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1, - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 2, - ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 3, - ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 4, -}; - -enum ethtool_link_ext_substate_link_logical_mismatch { - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 2, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 3, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 4, - ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 5, -}; - -enum ethtool_link_ext_substate_bad_signal_integrity { - ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1, - ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 2, -}; - -enum ethtool_link_ext_substate_cable_issue { - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, -}; - -struct ethtool_test { - __u32 cmd; - __u32 flags; - __u32 reserved; - __u32 len; - __u64 data[0]; -}; - -struct ethtool_stats { - __u32 cmd; - __u32 n_stats; - __u64 data[0]; -}; - -struct ethtool_tcpip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be16 psrc; - __be16 pdst; - __u8 tos; -}; - -struct ethtool_ah_espip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 spi; - __u8 tos; -}; - -struct ethtool_usrip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 l4_4_bytes; - __u8 tos; - __u8 ip_ver; - __u8 proto; -}; - -struct ethtool_tcpip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be16 psrc; - __be16 pdst; - __u8 tclass; -}; - -struct ethtool_ah_espip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 spi; - __u8 tclass; -}; - -struct ethtool_usrip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 l4_4_bytes; - __u8 tclass; - __u8 l4_proto; -}; - -union ethtool_flow_union { - struct ethtool_tcpip4_spec tcp_ip4_spec; - struct ethtool_tcpip4_spec udp_ip4_spec; - struct ethtool_tcpip4_spec sctp_ip4_spec; - struct ethtool_ah_espip4_spec ah_ip4_spec; - struct ethtool_ah_espip4_spec esp_ip4_spec; - struct ethtool_usrip4_spec usr_ip4_spec; - struct ethtool_tcpip6_spec tcp_ip6_spec; - struct ethtool_tcpip6_spec udp_ip6_spec; - struct ethtool_tcpip6_spec sctp_ip6_spec; - struct ethtool_ah_espip6_spec ah_ip6_spec; - struct ethtool_ah_espip6_spec esp_ip6_spec; - struct ethtool_usrip6_spec usr_ip6_spec; - struct ethhdr ether_spec; - __u8 hdata[52]; -}; - -struct ethtool_flow_ext { - __u8 padding[2]; - unsigned char h_dest[6]; - __be16 vlan_etype; - __be16 vlan_tci; - __be32 data[2]; -}; - -struct ethtool_rx_flow_spec { - __u32 flow_type; - union ethtool_flow_union h_u; - struct ethtool_flow_ext h_ext; - union ethtool_flow_union m_u; - struct ethtool_flow_ext m_ext; - __u64 ring_cookie; - __u32 location; -}; - -struct ethtool_rxnfc { - __u32 cmd; - __u32 flow_type; - __u64 data; - struct ethtool_rx_flow_spec fs; - union { - __u32 rule_cnt; - __u32 rss_context; - }; - __u32 rule_locs[0]; -}; - -struct ethtool_flash { - __u32 cmd; - __u32 region; - char data[128]; -}; - -struct ethtool_dump { - __u32 cmd; - __u32 version; - __u32 flag; - __u32 len; - __u8 data[0]; -}; - -struct ethtool_ts_info { - __u32 cmd; - __u32 so_timestamping; - __s32 phc_index; - __u32 tx_types; - __u32 tx_reserved[3]; - __u32 rx_filters; - __u32 rx_reserved[3]; -}; - -struct ethtool_fecparam { - __u32 cmd; - __u32 active_fec; - __u32 fec; - __u32 reserved; -}; - -struct ethtool_link_settings { - __u32 cmd; - __u32 speed; - __u8 duplex; - __u8 port; - __u8 phy_address; - __u8 autoneg; - __u8 mdio_support; - __u8 eth_tp_mdix; - __u8 eth_tp_mdix_ctrl; - __s8 link_mode_masks_nwords; - __u8 transceiver; - __u8 master_slave_cfg; - __u8 master_slave_state; - __u8 reserved1[1]; - __u32 reserved[7]; - __u32 link_mode_masks[0]; -}; - -enum ethtool_phys_id_state { - ETHTOOL_ID_INACTIVE = 0, - ETHTOOL_ID_ACTIVE = 1, - ETHTOOL_ID_ON = 2, - ETHTOOL_ID_OFF = 3, -}; - -struct ethtool_link_ext_state_info { - enum ethtool_link_ext_state link_ext_state; - union { - enum ethtool_link_ext_substate_autoneg autoneg; - enum ethtool_link_ext_substate_link_training link_training; - enum ethtool_link_ext_substate_link_logical_mismatch link_logical_mismatch; - enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity; - enum ethtool_link_ext_substate_cable_issue cable_issue; - u8 __link_ext_substate; - }; -}; - -struct ethtool_link_ksettings { - struct ethtool_link_settings base; - struct { - long unsigned int supported[2]; - long unsigned int advertising[2]; - long unsigned int lp_advertising[2]; - } link_modes; -}; - -struct ethtool_pause_stats { - u64 tx_pause_frames; - u64 rx_pause_frames; -}; - -struct ethtool_ops { - u32 supported_coalesce_params; - void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *); - int (*get_regs_len)(struct net_device *); - void (*get_regs)(struct net_device *, struct ethtool_regs *, void *); - void (*get_wol)(struct net_device *, struct ethtool_wolinfo *); - int (*set_wol)(struct net_device *, struct ethtool_wolinfo *); - u32 (*get_msglevel)(struct net_device *); - void (*set_msglevel)(struct net_device *, u32); - int (*nway_reset)(struct net_device *); - u32 (*get_link)(struct net_device *); - int (*get_link_ext_state)(struct net_device *, struct ethtool_link_ext_state_info *); - int (*get_eeprom_len)(struct net_device *); - int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); - int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); - int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *); - int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *); - void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *); - int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *); - void (*get_pause_stats)(struct net_device *, struct ethtool_pause_stats *); - void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam *); - int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam *); - void (*self_test)(struct net_device *, struct ethtool_test *, u64 *); - void (*get_strings)(struct net_device *, u32, u8 *); - int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state); - void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *); - int (*begin)(struct net_device *); - void (*complete)(struct net_device *); - u32 (*get_priv_flags)(struct net_device *); - int (*set_priv_flags)(struct net_device *, u32); - int (*get_sset_count)(struct net_device *, int); - int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, u32 *); - int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); - int (*flash_device)(struct net_device *, struct ethtool_flash *); - int (*reset)(struct net_device *, u32 *); - u32 (*get_rxfh_key_size)(struct net_device *); - u32 (*get_rxfh_indir_size)(struct net_device *); - int (*get_rxfh)(struct net_device *, u32 *, u8 *, u8 *); - int (*set_rxfh)(struct net_device *, const u32 *, const u8 *, const u8); - int (*get_rxfh_context)(struct net_device *, u32 *, u8 *, u8 *, u32); - int (*set_rxfh_context)(struct net_device *, const u32 *, const u8 *, const u8, u32 *, bool); - void (*get_channels)(struct net_device *, struct ethtool_channels *); - int (*set_channels)(struct net_device *, struct ethtool_channels *); - int (*get_dump_flag)(struct net_device *, struct ethtool_dump *); - int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *); - int (*set_dump)(struct net_device *, struct ethtool_dump *); - int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); - int (*get_module_info)(struct net_device *, struct ethtool_modinfo *); - int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); - int (*get_eee)(struct net_device *, struct ethtool_eee *); - int (*set_eee)(struct net_device *, struct ethtool_eee *); - int (*get_tunable)(struct net_device *, const struct ethtool_tunable *, void *); - int (*set_tunable)(struct net_device *, const struct ethtool_tunable *, const void *); - int (*get_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *); - int (*set_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *); - int (*get_link_ksettings)(struct net_device *, struct ethtool_link_ksettings *); - int (*set_link_ksettings)(struct net_device *, const struct ethtool_link_ksettings *); - int (*get_fecparam)(struct net_device *, struct ethtool_fecparam *); - int (*set_fecparam)(struct net_device *, struct ethtool_fecparam *); - void (*get_ethtool_phy_stats)(struct net_device *, struct ethtool_stats *, u64 *); - int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *); - int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *); -}; - -struct netlink_ext_ack { - const char *_msg; - const struct nlattr *bad_attr; - const struct nla_policy *policy; - u8 cookie[20]; - u8 cookie_len; -}; - struct ieee_ets { __u8 willing; __u8 ets_cap; @@ -12639,11 +12993,25 @@ struct xdp_rxq_info { u32 queue_index; u32 reg_state; struct xdp_mem_info mem; + unsigned int napi_id; long: 64; long: 64; long: 64; long: 64; - long: 64; +}; + +struct xdp_txq_info { + struct net_device *dev; +}; + +struct xdp_buff { + void *data; + void *data_end; + void *data_meta; + void *data_hard_start; + struct xdp_rxq_info *rxq; + struct xdp_txq_info *txq; + u32 frame_sz; }; struct xdp_frame { @@ -12669,6 +13037,14 @@ struct nlattr { __u16 nla_type; }; +struct netlink_ext_ack { + const char *_msg; + const struct nlattr *bad_attr; + const struct nla_policy *policy; + u8 cookie[20]; + u8 cookie_len; +}; + struct netlink_range_validation; struct netlink_range_validation_signed; @@ -12900,12 +13276,12 @@ struct Qdisc { struct sk_buff_head skb_bad_txq; spinlock_t busylock; spinlock_t seqlock; - bool empty; struct callback_head rcu; long: 64; long: 64; long: 64; long: 64; + long: 64; long int privdata[0]; }; @@ -12928,24 +13304,16 @@ struct rps_dev_flow_table { }; struct netdev_rx_queue { + struct xdp_rxq_info xdp_rxq; struct rps_map *rps_map; struct rps_dev_flow_table *rps_flow_table; struct kobject kobj; struct net_device *dev; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; struct xsk_buff_pool *pool; long: 64; long: 64; long: 64; long: 64; - long: 64; - long: 64; - long: 64; }; struct xps_map { @@ -12957,6 +13325,8 @@ struct xps_map { struct xps_dev_maps { struct callback_head rcu; + unsigned int nr_ids; + s16 num_tc; struct xps_map *attr_map[0]; }; @@ -12976,6 +13346,50 @@ struct netdev_phys_item_id { unsigned char id_len; }; +enum net_device_path_type { + DEV_PATH_ETHERNET = 0, + DEV_PATH_VLAN = 1, + DEV_PATH_BRIDGE = 2, + DEV_PATH_PPPOE = 3, + DEV_PATH_DSA = 4, +}; + +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + union { + struct { + u16 id; + __be16 proto; + u8 h_dest[6]; + } encap; + struct { + enum { + DEV_PATH_BR_VLAN_KEEP = 0, + DEV_PATH_BR_VLAN_TAG = 1, + DEV_PATH_BR_VLAN_UNTAG = 2, + DEV_PATH_BR_VLAN_UNTAG_HW = 3, + } vlan_mode; + u16 vlan_id; + __be16 vlan_proto; + } bridge; + struct { + int port; + u16 proto; + } dsa; + }; +}; + +struct net_device_path_ctx { + const struct net_device *dev; + u8 daddr[6]; + int num_vlans; + struct { + u16 id; + __be16 proto; + } vlan[2]; +}; + enum tc_setup_type { TC_SETUP_QDISC_MQPRIO = 0, TC_SETUP_CLSU32 = 1, @@ -12995,6 +13409,7 @@ enum tc_setup_type { TC_SETUP_QDISC_ETS = 15, TC_SETUP_QDISC_TBF = 16, TC_SETUP_QDISC_FIFO = 17, + TC_SETUP_QDISC_HTB = 18, }; enum bpf_netdev_command { @@ -13043,8 +13458,6 @@ struct netdev_name_node { const char *name; }; -struct udp_tunnel_info; - struct devlink_port; struct ip_tunnel_parm; @@ -13062,6 +13475,10 @@ struct net_device_ops { int (*ndo_set_mac_address)(struct net_device *, void *); int (*ndo_validate_addr)(struct net_device *); int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); + int (*ndo_siocwandev)(struct net_device *, struct if_settings *); + int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void *, int); int (*ndo_set_config)(struct net_device *, struct ifmap *); int (*ndo_change_mtu)(struct net_device *, int); int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); @@ -13100,6 +13517,7 @@ struct net_device_ops { int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); int (*ndo_del_slave)(struct net_device *, struct net_device *); struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); + struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); int (*ndo_set_features)(struct net_device *, netdev_features_t); int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); @@ -13115,8 +13533,6 @@ struct net_device_ops { int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); - void (*ndo_udp_tunnel_add)(struct net_device *, struct udp_tunnel_info *); - void (*ndo_udp_tunnel_del)(struct net_device *, struct udp_tunnel_info *); void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); void (*ndo_dfwd_del_station)(struct net_device *, void *); int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); @@ -13126,10 +13542,12 @@ struct net_device_ops { void (*ndo_set_rx_headroom)(struct net_device *, int); int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); struct devlink_port * (*ndo_get_devlink_port)(struct net_device *); int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int); struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); }; struct neigh_parms { @@ -13181,6 +13599,142 @@ struct iw_handler_def { struct iw_statistics * (*get_wireless_stats)(struct net_device *); }; +enum ethtool_phys_id_state { + ETHTOOL_ID_INACTIVE = 0, + ETHTOOL_ID_ACTIVE = 1, + ETHTOOL_ID_ON = 2, + ETHTOOL_ID_OFF = 3, +}; + +struct ethtool_drvinfo; + +struct ethtool_regs; + +struct ethtool_wolinfo; + +struct ethtool_link_ext_state_info; + +struct ethtool_eeprom; + +struct ethtool_coalesce; + +struct kernel_ethtool_coalesce; + +struct ethtool_ringparam; + +struct ethtool_pause_stats; + +struct ethtool_pauseparam; + +struct ethtool_test; + +struct ethtool_stats; + +struct ethtool_rxnfc; + +struct ethtool_flash; + +struct ethtool_channels; + +struct ethtool_dump; + +struct ethtool_ts_info; + +struct ethtool_modinfo; + +struct ethtool_eee; + +struct ethtool_tunable; + +struct ethtool_link_ksettings; + +struct ethtool_fec_stats; + +struct ethtool_fecparam; + +struct ethtool_module_eeprom; + +struct ethtool_eth_phy_stats; + +struct ethtool_eth_mac_stats; + +struct ethtool_eth_ctrl_stats; + +struct ethtool_rmon_stats; + +struct ethtool_rmon_hist_range; + +struct ethtool_ops { + u32 cap_link_lanes_supported: 1; + u32 supported_coalesce_params; + void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *); + int (*get_regs_len)(struct net_device *); + void (*get_regs)(struct net_device *, struct ethtool_regs *, void *); + void (*get_wol)(struct net_device *, struct ethtool_wolinfo *); + int (*set_wol)(struct net_device *, struct ethtool_wolinfo *); + u32 (*get_msglevel)(struct net_device *); + void (*set_msglevel)(struct net_device *, u32); + int (*nway_reset)(struct net_device *); + u32 (*get_link)(struct net_device *); + int (*get_link_ext_state)(struct net_device *, struct ethtool_link_ext_state_info *); + int (*get_eeprom_len)(struct net_device *); + int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); + int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *); + int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *, struct kernel_ethtool_coalesce *, struct netlink_ext_ack *); + void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *); + int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *); + void (*get_pause_stats)(struct net_device *, struct ethtool_pause_stats *); + void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam *); + int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam *); + void (*self_test)(struct net_device *, struct ethtool_test *, u64 *); + void (*get_strings)(struct net_device *, u32, u8 *); + int (*set_phys_id)(struct net_device *, enum ethtool_phys_id_state); + void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *); + int (*begin)(struct net_device *); + void (*complete)(struct net_device *); + u32 (*get_priv_flags)(struct net_device *); + int (*set_priv_flags)(struct net_device *, u32); + int (*get_sset_count)(struct net_device *, int); + int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, u32 *); + int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); + int (*flash_device)(struct net_device *, struct ethtool_flash *); + int (*reset)(struct net_device *, u32 *); + u32 (*get_rxfh_key_size)(struct net_device *); + u32 (*get_rxfh_indir_size)(struct net_device *); + int (*get_rxfh)(struct net_device *, u32 *, u8 *, u8 *); + int (*set_rxfh)(struct net_device *, const u32 *, const u8 *, const u8); + int (*get_rxfh_context)(struct net_device *, u32 *, u8 *, u8 *, u32); + int (*set_rxfh_context)(struct net_device *, const u32 *, const u8 *, const u8, u32 *, bool); + void (*get_channels)(struct net_device *, struct ethtool_channels *); + int (*set_channels)(struct net_device *, struct ethtool_channels *); + int (*get_dump_flag)(struct net_device *, struct ethtool_dump *); + int (*get_dump_data)(struct net_device *, struct ethtool_dump *, void *); + int (*set_dump)(struct net_device *, struct ethtool_dump *); + int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); + int (*get_module_info)(struct net_device *, struct ethtool_modinfo *); + int (*get_module_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); + int (*get_eee)(struct net_device *, struct ethtool_eee *); + int (*set_eee)(struct net_device *, struct ethtool_eee *); + int (*get_tunable)(struct net_device *, const struct ethtool_tunable *, void *); + int (*set_tunable)(struct net_device *, const struct ethtool_tunable *, const void *); + int (*get_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *); + int (*set_per_queue_coalesce)(struct net_device *, u32, struct ethtool_coalesce *); + int (*get_link_ksettings)(struct net_device *, struct ethtool_link_ksettings *); + int (*set_link_ksettings)(struct net_device *, const struct ethtool_link_ksettings *); + void (*get_fec_stats)(struct net_device *, struct ethtool_fec_stats *); + int (*get_fecparam)(struct net_device *, struct ethtool_fecparam *); + int (*set_fecparam)(struct net_device *, struct ethtool_fecparam *); + void (*get_ethtool_phy_stats)(struct net_device *, struct ethtool_stats *, u64 *); + int (*get_phy_tunable)(struct net_device *, const struct ethtool_tunable *, void *); + int (*set_phy_tunable)(struct net_device *, const struct ethtool_tunable *, const void *); + int (*get_module_eeprom_by_page)(struct net_device *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); + void (*get_eth_phy_stats)(struct net_device *, struct ethtool_eth_phy_stats *); + void (*get_eth_mac_stats)(struct net_device *, struct ethtool_eth_mac_stats *); + void (*get_eth_ctrl_stats)(struct net_device *, struct ethtool_eth_ctrl_stats *); + void (*get_rmon_stats)(struct net_device *, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); +}; + struct l3mdev_ops { u32 (*l3mdev_fib_table)(const struct net_device *); struct sk_buff * (*l3mdev_l3_rcv)(struct net_device *, struct sk_buff *, u16); @@ -13203,6 +13757,21 @@ struct ndisc_ops { void (*prefix_rcv_add_addr)(struct net *, struct net_device *, const struct prefix_info *, struct inet6_dev *, struct in6_addr *, int, u32, bool, bool, __u32, u32, bool); }; +enum tls_offload_ctx_dir { + TLS_OFFLOAD_CTX_DIR_RX = 0, + TLS_OFFLOAD_CTX_DIR_TX = 1, +}; + +struct tls_crypto_info; + +struct tls_context; + +struct tlsdev_ops { + int (*tls_dev_add)(struct net_device *, struct sock *, enum tls_offload_ctx_dir, struct tls_crypto_info *, u32); + void (*tls_dev_del)(struct net_device *, struct tls_context *, enum tls_offload_ctx_dir); + int (*tls_dev_resync)(struct net_device *, struct sock *, u32, u8 *, enum tls_offload_ctx_dir); +}; + struct ipv6_devstat { struct proc_dir_entry *proc_dir_entry; struct ipstats_mib *ipv6; @@ -13219,7 +13788,6 @@ struct inet6_dev { struct list_head addr_list; struct ifmcaddr6 *mc_list; struct ifmcaddr6 *mc_tomb; - spinlock_t mc_lock; unsigned char mc_qrv; unsigned char mc_gq_running; unsigned char mc_ifc_count; @@ -13228,9 +13796,16 @@ struct inet6_dev { long unsigned int mc_qi; long unsigned int mc_qri; long unsigned int mc_maxdelay; - struct timer_list mc_gq_timer; - struct timer_list mc_ifc_timer; - struct timer_list mc_dad_timer; + struct delayed_work mc_gq_work; + struct delayed_work mc_ifc_work; + struct delayed_work mc_dad_work; + struct delayed_work mc_query_work; + struct delayed_work mc_report_work; + struct sk_buff_head mc_query_queue; + struct sk_buff_head mc_report_queue; + spinlock_t mc_query_lock; + spinlock_t mc_report_lock; + struct mutex mc_lock; struct ifacaddr6 *ac_list; rwlock_t lock; refcount_t refcnt; @@ -13247,6 +13822,7 @@ struct inet6_dev { __u8 rs_probes; long unsigned int tstamp; struct callback_head rcu; + unsigned int ra_mtu; }; struct tcf_proto; @@ -13265,6 +13841,7 @@ struct rtnl_link_ops { struct list_head list; const char *kind; size_t priv_size; + struct net_device * (*alloc)(struct nlattr **, const char *, unsigned char, unsigned int, unsigned int); void (*setup)(struct net_device *); bool netns_refund; unsigned int maxtype; @@ -13277,8 +13854,8 @@ struct rtnl_link_ops { int (*fill_info)(struct sk_buff *, const struct net_device *); size_t (*get_xstats_size)(const struct net_device *); int (*fill_xstats)(struct sk_buff *, const struct net_device *); - unsigned int (*get_num_tx_queues)(); - unsigned int (*get_num_rx_queues)(); + unsigned int (*get_num_tx_queues)(void); + unsigned int (*get_num_rx_queues)(void); unsigned int slave_maxtype; const struct nla_policy *slave_policy; int (*slave_changelink)(struct net_device *, struct net_device *, struct nlattr **, struct nlattr **, struct netlink_ext_ack *); @@ -13294,6 +13871,8 @@ struct udp_tunnel_nic_table_info { unsigned int tunnel_types; }; +struct udp_tunnel_info; + struct udp_tunnel_nic_shared; struct udp_tunnel_nic_info { @@ -13422,7 +14001,7 @@ struct Qdisc_class_ops { void (*qlen_notify)(struct Qdisc *, long unsigned int); long unsigned int (*find)(struct Qdisc *, u32); int (*change)(struct Qdisc *, u32, u32, struct nlattr **, long unsigned int *, struct netlink_ext_ack *); - int (*delete)(struct Qdisc *, long unsigned int); + int (*delete)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *); void (*walk)(struct Qdisc *, struct qdisc_walker *); struct tcf_block * (*tcf_block)(struct Qdisc *, long unsigned int, struct netlink_ext_ack *); long unsigned int (*bind_tcf)(struct Qdisc *, long unsigned int, u32); @@ -13501,7 +14080,7 @@ struct tcf_proto_ops { void (*destroy)(struct tcf_proto *, bool, struct netlink_ext_ack *); void * (*get)(struct tcf_proto *, u32); void (*put)(struct tcf_proto *, void *); - int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, long unsigned int, u32, struct nlattr **, void **, bool, bool, struct netlink_ext_ack *); + int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, long unsigned int, u32, struct nlattr **, void **, u32, struct netlink_ext_ack *); int (*delete)(struct tcf_proto *, void *, bool *, bool, struct netlink_ext_ack *); bool (*delete_empty)(struct tcf_proto *); void (*walk)(struct tcf_proto *, struct tcf_walker *, bool); @@ -13511,6 +14090,7 @@ struct tcf_proto_ops { void (*bind_class)(void *, u32, long unsigned int, void *, long unsigned int); void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *); void (*tmplt_destroy)(void *); + void (*tmplt_reoffload)(struct tcf_chain *, bool, flow_setup_cb_t *, void *); int (*dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool); int (*terse_dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool); int (*tmplt_dump)(struct sk_buff *, struct net *, void *); @@ -13538,6 +14118,14 @@ struct sock_fprog_kern { struct sock_filter *filter; }; +struct bpf_prog_stats { + u64_stats_t cnt; + u64_stats_t nsecs; + u64_stats_t misses; + struct u64_stats_sync syncp; + long: 64; +}; + struct sk_filter { refcount_t refcnt; struct callback_head rcu; @@ -13637,7 +14225,7 @@ struct pneigh_entry { struct net_device *dev; u8 flags; u8 protocol; - u8 key[0]; + u32 key[0]; }; struct neigh_hash_table { @@ -13724,6 +14312,8 @@ struct fib_lookup_arg { struct smc_hashinfo; +struct sk_psock; + struct request_sock_ops; struct timewait_sock_ops; @@ -13752,14 +14342,16 @@ struct proto { int (*bind)(struct sock *, struct sockaddr *, int); int (*bind_add)(struct sock *, struct sockaddr *, int); int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); void (*release_cb)(struct sock *); int (*hash)(struct sock *); void (*unhash)(struct sock *); void (*rehash)(struct sock *); int (*get_port)(struct sock *, short unsigned int); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); unsigned int inuse_idx; bool (*stream_memory_free)(const struct sock *, int); - bool (*stream_memory_read)(const struct sock *); + bool (*sock_is_readable)(struct sock *); void (*enter_memory_pressure)(struct sock *); void (*leave_memory_pressure)(struct sock *); atomic_long_t *memory_allocated; @@ -13830,6 +14422,7 @@ struct request_sock { struct saved_syn *saved_syn; u32 secid; u32 peer_secid; + u32 timeout; }; struct saved_syn { @@ -13855,6 +14448,7 @@ struct ip6_sf_list { unsigned char sf_gsresp; unsigned char sf_oldin; unsigned char sf_crcount; + struct callback_head rcu; }; struct ifmcaddr6 { @@ -13866,13 +14460,13 @@ struct ifmcaddr6 { unsigned int mca_sfmode; unsigned char mca_crcount; long unsigned int mca_sfcount[2]; - struct timer_list mca_timer; + struct delayed_work mca_work; unsigned int mca_flags; int mca_users; refcount_t mca_refcnt; - spinlock_t mca_lock; long unsigned int mca_cstamp; long unsigned int mca_tstamp; + struct callback_head rcu; }; struct ifacaddr6 { @@ -13923,9 +14517,14 @@ struct prefix_info { __u8 type; __u8 length; __u8 prefix_len; - __u8 reserved: 6; - __u8 autoconf: 1; - __u8 onlink: 1; + union { + __u8 flags; + struct { + __u8 reserved: 6; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; __be32 valid; __be32 prefered; __be32 reserved2; @@ -14066,6 +14665,15 @@ struct subprocess_info { typedef phys_addr_t resource_size_t; +struct __va_list_tag { + unsigned int gp_offset; + unsigned int fp_offset; + void *overflow_arg_area; + void *reg_save_area; +}; + +typedef __builtin_va_list va_list; + struct resource { resource_size_t start; resource_size_t end; @@ -14077,6 +14685,21 @@ struct resource { struct resource *child; }; +typedef u64 async_cookie_t; + +typedef void (*async_func_t)(void *, async_cookie_t); + +struct async_domain { + struct list_head pending; + unsigned int registered: 1; +}; + +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, +}; + struct hash { int ino; int minor; @@ -14105,449 +14728,14 @@ enum state { typedef int (*decompress_fn)(unsigned char *, long int, long int (*)(void *, long unsigned int), long int (*)(void *, long unsigned int), unsigned char *, long int *, void (*)(char *)); -enum ucount_type { - UCOUNT_USER_NAMESPACES = 0, - UCOUNT_PID_NAMESPACES = 1, - UCOUNT_UTS_NAMESPACES = 2, - UCOUNT_IPC_NAMESPACES = 3, - UCOUNT_NET_NAMESPACES = 4, - UCOUNT_MNT_NAMESPACES = 5, - UCOUNT_CGROUP_NAMESPACES = 6, - UCOUNT_TIME_NAMESPACES = 7, - UCOUNT_INOTIFY_INSTANCES = 8, - UCOUNT_INOTIFY_WATCHES = 9, - UCOUNT_COUNTS = 10, -}; - -enum flow_dissector_key_id { - FLOW_DISSECTOR_KEY_CONTROL = 0, - FLOW_DISSECTOR_KEY_BASIC = 1, - FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, - FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, - FLOW_DISSECTOR_KEY_PORTS = 4, - FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, - FLOW_DISSECTOR_KEY_ICMP = 6, - FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, - FLOW_DISSECTOR_KEY_TIPC = 8, - FLOW_DISSECTOR_KEY_ARP = 9, - FLOW_DISSECTOR_KEY_VLAN = 10, - FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, - FLOW_DISSECTOR_KEY_GRE_KEYID = 12, - FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, - FLOW_DISSECTOR_KEY_ENC_KEYID = 14, - FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, - FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, - FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, - FLOW_DISSECTOR_KEY_ENC_PORTS = 18, - FLOW_DISSECTOR_KEY_MPLS = 19, - FLOW_DISSECTOR_KEY_TCP = 20, - FLOW_DISSECTOR_KEY_IP = 21, - FLOW_DISSECTOR_KEY_CVLAN = 22, - FLOW_DISSECTOR_KEY_ENC_IP = 23, - FLOW_DISSECTOR_KEY_ENC_OPTS = 24, - FLOW_DISSECTOR_KEY_META = 25, - FLOW_DISSECTOR_KEY_CT = 26, - FLOW_DISSECTOR_KEY_HASH = 27, - FLOW_DISSECTOR_KEY_MAX = 28, -}; - -enum { - IPSTATS_MIB_NUM = 0, - IPSTATS_MIB_INPKTS = 1, - IPSTATS_MIB_INOCTETS = 2, - IPSTATS_MIB_INDELIVERS = 3, - IPSTATS_MIB_OUTFORWDATAGRAMS = 4, - IPSTATS_MIB_OUTPKTS = 5, - IPSTATS_MIB_OUTOCTETS = 6, - IPSTATS_MIB_INHDRERRORS = 7, - IPSTATS_MIB_INTOOBIGERRORS = 8, - IPSTATS_MIB_INNOROUTES = 9, - IPSTATS_MIB_INADDRERRORS = 10, - IPSTATS_MIB_INUNKNOWNPROTOS = 11, - IPSTATS_MIB_INTRUNCATEDPKTS = 12, - IPSTATS_MIB_INDISCARDS = 13, - IPSTATS_MIB_OUTDISCARDS = 14, - IPSTATS_MIB_OUTNOROUTES = 15, - IPSTATS_MIB_REASMTIMEOUT = 16, - IPSTATS_MIB_REASMREQDS = 17, - IPSTATS_MIB_REASMOKS = 18, - IPSTATS_MIB_REASMFAILS = 19, - IPSTATS_MIB_FRAGOKS = 20, - IPSTATS_MIB_FRAGFAILS = 21, - IPSTATS_MIB_FRAGCREATES = 22, - IPSTATS_MIB_INMCASTPKTS = 23, - IPSTATS_MIB_OUTMCASTPKTS = 24, - IPSTATS_MIB_INBCASTPKTS = 25, - IPSTATS_MIB_OUTBCASTPKTS = 26, - IPSTATS_MIB_INMCASTOCTETS = 27, - IPSTATS_MIB_OUTMCASTOCTETS = 28, - IPSTATS_MIB_INBCASTOCTETS = 29, - IPSTATS_MIB_OUTBCASTOCTETS = 30, - IPSTATS_MIB_CSUMERRORS = 31, - IPSTATS_MIB_NOECTPKTS = 32, - IPSTATS_MIB_ECT1PKTS = 33, - IPSTATS_MIB_ECT0PKTS = 34, - IPSTATS_MIB_CEPKTS = 35, - IPSTATS_MIB_REASM_OVERLAPS = 36, - __IPSTATS_MIB_MAX = 37, -}; - -enum { - ICMP_MIB_NUM = 0, - ICMP_MIB_INMSGS = 1, - ICMP_MIB_INERRORS = 2, - ICMP_MIB_INDESTUNREACHS = 3, - ICMP_MIB_INTIMEEXCDS = 4, - ICMP_MIB_INPARMPROBS = 5, - ICMP_MIB_INSRCQUENCHS = 6, - ICMP_MIB_INREDIRECTS = 7, - ICMP_MIB_INECHOS = 8, - ICMP_MIB_INECHOREPS = 9, - ICMP_MIB_INTIMESTAMPS = 10, - ICMP_MIB_INTIMESTAMPREPS = 11, - ICMP_MIB_INADDRMASKS = 12, - ICMP_MIB_INADDRMASKREPS = 13, - ICMP_MIB_OUTMSGS = 14, - ICMP_MIB_OUTERRORS = 15, - ICMP_MIB_OUTDESTUNREACHS = 16, - ICMP_MIB_OUTTIMEEXCDS = 17, - ICMP_MIB_OUTPARMPROBS = 18, - ICMP_MIB_OUTSRCQUENCHS = 19, - ICMP_MIB_OUTREDIRECTS = 20, - ICMP_MIB_OUTECHOS = 21, - ICMP_MIB_OUTECHOREPS = 22, - ICMP_MIB_OUTTIMESTAMPS = 23, - ICMP_MIB_OUTTIMESTAMPREPS = 24, - ICMP_MIB_OUTADDRMASKS = 25, - ICMP_MIB_OUTADDRMASKREPS = 26, - ICMP_MIB_CSUMERRORS = 27, - __ICMP_MIB_MAX = 28, -}; - -enum { - ICMP6_MIB_NUM = 0, - ICMP6_MIB_INMSGS = 1, - ICMP6_MIB_INERRORS = 2, - ICMP6_MIB_OUTMSGS = 3, - ICMP6_MIB_OUTERRORS = 4, - ICMP6_MIB_CSUMERRORS = 5, - __ICMP6_MIB_MAX = 6, -}; - -enum { - TCP_MIB_NUM = 0, - TCP_MIB_RTOALGORITHM = 1, - TCP_MIB_RTOMIN = 2, - TCP_MIB_RTOMAX = 3, - TCP_MIB_MAXCONN = 4, - TCP_MIB_ACTIVEOPENS = 5, - TCP_MIB_PASSIVEOPENS = 6, - TCP_MIB_ATTEMPTFAILS = 7, - TCP_MIB_ESTABRESETS = 8, - TCP_MIB_CURRESTAB = 9, - TCP_MIB_INSEGS = 10, - TCP_MIB_OUTSEGS = 11, - TCP_MIB_RETRANSSEGS = 12, - TCP_MIB_INERRS = 13, - TCP_MIB_OUTRSTS = 14, - TCP_MIB_CSUMERRORS = 15, - __TCP_MIB_MAX = 16, -}; - -enum { - UDP_MIB_NUM = 0, - UDP_MIB_INDATAGRAMS = 1, - UDP_MIB_NOPORTS = 2, - UDP_MIB_INERRORS = 3, - UDP_MIB_OUTDATAGRAMS = 4, - UDP_MIB_RCVBUFERRORS = 5, - UDP_MIB_SNDBUFERRORS = 6, - UDP_MIB_CSUMERRORS = 7, - UDP_MIB_IGNOREDMULTI = 8, - __UDP_MIB_MAX = 9, -}; - -enum { - LINUX_MIB_NUM = 0, - LINUX_MIB_SYNCOOKIESSENT = 1, - LINUX_MIB_SYNCOOKIESRECV = 2, - LINUX_MIB_SYNCOOKIESFAILED = 3, - LINUX_MIB_EMBRYONICRSTS = 4, - LINUX_MIB_PRUNECALLED = 5, - LINUX_MIB_RCVPRUNED = 6, - LINUX_MIB_OFOPRUNED = 7, - LINUX_MIB_OUTOFWINDOWICMPS = 8, - LINUX_MIB_LOCKDROPPEDICMPS = 9, - LINUX_MIB_ARPFILTER = 10, - LINUX_MIB_TIMEWAITED = 11, - LINUX_MIB_TIMEWAITRECYCLED = 12, - LINUX_MIB_TIMEWAITKILLED = 13, - LINUX_MIB_PAWSACTIVEREJECTED = 14, - LINUX_MIB_PAWSESTABREJECTED = 15, - LINUX_MIB_DELAYEDACKS = 16, - LINUX_MIB_DELAYEDACKLOCKED = 17, - LINUX_MIB_DELAYEDACKLOST = 18, - LINUX_MIB_LISTENOVERFLOWS = 19, - LINUX_MIB_LISTENDROPS = 20, - LINUX_MIB_TCPHPHITS = 21, - LINUX_MIB_TCPPUREACKS = 22, - LINUX_MIB_TCPHPACKS = 23, - LINUX_MIB_TCPRENORECOVERY = 24, - LINUX_MIB_TCPSACKRECOVERY = 25, - LINUX_MIB_TCPSACKRENEGING = 26, - LINUX_MIB_TCPSACKREORDER = 27, - LINUX_MIB_TCPRENOREORDER = 28, - LINUX_MIB_TCPTSREORDER = 29, - LINUX_MIB_TCPFULLUNDO = 30, - LINUX_MIB_TCPPARTIALUNDO = 31, - LINUX_MIB_TCPDSACKUNDO = 32, - LINUX_MIB_TCPLOSSUNDO = 33, - LINUX_MIB_TCPLOSTRETRANSMIT = 34, - LINUX_MIB_TCPRENOFAILURES = 35, - LINUX_MIB_TCPSACKFAILURES = 36, - LINUX_MIB_TCPLOSSFAILURES = 37, - LINUX_MIB_TCPFASTRETRANS = 38, - LINUX_MIB_TCPSLOWSTARTRETRANS = 39, - LINUX_MIB_TCPTIMEOUTS = 40, - LINUX_MIB_TCPLOSSPROBES = 41, - LINUX_MIB_TCPLOSSPROBERECOVERY = 42, - LINUX_MIB_TCPRENORECOVERYFAIL = 43, - LINUX_MIB_TCPSACKRECOVERYFAIL = 44, - LINUX_MIB_TCPRCVCOLLAPSED = 45, - LINUX_MIB_TCPDSACKOLDSENT = 46, - LINUX_MIB_TCPDSACKOFOSENT = 47, - LINUX_MIB_TCPDSACKRECV = 48, - LINUX_MIB_TCPDSACKOFORECV = 49, - LINUX_MIB_TCPABORTONDATA = 50, - LINUX_MIB_TCPABORTONCLOSE = 51, - LINUX_MIB_TCPABORTONMEMORY = 52, - LINUX_MIB_TCPABORTONTIMEOUT = 53, - LINUX_MIB_TCPABORTONLINGER = 54, - LINUX_MIB_TCPABORTFAILED = 55, - LINUX_MIB_TCPMEMORYPRESSURES = 56, - LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, - LINUX_MIB_TCPSACKDISCARD = 58, - LINUX_MIB_TCPDSACKIGNOREDOLD = 59, - LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, - LINUX_MIB_TCPSPURIOUSRTOS = 61, - LINUX_MIB_TCPMD5NOTFOUND = 62, - LINUX_MIB_TCPMD5UNEXPECTED = 63, - LINUX_MIB_TCPMD5FAILURE = 64, - LINUX_MIB_SACKSHIFTED = 65, - LINUX_MIB_SACKMERGED = 66, - LINUX_MIB_SACKSHIFTFALLBACK = 67, - LINUX_MIB_TCPBACKLOGDROP = 68, - LINUX_MIB_PFMEMALLOCDROP = 69, - LINUX_MIB_TCPMINTTLDROP = 70, - LINUX_MIB_TCPDEFERACCEPTDROP = 71, - LINUX_MIB_IPRPFILTER = 72, - LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, - LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, - LINUX_MIB_TCPREQQFULLDROP = 75, - LINUX_MIB_TCPRETRANSFAIL = 76, - LINUX_MIB_TCPRCVCOALESCE = 77, - LINUX_MIB_TCPBACKLOGCOALESCE = 78, - LINUX_MIB_TCPOFOQUEUE = 79, - LINUX_MIB_TCPOFODROP = 80, - LINUX_MIB_TCPOFOMERGE = 81, - LINUX_MIB_TCPCHALLENGEACK = 82, - LINUX_MIB_TCPSYNCHALLENGE = 83, - LINUX_MIB_TCPFASTOPENACTIVE = 84, - LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, - LINUX_MIB_TCPFASTOPENPASSIVE = 86, - LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, - LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, - LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, - LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, - LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, - LINUX_MIB_BUSYPOLLRXPACKETS = 92, - LINUX_MIB_TCPAUTOCORKING = 93, - LINUX_MIB_TCPFROMZEROWINDOWADV = 94, - LINUX_MIB_TCPTOZEROWINDOWADV = 95, - LINUX_MIB_TCPWANTZEROWINDOWADV = 96, - LINUX_MIB_TCPSYNRETRANS = 97, - LINUX_MIB_TCPORIGDATASENT = 98, - LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, - LINUX_MIB_TCPHYSTARTTRAINCWND = 100, - LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, - LINUX_MIB_TCPHYSTARTDELAYCWND = 102, - LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, - LINUX_MIB_TCPACKSKIPPEDPAWS = 104, - LINUX_MIB_TCPACKSKIPPEDSEQ = 105, - LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, - LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, - LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, - LINUX_MIB_TCPWINPROBE = 109, - LINUX_MIB_TCPKEEPALIVE = 110, - LINUX_MIB_TCPMTUPFAIL = 111, - LINUX_MIB_TCPMTUPSUCCESS = 112, - LINUX_MIB_TCPDELIVERED = 113, - LINUX_MIB_TCPDELIVEREDCE = 114, - LINUX_MIB_TCPACKCOMPRESSED = 115, - LINUX_MIB_TCPZEROWINDOWDROP = 116, - LINUX_MIB_TCPRCVQDROP = 117, - LINUX_MIB_TCPWQUEUETOOBIG = 118, - LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, - LINUX_MIB_TCPTIMEOUTREHASH = 120, - LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, - LINUX_MIB_TCPDSACKRECVSEGS = 122, - LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, - __LINUX_MIB_MAX = 124, -}; - -enum { - LINUX_MIB_XFRMNUM = 0, - LINUX_MIB_XFRMINERROR = 1, - LINUX_MIB_XFRMINBUFFERERROR = 2, - LINUX_MIB_XFRMINHDRERROR = 3, - LINUX_MIB_XFRMINNOSTATES = 4, - LINUX_MIB_XFRMINSTATEPROTOERROR = 5, - LINUX_MIB_XFRMINSTATEMODEERROR = 6, - LINUX_MIB_XFRMINSTATESEQERROR = 7, - LINUX_MIB_XFRMINSTATEEXPIRED = 8, - LINUX_MIB_XFRMINSTATEMISMATCH = 9, - LINUX_MIB_XFRMINSTATEINVALID = 10, - LINUX_MIB_XFRMINTMPLMISMATCH = 11, - LINUX_MIB_XFRMINNOPOLS = 12, - LINUX_MIB_XFRMINPOLBLOCK = 13, - LINUX_MIB_XFRMINPOLERROR = 14, - LINUX_MIB_XFRMOUTERROR = 15, - LINUX_MIB_XFRMOUTBUNDLEGENERROR = 16, - LINUX_MIB_XFRMOUTBUNDLECHECKERROR = 17, - LINUX_MIB_XFRMOUTNOSTATES = 18, - LINUX_MIB_XFRMOUTSTATEPROTOERROR = 19, - LINUX_MIB_XFRMOUTSTATEMODEERROR = 20, - LINUX_MIB_XFRMOUTSTATESEQERROR = 21, - LINUX_MIB_XFRMOUTSTATEEXPIRED = 22, - LINUX_MIB_XFRMOUTPOLBLOCK = 23, - LINUX_MIB_XFRMOUTPOLDEAD = 24, - LINUX_MIB_XFRMOUTPOLERROR = 25, - LINUX_MIB_XFRMFWDHDRERROR = 26, - LINUX_MIB_XFRMOUTSTATEINVALID = 27, - LINUX_MIB_XFRMACQUIREERROR = 28, - __LINUX_MIB_XFRMMAX = 29, -}; - -enum { - LINUX_MIB_TLSNUM = 0, - LINUX_MIB_TLSCURRTXSW = 1, - LINUX_MIB_TLSCURRRXSW = 2, - LINUX_MIB_TLSCURRTXDEVICE = 3, - LINUX_MIB_TLSCURRRXDEVICE = 4, - LINUX_MIB_TLSTXSW = 5, - LINUX_MIB_TLSRXSW = 6, - LINUX_MIB_TLSTXDEVICE = 7, - LINUX_MIB_TLSRXDEVICE = 8, - LINUX_MIB_TLSDECRYPTERROR = 9, - LINUX_MIB_TLSRXDEVICERESYNC = 10, - __LINUX_MIB_TLSMAX = 11, -}; - -enum nf_inet_hooks { - NF_INET_PRE_ROUTING = 0, - NF_INET_LOCAL_IN = 1, - NF_INET_FORWARD = 2, - NF_INET_LOCAL_OUT = 3, - NF_INET_POST_ROUTING = 4, - NF_INET_NUMHOOKS = 5, - NF_INET_INGRESS = 5, -}; - -enum { - NFPROTO_UNSPEC = 0, - NFPROTO_INET = 1, - NFPROTO_IPV4 = 2, - NFPROTO_ARP = 3, - NFPROTO_NETDEV = 5, - NFPROTO_BRIDGE = 7, - NFPROTO_IPV6 = 10, - NFPROTO_DECNET = 12, - NFPROTO_NUMPROTO = 13, -}; - -enum tcp_conntrack { - TCP_CONNTRACK_NONE = 0, - TCP_CONNTRACK_SYN_SENT = 1, - TCP_CONNTRACK_SYN_RECV = 2, - TCP_CONNTRACK_ESTABLISHED = 3, - TCP_CONNTRACK_FIN_WAIT = 4, - TCP_CONNTRACK_CLOSE_WAIT = 5, - TCP_CONNTRACK_LAST_ACK = 6, - TCP_CONNTRACK_TIME_WAIT = 7, - TCP_CONNTRACK_CLOSE = 8, - TCP_CONNTRACK_LISTEN = 9, - TCP_CONNTRACK_MAX = 10, - TCP_CONNTRACK_IGNORE = 11, - TCP_CONNTRACK_RETRANS = 12, - TCP_CONNTRACK_UNACK = 13, - TCP_CONNTRACK_TIMEOUT_MAX = 14, -}; - -enum ct_dccp_states { - CT_DCCP_NONE = 0, - CT_DCCP_REQUEST = 1, - CT_DCCP_RESPOND = 2, - CT_DCCP_PARTOPEN = 3, - CT_DCCP_OPEN = 4, - CT_DCCP_CLOSEREQ = 5, - CT_DCCP_CLOSING = 6, - CT_DCCP_TIMEWAIT = 7, - CT_DCCP_IGNORE = 8, - CT_DCCP_INVALID = 9, - __CT_DCCP_MAX = 10, -}; - -enum ip_conntrack_dir { - IP_CT_DIR_ORIGINAL = 0, - IP_CT_DIR_REPLY = 1, - IP_CT_DIR_MAX = 2, -}; - -enum sctp_conntrack { - SCTP_CONNTRACK_NONE = 0, - SCTP_CONNTRACK_CLOSED = 1, - SCTP_CONNTRACK_COOKIE_WAIT = 2, - SCTP_CONNTRACK_COOKIE_ECHOED = 3, - SCTP_CONNTRACK_ESTABLISHED = 4, - SCTP_CONNTRACK_SHUTDOWN_SENT = 5, - SCTP_CONNTRACK_SHUTDOWN_RECD = 6, - SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, - SCTP_CONNTRACK_HEARTBEAT_SENT = 8, - SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, - SCTP_CONNTRACK_MAX = 10, -}; - -enum udp_conntrack { - UDP_CT_UNREPLIED = 0, - UDP_CT_REPLIED = 1, - UDP_CT_MAX = 2, -}; - -enum gre_conntrack { - GRE_CT_UNREPLIED = 0, - GRE_CT_REPLIED = 1, - GRE_CT_MAX = 2, -}; - -enum { - XFRM_POLICY_IN = 0, - XFRM_POLICY_OUT = 1, - XFRM_POLICY_FWD = 2, - XFRM_POLICY_MASK = 3, - XFRM_POLICY_MAX = 3, -}; - -enum netns_bpf_attach_type { - NETNS_BPF_INVALID = 4294967295, - NETNS_BPF_FLOW_DISSECTOR = 0, - NETNS_BPF_SK_LOOKUP = 1, - MAX_NETNS_BPF_ATTACH_TYPE = 2, -}; - -enum skb_ext_id { - SKB_EXT_BRIDGE_NF = 0, - SKB_EXT_SEC_PATH = 1, - SKB_EXT_NUM = 2, +enum key_being_used_for { + VERIFYING_MODULE_SIGNATURE = 0, + VERIFYING_FIRMWARE_SIGNATURE = 1, + VERIFYING_KEXEC_PE_SIGNATURE = 2, + VERIFYING_KEY_SIGNATURE = 3, + VERIFYING_KEY_SELF_SIGNATURE = 4, + VERIFYING_UNSPECIFIED_SIGNATURE = 5, + NR__KEY_BEING_USED_FOR = 6, }; enum audit_ntp_type { @@ -14562,8 +14750,47 @@ enum audit_ntp_type { typedef long int (*sys_call_ptr_t)(const struct pt_regs *); -struct irq_stack { - char stack[16384]; +struct cpuinfo_x86 { + __u8 x86; + __u8 x86_vendor; + __u8 x86_model; + __u8 x86_stepping; + int x86_tlbsize; + __u32 vmx_capability[3]; + __u8 x86_virt_bits; + __u8 x86_phys_bits; + __u8 x86_coreid_bits; + __u8 cu_id; + __u32 extended_cpuid_level; + int cpuid_level; + union { + __u32 x86_capability[24]; + long unsigned int x86_capability_alignment; + }; + char x86_vendor_id[16]; + char x86_model_id[64]; + unsigned int x86_cache_size; + int x86_cache_alignment; + int x86_cache_max_rmid; + int x86_cache_occ_scale; + int x86_cache_mbm_width_offset; + int x86_power; + long unsigned int loops_per_jiffy; + u16 x86_max_cores; + u16 apicid; + u16 initial_apicid; + u16 x86_clflush_size; + u16 booted_cores; + u16 phys_proc_id; + u16 logical_proc_id; + u16 cpu_core_id; + u16 cpu_die_id; + u16 logical_die_id; + u16 cpu_index; + bool smt_active; + u32 microcode; + u8 x86_cache_bits; + unsigned int initialized: 1; }; struct io_bitmap { @@ -14573,6 +14800,48 @@ struct io_bitmap { long unsigned int bitmap[1024]; }; +enum apic_delivery_modes { + APIC_DELIVERY_MODE_FIXED = 0, + APIC_DELIVERY_MODE_LOWESTPRIO = 1, + APIC_DELIVERY_MODE_SMI = 2, + APIC_DELIVERY_MODE_NMI = 4, + APIC_DELIVERY_MODE_INIT = 5, + APIC_DELIVERY_MODE_EXTINT = 7, +}; + +struct physid_mask { + long unsigned int mask[512]; +}; + +typedef struct physid_mask physid_mask_t; + +enum { + TASKSTATS_CMD_UNSPEC = 0, + TASKSTATS_CMD_GET = 1, + TASKSTATS_CMD_NEW = 2, + __TASKSTATS_CMD_MAX = 3, +}; + +enum ucount_type { + UCOUNT_USER_NAMESPACES = 0, + UCOUNT_PID_NAMESPACES = 1, + UCOUNT_UTS_NAMESPACES = 2, + UCOUNT_IPC_NAMESPACES = 3, + UCOUNT_NET_NAMESPACES = 4, + UCOUNT_MNT_NAMESPACES = 5, + UCOUNT_CGROUP_NAMESPACES = 6, + UCOUNT_TIME_NAMESPACES = 7, + UCOUNT_INOTIFY_INSTANCES = 8, + UCOUNT_INOTIFY_WATCHES = 9, + UCOUNT_FANOTIFY_GROUPS = 10, + UCOUNT_FANOTIFY_MARKS = 11, + UCOUNT_RLIMIT_NPROC = 12, + UCOUNT_RLIMIT_MSGQUEUE = 13, + UCOUNT_RLIMIT_SIGPENDING = 14, + UCOUNT_RLIMIT_MEMLOCK = 15, + UCOUNT_COUNTS = 16, +}; + enum irqreturn { IRQ_NONE = 0, IRQ_HANDLED = 1, @@ -14653,6 +14922,34 @@ enum irqchip_irq_state { IRQCHIP_STATE_LINE_LEVEL = 3, }; +enum { + HI_SOFTIRQ = 0, + TIMER_SOFTIRQ = 1, + NET_TX_SOFTIRQ = 2, + NET_RX_SOFTIRQ = 3, + BLOCK_SOFTIRQ = 4, + IRQ_POLL_SOFTIRQ = 5, + TASKLET_SOFTIRQ = 6, + SCHED_SOFTIRQ = 7, + HRTIMER_SOFTIRQ = 8, + RCU_SOFTIRQ = 9, + NR_SOFTIRQS = 10, +}; + +enum cpu_usage_stat { + CPUTIME_USER = 0, + CPUTIME_NICE = 1, + CPUTIME_SYSTEM = 2, + CPUTIME_SOFTIRQ = 3, + CPUTIME_IRQ = 4, + CPUTIME_IDLE = 5, + CPUTIME_IOWAIT = 6, + CPUTIME_STEAL = 7, + CPUTIME_GUEST = 8, + CPUTIME_GUEST_NICE = 9, + NR_STATS = 10, +}; + enum { EI_ETYPE_NONE = 0, EI_ETYPE_NULL = 1, @@ -14661,6 +14958,155 @@ enum { EI_ETYPE_TRUE = 4, }; +enum bpf_type_flag { + PTR_MAYBE_NULL = 256, + MEM_RDONLY = 512, + MEM_ALLOC = 1024, + __BPF_TYPE_LAST_FLAG = 1024, +}; + +enum bpf_arg_type { + ARG_DONTCARE = 0, + ARG_CONST_MAP_PTR = 1, + ARG_PTR_TO_MAP_KEY = 2, + ARG_PTR_TO_MAP_VALUE = 3, + ARG_PTR_TO_UNINIT_MAP_VALUE = 4, + ARG_PTR_TO_MEM = 5, + ARG_PTR_TO_UNINIT_MEM = 6, + ARG_CONST_SIZE = 7, + ARG_CONST_SIZE_OR_ZERO = 8, + ARG_PTR_TO_CTX = 9, + ARG_ANYTHING = 10, + ARG_PTR_TO_SPIN_LOCK = 11, + ARG_PTR_TO_SOCK_COMMON = 12, + ARG_PTR_TO_INT = 13, + ARG_PTR_TO_LONG = 14, + ARG_PTR_TO_SOCKET = 15, + ARG_PTR_TO_BTF_ID = 16, + ARG_PTR_TO_ALLOC_MEM = 17, + ARG_CONST_ALLOC_SIZE_OR_ZERO = 18, + ARG_PTR_TO_BTF_ID_SOCK_COMMON = 19, + ARG_PTR_TO_PERCPU_BTF_ID = 20, + ARG_PTR_TO_FUNC = 21, + ARG_PTR_TO_STACK = 22, + ARG_PTR_TO_CONST_STR = 23, + ARG_PTR_TO_TIMER = 24, + __BPF_ARG_TYPE_MAX = 25, + ARG_PTR_TO_MAP_VALUE_OR_NULL = 259, + ARG_PTR_TO_MEM_OR_NULL = 261, + ARG_PTR_TO_CTX_OR_NULL = 265, + ARG_PTR_TO_SOCKET_OR_NULL = 271, + ARG_PTR_TO_ALLOC_MEM_OR_NULL = 273, + ARG_PTR_TO_STACK_OR_NULL = 278, + __BPF_ARG_TYPE_LIMIT = 2047, +}; + +enum bpf_return_type { + RET_INTEGER = 0, + RET_VOID = 1, + RET_PTR_TO_MAP_VALUE = 2, + RET_PTR_TO_SOCKET = 3, + RET_PTR_TO_TCP_SOCK = 4, + RET_PTR_TO_SOCK_COMMON = 5, + RET_PTR_TO_ALLOC_MEM = 6, + RET_PTR_TO_MEM_OR_BTF_ID = 7, + RET_PTR_TO_BTF_ID = 8, + __BPF_RET_TYPE_MAX = 9, + RET_PTR_TO_MAP_VALUE_OR_NULL = 258, + RET_PTR_TO_SOCKET_OR_NULL = 259, + RET_PTR_TO_TCP_SOCK_OR_NULL = 260, + RET_PTR_TO_SOCK_COMMON_OR_NULL = 261, + RET_PTR_TO_ALLOC_MEM_OR_NULL = 1286, + RET_PTR_TO_BTF_ID_OR_NULL = 264, + __BPF_RET_TYPE_LIMIT = 2047, +}; + +enum bpf_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; + +enum bpf_tramp_prog_type { + BPF_TRAMP_FENTRY = 0, + BPF_TRAMP_FEXIT = 1, + BPF_TRAMP_MODIFY_RETURN = 2, + BPF_TRAMP_MAX = 3, + BPF_TRAMP_REPLACE = 4, +}; + +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = 4294967295, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_INET4_POST_BIND = 9, + CGROUP_INET6_POST_BIND = 10, + CGROUP_UDP4_SENDMSG = 11, + CGROUP_UDP6_SENDMSG = 12, + CGROUP_SYSCTL = 13, + CGROUP_UDP4_RECVMSG = 14, + CGROUP_UDP6_RECVMSG = 15, + CGROUP_GETSOCKOPT = 16, + CGROUP_SETSOCKOPT = 17, + CGROUP_INET4_GETPEERNAME = 18, + CGROUP_INET6_GETPEERNAME = 19, + CGROUP_INET4_GETSOCKNAME = 20, + CGROUP_INET6_GETSOCKNAME = 21, + CGROUP_INET_SOCK_RELEASE = 22, + MAX_CGROUP_BPF_ATTACH_TYPE = 23, +}; + +enum psi_task_count { + NR_IOWAIT = 0, + NR_MEMSTALL = 1, + NR_RUNNING = 2, + NR_ONCPU = 3, + NR_MEMSTALL_RUNNING = 4, + NR_PSI_TASK_COUNTS = 5, +}; + +enum psi_states { + PSI_IO_SOME = 0, + PSI_IO_FULL = 1, + PSI_MEM_SOME = 2, + PSI_MEM_FULL = 3, + PSI_CPU_SOME = 4, + PSI_CPU_FULL = 5, + PSI_NONIDLE = 6, + NR_PSI_STATES = 7, +}; + +enum psi_aggregators { + PSI_AVGS = 0, + PSI_POLL = 1, + NR_PSI_AGGREGATORS = 2, +}; + +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + hugetlb_cgrp_id = 10, + pids_cgrp_id = 11, + rdma_cgrp_id = 12, + misc_cgrp_id = 13, + CGROUP_SUBSYS_COUNT = 14, +}; + struct syscall_metadata { const char *name; int syscall_nr; @@ -14752,10 +15198,66 @@ struct irq_desc { long: 64; }; +struct x86_msi_addr_lo { + union { + struct { + u32 reserved_0: 2; + u32 dest_mode_logical: 1; + u32 redirect_hint: 1; + u32 reserved_1: 1; + u32 virt_destid_8_14: 7; + u32 destid_0_7: 8; + u32 base_address: 12; + }; + struct { + u32 dmar_reserved_0: 2; + u32 dmar_index_15: 1; + u32 dmar_subhandle_valid: 1; + u32 dmar_format: 1; + u32 dmar_index_0_14: 15; + u32 dmar_base_address: 12; + }; + }; +}; + +typedef struct x86_msi_addr_lo arch_msi_msg_addr_lo_t; + +struct x86_msi_addr_hi { + u32 reserved: 8; + u32 destid_8_31: 24; +}; + +typedef struct x86_msi_addr_hi arch_msi_msg_addr_hi_t; + +struct x86_msi_data { + union { + struct { + u32 vector: 8; + u32 delivery_mode: 3; + u32 dest_mode_logical: 1; + u32 reserved: 2; + u32 active_low: 1; + u32 is_level: 1; + }; + u32 dmar_subhandle; + }; +}; + +typedef struct x86_msi_data arch_msi_msg_data_t; + struct msi_msg { - u32 address_lo; - u32 address_hi; - u32 data; + union { + u32 address_lo; + arch_msi_msg_addr_lo_t arch_addr_lo; + }; + union { + u32 address_hi; + arch_msi_msg_addr_hi_t arch_addr_hi; + }; + union { + u32 data; + arch_msi_msg_data_t arch_data; + }; }; struct platform_msi_priv_data; @@ -14785,12 +15287,15 @@ struct msi_desc { void *write_msi_msg_data; union { struct { - u32 masked; + union { + u32 msi_mask; + u32 msix_ctrl; + }; struct { u8 is_msix: 1; u8 multiple: 3; u8 multi_cap: 3; - u8 maskbit: 1; + u8 can_mask: 1; u8 is_64: 1; u8 is_virtual: 1; u16 entry_nr; @@ -14905,6 +15410,44 @@ struct irq_domain_chip_generic { struct irq_chip_generic *gc[0]; }; +struct apic { + void (*eoi_write)(u32, u32); + void (*native_eoi_write)(u32, u32); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*wait_icr_idle)(void); + u32 (*safe_wait_icr_idle)(void); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + u32 disable_esr; + enum apic_delivery_modes delivery_mode; + bool dest_mode_logical; + u32 (*calc_dest_apicid)(unsigned int); + u64 (*icr_read)(void); + void (*icr_write)(u32, u32); + int (*probe)(void); + int (*acpi_madt_oem_check)(char *, char *); + int (*apic_id_valid)(u32); + int (*apic_id_registered)(void); + bool (*check_apicid_used)(physid_mask_t *, int); + void (*init_apic_ldr)(void); + void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *); + void (*setup_apic_routing)(void); + int (*cpu_present_to_apicid)(int); + void (*apicid_to_cpu_present)(int, physid_mask_t *); + int (*check_phys_apicid_present)(int); + int (*phys_pkg_id)(int, int); + u32 (*get_apic_id)(long unsigned int); + u32 (*set_apic_id)(unsigned int); + int (*wakeup_secondary_cpu)(int, long unsigned int); + void (*inquire_remote_apic)(int); + char *name; +}; + struct alt_instr { s32 instr_offset; s32 repl_offset; @@ -14948,7 +15491,6 @@ struct timens_offsets { }; struct time_namespace { - struct kref kref; struct user_namespace *user_ns; struct ucounts *ucounts; struct ns_common ns; @@ -15017,94 +15559,26 @@ struct ms_hyperv_tsc_page { volatile s64 tsc_offset; }; -enum { - TASKSTATS_CMD_UNSPEC = 0, - TASKSTATS_CMD_GET = 1, - TASKSTATS_CMD_NEW = 2, - __TASKSTATS_CMD_MAX = 3, +struct vdso_exception_table_entry { + int insn; + int fixup; }; -enum { - HI_SOFTIRQ = 0, - TIMER_SOFTIRQ = 1, - NET_TX_SOFTIRQ = 2, - NET_RX_SOFTIRQ = 3, - BLOCK_SOFTIRQ = 4, - IRQ_POLL_SOFTIRQ = 5, - TASKLET_SOFTIRQ = 6, - SCHED_SOFTIRQ = 7, - HRTIMER_SOFTIRQ = 8, - RCU_SOFTIRQ = 9, - NR_SOFTIRQS = 10, +enum syscall_work_bit { + SYSCALL_WORK_BIT_SECCOMP = 0, + SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1, + SYSCALL_WORK_BIT_SYSCALL_TRACE = 2, + SYSCALL_WORK_BIT_SYSCALL_EMU = 3, + SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4, + SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5, + SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6, }; -enum cpu_usage_stat { - CPUTIME_USER = 0, - CPUTIME_NICE = 1, - CPUTIME_SYSTEM = 2, - CPUTIME_SOFTIRQ = 3, - CPUTIME_IRQ = 4, - CPUTIME_IDLE = 5, - CPUTIME_IOWAIT = 6, - CPUTIME_STEAL = 7, - CPUTIME_GUEST = 8, - CPUTIME_GUEST_NICE = 9, - NR_STATS = 10, -}; - -enum bpf_cgroup_storage_type { - BPF_CGROUP_STORAGE_SHARED = 0, - BPF_CGROUP_STORAGE_PERCPU = 1, - __BPF_CGROUP_STORAGE_MAX = 2, -}; - -enum bpf_tramp_prog_type { - BPF_TRAMP_FENTRY = 0, - BPF_TRAMP_FEXIT = 1, - BPF_TRAMP_MODIFY_RETURN = 2, - BPF_TRAMP_MAX = 3, - BPF_TRAMP_REPLACE = 4, -}; - -enum psi_task_count { - NR_IOWAIT = 0, - NR_MEMSTALL = 1, - NR_RUNNING = 2, - NR_ONCPU = 3, - NR_PSI_TASK_COUNTS = 4, -}; - -enum psi_states { - PSI_IO_SOME = 0, - PSI_IO_FULL = 1, - PSI_MEM_SOME = 2, - PSI_MEM_FULL = 3, - PSI_CPU_SOME = 4, - PSI_NONIDLE = 5, - NR_PSI_STATES = 6, -}; - -enum psi_aggregators { - PSI_AVGS = 0, - PSI_POLL = 1, - NR_PSI_AGGREGATORS = 2, -}; - -enum cgroup_subsys_id { - cpuset_cgrp_id = 0, - cpu_cgrp_id = 1, - cpuacct_cgrp_id = 2, - io_cgrp_id = 3, - memory_cgrp_id = 4, - devices_cgrp_id = 5, - freezer_cgrp_id = 6, - net_cls_cgrp_id = 7, - perf_event_cgrp_id = 8, - net_prio_cgrp_id = 9, - hugetlb_cgrp_id = 10, - pids_cgrp_id = 11, - rdma_cgrp_id = 12, - CGROUP_SUBSYS_COUNT = 13, +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; }; enum x86_pf_error_code { @@ -15114,6 +15588,7 @@ enum x86_pf_error_code { X86_PF_RSVD = 8, X86_PF_INSTR = 16, X86_PF_PK = 32, + X86_PF_SGX = 32768, }; struct trace_event_raw_emulate_vsyscall { @@ -15203,7 +15678,10 @@ enum perf_event_sample_format { PERF_SAMPLE_PHYS_ADDR = 524288, PERF_SAMPLE_AUX = 1048576, PERF_SAMPLE_CGROUP = 2097152, - PERF_SAMPLE_MAX = 4194304, + PERF_SAMPLE_DATA_PAGE_SIZE = 4194304, + PERF_SAMPLE_CODE_PAGE_SIZE = 8388608, + PERF_SAMPLE_WEIGHT_STRUCT = 16777216, + PERF_SAMPLE_MAX = 33554432, __PERF_SAMPLE_CALLCHAIN_EARLY = 0, }; @@ -15274,59 +15752,7 @@ struct pv_info { const char *name; }; -struct cpuinfo_x86 { - __u8 x86; - __u8 x86_vendor; - __u8 x86_model; - __u8 x86_stepping; - int x86_tlbsize; - __u32 vmx_capability[3]; - __u8 x86_virt_bits; - __u8 x86_phys_bits; - __u8 x86_coreid_bits; - __u8 cu_id; - __u32 extended_cpuid_level; - int cpuid_level; - union { - __u32 x86_capability[20]; - long unsigned int x86_capability_alignment; - }; - char x86_vendor_id[16]; - char x86_model_id[64]; - unsigned int x86_cache_size; - int x86_cache_alignment; - int x86_cache_max_rmid; - int x86_cache_occ_scale; - int x86_cache_mbm_width_offset; - int x86_power; - long unsigned int loops_per_jiffy; - u16 x86_max_cores; - u16 apicid; - u16 initial_apicid; - u16 x86_clflush_size; - u16 booted_cores; - u16 phys_proc_id; - u16 logical_proc_id; - u16 cpu_core_id; - u16 cpu_die_id; - u16 logical_die_id; - u16 cpu_index; - u32 microcode; - u8 x86_cache_bits; - unsigned int initialized: 1; -}; - -struct ldt_struct { - struct desc_struct *entries; - unsigned int nr_entries; - int slot; -}; - -struct physid_mask { - long unsigned int mask[512]; -}; - -typedef struct physid_mask physid_mask_t; +typedef bool (*smp_cond_func_t)(int, void *); struct x86_pmu_capability { int version; @@ -15876,10 +16302,10 @@ struct perf_guest_switch_msr { }; struct perf_guest_info_callbacks { - int (*is_in_guest)(); - int (*is_user_mode)(); - long unsigned int (*get_guest_ip)(); - void (*handle_intel_pt_intr)(); + int (*is_in_guest)(void); + int (*is_user_mode)(void); + long unsigned int (*get_guest_ip)(void); + void (*handle_intel_pt_intr)(void); }; struct device_attribute { @@ -15955,43 +16381,11 @@ struct perf_pmu_events_ht_attr { const char *event_str_noht; }; -struct apic { - void (*eoi_write)(u32, u32); - void (*native_eoi_write)(u32, u32); - void (*write)(u32, u32); - u32 (*read)(u32); - void (*wait_icr_idle)(); - u32 (*safe_wait_icr_idle)(); - void (*send_IPI)(int, int); - void (*send_IPI_mask)(const struct cpumask *, int); - void (*send_IPI_mask_allbutself)(const struct cpumask *, int); - void (*send_IPI_allbutself)(int); - void (*send_IPI_all)(int); - void (*send_IPI_self)(int); - u32 dest_logical; - u32 disable_esr; - u32 irq_delivery_mode; - u32 irq_dest_mode; - u32 (*calc_dest_apicid)(unsigned int); - u64 (*icr_read)(); - void (*icr_write)(u32, u32); - int (*probe)(); - int (*acpi_madt_oem_check)(char *, char *); - int (*apic_id_valid)(u32); - int (*apic_id_registered)(); - bool (*check_apicid_used)(physid_mask_t *, int); - void (*init_apic_ldr)(); - void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *); - void (*setup_apic_routing)(); - int (*cpu_present_to_apicid)(int); - void (*apicid_to_cpu_present)(int, physid_mask_t *); - int (*check_phys_apicid_present)(int); - int (*phys_pkg_id)(int, int); - u32 (*get_apic_id)(long unsigned int); - u32 (*set_apic_id)(unsigned int); - int (*wakeup_secondary_cpu)(int, long unsigned int); - void (*inquire_remote_apic)(int); - char *name; +struct perf_pmu_events_hybrid_attr { + struct device_attribute attr; + u64 id; + const char *event_str; + u64 pmu_type; }; enum { @@ -16524,13 +16918,12 @@ struct unwind_state { struct task_struct *task; int graph_idx; bool error; - bool signal; - bool full_regs; - long unsigned int sp; - long unsigned int bp; + bool got_irq; + long unsigned int *bp; + long unsigned int *orig_sp; long unsigned int ip; + long unsigned int *next_bp; struct pt_regs *regs; - struct pt_regs *prev_regs; }; enum extra_reg_type { @@ -16607,7 +17000,7 @@ enum { struct cpu_hw_events { struct perf_event *events[64]; long unsigned int active_mask[1]; - long unsigned int running[1]; + long unsigned int dirty[1]; int enabled; int n_events; int n_added; @@ -16689,7 +17082,7 @@ union perf_capabilities { struct x86_pmu_quirk { struct x86_pmu_quirk *next; - void (*func)(); + void (*func)(void); }; enum { @@ -16699,11 +17092,38 @@ enum { x86_lbr_exclusive_max = 3, }; +struct x86_hybrid_pmu { + struct pmu pmu; + const char *name; + u8 cpu_type; + cpumask_t supported_cpus; + union perf_capabilities intel_cap; + u64 intel_ctrl; + int max_pebs_events; + int num_counters; + int num_counters_fixed; + struct event_constraint unconstrained; + u64 hw_cache_event_ids[42]; + u64 hw_cache_extra_regs[42]; + struct event_constraint *event_constraints; + struct event_constraint *pebs_constraints; + struct extra_reg *extra_regs; + unsigned int late_ack: 1; + unsigned int mid_ack: 1; + unsigned int enabled_ack: 1; +}; + +enum hybrid_pmu_type { + hybrid_big = 64, + hybrid_small = 32, + hybrid_big_small = 96, +}; + struct x86_pmu { const char *name; int version; int (*handle_irq)(struct pt_regs *); - void (*disable_all)(); + void (*disable_all)(void); void (*enable_all)(int); void (*enable)(struct perf_event *); void (*disable)(struct perf_event *); @@ -16739,8 +17159,8 @@ struct x86_pmu { int perfctr_second_write; u64 (*limit_period)(struct perf_event *, u64); unsigned int late_ack: 1; + unsigned int mid_ack: 1; unsigned int enabled_ack: 1; - unsigned int counter_freezing: 1; int attr_rdpmc_broken; int attr_rdpmc; struct attribute **format_attrs; @@ -16751,7 +17171,7 @@ struct x86_pmu { void (*cpu_starting)(int); void (*cpu_dying)(int); void (*cpu_dead)(int); - void (*check_microcode)(); + void (*check_microcode)(void); void (*sched_task)(struct perf_event_context *, bool); u64 intel_ctrl; union perf_capabilities intel_cap; @@ -16763,6 +17183,7 @@ struct x86_pmu { unsigned int pebs_prec_dist: 1; unsigned int pebs_no_tlb: 1; unsigned int pebs_no_isolation: 1; + unsigned int pebs_block: 1; int pebs_record_size; int pebs_buffer_size; int max_pebs_events; @@ -16795,11 +17216,12 @@ struct x86_pmu { unsigned int lbr_mispred: 1; unsigned int lbr_timed_lbr: 1; unsigned int lbr_br_type: 1; - void (*lbr_reset)(); + void (*lbr_reset)(void); void (*lbr_read)(struct cpu_hw_events *); void (*lbr_save)(void *); void (*lbr_restore)(void *); atomic_t lbr_exclusive[3]; + int num_topdown_events; u64 (*update_topdown_event)(struct perf_event *); int (*set_topdown_event_period)(struct perf_event *); void (*swap_task_ctx)(struct perf_event_context *, struct perf_event_context *); @@ -16810,6 +17232,10 @@ struct x86_pmu { struct perf_guest_switch_msr * (*guest_get_msrs)(int *); int (*check_period)(struct perf_event *, u64); int (*aux_output_match)(struct perf_event *); + int (*filter_match)(struct perf_event *); + int num_hybrid_pmus; + struct x86_hybrid_pmu *hybrid_pmu; + u8 (*get_hybrid_cpu_type)(void); }; struct sched_state { @@ -16836,19 +17262,90 @@ struct perf_msr { struct attribute_group *grp; bool (*test)(int, void *); bool no_check; + u64 mask; }; -struct amd_uncore { - int id; - int refcnt; - int cpu; - int num_counters; - int rdpmc_base; - u32 msr_base; - cpumask_t *active_mask; - struct pmu *pmu; - struct perf_event *events[6]; - struct hlist_node node; +typedef unsigned int insn_attr_t; + +typedef unsigned char insn_byte_t; + +typedef int insn_value_t; + +struct insn_field { + union { + insn_value_t value; + insn_byte_t bytes[4]; + }; + unsigned char got; + unsigned char nbytes; +}; + +struct insn { + struct insn_field prefixes; + struct insn_field rex_prefix; + struct insn_field vex_prefix; + struct insn_field opcode; + struct insn_field modrm; + struct insn_field sib; + struct insn_field displacement; + union { + struct insn_field immediate; + struct insn_field moffset1; + struct insn_field immediate1; + }; + union { + struct insn_field moffset2; + struct insn_field immediate2; + }; + int emulate_prefix_size; + insn_attr_t attr; + unsigned char opnd_bytes; + unsigned char addr_bytes; + unsigned char length; + unsigned char x86_64; + const insn_byte_t *kaddr; + const insn_byte_t *end_kaddr; + const insn_byte_t *next_byte; +}; + +enum { + PERF_BR_UNKNOWN = 0, + PERF_BR_COND = 1, + PERF_BR_UNCOND = 2, + PERF_BR_IND = 3, + PERF_BR_CALL = 4, + PERF_BR_IND_CALL = 5, + PERF_BR_RET = 6, + PERF_BR_SYSCALL = 7, + PERF_BR_SYSRET = 8, + PERF_BR_COND_CALL = 9, + PERF_BR_COND_RET = 10, + PERF_BR_ERET = 11, + PERF_BR_IRQ = 12, + PERF_BR_MAX = 13, +}; + +enum { + X86_BR_NONE = 0, + X86_BR_USER = 1, + X86_BR_KERNEL = 2, + X86_BR_CALL = 4, + X86_BR_RET = 8, + X86_BR_SYSCALL = 16, + X86_BR_SYSRET = 32, + X86_BR_INT = 64, + X86_BR_IRET = 128, + X86_BR_JCC = 256, + X86_BR_JMP = 512, + X86_BR_IRQ = 1024, + X86_BR_IND_CALL = 2048, + X86_BR_ABORT = 4096, + X86_BR_IN_TX = 8192, + X86_BR_NO_TX = 16384, + X86_BR_ZERO_CALL = 32768, + X86_BR_CALL_STACK = 65536, + X86_BR_IND_JMP = 131072, + X86_BR_TYPE_SAVE = 262144, }; typedef int pci_power_t; @@ -16857,18 +17354,24 @@ typedef unsigned int pci_channel_state_t; typedef short unsigned int pci_dev_flags_t; +struct pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; +}; + struct pci_bus; struct pci_slot; struct aer_stats; +struct rcec_ea; + struct pci_driver; struct pcie_link_state; -struct pci_vpd; - struct pci_sriov; struct pci_dev { @@ -16888,6 +17391,9 @@ struct pci_dev { u8 hdr_type; u16 aer_cap; struct aer_stats *aer_stats; + struct rcec_ea *rcec_ea; + struct pci_dev *rcec; + u32 devcap; u8 pcie_cap; u8 msi_cap; u8 msix_cap; @@ -16921,7 +17427,8 @@ struct pci_dev { unsigned int d3cold_delay; struct pcie_link_state *link_state; unsigned int ltr_path: 1; - int l1ss; + u16 l1ss; + unsigned int pasid_no_tlp: 1; unsigned int eetlp_prefix_path: 1; pci_channel_state_t error_state; struct device dev; @@ -16951,7 +17458,6 @@ struct pci_dev { unsigned int state_saved: 1; unsigned int is_physfn: 1; unsigned int is_virtfn: 1; - unsigned int reset_fn: 1; unsigned int is_hotplug_bridge: 1; unsigned int shpc_managed: 1; unsigned int is_thunderbolt: 1; @@ -16965,20 +17471,21 @@ struct pci_dev { unsigned int link_active_reporting: 1; unsigned int no_vf_scan: 1; unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; pci_dev_flags_t dev_flags; atomic_t enable_cnt; u32 saved_config_space[16]; struct hlist_head saved_cap_space; - struct bin_attribute *rom_attr; int rom_attr_enabled; struct bin_attribute *res_attr[17]; struct bin_attribute *res_attr_wc[17]; unsigned int broken_cmd_compl: 1; + u16 ptm_cap; unsigned int ptm_root: 1; unsigned int ptm_enabled: 1; u8 ptm_granularity; const struct attribute_group **msi_irq_groups; - struct pci_vpd *vpd; + struct pci_vpd vpd; u16 dpc_cap; unsigned int dpc_rp_extensions: 1; u8 dpc_rp_log_size; @@ -16998,6 +17505,7 @@ struct pci_dev { size_t romlen; char *driver_override; long unsigned int priv_flags; + u8 reset_methods[7]; }; struct pci_device_id { @@ -17008,6 +17516,7 @@ struct pci_device_id { __u32 class; __u32 class_mask; kernel_ulong_t driver_data; + __u32 override_only; }; struct hotplug_slot; @@ -17024,8 +17533,6 @@ typedef short unsigned int pci_bus_flags_t; struct pci_ops; -struct msi_controller; - struct pci_bus { struct list_head node; struct pci_bus *parent; @@ -17037,7 +17544,6 @@ struct pci_bus { struct list_head resources; struct resource busn_res; struct pci_ops *ops; - struct msi_controller *msi; void *sysdata; struct proc_dir_entry *procdir; unsigned char number; @@ -17086,8 +17592,11 @@ struct pci_driver { int (*resume)(struct pci_dev *); void (*shutdown)(struct pci_dev *); int (*sriov_configure)(struct pci_dev *, int); + int (*sriov_set_msix_vec_count)(struct pci_dev *, int); + u32 (*sriov_get_vf_total_msix)(struct pci_dev *); const struct pci_error_handlers *err_handler; const struct attribute_group **groups; + const struct attribute_group **dev_groups; struct device_driver driver; struct pci_dynids dynids; }; @@ -17113,9 +17622,53 @@ struct pci_error_handlers { struct syscore_ops { struct list_head node; - int (*suspend)(); - void (*resume)(); - void (*shutdown)(); + int (*suspend)(void); + void (*resume)(void); + void (*shutdown)(void); +}; + +union ibs_fetch_ctl { + __u64 val; + struct { + __u64 fetch_maxcnt: 16; + __u64 fetch_cnt: 16; + __u64 fetch_lat: 16; + __u64 fetch_en: 1; + __u64 fetch_val: 1; + __u64 fetch_comp: 1; + __u64 ic_miss: 1; + __u64 phy_addr_valid: 1; + __u64 l1tlb_pgsz: 2; + __u64 l1tlb_miss: 1; + __u64 l2tlb_miss: 1; + __u64 rand_en: 1; + __u64 fetch_l2_miss: 1; + __u64 reserved: 5; + }; +}; + +union ibs_op_ctl { + __u64 val; + struct { + __u64 opmaxcnt: 16; + __u64 reserved0: 1; + __u64 op_en: 1; + __u64 op_val: 1; + __u64 cnt_ctl: 1; + __u64 opmaxcnt_ext: 7; + __u64 reserved1: 5; + __u64 opcurcnt: 27; + __u64 reserved2: 5; + }; +}; + +struct perf_ibs_data { + u32 size; + union { + u32 data[0]; + u32 caps; + }; + u64 regs[8]; }; enum ibs_states { @@ -17150,15 +17703,6 @@ struct perf_ibs { u64 (*get_count)(u64); }; -struct perf_ibs_data { - u32 size; - union { - u32 data[0]; - u32 caps; - }; - u64 regs[8]; -}; - struct amd_iommu; struct perf_amd_iommu { @@ -17231,6 +17775,11 @@ union cpuid10_edx { unsigned int full; }; +struct perf_pmu_format_hybrid_attr { + struct device_attribute attr; + u64 pmu_type; +}; + enum { LBR_FORMAT_32 = 0, LBR_FORMAT_LIP = 1, @@ -17288,8 +17837,10 @@ enum pageflags { PG_mlocked = 21, PG_uncached = 22, PG_hwpoison = 23, - PG_arch_2 = 24, - __NR_PAGEFLAGS = 25, + PG_young = 24, + PG_idle = 25, + PG_arch_2 = 26, + __NR_PAGEFLAGS = 27, PG_checked = 10, PG_swapcache = 10, PG_fscache = 14, @@ -17299,6 +17850,7 @@ enum pageflags { PG_xen_remapped = 10, PG_slob_free = 13, PG_double_map = 6, + PG_has_hwpoisoned = 17, PG_isolated = 18, PG_reported = 2, }; @@ -18357,1749 +18909,6 @@ struct lbr_entry { u64 info; }; -struct pebs_basic { - u64 format_size; - u64 ip; - u64 applicable_counters; - u64 tsc; -}; - -struct pebs_meminfo { - u64 address; - u64 aux; - u64 latency; - u64 tsx_tuning; -}; - -struct pebs_gprs { - u64 flags; - u64 ip; - u64 ax; - u64 cx; - u64 dx; - u64 bx; - u64 sp; - u64 bp; - u64 si; - u64 di; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; -}; - -struct pebs_xmm { - u64 xmm[32]; -}; - -struct x86_perf_regs { - struct pt_regs regs; - u64 *xmm_regs; -}; - -typedef unsigned int insn_attr_t; - -typedef unsigned char insn_byte_t; - -typedef int insn_value_t; - -struct insn_field { - union { - insn_value_t value; - insn_byte_t bytes[4]; - }; - unsigned char got; - unsigned char nbytes; -}; - -struct insn { - struct insn_field prefixes; - struct insn_field rex_prefix; - struct insn_field vex_prefix; - struct insn_field opcode; - struct insn_field modrm; - struct insn_field sib; - struct insn_field displacement; - union { - struct insn_field immediate; - struct insn_field moffset1; - struct insn_field immediate1; - }; - union { - struct insn_field moffset2; - struct insn_field immediate2; - }; - int emulate_prefix_size; - insn_attr_t attr; - unsigned char opnd_bytes; - unsigned char addr_bytes; - unsigned char length; - unsigned char x86_64; - const insn_byte_t *kaddr; - const insn_byte_t *end_kaddr; - const insn_byte_t *next_byte; -}; - -enum { - PERF_TXN_ELISION = 1, - PERF_TXN_TRANSACTION = 2, - PERF_TXN_SYNC = 4, - PERF_TXN_ASYNC = 8, - PERF_TXN_RETRY = 16, - PERF_TXN_CONFLICT = 32, - PERF_TXN_CAPACITY_WRITE = 64, - PERF_TXN_CAPACITY_READ = 128, - PERF_TXN_MAX = 256, - PERF_TXN_ABORT_MASK = 0, - PERF_TXN_ABORT_SHIFT = 32, -}; - -struct perf_event_header { - __u32 type; - __u16 misc; - __u16 size; -}; - -union intel_x86_pebs_dse { - u64 val; - struct { - unsigned int ld_dse: 4; - unsigned int ld_stlb_miss: 1; - unsigned int ld_locked: 1; - unsigned int ld_reserved: 26; - }; - struct { - unsigned int st_l1d_hit: 1; - unsigned int st_reserved1: 3; - unsigned int st_stlb_miss: 1; - unsigned int st_locked: 1; - unsigned int st_reserved2: 26; - }; -}; - -struct pebs_record_core { - u64 flags; - u64 ip; - u64 ax; - u64 bx; - u64 cx; - u64 dx; - u64 si; - u64 di; - u64 bp; - u64 sp; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; -}; - -struct pebs_record_nhm { - u64 flags; - u64 ip; - u64 ax; - u64 bx; - u64 cx; - u64 dx; - u64 si; - u64 di; - u64 bp; - u64 sp; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; - u64 status; - u64 dla; - u64 dse; - u64 lat; -}; - -union hsw_tsx_tuning { - struct { - u32 cycles_last_block: 32; - u32 hle_abort: 1; - u32 rtm_abort: 1; - u32 instruction_abort: 1; - u32 non_instruction_abort: 1; - u32 retry: 1; - u32 data_conflict: 1; - u32 capacity_writes: 1; - u32 capacity_reads: 1; - }; - u64 value; -}; - -struct pebs_record_skl { - u64 flags; - u64 ip; - u64 ax; - u64 bx; - u64 cx; - u64 dx; - u64 si; - u64 di; - u64 bp; - u64 sp; - u64 r8; - u64 r9; - u64 r10; - u64 r11; - u64 r12; - u64 r13; - u64 r14; - u64 r15; - u64 status; - u64 dla; - u64 dse; - u64 lat; - u64 real_ip; - u64 tsx_tuning; - u64 tsc; -}; - -struct bts_record { - u64 from; - u64 to; - u64 flags; -}; - -enum { - PERF_BR_UNKNOWN = 0, - PERF_BR_COND = 1, - PERF_BR_UNCOND = 2, - PERF_BR_IND = 3, - PERF_BR_CALL = 4, - PERF_BR_IND_CALL = 5, - PERF_BR_RET = 6, - PERF_BR_SYSCALL = 7, - PERF_BR_SYSRET = 8, - PERF_BR_COND_CALL = 9, - PERF_BR_COND_RET = 10, - PERF_BR_MAX = 11, -}; - -enum xfeature { - XFEATURE_FP = 0, - XFEATURE_SSE = 1, - XFEATURE_YMM = 2, - XFEATURE_BNDREGS = 3, - XFEATURE_BNDCSR = 4, - XFEATURE_OPMASK = 5, - XFEATURE_ZMM_Hi256 = 6, - XFEATURE_Hi16_ZMM = 7, - XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8, - XFEATURE_PKRU = 9, - XFEATURE_PASID = 10, - XFEATURE_RSRVD_COMP_11 = 11, - XFEATURE_RSRVD_COMP_12 = 12, - XFEATURE_RSRVD_COMP_13 = 13, - XFEATURE_RSRVD_COMP_14 = 14, - XFEATURE_LBR = 15, - XFEATURE_MAX = 16, -}; - -struct arch_lbr_state { - u64 lbr_ctl; - u64 lbr_depth; - u64 ler_from; - u64 ler_to; - u64 ler_info; - struct lbr_entry entries[0]; -}; - -union cpuid28_eax { - struct { - unsigned int lbr_depth_mask: 8; - unsigned int reserved: 22; - unsigned int lbr_deep_c_reset: 1; - unsigned int lbr_lip: 1; - } split; - unsigned int full; -}; - -union cpuid28_ebx { - struct { - unsigned int lbr_cpl: 1; - unsigned int lbr_filter: 1; - unsigned int lbr_call_stack: 1; - } split; - unsigned int full; -}; - -union cpuid28_ecx { - struct { - unsigned int lbr_mispred: 1; - unsigned int lbr_timed_lbr: 1; - unsigned int lbr_br_type: 1; - } split; - unsigned int full; -}; - -struct x86_pmu_lbr { - unsigned int nr; - unsigned int from; - unsigned int to; - unsigned int info; -}; - -struct x86_perf_task_context_opt { - int lbr_callstack_users; - int lbr_stack_state; - int log_id; -}; - -struct x86_perf_task_context { - u64 lbr_sel; - int tos; - int valid_lbrs; - struct x86_perf_task_context_opt opt; - struct lbr_entry lbr[32]; -}; - -struct x86_perf_task_context_arch_lbr { - struct x86_perf_task_context_opt opt; - struct lbr_entry entries[0]; -}; - -struct x86_perf_task_context_arch_lbr_xsave { - struct x86_perf_task_context_opt opt; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct xregs_state xsave; - struct { - struct fxregs_state i387; - struct xstate_header header; - struct arch_lbr_state lbr; - long: 64; - long: 64; - long: 64; - }; - }; -}; - -enum { - X86_BR_NONE = 0, - X86_BR_USER = 1, - X86_BR_KERNEL = 2, - X86_BR_CALL = 4, - X86_BR_RET = 8, - X86_BR_SYSCALL = 16, - X86_BR_SYSRET = 32, - X86_BR_INT = 64, - X86_BR_IRET = 128, - X86_BR_JCC = 256, - X86_BR_JMP = 512, - X86_BR_IRQ = 1024, - X86_BR_IND_CALL = 2048, - X86_BR_ABORT = 4096, - X86_BR_IN_TX = 8192, - X86_BR_NO_TX = 16384, - X86_BR_ZERO_CALL = 32768, - X86_BR_CALL_STACK = 65536, - X86_BR_IND_JMP = 131072, - X86_BR_TYPE_SAVE = 262144, -}; - -enum { - LBR_NONE = 0, - LBR_VALID = 1, -}; - -enum { - ARCH_LBR_BR_TYPE_JCC = 0, - ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1, - ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2, - ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3, - ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4, - ARCH_LBR_BR_TYPE_NEAR_RET = 5, - ARCH_LBR_BR_TYPE_KNOWN_MAX = 5, - ARCH_LBR_BR_TYPE_MAP_MAX = 16, -}; - -enum P4_EVENTS { - P4_EVENT_TC_DELIVER_MODE = 0, - P4_EVENT_BPU_FETCH_REQUEST = 1, - P4_EVENT_ITLB_REFERENCE = 2, - P4_EVENT_MEMORY_CANCEL = 3, - P4_EVENT_MEMORY_COMPLETE = 4, - P4_EVENT_LOAD_PORT_REPLAY = 5, - P4_EVENT_STORE_PORT_REPLAY = 6, - P4_EVENT_MOB_LOAD_REPLAY = 7, - P4_EVENT_PAGE_WALK_TYPE = 8, - P4_EVENT_BSQ_CACHE_REFERENCE = 9, - P4_EVENT_IOQ_ALLOCATION = 10, - P4_EVENT_IOQ_ACTIVE_ENTRIES = 11, - P4_EVENT_FSB_DATA_ACTIVITY = 12, - P4_EVENT_BSQ_ALLOCATION = 13, - P4_EVENT_BSQ_ACTIVE_ENTRIES = 14, - P4_EVENT_SSE_INPUT_ASSIST = 15, - P4_EVENT_PACKED_SP_UOP = 16, - P4_EVENT_PACKED_DP_UOP = 17, - P4_EVENT_SCALAR_SP_UOP = 18, - P4_EVENT_SCALAR_DP_UOP = 19, - P4_EVENT_64BIT_MMX_UOP = 20, - P4_EVENT_128BIT_MMX_UOP = 21, - P4_EVENT_X87_FP_UOP = 22, - P4_EVENT_TC_MISC = 23, - P4_EVENT_GLOBAL_POWER_EVENTS = 24, - P4_EVENT_TC_MS_XFER = 25, - P4_EVENT_UOP_QUEUE_WRITES = 26, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27, - P4_EVENT_RETIRED_BRANCH_TYPE = 28, - P4_EVENT_RESOURCE_STALL = 29, - P4_EVENT_WC_BUFFER = 30, - P4_EVENT_B2B_CYCLES = 31, - P4_EVENT_BNR = 32, - P4_EVENT_SNOOP = 33, - P4_EVENT_RESPONSE = 34, - P4_EVENT_FRONT_END_EVENT = 35, - P4_EVENT_EXECUTION_EVENT = 36, - P4_EVENT_REPLAY_EVENT = 37, - P4_EVENT_INSTR_RETIRED = 38, - P4_EVENT_UOPS_RETIRED = 39, - P4_EVENT_UOP_TYPE = 40, - P4_EVENT_BRANCH_RETIRED = 41, - P4_EVENT_MISPRED_BRANCH_RETIRED = 42, - P4_EVENT_X87_ASSIST = 43, - P4_EVENT_MACHINE_CLEAR = 44, - P4_EVENT_INSTR_COMPLETED = 45, -}; - -enum P4_EVENT_OPCODES { - P4_EVENT_TC_DELIVER_MODE_OPCODE = 257, - P4_EVENT_BPU_FETCH_REQUEST_OPCODE = 768, - P4_EVENT_ITLB_REFERENCE_OPCODE = 6147, - P4_EVENT_MEMORY_CANCEL_OPCODE = 517, - P4_EVENT_MEMORY_COMPLETE_OPCODE = 2050, - P4_EVENT_LOAD_PORT_REPLAY_OPCODE = 1026, - P4_EVENT_STORE_PORT_REPLAY_OPCODE = 1282, - P4_EVENT_MOB_LOAD_REPLAY_OPCODE = 770, - P4_EVENT_PAGE_WALK_TYPE_OPCODE = 260, - P4_EVENT_BSQ_CACHE_REFERENCE_OPCODE = 3079, - P4_EVENT_IOQ_ALLOCATION_OPCODE = 774, - P4_EVENT_IOQ_ACTIVE_ENTRIES_OPCODE = 6662, - P4_EVENT_FSB_DATA_ACTIVITY_OPCODE = 5894, - P4_EVENT_BSQ_ALLOCATION_OPCODE = 1287, - P4_EVENT_BSQ_ACTIVE_ENTRIES_OPCODE = 1543, - P4_EVENT_SSE_INPUT_ASSIST_OPCODE = 13313, - P4_EVENT_PACKED_SP_UOP_OPCODE = 2049, - P4_EVENT_PACKED_DP_UOP_OPCODE = 3073, - P4_EVENT_SCALAR_SP_UOP_OPCODE = 2561, - P4_EVENT_SCALAR_DP_UOP_OPCODE = 3585, - P4_EVENT_64BIT_MMX_UOP_OPCODE = 513, - P4_EVENT_128BIT_MMX_UOP_OPCODE = 6657, - P4_EVENT_X87_FP_UOP_OPCODE = 1025, - P4_EVENT_TC_MISC_OPCODE = 1537, - P4_EVENT_GLOBAL_POWER_EVENTS_OPCODE = 4870, - P4_EVENT_TC_MS_XFER_OPCODE = 1280, - P4_EVENT_UOP_QUEUE_WRITES_OPCODE = 2304, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE_OPCODE = 1282, - P4_EVENT_RETIRED_BRANCH_TYPE_OPCODE = 1026, - P4_EVENT_RESOURCE_STALL_OPCODE = 257, - P4_EVENT_WC_BUFFER_OPCODE = 1285, - P4_EVENT_B2B_CYCLES_OPCODE = 5635, - P4_EVENT_BNR_OPCODE = 2051, - P4_EVENT_SNOOP_OPCODE = 1539, - P4_EVENT_RESPONSE_OPCODE = 1027, - P4_EVENT_FRONT_END_EVENT_OPCODE = 2053, - P4_EVENT_EXECUTION_EVENT_OPCODE = 3077, - P4_EVENT_REPLAY_EVENT_OPCODE = 2309, - P4_EVENT_INSTR_RETIRED_OPCODE = 516, - P4_EVENT_UOPS_RETIRED_OPCODE = 260, - P4_EVENT_UOP_TYPE_OPCODE = 514, - P4_EVENT_BRANCH_RETIRED_OPCODE = 1541, - P4_EVENT_MISPRED_BRANCH_RETIRED_OPCODE = 772, - P4_EVENT_X87_ASSIST_OPCODE = 773, - P4_EVENT_MACHINE_CLEAR_OPCODE = 517, - P4_EVENT_INSTR_COMPLETED_OPCODE = 1796, -}; - -enum P4_ESCR_EMASKS { - P4_EVENT_TC_DELIVER_MODE__DD = 512, - P4_EVENT_TC_DELIVER_MODE__DB = 1024, - P4_EVENT_TC_DELIVER_MODE__DI = 2048, - P4_EVENT_TC_DELIVER_MODE__BD = 4096, - P4_EVENT_TC_DELIVER_MODE__BB = 8192, - P4_EVENT_TC_DELIVER_MODE__BI = 16384, - P4_EVENT_TC_DELIVER_MODE__ID = 32768, - P4_EVENT_BPU_FETCH_REQUEST__TCMISS = 512, - P4_EVENT_ITLB_REFERENCE__HIT = 512, - P4_EVENT_ITLB_REFERENCE__MISS = 1024, - P4_EVENT_ITLB_REFERENCE__HIT_UK = 2048, - P4_EVENT_MEMORY_CANCEL__ST_RB_FULL = 2048, - P4_EVENT_MEMORY_CANCEL__64K_CONF = 4096, - P4_EVENT_MEMORY_COMPLETE__LSC = 512, - P4_EVENT_MEMORY_COMPLETE__SSC = 1024, - P4_EVENT_LOAD_PORT_REPLAY__SPLIT_LD = 1024, - P4_EVENT_STORE_PORT_REPLAY__SPLIT_ST = 1024, - P4_EVENT_MOB_LOAD_REPLAY__NO_STA = 1024, - P4_EVENT_MOB_LOAD_REPLAY__NO_STD = 4096, - P4_EVENT_MOB_LOAD_REPLAY__PARTIAL_DATA = 8192, - P4_EVENT_MOB_LOAD_REPLAY__UNALGN_ADDR = 16384, - P4_EVENT_PAGE_WALK_TYPE__DTMISS = 512, - P4_EVENT_PAGE_WALK_TYPE__ITMISS = 1024, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITS = 512, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITE = 1024, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITM = 2048, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITS = 4096, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITE = 8192, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITM = 16384, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_MISS = 131072, - P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_MISS = 262144, - P4_EVENT_BSQ_CACHE_REFERENCE__WR_2ndL_MISS = 524288, - P4_EVENT_IOQ_ALLOCATION__DEFAULT = 512, - P4_EVENT_IOQ_ALLOCATION__ALL_READ = 16384, - P4_EVENT_IOQ_ALLOCATION__ALL_WRITE = 32768, - P4_EVENT_IOQ_ALLOCATION__MEM_UC = 65536, - P4_EVENT_IOQ_ALLOCATION__MEM_WC = 131072, - P4_EVENT_IOQ_ALLOCATION__MEM_WT = 262144, - P4_EVENT_IOQ_ALLOCATION__MEM_WP = 524288, - P4_EVENT_IOQ_ALLOCATION__MEM_WB = 1048576, - P4_EVENT_IOQ_ALLOCATION__OWN = 4194304, - P4_EVENT_IOQ_ALLOCATION__OTHER = 8388608, - P4_EVENT_IOQ_ALLOCATION__PREFETCH = 16777216, - P4_EVENT_IOQ_ACTIVE_ENTRIES__DEFAULT = 512, - P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_READ = 16384, - P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_WRITE = 32768, - P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_UC = 65536, - P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WC = 131072, - P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WT = 262144, - P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WP = 524288, - P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WB = 1048576, - P4_EVENT_IOQ_ACTIVE_ENTRIES__OWN = 4194304, - P4_EVENT_IOQ_ACTIVE_ENTRIES__OTHER = 8388608, - P4_EVENT_IOQ_ACTIVE_ENTRIES__PREFETCH = 16777216, - P4_EVENT_FSB_DATA_ACTIVITY__DRDY_DRV = 512, - P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OWN = 1024, - P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OTHER = 2048, - P4_EVENT_FSB_DATA_ACTIVITY__DBSY_DRV = 4096, - P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OWN = 8192, - P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OTHER = 16384, - P4_EVENT_BSQ_ALLOCATION__REQ_TYPE0 = 512, - P4_EVENT_BSQ_ALLOCATION__REQ_TYPE1 = 1024, - P4_EVENT_BSQ_ALLOCATION__REQ_LEN0 = 2048, - P4_EVENT_BSQ_ALLOCATION__REQ_LEN1 = 4096, - P4_EVENT_BSQ_ALLOCATION__REQ_IO_TYPE = 16384, - P4_EVENT_BSQ_ALLOCATION__REQ_LOCK_TYPE = 32768, - P4_EVENT_BSQ_ALLOCATION__REQ_CACHE_TYPE = 65536, - P4_EVENT_BSQ_ALLOCATION__REQ_SPLIT_TYPE = 131072, - P4_EVENT_BSQ_ALLOCATION__REQ_DEM_TYPE = 262144, - P4_EVENT_BSQ_ALLOCATION__REQ_ORD_TYPE = 524288, - P4_EVENT_BSQ_ALLOCATION__MEM_TYPE0 = 1048576, - P4_EVENT_BSQ_ALLOCATION__MEM_TYPE1 = 2097152, - P4_EVENT_BSQ_ALLOCATION__MEM_TYPE2 = 4194304, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE0 = 512, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE1 = 1024, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN0 = 2048, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN1 = 4096, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_IO_TYPE = 16384, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LOCK_TYPE = 32768, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_CACHE_TYPE = 65536, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_SPLIT_TYPE = 131072, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_DEM_TYPE = 262144, - P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_ORD_TYPE = 524288, - P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE0 = 1048576, - P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE1 = 2097152, - P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE2 = 4194304, - P4_EVENT_SSE_INPUT_ASSIST__ALL = 16777216, - P4_EVENT_PACKED_SP_UOP__ALL = 16777216, - P4_EVENT_PACKED_DP_UOP__ALL = 16777216, - P4_EVENT_SCALAR_SP_UOP__ALL = 16777216, - P4_EVENT_SCALAR_DP_UOP__ALL = 16777216, - P4_EVENT_64BIT_MMX_UOP__ALL = 16777216, - P4_EVENT_128BIT_MMX_UOP__ALL = 16777216, - P4_EVENT_X87_FP_UOP__ALL = 16777216, - P4_EVENT_TC_MISC__FLUSH = 8192, - P4_EVENT_GLOBAL_POWER_EVENTS__RUNNING = 512, - P4_EVENT_TC_MS_XFER__CISC = 512, - P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_BUILD = 512, - P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_DELIVER = 1024, - P4_EVENT_UOP_QUEUE_WRITES__FROM_ROM = 2048, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CONDITIONAL = 1024, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CALL = 2048, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__RETURN = 4096, - P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__INDIRECT = 8192, - P4_EVENT_RETIRED_BRANCH_TYPE__CONDITIONAL = 1024, - P4_EVENT_RETIRED_BRANCH_TYPE__CALL = 2048, - P4_EVENT_RETIRED_BRANCH_TYPE__RETURN = 4096, - P4_EVENT_RETIRED_BRANCH_TYPE__INDIRECT = 8192, - P4_EVENT_RESOURCE_STALL__SBFULL = 16384, - P4_EVENT_WC_BUFFER__WCB_EVICTS = 512, - P4_EVENT_WC_BUFFER__WCB_FULL_EVICTS = 1024, - P4_EVENT_FRONT_END_EVENT__NBOGUS = 512, - P4_EVENT_FRONT_END_EVENT__BOGUS = 1024, - P4_EVENT_EXECUTION_EVENT__NBOGUS0 = 512, - P4_EVENT_EXECUTION_EVENT__NBOGUS1 = 1024, - P4_EVENT_EXECUTION_EVENT__NBOGUS2 = 2048, - P4_EVENT_EXECUTION_EVENT__NBOGUS3 = 4096, - P4_EVENT_EXECUTION_EVENT__BOGUS0 = 8192, - P4_EVENT_EXECUTION_EVENT__BOGUS1 = 16384, - P4_EVENT_EXECUTION_EVENT__BOGUS2 = 32768, - P4_EVENT_EXECUTION_EVENT__BOGUS3 = 65536, - P4_EVENT_REPLAY_EVENT__NBOGUS = 512, - P4_EVENT_REPLAY_EVENT__BOGUS = 1024, - P4_EVENT_INSTR_RETIRED__NBOGUSNTAG = 512, - P4_EVENT_INSTR_RETIRED__NBOGUSTAG = 1024, - P4_EVENT_INSTR_RETIRED__BOGUSNTAG = 2048, - P4_EVENT_INSTR_RETIRED__BOGUSTAG = 4096, - P4_EVENT_UOPS_RETIRED__NBOGUS = 512, - P4_EVENT_UOPS_RETIRED__BOGUS = 1024, - P4_EVENT_UOP_TYPE__TAGLOADS = 1024, - P4_EVENT_UOP_TYPE__TAGSTORES = 2048, - P4_EVENT_BRANCH_RETIRED__MMNP = 512, - P4_EVENT_BRANCH_RETIRED__MMNM = 1024, - P4_EVENT_BRANCH_RETIRED__MMTP = 2048, - P4_EVENT_BRANCH_RETIRED__MMTM = 4096, - P4_EVENT_MISPRED_BRANCH_RETIRED__NBOGUS = 512, - P4_EVENT_X87_ASSIST__FPSU = 512, - P4_EVENT_X87_ASSIST__FPSO = 1024, - P4_EVENT_X87_ASSIST__POAO = 2048, - P4_EVENT_X87_ASSIST__POAU = 4096, - P4_EVENT_X87_ASSIST__PREA = 8192, - P4_EVENT_MACHINE_CLEAR__CLEAR = 512, - P4_EVENT_MACHINE_CLEAR__MOCLEAR = 1024, - P4_EVENT_MACHINE_CLEAR__SMCLEAR = 2048, - P4_EVENT_INSTR_COMPLETED__NBOGUS = 512, - P4_EVENT_INSTR_COMPLETED__BOGUS = 1024, -}; - -enum P4_PEBS_METRIC { - P4_PEBS_METRIC__none = 0, - P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1, - P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2, - P4_PEBS_METRIC__dtlb_load_miss_retired = 3, - P4_PEBS_METRIC__dtlb_store_miss_retired = 4, - P4_PEBS_METRIC__dtlb_all_miss_retired = 5, - P4_PEBS_METRIC__tagged_mispred_branch = 6, - P4_PEBS_METRIC__mob_load_replay_retired = 7, - P4_PEBS_METRIC__split_load_retired = 8, - P4_PEBS_METRIC__split_store_retired = 9, - P4_PEBS_METRIC__max = 10, -}; - -struct p4_event_bind { - unsigned int opcode; - unsigned int escr_msr[2]; - unsigned int escr_emask; - unsigned int shared; - char cntr[6]; -}; - -struct p4_pebs_bind { - unsigned int metric_pebs; - unsigned int metric_vert; -}; - -struct p4_event_alias { - u64 original; - u64 alternative; -}; - -enum cpuid_regs_idx { - CPUID_EAX = 0, - CPUID_EBX = 1, - CPUID_ECX = 2, - CPUID_EDX = 3, -}; - -struct dev_ext_attribute { - struct device_attribute attr; - void *var; -}; - -enum pt_capabilities { - PT_CAP_max_subleaf = 0, - PT_CAP_cr3_filtering = 1, - PT_CAP_psb_cyc = 2, - PT_CAP_ip_filtering = 3, - PT_CAP_mtc = 4, - PT_CAP_ptwrite = 5, - PT_CAP_power_event_trace = 6, - PT_CAP_topa_output = 7, - PT_CAP_topa_multiple_entries = 8, - PT_CAP_single_range_output = 9, - PT_CAP_output_subsys = 10, - PT_CAP_payloads_lip = 11, - PT_CAP_num_address_ranges = 12, - PT_CAP_mtc_periods = 13, - PT_CAP_cycle_thresholds = 14, - PT_CAP_psb_periods = 15, -}; - -enum perf_addr_filter_action_t { - PERF_ADDR_FILTER_ACTION_STOP = 0, - PERF_ADDR_FILTER_ACTION_START = 1, - PERF_ADDR_FILTER_ACTION_FILTER = 2, -}; - -struct perf_addr_filter { - struct list_head entry; - struct path path; - long unsigned int offset; - long unsigned int size; - enum perf_addr_filter_action_t action; -}; - -struct topa_entry { - u64 end: 1; - u64 rsvd0: 1; - u64 intr: 1; - u64 rsvd1: 1; - u64 stop: 1; - u64 rsvd2: 1; - u64 size: 4; - u64 rsvd3: 2; - u64 base: 36; - u64 rsvd4: 16; -}; - -struct pt_pmu { - struct pmu pmu; - u32 caps[8]; - bool vmx; - bool branch_en_always_on; - long unsigned int max_nonturbo_ratio; - unsigned int tsc_art_num; - unsigned int tsc_art_den; -}; - -struct topa; - -struct pt_buffer { - struct list_head tables; - struct topa *first; - struct topa *last; - struct topa *cur; - unsigned int cur_idx; - size_t output_off; - long unsigned int nr_pages; - local_t data_size; - local64_t head; - bool snapshot; - bool single; - long int stop_pos; - long int intr_pos; - struct topa_entry *stop_te; - struct topa_entry *intr_te; - void **data_pages; -}; - -struct topa { - struct list_head list; - u64 offset; - size_t size; - int last; - unsigned int z_count; -}; - -struct pt_filter { - long unsigned int msr_a; - long unsigned int msr_b; - long unsigned int config; -}; - -struct pt_filters { - struct pt_filter filter[4]; - unsigned int nr_filters; -}; - -struct pt { - struct perf_output_handle handle; - struct pt_filters filters; - int handle_nmi; - int vmx_on; - u64 output_base; - u64 output_mask; -}; - -struct pt_cap_desc { - const char *name; - u32 leaf; - u8 reg; - u32 mask; -}; - -struct pt_address_range { - long unsigned int msr_a; - long unsigned int msr_b; - unsigned int reg_off; -}; - -struct topa_page { - struct topa_entry table[507]; - struct topa topa; -}; - -typedef s8 int8_t; - -typedef u8 uint8_t; - -typedef u64 uint64_t; - -struct atomic_notifier_head { - spinlock_t lock; - struct notifier_block *head; -}; - -enum xen_domain_type { - XEN_NATIVE = 0, - XEN_PV_DOMAIN = 1, - XEN_HVM_DOMAIN = 2, -}; - -typedef long unsigned int xen_pfn_t; - -typedef long unsigned int xen_ulong_t; - -struct arch_shared_info { - long unsigned int max_pfn; - xen_pfn_t pfn_to_mfn_frame_list_list; - long unsigned int nmi_reason; - long unsigned int p2m_cr3; - long unsigned int p2m_vaddr; - long unsigned int p2m_generation; -}; - -struct arch_vcpu_info { - long unsigned int cr2; - long unsigned int pad; -}; - -struct pvclock_wall_clock { - u32 version; - u32 sec; - u32 nsec; -}; - -struct vcpu_info { - uint8_t evtchn_upcall_pending; - uint8_t evtchn_upcall_mask; - xen_ulong_t evtchn_pending_sel; - struct arch_vcpu_info arch; - struct pvclock_vcpu_time_info time; -}; - -struct shared_info { - struct vcpu_info vcpu_info[32]; - xen_ulong_t evtchn_pending[64]; - xen_ulong_t evtchn_mask[64]; - struct pvclock_wall_clock wc; - struct arch_shared_info arch; -}; - -struct start_info { - char magic[32]; - long unsigned int nr_pages; - long unsigned int shared_info; - uint32_t flags; - xen_pfn_t store_mfn; - uint32_t store_evtchn; - union { - struct { - xen_pfn_t mfn; - uint32_t evtchn; - } domU; - struct { - uint32_t info_off; - uint32_t info_size; - } dom0; - } console; - long unsigned int pt_base; - long unsigned int nr_pt_frames; - long unsigned int mfn_list; - long unsigned int mod_start; - long unsigned int mod_len; - int8_t cmd_line[1024]; - long unsigned int first_p2m_pfn; - long unsigned int nr_p2m_frames; -}; - -struct sched_shutdown { - unsigned int reason; -}; - -struct sched_pin_override { - int32_t pcpu; -}; - -struct vcpu_register_vcpu_info { - uint64_t mfn; - uint32_t offset; - uint32_t rsvd; -}; - -struct xmaddr { - phys_addr_t maddr; -}; - -typedef struct xmaddr xmaddr_t; - -struct xpaddr { - phys_addr_t paddr; -}; - -typedef struct xpaddr xpaddr_t; - -typedef s16 int16_t; - -typedef u16 uint16_t; - -struct clocksource { - u64 (*read)(struct clocksource *); - u64 mask; - u32 mult; - u32 shift; - u64 max_idle_ns; - u32 maxadj; - u32 uncertainty_margin; - u64 max_cycles; - const char *name; - struct list_head list; - int rating; - enum vdso_clock_mode vdso_clock_mode; - long unsigned int flags; - int (*enable)(struct clocksource *); - void (*disable)(struct clocksource *); - void (*suspend)(struct clocksource *); - void (*resume)(struct clocksource *); - void (*mark_unstable)(struct clocksource *); - void (*tick_stable)(struct clocksource *); - struct list_head wd_list; - u64 cs_last; - u64 wd_last; - struct module *owner; -}; - -struct x86_init_mpparse { - void (*setup_ioapic_ids)(); - void (*find_smp_config)(); - void (*get_smp_config)(unsigned int); -}; - -struct x86_init_resources { - void (*probe_roms)(); - void (*reserve_resources)(); - char * (*memory_setup)(); -}; - -struct x86_init_irqs { - void (*pre_vector_init)(); - void (*intr_init)(); - void (*intr_mode_select)(); - void (*intr_mode_init)(); - struct irq_domain * (*create_pci_msi_domain)(); -}; - -struct x86_init_oem { - void (*arch_setup)(); - void (*banner)(); -}; - -struct x86_init_paging { - void (*pagetable_init)(); -}; - -struct x86_init_timers { - void (*setup_percpu_clockev)(); - void (*timer_init)(); - void (*wallclock_init)(); -}; - -struct x86_init_iommu { - int (*iommu_init)(); -}; - -struct x86_init_pci { - int (*arch_init)(); - int (*init)(); - void (*init_irq)(); - void (*fixup_irqs)(); -}; - -struct x86_hyper_init { - void (*init_platform)(); - void (*guest_late_init)(); - bool (*x2apic_available)(); - void (*init_mem_mapping)(); - void (*init_after_bootmem)(); -}; - -struct x86_init_acpi { - void (*set_root_pointer)(u64); - u64 (*get_root_pointer)(); - void (*reduced_hw_early_init)(); -}; - -struct x86_init_ops { - struct x86_init_resources resources; - struct x86_init_mpparse mpparse; - struct x86_init_irqs irqs; - struct x86_init_oem oem; - struct x86_init_paging paging; - struct x86_init_timers timers; - struct x86_init_iommu iommu; - struct x86_init_pci pci; - struct x86_hyper_init hyper; - struct x86_init_acpi acpi; -}; - -struct x86_cpuinit_ops { - void (*setup_percpu_clockev)(); - void (*early_percpu_clock_init)(); - void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); -}; - -enum clock_event_state { - CLOCK_EVT_STATE_DETACHED = 0, - CLOCK_EVT_STATE_SHUTDOWN = 1, - CLOCK_EVT_STATE_PERIODIC = 2, - CLOCK_EVT_STATE_ONESHOT = 3, - CLOCK_EVT_STATE_ONESHOT_STOPPED = 4, -}; - -struct clock_event_device { - void (*event_handler)(struct clock_event_device *); - int (*set_next_event)(long unsigned int, struct clock_event_device *); - int (*set_next_ktime)(ktime_t, struct clock_event_device *); - ktime_t next_event; - u64 max_delta_ns; - u64 min_delta_ns; - u32 mult; - u32 shift; - enum clock_event_state state_use_accessors; - unsigned int features; - long unsigned int retries; - int (*set_state_periodic)(struct clock_event_device *); - int (*set_state_oneshot)(struct clock_event_device *); - int (*set_state_oneshot_stopped)(struct clock_event_device *); - int (*set_state_shutdown)(struct clock_event_device *); - int (*tick_resume)(struct clock_event_device *); - void (*broadcast)(const struct cpumask *); - void (*suspend)(struct clock_event_device *); - void (*resume)(struct clock_event_device *); - long unsigned int min_delta_ticks; - long unsigned int max_delta_ticks; - const char *name; - int rating; - int irq; - int bound_on; - const struct cpumask *cpumask; - struct list_head list; - struct module *owner; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct tk_read_base { - struct clocksource *clock; - u64 mask; - u64 cycle_last; - u32 mult; - u32 shift; - u64 xtime_nsec; - ktime_t base; - u64 base_real; -}; - -struct timekeeper { - struct tk_read_base tkr_mono; - struct tk_read_base tkr_raw; - u64 xtime_sec; - long unsigned int ktime_sec; - struct timespec64 wall_to_monotonic; - ktime_t offs_real; - ktime_t offs_boot; - ktime_t offs_tai; - s32 tai_offset; - unsigned int clock_was_set_seq; - u8 cs_was_changed_seq; - ktime_t next_leap_ktime; - u64 raw_sec; - struct timespec64 monotonic_to_boot; - u64 cycle_interval; - u64 xtime_interval; - s64 xtime_remainder; - u64 raw_interval; - u64 ntp_tick; - s64 ntp_error; - u32 ntp_error_shift; - u32 ntp_err_mult; - u32 skip_second_overflow; -}; - -typedef unsigned char *__guest_handle_uchar; - -typedef char *__guest_handle_char; - -typedef void *__guest_handle_void; - -typedef uint64_t *__guest_handle_uint64_t; - -typedef uint32_t *__guest_handle_uint32_t; - -struct vcpu_time_info { - uint32_t version; - uint32_t pad0; - uint64_t tsc_timestamp; - uint64_t system_time; - uint32_t tsc_to_system_mul; - int8_t tsc_shift; - int8_t pad1[3]; -}; - -struct xenpf_settime32 { - uint32_t secs; - uint32_t nsecs; - uint64_t system_time; -}; - -struct xenpf_settime64 { - uint64_t secs; - uint32_t nsecs; - uint32_t mbz; - uint64_t system_time; -}; - -struct xenpf_add_memtype { - xen_pfn_t mfn; - uint64_t nr_mfns; - uint32_t type; - uint32_t handle; - uint32_t reg; -}; - -struct xenpf_del_memtype { - uint32_t handle; - uint32_t reg; -}; - -struct xenpf_read_memtype { - uint32_t reg; - xen_pfn_t mfn; - uint64_t nr_mfns; - uint32_t type; -}; - -struct xenpf_microcode_update { - __guest_handle_void data; - uint32_t length; -}; - -struct xenpf_platform_quirk { - uint32_t quirk_id; -}; - -struct xenpf_efi_time { - uint16_t year; - uint8_t month; - uint8_t day; - uint8_t hour; - uint8_t min; - uint8_t sec; - uint32_t ns; - int16_t tz; - uint8_t daylight; -}; - -struct xenpf_efi_guid { - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -}; - -struct xenpf_efi_runtime_call { - uint32_t function; - uint32_t misc; - xen_ulong_t status; - union { - struct { - struct xenpf_efi_time time; - uint32_t resolution; - uint32_t accuracy; - } get_time; - struct xenpf_efi_time set_time; - struct xenpf_efi_time get_wakeup_time; - struct xenpf_efi_time set_wakeup_time; - struct { - __guest_handle_void name; - xen_ulong_t size; - __guest_handle_void data; - struct xenpf_efi_guid vendor_guid; - } get_variable; - struct { - __guest_handle_void name; - xen_ulong_t size; - __guest_handle_void data; - struct xenpf_efi_guid vendor_guid; - } set_variable; - struct { - xen_ulong_t size; - __guest_handle_void name; - struct xenpf_efi_guid vendor_guid; - } get_next_variable_name; - struct { - uint32_t attr; - uint64_t max_store_size; - uint64_t remain_store_size; - uint64_t max_size; - } query_variable_info; - struct { - __guest_handle_void capsule_header_array; - xen_ulong_t capsule_count; - uint64_t max_capsule_size; - uint32_t reset_type; - } query_capsule_capabilities; - struct { - __guest_handle_void capsule_header_array; - xen_ulong_t capsule_count; - uint64_t sg_list; - } update_capsule; - } u; -}; - -union xenpf_efi_info { - uint32_t version; - struct { - uint64_t addr; - uint32_t nent; - } cfg; - struct { - uint32_t revision; - uint32_t bufsz; - __guest_handle_void name; - } vendor; - struct { - uint64_t addr; - uint64_t size; - uint64_t attr; - uint32_t type; - } mem; -}; - -struct xenpf_firmware_info { - uint32_t type; - uint32_t index; - union { - struct { - uint8_t device; - uint8_t version; - uint16_t interface_support; - uint16_t legacy_max_cylinder; - uint8_t legacy_max_head; - uint8_t legacy_sectors_per_track; - __guest_handle_void edd_params; - } disk_info; - struct { - uint8_t device; - uint32_t mbr_signature; - } disk_mbr_signature; - struct { - uint8_t capabilities; - uint8_t edid_transfer_time; - __guest_handle_uchar edid; - } vbeddc_info; - union xenpf_efi_info efi_info; - uint8_t kbd_shift_flags; - } u; -}; - -struct xenpf_enter_acpi_sleep { - uint16_t val_a; - uint16_t val_b; - uint32_t sleep_state; - uint32_t flags; -}; - -struct xenpf_change_freq { - uint32_t flags; - uint32_t cpu; - uint64_t freq; -}; - -struct xenpf_getidletime { - __guest_handle_uchar cpumap_bitmap; - uint32_t cpumap_nr_cpus; - __guest_handle_uint64_t idletime; - uint64_t now; -}; - -struct xen_power_register { - uint32_t space_id; - uint32_t bit_width; - uint32_t bit_offset; - uint32_t access_size; - uint64_t address; -}; - -struct xen_processor_csd { - uint32_t domain; - uint32_t coord_type; - uint32_t num; -}; - -typedef struct xen_processor_csd *__guest_handle_xen_processor_csd; - -struct xen_processor_cx { - struct xen_power_register reg; - uint8_t type; - uint32_t latency; - uint32_t power; - uint32_t dpcnt; - __guest_handle_xen_processor_csd dp; -}; - -typedef struct xen_processor_cx *__guest_handle_xen_processor_cx; - -struct xen_processor_flags { - uint32_t bm_control: 1; - uint32_t bm_check: 1; - uint32_t has_cst: 1; - uint32_t power_setup_done: 1; - uint32_t bm_rld_set: 1; -}; - -struct xen_processor_power { - uint32_t count; - struct xen_processor_flags flags; - __guest_handle_xen_processor_cx states; -}; - -struct xen_pct_register { - uint8_t descriptor; - uint16_t length; - uint8_t space_id; - uint8_t bit_width; - uint8_t bit_offset; - uint8_t reserved; - uint64_t address; -}; - -struct xen_processor_px { - uint64_t core_frequency; - uint64_t power; - uint64_t transition_latency; - uint64_t bus_master_latency; - uint64_t control; - uint64_t status; -}; - -typedef struct xen_processor_px *__guest_handle_xen_processor_px; - -struct xen_psd_package { - uint64_t num_entries; - uint64_t revision; - uint64_t domain; - uint64_t coord_type; - uint64_t num_processors; -}; - -struct xen_processor_performance { - uint32_t flags; - uint32_t platform_limit; - struct xen_pct_register control_register; - struct xen_pct_register status_register; - uint32_t state_count; - __guest_handle_xen_processor_px states; - struct xen_psd_package domain_info; - uint32_t shared_type; -}; - -struct xenpf_set_processor_pminfo { - uint32_t id; - uint32_t type; - union { - struct xen_processor_power power; - struct xen_processor_performance perf; - __guest_handle_uint32_t pdc; - }; -}; - -struct xenpf_pcpuinfo { - uint32_t xen_cpuid; - uint32_t max_present; - uint32_t flags; - uint32_t apic_id; - uint32_t acpi_id; -}; - -struct xenpf_cpu_ol { - uint32_t cpuid; -}; - -struct xenpf_cpu_hotadd { - uint32_t apic_id; - uint32_t acpi_id; - uint32_t pxm; -}; - -struct xenpf_mem_hotadd { - uint64_t spfn; - uint64_t epfn; - uint32_t pxm; - uint32_t flags; -}; - -struct xenpf_core_parking { - uint32_t type; - uint32_t idle_nums; -}; - -struct xenpf_symdata { - uint32_t namelen; - uint32_t symnum; - __guest_handle_char name; - uint64_t address; - char type; -}; - -struct xen_platform_op { - uint32_t cmd; - uint32_t interface_version; - union { - struct xenpf_settime32 settime32; - struct xenpf_settime64 settime64; - struct xenpf_add_memtype add_memtype; - struct xenpf_del_memtype del_memtype; - struct xenpf_read_memtype read_memtype; - struct xenpf_microcode_update microcode; - struct xenpf_platform_quirk platform_quirk; - struct xenpf_efi_runtime_call efi_runtime_call; - struct xenpf_firmware_info firmware_info; - struct xenpf_enter_acpi_sleep enter_acpi_sleep; - struct xenpf_change_freq change_freq; - struct xenpf_getidletime getidletime; - struct xenpf_set_processor_pminfo set_pminfo; - struct xenpf_pcpuinfo pcpu_info; - struct xenpf_cpu_ol cpu_ol; - struct xenpf_cpu_hotadd cpu_add; - struct xenpf_mem_hotadd mem_add; - struct xenpf_core_parking core_parking; - struct xenpf_symdata symdata; - uint8_t pad[128]; - } u; -}; - -struct vcpu_set_singleshot_timer { - uint64_t timeout_abs_ns; - uint32_t flags; -}; - -typedef struct vcpu_time_info *__guest_handle_vcpu_time_info; - -struct vcpu_register_time_memory_area { - union { - __guest_handle_vcpu_time_info h; - struct pvclock_vcpu_time_info *v; - uint64_t p; - } addr; -}; - -struct xen_clock_event_device { - struct clock_event_device evt; - char name[16]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -typedef uint16_t grant_status_t; - -struct grant_frames { - xen_pfn_t *pfn; - unsigned int count; - void *vaddr; -}; - -struct gnttab_vm_area { - struct vm_struct *area; - pte_t **ptes; - int idx; -}; - -enum acpi_irq_model_id { - ACPI_IRQ_MODEL_PIC = 0, - ACPI_IRQ_MODEL_IOAPIC = 1, - ACPI_IRQ_MODEL_IOSAPIC = 2, - ACPI_IRQ_MODEL_PLATFORM = 3, - ACPI_IRQ_MODEL_GIC = 4, - ACPI_IRQ_MODEL_COUNT = 5, -}; - -typedef uint16_t domid_t; - -struct xen_add_to_physmap { - domid_t domid; - uint16_t size; - unsigned int space; - xen_ulong_t idx; - xen_pfn_t gpfn; -}; - -struct machine_ops { - void (*restart)(char *); - void (*halt)(); - void (*power_off)(); - void (*shutdown)(); - void (*crash_shutdown)(struct pt_regs *); - void (*emergency_restart)(); -}; - -enum x86_hypervisor_type { - X86_HYPER_NATIVE = 0, - X86_HYPER_VMWARE = 1, - X86_HYPER_MS_HYPERV = 2, - X86_HYPER_XEN_PV = 3, - X86_HYPER_XEN_HVM = 4, - X86_HYPER_KVM = 5, - X86_HYPER_JAILHOUSE = 6, - X86_HYPER_ACRN = 7, -}; - -struct hypervisor_x86 { - const char *name; - uint32_t (*detect)(); - enum x86_hypervisor_type type; - struct x86_hyper_init init; - struct x86_hyper_runtime runtime; - bool ignore_nopv; -}; - -enum e820_type { - E820_TYPE_RAM = 1, - E820_TYPE_RESERVED = 2, - E820_TYPE_ACPI = 3, - E820_TYPE_NVS = 4, - E820_TYPE_UNUSABLE = 5, - E820_TYPE_PMEM = 7, - E820_TYPE_PRAM = 12, - E820_TYPE_SOFT_RESERVED = 4026531839, - E820_TYPE_RESERVED_KERN = 128, -}; - -struct xen_hvm_pagetable_dying { - domid_t domid; - __u64 gpa; -}; - -enum hvmmem_type_t { - HVMMEM_ram_rw = 0, - HVMMEM_ram_ro = 1, - HVMMEM_mmio_dm = 2, -}; - -struct xen_hvm_get_mem_type { - domid_t domid; - uint16_t mem_type; - uint16_t pad[2]; - uint64_t pfn; -}; - -struct e820_entry { - u64 addr; - u64 size; - enum e820_type type; -} __attribute__((packed)); - -struct e820_table { - __u32 nr_entries; - struct e820_entry entries[3200]; -}; - -typedef xen_pfn_t *__guest_handle_xen_pfn_t; - -typedef long unsigned int xen_callback_t; - -struct mmu_update { - uint64_t ptr; - uint64_t val; -}; - -struct xen_memory_region { - long unsigned int start_pfn; - long unsigned int n_pfns; -}; - -struct callback_register { - uint16_t type; - uint16_t flags; - xen_callback_t address; -}; - -struct xen_memory_reservation { - __guest_handle_xen_pfn_t extent_start; - xen_ulong_t nr_extents; - unsigned int extent_order; - unsigned int address_bits; - domid_t domid; -}; - -struct xen_memory_map { - unsigned int nr_entries; - __guest_handle_void buffer; -}; - -struct x86_apic_ops { - unsigned int (*io_apic_read)(unsigned int, unsigned int); - void (*restore)(); -}; - -struct physdev_apic { - long unsigned int apic_physbase; - uint32_t reg; - uint32_t value; -}; - -typedef long unsigned int uintptr_t; - -struct xen_pmu_amd_ctxt { - uint32_t counters; - uint32_t ctrls; - uint64_t regs[0]; -}; - -struct xen_pmu_cntr_pair { - uint64_t counter; - uint64_t control; -}; - -struct xen_pmu_intel_ctxt { - uint32_t fixed_counters; - uint32_t arch_counters; - uint64_t global_ctrl; - uint64_t global_ovf_ctrl; - uint64_t global_status; - uint64_t fixed_ctrl; - uint64_t ds_area; - uint64_t pebs_enable; - uint64_t debugctl; - uint64_t regs[0]; -}; - -struct xen_pmu_regs { - uint64_t ip; - uint64_t sp; - uint64_t flags; - uint16_t cs; - uint16_t ss; - uint8_t cpl; - uint8_t pad[3]; -}; - -struct xen_pmu_arch { - union { - struct xen_pmu_regs regs; - uint8_t pad[64]; - } r; - uint64_t pmu_flags; - union { - uint32_t lapic_lvtpc; - uint64_t pad; - } l; - union { - struct xen_pmu_amd_ctxt amd; - struct xen_pmu_intel_ctxt intel; - uint8_t pad[128]; - } c; -}; - -struct xen_pmu_params { - struct { - uint32_t maj; - uint32_t min; - } version; - uint64_t val; - uint32_t vcpu; - uint32_t pad; -}; - -struct xen_pmu_data { - uint32_t vcpu_id; - uint32_t pcpu_id; - domid_t domain_id; - uint8_t pad[6]; - struct xen_pmu_arch pmu; -}; - -struct xenpmu { - struct xen_pmu_data *xenpmu_data; - uint8_t flags; -}; - -enum pg_level { - PG_LEVEL_NONE = 0, - PG_LEVEL_4K = 1, - PG_LEVEL_2M = 2, - PG_LEVEL_1G = 3, - PG_LEVEL_512G = 4, - PG_LEVEL_NUM = 5, -}; - -typedef uint32_t grant_ref_t; - -typedef uint32_t grant_handle_t; - -struct gnttab_map_grant_ref { - uint64_t host_addr; - uint32_t flags; - grant_ref_t ref; - domid_t dom; - int16_t status; - grant_handle_t handle; - uint64_t dev_bus_addr; -}; - -struct gnttab_unmap_grant_ref { - uint64_t host_addr; - uint64_t dev_bus_addr; - grant_handle_t handle; - int16_t status; -}; - -enum { - GATE_INTERRUPT = 14, - GATE_TRAP = 15, - GATE_CALL = 12, - GATE_TASK = 5, -}; - -enum { - DESC_TSS = 9, - DESC_LDT = 2, - DESCTYPE_S = 16, -}; - -enum paravirt_lazy_mode { - PARAVIRT_LAZY_NONE = 0, - PARAVIRT_LAZY_MMU = 1, - PARAVIRT_LAZY_CPU = 2, -}; - struct x86_hw_tss { u32 reserved1; u64 sp0; @@ -20113,6 +18922,14 @@ struct x86_hw_tss { u16 io_bitmap_base; } __attribute__((packed)); +struct entry_stack { + char stack[4096]; +}; + +struct entry_stack_page { + struct entry_stack stack; +}; + struct x86_io_bitmap { u64 prev_sequence; unsigned int prev_max; @@ -20620,6 +19437,2172 @@ struct tss_struct { long: 64; }; +struct debug_store_buffers { + char bts_buffer[65536]; + char pebs_buffer[65536]; +}; + +struct cea_exception_stacks { + char DF_stack_guard[4096]; + char DF_stack[8192]; + char NMI_stack_guard[4096]; + char NMI_stack[8192]; + char DB_stack_guard[4096]; + char DB_stack[8192]; + char MCE_stack_guard[4096]; + char MCE_stack[8192]; + char VC_stack_guard[4096]; + char VC_stack[8192]; + char VC2_stack_guard[4096]; + char VC2_stack[8192]; + char IST_top_guard[4096]; +}; + +struct cpu_entry_area { + char gdt[4096]; + struct entry_stack_page entry_stack_page; + struct tss_struct tss; + struct cea_exception_stacks estacks; + struct debug_store cpu_debug_store; + struct debug_store_buffers cpu_debug_buffers; +}; + +struct pebs_basic { + u64 format_size; + u64 ip; + u64 applicable_counters; + u64 tsc; +}; + +struct pebs_meminfo { + u64 address; + u64 aux; + u64 latency; + u64 tsx_tuning; +}; + +struct pebs_gprs { + u64 flags; + u64 ip; + u64 ax; + u64 cx; + u64 dx; + u64 bx; + u64 sp; + u64 bp; + u64 si; + u64 di; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; +}; + +struct pebs_xmm { + u64 xmm[32]; +}; + +struct x86_perf_regs { + struct pt_regs regs; + u64 *xmm_regs; +}; + +enum { + PERF_TXN_ELISION = 1, + PERF_TXN_TRANSACTION = 2, + PERF_TXN_SYNC = 4, + PERF_TXN_ASYNC = 8, + PERF_TXN_RETRY = 16, + PERF_TXN_CONFLICT = 32, + PERF_TXN_CAPACITY_WRITE = 64, + PERF_TXN_CAPACITY_READ = 128, + PERF_TXN_MAX = 256, + PERF_TXN_ABORT_MASK = 0, + PERF_TXN_ABORT_SHIFT = 32, +}; + +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; +}; + +union intel_x86_pebs_dse { + u64 val; + struct { + unsigned int ld_dse: 4; + unsigned int ld_stlb_miss: 1; + unsigned int ld_locked: 1; + unsigned int ld_data_blk: 1; + unsigned int ld_addr_blk: 1; + unsigned int ld_reserved: 24; + }; + struct { + unsigned int st_l1d_hit: 1; + unsigned int st_reserved1: 3; + unsigned int st_stlb_miss: 1; + unsigned int st_locked: 1; + unsigned int st_reserved2: 26; + }; + struct { + unsigned int st_lat_dse: 4; + unsigned int st_lat_stlb_miss: 1; + unsigned int st_lat_locked: 1; + unsigned int ld_reserved3: 26; + }; +}; + +struct pebs_record_core { + u64 flags; + u64 ip; + u64 ax; + u64 bx; + u64 cx; + u64 dx; + u64 si; + u64 di; + u64 bp; + u64 sp; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; +}; + +struct pebs_record_nhm { + u64 flags; + u64 ip; + u64 ax; + u64 bx; + u64 cx; + u64 dx; + u64 si; + u64 di; + u64 bp; + u64 sp; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; + u64 status; + u64 dla; + u64 dse; + u64 lat; +}; + +union hsw_tsx_tuning { + struct { + u32 cycles_last_block: 32; + u32 hle_abort: 1; + u32 rtm_abort: 1; + u32 instruction_abort: 1; + u32 non_instruction_abort: 1; + u32 retry: 1; + u32 data_conflict: 1; + u32 capacity_writes: 1; + u32 capacity_reads: 1; + }; + u64 value; +}; + +struct pebs_record_skl { + u64 flags; + u64 ip; + u64 ax; + u64 bx; + u64 cx; + u64 dx; + u64 si; + u64 di; + u64 bp; + u64 sp; + u64 r8; + u64 r9; + u64 r10; + u64 r11; + u64 r12; + u64 r13; + u64 r14; + u64 r15; + u64 status; + u64 dla; + u64 dse; + u64 lat; + u64 real_ip; + u64 tsx_tuning; + u64 tsc; +}; + +struct bts_record { + u64 from; + u64 to; + u64 flags; +}; + +enum xfeature { + XFEATURE_FP = 0, + XFEATURE_SSE = 1, + XFEATURE_YMM = 2, + XFEATURE_BNDREGS = 3, + XFEATURE_BNDCSR = 4, + XFEATURE_OPMASK = 5, + XFEATURE_ZMM_Hi256 = 6, + XFEATURE_Hi16_ZMM = 7, + XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8, + XFEATURE_PKRU = 9, + XFEATURE_PASID = 10, + XFEATURE_RSRVD_COMP_11 = 11, + XFEATURE_RSRVD_COMP_12 = 12, + XFEATURE_RSRVD_COMP_13 = 13, + XFEATURE_RSRVD_COMP_14 = 14, + XFEATURE_LBR = 15, + XFEATURE_RSRVD_COMP_16 = 16, + XFEATURE_XTILE_CFG = 17, + XFEATURE_XTILE_DATA = 18, + XFEATURE_MAX = 19, +}; + +struct arch_lbr_state { + u64 lbr_ctl; + u64 lbr_depth; + u64 ler_from; + u64 ler_to; + u64 ler_info; + struct lbr_entry entries[0]; +}; + +union cpuid28_eax { + struct { + unsigned int lbr_depth_mask: 8; + unsigned int reserved: 22; + unsigned int lbr_deep_c_reset: 1; + unsigned int lbr_lip: 1; + } split; + unsigned int full; +}; + +union cpuid28_ebx { + struct { + unsigned int lbr_cpl: 1; + unsigned int lbr_filter: 1; + unsigned int lbr_call_stack: 1; + } split; + unsigned int full; +}; + +union cpuid28_ecx { + struct { + unsigned int lbr_mispred: 1; + unsigned int lbr_timed_lbr: 1; + unsigned int lbr_br_type: 1; + } split; + unsigned int full; +}; + +struct x86_pmu_lbr { + unsigned int nr; + unsigned int from; + unsigned int to; + unsigned int info; +}; + +struct x86_perf_task_context_opt { + int lbr_callstack_users; + int lbr_stack_state; + int log_id; +}; + +struct x86_perf_task_context { + u64 lbr_sel; + int tos; + int valid_lbrs; + struct x86_perf_task_context_opt opt; + struct lbr_entry lbr[32]; +}; + +struct x86_perf_task_context_arch_lbr { + struct x86_perf_task_context_opt opt; + struct lbr_entry entries[0]; +}; + +struct x86_perf_task_context_arch_lbr_xsave { + struct x86_perf_task_context_opt opt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct xregs_state xsave; + struct { + struct fxregs_state i387; + struct xstate_header header; + struct arch_lbr_state lbr; + long: 64; + long: 64; + long: 64; + }; + }; +}; + +enum { + LBR_NONE = 0, + LBR_VALID = 1, +}; + +enum { + ARCH_LBR_BR_TYPE_JCC = 0, + ARCH_LBR_BR_TYPE_NEAR_IND_JMP = 1, + ARCH_LBR_BR_TYPE_NEAR_REL_JMP = 2, + ARCH_LBR_BR_TYPE_NEAR_IND_CALL = 3, + ARCH_LBR_BR_TYPE_NEAR_REL_CALL = 4, + ARCH_LBR_BR_TYPE_NEAR_RET = 5, + ARCH_LBR_BR_TYPE_KNOWN_MAX = 5, + ARCH_LBR_BR_TYPE_MAP_MAX = 16, +}; + +enum P4_EVENTS { + P4_EVENT_TC_DELIVER_MODE = 0, + P4_EVENT_BPU_FETCH_REQUEST = 1, + P4_EVENT_ITLB_REFERENCE = 2, + P4_EVENT_MEMORY_CANCEL = 3, + P4_EVENT_MEMORY_COMPLETE = 4, + P4_EVENT_LOAD_PORT_REPLAY = 5, + P4_EVENT_STORE_PORT_REPLAY = 6, + P4_EVENT_MOB_LOAD_REPLAY = 7, + P4_EVENT_PAGE_WALK_TYPE = 8, + P4_EVENT_BSQ_CACHE_REFERENCE = 9, + P4_EVENT_IOQ_ALLOCATION = 10, + P4_EVENT_IOQ_ACTIVE_ENTRIES = 11, + P4_EVENT_FSB_DATA_ACTIVITY = 12, + P4_EVENT_BSQ_ALLOCATION = 13, + P4_EVENT_BSQ_ACTIVE_ENTRIES = 14, + P4_EVENT_SSE_INPUT_ASSIST = 15, + P4_EVENT_PACKED_SP_UOP = 16, + P4_EVENT_PACKED_DP_UOP = 17, + P4_EVENT_SCALAR_SP_UOP = 18, + P4_EVENT_SCALAR_DP_UOP = 19, + P4_EVENT_64BIT_MMX_UOP = 20, + P4_EVENT_128BIT_MMX_UOP = 21, + P4_EVENT_X87_FP_UOP = 22, + P4_EVENT_TC_MISC = 23, + P4_EVENT_GLOBAL_POWER_EVENTS = 24, + P4_EVENT_TC_MS_XFER = 25, + P4_EVENT_UOP_QUEUE_WRITES = 26, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE = 27, + P4_EVENT_RETIRED_BRANCH_TYPE = 28, + P4_EVENT_RESOURCE_STALL = 29, + P4_EVENT_WC_BUFFER = 30, + P4_EVENT_B2B_CYCLES = 31, + P4_EVENT_BNR = 32, + P4_EVENT_SNOOP = 33, + P4_EVENT_RESPONSE = 34, + P4_EVENT_FRONT_END_EVENT = 35, + P4_EVENT_EXECUTION_EVENT = 36, + P4_EVENT_REPLAY_EVENT = 37, + P4_EVENT_INSTR_RETIRED = 38, + P4_EVENT_UOPS_RETIRED = 39, + P4_EVENT_UOP_TYPE = 40, + P4_EVENT_BRANCH_RETIRED = 41, + P4_EVENT_MISPRED_BRANCH_RETIRED = 42, + P4_EVENT_X87_ASSIST = 43, + P4_EVENT_MACHINE_CLEAR = 44, + P4_EVENT_INSTR_COMPLETED = 45, +}; + +enum P4_EVENT_OPCODES { + P4_EVENT_TC_DELIVER_MODE_OPCODE = 257, + P4_EVENT_BPU_FETCH_REQUEST_OPCODE = 768, + P4_EVENT_ITLB_REFERENCE_OPCODE = 6147, + P4_EVENT_MEMORY_CANCEL_OPCODE = 517, + P4_EVENT_MEMORY_COMPLETE_OPCODE = 2050, + P4_EVENT_LOAD_PORT_REPLAY_OPCODE = 1026, + P4_EVENT_STORE_PORT_REPLAY_OPCODE = 1282, + P4_EVENT_MOB_LOAD_REPLAY_OPCODE = 770, + P4_EVENT_PAGE_WALK_TYPE_OPCODE = 260, + P4_EVENT_BSQ_CACHE_REFERENCE_OPCODE = 3079, + P4_EVENT_IOQ_ALLOCATION_OPCODE = 774, + P4_EVENT_IOQ_ACTIVE_ENTRIES_OPCODE = 6662, + P4_EVENT_FSB_DATA_ACTIVITY_OPCODE = 5894, + P4_EVENT_BSQ_ALLOCATION_OPCODE = 1287, + P4_EVENT_BSQ_ACTIVE_ENTRIES_OPCODE = 1543, + P4_EVENT_SSE_INPUT_ASSIST_OPCODE = 13313, + P4_EVENT_PACKED_SP_UOP_OPCODE = 2049, + P4_EVENT_PACKED_DP_UOP_OPCODE = 3073, + P4_EVENT_SCALAR_SP_UOP_OPCODE = 2561, + P4_EVENT_SCALAR_DP_UOP_OPCODE = 3585, + P4_EVENT_64BIT_MMX_UOP_OPCODE = 513, + P4_EVENT_128BIT_MMX_UOP_OPCODE = 6657, + P4_EVENT_X87_FP_UOP_OPCODE = 1025, + P4_EVENT_TC_MISC_OPCODE = 1537, + P4_EVENT_GLOBAL_POWER_EVENTS_OPCODE = 4870, + P4_EVENT_TC_MS_XFER_OPCODE = 1280, + P4_EVENT_UOP_QUEUE_WRITES_OPCODE = 2304, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE_OPCODE = 1282, + P4_EVENT_RETIRED_BRANCH_TYPE_OPCODE = 1026, + P4_EVENT_RESOURCE_STALL_OPCODE = 257, + P4_EVENT_WC_BUFFER_OPCODE = 1285, + P4_EVENT_B2B_CYCLES_OPCODE = 5635, + P4_EVENT_BNR_OPCODE = 2051, + P4_EVENT_SNOOP_OPCODE = 1539, + P4_EVENT_RESPONSE_OPCODE = 1027, + P4_EVENT_FRONT_END_EVENT_OPCODE = 2053, + P4_EVENT_EXECUTION_EVENT_OPCODE = 3077, + P4_EVENT_REPLAY_EVENT_OPCODE = 2309, + P4_EVENT_INSTR_RETIRED_OPCODE = 516, + P4_EVENT_UOPS_RETIRED_OPCODE = 260, + P4_EVENT_UOP_TYPE_OPCODE = 514, + P4_EVENT_BRANCH_RETIRED_OPCODE = 1541, + P4_EVENT_MISPRED_BRANCH_RETIRED_OPCODE = 772, + P4_EVENT_X87_ASSIST_OPCODE = 773, + P4_EVENT_MACHINE_CLEAR_OPCODE = 517, + P4_EVENT_INSTR_COMPLETED_OPCODE = 1796, +}; + +enum P4_ESCR_EMASKS { + P4_EVENT_TC_DELIVER_MODE__DD = 512, + P4_EVENT_TC_DELIVER_MODE__DB = 1024, + P4_EVENT_TC_DELIVER_MODE__DI = 2048, + P4_EVENT_TC_DELIVER_MODE__BD = 4096, + P4_EVENT_TC_DELIVER_MODE__BB = 8192, + P4_EVENT_TC_DELIVER_MODE__BI = 16384, + P4_EVENT_TC_DELIVER_MODE__ID = 32768, + P4_EVENT_BPU_FETCH_REQUEST__TCMISS = 512, + P4_EVENT_ITLB_REFERENCE__HIT = 512, + P4_EVENT_ITLB_REFERENCE__MISS = 1024, + P4_EVENT_ITLB_REFERENCE__HIT_UK = 2048, + P4_EVENT_MEMORY_CANCEL__ST_RB_FULL = 2048, + P4_EVENT_MEMORY_CANCEL__64K_CONF = 4096, + P4_EVENT_MEMORY_COMPLETE__LSC = 512, + P4_EVENT_MEMORY_COMPLETE__SSC = 1024, + P4_EVENT_LOAD_PORT_REPLAY__SPLIT_LD = 1024, + P4_EVENT_STORE_PORT_REPLAY__SPLIT_ST = 1024, + P4_EVENT_MOB_LOAD_REPLAY__NO_STA = 1024, + P4_EVENT_MOB_LOAD_REPLAY__NO_STD = 4096, + P4_EVENT_MOB_LOAD_REPLAY__PARTIAL_DATA = 8192, + P4_EVENT_MOB_LOAD_REPLAY__UNALGN_ADDR = 16384, + P4_EVENT_PAGE_WALK_TYPE__DTMISS = 512, + P4_EVENT_PAGE_WALK_TYPE__ITMISS = 1024, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITS = 512, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITE = 1024, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_HITM = 2048, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITS = 4096, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITE = 8192, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_HITM = 16384, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_2ndL_MISS = 131072, + P4_EVENT_BSQ_CACHE_REFERENCE__RD_3rdL_MISS = 262144, + P4_EVENT_BSQ_CACHE_REFERENCE__WR_2ndL_MISS = 524288, + P4_EVENT_IOQ_ALLOCATION__DEFAULT = 512, + P4_EVENT_IOQ_ALLOCATION__ALL_READ = 16384, + P4_EVENT_IOQ_ALLOCATION__ALL_WRITE = 32768, + P4_EVENT_IOQ_ALLOCATION__MEM_UC = 65536, + P4_EVENT_IOQ_ALLOCATION__MEM_WC = 131072, + P4_EVENT_IOQ_ALLOCATION__MEM_WT = 262144, + P4_EVENT_IOQ_ALLOCATION__MEM_WP = 524288, + P4_EVENT_IOQ_ALLOCATION__MEM_WB = 1048576, + P4_EVENT_IOQ_ALLOCATION__OWN = 4194304, + P4_EVENT_IOQ_ALLOCATION__OTHER = 8388608, + P4_EVENT_IOQ_ALLOCATION__PREFETCH = 16777216, + P4_EVENT_IOQ_ACTIVE_ENTRIES__DEFAULT = 512, + P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_READ = 16384, + P4_EVENT_IOQ_ACTIVE_ENTRIES__ALL_WRITE = 32768, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_UC = 65536, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WC = 131072, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WT = 262144, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WP = 524288, + P4_EVENT_IOQ_ACTIVE_ENTRIES__MEM_WB = 1048576, + P4_EVENT_IOQ_ACTIVE_ENTRIES__OWN = 4194304, + P4_EVENT_IOQ_ACTIVE_ENTRIES__OTHER = 8388608, + P4_EVENT_IOQ_ACTIVE_ENTRIES__PREFETCH = 16777216, + P4_EVENT_FSB_DATA_ACTIVITY__DRDY_DRV = 512, + P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OWN = 1024, + P4_EVENT_FSB_DATA_ACTIVITY__DRDY_OTHER = 2048, + P4_EVENT_FSB_DATA_ACTIVITY__DBSY_DRV = 4096, + P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OWN = 8192, + P4_EVENT_FSB_DATA_ACTIVITY__DBSY_OTHER = 16384, + P4_EVENT_BSQ_ALLOCATION__REQ_TYPE0 = 512, + P4_EVENT_BSQ_ALLOCATION__REQ_TYPE1 = 1024, + P4_EVENT_BSQ_ALLOCATION__REQ_LEN0 = 2048, + P4_EVENT_BSQ_ALLOCATION__REQ_LEN1 = 4096, + P4_EVENT_BSQ_ALLOCATION__REQ_IO_TYPE = 16384, + P4_EVENT_BSQ_ALLOCATION__REQ_LOCK_TYPE = 32768, + P4_EVENT_BSQ_ALLOCATION__REQ_CACHE_TYPE = 65536, + P4_EVENT_BSQ_ALLOCATION__REQ_SPLIT_TYPE = 131072, + P4_EVENT_BSQ_ALLOCATION__REQ_DEM_TYPE = 262144, + P4_EVENT_BSQ_ALLOCATION__REQ_ORD_TYPE = 524288, + P4_EVENT_BSQ_ALLOCATION__MEM_TYPE0 = 1048576, + P4_EVENT_BSQ_ALLOCATION__MEM_TYPE1 = 2097152, + P4_EVENT_BSQ_ALLOCATION__MEM_TYPE2 = 4194304, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE0 = 512, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_TYPE1 = 1024, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN0 = 2048, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LEN1 = 4096, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_IO_TYPE = 16384, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_LOCK_TYPE = 32768, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_CACHE_TYPE = 65536, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_SPLIT_TYPE = 131072, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_DEM_TYPE = 262144, + P4_EVENT_BSQ_ACTIVE_ENTRIES__REQ_ORD_TYPE = 524288, + P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE0 = 1048576, + P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE1 = 2097152, + P4_EVENT_BSQ_ACTIVE_ENTRIES__MEM_TYPE2 = 4194304, + P4_EVENT_SSE_INPUT_ASSIST__ALL = 16777216, + P4_EVENT_PACKED_SP_UOP__ALL = 16777216, + P4_EVENT_PACKED_DP_UOP__ALL = 16777216, + P4_EVENT_SCALAR_SP_UOP__ALL = 16777216, + P4_EVENT_SCALAR_DP_UOP__ALL = 16777216, + P4_EVENT_64BIT_MMX_UOP__ALL = 16777216, + P4_EVENT_128BIT_MMX_UOP__ALL = 16777216, + P4_EVENT_X87_FP_UOP__ALL = 16777216, + P4_EVENT_TC_MISC__FLUSH = 8192, + P4_EVENT_GLOBAL_POWER_EVENTS__RUNNING = 512, + P4_EVENT_TC_MS_XFER__CISC = 512, + P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_BUILD = 512, + P4_EVENT_UOP_QUEUE_WRITES__FROM_TC_DELIVER = 1024, + P4_EVENT_UOP_QUEUE_WRITES__FROM_ROM = 2048, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CONDITIONAL = 1024, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__CALL = 2048, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__RETURN = 4096, + P4_EVENT_RETIRED_MISPRED_BRANCH_TYPE__INDIRECT = 8192, + P4_EVENT_RETIRED_BRANCH_TYPE__CONDITIONAL = 1024, + P4_EVENT_RETIRED_BRANCH_TYPE__CALL = 2048, + P4_EVENT_RETIRED_BRANCH_TYPE__RETURN = 4096, + P4_EVENT_RETIRED_BRANCH_TYPE__INDIRECT = 8192, + P4_EVENT_RESOURCE_STALL__SBFULL = 16384, + P4_EVENT_WC_BUFFER__WCB_EVICTS = 512, + P4_EVENT_WC_BUFFER__WCB_FULL_EVICTS = 1024, + P4_EVENT_FRONT_END_EVENT__NBOGUS = 512, + P4_EVENT_FRONT_END_EVENT__BOGUS = 1024, + P4_EVENT_EXECUTION_EVENT__NBOGUS0 = 512, + P4_EVENT_EXECUTION_EVENT__NBOGUS1 = 1024, + P4_EVENT_EXECUTION_EVENT__NBOGUS2 = 2048, + P4_EVENT_EXECUTION_EVENT__NBOGUS3 = 4096, + P4_EVENT_EXECUTION_EVENT__BOGUS0 = 8192, + P4_EVENT_EXECUTION_EVENT__BOGUS1 = 16384, + P4_EVENT_EXECUTION_EVENT__BOGUS2 = 32768, + P4_EVENT_EXECUTION_EVENT__BOGUS3 = 65536, + P4_EVENT_REPLAY_EVENT__NBOGUS = 512, + P4_EVENT_REPLAY_EVENT__BOGUS = 1024, + P4_EVENT_INSTR_RETIRED__NBOGUSNTAG = 512, + P4_EVENT_INSTR_RETIRED__NBOGUSTAG = 1024, + P4_EVENT_INSTR_RETIRED__BOGUSNTAG = 2048, + P4_EVENT_INSTR_RETIRED__BOGUSTAG = 4096, + P4_EVENT_UOPS_RETIRED__NBOGUS = 512, + P4_EVENT_UOPS_RETIRED__BOGUS = 1024, + P4_EVENT_UOP_TYPE__TAGLOADS = 1024, + P4_EVENT_UOP_TYPE__TAGSTORES = 2048, + P4_EVENT_BRANCH_RETIRED__MMNP = 512, + P4_EVENT_BRANCH_RETIRED__MMNM = 1024, + P4_EVENT_BRANCH_RETIRED__MMTP = 2048, + P4_EVENT_BRANCH_RETIRED__MMTM = 4096, + P4_EVENT_MISPRED_BRANCH_RETIRED__NBOGUS = 512, + P4_EVENT_X87_ASSIST__FPSU = 512, + P4_EVENT_X87_ASSIST__FPSO = 1024, + P4_EVENT_X87_ASSIST__POAO = 2048, + P4_EVENT_X87_ASSIST__POAU = 4096, + P4_EVENT_X87_ASSIST__PREA = 8192, + P4_EVENT_MACHINE_CLEAR__CLEAR = 512, + P4_EVENT_MACHINE_CLEAR__MOCLEAR = 1024, + P4_EVENT_MACHINE_CLEAR__SMCLEAR = 2048, + P4_EVENT_INSTR_COMPLETED__NBOGUS = 512, + P4_EVENT_INSTR_COMPLETED__BOGUS = 1024, +}; + +enum P4_PEBS_METRIC { + P4_PEBS_METRIC__none = 0, + P4_PEBS_METRIC__1stl_cache_load_miss_retired = 1, + P4_PEBS_METRIC__2ndl_cache_load_miss_retired = 2, + P4_PEBS_METRIC__dtlb_load_miss_retired = 3, + P4_PEBS_METRIC__dtlb_store_miss_retired = 4, + P4_PEBS_METRIC__dtlb_all_miss_retired = 5, + P4_PEBS_METRIC__tagged_mispred_branch = 6, + P4_PEBS_METRIC__mob_load_replay_retired = 7, + P4_PEBS_METRIC__split_load_retired = 8, + P4_PEBS_METRIC__split_store_retired = 9, + P4_PEBS_METRIC__max = 10, +}; + +struct p4_event_bind { + unsigned int opcode; + unsigned int escr_msr[2]; + unsigned int escr_emask; + unsigned int shared; + char cntr[6]; +}; + +struct p4_pebs_bind { + unsigned int metric_pebs; + unsigned int metric_vert; +}; + +struct p4_event_alias { + u64 original; + u64 alternative; +}; + +enum cpuid_regs_idx { + CPUID_EAX = 0, + CPUID_EBX = 1, + CPUID_ECX = 2, + CPUID_EDX = 3, +}; + +struct dev_ext_attribute { + struct device_attribute attr; + void *var; +}; + +enum pt_capabilities { + PT_CAP_max_subleaf = 0, + PT_CAP_cr3_filtering = 1, + PT_CAP_psb_cyc = 2, + PT_CAP_ip_filtering = 3, + PT_CAP_mtc = 4, + PT_CAP_ptwrite = 5, + PT_CAP_power_event_trace = 6, + PT_CAP_topa_output = 7, + PT_CAP_topa_multiple_entries = 8, + PT_CAP_single_range_output = 9, + PT_CAP_output_subsys = 10, + PT_CAP_payloads_lip = 11, + PT_CAP_num_address_ranges = 12, + PT_CAP_mtc_periods = 13, + PT_CAP_cycle_thresholds = 14, + PT_CAP_psb_periods = 15, +}; + +enum perf_addr_filter_action_t { + PERF_ADDR_FILTER_ACTION_STOP = 0, + PERF_ADDR_FILTER_ACTION_START = 1, + PERF_ADDR_FILTER_ACTION_FILTER = 2, +}; + +struct perf_addr_filter { + struct list_head entry; + struct path path; + long unsigned int offset; + long unsigned int size; + enum perf_addr_filter_action_t action; +}; + +struct topa_entry { + u64 end: 1; + u64 rsvd0: 1; + u64 intr: 1; + u64 rsvd1: 1; + u64 stop: 1; + u64 rsvd2: 1; + u64 size: 4; + u64 rsvd3: 2; + u64 base: 40; + u64 rsvd4: 12; +}; + +struct pt_pmu { + struct pmu pmu; + u32 caps[8]; + bool vmx; + bool branch_en_always_on; + long unsigned int max_nonturbo_ratio; + unsigned int tsc_art_num; + unsigned int tsc_art_den; +}; + +struct topa; + +struct pt_buffer { + struct list_head tables; + struct topa *first; + struct topa *last; + struct topa *cur; + unsigned int cur_idx; + size_t output_off; + long unsigned int nr_pages; + local_t data_size; + local64_t head; + bool snapshot; + bool single; + long int stop_pos; + long int intr_pos; + struct topa_entry *stop_te; + struct topa_entry *intr_te; + void **data_pages; +}; + +struct topa { + struct list_head list; + u64 offset; + size_t size; + int last; + unsigned int z_count; +}; + +struct pt_filter { + long unsigned int msr_a; + long unsigned int msr_b; + long unsigned int config; +}; + +struct pt_filters { + struct pt_filter filter[4]; + unsigned int nr_filters; +}; + +struct pt { + struct perf_output_handle handle; + struct pt_filters filters; + int handle_nmi; + int vmx_on; + u64 output_base; + u64 output_mask; +}; + +struct pt_cap_desc { + const char *name; + u32 leaf; + u8 reg; + u32 mask; +}; + +struct pt_address_range { + long unsigned int msr_a; + long unsigned int msr_b; + unsigned int reg_off; +}; + +struct topa_page { + struct topa_entry table[507]; + struct topa topa; +}; + +typedef void (*exitcall_t)(void); + +struct x86_cpu_id { + __u16 vendor; + __u16 family; + __u16 model; + __u16 steppings; + __u16 feature; + __u16 flags; + kernel_ulong_t driver_data; +}; + +enum hrtimer_mode { + HRTIMER_MODE_ABS = 0, + HRTIMER_MODE_REL = 1, + HRTIMER_MODE_PINNED = 2, + HRTIMER_MODE_SOFT = 4, + HRTIMER_MODE_HARD = 8, + HRTIMER_MODE_ABS_PINNED = 2, + HRTIMER_MODE_REL_PINNED = 3, + HRTIMER_MODE_ABS_SOFT = 4, + HRTIMER_MODE_REL_SOFT = 5, + HRTIMER_MODE_ABS_PINNED_SOFT = 6, + HRTIMER_MODE_REL_PINNED_SOFT = 7, + HRTIMER_MODE_ABS_HARD = 8, + HRTIMER_MODE_REL_HARD = 9, + HRTIMER_MODE_ABS_PINNED_HARD = 10, + HRTIMER_MODE_REL_PINNED_HARD = 11, +}; + +struct acpi_device; + +struct pci_sysdata { + int domain; + int node; + struct acpi_device *companion; + void *iommu; + void *fwnode; + struct pci_dev *vmd_dev; +}; + +struct pci_extra_dev { + struct pci_dev *dev[4]; +}; + +struct intel_uncore_pmu; + +struct intel_uncore_ops; + +struct uncore_event_desc; + +struct freerunning_counters; + +struct intel_uncore_topology; + +struct intel_uncore_type { + const char *name; + int num_counters; + int num_boxes; + int perf_ctr_bits; + int fixed_ctr_bits; + int num_freerunning_types; + int type_id; + unsigned int perf_ctr; + unsigned int event_ctl; + unsigned int event_mask; + unsigned int event_mask_ext; + unsigned int fixed_ctr; + unsigned int fixed_ctl; + unsigned int box_ctl; + u64 *box_ctls; + union { + unsigned int msr_offset; + unsigned int mmio_offset; + }; + unsigned int mmio_map_size; + unsigned int num_shared_regs: 8; + unsigned int single_fixed: 1; + unsigned int pair_ctr_ctl: 1; + union { + unsigned int *msr_offsets; + unsigned int *pci_offsets; + unsigned int *mmio_offsets; + }; + unsigned int *box_ids; + struct event_constraint unconstrainted; + struct event_constraint *constraints; + struct intel_uncore_pmu *pmus; + struct intel_uncore_ops *ops; + struct uncore_event_desc *event_descs; + struct freerunning_counters *freerunning; + const struct attribute_group *attr_groups[4]; + const struct attribute_group **attr_update; + struct pmu *pmu; + struct intel_uncore_topology *topology; + int (*get_topology)(struct intel_uncore_type *); + int (*set_mapping)(struct intel_uncore_type *); + void (*cleanup_mapping)(struct intel_uncore_type *); +}; + +struct intel_uncore_box; + +struct intel_uncore_pmu { + struct pmu pmu; + char name[32]; + int pmu_idx; + int func_id; + bool registered; + atomic_t activeboxes; + struct intel_uncore_type *type; + struct intel_uncore_box **boxes; +}; + +struct intel_uncore_ops { + void (*init_box)(struct intel_uncore_box *); + void (*exit_box)(struct intel_uncore_box *); + void (*disable_box)(struct intel_uncore_box *); + void (*enable_box)(struct intel_uncore_box *); + void (*disable_event)(struct intel_uncore_box *, struct perf_event *); + void (*enable_event)(struct intel_uncore_box *, struct perf_event *); + u64 (*read_counter)(struct intel_uncore_box *, struct perf_event *); + int (*hw_config)(struct intel_uncore_box *, struct perf_event *); + struct event_constraint * (*get_constraint)(struct intel_uncore_box *, struct perf_event *); + void (*put_constraint)(struct intel_uncore_box *, struct perf_event *); +}; + +struct uncore_event_desc { + struct device_attribute attr; + const char *config; +}; + +struct freerunning_counters { + unsigned int counter_base; + unsigned int counter_offset; + unsigned int box_offset; + unsigned int num_counters; + unsigned int bits; + unsigned int *box_offsets; +}; + +struct intel_uncore_topology { + u64 configuration; + int segment; +}; + +struct intel_uncore_extra_reg { + raw_spinlock_t lock; + u64 config; + u64 config1; + u64 config2; + atomic_t ref; +}; + +struct intel_uncore_box { + int dieid; + int n_active; + int n_events; + int cpu; + long unsigned int flags; + atomic_t refcnt; + struct perf_event *events[10]; + struct perf_event *event_list[10]; + struct event_constraint *event_constraint[10]; + long unsigned int active_mask[1]; + u64 tags[10]; + struct pci_dev *pci_dev; + struct intel_uncore_pmu *pmu; + u64 hrtimer_duration; + struct hrtimer hrtimer; + struct list_head list; + struct list_head active_list; + void *io_addr; + struct intel_uncore_extra_reg shared_regs[0]; +}; + +struct pci2phy_map { + struct list_head list; + int segment; + int pbus_to_dieid[256]; +}; + +struct intel_uncore_init_fun { + void (*cpu_init)(void); + int (*pci_init)(void); + void (*mmio_init)(void); + bool use_discovery; +}; + +enum { + EXTRA_REG_NHMEX_M_FILTER = 0, + EXTRA_REG_NHMEX_M_DSP = 1, + EXTRA_REG_NHMEX_M_ISS = 2, + EXTRA_REG_NHMEX_M_MAP = 3, + EXTRA_REG_NHMEX_M_MSC_THR = 4, + EXTRA_REG_NHMEX_M_PGT = 5, + EXTRA_REG_NHMEX_M_PLD = 6, + EXTRA_REG_NHMEX_M_ZDP_CTL_FVC = 7, +}; + +enum { + SNB_PCI_UNCORE_IMC = 0, +}; + +enum perf_snb_uncore_imc_freerunning_types { + SNB_PCI_UNCORE_IMC_DATA_READS = 0, + SNB_PCI_UNCORE_IMC_DATA_WRITES = 1, + SNB_PCI_UNCORE_IMC_GT_REQUESTS = 2, + SNB_PCI_UNCORE_IMC_IA_REQUESTS = 3, + SNB_PCI_UNCORE_IMC_IO_REQUESTS = 4, + SNB_PCI_UNCORE_IMC_FREERUNNING_TYPE_MAX = 5, +}; + +struct imc_uncore_pci_dev { + __u32 pci_id; + struct pci_driver *driver; +}; + +enum perf_tgl_uncore_imc_freerunning_types { + TGL_MMIO_UNCORE_IMC_DATA_TOTAL = 0, + TGL_MMIO_UNCORE_IMC_DATA_READ = 1, + TGL_MMIO_UNCORE_IMC_DATA_WRITE = 2, + TGL_MMIO_UNCORE_IMC_FREERUNNING_TYPE_MAX = 3, +}; + +enum uncore_access_type { + UNCORE_ACCESS_MSR = 0, + UNCORE_ACCESS_MMIO = 1, + UNCORE_ACCESS_PCI = 2, + UNCORE_ACCESS_MAX = 3, +}; + +enum { + SNBEP_PCI_QPI_PORT0_FILTER = 0, + SNBEP_PCI_QPI_PORT1_FILTER = 1, + BDX_PCI_QPI_PORT2_FILTER = 2, +}; + +enum { + SNBEP_PCI_UNCORE_HA = 0, + SNBEP_PCI_UNCORE_IMC = 1, + SNBEP_PCI_UNCORE_QPI = 2, + SNBEP_PCI_UNCORE_R2PCIE = 3, + SNBEP_PCI_UNCORE_R3QPI = 4, +}; + +enum { + IVBEP_PCI_UNCORE_HA = 0, + IVBEP_PCI_UNCORE_IMC = 1, + IVBEP_PCI_UNCORE_IRP = 2, + IVBEP_PCI_UNCORE_QPI = 3, + IVBEP_PCI_UNCORE_R2PCIE = 4, + IVBEP_PCI_UNCORE_R3QPI = 5, +}; + +enum { + KNL_PCI_UNCORE_MC_UCLK = 0, + KNL_PCI_UNCORE_MC_DCLK = 1, + KNL_PCI_UNCORE_EDC_UCLK = 2, + KNL_PCI_UNCORE_EDC_ECLK = 3, + KNL_PCI_UNCORE_M2PCIE = 4, + KNL_PCI_UNCORE_IRP = 5, +}; + +enum { + HSWEP_PCI_UNCORE_HA = 0, + HSWEP_PCI_UNCORE_IMC = 1, + HSWEP_PCI_UNCORE_IRP = 2, + HSWEP_PCI_UNCORE_QPI = 3, + HSWEP_PCI_UNCORE_R2PCIE = 4, + HSWEP_PCI_UNCORE_R3QPI = 5, +}; + +enum { + BDX_PCI_UNCORE_HA = 0, + BDX_PCI_UNCORE_IMC = 1, + BDX_PCI_UNCORE_IRP = 2, + BDX_PCI_UNCORE_QPI = 3, + BDX_PCI_UNCORE_R2PCIE = 4, + BDX_PCI_UNCORE_R3QPI = 5, +}; + +enum perf_uncore_iio_freerunning_type_id { + SKX_IIO_MSR_IOCLK = 0, + SKX_IIO_MSR_BW = 1, + SKX_IIO_MSR_UTIL = 2, + SKX_IIO_FREERUNNING_TYPE_MAX = 3, +}; + +enum { + SKX_PCI_UNCORE_IMC = 0, + SKX_PCI_UNCORE_M2M = 1, + SKX_PCI_UNCORE_UPI = 2, + SKX_PCI_UNCORE_M2PCIE = 3, + SKX_PCI_UNCORE_M3UPI = 4, +}; + +enum { + SNR_QAT_PMON_ID = 0, + SNR_CBDMA_DMI_PMON_ID = 1, + SNR_NIS_PMON_ID = 2, + SNR_DLB_PMON_ID = 3, + SNR_PCIE_GEN3_PMON_ID = 4, +}; + +enum perf_uncore_snr_iio_freerunning_type_id { + SNR_IIO_MSR_IOCLK = 0, + SNR_IIO_MSR_BW_IN = 1, + SNR_IIO_FREERUNNING_TYPE_MAX = 2, +}; + +enum { + SNR_PCI_UNCORE_M2M = 0, + SNR_PCI_UNCORE_PCIE3 = 1, +}; + +enum perf_uncore_snr_imc_freerunning_type_id { + SNR_IMC_DCLK = 0, + SNR_IMC_DDR = 1, + SNR_IMC_FREERUNNING_TYPE_MAX = 2, +}; + +enum { + ICX_PCIE1_PMON_ID = 0, + ICX_PCIE2_PMON_ID = 1, + ICX_PCIE3_PMON_ID = 2, + ICX_PCIE4_PMON_ID = 3, + ICX_PCIE5_PMON_ID = 4, + ICX_CBDMA_DMI_PMON_ID = 5, +}; + +enum perf_uncore_icx_iio_freerunning_type_id { + ICX_IIO_MSR_IOCLK = 0, + ICX_IIO_MSR_BW_IN = 1, + ICX_IIO_FREERUNNING_TYPE_MAX = 2, +}; + +enum { + ICX_PCI_UNCORE_M2M = 0, + ICX_PCI_UNCORE_UPI = 1, + ICX_PCI_UNCORE_M3UPI = 2, +}; + +enum perf_uncore_icx_imc_freerunning_type_id { + ICX_IMC_DCLK = 0, + ICX_IMC_DDR = 1, + ICX_IMC_DDRT = 2, + ICX_IMC_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_uncore_spr_iio_freerunning_type_id { + SPR_IIO_MSR_IOCLK = 0, + SPR_IIO_MSR_BW_IN = 1, + SPR_IIO_MSR_BW_OUT = 2, + SPR_IIO_FREERUNNING_TYPE_MAX = 3, +}; + +enum perf_uncore_spr_imc_freerunning_type_id { + SPR_IMC_DCLK = 0, + SPR_IMC_PQ_CYCLES = 1, + SPR_IMC_FREERUNNING_TYPE_MAX = 2, +}; + +struct uncore_global_discovery { + union { + u64 table1; + struct { + u64 type: 8; + u64 stride: 8; + u64 max_units: 10; + u64 __reserved_1: 36; + u64 access_type: 2; + }; + }; + u64 ctl; + union { + u64 table3; + struct { + u64 status_offset: 8; + u64 num_status: 16; + u64 __reserved_2: 40; + }; + }; +}; + +struct uncore_unit_discovery { + union { + u64 table1; + struct { + u64 num_regs: 8; + u64 ctl_offset: 8; + u64 bit_width: 8; + u64 ctr_offset: 8; + u64 status_offset: 8; + u64 __reserved_1: 22; + u64 access_type: 2; + }; + }; + u64 ctl; + union { + u64 table3; + struct { + u64 box_type: 16; + u64 box_id: 16; + u64 __reserved_2: 32; + }; + }; +}; + +struct intel_uncore_discovery_type { + struct rb_node node; + enum uncore_access_type access_type; + u64 box_ctrl; + u64 *box_ctrl_die; + u16 type; + u8 num_counters; + u8 counter_width; + u8 ctl_offset; + u8 ctr_offset; + u16 num_boxes; + unsigned int *ids; + unsigned int *box_offset; +}; + +typedef s8 int8_t; + +typedef u8 uint8_t; + +typedef u64 uint64_t; + +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block *head; +}; + +enum xen_domain_type { + XEN_NATIVE = 0, + XEN_PV_DOMAIN = 1, + XEN_HVM_DOMAIN = 2, +}; + +typedef long unsigned int xen_pfn_t; + +typedef long unsigned int xen_ulong_t; + +struct arch_shared_info { + long unsigned int max_pfn; + xen_pfn_t pfn_to_mfn_frame_list_list; + long unsigned int nmi_reason; + long unsigned int p2m_cr3; + long unsigned int p2m_vaddr; + long unsigned int p2m_generation; +}; + +struct arch_vcpu_info { + long unsigned int cr2; + long unsigned int pad; +}; + +struct pvclock_wall_clock { + u32 version; + u32 sec; + u32 nsec; +}; + +struct vcpu_info { + uint8_t evtchn_upcall_pending; + uint8_t evtchn_upcall_mask; + xen_ulong_t evtchn_pending_sel; + struct arch_vcpu_info arch; + struct pvclock_vcpu_time_info time; +}; + +struct shared_info { + struct vcpu_info vcpu_info[32]; + xen_ulong_t evtchn_pending[64]; + xen_ulong_t evtchn_mask[64]; + struct pvclock_wall_clock wc; + uint32_t wc_sec_hi; + struct arch_shared_info arch; +}; + +struct start_info { + char magic[32]; + long unsigned int nr_pages; + long unsigned int shared_info; + uint32_t flags; + xen_pfn_t store_mfn; + uint32_t store_evtchn; + union { + struct { + xen_pfn_t mfn; + uint32_t evtchn; + } domU; + struct { + uint32_t info_off; + uint32_t info_size; + } dom0; + } console; + long unsigned int pt_base; + long unsigned int nr_pt_frames; + long unsigned int mfn_list; + long unsigned int mod_start; + long unsigned int mod_len; + int8_t cmd_line[1024]; + long unsigned int first_p2m_pfn; + long unsigned int nr_p2m_frames; +}; + +struct sched_shutdown { + unsigned int reason; +}; + +struct sched_pin_override { + int32_t pcpu; +}; + +struct xen_extraversion { + char extraversion[16]; +}; + +struct vcpu_register_vcpu_info { + uint64_t mfn; + uint32_t offset; + uint32_t rsvd; +}; + +struct xmaddr { + phys_addr_t maddr; +}; + +typedef struct xmaddr xmaddr_t; + +struct xpaddr { + phys_addr_t paddr; +}; + +typedef struct xpaddr xpaddr_t; + +typedef s16 int16_t; + +typedef u16 uint16_t; + +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_MAX = 2, +}; + +struct clocksource { + u64 (*read)(struct clocksource *); + u64 mask; + u32 mult; + u32 shift; + u64 max_idle_ns; + u32 maxadj; + u32 uncertainty_margin; + u64 max_cycles; + const char *name; + struct list_head list; + int rating; + enum clocksource_ids id; + enum vdso_clock_mode vdso_clock_mode; + long unsigned int flags; + int (*enable)(struct clocksource *); + void (*disable)(struct clocksource *); + void (*suspend)(struct clocksource *); + void (*resume)(struct clocksource *); + void (*mark_unstable)(struct clocksource *); + void (*tick_stable)(struct clocksource *); + struct list_head wd_list; + u64 cs_last; + u64 wd_last; + struct module *owner; +}; + +struct x86_init_mpparse { + void (*setup_ioapic_ids)(void); + void (*find_smp_config)(void); + void (*get_smp_config)(unsigned int); +}; + +struct x86_init_resources { + void (*probe_roms)(void); + void (*reserve_resources)(void); + char * (*memory_setup)(void); +}; + +struct x86_init_irqs { + void (*pre_vector_init)(void); + void (*intr_init)(void); + void (*intr_mode_select)(void); + void (*intr_mode_init)(void); + struct irq_domain * (*create_pci_msi_domain)(void); +}; + +struct x86_init_oem { + void (*arch_setup)(void); + void (*banner)(void); +}; + +struct x86_init_paging { + void (*pagetable_init)(void); +}; + +struct x86_init_timers { + void (*setup_percpu_clockev)(void); + void (*timer_init)(void); + void (*wallclock_init)(void); +}; + +struct x86_init_iommu { + int (*iommu_init)(void); +}; + +struct x86_init_pci { + int (*arch_init)(void); + int (*init)(void); + void (*init_irq)(void); + void (*fixup_irqs)(void); +}; + +struct x86_hyper_init { + void (*init_platform)(void); + void (*guest_late_init)(void); + bool (*x2apic_available)(void); + bool (*msi_ext_dest_id)(void); + void (*init_mem_mapping)(void); + void (*init_after_bootmem)(void); +}; + +struct x86_init_acpi { + void (*set_root_pointer)(u64); + u64 (*get_root_pointer)(void); + void (*reduced_hw_early_init)(void); +}; + +struct x86_init_ops { + struct x86_init_resources resources; + struct x86_init_mpparse mpparse; + struct x86_init_irqs irqs; + struct x86_init_oem oem; + struct x86_init_paging paging; + struct x86_init_timers timers; + struct x86_init_iommu iommu; + struct x86_init_pci pci; + struct x86_hyper_init hyper; + struct x86_init_acpi acpi; +}; + +struct x86_cpuinit_ops { + void (*setup_percpu_clockev)(void); + void (*early_percpu_clock_init)(void); + void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); +}; + +enum clock_event_state { + CLOCK_EVT_STATE_DETACHED = 0, + CLOCK_EVT_STATE_SHUTDOWN = 1, + CLOCK_EVT_STATE_PERIODIC = 2, + CLOCK_EVT_STATE_ONESHOT = 3, + CLOCK_EVT_STATE_ONESHOT_STOPPED = 4, +}; + +struct clock_event_device { + void (*event_handler)(struct clock_event_device *); + int (*set_next_event)(long unsigned int, struct clock_event_device *); + int (*set_next_ktime)(ktime_t, struct clock_event_device *); + ktime_t next_event; + u64 max_delta_ns; + u64 min_delta_ns; + u32 mult; + u32 shift; + enum clock_event_state state_use_accessors; + unsigned int features; + long unsigned int retries; + int (*set_state_periodic)(struct clock_event_device *); + int (*set_state_oneshot)(struct clock_event_device *); + int (*set_state_oneshot_stopped)(struct clock_event_device *); + int (*set_state_shutdown)(struct clock_event_device *); + int (*tick_resume)(struct clock_event_device *); + void (*broadcast)(const struct cpumask *); + void (*suspend)(struct clock_event_device *); + void (*resume)(struct clock_event_device *); + long unsigned int min_delta_ticks; + long unsigned int max_delta_ticks; + const char *name; + int rating; + int irq; + int bound_on; + const struct cpumask *cpumask; + struct list_head list; + struct module *owner; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tk_read_base { + struct clocksource *clock; + u64 mask; + u64 cycle_last; + u32 mult; + u32 shift; + u64 xtime_nsec; + ktime_t base; + u64 base_real; +}; + +struct timekeeper { + struct tk_read_base tkr_mono; + struct tk_read_base tkr_raw; + u64 xtime_sec; + long unsigned int ktime_sec; + struct timespec64 wall_to_monotonic; + ktime_t offs_real; + ktime_t offs_boot; + ktime_t offs_tai; + s32 tai_offset; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; + ktime_t next_leap_ktime; + u64 raw_sec; + struct timespec64 monotonic_to_boot; + u64 cycle_interval; + u64 xtime_interval; + s64 xtime_remainder; + u64 raw_interval; + u64 ntp_tick; + s64 ntp_error; + u32 ntp_error_shift; + u32 ntp_err_mult; + u32 skip_second_overflow; +}; + +typedef unsigned char *__guest_handle_uchar; + +typedef char *__guest_handle_char; + +typedef void *__guest_handle_void; + +typedef uint64_t *__guest_handle_uint64_t; + +typedef uint32_t *__guest_handle_uint32_t; + +struct vcpu_time_info { + uint32_t version; + uint32_t pad0; + uint64_t tsc_timestamp; + uint64_t system_time; + uint32_t tsc_to_system_mul; + int8_t tsc_shift; + int8_t pad1[3]; +}; + +struct dom0_vga_console_info { + uint8_t video_type; + union { + struct { + uint16_t font_height; + uint16_t cursor_x; + uint16_t cursor_y; + uint16_t rows; + uint16_t columns; + } text_mode_3; + struct { + uint16_t width; + uint16_t height; + uint16_t bytes_per_line; + uint16_t bits_per_pixel; + uint32_t lfb_base; + uint32_t lfb_size; + uint8_t red_pos; + uint8_t red_size; + uint8_t green_pos; + uint8_t green_size; + uint8_t blue_pos; + uint8_t blue_size; + uint8_t rsvd_pos; + uint8_t rsvd_size; + uint32_t gbl_caps; + uint16_t mode_attrs; + } vesa_lfb; + } u; +}; + +struct xenpf_settime32 { + uint32_t secs; + uint32_t nsecs; + uint64_t system_time; +}; + +struct xenpf_settime64 { + uint64_t secs; + uint32_t nsecs; + uint32_t mbz; + uint64_t system_time; +}; + +struct xenpf_add_memtype { + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; + uint32_t handle; + uint32_t reg; +}; + +struct xenpf_del_memtype { + uint32_t handle; + uint32_t reg; +}; + +struct xenpf_read_memtype { + uint32_t reg; + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; +}; + +struct xenpf_microcode_update { + __guest_handle_void data; + uint32_t length; +}; + +struct xenpf_platform_quirk { + uint32_t quirk_id; +}; + +struct xenpf_efi_time { + uint16_t year; + uint8_t month; + uint8_t day; + uint8_t hour; + uint8_t min; + uint8_t sec; + uint32_t ns; + int16_t tz; + uint8_t daylight; +}; + +struct xenpf_efi_guid { + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; +}; + +struct xenpf_efi_runtime_call { + uint32_t function; + uint32_t misc; + xen_ulong_t status; + union { + struct { + struct xenpf_efi_time time; + uint32_t resolution; + uint32_t accuracy; + } get_time; + struct xenpf_efi_time set_time; + struct xenpf_efi_time get_wakeup_time; + struct xenpf_efi_time set_wakeup_time; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } get_variable; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } set_variable; + struct { + xen_ulong_t size; + __guest_handle_void name; + struct xenpf_efi_guid vendor_guid; + } get_next_variable_name; + struct { + uint32_t attr; + uint64_t max_store_size; + uint64_t remain_store_size; + uint64_t max_size; + } query_variable_info; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t max_capsule_size; + uint32_t reset_type; + } query_capsule_capabilities; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t sg_list; + } update_capsule; + } u; +}; + +union xenpf_efi_info { + uint32_t version; + struct { + uint64_t addr; + uint32_t nent; + } cfg; + struct { + uint32_t revision; + uint32_t bufsz; + __guest_handle_void name; + } vendor; + struct { + uint64_t addr; + uint64_t size; + uint64_t attr; + uint32_t type; + } mem; +}; + +struct xenpf_firmware_info { + uint32_t type; + uint32_t index; + union { + struct { + uint8_t device; + uint8_t version; + uint16_t interface_support; + uint16_t legacy_max_cylinder; + uint8_t legacy_max_head; + uint8_t legacy_sectors_per_track; + __guest_handle_void edd_params; + } disk_info; + struct { + uint8_t device; + uint32_t mbr_signature; + } disk_mbr_signature; + struct { + uint8_t capabilities; + uint8_t edid_transfer_time; + __guest_handle_uchar edid; + } vbeddc_info; + union xenpf_efi_info efi_info; + uint8_t kbd_shift_flags; + } u; +}; + +struct xenpf_enter_acpi_sleep { + uint16_t val_a; + uint16_t val_b; + uint32_t sleep_state; + uint32_t flags; +}; + +struct xenpf_change_freq { + uint32_t flags; + uint32_t cpu; + uint64_t freq; +}; + +struct xenpf_getidletime { + __guest_handle_uchar cpumap_bitmap; + uint32_t cpumap_nr_cpus; + __guest_handle_uint64_t idletime; + uint64_t now; +}; + +struct xen_power_register { + uint32_t space_id; + uint32_t bit_width; + uint32_t bit_offset; + uint32_t access_size; + uint64_t address; +}; + +struct xen_processor_csd { + uint32_t domain; + uint32_t coord_type; + uint32_t num; +}; + +typedef struct xen_processor_csd *__guest_handle_xen_processor_csd; + +struct xen_processor_cx { + struct xen_power_register reg; + uint8_t type; + uint32_t latency; + uint32_t power; + uint32_t dpcnt; + __guest_handle_xen_processor_csd dp; +}; + +typedef struct xen_processor_cx *__guest_handle_xen_processor_cx; + +struct xen_processor_flags { + uint32_t bm_control: 1; + uint32_t bm_check: 1; + uint32_t has_cst: 1; + uint32_t power_setup_done: 1; + uint32_t bm_rld_set: 1; +}; + +struct xen_processor_power { + uint32_t count; + struct xen_processor_flags flags; + __guest_handle_xen_processor_cx states; +}; + +struct xen_pct_register { + uint8_t descriptor; + uint16_t length; + uint8_t space_id; + uint8_t bit_width; + uint8_t bit_offset; + uint8_t reserved; + uint64_t address; +}; + +struct xen_processor_px { + uint64_t core_frequency; + uint64_t power; + uint64_t transition_latency; + uint64_t bus_master_latency; + uint64_t control; + uint64_t status; +}; + +typedef struct xen_processor_px *__guest_handle_xen_processor_px; + +struct xen_psd_package { + uint64_t num_entries; + uint64_t revision; + uint64_t domain; + uint64_t coord_type; + uint64_t num_processors; +}; + +struct xen_processor_performance { + uint32_t flags; + uint32_t platform_limit; + struct xen_pct_register control_register; + struct xen_pct_register status_register; + uint32_t state_count; + __guest_handle_xen_processor_px states; + struct xen_psd_package domain_info; + uint32_t shared_type; +}; + +struct xenpf_set_processor_pminfo { + uint32_t id; + uint32_t type; + union { + struct xen_processor_power power; + struct xen_processor_performance perf; + __guest_handle_uint32_t pdc; + }; +}; + +struct xenpf_pcpuinfo { + uint32_t xen_cpuid; + uint32_t max_present; + uint32_t flags; + uint32_t apic_id; + uint32_t acpi_id; +}; + +struct xenpf_cpu_ol { + uint32_t cpuid; +}; + +struct xenpf_cpu_hotadd { + uint32_t apic_id; + uint32_t acpi_id; + uint32_t pxm; +}; + +struct xenpf_mem_hotadd { + uint64_t spfn; + uint64_t epfn; + uint32_t pxm; + uint32_t flags; +}; + +struct xenpf_core_parking { + uint32_t type; + uint32_t idle_nums; +}; + +struct xenpf_symdata { + uint32_t namelen; + uint32_t symnum; + __guest_handle_char name; + uint64_t address; + char type; +}; + +struct xen_platform_op { + uint32_t cmd; + uint32_t interface_version; + union { + struct xenpf_settime32 settime32; + struct xenpf_settime64 settime64; + struct xenpf_add_memtype add_memtype; + struct xenpf_del_memtype del_memtype; + struct xenpf_read_memtype read_memtype; + struct xenpf_microcode_update microcode; + struct xenpf_platform_quirk platform_quirk; + struct xenpf_efi_runtime_call efi_runtime_call; + struct xenpf_firmware_info firmware_info; + struct xenpf_enter_acpi_sleep enter_acpi_sleep; + struct xenpf_change_freq change_freq; + struct xenpf_getidletime getidletime; + struct xenpf_set_processor_pminfo set_pminfo; + struct xenpf_pcpuinfo pcpu_info; + struct xenpf_cpu_ol cpu_ol; + struct xenpf_cpu_hotadd cpu_add; + struct xenpf_mem_hotadd mem_add; + struct xenpf_core_parking core_parking; + struct xenpf_symdata symdata; + struct dom0_vga_console_info dom0_console; + uint8_t pad[128]; + } u; +}; + +struct vcpu_set_singleshot_timer { + uint64_t timeout_abs_ns; + uint32_t flags; +}; + +typedef struct vcpu_time_info *__guest_handle_vcpu_time_info; + +struct vcpu_register_time_memory_area { + union { + __guest_handle_vcpu_time_info h; + struct pvclock_vcpu_time_info *v; + uint64_t p; + } addr; +}; + +struct xen_clock_event_device { + struct clock_event_device evt; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef int (*pte_fn_t)(pte_t *, long unsigned int, void *); + +typedef uint16_t grant_status_t; + +struct grant_frames { + xen_pfn_t *pfn; + unsigned int count; + void *vaddr; +}; + +struct gnttab_vm_area { + struct vm_struct *area; + pte_t **ptes; + int idx; +}; + +enum acpi_irq_model_id { + ACPI_IRQ_MODEL_PIC = 0, + ACPI_IRQ_MODEL_IOAPIC = 1, + ACPI_IRQ_MODEL_IOSAPIC = 2, + ACPI_IRQ_MODEL_PLATFORM = 3, + ACPI_IRQ_MODEL_GIC = 4, + ACPI_IRQ_MODEL_COUNT = 5, +}; + +typedef uint16_t domid_t; + +struct xen_add_to_physmap { + domid_t domid; + uint16_t size; + unsigned int space; + xen_ulong_t idx; + xen_pfn_t gpfn; +}; + +struct machine_ops { + void (*restart)(char *); + void (*halt)(void); + void (*power_off)(void); + void (*shutdown)(void); + void (*crash_shutdown)(struct pt_regs *); + void (*emergency_restart)(void); +}; + +enum x86_hypervisor_type { + X86_HYPER_NATIVE = 0, + X86_HYPER_VMWARE = 1, + X86_HYPER_MS_HYPERV = 2, + X86_HYPER_XEN_PV = 3, + X86_HYPER_XEN_HVM = 4, + X86_HYPER_KVM = 5, + X86_HYPER_JAILHOUSE = 6, + X86_HYPER_ACRN = 7, +}; + +struct hypervisor_x86 { + const char *name; + uint32_t (*detect)(void); + enum x86_hypervisor_type type; + struct x86_hyper_init init; + struct x86_hyper_runtime runtime; + bool ignore_nopv; +}; + +enum e820_type { + E820_TYPE_RAM = 1, + E820_TYPE_RESERVED = 2, + E820_TYPE_ACPI = 3, + E820_TYPE_NVS = 4, + E820_TYPE_UNUSABLE = 5, + E820_TYPE_PMEM = 7, + E820_TYPE_PRAM = 12, + E820_TYPE_SOFT_RESERVED = 4026531839, + E820_TYPE_RESERVED_KERN = 128, +}; + +struct xen_hvm_pagetable_dying { + domid_t domid; + __u64 gpa; +}; + +enum hvmmem_type_t { + HVMMEM_ram_rw = 0, + HVMMEM_ram_ro = 1, + HVMMEM_mmio_dm = 2, +}; + +struct xen_hvm_get_mem_type { + domid_t domid; + uint16_t mem_type; + uint16_t pad[2]; + uint64_t pfn; +}; + +struct e820_entry { + u64 addr; + u64 size; + enum e820_type type; +} __attribute__((packed)); + +struct e820_table { + __u32 nr_entries; + struct e820_entry entries[3200]; +}; + +typedef xen_pfn_t *__guest_handle_xen_pfn_t; + +typedef long unsigned int xen_callback_t; + +struct mmu_update { + uint64_t ptr; + uint64_t val; +}; + +struct xen_memory_region { + long unsigned int start_pfn; + long unsigned int n_pfns; +}; + +struct callback_register { + uint16_t type; + uint16_t flags; + xen_callback_t address; +}; + +struct xen_memory_reservation { + __guest_handle_xen_pfn_t extent_start; + xen_ulong_t nr_extents; + unsigned int extent_order; + unsigned int address_bits; + domid_t domid; +}; + +struct xen_memory_map { + unsigned int nr_entries; + __guest_handle_void buffer; +}; + +struct x86_apic_ops { + unsigned int (*io_apic_read)(unsigned int, unsigned int); + void (*restore)(void); +}; + +struct physdev_apic { + long unsigned int apic_physbase; + uint32_t reg; + uint32_t value; +}; + +typedef long unsigned int uintptr_t; + +struct xen_pmu_amd_ctxt { + uint32_t counters; + uint32_t ctrls; + uint64_t regs[0]; +}; + +struct xen_pmu_cntr_pair { + uint64_t counter; + uint64_t control; +}; + +struct xen_pmu_intel_ctxt { + uint32_t fixed_counters; + uint32_t arch_counters; + uint64_t global_ctrl; + uint64_t global_ovf_ctrl; + uint64_t global_status; + uint64_t fixed_ctrl; + uint64_t ds_area; + uint64_t pebs_enable; + uint64_t debugctl; + uint64_t regs[0]; +}; + +struct xen_pmu_regs { + uint64_t ip; + uint64_t sp; + uint64_t flags; + uint16_t cs; + uint16_t ss; + uint8_t cpl; + uint8_t pad[3]; +}; + +struct xen_pmu_arch { + union { + struct xen_pmu_regs regs; + uint8_t pad[64]; + } r; + uint64_t pmu_flags; + union { + uint32_t lapic_lvtpc; + uint64_t pad; + } l; + union { + struct xen_pmu_amd_ctxt amd; + struct xen_pmu_intel_ctxt intel; + uint8_t pad[128]; + } c; +}; + +struct xen_pmu_params { + struct { + uint32_t maj; + uint32_t min; + } version; + uint64_t val; + uint32_t vcpu; + uint32_t pad; +}; + +struct xen_pmu_data { + uint32_t vcpu_id; + uint32_t pcpu_id; + domid_t domain_id; + uint8_t pad[6]; + struct xen_pmu_arch pmu; +}; + +struct xenpmu { + struct xen_pmu_data *xenpmu_data; + uint8_t flags; +}; + +enum pg_level { + PG_LEVEL_NONE = 0, + PG_LEVEL_4K = 1, + PG_LEVEL_2M = 2, + PG_LEVEL_1G = 3, + PG_LEVEL_512G = 4, + PG_LEVEL_NUM = 5, +}; + +typedef uint32_t grant_ref_t; + +typedef uint32_t grant_handle_t; + +struct gnttab_map_grant_ref { + uint64_t host_addr; + uint32_t flags; + grant_ref_t ref; + domid_t dom; + int16_t status; + grant_handle_t handle; + uint64_t dev_bus_addr; +}; + +struct gnttab_unmap_grant_ref { + uint64_t host_addr; + uint64_t dev_bus_addr; + grant_handle_t handle; + int16_t status; +}; + +enum { + DESC_TSS = 9, + DESC_LDT = 2, + DESCTYPE_S = 16, +}; + +enum paravirt_lazy_mode { + PARAVIRT_LAZY_NONE = 0, + PARAVIRT_LAZY_MMU = 1, + PARAVIRT_LAZY_CPU = 2, +}; + struct plist_head { struct list_head node_list; }; @@ -20691,37 +21674,6 @@ struct multicall_entry { xen_ulong_t args[6]; }; -struct dom0_vga_console_info { - uint8_t video_type; - union { - struct { - uint16_t font_height; - uint16_t cursor_x; - uint16_t cursor_y; - uint16_t rows; - uint16_t columns; - } text_mode_3; - struct { - uint16_t width; - uint16_t height; - uint16_t bytes_per_line; - uint16_t bits_per_pixel; - uint32_t lfb_base; - uint32_t lfb_size; - uint8_t red_pos; - uint8_t red_size; - uint8_t green_pos; - uint8_t green_size; - uint8_t blue_pos; - uint8_t blue_size; - uint8_t rsvd_pos; - uint8_t rsvd_size; - uint32_t gbl_caps; - uint16_t mode_attrs; - } vesa_lfb; - } u; -}; - struct physdev_set_iopl { uint32_t iopl; }; @@ -20731,9 +21683,7 @@ struct physdev_set_iobitmap { uint32_t nr_ports; }; -struct xen_extraversion { - char extraversion[16]; -}; +typedef u32 acpi_status; struct pm_qos_flags_request { struct list_head node; @@ -20779,8 +21729,8 @@ struct tls_descs { }; struct trap_array_entry { - void (*orig)(); - void (*xen)(); + void (*orig)(void); + void (*xen)(void); bool ist_okay; }; @@ -21006,7 +21956,7 @@ struct trace_event_raw_xen_mmu_flush_tlb_one_user { char __data[0]; }; -struct trace_event_raw_xen_mmu_flush_tlb_others { +struct trace_event_raw_xen_mmu_flush_tlb_multi { struct trace_entry ent; unsigned int ncpus; struct mm_struct *mm; @@ -21091,7 +22041,7 @@ struct trace_event_data_offsets_xen_mmu_pgd {}; struct trace_event_data_offsets_xen_mmu_flush_tlb_one_user {}; -struct trace_event_data_offsets_xen_mmu_flush_tlb_others {}; +struct trace_event_data_offsets_xen_mmu_flush_tlb_multi {}; struct trace_event_data_offsets_xen_mmu_write_cr3 {}; @@ -21143,7 +22093,7 @@ typedef void (*btf_trace_xen_mmu_pgd_unpin)(void *, struct mm_struct *, pgd_t *) typedef void (*btf_trace_xen_mmu_flush_tlb_one_user)(void *, long unsigned int); -typedef void (*btf_trace_xen_mmu_flush_tlb_others)(void *, const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int); +typedef void (*btf_trace_xen_mmu_flush_tlb_multi)(void *, const struct cpumask *, struct mm_struct *, long unsigned int, long unsigned int); typedef void (*btf_trace_xen_mmu_write_cr3)(void *, bool, long unsigned int); @@ -21273,6 +22223,22 @@ struct vcpu_guest_context { uint64_t gs_base_user; }; +struct io_tlb_slot; + +struct io_tlb_mem { + phys_addr_t start; + phys_addr_t end; + long unsigned int nslabs; + long unsigned int used; + unsigned int index; + spinlock_t lock; + struct dentry *debugfs; + bool late_alloc; + bool force_bounce; + bool for_alloc; + struct io_tlb_slot *slots; +}; + struct sg_table { struct scatterlist *sgl; unsigned int nents; @@ -21285,11 +22251,17 @@ enum swiotlb_force { SWIOTLB_NO_FORCE = 2, }; +struct io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + unsigned int list; +}; + struct iommu_table_entry { initcall_t detect; initcall_t depend; - void (*early_init)(); - void (*late_init)(); + void (*early_init)(void); + void (*late_init)(void); int flags; }; @@ -21363,36 +22335,44 @@ struct hvm_memmap_table_entry { enum { WORK_STRUCT_PENDING_BIT = 0, - WORK_STRUCT_DELAYED_BIT = 1, + WORK_STRUCT_INACTIVE_BIT = 1, WORK_STRUCT_PWQ_BIT = 2, WORK_STRUCT_LINKED_BIT = 3, WORK_STRUCT_COLOR_SHIFT = 4, WORK_STRUCT_COLOR_BITS = 4, WORK_STRUCT_PENDING = 1, - WORK_STRUCT_DELAYED = 2, + WORK_STRUCT_INACTIVE = 2, WORK_STRUCT_PWQ = 4, WORK_STRUCT_LINKED = 8, WORK_STRUCT_STATIC = 0, - WORK_NR_COLORS = 15, - WORK_NO_COLOR = 15, + WORK_NR_COLORS = 16, WORK_CPU_UNBOUND = 8192, WORK_STRUCT_FLAG_BITS = 8, WORK_OFFQ_FLAG_BASE = 4, __WORK_OFFQ_CANCELING = 4, - WORK_OFFQ_CANCELING = 16, WORK_OFFQ_FLAG_BITS = 1, WORK_OFFQ_POOL_SHIFT = 5, WORK_OFFQ_LEFT = 59, WORK_OFFQ_POOL_BITS = 31, - WORK_OFFQ_POOL_NONE = 2147483647, - WORK_STRUCT_FLAG_MASK = 255, - WORK_STRUCT_WQ_DATA_MASK = 4294967040, - WORK_STRUCT_NO_POOL = 4294967264, WORK_BUSY_PENDING = 1, WORK_BUSY_RUNNING = 2, WORKER_DESC_LEN = 24, }; +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, +}; + +enum hv_isolation_type { + HV_ISOLATION_TYPE_NONE = 0, + HV_ISOLATION_TYPE_VBS = 1, + HV_ISOLATION_TYPE_SNP = 2, +}; + union hv_x64_msr_hypercall_contents { u64 as_uint64; struct { @@ -21402,6 +22382,15 @@ union hv_x64_msr_hypercall_contents { }; }; +union hv_vp_assist_msr_contents { + u64 as_uint64; + struct { + u64 enable: 1; + u64 reserved: 11; + u64 pfn: 52; + }; +}; + struct hv_reenlightenment_control { __u64 vector: 8; __u64 reserved1: 8; @@ -21440,13 +22429,20 @@ struct hv_vp_assist_page { __u64 current_nested_vmcs; }; +struct hv_get_partition_id { + u64 partition_id; +}; + struct ms_hyperv_info { u32 features; + u32 priv_high; u32 misc_features; u32 hints; u32 nested_features; u32 max_vp_index; u32 max_lp_index; + u32 isolation_config_a; + u32 isolation_config_b; }; enum HV_GENERIC_SET_FORMAT { @@ -21474,7 +22470,7 @@ struct hv_tlb_flush_ex { u64 gva_list[0]; }; -struct trace_event_raw_hyperv_mmu_flush_tlb_others { +struct trace_event_raw_hyperv_mmu_flush_tlb_multi { struct trace_entry ent; unsigned int ncpus; struct mm_struct *mm; @@ -21511,7 +22507,7 @@ struct trace_event_raw_hyperv_send_ipi_one { char __data[0]; }; -struct trace_event_data_offsets_hyperv_mmu_flush_tlb_others {}; +struct trace_event_data_offsets_hyperv_mmu_flush_tlb_multi {}; struct trace_event_data_offsets_hyperv_nested_flush_guest_mapping {}; @@ -21521,7 +22517,7 @@ struct trace_event_data_offsets_hyperv_send_ipi_mask {}; struct trace_event_data_offsets_hyperv_send_ipi_one {}; -typedef void (*btf_trace_hyperv_mmu_flush_tlb_others)(void *, const struct cpumask *, const struct flush_tlb_info *); +typedef void (*btf_trace_hyperv_mmu_flush_tlb_multi)(void *, const struct cpumask *, const struct flush_tlb_info *); typedef void (*btf_trace_hyperv_nested_flush_guest_mapping)(void *, u64, int); @@ -21543,6 +22539,12 @@ union hv_gpa_page_range { u64 largepage: 1; u64 basepfn: 52; } page; + struct { + u64 reserved: 12; + u64 page_size: 1; + u64 reserved1: 8; + u64 base_large_pfn: 43; + }; }; struct hv_guest_mapping_flush_list { @@ -21553,6 +22555,294 @@ struct hv_guest_mapping_flush_list { typedef int (*hyperv_fill_flush_list_func)(struct hv_guest_mapping_flush_list *, void *); +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, +}; + +enum irq_alloc_type { + X86_IRQ_ALLOC_TYPE_IOAPIC = 1, + X86_IRQ_ALLOC_TYPE_HPET = 2, + X86_IRQ_ALLOC_TYPE_PCI_MSI = 3, + X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4, + X86_IRQ_ALLOC_TYPE_DMAR = 5, + X86_IRQ_ALLOC_TYPE_AMDVI = 6, + X86_IRQ_ALLOC_TYPE_UV = 7, +}; + +struct ioapic_alloc_info { + int pin; + int node; + u32 is_level: 1; + u32 active_low: 1; + u32 valid: 1; +}; + +struct uv_alloc_info { + int limit; + int blade; + long unsigned int offset; + char *name; +}; + +struct irq_alloc_info { + enum irq_alloc_type type; + u32 flags; + u32 devid; + irq_hw_number_t hwirq; + const struct cpumask *mask; + struct msi_desc *desc; + void *data; + union { + struct ioapic_alloc_info ioapic; + struct uv_alloc_info uv; + }; +}; + +struct irq_cfg { + unsigned int dest_apicid; + unsigned int vector; +}; + +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, +}; + +typedef struct irq_alloc_info msi_alloc_info_t; + +struct msi_domain_info; + +struct msi_domain_ops { + irq_hw_number_t (*get_hwirq)(struct msi_domain_info *, msi_alloc_info_t *); + int (*msi_init)(struct irq_domain *, struct msi_domain_info *, unsigned int, irq_hw_number_t, msi_alloc_info_t *); + void (*msi_free)(struct irq_domain *, struct msi_domain_info *, unsigned int); + int (*msi_check)(struct irq_domain *, struct msi_domain_info *, struct device *); + int (*msi_prepare)(struct irq_domain *, struct device *, int, msi_alloc_info_t *); + void (*msi_finish)(msi_alloc_info_t *, int); + void (*set_desc)(msi_alloc_info_t *, struct msi_desc *); + int (*handle_error)(struct irq_domain *, struct msi_desc *, int); + int (*domain_alloc_irqs)(struct irq_domain *, struct device *, int); + void (*domain_free_irqs)(struct irq_domain *, struct device *); +}; + +struct msi_domain_info { + u32 flags; + struct msi_domain_ops *ops; + struct irq_chip *chip; + void *chip_data; + irq_flow_handler_t handler; + void *handler_data; + const char *handler_name; + void *data; +}; + +enum { + MSI_FLAG_USE_DEF_DOM_OPS = 1, + MSI_FLAG_USE_DEF_CHIP_OPS = 2, + MSI_FLAG_MULTI_PCI_MSI = 4, + MSI_FLAG_PCI_MSIX = 8, + MSI_FLAG_ACTIVATE_EARLY = 16, + MSI_FLAG_MUST_REACTIVATE = 32, + MSI_FLAG_LEVEL_CAPABLE = 64, +}; + +enum hv_interrupt_type { + HV_X64_INTERRUPT_TYPE_FIXED = 0, + HV_X64_INTERRUPT_TYPE_LOWESTPRIORITY = 1, + HV_X64_INTERRUPT_TYPE_SMI = 2, + HV_X64_INTERRUPT_TYPE_REMOTEREAD = 3, + HV_X64_INTERRUPT_TYPE_NMI = 4, + HV_X64_INTERRUPT_TYPE_INIT = 5, + HV_X64_INTERRUPT_TYPE_SIPI = 6, + HV_X64_INTERRUPT_TYPE_EXTINT = 7, + HV_X64_INTERRUPT_TYPE_LOCALINT0 = 8, + HV_X64_INTERRUPT_TYPE_LOCALINT1 = 9, + HV_X64_INTERRUPT_TYPE_MAXIMUM = 10, +}; + +union hv_msi_address_register { + u32 as_uint32; + struct { + u32 reserved1: 2; + u32 destination_mode: 1; + u32 redirection_hint: 1; + u32 reserved2: 8; + u32 destination_id: 8; + u32 msi_base: 12; + }; +}; + +union hv_msi_data_register { + u32 as_uint32; + struct { + u32 vector: 8; + u32 delivery_mode: 3; + u32 reserved1: 3; + u32 level_assert: 1; + u32 trigger_mode: 1; + u32 reserved2: 16; + }; +}; + +union hv_msi_entry { + u64 as_uint64; + struct { + union hv_msi_address_register address; + union hv_msi_data_register data; + }; +}; + +union hv_ioapic_rte { + u64 as_uint64; + struct { + u32 vector: 8; + u32 delivery_mode: 3; + u32 destination_mode: 1; + u32 delivery_status: 1; + u32 interrupt_polarity: 1; + u32 remote_irr: 1; + u32 trigger_mode: 1; + u32 interrupt_mask: 1; + u32 reserved1: 15; + u32 reserved2: 24; + u32 destination_id: 8; + }; + struct { + u32 low_uint32; + u32 high_uint32; + }; +}; + +struct hv_interrupt_entry { + u32 source; + u32 reserved1; + union { + union hv_msi_entry msi_entry; + union hv_ioapic_rte ioapic_rte; + }; +}; + +struct hv_device_interrupt_target { + u32 vector; + u32 flags; + union { + u64 vp_mask; + struct hv_vpset vp_set; + }; +}; + +enum hv_device_type { + HV_DEVICE_TYPE_LOGICAL = 0, + HV_DEVICE_TYPE_PCI = 1, + HV_DEVICE_TYPE_IOAPIC = 2, + HV_DEVICE_TYPE_ACPI = 3, +}; + +typedef u16 hv_pci_rid; + +typedef u16 hv_pci_segment; + +union hv_pci_bdf { + u16 as_uint16; + struct { + u8 function: 3; + u8 device: 5; + u8 bus; + }; +}; + +union hv_pci_bus_range { + u16 as_uint16; + struct { + u8 subordinate_bus; + u8 secondary_bus; + }; +}; + +union hv_device_id { + u64 as_uint64; + struct { + u64 reserved0: 62; + u64 device_type: 2; + }; + struct { + u64 id: 62; + u64 device_type: 2; + } logical; + struct { + union { + hv_pci_rid rid; + union hv_pci_bdf bdf; + }; + hv_pci_segment segment; + union hv_pci_bus_range shadow_bus_range; + u16 phantom_function_bits: 2; + u16 source_shadow: 1; + u16 rsvdz0: 11; + u16 device_type: 2; + } pci; + struct { + u8 ioapic_id; + u8 rsvdz0; + u16 rsvdz1; + u16 rsvdz2; + u16 rsvdz3: 14; + u16 device_type: 2; + } ioapic; + struct { + u32 input_mapping_base; + u32 input_mapping_count: 30; + u32 device_type: 2; + } acpi; +}; + +enum hv_interrupt_trigger_mode { + HV_INTERRUPT_TRIGGER_MODE_EDGE = 0, + HV_INTERRUPT_TRIGGER_MODE_LEVEL = 1, +}; + +struct hv_device_interrupt_descriptor { + u32 interrupt_type; + u32 trigger_mode; + u32 vector_count; + u32 reserved; + struct hv_device_interrupt_target target; +}; + +struct hv_input_map_device_interrupt { + u64 partition_id; + u64 device_id; + u64 flags; + struct hv_interrupt_entry logical_interrupt_entry; + struct hv_device_interrupt_descriptor interrupt_descriptor; +}; + +struct hv_output_map_device_interrupt { + struct hv_interrupt_entry interrupt_entry; +}; + +struct hv_input_unmap_device_interrupt { + u64 partition_id; + u64 device_id; + struct hv_interrupt_entry interrupt_entry; +}; + +struct rid_data { + struct pci_dev *bridge; + u32 rid; +}; + struct hv_send_ipi { u32 vector; u32 reserved; @@ -21565,11 +22855,71 @@ struct hv_send_ipi_ex { struct hv_vpset vp_set; }; +struct hv_deposit_memory { + u64 partition_id; + u64 gpa_page_list[0]; +}; + +struct hv_proximity_domain_flags { + u32 proximity_preferred: 1; + u32 reserved: 30; + u32 proximity_info_valid: 1; +}; + +union hv_proximity_domain_info { + struct { + u32 domain_id; + struct hv_proximity_domain_flags flags; + }; + u64 as_uint64; +}; + +struct hv_lp_startup_status { + u64 hv_status; + u64 substatus1; + u64 substatus2; + u64 substatus3; + u64 substatus4; + u64 substatus5; + u64 substatus6; +}; + +struct hv_add_logical_processor_in { + u32 lp_index; + u32 apic_id; + union hv_proximity_domain_info proximity_domain_info; + u64 flags; +}; + +struct hv_add_logical_processor_out { + struct hv_lp_startup_status startup_status; +}; + +enum HV_SUBNODE_TYPE { + HvSubnodeAny = 0, + HvSubnodeSocket = 1, + HvSubnodeAmdNode = 2, + HvSubnodeL3 = 3, + HvSubnodeCount = 4, + HvSubnodeInvalid = 4294967295, +}; + +struct hv_create_vp { + u64 partition_id; + u32 vp_index; + u8 padding[3]; + u8 subnode_type; + u64 subnode_id; + union hv_proximity_domain_info proximity_domain_info; + u64 flags; +}; + struct real_mode_header { u32 text_start; u32 ro_end; u32 trampoline_start; u32 trampoline_header; + u32 sev_es_trampoline_start; u32 trampoline_pgd; u32 wakeup_start; u32 wakeup_header; @@ -21584,11 +22934,6 @@ struct trampoline_header { u32 flags; }; -struct pkru_state { - u32 pkru; - u32 pad; -}; - enum show_regs_mode { SHOW_REGS_SHORT = 0, SHOW_REGS_USER = 1, @@ -21658,6 +23003,8 @@ struct siginfo { }; }; +typedef struct siginfo siginfo_t; + struct ksignal { struct k_sigaction ka; kernel_siginfo_t info; @@ -21678,10 +23025,12 @@ typedef s32 compat_timer_t; typedef s32 compat_int_t; -typedef s64 compat_s64; +typedef u32 compat_ulong_t; typedef u32 __compat_uid32_t; +typedef s64 compat_s64; + typedef u32 compat_sigset_word; struct compat_sigaltstack { @@ -21740,6 +23089,7 @@ struct compat_siginfo { struct { compat_uptr_t _addr; union { + int _trapno; short int _addr_lsb; struct { char _dummy_bnd[4]; @@ -21750,6 +23100,11 @@ struct compat_siginfo { char _dummy_pkey[4]; u32 _pkey; } _addr_pkey; + struct { + compat_ulong_t _data; + u32 _type; + u32 _flags; + } _perf; }; } _sigfault; struct { @@ -21807,31 +23162,49 @@ struct rt_sigframe_x32 { compat_siginfo_t info; }; -typedef struct siginfo siginfo_t; - enum bug_trap_type { BUG_TRAP_TYPE_NONE = 0, BUG_TRAP_TYPE_WARN = 1, BUG_TRAP_TYPE_BUG = 2, }; +enum insn_mode { + INSN_MODE_32 = 0, + INSN_MODE_64 = 1, + INSN_MODE_KERN = 2, + INSN_NUM_MODES = 3, +}; + typedef u8 kprobe_opcode_t; +struct kprobe; + struct arch_specific_insn { kprobe_opcode_t *insn; - bool boostable; - bool if_modifier; + unsigned int boostable: 1; + unsigned char size; + union { + unsigned char opcode; + struct { + unsigned char type; + } jcc; + struct { + unsigned char type; + unsigned char asize; + } loop; + struct { + unsigned char reg; + } indirect; + }; + s32 rel32; + void (*emulate_op)(struct kprobe *, struct pt_regs *); int tp_len; }; -struct kprobe; - typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, long unsigned int); -typedef int (*kprobe_fault_handler_t)(struct kprobe *, struct pt_regs *, int); - struct kprobe { struct hlist_node hlist; struct list_head list; @@ -21841,7 +23214,6 @@ struct kprobe { unsigned int offset; kprobe_pre_handler_t pre_handler; kprobe_post_handler_t post_handler; - kprobe_fault_handler_t fault_handler; kprobe_opcode_t opcode; struct arch_specific_insn ainsn; u32 flags; @@ -21868,18 +23240,6 @@ enum kernel_gp_hint { GP_CANONICAL = 2, }; -struct bad_iret_stack { - void *error_entry_ret; - struct pt_regs regs; -}; - -struct idt_data { - unsigned int vector; - unsigned int segment; - struct idt_bits bits; - const void *addr; -}; - typedef struct irq_desc *vector_irq_t[256]; struct trace_event_raw_x86_irq_vector { @@ -22053,20 +23413,8 @@ typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int); typedef void (*btf_trace_vector_free_moved)(void *, unsigned int, unsigned int, unsigned int, bool); -struct cea_exception_stacks { - char DF_stack_guard[4096]; - char DF_stack[8192]; - char NMI_stack_guard[4096]; - char NMI_stack[8192]; - char DB_stack_guard[4096]; - char DB_stack[8192]; - char MCE_stack_guard[4096]; - char MCE_stack[8192]; - char VC_stack_guard[4096]; - char VC_stack[8192]; - char VC2_stack_guard[4096]; - char VC2_stack[8192]; - char IST_top_guard[4096]; +struct irq_stack { + char stack[16384]; }; struct estack_pages { @@ -22093,15 +23441,15 @@ enum lockdown_reason { LOCKDOWN_DEBUGFS = 14, LOCKDOWN_XMON_WR = 15, LOCKDOWN_BPF_WRITE_USER = 16, - LOCKDOWN_DBG_WRITE_KERNEL = 17, + LOCKDOWN_KGDB = 17, LOCKDOWN_INTEGRITY_MAX = 18, LOCKDOWN_KCORE = 19, LOCKDOWN_KPROBES = 20, - LOCKDOWN_BPF_READ = 21, - LOCKDOWN_DBG_READ_KERNEL = 22, - LOCKDOWN_PERF = 23, - LOCKDOWN_TRACEFS = 24, - LOCKDOWN_XMON_RW = 25, + LOCKDOWN_BPF_READ_KERNEL = 21, + LOCKDOWN_PERF = 22, + LOCKDOWN_TRACEFS = 23, + LOCKDOWN_XMON_RW = 24, + LOCKDOWN_XFRM_SECRET = 25, LOCKDOWN_CONFIDENTIALITY_MAX = 26, }; @@ -22110,10 +23458,6 @@ enum lockdep_ok { LOCKDEP_NOW_UNRELIABLE = 1, }; -struct entry_stack { - char stack[4096]; -}; - struct trace_event_raw_nmi_handler { struct trace_entry ent; void *handler; @@ -22157,6 +23501,27 @@ struct user_desc { unsigned int lm: 1; }; +struct edd { + unsigned int mbr_signature[16]; + struct edd_info edd_info[6]; + unsigned char mbr_signature_nr; + unsigned char edd_info_nr; +}; + +struct setup_data { + __u64 next; + __u32 type; + __u32 len; + __u8 data[0]; +}; + +struct setup_indirect { + __u32 type; + __u32 reserved; + __u64 len; + __u64 addr; +}; + enum con_scroll { SM_UP = 0, SM_DOWN = 1, @@ -22175,7 +23540,7 @@ struct console_font; struct consw { struct module *owner; - const char * (*con_startup)(); + const char * (*con_startup)(void); void (*con_init)(struct vc_data *, int); void (*con_deinit)(struct vc_data *); void (*con_clear)(struct vc_data *, int, int, int, int); @@ -22188,7 +23553,6 @@ struct consw { int (*con_font_set)(struct vc_data *, struct console_font *, unsigned int); int (*con_font_get)(struct vc_data *, struct console_font *); int (*con_font_default)(struct vc_data *, struct console_font *, char *); - int (*con_font_copy)(struct vc_data *, int); int (*con_resize)(struct vc_data *, unsigned int, unsigned int, unsigned int); void (*con_set_palette)(struct vc_data *, const unsigned char *); void (*con_scrolldelta)(struct vc_data *, int); @@ -22300,27 +23664,6 @@ struct vc_data { struct uni_screen *vc_uni_screen; }; -struct edd { - unsigned int mbr_signature[16]; - struct edd_info edd_info[6]; - unsigned char mbr_signature_nr; - unsigned char edd_info_nr; -}; - -struct setup_data { - __u64 next; - __u32 type; - __u32 len; - __u8 data[0]; -}; - -struct setup_indirect { - __u32 type; - __u32 reserved; - __u64 len; - __u64 addr; -}; - enum memblock_flags { MEMBLOCK_NONE = 0, MEMBLOCK_HOTPLUG = 1, @@ -22354,14 +23697,31 @@ struct x86_msi_ops { void (*restore_msi_irqs)(struct pci_dev *); }; -struct msi_controller { - struct module *owner; - struct device *dev; - struct device_node *of_node; - struct list_head list; - int (*setup_irq)(struct msi_controller *, struct pci_dev *, struct msi_desc *); - int (*setup_irqs)(struct msi_controller *, struct pci_dev *, int, int); - void (*teardown_irq)(struct msi_controller *, unsigned int); +enum { + IRQ_TYPE_NONE = 0, + IRQ_TYPE_EDGE_RISING = 1, + IRQ_TYPE_EDGE_FALLING = 2, + IRQ_TYPE_EDGE_BOTH = 3, + IRQ_TYPE_LEVEL_HIGH = 4, + IRQ_TYPE_LEVEL_LOW = 8, + IRQ_TYPE_LEVEL_MASK = 12, + IRQ_TYPE_SENSE_MASK = 15, + IRQ_TYPE_DEFAULT = 15, + IRQ_TYPE_PROBE = 16, + IRQ_LEVEL = 256, + IRQ_PER_CPU = 512, + IRQ_NOPROBE = 1024, + IRQ_NOREQUEST = 2048, + IRQ_NOAUTOEN = 4096, + IRQ_NO_BALANCING = 8192, + IRQ_MOVE_PCNTXT = 16384, + IRQ_NESTED_THREAD = 32768, + IRQ_NOTHREAD = 65536, + IRQ_PER_CPU_DEVID = 131072, + IRQ_IS_POLLED = 262144, + IRQ_DISABLE_UNLAZY = 524288, + IRQ_HIDDEN = 1048576, + IRQ_NO_DEBUG = 2097152, }; struct legacy_pic { @@ -22369,10 +23729,10 @@ struct legacy_pic { struct irq_chip *chip; void (*mask)(unsigned int); void (*unmask)(unsigned int); - void (*mask_all)(); - void (*restore_mask)(); + void (*mask_all)(void); + void (*restore_mask)(void); void (*init)(int); - int (*probe)(); + int (*probe)(void); int (*irq_pending)(unsigned int); void (*make_irq)(unsigned int); }; @@ -22390,6 +23750,11 @@ union text_poke_insn { } __attribute__((packed)); }; +struct jump_label_patch { + const void *code; + int size; +}; + enum { JL_STATE_START = 0, JL_STATE_NO_UPDATE = 1, @@ -22420,6 +23785,7 @@ struct kernel_clone_args { pid_t *set_tid; size_t set_tid_size; int cgroup; + int io_thread; struct cgroup *cgrp; struct css_set *cset; }; @@ -22501,13 +23867,9 @@ struct kobj_attribute { ssize_t (*store)(struct kobject *, struct kobj_attribute *, const char *, size_t); }; -enum { - MEMREMAP_WB = 1, - MEMREMAP_WT = 2, - MEMREMAP_WC = 4, - MEMREMAP_ENC = 8, - MEMREMAP_DEC = 16, -}; +typedef void (*swap_func_t)(void *, void *, int); + +typedef int (*cmp_func_t)(const void *, const void *); enum { IORES_DESC_NONE = 0, @@ -22528,11 +23890,14 @@ struct change_member { struct iommu_fault_param; +struct iopf_device_param; + struct iommu_fwspec; struct dev_iommu { struct mutex lock; struct iommu_fault_param *fault_param; + struct iopf_device_param *iopf_param; struct iommu_fwspec *fwspec; struct iommu_device *iommu_dev; void *priv; @@ -22637,6 +24002,8 @@ struct iommu_domain_geometry { bool force_aperture; }; +struct iommu_dma_cookie; + struct iommu_domain { unsigned int type; const struct iommu_ops *ops; @@ -22644,7 +24011,7 @@ struct iommu_domain { iommu_fault_handler_t handler; void *handler_token; struct iommu_domain_geometry geometry; - void *iova_cookie; + struct iommu_dma_cookie *iova_cookie; }; typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *); @@ -22669,6 +24036,8 @@ struct iommu_iotlb_gather { long unsigned int start; long unsigned int end; size_t pgsize; + struct page *freelist; + bool queued; }; struct iommu_device { @@ -22698,7 +24067,6 @@ struct iommu_fwspec { const struct iommu_ops *ops; struct fwnode_handle *iommu_fwnode; u32 flags; - u32 num_pasid_bits; unsigned int num_ids; u32 ids[0]; }; @@ -22731,17 +24099,6 @@ enum dmi_field { DMI_OEM_STRING = 24, }; -struct acpi_device; - -struct pci_sysdata { - int domain; - int node; - struct acpi_device *companion; - void *iommu; - void *fwnode; - struct pci_dev *vmd_dev; -}; - enum { NONE_FORCE_HPET_RESUME = 0, OLD_ICH_FORCE_HPET_RESUME = 1, @@ -22751,8 +24108,6 @@ enum { ATI_FORCE_HPET_RESUME = 5, }; -typedef struct pglist_data pg_data_t; - enum meminit_context { MEMINIT_EARLY = 0, MEMINIT_HOTPLUG = 1, @@ -22768,8 +24123,6 @@ struct x86_cpu { struct cpu cpu; }; -typedef int (*cmp_func_t)(const void *, const void *); - typedef u8 retpoline_thunk_t[32]; struct paravirt_patch_site { @@ -22786,11 +24139,8 @@ struct die_args { int signr; }; -enum insn_mode { - INSN_MODE_32 = 0, - INSN_MODE_64 = 1, - INSN_MODE_KERN = 2, - INSN_NUM_MODES = 3, +struct tlb_state_shared { + bool is_lazy; }; struct smp_alt_module { @@ -22888,7 +24238,6 @@ struct cpufreq_policy { unsigned int min; unsigned int max; unsigned int cur; - unsigned int restore_freq; unsigned int suspend_freq; unsigned int policy; unsigned int last_policy; @@ -22955,15 +24304,6 @@ struct cyc2ns { seqcount_latch_t seq; }; -struct x86_cpu_id { - __u16 vendor; - __u16 family; - __u16 model; - __u16 steppings; - __u16 feature; - kernel_ulong_t driver_data; -}; - struct muldiv { u32 multiplier; u32 divider; @@ -23005,7 +24345,7 @@ struct platform_device { u32 num_resources; struct resource *resource; const struct platform_device_id *id_entry; - char *driver_override; + const char *driver_override; struct mfd_cell *mfd_cell; struct pdev_archdata archdata; }; @@ -23224,6 +24564,7 @@ enum insn_type { NOP = 1, JMP = 2, RET = 3, + JCC = 4, }; struct ldttss_desc { @@ -23283,6 +24624,35 @@ struct ssb_state { long unsigned int local_state; }; +struct fpu_state_config { + unsigned int max_size; + unsigned int default_size; + u64 max_features; + u64 default_features; + u64 legacy_features; + u64 independent_features; +}; + +struct pkru_state { + u32 pkru; + u32 pad; +}; + +struct fpu_guest { + struct fpstate *fpstate; +}; + +struct membuf { + void *p; + size_t left; +}; + +enum xstate_copy_mode { + XSTATE_COPY_FP = 0, + XSTATE_COPY_FX = 1, + XSTATE_COPY_XSAVE = 2, +}; + struct trace_event_raw_x86_fpu { struct trace_entry ent; struct fpu *fpu; @@ -23338,11 +24708,6 @@ struct user_i387_ia32_struct { u32 st_space[20]; }; -struct membuf { - void *p; - size_t left; -}; - struct user_regset; typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); @@ -23403,8 +24768,6 @@ struct _fpstate_32 { }; }; -typedef u32 compat_ulong_t; - struct user_regset_view { const char *name; const struct user_regset *regsets; @@ -23429,6 +24792,14 @@ struct pt_regs_offset { int offset; }; +enum { + SR_DMAR_FECTL_REG = 0, + SR_DMAR_FEDATA_REG = 1, + SR_DMAR_FEADDR_REG = 2, + SR_DMAR_FEUADDR_REG = 3, + MAX_SR_DMAR_REGS = 4, +}; + enum { TB_SHUTDOWN_REBOOT = 0, TB_SHUTDOWN_S5 = 1, @@ -23681,6 +25052,32 @@ enum cpuid_leafs { CPUID_7_ECX = 16, CPUID_8000_0007_EBX = 17, CPUID_7_EDX = 18, + CPUID_8000_001F_EAX = 19, + CPUID_8000_0021_EAX = 20, + CPUID_LNX_5 = 21, + NR_CPUID_WORDS = 22, +}; + +enum kgdb_bptype { + BP_BREAKPOINT = 0, + BP_HARDWARE_BREAKPOINT = 1, + BP_WRITE_WATCHPOINT = 2, + BP_READ_WATCHPOINT = 3, + BP_ACCESS_WATCHPOINT = 4, + BP_POKE_BREAKPOINT = 5, +}; + +struct kgdb_arch { + unsigned char gdb_bpt_instr[1]; + long unsigned int flags; + int (*set_breakpoint)(long unsigned int, char *); + int (*remove_breakpoint)(long unsigned int, char *); + int (*set_hw_breakpoint)(long unsigned int, int, enum kgdb_bptype); + int (*remove_hw_breakpoint)(long unsigned int, int, enum kgdb_bptype); + void (*disable_hw_break)(struct pt_regs *); + void (*remove_all_hw_break)(void); + void (*correct_hw_break)(void); + void (*enable_nmi)(bool); }; struct cpu_dev { @@ -23694,6 +25091,11 @@ struct cpu_dev { int c_x86_vendor; }; +struct ppin_info { + int feature; + int msr_ppin_ctl; +}; + struct cpuid_dependent_feature { u32 feature; u32 level; @@ -23769,6 +25171,12 @@ enum mmio_mitigations { MMIO_MITIGATION_VERW = 2, }; +enum rfds_mitigations { + RFDS_MITIGATION_OFF = 0, + RFDS_MITIGATION_VERW = 1, + RFDS_MITIGATION_UCODE_NEEDED = 2, +}; + enum srbds_mitigations { SRBDS_MITIGATION_OFF = 0, SRBDS_MITIGATION_UCODE_NEEDED = 1, @@ -23777,6 +25185,20 @@ enum srbds_mitigations { SRBDS_MITIGATION_HYPERVISOR = 4, }; +enum l1d_flush_mitigations { + L1D_FLUSH_OFF = 0, + L1D_FLUSH_ON = 1, +}; + +enum gds_mitigations { + GDS_MITIGATION_OFF = 0, + GDS_MITIGATION_UCODE_NEEDED = 1, + GDS_MITIGATION_FORCE = 2, + GDS_MITIGATION_FULL = 3, + GDS_MITIGATION_FULL_LOCKED = 4, + GDS_MITIGATION_HYPERVISOR = 5, +}; + enum spectre_v1_mitigation { SPECTRE_V1_MITIGATION_NONE = 0, SPECTRE_V1_MITIGATION_AUTO = 1, @@ -23820,6 +25242,11 @@ enum spectre_v2_user_cmd { SPECTRE_V2_USER_CMD_SECCOMP_IBPB = 6, }; +enum bhi_mitigations { + BHI_MITIGATION_OFF = 0, + BHI_MITIGATION_ON = 1, +}; + enum ssb_mitigation_cmd { SPEC_STORE_BYPASS_CMD_NONE = 0, SPEC_STORE_BYPASS_CMD_AUTO = 1, @@ -23828,6 +25255,22 @@ enum ssb_mitigation_cmd { SPEC_STORE_BYPASS_CMD_SECCOMP = 4, }; +enum srso_mitigation { + SRSO_MITIGATION_NONE = 0, + SRSO_MITIGATION_MICROCODE = 1, + SRSO_MITIGATION_SAFE_RET = 2, + SRSO_MITIGATION_IBPB = 3, + SRSO_MITIGATION_IBPB_ON_VMEXIT = 4, +}; + +enum srso_mitigation_cmd { + SRSO_CMD_OFF = 0, + SRSO_CMD_MICROCODE = 1, + SRSO_CMD_SAFE_RET = 2, + SRSO_CMD_IBPB = 3, + SRSO_CMD_IBPB_ON_VMEXIT = 4, +}; + enum hk_flags { HK_FLAG_TIMER = 1, HK_FLAG_RCU = 2, @@ -23842,6 +25285,7 @@ enum hk_flags { struct aperfmperf_sample { unsigned int khz; + atomic_t scfpending; ktime_t time; u64 aperf; u64 mperf; @@ -23866,16 +25310,11 @@ struct _tlb_table { char info[128]; }; -enum tsx_ctrl_states { - TSX_CTRL_ENABLE = 0, - TSX_CTRL_DISABLE = 1, - TSX_CTRL_NOT_SUPPORTED = 2, -}; - enum split_lock_detect_state { sld_off = 0, sld_warn = 1, sld_fatal = 2, + sld_ratelimit = 3, }; struct sku_microcode { @@ -23902,6 +25341,13 @@ enum { PCONFIG_CPUID_SUBLEAF_TARGETID = 1, }; +enum tsx_ctrl_states { + TSX_CTRL_ENABLE = 0, + TSX_CTRL_DISABLE = 1, + TSX_CTRL_RTM_ALWAYS_ABORT = 2, + TSX_CTRL_NOT_SUPPORTED = 3, +}; + enum task_work_notify_mode { TWA_NONE = 0, TWA_RESUME = 1, @@ -24008,11 +25454,11 @@ struct mce_vendor_flags { __u64 __reserved_0: 60; }; -struct mca_msr_regs { - u32 (*ctl)(int); - u32 (*status)(int); - u32 (*addr)(int); - u32 (*misc)(int); +enum mca_msr { + MCA_CTL = 0, + MCA_STATUS = 1, + MCA_ADDR = 2, + MCA_MISC = 3, }; struct trace_event_raw_mce_record { @@ -24052,13 +25498,6 @@ struct mce_bank_dev { u8 bank; }; -enum handler_type { - EX_HANDLER_NONE = 0, - EX_HANDLER_FAULT = 1, - EX_HANDLER_UACCESS = 2, - EX_HANDLER_OTHER = 3, -}; - enum context { IN_KERNEL = 1, IN_USER = 2, @@ -24136,15 +25575,20 @@ enum smca_bank_types { SMCA_CS_V2 = 10, SMCA_PIE = 11, SMCA_UMC = 12, - SMCA_PB = 13, - SMCA_PSP = 14, - SMCA_PSP_V2 = 15, - SMCA_SMU = 16, - SMCA_SMU_V2 = 17, - SMCA_MP5 = 18, - SMCA_NBIO = 19, - SMCA_PCIE = 20, - N_SMCA_BANK_TYPES = 21, + SMCA_UMC_V2 = 13, + SMCA_PB = 14, + SMCA_PSP = 15, + SMCA_PSP_V2 = 16, + SMCA_SMU = 17, + SMCA_SMU_V2 = 18, + SMCA_MP5 = 19, + SMCA_NBIO = 20, + SMCA_PCIE = 21, + SMCA_PCIE_V2 = 22, + SMCA_XGMI_PCS = 23, + SMCA_XGMI_PHY = 24, + SMCA_WAFL_PHY = 25, + N_SMCA_BANK_TYPES = 26, }; struct smca_hwid { @@ -24178,35 +25622,6 @@ struct threshold_attr { ssize_t (*store)(struct threshold_block *, const char *, size_t); }; -struct _thermal_state { - u64 next_check; - u64 last_interrupt_time; - struct delayed_work therm_work; - long unsigned int count; - long unsigned int last_count; - long unsigned int max_time_ms; - long unsigned int total_time_ms; - bool rate_control_active; - bool new_event; - u8 level; - u8 sample_index; - u8 sample_count; - u8 average; - u8 baseline_temp; - u8 temp_samples[3]; -}; - -struct thermal_state { - struct _thermal_state core_throttle; - struct _thermal_state core_power_limit; - struct _thermal_state package_throttle; - struct _thermal_state package_power_limit; - struct _thermal_state core_thresh0; - struct _thermal_state core_thresh1; - struct _thermal_state pkg_thresh0; - struct _thermal_state pkg_thresh1; -}; - enum { CPER_SEV_RECOVERABLE = 0, CPER_SEV_FATAL = 1, @@ -24246,6 +25661,13 @@ struct cper_section_descriptor { u8 fru_text[20]; }; +struct cper_ia_proc_ctx { + u16 reg_ctx_type; + u16 reg_arr_size; + u32 msr_addr; + u64 mm_reg_addr; +}; + struct cper_sec_mem_err { u64 validation_bits; u64 error_status; @@ -24282,17 +25704,57 @@ struct cper_mce_record { struct mce mce; }; +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; +}; + +typedef struct poll_table_struct poll_table; + +struct mce_log_buffer { + char signature[12]; + unsigned int len; + unsigned int next; + unsigned int flags; + unsigned int recordlen; + struct mce entry[0]; +}; + +typedef int (*cpu_stop_fn_t)(void *); + +struct mtrr_var_range { + __u32 base_lo; + __u32 base_hi; + __u32 mask_lo; + __u32 mask_hi; +}; + typedef __u8 mtrr_type; +struct mtrr_state_type { + struct mtrr_var_range var_ranges[256]; + mtrr_type fixed_ranges[88]; + unsigned char enabled; + unsigned char have_fixed; + mtrr_type def_type; +}; + struct mtrr_ops { u32 vendor; u32 use_intel_if; void (*set)(unsigned int, long unsigned int, long unsigned int, mtrr_type); - void (*set_all)(); + void (*set_all)(void); void (*get)(unsigned int, long unsigned int *, long unsigned int *, mtrr_type *); int (*get_free_region)(long unsigned int, long unsigned int, int); int (*validate_add_page)(long unsigned int, long unsigned int, unsigned int); - int (*have_wrcomb)(); + int (*have_wrcomb)(void); }; struct set_mtrr_data { @@ -24352,21 +25814,6 @@ struct mtrr_gentry32 { compat_uint_t type; }; -struct mtrr_var_range { - __u32 base_lo; - __u32 base_hi; - __u32 mask_lo; - __u32 mask_hi; -}; - -struct mtrr_state_type { - struct mtrr_var_range var_ranges[256]; - mtrr_type fixed_ranges[88]; - unsigned char enabled; - unsigned char have_fixed; - mtrr_type def_type; -}; - struct fixed_range_block { int base_msr; int ranges; @@ -24498,6 +25945,7 @@ struct firmware { struct ucode_patch { struct list_head plist; void *data; + unsigned int size; u32 patch_id; u16 equiv_cpu; }; @@ -24576,7 +26024,124 @@ struct cont_desc { size_t size; }; -typedef void (*exitcall_t)(); +enum resctrl_conf_type { + CDP_NONE = 0, + CDP_CODE = 1, + CDP_DATA = 2, +}; + +struct resctrl_staged_config { + u32 new_ctrl; + bool have_new_ctrl; +}; + +struct mbm_state; + +struct pseudo_lock_region; + +struct rdt_domain { + struct list_head list; + int id; + struct cpumask cpu_mask; + long unsigned int *rmid_busy_llc; + struct mbm_state *mbm_total; + struct mbm_state *mbm_local; + struct delayed_work mbm_over; + struct delayed_work cqm_limbo; + int mbm_work_cpu; + int cqm_work_cpu; + struct pseudo_lock_region *plr; + struct resctrl_staged_config staged_config[3]; +}; + +struct mbm_state { + u64 chunks; + u64 prev_msr; + u64 prev_bw_msr; + u32 prev_bw; + u32 delta_bw; + bool delta_comp; +}; + +struct resctrl_schema; + +struct pseudo_lock_region { + struct resctrl_schema *s; + struct rdt_domain *d; + u32 cbm; + wait_queue_head_t lock_thread_wq; + int thread_done; + int cpu; + unsigned int line_size; + unsigned int size; + void *kmem; + unsigned int minor; + struct dentry *debugfs_dir; + struct list_head pm_reqs; +}; + +struct resctrl_cache { + unsigned int cbm_len; + unsigned int min_cbm_bits; + unsigned int shareable_bits; + bool arch_has_sparse_bitmaps; + bool arch_has_empty_bitmaps; + bool arch_has_per_cpu_cfg; +}; + +enum membw_throttle_mode { + THREAD_THROTTLE_UNDEFINED = 0, + THREAD_THROTTLE_MAX = 1, + THREAD_THROTTLE_PER_THREAD = 2, +}; + +struct resctrl_membw { + u32 min_bw; + u32 bw_gran; + u32 delay_linear; + bool arch_needs_linear; + enum membw_throttle_mode throttle_mode; + bool mba_sc; + u32 *mb_map; +}; + +struct rdt_parse_data; + +struct rdt_resource { + int rid; + bool alloc_enabled; + bool mon_enabled; + bool alloc_capable; + bool mon_capable; + int num_rmid; + int cache_level; + struct resctrl_cache cache; + struct resctrl_membw membw; + struct list_head domains; + char *name; + int data_width; + u32 default_ctrl; + const char *format_str; + int (*parse_ctrlval)(struct rdt_parse_data *, struct resctrl_schema *, struct rdt_domain *); + struct list_head evt_list; + long unsigned int fflags; + bool cdp_capable; +}; + +struct rdtgroup; + +struct rdt_parse_data { + struct rdtgroup *rdtgrp; + char *buf; +}; + +struct resctrl_schema { + struct list_head list; + char name[8]; + enum resctrl_conf_type conf_type; + struct rdt_resource *res; + u32 num_closid; +}; enum rdt_group_type { RDTCTRL_GROUP = 0, @@ -24584,8 +26149,6 @@ enum rdt_group_type { RDT_NUM_GROUP = 2, }; -struct rdtgroup; - struct mongroup { struct kernfs_node *mon_data_kn; struct rdtgroup *parent; @@ -24601,8 +26164,6 @@ enum rdtgrp_mode { RDT_NUM_MODES = 4, }; -struct pseudo_lock_region; - struct rdtgroup { struct kernfs_node *kn; struct list_head rdtgroup_list; @@ -24616,128 +26177,33 @@ struct rdtgroup { struct pseudo_lock_region *plr; }; -struct rdt_cache { - unsigned int cbm_len; - unsigned int min_cbm_bits; - unsigned int cbm_idx_mult; - unsigned int cbm_idx_offset; - unsigned int shareable_bits; - bool arch_has_sparse_bitmaps; - bool arch_has_empty_bitmaps; - bool arch_has_per_cpu_cfg; -}; - -enum membw_throttle_mode { - THREAD_THROTTLE_UNDEFINED = 0, - THREAD_THROTTLE_MAX = 1, - THREAD_THROTTLE_PER_THREAD = 2, -}; - -struct rdt_membw { - u32 min_bw; - u32 bw_gran; - u32 delay_linear; - bool arch_needs_linear; - enum membw_throttle_mode throttle_mode; - bool mba_sc; - u32 *mb_map; -}; - -struct rdt_domain; - -struct msr_param; - -struct rdt_parse_data; - -struct rdt_resource { - int rid; - bool alloc_enabled; - bool mon_enabled; - bool alloc_capable; - bool mon_capable; - char *name; - int num_closid; - int cache_level; - u32 default_ctrl; - unsigned int msr_base; - void (*msr_update)(struct rdt_domain *, struct msr_param *, struct rdt_resource *); - int data_width; - struct list_head domains; - struct rdt_cache cache; - struct rdt_membw membw; - const char *format_str; - int (*parse_ctrlval)(struct rdt_parse_data *, struct rdt_resource *, struct rdt_domain *); - struct list_head evt_list; - int num_rmid; - unsigned int mon_scale; - unsigned int mbm_width; - long unsigned int fflags; -}; - -struct mbm_state; - -struct rdt_domain { - struct list_head list; - int id; - struct cpumask cpu_mask; - long unsigned int *rmid_busy_llc; - struct mbm_state *mbm_total; - struct mbm_state *mbm_local; - struct delayed_work mbm_over; - struct delayed_work cqm_limbo; - int mbm_work_cpu; - int cqm_work_cpu; +struct rdt_hw_domain { + struct rdt_domain d_resctrl; u32 *ctrl_val; u32 *mbps_val; - u32 new_ctrl; - bool have_new_ctrl; - struct pseudo_lock_region *plr; -}; - -struct pseudo_lock_region { - struct rdt_resource *r; - struct rdt_domain *d; - u32 cbm; - wait_queue_head_t lock_thread_wq; - int thread_done; - int cpu; - unsigned int line_size; - unsigned int size; - void *kmem; - unsigned int minor; - struct dentry *debugfs_dir; - struct list_head pm_reqs; -}; - -struct mbm_state { - u64 chunks; - u64 prev_msr; - u64 prev_bw_msr; - u32 prev_bw; - u32 delta_bw; - bool delta_comp; }; struct msr_param { struct rdt_resource *res; - int low; - int high; + u32 low; + u32 high; }; -struct rdt_parse_data { - struct rdtgroup *rdtgrp; - char *buf; +struct rdt_hw_resource { + struct rdt_resource r_resctrl; + u32 num_closid; + unsigned int msr_base; + void (*msr_update)(struct rdt_domain *, struct msr_param *, struct rdt_resource *); + unsigned int mon_scale; + unsigned int mbm_width; + bool cdp_enabled; }; -enum { +enum resctrl_res_level { RDT_RESOURCE_L3 = 0, - RDT_RESOURCE_L3DATA = 1, - RDT_RESOURCE_L3CODE = 2, - RDT_RESOURCE_L2 = 3, - RDT_RESOURCE_L2DATA = 4, - RDT_RESOURCE_L2CODE = 5, - RDT_RESOURCE_MBA = 6, - RDT_NUM_RESOURCES = 7, + RDT_RESOURCE_L2 = 1, + RDT_RESOURCE_MBA = 2, + RDT_NUM_RESOURCES = 3, }; union cpuid_0x10_1_eax { @@ -24781,17 +26247,6 @@ struct rdt_options { typedef unsigned int uint; -struct __va_list_tag { - unsigned int gp_offset; - unsigned int fp_offset; - void *overflow_arg_area; - void *reg_save_area; -}; - -typedef __builtin_va_list __gnuc_va_list; - -typedef __gnuc_va_list va_list; - enum kernfs_node_type { KERNFS_DIR = 1, KERNFS_FILE = 2, @@ -24846,7 +26301,7 @@ struct rmid_read { struct rftype { char *name; umode_t mode; - struct kernfs_ops *kf_ops; + const struct kernfs_ops *kf_ops; long unsigned int flags; long unsigned int fflags; int (*seq_show)(struct kernfs_open_file *, struct seq_file *, void *); @@ -24866,6 +26321,11 @@ struct rmid_entry { struct list_head list; }; +struct mbm_correction_factor_table { + u32 rmidthreshold; + u64 cf; +}; + struct trace_event_raw_pseudo_lock_mem_latency { struct trace_entry ent; u32 latency; @@ -24910,6 +26370,472 @@ struct residency_counts { u64 hits_after; }; +enum mmu_notifier_event { + MMU_NOTIFY_UNMAP = 0, + MMU_NOTIFY_CLEAR = 1, + MMU_NOTIFY_PROTECTION_VMA = 2, + MMU_NOTIFY_PROTECTION_PAGE = 3, + MMU_NOTIFY_SOFT_DIRTY = 4, + MMU_NOTIFY_RELEASE = 5, + MMU_NOTIFY_MIGRATE = 6, + MMU_NOTIFY_EXCLUSIVE = 7, +}; + +struct mmu_notifier; + +struct mmu_notifier_range; + +struct mmu_notifier_ops { + void (*release)(struct mmu_notifier *, struct mm_struct *); + int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + int (*clear_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + int (*test_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int); + void (*change_pte)(struct mmu_notifier *, struct mm_struct *, long unsigned int, pte_t); + int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *); + void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *); + void (*invalidate_range)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); + struct mmu_notifier * (*alloc_notifier)(struct mm_struct *); + void (*free_notifier)(struct mmu_notifier *); +}; + +struct mmu_notifier { + struct hlist_node hlist; + const struct mmu_notifier_ops *ops; + struct mm_struct *mm; + struct callback_head rcu; + unsigned int users; +}; + +struct mmu_notifier_range { + struct vm_area_struct *vma; + struct mm_struct *mm; + long unsigned int start; + long unsigned int end; + unsigned int flags; + enum mmu_notifier_event event; + void *owner; +}; + +enum sgx_page_type { + SGX_PAGE_TYPE_SECS = 0, + SGX_PAGE_TYPE_TCS = 1, + SGX_PAGE_TYPE_REG = 2, + SGX_PAGE_TYPE_VA = 3, + SGX_PAGE_TYPE_TRIM = 4, +}; + +struct sgx_encl_page; + +struct sgx_epc_page { + unsigned int section; + unsigned int flags; + struct sgx_encl_page *owner; + struct list_head list; +}; + +struct sgx_encl; + +struct sgx_va_page; + +struct sgx_encl_page { + long unsigned int desc; + long unsigned int vm_max_prot_bits; + struct sgx_epc_page *epc_page; + struct sgx_encl *encl; + struct sgx_va_page *va_page; +}; + +struct sgx_encl { + long unsigned int base; + long unsigned int size; + long unsigned int flags; + unsigned int page_cnt; + unsigned int secs_child_cnt; + struct mutex lock; + struct xarray page_array; + struct sgx_encl_page secs; + long unsigned int attributes; + long unsigned int attributes_mask; + cpumask_t cpumask; + struct file *backing; + struct kref refcount; + struct list_head va_pages; + long unsigned int mm_list_version; + struct list_head mm_list; + spinlock_t mm_lock; + struct srcu_struct srcu; +}; + +struct sgx_va_page { + struct sgx_epc_page *epc_page; + long unsigned int slots[8]; + struct list_head list; +}; + +struct sgx_encl_mm { + struct sgx_encl *encl; + struct mm_struct *mm; + struct list_head list; + struct mmu_notifier mmu_notifier; +}; + +enum { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; + +struct xa_node { + unsigned char shift; + unsigned char offset; + unsigned char count; + unsigned char nr_values; + struct xa_node *parent; + struct xarray *array; + union { + struct list_head private_list; + struct callback_head callback_head; + }; + void *slots[64]; + union { + long unsigned int tags[3]; + long unsigned int marks[3]; + }; +}; + +typedef void (*xa_update_node_t)(struct xa_node *); + +struct xa_state { + struct xarray *xa; + long unsigned int xa_index; + unsigned char xa_shift; + unsigned char xa_sibs; + unsigned char xa_offset; + unsigned char xa_pad; + struct xa_node *xa_node; + struct xa_node *xa_alloc; + xa_update_node_t xa_update; +}; + +enum { + XA_CHECK_SCHED = 4096, +}; + +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, +}; + +enum sgx_encls_function { + ECREATE = 0, + EADD = 1, + EINIT = 2, + EREMOVE = 3, + EDGBRD = 4, + EDGBWR = 5, + EEXTEND = 6, + ELDU = 8, + EBLOCK = 9, + EPA = 10, + EWB = 11, + ETRACK = 12, + EAUG = 13, + EMODPR = 14, + EMODT = 15, +}; + +struct sgx_pageinfo { + u64 addr; + u64 contents; + u64 metadata; + u64 secs; +}; + +struct sgx_numa_node { + struct list_head free_page_list; + spinlock_t lock; +}; + +struct sgx_epc_section { + long unsigned int phys_addr; + void *virt_addr; + struct sgx_epc_page *pages; + struct sgx_numa_node *node; +}; + +enum sgx_encl_flags { + SGX_ENCL_IOCTL = 1, + SGX_ENCL_DEBUG = 2, + SGX_ENCL_CREATED = 4, + SGX_ENCL_INITIALIZED = 8, +}; + +struct sgx_backing { + long unsigned int page_index; + struct page *contents; + struct page *pcmd; + long unsigned int pcmd_offset; +}; + +enum sgx_return_code { + SGX_NOT_TRACKED = 11, + SGX_CHILD_PRESENT = 13, + SGX_INVALID_EINITTOKEN = 16, + SGX_UNMASKED_EVENT = 128, +}; + +enum sgx_attribute { + SGX_ATTR_INIT = 1, + SGX_ATTR_DEBUG = 2, + SGX_ATTR_MODE64BIT = 4, + SGX_ATTR_PROVISIONKEY = 16, + SGX_ATTR_EINITTOKENKEY = 32, + SGX_ATTR_KSS = 128, +}; + +struct sgx_secs { + u64 size; + u64 base; + u32 ssa_frame_size; + u32 miscselect; + u8 reserved1[24]; + u64 attributes; + u64 xfrm; + u32 mrenclave[8]; + u8 reserved2[32]; + u32 mrsigner[8]; + u8 reserved3[32]; + u32 config_id[16]; + u16 isv_prod_id; + u16 isv_svn; + u16 config_svn; + u8 reserved4[3834]; +}; + +enum sgx_secinfo_flags { + SGX_SECINFO_R = 1, + SGX_SECINFO_W = 2, + SGX_SECINFO_X = 4, + SGX_SECINFO_SECS = 0, + SGX_SECINFO_TCS = 256, + SGX_SECINFO_REG = 512, + SGX_SECINFO_VA = 768, + SGX_SECINFO_TRIM = 1024, +}; + +struct sgx_secinfo { + u64 flags; + u8 reserved[56]; +}; + +struct sgx_sigstruct_header { + u64 header1[2]; + u32 vendor; + u32 date; + u64 header2[2]; + u32 swdefined; + u8 reserved1[84]; +}; + +struct sgx_sigstruct_body { + u32 miscselect; + u32 misc_mask; + u8 reserved2[20]; + u64 attributes; + u64 xfrm; + u64 attributes_mask; + u64 xfrm_mask; + u8 mrenclave[32]; + u8 reserved3[32]; + u16 isvprodid; + u16 isvsvn; +} __attribute__((packed)); + +struct sgx_sigstruct { + struct sgx_sigstruct_header header; + u8 modulus[384]; + u32 exponent; + u8 signature[384]; + struct sgx_sigstruct_body body; + u8 reserved4[12]; + u8 q1[384]; + u8 q2[384]; +}; + +struct crypto_alg; + +struct crypto_tfm { + u32 crt_flags; + int node; + void (*exit)(struct crypto_tfm *); + struct crypto_alg *__crt_alg; + void *__crt_ctx[0]; +}; + +struct cipher_alg { + unsigned int cia_min_keysize; + unsigned int cia_max_keysize; + int (*cia_setkey)(struct crypto_tfm *, const u8 *, unsigned int); + void (*cia_encrypt)(struct crypto_tfm *, u8 *, const u8 *); + void (*cia_decrypt)(struct crypto_tfm *, u8 *, const u8 *); +}; + +struct compress_alg { + int (*coa_compress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *); + int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *); +}; + +struct crypto_istat_aead { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; +}; + +struct crypto_istat_akcipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t verify_cnt; + atomic64_t sign_cnt; + atomic64_t err_cnt; +}; + +struct crypto_istat_cipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; +}; + +struct crypto_istat_compress { + atomic64_t compress_cnt; + atomic64_t compress_tlen; + atomic64_t decompress_cnt; + atomic64_t decompress_tlen; + atomic64_t err_cnt; +}; + +struct crypto_istat_hash { + atomic64_t hash_cnt; + atomic64_t hash_tlen; + atomic64_t err_cnt; +}; + +struct crypto_istat_kpp { + atomic64_t setsecret_cnt; + atomic64_t generate_public_key_cnt; + atomic64_t compute_shared_secret_cnt; + atomic64_t err_cnt; +}; + +struct crypto_istat_rng { + atomic64_t generate_cnt; + atomic64_t generate_tlen; + atomic64_t seed_cnt; + atomic64_t err_cnt; +}; + +struct crypto_type; + +struct crypto_alg { + struct list_head cra_list; + struct list_head cra_users; + u32 cra_flags; + unsigned int cra_blocksize; + unsigned int cra_ctxsize; + unsigned int cra_alignmask; + int cra_priority; + refcount_t cra_refcnt; + char cra_name[128]; + char cra_driver_name[128]; + const struct crypto_type *cra_type; + union { + struct cipher_alg cipher; + struct compress_alg compress; + } cra_u; + int (*cra_init)(struct crypto_tfm *); + void (*cra_exit)(struct crypto_tfm *); + void (*cra_destroy)(struct crypto_alg *); + struct module *cra_module; + union { + struct crypto_istat_aead aead; + struct crypto_istat_akcipher akcipher; + struct crypto_istat_cipher cipher; + struct crypto_istat_compress compress; + struct crypto_istat_hash hash; + struct crypto_istat_rng rng; + struct crypto_istat_kpp kpp; + } stats; +}; + +struct crypto_instance; + +struct crypto_type { + unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); + unsigned int (*extsize)(struct crypto_alg *); + int (*init)(struct crypto_tfm *, u32, u32); + int (*init_tfm)(struct crypto_tfm *); + void (*show)(struct seq_file *, struct crypto_alg *); + int (*report)(struct sk_buff *, struct crypto_alg *); + void (*free)(struct crypto_instance *); + unsigned int type; + unsigned int maskclear; + unsigned int maskset; + unsigned int tfmsize; +}; + +struct crypto_shash; + +struct shash_desc { + struct crypto_shash *tfm; + void *__ctx[0]; +}; + +struct crypto_shash { + unsigned int descsize; + struct crypto_tfm base; +}; + +enum sgx_page_flags { + SGX_PAGE_MEASURE = 1, +}; + +struct sgx_enclave_create { + __u64 src; +}; + +struct sgx_enclave_add_pages { + __u64 src; + __u64 offset; + __u64 length; + __u64 secinfo; + __u64 flags; + __u64 count; +}; + +struct sgx_enclave_init { + __u64 sigstruct; +}; + +struct sgx_enclave_provision { + __u64 fd; +}; + +typedef unsigned int xa_mark_t; + +struct sgx_vepc { + struct xarray page_array; + struct mutex lock; +}; + struct vmcb_seg { u16 selector; u16 attrib; @@ -24932,7 +26858,8 @@ struct vmcb_save_area { u8 cpl; u8 reserved_2[4]; u64 efer; - u8 reserved_3[112]; + u8 reserved_3[104]; + u64 xss; u64 cr4; u64 cr3; u64 cr0; @@ -24960,7 +26887,11 @@ struct vmcb_save_area { u64 br_to; u64 last_excp_from; u64 last_excp_to; - u8 reserved_7[104]; + u8 reserved_7[72]; + u32 spec_ctrl; + u8 reserved_7b[4]; + u32 pkru; + u8 reserved_7a[20]; u64 reserved_8; u64 rcx; u64 rdx; @@ -25035,14 +26966,68 @@ enum mp_irq_source_types { mp_ExtINT = 3, }; +enum mp_bustype { + MP_BUS_ISA = 1, + MP_BUS_EISA = 2, + MP_BUS_PCI = 3, +}; + +typedef u64 acpi_io_address; + typedef u64 acpi_physical_address; -typedef u32 acpi_status; +typedef char *acpi_string; typedef void *acpi_handle; +typedef u32 acpi_object_type; + typedef u8 acpi_adr_space_type; +union acpi_object { + acpi_object_type type; + struct { + acpi_object_type type; + u64 value; + } integer; + struct { + acpi_object_type type; + u32 length; + char *pointer; + } string; + struct { + acpi_object_type type; + u32 length; + u8 *pointer; + } buffer; + struct { + acpi_object_type type; + u32 count; + union acpi_object *elements; + } package; + struct { + acpi_object_type type; + acpi_object_type actual_type; + acpi_handle handle; + } reference; + struct { + acpi_object_type type; + u32 proc_id; + acpi_io_address pblk_address; + u32 pblk_length; + } processor; + struct { + acpi_object_type type; + u32 system_level; + u32 resource_order; + } power_resource; +}; + +struct acpi_object_list { + u32 count; + union acpi_object *pointer; +}; + struct acpi_subtable_header { u8 type; u8 length; @@ -25092,7 +27077,8 @@ enum acpi_madt_type { ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_RESERVED = 16, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_RESERVED = 17, }; struct acpi_madt_local_apic { @@ -25164,11 +27150,19 @@ struct acpi_madt_local_x2apic_nmi { u8 reserved[3]; }; +struct acpi_prmt_module_header { + u16 revision; + u16 length; +}; + union acpi_subtable_headers { struct acpi_subtable_header common; struct acpi_hmat_structure hmat; + struct acpi_prmt_module_header prmt; }; +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); + typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const long unsigned int); struct acpi_subtable_proc { @@ -25179,63 +27173,6 @@ struct acpi_subtable_proc { typedef u32 phys_cpuid_t; -enum irq_alloc_type { - X86_IRQ_ALLOC_TYPE_IOAPIC = 1, - X86_IRQ_ALLOC_TYPE_HPET = 2, - X86_IRQ_ALLOC_TYPE_PCI_MSI = 3, - X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4, - X86_IRQ_ALLOC_TYPE_DMAR = 5, - X86_IRQ_ALLOC_TYPE_UV = 6, - X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT = 7, - X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT = 8, -}; - -struct IO_APIC_route_entry; - -struct ioapic_alloc_info { - int pin; - int node; - u32 trigger: 1; - u32 polarity: 1; - u32 valid: 1; - struct IO_APIC_route_entry *entry; -}; - -struct IO_APIC_route_entry { - __u32 vector: 8; - __u32 delivery_mode: 3; - __u32 dest_mode: 1; - __u32 delivery_status: 1; - __u32 polarity: 1; - __u32 irr: 1; - __u32 trigger: 1; - __u32 mask: 1; - __u32 __reserved_2: 15; - __u32 __reserved_3: 24; - __u32 dest: 8; -}; - -struct uv_alloc_info { - int limit; - int blade; - long unsigned int offset; - char *name; -}; - -struct irq_alloc_info { - enum irq_alloc_type type; - u32 flags; - u32 devid; - irq_hw_number_t hwirq; - const struct cpumask *mask; - struct msi_desc *desc; - void *data; - union { - struct ioapic_alloc_info ioapic; - struct uv_alloc_info uv; - }; -}; - struct serial_icounter_struct { int cts; int dsr; @@ -25438,19 +27375,21 @@ enum { SD_BALANCE_WAKE = 8, SD_WAKE_AFFINE = 16, SD_ASYM_CPUCAPACITY = 32, - SD_SHARE_CPUCAPACITY = 64, - SD_SHARE_PKG_RESOURCES = 128, - SD_SERIALIZE = 256, - SD_ASYM_PACKING = 512, - SD_PREFER_SIBLING = 1024, - SD_OVERLAP = 2048, - SD_NUMA = 4096, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_SHARE_PKG_RESOURCES = 256, + SD_SERIALIZE = 512, + SD_ASYM_PACKING = 1024, + SD_PREFER_SIBLING = 2048, + SD_OVERLAP = 4096, + SD_NUMA = 8192, }; struct sched_domain_shared { atomic_t ref; atomic_t nr_busy_cpus; int has_idle_cores; + int nr_idle_scan; }; struct sched_group; @@ -25505,7 +27444,7 @@ struct sched_domain { typedef const struct cpumask * (*sched_domain_mask_f)(int); -typedef int (*sched_domain_flags_f)(); +typedef int (*sched_domain_flags_f)(void); struct sched_group_capacity; @@ -25533,6 +27472,21 @@ enum apic_intr_mode_id { APIC_SYMMETRIC_IO_NO_ROUTING = 4, }; +struct cppc_perf_caps { + u32 guaranteed_perf; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_perf; + u32 lowest_nonlinear_perf; + u32 lowest_freq; + u32 nominal_freq; +}; + +struct mwait_cpu_dead { + unsigned int control; + unsigned int status; +}; + struct tsc_adjust { s64 bootval; s64 adjusted; @@ -25540,6 +27494,14 @@ struct tsc_adjust { bool warned; }; +typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int, size_t, size_t); + +typedef void (*pcpu_fc_free_fn_t)(void *, size_t); + +typedef void (*pcpu_fc_populate_pte_fn_t)(long unsigned int); + +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); + enum { DUMP_PREFIX_NONE = 0, DUMP_PREFIX_ADDRESS = 1, @@ -25633,17 +27595,6 @@ enum { X2APIC_DISABLED = 2, }; -enum ioapic_irq_destination_types { - dest_Fixed = 0, - dest_LowestPrio = 1, - dest_SMI = 2, - dest__reserved_1 = 3, - dest_NMI = 4, - dest_INIT = 5, - dest__reserved_2 = 6, - dest_ExtINT = 7, -}; - enum { IRQ_SET_MASK_OK = 0, IRQ_SET_MASK_OK_NOCOPY = 1, @@ -25677,17 +27628,6 @@ enum { IRQD_IRQ_ENABLED_ON_SUSPEND = 1073741824, }; -struct irq_cfg { - unsigned int dest_apicid; - unsigned int vector; -}; - -enum { - IRQCHIP_FWNODE_REAL = 0, - IRQCHIP_FWNODE_NAMED = 1, - IRQCHIP_FWNODE_NAMED_ID = 2, -}; - enum { X86_IRQ_ALLOC_CONTIGUOUS_VECTORS = 1, X86_IRQ_ALLOC_LEGACY = 2, @@ -25707,50 +27647,6 @@ struct apic_chip_data { unsigned int has_reserved: 1; }; -struct irq_matrix; - -enum { - IRQ_TYPE_NONE = 0, - IRQ_TYPE_EDGE_RISING = 1, - IRQ_TYPE_EDGE_FALLING = 2, - IRQ_TYPE_EDGE_BOTH = 3, - IRQ_TYPE_LEVEL_HIGH = 4, - IRQ_TYPE_LEVEL_LOW = 8, - IRQ_TYPE_LEVEL_MASK = 12, - IRQ_TYPE_SENSE_MASK = 15, - IRQ_TYPE_DEFAULT = 15, - IRQ_TYPE_PROBE = 16, - IRQ_LEVEL = 256, - IRQ_PER_CPU = 512, - IRQ_NOPROBE = 1024, - IRQ_NOREQUEST = 2048, - IRQ_NOAUTOEN = 4096, - IRQ_NO_BALANCING = 8192, - IRQ_MOVE_PCNTXT = 16384, - IRQ_NESTED_THREAD = 32768, - IRQ_NOTHREAD = 65536, - IRQ_PER_CPU_DEVID = 131072, - IRQ_IS_POLLED = 262144, - IRQ_DISABLE_UNLAZY = 524288, - IRQ_HIDDEN = 1048576, -}; - -enum { - IRQCHIP_SET_TYPE_MASKED = 1, - IRQCHIP_EOI_IF_HANDLED = 2, - IRQCHIP_MASK_ON_SUSPEND = 4, - IRQCHIP_ONOFFLINE_ENABLED = 8, - IRQCHIP_SKIP_SET_WAKE = 16, - IRQCHIP_ONESHOT_SAFE = 32, - IRQCHIP_EOI_THREADED = 64, - IRQCHIP_SUPPORTS_LEVEL_MSI = 128, - IRQCHIP_SUPPORTS_NMI = 256, - IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, - IRQCHIP_AFFINITY_PRE_STARTUP = 1024, -}; - -struct clock_event_device; - union IO_APIC_reg_00 { u32 raw; struct { @@ -25790,18 +27686,36 @@ union IO_APIC_reg_03 { } bits; }; -struct IR_IO_APIC_route_entry { - __u64 vector: 8; - __u64 zero: 3; - __u64 index2: 1; - __u64 delivery_status: 1; - __u64 polarity: 1; - __u64 irr: 1; - __u64 trigger: 1; - __u64 mask: 1; - __u64 reserved: 31; - __u64 format: 1; - __u64 index: 15; +struct IO_APIC_route_entry { + union { + struct { + u64 vector: 8; + u64 delivery_mode: 3; + u64 dest_mode_logical: 1; + u64 delivery_status: 1; + u64 active_low: 1; + u64 irr: 1; + u64 is_level: 1; + u64 masked: 1; + u64 reserved_0: 15; + u64 reserved_1: 17; + u64 virt_destid_8_14: 7; + u64 destid_0_7: 8; + }; + struct { + u64 ir_shared_0: 8; + u64 ir_zero: 3; + u64 ir_index_15: 1; + u64 ir_shared_1: 5; + u64 ir_reserved_0: 31; + u64 ir_format: 1; + u64 ir_index_0_14: 15; + }; + struct { + u64 w1: 32; + u64 w2: 32; + }; + }; }; struct irq_pin_list { @@ -25813,10 +27727,10 @@ struct irq_pin_list { struct mp_chip_data { struct list_head irq_2_pin; struct IO_APIC_route_entry entry; - int trigger; - int polarity; - u32 count; + bool is_level; + bool active_low; bool isa_irq; + u32 count; }; struct mp_ioapic_gsi { @@ -25842,14 +27756,6 @@ struct io_apic { unsigned int eoi; }; -union entry_union { - struct { - u32 w1; - u32 w2; - }; - struct IO_APIC_route_entry entry; -}; - enum { IRQ_DOMAIN_FLAG_HIERARCHY = 1, IRQ_DOMAIN_NAME_ALLOCATED = 2, @@ -25858,48 +27764,1031 @@ enum { IRQ_DOMAIN_FLAG_MSI = 16, IRQ_DOMAIN_FLAG_MSI_REMAP = 32, IRQ_DOMAIN_MSI_NOMASK_QUIRK = 64, + IRQ_DOMAIN_FLAG_NO_MAP = 128, IRQ_DOMAIN_FLAG_NONCORE = 65536, }; -typedef struct irq_alloc_info msi_alloc_info_t; +typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); -struct msi_domain_info; - -struct msi_domain_ops { - irq_hw_number_t (*get_hwirq)(struct msi_domain_info *, msi_alloc_info_t *); - int (*msi_init)(struct irq_domain *, struct msi_domain_info *, unsigned int, irq_hw_number_t, msi_alloc_info_t *); - void (*msi_free)(struct irq_domain *, struct msi_domain_info *, unsigned int); - int (*msi_check)(struct irq_domain *, struct msi_domain_info *, struct device *); - int (*msi_prepare)(struct irq_domain *, struct device *, int, msi_alloc_info_t *); - void (*msi_finish)(msi_alloc_info_t *, int); - void (*set_desc)(msi_alloc_info_t *, struct msi_desc *); - int (*handle_error)(struct irq_domain *, struct msi_desc *, int); - int (*domain_alloc_irqs)(struct irq_domain *, struct device *, int); - void (*domain_free_irqs)(struct irq_domain *, struct device *); +struct acpi_device_status { + u32 present: 1; + u32 enabled: 1; + u32 show_in_ui: 1; + u32 functional: 1; + u32 battery_present: 1; + u32 reserved: 27; }; -struct msi_domain_info { - u32 flags; - struct msi_domain_ops *ops; - struct irq_chip *chip; - void *chip_data; - irq_flow_handler_t handler; - void *handler_data; - const char *handler_name; - void *data; +struct acpi_device_flags { + u32 dynamic_status: 1; + u32 removable: 1; + u32 ejectable: 1; + u32 power_manageable: 1; + u32 match_driver: 1; + u32 initialized: 1; + u32 visited: 1; + u32 hotplug_notify: 1; + u32 is_dock_station: 1; + u32 of_compatible_ok: 1; + u32 coherent_dma: 1; + u32 cca_seen: 1; + u32 enumeration_by_parent: 1; + u32 reserved: 19; +}; + +typedef char acpi_bus_id[8]; + +struct acpi_pnp_type { + u32 hardware_id: 1; + u32 bus_address: 1; + u32 platform_id: 1; + u32 reserved: 29; +}; + +typedef u64 acpi_bus_address; + +typedef char acpi_device_name[40]; + +typedef char acpi_device_class[20]; + +struct acpi_device_pnp { + acpi_bus_id bus_id; + int instance_no; + struct acpi_pnp_type type; + acpi_bus_address bus_address; + char *unique_id; + struct list_head ids; + acpi_device_name device_name; + acpi_device_class device_class; + union acpi_object *str_obj; +}; + +struct acpi_device_power_flags { + u32 explicit_get: 1; + u32 power_resources: 1; + u32 inrush_current: 1; + u32 power_removed: 1; + u32 ignore_parent: 1; + u32 dsw_present: 1; + u32 reserved: 26; +}; + +struct acpi_device_power_state { + struct { + u8 valid: 1; + u8 explicit_set: 1; + u8 reserved: 6; + } flags; + int power; + int latency; + struct list_head resources; +}; + +struct acpi_device_power { + int state; + struct acpi_device_power_flags flags; + struct acpi_device_power_state states[5]; +}; + +struct acpi_device_wakeup_flags { + u8 valid: 1; + u8 notifier_present: 1; +}; + +struct acpi_device_wakeup_context { + void (*func)(struct acpi_device_wakeup_context *); + struct device *dev; +}; + +struct acpi_device_wakeup { + acpi_handle gpe_device; + u64 gpe_number; + u64 sleep_state; + struct list_head resources; + struct acpi_device_wakeup_flags flags; + struct acpi_device_wakeup_context context; + struct wakeup_source *ws; + int prepare_count; + int enable_count; +}; + +struct acpi_device_perf_flags { + u8 reserved: 8; +}; + +struct acpi_device_perf_state; + +struct acpi_device_perf { + int state; + struct acpi_device_perf_flags flags; + int state_count; + struct acpi_device_perf_state *states; +}; + +struct acpi_device_dir { + struct proc_dir_entry *entry; +}; + +struct acpi_device_data { + const union acpi_object *pointer; + struct list_head properties; + const union acpi_object *of_compatible; + struct list_head subnodes; +}; + +struct acpi_scan_handler; + +struct acpi_hotplug_context; + +struct acpi_driver; + +struct acpi_gpio_mapping; + +struct acpi_device { + int device_type; + acpi_handle handle; + struct fwnode_handle fwnode; + struct acpi_device *parent; + struct list_head children; + struct list_head node; + struct list_head wakeup_list; + struct list_head del_list; + struct acpi_device_status status; + struct acpi_device_flags flags; + struct acpi_device_pnp pnp; + struct acpi_device_power power; + struct acpi_device_wakeup wakeup; + struct acpi_device_perf performance; + struct acpi_device_dir dir; + struct acpi_device_data data; + struct acpi_scan_handler *handler; + struct acpi_hotplug_context *hp; + struct acpi_driver *driver; + const struct acpi_gpio_mapping *driver_gpios; + void *driver_data; + struct device dev; + unsigned int physical_node_count; + unsigned int dep_unmet; + struct list_head physical_node_list; + struct mutex physical_node_lock; + void (*remove)(struct acpi_device *); +}; + +struct acpi_hotplug_profile { + struct kobject kobj; + int (*scan_dependent)(struct acpi_device *); + void (*notify_online)(struct acpi_device *); + bool enabled: 1; + bool demand_offline: 1; +}; + +struct acpi_scan_handler { + const struct acpi_device_id *ids; + struct list_head list_node; + bool (*match)(const char *, const struct acpi_device_id **); + int (*attach)(struct acpi_device *, const struct acpi_device_id *); + void (*detach)(struct acpi_device *); + void (*bind)(struct device *); + void (*unbind)(struct device *); + struct acpi_hotplug_profile hotplug; +}; + +struct acpi_hotplug_context { + struct acpi_device *self; + int (*notify)(struct acpi_device *, u32); + void (*uevent)(struct acpi_device *, u32); + void (*fixup)(struct acpi_device *); +}; + +typedef int (*acpi_op_add)(struct acpi_device *); + +typedef int (*acpi_op_remove)(struct acpi_device *); + +typedef void (*acpi_op_notify)(struct acpi_device *, u32); + +struct acpi_device_ops { + acpi_op_add add; + acpi_op_remove remove; + acpi_op_notify notify; +}; + +struct acpi_driver { + char name[80]; + char class[80]; + const struct acpi_device_id *ids; + unsigned int flags; + struct acpi_device_ops ops; + struct device_driver drv; + struct module *owner; +}; + +struct acpi_device_perf_state { + struct { + u8 valid: 1; + u8 reserved: 7; + } flags; + u8 power; + u8 performance; + int latency; +}; + +struct acpi_gpio_params; + +struct acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; +}; + +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; +}; + +struct uvyh_gr0_gam_gr_config_s { + long unsigned int rsvd_0_9: 10; + long unsigned int subspace: 1; + long unsigned int rsvd_11_63: 53; +}; + +struct uv5h_gr0_gam_gr_config_s { + long unsigned int rsvd_0_9: 10; + long unsigned int subspace: 1; + long unsigned int rsvd_11_63: 53; +}; + +struct uv4h_gr0_gam_gr_config_s { + long unsigned int rsvd_0_9: 10; + long unsigned int subspace: 1; + long unsigned int rsvd_11_63: 53; +}; + +struct uv3h_gr0_gam_gr_config_s { + long unsigned int m_skt: 6; + long unsigned int undef_6_9: 4; + long unsigned int subspace: 1; + long unsigned int reserved: 53; +}; + +struct uv2h_gr0_gam_gr_config_s { + long unsigned int n_gr: 4; + long unsigned int reserved: 60; +}; + +union uvyh_gr0_gam_gr_config_u { + long unsigned int v; + struct uvyh_gr0_gam_gr_config_s sy; + struct uv5h_gr0_gam_gr_config_s s5; + struct uv4h_gr0_gam_gr_config_s s4; + struct uv3h_gr0_gam_gr_config_s s3; + struct uv2h_gr0_gam_gr_config_s s2; +}; + +struct uvh_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int rsvd_32_63: 32; +}; + +struct uvxh_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47_49: 3; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uvyh_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 7; + long unsigned int rsvd_39_56: 18; + long unsigned int ni_port: 6; + long unsigned int rsvd_63: 1; +}; + +struct uv5h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 7; + long unsigned int rsvd_39_56: 18; + long unsigned int ni_port: 6; + long unsigned int rsvd_63: 1; +}; + +struct uv4h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47: 1; + long unsigned int router_select: 1; + long unsigned int rsvd_49: 1; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uv3h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47: 1; + long unsigned int router_select: 1; + long unsigned int rsvd_49: 1; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +struct uv2h_node_id_s { + long unsigned int force1: 1; + long unsigned int manufacturer: 11; + long unsigned int part_number: 16; + long unsigned int revision: 4; + long unsigned int node_id: 15; + long unsigned int rsvd_47_49: 3; + long unsigned int nodes_per_bit: 7; + long unsigned int ni_port: 5; + long unsigned int rsvd_62_63: 2; +}; + +union uvh_node_id_u { + long unsigned int v; + struct uvh_node_id_s s; + struct uvxh_node_id_s sx; + struct uvyh_node_id_s sy; + struct uv5h_node_id_s s5; + struct uv4h_node_id_s s4; + struct uv3h_node_id_s s3; + struct uv2h_node_id_s s2; +}; + +struct uvh_rh10_gam_addr_map_config_s { + long unsigned int undef_0_5: 6; + long unsigned int n_skt: 3; + long unsigned int undef_9_11: 3; + long unsigned int ls_enable: 1; + long unsigned int undef_13_15: 3; + long unsigned int mk_tme_keyid_bits: 4; + long unsigned int rsvd_20_63: 44; +}; + +struct uvyh_rh10_gam_addr_map_config_s { + long unsigned int undef_0_5: 6; + long unsigned int n_skt: 3; + long unsigned int undef_9_11: 3; + long unsigned int ls_enable: 1; + long unsigned int undef_13_15: 3; + long unsigned int mk_tme_keyid_bits: 4; + long unsigned int rsvd_20_63: 44; +}; + +struct uv5h_rh10_gam_addr_map_config_s { + long unsigned int undef_0_5: 6; + long unsigned int n_skt: 3; + long unsigned int undef_9_11: 3; + long unsigned int ls_enable: 1; + long unsigned int undef_13_15: 3; + long unsigned int mk_tme_keyid_bits: 4; +}; + +union uvh_rh10_gam_addr_map_config_u { + long unsigned int v; + struct uvh_rh10_gam_addr_map_config_s s; + struct uvyh_rh10_gam_addr_map_config_s sy; + struct uv5h_rh10_gam_addr_map_config_s s5; +}; + +struct uvh_rh10_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uvyh_rh10_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv5h_rh10_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +union uvh_rh10_gam_mmioh_overlay_config0_u { + long unsigned int v; + struct uvh_rh10_gam_mmioh_overlay_config0_s s; + struct uvyh_rh10_gam_mmioh_overlay_config0_s sy; + struct uv5h_rh10_gam_mmioh_overlay_config0_s s5; +}; + +struct uvh_rh10_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uvyh_rh10_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv5h_rh10_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +union uvh_rh10_gam_mmioh_overlay_config1_u { + long unsigned int v; + struct uvh_rh10_gam_mmioh_overlay_config1_s s; + struct uvyh_rh10_gam_mmioh_overlay_config1_s sy; + struct uv5h_rh10_gam_mmioh_overlay_config1_s s5; +}; + +struct uvh_rh10_gam_mmr_overlay_config_s { + long unsigned int undef_0_24: 25; + long unsigned int base: 27; + long unsigned int undef_52_62: 11; + long unsigned int enable: 1; +}; + +struct uvyh_rh10_gam_mmr_overlay_config_s { + long unsigned int undef_0_24: 25; + long unsigned int base: 27; + long unsigned int undef_52_62: 11; + long unsigned int enable: 1; +}; + +struct uv5h_rh10_gam_mmr_overlay_config_s { + long unsigned int undef_0_24: 25; + long unsigned int base: 27; + long unsigned int undef_52_62: 11; + long unsigned int enable: 1; +}; + +union uvh_rh10_gam_mmr_overlay_config_u { + long unsigned int v; + struct uvh_rh10_gam_mmr_overlay_config_s s; + struct uvyh_rh10_gam_mmr_overlay_config_s sy; + struct uv5h_rh10_gam_mmr_overlay_config_s s5; +}; + +struct uvh_rh_gam_addr_map_config_s { + long unsigned int rsvd_0_5: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uvxh_rh_gam_addr_map_config_s { + long unsigned int rsvd_0_5: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uv4h_rh_gam_addr_map_config_s { + long unsigned int rsvd_0_5: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uv3h_rh_gam_addr_map_config_s { + long unsigned int m_skt: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +struct uv2h_rh_gam_addr_map_config_s { + long unsigned int m_skt: 6; + long unsigned int n_skt: 4; + long unsigned int rsvd_10_63: 54; +}; + +union uvh_rh_gam_addr_map_config_u { + long unsigned int v; + struct uvh_rh_gam_addr_map_config_s s; + struct uvxh_rh_gam_addr_map_config_s sx; + struct uv4h_rh_gam_addr_map_config_s s4; + struct uv3h_rh_gam_addr_map_config_s s3; + struct uv2h_rh_gam_addr_map_config_s s2; +}; + +struct uvh_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_alias_2_overlay_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int base: 8; + long unsigned int rsvd_32_47: 16; + long unsigned int m_alias: 5; + long unsigned int rsvd_53_62: 10; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_alias_2_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_alias_2_overlay_config_s s; + struct uvxh_rh_gam_alias_2_overlay_config_s sx; + struct uv4h_rh_gam_alias_2_overlay_config_s s4; + struct uv3h_rh_gam_alias_2_overlay_config_s s3; + struct uv2h_rh_gam_alias_2_overlay_config_s s2; +}; + +struct uvh_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uvxh_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uv4h_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uv3h_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +struct uv2h_rh_gam_alias_2_redirect_config_s { + long unsigned int rsvd_0_23: 24; + long unsigned int dest_base: 22; + long unsigned int rsvd_46_63: 18; +}; + +union uvh_rh_gam_alias_2_redirect_config_u { + long unsigned int v; + struct uvh_rh_gam_alias_2_redirect_config_s s; + struct uvxh_rh_gam_alias_2_redirect_config_s sx; + struct uv4h_rh_gam_alias_2_redirect_config_s s4; + struct uv3h_rh_gam_alias_2_redirect_config_s s3; + struct uv2h_rh_gam_alias_2_redirect_config_s s2; +}; + +struct uvh_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_45: 46; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_45: 46; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4ah_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_24: 25; + long unsigned int undef_25: 1; + long unsigned int base: 26; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_24: 25; + long unsigned int undef_25: 1; + long unsigned int base: 20; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_27: 28; + long unsigned int base: 18; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_61: 6; + long unsigned int mode: 1; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_gru_overlay_config_s { + long unsigned int rsvd_0_27: 28; + long unsigned int base: 18; + long unsigned int rsvd_46_51: 6; + long unsigned int n_gru: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_gru_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_gru_overlay_config_s s; + struct uvxh_rh_gam_gru_overlay_config_s sx; + struct uv4ah_rh_gam_gru_overlay_config_s s4a; + struct uv4h_rh_gam_gru_overlay_config_s s4; + struct uv3h_rh_gam_gru_overlay_config_s s3; + struct uv2h_rh_gam_gru_overlay_config_s s2; +}; + +struct uvh_rh_gam_mmioh_overlay_config_s { + long unsigned int rsvd_0_26: 27; + long unsigned int base: 19; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmioh_overlay_config_s { + long unsigned int rsvd_0_26: 27; + long unsigned int base: 19; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_mmioh_overlay_config_s { + long unsigned int rsvd_0_26: 27; + long unsigned int base: 19; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmioh_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_mmioh_overlay_config_s s; + struct uvxh_rh_gam_mmioh_overlay_config_s sx; + struct uv2h_rh_gam_mmioh_overlay_config_s s2; +}; + +struct uvh_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4ah_rh_gam_mmioh_overlay_config0_mmr_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_mmioh_overlay_config0_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmioh_overlay_config0_u { + long unsigned int v; + struct uvh_rh_gam_mmioh_overlay_config0_s s; + struct uvxh_rh_gam_mmioh_overlay_config0_s sx; + struct uv4ah_rh_gam_mmioh_overlay_config0_mmr_s s4a; + struct uv4h_rh_gam_mmioh_overlay_config0_s s4; + struct uv3h_rh_gam_mmioh_overlay_config0_s s3; +}; + +struct uvh_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv4ah_rh_gam_mmioh_overlay_config1_mmr_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 26; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int undef_62: 1; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_mmioh_overlay_config1_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int m_io: 6; + long unsigned int n_io: 4; + long unsigned int rsvd_56_62: 7; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmioh_overlay_config1_u { + long unsigned int v; + struct uvh_rh_gam_mmioh_overlay_config1_s s; + struct uvxh_rh_gam_mmioh_overlay_config1_s sx; + struct uv4ah_rh_gam_mmioh_overlay_config1_mmr_s s4a; + struct uv4h_rh_gam_mmioh_overlay_config1_s s4; + struct uv3h_rh_gam_mmioh_overlay_config1_s s3; +}; + +struct uvh_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uvxh_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uv4h_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uv3h_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +struct uv2h_rh_gam_mmr_overlay_config_s { + long unsigned int rsvd_0_25: 26; + long unsigned int base: 20; + long unsigned int rsvd_46_62: 17; + long unsigned int enable: 1; +}; + +union uvh_rh_gam_mmr_overlay_config_u { + long unsigned int v; + struct uvh_rh_gam_mmr_overlay_config_s s; + struct uvxh_rh_gam_mmr_overlay_config_s sx; + struct uv4h_rh_gam_mmr_overlay_config_s s4; + struct uv3h_rh_gam_mmr_overlay_config_s s3; + struct uv2h_rh_gam_mmr_overlay_config_s s2; +}; + +enum uv_system_type { + UV_NONE = 0, + UV_LEGACY_APIC = 1, + UV_X2APIC = 2, }; enum { - MSI_FLAG_USE_DEF_DOM_OPS = 1, - MSI_FLAG_USE_DEF_CHIP_OPS = 2, - MSI_FLAG_MULTI_PCI_MSI = 4, - MSI_FLAG_PCI_MSIX = 8, - MSI_FLAG_ACTIVATE_EARLY = 16, - MSI_FLAG_MUST_REACTIVATE = 32, - MSI_FLAG_LEVEL_CAPABLE = 64, + BIOS_STATUS_MORE_PASSES = 1, + BIOS_STATUS_SUCCESS = 0, + BIOS_STATUS_UNIMPLEMENTED = 4294967258, + BIOS_STATUS_EINVAL = 4294967274, + BIOS_STATUS_UNAVAIL = 4294967280, + BIOS_STATUS_ABORT = 4294967292, }; -struct hpet_channel; +struct uv_gam_parameters { + u64 mmr_base; + u64 gru_base; + u8 mmr_shift; + u8 gru_shift; + u8 gpa_shift; + u8 unused1; +}; + +struct uv_gam_range_entry { + char type; + char unused1; + u16 nasid; + u16 sockid; + u16 pnode; + u32 unused2; + u32 limit; +}; + +struct uv_arch_type_entry { + char archtype[8]; +}; + +struct uv_systab { + char signature[4]; + u32 revision; + u64 function; + u32 size; + struct { + u32 type: 8; + u32 offset: 24; + } entry[1]; +}; + +enum { + BIOS_FREQ_BASE_PLATFORM = 0, + BIOS_FREQ_BASE_INTERVAL_TIMER = 1, + BIOS_FREQ_BASE_REALTIME_CLOCK = 2, +}; + +struct uv_gam_range_s { + u32 limit; + u16 nasid; + s8 base; + u8 reserved; +}; + +struct uv_hub_info_s { + unsigned int hub_type; + unsigned char hub_revision; + long unsigned int global_mmr_base; + long unsigned int global_mmr_shift; + long unsigned int gpa_mask; + short unsigned int *socket_to_node; + short unsigned int *socket_to_pnode; + short unsigned int *pnode_to_socket; + struct uv_gam_range_s *gr_table; + short unsigned int min_socket; + short unsigned int min_pnode; + unsigned char m_val; + unsigned char n_val; + unsigned char gr_table_len; + unsigned char apic_pnode_shift; + unsigned char gpa_shift; + unsigned char nasid_shift; + unsigned char m_shift; + unsigned char n_lshift; + unsigned int gnode_extra; + long unsigned int gnode_upper; + long unsigned int lowmem_remap_top; + long unsigned int lowmem_remap_base; + long unsigned int global_gru_base; + long unsigned int global_gru_shift; + short unsigned int pnode; + short unsigned int pnode_mask; + short unsigned int coherency_domain_number; + short unsigned int numa_blade_id; + short unsigned int nr_possible_cpus; + short unsigned int nr_online_cpus; + short int memory_nid; +}; + +struct uv_cpu_info_s { + void *p_uv_hub_info; + unsigned char blade_cpu_id; + void *reserved; +}; + +struct uvh_apicid_s { + long unsigned int local_apic_mask: 24; + long unsigned int local_apic_shift: 5; + long unsigned int unused1: 3; + long unsigned int pnode_mask: 24; + long unsigned int pnode_shift: 5; + long unsigned int unused2: 3; +}; + +union uvh_apicid { + long unsigned int v; + struct uvh_apicid_s s; +}; + +enum map_type { + map_wb = 0, + map_uc = 1, +}; + +enum mmioh_arch { + UV2_MMIOH = 4294967295, + UVY_MMIOH0 = 0, + UVY_MMIOH1 = 1, + UVX_MMIOH0 = 2, + UVX_MMIOH1 = 3, +}; + +struct mn { + unsigned char m_val; + unsigned char n_val; + unsigned char m_shift; + unsigned char n_lshift; +}; struct cluster_mask { unsigned int clusterid; @@ -25914,7 +28803,7 @@ enum { FTRACE_OPS_FL_DYNAMIC = 2, FTRACE_OPS_FL_SAVE_REGS = 4, FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, - FTRACE_OPS_FL_RECURSION_SAFE = 16, + FTRACE_OPS_FL_RECURSION = 16, FTRACE_OPS_FL_STUB = 32, FTRACE_OPS_FL_INITIALIZED = 64, FTRACE_OPS_FL_DELETED = 128, @@ -25963,8 +28852,6 @@ union ftrace_op_code_union { } __attribute__((packed)); }; -struct ftrace_rec_iter; - typedef __s64 Elf64_Sxword; struct elf64_rela { @@ -25980,9 +28867,6 @@ struct kimage_arch { pud_t *pud; pmd_t *pmd; pte_t *pte; - void *elf_headers; - long unsigned int elf_headers_sz; - long unsigned int elf_load_addr; }; typedef long unsigned int kimage_entry_t; @@ -26038,6 +28922,9 @@ struct kimage { const struct kexec_file_ops *fops; void *image_loader_data; struct purgatory_info purgatory_info; + void *elf_headers; + long unsigned int elf_headers_sz; + long unsigned int elf_load_addr; }; typedef int kexec_cleanup_t(void *); @@ -26065,7 +28952,7 @@ struct init_pgtable_data { pgd_t *level4p; }; -typedef void crash_vmclear_fn(); +typedef void crash_vmclear_fn(void); struct kexec_buf { struct kimage *image; @@ -26115,16 +29002,6 @@ struct kexec_entry64_regs { uint64_t rip; }; -enum key_being_used_for { - VERIFYING_MODULE_SIGNATURE = 0, - VERIFYING_FIRMWARE_SIGNATURE = 1, - VERIFYING_KEXEC_PE_SIGNATURE = 2, - VERIFYING_KEY_SIGNATURE = 3, - VERIFYING_KEY_SELF_SIGNATURE = 4, - VERIFYING_UNSPECIFIED_SIGNATURE = 5, - NR__KEY_BEING_USED_FOR = 6, -}; - struct efi_setup_data { u64 fw_vendor; u64 __unused; @@ -26137,6 +29014,15 @@ struct bzimage64_data { void *bootparams_buf; }; +struct freelist_node { + atomic_t refs; + struct freelist_node *next; +}; + +struct freelist_head { + struct freelist_node *head; +}; + struct prev_kprobe { struct kprobe *kp; long unsigned int status; @@ -26155,20 +29041,27 @@ struct kretprobe_instance; typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); -struct kretprobe; +struct kretprobe_holder; struct kretprobe_instance { union { - struct hlist_node hlist; + struct freelist_node freelist; struct callback_head rcu; }; - struct kretprobe *rp; + struct llist_node llist; + struct kretprobe_holder *rph; kprobe_opcode_t *ret_addr; - struct task_struct *task; void *fp; char data[0]; }; +struct kretprobe; + +struct kretprobe_holder { + struct kretprobe *rp; + refcount_t ref; +}; + struct kretprobe { struct kprobe kp; kretprobe_handler_t handler; @@ -26176,8 +29069,8 @@ struct kretprobe { int maxactive; int nmissed; size_t data_size; - struct hlist_head free_instances; - raw_spinlock_t lock; + struct freelist_head freelist; + struct kretprobe_holder *rph; }; struct kretprobe_blackpoint { @@ -26187,7 +29080,7 @@ struct kretprobe_blackpoint { struct kprobe_insn_cache { struct mutex mutex; - void * (*alloc)(); + void * (*alloc)(void); void (*free)(void *); const char *sym; struct list_head pages; @@ -26212,12 +29105,95 @@ struct optimized_kprobe { struct arch_optimized_insn optinsn; }; +enum { + TRACE_FTRACE_BIT = 0, + TRACE_FTRACE_NMI_BIT = 1, + TRACE_FTRACE_IRQ_BIT = 2, + TRACE_FTRACE_SIRQ_BIT = 3, + TRACE_FTRACE_TRANSITION_BIT = 4, + TRACE_INTERNAL_BIT = 5, + TRACE_INTERNAL_NMI_BIT = 6, + TRACE_INTERNAL_IRQ_BIT = 7, + TRACE_INTERNAL_SIRQ_BIT = 8, + TRACE_INTERNAL_TRANSITION_BIT = 9, + TRACE_BRANCH_BIT = 10, + TRACE_IRQ_BIT = 11, + TRACE_GRAPH_BIT = 12, + TRACE_GRAPH_DEPTH_START_BIT = 13, + TRACE_GRAPH_DEPTH_END_BIT = 14, + TRACE_GRAPH_NOTRACE_BIT = 15, + TRACE_RECORD_RECURSION_BIT = 16, +}; + +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, +}; + +enum regnames { + GDB_AX = 0, + GDB_BX = 1, + GDB_CX = 2, + GDB_DX = 3, + GDB_SI = 4, + GDB_DI = 5, + GDB_BP = 6, + GDB_SP = 7, + GDB_R8 = 8, + GDB_R9 = 9, + GDB_R10 = 10, + GDB_R11 = 11, + GDB_R12 = 12, + GDB_R13 = 13, + GDB_R14 = 14, + GDB_R15 = 15, + GDB_PC = 16, + GDB_PS = 17, + GDB_CS = 18, + GDB_SS = 19, + GDB_DS = 20, + GDB_ES = 21, + GDB_FS = 22, + GDB_GS = 23, +}; + +enum kgdb_bpstate { + BP_UNDEFINED = 0, + BP_REMOVED = 1, + BP_SET = 2, + BP_ACTIVE = 3, +}; + +struct kgdb_bkpt { + long unsigned int bpt_addr; + unsigned char saved_instr[1]; + enum kgdb_bptype type; + enum kgdb_bpstate state; +}; + +struct dbg_reg_def_t { + char *name; + int size; + int offset; +}; + +struct hw_breakpoint { + unsigned int enabled; + long unsigned int addr; + int len; + int type; + struct perf_event **pev; +}; + struct console { char name[16]; void (*write)(struct console *, const char *, unsigned int); int (*read)(struct console *, char *, unsigned int); struct tty_driver * (*device)(struct console *, int *); - void (*unblank)(); + void (*unblank)(void); int (*setup)(struct console *, char *); int (*exit)(struct console *); int (*match)(struct console *, char *, int, char *); @@ -26323,31 +29299,197 @@ struct kvm_task_sleep_head { typedef struct ldttss_desc ldt_desc; -struct branch { - unsigned char opcode; - u32 delta; -} __attribute__((packed)); - -struct patch_xxl { - const unsigned char irq_irq_disable[1]; - const unsigned char irq_irq_enable[1]; - const unsigned char irq_save_fl[2]; - const unsigned char mmu_read_cr2[3]; - const unsigned char mmu_read_cr3[3]; - const unsigned char mmu_write_cr3[3]; - const unsigned char irq_restore_fl[2]; - const unsigned char cpu_wbinvd[2]; - const unsigned char cpu_usergs_sysret64[6]; - const unsigned char mov64[3]; -}; - -struct patch_lock { - unsigned char queued_spin_unlock[3]; - unsigned char vcpu_is_preempted[2]; -}; - typedef long unsigned int ulong; +struct jailhouse_setup_data { + struct { + __u16 version; + __u16 compatible_version; + } hdr; + struct { + __u16 pm_timer_address; + __u16 num_cpus; + __u64 pci_mmconfig_base; + __u32 tsc_khz; + __u32 apic_khz; + __u8 standard_ioapic; + __u8 cpu_ids[255]; + } __attribute__((packed)) v1; + struct { + __u32 flags; + } v2; +}; + +struct circ_buf { + char *buf; + int head; + int tail; +}; + +struct serial_rs485 { + __u32 flags; + __u32 delay_rts_before_send; + __u32 delay_rts_after_send; + __u32 padding[5]; +}; + +struct serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; +}; + +struct uart_port; + +struct uart_ops { + unsigned int (*tx_empty)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_mctrl)(struct uart_port *); + void (*stop_tx)(struct uart_port *); + void (*start_tx)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + void (*send_xchar)(struct uart_port *, char); + void (*stop_rx)(struct uart_port *); + void (*enable_ms)(struct uart_port *); + void (*break_ctl)(struct uart_port *, int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*flush_buffer)(struct uart_port *); + void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + const char * (*type)(struct uart_port *); + void (*release_port)(struct uart_port *); + int (*request_port)(struct uart_port *); + void (*config_port)(struct uart_port *, int); + int (*verify_port)(struct uart_port *, struct serial_struct *); + int (*ioctl)(struct uart_port *, unsigned int, long unsigned int); + int (*poll_init)(struct uart_port *); + void (*poll_put_char)(struct uart_port *, unsigned char); + int (*poll_get_char)(struct uart_port *); +}; + +struct uart_icount { + __u32 cts; + __u32 dsr; + __u32 rng; + __u32 dcd; + __u32 rx; + __u32 tx; + __u32 frame; + __u32 overrun; + __u32 parity; + __u32 brk; + __u32 buf_overrun; +}; + +typedef u64 upf_t; + +typedef unsigned int upstat_t; + +struct uart_state; + +struct gpio_desc; + +struct uart_port { + spinlock_t lock; + long unsigned int iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int irq; + long unsigned int irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + int hw_stopped; + unsigned int mctrl; + unsigned int timeout; + unsigned int type; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + long unsigned int sysrq; + unsigned int sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + const struct serial_rs485 *rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct serial_iso7816 iso7816; + void *private_data; +}; + +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, +}; + +struct uart_state { + struct tty_port port; + enum uart_pm_state pm_state; + struct circ_buf xmit; + atomic_t refcount; + wait_queue_head_t remove_wait; + struct uart_port *uart_port; +}; + +struct pci_mmcfg_region { + struct list_head list; + struct resource res; + u64 address; + char *virt; + u16 segment; + u8 start_bus; + u8 end_bus; + char name[30]; +}; + +struct scan_area { + u64 addr; + u64 size; +}; + struct uprobe_xol_ops; struct arch_uprobe { @@ -26386,65 +29528,6 @@ enum rp_check { RP_CHECK_RET = 2, }; -struct simplefb_platform_data { - u32 width; - u32 height; - u32 stride; - const char *format; -}; - -enum { - M_I17 = 0, - M_I20 = 1, - M_I20_SR = 2, - M_I24 = 3, - M_I24_8_1 = 4, - M_I24_10_1 = 5, - M_I27_11_1 = 6, - M_MINI = 7, - M_MINI_3_1 = 8, - M_MINI_4_1 = 9, - M_MB = 10, - M_MB_2 = 11, - M_MB_3 = 12, - M_MB_5_1 = 13, - M_MB_6_1 = 14, - M_MB_7_1 = 15, - M_MB_SR = 16, - M_MBA = 17, - M_MBA_3 = 18, - M_MBP = 19, - M_MBP_2 = 20, - M_MBP_2_2 = 21, - M_MBP_SR = 22, - M_MBP_4 = 23, - M_MBP_5_1 = 24, - M_MBP_5_2 = 25, - M_MBP_5_3 = 26, - M_MBP_6_1 = 27, - M_MBP_6_2 = 28, - M_MBP_7_1 = 29, - M_MBP_8_2 = 30, - M_UNKNOWN = 31, -}; - -struct efifb_dmi_info { - char *optname; - long unsigned int base; - int stride; - int width; - int height; - int flags; -}; - -enum { - OVERRIDE_NONE = 0, - OVERRIDE_BASE = 1, - OVERRIDE_STRIDE = 2, - OVERRIDE_HEIGHT = 4, - OVERRIDE_WIDTH = 8, -}; - enum perf_sample_regs_abi { PERF_SAMPLE_REGS_ABI_NONE = 0, PERF_SAMPLE_REGS_ABI_32 = 1, @@ -26456,6 +29539,46 @@ struct va_format { va_list *va; }; +enum es_result { + ES_OK = 0, + ES_UNSUPPORTED = 1, + ES_VMM_ERROR = 2, + ES_DECODE_FAILED = 3, + ES_EXCEPTION = 4, + ES_RETRY = 5, +}; + +struct es_fault_info { + long unsigned int vector; + long unsigned int error_code; + long unsigned int cr2; +}; + +struct es_em_ctxt { + struct pt_regs *regs; + struct insn insn; + struct es_fault_info fi; +}; + +struct sev_es_runtime_data { + struct ghcb ghcb_page; + struct ghcb backup_ghcb; + bool ghcb_active; + bool backup_ghcb_active; + long unsigned int dr7; +}; + +struct ghcb_state { + struct ghcb *ghcb; +}; + +enum cc_attr { + CC_ATTR_MEM_ENCRYPT = 0, + CC_ATTR_HOST_MEM_ENCRYPT = 1, + CC_ATTR_GUEST_MEM_ENCRYPT = 2, + CC_ATTR_GUEST_STATE_ENCRYPT = 3, +}; + enum chipset_type { NOT_SUPPORTED = 0, SUPPORTED = 1, @@ -26480,8 +29603,6 @@ struct agp_kern_info { const struct vm_operations_struct *vm_ops; }; -struct agp_bridge_data; - struct pci_hostbridge_probe { u32 bus; u32 slot; @@ -26526,35 +29647,20 @@ struct map_range { unsigned int page_size_mask; }; -enum { - MEMORY_HOTPLUG_MIN_BOOTMEM_TYPE = 12, - SECTION_INFO = 12, - MIX_SECTION_INFO = 13, - NODE_INFO = 14, - MEMORY_HOTPLUG_MAX_BOOTMEM_TYPE = 14, -}; - struct mhp_params { struct vmem_altmap *altmap; pgprot_t pgprot; }; struct mem_section_usage { + struct callback_head rcu; long unsigned int subsection_map[1]; long unsigned int pageblock_flags[0]; }; -struct page_ext; - struct mem_section { long unsigned int section_mem_map; struct mem_section_usage *usage; - struct page_ext *page_ext; - long unsigned int pad; -}; - -struct page_ext { - long unsigned int flags; }; enum kcore_type { @@ -26563,19 +29669,26 @@ enum kcore_type { KCORE_RAM = 2, KCORE_VMEMMAP = 3, KCORE_USER = 4, - KCORE_OTHER = 5, - KCORE_REMAP = 6, }; struct kcore_list { struct list_head list; long unsigned int addr; - long unsigned int vaddr; size_t size; int type; }; +enum { + MEMORY_HOTPLUG_MIN_BOOTMEM_TYPE = 12, + SECTION_INFO = 12, + MIX_SECTION_INFO = 13, + NODE_INFO = 14, + MEMORY_HOTPLUG_MAX_BOOTMEM_TYPE = 14, +}; + struct hstate { + struct mutex resize_lock; + struct lock_class_key resize_key; int next_nid_to_alloc; int next_nid_to_free; unsigned int order; @@ -26591,6 +29704,7 @@ struct hstate { unsigned int nr_huge_pages_node[1024]; unsigned int free_huge_pages_node[1024]; unsigned int surplus_huge_pages_node[1024]; + unsigned int nr_free_vmemmap_pages; struct cftype cgroup_files_dfl[7]; struct cftype cgroup_files_legacy[9]; char name[32]; @@ -26619,8 +29733,6 @@ struct ioremap_desc { unsigned int flags; }; -typedef bool (*ex_handler_t)(const struct exception_table_entry *, struct pt_regs *, int, long unsigned int, long unsigned int); - struct hugepage_subpool { spinlock_t lock; long int count; @@ -26642,22 +29754,6 @@ struct hugetlbfs_sb_info { umode_t mode; }; -enum cc_attr { - CC_ATTR_MEM_ENCRYPT = 0, - CC_ATTR_HOST_MEM_ENCRYPT = 1, - CC_ATTR_GUEST_MEM_ENCRYPT = 2, - CC_ATTR_GUEST_STATE_ENCRYPT = 3, -}; - -struct entry_stack_page { - struct entry_stack stack; -}; - -struct debug_store_buffers { - char bts_buffer[65536]; - char pebs_buffer[65536]; -}; - struct exception_stacks { char DF_stack_guard[0]; char DF_stack[8192]; @@ -26668,19 +29764,14 @@ struct exception_stacks { char MCE_stack_guard[0]; char MCE_stack[8192]; char VC_stack_guard[0]; - char VC_stack[0]; + char VC_stack[8192]; char VC2_stack_guard[0]; - char VC2_stack[0]; + char VC2_stack[8192]; char IST_top_guard[0]; }; -struct cpu_entry_area { - char gdt[4096]; - struct entry_stack_page entry_stack_page; - struct tss_struct tss; - struct cea_exception_stacks estacks; - struct debug_store cpu_debug_store; - struct debug_store_buffers cpu_debug_buffers; +struct vm_event_state { + long unsigned int event[100]; }; struct cpa_data { @@ -26708,6 +29799,8 @@ typedef struct { u64 val; } pfn_t; +typedef long unsigned int vm_flags_t; + struct memtype { u64 start; u64 end; @@ -26793,6 +29886,8 @@ enum address_markers_idx { END_OF_SPACE_NR = 13, }; +typedef void (*rcu_callback_t)(struct callback_head *); + struct kmmio_probe; typedef void (*kmmio_pre_handler_t)(struct kmmio_probe *, struct pt_regs *, long unsigned int); @@ -26944,12 +30039,6 @@ struct acpi_srat_x2apic_cpu_affinity { u32 reserved2; }; -enum uv_system_type { - UV_NONE = 0, - UV_LEGACY_APIC = 1, - UV_X2APIC = 2, -}; - struct rnd_state { __u32 s1; __u32 s2; @@ -26973,6 +30062,16 @@ enum pti_clone_level { PTI_CLONE_PTE = 1, }; +struct sme_populate_pgd_data { + void *pgtable_area; + pgd_t *pgd; + pmdval_t pmd_flags; + pteval_t pte_flags; + long unsigned int paddr; + long unsigned int vaddr; + long unsigned int vaddr_end; +}; + enum blake2s_lengths { BLAKE2S_BLOCK_SIZE = 64, BLAKE2S_HASH_SIZE = 32, @@ -26992,6 +30091,62 @@ struct blake2s_state { unsigned int outlen; }; +struct crypto_template; + +struct crypto_spawn; + +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; + void *__ctx[0]; +}; + +struct crypto_spawn { + struct list_head list; + struct crypto_alg *alg; + union { + struct crypto_instance *inst; + struct crypto_spawn *next; + }; + const struct crypto_type *frontend; + u32 mask; + bool dead; + bool registered; +}; + +struct rtattr; + +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; +}; + +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + unsigned int descsize; + long: 0; + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; +}; + struct sigcontext_32 { __u16 gs; __u16 __gsh; @@ -27050,11 +30205,6 @@ struct rt_sigframe_ia32 { char retcode[8]; }; -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_64_t; - struct efi_memory_map_data { phys_addr_t phys_map; long unsigned int size; @@ -27068,6 +30218,11 @@ struct efi_mem_range { u64 attribute; }; +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; + enum efi_rts_ids { EFI_NONE = 0, EFI_GET_TIME = 1, @@ -27096,10 +30251,18 @@ struct efi_runtime_work { struct completion efi_rts_comp; }; -struct efi_scratch { - u64 phys_stack; - struct mm_struct *prev_mm; -}; +typedef struct { + efi_guid_t guid; + u32 table; +} efi_config_table_32_t; + +typedef union { + struct { + efi_guid_t guid; + void *table; + }; + efi_config_table_32_t mixed_mode; +} efi_config_table_t; typedef struct { efi_guid_t guid; @@ -27131,31 +30294,112 @@ typedef struct { u64 memory_protection_attribute; } efi_properties_table_t; +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *); + +typedef u16 ucs2_char_t; + struct pm_qos_request { struct plist_node node; struct pm_qos_constraints *qos; }; -struct sfi_table_header { - char sig[4]; - u32 len; - u8 rev; - u8 csum; - char oem_id[6]; - char oem_table_id[8]; +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; }; -struct sfi_table_simple { - struct sfi_table_header header; - u64 pentry[1]; +enum uv_bios_cmd { + UV_BIOS_COMMON = 0, + UV_BIOS_GET_SN_INFO = 1, + UV_BIOS_FREQ_BASE = 2, + UV_BIOS_WATCHLIST_ALLOC = 3, + UV_BIOS_WATCHLIST_FREE = 4, + UV_BIOS_MEMPROTECT = 5, + UV_BIOS_GET_PARTITION_ADDR = 6, + UV_BIOS_SET_LEGACY_VGA_TARGET = 7, }; -struct sfi_cpu_table_entry { - u32 apic_id; +union partition_info_u { + u64 val; + struct { + u64 hub_version: 8; + u64 partition_id: 16; + u64 coherence_id: 16; + u64 region_size: 24; + }; }; -struct sfi_apic_table_entry { - u64 phys_addr; +enum uv_memprotect { + UV_MEMPROT_RESTRICT_ACCESS = 0, + UV_MEMPROT_ALLOW_AMO = 1, + UV_MEMPROT_ALLOW_RW = 2, +}; + +struct uv_IO_APIC_route_entry { + __u64 vector: 8; + __u64 delivery_mode: 3; + __u64 dest_mode: 1; + __u64 delivery_status: 1; + __u64 polarity: 1; + __u64 __reserved_1: 1; + __u64 trigger: 1; + __u64 mask: 1; + __u64 __reserved_2: 15; + __u64 dest: 32; +}; + +enum { + UV_AFFINITY_ALL = 0, + UV_AFFINITY_NODE = 1, + UV_AFFINITY_CPU = 2, +}; + +struct uv_irq_2_mmr_pnode { + long unsigned int offset; + int pnode; +}; + +struct uv_rtc_timer_head { + spinlock_t lock; + int next_cpu; + int ncpus; + struct { + int lcpu; + u64 expires; + } cpu[0]; +}; + +struct uv_hub_nmi_s { + raw_spinlock_t nmi_lock; + atomic_t in_nmi; + atomic_t cpu_owner; + atomic_t read_mmr_count; + atomic_t nmi_count; + long unsigned int nmi_value; + bool hub_present; + bool pch_owner; +}; + +struct uv_cpu_nmi_s { + struct uv_hub_nmi_s *hub; + int state; + int pinging; + int queries; + int pings; +}; + +struct nmi_action { + char *action; + char *desc; +}; + +typedef char action_t[16]; + +struct init_nmi { + unsigned int offset; + unsigned int mask; + unsigned int data; }; enum { @@ -27174,7 +30418,7 @@ enum { }; struct bpf_tramp_progs { - struct bpf_prog *progs[40]; + struct bpf_prog *progs[38]; int nr_progs; }; @@ -27223,6 +30467,8 @@ struct bpf_binary_header { u8 image[0]; }; +typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); + struct jit_context { int cleanup_addr; int tail_call_direct_label; @@ -27258,24 +30504,6 @@ struct clone_args { __u64 cgroup; }; -enum hrtimer_mode { - HRTIMER_MODE_ABS = 0, - HRTIMER_MODE_REL = 1, - HRTIMER_MODE_PINNED = 2, - HRTIMER_MODE_SOFT = 4, - HRTIMER_MODE_HARD = 8, - HRTIMER_MODE_ABS_PINNED = 2, - HRTIMER_MODE_REL_PINNED = 3, - HRTIMER_MODE_ABS_SOFT = 4, - HRTIMER_MODE_REL_SOFT = 5, - HRTIMER_MODE_ABS_PINNED_SOFT = 6, - HRTIMER_MODE_REL_PINNED_SOFT = 7, - HRTIMER_MODE_ABS_HARD = 8, - HRTIMER_MODE_REL_HARD = 9, - HRTIMER_MODE_ABS_PINNED_HARD = 10, - HRTIMER_MODE_REL_PINNED_HARD = 11, -}; - struct fdtable { unsigned int max_fds; struct file **fd; @@ -27307,30 +30535,6 @@ struct files_struct { long: 64; }; -struct io_identity { - struct files_struct *files; - struct mm_struct *mm; - struct cgroup_subsys_state *blkcg_css; - const struct cred *creds; - struct nsproxy *nsproxy; - struct fs_struct *fs; - long unsigned int fsize; - kuid_t loginuid; - unsigned int sessionid; - refcount_t count; -}; - -struct io_uring_task { - struct xarray xa; - struct wait_queue_head wait; - struct file *last; - struct percpu_counter inflight; - struct io_identity __identity; - struct io_identity *identity; - atomic_t in_idle; - bool sqpoll; -}; - struct robust_list { struct robust_list *next; }; @@ -27355,7 +30559,10 @@ enum { IOPRIO_CLASS_IDLE = 3, }; -typedef struct poll_table_struct poll_table; +struct fd_range { + unsigned int from; + unsigned int to; +}; enum { FUTEX_STATE_OK = 0, @@ -27626,6 +30833,17 @@ struct kernel_stat { unsigned int softirqs[10]; }; +struct wait_bit_key { + void *flags; + int bit_nr; + long unsigned int timeout; +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + struct trace_event_raw_irq_handler_entry { struct trace_entry ent; int irq; @@ -27669,8 +30887,17 @@ struct tasklet_head { struct tasklet_struct **tail; }; +struct pseudo_fs_context { + const struct super_operations *ops; + const struct xattr_handler **xattr; + const struct dentry_operations *dops; + long unsigned int magic; +}; + typedef void (*dr_release_t)(struct device *, void *); +typedef int (*dr_match_t)(struct device *, void *, void *); + struct resource_entry { struct list_head node; struct resource *res; @@ -27696,6 +30923,8 @@ struct region_devres { resource_size_t n; }; +typedef __kernel_clock_t clock_t; + struct dentry_stat_t { long int nr_dentry; long int nr_unused; @@ -27726,13 +30955,6 @@ struct core_vma_metadata { struct file *file; }; -enum sched_tunable_scaling { - SCHED_TUNABLESCALING_NONE = 0, - SCHED_TUNABLESCALING_LOG = 1, - SCHED_TUNABLESCALING_LINEAR = 2, - SCHED_TUNABLESCALING_END = 3, -}; - enum sysctl_writes_mode { SYSCTL_WRITES_LEGACY = 4294967295, SYSCTL_WRITES_WARN = 0, @@ -27768,9 +30990,11 @@ struct sigqueue { struct list_head list; int flags; kernel_siginfo_t info; - struct user_struct *user; + struct ucounts *ucounts; }; +typedef int wait_bit_action_f(struct wait_bit_key *, int); + struct ptrace_peeksiginfo_args { __u64 off; __u32 flags; @@ -27800,6 +31024,14 @@ struct ptrace_syscall_info { }; }; +struct ptrace_rseq_configuration { + __u64 rseq_abi_pointer; + __u32 rseq_abi_size; + __u32 signature; + __u32 flags; + __u32 pad; +}; + struct compat_iovec { compat_uptr_t iov_base; compat_size_t iov_len; @@ -27812,12 +31044,14 @@ enum siginfo_layout { SIL_TIMER = 1, SIL_POLL = 2, SIL_FAULT = 3, - SIL_FAULT_MCEERR = 4, - SIL_FAULT_BNDERR = 5, - SIL_FAULT_PKUERR = 6, - SIL_CHLD = 7, - SIL_RT = 8, - SIL_SYS = 9, + SIL_FAULT_TRAPNO = 4, + SIL_FAULT_MCEERR = 5, + SIL_FAULT_BNDERR = 6, + SIL_FAULT_PKUERR = 7, + SIL_FAULT_PERF_EVENT = 8, + SIL_CHLD = 9, + SIL_RT = 10, + SIL_SYS = 11, }; struct fd { @@ -27879,7 +31113,11 @@ typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); -typedef __kernel_clock_t clock_t; +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, +}; struct sysinfo { __kernel_long_t uptime; @@ -28082,8 +31320,6 @@ enum { WQ_DFL_ACTIVE = 256, }; -typedef unsigned int xa_mark_t; - enum xa_lock_type { XA_LOCK_IRQ = 1, XA_LOCK_BH = 2, @@ -28107,6 +31343,7 @@ struct worker { struct work_struct *current_work; work_func_t current_func; struct pool_workqueue *current_pwq; + unsigned int current_color; struct list_head scheduled; struct task_struct *task; struct worker_pool *pool; @@ -28126,10 +31363,10 @@ struct pool_workqueue { int work_color; int flush_color; int refcnt; - int nr_in_flight[15]; + int nr_in_flight[16]; int nr_active; int max_active; - struct list_head delayed_works; + struct list_head inactive_works; struct list_head pwqs_node; struct list_head mayday_node; struct work_struct unbound_release_work; @@ -28141,7 +31378,6 @@ struct pool_workqueue { long: 64; long: 64; long: 64; - long: 64; }; struct worker_pool { @@ -28215,7 +31451,7 @@ struct trace_event_raw_workqueue_queue_work { struct trace_entry ent; void *work; void *function; - void *workqueue; + u32 __data_loc_workqueue; unsigned int req_cpu; unsigned int cpu; char __data[0]; @@ -28241,7 +31477,9 @@ struct trace_event_raw_workqueue_execute_end { char __data[0]; }; -struct trace_event_data_offsets_workqueue_queue_work {}; +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; +}; struct trace_event_data_offsets_workqueue_activate_work {}; @@ -28283,32 +31521,6 @@ struct work_for_cpu { long int ret; }; -struct xa_node { - unsigned char shift; - unsigned char offset; - unsigned char count; - unsigned char nr_values; - struct xa_node *parent; - struct xarray *array; - union { - struct list_head private_list; - struct callback_head callback_head; - }; - void *slots[64]; - union { - long unsigned int tags[3]; - long unsigned int marks[3]; - }; -}; - -typedef struct {} local_lock_t; - -struct radix_tree_preload { - local_lock_t lock; - unsigned int nr; - struct xa_node *nodes; -}; - typedef void (*task_work_func_t)(struct callback_head *); enum { @@ -28346,13 +31558,6 @@ struct sched_param { int sched_priority; }; -enum { - __PERCPU_REF_ATOMIC = 1, - __PERCPU_REF_DEAD = 2, - __PERCPU_REF_ATOMIC_DEAD = 3, - __PERCPU_REF_FLAG_BITS = 2, -}; - struct kthread_work; typedef void (*kthread_work_func_t)(struct kthread_work *); @@ -28384,14 +31589,6 @@ struct kthread_delayed_work { struct timer_list timer; }; -enum { - CSS_NO_REF = 1, - CSS_ONLINE = 2, - CSS_RELEASED = 4, - CSS_VISIBLE = 8, - CSS_DYING = 16, -}; - struct kthread_create_info { int (*threadfn)(void *); void *data; @@ -28423,8 +31620,6 @@ struct kthread_flush_work { struct completion done; }; -struct pt_regs; - struct ipc_ids { int in_use; short unsigned int seq; @@ -28437,15 +31632,14 @@ struct ipc_ids { }; struct ipc_namespace { - refcount_t count; struct ipc_ids ids[3]; int sem_ctls[4]; int used_sems; unsigned int msg_ctlmax; unsigned int msg_ctlmnb; unsigned int msg_ctlmni; - atomic_t msg_bytes; - atomic_t msg_hdrs; + struct percpu_counter percpu_msg_bytes; + struct percpu_counter percpu_msg_hdrs; size_t shm_ctlmax; size_t shm_ctlall; long unsigned int shm_tot; @@ -28459,6 +31653,10 @@ struct ipc_namespace { unsigned int mq_msgsize_max; unsigned int mq_msg_default; unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; struct user_namespace *user_ns; struct ucounts *ucounts; struct llist_node mnt_llist; @@ -28471,6 +31669,10 @@ struct srcu_notifier_head { struct notifier_block *head; }; +struct lsmblob { + u32 secid[4]; +}; + enum what { PROC_EVENT_NONE = 0, PROC_EVENT_FORK = 1, @@ -28484,15 +31686,6 @@ enum what { PROC_EVENT_EXIT = 2147483648, }; -typedef u64 async_cookie_t; - -typedef void (*async_func_t)(void *, async_cookie_t); - -struct async_domain { - struct list_head pending; - unsigned int registered: 1; -}; - struct async_entry { struct list_head domain_list; struct list_head global_list; @@ -28515,6 +31708,14 @@ enum { HP_THREAD_PARKED = 2, }; +struct umd_info { + const char *driver_name; + struct file *pipe_to_umh; + struct file *pipe_from_umh; + struct path wd; + struct pid *tgid; +}; + struct pin_cookie {}; struct preempt_notifier; @@ -28545,6 +31746,8 @@ enum { typedef struct __call_single_data call_single_data_t; +typedef int (*task_call_f)(struct task_struct *, void *); + struct dl_bw { raw_spinlock_t lock; u64 bw; @@ -28566,7 +31769,7 @@ struct cpupri_vec { }; struct cpupri { - struct cpupri_vec pri_to_cpu[102]; + struct cpupri_vec pri_to_cpu[101]; int *cpu_to_pri; }; @@ -28584,6 +31787,7 @@ struct root_domain { atomic_t dlo_count; struct dl_bw dl_bw; struct cpudl cpudl; + u64 visit_gen; struct irq_work rto_push_work; raw_spinlock_t rto_lock; int rto_loop; @@ -28603,6 +31807,8 @@ struct cfs_rq { unsigned int idle_h_nr_running; u64 exec_clock; u64 min_vruntime; + unsigned int forceidle_seq; + u64 min_vruntime_fi; struct rb_root_cached tasks_timeline; struct sched_entity *curr; struct sched_entity *next; @@ -28610,8 +31816,6 @@ struct cfs_rq { struct sched_entity *skip; unsigned int nr_spread_over; long: 64; - long: 64; - long: 64; struct sched_avg avg; struct { raw_spinlock_t lock; @@ -28624,6 +31828,7 @@ struct cfs_rq { long: 64; long: 64; } removed; + u64 last_update_tg_load_avg; long unsigned int tg_load_avg_contrib; long int propagate; long int prop_runnable_sum; @@ -28634,6 +31839,7 @@ struct cfs_rq { int on_list; struct list_head leaf_cfs_rq_list; struct task_group *tg; + int idle; int runtime_enabled; s64 runtime_remaining; u64 throttled_clock; @@ -28646,7 +31852,6 @@ struct cfs_rq { long: 64; long: 64; long: 64; - long: 64; }; struct cfs_bandwidth { @@ -28654,6 +31859,7 @@ struct cfs_bandwidth { ktime_t period; u64 quota; u64 runtime; + u64 burst; s64 hierarchical_quota; u8 idle; u8 period_active; @@ -28671,7 +31877,7 @@ struct task_group { struct sched_entity **se; struct cfs_rq **cfs_rq; long unsigned int shares; - long: 64; + int idle; long: 64; long: 64; long: 64; @@ -28683,9 +31889,20 @@ struct task_group { struct list_head children; struct autogroup *autogroup; struct cfs_bandwidth cfs_bandwidth; + unsigned int uclamp_pct[2]; + struct uclamp_se uclamp_req[2]; + struct uclamp_se uclamp[2]; long: 64; long: 64; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct sched_domain_attr { + int relax_domain_level; }; struct sched_group { @@ -28694,6 +31911,7 @@ struct sched_group { unsigned int group_weight; struct sched_group_capacity *sgc; int asym_prefer_cpu; + int flags; long unsigned int cpumask[0]; }; @@ -28727,6 +31945,17 @@ struct kernel_cpustat { u64 cpustat[10]; }; +enum { + MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, + MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, + MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, + MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, +}; + enum { CFTYPE_ONLY_ON_ROOT = 1, CFTYPE_NOT_ON_ROOT = 2, @@ -28734,10 +31963,26 @@ enum { CFTYPE_NO_PREFIX = 8, CFTYPE_WORLD_WRITABLE = 16, CFTYPE_DEBUG = 32, + CFTYPE_PRESSURE = 64, __CFTYPE_ONLY_ON_DFL = 65536, __CFTYPE_NOT_ON_DFL = 131072, }; +struct css_task_iter { + struct cgroup_subsys *ss; + unsigned int flags; + struct list_head *cset_pos; + struct list_head *cset_head; + struct list_head *tcset_pos; + struct list_head *tcset_head; + struct list_head *task_pos; + struct list_head *cur_tasks_head; + struct css_set *cur_cset; + struct css_set *cur_dcset; + struct task_struct *cur_task; + struct list_head iters_node; +}; + struct trace_event_raw_sched_kthread_stop { struct trace_entry ent; char comm[16]; @@ -28751,12 +31996,33 @@ struct trace_event_raw_sched_kthread_stop_ret { char __data[0]; }; +struct trace_event_raw_sched_kthread_work_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + char __data[0]; +}; + +struct trace_event_raw_sched_kthread_work_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + +struct trace_event_raw_sched_kthread_work_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; + struct trace_event_raw_sched_wakeup_template { struct trace_entry ent; char comm[16]; pid_t pid; int prio; - int success; int target_cpu; char __data[0]; }; @@ -28886,6 +32152,12 @@ struct trace_event_data_offsets_sched_kthread_stop {}; struct trace_event_data_offsets_sched_kthread_stop_ret {}; +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_end {}; + struct trace_event_data_offsets_sched_wakeup_template {}; struct trace_event_data_offsets_sched_switch {}; @@ -28920,6 +32192,12 @@ typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); + typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); @@ -28964,17 +32242,192 @@ typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, str typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); -enum { - MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, - MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, - MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, - MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, - MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); + +struct uclamp_bucket { + long unsigned int value: 11; + long unsigned int tasks: 53; }; +struct uclamp_rq { + unsigned int value; + struct uclamp_bucket bucket[5]; +}; + +struct rt_prio_array { + long unsigned int bitmap[2]; + struct list_head queue[100]; +}; + +struct rt_rq { + struct rt_prio_array active; + unsigned int rt_nr_running; + unsigned int rr_nr_running; + struct { + int curr; + int next; + } highest_prio; + unsigned int rt_nr_migratory; + unsigned int rt_nr_total; + int overloaded; + struct plist_head pushable_tasks; + int rt_queued; + int rt_throttled; + u64 rt_time; + u64 rt_runtime; + raw_spinlock_t rt_runtime_lock; +}; + +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + unsigned int dl_nr_migratory; + int overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 bw_ratio; +}; + +struct cpu_stop_done; + +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + long unsigned int caller; + void *arg; + struct cpu_stop_done *done; +}; + +struct cpuidle_state; + +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; + unsigned int numa_migrate_on; + long unsigned int last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + long: 64; + long: 64; + call_single_data_t nohz_csd; + unsigned int nohz_tick_stopped; + atomic_t nohz_flags; + unsigned int ttwu_pending; + u64 nr_switches; + long: 64; + struct uclamp_rq uclamp[2]; + unsigned int uclamp_flags; + long: 64; + long: 64; + long: 64; + struct cfs_rq cfs; + struct rt_rq rt; + struct dl_rq dl; + struct list_head leaf_cfs_rq_list; + struct list_head *tmp_alone_branch; + unsigned int nr_uninterruptible; + struct task_struct *curr; + struct task_struct *idle; + struct task_struct *stop; + long unsigned int next_balance; + struct mm_struct *prev_mm; + unsigned int clock_update_flags; + u64 clock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u64 clock_task; + u64 clock_pelt; + long unsigned int lost_idle_time; + atomic_t nr_iowait; + u64 last_seen_need_resched_ns; + int ticks_without_resched; + int membarrier_state; + struct root_domain *rd; + struct sched_domain *sd; + long unsigned int cpu_capacity; + long unsigned int cpu_capacity_orig; + long unsigned int cpu_capacity_inverted; + struct callback_head *balance_callback; + unsigned char nohz_idle_balance; + unsigned char idle_balance; + long unsigned int misfit_task_load; + int active_balance; + int push_cpu; + struct cpu_stop_work active_balance_work; + int cpu; + int online; + struct list_head cfs_tasks; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + u64 idle_stamp; + u64 avg_idle; + long unsigned int wake_stamp; + u64 wake_avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + u64 prev_steal_time; + long unsigned int calc_load_update; + long int calc_load_active; + long: 64; + long: 64; + long: 64; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct sched_info rq_sched_info; + long long unsigned int rq_cpu_time; + unsigned int yld_count; + unsigned int sched_count; + unsigned int sched_goidle; + unsigned int ttwu_count; + unsigned int ttwu_local; + struct cpuidle_state *idle_state; + unsigned int nr_pinned; + unsigned int push_busy; + struct cpu_stop_work push_work; + struct rq *core; + struct task_struct *core_pick; + unsigned int core_enabled; + unsigned int core_sched_seq; + struct rb_root core_tree; + unsigned int core_task_seq; + unsigned int core_pick_seq; + long unsigned int core_cookie; + unsigned char core_forceidle; + unsigned int core_forceidle_seq; +}; + +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); + +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); + +typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); + struct wake_q_head { struct wake_q_node *first; struct wake_q_node **lastp; @@ -29011,8 +32464,8 @@ struct cpuidle_driver; struct cpuidle_state { char name[16]; char desc[32]; - u64 exit_latency_ns; - u64 target_residency_ns; + s64 exit_latency_ns; + s64 target_residency_ns; unsigned int flags; unsigned int exit_latency; int power_usage; @@ -29056,28 +32509,12 @@ struct cpuidle_driver { const char *governor; }; -typedef int (*cpu_stop_fn_t)(void *); - -struct cpu_stop_done; - -struct cpu_stop_work { - struct list_head list; - cpu_stop_fn_t fn; - void *arg; - struct cpu_stop_done *done; -}; - struct cpudl_item { u64 dl; int cpu; int idx; }; -struct rt_prio_array { - long unsigned int bitmap[2]; - struct list_head queue[100]; -}; - struct rt_bandwidth { raw_spinlock_t rt_runtime_lock; ktime_t rt_period; @@ -29094,122 +32531,6 @@ struct dl_bandwidth { typedef int (*tg_visitor)(struct task_group *, void *); -struct rt_rq { - struct rt_prio_array active; - unsigned int rt_nr_running; - unsigned int rr_nr_running; - struct { - int curr; - int next; - } highest_prio; - long unsigned int rt_nr_migratory; - long unsigned int rt_nr_total; - int overloaded; - struct plist_head pushable_tasks; - int rt_queued; - int rt_throttled; - u64 rt_time; - u64 rt_runtime; - raw_spinlock_t rt_runtime_lock; -}; - -struct dl_rq { - struct rb_root_cached root; - long unsigned int dl_nr_running; - struct { - u64 curr; - u64 next; - } earliest_dl; - long unsigned int dl_nr_migratory; - int overloaded; - struct rb_root_cached pushable_dl_tasks_root; - u64 running_bw; - u64 this_bw; - u64 extra_bw; - u64 bw_ratio; -}; - -struct rq { - raw_spinlock_t lock; - unsigned int nr_running; - unsigned int nr_numa_running; - unsigned int nr_preferred_running; - unsigned int numa_migrate_on; - long unsigned int last_blocked_load_update_tick; - unsigned int has_blocked_load; - long: 64; - long: 64; - long: 64; - call_single_data_t nohz_csd; - unsigned int nohz_tick_stopped; - atomic_t nohz_flags; - unsigned int ttwu_pending; - u64 nr_switches; - long: 64; - struct cfs_rq cfs; - struct rt_rq rt; - struct dl_rq dl; - struct list_head leaf_cfs_rq_list; - struct list_head *tmp_alone_branch; - long unsigned int nr_uninterruptible; - struct task_struct *curr; - struct task_struct *idle; - struct task_struct *stop; - long unsigned int next_balance; - struct mm_struct *prev_mm; - unsigned int clock_update_flags; - u64 clock; - long: 64; - long: 64; - long: 64; - u64 clock_task; - u64 clock_pelt; - long unsigned int lost_idle_time; - atomic_t nr_iowait; - int membarrier_state; - struct root_domain *rd; - struct sched_domain *sd; - long unsigned int cpu_capacity; - long unsigned int cpu_capacity_orig; - struct callback_head *balance_callback; - unsigned char nohz_idle_balance; - unsigned char idle_balance; - long unsigned int misfit_task_load; - int active_balance; - int push_cpu; - struct cpu_stop_work active_balance_work; - int cpu; - int online; - struct list_head cfs_tasks; - long: 64; - long: 64; - long: 64; - long: 64; - struct sched_avg avg_rt; - struct sched_avg avg_dl; - u64 idle_stamp; - u64 avg_idle; - u64 max_idle_balance_cost; - u64 prev_steal_time; - long unsigned int calc_load_update; - long int calc_load_active; - long: 64; - long: 64; - call_single_data_t hrtick_csd; - struct hrtimer hrtick_timer; - ktime_t hrtick_time; - struct sched_info rq_sched_info; - long long unsigned int rq_cpu_time; - unsigned int yld_count; - unsigned int sched_count; - unsigned int sched_goidle; - unsigned int ttwu_count; - unsigned int ttwu_local; - struct cpuidle_state *idle_state; - long: 64; - long: 64; -}; - struct perf_domain { struct em_perf_domain *em_pd; struct perf_domain *next; @@ -29222,6 +32543,11 @@ struct rq_flags { unsigned int clock_update_flags; }; +struct sched_entity_stats { + struct sched_entity se; + struct sched_statistics stats; +}; + enum { __SCHED_FEAT_GENTLE_FAIR_SLEEPERS = 0, __SCHED_FEAT_START_DEBIT = 1, @@ -29230,29 +32556,47 @@ enum { __SCHED_FEAT_CACHE_HOT_BUDDY = 4, __SCHED_FEAT_WAKEUP_PREEMPTION = 5, __SCHED_FEAT_HRTICK = 6, - __SCHED_FEAT_DOUBLE_TICK = 7, - __SCHED_FEAT_NONTASK_CAPACITY = 8, - __SCHED_FEAT_TTWU_QUEUE = 9, - __SCHED_FEAT_SIS_AVG_CPU = 10, + __SCHED_FEAT_HRTICK_DL = 7, + __SCHED_FEAT_DOUBLE_TICK = 8, + __SCHED_FEAT_NONTASK_CAPACITY = 9, + __SCHED_FEAT_TTWU_QUEUE = 10, __SCHED_FEAT_SIS_PROP = 11, - __SCHED_FEAT_WARN_DOUBLE_CLOCK = 12, - __SCHED_FEAT_RT_PUSH_IPI = 13, - __SCHED_FEAT_RT_RUNTIME_SHARE = 14, - __SCHED_FEAT_LB_MIN = 15, - __SCHED_FEAT_ATTACH_AGE_LOAD = 16, - __SCHED_FEAT_WA_IDLE = 17, - __SCHED_FEAT_WA_WEIGHT = 18, - __SCHED_FEAT_WA_BIAS = 19, - __SCHED_FEAT_UTIL_EST = 20, - __SCHED_FEAT_UTIL_EST_FASTUP = 21, - __SCHED_FEAT_ALT_PERIOD = 22, - __SCHED_FEAT_BASE_SLICE = 23, - __SCHED_FEAT_NR = 24, + __SCHED_FEAT_SIS_UTIL = 12, + __SCHED_FEAT_WARN_DOUBLE_CLOCK = 13, + __SCHED_FEAT_RT_PUSH_IPI = 14, + __SCHED_FEAT_RT_RUNTIME_SHARE = 15, + __SCHED_FEAT_LB_MIN = 16, + __SCHED_FEAT_ATTACH_AGE_LOAD = 17, + __SCHED_FEAT_WA_IDLE = 18, + __SCHED_FEAT_WA_WEIGHT = 19, + __SCHED_FEAT_WA_BIAS = 20, + __SCHED_FEAT_UTIL_EST = 21, + __SCHED_FEAT_UTIL_EST_FASTUP = 22, + __SCHED_FEAT_LATENCY_WARN = 23, + __SCHED_FEAT_ALT_PERIOD = 24, + __SCHED_FEAT_BASE_SLICE = 25, + __SCHED_FEAT_NR = 26, }; +enum cpu_util_type { + FREQUENCY_UTIL = 0, + ENERGY_UTIL = 1, +}; + +struct set_affinity_pending; + struct migration_arg { struct task_struct *task; int dest_cpu; + struct set_affinity_pending *pending; +}; + +struct set_affinity_pending { + refcount_t refs; + unsigned int stop_pending; + struct completion done; + struct cpu_stop_work stop_work; + struct migration_arg arg; }; struct migration_swap_arg { @@ -29262,6 +32606,12 @@ struct migration_swap_arg { int dst_cpu; }; +struct uclamp_request { + s64 percent; + u64 util; + int ret; +}; + struct cfs_schedulable_data { struct task_group *tg; u64 period; @@ -29300,8 +32650,6 @@ struct idle_timer { int done; }; -typedef void (*rcu_callback_t)(struct callback_head *); - struct numa_group { refcount_t refcount; spinlock_t lock; @@ -29319,6 +32667,13 @@ struct update_util_data { void (*func)(struct update_util_data *, u64, unsigned int); }; +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, +}; + enum numa_topology_type { NUMA_DIRECT = 0, NUMA_GLUELESS_MESH = 1, @@ -29332,11 +32687,6 @@ enum numa_faults_stats { NUMA_CPUBUF = 3, }; -enum schedutil_type { - FREQUENCY_UTIL = 0, - ENERGY_UTIL = 1, -}; - enum numa_type { node_has_spare = 0, node_fully_busy = 1, @@ -29441,28 +32791,17 @@ struct sd_lb_stats { typedef struct rt_rq *rt_rq_iter_t; -struct wait_bit_key { - void *flags; - int bit_nr; - long unsigned int timeout; +enum dl_bw_request { + dl_bw_req_check_overflow = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, }; -struct wait_bit_queue_entry { - struct wait_bit_key key; - struct wait_queue_entry wq_entry; -}; - -typedef int wait_bit_action_f(struct wait_bit_key *, int); - struct sd_flag_debug { unsigned int meta_flags; char *name; }; -struct sched_domain_attr { - int relax_domain_level; -}; - struct s_data { struct sched_domain **sd; struct root_domain *rd; @@ -29475,19 +32814,21 @@ enum s_alloc { sa_none = 3, }; +struct asym_cap_data { + struct list_head link; + long unsigned int capacity; + long unsigned int cpus[0]; +}; + enum cpuacct_stat_index { CPUACCT_STAT_USER = 0, CPUACCT_STAT_SYSTEM = 1, CPUACCT_STAT_NSTATS = 2, }; -struct cpuacct_usage { - u64 usages[2]; -}; - struct cpuacct { struct cgroup_subsys_state css; - struct cpuacct_usage *cpuusage; + u64 *cpuusage; struct kernel_cpustat *cpustat; }; @@ -29535,6 +32876,7 @@ struct sugov_cpu { bool iowait_boost_pending; unsigned int iowait_boost; u64 last_update; + long unsigned int util; long unsigned int bw_dl; long unsigned int max; long unsigned int saved_idle_calls; @@ -29588,6 +32930,10 @@ struct psi_trigger { u64 last_event_time; }; +struct sched_core_cookie { + refcount_t refcnt; +}; + struct ww_acquire_ctx; struct ww_mutex { @@ -29609,18 +32955,6 @@ struct mutex_waiter { struct ww_acquire_ctx *ww_ctx; }; -enum mutex_trylock_recursive_enum { - MUTEX_TRYLOCK_FAILED = 0, - MUTEX_TRYLOCK_SUCCESS = 1, - MUTEX_TRYLOCK_RECURSIVE = 2, -}; - -struct semaphore { - raw_spinlock_t lock; - unsigned int count; - struct list_head wait_list; -}; - struct semaphore_waiter { struct list_head list; struct task_struct *task; @@ -29637,7 +32971,7 @@ struct rwsem_waiter { struct task_struct *task; enum rwsem_waiter_type type; long unsigned int timeout; - long unsigned int last_rowner; + bool handoff_set; }; enum rwsem_wake_type { @@ -29646,12 +32980,6 @@ enum rwsem_wake_type { RWSEM_WAKE_READ_OWNED = 2, }; -enum writer_wait_state { - WRITER_NOT_FIRST = 0, - WRITER_FIRST = 1, - WRITER_HANDOFF = 2, -}; - enum owner_state { OWNER_NULL = 1, OWNER_WRITER = 2, @@ -29694,26 +33022,39 @@ struct pv_hash_entry { struct pv_node *node; }; +struct rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; +}; + +struct rt_mutex { + struct rt_mutex_base rtmutex; +}; + struct hrtimer_sleeper { struct hrtimer timer; struct task_struct *task; }; -struct rt_mutex; - -struct rt_mutex_waiter { - struct rb_node tree_entry; - struct rb_node pi_tree_entry; - struct task_struct *task; - struct rt_mutex *lock; +struct rt_waiter_node { + struct rb_node entry; int prio; u64 deadline; }; -struct rt_mutex { - raw_spinlock_t wait_lock; - struct rb_root_cached waiters; - struct task_struct *owner; +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; +}; + +struct rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; }; enum rtmutex_chainwalk { @@ -29727,18 +33068,6 @@ enum pm_qos_req_action { PM_QOS_REMOVE_REQ = 2, }; -struct miscdevice { - int minor; - const char *name; - const struct file_operations *fops; - struct list_head list; - struct device *parent; - struct device *this_device; - const struct attribute_group **groups; - const char *nodename; - umode_t mode; -}; - typedef int suspend_state_t; enum suspend_stat_step { @@ -29790,37 +33119,37 @@ struct pm_vt_switch { struct platform_suspend_ops { int (*valid)(suspend_state_t); int (*begin)(suspend_state_t); - int (*prepare)(); - int (*prepare_late)(); + int (*prepare)(void); + int (*prepare_late)(void); int (*enter)(suspend_state_t); - void (*wake)(); - void (*finish)(); - bool (*suspend_again)(); - void (*end)(); - void (*recover)(); + void (*wake)(void); + void (*finish)(void); + bool (*suspend_again)(void); + void (*end)(void); + void (*recover)(void); }; struct platform_s2idle_ops { - int (*begin)(); - int (*prepare)(); - int (*prepare_late)(); - bool (*wake)(); - void (*restore_early)(); - void (*restore)(); - void (*end)(); + int (*begin)(void); + int (*prepare)(void); + int (*prepare_late)(void); + bool (*wake)(void); + void (*restore_early)(void); + void (*restore)(void); + void (*end)(void); }; struct platform_hibernation_ops { int (*begin)(pm_message_t); - void (*end)(); - int (*pre_snapshot)(); - void (*finish)(); - int (*prepare)(); - int (*enter)(); - void (*leave)(); - int (*pre_restore)(); - void (*restore_cleanup)(); - void (*recover)(); + void (*end)(void); + int (*pre_snapshot)(void); + void (*finish)(void); + int (*prepare)(void); + int (*enter)(void); + void (*leave)(void); + int (*pre_restore)(void); + void (*restore_cleanup)(void); + void (*recover)(void); }; enum { @@ -30380,8 +33709,12 @@ enum { BIO_THROTTLED = 7, BIO_TRACE_COMPLETION = 8, BIO_CGROUP_ACCT = 9, - BIO_TRACKED = 10, - BIO_FLAG_LAST = 11, + BIO_QOS_THROTTLED = 10, + BIO_QOS_MERGED = 11, + BIO_REMAPPED = 12, + BIO_ZONE_WRITE_LOCKED = 13, + BIO_PERCPU_CACHE = 14, + BIO_FLAG_LAST = 15, }; enum req_opf { @@ -30398,8 +33731,6 @@ enum req_opf { REQ_OP_ZONE_APPEND = 13, REQ_OP_ZONE_RESET = 15, REQ_OP_ZONE_RESET_ALL = 17, - REQ_OP_SCSI_IN = 32, - REQ_OP_SCSI_OUT = 33, REQ_OP_DRV_IN = 34, REQ_OP_DRV_OUT = 35, REQ_OP_LAST = 36, @@ -30532,6 +33863,13 @@ struct compat_resume_swap_area { u32 dev; } __attribute__((packed)); +struct wakelock { + char *name; + struct rb_node node; + struct wakeup_source *ws; + struct list_head lru; +}; + struct sysrq_key_op { void (* const handler)(int); const char * const help_msg; @@ -30548,16 +33886,16 @@ struct dev_printk_info { char device[48]; }; +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; +}; + struct kmsg_dumper { struct list_head list; void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason); enum kmsg_dump_reason max_reason; - bool active; bool registered; - u32 cur_idx; - u32 next_idx; - u64 cur_seq; - u64 next_seq; }; struct trace_event_raw_console { @@ -30640,7 +33978,11 @@ struct console_cmdline { int index; bool user_specified; char *options; - char *brl_options; +}; + +enum printk_info_flags { + LOG_NEWLINE = 2, + LOG_CONT = 8, }; enum devkmsg_log_bits { @@ -30660,13 +34002,13 @@ enum con_msg_format_flags { MSG_FORMAT_SYSLOG = 1, }; -enum log_flags { - LOG_NEWLINE = 2, - LOG_CONT = 8, +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; }; struct devkmsg_user { - u64 seq; + atomic64_t seq; struct ratelimit_state rs; struct mutex lock; char buf[8192]; @@ -30675,11 +34017,9 @@ struct devkmsg_user { struct printk_record record; }; -struct printk_safe_seq_buf { - atomic_t len; - atomic_t message_lost; - struct irq_work work; - unsigned char buffer[8160]; +enum kdb_msgsrc { + KDB_MSGSRC_INTERNAL = 0, + KDB_MSGSRC_PRINTK = 1, }; struct prb_data_block { @@ -30698,6 +34038,7 @@ enum { IRQS_SUSPENDED = 2048, IRQS_TIMINGS = 4096, IRQS_NMI = 8192, + IRQS_SYSFS = 16384, }; enum { @@ -30715,6 +34056,7 @@ enum { _IRQ_IS_POLLED = 262144, _IRQ_DISABLE_UNLAZY = 524288, _IRQ_HIDDEN = 1048576, + _IRQ_NO_DEBUG = 2097152, _IRQF_MODIFY_MASK = 2096911, }; @@ -30888,15 +34230,26 @@ struct trace_event_raw_rcu_utilization { char __data[0]; }; +struct trace_event_raw_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; +}; + struct trace_event_data_offsets_rcu_utilization {}; +struct trace_event_data_offsets_rcu_stall_warning {}; + typedef void (*btf_trace_rcu_utilization)(void *, const char *); +typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); + struct rcu_tasks; typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); -typedef void (*pregp_func_t)(); +typedef void (*pregp_func_t)(void); typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); @@ -30969,6 +34322,7 @@ struct rcu_node { long unsigned int rcu_gp_init_mask; long unsigned int qsmaskinit; long unsigned int qsmaskinitnext; + long unsigned int ofl_seq; long unsigned int expmask; long unsigned int expmaskinit; long unsigned int expmaskinitnext; @@ -30989,8 +34343,7 @@ struct rcu_node { long unsigned int boost_time; struct task_struct *boost_kthread_task; unsigned int boost_kthread_status; - long: 64; - long: 64; + long unsigned int n_boosts; long: 64; raw_spinlock_t fqslock; long: 64; @@ -31068,6 +34421,7 @@ struct rcu_state { struct rcu_node node[521]; struct rcu_node *level[4]; int ncpus; + int n_online_cpus; long: 64; long: 64; long: 64; @@ -31100,12 +34454,12 @@ struct rcu_state { long unsigned int gp_activity; long unsigned int gp_req_activity; long unsigned int jiffies_stall; + int nr_fqs_jiffies_stall; long unsigned int jiffies_resched; long unsigned int n_force_qs_gpstart; const char *name; char abbr; long: 64; - long: 64; raw_spinlock_t ofl_lock; long: 64; long: 64; @@ -31140,7 +34494,8 @@ struct kfree_rcu_cpu { bool monitor_todo; bool initialized; int count; - struct work_struct page_cache_work; + struct delayed_work page_cache_work; + atomic_t backoff_page_cache_fill; atomic_t work_in_progress; struct hrtimer hrtimer; struct llist_head bkvcache; @@ -31230,9 +34585,9 @@ struct klp_shadow { char data[0]; }; -enum dma_sync_target { - SYNC_FOR_CPU = 0, - SYNC_FOR_DEVICE = 1, +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; }; struct dma_devres { @@ -31258,6 +34613,8 @@ struct trace_event_data_offsets_swiotlb_bounced { typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t, enum swiotlb_force); +struct cma; + struct trace_event_raw_sys_enter { struct trace_entry ent; long int id; @@ -31280,51 +34637,6 @@ typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long int); typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long int); -enum mmu_notifier_event { - MMU_NOTIFY_UNMAP = 0, - MMU_NOTIFY_CLEAR = 1, - MMU_NOTIFY_PROTECTION_VMA = 2, - MMU_NOTIFY_PROTECTION_PAGE = 3, - MMU_NOTIFY_SOFT_DIRTY = 4, - MMU_NOTIFY_RELEASE = 5, - MMU_NOTIFY_MIGRATE = 6, -}; - -struct mmu_notifier; - -struct mmu_notifier_range; - -struct mmu_notifier_ops { - void (*release)(struct mmu_notifier *, struct mm_struct *); - int (*clear_flush_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); - int (*clear_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); - int (*test_young)(struct mmu_notifier *, struct mm_struct *, long unsigned int); - void (*change_pte)(struct mmu_notifier *, struct mm_struct *, long unsigned int, pte_t); - int (*invalidate_range_start)(struct mmu_notifier *, const struct mmu_notifier_range *); - void (*invalidate_range_end)(struct mmu_notifier *, const struct mmu_notifier_range *); - void (*invalidate_range)(struct mmu_notifier *, struct mm_struct *, long unsigned int, long unsigned int); - struct mmu_notifier * (*alloc_notifier)(struct mm_struct *); - void (*free_notifier)(struct mmu_notifier *); -}; - -struct mmu_notifier { - struct hlist_node hlist; - const struct mmu_notifier_ops *ops; - struct mm_struct *mm; - struct callback_head rcu; - unsigned int users; -}; - -struct mmu_notifier_range { - struct vm_area_struct *vma; - struct mm_struct *mm; - long unsigned int start; - long unsigned int end; - unsigned int flags; - enum mmu_notifier_event event; - void *migrate_pgmap_owner; -}; - struct kvm_regs { __u64 rax; __u64 rbx; @@ -31389,6 +34701,12 @@ struct kvm_sregs { __u64 interrupt_bitmap[4]; }; +struct kvm_msr_entry { + __u32 index; + __u32 reserved; + __u64 data; +}; + struct kvm_cpuid_entry2 { __u32 function; __u32 index; @@ -31447,6 +34765,45 @@ struct kvm_sync_regs { struct kvm_vcpu_events events; }; +struct kvm_vmx_nested_state_data { + __u8 vmcs12[4096]; + __u8 shadow_vmcs12[4096]; +}; + +struct kvm_vmx_nested_state_hdr { + __u64 vmxon_pa; + __u64 vmcs12_pa; + struct { + __u16 flags; + } smm; + __u16 pad; + __u32 flags; + __u64 preemption_timer_deadline; +}; + +struct kvm_svm_nested_state_data { + __u8 vmcb12[4096]; +}; + +struct kvm_svm_nested_state_hdr { + __u64 vmcb_pa; +}; + +struct kvm_nested_state { + __u16 flags; + __u16 format; + __u32 size; + union { + struct kvm_vmx_nested_state_hdr vmx; + struct kvm_svm_nested_state_hdr svm; + __u8 pad[120]; + } hdr; + union { + struct kvm_vmx_nested_state_data vmx[0]; + struct kvm_svm_nested_state_data svm[0]; + } data; +}; + struct kvm_pmu_event_filter { __u32 action; __u32 nevents; @@ -31484,6 +34841,19 @@ struct kvm_hyperv_exit { } u; }; +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; +}; + struct kvm_run { __u8 request_interrupt_window; __u8 immediate_exit; @@ -31554,6 +34924,13 @@ struct kvm_run { __u32 ndata; __u64 data[16]; } internal; + struct { + __u32 suberror; + __u32 ndata; + __u64 flags; + __u8 insn_size; + __u8 insn_bytes[15]; + } emulation_failure; struct { __u64 gprs[32]; } osi; @@ -31600,6 +34977,7 @@ struct kvm_run { __u32 index; __u64 data; } msr; + struct kvm_xen_exit xen; char padding[256]; }; __u64 kvm_valid_regs; @@ -31636,6 +35014,26 @@ struct kvm_xen_hvm_config { __u8 pad2[30]; }; +struct kvm_enc_region { + __u64 addr; + __u64 size; +}; + +struct kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; +}; + +struct kvm_stats_desc { + __u32 flags; + __s16 exponent; + __u16 size; + __u32 offset; + __u32 bucket_size; + char name[0]; +}; + typedef long unsigned int gva_t; typedef u64 gpa_t; @@ -31644,10 +35042,6 @@ typedef u64 gfn_t; typedef u64 hpa_t; -typedef u64 hfn_t; - -typedef hfn_t kvm_pfn_t; - struct kvm_memory_slot; struct gfn_to_hva_cache { @@ -31679,13 +35073,6 @@ struct kvm_memory_slot { u16 as_id; }; -struct gfn_to_pfn_cache { - u64 generation; - gfn_t gfn; - kvm_pfn_t pfn; - bool dirty; -}; - struct kvm_mmu_memory_cache { int nobjs; gfp_t gfp_zero; @@ -31693,6 +35080,24 @@ struct kvm_mmu_memory_cache { void *objects[40]; }; +struct kvm_vm_stat_generic { + u64 remote_tlb_flush; + u64 remote_tlb_flush_requests; +}; + +struct kvm_vcpu_stat_generic { + u64 halt_successful_poll; + u64 halt_attempted_poll; + u64 halt_poll_invalid; + u64 halt_wakeup; + u64 halt_poll_success_ns; + u64 halt_poll_fail_ns; + u64 halt_wait_ns; + u64 halt_poll_success_hist[32]; + u64 halt_poll_fail_hist[32]; + u64 halt_wait_hist[32]; +}; + struct hv_partition_assist_pg { u32 tlb_lock_count; }; @@ -31766,37 +35171,6 @@ struct kvm_page_track_notifier_node { void (*track_flush_slot)(struct kvm *, struct kvm_memory_slot *, struct kvm_page_track_notifier_node *); }; -struct kvm_vcpu_stat { - u64 pf_fixed; - u64 pf_guest; - u64 tlb_flush; - u64 invlpg; - u64 exits; - u64 io_exits; - u64 mmio_exits; - u64 signal_exits; - u64 irq_window_exits; - u64 nmi_window_exits; - u64 l1d_flush; - u64 halt_exits; - u64 halt_successful_poll; - u64 halt_attempted_poll; - u64 halt_poll_invalid; - u64 halt_wakeup; - u64 request_irq_exits; - u64 irq_exits; - u64 host_state_reload; - u64 fpu_reload; - u64 insn_emulation; - u64 insn_emulation_fail; - u64 hypercalls; - u64 irq_injections; - u64 nmi_injections; - u64 req_event; - u64 halt_poll_success_ns; - u64 halt_poll_fail_ns; -}; - struct kvm_mmio_fragment { gpa_t gpa; void *data; @@ -31818,7 +35192,7 @@ union kvm_mmu_page_role { unsigned int direct: 1; unsigned int access: 3; unsigned int invalid: 1; - unsigned int nxe: 1; + unsigned int efer_nx: 1; unsigned int cr0_wp: 1; unsigned int smep_andnot_wp: 1; unsigned int smap_andnot_wp: 1; @@ -31841,7 +35215,7 @@ union kvm_mmu_extended_role { unsigned int cr4_smap: 1; unsigned int cr4_smep: 1; unsigned int cr4_la57: 1; - unsigned int maxphyaddr: 6; + unsigned int efer_lma: 1; }; }; @@ -31883,11 +35257,10 @@ struct kvm_mmu { u8 permissions[16]; u32 pkru_mask; u64 *pae_root; - u64 *lm_root; + u64 *pml4_root; + u64 *pml5_root; struct rsvd_bits_validate shadow_zero_check; struct rsvd_bits_validate guest_rsvd_check; - u8 last_nonleaf_level; - bool nx; u64 pdptrs[4]; }; @@ -31944,6 +35317,7 @@ struct kvm_pmc { struct perf_event *perf_event; struct kvm_vcpu *vcpu; u64 current_config; + bool is_paused; }; struct kvm_pmu { @@ -31971,39 +35345,21 @@ struct kvm_pmu { u8 event_count; }; -struct kvm_vcpu_hv_synic { - u64 version; - u64 control; - u64 msg_page; - u64 evt_page; - atomic64_t sint[16]; - atomic_t sint_to_gsi[16]; - long unsigned int auto_eoi_bitmap[4]; - long unsigned int vec_bitmap[4]; - bool active; - bool dont_zero_synic_pages; +struct kvm_vcpu_xen { + u64 hypercall_rip; + u32 current_runstate; + bool vcpu_info_set; + bool vcpu_time_info_set; + bool runstate_set; + struct gfn_to_hva_cache vcpu_info_cache; + struct gfn_to_hva_cache vcpu_time_info_cache; + struct gfn_to_hva_cache runstate_cache; + u64 last_steal; + u64 runstate_entry_time; + u64 runstate_times[4]; }; -struct kvm_vcpu_hv_stimer { - struct hrtimer timer; - int index; - union hv_stimer_config config; - u64 count; - u64 exp_time; - struct hv_message msg; - bool msg_pending; -}; - -struct kvm_vcpu_hv { - u32 vp_index; - u64 hv_vapic; - s64 runtime_offset; - struct kvm_vcpu_hv_synic synic; - struct kvm_hyperv_exit exit; - struct kvm_vcpu_hv_stimer stimer[4]; - long unsigned int stimer_pending_bitmap[1]; - cpumask_t tlb_flush; -}; +struct kvm_vcpu_hv; struct kvm_vcpu_arch { long unsigned int regs[17]; @@ -32032,6 +35388,7 @@ struct kvm_vcpu_arch { u64 ia32_misc_enable_msr; u64 smbase; u64 smi_count; + bool at_instruction_boundary; bool tpr_access_reporting; bool xsaves_enabled; u64 ia32_xss; @@ -32047,21 +35404,22 @@ struct kvm_vcpu_arch { struct kvm_mmu_memory_cache mmu_shadow_page_cache; struct kvm_mmu_memory_cache mmu_gfn_array_cache; struct kvm_mmu_memory_cache mmu_page_header_cache; - struct fpu *user_fpu; - struct fpu *guest_fpu; + struct fpu_guest guest_fpu; u64 xcr0; u64 guest_supported_xcr0; struct kvm_pio_request pio; void *pio_data; + void *sev_pio_data; + unsigned int sev_pio_count; u8 event_exit_inst_len; struct kvm_queued_exception exception; struct kvm_queued_interrupt interrupt; int halt_request; int cpuid_nent; struct kvm_cpuid_entry2 *cpuid_entries; - long unsigned int cr3_lm_rsvd_bits; + bool is_amd_compatible; + u64 reserved_gpa_bits; int maxphyaddr; - int max_tdp_level; struct x86_emulate_ctxt *emulate_ctxt; bool emulate_regs_need_sync_to_vcpu; bool emulate_regs_need_sync_from_vcpu; @@ -32076,7 +35434,7 @@ struct kvm_vcpu_arch { u8 preempted; u64 msr_val; u64 last_steal; - struct gfn_to_pfn_cache cache; + struct gfn_to_hva_cache cache; } st; u64 l1_tsc_offset; u64 tsc_offset; @@ -32093,6 +35451,7 @@ struct kvm_vcpu_arch { u32 virtual_tsc_khz; s64 ia32_tsc_adjust_msr; u64 msr_ia32_power_ctl; + u64 l1_tsc_scaling_ratio; u64 tsc_scaling_ratio; atomic_t nmi_queued; unsigned int nmi_pending; @@ -32119,7 +35478,9 @@ struct kvm_vcpu_arch { u64 mmio_gen; struct kvm_pmu pmu; long unsigned int singlestep_rip; - struct kvm_vcpu_hv hyperv; + bool hyperv_enabled; + struct kvm_vcpu_hv *hyperv; + struct kvm_vcpu_xen xen; cpumask_var_t wbinvd_dirty_mask; long unsigned int last_retry_eip; long unsigned int last_retry_addr; @@ -32155,12 +35516,56 @@ struct kvm_vcpu_arch { int pending_external_vector; bool preempted_in_kernel; bool l1tf_flush_l1d; - unsigned int last_vmentry_cpu; + int last_vmentry_cpu; u64 msr_hwcr; struct { u32 features; bool enforce; } pv_cpuid; + bool guest_state_protected; + bool pdptrs_from_userspace; + hpa_t hv_root_tdp; +}; + +struct kvm_vcpu_stat { + struct kvm_vcpu_stat_generic generic; + u64 pf_fixed; + u64 pf_guest; + u64 tlb_flush; + u64 invlpg; + u64 exits; + u64 io_exits; + u64 mmio_exits; + u64 signal_exits; + u64 irq_window_exits; + u64 nmi_window_exits; + u64 l1d_flush; + u64 halt_exits; + u64 request_irq_exits; + u64 irq_exits; + u64 host_state_reload; + u64 fpu_reload; + u64 insn_emulation; + u64 insn_emulation_fail; + u64 hypercalls; + u64 irq_injections; + u64 nmi_injections; + u64 req_event; + u64 nested_run; + u64 directed_yield_attempted; + u64 directed_yield_successful; + u64 preemption_reported; + u64 preemption_other; + u64 guest_mode; +}; + +struct kvm_dirty_ring { + u32 dirty_index; + u32 reset_index; + u32 size; + u32 soft_limit; + struct kvm_dirty_gfn *dirty_gfns; + int index; }; struct kvm_vcpu { @@ -32181,7 +35586,6 @@ struct kvm_vcpu { struct pid *pid; int sigset_active; sigset_t sigset; - struct kvm_vcpu_stat stat; unsigned int halt_poll_ns; bool valid_wakeup; int mmio_needed; @@ -32203,30 +35607,49 @@ struct kvm_vcpu { bool preempted; bool ready; struct kvm_vcpu_arch arch; + struct kvm_vcpu_stat stat; + char stats_id[48]; + struct kvm_dirty_ring dirty_ring; + int last_used_slot; }; struct kvm_vm_stat { - ulong mmu_shadow_zapped; - ulong mmu_pte_write; - ulong mmu_pde_zapped; - ulong mmu_flooded; - ulong mmu_recycled; - ulong mmu_cache_miss; - ulong mmu_unsync; - ulong remote_tlb_flush; - ulong lpages; - ulong nx_lpage_splits; - ulong max_mmu_page_hash_collisions; + struct kvm_vm_stat_generic generic; + u64 mmu_shadow_zapped; + u64 mmu_pte_write; + u64 mmu_pde_zapped; + u64 mmu_flooded; + u64 mmu_recycled; + u64 mmu_cache_miss; + u64 mmu_unsync; + union { + struct { + atomic64_t pages_4k; + atomic64_t pages_2m; + atomic64_t pages_1g; + }; + atomic64_t pages[3]; + }; + u64 nx_lpage_splits; + u64 max_mmu_page_hash_collisions; + u64 max_mmu_rmap_size; }; -struct iommu_domain; - struct kvm_pic; struct kvm_ioapic; struct kvm_pit; +enum hv_tsc_page_status { + HV_TSC_PAGE_UNSET = 0, + HV_TSC_PAGE_GUEST_CHANGED = 1, + HV_TSC_PAGE_HOST_CHANGED = 2, + HV_TSC_PAGE_SET = 3, + HV_TSC_PAGE_UPDATING = 4, + HV_TSC_PAGE_BROKEN = 5, +}; + struct kvm_hv_syndbg { struct { u64 control; @@ -32243,6 +35666,7 @@ struct kvm_hv { u64 hv_guest_os_id; u64 hv_hypercall; u64 hv_tsc_page; + enum hv_tsc_page_status hv_tsc_page_status; u64 hv_crash_param[5]; u64 hv_crash_ctl; struct ms_hyperv_tsc_page tsc_ref; @@ -32251,10 +35675,17 @@ struct kvm_hv { u64 hv_tsc_emulation_control; u64 hv_tsc_emulation_status; atomic_t num_mismatched_vp_indexes; + unsigned int synic_auto_eoi_used; struct hv_partition_assist_pg *hv_pa_pg; struct kvm_hv_syndbg hv_syndbg; }; +struct kvm_xen { + bool long_mode; + u8 upcall_vector; + gfn_t shinfo_gfn; +}; + enum kvm_irqchip_mode { KVM_IRQCHIP_NONE = 0, KVM_IRQCHIP_KERNEL = 1, @@ -32277,6 +35708,7 @@ struct kvm_arch { struct list_head lpage_disallowed_mmu_pages; struct kvm_page_track_notifier_node mmu_sp_tracker; struct kvm_page_track_notifier_head track_notifier_head; + spinlock_t mmu_unsync_pages_lock; struct list_head assigned_dev_head; struct iommu_domain *iommu_domain; bool iommu_noncoherent; @@ -32289,7 +35721,8 @@ struct kvm_arch { struct mutex apic_map_lock; struct kvm_apic_map *apic_map; atomic_t apic_map_dirty; - bool apic_access_page_done; + struct mutex apicv_update_lock; + bool apic_access_memslot_enabled; long unsigned int apicv_inhibit_reasons; gpa_t wall_clock; bool mwait_in_guest; @@ -32307,7 +35740,7 @@ struct kvm_arch { u64 cur_tsc_offset; u64 cur_tsc_generation; int nr_vcpus_matched_tsc; - spinlock_t pvclock_gtod_sync_lock; + raw_spinlock_t pvclock_gtod_sync_lock; bool use_master_clock; u64 master_kernel_ns; u64 master_cycle_now; @@ -32316,10 +35749,12 @@ struct kvm_arch { struct kvm_xen_hvm_config xen_hvm_config; struct hlist_head mask_notifier_list; struct kvm_hv hyperv; + struct kvm_xen xen; bool backwards_tsc_observed; bool boot_vcpu_runs_old_kvmclock; u32 bsp_vcpu_id; u64 disabled_quirks; + int cpu_dirty_logging_count; enum kvm_irqchip_mode irqchip_mode; u8 nr_reserved_ioapic_pins; bool disabled_lapic_found; @@ -32328,13 +35763,20 @@ struct kvm_arch { bool guest_can_read_msr_platform_info; bool exception_payload_enabled; bool bus_lock_detection_enabled; + bool exit_on_emulation_error; u32 user_space_msr_mask; struct kvm_x86_msr_filter *msr_filter; + u32 hypercall_exit_enabled; + bool sgx_provisioning_allowed; struct kvm_pmu_event_filter *pmu_event_filter; struct task_struct *nx_lpage_recovery_thread; bool tdp_mmu_enabled; + atomic64_t tdp_mmu_pages; struct list_head tdp_mmu_roots; - struct list_head tdp_mmu_pages; + spinlock_t tdp_mmu_pages_lock; + bool memslots_have_rmaps; + hpa_t hv_root_tdp; + spinlock_t hv_root_tdp_lock; }; struct kvm_memslots; @@ -32346,11 +35788,15 @@ struct kvm_irq_routing_table; struct kvm_stat_data; struct kvm { - spinlock_t mmu_lock; + rwlock_t mmu_lock; struct mutex slots_lock; + struct mutex slots_arch_lock; struct mm_struct *mm; struct kvm_memslots *memslots[2]; - struct kvm_vcpu *vcpus[288]; + struct kvm_vcpu *vcpus[1024]; + spinlock_t mn_invalidate_lock; + long unsigned int mn_active_invalidate_count; + struct rcuwait mn_memslots_update_rcuwait; atomic_t online_vcpus; int created_vcpus; int last_boosted_vcpu; @@ -32376,7 +35822,8 @@ struct kvm { struct mmu_notifier mmu_notifier; long unsigned int mmu_notifier_seq; long int mmu_notifier_count; - long int tlbs_dirty; + long unsigned int mmu_notifier_range_start; + long unsigned int mmu_notifier_range_end; struct list_head devices; u64 manual_dirty_log_protect; struct dentry *debugfs_dentry; @@ -32385,7 +35832,10 @@ struct kvm { struct srcu_struct irq_srcu; pid_t userspace_pid; unsigned int max_halt_poll_ns; + u32 dirty_ring_size; bool vm_bugged; + struct notifier_block pm_notifier; + char stats_id[48]; }; enum kvm_reg { @@ -32417,10 +35867,65 @@ enum kvm_reg { VCPU_EXREG_EXIT_INFO_2 = 24, }; +enum exit_fastpath_completion { + EXIT_FASTPATH_NONE = 0, + EXIT_FASTPATH_REENTER_GUEST = 1, + EXIT_FASTPATH_EXIT_HANDLED = 2, +}; + struct kvm_rmap_head { long unsigned int val; }; +struct kvm_tlb_range { + u64 start_gfn; + u64 pages; +}; + +struct kvm_vcpu_hv_stimer { + struct hrtimer timer; + int index; + union hv_stimer_config config; + u64 count; + u64 exp_time; + struct hv_message msg; + bool msg_pending; +}; + +struct kvm_vcpu_hv_synic { + u64 version; + u64 control; + u64 msg_page; + u64 evt_page; + atomic64_t sint[16]; + atomic_t sint_to_gsi[16]; + long unsigned int auto_eoi_bitmap[4]; + long unsigned int vec_bitmap[4]; + bool active; + bool dont_zero_synic_pages; +}; + +struct kvm_vcpu_hv { + struct kvm_vcpu *vcpu; + u32 vp_index; + u64 hv_vapic; + s64 runtime_offset; + struct kvm_vcpu_hv_synic synic; + struct kvm_hyperv_exit exit; + struct kvm_vcpu_hv_stimer stimer[4]; + long unsigned int stimer_pending_bitmap[1]; + cpumask_t tlb_flush; + bool enforce_cpuid; + struct { + u32 features_eax; + u32 features_ebx; + u32 features_edx; + u32 enlightenments_eax; + u32 enlightenments_ebx; + u32 syndbg_cap_eax; + } cpuid_cache; +}; + struct kvm_lpage_info { int disallow_lpage; }; @@ -32449,6 +35954,154 @@ struct kvm_x86_msr_filter { struct msr_bitmap_range ranges[16]; }; +struct msr_data { + bool host_initiated; + u32 index; + u64 data; +}; + +struct x86_instruction_info; + +enum x86_intercept_stage; + +struct kvm_pmu_ops; + +struct kvm_x86_nested_ops; + +struct kvm_x86_ops { + int (*hardware_enable)(void); + void (*hardware_disable)(void); + void (*hardware_unsetup)(void); + bool (*cpu_has_accelerated_tpr)(void); + bool (*has_emulated_msr)(struct kvm *, u32); + void (*vcpu_after_set_cpuid)(struct kvm_vcpu *); + unsigned int vm_size; + int (*vm_init)(struct kvm *); + void (*vm_destroy)(struct kvm *); + int (*vcpu_create)(struct kvm_vcpu *); + void (*vcpu_free)(struct kvm_vcpu *); + void (*vcpu_reset)(struct kvm_vcpu *, bool); + void (*prepare_guest_switch)(struct kvm_vcpu *); + void (*vcpu_load)(struct kvm_vcpu *, int); + void (*vcpu_put)(struct kvm_vcpu *); + void (*update_exception_bitmap)(struct kvm_vcpu *); + int (*get_msr)(struct kvm_vcpu *, struct msr_data *); + int (*set_msr)(struct kvm_vcpu *, struct msr_data *); + u64 (*get_segment_base)(struct kvm_vcpu *, int); + void (*get_segment)(struct kvm_vcpu *, struct kvm_segment *, int); + int (*get_cpl)(struct kvm_vcpu *); + void (*set_segment)(struct kvm_vcpu *, struct kvm_segment *, int); + void (*get_cs_db_l_bits)(struct kvm_vcpu *, int *, int *); + bool (*is_valid_cr0)(struct kvm_vcpu *, long unsigned int); + void (*set_cr0)(struct kvm_vcpu *, long unsigned int); + bool (*is_valid_cr4)(struct kvm_vcpu *, long unsigned int); + void (*set_cr4)(struct kvm_vcpu *, long unsigned int); + int (*set_efer)(struct kvm_vcpu *, u64); + void (*get_idt)(struct kvm_vcpu *, struct desc_ptr *); + void (*set_idt)(struct kvm_vcpu *, struct desc_ptr *); + void (*get_gdt)(struct kvm_vcpu *, struct desc_ptr *); + void (*set_gdt)(struct kvm_vcpu *, struct desc_ptr *); + void (*sync_dirty_debug_regs)(struct kvm_vcpu *); + void (*set_dr7)(struct kvm_vcpu *, long unsigned int); + void (*cache_reg)(struct kvm_vcpu *, enum kvm_reg); + long unsigned int (*get_rflags)(struct kvm_vcpu *); + void (*set_rflags)(struct kvm_vcpu *, long unsigned int); + bool (*get_if_flag)(struct kvm_vcpu *); + void (*tlb_flush_all)(struct kvm_vcpu *); + void (*tlb_flush_current)(struct kvm_vcpu *); + int (*tlb_remote_flush)(struct kvm *); + int (*tlb_remote_flush_with_range)(struct kvm *, struct kvm_tlb_range *); + void (*tlb_flush_gva)(struct kvm_vcpu *, gva_t); + void (*tlb_flush_guest)(struct kvm_vcpu *); + enum exit_fastpath_completion (*run)(struct kvm_vcpu *); + int (*handle_exit)(struct kvm_vcpu *, enum exit_fastpath_completion); + int (*skip_emulated_instruction)(struct kvm_vcpu *); + void (*update_emulated_instruction)(struct kvm_vcpu *); + void (*set_interrupt_shadow)(struct kvm_vcpu *, int); + u32 (*get_interrupt_shadow)(struct kvm_vcpu *); + void (*patch_hypercall)(struct kvm_vcpu *, unsigned char *); + void (*set_irq)(struct kvm_vcpu *); + void (*set_nmi)(struct kvm_vcpu *); + void (*queue_exception)(struct kvm_vcpu *); + void (*cancel_injection)(struct kvm_vcpu *); + int (*interrupt_allowed)(struct kvm_vcpu *, bool); + int (*nmi_allowed)(struct kvm_vcpu *, bool); + bool (*get_nmi_mask)(struct kvm_vcpu *); + void (*set_nmi_mask)(struct kvm_vcpu *, bool); + void (*enable_nmi_window)(struct kvm_vcpu *); + void (*enable_irq_window)(struct kvm_vcpu *); + void (*update_cr8_intercept)(struct kvm_vcpu *, int, int); + bool (*check_apicv_inhibit_reasons)(ulong); + void (*refresh_apicv_exec_ctrl)(struct kvm_vcpu *); + void (*hwapic_irr_update)(struct kvm_vcpu *, int); + void (*hwapic_isr_update)(struct kvm_vcpu *, int); + bool (*guest_apic_has_interrupt)(struct kvm_vcpu *); + void (*load_eoi_exitmap)(struct kvm_vcpu *, u64 *); + void (*set_virtual_apic_mode)(struct kvm_vcpu *); + void (*set_apic_access_page_addr)(struct kvm_vcpu *); + int (*deliver_posted_interrupt)(struct kvm_vcpu *, int); + int (*sync_pir_to_irr)(struct kvm_vcpu *); + int (*set_tss_addr)(struct kvm *, unsigned int); + int (*set_identity_map_addr)(struct kvm *, u64); + u64 (*get_mt_mask)(struct kvm_vcpu *, gfn_t, bool); + void (*load_mmu_pgd)(struct kvm_vcpu *, hpa_t, int); + bool (*has_wbinvd_exit)(void); + u64 (*get_l2_tsc_offset)(struct kvm_vcpu *); + u64 (*get_l2_tsc_multiplier)(struct kvm_vcpu *); + void (*write_tsc_offset)(struct kvm_vcpu *, u64); + void (*write_tsc_multiplier)(struct kvm_vcpu *, u64); + void (*get_exit_info)(struct kvm_vcpu *, u64 *, u64 *, u32 *, u32 *); + int (*check_intercept)(struct kvm_vcpu *, struct x86_instruction_info *, enum x86_intercept_stage, struct x86_exception *); + void (*handle_exit_irqoff)(struct kvm_vcpu *); + void (*request_immediate_exit)(struct kvm_vcpu *); + void (*sched_in)(struct kvm_vcpu *, int); + int cpu_dirty_log_size; + void (*update_cpu_dirty_logging)(struct kvm_vcpu *); + const struct kvm_pmu_ops *pmu_ops; + const struct kvm_x86_nested_ops *nested_ops; + int (*pre_block)(struct kvm_vcpu *); + void (*post_block)(struct kvm_vcpu *); + void (*vcpu_blocking)(struct kvm_vcpu *); + void (*vcpu_unblocking)(struct kvm_vcpu *); + int (*update_pi_irte)(struct kvm *, unsigned int, uint32_t, bool); + void (*start_assignment)(struct kvm *); + void (*apicv_post_state_restore)(struct kvm_vcpu *); + bool (*dy_apicv_has_pending_interrupt)(struct kvm_vcpu *); + int (*set_hv_timer)(struct kvm_vcpu *, u64, bool *); + void (*cancel_hv_timer)(struct kvm_vcpu *); + void (*setup_mce)(struct kvm_vcpu *); + int (*smi_allowed)(struct kvm_vcpu *, bool); + int (*enter_smm)(struct kvm_vcpu *, char *); + int (*leave_smm)(struct kvm_vcpu *, const char *); + void (*enable_smi_window)(struct kvm_vcpu *); + int (*mem_enc_op)(struct kvm *, void *); + int (*mem_enc_reg_region)(struct kvm *, struct kvm_enc_region *); + int (*mem_enc_unreg_region)(struct kvm *, struct kvm_enc_region *); + int (*vm_copy_enc_context_from)(struct kvm *, unsigned int); + void (*guest_memory_reclaimed)(struct kvm *); + int (*get_msr_feature)(struct kvm_msr_entry *); + bool (*can_emulate_instruction)(struct kvm_vcpu *, void *, int); + bool (*apic_init_signal_blocked)(struct kvm_vcpu *); + int (*enable_direct_tlbflush)(struct kvm_vcpu *); + void (*migrate_timers)(struct kvm_vcpu *); + void (*msr_filter_changed)(struct kvm_vcpu *); + int (*complete_emulated_msr)(struct kvm_vcpu *, int); + void (*vcpu_deliver_sipi_vector)(struct kvm_vcpu *, u8); +}; + +struct kvm_x86_nested_ops { + void (*leave_nested)(struct kvm_vcpu *); + int (*check_events)(struct kvm_vcpu *); + bool (*hv_timer_pending)(struct kvm_vcpu *); + void (*triple_fault)(struct kvm_vcpu *); + int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int); + int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *); + bool (*get_nested_state_pages)(struct kvm_vcpu *); + int (*write_log_dirty)(struct kvm_vcpu *, gpa_t); + int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *); + uint16_t (*get_evmcs_version)(struct kvm_vcpu *); +}; + struct kvm_io_device; struct kvm_io_range { @@ -32479,29 +36132,28 @@ struct kvm_irq_routing_table { struct kvm_memslots { u64 generation; - short int id_to_index[512]; - atomic_t lru_slot; + short int id_to_index[32767]; + atomic_t last_used_slot; int used_slots; struct kvm_memory_slot memslots[0]; }; -struct kvm_stats_debugfs_item; - -struct kvm_stat_data { - struct kvm *kvm; - struct kvm_stats_debugfs_item *dbgfs_item; -}; - enum kvm_stat_kind { KVM_STAT_VM = 0, KVM_STAT_VCPU = 1, }; -struct kvm_stats_debugfs_item { - const char *name; - int offset; +struct _kvm_stats_desc; + +struct kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; enum kvm_stat_kind kind; - int mode; +}; + +struct _kvm_stats_desc { + struct kvm_stats_desc desc; + char name[48]; }; enum kcmp_type { @@ -32777,16 +36429,6 @@ struct process_timer { struct task_struct *task; }; -enum tick_device_mode { - TICKDEV_MODE_PERIODIC = 0, - TICKDEV_MODE_ONESHOT = 1, -}; - -struct tick_device { - struct clock_event_device *evtdev; - enum tick_device_mode mode; -}; - struct ktime_timestamps { u64 mono; u64 boot; @@ -32797,6 +36439,7 @@ struct system_time_snapshot { u64 cycles; ktime_t real; ktime_t raw; + enum clocksource_ids cs_id; unsigned int clock_was_set_seq; u8 cs_was_changed_seq; }; @@ -32826,6 +36469,64 @@ struct tk_fast { struct tk_read_base base[2]; }; +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; +}; + +struct rtc_class_ops { + int (*ioctl)(struct device *, unsigned int, long unsigned int); + int (*read_time)(struct device *, struct rtc_time *); + int (*set_time)(struct device *, struct rtc_time *); + int (*read_alarm)(struct device *, struct rtc_wkalrm *); + int (*set_alarm)(struct device *, struct rtc_wkalrm *); + int (*proc)(struct device *, struct seq_file *); + int (*alarm_irq_enable)(struct device *, unsigned int); + int (*read_offset)(struct device *, long int *); + int (*set_offset)(struct device *, long int); +}; + +struct rtc_device; + +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; +}; + +struct rtc_device { + struct device dev; + struct module *owner; + int id; + const struct rtc_class_ops *ops; + struct mutex ops_lock; + struct cdev char_dev; + long unsigned int flags; + long unsigned int irq_data; + spinlock_t irq_lock; + wait_queue_head_t irq_queue; + struct fasync_struct *async_queue; + int irq_freq; + int max_user_freq; + struct timerqueue_head timerqueue; + struct rtc_timer aie_timer; + struct rtc_timer uie_rtctimer; + struct hrtimer pie_timer; + int pie_enabled; + struct work_struct irqwork; + int uie_unsupported; + long unsigned int set_offset_nsec; + long unsigned int features[1]; + time64_t range_min; + timeu64_t range_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; +}; + typedef s64 int64_t; enum wd_read_status { @@ -32834,6 +36535,16 @@ enum wd_read_status { WD_READ_SKIP = 2, }; +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, +}; + +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; +}; + enum tick_nohz_mode { NOHZ_MODE_INACTIVE = 0, NOHZ_MODE_LOWRES = 1, @@ -32865,6 +36576,8 @@ struct tick_sched { u64 next_timer; ktime_t idle_expires; atomic_t tick_dep_mask; + long unsigned int last_tick_jiffies; + unsigned int stalled_jiffies; }; struct timer_list_iter { @@ -32901,12 +36614,6 @@ struct timecounter { typedef __kernel_timer_t timer_t; -struct rtc_wkalrm { - unsigned char enabled; - unsigned char pending; - struct rtc_time time; -}; - enum alarmtimer_type { ALARM_REALTIME = 0, ALARM_BOOTTIME = 1, @@ -32935,6 +36642,7 @@ struct cpu_timer { struct pid *pid; struct list_head elist; int firing; + struct task_struct *handling; }; struct k_clock; @@ -32996,63 +36704,10 @@ struct class_interface { void (*remove_dev)(struct device *, struct class_interface *); }; -struct rtc_class_ops { - int (*ioctl)(struct device *, unsigned int, long unsigned int); - int (*read_time)(struct device *, struct rtc_time *); - int (*set_time)(struct device *, struct rtc_time *); - int (*read_alarm)(struct device *, struct rtc_wkalrm *); - int (*set_alarm)(struct device *, struct rtc_wkalrm *); - int (*proc)(struct device *, struct seq_file *); - int (*alarm_irq_enable)(struct device *, unsigned int); - int (*read_offset)(struct device *, long int *); - int (*set_offset)(struct device *, long int); -}; - -struct rtc_device; - -struct rtc_timer { - struct timerqueue_node node; - ktime_t period; - void (*func)(struct rtc_device *); - struct rtc_device *rtc; - int enabled; -}; - -struct rtc_device { - struct device dev; - struct module *owner; - int id; - const struct rtc_class_ops *ops; - struct mutex ops_lock; - struct cdev char_dev; - long unsigned int flags; - long unsigned int irq_data; - spinlock_t irq_lock; - wait_queue_head_t irq_queue; - struct fasync_struct *async_queue; - int irq_freq; - int max_user_freq; - struct timerqueue_head timerqueue; - struct rtc_timer aie_timer; - struct rtc_timer uie_rtctimer; - struct hrtimer pie_timer; - int pie_enabled; - struct work_struct irqwork; - int uie_unsupported; - long int set_offset_nsec; - bool registered; - bool nvram_old_abi; - struct bin_attribute *nvram; - time64_t range_min; - timeu64_t range_max; - time64_t start_secs; - time64_t offset_secs; - bool set_start_time; -}; - struct platform_driver { int (*probe)(struct platform_device *); int (*remove)(struct platform_device *); + void (*remove_new)(struct platform_device *); void (*shutdown)(struct platform_device *); int (*suspend)(struct platform_device *, pm_message_t); int (*resume)(struct platform_device *); @@ -33092,7 +36747,7 @@ typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); struct alarm_base { spinlock_t lock; struct timerqueue_head timerqueue; - ktime_t (*get_ktime)(); + ktime_t (*get_ktime)(void); void (*get_timespec)(struct timespec64 *); clockid_t base_clockid; }; @@ -33198,7 +36853,7 @@ union futex_key { struct futex_pi_state { struct list_head list; - struct rt_mutex pi_mutex; + struct rt_mutex_base pi_mutex; struct task_struct *owner; refcount_t refcount; union futex_key key; @@ -33213,6 +36868,16 @@ struct futex_q { struct rt_mutex_waiter *rt_waiter; union futex_key *requeue_pi_key; u32 bitset; + atomic_t requeue_state; +}; + +enum { + Q_REQUEUE_PI_NONE = 0, + Q_REQUEUE_PI_IGNORE = 1, + Q_REQUEUE_PI_IN_PROGRESS = 2, + Q_REQUEUE_PI_WAIT = 3, + Q_REQUEUE_PI_DONE = 4, + Q_REQUEUE_PI_LOCKED = 5, }; struct futex_hash_bucket { @@ -33236,10 +36901,12 @@ struct dma_chan { const char *device_id; }; -typedef bool (*smp_cond_func_t)(int, void *); +struct cfd_percpu { + call_single_data_t csd; +}; struct call_function_data { - call_single_data_t *csd; + struct cfd_percpu *pcpu; cpumask_var_t cpumask; cpumask_var_t cpumask_ipi; }; @@ -33292,20 +36959,6 @@ struct module_notes_attrs { struct bin_attribute attrs[0]; }; -enum mod_license { - NOT_GPL_ONLY = 0, - GPL_ONLY = 1, - WILL_BE_GPL_ONLY = 2, -}; - -struct symsearch { - const struct kernel_symbol *start; - const struct kernel_symbol *stop; - const s32 *crcs; - enum mod_license license; - bool unused; -}; - enum kernel_read_file_id { READING_UNKNOWN = 0, READING_FIRMWARE = 1, @@ -33419,6 +37072,18 @@ struct mod_tree_root { long unsigned int addr_max; }; +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, +}; + +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const s32 *crcs; + enum mod_license license; +}; + struct find_symbol_arg { const char *name; bool gplok; @@ -33444,99 +37109,6 @@ struct module_signature { __be32 sig_len; }; -struct crypto_alg; - -struct crypto_tfm { - u32 crt_flags; - int node; - void (*exit)(struct crypto_tfm *); - struct crypto_alg *__crt_alg; - void *__crt_ctx[0]; -}; - -struct cipher_alg { - unsigned int cia_min_keysize; - unsigned int cia_max_keysize; - int (*cia_setkey)(struct crypto_tfm *, const u8 *, unsigned int); - void (*cia_encrypt)(struct crypto_tfm *, u8 *, const u8 *); - void (*cia_decrypt)(struct crypto_tfm *, u8 *, const u8 *); -}; - -struct compress_alg { - int (*coa_compress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *); - int (*coa_decompress)(struct crypto_tfm *, const u8 *, unsigned int, u8 *, unsigned int *); -}; - -struct crypto_type; - -struct crypto_alg { - struct list_head cra_list; - struct list_head cra_users; - u32 cra_flags; - unsigned int cra_blocksize; - unsigned int cra_ctxsize; - unsigned int cra_alignmask; - int cra_priority; - refcount_t cra_refcnt; - char cra_name[128]; - char cra_driver_name[128]; - const struct crypto_type *cra_type; - union { - struct cipher_alg cipher; - struct compress_alg compress; - } cra_u; - int (*cra_init)(struct crypto_tfm *); - void (*cra_exit)(struct crypto_tfm *); - void (*cra_destroy)(struct crypto_alg *); - struct module *cra_module; -}; - -struct crypto_instance; - -struct crypto_type { - unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); - unsigned int (*extsize)(struct crypto_alg *); - int (*init)(struct crypto_tfm *, u32, u32); - int (*init_tfm)(struct crypto_tfm *); - void (*show)(struct seq_file *, struct crypto_alg *); - int (*report)(struct sk_buff *, struct crypto_alg *); - void (*free)(struct crypto_instance *); - unsigned int type; - unsigned int maskclear; - unsigned int maskset; - unsigned int tfmsize; -}; - -struct crypto_shash; - -struct shash_desc { - struct crypto_shash *tfm; - void *__ctx[0]; -}; - -struct crypto_shash { - unsigned int descsize; - struct crypto_tfm base; -}; - -struct shash_alg { - int (*init)(struct shash_desc *); - int (*update)(struct shash_desc *, const u8 *, unsigned int); - int (*final)(struct shash_desc *, u8 *); - int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*export)(struct shash_desc *, void *); - int (*import)(struct shash_desc *, const void *); - int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_shash *); - void (*exit_tfm)(struct crypto_shash *); - unsigned int descsize; - long: 0; - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; -}; - enum pkey_id_type { PKEY_ID_PGP = 0, PKEY_ID_X509 = 1, @@ -33611,11 +37183,6 @@ struct elf64_note { Elf64_Word n_type; }; -struct elf_note_section { - struct elf64_note n_hdr; - u8 n_data[0]; -}; - typedef long unsigned int elf_greg_t; typedef elf_greg_t elf_gregset_t[27]; @@ -33626,7 +37193,7 @@ struct elf_siginfo { int si_errno; }; -struct elf_prstatus { +struct elf_prstatus_common { struct elf_siginfo pr_info; short int pr_cursig; long unsigned int pr_sigpend; @@ -33639,6 +37206,10 @@ struct elf_prstatus { struct __kernel_old_timeval pr_stime; struct __kernel_old_timeval pr_cutime; struct __kernel_old_timeval pr_cstime; +}; + +struct elf_prstatus { + struct elf_prstatus_common common; elf_gregset_t pr_reg; int pr_fpvalid; }; @@ -33665,6 +37236,30 @@ struct elf64_phdr { typedef struct elf64_phdr Elf64_Phdr; +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO__LAST = 20, +}; + struct kexec_sha_region { long unsigned int start; long unsigned int len; @@ -33678,12 +37273,12 @@ enum migrate_reason { MR_MEMPOLICY_MBIND = 4, MR_NUMA_MISPLACED = 5, MR_CONTIG_RANGE = 6, - MR_TYPES = 7, + MR_LONGTERM_PIN = 7, + MR_DEMOTION = 8, + MR_TYPES = 9, }; -typedef __kernel_ulong_t __kernel_ino_t; - -typedef __kernel_ino_t ino_t; +typedef __kernel_ulong_t ino_t; enum bpf_link_type { BPF_LINK_TYPE_UNSPEC = 0, @@ -33693,7 +37288,8 @@ enum bpf_link_type { BPF_LINK_TYPE_ITER = 4, BPF_LINK_TYPE_NETNS = 5, BPF_LINK_TYPE_XDP = 6, - MAX_BPF_LINK_TYPE = 7, + BPF_LINK_TYPE_PERF_EVENT = 7, + MAX_BPF_LINK_TYPE = 8, }; struct bpf_link_info { @@ -33707,6 +37303,8 @@ struct bpf_link_info { } raw_tracepoint; struct { __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; } tracing; struct { __u64 cgroup_id; @@ -33762,6 +37360,7 @@ enum { CGRP_CPUSET_CLONE_CHILDREN = 1, CGRP_FREEZE = 2, CGRP_FROZEN = 3, + CGRP_KILL = 4, }; enum { @@ -33783,21 +37382,6 @@ struct cgroup_taskset { struct task_struct *cur_task; }; -struct css_task_iter { - struct cgroup_subsys *ss; - unsigned int flags; - struct list_head *cset_pos; - struct list_head *cset_head; - struct list_head *tcset_pos; - struct list_head *tcset_head; - struct list_head *task_pos; - struct list_head *cur_tasks_head; - struct css_set *cur_cset; - struct css_set *cur_dcset; - struct task_struct *cur_task; - struct list_head iters_node; -}; - struct cgroup_fs_context { struct kernfs_fs_context kfc; struct cgroup_root *root; @@ -33922,6 +37506,11 @@ typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); +enum cgroup_opt_features { + OPT_FEATURE_PRESSURE = 0, + OPT_FEATURE_COUNT = 1, +}; + enum cgroup2_param { Opt_nsdelegate = 0, Opt_memory_localevents = 1, @@ -34027,8 +37616,6 @@ struct rdmacg_resource_pool { int num_max_cnt; }; -struct root_domain; - struct fmeter { int cnt; int val; @@ -34053,6 +37640,10 @@ struct cpuset { int partition_root_state; int use_parent_ecpus; int child_ecpus_count; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + struct cgroup_file partition_file; }; struct tmpmasks { @@ -34104,6 +37695,23 @@ typedef enum { FILE_SPREAD_SLAB = 15, } cpuset_filetype_t; +enum misc_res_type { + MISC_CG_RES_SEV = 0, + MISC_CG_RES_SEV_ES = 1, + MISC_CG_RES_TYPES = 2, +}; + +struct misc_res { + long unsigned int max; + atomic_long_t usage; + bool failed; +}; + +struct misc_cg { + struct cgroup_subsys_state css; + struct misc_res res[2]; +}; + struct kernel_pkey_query { __u32 supported_ops; __u32 key_size; @@ -34134,6 +37742,7 @@ struct kernel_pkey_params { }; struct key_preparsed_payload { + const char *orig_description; char *description; union key_payload payload; const void *data; @@ -34171,6 +37780,8 @@ struct cpu_stopper { bool enabled; struct list_head works; struct cpu_stop_work stop_work; + long unsigned int caller; + cpu_stop_fn_t fn; }; enum multi_stop_state { @@ -34195,9 +37806,9 @@ typedef int __kernel_mqd_t; typedef __kernel_mqd_t mqd_t; enum audit_state { - AUDIT_DISABLED = 0, - AUDIT_BUILD_CONTEXT = 1, - AUDIT_RECORD_CONTEXT = 2, + AUDIT_STATE_DISABLED = 0, + AUDIT_STATE_BUILD = 1, + AUDIT_STATE_RECORD = 2, }; struct audit_cap_data { @@ -34222,7 +37833,7 @@ struct audit_names { kuid_t uid; kgid_t gid; dev_t rdev; - u32 osid; + struct lsmblob oblob; struct audit_cap_data fcap; unsigned int fcap_ver; unsigned char type; @@ -34285,7 +37896,7 @@ struct audit_context { kuid_t target_auid; kuid_t target_uid; unsigned int target_sessionid; - u32 target_sid; + struct lsmblob target_lsm; char target_comm[16]; struct audit_tree_refs *trees; struct audit_tree_refs *first_trees; @@ -34301,7 +37912,7 @@ struct audit_context { kuid_t uid; kgid_t gid; umode_t mode; - u32 osid; + struct lsmblob oblob; int has_perm; uid_t perm_uid; gid_t perm_gid; @@ -34350,6 +37961,22 @@ struct audit_context { struct audit_proctitle proctitle; }; +struct __kernel_sockaddr_storage { + union { + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; + }; +}; + +struct lsmcontext { + char *context; + u32 len; + int slot; +}; + enum audit_nlgrps { AUDIT_NLGRP_NONE = 0, AUDIT_NLGRP_READLOG = 1, @@ -34385,22 +38012,28 @@ struct audit_tty_status { __u32 log_passwd; }; -struct __kernel_sockaddr_storage { - union { - struct { - __kernel_sa_family_t ss_family; - char __data[126]; - }; - void *__align; - }; -}; - struct audit_sig_info { uid_t uid; pid_t pid; char ctx[0]; }; +enum skb_drop_reason { + SKB_DROP_REASON_NOT_SPECIFIED = 0, + SKB_DROP_REASON_NO_SOCKET = 1, + SKB_DROP_REASON_PKT_TOO_SMALL = 2, + SKB_DROP_REASON_TCP_CSUM = 3, + SKB_DROP_REASON_SOCKET_FILTER = 4, + SKB_DROP_REASON_UDP_CSUM = 5, + SKB_DROP_REASON_NETFILTER_DROP = 6, + SKB_DROP_REASON_OTHERHOST = 7, + SKB_DROP_REASON_IP_CSUM = 8, + SKB_DROP_REASON_IP_INHDR = 9, + SKB_DROP_REASON_IP_RPFILTER = 10, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 11, + SKB_DROP_REASON_MAX = 12, +}; + struct net_generic { union { struct { @@ -34540,8 +38173,9 @@ struct audit_field { kuid_t uid; kgid_t gid; struct { + bool lsm_isset; char *lsm_str; - void *lsm_rule; + void *lsm_rules[4]; }; }; u32 op; @@ -34553,8 +38187,6 @@ struct audit_entry { struct audit_krule rule; }; -struct audit_buffer; - typedef int __kernel_key_t; typedef __kernel_key_t key_t; @@ -34625,13 +38257,13 @@ enum audit_nfcfgop { AUDIT_NFT_OP_INVALID = 19, }; -enum fsnotify_obj_type { - FSNOTIFY_OBJ_TYPE_INODE = 0, - FSNOTIFY_OBJ_TYPE_PARENT = 1, - FSNOTIFY_OBJ_TYPE_VFSMOUNT = 2, - FSNOTIFY_OBJ_TYPE_SB = 3, - FSNOTIFY_OBJ_TYPE_COUNT = 4, - FSNOTIFY_OBJ_TYPE_DETACHED = 4, +enum fsnotify_iter_type { + FSNOTIFY_ITER_TYPE_INODE = 0, + FSNOTIFY_ITER_TYPE_VFSMOUNT = 1, + FSNOTIFY_ITER_TYPE_SB = 2, + FSNOTIFY_ITER_TYPE_PARENT = 3, + FSNOTIFY_ITER_TYPE_INODE2 = 4, + FSNOTIFY_ITER_TYPE_COUNT = 5, }; struct audit_aux_data { @@ -34652,7 +38284,7 @@ struct audit_aux_data_pids { kuid_t target_auid[16]; kuid_t target_uid[16]; unsigned int target_sessionid[16]; - u32 target_sid[16]; + struct lsmblob target_lsm[16]; char target_comm[256]; int pid_count; }; @@ -34695,7 +38327,7 @@ struct fsnotify_ops { int (*handle_inode_event)(struct fsnotify_mark *, u32, struct inode *, struct inode *, const struct qstr *, u32); void (*free_group_priv)(struct fsnotify_group *); void (*freeing_mark)(struct fsnotify_mark *, struct fsnotify_group *); - void (*free_event)(struct fsnotify_event *); + void (*free_event)(struct fsnotify_group *, struct fsnotify_event *); void (*free_mark)(struct fsnotify_mark *); }; @@ -34706,12 +38338,13 @@ struct inotify_group_private_data { }; struct fanotify_group_private_data { + struct hlist_head *merge_hash; struct list_head access_list; wait_queue_head_t access_waitq; int flags; int f_flags; - unsigned int max_marks; - struct user_struct *user; + struct ucounts *ucounts; + mempool_t error_events_pool; }; struct fsnotify_group { @@ -34724,8 +38357,9 @@ struct fsnotify_group { unsigned int max_events; unsigned int priority; bool shutdown; + int flags; + unsigned int owner_flags; struct mutex mark_mutex; - atomic_t num_marks; atomic_t user_waits; struct list_head marks_list; struct fasync_struct *fsn_fa; @@ -34739,7 +38373,8 @@ struct fsnotify_group { }; struct fsnotify_iter_info { - struct fsnotify_mark *marks[4]; + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; unsigned int report_mask; int srcu_idx; }; @@ -34752,13 +38387,21 @@ struct fsnotify_mark { spinlock_t lock; struct hlist_node obj_list; struct fsnotify_mark_connector *connector; - __u32 ignored_mask; + __u32 ignore_mask; unsigned int flags; }; struct fsnotify_event { struct list_head list; - long unsigned int objectid; +}; + +enum fsnotify_obj_type { + FSNOTIFY_OBJ_TYPE_ANY = 4294967295, + FSNOTIFY_OBJ_TYPE_INODE = 0, + FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, + FSNOTIFY_OBJ_TYPE_SB = 2, + FSNOTIFY_OBJ_TYPE_COUNT = 3, + FSNOTIFY_OBJ_TYPE_DETACHED = 3, }; struct audit_parent { @@ -34774,8 +38417,6 @@ struct audit_fsnotify_mark { struct audit_krule *rule; }; -struct audit_chunk; - struct audit_tree { refcount_t count; int goner; @@ -34842,13 +38483,158 @@ enum kprobe_slot_state { SLOT_USED = 2, }; -struct seccomp_data { - int nr; - __u32 arch; - __u64 instruction_pointer; - __u64 args[6]; +struct kgdb_io { + const char *name; + int (*read_char)(void); + void (*write_char)(u8); + void (*flush)(void); + int (*init)(void); + void (*deinit)(void); + void (*pre_exception)(void); + void (*post_exception)(void); + struct console *cons; }; +enum { + KDB_NOT_INITIALIZED = 0, + KDB_INIT_EARLY = 1, + KDB_INIT_FULL = 2, +}; + +struct kgdb_state { + int ex_vector; + int signo; + int err_code; + int cpu; + int pass_exception; + long unsigned int thr_query; + long unsigned int threadid; + long int kgdb_usethreadid; + struct pt_regs *linux_regs; + atomic_t *send_ready; +}; + +struct debuggerinfo_struct { + void *debuggerinfo; + struct task_struct *task; + int exception_state; + int ret_state; + int irq_depth; + int enter_kgdb; + bool rounding_up; +}; + +typedef int (*get_char_func)(void); + +typedef enum { + KDB_ENABLE_ALL = 1, + KDB_ENABLE_MEM_READ = 2, + KDB_ENABLE_MEM_WRITE = 4, + KDB_ENABLE_REG_READ = 8, + KDB_ENABLE_REG_WRITE = 16, + KDB_ENABLE_INSPECT = 32, + KDB_ENABLE_FLOW_CTRL = 64, + KDB_ENABLE_SIGNAL = 128, + KDB_ENABLE_REBOOT = 256, + KDB_ENABLE_ALWAYS_SAFE = 512, + KDB_ENABLE_MASK = 1023, + KDB_ENABLE_ALL_NO_ARGS = 1024, + KDB_ENABLE_MEM_READ_NO_ARGS = 2048, + KDB_ENABLE_MEM_WRITE_NO_ARGS = 4096, + KDB_ENABLE_REG_READ_NO_ARGS = 8192, + KDB_ENABLE_REG_WRITE_NO_ARGS = 16384, + KDB_ENABLE_INSPECT_NO_ARGS = 32768, + KDB_ENABLE_FLOW_CTRL_NO_ARGS = 65536, + KDB_ENABLE_SIGNAL_NO_ARGS = 131072, + KDB_ENABLE_REBOOT_NO_ARGS = 262144, + KDB_ENABLE_ALWAYS_SAFE_NO_ARGS = 524288, + KDB_ENABLE_MASK_NO_ARGS = 1047552, + KDB_REPEAT_NO_ARGS = 1073741824, + KDB_REPEAT_WITH_ARGS = 2147483648, +} kdb_cmdflags_t; + +typedef int (*kdb_func_t)(int, const char **); + +struct _kdbtab { + char *name; + kdb_func_t func; + char *usage; + char *help; + short int minlen; + kdb_cmdflags_t flags; + struct list_head list_node; +}; + +typedef struct _kdbtab kdbtab_t; + +typedef enum { + KDB_REASON_ENTER = 1, + KDB_REASON_ENTER_SLAVE = 2, + KDB_REASON_BREAK = 3, + KDB_REASON_DEBUG = 4, + KDB_REASON_OOPS = 5, + KDB_REASON_SWITCH = 6, + KDB_REASON_KEYBOARD = 7, + KDB_REASON_NMI = 8, + KDB_REASON_RECURSE = 9, + KDB_REASON_SSTEP = 10, + KDB_REASON_SYSTEM_NMI = 11, +} kdb_reason_t; + +struct __ksymtab { + long unsigned int value; + const char *mod_name; + long unsigned int mod_start; + long unsigned int mod_end; + const char *sec_name; + long unsigned int sec_start; + long unsigned int sec_end; + const char *sym_name; + long unsigned int sym_start; + long unsigned int sym_end; +}; + +typedef struct __ksymtab kdb_symtab_t; + +typedef enum { + KDB_DB_BPT = 0, + KDB_DB_SS = 1, + KDB_DB_SSBPT = 2, + KDB_DB_NOBPT = 3, +} kdb_dbtrap_t; + +struct _kdbmsg { + int km_diag; + char *km_msg; +}; + +typedef struct _kdbmsg kdbmsg_t; + +struct kdb_macro { + kdbtab_t cmd; + struct list_head statements; +}; + +struct kdb_macro_statement { + char *statement; + struct list_head list_node; +}; + +struct _kdb_bp { + long unsigned int bp_addr; + unsigned int bp_free: 1; + unsigned int bp_enabled: 1; + unsigned int bp_type: 4; + unsigned int bp_installed: 1; + unsigned int bp_delay: 1; + unsigned int bp_delayed: 1; + unsigned int bph_length; +}; + +typedef struct _kdb_bp kdb_bp_t; + +typedef short unsigned int u_short; + struct seccomp_notif_sizes { __u16 seccomp_notif; __u16 seccomp_notif_resp; @@ -34877,12 +38663,18 @@ struct seccomp_notif_addfd { __u32 newfd_flags; }; +struct action_cache { + long unsigned int allow_native[8]; + long unsigned int allow_compat[8]; +}; + struct notification; struct seccomp_filter { refcount_t refs; refcount_t users; bool log; + struct action_cache cache; struct seccomp_filter *prev; struct bpf_prog *prog; struct notification *notif; @@ -34905,6 +38697,10 @@ struct compat_sock_fprog { compat_uptr_t filter; }; +typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); + +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); + enum notify_state { SECCOMP_NOTIFY_INIT = 0, SECCOMP_NOTIFY_SENT = 1, @@ -34928,7 +38724,11 @@ struct seccomp_kaddfd { struct file *file; int fd; unsigned int flags; - int ret; + __u32 ioctl_flags; + union { + bool setfd; + int ret; + }; struct completion completion; struct list_head list; }; @@ -34977,7 +38777,7 @@ struct rchan { size_t subbuf_size; size_t n_subbufs; size_t alloc_size; - struct rchan_callbacks *cb; + const struct rchan_callbacks *cb; struct kref kref; void *private_data; size_t last_toobig; @@ -34991,8 +38791,6 @@ struct rchan { struct rchan_callbacks { int (*subbuf_start)(struct rchan_buf *, void *, void *, size_t); - void (*buf_mapped)(struct rchan_buf *, struct file *); - void (*buf_unmapped)(struct rchan_buf *, struct file *); struct dentry * (*create_buf_file)(const char *, struct dentry *, umode_t, struct rchan_buf *, int *); int (*remove_buf_file)(struct dentry *); }; @@ -35086,6 +38884,8 @@ enum { struct genl_multicast_group { char name[16]; + u8 flags; + u8 cap_sys_admin: 1; }; struct genl_ops; @@ -35242,6 +39042,28 @@ enum { FTRACE_ITER_ENABLED = 64, }; +struct ftrace_graph_ent { + long unsigned int func; + int depth; +} __attribute__((packed)); + +struct ftrace_graph_ret { + long unsigned int func; + int depth; + unsigned int overrun; + long long unsigned int calltime; + long long unsigned int rettime; +}; + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); + +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); + +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; +}; + struct prog_entry; struct event_filter { @@ -35265,6 +39087,8 @@ struct trace_options; struct cond_snapshot; +struct trace_func_repeats; + struct trace_array { struct list_head list; char *name; @@ -35281,8 +39105,8 @@ struct trace_array { int buffer_disabled; int sys_refcount_enter; int sys_refcount_exit; - struct trace_event_file *enter_syscall_files[441]; - struct trace_event_file *exit_syscall_files[441]; + struct trace_event_file *enter_syscall_files[449]; + struct trace_event_file *exit_syscall_files[449]; int stop_count; int clock_id; int nr_topts; @@ -35304,6 +39128,7 @@ struct trace_array { struct list_head events; struct trace_event_file *trace_marker_file; cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; int ref; int trace_ref; struct ftrace_ops *ops; @@ -35313,9 +39138,10 @@ struct trace_array { struct list_head mod_trace; struct list_head mod_notrace; int function_enabled; - int time_stamp_abs_ref; + int no_filter_buffering_ref; struct list_head hist_vars; struct cond_snapshot *cond_snapshot; + struct trace_func_repeats *last_func_repeats; }; struct tracer_flags; @@ -35357,6 +39183,11 @@ struct trace_subsystem_dir { int nr_events; }; +struct trace_pid_list { + int pid_max; + long unsigned int *pids; +}; + struct trace_array_cpu { atomic_t disabled; void *buffer_page; @@ -35393,11 +39224,6 @@ struct trace_option_dentry { struct dentry *entry; }; -struct trace_pid_list { - int pid_max; - long unsigned int *pids; -}; - enum { TRACE_PIDS = 1, TRACE_NO_PIDS = 2, @@ -35410,6 +39236,13 @@ struct cond_snapshot { cond_update_fn_t update; }; +struct trace_func_repeats { + long unsigned int ip; + long unsigned int parent_ip; + long unsigned int count; + u64 ts_last_call; +}; + enum { TRACE_ARRAY_FL_GLOBAL = 1, }; @@ -35425,33 +39258,6 @@ struct tracer_flags { struct tracer *trace; }; -enum { - TRACE_FTRACE_BIT = 0, - TRACE_FTRACE_NMI_BIT = 1, - TRACE_FTRACE_IRQ_BIT = 2, - TRACE_FTRACE_SIRQ_BIT = 3, - TRACE_FTRACE_TRANSITION_BIT = 4, - TRACE_INTERNAL_BIT = 5, - TRACE_INTERNAL_NMI_BIT = 6, - TRACE_INTERNAL_IRQ_BIT = 7, - TRACE_INTERNAL_SIRQ_BIT = 8, - TRACE_INTERNAL_TRANSITION_BIT = 9, - TRACE_BRANCH_BIT = 10, - TRACE_IRQ_BIT = 11, - TRACE_GRAPH_BIT = 12, - TRACE_GRAPH_DEPTH_START_BIT = 13, - TRACE_GRAPH_DEPTH_END_BIT = 14, - TRACE_GRAPH_NOTRACE_BIT = 15, -}; - -enum { - TRACE_CTX_NMI = 0, - TRACE_CTX_IRQ = 1, - TRACE_CTX_SOFTIRQ = 2, - TRACE_CTX_NORMAL = 3, - TRACE_CTX_TRANSITION = 4, -}; - struct ftrace_mod_load { struct list_head list; char *func; @@ -35509,11 +39315,12 @@ enum trace_iterator_bits { TRACE_ITER_MARKERS_BIT = 20, TRACE_ITER_EVENT_FORK_BIT = 21, TRACE_ITER_PAUSE_ON_TRACE_BIT = 22, - TRACE_ITER_FUNCTION_BIT = 23, - TRACE_ITER_FUNC_FORK_BIT = 24, - TRACE_ITER_DISPLAY_GRAPH_BIT = 25, - TRACE_ITER_STACKTRACE_BIT = 26, - TRACE_ITER_LAST_BIT = 27, + TRACE_ITER_HASH_PTR_BIT = 23, + TRACE_ITER_FUNCTION_BIT = 24, + TRACE_ITER_FUNC_FORK_BIT = 25, + TRACE_ITER_DISPLAY_GRAPH_BIT = 26, + TRACE_ITER_STACKTRACE_BIT = 27, + TRACE_ITER_LAST_BIT = 28, }; struct event_subsystem { @@ -35532,11 +39339,43 @@ enum regex_type { MATCH_INDEX = 5, }; +struct tracer_stat { + const char *name; + void * (*stat_start)(struct tracer_stat *); + void * (*stat_next)(void *, int); + cmp_func_t stat_cmp; + int (*stat_show)(struct seq_file *, void *); + void (*stat_release)(void *); + int (*stat_headers)(struct seq_file *); +}; + enum { FTRACE_MODIFY_ENABLE_FL = 1, FTRACE_MODIFY_MAY_SLEEP_FL = 2, }; +struct ftrace_profile { + struct hlist_node node; + long unsigned int ip; + long unsigned int counter; + long long unsigned int time; + long long unsigned int time_squared; +}; + +struct ftrace_profile_page { + struct ftrace_profile_page *next; + long unsigned int index; + struct ftrace_profile records[0]; +}; + +struct ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; +}; + struct ftrace_func_probe { struct ftrace_probe_ops *probe_ops; struct ftrace_ops ops; @@ -35550,7 +39389,7 @@ struct ftrace_page { struct ftrace_page *next; struct dyn_ftrace *records; int index; - int size; + int order; }; struct ftrace_rec_iter { @@ -35641,6 +39480,8 @@ enum ring_buffer_type { RINGBUF_TYPE_TIME_STAMP = 31, }; +typedef bool (*ring_buffer_cond_fn)(void *); + enum ring_buffer_flags { RB_FL_OVERWRITE = 1, }; @@ -35656,6 +39497,7 @@ struct ring_buffer_iter { struct buffer_page *head_page; struct buffer_page *cache_reader_page; long unsigned int cache_read; + long unsigned int cache_pages_removed; u64 read_stamp; u64 page_stamp; struct ring_buffer_event *event; @@ -35675,12 +39517,13 @@ struct trace_buffer { unsigned int flags; int cpus; atomic_t record_disabled; + atomic_t resizing; cpumask_var_t cpumask; struct lock_class_key *reader_lock_key; struct mutex mutex; struct ring_buffer_per_cpu **buffers; struct hlist_node node; - u64 (*clock)(); + u64 (*clock)(void); struct rb_irq_work irq_work; bool time_stamp_abs; }; @@ -35764,6 +39607,7 @@ struct ring_buffer_per_cpu { local_t committing; local_t commits; local_t pages_touched; + local_t pages_lost; local_t pages_read; long int last_pages_touch; size_t shortest_full; @@ -35771,7 +39615,9 @@ struct ring_buffer_per_cpu { long unsigned int read_bytes; rb_time_t write_stamp; rb_time_t before_stamp; + u64 event_stamp[5]; u64 read_stamp; + long unsigned int pages_removed; long int nr_pages_to_update; struct list_head new_pages; struct work_struct update_pages_work; @@ -35779,6 +39625,8 @@ struct ring_buffer_per_cpu { struct rb_irq_work irq_work; }; +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); + struct trace_export { struct trace_export *next; void (*write)(struct trace_export *, const void *, unsigned int); @@ -35789,6 +39637,8 @@ enum fsnotify_data_type { FSNOTIFY_EVENT_NONE = 0, FSNOTIFY_EVENT_PATH = 1, FSNOTIFY_EVENT_INODE = 2, + FSNOTIFY_EVENT_DENTRY = 3, + FSNOTIFY_EVENT_ERROR = 4, }; enum trace_iter_flags { @@ -35797,14 +39647,14 @@ enum trace_iter_flags { TRACE_FILE_TIME_IN_NS = 4, }; -enum event_trigger_type { - ETT_NONE = 0, - ETT_TRACE_ONOFF = 1, - ETT_SNAPSHOT = 2, - ETT_STACKTRACE = 4, - ETT_EVENT_ENABLE = 8, - ETT_EVENT_HIST = 16, - ETT_HIST_ENABLE = 32, +enum trace_flag_type { + TRACE_FLAG_IRQS_OFF = 1, + TRACE_FLAG_IRQS_NOSUPPORT = 2, + TRACE_FLAG_NEED_RESCHED = 4, + TRACE_FLAG_HARDIRQ = 8, + TRACE_FLAG_SOFTIRQ = 16, + TRACE_FLAG_PREEMPT_RESCHED = 32, + TRACE_FLAG_NMI = 64, }; enum trace_type { @@ -35824,8 +39674,11 @@ enum trace_type { TRACE_BLK = 13, TRACE_BPUTS = 14, TRACE_HWLAT = 15, - TRACE_RAW_DATA = 16, - __TRACE_LAST_TYPE = 17, + TRACE_OSNOISE = 16, + TRACE_TIMERLAT = 17, + TRACE_RAW_DATA = 18, + TRACE_FUNC_REPEATS = 19, + __TRACE_LAST_TYPE = 20, }; struct ftrace_entry { @@ -35871,14 +39724,13 @@ struct bputs_entry { const char *str; }; -enum trace_flag_type { - TRACE_FLAG_IRQS_OFF = 1, - TRACE_FLAG_IRQS_NOSUPPORT = 2, - TRACE_FLAG_NEED_RESCHED = 4, - TRACE_FLAG_HARDIRQ = 8, - TRACE_FLAG_SOFTIRQ = 16, - TRACE_FLAG_PREEMPT_RESCHED = 32, - TRACE_FLAG_NMI = 64, +struct func_repeats_entry { + struct trace_entry ent; + long unsigned int ip; + long unsigned int parent_ip; + u16 count; + u16 top_delta_ts; + u32 bottom_delta_ts; }; enum trace_iterator_flags { @@ -35905,10 +39757,18 @@ enum trace_iterator_flags { TRACE_ITER_MARKERS = 1048576, TRACE_ITER_EVENT_FORK = 2097152, TRACE_ITER_PAUSE_ON_TRACE = 4194304, - TRACE_ITER_FUNCTION = 8388608, - TRACE_ITER_FUNC_FORK = 16777216, - TRACE_ITER_DISPLAY_GRAPH = 33554432, - TRACE_ITER_STACKTRACE = 67108864, + TRACE_ITER_HASH_PTR = 8388608, + TRACE_ITER_FUNCTION = 16777216, + TRACE_ITER_FUNC_FORK = 33554432, + TRACE_ITER_DISPLAY_GRAPH = 67108864, + TRACE_ITER_STACKTRACE = 134217728, +}; + +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; }; struct saved_cmdlines_buffer { @@ -35916,7 +39776,7 @@ struct saved_cmdlines_buffer { unsigned int *map_cmdline_to_pid; unsigned int cmdline_num; int cmdline_idx; - char *saved_cmdlines; + char saved_cmdlines[0]; }; struct ftrace_stack { @@ -35960,8 +39820,6 @@ struct buffer_ref { refcount_t refcount; }; -struct ftrace_func_mapper; - struct ctx_switch_entry { struct trace_entry ent; unsigned int prev_pid; @@ -35984,21 +39842,30 @@ struct hwlat_entry { unsigned int count; }; +struct osnoise_entry { + struct trace_entry ent; + u64 noise; + u64 runtime; + u64 max_sample; + unsigned int hw_count; + unsigned int nmi_count; + unsigned int irq_count; + unsigned int softirq_count; + unsigned int thread_count; +}; + +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; +}; + struct trace_mark { long long unsigned int val; char sym; }; -struct tracer_stat { - const char *name; - void * (*stat_start)(struct tracer_stat *); - void * (*stat_next)(void *, int); - cmp_func_t stat_cmp; - int (*stat_show)(struct seq_file *, void *); - void (*stat_release)(void *); - int (*stat_headers)(struct seq_file *); -}; - struct stat_node { struct rb_node node; void *stat; @@ -36017,8 +39884,262 @@ struct trace_bprintk_fmt { const char *fmt; }; +typedef int (*tracing_map_cmp_fn_t)(void *, void *); + +struct tracing_map_field { + tracing_map_cmp_fn_t cmp_fn; + union { + atomic64_t sum; + unsigned int offset; + }; +}; + +struct tracing_map; + +struct tracing_map_elt { + struct tracing_map *map; + struct tracing_map_field *fields; + atomic64_t *vars; + bool *var_set; + void *key; + void *private_data; +}; + +struct tracing_map_sort_key { + unsigned int field_idx; + bool descending; +}; + +struct tracing_map_array; + +struct tracing_map_ops; + +struct tracing_map { + unsigned int key_size; + unsigned int map_bits; + unsigned int map_size; + unsigned int max_elts; + atomic_t next_elt; + struct tracing_map_array *elts; + struct tracing_map_array *map; + const struct tracing_map_ops *ops; + void *private_data; + struct tracing_map_field fields[6]; + unsigned int n_fields; + int key_idx[3]; + unsigned int n_keys; + struct tracing_map_sort_key sort_key; + unsigned int n_vars; + atomic64_t hits; + atomic64_t drops; +}; + +struct tracing_map_entry { + u32 key; + struct tracing_map_elt *val; +}; + +struct tracing_map_sort_entry { + void *key; + struct tracing_map_elt *elt; + bool elt_copied; + bool dup; +}; + +struct tracing_map_array { + unsigned int entries_per_page; + unsigned int entry_size_shift; + unsigned int entry_shift; + unsigned int entry_mask; + unsigned int n_pages; + void **pages; +}; + +struct tracing_map_ops { + int (*elt_alloc)(struct tracing_map_elt *); + void (*elt_free)(struct tracing_map_elt *); + void (*elt_clear)(struct tracing_map_elt *); + void (*elt_init)(struct tracing_map_elt *); +}; + enum { + TRACE_FUNC_NO_OPTS = 0, TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, +}; + +enum { + MODE_NONE = 0, + MODE_ROUND_ROBIN = 1, + MODE_PER_CPU = 2, + MODE_MAX = 3, +}; + +struct hwlat_kthread_data { + struct task_struct *kthread; + u64 nmi_ts_start; + u64 nmi_total_ts; + int nmi_count; + int nmi_cpu; +}; + +struct hwlat_sample { + u64 seqnum; + u64 duration; + u64 outer_duration; + u64 nmi_total_ts; + struct timespec64 timestamp; + int nmi_count; + int count; +}; + +struct hwlat_data { + struct mutex lock; + u64 count; + u64 sample_window; + u64 sample_width; + int thread_mode; +}; + +struct trace_event_raw_thread_noise { + struct trace_entry ent; + char comm[16]; + u64 start; + u64 duration; + pid_t pid; + char __data[0]; +}; + +struct trace_event_raw_softirq_noise { + struct trace_entry ent; + u64 start; + u64 duration; + int vector; + char __data[0]; +}; + +struct trace_event_raw_irq_noise { + struct trace_entry ent; + u64 start; + u64 duration; + u32 __data_loc_desc; + int vector; + char __data[0]; +}; + +struct trace_event_raw_nmi_noise { + struct trace_entry ent; + u64 start; + u64 duration; + char __data[0]; +}; + +struct trace_event_raw_sample_threshold { + struct trace_entry ent; + u64 start; + u64 duration; + u64 interference; + char __data[0]; +}; + +struct trace_event_data_offsets_thread_noise {}; + +struct trace_event_data_offsets_softirq_noise {}; + +struct trace_event_data_offsets_irq_noise { + u32 desc; +}; + +struct trace_event_data_offsets_nmi_noise {}; + +struct trace_event_data_offsets_sample_threshold {}; + +typedef void (*btf_trace_thread_noise)(void *, struct task_struct *, u64, u64); + +typedef void (*btf_trace_softirq_noise)(void *, int, u64, u64); + +typedef void (*btf_trace_irq_noise)(void *, int, const char *, u64, u64); + +typedef void (*btf_trace_nmi_noise)(void *, u64, u64); + +typedef void (*btf_trace_sample_threshold)(void *, u64, u64, u64); + +struct osn_nmi { + u64 count; + u64 delta_start; +}; + +struct osn_irq { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osn_softirq { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osn_thread { + u64 count; + u64 arrival_time; + u64 delta_start; +}; + +struct osnoise_variables { + struct task_struct *kthread; + bool sampling; + pid_t pid; + struct osn_nmi nmi; + struct osn_irq irq; + struct osn_softirq softirq; + struct osn_thread thread; + local_t int_counter; +}; + +struct timerlat_variables { + struct task_struct *kthread; + struct hrtimer timer; + u64 rel_period; + u64 abs_period; + bool tracing_thread; + u64 count; +}; + +struct osnoise_sample { + u64 runtime; + u64 noise; + u64 max_sample; + int hw_count; + int nmi_count; + int irq_count; + int softirq_count; + int thread_count; +}; + +struct timerlat_sample { + u64 timer_latency; + unsigned int seqnum; + int context; +}; + +struct osnoise_data { + u64 sample_period; + u64 sample_runtime; + u64 stop_tracing; + u64 stop_tracing_total; + u64 timerlat_period; + u64 print_stack; + int timerlat_tracer; + bool tainted; +}; + +struct trace_stack { + int stack_size; + int nr_entries; + long unsigned int calls[256]; }; enum { @@ -36040,28 +40161,6 @@ struct header_iter { struct pci_dev *dev; }; -struct ftrace_graph_ent { - long unsigned int func; - int depth; -} __attribute__((packed)); - -struct ftrace_graph_ret { - long unsigned int func; - long unsigned int overrun; - long long unsigned int calltime; - long long unsigned int rettime; - int depth; -} __attribute__((packed)); - -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); - -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); - -struct fgraph_ops { - trace_func_graph_ent_t entryfunc; - trace_func_graph_ret_t retfunc; -}; - struct ftrace_graph_ent_entry { struct trace_entry ent; struct ftrace_graph_ent graph_ent; @@ -36086,7 +40185,8 @@ struct fgraph_data { struct ftrace_graph_ret_entry ret; int failed; int cpu; -}; + long: 0; +} __attribute__((packed)); enum { FLAGS_FILL_FULL = 268435456, @@ -36103,6 +40203,13 @@ struct disk_stats { local_t in_flight[2]; }; +struct blk_crypto_key; + +struct bio_crypt_ctx { + const struct blk_crypto_key *bc_key; + u64 bc_dun[4]; +}; + struct blk_mq_ctxs; struct blk_mq_ctx { @@ -36158,8 +40265,6 @@ struct blk_trace { u32 pid; u32 dev; struct dentry *dir; - struct dentry *dropped_file; - struct dentry *msg_file; struct list_head running_list; atomic_t dropped; }; @@ -36172,7 +40277,6 @@ struct blk_flush_queue { struct list_head flush_queue[2]; struct list_head flush_data_in_flight; struct request *flush_rq; - struct lock_class_key key; spinlock_t mq_flush_lock; }; @@ -36288,6 +40392,27 @@ struct blk_mq_tags { spinlock_t lock; }; +enum blk_crypto_mode_num { + BLK_ENCRYPTION_MODE_INVALID = 0, + BLK_ENCRYPTION_MODE_AES_256_XTS = 1, + BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2, + BLK_ENCRYPTION_MODE_ADIANTUM = 3, + BLK_ENCRYPTION_MODE_MAX = 4, +}; + +struct blk_crypto_config { + enum blk_crypto_mode_num crypto_mode; + unsigned int data_unit_size; + unsigned int dun_bytes; +}; + +struct blk_crypto_key { + struct blk_crypto_config crypto_cfg; + unsigned int data_unit_size_bits; + unsigned int size; + u8 raw[64]; +}; + struct blk_mq_ctxs { struct kobject kobj; struct blk_mq_ctx *queue_ctx; @@ -36305,6 +40430,12 @@ struct ftrace_event_field { int is_signed; }; +struct module_string { + struct list_head next; + struct module *module; + char *str; +}; + enum { FORMAT_HEADER = 1, FORMAT_FIELD_SEPERATOR = 2, @@ -36342,7 +40473,7 @@ struct syscall_tp_t___2 { long unsigned int args[6]; }; -typedef long unsigned int perf_trace_t[256]; +typedef long unsigned int perf_trace_t[1024]; struct filter_pred; @@ -36443,6 +40574,10 @@ struct function_filter_data { int first_notrace; }; +enum { + EVENT_TRIGGER_FL_PROBE = 1, +}; + struct event_trigger_ops; struct event_command; @@ -36450,6 +40585,7 @@ struct event_command; struct event_trigger_data { long unsigned int count; int ref; + int flags; struct event_trigger_ops *ops; struct event_command *cmd_ops; struct event_filter *filter; @@ -36464,7 +40600,7 @@ struct event_trigger_data { }; struct event_trigger_ops { - void (*func)(struct event_trigger_data *, void *, struct ring_buffer_event *); + void (*func)(struct event_trigger_data *, struct trace_buffer *, void *, struct ring_buffer_event *); int (*init)(struct event_trigger_ops *, struct event_trigger_data *); void (*free)(struct event_trigger_ops *, struct event_trigger_data *); int (*print)(struct seq_file *, struct event_trigger_ops *, struct event_trigger_data *); @@ -36494,6 +40630,552 @@ enum event_command_flags { EVENT_CMD_FL_NEEDS_REC = 2, }; +struct eprobe_trace_entry_head { + struct trace_entry ent; + unsigned int type; +}; + +struct dyn_event; + +struct dyn_event_operations { + struct list_head list; + int (*create)(const char *); + int (*show)(struct seq_file *, struct dyn_event *); + bool (*is_busy)(struct dyn_event *); + int (*free)(struct dyn_event *); + bool (*match)(const char *, const char *, int, const char **, struct dyn_event *); +}; + +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; +}; + +typedef int (*print_type_func_t)(struct trace_seq *, void *, void *); + +enum fetch_op { + FETCH_OP_NOP = 0, + FETCH_OP_REG = 1, + FETCH_OP_STACK = 2, + FETCH_OP_STACKP = 3, + FETCH_OP_RETVAL = 4, + FETCH_OP_IMM = 5, + FETCH_OP_COMM = 6, + FETCH_OP_ARG = 7, + FETCH_OP_FOFFS = 8, + FETCH_OP_DATA = 9, + FETCH_OP_DEREF = 10, + FETCH_OP_UDEREF = 11, + FETCH_OP_ST_RAW = 12, + FETCH_OP_ST_MEM = 13, + FETCH_OP_ST_UMEM = 14, + FETCH_OP_ST_STRING = 15, + FETCH_OP_ST_USTRING = 16, + FETCH_OP_ST_SYMSTR = 17, + FETCH_OP_MOD_BF = 18, + FETCH_OP_LP_ARRAY = 19, + FETCH_OP_TP_ARG = 20, + FETCH_OP_END = 21, + FETCH_NOP_SYMBOL = 22, +}; + +struct fetch_insn { + enum fetch_op op; + union { + unsigned int param; + struct { + unsigned int size; + int offset; + }; + struct { + unsigned char basesize; + unsigned char lshift; + unsigned char rshift; + }; + long unsigned int immediate; + void *data; + }; +}; + +struct fetch_type { + const char *name; + size_t size; + bool is_signed; + bool is_string; + print_type_func_t print; + const char *fmt; + const char *fmttype; +}; + +struct probe_arg { + struct fetch_insn *code; + bool dynamic; + unsigned int offset; + unsigned int count; + const char *name; + const char *comm; + char *fmt; + const struct fetch_type *type; +}; + +struct trace_uprobe_filter { + rwlock_t rwlock; + int nr_systemwide; + struct list_head perf_events; +}; + +struct trace_probe_event { + unsigned int flags; + struct trace_event_class class; + struct trace_event_call call; + struct list_head files; + struct list_head probes; + struct trace_uprobe_filter filter[0]; +}; + +struct trace_probe { + struct list_head list; + struct trace_probe_event *event; + ssize_t size; + unsigned int nr_args; + struct probe_arg args[0]; +}; + +struct event_file_link { + struct trace_event_file *file; + struct list_head list; +}; + +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, +}; + +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_MAXACT_NO_KPROBE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_BAD_ADDR_SUFFIX = 12, + TP_ERR_NO_GROUP_NAME = 13, + TP_ERR_GROUP_TOO_LONG = 14, + TP_ERR_BAD_GROUP_NAME = 15, + TP_ERR_NO_EVENT_NAME = 16, + TP_ERR_EVENT_TOO_LONG = 17, + TP_ERR_BAD_EVENT_NAME = 18, + TP_ERR_EVENT_EXIST = 19, + TP_ERR_RETVAL_ON_PROBE = 20, + TP_ERR_BAD_STACK_NUM = 21, + TP_ERR_BAD_ARG_NUM = 22, + TP_ERR_BAD_VAR = 23, + TP_ERR_BAD_REG_NAME = 24, + TP_ERR_BAD_MEM_ADDR = 25, + TP_ERR_BAD_IMM = 26, + TP_ERR_IMMSTR_NO_CLOSE = 27, + TP_ERR_FILE_ON_KPROBE = 28, + TP_ERR_BAD_FILE_OFFS = 29, + TP_ERR_SYM_ON_UPROBE = 30, + TP_ERR_TOO_MANY_OPS = 31, + TP_ERR_DEREF_NEED_BRACE = 32, + TP_ERR_BAD_DEREF_OFFS = 33, + TP_ERR_DEREF_OPEN_BRACE = 34, + TP_ERR_COMM_CANT_DEREF = 35, + TP_ERR_BAD_FETCH_ARG = 36, + TP_ERR_ARRAY_NO_CLOSE = 37, + TP_ERR_BAD_ARRAY_SUFFIX = 38, + TP_ERR_BAD_ARRAY_NUM = 39, + TP_ERR_ARRAY_TOO_BIG = 40, + TP_ERR_BAD_TYPE = 41, + TP_ERR_BAD_STRING = 42, + TP_ERR_BAD_SYMSTRING = 43, + TP_ERR_BAD_BITFIELD = 44, + TP_ERR_ARG_NAME_TOO_LONG = 45, + TP_ERR_NO_ARG_NAME = 46, + TP_ERR_BAD_ARG_NAME = 47, + TP_ERR_USED_ARG_NAME = 48, + TP_ERR_ARG_TOO_LONG = 49, + TP_ERR_NO_ARG_BODY = 50, + TP_ERR_BAD_INSN_BNDRY = 51, + TP_ERR_FAIL_REG_PROBE = 52, + TP_ERR_DIFF_PROBE_TYPE = 53, + TP_ERR_DIFF_ARG_TYPE = 54, + TP_ERR_SAME_PROBE = 55, +}; + +struct trace_eprobe { + const char *event_system; + const char *event_name; + struct trace_event_call *event; + struct dyn_event devent; + struct trace_probe tp; +}; + +struct eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; +}; + +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, +}; + +struct dynevent_cmd; + +typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); + +struct dynevent_cmd { + struct seq_buf seq; + const char *event_name; + unsigned int n_fields; + enum dynevent_type type; + dynevent_create_fn_t run_command; + void *private_data; +}; + +struct synth_field_desc { + const char *type; + const char *name; +}; + +struct synth_trace_event; + +struct synth_event; + +struct synth_event_trace_state { + struct trace_event_buffer fbuffer; + struct synth_trace_event *entry; + struct trace_buffer *buffer; + struct synth_event *event; + unsigned int cur_field; + unsigned int n_u64; + bool disabled; + bool add_next; + bool add_name; +}; + +struct synth_trace_event { + struct trace_entry ent; + u64 fields[0]; +}; + +struct synth_field; + +struct synth_event { + struct dyn_event devent; + int ref; + char *name; + struct synth_field **fields; + unsigned int n_fields; + struct synth_field **dynamic_fields; + unsigned int n_dynamic_fields; + unsigned int n_u64; + struct trace_event_class class; + struct trace_event_call call; + struct tracepoint *tp; + struct module *mod; +}; + +typedef int (*dynevent_check_arg_fn_t)(void *); + +struct dynevent_arg { + const char *str; + char separator; +}; + +struct dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; +}; + +struct synth_field { + char *type; + char *name; + size_t size; + unsigned int offset; + unsigned int field_pos; + bool is_signed; + bool is_string; + bool is_dynamic; + bool is_stack; +}; + +enum { + SYNTH_ERR_BAD_NAME = 0, + SYNTH_ERR_INVALID_CMD = 1, + SYNTH_ERR_INVALID_DYN_CMD = 2, + SYNTH_ERR_EVENT_EXISTS = 3, + SYNTH_ERR_TOO_MANY_FIELDS = 4, + SYNTH_ERR_INCOMPLETE_TYPE = 5, + SYNTH_ERR_INVALID_TYPE = 6, + SYNTH_ERR_INVALID_FIELD = 7, + SYNTH_ERR_INVALID_ARRAY_SPEC = 8, +}; + +enum { + HIST_ERR_NONE = 0, + HIST_ERR_DUPLICATE_VAR = 1, + HIST_ERR_VAR_NOT_UNIQUE = 2, + HIST_ERR_TOO_MANY_VARS = 3, + HIST_ERR_MALFORMED_ASSIGNMENT = 4, + HIST_ERR_NAMED_MISMATCH = 5, + HIST_ERR_TRIGGER_EEXIST = 6, + HIST_ERR_TRIGGER_ENOENT_CLEAR = 7, + HIST_ERR_SET_CLOCK_FAIL = 8, + HIST_ERR_BAD_FIELD_MODIFIER = 9, + HIST_ERR_TOO_MANY_SUBEXPR = 10, + HIST_ERR_TIMESTAMP_MISMATCH = 11, + HIST_ERR_TOO_MANY_FIELD_VARS = 12, + HIST_ERR_EVENT_FILE_NOT_FOUND = 13, + HIST_ERR_HIST_NOT_FOUND = 14, + HIST_ERR_HIST_CREATE_FAIL = 15, + HIST_ERR_SYNTH_VAR_NOT_FOUND = 16, + HIST_ERR_SYNTH_EVENT_NOT_FOUND = 17, + HIST_ERR_SYNTH_TYPE_MISMATCH = 18, + HIST_ERR_SYNTH_COUNT_MISMATCH = 19, + HIST_ERR_FIELD_VAR_PARSE_FAIL = 20, + HIST_ERR_VAR_CREATE_FIND_FAIL = 21, + HIST_ERR_ONX_NOT_VAR = 22, + HIST_ERR_ONX_VAR_NOT_FOUND = 23, + HIST_ERR_ONX_VAR_CREATE_FAIL = 24, + HIST_ERR_FIELD_VAR_CREATE_FAIL = 25, + HIST_ERR_TOO_MANY_PARAMS = 26, + HIST_ERR_PARAM_NOT_FOUND = 27, + HIST_ERR_INVALID_PARAM = 28, + HIST_ERR_ACTION_NOT_FOUND = 29, + HIST_ERR_NO_SAVE_PARAMS = 30, + HIST_ERR_TOO_MANY_SAVE_ACTIONS = 31, + HIST_ERR_ACTION_MISMATCH = 32, + HIST_ERR_NO_CLOSING_PAREN = 33, + HIST_ERR_SUBSYS_NOT_FOUND = 34, + HIST_ERR_INVALID_SUBSYS_EVENT = 35, + HIST_ERR_INVALID_REF_KEY = 36, + HIST_ERR_VAR_NOT_FOUND = 37, + HIST_ERR_FIELD_NOT_FOUND = 38, + HIST_ERR_EMPTY_ASSIGNMENT = 39, + HIST_ERR_INVALID_SORT_MODIFIER = 40, + HIST_ERR_EMPTY_SORT_FIELD = 41, + HIST_ERR_TOO_MANY_SORT_FIELDS = 42, + HIST_ERR_INVALID_SORT_FIELD = 43, + HIST_ERR_INVALID_STR_OPERAND = 44, +}; + +struct hist_field; + +typedef u64 (*hist_field_fn_t)(struct hist_field *, struct tracing_map_elt *, struct trace_buffer *, struct ring_buffer_event *, void *); + +struct hist_trigger_data; + +struct hist_var { + char *name; + struct hist_trigger_data *hist_data; + unsigned int idx; +}; + +enum field_op_id { + FIELD_OP_NONE = 0, + FIELD_OP_PLUS = 1, + FIELD_OP_MINUS = 2, + FIELD_OP_UNARY_MINUS = 3, +}; + +struct hist_field { + struct ftrace_event_field *field; + long unsigned int flags; + hist_field_fn_t fn; + unsigned int ref; + unsigned int size; + unsigned int offset; + unsigned int is_signed; + long unsigned int buckets; + const char *type; + struct hist_field *operands[2]; + struct hist_trigger_data *hist_data; + struct hist_var var; + enum field_op_id operator; + char *system; + char *event_name; + char *name; + unsigned int var_ref_idx; + bool read_once; + unsigned int var_str_idx; +}; + +struct hist_trigger_attrs; + +struct action_data; + +struct field_var; + +struct field_var_hist; + +struct hist_trigger_data { + struct hist_field *fields[22]; + unsigned int n_vals; + unsigned int n_keys; + unsigned int n_fields; + unsigned int n_vars; + unsigned int n_var_str; + unsigned int key_size; + struct tracing_map_sort_key sort_keys[2]; + unsigned int n_sort_keys; + struct trace_event_file *event_file; + struct hist_trigger_attrs *attrs; + struct tracing_map *map; + bool enable_timestamps; + bool remove; + struct hist_field *var_refs[16]; + unsigned int n_var_refs; + struct action_data *actions[8]; + unsigned int n_actions; + struct field_var *field_vars[64]; + unsigned int n_field_vars; + unsigned int n_field_var_str; + struct field_var_hist *field_var_hists[64]; + unsigned int n_field_var_hists; + struct field_var *save_vars[64]; + unsigned int n_save_vars; + unsigned int n_save_var_str; +}; + +enum hist_field_flags { + HIST_FIELD_FL_HITCOUNT = 1, + HIST_FIELD_FL_KEY = 2, + HIST_FIELD_FL_STRING = 4, + HIST_FIELD_FL_HEX = 8, + HIST_FIELD_FL_SYM = 16, + HIST_FIELD_FL_SYM_OFFSET = 32, + HIST_FIELD_FL_EXECNAME = 64, + HIST_FIELD_FL_SYSCALL = 128, + HIST_FIELD_FL_STACKTRACE = 256, + HIST_FIELD_FL_LOG2 = 512, + HIST_FIELD_FL_TIMESTAMP = 1024, + HIST_FIELD_FL_TIMESTAMP_USECS = 2048, + HIST_FIELD_FL_VAR = 4096, + HIST_FIELD_FL_EXPR = 8192, + HIST_FIELD_FL_VAR_REF = 16384, + HIST_FIELD_FL_CPU = 32768, + HIST_FIELD_FL_ALIAS = 65536, + HIST_FIELD_FL_BUCKET = 131072, +}; + +struct var_defs { + unsigned int n_vars; + char *name[16]; + char *expr[16]; +}; + +struct hist_trigger_attrs { + char *keys_str; + char *vals_str; + char *sort_key_str; + char *name; + char *clock; + bool pause; + bool cont; + bool clear; + bool ts_in_usecs; + unsigned int map_bits; + char *assignment_str[16]; + unsigned int n_assignments; + char *action_str[8]; + unsigned int n_actions; + struct var_defs var_defs; +}; + +struct field_var { + struct hist_field *var; + struct hist_field *val; +}; + +struct field_var_hist { + struct hist_trigger_data *hist_data; + char *cmd; +}; + +enum handler_id { + HANDLER_ONMATCH = 1, + HANDLER_ONMAX = 2, + HANDLER_ONCHANGE = 3, +}; + +enum action_id { + ACTION_SAVE = 1, + ACTION_TRACE = 2, + ACTION_SNAPSHOT = 3, +}; + +typedef void (*action_fn_t)(struct hist_trigger_data *, struct tracing_map_elt *, struct trace_buffer *, void *, struct ring_buffer_event *, void *, struct action_data *, u64 *); + +typedef bool (*check_track_val_fn_t)(u64, u64); + +struct action_data { + enum handler_id handler; + enum action_id action; + char *action_name; + action_fn_t fn; + unsigned int n_params; + char *params[64]; + unsigned int var_ref_idx[64]; + struct synth_event *synth_event; + bool use_trace_keyword; + char *synth_event_name; + union { + struct { + char *event; + char *event_system; + } match_data; + struct { + char *var_str; + struct hist_field *var_ref; + struct hist_field *track_var; + check_track_val_fn_t check_val; + action_fn_t save_data; + } track_data; + }; +}; + +struct track_data { + u64 track_val; + bool updated; + unsigned int key_len; + void *key; + struct tracing_map_elt elt; + struct action_data *action_data; + struct hist_trigger_data *hist_data; +}; + +struct hist_elt_data { + char *comm; + u64 *var_ref_vals; + char **field_var_str; + int n_field_var_str; +}; + +struct snapshot_context { + struct tracing_map_elt *elt; + void *key; +}; + +typedef void (*synth_probe_func_t)(void *, u64 *, unsigned int *); + +struct hist_var_data { + struct list_head list; + struct hist_trigger_data *hist_data; +}; + enum bpf_func_id { BPF_FUNC_unspec = 0, BPF_FUNC_map_lookup_elem = 1, @@ -36651,7 +41333,27 @@ enum bpf_func_id { BPF_FUNC_per_cpu_ptr = 153, BPF_FUNC_this_cpu_ptr = 154, BPF_FUNC_redirect_peer = 155, - __BPF_FUNC_MAX_ID = 156, + BPF_FUNC_task_storage_get = 156, + BPF_FUNC_task_storage_delete = 157, + BPF_FUNC_get_current_task_btf = 158, + BPF_FUNC_bprm_opts_set = 159, + BPF_FUNC_ktime_get_coarse_ns = 160, + BPF_FUNC_ima_inode_hash = 161, + BPF_FUNC_sock_from_file = 162, + BPF_FUNC_check_mtu = 163, + BPF_FUNC_for_each_map_elem = 164, + BPF_FUNC_snprintf = 165, + BPF_FUNC_sys_bpf = 166, + BPF_FUNC_btf_find_by_name_kind = 167, + BPF_FUNC_sys_close = 168, + BPF_FUNC_timer_init = 169, + BPF_FUNC_timer_set_callback = 170, + BPF_FUNC_timer_start = 171, + BPF_FUNC_timer_cancel = 172, + BPF_FUNC_get_func_ip = 173, + BPF_FUNC_get_attach_cookie = 174, + BPF_FUNC_task_pt_regs = 175, + __BPF_FUNC_MAX_ID = 176, }; enum { @@ -36696,48 +41398,30 @@ enum { BTF_F_ZERO = 8, }; -enum bpf_arg_type { - ARG_DONTCARE = 0, - ARG_CONST_MAP_PTR = 1, - ARG_PTR_TO_MAP_KEY = 2, - ARG_PTR_TO_MAP_VALUE = 3, - ARG_PTR_TO_UNINIT_MAP_VALUE = 4, - ARG_PTR_TO_MAP_VALUE_OR_NULL = 5, - ARG_PTR_TO_MEM = 6, - ARG_PTR_TO_MEM_OR_NULL = 7, - ARG_PTR_TO_UNINIT_MEM = 8, - ARG_CONST_SIZE = 9, - ARG_CONST_SIZE_OR_ZERO = 10, - ARG_PTR_TO_CTX = 11, - ARG_PTR_TO_CTX_OR_NULL = 12, - ARG_ANYTHING = 13, - ARG_PTR_TO_SPIN_LOCK = 14, - ARG_PTR_TO_SOCK_COMMON = 15, - ARG_PTR_TO_INT = 16, - ARG_PTR_TO_LONG = 17, - ARG_PTR_TO_SOCKET = 18, - ARG_PTR_TO_SOCKET_OR_NULL = 19, - ARG_PTR_TO_BTF_ID = 20, - ARG_PTR_TO_ALLOC_MEM = 21, - ARG_PTR_TO_ALLOC_MEM_OR_NULL = 22, - ARG_CONST_ALLOC_SIZE_OR_ZERO = 23, - ARG_PTR_TO_BTF_ID_SOCK_COMMON = 24, - ARG_PTR_TO_PERCPU_BTF_ID = 25, - __BPF_ARG_TYPE_MAX = 26, +struct bpf_local_storage_data; + +struct bpf_local_storage { + struct bpf_local_storage_data *cache[16]; + struct hlist_head list; + void *owner; + struct callback_head rcu; + raw_spinlock_t lock; }; -enum bpf_return_type { - RET_INTEGER = 0, - RET_VOID = 1, - RET_PTR_TO_MAP_VALUE = 2, - RET_PTR_TO_MAP_VALUE_OR_NULL = 3, - RET_PTR_TO_SOCKET_OR_NULL = 4, - RET_PTR_TO_TCP_SOCK_OR_NULL = 5, - RET_PTR_TO_SOCK_COMMON_OR_NULL = 6, - RET_PTR_TO_ALLOC_MEM_OR_NULL = 7, - RET_PTR_TO_BTF_ID_OR_NULL = 8, - RET_PTR_TO_MEM_OR_BTF_ID_OR_NULL = 9, - RET_PTR_TO_MEM_OR_BTF_ID = 10, +struct bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct bpf_func_proto { @@ -36780,7 +41464,10 @@ struct bpf_insn_access_aux { enum bpf_reg_type reg_type; union { int ctx_field_size; - u32 btf_id; + struct { + struct btf *btf; + u32 btf_id; + }; }; struct bpf_verifier_log *log; }; @@ -36791,7 +41478,8 @@ struct bpf_verifier_ops { int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - int (*btf_struct_access)(struct bpf_verifier_log *, const struct btf_type *, int, int, enum bpf_access_type, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct btf *, const struct btf_type *, int, int, enum bpf_access_type, u32 *); + bool (*check_kfunc_call)(u32); }; struct bpf_event_entry { @@ -36803,6 +41491,20 @@ struct bpf_event_entry { typedef long unsigned int (*bpf_ctx_copy_t)(void *, const void *, long unsigned int, long unsigned int); +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; +}; + +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); + +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; +}; + typedef struct pt_regs bpf_user_pt_regs_t; struct bpf_perf_event_data { @@ -36828,6 +41530,16 @@ struct btf_id_set { u32 ids[0]; }; +struct bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; +}; + +struct bpf_local_storage_data { + struct bpf_local_storage_map *smap; + u8 data[0]; +}; + struct trace_event_raw_bpf_trace_printk { struct trace_entry ent; u32 __data_loc_bpf_string; @@ -36845,6 +41557,8 @@ struct bpf_trace_module { struct list_head list; }; +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, long unsigned int); + typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void *); typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void *); @@ -36861,10 +41575,6 @@ typedef u64 (*btf_bpf_probe_write_user)(void *, const void *, u32); typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); -struct bpf_seq_printf_buf { - char buf[768]; -}; - typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); @@ -36885,7 +41595,11 @@ struct bpf_nested_pt_regs { struct pt_regs regs[3]; }; -typedef u64 (*btf_bpf_get_current_task)(); +typedef u64 (*btf_bpf_get_current_task)(void); + +typedef u64 (*btf_bpf_get_current_task_btf)(void); + +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); @@ -36904,6 +41618,14 @@ typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); +typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); + +typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); + typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); @@ -36924,25 +41646,6 @@ typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, stru typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); -enum dynevent_type { - DYNEVENT_TYPE_SYNTH = 1, - DYNEVENT_TYPE_KPROBE = 2, - DYNEVENT_TYPE_NONE = 3, -}; - -struct dynevent_cmd; - -typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); - -struct dynevent_cmd { - struct seq_buf seq; - const char *event_name; - unsigned int n_fields; - enum dynevent_type type; - dynevent_create_fn_t run_command; - void *private_data; -}; - struct kprobe_trace_entry_head { struct trace_entry ent; long unsigned int ip; @@ -36954,176 +41657,6 @@ struct kretprobe_trace_entry_head { long unsigned int ret_ip; }; -struct dyn_event; - -struct dyn_event_operations { - struct list_head list; - int (*create)(int, const char **); - int (*show)(struct seq_file *, struct dyn_event *); - bool (*is_busy)(struct dyn_event *); - int (*free)(struct dyn_event *); - bool (*match)(const char *, const char *, int, const char **, struct dyn_event *); -}; - -struct dyn_event { - struct list_head list; - struct dyn_event_operations *ops; -}; - -struct dynevent_arg { - const char *str; - char separator; -}; - -typedef int (*print_type_func_t)(struct trace_seq *, void *, void *); - -enum fetch_op { - FETCH_OP_NOP = 0, - FETCH_OP_REG = 1, - FETCH_OP_STACK = 2, - FETCH_OP_STACKP = 3, - FETCH_OP_RETVAL = 4, - FETCH_OP_IMM = 5, - FETCH_OP_COMM = 6, - FETCH_OP_ARG = 7, - FETCH_OP_FOFFS = 8, - FETCH_OP_DATA = 9, - FETCH_OP_DEREF = 10, - FETCH_OP_UDEREF = 11, - FETCH_OP_ST_RAW = 12, - FETCH_OP_ST_MEM = 13, - FETCH_OP_ST_UMEM = 14, - FETCH_OP_ST_STRING = 15, - FETCH_OP_ST_USTRING = 16, - FETCH_OP_MOD_BF = 17, - FETCH_OP_LP_ARRAY = 18, - FETCH_OP_END = 19, - FETCH_NOP_SYMBOL = 20, -}; - -struct fetch_insn { - enum fetch_op op; - union { - unsigned int param; - struct { - unsigned int size; - int offset; - }; - struct { - unsigned char basesize; - unsigned char lshift; - unsigned char rshift; - }; - long unsigned int immediate; - void *data; - }; -}; - -struct fetch_type { - const char *name; - size_t size; - int is_signed; - print_type_func_t print; - const char *fmt; - const char *fmttype; -}; - -struct probe_arg { - struct fetch_insn *code; - bool dynamic; - unsigned int offset; - unsigned int count; - const char *name; - const char *comm; - char *fmt; - const struct fetch_type *type; -}; - -struct trace_uprobe_filter { - rwlock_t rwlock; - int nr_systemwide; - struct list_head perf_events; -}; - -struct trace_probe_event { - unsigned int flags; - struct trace_event_class class; - struct trace_event_call call; - struct list_head files; - struct list_head probes; - struct trace_uprobe_filter filter[0]; -}; - -struct trace_probe { - struct list_head list; - struct trace_probe_event *event; - ssize_t size; - unsigned int nr_args; - struct probe_arg args[0]; -}; - -struct event_file_link { - struct trace_event_file *file; - struct list_head list; -}; - -enum { - TP_ERR_FILE_NOT_FOUND = 0, - TP_ERR_NO_REGULAR_FILE = 1, - TP_ERR_BAD_REFCNT = 2, - TP_ERR_REFCNT_OPEN_BRACE = 3, - TP_ERR_BAD_REFCNT_SUFFIX = 4, - TP_ERR_BAD_UPROBE_OFFS = 5, - TP_ERR_MAXACT_NO_KPROBE = 6, - TP_ERR_BAD_MAXACT = 7, - TP_ERR_MAXACT_TOO_BIG = 8, - TP_ERR_BAD_PROBE_ADDR = 9, - TP_ERR_BAD_RETPROBE = 10, - TP_ERR_BAD_ADDR_SUFFIX = 11, - TP_ERR_NO_GROUP_NAME = 12, - TP_ERR_GROUP_TOO_LONG = 13, - TP_ERR_BAD_GROUP_NAME = 14, - TP_ERR_NO_EVENT_NAME = 15, - TP_ERR_EVENT_TOO_LONG = 16, - TP_ERR_BAD_EVENT_NAME = 17, - TP_ERR_EVENT_EXIST = 18, - TP_ERR_RETVAL_ON_PROBE = 19, - TP_ERR_BAD_STACK_NUM = 20, - TP_ERR_BAD_ARG_NUM = 21, - TP_ERR_BAD_VAR = 22, - TP_ERR_BAD_REG_NAME = 23, - TP_ERR_BAD_MEM_ADDR = 24, - TP_ERR_BAD_IMM = 25, - TP_ERR_IMMSTR_NO_CLOSE = 26, - TP_ERR_FILE_ON_KPROBE = 27, - TP_ERR_BAD_FILE_OFFS = 28, - TP_ERR_SYM_ON_UPROBE = 29, - TP_ERR_TOO_MANY_OPS = 30, - TP_ERR_DEREF_NEED_BRACE = 31, - TP_ERR_BAD_DEREF_OFFS = 32, - TP_ERR_DEREF_OPEN_BRACE = 33, - TP_ERR_COMM_CANT_DEREF = 34, - TP_ERR_BAD_FETCH_ARG = 35, - TP_ERR_ARRAY_NO_CLOSE = 36, - TP_ERR_BAD_ARRAY_SUFFIX = 37, - TP_ERR_BAD_ARRAY_NUM = 38, - TP_ERR_ARRAY_TOO_BIG = 39, - TP_ERR_BAD_TYPE = 40, - TP_ERR_BAD_STRING = 41, - TP_ERR_BAD_BITFIELD = 42, - TP_ERR_ARG_NAME_TOO_LONG = 43, - TP_ERR_NO_ARG_NAME = 44, - TP_ERR_BAD_ARG_NAME = 45, - TP_ERR_USED_ARG_NAME = 46, - TP_ERR_ARG_TOO_LONG = 47, - TP_ERR_NO_ARG_BODY = 48, - TP_ERR_BAD_INSN_BNDRY = 49, - TP_ERR_FAIL_REG_PROBE = 50, - TP_ERR_DIFF_PROBE_TYPE = 51, - TP_ERR_DIFF_ARG_TYPE = 52, - TP_ERR_SAME_PROBE = 53, -}; - struct trace_kprobe { struct dyn_event devent; struct kretprobe rp; @@ -37132,6 +41665,27 @@ struct trace_kprobe { struct trace_probe tp; }; +struct count_symbols_struct { + const char *func_name; + unsigned int count; +}; + +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, +}; + +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + long unsigned int id; + char __data[0]; +}; + +struct trace_event_data_offsets_error_report_template {}; + +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, long unsigned int); + struct trace_event_raw_cpu { struct trace_entry ent; u32 state; @@ -37367,15 +41921,6 @@ typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); typedef void (*btf_trace_rpm_return_int)(void *, struct device *, long unsigned int, int); -typedef int (*dynevent_check_arg_fn_t)(void *); - -struct dynevent_arg_pair { - const char *lhs; - const char *rhs; - char operator; - char separator; -}; - struct trace_probe_log { const char *subsystem; const char **argv; @@ -37425,8 +41970,6 @@ struct uprobe_cpu_buffer { typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); -typedef __u64 __le64; - struct rhash_lock_head; struct bucket_table { @@ -37463,15 +42006,13 @@ struct xdp_cpumap_stats { unsigned int drop; }; -typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); - struct bpf_prog_dummy { struct bpf_prog prog; }; -typedef u64 (*btf_bpf_user_rnd_u32)(); +typedef u64 (*btf_bpf_user_rnd_u32)(void); -typedef u64 (*btf_bpf_get_raw_cpu_id)(); +typedef u64 (*btf_bpf_get_raw_cpu_id)(void); struct _bpf_dtab_netdev { struct net_device *dev; @@ -37481,8 +42022,6 @@ struct rhash_lock_head {}; struct zero_copy_allocator; -struct page_pool; - struct xdp_mem_allocator { struct xdp_mem_info mem; union { @@ -37610,13 +42149,13 @@ typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); -typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, const struct bpf_map *, u32); +typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); -typedef void (*btf_trace_xdp_redirect_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, const struct bpf_map *, u32); +typedef void (*btf_trace_xdp_redirect_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); -typedef void (*btf_trace_xdp_redirect_map)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, const struct bpf_map *, u32); +typedef void (*btf_trace_xdp_redirect_map)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); -typedef void (*btf_trace_xdp_redirect_map_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, const struct bpf_map *, u32); +typedef void (*btf_trace_xdp_redirect_map_err)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); @@ -37642,6 +42181,7 @@ enum bpf_cmd { BPF_PROG_ATTACH = 8, BPF_PROG_DETACH = 9, BPF_PROG_TEST_RUN = 10, + BPF_PROG_RUN = 10, BPF_PROG_GET_NEXT_ID = 11, BPF_MAP_GET_NEXT_ID = 12, BPF_PROG_GET_FD_BY_ID = 13, @@ -37731,6 +42271,7 @@ struct bpf_prog_info { __u64 prog_tags; __u64 run_time_ns; __u64 run_cnt; + __u64 recursion_misses; }; struct bpf_map_info { @@ -37754,73 +42295,12 @@ struct bpf_btf_info { __u64 btf; __u32 btf_size; __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; }; -struct bpf_spin_lock { - __u32 val; -}; - -struct bpf_attach_target_info { - struct btf_func_model fmodel; - long int tgt_addr; - const char *tgt_name; - const struct btf_type *tgt_type; -}; - -struct bpf_link_primer { - struct bpf_link *link; - struct file *file; - int fd; - u32 id; -}; - -enum perf_bpf_event_type { - PERF_BPF_EVENT_UNKNOWN = 0, - PERF_BPF_EVENT_PROG_LOAD = 1, - PERF_BPF_EVENT_PROG_UNLOAD = 2, - PERF_BPF_EVENT_MAX = 3, -}; - -enum bpf_audit { - BPF_AUDIT_LOAD = 0, - BPF_AUDIT_UNLOAD = 1, - BPF_AUDIT_MAX = 2, -}; - -struct bpf_tracing_link { - struct bpf_link link; - enum bpf_attach_type attach_type; - struct bpf_trampoline *trampoline; - struct bpf_prog *tgt_prog; -}; - -struct bpf_raw_tp_link { - struct bpf_link link; - struct bpf_raw_event_map *btp; -}; - -struct btf_member { - __u32 name_off; - __u32 type; - __u32 offset; -}; - -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, -}; - -struct btf_var_secinfo { - __u32 type; - __u32 offset; - __u32 size; -}; - -enum sk_action { - SK_DROP = 0, - SK_PASS = 1, -}; +typedef sockptr_t bpfptr_t; struct bpf_verifier_log { u32 level; @@ -37837,6 +42317,7 @@ struct bpf_subprog_info { bool has_tail_call; bool tail_call_reachable; bool has_ld_abs; + bool is_async_cb; }; struct bpf_id_pair { @@ -37865,7 +42346,9 @@ struct bpf_verifier_env { struct bpf_verifier_state_list **explored_states; struct bpf_verifier_state_list *free_list; struct bpf_map *used_maps[64]; + struct btf_mod_pair used_btfs[64]; u32 used_map_cnt; + u32 used_btf_cnt; u32 id_gen; bool explore_alu_limits; bool allow_ptr_leaks; @@ -37896,25 +42379,10 @@ struct bpf_verifier_env { u32 total_states; u32 peak_states; u32 longest_mark_read_walk; + bpfptr_t fd_array; + char type_str_buf[64]; }; -struct bpf_struct_ops { - const struct bpf_verifier_ops *verifier_ops; - int (*init)(struct btf *); - int (*check_member)(const struct btf_type *, const struct btf_member *); - int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); - int (*reg)(void *); - void (*unreg)(void *); - const struct btf_type *type; - const struct btf_type *value_type; - const char *name; - struct btf_func_model func_models[64]; - u32 type_id; - u32 value_id; -}; - -typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - struct tnum { u64 value; u64 mask; @@ -37931,14 +42399,24 @@ enum bpf_reg_liveness { struct bpf_reg_state { enum bpf_reg_type type; - union { - u16 range; - struct bpf_map *map_ptr; - u32 btf_id; - u32 mem_size; - long unsigned int raw; - }; s32 off; + union { + int range; + struct { + struct bpf_map *map_ptr; + u32 map_uid; + }; + struct { + struct btf *btf; + u32 btf_id; + }; + u32 mem_size; + struct { + long unsigned int raw1; + long unsigned int raw2; + } raw; + u32 subprogno; + }; u32 id; u32 ref_obj_id; struct tnum var_off; @@ -37957,11 +42435,36 @@ struct bpf_reg_state { bool precise; }; -enum bpf_stack_slot_type { - STACK_INVALID = 0, - STACK_SPILL = 1, - STACK_MISC = 2, - STACK_ZERO = 3, +struct bpf_reference_state; + +struct bpf_stack_state; + +struct bpf_func_state { + struct bpf_reg_state regs[11]; + int callsite; + u32 frameno; + u32 subprogno; + u32 async_entry_cnt; + bool in_callback_fn; + bool in_async_callback_fn; + int acquired_refs; + struct bpf_reference_state *refs; + int allocated_stack; + struct bpf_stack_state *stack; +}; + +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long int tgt_addr; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; }; struct bpf_stack_state { @@ -37972,17 +42475,7 @@ struct bpf_stack_state { struct bpf_reference_state { int id; int insn_idx; -}; - -struct bpf_func_state { - struct bpf_reg_state regs[11]; - int callsite; - u32 frameno; - u32 subprogno; - int acquired_refs; - struct bpf_reference_state *refs; - int allocated_stack; - struct bpf_stack_state *stack; + int callback_ref; }; struct bpf_idx_pair { @@ -38024,7 +42517,10 @@ struct bpf_insn_aux_data { struct { enum bpf_reg_type reg_type; union { - u32 btf_id; + struct { + struct btf *btf; + u32 btf_id; + }; u32 mem_size; }; } btf_var; @@ -38039,6 +42535,109 @@ struct bpf_insn_aux_data { bool prune_point; }; +enum perf_bpf_event_type { + PERF_BPF_EVENT_UNKNOWN = 0, + PERF_BPF_EVENT_PROG_LOAD = 1, + PERF_BPF_EVENT_PROG_UNLOAD = 2, + PERF_BPF_EVENT_MAX = 3, +}; + +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, +}; + +struct bpf_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; +}; + +struct bpf_tracing_link { + struct bpf_link link; + enum bpf_attach_type attach_type; + struct bpf_trampoline *trampoline; + struct bpf_prog *tgt_prog; +}; + +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; +}; + +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; +}; + +typedef u64 (*btf_bpf_sys_bpf)(int, void *, u32); + +typedef u64 (*btf_bpf_sys_close)(u32); + +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; + +struct btf_param { + __u32 name_off; + __u32 type; +}; + +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, +}; + +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; +}; + +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, +}; + +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; +}; + +struct bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; +}; + +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *); + void (*unreg)(void *); + const struct btf_type *type; + const struct btf_type *value_type; + const char *name; + struct btf_func_model func_models[64]; + u32 type_id; + u32 value_id; +}; + +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + +enum bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, +}; + struct bpf_verifier_stack_elem { struct bpf_verifier_state st; int insn_idx; @@ -38061,7 +42660,8 @@ enum { BTF_SOCK_TYPE_TCP6 = 10, BTF_SOCK_TYPE_UDP = 11, BTF_SOCK_TYPE_UDP6 = 12, - MAX_BTF_SOCK_TYPE = 13, + BTF_SOCK_TYPE_UNIX = 13, + MAX_BTF_SOCK_TYPE = 14, }; typedef void (*bpf_insn_print_t)(void *, const char *, ...); @@ -38086,9 +42686,13 @@ struct bpf_call_arg_meta { int mem_size; u64 msize_max_value; int ref_obj_id; + int map_uid; int func_id; + struct btf *btf; u32 btf_id; + struct btf *ret_btf; u32 ret_btf_id; + u32 subprogno; }; enum reg_arg_type { @@ -38107,6 +42711,13 @@ struct bpf_reg_types { u32 *btf_id; }; +enum { + AT_PKT_END = 4294967295, + BEYOND_PKT_END = 4294967294, +}; + +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); + enum { REASON_BOUNDS = 4294967295, REASON_TYPE = 4294967294, @@ -38127,20 +42738,17 @@ enum { BRANCH = 2, }; +enum { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, +}; + struct tree_descr { const char *name; const struct file_operations *ops; int mode; }; -struct umd_info { - const char *driver_name; - struct file *pipe_to_umh; - struct file *pipe_from_umh; - struct path wd; - struct pid *tgid; -}; - struct bpf_preload_info { char link_name[16]; int link_id; @@ -38149,7 +42757,7 @@ struct bpf_preload_info { struct bpf_preload_ops { struct umd_info info; int (*preload)(struct bpf_preload_info *); - int (*finish)(); + int (*finish)(void); struct module *owner; }; @@ -38173,14 +42781,18 @@ struct bpf_mount_opts { umode_t mode; }; +struct bpf_spin_lock { + __u32 val; +}; + struct bpf_pidns_info { __u32 pid; __u32 tgid; }; -struct bpf_cgroup_storage_info { - struct task_struct *task; - struct bpf_cgroup_storage *storage[2]; +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; }; typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); @@ -38195,17 +42807,19 @@ typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); -typedef u64 (*btf_bpf_get_smp_processor_id)(); +typedef u64 (*btf_bpf_get_smp_processor_id)(void); -typedef u64 (*btf_bpf_get_numa_node_id)(); +typedef u64 (*btf_bpf_get_numa_node_id)(void); -typedef u64 (*btf_bpf_ktime_get_ns)(); +typedef u64 (*btf_bpf_ktime_get_ns)(void); -typedef u64 (*btf_bpf_ktime_get_boot_ns)(); +typedef u64 (*btf_bpf_ktime_get_boot_ns)(void); -typedef u64 (*btf_bpf_get_current_pid_tgid)(); +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(void); -typedef u64 (*btf_bpf_get_current_uid_gid)(); +typedef u64 (*btf_bpf_get_current_pid_tgid)(void); + +typedef u64 (*btf_bpf_get_current_uid_gid)(void); typedef u64 (*btf_bpf_get_current_comm)(char *, u32); @@ -38213,17 +42827,17 @@ typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); -typedef u64 (*btf_bpf_jiffies64)(); +typedef u64 (*btf_bpf_jiffies64)(void); -typedef u64 (*btf_bpf_get_current_cgroup_id)(); +typedef u64 (*btf_bpf_get_current_cgroup_id)(void); typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); -typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long int *); +typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, s64 *); -typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, long unsigned int *); +typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, u64 *); typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); @@ -38235,6 +42849,35 @@ typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; +}; + +typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); + +struct bpf_hrtimer { + struct hrtimer timer; + struct bpf_map *map; + struct bpf_prog *prog; + void *callback_fn; + void *value; + struct callback_head rcu; +}; + +struct bpf_timer_kern { + struct bpf_hrtimer *timer; + struct bpf_spin_lock lock; +}; + +typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); + +typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); + +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); + union bpf_iter_link_info { struct { __u32 map_fd; @@ -38249,13 +42892,21 @@ typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); +typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); + +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, +}; + struct bpf_iter_reg { const char *target; bpf_iter_attach_target_t attach_target; bpf_iter_detach_target_t detach_target; bpf_iter_show_fdinfo_t show_fdinfo; bpf_iter_fill_link_info_t fill_link_info; + bpf_iter_get_func_proto_t get_func_proto; u32 ctx_arg_info_size; + u32 feature; struct bpf_ctx_arg_aux ctx_arg_info[2]; const struct bpf_iter_seq_info *seq_info; }; @@ -38291,6 +42942,8 @@ struct bpf_iter_priv_data { u8 target_private[0]; }; +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + struct bpf_iter_seq_map_info { u32 map_id; }; @@ -38325,7 +42978,6 @@ struct bpf_iter__task { struct bpf_iter_seq_task_file_info { struct bpf_iter_seq_task_common common; struct task_struct *task; - struct files_struct *files; u32 tid; u32 fd; }; @@ -38343,6 +42995,33 @@ struct bpf_iter__task_file { }; }; +struct bpf_iter_seq_task_vma_info { + struct bpf_iter_seq_task_common common; + struct task_struct *task; + struct vm_area_struct *vma; + u32 tid; + long unsigned int prev_vm_start; + long unsigned int prev_vm_end; +}; + +enum bpf_task_vma_iter_find_op { + task_vma_iter_first_vma = 0, + task_vma_iter_next_vma = 1, + task_vma_iter_find_vma = 2, +}; + +struct bpf_iter__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; +}; + struct bpf_iter_seq_prog_info { u32 prog_id; }; @@ -38473,6 +43152,8 @@ struct bpf_htab { u32 n_buckets; u32 elem_size; u32 hashrnd; + struct lock_class_key lockdep_key; + int *map_locked[8]; long: 64; long: 64; long: 64; @@ -39619,7 +44300,7 @@ struct bpf_ringbuf { long: 64; long: 64; long unsigned int producer_pos; - long: 64; + long unsigned int pending_pos; long: 64; long: 64; long: 64; @@ -40135,13 +44816,14 @@ struct bpf_ringbuf { struct bpf_ringbuf_map { struct bpf_map map; - struct bpf_map_memory memory; struct bpf_ringbuf *rb; long: 64; long: 64; long: 64; long: 64; long: 64; + long: 64; + long: 64; }; struct bpf_ringbuf_hdr { @@ -40159,47 +44841,6 @@ typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = 1, - BPF_SK_STORAGE_GET_F_CREATE = 1, -}; - -struct bpf_local_storage_map_bucket; - -struct bpf_local_storage_map { - struct bpf_map map; - struct bpf_local_storage_map_bucket *buckets; - u32 bucket_log; - u16 elem_size; - u16 cache_idx; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct bpf_local_storage_data; - -struct bpf_local_storage { - struct bpf_local_storage_data *cache[16]; - struct hlist_head list; - void *owner; - struct callback_head rcu; - raw_spinlock_t lock; -}; - -struct bpf_local_storage_map_bucket { - struct hlist_head list; - raw_spinlock_t lock; -}; - -struct bpf_local_storage_data { - struct bpf_local_storage_map *smap; - u8 data[0]; -}; - struct bpf_local_storage_elem { struct hlist_node map_node; struct hlist_node snode; @@ -40221,10 +44862,21 @@ struct bpf_local_storage_cache { u64 idx_usage_counts[16]; }; +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; + +typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64); + +typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); + struct lsm_blob_sizes { int lbs_cred; int lbs_file; int lbs_inode; + int lbs_superblock; + int lbs_sock; int lbs_ipc; int lbs_msg_msg; int lbs_task; @@ -40249,11 +44901,6 @@ struct btf_array { __u32 nelems; }; -struct btf_param { - __u32 name_off; - __u32 type; -}; - enum { BTF_VAR_STATIC = 0, BTF_VAR_GLOBAL_ALLOCATED = 1, @@ -40386,6 +45033,12 @@ struct sk_reuseport_md { __u32 ip_protocol; __u32 bind_inany; __u32 hash; + union { + struct bpf_sock *sk; + }; + union { + struct bpf_sock *migrating_sk; + }; }; struct bpf_sock_addr { @@ -40494,7 +45147,7 @@ struct bpf_sk_lookup { __u32 protocol; __u32 remote_ip4; __u32 remote_ip6[4]; - __u32 remote_port; + __be16 remote_port; __u32 local_ip4; __u32 local_ip6[4]; __u32 local_port; @@ -40504,6 +45157,7 @@ struct sk_reuseport_kern { struct sk_buff *skb; struct sock *sk; struct sock *selected_sk; + struct sock *migrating_sk; void *data_end; u32 hash; u32 reuseport_id; @@ -40513,23 +45167,16 @@ struct sk_reuseport_kern { struct bpf_flow_dissector { struct bpf_flow_keys *flow_keys; const struct sk_buff *skb; - void *data; - void *data_end; -}; - -struct inet_listen_hashbucket { - spinlock_t lock; - unsigned int count; - union { - struct hlist_head head; - struct hlist_nulls_head nulls_head; - }; + const void *data; + const void *data_end; }; struct inet_ehash_bucket; struct inet_bind_hashbucket; +struct inet_listen_hashbucket; + struct inet_hashinfo { struct inet_ehash_bucket *ehash; spinlock_t *ehash_locks; @@ -40540,8 +45187,6 @@ struct inet_hashinfo { unsigned int bhash_size; unsigned int lhash2_mask; struct inet_listen_hashbucket *lhash2; - long: 64; - struct inet_listen_hashbucket listening_hash[32]; }; struct ip_ra_chain { @@ -40575,20 +45220,6 @@ struct tcp_fastopen_context { struct callback_head rcu; }; -struct xdp_txq_info { - struct net_device *dev; -}; - -struct xdp_buff { - void *data; - void *data_end; - void *data_meta; - void *data_hard_start; - struct xdp_rxq_info *rxq; - struct xdp_txq_info *txq; - u32 frame_sz; -}; - struct bpf_sock_addr_kern { struct sock *sk; struct sockaddr *uaddr; @@ -40667,6 +45298,8 @@ struct sock_reuseport { struct callback_head rcu; u16 max_socks; u16 num_socks; + u16 num_closed_socks; + u16 incoming_cpu; unsigned int synq_overflow_ts; unsigned int reuseport_id; unsigned int bind_inany: 1; @@ -40675,6 +45308,87 @@ struct sock_reuseport { struct sock *socks[0]; }; +struct sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; +}; + +struct strp_stats { + long long unsigned int msgs; + long long unsigned int bytes; + unsigned int mem_fail; + unsigned int need_more_hdr; + unsigned int msg_too_big; + unsigned int msg_timeouts; + unsigned int bad_hdr_len; +}; + +struct strparser; + +struct strp_callbacks { + int (*parse_msg)(struct strparser *, struct sk_buff *); + void (*rcv_msg)(struct strparser *, struct sk_buff *); + int (*read_sock_done)(struct strparser *, int); + void (*abort_parser)(struct strparser *, int); + void (*lock)(struct strparser *); + void (*unlock)(struct strparser *); +}; + +struct strparser { + struct sock *sk; + u32 stopped: 1; + u32 paused: 1; + u32 aborted: 1; + u32 interrupted: 1; + u32 unrecov_intr: 1; + struct sk_buff **skb_nextp; + struct sk_buff *skb_head; + unsigned int need_bytes; + struct delayed_work msg_timer_work; + struct work_struct work; + struct strp_stats stats; + struct strp_callbacks cb; +}; + +struct sk_psock_work_state { + u32 len; + u32 off; +}; + +struct sk_msg; + +struct sk_psock { + struct sock *sk; + struct sock *sk_redir; + u32 apply_bytes; + u32 cork_bytes; + u32 eval; + bool redir_ingress; + struct sk_msg *cork; + struct sk_psock_progs progs; + struct strparser strp; + struct sk_buff_head ingress_skb; + struct list_head ingress_msg; + spinlock_t ingress_lock; + long unsigned int state; + struct list_head link; + spinlock_t link_lock; + refcount_t refcnt; + void (*saved_unhash)(struct sock *); + void (*saved_destroy)(struct sock *); + void (*saved_close)(struct sock *, long int); + void (*saved_write_space)(struct sock *); + void (*saved_data_ready)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + struct proto *sk_proto; + struct mutex work_mutex; + struct sk_psock_work_state work_state; + struct delayed_work work; + struct rcu_work rwork; +}; + struct inet_ehash_bucket { struct hlist_nulls_head chain; }; @@ -40684,6 +45398,11 @@ struct inet_bind_hashbucket { struct hlist_head chain; }; +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; +}; + struct ack_sample { u32 pkts_acked; s32 rtt_us; @@ -40863,6 +45582,8 @@ struct bpf_ctx_convert { void *BPF_PROG_TYPE_EXT_kern; void *BPF_PROG_TYPE_LSM_prog; void *BPF_PROG_TYPE_LSM_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; }; enum { @@ -40895,7 +45616,8 @@ enum { __ctx_convertBPF_PROG_TYPE_STRUCT_OPS = 26, __ctx_convertBPF_PROG_TYPE_EXT = 27, __ctx_convertBPF_PROG_TYPE_LSM = 28, - __ctx_convert_unused = 29, + __ctx_convertBPF_PROG_TYPE_SYSCALL = 29, + __ctx_convert_unused = 30, }; enum bpf_struct_walk_result { @@ -40910,6 +45632,20 @@ struct btf_show_snprintf { int len; }; +enum { + BTF_MODULE_F_LIVE = 1, +}; + +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; +}; + +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); + struct bpf_dispatcher_prog { struct bpf_prog *prog; refcount_t users; @@ -40925,6 +45661,11 @@ struct bpf_dispatcher { struct bpf_ksym ksym; }; +enum { + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, +}; + struct bpf_devmap_val { __u32 ifindex; union { @@ -40955,11 +45696,47 @@ enum net_device_flags { IFF_ECHO = 262144, }; +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1, + IFF_EBRIDGE = 2, + IFF_BONDING = 4, + IFF_ISATAP = 8, + IFF_WAN_HDLC = 16, + IFF_XMIT_DST_RELEASE = 32, + IFF_DONT_BRIDGE = 64, + IFF_DISABLE_NETPOLL = 128, + IFF_MACVLAN_PORT = 256, + IFF_BRIDGE_PORT = 512, + IFF_OVS_DATAPATH = 1024, + IFF_TX_SKB_SHARING = 2048, + IFF_UNICAST_FLT = 4096, + IFF_TEAM_PORT = 8192, + IFF_SUPP_NOFCS = 16384, + IFF_LIVE_ADDR_CHANGE = 32768, + IFF_MACVLAN = 65536, + IFF_XMIT_DST_RELEASE_PERM = 131072, + IFF_L3MDEV_MASTER = 262144, + IFF_NO_QUEUE = 524288, + IFF_OPENVSWITCH = 1048576, + IFF_L3MDEV_SLAVE = 2097152, + IFF_TEAM = 4194304, + IFF_RXFH_CONFIGURED = 8388608, + IFF_PHONY_HEADROOM = 16777216, + IFF_MACSEC = 33554432, + IFF_NO_RX_HANDLER = 67108864, + IFF_FAILOVER = 134217728, + IFF_FAILOVER_SLAVE = 268435456, + IFF_L3MDEV_RX_HANDLER = 536870912, + IFF_LIVE_RENAME_OK = 1073741824, + IFF_TX_SKB_NO_LINEAR = 2147483648, +}; + struct xdp_dev_bulk_queue { struct xdp_frame *q[16]; struct list_head flush_node; struct net_device *dev; struct net_device *dev_rx; + struct bpf_prog *xdp_prog; unsigned int count; }; @@ -41005,6 +45782,25 @@ struct netdev_notifier_info { struct netlink_ext_ack *extack; }; +struct bpf_nh_params { + u32 nh_family; + union { + u32 ipv4_nh; + struct in6_addr ipv6_nh; + }; +}; + +struct bpf_redirect_info { + u32 flags; + u32 tgt_index; + void *tgt_value; + struct bpf_map *map; + u32 map_id; + enum bpf_map_type map_type; + u32 kern_flags; + struct bpf_nh_params nh; +}; + struct bpf_dtab; struct bpf_dtab_netdev { @@ -41037,75 +45833,6 @@ struct bpf_cpumap_val { } bpf_prog; }; -typedef struct bio_vec skb_frag_t; - -struct skb_shared_hwtstamps { - ktime_t hwtstamp; -}; - -struct skb_shared_info { - __u8 __unused; - __u8 meta_len; - __u8 nr_frags; - __u8 tx_flags; - short unsigned int gso_size; - short unsigned int gso_segs; - struct sk_buff *frag_list; - struct skb_shared_hwtstamps hwtstamps; - unsigned int gso_type; - u32 tskey; - atomic_t dataref; - void *destructor_arg; - skb_frag_t frags[17]; -}; - -struct bpf_nh_params { - u32 nh_family; - union { - u32 ipv4_nh; - struct in6_addr ipv6_nh; - }; -}; - -struct bpf_redirect_info { - u32 flags; - u32 tgt_index; - void *tgt_value; - struct bpf_map *map; - u32 kern_flags; - struct bpf_nh_params nh; -}; - -struct ptr_ring { - int producer; - spinlock_t producer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - int consumer_head; - int consumer_tail; - spinlock_t consumer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - int size; - int batch; - void **queue; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - struct bpf_cpu_map_entry; struct xdp_bulk_queue { @@ -41129,6 +45856,7 @@ struct bpf_cpu_map_entry { atomic_t refcnt; struct callback_head rcu; struct work_struct kthread_stop_wq; + struct completion kthread_running; }; struct bpf_cpu_map { @@ -41164,6 +45892,8 @@ struct bpf_offload_dev { void *priv; }; +typedef struct ns_common *ns_get_path_helper_t(void *); + struct bpf_offload_netdev { struct rhash_head l; struct net_device *netdev; @@ -41214,46 +45944,6 @@ enum { BPF_F_USER_BUILD_ID = 2048, }; -typedef __u32 Elf32_Addr; - -typedef __u16 Elf32_Half; - -typedef __u32 Elf32_Off; - -struct elf32_hdr { - unsigned char e_ident[16]; - Elf32_Half e_type; - Elf32_Half e_machine; - Elf32_Word e_version; - Elf32_Addr e_entry; - Elf32_Off e_phoff; - Elf32_Off e_shoff; - Elf32_Word e_flags; - Elf32_Half e_ehsize; - Elf32_Half e_phentsize; - Elf32_Half e_phnum; - Elf32_Half e_shentsize; - Elf32_Half e_shnum; - Elf32_Half e_shstrndx; -}; - -typedef struct elf32_hdr Elf32_Ehdr; - -struct elf32_phdr { - Elf32_Word p_type; - Elf32_Off p_offset; - Elf32_Addr p_vaddr; - Elf32_Addr p_paddr; - Elf32_Word p_filesz; - Elf32_Word p_memsz; - Elf32_Word p_flags; - Elf32_Word p_align; -}; - -typedef struct elf32_phdr Elf32_Phdr; - -typedef struct elf32_note Elf32_Nhdr; - enum perf_callchain_context { PERF_CONTEXT_HV = 4294967264, PERF_CONTEXT_KERNEL = 4294967168, @@ -41315,7 +46005,6 @@ struct qdisc_skb_cb { u16 tc_classid; }; unsigned char data[20]; - u16 mru; }; struct bpf_skb_data_end { @@ -41324,6 +46013,10 @@ struct bpf_skb_data_end { void *data_end; }; +struct bpf_sockopt_buf { + u8 data[32]; +}; + enum { TCPF_ESTABLISHED = 2, TCPF_SYN_SENT = 4, @@ -41347,6 +46040,8 @@ typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, si typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); +typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); + enum sock_type { SOCK_STREAM = 1, SOCK_DGRAM = 2, @@ -41444,11 +46139,18 @@ struct bpf_struct_ops_value { struct bpf_struct_ops_map { struct bpf_map map; + struct callback_head rcu; const struct bpf_struct_ops *st_ops; struct mutex lock; struct bpf_prog **progs; void *image; struct bpf_struct_ops_value *uvalue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; struct bpf_struct_ops_value kvalue; }; @@ -41463,11 +46165,6 @@ struct bpf_struct_ops_tcp_congestion_ops { long: 64; long: 64; struct tcp_congestion_ops data; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; }; struct sembuf { @@ -41510,6 +46207,14 @@ struct xfrm_user_sec_ctx { __u16 ctx_len; }; +enum { + BPF_F_BPRM_SECUREEXEC = 1, +}; + +typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64); + +typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32); + struct static_call_tramp_key { s32 tramp; s32 key; @@ -41520,7 +46225,8 @@ enum perf_event_read_format { PERF_FORMAT_TOTAL_TIME_RUNNING = 2, PERF_FORMAT_ID = 4, PERF_FORMAT_GROUP = 8, - PERF_FORMAT_MAX = 16, + PERF_FORMAT_LOST = 16, + PERF_FORMAT_MAX = 32, }; enum perf_event_ioc_flags { @@ -41596,6 +46302,7 @@ struct perf_buffer { atomic_t mmap_count; long unsigned int mmap_locked; struct user_struct *mmap_user; + struct mutex aux_mutex; long int aux_head; unsigned int aux_nest; long int aux_wakeup; @@ -41659,6 +46366,11 @@ enum event_type_t { EVENT_ALL = 3, }; +struct __group_key { + int cpu; + struct cgroup *cgroup; +}; + struct stop_event_data { struct perf_event *event; unsigned int restart; @@ -41738,6 +46450,8 @@ struct perf_mmap_event { u64 ino_generation; u32 prot; u32 flags; + u8 build_id[20]; + u32 build_id_size; struct { struct perf_event_header header; u32 pid; @@ -41883,8 +46597,6 @@ struct xol_area { long unsigned int vaddr; }; -typedef long unsigned int vm_flags_t; - struct compact_control; struct capture_control { @@ -41892,6 +46604,8 @@ struct capture_control { struct page *page; }; +typedef int filler_t(void *, struct page *); + struct page_vma_mapped_walk { struct page *page; struct vm_area_struct *vma; @@ -41938,6 +46652,11 @@ struct delayed_uprobe { struct mm_struct *mm; }; +struct __uprobe_key { + struct inode *inode; + loff_t offset; +}; + struct map_info { struct map_info *next; struct mm_struct *mm; @@ -41976,7 +46695,7 @@ struct parallel_data { struct padata_shell *ps; struct padata_list *reorder_list; struct padata_serial_queue *squeue; - atomic_t refcnt; + refcount_t refcnt; unsigned int seq_nr; unsigned int processed; int cpu; @@ -42118,20 +46837,211 @@ typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); typedef void (*btf_trace_rseq_ip_fixup)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int); -struct pkcs7_message; +struct watch; -typedef void (*xa_update_node_t)(struct xa_node *); +struct watch_list { + struct callback_head rcu; + struct hlist_head watchers; + void (*release_watch)(struct watch *); + spinlock_t lock; +}; -struct xa_state { - struct xarray *xa; - long unsigned int xa_index; - unsigned char xa_shift; - unsigned char xa_sibs; - unsigned char xa_offset; - unsigned char xa_pad; - struct xa_node *xa_node; - struct xa_node *xa_alloc; - xa_update_node_t xa_update; +enum watch_notification_type { + WATCH_TYPE_META = 0, + WATCH_TYPE_KEY_NOTIFY = 1, + WATCH_TYPE__NR = 2, +}; + +enum watch_meta_notification_subtype { + WATCH_META_REMOVAL_NOTIFICATION = 0, + WATCH_META_LOSS_NOTIFICATION = 1, +}; + +struct watch_notification { + __u32 type: 24; + __u32 subtype: 8; + __u32 info; +}; + +struct watch_notification_type_filter { + __u32 type; + __u32 info_filter; + __u32 info_mask; + __u32 subtype_filter[8]; +}; + +struct watch_notification_filter { + __u32 nr_filters; + __u32 __reserved; + struct watch_notification_type_filter filters[0]; +}; + +struct watch_notification_removal { + struct watch_notification watch; + __u64 id; +}; + +struct watch_type_filter { + enum watch_notification_type type; + __u32 subtype_filter[1]; + __u32 info_filter; + __u32 info_mask; +}; + +struct watch_filter { + union { + struct callback_head rcu; + long unsigned int type_filter[1]; + }; + u32 nr_filters; + struct watch_type_filter filters[0]; +}; + +struct watch_queue { + struct callback_head rcu; + struct watch_filter *filter; + struct pipe_inode_info *pipe; + struct hlist_head watches; + struct page **notes; + long unsigned int *notes_bitmap; + struct kref usage; + spinlock_t lock; + unsigned int nr_notes; + unsigned int nr_pages; + bool defunct; +}; + +struct watch { + union { + struct callback_head rcu; + u32 info_id; + }; + struct watch_queue *queue; + struct hlist_node queue_node; + struct watch_list *watch_list; + struct hlist_node list_node; + const struct cred *cred; + void *private; + u64 id; + struct kref usage; +}; + +enum OID { + OID_id_dsa_with_sha1 = 0, + OID_id_dsa = 1, + OID_id_ecPublicKey = 2, + OID_id_prime192v1 = 3, + OID_id_prime256v1 = 4, + OID_id_ecdsa_with_sha1 = 5, + OID_id_ecdsa_with_sha224 = 6, + OID_id_ecdsa_with_sha256 = 7, + OID_id_ecdsa_with_sha384 = 8, + OID_id_ecdsa_with_sha512 = 9, + OID_rsaEncryption = 10, + OID_md2WithRSAEncryption = 11, + OID_md3WithRSAEncryption = 12, + OID_md4WithRSAEncryption = 13, + OID_sha1WithRSAEncryption = 14, + OID_sha256WithRSAEncryption = 15, + OID_sha384WithRSAEncryption = 16, + OID_sha512WithRSAEncryption = 17, + OID_sha224WithRSAEncryption = 18, + OID_data = 19, + OID_signed_data = 20, + OID_email_address = 21, + OID_contentType = 22, + OID_messageDigest = 23, + OID_signingTime = 24, + OID_smimeCapabilites = 25, + OID_smimeAuthenticatedAttrs = 26, + OID_md2 = 27, + OID_md4 = 28, + OID_md5 = 29, + OID_mskrb5 = 30, + OID_krb5 = 31, + OID_krb5u2u = 32, + OID_msIndirectData = 33, + OID_msStatementType = 34, + OID_msSpOpusInfo = 35, + OID_msPeImageDataObjId = 36, + OID_msIndividualSPKeyPurpose = 37, + OID_msOutlookExpress = 38, + OID_ntlmssp = 39, + OID_spnego = 40, + OID_IAKerb = 41, + OID_PKU2U = 42, + OID_Scram = 43, + OID_certAuthInfoAccess = 44, + OID_sha1 = 45, + OID_id_ansip384r1 = 46, + OID_sha256 = 47, + OID_sha384 = 48, + OID_sha512 = 49, + OID_sha224 = 50, + OID_commonName = 51, + OID_surname = 52, + OID_countryName = 53, + OID_locality = 54, + OID_stateOrProvinceName = 55, + OID_organizationName = 56, + OID_organizationUnitName = 57, + OID_title = 58, + OID_description = 59, + OID_name = 60, + OID_givenName = 61, + OID_initials = 62, + OID_generationalQualifier = 63, + OID_subjectKeyIdentifier = 64, + OID_keyUsage = 65, + OID_subjectAltName = 66, + OID_issuerAltName = 67, + OID_basicConstraints = 68, + OID_crlDistributionPoints = 69, + OID_certPolicies = 70, + OID_authorityKeyIdentifier = 71, + OID_extKeyUsage = 72, + OID_NetlogonMechanism = 73, + OID_appleLocalKdcSupported = 74, + OID_gostCPSignA = 75, + OID_gostCPSignB = 76, + OID_gostCPSignC = 77, + OID_gost2012PKey256 = 78, + OID_gost2012PKey512 = 79, + OID_gost2012Digest256 = 80, + OID_gost2012Digest512 = 81, + OID_gost2012Signature256 = 82, + OID_gost2012Signature512 = 83, + OID_gostTC26Sign256A = 84, + OID_gostTC26Sign256B = 85, + OID_gostTC26Sign256C = 86, + OID_gostTC26Sign256D = 87, + OID_gostTC26Sign512A = 88, + OID_gostTC26Sign512B = 89, + OID_gostTC26Sign512C = 90, + OID_sm2 = 91, + OID_sm3 = 92, + OID_SM2_with_SM3 = 93, + OID_sm3WithRSAEncryption = 94, + OID_TPMLoadableKey = 95, + OID_TPMImportableKey = 96, + OID_TPMSealedData = 97, + OID__NR = 98, +}; + +struct x509_certificate; + +struct pkcs7_signed_info; + +struct pkcs7_message { + struct x509_certificate *certs; + struct x509_certificate *crl; + struct pkcs7_signed_info *signed_infos; + u8 version; + bool have_authattrs; + enum OID data_type; + size_t data_len; + size_t data_hdrlen; + const void *data; }; typedef int __kernel_rwf_t; @@ -42141,8 +47051,13 @@ enum positive_aop_returns { AOP_TRUNCATED_PAGE = 524289, }; -struct vm_event_state { - long unsigned int event[96]; +enum iter_type { + ITER_IOVEC = 0, + ITER_KVEC = 1, + ITER_BVEC = 2, + ITER_PIPE = 3, + ITER_XARRAY = 4, + ITER_DISCARD = 5, }; enum mapping_flags { @@ -42161,14 +47076,6 @@ struct wait_page_key { int page_match; }; -enum iter_type { - ITER_IOVEC = 4, - ITER_KVEC = 8, - ITER_BVEC = 16, - ITER_PIPE = 32, - ITER_DISCARD = 64, -}; - struct pagevec { unsigned char nr; bool percpu_pvec_drained; @@ -42285,11 +47192,14 @@ struct kmem_cache { struct kmem_cache_node *node[1024]; }; +typedef struct {} local_lock_t; + struct kmem_cache_cpu { void **freelist; long unsigned int tid; struct page *page; struct page *partial; + local_lock_t lock; }; struct kmem_cache_node { @@ -42301,6 +47211,13 @@ struct kmem_cache_node { struct list_head full; }; +struct zap_details { + struct address_space *check_mapping; + long unsigned int first_index; + long unsigned int last_index; + struct page *single_page; +}; + enum oom_constraint { CONSTRAINT_NONE = 0, CONSTRAINT_CPUSET = 1, @@ -42441,10 +47358,6 @@ enum wb_congested_state { WB_sync_congested = 1, }; -enum { - XA_CHECK_SCHED = 4096, -}; - enum wb_state { WB_registered = 0, WB_writeback_running = 1, @@ -42464,6 +47377,12 @@ struct wb_lock_cookie { typedef int (*writepage_t)(struct page *, struct writeback_control *, void *); +enum page_memcg_data_flags { + MEMCG_DATA_OBJCGS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, +}; + struct dirty_throttle_control { struct wb_domain *dom; struct dirty_throttle_control *gdtc; @@ -42485,7 +47404,7 @@ struct trace_event_raw_mm_lru_insertion { struct trace_entry ent; struct page *page; long unsigned int pfn; - int lru; + enum lru_list lru; long unsigned int flags; char __data[0]; }; @@ -42501,7 +47420,7 @@ struct trace_event_data_offsets_mm_lru_insertion {}; struct trace_event_data_offsets_mm_lru_activate {}; -typedef void (*btf_trace_mm_lru_insertion)(void *, struct page *, int); +typedef void (*btf_trace_mm_lru_insertion)(void *, struct page *); typedef void (*btf_trace_mm_lru_activate)(void *, struct page *); @@ -42529,6 +47448,11 @@ enum pgdat_flags { PGDAT_RECLAIM_LOCKED = 2, }; +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, +}; + struct reclaim_stat { unsigned int nr_dirty; unsigned int nr_unqueued_dirty; @@ -42542,16 +47466,28 @@ struct reclaim_stat { unsigned int nr_lazyfree_fail; }; +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + unsigned int generation; +}; + enum ttu_flags { - TTU_MIGRATION = 1, - TTU_MUNLOCK = 2, TTU_SPLIT_HUGE_PMD = 4, TTU_IGNORE_MLOCK = 8, TTU_SYNC = 16, TTU_IGNORE_HWPOISON = 32, TTU_BATCH_FLUSH = 64, TTU_RMAP_LOCKED = 128, - TTU_SPLIT_FREEZE = 256, +}; + +typedef struct page *new_page_t(struct page *, long unsigned int); + +typedef void free_page_t(struct page *, long unsigned int); + +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; }; struct trace_event_raw_mm_vmscan_kswapd_sleep { @@ -42666,19 +47602,6 @@ struct trace_event_raw_mm_vmscan_lru_shrink_active { char __data[0]; }; -struct trace_event_raw_mm_vmscan_inactive_list_is_low { - struct trace_entry ent; - int nid; - int reclaim_idx; - long unsigned int total_inactive; - long unsigned int inactive; - long unsigned int total_active; - long unsigned int active; - long unsigned int ratio; - int reclaim_flags; - char __data[0]; -}; - struct trace_event_raw_mm_vmscan_node_reclaim_begin { struct trace_entry ent; int nid; @@ -42709,8 +47632,6 @@ struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; -struct trace_event_data_offsets_mm_vmscan_inactive_list_is_low {}; - struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); @@ -42743,8 +47664,6 @@ typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, long unsign typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int, int); -typedef void (*btf_trace_mm_vmscan_inactive_list_is_low)(void *, int, int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, int); - typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, long unsigned int); @@ -42767,6 +47686,7 @@ struct scan_control { unsigned int compaction_ready: 1; unsigned int cache_trim_mode: 1; unsigned int file_is_tiny: 1; + unsigned int no_demotion: 1; s8 order; s8 priority; s8 reclaim_idx; @@ -42806,6 +47726,8 @@ enum scan_balance { SCAN_FILE = 3, }; +typedef __u64 __le64; + enum transparent_hugepage_flag { TRANSPARENT_HUGEPAGE_NEVER_DAX = 0, TRANSPARENT_HUGEPAGE_FLAG = 1, @@ -42818,6 +47740,10 @@ enum transparent_hugepage_flag { TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, }; +struct xattr; + +typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); + struct xattr { const char *name; void *value; @@ -42835,7 +47761,8 @@ enum { MPOL_BIND = 2, MPOL_INTERLEAVE = 3, MPOL_LOCAL = 4, - MPOL_MAX = 5, + MPOL_PREFERRED_MANY = 5, + MPOL_MAX = 6, }; struct shared_policy { @@ -42861,6 +47788,7 @@ struct shmem_inode_info { long unsigned int flags; long unsigned int alloced; long unsigned int swapped; + long unsigned int fallocend; struct list_head shrinklist; struct list_head swaplist; struct shared_policy policy; @@ -42874,7 +47802,7 @@ struct shmem_sb_info { struct percpu_counter used_blocks; long unsigned int max_inodes; long unsigned int free_inodes; - spinlock_t stat_lock; + raw_spinlock_t stat_lock; umode_t mode; unsigned char huge; kuid_t uid; @@ -42890,11 +47818,10 @@ struct shmem_sb_info { enum sgp_type { SGP_READ = 0, - SGP_CACHE = 1, - SGP_NOHUGE = 2, - SGP_HUGE = 3, - SGP_WRITE = 4, - SGP_FALLOC = 5, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 4, }; enum fid_type { @@ -42973,12 +47900,6 @@ enum { RADIX_TREE_ITER_CONTIG = 32, }; -enum mminit_level { - MMINIT_WARNING = 0, - MMINIT_VERIFY = 1, - MMINIT_TRACE = 2, -}; - struct pcpu_group_info { int nr_units; long unsigned int base_offset; @@ -42997,14 +47918,6 @@ struct pcpu_alloc_info { struct pcpu_group_info groups[0]; }; -typedef void * (*pcpu_fc_alloc_fn_t)(unsigned int, size_t, size_t); - -typedef void (*pcpu_fc_free_fn_t)(void *, size_t); - -typedef void (*pcpu_fc_populate_pte_fn_t)(long unsigned int); - -typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); - struct trace_event_raw_percpu_alloc_percpu { struct trace_entry ent; bool reserved; @@ -43066,13 +47979,6 @@ typedef void (*btf_trace_percpu_create_chunk)(void *, void *); typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); -enum pcpu_chunk_type { - PCPU_CHUNK_ROOT = 0, - PCPU_CHUNK_MEMCG = 1, - PCPU_NR_CHUNK_TYPES = 2, - PCPU_FAIL_ALLOC = 2, -}; - struct pcpu_block_md { int scan_hint; int scan_hint_start; @@ -43088,12 +47994,13 @@ struct pcpu_chunk { struct list_head list; int free_bytes; struct pcpu_block_md chunk_md; + long unsigned int *bound_map; void *base_addr; long unsigned int *alloc_map; - long unsigned int *bound_map; struct pcpu_block_md *md_blocks; void *data; bool immutable; + bool isolated; int start_offset; int end_offset; struct obj_cgroup **obj_cgroups; @@ -43101,6 +48008,13 @@ struct pcpu_chunk { int nr_populated; int nr_empty_pop_pages; long unsigned int populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct trace_event_raw_kmem_alloc { @@ -43124,13 +48038,21 @@ struct trace_event_raw_kmem_alloc_node { char __data[0]; }; -struct trace_event_raw_kmem_free { +struct trace_event_raw_kfree { struct trace_entry ent; long unsigned int call_site; const void *ptr; char __data[0]; }; +struct trace_event_raw_kmem_cache_free { + struct trace_entry ent; + long unsigned int call_site; + const void *ptr; + u32 __data_loc_name; + char __data[0]; +}; + struct trace_event_raw_mm_page_free { struct trace_entry ent; long unsigned int pfn; @@ -43193,7 +48115,11 @@ struct trace_event_data_offsets_kmem_alloc {}; struct trace_event_data_offsets_kmem_alloc_node {}; -struct trace_event_data_offsets_kmem_free {}; +struct trace_event_data_offsets_kfree {}; + +struct trace_event_data_offsets_kmem_cache_free { + u32 name; +}; struct trace_event_data_offsets_mm_page_free {}; @@ -43219,7 +48145,7 @@ typedef void (*btf_trace_kmem_cache_alloc_node)(void *, long unsigned int, const typedef void (*btf_trace_kfree)(void *, long unsigned int, const void *); -typedef void (*btf_trace_kmem_cache_free)(void *, long unsigned int, const void *); +typedef void (*btf_trace_kmem_cache_free)(void *, long unsigned int, const void *, const char *); typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); @@ -43244,7 +48170,7 @@ enum slab_state { }; struct kmalloc_info_struct { - const char *name[3]; + const char *name[4]; unsigned int size; }; @@ -43261,6 +48187,17 @@ struct slabinfo { unsigned int cache_order; }; +struct kmem_obj_info { + void *kp_ptr; + struct page *kp_page; + void *kp_objp; + long unsigned int kp_data_offset; + struct kmem_cache *kp_slab_cache; + void *kp_ret; + void *kp_stack[16]; + void *kp_free_stack[16]; +}; + enum pageblock_bits { PB_migrate = 0, PB_migrate_end = 2, @@ -43443,16 +48380,50 @@ struct follow_page_context { unsigned int page_mask; }; -typedef unsigned int pgtbl_mod_mask; - -struct zap_details { - struct address_space *check_mapping; - long unsigned int first_index; - long unsigned int last_index; - struct page *single_page; +struct trace_event_raw_mmap_lock_start_locking { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + char __data[0]; }; -typedef int (*pte_fn_t)(pte_t *, long unsigned int, void *); +struct trace_event_raw_mmap_lock_acquire_returned { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + bool success; + char __data[0]; +}; + +struct trace_event_raw_mmap_lock_released { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + char __data[0]; +}; + +struct trace_event_data_offsets_mmap_lock_start_locking { + u32 memcg_path; +}; + +struct trace_event_data_offsets_mmap_lock_acquire_returned { + u32 memcg_path; +}; + +struct trace_event_data_offsets_mmap_lock_released { + u32 memcg_path; +}; + +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); + +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); + +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); + +typedef unsigned int pgtbl_mod_mask; enum { SWP_USED = 1, @@ -43468,7 +48439,6 @@ enum { SWP_PAGE_DISCARD = 1024, SWP_STABLE_WRITES = 2048, SWP_SYNCHRONOUS_IO = 4096, - SWP_VALID = 8192, SWP_SCANNING = 16384, }; @@ -43531,6 +48501,13 @@ struct trace_event_data_offsets_vm_unmapped_area {}; typedef void (*btf_trace_vm_unmapped_area)(void *, long unsigned int, struct vm_unmapped_area_info *); +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, +}; + struct rmap_walk_control { void *arg; bool (*rmap_one)(struct page *, struct vm_area_struct *, long unsigned int, void *); @@ -43546,6 +48523,13 @@ struct page_referenced_arg { struct mem_cgroup *memcg; }; +struct make_exclusive_args { + struct mm_struct *mm; + long unsigned int address; + void *owner; + bool valid; +}; + struct vmap_area { long unsigned int va_start; long unsigned int va_end; @@ -43554,7 +48538,6 @@ struct vmap_area { union { long unsigned int subtree_max_size; struct vm_struct *vm; - struct llist_node purge_list; }; }; @@ -43602,8 +48585,21 @@ struct page_frag_cache { bool pfmemalloc; }; -enum zone_flags { - ZONE_BOOSTED_WATERMARK = 0, +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, +}; + +typedef int fpi_t; + +struct pagesets { + local_lock_t lock; +}; + +struct pcpu_drain { + struct zone *zone; + struct work_struct work; }; struct mminit_pfnnid_cache { @@ -43612,17 +48608,78 @@ struct mminit_pfnnid_cache { int last_nid; }; -struct migration_target_control { - int nid; - nodemask_t *nmask; - gfp_t gfp_mask; +enum { + MMOP_OFFLINE = 0, + MMOP_ONLINE = 1, + MMOP_ONLINE_KERNEL = 2, + MMOP_ONLINE_MOVABLE = 3, }; -typedef int fpi_t; +typedef int mhp_t; -struct pcpu_drain { - struct zone *zone; - struct work_struct work; +typedef void (*online_page_callback_t)(struct page *, unsigned int); + +struct memory_group { + int nid; + struct list_head memory_blocks; + long unsigned int present_kernel_pages; + long unsigned int present_movable_pages; + bool is_dynamic; + union { + struct { + long unsigned int max_pages; + } s; + struct { + long unsigned int unit_pages; + } d; + }; +}; + +struct memory_block { + long unsigned int start_section_nr; + long unsigned int state; + int online_type; + int nid; + struct device dev; + long unsigned int nr_vmemmap_pages; + struct memory_group *group; + struct list_head group_next; +}; + +struct memory_notify { + long unsigned int start_pfn; + long unsigned int nr_pages; + int status_change_nid_normal; + int status_change_nid_high; + int status_change_nid; +}; + +typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *); + +typedef int (*walk_memory_groups_func_t)(struct memory_group *, void *); + +enum hugetlb_page_flags { + HPG_restore_reserve = 0, + HPG_migratable = 1, + HPG_temporary = 2, + HPG_freed = 3, + HPG_vmemmap_optimized = 4, + __NR_HPAGEFLAGS = 5, +}; + +enum { + ONLINE_POLICY_CONTIG_ZONES = 0, + ONLINE_POLICY_AUTO_MOVABLE = 1, +}; + +struct auto_movable_stats { + long unsigned int kernel_early_pages; + long unsigned int movable_pages; +}; + +struct auto_movable_group_stats { + long unsigned int movable_pages; + long unsigned int req_kernel_early_pages; }; struct madvise_walk_private { @@ -43637,6 +48694,12 @@ struct vma_swap_readahead { pte_t *ptes; }; +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, +}; + union swap_header { struct { char reserved[4086]; @@ -43681,8 +48744,21 @@ struct frontswap_ops { struct frontswap_ops *next; }; -struct crypto_comp { - struct crypto_tfm base; +struct crypto_async_request; + +typedef void (*crypto_completion_t)(struct crypto_async_request *, int); + +struct crypto_async_request { + struct list_head list; + crypto_completion_t complete; + void *data; + struct crypto_tfm *tfm; + u32 flags; +}; + +struct crypto_wait { + struct completion completion; + int err; }; struct zpool; @@ -43698,9 +48774,35 @@ enum zpool_mapmode { ZPOOL_MM_DEFAULT = 0, }; +struct acomp_req { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int slen; + unsigned int dlen; + u32 flags; + void *__ctx[0]; +}; + +struct crypto_acomp { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_acomp_ctx { + struct crypto_acomp *acomp; + struct acomp_req *req; + struct crypto_wait wait; + u8 *dstmem; + struct mutex *mutex; +}; + struct zswap_pool { struct zpool *zpool; - struct crypto_comp **tfm; + struct crypto_acomp_ctx *acomp_ctx; struct kref kref; struct list_head list; struct work_struct release_work; @@ -43755,11 +48857,27 @@ struct dma_page { unsigned int offset; }; +typedef void (*node_registration_func_t)(struct node___2 *); + enum string_size_units { STRING_UNITS_10 = 0, STRING_UNITS_2 = 1, }; +enum mcopy_atomic_mode { + MCOPY_ATOMIC_NORMAL = 0, + MCOPY_ATOMIC_ZEROPAGE = 1, + MCOPY_ATOMIC_CONTINUE = 2, +}; + +enum { + SUBPAGE_INDEX_SUBPOOL = 1, + SUBPAGE_INDEX_CGROUP = 2, + SUBPAGE_INDEX_CGROUP_RSVD = 3, + __MAX_CGROUP_SUBPAGE_INDEX = 3, + __NR_USED_SUBPAGE = 4, +}; + struct resv_map { struct kref refs; spinlock_t lock; @@ -43805,6 +48923,7 @@ enum vma_resv_mode { VMA_COMMIT_RESV = 1, VMA_END_RESV = 2, VMA_ADD_RESV = 3, + VMA_DEL_RESV = 4, }; struct node_hstate { @@ -43838,6 +48957,14 @@ struct queue_pages { struct vm_area_struct *first; }; +struct vmemmap_remap_walk { + void (*remap_pte)(pte_t *, long unsigned int, struct vmemmap_remap_walk *); + long unsigned int nr_walked; + struct page *reuse_page; + long unsigned int reuse_addr; + struct list_head *vmemmap_pages; +}; + struct mmu_notifier_subscriptions { struct hlist_head list; bool has_itree; @@ -43870,14 +48997,6 @@ struct mmu_interval_notifier { long unsigned int invalidate_seq; }; -struct memory_notify { - long unsigned int start_pfn; - long unsigned int nr_pages; - int status_change_nid_normal; - int status_change_nid_high; - int status_change_nid; -}; - struct rmap_item; struct mm_slot { @@ -43983,6 +49102,12 @@ enum track_item { TRACK_FREE = 1, }; +struct slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; +}; + struct detached_freelist { struct page *page; void *tail; @@ -44007,6 +49132,7 @@ struct loc_track { long unsigned int max; long unsigned int count; struct location *loc; + loff_t idx; }; enum slab_stat_type { @@ -44036,25 +49162,61 @@ enum slab_modes { M_FREE = 3, }; -enum { - MMOP_OFFLINE = 0, - MMOP_ONLINE = 1, - MMOP_ONLINE_KERNEL = 2, - MMOP_ONLINE_MOVABLE = 3, +struct kcsan_scoped_access {}; + +enum kfence_object_state { + KFENCE_OBJECT_UNUSED = 0, + KFENCE_OBJECT_ALLOCATED = 1, + KFENCE_OBJECT_FREED = 2, }; -typedef int mhp_t; - -typedef void (*online_page_callback_t)(struct page *, unsigned int); - -struct memory_block { - long unsigned int start_section_nr; - long unsigned int state; - int online_type; - int nid; - struct device dev; +struct kfence_track { + pid_t pid; + int cpu; + u64 ts_nsec; + int num_stack_entries; + long unsigned int stack_entries[64]; }; +struct kfence_metadata { + struct list_head list; + struct callback_head callback_head; + raw_spinlock_t lock; + enum kfence_object_state state; + long unsigned int addr; + size_t size; + struct kmem_cache *cache; + long unsigned int unprotected_page; + struct kfence_track alloc_track; + struct kfence_track free_track; + u32 alloc_stack_hash; + struct obj_cgroup *objcg; +}; + +enum kfence_error_type { + KFENCE_ERROR_OOB = 0, + KFENCE_ERROR_UAF = 1, + KFENCE_ERROR_CORRUPTION = 2, + KFENCE_ERROR_INVALID = 3, + KFENCE_ERROR_INVALID_FREE = 4, +}; + +enum kfence_counter_id { + KFENCE_COUNTER_ALLOCATED = 0, + KFENCE_COUNTER_ALLOCS = 1, + KFENCE_COUNTER_FREES = 2, + KFENCE_COUNTER_ZOMBIES = 3, + KFENCE_COUNTER_BUGS = 4, + KFENCE_COUNTER_SKIP_INCOMPAT = 5, + KFENCE_COUNTER_SKIP_CAPACITY = 6, + KFENCE_COUNTER_SKIP_COVERED = 7, + KFENCE_COUNTER_COUNT = 8, +}; + +typedef __kernel_long_t __kernel_ptrdiff_t; + +typedef __kernel_ptrdiff_t ptrdiff_t; + struct buffer_head; typedef void bh_end_io_t(struct buffer_head *, int); @@ -44075,9 +49237,22 @@ struct buffer_head { spinlock_t b_uptodate_lock; }; -typedef struct page *new_page_t(struct page *, long unsigned int); +enum migrate_vma_direction { + MIGRATE_VMA_SELECT_SYSTEM = 1, + MIGRATE_VMA_SELECT_DEVICE_PRIVATE = 2, +}; -typedef void free_page_t(struct page *, long unsigned int); +struct migrate_vma { + struct vm_area_struct *vma; + long unsigned int *dst; + long unsigned int *src; + long unsigned int cpages; + long unsigned int npages; + long unsigned int start; + long unsigned int end; + void *pgmap_owner; + long unsigned int flags; +}; enum bh_state_bits { BH_Uptodate = 0, @@ -44111,10 +49286,21 @@ struct trace_event_raw_mm_migrate_pages { char __data[0]; }; +struct trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; +}; + struct trace_event_data_offsets_mm_migrate_pages {}; +struct trace_event_data_offsets_mm_migrate_pages_start {}; + typedef void (*btf_trace_mm_migrate_pages)(void *, long unsigned int, long unsigned int, long unsigned int, long unsigned int, long unsigned int, enum migrate_mode, int); +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); + enum scan_result { SCAN_FAIL = 0, SCAN_SUCCEED = 1, @@ -44214,11 +49400,6 @@ struct khugepaged_scan { long unsigned int address; }; -struct mem_cgroup_reclaim_cookie { - pg_data_t *pgdat; - unsigned int generation; -}; - struct mem_cgroup_tree_per_node { struct rb_root rb_root; struct rb_node *rb_rightmost; @@ -44269,7 +49450,6 @@ enum res_type { struct memory_stat { const char *name; - unsigned int ratio; unsigned int idx; }; @@ -44285,11 +49465,19 @@ enum oom_status { OOM_SKIPPED = 3, }; +struct obj_stock { + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; +}; + struct memcg_stock_pcp { struct mem_cgroup *cached; unsigned int nr_pages; - struct obj_cgroup *cached_objcg; - unsigned int nr_bytes; + struct obj_stock task_obj; + struct obj_stock irq_obj; struct work_struct work; long unsigned int flags; }; @@ -44316,7 +49504,7 @@ enum mc_target_type { struct uncharge_gather { struct mem_cgroup *memcg; - long unsigned int nr_pages; + long unsigned int nr_memory; long unsigned int pgpgout; long unsigned int nr_kmem; struct page *dummy_page; @@ -44419,11 +49607,17 @@ struct to_kill { short int size_shift; }; +struct hwp_walk { + struct to_kill tk; + long unsigned int pfn; + int flags; +}; + struct page_state { long unsigned int mask; long unsigned int res; enum mf_action_page_type type; - int (*action)(struct page *, long unsigned int); + int (*action)(struct page_state *, struct page *); }; struct memory_failure_entry { @@ -44447,6 +49641,24 @@ struct memory_failure_cpu { struct work_struct work; }; +struct cleancache_filekey { + union { + ino_t ino; + __u32 fh[6]; + u32 key[6]; + } u; +}; + +struct cleancache_ops { + int (*init_fs)(size_t); + int (*init_shared_fs)(uuid_t *, size_t); + int (*get_page)(int, struct cleancache_filekey, long unsigned int, struct page *); + void (*put_page)(int, struct cleancache_filekey, long unsigned int, struct page *); + void (*invalidate_page)(int, struct cleancache_filekey, long unsigned int); + void (*invalidate_inode)(int, struct cleancache_filekey); + void (*invalidate_fs)(int); +}; + struct trace_event_raw_test_pages_isolated { struct trace_entry ent; long unsigned int start_pfn; @@ -44466,6 +49678,7 @@ struct zpool { void *pool; const struct zpool_ops *ops; bool evictable; + bool can_sleep_mapped; struct list_head list; }; @@ -44480,6 +49693,7 @@ struct zpool_driver { int (*malloc)(void *, size_t, gfp_t, long unsigned int *); void (*free)(void *, long unsigned int); int (*shrink)(void *, unsigned int, unsigned int *); + bool sleep_mapped; void * (*map)(void *, long unsigned int, enum zpool_mapmode); void (*unmap)(void *, long unsigned int); u64 (*total_size)(void *); @@ -44493,8 +49707,10 @@ struct zbud_ops { struct zbud_pool { spinlock_t lock; - struct list_head unbuddied[63]; - struct list_head buddied; + union { + struct list_head buddied; + struct list_head unbuddied[63]; + }; struct list_head lru; u64 pages_nr; const struct zbud_ops *ops; @@ -44515,6 +49731,96 @@ enum buddy { LAST = 1, }; +enum zs_mapmode { + ZS_MM_RW = 0, + ZS_MM_RO = 1, + ZS_MM_WO = 2, +}; + +struct zs_pool_stats { + atomic_long_t pages_compacted; +}; + +enum fullness_group { + ZS_EMPTY = 0, + ZS_ALMOST_EMPTY = 1, + ZS_ALMOST_FULL = 2, + ZS_FULL = 3, + NR_ZS_FULLNESS = 4, +}; + +enum zs_stat_type { + CLASS_EMPTY = 0, + CLASS_ALMOST_EMPTY = 1, + CLASS_ALMOST_FULL = 2, + CLASS_FULL = 3, + OBJ_ALLOCATED = 4, + OBJ_USED = 5, + NR_ZS_STAT_TYPE = 6, +}; + +struct zs_size_stat { + long unsigned int objs[6]; +}; + +struct size_class { + spinlock_t lock; + struct list_head fullness_list[4]; + int size; + int objs_per_zspage; + int pages_per_zspage; + unsigned int index; + struct zs_size_stat stats; +}; + +struct link_free { + union { + long unsigned int next; + long unsigned int handle; + }; +}; + +struct zs_pool { + const char *name; + struct size_class *size_class[255]; + struct kmem_cache *handle_cachep; + struct kmem_cache *zspage_cachep; + atomic_long_t pages_allocated; + struct zs_pool_stats stats; + struct shrinker shrinker; + struct inode *inode; + struct work_struct free_work; + struct wait_queue_head migration_wait; + atomic_long_t isolated_pages; + bool destroying; +}; + +struct zspage { + struct { + unsigned int fullness: 2; + unsigned int class: 9; + unsigned int isolated: 3; + unsigned int magic: 8; + }; + unsigned int inuse; + unsigned int freeobj; + struct page *first_page; + struct list_head list; + rwlock_t lock; +}; + +struct mapping_area { + char *vm_buf; + char *vm_addr; + enum zs_mapmode vm_mm; +}; + +struct zs_compact_control { + struct page *s_page; + struct page *d_page; + int obj_idx; +}; + struct balloon_dev_info { long unsigned int isolated_pages; spinlock_t pages_lock; @@ -44523,21 +49829,6 @@ struct balloon_dev_info { struct inode *inode; }; -struct page_ext_operations { - size_t offset; - size_t size; - bool (*need)(); - void (*init)(); -}; - -struct frame_vector { - unsigned int nr_allocated; - unsigned int nr_frames; - bool got_ref; - bool is_pfns; - void *ptrs[0]; -}; - enum { BAD_STACK = 4294967295, NOT_STACK = 0, @@ -44602,6 +49893,7 @@ struct page_reporting_dev_info { int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); struct delayed_work work; atomic_t state; + unsigned int order; }; enum { @@ -44610,6 +49902,10 @@ enum { PAGE_REPORTING_ACTIVE = 2, }; +typedef __kernel_long_t __kernel_off_t; + +typedef __kernel_off_t off_t; + struct open_how { __u64 flags; __u64 mode; @@ -44626,10 +49922,6 @@ struct open_flags { int lookup_flags; }; -typedef __kernel_long_t __kernel_off_t; - -typedef __kernel_off_t off_t; - typedef __kernel_rwf_t rwf_t; struct fscrypt_policy_v1 { @@ -44662,7 +49954,7 @@ enum vfs_get_super_keying { vfs_get_independent_super = 3, }; -struct kobj_map; +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); struct char_device_struct { struct char_device_struct *next; @@ -44743,7 +50035,6 @@ struct statx { struct mount; struct mnt_namespace { - atomic_t count; struct ns_common ns; struct mount *root; struct list_head list; @@ -44757,14 +50048,14 @@ struct mnt_namespace { unsigned int pending_mounts; }; +typedef u16 compat_mode_t; + typedef u32 compat_ino_t; typedef u16 __compat_uid_t; typedef u16 __compat_gid_t; -typedef u16 compat_mode_t; - typedef u16 compat_nlink_t; struct compat_stat { @@ -44859,13 +50150,6 @@ enum inode_i_mutex_lock_class { I_MUTEX_PARENT2 = 5, }; -struct pseudo_fs_context { - const struct super_operations *ops; - const struct xattr_handler **xattr; - const struct dentry_operations *dops; - long unsigned int magic; -}; - struct name_snapshot { struct qstr name; unsigned char inline_name[32]; @@ -44884,6 +50168,7 @@ struct nameidata { struct path root; struct inode *inode; unsigned int flags; + unsigned int state; unsigned int seq; unsigned int m_seq; unsigned int r_seq; @@ -44900,6 +50185,17 @@ struct nameidata { umode_t dir_mode; }; +struct renamedata { + struct user_namespace *old_mnt_userns; + struct inode *old_dir; + struct dentry *old_dentry; + struct user_namespace *new_mnt_userns; + struct inode *new_dir; + struct dentry *new_dentry; + struct inode **delegated_inode; + unsigned int flags; +}; + enum { LAST_NORM = 0, LAST_ROOT = 1, @@ -44971,7 +50267,14 @@ struct file_dedupe_range { struct file_dedupe_range_info info[0]; }; -typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; +}; struct fiemap_extent; @@ -44982,6 +50285,17 @@ struct fiemap_extent_info { struct fiemap_extent *fi_extents_start; }; +struct fileattr { + u32 flags; + u32 fsx_xflags; + u32 fsx_extsize; + u32 fsx_nextents; + u32 fsx_projid; + u32 fsx_cowextsize; + bool flags_valid: 1; + bool fsx_valid: 1; +}; + struct space_resv { __s16 l_type; __s16 l_whence; @@ -45198,15 +50512,6 @@ struct select_data { struct list_head dispose; }; -struct fsxattr { - __u32 fsx_xflags; - __u32 fsx_extsize; - __u32 fsx_nextents; - __u32 fsx_projid; - __u32 fsx_cowextsize; - unsigned char fsx_pad[8]; -}; - enum file_time_flags { S_ATIME = 1, S_MTIME = 2, @@ -45214,6 +50519,13 @@ enum file_time_flags { S_VERSION = 8, }; +struct mount_attr { + __u64 attr_set; + __u64 attr_clr; + __u64 propagation; + __u64 userns_fd; +}; + struct proc_mounts { struct mnt_namespace *ns; struct path root; @@ -45221,12 +50533,41 @@ struct proc_mounts { struct mount cursor; }; +struct mount_kattr { + unsigned int attr_set; + unsigned int attr_clr; + unsigned int propagation; + unsigned int lookup_flags; + bool recurse; + struct user_namespace *mnt_userns; +}; + enum umount_tree_flags { UMOUNT_SYNC = 1, UMOUNT_PROPAGATE = 2, UMOUNT_CONNECTED = 4, }; +struct xattr_name { + char name[256]; +}; + +struct xattr_ctx { + union { + const void *cvalue; + void *value; + }; + void *kvalue; + size_t size; + struct xattr_name *kname; + unsigned int flags; +}; + +struct unicode_map { + const char *charset; + int version; +}; + struct simple_transaction_argresp { ssize_t size; char data[0]; @@ -45575,10 +50916,9 @@ typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); struct inode_switch_wbs_context { - struct inode *inode; + struct rcu_work work; struct bdi_writeback *new_wb; - struct callback_head callback_head; - struct work_struct work; + struct inode *inodes[0]; }; struct splice_desc { @@ -45610,11 +50950,16 @@ struct utimbuf { __kernel_old_time_t modtime; }; +struct prepend_buffer { + char *buf; + int len; +}; + typedef int __kernel_daddr_t; struct ustat { __kernel_daddr_t f_tfree; - __kernel_ino_t f_tinode; + long unsigned int f_tinode; char f_fname[6]; char f_fpack[6]; }; @@ -45690,8 +51035,6 @@ struct compat_statfs64 { __u32 f_spare[4]; } __attribute__((packed)); -typedef struct ns_common *ns_get_path_helper_t(void *); - struct ns_get_path_task_args { const struct proc_ns_operations *ns_ops; struct task_struct *task; @@ -45720,6 +51063,8 @@ enum fsconfig_command { FSCONFIG_CMD_RECONFIGURE = 7, }; +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); + struct dax_device; struct iomap_page_ops; @@ -45738,8 +51083,8 @@ struct iomap { }; struct iomap_page_ops { - int (*page_prepare)(struct inode *, loff_t, unsigned int, struct iomap *); - void (*page_done)(struct inode *, loff_t, unsigned int, struct page *, struct iomap *); + int (*page_prepare)(struct inode *, loff_t, unsigned int); + void (*page_done)(struct inode *, loff_t, unsigned int, struct page *); }; struct decrypt_bh_ctx { @@ -45756,40 +51101,6 @@ struct bh_accounting { int ratelimit; }; -enum { - DISK_EVENT_MEDIA_CHANGE = 1, - DISK_EVENT_EJECT_REQUEST = 2, -}; - -enum { - BIOSET_NEED_BVECS = 1, - BIOSET_NEED_RESCUER = 2, -}; - -struct bdev_inode { - struct block_device bdev; - struct inode vfs_inode; -}; - -struct blkdev_dio { - union { - struct kiocb *iocb; - struct task_struct *waiter; - }; - size_t size; - atomic_t ref; - bool multi_bio: 1; - bool should_dirty: 1; - bool is_sync: 1; - struct bio bio; -}; - -struct bd_holder_disk { - struct list_head list; - struct gendisk *disk; - int refcnt; -}; - typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); typedef void dio_submit_t(struct bio *, struct inode *, loff_t); @@ -45940,6 +51251,12 @@ struct proc_fs_opts { const char *str; }; +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; +}; + struct file_handle { __u32 handle_bytes; int handle_type; @@ -45998,9 +51315,11 @@ struct fanotify_fh { struct fanotify_info { u8 dir_fh_totlen; + u8 dir2_fh_totlen; u8 file_fh_totlen; u8 name_len; - u8 pad; + u8 name2_len; + u8 pad[3]; unsigned char buf[0]; }; @@ -46010,20 +51329,28 @@ enum fanotify_event_type { FANOTIFY_EVENT_TYPE_PATH = 2, FANOTIFY_EVENT_TYPE_PATH_PERM = 3, FANOTIFY_EVENT_TYPE_OVERFLOW = 4, + FANOTIFY_EVENT_TYPE_FS_ERROR = 5, + __FANOTIFY_EVENT_TYPE_NUM = 6, }; struct fanotify_event { struct fsnotify_event fse; + struct hlist_node merge_list; u32 mask; - enum fanotify_event_type type; + struct { + unsigned int type: 3; + unsigned int hash: 29; + }; struct pid *pid; }; struct fanotify_fid_event { struct fanotify_event fae; __kernel_fsid_t fsid; - struct fanotify_fh object_fh; - unsigned char _inline_fh_buf[12]; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[12]; + }; }; struct fanotify_name_event { @@ -46032,6 +51359,17 @@ struct fanotify_name_event { struct fanotify_info info; }; +struct fanotify_error_event { + struct fanotify_event fae; + s32 error; + u32 err_count; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[128]; + }; +}; + struct fanotify_path_event { struct fanotify_event fae; struct path path; @@ -46067,6 +51405,17 @@ struct fanotify_event_info_fid { unsigned char handle[0]; }; +struct fanotify_event_info_pidfd { + struct fanotify_event_info_header hdr; + __s32 pidfd; +}; + +struct fanotify_event_info_error { + struct fanotify_event_info_header hdr; + __s32 error; + __u32 error_count; +}; + struct fanotify_response { __s32 fd; __u32 response; @@ -46082,15 +51431,13 @@ struct epoll_filefd { int fd; } __attribute__((packed)); -struct nested_call_node { - struct list_head llink; - void *cookie; - void *ctx; -}; +struct epitem; -struct nested_calls { - struct list_head tasks_call_list; - spinlock_t lock; +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; }; struct eventpoll; @@ -46103,10 +51450,9 @@ struct epitem { struct list_head rdllink; struct epitem *next; struct epoll_filefd ffd; - int nwait; - struct list_head pwqlist; + struct eppoll_entry *pwqlist; struct eventpoll *ep; - struct list_head fllink; + struct hlist_node fllink; struct wakeup_source *ws; struct epoll_event event; }; @@ -46123,25 +51469,18 @@ struct eventpoll { struct user_struct *user; struct file *file; u64 gen; + struct hlist_head refs; unsigned int napi_id; }; -struct eppoll_entry { - struct list_head llink; - struct epitem *base; - wait_queue_entry_t wait; - wait_queue_head_t *whead; -}; - struct ep_pqueue { poll_table pt; struct epitem *epi; }; -struct ep_send_events_data { - int maxevents; - struct epoll_event *events; - int res; +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; }; struct signalfd_siginfo { @@ -46209,7 +51548,7 @@ struct userfaultfd_ctx { unsigned int flags; unsigned int features; bool released; - bool mmap_changing; + atomic_t mmap_changing; struct mm_struct *mm; }; @@ -46282,6 +51621,12 @@ struct uffdio_writeprotect { __u64 mode; }; +struct uffdio_continue { + struct uffdio_range range; + __u64 mode; + __s64 mapped; +}; + struct userfaultfd_fork_ctx { struct userfaultfd_ctx *orig; struct userfaultfd_ctx *new; @@ -46493,1130 +51838,21 @@ struct __compat_aio_sigset { compat_size_t sigsetsize; }; -struct xa_limit { - u32 max; - u32 min; -}; - -enum { - PERCPU_REF_INIT_ATOMIC = 1, - PERCPU_REF_INIT_DEAD = 2, - PERCPU_REF_ALLOW_REINIT = 4, -}; - -struct user_msghdr { - void *msg_name; - int msg_namelen; - struct iovec *msg_iov; - __kernel_size_t msg_iovlen; - void *msg_control; - __kernel_size_t msg_controllen; - unsigned int msg_flags; -}; - -typedef s32 compat_ssize_t; - -struct compat_msghdr { - compat_uptr_t msg_name; - compat_int_t msg_namelen; - compat_uptr_t msg_iov; - compat_size_t msg_iovlen; - compat_uptr_t msg_control; - compat_size_t msg_controllen; - compat_uint_t msg_flags; -}; - -struct scm_fp_list { - short int count; - short int max; - struct user_struct *user; - struct file *fp[253]; -}; - -struct unix_skb_parms { - struct pid *pid; - kuid_t uid; - kgid_t gid; - struct scm_fp_list *fp; - u32 secid; - u32 consumed; -}; - -struct trace_event_raw_io_uring_create { - struct trace_entry ent; - int fd; - void *ctx; - u32 sq_entries; - u32 cq_entries; - u32 flags; - char __data[0]; -}; - -struct trace_event_raw_io_uring_register { - struct trace_entry ent; - void *ctx; - unsigned int opcode; - unsigned int nr_files; - unsigned int nr_bufs; - bool eventfd; - long int ret; - char __data[0]; -}; - -struct trace_event_raw_io_uring_file_get { - struct trace_entry ent; - void *ctx; - int fd; - char __data[0]; -}; - -struct io_wq_work; - -struct trace_event_raw_io_uring_queue_async_work { - struct trace_entry ent; - void *ctx; - int rw; - void *req; - struct io_wq_work *work; - unsigned int flags; - char __data[0]; -}; - -struct io_wq_work_node { - struct io_wq_work_node *next; -}; - -struct io_wq_work { - struct io_wq_work_node list; - struct io_identity *identity; - unsigned int flags; -}; - -struct trace_event_raw_io_uring_defer { - struct trace_entry ent; - void *ctx; - void *req; - long long unsigned int data; - char __data[0]; -}; - -struct trace_event_raw_io_uring_link { - struct trace_entry ent; - void *ctx; - void *req; - void *target_req; - char __data[0]; -}; - -struct trace_event_raw_io_uring_cqring_wait { - struct trace_entry ent; - void *ctx; - int min_events; - char __data[0]; -}; - -struct trace_event_raw_io_uring_fail_link { - struct trace_entry ent; - void *req; - void *link; - char __data[0]; -}; - -struct trace_event_raw_io_uring_complete { - struct trace_entry ent; - void *ctx; - u64 user_data; - long int res; - char __data[0]; -}; - -struct trace_event_raw_io_uring_submit_sqe { - struct trace_entry ent; - void *ctx; - u8 opcode; - u64 user_data; - bool force_nonblock; - bool sq_thread; - char __data[0]; -}; - -struct trace_event_raw_io_uring_poll_arm { - struct trace_entry ent; - void *ctx; - u8 opcode; - u64 user_data; - int mask; - int events; - char __data[0]; -}; - -struct trace_event_raw_io_uring_poll_wake { - struct trace_entry ent; - void *ctx; - u8 opcode; - u64 user_data; - int mask; - char __data[0]; -}; - -struct trace_event_raw_io_uring_task_add { - struct trace_entry ent; - void *ctx; - u8 opcode; - u64 user_data; - int mask; - char __data[0]; -}; - -struct trace_event_raw_io_uring_task_run { - struct trace_entry ent; - void *ctx; - u8 opcode; - u64 user_data; - char __data[0]; -}; - -struct trace_event_data_offsets_io_uring_create {}; - -struct trace_event_data_offsets_io_uring_register {}; - -struct trace_event_data_offsets_io_uring_file_get {}; - -struct trace_event_data_offsets_io_uring_queue_async_work {}; - -struct trace_event_data_offsets_io_uring_defer {}; - -struct trace_event_data_offsets_io_uring_link {}; - -struct trace_event_data_offsets_io_uring_cqring_wait {}; - -struct trace_event_data_offsets_io_uring_fail_link {}; - -struct trace_event_data_offsets_io_uring_complete {}; - -struct trace_event_data_offsets_io_uring_submit_sqe {}; - -struct trace_event_data_offsets_io_uring_poll_arm {}; - -struct trace_event_data_offsets_io_uring_poll_wake {}; - -struct trace_event_data_offsets_io_uring_task_add {}; - -struct trace_event_data_offsets_io_uring_task_run {}; - -typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); - -typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, bool, long int); - -typedef void (*btf_trace_io_uring_file_get)(void *, void *, int); - -typedef void (*btf_trace_io_uring_queue_async_work)(void *, void *, int, void *, struct io_wq_work *, unsigned int); - -typedef void (*btf_trace_io_uring_defer)(void *, void *, void *, long long unsigned int); - -typedef void (*btf_trace_io_uring_link)(void *, void *, void *, void *); - -typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); - -typedef void (*btf_trace_io_uring_fail_link)(void *, void *, void *); - -typedef void (*btf_trace_io_uring_complete)(void *, void *, u64, long int); - -typedef void (*btf_trace_io_uring_submit_sqe)(void *, void *, u8, u64, bool, bool); - -typedef void (*btf_trace_io_uring_poll_arm)(void *, void *, u8, u64, int, int); - -typedef void (*btf_trace_io_uring_poll_wake)(void *, void *, u8, u64, int); - -typedef void (*btf_trace_io_uring_task_add)(void *, void *, u8, u64, int); - -typedef void (*btf_trace_io_uring_task_run)(void *, void *, u8, u64); - -struct io_uring_sqe { - __u8 opcode; - __u8 flags; - __u16 ioprio; - __s32 fd; - union { - __u64 off; - __u64 addr2; - }; - union { - __u64 addr; - __u64 splice_off_in; - }; - __u32 len; - union { - __kernel_rwf_t rw_flags; - __u32 fsync_flags; - __u16 poll_events; - __u32 poll32_events; - __u32 sync_range_flags; - __u32 msg_flags; - __u32 timeout_flags; - __u32 accept_flags; - __u32 cancel_flags; - __u32 open_flags; - __u32 statx_flags; - __u32 fadvise_advice; - __u32 splice_flags; - }; - __u64 user_data; - union { - struct { - union { - __u16 buf_index; - __u16 buf_group; - }; - __u16 personality; - __s32 splice_fd_in; - }; - __u64 __pad2[3]; - }; -}; - -enum { - IOSQE_FIXED_FILE_BIT = 0, - IOSQE_IO_DRAIN_BIT = 1, - IOSQE_IO_LINK_BIT = 2, - IOSQE_IO_HARDLINK_BIT = 3, - IOSQE_ASYNC_BIT = 4, - IOSQE_BUFFER_SELECT_BIT = 5, -}; - -enum { - IORING_OP_NOP = 0, - IORING_OP_READV = 1, - IORING_OP_WRITEV = 2, - IORING_OP_FSYNC = 3, - IORING_OP_READ_FIXED = 4, - IORING_OP_WRITE_FIXED = 5, - IORING_OP_POLL_ADD = 6, - IORING_OP_POLL_REMOVE = 7, - IORING_OP_SYNC_FILE_RANGE = 8, - IORING_OP_SENDMSG = 9, - IORING_OP_RECVMSG = 10, - IORING_OP_TIMEOUT = 11, - IORING_OP_TIMEOUT_REMOVE = 12, - IORING_OP_ACCEPT = 13, - IORING_OP_ASYNC_CANCEL = 14, - IORING_OP_LINK_TIMEOUT = 15, - IORING_OP_CONNECT = 16, - IORING_OP_FALLOCATE = 17, - IORING_OP_OPENAT = 18, - IORING_OP_CLOSE = 19, - IORING_OP_FILES_UPDATE = 20, - IORING_OP_STATX = 21, - IORING_OP_READ = 22, - IORING_OP_WRITE = 23, - IORING_OP_FADVISE = 24, - IORING_OP_MADVISE = 25, - IORING_OP_SEND = 26, - IORING_OP_RECV = 27, - IORING_OP_OPENAT2 = 28, - IORING_OP_EPOLL_CTL = 29, - IORING_OP_SPLICE = 30, - IORING_OP_PROVIDE_BUFFERS = 31, - IORING_OP_REMOVE_BUFFERS = 32, - IORING_OP_TEE = 33, - IORING_OP_LAST = 34, -}; - -struct io_uring_cqe { - __u64 user_data; - __s32 res; - __u32 flags; -}; - -enum { - IORING_CQE_BUFFER_SHIFT = 16, -}; - -struct io_sqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 flags; - __u32 dropped; - __u32 array; - __u32 resv1; - __u64 resv2; -}; - -struct io_cqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 overflow; - __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 resv2; -}; - -struct io_uring_params { - __u32 sq_entries; - __u32 cq_entries; - __u32 flags; - __u32 sq_thread_cpu; - __u32 sq_thread_idle; - __u32 features; - __u32 wq_fd; - __u32 resv[3]; - struct io_sqring_offsets sq_off; - struct io_cqring_offsets cq_off; -}; - -enum { - IORING_REGISTER_BUFFERS = 0, - IORING_UNREGISTER_BUFFERS = 1, - IORING_REGISTER_FILES = 2, - IORING_UNREGISTER_FILES = 3, - IORING_REGISTER_EVENTFD = 4, - IORING_UNREGISTER_EVENTFD = 5, - IORING_REGISTER_FILES_UPDATE = 6, - IORING_REGISTER_EVENTFD_ASYNC = 7, - IORING_REGISTER_PROBE = 8, - IORING_REGISTER_PERSONALITY = 9, - IORING_UNREGISTER_PERSONALITY = 10, - IORING_REGISTER_RESTRICTIONS = 11, - IORING_REGISTER_ENABLE_RINGS = 12, - IORING_REGISTER_LAST = 13, -}; - -struct io_uring_files_update { - __u32 offset; - __u32 resv; - __u64 fds; -}; - -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; - __u32 resv2; -}; - -struct io_uring_probe { - __u8 last_op; - __u8 ops_len; - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; -}; - -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; - __u8 sqe_op; - __u8 sqe_flags; - }; - __u8 resv; - __u32 resv2[3]; -}; - -enum { - IORING_RESTRICTION_REGISTER_OP = 0, - IORING_RESTRICTION_SQE_OP = 1, - IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, - IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, - IORING_RESTRICTION_LAST = 4, -}; - -enum { - IO_WQ_WORK_CANCEL = 1, - IO_WQ_WORK_HASHED = 2, - IO_WQ_WORK_UNBOUND = 4, - IO_WQ_WORK_NO_CANCEL = 8, - IO_WQ_WORK_CONCURRENT = 16, - IO_WQ_WORK_FILES = 32, - IO_WQ_WORK_FS = 64, - IO_WQ_WORK_MM = 128, - IO_WQ_WORK_CREDS = 256, - IO_WQ_WORK_BLKCG = 512, - IO_WQ_WORK_FSIZE = 1024, - IO_WQ_HASH_SHIFT = 24, -}; - -enum io_wq_cancel { - IO_WQ_CANCEL_OK = 0, - IO_WQ_CANCEL_RUNNING = 1, - IO_WQ_CANCEL_NOTFOUND = 2, -}; - -typedef void free_work_fn(struct io_wq_work *); - -typedef struct io_wq_work *io_wq_work_fn(struct io_wq_work *); - -struct io_wq_data { - struct user_struct *user; - io_wq_work_fn *do_work; - free_work_fn *free_work; -}; - -struct io_uring { - u32 head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 tail; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct io_rings { - struct io_uring sq; - struct io_uring cq; - u32 sq_ring_mask; - u32 cq_ring_mask; - u32 sq_ring_entries; - u32 cq_ring_entries; - u32 sq_dropped; - u32 sq_flags; - u32 cq_flags; - u32 cq_overflow; - long: 64; - long: 64; - long: 64; - long: 64; - struct io_uring_cqe cqes[0]; -}; - -struct io_mapped_ubuf { - u64 ubuf; - size_t len; - struct bio_vec *bvec; - unsigned int nr_bvecs; - long unsigned int acct_pages; -}; - -struct fixed_file_table { - struct file **files; -}; - -struct fixed_file_data; - -struct fixed_file_ref_node { - struct percpu_ref refs; - struct list_head node; - struct list_head file_list; - struct fixed_file_data *file_data; - struct llist_node llist; - bool done; -}; - -struct io_ring_ctx; - -struct fixed_file_data { - struct fixed_file_table *table; - struct io_ring_ctx *ctx; - struct fixed_file_ref_node *node; - struct percpu_ref refs; - struct completion done; - struct list_head ref_list; - spinlock_t lock; -}; - -struct io_wq; - -struct io_restriction { - long unsigned int register_op[1]; - long unsigned int sqe_op[1]; - u8 sqe_flags_allowed; - u8 sqe_flags_required; - bool registered; -}; - -struct io_sq_data; - -struct io_kiocb; - -struct io_ring_ctx { - struct { - struct percpu_ref refs; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct { - unsigned int flags; - unsigned int compat: 1; - unsigned int limit_mem: 1; - unsigned int cq_overflow_flushed: 1; - unsigned int drain_next: 1; - unsigned int eventfd_async: 1; - unsigned int restricted: 1; - unsigned int sqo_dead: 1; - u32 *sq_array; - unsigned int cached_sq_head; - unsigned int sq_entries; - unsigned int sq_mask; - unsigned int sq_thread_idle; - unsigned int cached_sq_dropped; - unsigned int cached_cq_overflow; - long unsigned int sq_check_overflow; - struct list_head defer_list; - struct list_head timeout_list; - struct list_head cq_overflow_list; - struct io_uring_sqe *sq_sqes; - long: 64; - long: 64; - long: 64; - }; - struct io_rings *rings; - struct io_wq *io_wq; - struct task_struct *sqo_task; - struct mm_struct *mm_account; - struct cgroup_subsys_state *sqo_blkcg_css; - struct io_sq_data *sq_data; - struct wait_queue_head sqo_sq_wait; - struct wait_queue_entry sqo_wait_entry; - struct list_head sqd_list; - struct fixed_file_data *file_data; - unsigned int nr_user_files; - unsigned int nr_user_bufs; - struct io_mapped_ubuf *user_bufs; - struct user_struct *user; - const struct cred *creds; - kuid_t loginuid; - unsigned int sessionid; - struct completion ref_comp; - struct completion sq_thread_comp; - struct io_kiocb *fallback_req; - struct socket *ring_sock; - struct xarray io_buffers; - struct xarray personalities; - u32 pers_next; - long: 64; - long: 64; - long: 64; - struct { - unsigned int cached_cq_tail; - unsigned int cq_entries; - unsigned int cq_mask; - atomic_t cq_timeouts; - unsigned int cq_last_tm_flush; - long unsigned int cq_check_overflow; - struct wait_queue_head cq_wait; - struct fasync_struct *cq_fasync; - struct eventfd_ctx *cq_ev_fd; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct { - struct mutex uring_lock; - wait_queue_head_t wait; - long: 64; - }; - struct { - spinlock_t completion_lock; - struct list_head iopoll_list; - struct hlist_head *cancel_hash; - unsigned int cancel_hash_bits; - bool poll_multi_file; - spinlock_t inflight_lock; - struct list_head inflight_list; - }; - struct delayed_work file_put_work; - struct llist_head file_put_llist; - struct work_struct exit_work; - struct io_restriction restrictions; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct io_buffer { - struct list_head list; - __u64 addr; - __u32 len; - __u16 bid; -}; - -struct io_sq_data { - refcount_t refs; - struct mutex lock; - struct list_head ctx_list; - struct list_head ctx_new_list; - struct mutex ctx_lock; - struct task_struct *thread; - struct wait_queue_head wait; -}; - -struct io_rw { - struct kiocb kiocb; - u64 addr; - u64 len; -}; - -struct io_poll_iocb { - struct file *file; - union { - struct wait_queue_head *head; - u64 addr; - }; - __poll_t events; - bool done; - bool canceled; - struct wait_queue_entry wait; -}; - -struct io_accept { - struct file *file; - struct sockaddr *addr; - int *addr_len; - int flags; - long unsigned int nofile; -}; - -struct io_sync { - struct file *file; - loff_t len; - loff_t off; - int flags; - int mode; -}; - -struct io_cancel { - struct file *file; - u64 addr; -}; - -struct io_timeout { - struct file *file; - u32 off; - u32 target_seq; - struct list_head list; -}; - -struct io_timeout_rem { - struct file *file; - u64 addr; -}; - -struct io_connect { - struct file *file; - struct sockaddr *addr; - int addr_len; -}; - -struct io_sr_msg { - struct file *file; - union { - struct user_msghdr *umsg; - void *buf; - }; - int msg_flags; - int bgid; - size_t len; - struct io_buffer *kbuf; -}; - -struct io_open { - struct file *file; - int dfd; - bool ignore_nonblock; - struct filename *filename; - struct open_how how; - long unsigned int nofile; -}; - -struct io_close { - struct file *file; - struct file *put_file; - int fd; -}; - -struct io_files_update { - struct file *file; - u64 arg; - u32 nr_args; - u32 offset; -}; - -struct io_fadvise { - struct file *file; - u64 offset; - u32 len; - u32 advice; -}; - -struct io_madvise { - struct file *file; - u64 addr; - u32 len; - u32 advice; -}; - -struct io_epoll { - struct file *file; - int epfd; - int op; - int fd; - struct epoll_event event; -}; - -struct io_splice { - struct file *file_out; - struct file *file_in; - loff_t off_out; - loff_t off_in; - u64 len; - unsigned int flags; -}; - -struct io_provide_buf { - struct file *file; - __u64 addr; - __u32 len; - __u32 bgid; - __u16 nbufs; - __u16 bid; -}; - -struct io_statx { - struct file *file; - int dfd; - unsigned int mask; - unsigned int flags; - const char *filename; - struct statx *buffer; -}; - -struct io_completion { - struct file *file; - struct list_head list; - u32 cflags; -}; - -struct async_poll; - -struct io_kiocb { - union { - struct file *file; - struct io_rw rw; - struct io_poll_iocb poll; - struct io_accept accept; - struct io_sync sync; - struct io_cancel cancel; - struct io_timeout timeout; - struct io_timeout_rem timeout_rem; - struct io_connect connect; - struct io_sr_msg sr_msg; - struct io_open open; - struct io_close close; - struct io_files_update files_update; - struct io_fadvise fadvise; - struct io_madvise madvise; - struct io_epoll epoll; - struct io_splice splice; - struct io_provide_buf pbuf; - struct io_statx statx; - struct io_completion compl; - }; - void *async_data; - u8 opcode; - u8 iopoll_completed; - u16 buf_index; - u32 result; - struct io_ring_ctx *ctx; - unsigned int flags; - refcount_t refs; - struct task_struct *task; - u64 user_data; - struct list_head link_list; - struct list_head inflight_entry; - struct list_head iopoll_entry; - struct percpu_ref *fixed_file_refs; - struct callback_head task_work; - struct hlist_node hash_node; - struct async_poll *apoll; - struct io_wq_work work; -}; - -struct io_timeout_data { - struct io_kiocb *req; - struct hrtimer timer; - struct timespec64 ts; - enum hrtimer_mode mode; -}; - -struct io_async_connect { - struct __kernel_sockaddr_storage address; -}; - -struct io_async_msghdr { - struct iovec fast_iov[8]; - struct iovec *iov; - struct sockaddr *uaddr; - struct msghdr msg; - struct __kernel_sockaddr_storage addr; -}; - -struct io_async_rw { - struct iovec fast_iov[8]; - const struct iovec *free_iovec; - struct iov_iter iter; - size_t bytes_done; - struct wait_page_queue wpq; -}; - -enum { - REQ_F_FIXED_FILE_BIT = 0, - REQ_F_IO_DRAIN_BIT = 1, - REQ_F_LINK_BIT = 2, - REQ_F_HARDLINK_BIT = 3, - REQ_F_FORCE_ASYNC_BIT = 4, - REQ_F_BUFFER_SELECT_BIT = 5, - REQ_F_LINK_HEAD_BIT = 6, - REQ_F_FAIL_LINK_BIT = 7, - REQ_F_INFLIGHT_BIT = 8, - REQ_F_CUR_POS_BIT = 9, - REQ_F_NOWAIT_BIT = 10, - REQ_F_LINK_TIMEOUT_BIT = 11, - REQ_F_ISREG_BIT = 12, - REQ_F_NEED_CLEANUP_BIT = 13, - REQ_F_POLLED_BIT = 14, - REQ_F_BUFFER_SELECTED_BIT = 15, - REQ_F_NO_FILE_TABLE_BIT = 16, - REQ_F_WORK_INITIALIZED_BIT = 17, - REQ_F_LTIMEOUT_ACTIVE_BIT = 18, - __REQ_F_LAST_BIT = 19, -}; - -enum { - REQ_F_FIXED_FILE = 1, - REQ_F_IO_DRAIN = 2, - REQ_F_LINK = 4, - REQ_F_HARDLINK = 8, - REQ_F_FORCE_ASYNC = 16, - REQ_F_BUFFER_SELECT = 32, - REQ_F_LINK_HEAD = 64, - REQ_F_FAIL_LINK = 128, - REQ_F_INFLIGHT = 256, - REQ_F_CUR_POS = 512, - REQ_F_NOWAIT = 1024, - REQ_F_LINK_TIMEOUT = 2048, - REQ_F_ISREG = 4096, - REQ_F_NEED_CLEANUP = 8192, - REQ_F_POLLED = 16384, - REQ_F_BUFFER_SELECTED = 32768, - REQ_F_NO_FILE_TABLE = 65536, - REQ_F_WORK_INITIALIZED = 131072, - REQ_F_LTIMEOUT_ACTIVE = 262144, -}; - -struct async_poll { - struct io_poll_iocb poll; - struct io_poll_iocb *double_poll; -}; - -struct io_defer_entry { - struct list_head list; - struct io_kiocb *req; - u32 seq; -}; - -struct io_comp_state { - unsigned int nr; - struct list_head list; - struct io_ring_ctx *ctx; -}; - -struct io_submit_state { - struct blk_plug plug; - void *reqs[8]; - unsigned int free_reqs; - struct io_comp_state comp; - struct file *file; - unsigned int fd; - unsigned int has_refs; - unsigned int ios_left; -}; - -struct io_op_def { - unsigned int needs_file: 1; - unsigned int needs_file_no_error: 1; - unsigned int hash_reg_file: 1; - unsigned int unbound_nonreg_file: 1; - unsigned int not_supported: 1; - unsigned int pollin: 1; - unsigned int pollout: 1; - unsigned int buffer_select: 1; - unsigned int needs_async_data: 1; - short unsigned int async_size; - unsigned int work_flags; -}; - -enum io_mem_account { - ACCT_LOCKED = 0, - ACCT_PINNED = 1, -}; - -struct req_batch { - void *reqs[8]; - int to_free; - struct task_struct *task; - int task_refs; -}; - -struct io_poll_table { - struct poll_table_struct pt; - struct io_kiocb *req; - int nr_entries; - int error; -}; - -enum sq_ret { - SQT_IDLE = 1, - SQT_SPIN = 2, - SQT_DID_WORK = 4, -}; - -struct io_wait_queue { - struct wait_queue_entry wq; - struct io_ring_ctx *ctx; - unsigned int to_wait; - unsigned int nr_timeouts; -}; - -struct io_file_put { - struct list_head list; - struct file *file; -}; - -struct io_task_cancel { - struct task_struct *task; - struct files_struct *files; -}; - -struct io_identify; - -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; -}; - -typedef bool work_cancel_fn(struct io_wq_work *, void *); - -enum { - IO_WORKER_F_UP = 1, - IO_WORKER_F_RUNNING = 2, - IO_WORKER_F_FREE = 4, - IO_WORKER_F_FIXED = 8, - IO_WORKER_F_BOUND = 16, -}; - -enum { - IO_WQ_BIT_EXIT = 0, - IO_WQ_BIT_CANCEL = 1, - IO_WQ_BIT_ERROR = 2, -}; - -enum { - IO_WQE_FLAG_STALLED = 1, -}; - -struct io_wqe; - -struct io_worker { - refcount_t ref; - unsigned int flags; - struct hlist_nulls_node nulls_node; - struct list_head all_list; - struct task_struct *task; - struct io_wqe *wqe; - struct io_wq_work *cur_work; - spinlock_t lock; - struct callback_head rcu; - struct mm_struct *mm; - struct cgroup_subsys_state *blkcg_css; - const struct cred *cur_creds; - const struct cred *saved_creds; - struct files_struct *restore_files; - struct nsproxy *restore_nsproxy; - struct fs_struct *restore_fs; -}; - -struct io_wqe_acct { - unsigned int nr_workers; - unsigned int max_workers; - atomic_t nr_running; -}; - -struct io_wq; - -struct io_wqe { - struct { - raw_spinlock_t lock; - struct io_wq_work_list work_list; - long unsigned int hash_map; - unsigned int flags; - long: 64; - long: 64; - long: 64; - }; - int node; - struct io_wqe_acct acct[2]; - struct hlist_nulls_head free_list; - struct list_head all_list; - struct io_wq *wq; - struct io_wq_work *hash_tail[64]; -}; - -enum { - IO_WQ_ACCT_BOUND = 0, - IO_WQ_ACCT_UNBOUND = 1, -}; - -struct io_wq { - struct io_wqe **wqes; - long unsigned int state; - free_work_fn *free_work; - io_wq_work_fn *do_work; - struct task_struct *manager; - struct user_struct *user; - refcount_t refs; - struct completion done; - struct hlist_node cpuhp_node; - refcount_t use_refs; -}; - -struct io_cb_cancel_data { - work_cancel_fn *fn; - void *data; - int nr_running; - int nr_pending; - bool cancel_all; -}; - struct iomap_ops { int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); }; +struct iomap_iter { + struct inode *inode; + loff_t pos; + u64 len; + s64 processed; + unsigned int flags; + struct iomap iomap; + struct iomap srcmap; +}; + struct trace_event_raw_dax_pmd_fault_class { struct trace_entry ent; long unsigned int ino; @@ -47756,20 +51992,26 @@ enum dax_wake_mode { struct crypto_skcipher; +struct fscrypt_blk_crypto_key; + struct fscrypt_prepared_key { struct crypto_skcipher *tfm; + struct fscrypt_blk_crypto_key *blk_key; }; struct fscrypt_mode; +struct fscrypt_master_key; + struct fscrypt_direct_key; struct fscrypt_info { struct fscrypt_prepared_key ci_enc_key; bool ci_owns_key; + bool ci_inlinecrypt; struct fscrypt_mode *ci_mode; struct inode *ci_inode; - struct key *ci_master_key; + struct fscrypt_master_key *ci_master_key; struct list_head ci_master_key_link; struct fscrypt_direct_key *ci_direct_key; siphash_key_t ci_dirhash_key; @@ -47779,23 +52021,6 @@ struct fscrypt_info { u32 ci_hashed_ino; }; -struct crypto_async_request; - -typedef void (*crypto_completion_t)(struct crypto_async_request *, int); - -struct crypto_async_request { - struct list_head list; - crypto_completion_t complete; - void *data; - struct crypto_tfm *tfm; - u32 flags; -}; - -struct crypto_wait { - struct completion completion; - int err; -}; - struct skcipher_request { unsigned int cryptlen; u8 *iv; @@ -47810,12 +52035,14 @@ struct crypto_skcipher { struct crypto_tfm base; }; -enum blk_crypto_mode_num { - BLK_ENCRYPTION_MODE_INVALID = 0, - BLK_ENCRYPTION_MODE_AES_256_XTS = 1, - BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV = 2, - BLK_ENCRYPTION_MODE_ADIANTUM = 3, - BLK_ENCRYPTION_MODE_MAX = 4, +struct fscrypt_key_specifier { + __u32 type; + __u32 __reserved; + union { + __u8 __reserved[32]; + __u8 descriptor[8]; + __u8 identifier[16]; + } u; }; struct fscrypt_mode { @@ -47828,6 +52055,35 @@ struct fscrypt_mode { enum blk_crypto_mode_num blk_crypto_mode; }; +struct fscrypt_hkdf { + struct crypto_shash *hmac_tfm; +}; + +struct fscrypt_master_key_secret { + struct fscrypt_hkdf hkdf; + u32 size; + u8 raw[64]; +}; + +struct fscrypt_master_key { + struct super_block *mk_sb; + struct hlist_node mk_node; + struct rw_semaphore mk_sem; + refcount_t mk_active_refs; + refcount_t mk_struct_refs; + struct callback_head mk_rcu_head; + struct fscrypt_master_key_secret mk_secret; + struct fscrypt_key_specifier mk_spec; + struct key *mk_users; + struct list_head mk_decrypted_inodes; + spinlock_t mk_decrypted_inodes_lock; + struct fscrypt_prepared_key mk_direct_keys[10]; + struct fscrypt_prepared_key mk_iv_ino_lblk_64_keys[10]; + struct fscrypt_prepared_key mk_iv_ino_lblk_32_keys[10]; + siphash_key_t mk_ino_hash_key; + bool mk_ino_hash_key_initialized; +}; + typedef enum { FS_DECRYPT = 0, FS_ENCRYPT = 1, @@ -47862,51 +52118,23 @@ struct fscrypt_nokey_name { u8 sha256[32]; }; -struct fscrypt_hkdf { - struct crypto_shash *hmac_tfm; -}; - -struct fscrypt_key_specifier { - __u32 type; - __u32 __reserved; - union { - __u8 __reserved[32]; - __u8 descriptor[8]; - __u8 identifier[16]; - } u; -}; +typedef __u16 __le16; struct fscrypt_symlink_data { __le16 len; char encrypted_path[1]; } __attribute__((packed)); -struct fscrypt_master_key_secret { - struct fscrypt_hkdf hkdf; - u32 size; - u8 raw[64]; -}; - -struct fscrypt_master_key { - struct fscrypt_master_key_secret mk_secret; - struct rw_semaphore mk_secret_sem; - struct fscrypt_key_specifier mk_spec; - struct key *mk_users; - refcount_t mk_refcount; - struct list_head mk_decrypted_inodes; - spinlock_t mk_decrypted_inodes_lock; - struct fscrypt_prepared_key mk_direct_keys[10]; - struct fscrypt_prepared_key mk_iv_ino_lblk_64_keys[10]; - struct fscrypt_prepared_key mk_iv_ino_lblk_32_keys[10]; - siphash_key_t mk_ino_hash_key; - bool mk_ino_hash_key_initialized; -}; - enum key_state { KEY_IS_UNINSTANTIATED = 0, KEY_IS_POSITIVE = 1, }; +struct fscrypt_keyring { + spinlock_t lock; + struct hlist_head key_hashtable[128]; +}; + struct fscrypt_provisioning_key_payload { __u32 type; __u32 __reserved; @@ -47975,43 +52203,6 @@ union fscrypt_context { struct fscrypt_context_v2 v2; }; -struct crypto_template; - -struct crypto_spawn; - -struct crypto_instance { - struct crypto_alg alg; - struct crypto_template *tmpl; - union { - struct hlist_node list; - struct crypto_spawn *spawns; - }; - void *__ctx[0]; -}; - -struct crypto_spawn { - struct list_head list; - struct crypto_alg *alg; - union { - struct crypto_instance *inst; - struct crypto_spawn *next; - }; - const struct crypto_type *frontend; - u32 mask; - bool dead; - bool registered; -}; - -struct rtattr; - -struct crypto_template { - struct list_head list; - struct hlist_head instances; - struct module *module; - int (*create)(struct crypto_template *, struct rtattr **); - char name[128]; -}; - struct user_key_payload { struct callback_head rcu; short unsigned int datalen; @@ -48047,6 +52238,12 @@ struct fscrypt_dummy_policy { const union fscrypt_policy *policy; }; +struct fscrypt_blk_crypto_key { + struct blk_crypto_key base; + int num_devs; + struct request_queue *devs[0]; +}; + struct fsverity_hash_alg; struct merkle_tree_params { @@ -48066,7 +52263,7 @@ struct merkle_tree_params { struct fsverity_info { struct merkle_tree_params tree_params; u8 root_hash[64]; - u8 measurement[64]; + u8 file_digest[64]; const struct inode *inode; }; @@ -48082,6 +52279,19 @@ struct fsverity_enable_arg { __u64 __reserved2[11]; }; +struct fsverity_descriptor { + __u8 version; + __u8 hash_algorithm; + __u8 log_blocksize; + __u8 salt_size; + __le32 sig_size; + __le64 data_size; + __u8 root_hash[64]; + __u8 salt[32]; + __u8 __reserved[144]; + __u8 signature[0]; +}; + struct crypto_ahash; struct fsverity_hash_alg { @@ -48107,19 +52317,6 @@ struct crypto_ahash { struct crypto_tfm base; }; -struct fsverity_descriptor { - __u8 version; - __u8 hash_algorithm; - __u8 log_blocksize; - __u8 salt_size; - __le32 sig_size; - __le64 data_size; - __u8 root_hash[64]; - __u8 salt[32]; - __u8 __reserved[144]; - __u8 signature[0]; -}; - struct ahash_request { struct crypto_async_request base; unsigned int nbytes; @@ -48141,7 +52338,15 @@ struct fsverity_digest { __u8 digest[0]; }; -struct fsverity_signed_digest { +struct fsverity_read_metadata_arg { + __u64 metadata_type; + __u64 offset; + __u64 length; + __u64 buf_ptr; + __u64 __reserved; +}; + +struct fsverity_formatted_digest { char magic[8]; __le16 digest_algorithm; __le16 digest_size; @@ -48341,6 +52546,40 @@ struct user_regs_struct { long unsigned int gs; }; +typedef __u32 Elf32_Addr; + +typedef __u16 Elf32_Half; + +typedef __u32 Elf32_Off; + +struct elf32_hdr { + unsigned char e_ident[16]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +}; + +struct elf32_phdr { + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +}; + struct elf32_shdr { Elf32_Word sh_name; Elf32_Word sh_type; @@ -48354,7 +52593,31 @@ struct elf32_shdr { Elf32_Word sh_entsize; }; -typedef struct user_regs_struct compat_elf_gregset_t; +struct user_regs_struct32 { + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 esi; + __u32 edi; + __u32 ebp; + __u32 eax; + short unsigned int ds; + short unsigned int __ds; + short unsigned int es; + short unsigned int __es; + short unsigned int fs; + short unsigned int __fs; + short unsigned int gs; + short unsigned int __gs; + __u32 orig_eax; + __u32 eip; + short unsigned int cs; + short unsigned int __cs; + __u32 eflags; + __u32 esp; + short unsigned int ss; + short unsigned int __ss; +}; struct compat_elf_siginfo { compat_int_t si_signo; @@ -48362,7 +52625,7 @@ struct compat_elf_siginfo { compat_int_t si_errno; }; -struct compat_elf_prstatus { +struct compat_elf_prstatus_common { struct compat_elf_siginfo pr_info; short int pr_cursig; compat_ulong_t pr_sigpend; @@ -48375,8 +52638,6 @@ struct compat_elf_prstatus { struct old_timeval32 pr_stime; struct old_timeval32 pr_cutime; struct old_timeval32 pr_cstime; - compat_elf_gregset_t pr_reg; - compat_int_t pr_fpvalid; }; struct compat_elf_prpsinfo { @@ -48395,6 +52656,20 @@ struct compat_elf_prpsinfo { char pr_psargs[80]; }; +typedef struct user_regs_struct compat_elf_gregset_t; + +struct i386_elf_prstatus { + struct compat_elf_prstatus_common common; + struct user_regs_struct32 pr_reg; + compat_int_t pr_fpvalid; +}; + +struct compat_elf_prstatus { + struct compat_elf_prstatus_common common; + compat_elf_gregset_t pr_reg; + compat_int_t pr_fpvalid; +}; + struct elf_thread_core_info___2 { struct elf_thread_core_info___2 *next; struct task_struct *task; @@ -48413,6 +52688,31 @@ struct elf_note_info___2 { int thread_notes; }; +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, +}; + +struct mb_cache_entry { + struct list_head e_list; + struct hlist_bl_node e_hash_list; + atomic_t e_refcnt; + u32 e_key; + long unsigned int e_flags; + u64 e_value; +}; + +struct mb_cache { + struct hlist_bl_head *c_hash; + int c_bucket_bits; + long unsigned int c_max_entries; + spinlock_t c_list_lock; + struct list_head c_list; + long unsigned int c_entry_count; + struct shrinker c_shrink; + struct work_struct c_shrink_work; +}; + struct posix_acl_xattr_entry { __le16 e_tag; __le16 e_perm; @@ -48423,6 +52723,1670 @@ struct posix_acl_xattr_header { __le32 a_version; }; +struct rpc_timer { + struct list_head list; + long unsigned int expires; + struct delayed_work dwork; +}; + +struct rpc_wait_queue { + spinlock_t lock; + struct list_head tasks[4]; + unsigned char maxpriority; + unsigned char priority; + unsigned char nr; + unsigned int qlen; + struct rpc_timer timer_list; + const char *name; +}; + +struct nfs_seqid_counter { + ktime_t create_time; + int owner_id; + int flags; + u32 counter; + spinlock_t lock; + struct list_head list; + struct rpc_wait_queue wait; +}; + +struct nfs4_stateid_struct { + union { + char data[16]; + struct { + __be32 seqid; + char other[12]; + }; + }; + enum { + NFS4_INVALID_STATEID_TYPE = 0, + NFS4_SPECIAL_STATEID_TYPE = 1, + NFS4_OPEN_STATEID_TYPE = 2, + NFS4_LOCK_STATEID_TYPE = 3, + NFS4_DELEGATION_STATEID_TYPE = 4, + NFS4_LAYOUT_STATEID_TYPE = 5, + NFS4_PNFS_DS_STATEID_TYPE = 6, + NFS4_REVOKED_STATEID_TYPE = 7, + } type; +}; + +typedef struct nfs4_stateid_struct nfs4_stateid; + +struct nfs4_state; + +struct nfs4_lock_state { + struct list_head ls_locks; + struct nfs4_state *ls_state; + long unsigned int ls_flags; + struct nfs_seqid_counter ls_seqid; + nfs4_stateid ls_stateid; + refcount_t ls_count; + fl_owner_t ls_owner; +}; + +struct xdr_netobj { + unsigned int len; + u8 *data; +}; + +struct xdr_buf { + struct kvec head[1]; + struct kvec tail[1]; + struct bio_vec *bvec; + struct page **pages; + unsigned int page_base; + unsigned int page_len; + unsigned int flags; + unsigned int buflen; + unsigned int len; +}; + +struct rpc_rqst; + +struct xdr_stream { + __be32 *p; + struct xdr_buf *buf; + __be32 *end; + struct kvec *iov; + struct kvec scratch; + struct page **page_ptr; + unsigned int nwords; + struct rpc_rqst *rqst; +}; + +struct rpc_xprt; + +struct rpc_task; + +struct rpc_cred; + +struct rpc_rqst { + struct rpc_xprt *rq_xprt; + struct xdr_buf rq_snd_buf; + struct xdr_buf rq_rcv_buf; + struct rpc_task *rq_task; + struct rpc_cred *rq_cred; + __be32 rq_xid; + int rq_cong; + u32 rq_seqno; + int rq_enc_pages_num; + struct page **rq_enc_pages; + void (*rq_release_snd_buf)(struct rpc_rqst *); + union { + struct list_head rq_list; + struct rb_node rq_recv; + }; + struct list_head rq_xmit; + struct list_head rq_xmit2; + void *rq_buffer; + size_t rq_callsize; + void *rq_rbuffer; + size_t rq_rcvsize; + size_t rq_xmit_bytes_sent; + size_t rq_reply_bytes_recvd; + struct xdr_buf rq_private_buf; + long unsigned int rq_majortimeo; + long unsigned int rq_minortimeo; + long unsigned int rq_timeout; + ktime_t rq_rtt; + unsigned int rq_retries; + unsigned int rq_connect_cookie; + atomic_t rq_pin; + u32 rq_bytes_sent; + ktime_t rq_xtime; + int rq_ntrans; + struct list_head rq_bc_list; + long unsigned int rq_bc_pa_state; + struct list_head rq_bc_pa_list; +}; + +typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *); + +typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *); + +struct rpc_procinfo; + +struct rpc_message { + const struct rpc_procinfo *rpc_proc; + void *rpc_argp; + void *rpc_resp; + const struct cred *rpc_cred; +}; + +struct rpc_procinfo { + u32 p_proc; + kxdreproc_t p_encode; + kxdrdproc_t p_decode; + unsigned int p_arglen; + unsigned int p_replen; + unsigned int p_timer; + u32 p_statidx; + const char *p_name; +}; + +struct rpc_wait { + struct list_head list; + struct list_head links; + struct list_head timer_list; +}; + +struct rpc_call_ops; + +struct rpc_clnt; + +struct rpc_task { + atomic_t tk_count; + int tk_status; + struct list_head tk_task; + void (*tk_callback)(struct rpc_task *); + void (*tk_action)(struct rpc_task *); + long unsigned int tk_timeout; + long unsigned int tk_runstate; + struct rpc_wait_queue *tk_waitqueue; + union { + struct work_struct tk_work; + struct rpc_wait tk_wait; + } u; + int tk_rpc_status; + struct rpc_message tk_msg; + void *tk_calldata; + const struct rpc_call_ops *tk_ops; + struct rpc_clnt *tk_client; + struct rpc_xprt *tk_xprt; + struct rpc_cred *tk_op_cred; + struct rpc_rqst *tk_rqstp; + struct workqueue_struct *tk_workqueue; + ktime_t tk_start; + pid_t tk_owner; + short unsigned int tk_flags; + short unsigned int tk_timeouts; + short unsigned int tk_pid; + unsigned char tk_priority: 2; + unsigned char tk_garb_retry: 2; + unsigned char tk_cred_retry: 2; +}; + +struct rpc_call_ops { + void (*rpc_call_prepare)(struct rpc_task *, void *); + void (*rpc_call_done)(struct rpc_task *, void *); + void (*rpc_count_stats)(struct rpc_task *, void *); + void (*rpc_release)(void *); +}; + +struct rpc_iostats; + +struct rpc_pipe_dir_head { + struct list_head pdh_entries; + struct dentry *pdh_dentry; +}; + +struct rpc_rtt { + long unsigned int timeo; + long unsigned int srtt[5]; + long unsigned int sdrtt[5]; + int ntimeouts[5]; +}; + +struct rpc_timeout { + long unsigned int to_initval; + long unsigned int to_maxval; + long unsigned int to_increment; + unsigned int to_retries; + unsigned char to_exponential; +}; + +struct rpc_sysfs_client; + +struct rpc_xprt_switch; + +struct rpc_xprt_iter_ops; + +struct rpc_xprt_iter { + struct rpc_xprt_switch *xpi_xpswitch; + struct rpc_xprt *xpi_cursor; + const struct rpc_xprt_iter_ops *xpi_ops; +}; + +struct rpc_auth; + +struct rpc_stat; + +struct rpc_program; + +struct rpc_clnt { + refcount_t cl_count; + unsigned int cl_clid; + struct list_head cl_clients; + struct list_head cl_tasks; + spinlock_t cl_lock; + struct rpc_xprt *cl_xprt; + const struct rpc_procinfo *cl_procinfo; + u32 cl_prog; + u32 cl_vers; + u32 cl_maxproc; + struct rpc_auth *cl_auth; + struct rpc_stat *cl_stats; + struct rpc_iostats *cl_metrics; + unsigned int cl_softrtry: 1; + unsigned int cl_softerr: 1; + unsigned int cl_discrtry: 1; + unsigned int cl_noretranstimeo: 1; + unsigned int cl_autobind: 1; + unsigned int cl_chatty: 1; + struct rpc_rtt *cl_rtt; + const struct rpc_timeout *cl_timeout; + atomic_t cl_swapper; + int cl_nodelen; + char cl_nodename[65]; + struct rpc_pipe_dir_head cl_pipedir_objects; + struct rpc_clnt *cl_parent; + struct rpc_rtt cl_rtt_default; + struct rpc_timeout cl_timeout_default; + const struct rpc_program *cl_program; + const char *cl_principal; + struct dentry *cl_debugfs; + struct rpc_sysfs_client *cl_sysfs; + union { + struct rpc_xprt_iter cl_xpi; + struct work_struct cl_work; + }; + const struct cred *cl_cred; + unsigned int cl_max_connect; + struct super_block *pipefs_sb; +}; + +struct svc_xprt; + +struct rpc_sysfs_xprt; + +struct rpc_xprt_ops; + +struct svc_serv; + +struct xprt_class; + +struct rpc_xprt { + struct kref kref; + const struct rpc_xprt_ops *ops; + unsigned int id; + const struct rpc_timeout *timeout; + struct __kernel_sockaddr_storage addr; + size_t addrlen; + int prot; + long unsigned int cong; + long unsigned int cwnd; + size_t max_payload; + struct rpc_wait_queue binding; + struct rpc_wait_queue sending; + struct rpc_wait_queue pending; + struct rpc_wait_queue backlog; + struct list_head free; + unsigned int max_reqs; + unsigned int min_reqs; + unsigned int num_reqs; + long unsigned int state; + unsigned char resvport: 1; + unsigned char reuseport: 1; + atomic_t swapper; + unsigned int bind_index; + struct list_head xprt_switch; + long unsigned int bind_timeout; + long unsigned int reestablish_timeout; + unsigned int connect_cookie; + struct work_struct task_cleanup; + struct timer_list timer; + long unsigned int last_used; + long unsigned int idle_timeout; + long unsigned int connect_timeout; + long unsigned int max_reconnect_timeout; + atomic_long_t queuelen; + spinlock_t transport_lock; + spinlock_t reserve_lock; + spinlock_t queue_lock; + u32 xid; + struct rpc_task *snd_task; + struct list_head xmit_queue; + atomic_long_t xmit_queuelen; + struct svc_xprt *bc_xprt; + struct svc_serv *bc_serv; + unsigned int bc_alloc_max; + unsigned int bc_alloc_count; + atomic_t bc_slot_count; + spinlock_t bc_pa_lock; + struct list_head bc_pa_list; + struct rb_root recv_queue; + struct { + long unsigned int bind_count; + long unsigned int connect_count; + long unsigned int connect_start; + long unsigned int connect_time; + long unsigned int sends; + long unsigned int recvs; + long unsigned int bad_xids; + long unsigned int max_slots; + long long unsigned int req_u; + long long unsigned int bklog_u; + long long unsigned int sending_u; + long long unsigned int pending_u; + } stat; + struct net *xprt_net; + const char *servername; + const char *address_strings[6]; + struct dentry *debugfs; + struct callback_head rcu; + const struct xprt_class *xprt_class; + struct rpc_sysfs_xprt *xprt_sysfs; + bool main; +}; + +struct rpc_credops; + +struct rpc_cred { + struct hlist_node cr_hash; + struct list_head cr_lru; + struct callback_head cr_rcu; + struct rpc_auth *cr_auth; + const struct rpc_credops *cr_ops; + long unsigned int cr_expire; + long unsigned int cr_flags; + refcount_t cr_count; + const struct cred *cr_cred; +}; + +typedef u32 rpc_authflavor_t; + +struct auth_cred { + const struct cred *cred; + const char *principal; +}; + +struct rpc_cred_cache; + +struct rpc_authops; + +struct rpc_auth { + unsigned int au_cslack; + unsigned int au_rslack; + unsigned int au_verfsize; + unsigned int au_ralign; + long unsigned int au_flags; + const struct rpc_authops *au_ops; + rpc_authflavor_t au_flavor; + refcount_t au_count; + struct rpc_cred_cache *au_credcache; +}; + +struct rpc_credops { + const char *cr_name; + int (*cr_init)(struct rpc_auth *, struct rpc_cred *); + void (*crdestroy)(struct rpc_cred *); + int (*crmatch)(struct auth_cred *, struct rpc_cred *, int); + int (*crmarshal)(struct rpc_task *, struct xdr_stream *); + int (*crrefresh)(struct rpc_task *); + int (*crvalidate)(struct rpc_task *, struct xdr_stream *); + int (*crwrap_req)(struct rpc_task *, struct xdr_stream *); + int (*crunwrap_resp)(struct rpc_task *, struct xdr_stream *); + int (*crkey_timeout)(struct rpc_cred *); + char * (*crstringify_acceptor)(struct rpc_cred *); + bool (*crneed_reencode)(struct rpc_task *); +}; + +struct rpc_auth_create_args; + +struct rpcsec_gss_info; + +struct rpc_authops { + struct module *owner; + rpc_authflavor_t au_flavor; + char *au_name; + struct rpc_auth * (*create)(const struct rpc_auth_create_args *, struct rpc_clnt *); + void (*destroy)(struct rpc_auth *); + int (*hash_cred)(struct auth_cred *, unsigned int); + struct rpc_cred * (*lookup_cred)(struct rpc_auth *, struct auth_cred *, int); + struct rpc_cred * (*crcreate)(struct rpc_auth *, struct auth_cred *, int, gfp_t); + rpc_authflavor_t (*info2flavor)(struct rpcsec_gss_info *); + int (*flavor2info)(rpc_authflavor_t, struct rpcsec_gss_info *); + int (*key_timeout)(struct rpc_auth *, struct rpc_cred *); +}; + +struct rpc_auth_create_args { + rpc_authflavor_t pseudoflavor; + const char *target_name; +}; + +struct rpcsec_gss_oid { + unsigned int len; + u8 data[32]; +}; + +struct rpcsec_gss_info { + struct rpcsec_gss_oid oid; + u32 qop; + u32 service; +}; + +struct rpc_xprt_ops { + void (*set_buffer_size)(struct rpc_xprt *, size_t, size_t); + int (*reserve_xprt)(struct rpc_xprt *, struct rpc_task *); + void (*release_xprt)(struct rpc_xprt *, struct rpc_task *); + void (*alloc_slot)(struct rpc_xprt *, struct rpc_task *); + void (*free_slot)(struct rpc_xprt *, struct rpc_rqst *); + void (*rpcbind)(struct rpc_task *); + void (*set_port)(struct rpc_xprt *, short unsigned int); + void (*connect)(struct rpc_xprt *, struct rpc_task *); + int (*buf_alloc)(struct rpc_task *); + void (*buf_free)(struct rpc_task *); + void (*prepare_request)(struct rpc_rqst *); + int (*send_request)(struct rpc_rqst *); + void (*wait_for_reply_request)(struct rpc_task *); + void (*timer)(struct rpc_xprt *, struct rpc_task *); + void (*release_request)(struct rpc_task *); + void (*close)(struct rpc_xprt *); + void (*destroy)(struct rpc_xprt *); + void (*set_connect_timeout)(struct rpc_xprt *, long unsigned int, long unsigned int); + void (*print_stats)(struct rpc_xprt *, struct seq_file *); + int (*enable_swap)(struct rpc_xprt *); + void (*disable_swap)(struct rpc_xprt *); + void (*inject_disconnect)(struct rpc_xprt *); + int (*bc_setup)(struct rpc_xprt *, unsigned int); + size_t (*bc_maxpayload)(struct rpc_xprt *); + unsigned int (*bc_num_slots)(struct rpc_xprt *); + void (*bc_free_rqst)(struct rpc_rqst *); + void (*bc_destroy)(struct rpc_xprt *, unsigned int); +}; + +struct svc_program; + +struct svc_stat; + +struct svc_pool; + +struct svc_serv { + struct svc_program *sv_program; + struct svc_stat *sv_stats; + spinlock_t sv_lock; + struct kref sv_refcnt; + unsigned int sv_nrthreads; + unsigned int sv_maxconn; + unsigned int sv_max_payload; + unsigned int sv_max_mesg; + unsigned int sv_xdrsize; + struct list_head sv_permsocks; + struct list_head sv_tempsocks; + int sv_tmpcnt; + struct timer_list sv_temptimer; + char *sv_name; + unsigned int sv_nrpools; + struct svc_pool *sv_pools; + int (*sv_threadfn)(void *); + struct list_head sv_cb_list; + spinlock_t sv_cb_lock; + wait_queue_head_t sv_cb_waitq; + bool sv_bc_enabled; +}; + +struct xprt_create; + +struct xprt_class { + struct list_head list; + int ident; + struct rpc_xprt * (*setup)(struct xprt_create *); + struct module *owner; + char name[32]; + const char *netid[0]; +}; + +struct xprt_create { + int ident; + struct net *net; + struct sockaddr *srcaddr; + struct sockaddr *dstaddr; + size_t addrlen; + const char *servername; + struct svc_xprt *bc_xprt; + struct rpc_xprt_switch *bc_xps; + unsigned int flags; +}; + +struct rpc_sysfs_xprt_switch; + +struct rpc_xprt_switch { + spinlock_t xps_lock; + struct kref xps_kref; + unsigned int xps_id; + unsigned int xps_nxprts; + unsigned int xps_nactive; + unsigned int xps_nunique_destaddr_xprts; + atomic_long_t xps_queuelen; + struct list_head xps_xprt_list; + struct net *xps_net; + const struct rpc_xprt_iter_ops *xps_iter_ops; + struct rpc_sysfs_xprt_switch *xps_sysfs; + struct callback_head xps_rcu; +}; + +struct rpc_stat { + const struct rpc_program *program; + unsigned int netcnt; + unsigned int netudpcnt; + unsigned int nettcpcnt; + unsigned int nettcpconn; + unsigned int netreconn; + unsigned int rpccnt; + unsigned int rpcretrans; + unsigned int rpcauthrefresh; + unsigned int rpcgarbage; +}; + +struct rpc_version; + +struct rpc_program { + const char *name; + u32 number; + unsigned int nrvers; + const struct rpc_version **version; + struct rpc_stat *stats; + const char *pipe_dir_name; +}; + +struct svc_stat { + struct svc_program *program; + unsigned int netcnt; + unsigned int netudpcnt; + unsigned int nettcpcnt; + unsigned int nettcpconn; + unsigned int rpccnt; + unsigned int rpcbadfmt; + unsigned int rpcbadauth; + unsigned int rpcbadclnt; +}; + +struct svc_version; + +struct svc_rqst; + +struct svc_process_info; + +struct svc_program { + struct svc_program *pg_next; + u32 pg_prog; + unsigned int pg_lovers; + unsigned int pg_hivers; + unsigned int pg_nvers; + const struct svc_version **pg_vers; + char *pg_name; + char *pg_class; + int (*pg_authenticate)(struct svc_rqst *); + __be32 (*pg_init_request)(struct svc_rqst *, const struct svc_program *, struct svc_process_info *); + int (*pg_rpcbind_set)(struct net *, const struct svc_program *, u32, int, short unsigned int, short unsigned int); +}; + +struct rpc_xprt_iter_ops { + void (*xpi_rewind)(struct rpc_xprt_iter *); + struct rpc_xprt * (*xpi_xprt)(struct rpc_xprt_iter *); + struct rpc_xprt * (*xpi_next)(struct rpc_xprt_iter *); +}; + +struct rpc_version { + u32 number; + unsigned int nrprocs; + const struct rpc_procinfo *procs; + unsigned int *counts; +}; + +struct nfs_fh { + short unsigned int size; + unsigned char data[128]; +}; + +enum nfs3_stable_how { + NFS_UNSTABLE = 0, + NFS_DATA_SYNC = 1, + NFS_FILE_SYNC = 2, + NFS_INVALID_STABLE_HOW = 4294967295, +}; + +struct nfs4_label { + uint32_t lfs; + uint32_t pi; + u32 len; + char *label; +}; + +typedef struct { + char data[8]; +} nfs4_verifier; + +enum nfs4_change_attr_type { + NFS4_CHANGE_TYPE_IS_MONOTONIC_INCR = 0, + NFS4_CHANGE_TYPE_IS_VERSION_COUNTER = 1, + NFS4_CHANGE_TYPE_IS_VERSION_COUNTER_NOPNFS = 2, + NFS4_CHANGE_TYPE_IS_TIME_METADATA = 3, + NFS4_CHANGE_TYPE_IS_UNDEFINED = 4, +}; + +struct gss_api_mech; + +struct gss_ctx { + struct gss_api_mech *mech_type; + void *internal_ctx_id; + unsigned int slack; + unsigned int align; +}; + +struct gss_api_ops; + +struct pf_desc; + +struct gss_api_mech { + struct list_head gm_list; + struct module *gm_owner; + struct rpcsec_gss_oid gm_oid; + char *gm_name; + const struct gss_api_ops *gm_ops; + int gm_pf_num; + struct pf_desc *gm_pfs; + const char *gm_upcall_enctypes; +}; + +struct auth_domain; + +struct pf_desc { + u32 pseudoflavor; + u32 qop; + u32 service; + char *name; + char *auth_domain_name; + struct auth_domain *domain; + bool datatouch; +}; + +struct auth_ops; + +struct auth_domain { + struct kref ref; + struct hlist_node hash; + char *name; + struct auth_ops *flavour; + struct callback_head callback_head; +}; + +struct gss_api_ops { + int (*gss_import_sec_context)(const void *, size_t, struct gss_ctx *, time64_t *, gfp_t); + u32 (*gss_get_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); + u32 (*gss_verify_mic)(struct gss_ctx *, struct xdr_buf *, struct xdr_netobj *); + u32 (*gss_wrap)(struct gss_ctx *, int, struct xdr_buf *, struct page **); + u32 (*gss_unwrap)(struct gss_ctx *, int, int, struct xdr_buf *); + void (*gss_delete_sec_context)(void *); +}; + +struct nfs4_string { + unsigned int len; + char *data; +}; + +struct nfs_fsid { + uint64_t major; + uint64_t minor; +}; + +struct nfs4_threshold { + __u32 bm; + __u32 l_type; + __u64 rd_sz; + __u64 wr_sz; + __u64 rd_io_sz; + __u64 wr_io_sz; +}; + +struct nfs_fattr { + unsigned int valid; + umode_t mode; + __u32 nlink; + kuid_t uid; + kgid_t gid; + dev_t rdev; + __u64 size; + union { + struct { + __u32 blocksize; + __u32 blocks; + } nfs2; + struct { + __u64 used; + } nfs3; + } du; + struct nfs_fsid fsid; + __u64 fileid; + __u64 mounted_on_fileid; + struct timespec64 atime; + struct timespec64 mtime; + struct timespec64 ctime; + __u64 change_attr; + __u64 pre_change_attr; + __u64 pre_size; + struct timespec64 pre_mtime; + struct timespec64 pre_ctime; + long unsigned int time_start; + long unsigned int gencount; + struct nfs4_string *owner_name; + struct nfs4_string *group_name; + struct nfs4_threshold *mdsthreshold; + struct nfs4_label *label; +}; + +struct nfs_fsinfo { + struct nfs_fattr *fattr; + __u32 rtmax; + __u32 rtpref; + __u32 rtmult; + __u32 wtmax; + __u32 wtpref; + __u32 wtmult; + __u32 dtpref; + __u64 maxfilesize; + struct timespec64 time_delta; + __u32 lease_time; + __u32 nlayouttypes; + __u32 layouttype[8]; + __u32 blksize; + __u32 clone_blksize; + enum nfs4_change_attr_type change_attr_type; + __u32 xattr_support; +}; + +struct nfs_fsstat { + struct nfs_fattr *fattr; + __u64 tbytes; + __u64 fbytes; + __u64 abytes; + __u64 tfiles; + __u64 ffiles; + __u64 afiles; +}; + +struct nfs_pathconf { + struct nfs_fattr *fattr; + __u32 max_link; + __u32 max_namelen; +}; + +struct nfs4_change_info { + u32 atomic; + u64 before; + u64 after; +}; + +struct nfs4_slot; + +struct nfs4_sequence_args { + struct nfs4_slot *sa_slot; + u8 sa_cache_this: 1; + u8 sa_privileged: 1; +}; + +struct nfs4_sequence_res { + struct nfs4_slot *sr_slot; + long unsigned int sr_timestamp; + int sr_status; + u32 sr_status_flags; + u32 sr_highest_slotid; + u32 sr_target_highest_slotid; +}; + +struct nfs_open_context; + +struct nfs_lock_context { + refcount_t count; + struct list_head list; + struct nfs_open_context *open_context; + fl_owner_t lockowner; + atomic_t io_count; + struct callback_head callback_head; +}; + +struct nfs_open_context { + struct nfs_lock_context lock_context; + fl_owner_t flock_owner; + struct dentry *dentry; + const struct cred *cred; + struct rpc_cred *ll_cred; + struct nfs4_state *state; + fmode_t mode; + long unsigned int flags; + int error; + struct list_head list; + struct nfs4_threshold *mdsthreshold; + struct callback_head callback_head; +}; + +struct nlm_host; + +struct nfs_iostats; + +struct nfs_auth_info { + unsigned int flavor_len; + rpc_authflavor_t flavors[12]; +}; + +struct nfs_fscache_key; + +struct fscache_cookie; + +struct pnfs_layoutdriver_type; + +struct nfs_client; + +struct nfs_server { + struct nfs_client *nfs_client; + struct list_head client_link; + struct list_head master_link; + struct rpc_clnt *client; + struct rpc_clnt *client_acl; + struct nlm_host *nlm_host; + struct nfs_iostats *io_stats; + atomic_long_t writeback; + unsigned int flags; + unsigned int fattr_valid; + unsigned int caps; + unsigned int rsize; + unsigned int rpages; + unsigned int wsize; + unsigned int wpages; + unsigned int wtmult; + unsigned int dtsize; + short unsigned int port; + unsigned int bsize; + unsigned int gxasize; + unsigned int sxasize; + unsigned int lxasize; + unsigned int acregmin; + unsigned int acregmax; + unsigned int acdirmin; + unsigned int acdirmax; + unsigned int namelen; + unsigned int options; + unsigned int clone_blksize; + enum nfs4_change_attr_type change_attr_type; + struct nfs_fsid fsid; + __u64 maxfilesize; + struct timespec64 time_delta; + long unsigned int mount_time; + struct super_block *super; + dev_t s_dev; + struct nfs_auth_info auth_info; + struct nfs_fscache_key *fscache_key; + struct fscache_cookie *fscache; + u32 pnfs_blksize; + u32 attr_bitmask[3]; + u32 attr_bitmask_nl[3]; + u32 exclcreat_bitmask[3]; + u32 cache_consistency_bitmask[3]; + u32 acl_bitmask; + u32 fh_expire_type; + struct pnfs_layoutdriver_type *pnfs_curr_ld; + struct rpc_wait_queue roc_rpcwaitq; + void *pnfs_ld_data; + struct rb_root state_owners; + struct ida openowner_id; + struct ida lockowner_id; + struct list_head state_owners_lru; + struct list_head layouts; + struct list_head delegations; + struct list_head ss_copies; + struct list_head ss_src_copies; + long unsigned int mig_gen; + long unsigned int mig_status; + void (*destroy)(struct nfs_server *); + atomic_t active; + struct __kernel_sockaddr_storage mountd_address; + size_t mountd_addrlen; + u32 mountd_version; + short unsigned int mountd_port; + short unsigned int mountd_protocol; + struct rpc_wait_queue uoc_rpcwaitq; + unsigned int read_hdrsize; + const struct cred *cred; + bool has_sec_mnt_opts; +}; + +struct nfs_subversion; + +struct idmap; + +struct nfs4_slot_table; + +struct nfs4_session; + +struct nfs_rpc_ops; + +struct nfs4_minor_version_ops; + +struct nfs41_server_owner; + +struct nfs41_server_scope; + +struct nfs41_impl_id; + +struct nfs_client { + refcount_t cl_count; + atomic_t cl_mds_count; + int cl_cons_state; + long unsigned int cl_res_state; + long unsigned int cl_flags; + struct __kernel_sockaddr_storage cl_addr; + size_t cl_addrlen; + char *cl_hostname; + char *cl_acceptor; + struct list_head cl_share_link; + struct list_head cl_superblocks; + struct rpc_clnt *cl_rpcclient; + const struct nfs_rpc_ops *rpc_ops; + int cl_proto; + struct nfs_subversion *cl_nfs_mod; + u32 cl_minorversion; + unsigned int cl_nconnect; + unsigned int cl_max_connect; + const char *cl_principal; + struct list_head cl_ds_clients; + u64 cl_clientid; + nfs4_verifier cl_confirm; + long unsigned int cl_state; + spinlock_t cl_lock; + long unsigned int cl_lease_time; + long unsigned int cl_last_renewal; + struct delayed_work cl_renewd; + struct rpc_wait_queue cl_rpcwaitq; + struct idmap *cl_idmap; + const char *cl_owner_id; + u32 cl_cb_ident; + const struct nfs4_minor_version_ops *cl_mvops; + long unsigned int cl_mig_gen; + struct nfs4_slot_table *cl_slot_tbl; + u32 cl_seqid; + u32 cl_exchange_flags; + struct nfs4_session *cl_session; + bool cl_preserve_clid; + struct nfs41_server_owner *cl_serverowner; + struct nfs41_server_scope *cl_serverscope; + struct nfs41_impl_id *cl_implid; + long unsigned int cl_sp4_flags; + wait_queue_head_t cl_lock_waitq; + char cl_ipaddr[48]; + struct fscache_cookie *fscache; + struct net *cl_net; + struct list_head pending_cb_stateids; +}; + +struct pnfs_layout_segment; + +struct nfs_seqid { + struct nfs_seqid_counter *sequence; + struct list_head list; + struct rpc_task *task; +}; + +struct nfs_write_verifier { + char data[8]; +}; + +struct nfs_writeverf { + struct nfs_write_verifier verifier; + enum nfs3_stable_how committed; +}; + +struct nfs_pgio_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct nfs_open_context *context; + struct nfs_lock_context *lock_context; + nfs4_stateid stateid; + __u64 offset; + __u32 count; + unsigned int pgbase; + struct page **pages; + union { + unsigned int replen; + struct { + const u32 *bitmask; + u32 bitmask_store[3]; + enum nfs3_stable_how stable; + }; + }; +}; + +struct nfs_pgio_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + __u64 count; + __u32 op_status; + union { + struct { + unsigned int replen; + int eof; + }; + struct { + struct nfs_writeverf *verf; + const struct nfs_server *server; + }; + }; +}; + +struct nfs_commitargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + __u64 offset; + __u32 count; + const u32 *bitmask; +}; + +struct nfs_commitres { + struct nfs4_sequence_res seq_res; + __u32 op_status; + struct nfs_fattr *fattr; + struct nfs_writeverf *verf; + const struct nfs_server *server; +}; + +struct nfs_removeargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + struct qstr name; +}; + +struct nfs_removeres { + struct nfs4_sequence_res seq_res; + struct nfs_server *server; + struct nfs_fattr *dir_attr; + struct nfs4_change_info cinfo; +}; + +struct nfs_renameargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *old_dir; + const struct nfs_fh *new_dir; + const struct qstr *old_name; + const struct qstr *new_name; +}; + +struct nfs_renameres { + struct nfs4_sequence_res seq_res; + struct nfs_server *server; + struct nfs4_change_info old_cinfo; + struct nfs_fattr *old_fattr; + struct nfs4_change_info new_cinfo; + struct nfs_fattr *new_fattr; +}; + +struct nfs_entry { + __u64 ino; + __u64 cookie; + __u64 prev_cookie; + const char *name; + unsigned int len; + int eof; + struct nfs_fh *fh; + struct nfs_fattr *fattr; + struct nfs4_label *label; + unsigned char d_type; + struct nfs_server *server; +}; + +struct nfs_readdir_arg { + struct dentry *dentry; + const struct cred *cred; + __be32 *verf; + u64 cookie; + struct page **pages; + unsigned int page_len; + bool plus; +}; + +struct nfs_readdir_res { + __be32 *verf; +}; + +struct nfs4_pathname { + unsigned int ncomponents; + struct nfs4_string components[512]; +}; + +struct nfs4_fs_location { + unsigned int nservers; + struct nfs4_string servers[10]; + struct nfs4_pathname rootpath; +}; + +struct nfs4_fs_locations { + struct nfs_fattr *fattr; + const struct nfs_server *server; + struct nfs4_pathname fs_path; + int nlocations; + struct nfs4_fs_location locations[10]; +}; + +struct nfstime4 { + u64 seconds; + u32 nseconds; +}; + +struct pnfs_commit_ops; + +struct pnfs_ds_commit_info { + struct list_head commits; + unsigned int nwritten; + unsigned int ncommitting; + const struct pnfs_commit_ops *ops; +}; + +struct nfs41_server_owner { + uint64_t minor_id; + uint32_t major_id_sz; + char major_id[1024]; +}; + +struct nfs41_server_scope { + uint32_t server_scope_sz; + char server_scope[1024]; +}; + +struct nfs41_impl_id { + char domain[1025]; + char name[1025]; + struct nfstime4 date; +}; + +struct nfs_page_array { + struct page **pagevec; + unsigned int npages; + struct page *page_array[8]; +}; + +struct nfs_page; + +struct nfs_rw_ops; + +struct nfs_io_completion; + +struct nfs_direct_req; + +struct nfs_pgio_completion_ops; + +struct nfs_pgio_header { + struct inode *inode; + const struct cred *cred; + struct list_head pages; + struct nfs_page *req; + struct nfs_writeverf verf; + fmode_t rw_mode; + struct pnfs_layout_segment *lseg; + loff_t io_start; + const struct rpc_call_ops *mds_ops; + void (*release)(struct nfs_pgio_header *); + const struct nfs_pgio_completion_ops *completion_ops; + const struct nfs_rw_ops *rw_ops; + struct nfs_io_completion *io_completion; + struct nfs_direct_req *dreq; + int pnfs_error; + int error; + unsigned int good_bytes; + long unsigned int flags; + struct rpc_task task; + struct nfs_fattr fattr; + struct nfs_pgio_args args; + struct nfs_pgio_res res; + long unsigned int timestamp; + int (*pgio_done_cb)(struct rpc_task *, struct nfs_pgio_header *); + __u64 mds_offset; + struct nfs_page_array page_array; + struct nfs_client *ds_clp; + u32 ds_commit_idx; + u32 pgio_mirror_idx; +}; + +struct nfs_pgio_completion_ops { + void (*error_cleanup)(struct list_head *, int); + void (*init_hdr)(struct nfs_pgio_header *); + void (*completion)(struct nfs_pgio_header *); + void (*reschedule_io)(struct nfs_pgio_header *); +}; + +struct nfs_mds_commit_info { + atomic_t rpcs_out; + atomic_long_t ncommit; + struct list_head list; +}; + +struct nfs_commit_data; + +struct nfs_commit_info; + +struct nfs_commit_completion_ops { + void (*completion)(struct nfs_commit_data *); + void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +}; + +struct nfs_commit_data { + struct rpc_task task; + struct inode *inode; + const struct cred *cred; + struct nfs_fattr fattr; + struct nfs_writeverf verf; + struct list_head pages; + struct list_head list; + struct nfs_direct_req *dreq; + struct nfs_commitargs args; + struct nfs_commitres res; + struct nfs_open_context *context; + struct pnfs_layout_segment *lseg; + struct nfs_client *ds_clp; + int ds_commit_index; + loff_t lwb; + const struct rpc_call_ops *mds_ops; + const struct nfs_commit_completion_ops *completion_ops; + int (*commit_done_cb)(struct rpc_task *, struct nfs_commit_data *); + long unsigned int flags; +}; + +struct nfs_commit_info { + struct inode *inode; + struct nfs_mds_commit_info *mds; + struct pnfs_ds_commit_info *ds; + struct nfs_direct_req *dreq; + const struct nfs_commit_completion_ops *completion_ops; +}; + +struct nfs_unlinkdata { + struct nfs_removeargs args; + struct nfs_removeres res; + struct dentry *dentry; + wait_queue_head_t wq; + const struct cred *cred; + struct nfs_fattr dir_attr; + long int timeout; +}; + +struct nfs_renamedata { + struct nfs_renameargs args; + struct nfs_renameres res; + const struct cred *cred; + struct inode *old_dir; + struct dentry *old_dentry; + struct nfs_fattr old_fattr; + struct inode *new_dir; + struct dentry *new_dentry; + struct nfs_fattr new_fattr; + void (*complete)(struct rpc_task *, struct nfs_renamedata *); + long int timeout; + bool cancelled; +}; + +struct nlmclnt_operations; + +struct nfs_client_initdata; + +struct nfs_access_entry; + +struct nfs_rpc_ops { + u32 version; + const struct dentry_operations *dentry_ops; + const struct inode_operations *dir_inode_ops; + const struct inode_operations *file_inode_ops; + const struct file_operations *file_ops; + const struct nlmclnt_operations *nlmclnt_ops; + int (*getroot)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); + int (*submount)(struct fs_context *, struct nfs_server *); + int (*try_get_tree)(struct fs_context *); + int (*getattr)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, struct nfs4_label *, struct inode *); + int (*setattr)(struct dentry *, struct nfs_fattr *, struct iattr *); + int (*lookup)(struct inode *, struct dentry *, struct nfs_fh *, struct nfs_fattr *, struct nfs4_label *); + int (*lookupp)(struct inode *, struct nfs_fh *, struct nfs_fattr *, struct nfs4_label *); + int (*access)(struct inode *, struct nfs_access_entry *); + int (*readlink)(struct inode *, struct page *, unsigned int, unsigned int); + int (*create)(struct inode *, struct dentry *, struct iattr *, int); + int (*remove)(struct inode *, struct dentry *); + void (*unlink_setup)(struct rpc_message *, struct dentry *, struct inode *); + void (*unlink_rpc_prepare)(struct rpc_task *, struct nfs_unlinkdata *); + int (*unlink_done)(struct rpc_task *, struct inode *); + void (*rename_setup)(struct rpc_message *, struct dentry *, struct dentry *); + void (*rename_rpc_prepare)(struct rpc_task *, struct nfs_renamedata *); + int (*rename_done)(struct rpc_task *, struct inode *, struct inode *); + int (*link)(struct inode *, struct inode *, const struct qstr *); + int (*symlink)(struct inode *, struct dentry *, struct page *, unsigned int, struct iattr *); + int (*mkdir)(struct inode *, struct dentry *, struct iattr *); + int (*rmdir)(struct inode *, const struct qstr *); + int (*readdir)(struct nfs_readdir_arg *, struct nfs_readdir_res *); + int (*mknod)(struct inode *, struct dentry *, struct iattr *, dev_t); + int (*statfs)(struct nfs_server *, struct nfs_fh *, struct nfs_fsstat *); + int (*fsinfo)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); + int (*pathconf)(struct nfs_server *, struct nfs_fh *, struct nfs_pathconf *); + int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); + int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, bool); + int (*pgio_rpc_prepare)(struct rpc_task *, struct nfs_pgio_header *); + void (*read_setup)(struct nfs_pgio_header *, struct rpc_message *); + int (*read_done)(struct rpc_task *, struct nfs_pgio_header *); + void (*write_setup)(struct nfs_pgio_header *, struct rpc_message *, struct rpc_clnt **); + int (*write_done)(struct rpc_task *, struct nfs_pgio_header *); + void (*commit_setup)(struct nfs_commit_data *, struct rpc_message *, struct rpc_clnt **); + void (*commit_rpc_prepare)(struct rpc_task *, struct nfs_commit_data *); + int (*commit_done)(struct rpc_task *, struct nfs_commit_data *); + int (*lock)(struct file *, int, struct file_lock *); + int (*lock_check_bounds)(const struct file_lock *); + void (*clear_acl_cache)(struct inode *); + void (*close_context)(struct nfs_open_context *, int); + struct inode * (*open_context)(struct inode *, struct nfs_open_context *, int, struct iattr *, int *); + int (*have_delegation)(struct inode *, fmode_t); + struct nfs_client * (*alloc_client)(const struct nfs_client_initdata *); + struct nfs_client * (*init_client)(struct nfs_client *, const struct nfs_client_initdata *); + void (*free_client)(struct nfs_client *); + struct nfs_server * (*create_server)(struct fs_context *); + struct nfs_server * (*clone_server)(struct nfs_server *, struct nfs_fh *, struct nfs_fattr *, rpc_authflavor_t); + int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); + void (*enable_swap)(struct inode *); + void (*disable_swap)(struct inode *); +}; + +struct nfs_access_entry { + struct rb_node rb_node; + struct list_head lru; + const struct cred *cred; + u64 timestamp; + __u32 mask; + struct callback_head callback_head; +}; + +struct nfs4_state_recovery_ops; + +struct nfs4_state_maintenance_ops; + +struct nfs4_mig_recovery_ops; + +struct nfs4_minor_version_ops { + u32 minor_version; + unsigned int init_caps; + int (*init_client)(struct nfs_client *); + void (*shutdown_client)(struct nfs_client *); + bool (*match_stateid)(const nfs4_stateid *, const nfs4_stateid *); + int (*find_root_sec)(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *); + void (*free_lock_state)(struct nfs_server *, struct nfs4_lock_state *); + int (*test_and_free_expired)(struct nfs_server *, nfs4_stateid *, const struct cred *); + struct nfs_seqid * (*alloc_seqid)(struct nfs_seqid_counter *, gfp_t); + void (*session_trunk)(struct rpc_clnt *, struct rpc_xprt *, void *); + const struct rpc_call_ops *call_sync_ops; + const struct nfs4_state_recovery_ops *reboot_recovery_ops; + const struct nfs4_state_recovery_ops *nograce_recovery_ops; + const struct nfs4_state_maintenance_ops *state_renewal_ops; + const struct nfs4_mig_recovery_ops *mig_recovery_ops; +}; + +struct nfs4_state_owner; + +struct nfs4_state { + struct list_head open_states; + struct list_head inode_states; + struct list_head lock_states; + struct nfs4_state_owner *owner; + struct inode *inode; + long unsigned int flags; + spinlock_t state_lock; + seqlock_t seqlock; + nfs4_stateid stateid; + nfs4_stateid open_stateid; + unsigned int n_rdonly; + unsigned int n_wronly; + unsigned int n_rdwr; + fmode_t state; + refcount_t count; + wait_queue_head_t waitq; + struct callback_head callback_head; +}; + +struct cache_head { + struct hlist_node cache_list; + time64_t expiry_time; + time64_t last_refresh; + struct kref ref; + long unsigned int flags; +}; + +struct cache_deferred_req; + +struct cache_req { + struct cache_deferred_req * (*defer)(struct cache_req *); + int thread_wait; +}; + +struct cache_deferred_req { + struct hlist_node hash; + struct list_head recent; + struct cache_head *item; + void *owner; + void (*revisit)(struct cache_deferred_req *, int); +}; + +struct svc_cred { + kuid_t cr_uid; + kgid_t cr_gid; + struct group_info *cr_group_info; + u32 cr_flavor; + char *cr_raw_principal; + char *cr_principal; + char *cr_targ_princ; + struct gss_api_mech *cr_gss_mech; +}; + +struct auth_ops { + char *name; + struct module *owner; + int flavour; + int (*accept)(struct svc_rqst *); + int (*release)(struct svc_rqst *); + void (*domain_release)(struct auth_domain *); + int (*set_client)(struct svc_rqst *); +}; + +struct svc_cacherep; + +struct svc_procedure; + +struct svc_deferred_req; + +struct svc_rqst { + struct list_head rq_all; + struct callback_head rq_rcu_head; + struct svc_xprt *rq_xprt; + struct __kernel_sockaddr_storage rq_addr; + size_t rq_addrlen; + struct __kernel_sockaddr_storage rq_daddr; + size_t rq_daddrlen; + struct svc_serv *rq_server; + struct svc_pool *rq_pool; + const struct svc_procedure *rq_procinfo; + struct auth_ops *rq_authop; + struct svc_cred rq_cred; + void *rq_xprt_ctxt; + struct svc_deferred_req *rq_deferred; + struct xdr_buf rq_arg; + struct xdr_stream rq_arg_stream; + struct xdr_stream rq_res_stream; + struct page *rq_scratch_page; + struct xdr_buf rq_res; + struct page *rq_pages[260]; + struct page **rq_respages; + struct page **rq_next_page; + struct page **rq_page_end; + struct pagevec rq_pvec; + struct kvec rq_vec[259]; + struct bio_vec rq_bvec[259]; + __be32 rq_xid; + u32 rq_prog; + u32 rq_vers; + u32 rq_proc; + u32 rq_prot; + int rq_cachetype; + long unsigned int rq_flags; + ktime_t rq_qtime; + void *rq_argp; + void *rq_resp; + void *rq_auth_data; + __be32 rq_auth_stat; + int rq_auth_slack; + int rq_reserved; + ktime_t rq_stime; + struct cache_req rq_chandle; + struct auth_domain *rq_client; + struct auth_domain *rq_gssclient; + struct svc_cacherep *rq_cacherep; + struct task_struct *rq_task; + spinlock_t rq_lock; + struct net *rq_bc_net; + void **rq_lease_breaker; +}; + +struct svc_pool_stats { + atomic_long_t packets; + long unsigned int sockets_queued; + atomic_long_t threads_woken; + atomic_long_t threads_timedout; +}; + +struct svc_pool { + unsigned int sp_id; + spinlock_t sp_lock; + struct list_head sp_sockets; + unsigned int sp_nrthreads; + struct list_head sp_all_threads; + struct svc_pool_stats sp_stats; + long unsigned int sp_flags; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct svc_procedure { + __be32 (*pc_func)(struct svc_rqst *); + bool (*pc_decode)(struct svc_rqst *, struct xdr_stream *); + bool (*pc_encode)(struct svc_rqst *, struct xdr_stream *); + void (*pc_release)(struct svc_rqst *); + unsigned int pc_argsize; + unsigned int pc_argzero; + unsigned int pc_ressize; + unsigned int pc_cachetype; + unsigned int pc_xdrressize; + const char *pc_name; +}; + +struct svc_deferred_req { + u32 prot; + struct svc_xprt *xprt; + struct __kernel_sockaddr_storage addr; + size_t addrlen; + struct __kernel_sockaddr_storage daddr; + size_t daddrlen; + void *xprt_ctxt; + struct cache_deferred_req handle; + int argslen; + __be32 args[0]; +}; + +struct svc_process_info { + union { + int (*dispatch)(struct svc_rqst *, __be32 *); + struct { + unsigned int lovers; + unsigned int hivers; + } mismatch; + }; +}; + +struct svc_version { + u32 vs_vers; + u32 vs_nproc; + const struct svc_procedure *vs_proc; + unsigned int *vs_count; + u32 vs_xdrsize; + bool vs_hidden; + bool vs_rpcb_optnl; + bool vs_need_cong_ctrl; + int (*vs_dispatch)(struct svc_rqst *, __be32 *); +}; + +struct nfs4_ssc_client_ops; + +struct nfs_ssc_client_ops; + +struct nfs_ssc_client_ops_tbl { + const struct nfs4_ssc_client_ops *ssc_nfs4_ops; + const struct nfs_ssc_client_ops *ssc_nfs_ops; +}; + +struct nfs4_ssc_client_ops { + struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); + void (*sco_close)(struct file *); +}; + +struct nfs_ssc_client_ops { + void (*sco_sb_deactive)(struct super_block *); +}; + +struct nfs4_state_recovery_ops { + int owner_flag_bit; + int state_flag_bit; + int (*recover_open)(struct nfs4_state_owner *, struct nfs4_state *); + int (*recover_lock)(struct nfs4_state *, struct file_lock *); + int (*establish_clid)(struct nfs_client *, const struct cred *); + int (*reclaim_complete)(struct nfs_client *, const struct cred *); + int (*detect_trunking)(struct nfs_client *, struct nfs_client **, const struct cred *); +}; + +struct nfs4_state_maintenance_ops { + int (*sched_state_renewal)(struct nfs_client *, const struct cred *, unsigned int); + const struct cred * (*get_state_renewal_cred)(struct nfs_client *); + int (*renew_lease)(struct nfs_client *, const struct cred *); +}; + +struct nfs4_mig_recovery_ops { + int (*get_locations)(struct nfs_server *, struct nfs_fh *, struct nfs4_fs_locations *, struct page *, const struct cred *); + int (*fsid_present)(struct inode *, const struct cred *); +}; + +struct nfs4_state_owner { + struct nfs_server *so_server; + struct list_head so_lru; + long unsigned int so_expires; + struct rb_node so_server_node; + const struct cred *so_cred; + spinlock_t so_lock; + atomic_t so_count; + long unsigned int so_flags; + struct list_head so_states; + struct nfs_seqid_counter so_seqid; + seqcount_spinlock_t so_reclaim_seqcount; + struct mutex so_delegreturn_mutex; +}; + struct core_name { char *corename; int used; @@ -48442,8 +54406,8 @@ struct trace_event_raw_iomap_range_class { dev_t dev; u64 ino; loff_t size; - long unsigned int offset; - unsigned int length; + loff_t offset; + u64 length; char __data[0]; }; @@ -48460,15 +54424,14 @@ struct trace_event_raw_iomap_class { char __data[0]; }; -struct trace_event_raw_iomap_apply { +struct trace_event_raw_iomap_iter { struct trace_entry ent; dev_t dev; u64 ino; loff_t pos; - loff_t length; + u64 length; unsigned int flags; const void *ops; - void *actor; long unsigned int caller; char __data[0]; }; @@ -48479,27 +54442,31 @@ struct trace_event_data_offsets_iomap_range_class {}; struct trace_event_data_offsets_iomap_class {}; -struct trace_event_data_offsets_iomap_apply {}; +struct trace_event_data_offsets_iomap_iter {}; typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); -typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, long unsigned int, unsigned int); +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); -typedef void (*btf_trace_iomap_releasepage)(void *, struct inode *, long unsigned int, unsigned int); +typedef void (*btf_trace_iomap_releasepage)(void *, struct inode *, loff_t, u64); -typedef void (*btf_trace_iomap_invalidatepage)(void *, struct inode *, long unsigned int, unsigned int); +typedef void (*btf_trace_iomap_invalidatepage)(void *, struct inode *, loff_t, u64); -typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, long unsigned int, unsigned int); +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); -typedef void (*btf_trace_iomap_apply_dstmap)(void *, struct inode *, struct iomap *); +typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); -typedef void (*btf_trace_iomap_apply_srcmap)(void *, struct inode *, struct iomap *); +typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); -typedef void (*btf_trace_iomap_apply)(void *, struct inode *, loff_t, loff_t, unsigned int, const void *, void *, long unsigned int); +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, long unsigned int); -typedef loff_t (*iomap_actor_t)(struct inode *, loff_t, loff_t, void *, struct iomap *, struct iomap *); +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, +}; struct iomap_ioend { struct list_head io_list; @@ -48508,7 +54475,6 @@ struct iomap_ioend { struct inode *io_inode; size_t io_size; loff_t io_offset; - void *io_private; struct bio *io_bio; struct bio io_inline_bio; }; @@ -48527,6 +54493,8 @@ struct iomap_writepage_ctx { const struct iomap_writeback_ops *ops; }; +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); + struct iomap_page { atomic_t read_bytes_pending; atomic_t write_bytes_pending; @@ -48541,13 +54509,9 @@ struct iomap_readpage_ctx { struct readahead_control *rac; }; -enum { - IOMAP_WRITE_F_UNSHARE = 1, -}; - struct iomap_dio_ops { int (*end_io)(struct kiocb *, ssize_t, int, unsigned int); - blk_qc_t (*submit_io)(struct inode *, struct iomap *, struct bio *, loff_t); + blk_qc_t (*submit_io)(const struct iomap_iter *, struct bio *, loff_t); }; struct iomap_dio { @@ -48558,6 +54522,7 @@ struct iomap_dio { atomic_t ref; unsigned int flags; int error; + size_t done_before; bool wait_for_completion; union { struct { @@ -48572,11 +54537,6 @@ struct iomap_dio { }; }; -struct fiemap_ctx { - struct fiemap_extent_info *fi; - struct iomap prev; -}; - struct iomap_swapfile_info { struct iomap iomap; struct swap_info_struct *sis; @@ -48584,6 +54544,7 @@ struct iomap_swapfile_info { uint64_t highest_ppage; long unsigned int nr_pages; int nr_extents; + struct file *file; }; enum { @@ -48694,7 +54655,10 @@ struct fs_quota_statv { __s32 qs_rtbtimelimit; __u16 qs_bwarnlimit; __u16 qs_iwarnlimit; - __u64 qs_pad2[8]; + __u16 qs_rtbwarnlimit; + __u16 qs_pad3; + __u32 qs_pad4; + __u64 qs_pad2[7]; }; struct if_dqblk { @@ -48890,6 +54854,12 @@ struct syscall_info { typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); +enum proc_mem_force { + PROC_MEM_FORCE_ALWAYS = 0, + PROC_MEM_FORCE_PTRACE = 1, + PROC_MEM_FORCE_NEVER = 2, +}; + struct pid_entry { const char *name; unsigned int len; @@ -48937,8 +54907,6 @@ struct seq_net_private { struct net *net; }; -struct bpf_iter_aux_info; - struct vmcore { struct list_head list; long long unsigned int paddr; @@ -48946,8 +54914,34 @@ struct vmcore { loff_t offset; }; +struct vmcoredd_node { + struct list_head list; + void *buf; + unsigned int size; +}; + +typedef struct elf32_hdr Elf32_Ehdr; + +typedef struct elf32_phdr Elf32_Phdr; + +typedef struct elf32_note Elf32_Nhdr; + typedef struct elf64_note Elf64_Nhdr; +struct vmcoredd_header { + __u32 n_namesz; + __u32 n_descsz; + __u32 n_type; + __u8 name[8]; + __u8 dump_name[44]; +}; + +struct vmcoredd_data { + char dump_name[44]; + unsigned int size; + int (*vmcoredd_callback)(struct vmcoredd_data *, void *); +}; + struct kernfs_iattrs { kuid_t ia_uid; kgid_t ia_gid; @@ -48985,6 +54979,122 @@ struct kernfs_open_node { struct list_head files; }; +struct config_group; + +struct config_item_type; + +struct config_item { + char *ci_name; + char ci_namebuf[20]; + struct kref ci_kref; + struct list_head ci_entry; + struct config_item *ci_parent; + struct config_group *ci_group; + const struct config_item_type *ci_type; + struct dentry *ci_dentry; +}; + +struct configfs_subsystem; + +struct config_group { + struct config_item cg_item; + struct list_head cg_children; + struct configfs_subsystem *cg_subsys; + struct list_head default_groups; + struct list_head group_entry; +}; + +struct configfs_item_operations; + +struct configfs_group_operations; + +struct configfs_attribute; + +struct configfs_bin_attribute; + +struct config_item_type { + struct module *ct_owner; + struct configfs_item_operations *ct_item_ops; + struct configfs_group_operations *ct_group_ops; + struct configfs_attribute **ct_attrs; + struct configfs_bin_attribute **ct_bin_attrs; +}; + +struct configfs_item_operations { + void (*release)(struct config_item *); + int (*allow_link)(struct config_item *, struct config_item *); + void (*drop_link)(struct config_item *, struct config_item *); +}; + +struct configfs_group_operations { + struct config_item * (*make_item)(struct config_group *, const char *); + struct config_group * (*make_group)(struct config_group *, const char *); + int (*commit_item)(struct config_item *); + void (*disconnect_notify)(struct config_group *, struct config_item *); + void (*drop_item)(struct config_group *, struct config_item *); +}; + +struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + umode_t ca_mode; + ssize_t (*show)(struct config_item *, char *); + ssize_t (*store)(struct config_item *, const char *, size_t); +}; + +struct configfs_bin_attribute { + struct configfs_attribute cb_attr; + void *cb_private; + size_t cb_max_size; + ssize_t (*read)(struct config_item *, void *, size_t); + ssize_t (*write)(struct config_item *, const void *, size_t); +}; + +struct configfs_subsystem { + struct config_group su_group; + struct mutex su_mutex; +}; + +struct configfs_fragment { + atomic_t frag_count; + struct rw_semaphore frag_sem; + bool frag_dead; +}; + +struct configfs_dirent { + atomic_t s_count; + int s_dependent_count; + struct list_head s_sibling; + struct list_head s_children; + int s_links; + void *s_element; + int s_type; + umode_t s_mode; + struct dentry *s_dentry; + struct iattr *s_iattr; + struct configfs_fragment *s_frag; +}; + +struct configfs_buffer { + size_t count; + loff_t pos; + char *page; + struct configfs_item_operations *ops; + struct mutex mutex; + int needs_read_fill; + bool read_in_progress; + bool write_in_progress; + char *bin_buffer; + int bin_buffer_size; + int cb_max_size; + struct config_item *item; + struct module *owner; + union { + struct configfs_attribute *attr; + struct configfs_bin_attribute *bin_attr; + }; +}; + struct pts_mount_opts { int setuid; int setgid; @@ -49013,13 +55123,3953 @@ struct pts_fs_info { struct dentry *ptmx_dentry; }; -struct dcookie_struct { - struct path path; - struct list_head hash_list; +typedef unsigned int tid_t; + +struct transaction_chp_stats_s { + long unsigned int cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; }; -struct dcookie_user { - struct list_head next; +struct journal_s; + +typedef struct journal_s journal_t; + +struct journal_head; + +struct transaction_s; + +typedef struct transaction_s transaction_t; + +struct transaction_s { + journal_t *t_journal; + tid_t t_tid; + enum { + T_RUNNING = 0, + T_LOCKED = 1, + T_SWITCH = 2, + T_FLUSH = 3, + T_COMMIT = 4, + T_COMMIT_DFLUSH = 5, + T_COMMIT_JFLUSH = 6, + T_COMMIT_CALLBACK = 7, + T_FINISHED = 8, + } t_state; + long unsigned int t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + spinlock_t t_handle_lock; + long unsigned int t_max_wait; + long unsigned int t_start; + long unsigned int t_requested; + struct transaction_chp_stats_s t_chp_stats; + atomic_t t_updates; + atomic_t t_outstanding_credits; + atomic_t t_outstanding_revokes; + atomic_t t_handle_count; + transaction_t *t_cpnext; + transaction_t *t_cpprev; + long unsigned int t_expires; + ktime_t t_start_time; + unsigned int t_synchronous_commit: 1; + int t_need_data_flush; + struct list_head t_private_list; +}; + +struct jbd2_buffer_trigger_type; + +struct journal_head { + struct buffer_head *b_bh; + spinlock_t b_state_lock; + int b_jcount; + unsigned int b_jlist; + unsigned int b_modified; + char *b_frozen_data; + char *b_committed_data; + transaction_t *b_transaction; + transaction_t *b_next_transaction; + struct journal_head *b_tnext; + struct journal_head *b_tprev; + transaction_t *b_cp_transaction; + struct journal_head *b_cpnext; + struct journal_head *b_cpprev; + struct jbd2_buffer_trigger_type *b_triggers; + struct jbd2_buffer_trigger_type *b_frozen_triggers; +}; + +struct jbd2_buffer_trigger_type { + void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t); + void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *); +}; + +struct jbd2_journal_handle; + +typedef struct jbd2_journal_handle handle_t; + +struct jbd2_journal_handle { + union { + transaction_t *h_transaction; + journal_t *h_journal; + }; + handle_t *h_rsv_handle; + int h_total_credits; + int h_revoke_credits; + int h_revoke_credits_requested; + int h_ref; + int h_err; + unsigned int h_sync: 1; + unsigned int h_jdata: 1; + unsigned int h_reserved: 1; + unsigned int h_aborted: 1; + unsigned int h_type: 8; + unsigned int h_line_no: 16; + long unsigned int h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; +}; + +struct transaction_run_stats_s { + long unsigned int rs_wait; + long unsigned int rs_request_delay; + long unsigned int rs_running; + long unsigned int rs_locked; + long unsigned int rs_flushing; + long unsigned int rs_logging; + __u32 rs_handle_count; + __u32 rs_blocks; + __u32 rs_blocks_logged; +}; + +struct transaction_stats_s { + long unsigned int ts_tid; + long unsigned int ts_requested; + struct transaction_run_stats_s run; +}; + +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, +}; + +struct journal_superblock_s; + +typedef struct journal_superblock_s journal_superblock_t; + +struct jbd2_revoke_table_s; + +struct jbd2_inode; + +struct journal_s { + long unsigned int j_flags; + long unsigned int j_atomic_flags; + int j_errno; + struct mutex j_abort_mutex; + struct buffer_head *j_sb_buffer; + journal_superblock_t *j_superblock; + int j_format_version; + rwlock_t j_state_lock; + int j_barrier_count; + struct mutex j_barrier; + transaction_t *j_running_transaction; + transaction_t *j_committing_transaction; + transaction_t *j_checkpoint_transactions; + wait_queue_head_t j_wait_transaction_locked; + wait_queue_head_t j_wait_done_commit; + wait_queue_head_t j_wait_commit; + wait_queue_head_t j_wait_updates; + wait_queue_head_t j_wait_reserved; + wait_queue_head_t j_fc_wait; + struct mutex j_checkpoint_mutex; + struct buffer_head *j_chkpt_bhs[64]; + struct shrinker j_shrinker; + struct percpu_counter j_checkpoint_jh_count; + transaction_t *j_shrink_transaction; + long unsigned int j_head; + long unsigned int j_tail; + long unsigned int j_free; + long unsigned int j_first; + long unsigned int j_last; + long unsigned int j_fc_first; + long unsigned int j_fc_off; + long unsigned int j_fc_last; + struct block_device *j_dev; + int j_blocksize; + long long unsigned int j_blk_offset; + char j_devname[56]; + struct block_device *j_fs_dev; + unsigned int j_total_len; + atomic_t j_reserved_credits; + spinlock_t j_list_lock; + struct inode *j_inode; + tid_t j_tail_sequence; + tid_t j_transaction_sequence; + tid_t j_commit_sequence; + tid_t j_commit_request; + __u8 j_uuid[16]; + struct task_struct *j_task; + int j_max_transaction_buffers; + int j_revoke_records_per_block; + long unsigned int j_commit_interval; + struct timer_list j_commit_timer; + spinlock_t j_revoke_lock; + struct jbd2_revoke_table_s *j_revoke; + struct jbd2_revoke_table_s *j_revoke_table[2]; + struct buffer_head **j_wbuf; + struct buffer_head **j_fc_wbuf; + int j_wbufsize; + int j_fc_wbufsize; + pid_t j_last_sync_writer; + u64 j_average_commit_time; + u32 j_min_batch_time; + u32 j_max_batch_time; + void (*j_commit_callback)(journal_t *, transaction_t *); + int (*j_submit_inode_data_buffers)(struct jbd2_inode *); + int (*j_finish_inode_data_buffers)(struct jbd2_inode *); + spinlock_t j_history_lock; + struct proc_dir_entry *j_proc_entry; + struct transaction_stats_s j_stats; + unsigned int j_failed_commit; + void *j_private; + struct crypto_shash *j_chksum_driver; + __u32 j_csum_seed; + void (*j_fc_cleanup_callback)(struct journal_s *, int, tid_t); + int (*j_fc_replay_callback)(struct journal_s *, struct buffer_head *, enum passtype, int, tid_t); +}; + +struct journal_header_s { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; +}; + +typedef struct journal_header_s journal_header_t; + +struct journal_superblock_s { + journal_header_t s_header; + __be32 s_blocksize; + __be32 s_maxlen; + __be32 s_first; + __be32 s_sequence; + __be32 s_start; + __be32 s_errno; + __be32 s_feature_compat; + __be32 s_feature_incompat; + __be32 s_feature_ro_compat; + __u8 s_uuid[16]; + __be32 s_nr_users; + __be32 s_dynsuper; + __be32 s_max_transaction; + __be32 s_max_trans_data; + __u8 s_checksum_type; + __u8 s_padding2[3]; + __be32 s_num_fc_blks; + __u32 s_padding[41]; + __be32 s_checksum; + __u8 s_users[768]; +}; + +enum jbd_state_bits { + BH_JBD = 16, + BH_JWrite = 17, + BH_Freed = 18, + BH_Revoked = 19, + BH_RevokeValid = 20, + BH_JBDDirty = 21, + BH_JournalHead = 22, + BH_Shadow = 23, + BH_Verified = 24, + BH_JBDPrivateStart = 25, +}; + +struct jbd2_inode { + transaction_t *i_transaction; + transaction_t *i_next_transaction; + struct list_head i_list; + struct inode *i_vfs_inode; + long unsigned int i_flags; + loff_t i_dirty_start; + loff_t i_dirty_end; +}; + +struct bgl_lock { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct blockgroup_lock { + struct bgl_lock locks[128]; +}; + +typedef int ext4_grpblk_t; + +typedef long long unsigned int ext4_fsblk_t; + +typedef __u32 ext4_lblk_t; + +typedef unsigned int ext4_group_t; + +struct ext4_allocation_request { + struct inode *inode; + unsigned int len; + ext4_lblk_t logical; + ext4_lblk_t lleft; + ext4_lblk_t lright; + ext4_fsblk_t goal; + ext4_fsblk_t pleft; + ext4_fsblk_t pright; + unsigned int flags; +}; + +struct ext4_system_blocks { + struct rb_root root; + struct callback_head rcu; +}; + +struct ext4_group_desc { + __le32 bg_block_bitmap_lo; + __le32 bg_inode_bitmap_lo; + __le32 bg_inode_table_lo; + __le16 bg_free_blocks_count_lo; + __le16 bg_free_inodes_count_lo; + __le16 bg_used_dirs_count_lo; + __le16 bg_flags; + __le32 bg_exclude_bitmap_lo; + __le16 bg_block_bitmap_csum_lo; + __le16 bg_inode_bitmap_csum_lo; + __le16 bg_itable_unused_lo; + __le16 bg_checksum; + __le32 bg_block_bitmap_hi; + __le32 bg_inode_bitmap_hi; + __le32 bg_inode_table_hi; + __le16 bg_free_blocks_count_hi; + __le16 bg_free_inodes_count_hi; + __le16 bg_used_dirs_count_hi; + __le16 bg_itable_unused_hi; + __le32 bg_exclude_bitmap_hi; + __le16 bg_block_bitmap_csum_hi; + __le16 bg_inode_bitmap_csum_hi; + __u32 bg_reserved; +}; + +struct flex_groups { + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; +}; + +struct extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + ext4_fsblk_t es_pblk; +}; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; +}; + +struct ext4_es_stats { + long unsigned int es_stats_shrunk; + struct percpu_counter es_stats_cache_hits; + struct percpu_counter es_stats_cache_misses; + u64 es_stats_scan_time; + u64 es_stats_max_scan_time; + struct percpu_counter es_stats_all_cnt; + struct percpu_counter es_stats_shk_cnt; +}; + +struct ext4_pending_tree { + struct rb_root root; +}; + +struct ext4_fc_stats { + unsigned int fc_ineligible_reason_count[10]; + long unsigned int fc_num_commits; + long unsigned int fc_ineligible_commits; + long unsigned int fc_failed_commits; + long unsigned int fc_skipped_commits; + long unsigned int fc_numblks; + u64 s_fc_avg_commit_time; +}; + +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + int ino; + int len; +}; + +struct ext4_fc_replay_state { + int fc_replay_num_tags; + int fc_replay_expected_off; + int fc_current_pass; + int fc_cur_tag; + int fc_crc; + struct ext4_fc_alloc_region *fc_regions; + int fc_regions_size; + int fc_regions_used; + int fc_regions_valid; + int *fc_modified_inodes; + int fc_modified_inodes_used; + int fc_modified_inodes_size; +}; + +struct ext4_inode_info { + __le32 i_data[15]; + __u32 i_dtime; + ext4_fsblk_t i_file_acl; + ext4_group_t i_block_group; + ext4_lblk_t i_dir_start_lookup; + long unsigned int i_flags; + struct rw_semaphore xattr_sem; + union { + struct list_head i_orphan; + unsigned int i_orphan_idx; + }; + struct list_head i_fc_list; + ext4_lblk_t i_fc_lblk_start; + ext4_lblk_t i_fc_lblk_len; + atomic_t i_fc_updates; + wait_queue_head_t i_fc_wait; + struct mutex i_fc_lock; + loff_t i_disksize; + struct rw_semaphore i_data_sem; + struct inode vfs_inode; + struct jbd2_inode *jinode; + spinlock_t i_raw_lock; + struct timespec64 i_crtime; + atomic_t i_prealloc_active; + struct list_head i_prealloc_list; + spinlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + unsigned int i_reserved_data_blocks; + struct ext4_pending_tree i_pending_tree; + __u16 i_extra_isize; + u16 i_inline_off; + u16 i_inline_size; + qsize_t i_reserved_quota; + spinlock_t i_completed_io_lock; + struct list_head i_rsv_conversion_list; + struct work_struct i_rsv_conversion_work; + atomic_t i_unwritten; + spinlock_t i_block_reservation_lock; + tid_t i_sync_tid; + tid_t i_datasync_tid; + struct dquot *i_dquot[3]; + __u32 i_csum_seed; + kprojid_t i_projid; +}; + +struct ext4_super_block { + __le32 s_inodes_count; + __le32 s_blocks_count_lo; + __le32 s_r_blocks_count_lo; + __le32 s_free_blocks_count_lo; + __le32 s_free_inodes_count; + __le32 s_first_data_block; + __le32 s_log_block_size; + __le32 s_log_cluster_size; + __le32 s_blocks_per_group; + __le32 s_clusters_per_group; + __le32 s_inodes_per_group; + __le32 s_mtime; + __le32 s_wtime; + __le16 s_mnt_count; + __le16 s_max_mnt_count; + __le16 s_magic; + __le16 s_state; + __le16 s_errors; + __le16 s_minor_rev_level; + __le32 s_lastcheck; + __le32 s_checkinterval; + __le32 s_creator_os; + __le32 s_rev_level; + __le16 s_def_resuid; + __le16 s_def_resgid; + __le32 s_first_ino; + __le16 s_inode_size; + __le16 s_block_group_nr; + __le32 s_feature_compat; + __le32 s_feature_incompat; + __le32 s_feature_ro_compat; + __u8 s_uuid[16]; + char s_volume_name[16]; + char s_last_mounted[64]; + __le32 s_algorithm_usage_bitmap; + __u8 s_prealloc_blocks; + __u8 s_prealloc_dir_blocks; + __le16 s_reserved_gdt_blocks; + __u8 s_journal_uuid[16]; + __le32 s_journal_inum; + __le32 s_journal_dev; + __le32 s_last_orphan; + __le32 s_hash_seed[4]; + __u8 s_def_hash_version; + __u8 s_jnl_backup_type; + __le16 s_desc_size; + __le32 s_default_mount_opts; + __le32 s_first_meta_bg; + __le32 s_mkfs_time; + __le32 s_jnl_blocks[17]; + __le32 s_blocks_count_hi; + __le32 s_r_blocks_count_hi; + __le32 s_free_blocks_count_hi; + __le16 s_min_extra_isize; + __le16 s_want_extra_isize; + __le32 s_flags; + __le16 s_raid_stride; + __le16 s_mmp_update_interval; + __le64 s_mmp_block; + __le32 s_raid_stripe_width; + __u8 s_log_groups_per_flex; + __u8 s_checksum_type; + __u8 s_encryption_level; + __u8 s_reserved_pad; + __le64 s_kbytes_written; + __le32 s_snapshot_inum; + __le32 s_snapshot_id; + __le64 s_snapshot_r_blocks_count; + __le32 s_snapshot_list; + __le32 s_error_count; + __le32 s_first_error_time; + __le32 s_first_error_ino; + __le64 s_first_error_block; + __u8 s_first_error_func[32]; + __le32 s_first_error_line; + __le32 s_last_error_time; + __le32 s_last_error_ino; + __le32 s_last_error_line; + __le64 s_last_error_block; + __u8 s_last_error_func[32]; + __u8 s_mount_opts[64]; + __le32 s_usr_quota_inum; + __le32 s_grp_quota_inum; + __le32 s_overhead_clusters; + __le32 s_backup_bgs[2]; + __u8 s_encrypt_algos[4]; + __u8 s_encrypt_pw_salt[16]; + __le32 s_lpf_ino; + __le32 s_prj_quota_inum; + __le32 s_checksum_seed; + __u8 s_wtime_hi; + __u8 s_mtime_hi; + __u8 s_mkfs_time_hi; + __u8 s_lastcheck_hi; + __u8 s_first_error_time_hi; + __u8 s_last_error_time_hi; + __u8 s_first_error_errcode; + __u8 s_last_error_errcode; + __le16 s_encoding; + __le16 s_encoding_flags; + __le32 s_orphan_file_inum; + __le32 s_reserved[94]; + __le32 s_checksum; +}; + +struct ext4_journal_trigger { + struct jbd2_buffer_trigger_type tr_triggers; + struct super_block *sb; +}; + +struct ext4_orphan_block { + atomic_t ob_free_entries; + struct buffer_head *ob_bh; +}; + +struct ext4_orphan_info { + int of_blocks; + __u32 of_csum_seed; + struct ext4_orphan_block *of_binfo; +}; + +struct ext4_group_info; + +struct ext4_locality_group; + +struct ext4_li_request; + +struct ext4_sb_info { + long unsigned int s_desc_size; + long unsigned int s_inodes_per_block; + long unsigned int s_blocks_per_group; + long unsigned int s_clusters_per_group; + long unsigned int s_inodes_per_group; + long unsigned int s_itb_per_group; + long unsigned int s_gdb_count; + long unsigned int s_desc_per_block; + ext4_group_t s_groups_count; + ext4_group_t s_blockfile_groups; + long unsigned int s_overhead; + unsigned int s_cluster_ratio; + unsigned int s_cluster_bits; + loff_t s_bitmap_maxbytes; + struct buffer_head *s_sbh; + struct ext4_super_block *s_es; + struct buffer_head **s_group_desc; + unsigned int s_mount_opt; + unsigned int s_mount_opt2; + long unsigned int s_mount_flags; + unsigned int s_def_mount_opt; + ext4_fsblk_t s_sb_block; + atomic64_t s_resv_clusters; + kuid_t s_resuid; + kgid_t s_resgid; + short unsigned int s_mount_state; + short unsigned int s_pad; + int s_addr_per_block_bits; + int s_desc_per_block_bits; + int s_inode_size; + int s_first_ino; + unsigned int s_inode_readahead_blks; + unsigned int s_inode_goal; + u32 s_hash_seed[4]; + int s_def_hash_version; + int s_hash_unsigned; + struct percpu_counter s_freeclusters_counter; + struct percpu_counter s_freeinodes_counter; + struct percpu_counter s_dirs_counter; + struct percpu_counter s_dirtyclusters_counter; + struct percpu_counter s_sra_exceeded_retry_limit; + struct blockgroup_lock *s_blockgroup_lock; + struct proc_dir_entry *s_proc; + struct kobject s_kobj; + struct completion s_kobj_unregister; + struct super_block *s_sb; + struct buffer_head *s_mmp_bh; + struct journal_s *s_journal; + long unsigned int s_ext4_flags; + struct mutex s_orphan_lock; + struct list_head s_orphan; + struct ext4_orphan_info s_orphan_info; + long unsigned int s_commit_interval; + u32 s_max_batch_time; + u32 s_min_batch_time; + struct block_device *s_journal_bdev; + char *s_qf_names[3]; + int s_jquota_fmt; + unsigned int s_want_extra_isize; + struct ext4_system_blocks *s_system_blks; + struct ext4_group_info ***s_group_info; + struct inode *s_buddy_cache; + spinlock_t s_md_lock; + short unsigned int *s_mb_offsets; + unsigned int *s_mb_maxs; + unsigned int s_group_info_size; + unsigned int s_mb_free_pending; + struct list_head s_freed_data_list; + struct list_head s_discard_list; + struct work_struct s_discard_work; + atomic_t s_retry_alloc_pending; + struct rb_root s_mb_avg_fragment_size_root; + rwlock_t s_mb_rb_lock; + struct list_head *s_mb_largest_free_orders; + rwlock_t *s_mb_largest_free_orders_locks; + long unsigned int s_stripe; + unsigned int s_mb_max_linear_groups; + unsigned int s_mb_stream_request; + unsigned int s_mb_max_to_scan; + unsigned int s_mb_min_to_scan; + unsigned int s_mb_stats; + unsigned int s_mb_order2_reqs; + unsigned int s_mb_group_prealloc; + unsigned int s_mb_max_inode_prealloc; + unsigned int s_max_dir_size_kb; + long unsigned int s_mb_last_group; + long unsigned int s_mb_last_start; + unsigned int s_mb_prefetch; + unsigned int s_mb_prefetch_limit; + atomic_t s_bal_reqs; + atomic_t s_bal_success; + atomic_t s_bal_allocated; + atomic_t s_bal_ex_scanned; + atomic_t s_bal_groups_scanned; + atomic_t s_bal_goals; + atomic_t s_bal_breaks; + atomic_t s_bal_2orders; + atomic_t s_bal_cr0_bad_suggestions; + atomic_t s_bal_cr1_bad_suggestions; + atomic64_t s_bal_cX_groups_considered[4]; + atomic64_t s_bal_cX_hits[4]; + atomic64_t s_bal_cX_failed[4]; + atomic_t s_mb_buddies_generated; + atomic64_t s_mb_generation_time; + atomic_t s_mb_lost_chunks; + atomic_t s_mb_preallocated; + atomic_t s_mb_discarded; + atomic_t s_lock_busy; + struct ext4_locality_group *s_locality_groups; + long unsigned int s_sectors_written_start; + u64 s_kbytes_written; + unsigned int s_extent_max_zeroout_kb; + unsigned int s_log_groups_per_flex; + struct flex_groups **s_flex_groups; + ext4_group_t s_flex_groups_allocated; + struct workqueue_struct *rsv_conversion_wq; + struct timer_list s_err_report; + struct ext4_li_request *s_li_request; + unsigned int s_li_wait_mult; + struct task_struct *s_mmp_tsk; + long unsigned int s_last_trim_minblks; + struct crypto_shash *s_chksum_driver; + __u32 s_csum_seed; + struct shrinker s_es_shrinker; + struct list_head s_es_list; + long int s_es_nr_inode; + struct ext4_es_stats s_es_stats; + struct mb_cache *s_ea_block_cache; + struct mb_cache *s_ea_inode_cache; + long: 64; + long: 64; + spinlock_t s_es_lock; + struct ext4_journal_trigger s_journal_triggers[1]; + struct ratelimit_state s_err_ratelimit_state; + struct ratelimit_state s_warning_ratelimit_state; + struct ratelimit_state s_msg_ratelimit_state; + atomic_t s_warning_count; + atomic_t s_msg_count; + struct fscrypt_dummy_policy s_dummy_enc_policy; + struct percpu_rw_semaphore s_writepages_rwsem; + struct dax_device *s_daxdev; + errseq_t s_bdev_wb_err; + spinlock_t s_bdev_wb_lock; + spinlock_t s_error_lock; + int s_add_error_count; + int s_first_error_code; + __u32 s_first_error_line; + __u32 s_first_error_ino; + __u64 s_first_error_block; + const char *s_first_error_func; + time64_t s_first_error_time; + int s_last_error_code; + __u32 s_last_error_line; + __u32 s_last_error_ino; + __u64 s_last_error_block; + const char *s_last_error_func; + time64_t s_last_error_time; + struct work_struct s_error_work; + atomic_t s_fc_subtid; + struct list_head s_fc_q[2]; + struct list_head s_fc_dentry_q[2]; + unsigned int s_fc_bytes; + spinlock_t s_fc_lock; + struct buffer_head *s_fc_bh; + struct ext4_fc_stats s_fc_stats; + tid_t s_fc_ineligible_tid; + struct ext4_fc_replay_state s_fc_replay_state; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct ext4_group_info { + long unsigned int bb_state; + struct rb_root bb_free_root; + ext4_grpblk_t bb_first_free; + ext4_grpblk_t bb_free; + ext4_grpblk_t bb_fragments; + ext4_grpblk_t bb_largest_free_order; + ext4_group_t bb_group; + struct list_head bb_prealloc_list; + struct rw_semaphore alloc_sem; + struct rb_node bb_avg_fragment_size_rb; + struct list_head bb_largest_free_order_node; + ext4_grpblk_t bb_counters[0]; +}; + +struct ext4_locality_group { + struct mutex lg_mutex; + struct list_head lg_prealloc_list[10]; + spinlock_t lg_prealloc_lock; +}; + +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, +}; + +struct ext4_li_request { + struct super_block *lr_super; + enum ext4_li_mode lr_mode; + ext4_group_t lr_first_not_zeroed; + ext4_group_t lr_next_group; + struct list_head lr_request; + long unsigned int lr_next_sched; + long unsigned int lr_timeout; +}; + +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; +}; + +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; + +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; +}; + +enum { + EXT4_INODE_SECRM = 0, + EXT4_INODE_UNRM = 1, + EXT4_INODE_COMPR = 2, + EXT4_INODE_SYNC = 3, + EXT4_INODE_IMMUTABLE = 4, + EXT4_INODE_APPEND = 5, + EXT4_INODE_NODUMP = 6, + EXT4_INODE_NOATIME = 7, + EXT4_INODE_DIRTY = 8, + EXT4_INODE_COMPRBLK = 9, + EXT4_INODE_NOCOMPR = 10, + EXT4_INODE_ENCRYPT = 11, + EXT4_INODE_INDEX = 12, + EXT4_INODE_IMAGIC = 13, + EXT4_INODE_JOURNAL_DATA = 14, + EXT4_INODE_NOTAIL = 15, + EXT4_INODE_DIRSYNC = 16, + EXT4_INODE_TOPDIR = 17, + EXT4_INODE_HUGE_FILE = 18, + EXT4_INODE_EXTENTS = 19, + EXT4_INODE_VERITY = 20, + EXT4_INODE_EA_INODE = 21, + EXT4_INODE_DAX = 25, + EXT4_INODE_INLINE_DATA = 28, + EXT4_INODE_PROJINHERIT = 29, + EXT4_INODE_CASEFOLD = 30, + EXT4_INODE_RESERVED = 31, +}; + +enum { + EXT4_FC_REASON_XATTR = 0, + EXT4_FC_REASON_CROSS_RENAME = 1, + EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2, + EXT4_FC_REASON_NOMEM = 3, + EXT4_FC_REASON_SWAP_BOOT = 4, + EXT4_FC_REASON_RESIZE = 5, + EXT4_FC_REASON_RENAME_DIR = 6, + EXT4_FC_REASON_FALLOC_RANGE = 7, + EXT4_FC_REASON_INODE_JOURNAL_DATA = 8, + EXT4_FC_REASON_ENCRYPTED_FILENAME = 9, + EXT4_FC_REASON_MAX = 10, +}; + +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, +}; + +struct ext4_dir_entry_hash { + __le32 hash; + __le32 minor_hash; +}; + +struct ext4_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[255]; +}; + +struct fname; + +struct dir_private_info { + struct rb_root root; + struct rb_node *curr_node; + struct fname *extra_fname; + loff_t last_pos; + __u32 curr_hash; + __u32 curr_minor_hash; + __u32 next_hash; +}; + +struct fname { + __u32 hash; + __u32 minor_hash; + struct rb_node rb_hash; + struct fname *next; + __u32 inode; + __u8 name_len; + __u8 file_type; + char name[0]; +}; + +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, +}; + +struct ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; +}; + +struct ext4_io_end { + struct list_head list; + handle_t *handle; + struct inode *inode; + struct bio *bio; + unsigned int flag; + atomic_t count; + struct list_head list_vec; +}; + +typedef struct ext4_io_end ext4_io_end_t; + +enum { + ES_WRITTEN_B = 0, + ES_UNWRITTEN_B = 1, + ES_DELAYED_B = 2, + ES_HOLE_B = 3, + ES_REFERENCED_B = 4, + ES_FLAGS = 5, +}; + +enum { + EXT4_STATE_JDATA = 0, + EXT4_STATE_NEW = 1, + EXT4_STATE_XATTR = 2, + EXT4_STATE_NO_EXPAND = 3, + EXT4_STATE_DA_ALLOC_CLOSE = 4, + EXT4_STATE_EXT_MIGRATE = 5, + EXT4_STATE_NEWENTRY = 6, + EXT4_STATE_MAY_INLINE_DATA = 7, + EXT4_STATE_EXT_PRECACHED = 8, + EXT4_STATE_LUSTRE_EA_INODE = 9, + EXT4_STATE_VERITY_IN_PROGRESS = 10, + EXT4_STATE_FC_COMMITTING = 11, + EXT4_STATE_ORPHAN_FILE = 12, +}; + +struct ext4_iloc { + struct buffer_head *bh; + long unsigned int offset; + ext4_group_t block_group; +}; + +struct ext4_extent_tail { + __le32 et_checksum; +}; + +struct ext4_extent { + __le32 ee_block; + __le16 ee_len; + __le16 ee_start_hi; + __le32 ee_start_lo; +}; + +struct ext4_extent_idx { + __le32 ei_block; + __le32 ei_leaf_lo; + __le16 ei_leaf_hi; + __u16 ei_unused; +}; + +struct ext4_extent_header { + __le16 eh_magic; + __le16 eh_entries; + __le16 eh_max; + __le16 eh_depth; + __le32 eh_generation; +}; + +struct ext4_ext_path { + ext4_fsblk_t p_block; + __u16 p_depth; + __u16 p_maxdepth; + struct ext4_extent *p_ext; + struct ext4_extent_idx *p_idx; + struct ext4_extent_header *p_hdr; + struct buffer_head *p_bh; +}; + +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; +}; + +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; +}; + +struct rsvd_count { + int ndelonly; + bool first_do_lblk_found; + ext4_lblk_t first_do_lblk; + ext4_lblk_t last_do_lblk; + struct extent_status *left_es; + bool partial; + ext4_lblk_t lclu; +}; + +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FS_ABORTED = 1, + EXT4_MF_FC_INELIGIBLE = 2, +}; + +struct fsmap { + __u32 fmr_device; + __u32 fmr_flags; + __u64 fmr_physical; + __u64 fmr_owner; + __u64 fmr_offset; + __u64 fmr_length; + __u64 fmr_reserved[3]; +}; + +struct ext4_fsmap { + struct list_head fmr_list; + dev_t fmr_device; + uint32_t fmr_flags; + uint64_t fmr_physical; + uint64_t fmr_owner; + uint64_t fmr_length; +}; + +struct ext4_fsmap_head { + uint32_t fmh_iflags; + uint32_t fmh_oflags; + unsigned int fmh_count; + unsigned int fmh_entries; + struct ext4_fsmap fmh_keys[2]; +}; + +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); + +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); + +struct ext4_getfsmap_info { + struct ext4_fsmap_head *gfi_head; + ext4_fsmap_format_t gfi_formatter; + void *gfi_format_arg; + ext4_fsblk_t gfi_next_fsblk; + u32 gfi_dev; + ext4_group_t gfi_agno; + struct ext4_fsmap gfi_low; + struct ext4_fsmap gfi_high; + struct ext4_fsmap gfi_lastfree; + struct list_head gfi_meta_list; + bool gfi_last; +}; + +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; +}; + +struct dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; +}; + +typedef unsigned int __kernel_mode_t; + +typedef __kernel_mode_t mode_t; + +struct ext4_inode { + __le16 i_mode; + __le16 i_uid; + __le32 i_size_lo; + __le32 i_atime; + __le32 i_ctime; + __le32 i_mtime; + __le32 i_dtime; + __le16 i_gid; + __le16 i_links_count; + __le32 i_blocks_lo; + __le32 i_flags; + union { + struct { + __le32 l_i_version; + } linux1; + struct { + __u32 h_i_translator; + } hurd1; + struct { + __u32 m_i_reserved1; + } masix1; + } osd1; + __le32 i_block[15]; + __le32 i_generation; + __le32 i_file_acl_lo; + __le32 i_size_high; + __le32 i_obso_faddr; + union { + struct { + __le16 l_i_blocks_high; + __le16 l_i_file_acl_high; + __le16 l_i_uid_high; + __le16 l_i_gid_high; + __le16 l_i_checksum_lo; + __le16 l_i_reserved; + } linux2; + struct { + __le16 h_i_reserved1; + __u16 h_i_mode_high; + __u16 h_i_uid_high; + __u16 h_i_gid_high; + __u32 h_i_author; + } hurd2; + struct { + __le16 h_i_reserved1; + __le16 m_i_file_acl_high; + __u32 m_i_reserved2[2]; + } masix2; + } osd2; + __le16 i_extra_isize; + __le16 i_checksum_hi; + __le32 i_ctime_extra; + __le32 i_mtime_extra; + __le32 i_atime_extra; + __le32 i_crtime; + __le32 i_crtime_extra; + __le32 i_version_hi; + __le32 i_projid; +}; + +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; +}; + +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; + struct fscrypt_str crypto_buf; + struct fscrypt_str cf_name; +}; + +struct ext4_xattr_ibody_header { + __le32 h_magic; +}; + +struct ext4_xattr_entry { + __u8 e_name_len; + __u8 e_name_index; + __le16 e_value_offs; + __le32 e_value_inum; + __le32 e_value_size; + __le32 e_hash; + char e_name[0]; +}; + +struct ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; +}; + +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; +}; + +struct ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; +}; + +typedef short unsigned int __kernel_uid16_t; + +typedef short unsigned int __kernel_gid16_t; + +typedef __kernel_uid16_t uid16_t; + +typedef __kernel_gid16_t gid16_t; + +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; +}; + +struct ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; +}; + +struct mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + long unsigned int first_page; + long unsigned int next_page; + long unsigned int last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; +}; + +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; + +struct ext4_new_group_input { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; +}; + +struct compat_ext4_new_group_input { + u32 group; + compat_u64 block_bitmap; + compat_u64 inode_bitmap; + compat_u64 inode_table; + u32 blocks_count; + u16 reserved_blocks; + u16 unused; +} __attribute__((packed)); + +struct ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; +}; + +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; +}; + +struct fsmap_head { + __u32 fmh_iflags; + __u32 fmh_oflags; + __u32 fmh_count; + __u32 fmh_entries; + __u64 fmh_reserved[6]; + struct fsmap fmh_keys[2]; + struct fsmap fmh_recs[0]; +}; + +struct getfsmap_info { + struct super_block *gi_sb; + struct fsmap_head *gi_data; + unsigned int gi_idx; + __u32 gi_last_flags; +}; + +enum blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, +}; + +struct ext4_free_data { + struct list_head efd_list; + struct rb_node efd_node; + ext4_group_t efd_group; + ext4_grpblk_t efd_start_cluster; + ext4_grpblk_t efd_count; + tid_t efd_tid; +}; + +struct ext4_prealloc_space { + struct list_head pa_inode_list; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + short unsigned int pa_type; + spinlock_t *pa_obj_lock; + struct inode *pa_inode; +}; + +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, +}; + +struct ext4_free_extent { + ext4_lblk_t fe_logical; + ext4_grpblk_t fe_start; + ext4_group_t fe_group; + ext4_grpblk_t fe_len; +}; + +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_group_t ac_last_optimal_group; + __u32 ac_groups_considered; + __u32 ac_flags; + __u32 ac_groups_linear_remaining; + __u16 ac_groups_scanned; + __u16 ac_found; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct page *ac_bitmap_page; + struct page *ac_buddy_page; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; +}; + +struct ext4_buddy { + struct page *bd_buddy_page; + void *bd_buddy; + struct page *bd_bitmap_page; + void *bd_bitmap; + struct ext4_group_info *bd_info; + struct super_block *bd_sb; + __u16 bd_blkbits; + ext4_group_t bd_group; +}; + +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; +}; + +struct migrate_struct { + ext4_lblk_t first_block; + ext4_lblk_t last_block; + ext4_lblk_t curr_block; + ext4_fsblk_t first_pblock; + ext4_fsblk_t last_pblock; +}; + +struct mmp_struct { + __le32 mmp_magic; + __le32 mmp_seq; + __le64 mmp_time; + char mmp_nodename[64]; + char mmp_bdevname[32]; + __le16 mmp_check_interval; + __le16 mmp_pad1; + __le32 mmp_pad2[226]; + __le32 mmp_checksum; +}; + +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; + __le16 name_len; + char name[255]; +}; + +struct ext4_dir_entry_tail { + __le32 det_reserved_zero1; + __le16 det_rec_len; + __u8 det_reserved_zero2; + __u8 det_reserved_ft; + __le32 det_checksum; +}; + +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; + +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; +}; + +struct dx_countlimit { + __le16 limit; + __le16 count; +}; + +struct dx_entry { + __le32 hash; + __le32 block; +}; + +struct dx_root_info { + __le32 reserved_zero; + u8 hash_version; + u8 info_length; + u8 indirect_levels; + u8 unused_flags; +}; + +struct dx_root { + struct fake_dirent dot; + char dot_name[4]; + struct fake_dirent dotdot; + char dotdot_name[4]; + struct dx_root_info info; + struct dx_entry entries[0]; +}; + +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; +}; + +struct dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; +}; + +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; +}; + +struct dx_tail { + u32 dt_reserved; + __le32 dt_checksum; +}; + +struct ext4_renament { + struct inode *dir; + struct dentry *dentry; + struct inode *inode; + bool is_dir; + int dir_nlink_delta; + struct buffer_head *bh; + struct ext4_dir_entry_2 *de; + int inlined; + struct buffer_head *dir_bh; + struct ext4_dir_entry_2 *parent_de; + int dir_inlined; +}; + +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, +}; + +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; +}; + +enum { + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, +}; + +struct ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; +}; + +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t resize_bg; + ext4_group_t count; +}; + +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, +}; + +enum { + I_DATA_SEM_NORMAL = 0, + I_DATA_SEM_OTHER = 1, + I_DATA_SEM_QUOTA = 2, + I_DATA_SEM_EA = 3, +}; + +struct ext4_lazy_init { + long unsigned int li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; +}; + +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +}; + +struct trace_event_raw_ext4_other_inode_update_time { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t orig_ino; + uid_t uid; + gid_t gid; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_free_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + uid_t uid; + gid_t gid; + __u64 blocks; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_allocate_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t dir; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + char __data[0]; +}; + +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + char __data[0]; +}; + +struct trace_event_raw_ext4_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_ext4_mark_inode_dirty { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int ip; + char __data[0]; +}; + +struct trace_event_raw_ext4_begin_ordered_truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t new_size; + char __data[0]; +}; + +struct trace_event_raw_ext4__write_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t pos; + unsigned int len; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4__write_end { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t pos; + unsigned int len; + unsigned int copied; + char __data[0]; +}; + +struct trace_event_raw_ext4_writepages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long int nr_to_write; + long int pages_skipped; + loff_t range_start; + loff_t range_end; + long unsigned int writeback_index; + int sync_mode; + char for_kupdate; + char range_cyclic; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_write_pages { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int first_page; + long int nr_to_write; + int sync_mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_write_pages_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 lblk; + __u32 len; + __u32 flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_writepages_result { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + int pages_written; + long int pages_skipped; + long unsigned int writeback_index; + int sync_mode; + char __data[0]; +}; + +struct trace_event_raw_ext4__page_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int index; + char __data[0]; +}; + +struct trace_event_raw_ext4_invalidatepage_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + long unsigned int index; + unsigned int offset; + unsigned int length; + char __data[0]; +}; + +struct trace_event_raw_ext4_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; +}; + +struct trace_event_raw_ext4__mb_new_pa { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 pa_pstart; + __u64 pa_lstart; + __u32 pa_len; + char __data[0]; +}; + +struct trace_event_raw_ext4_mb_release_inode_pa { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + __u32 count; + char __data[0]; +}; + +struct trace_event_raw_ext4_mb_release_group_pa { + struct trace_entry ent; + dev_t dev; + __u64 pa_pstart; + __u32 pa_len; + char __data[0]; +}; + +struct trace_event_raw_ext4_discard_preallocations { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int len; + unsigned int needed; + char __data[0]; +}; + +struct trace_event_raw_ext4_mb_discard_preallocations { + struct trace_entry ent; + dev_t dev; + int needed; + char __data[0]; +}; + +struct trace_event_raw_ext4_request_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int len; + __u32 logical; + __u32 lleft; + __u32 lright; + __u64 goal; + __u64 pleft; + __u64 pright; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_allocate_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + unsigned int len; + __u32 logical; + __u32 lleft; + __u32 lright; + __u64 goal; + __u64 pleft; + __u64 pright; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_free_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + long unsigned int count; + int flags; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_sync_file_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t parent; + int datasync; + char __data[0]; +}; + +struct trace_event_raw_ext4_sync_file_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_sync_fs { + struct trace_entry ent; + dev_t dev; + int wait; + char __data[0]; +}; + +struct trace_event_raw_ext4_alloc_da_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int data_blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4_mballoc_alloc { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u32 orig_logical; + int orig_start; + __u32 orig_group; + int orig_len; + __u32 goal_logical; + int goal_start; + __u32 goal_group; + int goal_len; + __u32 result_logical; + int result_start; + __u32 result_group; + int result_len; + __u16 found; + __u16 groups; + __u16 buddy; + __u16 flags; + __u16 tail; + __u8 cr; + char __data[0]; +}; + +struct trace_event_raw_ext4_mballoc_prealloc { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u32 orig_logical; + int orig_start; + __u32 orig_group; + int orig_len; + __u32 result_logical; + int result_start; + __u32 result_group; + int result_len; + char __data[0]; +}; + +struct trace_event_raw_ext4__mballoc { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int result_start; + __u32 result_group; + int result_len; + char __data[0]; +}; + +struct trace_event_raw_ext4_forget { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; + int is_metadata; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_update_reserve_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int used_blocks; + int reserved_data_blocks; + int quota_claim; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_reserve_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int reserved_data_blocks; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_da_release_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 i_blocks; + int freed_blocks; + int reserved_data_blocks; + __u16 mode; + char __data[0]; +}; + +struct trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; +}; + +struct trace_event_raw_ext4_read_block_bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + bool prefetch; + char __data[0]; +}; + +struct trace_event_raw_ext4__fallocate_mode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t offset; + loff_t len; + int mode; + char __data[0]; +}; + +struct trace_event_raw_ext4_fallocate_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t pos; + unsigned int blocks; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_unlink_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t parent; + loff_t size; + char __data[0]; +}; + +struct trace_event_raw_ext4_unlink_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_convert_to_initialized_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t m_lblk; + unsigned int m_len; + ext4_lblk_t u_lblk; + unsigned int u_len; + ext4_fsblk_t u_pblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_convert_to_initialized_fastpath { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t m_lblk; + unsigned int m_len; + ext4_lblk_t u_lblk; + unsigned int u_len; + ext4_fsblk_t u_pblk; + ext4_lblk_t i_lblk; + unsigned int i_len; + ext4_fsblk_t i_pblk; + char __data[0]; +}; + +struct trace_event_raw_ext4__map_blocks_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + unsigned int len; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4__map_blocks_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int flags; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + unsigned int len; + unsigned int mflags; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_load_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_load_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start { + struct trace_entry ent; + dev_t dev; + long unsigned int ip; + int blocks; + int rsv_blocks; + int revoke_creds; + char __data[0]; +}; + +struct trace_event_raw_ext4_journal_start_reserved { + struct trace_entry ent; + dev_t dev; + long unsigned int ip; + int blocks; + char __data[0]; +}; + +struct trace_event_raw_ext4__trim { + struct trace_entry ent; + int dev_major; + int dev_minor; + __u32 group; + int start; + int len; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_handle_unwritten_extents { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int flags; + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + unsigned int len; + unsigned int allocated; + ext4_fsblk_t newblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_get_implied_cluster_alloc_exit { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + unsigned int len; + int ret; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_show_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + short unsigned int len; + char __data[0]; +}; + +struct trace_event_raw_ext4_remove_blocks { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t from; + ext4_lblk_t to; + ext4_fsblk_t ee_pblk; + ext4_lblk_t ee_lblk; + short unsigned int ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_rm_leaf { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t start; + ext4_lblk_t ee_lblk; + ext4_fsblk_t ee_pblk; + short int ee_len; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_rm_idx { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_fsblk_t pblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_remove_space { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t start; + ext4_lblk_t end; + int depth; + char __data[0]; +}; + +struct trace_event_raw_ext4_ext_remove_space_done { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t start; + ext4_lblk_t end; + int depth; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + short unsigned int eh_entries; + char __data[0]; +}; + +struct trace_event_raw_ext4__es_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_remove_extent { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t lblk; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_find_extent_range_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_find_extent_range_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_lookup_extent_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_lookup_extent_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + int found; + char __data[0]; +}; + +struct trace_event_raw_ext4__es_shrink_enter { + struct trace_entry ent; + dev_t dev; + int nr_to_scan; + int cache_cnt; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + int nr_shrunk; + int cache_cnt; + char __data[0]; +}; + +struct trace_event_raw_ext4_collapse_range { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t offset; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_ext4_insert_range { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t offset; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_shrink { + struct trace_entry ent; + dev_t dev; + int nr_shrunk; + long long unsigned int scan_time; + int nr_skipped; + int retried; + char __data[0]; +}; + +struct trace_event_raw_ext4_es_insert_delayed_block { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + ext4_lblk_t len; + ext4_fsblk_t pblk; + char status; + bool allocated; + char __data[0]; +}; + +struct trace_event_raw_ext4_fsmap_class { + struct trace_entry ent; + dev_t dev; + dev_t keydev; + u32 agno; + u64 bno; + u64 len; + u64 owner; + char __data[0]; +}; + +struct trace_event_raw_ext4_getfsmap_class { + struct trace_entry ent; + dev_t dev; + dev_t keydev; + u64 block; + u64 len; + u64 owner; + u64 flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_shutdown { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ext4_error { + struct trace_entry ent; + dev_t dev; + const char *function; + unsigned int line; + char __data[0]; +}; + +struct trace_event_raw_ext4_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + char __data[0]; +}; + +struct trace_event_raw_ext4_lazy_itable_init { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_replay { + struct trace_entry ent; + dev_t dev; + int tag; + int ino; + int priv1; + int priv2; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_commit_start { + struct trace_entry ent; + dev_t dev; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_commit_stop { + struct trace_entry ent; + dev_t dev; + int nblks; + int reason; + int num_fc; + int num_fc_ineligible; + int nblks_agg; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_stats { + struct trace_entry ent; + dev_t dev; + unsigned int fc_ineligible_rc[10]; + long unsigned int fc_commits; + long unsigned int fc_ineligible_commits; + long unsigned int fc_numblks; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_create { + struct trace_entry ent; + dev_t dev; + int ino; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_link { + struct trace_entry ent; + dev_t dev; + int ino; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_unlink { + struct trace_entry ent; + dev_t dev; + int ino; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_inode { + struct trace_entry ent; + dev_t dev; + int ino; + int error; + char __data[0]; +}; + +struct trace_event_raw_ext4_fc_track_range { + struct trace_entry ent; + dev_t dev; + int ino; + long int start; + long int end; + int error; + char __data[0]; +}; + +struct trace_event_data_offsets_ext4_other_inode_update_time {}; + +struct trace_event_data_offsets_ext4_free_inode {}; + +struct trace_event_data_offsets_ext4_request_inode {}; + +struct trace_event_data_offsets_ext4_allocate_inode {}; + +struct trace_event_data_offsets_ext4_evict_inode {}; + +struct trace_event_data_offsets_ext4_drop_inode {}; + +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; + +struct trace_event_data_offsets_ext4_mark_inode_dirty {}; + +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; + +struct trace_event_data_offsets_ext4__write_begin {}; + +struct trace_event_data_offsets_ext4__write_end {}; + +struct trace_event_data_offsets_ext4_writepages {}; + +struct trace_event_data_offsets_ext4_da_write_pages {}; + +struct trace_event_data_offsets_ext4_da_write_pages_extent {}; + +struct trace_event_data_offsets_ext4_writepages_result {}; + +struct trace_event_data_offsets_ext4__page_op {}; + +struct trace_event_data_offsets_ext4_invalidatepage_op {}; + +struct trace_event_data_offsets_ext4_discard_blocks {}; + +struct trace_event_data_offsets_ext4__mb_new_pa {}; + +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; + +struct trace_event_data_offsets_ext4_mb_release_group_pa {}; + +struct trace_event_data_offsets_ext4_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; + +struct trace_event_data_offsets_ext4_request_blocks {}; + +struct trace_event_data_offsets_ext4_allocate_blocks {}; + +struct trace_event_data_offsets_ext4_free_blocks {}; + +struct trace_event_data_offsets_ext4_sync_file_enter {}; + +struct trace_event_data_offsets_ext4_sync_file_exit {}; + +struct trace_event_data_offsets_ext4_sync_fs {}; + +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; + +struct trace_event_data_offsets_ext4_mballoc_alloc {}; + +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; + +struct trace_event_data_offsets_ext4__mballoc {}; + +struct trace_event_data_offsets_ext4_forget {}; + +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; + +struct trace_event_data_offsets_ext4_da_reserve_space {}; + +struct trace_event_data_offsets_ext4_da_release_space {}; + +struct trace_event_data_offsets_ext4__bitmap_load {}; + +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; + +struct trace_event_data_offsets_ext4__fallocate_mode {}; + +struct trace_event_data_offsets_ext4_fallocate_exit {}; + +struct trace_event_data_offsets_ext4_unlink_enter {}; + +struct trace_event_data_offsets_ext4_unlink_exit {}; + +struct trace_event_data_offsets_ext4__truncate {}; + +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; + +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; + +struct trace_event_data_offsets_ext4__map_blocks_enter {}; + +struct trace_event_data_offsets_ext4__map_blocks_exit {}; + +struct trace_event_data_offsets_ext4_ext_load_extent {}; + +struct trace_event_data_offsets_ext4_load_inode {}; + +struct trace_event_data_offsets_ext4_journal_start {}; + +struct trace_event_data_offsets_ext4_journal_start_reserved {}; + +struct trace_event_data_offsets_ext4__trim {}; + +struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; + +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; + +struct trace_event_data_offsets_ext4_ext_show_extent {}; + +struct trace_event_data_offsets_ext4_remove_blocks {}; + +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; + +struct trace_event_data_offsets_ext4_ext_rm_idx {}; + +struct trace_event_data_offsets_ext4_ext_remove_space {}; + +struct trace_event_data_offsets_ext4_ext_remove_space_done {}; + +struct trace_event_data_offsets_ext4__es_extent {}; + +struct trace_event_data_offsets_ext4_es_remove_extent {}; + +struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; + +struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; + +struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; + +struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; + +struct trace_event_data_offsets_ext4__es_shrink_enter {}; + +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; + +struct trace_event_data_offsets_ext4_collapse_range {}; + +struct trace_event_data_offsets_ext4_insert_range {}; + +struct trace_event_data_offsets_ext4_es_shrink {}; + +struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; + +struct trace_event_data_offsets_ext4_fsmap_class {}; + +struct trace_event_data_offsets_ext4_getfsmap_class {}; + +struct trace_event_data_offsets_ext4_shutdown {}; + +struct trace_event_data_offsets_ext4_error {}; + +struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; + +struct trace_event_data_offsets_ext4_lazy_itable_init {}; + +struct trace_event_data_offsets_ext4_fc_replay_scan {}; + +struct trace_event_data_offsets_ext4_fc_replay {}; + +struct trace_event_data_offsets_ext4_fc_commit_start {}; + +struct trace_event_data_offsets_ext4_fc_commit_stop {}; + +struct trace_event_data_offsets_ext4_fc_stats {}; + +struct trace_event_data_offsets_ext4_fc_track_create {}; + +struct trace_event_data_offsets_ext4_fc_track_link {}; + +struct trace_event_data_offsets_ext4_fc_track_unlink {}; + +struct trace_event_data_offsets_ext4_fc_track_inode {}; + +struct trace_event_data_offsets_ext4_fc_track_range {}; + +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); + +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); + +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, long unsigned int); + +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); + +typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, long unsigned int, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); + +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); + +typedef void (*btf_trace_ext4_writepage)(void *, struct page *); + +typedef void (*btf_trace_ext4_readpage)(void *, struct page *); + +typedef void (*btf_trace_ext4_releasepage)(void *, struct page *); + +typedef void (*btf_trace_ext4_invalidatepage)(void *, struct page *, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_journalled_invalidatepage)(void *, struct page *, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, long long unsigned int, long long unsigned int); + +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, long long unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); + +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); + +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); + +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, long long unsigned int); + +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, long unsigned int, int); + +typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); + +typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); + +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); + +typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); + +typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); + +typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); + +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); + +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); + +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, long unsigned int, bool); + +typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); + +typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); + +typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); + +typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); + +typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); + +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); + +typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); + +typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); + +typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_journal_start)(void *, struct super_block *, int, int, int, long unsigned int); + +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, long unsigned int); + +typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); + +typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); + +typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, short unsigned int); + +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); + +typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); + +typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); + +typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); + +typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); + +typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); + +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); + +typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); + +typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); + +typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); + +typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); + +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); + +typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); + +typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); + +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, long unsigned int); + +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); + +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); + +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); + +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); + +typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *); + +typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int); + +typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); + +typedef void (*btf_trace_ext4_fc_track_create)(void *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_link)(void *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, struct inode *, struct dentry *, int); + +typedef void (*btf_trace_ext4_fc_track_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_fc_track_range)(void *, struct inode *, long int, long int, int); + +struct ext4_err_translation { + int code; + int errno; +}; + +enum { + Opt_bsd_df = 0, + Opt_minix_df = 1, + Opt_grpid = 2, + Opt_nogrpid = 3, + Opt_resgid = 4, + Opt_resuid = 5, + Opt_sb = 6, + Opt_err_cont = 7, + Opt_err_panic = 8, + Opt_err_ro = 9, + Opt_nouid32 = 10, + Opt_debug = 11, + Opt_removed = 12, + Opt_user_xattr = 13, + Opt_nouser_xattr = 14, + Opt_acl = 15, + Opt_noacl = 16, + Opt_auto_da_alloc = 17, + Opt_noauto_da_alloc = 18, + Opt_noload = 19, + Opt_commit = 20, + Opt_min_batch_time = 21, + Opt_max_batch_time = 22, + Opt_journal_dev = 23, + Opt_journal_path = 24, + Opt_journal_checksum = 25, + Opt_journal_async_commit = 26, + Opt_abort = 27, + Opt_data_journal = 28, + Opt_data_ordered = 29, + Opt_data_writeback = 30, + Opt_data_err_abort = 31, + Opt_data_err_ignore = 32, + Opt_test_dummy_encryption = 33, + Opt_inlinecrypt = 34, + Opt_usrjquota = 35, + Opt_grpjquota = 36, + Opt_offusrjquota = 37, + Opt_offgrpjquota = 38, + Opt_jqfmt_vfsold = 39, + Opt_jqfmt_vfsv0 = 40, + Opt_jqfmt_vfsv1 = 41, + Opt_quota = 42, + Opt_noquota = 43, + Opt_barrier = 44, + Opt_nobarrier = 45, + Opt_err___2 = 46, + Opt_usrquota = 47, + Opt_grpquota = 48, + Opt_prjquota = 49, + Opt_i_version = 50, + Opt_dax = 51, + Opt_dax_always = 52, + Opt_dax_inode = 53, + Opt_dax_never = 54, + Opt_stripe = 55, + Opt_delalloc = 56, + Opt_nodelalloc = 57, + Opt_warn_on_error = 58, + Opt_nowarn_on_error = 59, + Opt_mblk_io_submit = 60, + Opt_lazytime = 61, + Opt_nolazytime = 62, + Opt_debug_want_extra_isize = 63, + Opt_nomblk_io_submit = 64, + Opt_block_validity = 65, + Opt_noblock_validity = 66, + Opt_inode_readahead_blks = 67, + Opt_journal_ioprio = 68, + Opt_dioread_nolock = 69, + Opt_dioread_lock = 70, + Opt_discard = 71, + Opt_nodiscard = 72, + Opt_init_itable = 73, + Opt_noinit_itable = 74, + Opt_max_dir_size_kb = 75, + Opt_nojournal_checksum = 76, + Opt_nombcache = 77, + Opt_no_prefetch_block_bitmaps = 78, + Opt_mb_optimize_scan = 79, +}; + +struct mount_opts { + int token; + int mount_opt; + int flags; +}; + +struct ext4_sb_encodings { + __u16 magic; + char *name; + char *version; +}; + +struct ext4_parsed_options { + long unsigned int journal_devnum; + unsigned int journal_ioprio; + int mb_optimize_scan; +}; + +struct ext4_mount_options { + long unsigned int s_mount_opt; + long unsigned int s_mount_opt2; + kuid_t s_resuid; + kgid_t s_resgid; + long unsigned int s_commit_interval; + u32 s_min_batch_time; + u32 s_max_batch_time; + int s_jquota_fmt; + char *s_qf_names[3]; +}; + +enum { + attr_noop = 0, + attr_delayed_allocation_blocks = 1, + attr_session_write_kbytes = 2, + attr_lifetime_write_kbytes = 3, + attr_reserved_clusters = 4, + attr_sra_exceeded_retry_limit = 5, + attr_inode_readahead = 6, + attr_trigger_test_error = 7, + attr_first_error_time = 8, + attr_last_error_time = 9, + attr_feature = 10, + attr_pointer_ui = 11, + attr_pointer_ul = 12, + attr_pointer_u64 = 13, + attr_pointer_u8 = 14, + attr_pointer_string = 15, + attr_pointer_atomic = 16, + attr_journal_task = 17, +}; + +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, +}; + +struct ext4_attr { + struct attribute attr; + short int attr_id; + short int attr_ptr; + short unsigned int attr_size; + union { + int offset; + void *explicit_ptr; + } u; +}; + +struct ext4_xattr_header { + __le32 h_magic; + __le32 h_refcount; + __le32 h_blocks; + __le32 h_hash; + __le32 h_checksum; + __u32 h_reserved[3]; +}; + +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; +}; + +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; +}; + +struct ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; +}; + +struct ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; +}; + +struct ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; +}; + +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[0]; +}; + +struct ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; +}; + +struct ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; +}; + +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, +}; + +struct ext4_fc_dentry_update { + int fcd_op; + int fcd_parent; + int fcd_ino; + struct qstr fcd_name; + unsigned char fcd_iname[32]; + struct list_head fcd_list; +}; + +struct __track_dentry_update_args { + struct dentry *dentry; + int op; +}; + +struct __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; +}; + +struct dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; +}; + +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; +}; + +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; +}; + +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; + +typedef struct { + __le32 a_version; +} ext4_acl_header; + +struct commit_header { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; + unsigned char h_chksum_type; + unsigned char h_chksum_size; + unsigned char h_padding[2]; + __be32 h_chksum[8]; + __be64 h_commit_sec; + __be32 h_commit_nsec; +}; + +struct journal_block_tag3_s { + __be32 t_blocknr; + __be32 t_flags; + __be32 t_blocknr_high; + __be32 t_checksum; +}; + +typedef struct journal_block_tag3_s journal_block_tag3_t; + +struct journal_block_tag_s { + __be32 t_blocknr; + __be16 t_checksum; + __be16 t_flags; + __be32 t_blocknr_high; +}; + +typedef struct journal_block_tag_s journal_block_tag_t; + +struct jbd2_journal_block_tail { + __be32 t_checksum; +}; + +struct jbd2_journal_revoke_header_s { + journal_header_t r_header; + __be32 r_count; +}; + +typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; + +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; +}; + +enum shrink_type { + SHRINK_DESTROY = 0, + SHRINK_BUSY_STOP = 1, + SHRINK_BUSY_SKIP = 2, +}; + +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; +}; + +struct jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + long long unsigned int blocknr; +}; + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; +}; + +struct trace_event_raw_jbd2_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + char __data[0]; +}; + +struct trace_event_raw_jbd2_end_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + tid_t head; + char __data[0]; +}; + +struct trace_event_raw_jbd2_submit_inode_data { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_start_class { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int requested_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_extend { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int buffer_credits; + int requested_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int interval; + int sync; + int requested_blocks; + int dirtied_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_run_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + long unsigned int wait; + long unsigned int request_delay; + long unsigned int running; + long unsigned int locked; + long unsigned int flushing; + long unsigned int logging; + __u32 handle_count; + __u32 blocks; + __u32 blocks_logged; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + long unsigned int chp_time; + __u32 forced_to_close; + __u32 written; + __u32 dropped; + char __data[0]; +}; + +struct trace_event_raw_jbd2_update_log_tail { + struct trace_entry ent; + dev_t dev; + tid_t tail_sequence; + tid_t first_tid; + long unsigned int block_nr; + long unsigned int freed; + char __data[0]; +}; + +struct trace_event_raw_jbd2_write_superblock { + struct trace_entry ent; + dev_t dev; + int write_op; + char __data[0]; +}; + +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + long unsigned int stall_ms; + char __data[0]; +}; + +struct trace_event_raw_jbd2_journal_shrink { + struct trace_entry ent; + dev_t dev; + long unsigned int nr_to_scan; + long unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + long unsigned int nr_to_scan; + long unsigned int nr_shrunk; + long unsigned int count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_checkpoint_list { + struct trace_entry ent; + dev_t dev; + tid_t first_tid; + tid_t tid; + tid_t last_tid; + long unsigned int nr_freed; + tid_t next_tid; + char __data[0]; +}; + +struct trace_event_data_offsets_jbd2_checkpoint {}; + +struct trace_event_data_offsets_jbd2_commit {}; + +struct trace_event_data_offsets_jbd2_end_commit {}; + +struct trace_event_data_offsets_jbd2_submit_inode_data {}; + +struct trace_event_data_offsets_jbd2_handle_start_class {}; + +struct trace_event_data_offsets_jbd2_handle_extend {}; + +struct trace_event_data_offsets_jbd2_handle_stats {}; + +struct trace_event_data_offsets_jbd2_run_stats {}; + +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; + +struct trace_event_data_offsets_jbd2_update_log_tail {}; + +struct trace_event_data_offsets_jbd2_write_superblock {}; + +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; + +struct trace_event_data_offsets_jbd2_journal_shrink {}; + +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; + +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; + +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); + +typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, long unsigned int, long unsigned int, long unsigned int); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, long unsigned int, tid_t); + +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; + +struct meta_entry { + u64 data_block; + unsigned int index_block; + short unsigned int offset; + short unsigned int pad; +}; + +struct meta_index { + unsigned int inode_number; + unsigned int offset; + short unsigned int entries; + short unsigned int skip; + short unsigned int locked; + short unsigned int pad; + struct meta_entry meta_entry[127]; +}; + +struct squashfs_cache_entry; + +struct squashfs_cache { + char *name; + int entries; + int curr_blk; + int next_blk; + int num_waiters; + int unused; + int block_size; + int pages; + spinlock_t lock; + wait_queue_head_t wait_queue; + struct squashfs_cache_entry *entry; +}; + +struct squashfs_page_actor; + +struct squashfs_cache_entry { + u64 block; + int length; + int refcount; + u64 next_index; + int pending; + int error; + int num_waiters; + wait_queue_head_t wait_queue; + struct squashfs_cache *cache; + void **data; + struct squashfs_page_actor *actor; +}; + +struct squashfs_page_actor { + union { + void **buffer; + struct page **page; + }; + void *pageaddr; + void * (*squashfs_first_page)(struct squashfs_page_actor *); + void * (*squashfs_next_page)(struct squashfs_page_actor *); + void (*squashfs_finish_page)(struct squashfs_page_actor *); + int pages; + int length; + int next_page; +}; + +struct squashfs_decompressor; + +struct squashfs_stream; + +struct squashfs_sb_info { + const struct squashfs_decompressor *decompressor; + int devblksize; + int devblksize_log2; + struct squashfs_cache *block_cache; + struct squashfs_cache *fragment_cache; + struct squashfs_cache *read_page; + int next_meta_index; + __le64 *id_table; + __le64 *fragment_index; + __le64 *xattr_id_table; + struct mutex meta_index_mutex; + struct meta_index *meta_index; + struct squashfs_stream *stream; + __le64 *inode_lookup_table; + u64 inode_table; + u64 directory_table; + u64 xattr_table; + unsigned int block_size; + short unsigned int block_log; + long long int bytes_used; + unsigned int inodes; + unsigned int fragments; + unsigned int xattr_ids; + unsigned int ids; + bool panic_on_errors; +}; + +struct squashfs_decompressor { + void * (*init)(struct squashfs_sb_info *, void *); + void * (*comp_opts)(struct squashfs_sb_info *, void *, int); + void (*free)(void *); + int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); + int id; + char *name; + int supported; +}; + +struct squashfs_dir_index { + __le32 index; + __le32 start_block; + __le32 size; + unsigned char name[0]; +}; + +struct squashfs_dir_entry { + __le16 offset; + __le16 inode_number; + __le16 type; + __le16 size; + char name[0]; +}; + +struct squashfs_dir_header { + __le32 count; + __le32 start_block; + __le32 inode_number; +}; + +struct squashfs_inode_info { + u64 start; + int offset; + u64 xattr; + unsigned int xattr_size; + int xattr_count; + union { + struct { + u64 fragment_block; + int fragment_size; + int fragment_offset; + u64 block_list_start; + }; + struct { + u64 dir_idx_start; + int dir_idx_offset; + int dir_idx_cnt; + int parent; + }; + }; + struct inode vfs_inode; +}; + +struct squashfs_fragment_entry { + __le64 start_block; + __le32 size; + unsigned int unused; +}; + +struct squashfs_base_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; +}; + +struct squashfs_ipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; +}; + +struct squashfs_lipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 xattr; +}; + +struct squashfs_dev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; +}; + +struct squashfs_ldev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; + __le32 xattr; +}; + +struct squashfs_symlink_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 symlink_size; + char symlink[0]; +}; + +struct squashfs_reg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 fragment; + __le32 offset; + __le32 file_size; + __le16 block_list[0]; +}; + +struct squashfs_lreg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le64 start_block; + __le64 file_size; + __le64 sparse; + __le32 nlink; + __le32 fragment; + __le32 offset; + __le32 xattr; + __le16 block_list[0]; +}; + +struct squashfs_dir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 nlink; + __le16 file_size; + __le16 offset; + __le32 parent_inode; +}; + +struct squashfs_ldir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 file_size; + __le32 start_block; + __le32 parent_inode; + __le16 i_count; + __le16 offset; + __le32 xattr; + struct squashfs_dir_index index[0]; +}; + +union squashfs_inode { + struct squashfs_base_inode base; + struct squashfs_dev_inode dev; + struct squashfs_ldev_inode ldev; + struct squashfs_symlink_inode symlink; + struct squashfs_reg_inode reg; + struct squashfs_lreg_inode lreg; + struct squashfs_dir_inode dir; + struct squashfs_ldir_inode ldir; + struct squashfs_ipc_inode ipc; + struct squashfs_lipc_inode lipc; +}; + +struct squashfs_super_block { + __le32 s_magic; + __le32 inodes; + __le32 mkfs_time; + __le32 block_size; + __le32 fragments; + __le16 compression; + __le16 block_log; + __le16 flags; + __le16 no_ids; + __le16 s_major; + __le16 s_minor; + __le64 root_inode; + __le64 bytes_used; + __le64 id_table_start; + __le64 xattr_id_table_start; + __le64 inode_table_start; + __le64 directory_table_start; + __le64 fragment_table_start; + __le64 lookup_table_start; +}; + +enum Opt_errors { + Opt_errors_continue = 0, + Opt_errors_panic = 1, +}; + +enum squashfs_param { + Opt_errors = 0, +}; + +struct squashfs_mount_opts { + enum Opt_errors errors; +}; + +struct squashfs_stream { + void *stream; + struct mutex mutex; +}; + +struct squashfs_xattr_entry { + __le16 type; + __le16 size; + char data[0]; +}; + +struct squashfs_xattr_val { + __le32 vsize; + char value[0]; +}; + +struct squashfs_xattr_id { + __le64 xattr; + __le32 count; + __le32 size; +}; + +struct squashfs_xattr_id_table { + __le64 xattr_table_start; + __le32 xattr_ids; + __le32 unused; +}; + +struct lz4_comp_opts { + __le32 version; + __le32 flags; +}; + +struct squashfs_lz4 { + void *input; + void *output; +}; + +struct squashfs_lzo { + void *input; + void *output; +}; + +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, +}; + +enum xz_ret { + XZ_OK = 0, + XZ_STREAM_END = 1, + XZ_UNSUPPORTED_CHECK = 2, + XZ_MEM_ERROR = 3, + XZ_MEMLIMIT_ERROR = 4, + XZ_FORMAT_ERROR = 5, + XZ_OPTIONS_ERROR = 6, + XZ_DATA_ERROR = 7, + XZ_BUF_ERROR = 8, +}; + +struct xz_buf { + const uint8_t *in; + size_t in_pos; + size_t in_size; + uint8_t *out; + size_t out_pos; + size_t out_size; +}; + +struct xz_dec; + +struct squashfs_xz { + struct xz_dec *state; + struct xz_buf buf; +}; + +struct disk_comp_opts { + __le32 dictionary_size; + __le32 flags; +}; + +struct comp_opts { + int dict_size; +}; + +typedef unsigned char Byte; + +typedef long unsigned int uLong; + +struct internal_state; + +struct z_stream_s { + const Byte *next_in; + uLong avail_in; + uLong total_in; + Byte *next_out; + uLong avail_out; + uLong total_out; + char *msg; + struct internal_state *state; + void *workspace; + int data_type; + uLong adler; + uLong reserved; +}; + +struct internal_state { + int dummy; +}; + +typedef struct z_stream_s z_stream; + +typedef z_stream *z_streamp; + +typedef enum { + ZSTD_error_no_error = 0, + ZSTD_error_GENERIC = 1, + ZSTD_error_prefix_unknown = 2, + ZSTD_error_version_unsupported = 3, + ZSTD_error_parameter_unknown = 4, + ZSTD_error_frameParameter_unsupported = 5, + ZSTD_error_frameParameter_unsupportedBy32bits = 6, + ZSTD_error_frameParameter_windowTooLarge = 7, + ZSTD_error_compressionParameter_unsupported = 8, + ZSTD_error_init_missing = 9, + ZSTD_error_memory_allocation = 10, + ZSTD_error_stage_wrong = 11, + ZSTD_error_dstSize_tooSmall = 12, + ZSTD_error_srcSize_wrong = 13, + ZSTD_error_corruption_detected = 14, + ZSTD_error_checksum_wrong = 15, + ZSTD_error_tableLog_tooLarge = 16, + ZSTD_error_maxSymbolValue_tooLarge = 17, + ZSTD_error_maxSymbolValue_tooSmall = 18, + ZSTD_error_dictionary_corrupted = 19, + ZSTD_error_dictionary_wrong = 20, + ZSTD_error_dictionaryCreation_failed = 21, + ZSTD_error_maxCode = 22, +} ZSTD_ErrorCode; + +struct ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; + +struct ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; + +typedef struct { + long long unsigned int frameContentSize; + unsigned int windowSize; + unsigned int dictID; + unsigned int checksumFlag; +} ZSTD_frameParams; + +typedef enum { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; + +typedef uint8_t BYTE; + +typedef void * (*ZSTD_allocFunction)(void *, size_t); + +typedef void (*ZSTD_freeFunction)(void *, void *); + +typedef struct { + ZSTD_allocFunction customAlloc; + ZSTD_freeFunction customFree; + void *opaque; +} ZSTD_customMem; + +typedef uint32_t U32; + +struct ZSTD_DCtx_s; + +typedef struct ZSTD_DCtx_s ZSTD_DCtx; + +struct ZSTD_DDict_s; + +typedef struct ZSTD_DDict_s ZSTD_DDict; + +struct ZSTD_DStream_s { + ZSTD_DCtx *dctx; + ZSTD_DDict *ddictLocal; + const ZSTD_DDict *ddict; + ZSTD_frameParams fParams; + ZSTD_dStreamStage stage; + char *inBuff; + size_t inBuffSize; + size_t inPos; + size_t maxWindowSize; + char *outBuff; + size_t outBuffSize; + size_t outStart; + size_t outEnd; + size_t blockSize; + BYTE headerBuffer[18]; + size_t lhSize; + ZSTD_customMem customMem; + void *legacyContext; + U32 previousLegacyVersion; + U32 legacyVersion; + U32 hostageByte; +}; + +typedef struct ZSTD_DStream_s ZSTD_DStream; + +struct workspace { + void *mem; + size_t mem_size; + size_t window_size; }; struct ramfs_mount_opts { @@ -49064,18 +59114,8 @@ enum hugetlb_param { Opt_uid___3 = 6, }; -struct getdents_callback___2 { - struct dir_context ctx; - char *name; - u64 ino; - int found; - int sequence; -}; - typedef u16 wchar_t; -typedef u32 unicode_t; - struct nls_table { const char *charset; const char *alias; @@ -49087,12 +59127,657 @@ struct nls_table { struct nls_table *next; }; +struct fat_mount_options { + kuid_t fs_uid; + kgid_t fs_gid; + short unsigned int fs_fmask; + short unsigned int fs_dmask; + short unsigned int codepage; + int time_offset; + char *iocharset; + short unsigned int shortname; + unsigned char name_check; + unsigned char errors; + unsigned char nfs; + short unsigned int allow_utime; + unsigned int quiet: 1; + unsigned int showexec: 1; + unsigned int sys_immutable: 1; + unsigned int dotsOK: 1; + unsigned int isvfat: 1; + unsigned int utf8: 1; + unsigned int unicode_xlate: 1; + unsigned int numtail: 1; + unsigned int flush: 1; + unsigned int nocase: 1; + unsigned int usefree: 1; + unsigned int tz_set: 1; + unsigned int rodir: 1; + unsigned int discard: 1; + unsigned int dos1xfloppy: 1; +}; + +struct fatent_operations; + +struct msdos_sb_info { + short unsigned int sec_per_clus; + short unsigned int cluster_bits; + unsigned int cluster_size; + unsigned char fats; + unsigned char fat_bits; + short unsigned int fat_start; + long unsigned int fat_length; + long unsigned int dir_start; + short unsigned int dir_entries; + long unsigned int data_start; + long unsigned int max_cluster; + long unsigned int root_cluster; + long unsigned int fsinfo_sector; + struct mutex fat_lock; + struct mutex nfs_build_inode_lock; + struct mutex s_lock; + unsigned int prev_free; + unsigned int free_clusters; + unsigned int free_clus_valid; + struct fat_mount_options options; + struct nls_table *nls_disk; + struct nls_table *nls_io; + const void *dir_ops; + int dir_per_block; + int dir_per_block_bits; + unsigned int vol_id; + int fatent_shift; + const struct fatent_operations *fatent_ops; + struct inode *fat_inode; + struct inode *fsinfo_inode; + struct ratelimit_state ratelimit; + spinlock_t inode_hash_lock; + struct hlist_head inode_hashtable[256]; + spinlock_t dir_hash_lock; + struct hlist_head dir_hashtable[256]; + unsigned int dirty; + struct callback_head rcu; +}; + +struct fat_entry; + +struct fatent_operations { + void (*ent_blocknr)(struct super_block *, int, int *, sector_t *); + void (*ent_set_ptr)(struct fat_entry *, int); + int (*ent_bread)(struct super_block *, struct fat_entry *, int, sector_t); + int (*ent_get)(struct fat_entry *); + void (*ent_put)(struct fat_entry *, int); + int (*ent_next)(struct fat_entry *); +}; + +struct msdos_inode_info { + spinlock_t cache_lru_lock; + struct list_head cache_lru; + int nr_caches; + unsigned int cache_valid_id; + loff_t mmu_private; + int i_start; + int i_logstart; + int i_attrs; + loff_t i_pos; + struct hlist_node i_fat_hash; + struct hlist_node i_dir_hash; + struct rw_semaphore truncate_lock; + struct inode vfs_inode; +}; + +struct fat_entry { + int entry; + union { + u8 *ent12_p[2]; + __le16 *ent16_p; + __le32 *ent32_p; + } u; + int nr_bhs; + struct buffer_head *bhs[2]; + struct inode *fat_inode; +}; + +struct fat_cache { + struct list_head cache_list; + int nr_contig; + int fcluster; + int dcluster; +}; + +struct fat_cache_id { + unsigned int id; + int nr_contig; + int fcluster; + int dcluster; +}; + +struct compat_dirent { + u32 d_ino; + compat_off_t d_off; + u16 d_reclen; + char d_name[256]; +}; + enum utf16_endian { UTF16_HOST_ENDIAN = 0, UTF16_LITTLE_ENDIAN = 1, UTF16_BIG_ENDIAN = 2, }; +struct __fat_dirent { + long int d_ino; + __kernel_off_t d_off; + short unsigned int d_reclen; + char d_name[256]; +}; + +struct msdos_dir_entry { + __u8 name[11]; + __u8 attr; + __u8 lcase; + __u8 ctime_cs; + __le16 ctime; + __le16 cdate; + __le16 adate; + __le16 starthi; + __le16 time; + __le16 date; + __le16 start; + __le32 size; +}; + +struct msdos_dir_slot { + __u8 id; + __u8 name0_4[10]; + __u8 attr; + __u8 reserved; + __u8 alias_checksum; + __u8 name5_10[12]; + __le16 start; + __u8 name11_12[4]; +}; + +struct fat_slot_info { + loff_t i_pos; + loff_t slot_off; + int nr_slots; + struct msdos_dir_entry *de; + struct buffer_head *bh; +}; + +typedef long long unsigned int llu; + +enum { + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, +}; + +struct fat_ioctl_filldir_callback { + struct dir_context ctx; + void *dirent; + int result; + const char *longname; + int long_len; + const char *shortname; + int short_len; +}; + +struct fatent_ra { + sector_t cur; + sector_t limit; + unsigned int ra_blocks; + sector_t ra_advance; + sector_t ra_next; + sector_t ra_limit; +}; + +struct fat_boot_sector { + __u8 ignored[3]; + __u8 system_id[8]; + __u8 sector_size[2]; + __u8 sec_per_clus; + __le16 reserved; + __u8 fats; + __u8 dir_entries[2]; + __u8 sectors[2]; + __u8 media; + __le16 fat_length; + __le16 secs_track; + __le16 heads; + __le32 hidden; + __le32 total_sect; + union { + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; + }; +}; + +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; +}; + +struct fat_bios_param_block { + u16 fat_sector_size; + u8 fat_sec_per_clus; + u16 fat_reserved; + u8 fat_fats; + u16 fat_dir_entries; + u16 fat_sectors; + u16 fat_fat_length; + u32 fat_total_sect; + u8 fat16_state; + u32 fat16_vol_id; + u32 fat32_length; + u32 fat32_root_cluster; + u16 fat32_info_sector; + u8 fat32_state; + u32 fat32_vol_id; +}; + +struct fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; +}; + +enum { + Opt_check_n = 0, + Opt_check_r = 1, + Opt_check_s = 2, + Opt_uid___4 = 3, + Opt_gid___5 = 4, + Opt_umask = 5, + Opt_dmask = 6, + Opt_fmask = 7, + Opt_allow_utime = 8, + Opt_codepage = 9, + Opt_usefree = 10, + Opt_nocase = 11, + Opt_quiet = 12, + Opt_showexec = 13, + Opt_debug___2 = 14, + Opt_immutable = 15, + Opt_dots = 16, + Opt_nodots = 17, + Opt_charset = 18, + Opt_shortname_lower = 19, + Opt_shortname_win95 = 20, + Opt_shortname_winnt = 21, + Opt_shortname_mixed = 22, + Opt_utf8_no = 23, + Opt_utf8_yes = 24, + Opt_uni_xl_no = 25, + Opt_uni_xl_yes = 26, + Opt_nonumtail_no = 27, + Opt_nonumtail_yes = 28, + Opt_obsolete = 29, + Opt_flush = 30, + Opt_tz_utc = 31, + Opt_rodir = 32, + Opt_err_cont___2 = 33, + Opt_err_panic___2 = 34, + Opt_err_ro___2 = 35, + Opt_discard___2 = 36, + Opt_nfs = 37, + Opt_time_offset = 38, + Opt_nfs_stale_rw = 39, + Opt_nfs_nostale_ro = 40, + Opt_err___3 = 41, + Opt_dos1xfloppy = 42, +}; + +struct fat_fid { + u32 i_gen; + u32 i_pos_low; + u16 i_pos_hi; + u16 parent_i_pos_hi; + u32 parent_i_pos_low; + u32 parent_i_gen; +}; + +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; +}; + +struct ecryptfs_mount_crypt_stat; + +struct ecryptfs_crypt_stat { + u32 flags; + unsigned int file_version; + size_t iv_bytes; + size_t metadata_size; + size_t extent_size; + size_t key_size; + size_t extent_shift; + unsigned int extent_mask; + struct ecryptfs_mount_crypt_stat *mount_crypt_stat; + struct crypto_skcipher *tfm; + struct crypto_shash *hash_tfm; + unsigned char cipher[32]; + unsigned char key[64]; + unsigned char root_iv[16]; + struct list_head keysig_list; + struct mutex keysig_list_mutex; + struct mutex cs_tfm_mutex; + struct mutex cs_mutex; +}; + +struct ecryptfs_mount_crypt_stat { + u32 flags; + struct list_head global_auth_tok_list; + struct mutex global_auth_tok_list_mutex; + size_t global_default_cipher_key_size; + size_t global_default_fn_cipher_key_bytes; + unsigned char global_default_cipher_name[32]; + unsigned char global_default_fn_cipher_name[32]; + char global_default_fnek_sig[17]; +}; + +struct ecryptfs_inode_info { + struct inode vfs_inode; + struct inode *wii_inode; + struct mutex lower_file_mutex; + atomic_t lower_file_count; + struct file *lower_file; + struct ecryptfs_crypt_stat crypt_stat; +}; + +struct ecryptfs_dentry_info { + struct path lower_path; + struct callback_head rcu; +}; + +struct ecryptfs_sb_info { + struct super_block *wsi_sb; + struct ecryptfs_mount_crypt_stat mount_crypt_stat; +}; + +struct ecryptfs_file_info { + struct file *wfi_file; + struct ecryptfs_crypt_stat *crypt_stat; +}; + +struct ecryptfs_getdents_callback { + struct dir_context ctx; + struct dir_context *caller; + struct super_block *sb; + int filldir_called; + int entries_written; +}; + +struct ecryptfs_session_key { + u32 flags; + u32 encrypted_key_size; + u32 decrypted_key_size; + u8 encrypted_key[512]; + u8 decrypted_key[64]; +}; + +struct ecryptfs_password { + u32 password_bytes; + s32 hash_algo; + u32 hash_iterations; + u32 session_key_encryption_key_bytes; + u32 flags; + u8 session_key_encryption_key[64]; + u8 signature[17]; + u8 salt[8]; +}; + +struct ecryptfs_private_key { + u32 key_size; + u32 data_len; + u8 signature[17]; + char pki_type[17]; + u8 data[0]; +}; + +struct ecryptfs_auth_tok { + u16 version; + u16 token_type; + u32 flags; + struct ecryptfs_session_key session_key; + u8 reserved[32]; + union { + struct ecryptfs_password password; + struct ecryptfs_private_key private_key; + } token; +}; + +struct ecryptfs_global_auth_tok { + u32 flags; + struct list_head mount_crypt_stat_list; + struct key *global_auth_tok_key; + unsigned char sig[17]; +}; + +struct ecryptfs_key_tfm { + struct crypto_skcipher *key_tfm; + size_t key_size; + struct mutex key_tfm_mutex; + struct list_head key_tfm_list; + unsigned char cipher_name[32]; +}; + +enum { + ecryptfs_opt_sig = 0, + ecryptfs_opt_ecryptfs_sig = 1, + ecryptfs_opt_cipher = 2, + ecryptfs_opt_ecryptfs_cipher = 3, + ecryptfs_opt_ecryptfs_key_bytes = 4, + ecryptfs_opt_passthrough = 5, + ecryptfs_opt_xattr_metadata = 6, + ecryptfs_opt_encrypted_view = 7, + ecryptfs_opt_fnek_sig = 8, + ecryptfs_opt_fn_cipher = 9, + ecryptfs_opt_fn_cipher_key_bytes = 10, + ecryptfs_opt_unlink_sigs = 11, + ecryptfs_opt_mount_auth_tok_only = 12, + ecryptfs_opt_check_dev_ruid = 13, + ecryptfs_opt_err = 14, +}; + +struct ecryptfs_cache_info { + struct kmem_cache **cache; + const char *name; + size_t size; + slab_flags_t flags; + void (*ctor)(void *); +}; + +struct ecryptfs_key_sig { + struct list_head crypt_stat_list; + char keysig[17]; +}; + +struct ecryptfs_filename { + struct list_head crypt_stat_list; + u32 flags; + u32 seq_no; + char *filename; + char *encrypted_filename; + size_t filename_size; + size_t encrypted_filename_size; + char fnek_sig[16]; + char dentry_name[57]; +}; + +struct extent_crypt_result { + struct completion completion; + int rc; +}; + +struct ecryptfs_flag_map_elem { + u32 file_flag; + u32 local_flag; +}; + +struct ecryptfs_cipher_code_str_map_elem { + char cipher_str[16]; + u8 cipher_code; +}; + +struct encrypted_key_payload { + struct callback_head rcu; + char *format; + char *master_desc; + char *datalen; + u8 *iv; + u8 *encrypted_data; + short unsigned int datablob_len; + short unsigned int decrypted_datalen; + short unsigned int payload_datalen; + short unsigned int encrypted_key_format; + u8 *decrypted_data; + u8 payload_data[0]; +}; + +enum ecryptfs_token_types { + ECRYPTFS_PASSWORD = 0, + ECRYPTFS_PRIVATE_KEY = 1, +}; + +struct ecryptfs_key_record { + unsigned char type; + size_t enc_key_size; + unsigned char sig[8]; + unsigned char enc_key[512]; +}; + +struct ecryptfs_auth_tok_list_item { + unsigned char encrypted_session_key[64]; + struct list_head list; + struct ecryptfs_auth_tok auth_tok; +}; + +struct ecryptfs_message { + u32 index; + u32 data_len; + u8 data[0]; +}; + +struct ecryptfs_msg_ctx { + u8 state; + u8 type; + u32 index; + u32 counter; + size_t msg_size; + struct ecryptfs_message *msg; + struct task_struct *task; + struct list_head node; + struct list_head daemon_out_list; + struct mutex mux; +}; + +struct ecryptfs_write_tag_70_packet_silly_stack { + u8 cipher_code; + size_t max_packet_size; + size_t packet_size_len; + size_t block_aligned_filename_size; + size_t block_size; + size_t i; + size_t j; + size_t num_rand_bytes; + struct mutex *tfm_mutex; + char *block_aligned_filename; + struct ecryptfs_auth_tok *auth_tok; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; + struct crypto_skcipher *skcipher_tfm; + struct skcipher_request *skcipher_req; + char iv[16]; + char hash[16]; + char tmp_hash[16]; + struct crypto_shash *hash_tfm; + struct shash_desc *hash_desc; +}; + +struct ecryptfs_parse_tag_70_packet_silly_stack { + u8 cipher_code; + size_t max_packet_size; + size_t packet_size_len; + size_t parsed_tag_70_packet_size; + size_t block_aligned_filename_size; + size_t block_size; + size_t i; + struct mutex *tfm_mutex; + char *decrypted_filename; + struct ecryptfs_auth_tok *auth_tok; + struct scatterlist src_sg[2]; + struct scatterlist dst_sg[2]; + struct crypto_skcipher *skcipher_tfm; + struct skcipher_request *skcipher_req; + char fnek_sig_hex[17]; + char iv[16]; + char cipher_string[32]; +}; + +struct ecryptfs_open_req { + struct file **lower_file; + struct path path; + struct completion done; + struct list_head kthread_ctl_list; +}; + +struct ecryptfs_kthread_ctl { + u32 flags; + struct mutex mux; + struct list_head req_list; + wait_queue_head_t wait; +}; + +struct ecryptfs_daemon { + u32 flags; + u32 num_queued_msg_ctx; + struct file *file; + struct mutex mux; + struct list_head msg_ctx_out_queue; + wait_queue_head_t wait; + struct hlist_node euid_chain; +}; + +struct getdents_callback___2 { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; +}; + +typedef u32 unicode_t; + struct utf8_table { int cmask; int cval; @@ -49101,12 +59786,978 @@ struct utf8_table { long int lval; }; -typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); +struct utf8data; + +struct utf8cursor { + const struct utf8data *data; + const char *s; + const char *p; + const char *ss; + const char *sp; + unsigned int len; + unsigned int slen; + short int ccc; + short int nccc; + unsigned char hangul[12]; +}; + +struct utf8data { + unsigned int maxage; + unsigned int offset; +}; + +typedef const unsigned char utf8trie_t; + +typedef const unsigned char utf8leaf_t; + +enum fuse_opcode { + FUSE_LOOKUP = 1, + FUSE_FORGET = 2, + FUSE_GETATTR = 3, + FUSE_SETATTR = 4, + FUSE_READLINK = 5, + FUSE_SYMLINK = 6, + FUSE_MKNOD = 8, + FUSE_MKDIR = 9, + FUSE_UNLINK = 10, + FUSE_RMDIR = 11, + FUSE_RENAME = 12, + FUSE_LINK = 13, + FUSE_OPEN = 14, + FUSE_READ = 15, + FUSE_WRITE = 16, + FUSE_STATFS = 17, + FUSE_RELEASE = 18, + FUSE_FSYNC = 20, + FUSE_SETXATTR = 21, + FUSE_GETXATTR = 22, + FUSE_LISTXATTR = 23, + FUSE_REMOVEXATTR = 24, + FUSE_FLUSH = 25, + FUSE_INIT = 26, + FUSE_OPENDIR = 27, + FUSE_READDIR = 28, + FUSE_RELEASEDIR = 29, + FUSE_FSYNCDIR = 30, + FUSE_GETLK = 31, + FUSE_SETLK = 32, + FUSE_SETLKW = 33, + FUSE_ACCESS = 34, + FUSE_CREATE = 35, + FUSE_INTERRUPT = 36, + FUSE_BMAP = 37, + FUSE_DESTROY = 38, + FUSE_IOCTL = 39, + FUSE_POLL = 40, + FUSE_NOTIFY_REPLY = 41, + FUSE_BATCH_FORGET = 42, + FUSE_FALLOCATE = 43, + FUSE_READDIRPLUS = 44, + FUSE_RENAME2 = 45, + FUSE_LSEEK = 46, + FUSE_COPY_FILE_RANGE = 47, + FUSE_SETUPMAPPING = 48, + FUSE_REMOVEMAPPING = 49, + FUSE_SYNCFS = 50, + CUSE_INIT = 4096, + CUSE_INIT_BSWAP_RESERVED = 1048576, + FUSE_INIT_BSWAP_RESERVED = 436207616, +}; + +enum fuse_notify_code { + FUSE_NOTIFY_POLL = 1, + FUSE_NOTIFY_INVAL_INODE = 2, + FUSE_NOTIFY_INVAL_ENTRY = 3, + FUSE_NOTIFY_STORE = 4, + FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, + FUSE_NOTIFY_CODE_MAX = 7, +}; + +struct fuse_forget_in { + uint64_t nlookup; +}; + +struct fuse_forget_one { + uint64_t nodeid; + uint64_t nlookup; +}; + +struct fuse_batch_forget_in { + uint32_t count; + uint32_t dummy; +}; + +struct fuse_interrupt_in { + uint64_t unique; +}; + +struct fuse_notify_poll_wakeup_out { + uint64_t kh; +}; + +struct fuse_in_header { + uint32_t len; + uint32_t opcode; + uint64_t unique; + uint64_t nodeid; + uint32_t uid; + uint32_t gid; + uint32_t pid; + uint32_t padding; +}; + +struct fuse_out_header { + uint32_t len; + int32_t error; + uint64_t unique; +}; + +struct fuse_notify_inval_inode_out { + uint64_t ino; + int64_t off; + int64_t len; +}; + +struct fuse_notify_inval_entry_out { + uint64_t parent; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_notify_delete_out { + uint64_t parent; + uint64_t child; + uint32_t namelen; + uint32_t padding; +}; + +struct fuse_notify_store_out { + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_retrieve_out { + uint64_t notify_unique; + uint64_t nodeid; + uint64_t offset; + uint32_t size; + uint32_t padding; +}; + +struct fuse_notify_retrieve_in { + uint64_t dummy1; + uint64_t offset; + uint32_t size; + uint32_t dummy2; + uint64_t dummy3; + uint64_t dummy4; +}; + +struct fuse_forget_link { + struct fuse_forget_one forget_one; + struct fuse_forget_link *next; +}; + +struct fuse_mount; + +struct fuse_release_args; + +struct fuse_file { + struct fuse_mount *fm; + struct fuse_release_args *release_args; + u64 kh; + u64 fh; + u64 nodeid; + refcount_t count; + u32 open_flags; + struct list_head write_entry; + struct { + struct mutex lock; + loff_t pos; + loff_t cache_off; + u64 version; + } readdir; + struct rb_node polled_node; + wait_queue_head_t poll_wait; + bool flock: 1; +}; + +struct fuse_conn; + +struct fuse_mount { + struct fuse_conn *fc; + struct super_block *sb; + struct list_head fc_entry; + struct callback_head rcu; +}; + +struct fuse_in_arg { + unsigned int size; + const void *value; +}; + +struct fuse_arg { + unsigned int size; + void *value; +}; + +struct fuse_page_desc { + unsigned int length; + unsigned int offset; +}; + +struct fuse_args { + uint64_t nodeid; + uint32_t opcode; + short unsigned int in_numargs; + short unsigned int out_numargs; + bool force: 1; + bool noreply: 1; + bool nocreds: 1; + bool in_pages: 1; + bool out_pages: 1; + bool user_pages: 1; + bool out_argvar: 1; + bool page_zeroing: 1; + bool page_replace: 1; + bool may_block: 1; + struct fuse_in_arg in_args[3]; + struct fuse_arg out_args[2]; + void (*end)(struct fuse_mount *, struct fuse_args *, int); +}; + +struct fuse_args_pages { + struct fuse_args args; + struct page **pages; + struct fuse_page_desc *descs; + unsigned int num_pages; +}; + +enum fuse_req_flag { + FR_ISREPLY = 0, + FR_FORCE = 1, + FR_BACKGROUND = 2, + FR_WAITING = 3, + FR_ABORTED = 4, + FR_INTERRUPTED = 5, + FR_LOCKED = 6, + FR_PENDING = 7, + FR_SENT = 8, + FR_FINISHED = 9, + FR_PRIVATE = 10, + FR_ASYNC = 11, +}; + +struct fuse_req { + struct list_head list; + struct list_head intr_entry; + struct fuse_args *args; + refcount_t count; + long unsigned int flags; + struct { + struct fuse_in_header h; + } in; + struct { + struct fuse_out_header h; + } out; + wait_queue_head_t waitq; + void *argbuf; + struct fuse_mount *fm; +}; + +struct fuse_iqueue; + +struct fuse_iqueue_ops { + void (*wake_forget_and_unlock)(struct fuse_iqueue *); + void (*wake_interrupt_and_unlock)(struct fuse_iqueue *); + void (*wake_pending_and_unlock)(struct fuse_iqueue *); + void (*release)(struct fuse_iqueue *); +}; + +struct fuse_iqueue { + unsigned int connected; + spinlock_t lock; + wait_queue_head_t waitq; + u64 reqctr; + struct list_head pending; + struct list_head interrupts; + struct fuse_forget_link forget_list_head; + struct fuse_forget_link *forget_list_tail; + int forget_batch; + struct fasync_struct *fasync; + const struct fuse_iqueue_ops *ops; + void *priv; +}; + +struct fuse_pqueue { + unsigned int connected; + spinlock_t lock; + struct list_head *processing; + struct list_head io; +}; + +struct fuse_dev { + struct fuse_conn *fc; + struct fuse_pqueue pq; + struct list_head entry; +}; + +struct fuse_conn_dax; + +struct fuse_sync_bucket; + +struct fuse_conn { + spinlock_t lock; + refcount_t count; + atomic_t dev_count; + struct callback_head rcu; + kuid_t user_id; + kgid_t group_id; + struct pid_namespace *pid_ns; + struct user_namespace *user_ns; + unsigned int max_read; + unsigned int max_write; + unsigned int max_pages; + unsigned int max_pages_limit; + struct fuse_iqueue iq; + atomic64_t khctr; + struct rb_root polled_files; + unsigned int max_background; + unsigned int congestion_threshold; + unsigned int num_background; + unsigned int active_background; + struct list_head bg_queue; + spinlock_t bg_lock; + int initialized; + int blocked; + wait_queue_head_t blocked_waitq; + unsigned int connected; + bool aborted; + unsigned int conn_error: 1; + unsigned int conn_init: 1; + unsigned int async_read: 1; + unsigned int abort_err: 1; + unsigned int atomic_o_trunc: 1; + unsigned int export_support: 1; + unsigned int writeback_cache: 1; + unsigned int parallel_dirops: 1; + unsigned int handle_killpriv: 1; + unsigned int cache_symlinks: 1; + unsigned int legacy_opts_show: 1; + unsigned int handle_killpriv_v2: 1; + unsigned int no_open: 1; + unsigned int no_opendir: 1; + unsigned int no_fsync: 1; + unsigned int no_fsyncdir: 1; + unsigned int no_flush: 1; + unsigned int no_setxattr: 1; + unsigned int setxattr_ext: 1; + unsigned int no_getxattr: 1; + unsigned int no_listxattr: 1; + unsigned int no_removexattr: 1; + unsigned int no_lock: 1; + unsigned int no_access: 1; + unsigned int no_create: 1; + unsigned int no_interrupt: 1; + unsigned int no_bmap: 1; + unsigned int no_poll: 1; + unsigned int big_writes: 1; + unsigned int dont_mask: 1; + unsigned int no_flock: 1; + unsigned int no_fallocate: 1; + unsigned int no_rename2: 1; + unsigned int auto_inval_data: 1; + unsigned int explicit_inval_data: 1; + unsigned int do_readdirplus: 1; + unsigned int readdirplus_auto: 1; + unsigned int async_dio: 1; + unsigned int no_lseek: 1; + unsigned int posix_acl: 1; + unsigned int default_permissions: 1; + unsigned int allow_other: 1; + unsigned int no_copy_file_range: 1; + unsigned int destroy: 1; + unsigned int delete_stale: 1; + unsigned int no_control: 1; + unsigned int no_force_umount: 1; + unsigned int auto_submounts: 1; + unsigned int sync_fs: 1; + atomic_t num_waiting; + unsigned int minor; + struct list_head entry; + dev_t dev; + struct dentry *ctl_dentry[5]; + int ctl_ndents; + u32 scramble_key[4]; + atomic64_t attr_version; + void (*release)(struct fuse_conn *); + struct rw_semaphore killsb; + struct list_head devices; + struct fuse_conn_dax *dax; + struct list_head mounts; + struct fuse_sync_bucket *curr_bucket; +}; + +struct fuse_sync_bucket { + atomic_t count; + wait_queue_head_t waitq; + struct callback_head rcu; +}; + +struct fuse_copy_state { + int write; + struct fuse_req *req; + struct iov_iter *iter; + struct pipe_buffer *pipebufs; + struct pipe_buffer *currbuf; + struct pipe_inode_info *pipe; + long unsigned int nr_segs; + struct page *pg; + unsigned int len; + unsigned int offset; + unsigned int move_pages: 1; +}; + +struct fuse_retrieve_args { + struct fuse_args_pages ap; + struct fuse_notify_retrieve_in inarg; +}; + +struct fuse_attr { + uint64_t ino; + uint64_t size; + uint64_t blocks; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint32_t rdev; + uint32_t blksize; + uint32_t flags; +}; + +struct fuse_entry_out { + uint64_t nodeid; + uint64_t generation; + uint64_t entry_valid; + uint64_t attr_valid; + uint32_t entry_valid_nsec; + uint32_t attr_valid_nsec; + struct fuse_attr attr; +}; + +struct fuse_getattr_in { + uint32_t getattr_flags; + uint32_t dummy; + uint64_t fh; +}; + +struct fuse_attr_out { + uint64_t attr_valid; + uint32_t attr_valid_nsec; + uint32_t dummy; + struct fuse_attr attr; +}; + +struct fuse_mknod_in { + uint32_t mode; + uint32_t rdev; + uint32_t umask; + uint32_t padding; +}; + +struct fuse_mkdir_in { + uint32_t mode; + uint32_t umask; +}; + +struct fuse_rename2_in { + uint64_t newdir; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_link_in { + uint64_t oldnodeid; +}; + +struct fuse_setattr_in { + uint32_t valid; + uint32_t padding; + uint64_t fh; + uint64_t size; + uint64_t lock_owner; + uint64_t atime; + uint64_t mtime; + uint64_t ctime; + uint32_t atimensec; + uint32_t mtimensec; + uint32_t ctimensec; + uint32_t mode; + uint32_t unused4; + uint32_t uid; + uint32_t gid; + uint32_t unused5; +}; + +struct fuse_create_in { + uint32_t flags; + uint32_t mode; + uint32_t umask; + uint32_t open_flags; +}; + +struct fuse_open_out { + uint64_t fh; + uint32_t open_flags; + uint32_t padding; +}; + +struct fuse_access_in { + uint32_t mask; + uint32_t padding; +}; + +struct fuse_submount_lookup { + refcount_t count; + u64 nodeid; + struct fuse_forget_link *forget; +}; + +struct fuse_inode_dax; + +struct fuse_inode { + struct inode inode; + u64 nodeid; + u64 nlookup; + struct fuse_forget_link *forget; + u64 i_time; + u32 inval_mask; + umode_t orig_i_mode; + u64 orig_ino; + u64 attr_version; + union { + struct { + struct list_head write_files; + struct list_head queued_writes; + int writectr; + wait_queue_head_t page_waitq; + struct rb_root writepages; + }; + struct { + bool cached; + loff_t size; + loff_t pos; + u64 version; + struct timespec64 mtime; + u64 iversion; + spinlock_t lock; + } rdc; + }; + long unsigned int state; + struct mutex mutex; + spinlock_t lock; + struct fuse_inode_dax *dax; + struct fuse_submount_lookup *submount_lookup; +}; + +enum { + FUSE_I_ADVISE_RDPLUS = 0, + FUSE_I_INIT_RDPLUS = 1, + FUSE_I_SIZE_UNSTABLE = 2, + FUSE_I_BAD = 3, +}; + +struct fuse_file_lock { + uint64_t start; + uint64_t end; + uint32_t type; + uint32_t pid; +}; + +struct fuse_open_in { + uint32_t flags; + uint32_t open_flags; +}; + +struct fuse_release_in { + uint64_t fh; + uint32_t flags; + uint32_t release_flags; + uint64_t lock_owner; +}; + +struct fuse_flush_in { + uint64_t fh; + uint32_t unused; + uint32_t padding; + uint64_t lock_owner; +}; + +struct fuse_read_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t read_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_in { + uint64_t fh; + uint64_t offset; + uint32_t size; + uint32_t write_flags; + uint64_t lock_owner; + uint32_t flags; + uint32_t padding; +}; + +struct fuse_write_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_fsync_in { + uint64_t fh; + uint32_t fsync_flags; + uint32_t padding; +}; + +struct fuse_lk_in { + uint64_t fh; + uint64_t owner; + struct fuse_file_lock lk; + uint32_t lk_flags; + uint32_t padding; +}; + +struct fuse_lk_out { + struct fuse_file_lock lk; +}; + +struct fuse_bmap_in { + uint64_t block; + uint32_t blocksize; + uint32_t padding; +}; + +struct fuse_bmap_out { + uint64_t block; +}; + +struct fuse_poll_in { + uint64_t fh; + uint64_t kh; + uint32_t flags; + uint32_t events; +}; + +struct fuse_poll_out { + uint32_t revents; + uint32_t padding; +}; + +struct fuse_fallocate_in { + uint64_t fh; + uint64_t offset; + uint64_t length; + uint32_t mode; + uint32_t padding; +}; + +struct fuse_lseek_in { + uint64_t fh; + uint64_t offset; + uint32_t whence; + uint32_t padding; +}; + +struct fuse_lseek_out { + uint64_t offset; +}; + +struct fuse_copy_file_range_in { + uint64_t fh_in; + uint64_t off_in; + uint64_t nodeid_out; + uint64_t fh_out; + uint64_t off_out; + uint64_t len; + uint64_t flags; +}; + +struct fuse_release_args { + struct fuse_args args; + struct fuse_release_in inarg; + struct inode *inode; +}; + +struct fuse_io_priv { + struct kref refcnt; + int async; + spinlock_t lock; + unsigned int reqs; + ssize_t bytes; + size_t size; + __u64 offset; + bool write; + bool should_dirty; + int err; + struct kiocb *iocb; + struct completion *done; + bool blocking; +}; + +struct fuse_io_args { + union { + struct { + struct fuse_read_in in; + u64 attr_ver; + } read; + struct { + struct fuse_write_in in; + struct fuse_write_out out; + bool page_locked; + } write; + }; + struct fuse_args_pages ap; + struct fuse_io_priv *io; + struct fuse_file *ff; +}; + +struct fuse_writepage_args { + struct fuse_io_args ia; + struct rb_node writepages_entry; + struct list_head queue_entry; + struct fuse_writepage_args *next; + struct inode *inode; + struct fuse_sync_bucket *bucket; +}; + +struct fuse_fill_wb_data { + struct fuse_writepage_args *wpa; + struct fuse_file *ff; + struct inode *inode; + struct page **orig_pages; + unsigned int max_pages; +}; + +struct fuse_kstatfs { + uint64_t blocks; + uint64_t bfree; + uint64_t bavail; + uint64_t files; + uint64_t ffree; + uint32_t bsize; + uint32_t namelen; + uint32_t frsize; + uint32_t padding; + uint32_t spare[6]; +}; + +struct fuse_statfs_out { + struct fuse_kstatfs st; +}; + +struct fuse_init_in { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; +}; + +struct fuse_init_out { + uint32_t major; + uint32_t minor; + uint32_t max_readahead; + uint32_t flags; + uint16_t max_background; + uint16_t congestion_threshold; + uint32_t max_write; + uint32_t time_gran; + uint16_t max_pages; + uint16_t map_alignment; + uint32_t unused[8]; +}; + +struct fuse_syncfs_in { + uint64_t padding; +}; + +struct fuse_fs_context { + int fd; + struct file *file; + unsigned int rootmode; + kuid_t user_id; + kgid_t group_id; + bool is_bdev: 1; + bool fd_present: 1; + bool rootmode_present: 1; + bool user_id_present: 1; + bool group_id_present: 1; + bool default_permissions: 1; + bool allow_other: 1; + bool destroy: 1; + bool no_control: 1; + bool no_force_umount: 1; + bool legacy_opts_show: 1; + bool dax: 1; + unsigned int max_read; + unsigned int blksize; + const char *subtype; + struct dax_device *dax_dev; + void **fudptr; +}; + +enum { + OPT_SOURCE = 0, + OPT_SUBTYPE = 1, + OPT_FD = 2, + OPT_ROOTMODE = 3, + OPT_USER_ID = 4, + OPT_GROUP_ID = 5, + OPT_DEFAULT_PERMISSIONS = 6, + OPT_ALLOW_OTHER = 7, + OPT_MAX_READ = 8, + OPT_BLKSIZE = 9, + OPT_ERR = 10, +}; + +struct fuse_inode_handle { + u64 nodeid; + u32 generation; +}; + +struct fuse_init_args { + struct fuse_args args; + struct fuse_init_in in; + struct fuse_init_out out; +}; + +struct fuse_setxattr_in { + uint32_t size; + uint32_t flags; + uint32_t setxattr_flags; + uint32_t padding; +}; + +struct fuse_getxattr_in { + uint32_t size; + uint32_t padding; +}; + +struct fuse_getxattr_out { + uint32_t size; + uint32_t padding; +}; + +struct fuse_dirent { + uint64_t ino; + uint64_t off; + uint32_t namelen; + uint32_t type; + char name[0]; +}; + +struct fuse_direntplus { + struct fuse_entry_out entry_out; + struct fuse_dirent dirent; +}; + +enum fuse_parse_result { + FOUND_ERR = 4294967295, + FOUND_NONE = 0, + FOUND_SOME = 1, + FOUND_ALL = 2, +}; + +struct fuse_ioctl_in { + uint64_t fh; + uint32_t flags; + uint32_t cmd; + uint64_t arg; + uint32_t in_size; + uint32_t out_size; +}; + +struct fuse_ioctl_iovec { + uint64_t base; + uint64_t len; +}; + +struct fuse_ioctl_out { + int32_t result; + uint32_t flags; + uint32_t in_iovs; + uint32_t out_iovs; +}; + +struct fuse_setupmapping_in { + uint64_t fh; + uint64_t foffset; + uint64_t len; + uint64_t flags; + uint64_t moffset; +}; + +struct fuse_removemapping_in { + uint32_t count; +}; + +struct fuse_removemapping_one { + uint64_t moffset; + uint64_t len; +}; + +struct fuse_inode_dax { + struct rw_semaphore sem; + struct rb_root_cached tree; + long unsigned int nr; +}; + +struct fuse_conn_dax { + struct dax_device *dev; + spinlock_t lock; + long unsigned int nr_busy_ranges; + struct list_head busy_ranges; + struct delayed_work free_work; + wait_queue_head_t range_waitq; + long int nr_free_ranges; + struct list_head free_ranges; + long unsigned int nr_ranges; +}; + +struct fuse_dax_mapping { + struct inode *inode; + struct list_head list; + struct interval_tree_node itn; + struct list_head busy_list; + u64 window_offset; + loff_t length; + bool writable; + refcount_t refcnt; +}; struct debugfs_fsdata { const struct file_operations *real_fops; - refcount_t active_users; - struct completion active_users_drained; + union { + debugfs_automount_t automount; + struct { + refcount_t active_users; + struct completion active_users_drained; + }; + }; }; struct debugfs_mount_opts { @@ -49116,10 +60767,10 @@ struct debugfs_mount_opts { }; enum { - Opt_uid___4 = 0, - Opt_gid___5 = 1, + Opt_uid___5 = 0, + Opt_gid___6 = 1, Opt_mode___5 = 2, - Opt_err___2 = 3, + Opt_err___4 = 3, }; struct debugfs_fs_info { @@ -49237,7 +60888,11 @@ struct pstore_ftrace_seq_data { enum { Opt_kmsg_bytes = 0, - Opt_err___3 = 1, + Opt_err___5 = 1, +}; + +struct crypto_comp { + struct crypto_tfm base; }; struct pstore_zbackend { @@ -49245,7 +60900,22 @@ struct pstore_zbackend { const char *name; }; -typedef unsigned int __kernel_mode_t; +struct efi_variable { + efi_char16_t VariableName[512]; + efi_guid_t VendorGuid; + long unsigned int DataSize; + __u8 Data[1024]; + efi_status_t Status; + __u32 Attributes; +} __attribute__((packed)); + +struct efivar_entry { + struct efi_variable var; + struct list_head list; + struct kobject kobj; + bool scanning; + bool deleting; +}; struct ipc64_perm { __kernel_key_t key; @@ -49391,6 +61061,8 @@ struct msginfo { short unsigned int msgseg; }; +typedef s32 compat_ssize_t; + typedef u16 compat_ipc_pid_t; struct compat_msqid64_ds { @@ -49664,7 +61336,7 @@ struct shmid_kernel { time64_t shm_ctim; struct pid *shm_cprid; struct pid *shm_lprid; - struct user_struct *mlock_user; + struct ucounts *mlock_ucounts; struct task_struct *shm_creator; struct list_head shm_clist; struct ipc_namespace *ns; @@ -49750,7 +61422,7 @@ struct mqueue_inode_info { struct pid *notify_owner; u32 notify_self_exec_id; struct user_namespace *notify_user_ns; - struct user_struct *user; + struct ucounts *ucounts; struct sock *notify_sock; struct sk_buff *notify_cookie; struct ext_wait_queue e_wait_q[2]; @@ -49788,7 +61460,11 @@ enum key_notification_subtype { NOTIFY_KEY_SETATTR = 7, }; -struct assoc_array_edit; +struct key_notification { + struct watch_notification watch; + __u32 key_id; + __u32 aux; +}; struct assoc_array_ops { long unsigned int (*get_key_chunk)(const void *, int); @@ -49957,11 +61633,419 @@ struct kdf_sdesc { }; enum { - Opt_err___4 = 0, + Opt_err___6 = 0, Opt_enc = 1, Opt_hash = 2, }; +enum tpm_duration { + TPM_SHORT = 0, + TPM_MEDIUM = 1, + TPM_LONG = 2, + TPM_LONG_LONG = 3, + TPM_UNDEFINED = 4, + TPM_NUM_DURATIONS = 4, +}; + +struct trusted_key_payload { + struct callback_head rcu; + unsigned int key_len; + unsigned int blob_len; + unsigned char migratable; + unsigned char old_format; + unsigned char key[129]; + unsigned char blob[512]; +}; + +struct trusted_key_ops { + unsigned char migratable; + int (*init)(void); + int (*seal)(struct trusted_key_payload *, char *); + int (*unseal)(struct trusted_key_payload *, char *); + int (*get_random)(unsigned char *, size_t); + void (*exit)(void); +}; + +struct trusted_key_source { + char *name; + struct trusted_key_ops *ops; +}; + +enum { + Opt_err___7 = 0, + Opt_new = 1, + Opt_load = 2, + Opt_update = 3, +}; + +struct hwrng { + const char *name; + int (*init)(struct hwrng *); + void (*cleanup)(struct hwrng *); + int (*data_present)(struct hwrng *, int); + int (*data_read)(struct hwrng *, u32 *); + int (*read)(struct hwrng *, void *, size_t, bool); + long unsigned int priv; + short unsigned int quality; + struct list_head list; + struct kref ref; + struct completion cleanup_done; +}; + +struct tpm_digest { + u16 alg_id; + u8 digest[64]; +}; + +struct tpm_bank_info { + u16 alg_id; + u16 digest_size; + u16 crypto_id; +}; + +struct tpm_chip; + +struct tpm_class_ops { + unsigned int flags; + const u8 req_complete_mask; + const u8 req_complete_val; + bool (*req_canceled)(struct tpm_chip *, u8); + int (*recv)(struct tpm_chip *, u8 *, size_t); + int (*send)(struct tpm_chip *, u8 *, size_t); + void (*cancel)(struct tpm_chip *); + u8 (*status)(struct tpm_chip *); + void (*update_timeouts)(struct tpm_chip *, long unsigned int *); + void (*update_durations)(struct tpm_chip *, long unsigned int *); + int (*go_idle)(struct tpm_chip *); + int (*cmd_ready)(struct tpm_chip *); + int (*request_locality)(struct tpm_chip *, int); + int (*relinquish_locality)(struct tpm_chip *, int); + void (*clk_enable)(struct tpm_chip *, bool); +}; + +struct tpm_bios_log { + void *bios_event_log; + void *bios_event_log_end; +}; + +struct tpm_chip_seqops { + struct tpm_chip *chip; + const struct seq_operations *seqops; +}; + +struct tpm_space { + u32 context_tbl[3]; + u8 *context_buf; + u32 session_tbl[3]; + u8 *session_buf; + u32 buf_size; +}; + +struct tpm_chip { + struct device dev; + struct device devs; + struct cdev cdev; + struct cdev cdevs; + struct rw_semaphore ops_sem; + const struct tpm_class_ops *ops; + struct tpm_bios_log log; + struct tpm_chip_seqops bin_log_seqops; + struct tpm_chip_seqops ascii_log_seqops; + unsigned int flags; + int dev_num; + long unsigned int is_open; + char hwrng_name[64]; + struct hwrng hwrng; + struct mutex tpm_mutex; + long unsigned int timeout_a; + long unsigned int timeout_b; + long unsigned int timeout_c; + long unsigned int timeout_d; + bool timeout_adjusted; + long unsigned int duration[4]; + bool duration_adjusted; + struct dentry *bios_dir[3]; + const struct attribute_group *groups[8]; + unsigned int groups_cnt; + u32 nr_allocated_banks; + struct tpm_bank_info *allocated_banks; + acpi_handle acpi_dev_handle; + char ppi_version[4]; + struct tpm_space work_space; + u32 last_cc; + u32 nr_commands; + u32 *cc_attrs_tbl; + int locality; +}; + +struct tpm_header { + __be16 tag; + __be32 length; + union { + __be32 ordinal; + __be32 return_code; + }; +} __attribute__((packed)); + +enum tpm_buf_flags { + TPM_BUF_OVERFLOW = 1, +}; + +struct tpm_buf { + unsigned int flags; + u8 *data; +}; + +struct trusted_key_options { + uint16_t keytype; + uint32_t keyhandle; + unsigned char keyauth[20]; + uint32_t blobauth_len; + unsigned char blobauth[20]; + uint32_t pcrinfo_len; + unsigned char pcrinfo[64]; + int pcrlock; + uint32_t hash; + uint32_t policydigest_len; + unsigned char policydigest[64]; + uint32_t policyhandle; +}; + +struct osapsess { + uint32_t handle; + unsigned char secret[20]; + unsigned char enonce[20]; +}; + +enum { + SEAL_keytype = 1, + SRK_keytype = 4, +}; + +struct sdesc { + struct shash_desc shash; + char ctx[0]; +}; + +struct tpm_digests { + unsigned char encauth[20]; + unsigned char pubauth[20]; + unsigned char xorwork[40]; + unsigned char xorhash[20]; + unsigned char nonceodd[20]; +}; + +enum { + Opt_err___8 = 0, + Opt_keyhandle = 1, + Opt_keyauth = 2, + Opt_blobauth = 3, + Opt_pcrinfo = 4, + Opt_pcrlock = 5, + Opt_migratable = 6, + Opt_hash___2 = 7, + Opt_policydigest = 8, + Opt_policyhandle = 9, +}; + +typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); + +struct asn1_decoder { + const unsigned char *machine; + size_t machlen; + const asn1_action_t *actions; +}; + +enum tpm_algorithms { + TPM_ALG_ERROR = 0, + TPM_ALG_SHA1 = 4, + TPM_ALG_KEYEDHASH = 8, + TPM_ALG_SHA256 = 11, + TPM_ALG_SHA384 = 12, + TPM_ALG_SHA512 = 13, + TPM_ALG_NULL = 16, + TPM_ALG_SM3_256 = 18, +}; + +enum tpm2_structures { + TPM2_ST_NO_SESSIONS = 32769, + TPM2_ST_SESSIONS = 32770, +}; + +enum tpm2_return_codes { + TPM2_RC_SUCCESS = 0, + TPM2_RC_HASH = 131, + TPM2_RC_HANDLE = 139, + TPM2_RC_INITIALIZE = 256, + TPM2_RC_FAILURE = 257, + TPM2_RC_DISABLED = 288, + TPM2_RC_COMMAND_CODE = 323, + TPM2_RC_TESTING = 2314, + TPM2_RC_REFERENCE_H0 = 2320, + TPM2_RC_RETRY = 2338, +}; + +enum tpm2_command_codes { + TPM2_CC_FIRST = 287, + TPM2_CC_HIERARCHY_CONTROL = 289, + TPM2_CC_HIERARCHY_CHANGE_AUTH = 297, + TPM2_CC_CREATE_PRIMARY = 305, + TPM2_CC_SEQUENCE_COMPLETE = 318, + TPM2_CC_SELF_TEST = 323, + TPM2_CC_STARTUP = 324, + TPM2_CC_SHUTDOWN = 325, + TPM2_CC_NV_READ = 334, + TPM2_CC_CREATE = 339, + TPM2_CC_LOAD = 343, + TPM2_CC_SEQUENCE_UPDATE = 348, + TPM2_CC_UNSEAL = 350, + TPM2_CC_CONTEXT_LOAD = 353, + TPM2_CC_CONTEXT_SAVE = 354, + TPM2_CC_FLUSH_CONTEXT = 357, + TPM2_CC_VERIFY_SIGNATURE = 375, + TPM2_CC_GET_CAPABILITY = 378, + TPM2_CC_GET_RANDOM = 379, + TPM2_CC_PCR_READ = 382, + TPM2_CC_PCR_EXTEND = 386, + TPM2_CC_EVENT_SEQUENCE_COMPLETE = 389, + TPM2_CC_HASH_SEQUENCE_START = 390, + TPM2_CC_CREATE_LOADED = 401, + TPM2_CC_LAST = 403, +}; + +enum tpm2_permanent_handles { + TPM2_RS_PW = 1073741833, +}; + +enum tpm2_object_attributes { + TPM2_OA_FIXED_TPM = 2, + TPM2_OA_FIXED_PARENT = 16, + TPM2_OA_USER_WITH_AUTH = 64, +}; + +enum tpm2_session_attributes { + TPM2_SA_CONTINUE_SESSION = 1, +}; + +struct tpm2_hash { + unsigned int crypto_id; + unsigned int tpm_id; +}; + +struct tpm2_key_context { + u32 parent; + const u8 *pub; + u32 pub_len; + const u8 *priv; + u32 priv_len; +}; + +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, +}; + +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, +}; + +enum asn1_tag { + ASN1_EOC = 0, + ASN1_BOOL = 1, + ASN1_INT = 2, + ASN1_BTS = 3, + ASN1_OTS = 4, + ASN1_NULL = 5, + ASN1_OID = 6, + ASN1_ODE = 7, + ASN1_EXT = 8, + ASN1_REAL = 9, + ASN1_ENUM = 10, + ASN1_EPDV = 11, + ASN1_UTF8STR = 12, + ASN1_RELOID = 13, + ASN1_SEQ = 16, + ASN1_SET = 17, + ASN1_NUMSTR = 18, + ASN1_PRNSTR = 19, + ASN1_TEXSTR = 20, + ASN1_VIDSTR = 21, + ASN1_IA5STR = 22, + ASN1_UNITIM = 23, + ASN1_GENTIM = 24, + ASN1_GRASTR = 25, + ASN1_VISSTR = 26, + ASN1_GENSTR = 27, + ASN1_UNISTR = 28, + ASN1_CHRSTR = 29, + ASN1_BMPSTR = 30, + ASN1_LONG_TAG = 31, +}; + +enum asn1_opcode { + ASN1_OP_MATCH = 0, + ASN1_OP_MATCH_OR_SKIP = 1, + ASN1_OP_MATCH_ACT = 2, + ASN1_OP_MATCH_ACT_OR_SKIP = 3, + ASN1_OP_MATCH_JUMP = 4, + ASN1_OP_MATCH_JUMP_OR_SKIP = 5, + ASN1_OP_MATCH_ANY = 8, + ASN1_OP_MATCH_ANY_OR_SKIP = 9, + ASN1_OP_MATCH_ANY_ACT = 10, + ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11, + ASN1_OP_COND_MATCH_OR_SKIP = 17, + ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19, + ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21, + ASN1_OP_COND_MATCH_ANY = 24, + ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25, + ASN1_OP_COND_MATCH_ANY_ACT = 26, + ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27, + ASN1_OP_COND_FAIL = 28, + ASN1_OP_COMPLETE = 29, + ASN1_OP_ACT = 30, + ASN1_OP_MAYBE_ACT = 31, + ASN1_OP_END_SEQ = 32, + ASN1_OP_END_SET = 33, + ASN1_OP_END_SEQ_OF = 34, + ASN1_OP_END_SET_OF = 35, + ASN1_OP_END_SEQ_ACT = 36, + ASN1_OP_END_SET_ACT = 37, + ASN1_OP_END_SEQ_OF_ACT = 38, + ASN1_OP_END_SET_OF_ACT = 39, + ASN1_OP_RETURN = 40, + ASN1_OP__NR = 41, +}; + +enum tpm2key_actions { + ACT_tpm2_key_parent = 0, + ACT_tpm2_key_priv = 1, + ACT_tpm2_key_pub = 2, + ACT_tpm2_key_type = 3, + NR__tpm2key_actions = 4, +}; + +enum { + Opt_new___2 = 0, + Opt_load___2 = 1, + Opt_update___2 = 2, + Opt_err___9 = 3, +}; + +enum { + Opt_default = 0, + Opt_ecryptfs = 1, + Opt_enc32 = 2, + Opt_error = 3, +}; + +enum derived_key_type { + ENC_KEY = 0, + AUTH_KEY = 1, +}; + struct vfs_cap_data { __le32 magic_etc; struct { @@ -50004,9 +62088,11 @@ union security_list_options { int (*fs_context_dup)(struct fs_context *, struct fs_context *); int (*fs_context_parse_param)(struct fs_context *, struct fs_parameter *); int (*sb_alloc_security)(struct super_block *); + void (*sb_delete)(struct super_block *); void (*sb_free_security)(struct super_block *); void (*sb_free_mnt_opts)(void *); int (*sb_eat_lsm_opts)(char *, void **); + int (*sb_mnt_opts_compat)(struct super_block *, void *); int (*sb_remount)(struct super_block *, void *); int (*sb_kern_mount)(struct super_block *); int (*sb_show_options)(struct seq_file *, struct super_block *); @@ -50035,6 +62121,7 @@ union security_list_options { int (*inode_alloc_security)(struct inode *); void (*inode_free_security)(struct inode *); int (*inode_init_security)(struct inode *, struct inode *, const struct qstr *, const char **, void **, size_t *); + int (*inode_init_security_anon)(struct inode *, const struct qstr *, const struct inode *); int (*inode_create)(struct inode *, struct dentry *, umode_t); int (*inode_link)(struct dentry *, struct inode *, struct dentry *); int (*inode_unlink)(struct inode *, struct dentry *); @@ -50048,14 +62135,14 @@ union security_list_options { int (*inode_permission)(struct inode *, int); int (*inode_setattr)(struct dentry *, struct iattr *); int (*inode_getattr)(const struct path *); - int (*inode_setxattr)(struct dentry *, const char *, const void *, size_t, int); + int (*inode_setxattr)(struct user_namespace *, struct dentry *, const char *, const void *, size_t, int); void (*inode_post_setxattr)(struct dentry *, const char *, const void *, size_t, int); int (*inode_getxattr)(struct dentry *, const char *); int (*inode_listxattr)(struct dentry *); - int (*inode_removexattr)(struct dentry *, const char *); + int (*inode_removexattr)(struct user_namespace *, struct dentry *, const char *); int (*inode_need_killpriv)(struct dentry *); - int (*inode_killpriv)(struct dentry *); - int (*inode_getsecurity)(struct inode *, const char *, void **, bool); + int (*inode_killpriv)(struct user_namespace *, struct dentry *); + int (*inode_getsecurity)(struct user_namespace *, struct inode *, const char *, void **, bool); int (*inode_setsecurity)(struct inode *, const char *, const void *, size_t, int); int (*inode_listsecurity)(struct inode *, char *, size_t); void (*inode_getsecid)(struct inode *, u32 *); @@ -50066,6 +62153,7 @@ union security_list_options { int (*file_alloc_security)(struct file *); void (*file_free_security)(struct file *); int (*file_ioctl)(struct file *, unsigned int, long unsigned int); + int (*file_ioctl_compat)(struct file *, unsigned int, long unsigned int); int (*mmap_addr)(long unsigned int); int (*mmap_file)(struct file *, long unsigned int, long unsigned int, long unsigned int); int (*file_mprotect)(struct vm_area_struct *, long unsigned int, long unsigned int); @@ -50094,7 +62182,8 @@ union security_list_options { int (*task_setpgid)(struct task_struct *, pid_t); int (*task_getpgid)(struct task_struct *); int (*task_getsid)(struct task_struct *); - void (*task_getsecid)(struct task_struct *, u32 *); + void (*task_getsecid_subj)(struct task_struct *, u32 *); + void (*task_getsecid_obj)(struct task_struct *, u32 *); int (*task_setnice)(struct task_struct *, int); int (*task_setioprio)(struct task_struct *, int); int (*task_getioprio)(struct task_struct *); @@ -50138,6 +62227,8 @@ union security_list_options { int (*inode_notifysecctx)(struct inode *, void *, u32); int (*inode_setsecctx)(struct dentry *, void *, u32); int (*inode_getsecctx)(struct inode *, void **, u32 *); + int (*post_notification)(const struct cred *, const struct cred *, struct watch_notification *); + int (*watch_key)(struct key *); int (*unix_stream_connect)(struct sock *, struct sock *, struct sock *); int (*unix_may_send)(struct socket *, struct socket *); int (*socket_create)(int, int, int, int); @@ -50162,22 +62253,26 @@ union security_list_options { void (*sk_clone_security)(const struct sock *, struct sock *); void (*sk_getsecid)(struct sock *, u32 *); void (*sock_graft)(struct sock *, struct socket *); - int (*inet_conn_request)(struct sock *, struct sk_buff *, struct request_sock *); + int (*inet_conn_request)(const struct sock *, struct sk_buff *, struct request_sock *); void (*inet_csk_clone)(struct sock *, const struct request_sock *); void (*inet_conn_established)(struct sock *, struct sk_buff *); int (*secmark_relabel_packet)(u32); - void (*secmark_refcount_inc)(); - void (*secmark_refcount_dec)(); + void (*secmark_refcount_inc)(void); + void (*secmark_refcount_dec)(void); void (*req_classify_flow)(const struct request_sock *, struct flowi_common *); int (*tun_dev_alloc_security)(void **); void (*tun_dev_free_security)(void *); - int (*tun_dev_create)(); + int (*tun_dev_create)(void); int (*tun_dev_attach_queue)(void *); int (*tun_dev_attach)(struct sock *, void *); int (*tun_dev_open)(void *); int (*sctp_assoc_request)(struct sctp_endpoint *, struct sk_buff *); int (*sctp_bind_connect)(struct sock *, int, struct sockaddr *, int); void (*sctp_sk_clone)(struct sctp_endpoint *, struct sock *, struct sock *); + int (*ib_pkey_access)(void *, u64, u16); + int (*ib_endport_manage_subnet)(void *, const char *, u8); + int (*ib_alloc_security)(void **); + void (*ib_free_security)(void *); int (*xfrm_policy_alloc_security)(struct xfrm_sec_ctx **, struct xfrm_user_sec_ctx *, gfp_t); int (*xfrm_policy_clone_security)(struct xfrm_sec_ctx *, struct xfrm_sec_ctx **); void (*xfrm_policy_free_security)(struct xfrm_sec_ctx *); @@ -50186,14 +62281,14 @@ union security_list_options { int (*xfrm_state_alloc_acquire)(struct xfrm_state *, struct xfrm_sec_ctx *, u32); void (*xfrm_state_free_security)(struct xfrm_state *); int (*xfrm_state_delete_security)(struct xfrm_state *); - int (*xfrm_policy_lookup)(struct xfrm_sec_ctx *, u32, u8); + int (*xfrm_policy_lookup)(struct xfrm_sec_ctx *, u32); int (*xfrm_state_pol_flow_match)(struct xfrm_state *, struct xfrm_policy *, const struct flowi_common *); int (*xfrm_decode_session)(struct sk_buff *, u32 *, int); int (*key_alloc)(struct key *, const struct cred *, long unsigned int); void (*key_free)(struct key *); int (*key_permission)(key_ref_t, const struct cred *, enum key_need_perm); int (*key_getsecurity)(struct key *, char **); - int (*audit_rule_init)(u32, u32, char *, void **); + int (*audit_rule_init)(u32, u32, char *, void **, gfp_t); int (*audit_rule_known)(struct audit_krule *); int (*audit_rule_match)(u32, u32, u32, void *); void (*audit_rule_free)(void *); @@ -50205,6 +62300,7 @@ union security_list_options { int (*bpf_prog_alloc_security)(struct bpf_prog_aux *); void (*bpf_prog_free_security)(struct bpf_prog_aux *); int (*locked_down)(enum lockdown_reason); + int (*lock_kernel_down)(const char *, enum lockdown_reason); int (*perf_event_open)(struct perf_event_attr *, int); int (*perf_event_alloc)(struct perf_event *); void (*perf_event_free)(struct perf_event *); @@ -50235,9 +62331,11 @@ struct security_hook_heads { struct hlist_head fs_context_dup; struct hlist_head fs_context_parse_param; struct hlist_head sb_alloc_security; + struct hlist_head sb_delete; struct hlist_head sb_free_security; struct hlist_head sb_free_mnt_opts; struct hlist_head sb_eat_lsm_opts; + struct hlist_head sb_mnt_opts_compat; struct hlist_head sb_remount; struct hlist_head sb_kern_mount; struct hlist_head sb_show_options; @@ -50266,6 +62364,7 @@ struct security_hook_heads { struct hlist_head inode_alloc_security; struct hlist_head inode_free_security; struct hlist_head inode_init_security; + struct hlist_head inode_init_security_anon; struct hlist_head inode_create; struct hlist_head inode_link; struct hlist_head inode_unlink; @@ -50297,6 +62396,7 @@ struct security_hook_heads { struct hlist_head file_alloc_security; struct hlist_head file_free_security; struct hlist_head file_ioctl; + struct hlist_head file_ioctl_compat; struct hlist_head mmap_addr; struct hlist_head mmap_file; struct hlist_head file_mprotect; @@ -50325,7 +62425,8 @@ struct security_hook_heads { struct hlist_head task_setpgid; struct hlist_head task_getpgid; struct hlist_head task_getsid; - struct hlist_head task_getsecid; + struct hlist_head task_getsecid_subj; + struct hlist_head task_getsecid_obj; struct hlist_head task_setnice; struct hlist_head task_setioprio; struct hlist_head task_getioprio; @@ -50369,6 +62470,8 @@ struct security_hook_heads { struct hlist_head inode_notifysecctx; struct hlist_head inode_setsecctx; struct hlist_head inode_getsecctx; + struct hlist_head post_notification; + struct hlist_head watch_key; struct hlist_head unix_stream_connect; struct hlist_head unix_may_send; struct hlist_head socket_create; @@ -50409,6 +62512,10 @@ struct security_hook_heads { struct hlist_head sctp_assoc_request; struct hlist_head sctp_bind_connect; struct hlist_head sctp_sk_clone; + struct hlist_head ib_pkey_access; + struct hlist_head ib_endport_manage_subnet; + struct hlist_head ib_alloc_security; + struct hlist_head ib_free_security; struct hlist_head xfrm_policy_alloc_security; struct hlist_head xfrm_policy_clone_security; struct hlist_head xfrm_policy_free_security; @@ -50436,6 +62543,7 @@ struct security_hook_heads { struct hlist_head bpf_prog_alloc_security; struct hlist_head bpf_prog_free_security; struct hlist_head locked_down; + struct hlist_head lock_kernel_down; struct hlist_head perf_event_open; struct hlist_head perf_event_alloc; struct hlist_head perf_event_free; @@ -50443,11 +62551,16 @@ struct security_hook_heads { struct hlist_head perf_event_write; }; +struct lsm_id { + const char *lsm; + int slot; +}; + struct security_hook_list { struct hlist_node list; struct hlist_head *head; union security_list_options hook; - char *lsm; + struct lsm_id *lsmid; }; enum lsm_order { @@ -50460,7 +62573,7 @@ struct lsm_info { enum lsm_order order; long unsigned int flags; int *enabled; - int (*init)(); + int (*init)(void); struct lsm_blob_sizes *blobs; }; @@ -50468,7 +62581,536 @@ enum lsm_event { LSM_POLICY_CHANGE = 0, }; -typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); +struct ethhdr { + unsigned char h_dest[6]; + unsigned char h_source[6]; + __be16 h_proto; +}; + +struct ethtool_drvinfo { + __u32 cmd; + char driver[32]; + char version[32]; + char fw_version[32]; + char bus_info[32]; + char erom_version[32]; + char reserved2[12]; + __u32 n_priv_flags; + __u32 n_stats; + __u32 testinfo_len; + __u32 eedump_len; + __u32 regdump_len; +}; + +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; +}; + +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; +}; + +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_eee { + __u32 cmd; + __u32 supported; + __u32 advertised; + __u32 lp_advertised; + __u32 eee_active; + __u32 eee_enabled; + __u32 tx_lpi_enabled; + __u32 tx_lpi_timer; + __u32 reserved[2]; +}; + +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; +}; + +struct ethtool_coalesce { + __u32 cmd; + __u32 rx_coalesce_usecs; + __u32 rx_max_coalesced_frames; + __u32 rx_coalesce_usecs_irq; + __u32 rx_max_coalesced_frames_irq; + __u32 tx_coalesce_usecs; + __u32 tx_max_coalesced_frames; + __u32 tx_coalesce_usecs_irq; + __u32 tx_max_coalesced_frames_irq; + __u32 stats_block_coalesce_usecs; + __u32 use_adaptive_rx_coalesce; + __u32 use_adaptive_tx_coalesce; + __u32 pkt_rate_low; + __u32 rx_coalesce_usecs_low; + __u32 rx_max_coalesced_frames_low; + __u32 tx_coalesce_usecs_low; + __u32 tx_max_coalesced_frames_low; + __u32 pkt_rate_high; + __u32 rx_coalesce_usecs_high; + __u32 rx_max_coalesced_frames_high; + __u32 tx_coalesce_usecs_high; + __u32 tx_max_coalesced_frames_high; + __u32 rate_sample_interval; +}; + +struct ethtool_ringparam { + __u32 cmd; + __u32 rx_max_pending; + __u32 rx_mini_max_pending; + __u32 rx_jumbo_max_pending; + __u32 tx_max_pending; + __u32 rx_pending; + __u32 rx_mini_pending; + __u32 rx_jumbo_pending; + __u32 tx_pending; +}; + +struct ethtool_channels { + __u32 cmd; + __u32 max_rx; + __u32 max_tx; + __u32 max_other; + __u32 max_combined; + __u32 rx_count; + __u32 tx_count; + __u32 other_count; + __u32 combined_count; +}; + +struct ethtool_pauseparam { + __u32 cmd; + __u32 autoneg; + __u32 rx_pause; + __u32 tx_pause; +}; + +enum ethtool_link_ext_state { + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0, + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 1, + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 2, + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 3, + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 4, + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 5, + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 6, + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 7, + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 8, + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 9, +}; + +enum ethtool_link_ext_substate_autoneg { + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1, + ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 2, + ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 3, + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 4, + ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 5, + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 6, +}; + +enum ethtool_link_ext_substate_link_training { + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1, + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 2, + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 3, + ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 4, +}; + +enum ethtool_link_ext_substate_link_logical_mismatch { + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1, + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 2, + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 3, + ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 4, + ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 5, +}; + +enum ethtool_link_ext_substate_bad_signal_integrity { + ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1, + ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 2, + ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST = 3, + ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS = 4, +}; + +enum ethtool_link_ext_substate_cable_issue { + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, +}; + +struct ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 data[0]; +}; + +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; +}; + +struct ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __u8 tos; +}; + +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; +}; + +struct ethtool_usrip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 l4_4_bytes; + __u8 tos; + __u8 ip_ver; + __u8 proto; +}; + +struct ethtool_tcpip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be16 psrc; + __be16 pdst; + __u8 tclass; +}; + +struct ethtool_ah_espip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 spi; + __u8 tclass; +}; + +struct ethtool_usrip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 l4_4_bytes; + __u8 tclass; + __u8 l4_proto; +}; + +union ethtool_flow_union { + struct ethtool_tcpip4_spec tcp_ip4_spec; + struct ethtool_tcpip4_spec udp_ip4_spec; + struct ethtool_tcpip4_spec sctp_ip4_spec; + struct ethtool_ah_espip4_spec ah_ip4_spec; + struct ethtool_ah_espip4_spec esp_ip4_spec; + struct ethtool_usrip4_spec usr_ip4_spec; + struct ethtool_tcpip6_spec tcp_ip6_spec; + struct ethtool_tcpip6_spec udp_ip6_spec; + struct ethtool_tcpip6_spec sctp_ip6_spec; + struct ethtool_ah_espip6_spec ah_ip6_spec; + struct ethtool_ah_espip6_spec esp_ip6_spec; + struct ethtool_usrip6_spec usr_ip6_spec; + struct ethhdr ether_spec; + __u8 hdata[52]; +}; + +struct ethtool_flow_ext { + __u8 padding[2]; + unsigned char h_dest[6]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; +}; + +struct ethtool_rx_flow_spec { + __u32 flow_type; + union ethtool_flow_union h_u; + struct ethtool_flow_ext h_ext; + union ethtool_flow_union m_u; + struct ethtool_flow_ext m_ext; + __u64 ring_cookie; + __u32 location; +}; + +struct ethtool_rxnfc { + __u32 cmd; + __u32 flow_type; + __u64 data; + struct ethtool_rx_flow_spec fs; + union { + __u32 rule_cnt; + __u32 rss_context; + }; + __u32 rule_locs[0]; +}; + +struct ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; +}; + +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; +}; + +struct ethtool_ts_info { + __u32 cmd; + __u32 so_timestamping; + __s32 phc_index; + __u32 tx_types; + __u32 tx_reserved[3]; + __u32 rx_filters; + __u32 rx_reserved[3]; +}; + +struct ethtool_fecparam { + __u32 cmd; + __u32 active_fec; + __u32 fec; + __u32 reserved; +}; + +enum ethtool_link_mode_bit_indices { + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, + ETHTOOL_LINK_MODE_Autoneg_BIT = 6, + ETHTOOL_LINK_MODE_TP_BIT = 7, + ETHTOOL_LINK_MODE_AUI_BIT = 8, + ETHTOOL_LINK_MODE_MII_BIT = 9, + ETHTOOL_LINK_MODE_FIBRE_BIT = 10, + ETHTOOL_LINK_MODE_BNC_BIT = 11, + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, + ETHTOOL_LINK_MODE_Pause_BIT = 13, + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, + ETHTOOL_LINK_MODE_Backplane_BIT = 16, + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, + ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, + __ETHTOOL_LINK_MODE_MASK_NBITS = 92, +}; + +struct ethtool_link_settings { + __u32 cmd; + __u32 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 autoneg; + __u8 mdio_support; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __s8 link_mode_masks_nwords; + __u8 transceiver; + __u8 master_slave_cfg; + __u8 master_slave_state; + __u8 reserved1[1]; + __u32 reserved[7]; + __u32 link_mode_masks[0]; +}; + +struct ethtool_link_ext_state_info { + enum ethtool_link_ext_state link_ext_state; + union { + enum ethtool_link_ext_substate_autoneg autoneg; + enum ethtool_link_ext_substate_link_training link_training; + enum ethtool_link_ext_substate_link_logical_mismatch link_logical_mismatch; + enum ethtool_link_ext_substate_bad_signal_integrity bad_signal_integrity; + enum ethtool_link_ext_substate_cable_issue cable_issue; + u32 __link_ext_substate; + }; +}; + +struct ethtool_link_ksettings { + struct ethtool_link_settings base; + struct { + long unsigned int supported[2]; + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + } link_modes; + u32 lanes; +}; + +struct kernel_ethtool_coalesce { + u8 use_cqe_mode_tx; + u8 use_cqe_mode_rx; +}; + +struct ethtool_eth_mac_stats { + u64 FramesTransmittedOK; + u64 SingleCollisionFrames; + u64 MultipleCollisionFrames; + u64 FramesReceivedOK; + u64 FrameCheckSequenceErrors; + u64 AlignmentErrors; + u64 OctetsTransmittedOK; + u64 FramesWithDeferredXmissions; + u64 LateCollisions; + u64 FramesAbortedDueToXSColls; + u64 FramesLostDueToIntMACXmitError; + u64 CarrierSenseErrors; + u64 OctetsReceivedOK; + u64 FramesLostDueToIntMACRcvError; + u64 MulticastFramesXmittedOK; + u64 BroadcastFramesXmittedOK; + u64 FramesWithExcessiveDeferral; + u64 MulticastFramesReceivedOK; + u64 BroadcastFramesReceivedOK; + u64 InRangeLengthErrors; + u64 OutOfRangeLengthField; + u64 FrameTooLongErrors; +}; + +struct ethtool_eth_phy_stats { + u64 SymbolErrorDuringCarrier; +}; + +struct ethtool_eth_ctrl_stats { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; +}; + +struct ethtool_pause_stats { + u64 tx_pause_frames; + u64 rx_pause_frames; +}; + +struct ethtool_fec_stat { + u64 total; + u64 lanes[8]; +}; + +struct ethtool_fec_stats { + struct ethtool_fec_stat corrected_blocks; + struct ethtool_fec_stat uncorrectable_blocks; + struct ethtool_fec_stat corrected_bits; +}; + +struct ethtool_rmon_hist_range { + u16 low; + u16 high; +}; + +struct ethtool_rmon_stats { + u64 undersize_pkts; + u64 oversize_pkts; + u64 fragments; + u64 jabbers; + u64 hist[10]; + u64 hist_tx[10]; +}; + +struct ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; +}; enum ib_uverbs_write_cmds { IB_USER_VERBS_CMD_GET_CONTEXT = 0, @@ -50610,7 +63252,7 @@ enum ib_poll_context { struct lsm_network_audit { int netif; - struct sock *sk; + const struct sock *sk; u16 family; __be16 dport; __be16 sport; @@ -50637,7 +63279,7 @@ struct lsm_ibpkey_audit { }; struct lsm_ibendport_audit { - char dev_name[64]; + const char *dev_name; u8 port; }; @@ -50654,6 +63296,8 @@ struct selinux_audit_data { struct selinux_state *state; }; +struct smack_audit_data; + struct apparmor_audit_data; struct common_audit_data { @@ -50678,6 +63322,7 @@ struct common_audit_data { int reason; } u; union { + struct smack_audit_data *smack_audit_data; struct selinux_audit_data *selinux_audit_data; struct apparmor_audit_data *apparmor_audit_data; }; @@ -50835,8 +63480,6 @@ struct sctp_bind_addr { }; struct sctp_ep_common { - struct hlist_node node; - int hashent; enum sctp_endpoint_type type; refcount_t refcnt; bool dead; @@ -50846,14 +63489,14 @@ struct sctp_ep_common { struct sctp_bind_addr bind_addr; }; -struct crypto_shash; - struct sctp_hmac_algo_param; struct sctp_chunks_param; struct sctp_endpoint { struct sctp_ep_common base; + struct hlist_node node; + int hashent; struct list_head asocs; __u8 secret_key[32]; __u8 *digest; @@ -50910,8 +63553,8 @@ struct nf_hook_entries { }; struct nf_hook_state { - unsigned int hook; - u_int8_t pf; + u8 hook; + u8 pf; struct net_device *in; struct net_device *out; struct sock *sk; @@ -50919,11 +63562,17 @@ struct nf_hook_state { int (*okfn)(struct net *, struct sock *, struct sk_buff *); }; +enum nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, +}; + struct nf_hook_ops { nf_hookfn *hook; struct net_device *dev; void *priv; - u_int8_t pf; + u8 pf; + enum nf_hook_ops_type hook_ops_type: 8; unsigned int hooknum; int priority; }; @@ -50967,10 +63616,6 @@ struct socket_alloc { struct socket socket; struct inode vfs_inode; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; }; struct ip_options { @@ -51044,10 +63689,9 @@ struct inet_sock { __be32 inet_saddr; __s16 uc_ttl; __u16 cmsg_flags; + struct ip_options_rcu *inet_opt; __be16 inet_sport; __u16 inet_id; - struct ip_options_rcu *inet_opt; - int rx_dst_ifindex; __u8 tos; __u8 min_ttl; __u8 mc_ttl; @@ -51139,7 +63783,6 @@ struct ipv6_pinfo { __u8 tclass; __be32 rcv_flowinfo; __u32 dst_cookie; - __u32 rx_dst_cookie; struct ipv6_mc_socklist *ipv6_mc_list; struct ipv6_ac_socklist *ipv6_ac_list; struct ipv6_fl_socklist *ipv6_fl_list; @@ -51179,8 +63822,16 @@ struct iphdr { __u8 ttl; __u8 protocol; __sum16 check; - __be32 saddr; - __be32 daddr; + union { + struct { + __be32 saddr; + __be32 daddr; + }; + struct { + __be32 saddr; + __be32 daddr; + } addrs; + }; }; struct ipv6_rt_hdr { @@ -51202,8 +63853,16 @@ struct ipv6hdr { __be16 payload_len; __u8 nexthdr; __u8 hop_limit; - struct in6_addr saddr; - struct in6_addr daddr; + union { + struct { + struct in6_addr saddr; + struct in6_addr daddr; + }; + struct { + struct in6_addr saddr; + struct in6_addr daddr; + } addrs; + }; }; struct udphdr { @@ -51224,6 +63883,7 @@ struct inet6_skb_parm { __u16 flags; __u16 dsthao; __u16 frag_max_size; + __u16 srhoff; }; struct ip6_sf_socklist; @@ -51233,7 +63893,6 @@ struct ipv6_mc_socklist { int ifindex; unsigned int sfmode; struct ipv6_mc_socklist *next; - rwlock_t sflock; struct ip6_sf_socklist *sflist; struct callback_head rcu; }; @@ -51255,6 +63914,7 @@ struct ipv6_fl_socklist { struct ip6_sf_socklist { unsigned int sl_max; unsigned int sl_count; + struct callback_head rcu; struct in6_addr sl_addr[0]; }; @@ -51311,7 +63971,7 @@ struct netlbl_lsm_secattr { struct netlbl_lsm_catmap *cat; u32 lvl; } mls; - u32 secid; + struct lsmblob lsmblob; } attr; }; @@ -51435,6 +64095,7 @@ enum sctp_cid { SCTP_CID_I_FWD_TSN = 194, SCTP_CID_ASCONF_ACK = 128, SCTP_CID_RECONF = 130, + SCTP_CID_PAD = 132, }; struct sctp_paramhdr { @@ -51852,6 +64513,8 @@ struct sctp_association { __u16 init_retries; long unsigned int max_init_timeo; long unsigned int hbinterval; + long unsigned int probe_interval; + __be16 encap_port; __u16 pathmaxrxt; __u32 flowlabel; __u8 dscp; @@ -51860,8 +64523,8 @@ struct sctp_association { __u32 param_flags; __u32 sackfreq; long unsigned int sackdelay; - long unsigned int timeouts[11]; - struct timer_list timers[11]; + long unsigned int timeouts[12]; + struct timer_list timers[12]; struct sctp_transport *shutdown_last_sent_to; struct sctp_transport *init_last_sent_to; int shutdown_retries; @@ -51954,8 +64617,9 @@ enum sctp_event_timeout { SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD = 6, SCTP_EVENT_TIMEOUT_HEARTBEAT = 7, SCTP_EVENT_TIMEOUT_RECONF = 8, - SCTP_EVENT_TIMEOUT_SACK = 9, - SCTP_EVENT_TIMEOUT_AUTOCLOSE = 10, + SCTP_EVENT_TIMEOUT_PROBE = 9, + SCTP_EVENT_TIMEOUT_SACK = 10, + SCTP_EVENT_TIMEOUT_AUTOCLOSE = 11, }; enum { @@ -52079,6 +64743,7 @@ struct sctp_chunk { __u16 data_accepted: 1; __u16 auth: 1; __u16 has_asconf: 1; + __u16 pmtu_probe: 1; __u16 tsn_missing_report: 2; __u16 fast_retransmit: 2; }; @@ -52134,6 +64799,9 @@ struct sctp_sock { __u32 default_rcv_context; int max_burst; __u32 hbinterval; + __u32 probe_interval; + __be16 udp_port; + __be16 encap_port; __u16 pathmaxrxt; __u32 flowlabel; __u8 dscp; @@ -52203,6 +64871,7 @@ struct sctp_sender_hb_info { union sctp_addr daddr; long unsigned int sent_at; __u64 hb_nonce; + __u32 probe_size; }; struct sctp_af { @@ -52277,12 +64946,14 @@ struct sctp_transport { struct dst_entry *dst; union sctp_addr saddr; long unsigned int hbinterval; + long unsigned int probe_interval; long unsigned int sackdelay; __u32 sackfreq; atomic_t mtu_info; ktime_t last_time_heard; long unsigned int last_time_sent; long unsigned int last_time_ecne_reduced; + __be16 encap_port; __u16 pathmaxrxt; __u32 flowlabel; __u8 dscp; @@ -52297,6 +64968,7 @@ struct sctp_transport { struct timer_list hb_timer; struct timer_list proto_unreach_timer; struct timer_list reconf_timer; + struct timer_list probe_timer; struct list_head transmitted; struct sctp_packet packet; struct list_head send_ready; @@ -52306,6 +64978,15 @@ struct sctp_transport { char cycling_changeover; char cacc_saw_newack; } cacc; + struct { + __u32 last_rtx_chunks; + __u16 pmtu; + __u16 probe_size; + __u16 probe_high; + __u8 probe_count: 3; + __u8 raise_count: 5; + __u8 state; + } pl; __u64 hb_nonce; struct callback_head rcu; }; @@ -52325,6 +65006,7 @@ struct sctp_stream_priorities { struct list_head active; struct sctp_stream_out_ext *next; __u16 prio; + __u16 users; }; struct sctp_stream_out_ext { @@ -52375,7 +65057,6 @@ struct file_security_struct { }; struct superblock_security_struct { - struct super_block *sb; u32 sid; u32 def_sid; u32 mntpoint_sid; @@ -52421,6 +65102,10 @@ struct key_security_struct { u32 sid; }; +struct ib_security_struct { + u32 sid; +}; + struct bpf_security_struct { u32 sid; }; @@ -52434,10 +65119,14 @@ struct selinux_mnt_opts { const char *context; const char *rootcontext; const char *defcontext; + u32 fscontext_sid; + u32 context_sid; + u32 rootcontext_sid; + u32 defcontext_sid; }; enum { - Opt_error = 4294967295, + Opt_error___2 = 4294967295, Opt_context = 0, Opt_defcontext = 1, Opt_fscontext = 2, @@ -52611,7 +65300,10 @@ enum { RTM_NEWVLAN = 112, RTM_DELVLAN = 113, RTM_GETVLAN = 114, - __RTM_MAX = 115, + RTM_NEWNEXTHOPBUCKET = 116, + RTM_DELNEXTHOPBUCKET = 117, + RTM_GETNEXTHOPBUCKET = 118, + __RTM_MAX = 119, }; struct nlmsg_perm { @@ -52780,7 +65472,7 @@ struct sidtab_isid_entry { struct sidtab; struct sidtab_convert_params { - int (*func)(struct context___2 *, struct context___2 *, void *); + int (*func)(struct context___2 *, struct context___2 *, void *, gfp_t); void *args; struct sidtab *target; }; @@ -53161,13 +65853,14 @@ struct fib6_info { u32 fib6_metric; u8 fib6_protocol; u8 fib6_type; + u8 offload; + u8 trap; + u8 offload_failed; u8 should_flush: 1; u8 dst_nocount: 1; u8 dst_nopolicy: 1; u8 fib6_destroying: 1; - u8 offload: 1; - u8 trap: 1; - u8 unused: 2; + u8 unused: 4; struct callback_head rcu; struct nexthop *nh; struct fib6_nh fib6_nh[0]; @@ -53382,6 +66075,12 @@ struct xfrm_state_walk { struct xfrm_address_filter *filter; }; +enum xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, +}; + struct xfrm_state_offload { struct net_device *dev; struct net_device *real_dev; @@ -53396,8 +66095,6 @@ struct xfrm_mode { u8 flags; }; -struct xfrm_replay; - struct xfrm_type; struct xfrm_type_offload; @@ -53410,6 +66107,7 @@ struct xfrm_state { }; struct hlist_node bysrc; struct hlist_node byspi; + struct hlist_node byseq; refcount_t refcnt; spinlock_t lock; struct xfrm_id id; @@ -53452,7 +66150,7 @@ struct xfrm_state { struct xfrm_replay_state_esn *replay_esn; struct xfrm_replay_state preplay; struct xfrm_replay_state_esn *preplay_esn; - const struct xfrm_replay *repl; + enum xfrm_replay_mode repl_mode; u32 xflags; u32 replay_maxage; u32 replay_maxdiff; @@ -53584,16 +66282,7 @@ struct rt6_exception_bucket { int depth; }; -struct xfrm_replay { - void (*advance)(struct xfrm_state *, __be32); - int (*check)(struct xfrm_state *, struct sk_buff *, __be32); - int (*recheck)(struct xfrm_state *, struct sk_buff *, __be32); - void (*notify)(struct xfrm_state *, int); - int (*overflow)(struct xfrm_state *, struct sk_buff *); -}; - struct xfrm_type { - char *description; struct module *owner; u8 proto; u8 flags; @@ -53602,11 +66291,9 @@ struct xfrm_type { int (*input)(struct xfrm_state *, struct sk_buff *); int (*output)(struct xfrm_state *, struct sk_buff *); int (*reject)(struct xfrm_state *, struct sk_buff *, const struct flowi *); - int (*hdr_offset)(struct xfrm_state *, struct sk_buff *, u8 **); }; struct xfrm_type_offload { - char *description; struct module *owner; u8 proto; void (*encap)(struct xfrm_state *, struct sk_buff *); @@ -53641,12 +66328,15 @@ struct xfrm_offload { } seq; __u32 flags; __u32 status; + __u32 orig_mac_len; __u8 proto; + __u8 inner_ipproto; }; struct sec_path { int len; int olen; + int verified_cnt; struct xfrm_state *xvec[6]; struct xfrm_offload ovec[1]; }; @@ -53657,6 +66347,187 @@ struct udp_hslot { spinlock_t lock; }; +struct pkey_security_struct { + u64 subnet_prefix; + u16 pkey; + u32 sid; +}; + +struct sel_ib_pkey_bkt { + int size; + struct list_head list; +}; + +struct sel_ib_pkey { + struct pkey_security_struct psec; + struct list_head list; + struct callback_head rcu; +}; + +struct smack_audit_data { + const char *function; + char *subject; + char *object; + char *request; + int result; +}; + +struct smack_known { + struct list_head list; + struct hlist_node smk_hashed; + char *smk_known; + u32 smk_secid; + struct netlbl_lsm_secattr smk_netlabel; + struct list_head smk_rules; + struct mutex smk_rules_lock; +}; + +struct superblock_smack { + struct smack_known *smk_root; + struct smack_known *smk_floor; + struct smack_known *smk_hat; + struct smack_known *smk_default; + int smk_flags; +}; + +struct socket_smack { + struct smack_known *smk_out; + struct smack_known *smk_in; + struct smack_known *smk_packet; + int smk_state; +}; + +struct inode_smack { + struct smack_known *smk_inode; + struct smack_known *smk_task; + struct smack_known *smk_mmap; + int smk_flags; +}; + +struct task_smack { + struct smack_known *smk_task; + struct smack_known *smk_forked; + struct smack_known *smk_transmuted; + struct list_head smk_rules; + struct mutex smk_rules_lock; + struct list_head smk_relabel; +}; + +struct smack_rule { + struct list_head list; + struct smack_known *smk_subject; + struct smack_known *smk_object; + int smk_access; +}; + +struct smk_net4addr { + struct list_head list; + struct in_addr smk_host; + struct in_addr smk_mask; + int smk_masks; + struct smack_known *smk_label; +}; + +struct smk_net6addr { + struct list_head list; + struct in6_addr smk_host; + struct in6_addr smk_mask; + int smk_masks; + struct smack_known *smk_label; +}; + +struct smack_known_list_elem { + struct list_head list; + struct smack_known *smk_label; +}; + +enum { + Opt_error___3 = 4294967295, + Opt_fsdefault = 0, + Opt_fsfloor = 1, + Opt_fshat = 2, + Opt_fsroot = 3, + Opt_fstransmute = 4, +}; + +struct smk_audit_info { + struct common_audit_data a; + struct smack_audit_data sad; +}; + +struct smack_mnt_opts { + const char *fsdefault; + const char *fsfloor; + const char *fshat; + const char *fsroot; + const char *fstransmute; +}; + +struct netlbl_audit { + struct lsmblob lsmdata; + kuid_t loginuid; + unsigned int sessionid; +}; + +struct cipso_v4_std_map_tbl { + struct { + u32 *cipso; + u32 *local; + u32 cipso_size; + u32 local_size; + } lvl; + struct { + u32 *cipso; + u32 *local; + u32 cipso_size; + u32 local_size; + } cat; +}; + +struct cipso_v4_doi { + u32 doi; + u32 type; + union { + struct cipso_v4_std_map_tbl *std; + } map; + u8 tags[5]; + refcount_t refcount; + struct list_head list; + struct callback_head rcu; +}; + +enum smk_inos { + SMK_ROOT_INO = 2, + SMK_LOAD = 3, + SMK_CIPSO = 4, + SMK_DOI = 5, + SMK_DIRECT = 6, + SMK_AMBIENT = 7, + SMK_NET4ADDR = 8, + SMK_ONLYCAP = 9, + SMK_LOGGING = 10, + SMK_LOAD_SELF = 11, + SMK_ACCESSES = 12, + SMK_MAPPED = 13, + SMK_LOAD2 = 14, + SMK_LOAD_SELF2 = 15, + SMK_ACCESS2 = 16, + SMK_CIPSO2 = 17, + SMK_REVOKE_SUBJ = 18, + SMK_CHANGE_RULE = 19, + SMK_SYSLOG = 20, + SMK_PTRACE = 21, + SMK_NET6ADDR = 23, + SMK_RELABEL_SELF = 24, +}; + +struct smack_parsed_rule { + struct smack_known *smk_subject; + struct smack_known *smk_object; + int smk_access1; + int smk_access2; +}; + struct sockaddr_un { __kernel_sa_family_t sun_family; char sun_path[108]; @@ -53681,14 +66552,16 @@ struct unix_sock { struct mutex bindlock; struct sock *peer; struct list_head link; - atomic_long_t inflight; + long unsigned int inflight; spinlock_t lock; long unsigned int gc_flags; long: 64; + long: 64; + long: 64; struct socket_wq peer_wq; wait_queue_entry_t peer_wake; struct scm_stat scm_stat; - long: 64; + struct sk_buff *oob_skb; long: 64; }; @@ -54410,31 +67283,6 @@ struct tomoyo_addr_info { struct tomoyo_unix_addr_info unix0; }; -typedef unsigned char Byte; - -typedef long unsigned int uLong; - -struct internal_state; - -struct z_stream_s { - const Byte *next_in; - uLong avail_in; - uLong total_in; - Byte *next_out; - uLong avail_out; - uLong total_out; - char *msg; - struct internal_state *state; - void *workspace; - int data_type; - uLong adler; - uLong reserved; -}; - -struct internal_state { - int dummy; -}; - enum audit_mode { AUDIT_NORMAL = 0, AUDIT_QUIET_DENIED = 1, @@ -54567,7 +67415,7 @@ struct label_it { struct aa_policydb { struct aa_dfa *dfa; - unsigned int start[17]; + unsigned int start[33]; }; struct aa_domain { @@ -54597,6 +67445,8 @@ struct aa_rlimit { struct aa_ns; +struct aa_net_compat; + struct aa_secmark; struct aa_loaddata; @@ -54617,6 +67467,7 @@ struct aa_profile { struct aa_policydb policy; struct aa_file_rules file; struct aa_caps caps; + struct aa_net_compat *net_compat; int xattr_count; char **xattrs; struct aa_rlimit rlimits; @@ -54649,6 +67500,12 @@ struct path_cond { umode_t mode; }; +struct aa_net_compat { + u16 allow[46]; + u16 audit[46]; + u16 quiet[46]; +}; + struct aa_secmark { u8 audit; u8 deny; @@ -54766,6 +67623,10 @@ struct apparmor_audit_data { void *addr; int addrlen; } net; + struct { + kuid_t fsuid; + kuid_t ouid; + } mq; }; }; struct { @@ -54825,6 +67686,7 @@ struct match_workbuf { enum path_flags { PATH_IS_DIR = 1, + PATH_SOCK_COND = 2, PATH_CONNECT_PATH = 4, PATH_CHROOT_REL = 8, PATH_CHROOT_NSCONNECT = 16, @@ -54872,6 +67734,15 @@ struct aa_file_ctx { struct aa_sk_ctx { struct aa_label *label; struct aa_label *peer; + struct path path; +}; + +struct aa_inode_sec { + struct inode *inode; + struct aa_label *label; + u16 sclass; + bool initialized; + spinlock_t lock; }; union aa_buffer { @@ -54879,6 +67750,13 @@ union aa_buffer { char buffer[1]; }; +enum unix_socket_lock_class { + U_LOCK_NORMAL = 0, + U_LOCK_SECOND = 1, + U_LOCK_DIAG = 2, + U_LOCK_GC_LISTENER = 3, +}; + struct ptrace_relation { struct task_struct *tracer; struct task_struct *tracee; @@ -54894,6 +67772,36 @@ struct access_report_info { struct task_struct *agent; }; +enum sid_policy_type { + SIDPOL_DEFAULT = 0, + SIDPOL_CONSTRAINED = 1, + SIDPOL_ALLOWED = 2, +}; + +typedef union { + kuid_t uid; + kgid_t gid; +} kid_t; + +enum setid_type { + UID = 0, + GID = 1, +}; + +struct setid_rule { + struct hlist_node next; + kid_t src_id; + kid_t dst_id; + enum setid_type type; +}; + +struct setid_ruleset { + struct hlist_head rules[256]; + char *policy_str; + struct callback_head rcu; + enum setid_type type; +}; + enum devcg_behavior { DEVCG_DEFAULT_NONE = 0, DEVCG_DEFAULT_ALLOW = 1, @@ -54915,13 +67823,91 @@ struct dev_cgroup { enum devcg_behavior behavior; }; +struct landlock_ruleset_attr { + __u64 handled_access_fs; +}; + +enum landlock_rule_type { + LANDLOCK_RULE_PATH_BENEATH = 1, +}; + +struct landlock_path_beneath_attr { + __u64 allowed_access; + __s32 parent_fd; +} __attribute__((packed)); + +typedef u16 access_mask_t; + +struct landlock_hierarchy { + struct landlock_hierarchy *parent; + refcount_t usage; +}; + +struct landlock_ruleset { + struct rb_root root; + struct landlock_hierarchy *hierarchy; + union { + struct work_struct work_free; + struct { + struct mutex lock; + refcount_t usage; + u32 num_rules; + u32 num_layers; + access_mask_t fs_access_masks[0]; + }; + }; +}; + +struct landlock_cred_security { + struct landlock_ruleset *domain; +}; + +struct landlock_object; + +struct landlock_object_underops { + void (*release)(struct landlock_object * const); +}; + +struct landlock_object { + refcount_t usage; + spinlock_t lock; + void *underobj; + union { + struct callback_head rcu_free; + const struct landlock_object_underops *underops; + }; +}; + +struct landlock_layer { + u16 level; + access_mask_t access; +}; + +struct landlock_rule { + struct rb_node node; + struct landlock_object *object; + u32 num_layers; + struct landlock_layer layers[0]; +}; + +typedef u16 layer_mask_t; + +struct landlock_inode_security { + struct landlock_object *object; +}; + +struct landlock_superblock_security { + atomic_long_t inode_refs; +}; + enum integrity_status { INTEGRITY_PASS = 0, INTEGRITY_PASS_IMMUTABLE = 1, INTEGRITY_FAIL = 2, - INTEGRITY_NOLABEL = 3, - INTEGRITY_NOXATTRS = 4, - INTEGRITY_UNKNOWN = 5, + INTEGRITY_FAIL_IMMUTABLE = 3, + INTEGRITY_NOLABEL = 4, + INTEGRITY_NOXATTRS = 5, + INTEGRITY_UNKNOWN = 6, }; struct ima_digest_data { @@ -54949,6 +67935,8 @@ struct integrity_iint_cache { long unsigned int flags; long unsigned int measured_pcrs; long unsigned int atomic_flags; + long unsigned int real_ino; + dev_t real_dev; enum integrity_status ima_file_status: 4; enum integrity_status ima_mmap_status: 4; enum integrity_status ima_bprm_status: 4; @@ -54958,7 +67946,25 @@ struct integrity_iint_cache { struct ima_digest_data *ima_hash; }; -struct modsig; +struct modsig { + struct pkcs7_message *pkcs7_msg; + enum hash_algo hash_algo; + const u8 *digest; + u32 digest_size; + int raw_pkcs7_len; + u8 raw_pkcs7[0]; +}; + +struct public_key { + void *key; + u32 keylen; + enum OID algo; + void *params; + u32 paramlen; + bool key_is_private; + const char *id_type; + const char *pkey_algo; +}; struct asymmetric_key_id; @@ -54980,28 +67986,11 @@ struct asymmetric_key_id { unsigned char data[0]; }; -enum hash_algo { - HASH_ALGO_MD4 = 0, - HASH_ALGO_MD5 = 1, - HASH_ALGO_SHA1 = 2, - HASH_ALGO_RIPE_MD_160 = 3, - HASH_ALGO_SHA256 = 4, - HASH_ALGO_SHA384 = 5, - HASH_ALGO_SHA512 = 6, - HASH_ALGO_SHA224 = 7, - HASH_ALGO_RIPE_MD_128 = 8, - HASH_ALGO_RIPE_MD_256 = 9, - HASH_ALGO_RIPE_MD_320 = 10, - HASH_ALGO_WP_256 = 11, - HASH_ALGO_WP_384 = 12, - HASH_ALGO_WP_512 = 13, - HASH_ALGO_TGR_128 = 14, - HASH_ALGO_TGR_160 = 15, - HASH_ALGO_TGR_192 = 16, - HASH_ALGO_SM3_256 = 17, - HASH_ALGO_STREEBOG_256 = 18, - HASH_ALGO_STREEBOG_512 = 19, - HASH_ALGO__LAST = 20, +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, }; struct signature_v2_hdr { @@ -55034,6 +68023,255 @@ struct efi_mokvar_table_entry { u8 data[0]; }; +struct evm_ima_xattr_data { + u8 type; + u8 data[0]; +}; + +enum ima_show_type { + IMA_SHOW_BINARY = 0, + IMA_SHOW_BINARY_NO_FIELD_LEN = 1, + IMA_SHOW_BINARY_OLD_STRING_FMT = 2, + IMA_SHOW_ASCII = 3, +}; + +struct ima_event_data { + struct integrity_iint_cache *iint; + struct file *file; + const unsigned char *filename; + struct evm_ima_xattr_data *xattr_value; + int xattr_len; + const struct modsig *modsig; + const char *violation; + const void *buf; + int buf_len; +}; + +struct ima_field_data { + u8 *data; + u32 len; +}; + +struct ima_template_field { + const char field_id[16]; + int (*field_init)(struct ima_event_data *, struct ima_field_data *); + void (*field_show)(struct seq_file *, enum ima_show_type, struct ima_field_data *); +}; + +struct ima_template_desc { + struct list_head list; + char *name; + char *fmt; + int num_fields; + const struct ima_template_field **fields; +}; + +struct ima_template_entry { + int pcr; + struct tpm_digest *digests; + struct ima_template_desc *template_desc; + u32 template_data_len; + struct ima_field_data template_data[0]; +}; + +struct ima_queue_entry { + struct hlist_node hnext; + struct list_head later; + struct ima_template_entry *entry; +}; + +struct ima_h_table { + atomic_long_t len; + atomic_long_t violations; + struct hlist_head queue[1024]; +}; + +enum ima_fs_flags { + IMA_FS_BUSY = 0, +}; + +enum evm_ima_xattr_type { + IMA_XATTR_DIGEST = 1, + EVM_XATTR_HMAC = 2, + EVM_IMA_XATTR_DIGSIG = 3, + IMA_XATTR_DIGEST_NG = 4, + EVM_XATTR_PORTABLE_DIGSIG = 5, + IMA_XATTR_LAST = 6, +}; + +enum ima_hooks { + NONE___2 = 0, + FILE_CHECK = 1, + MMAP_CHECK = 2, + BPRM_CHECK = 3, + CREDS_CHECK = 4, + POST_SETATTR = 5, + MODULE_CHECK = 6, + FIRMWARE_CHECK = 7, + KEXEC_KERNEL_CHECK = 8, + KEXEC_INITRAMFS_CHECK = 9, + POLICY_CHECK = 10, + KEXEC_CMDLINE = 11, + KEY_CHECK = 12, + CRITICAL_DATA = 13, + SETXATTR_CHECK = 14, + MAX_CHECK = 15, +}; + +enum tpm_pcrs { + TPM_PCR0 = 0, + TPM_PCR8 = 8, + TPM_PCR10 = 10, +}; + +struct ima_algo_desc { + struct crypto_shash *tfm; + enum hash_algo algo; +}; + +enum lsm_rule_types { + LSM_OBJ_USER = 0, + LSM_OBJ_ROLE = 1, + LSM_OBJ_TYPE = 2, + LSM_SUBJ_USER = 3, + LSM_SUBJ_ROLE = 4, + LSM_SUBJ_TYPE = 5, +}; + +enum policy_types { + ORIGINAL_TCB = 1, + DEFAULT_TCB = 2, +}; + +enum policy_rule_list { + IMA_DEFAULT_POLICY = 1, + IMA_CUSTOM_POLICY = 2, +}; + +struct ima_rule_opt_list { + size_t count; + char *items[0]; +}; + +struct ima_rule_entry { + struct list_head list; + int action; + unsigned int flags; + enum ima_hooks func; + int mask; + long unsigned int fsmagic; + uuid_t fsuuid; + kuid_t uid; + kuid_t fowner; + bool (*uid_op)(kuid_t, kuid_t); + bool (*fowner_op)(kuid_t, kuid_t); + int pcr; + unsigned int allowed_algos; + struct { + void *rules[4]; + char *args_p; + int type; + } lsm[6]; + char *fsname; + struct ima_rule_opt_list *keyrings; + struct ima_rule_opt_list *label; + struct ima_template_desc *template; +}; + +enum { + Opt_measure = 0, + Opt_dont_measure = 1, + Opt_appraise = 2, + Opt_dont_appraise = 3, + Opt_audit = 4, + Opt_hash___3 = 5, + Opt_dont_hash = 6, + Opt_obj_user = 7, + Opt_obj_role = 8, + Opt_obj_type = 9, + Opt_subj_user = 10, + Opt_subj_role = 11, + Opt_subj_type = 12, + Opt_func = 13, + Opt_mask = 14, + Opt_fsmagic = 15, + Opt_fsname = 16, + Opt_fsuuid = 17, + Opt_uid_eq = 18, + Opt_euid_eq = 19, + Opt_fowner_eq = 20, + Opt_uid_gt = 21, + Opt_euid_gt = 22, + Opt_fowner_gt = 23, + Opt_uid_lt = 24, + Opt_euid_lt = 25, + Opt_fowner_lt = 26, + Opt_appraise_type = 27, + Opt_appraise_flag = 28, + Opt_appraise_algos = 29, + Opt_permit_directio = 30, + Opt_pcr = 31, + Opt_template = 32, + Opt_keyrings = 33, + Opt_label = 34, + Opt_err___10 = 35, +}; + +struct ima_kexec_hdr { + u16 version; + u16 _reserved0; + u32 _reserved1; + u64 buffer_size; + u64 count; +}; + +enum header_fields { + HDR_PCR = 0, + HDR_DIGEST = 1, + HDR_TEMPLATE_NAME = 2, + HDR_TEMPLATE_DATA = 3, + HDR__LAST = 4, +}; + +enum data_formats { + DATA_FMT_DIGEST = 0, + DATA_FMT_DIGEST_WITH_ALGO = 1, + DATA_FMT_STRING = 2, + DATA_FMT_HEX = 3, + DATA_FMT_UINT = 4, +}; + +struct ima_key_entry { + struct list_head list; + void *payload; + size_t payload_len; + char *keyring_name; +}; + +struct evm_xattr { + struct evm_ima_xattr_data data; + u8 digest[20]; +}; + +struct xattr_list { + struct list_head list; + char *name; + bool enabled; +}; + +struct evm_digest { + struct ima_digest_data hdr; + char digest[64]; +}; + +struct h_misc { + long unsigned int ino; + __u32 generation; + uid_t uid; + gid_t gid; + umode_t mode; +}; + enum { CRYPTO_MSG_ALG_REQUEST = 0, CRYPTO_MSG_ALG_REGISTER = 1, @@ -55051,27 +68289,6 @@ struct crypto_cipher { struct crypto_tfm base; }; -enum { - CRYPTOA_UNSPEC = 0, - CRYPTOA_ALG = 1, - CRYPTOA_TYPE = 2, - CRYPTOA_U32 = 3, - __CRYPTOA_MAX = 4, -}; - -struct crypto_attr_alg { - char name[128]; -}; - -struct crypto_attr_type { - u32 type; - u32 mask; -}; - -struct crypto_attr_u32 { - u32 num; -}; - struct rtattr { short unsigned int rta_len; short unsigned int rta_type; @@ -55084,6 +68301,15 @@ struct crypto_queue { unsigned int max_qlen; }; +struct crypto_attr_alg { + char name[128]; +}; + +struct crypto_attr_type { + u32 type; + u32 mask; +}; + enum { NAPI_STATE_SCHED = 0, NAPI_STATE_MISSED = 1, @@ -55092,6 +68318,15 @@ enum { NAPI_STATE_LISTED = 4, NAPI_STATE_NO_BUSY_POLL = 5, NAPI_STATE_IN_BUSY_POLL = 6, + NAPI_STATE_PREFER_BUSY_POLL = 7, + NAPI_STATE_THREADED = 8, + NAPI_STATE_SCHED_THREADED = 9, +}; + +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, }; enum bpf_xdp_mode { @@ -55120,6 +68355,13 @@ enum { NETIF_MSG_CLASS_COUNT = 15, }; +enum { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, +}; + struct scatter_walk { struct scatterlist *sg; unsigned int offset; @@ -55467,93 +68709,6 @@ struct kpp_secret { short unsigned int len; }; -enum asn1_class { - ASN1_UNIV = 0, - ASN1_APPL = 1, - ASN1_CONT = 2, - ASN1_PRIV = 3, -}; - -enum asn1_method { - ASN1_PRIM = 0, - ASN1_CONS = 1, -}; - -enum asn1_tag { - ASN1_EOC = 0, - ASN1_BOOL = 1, - ASN1_INT = 2, - ASN1_BTS = 3, - ASN1_OTS = 4, - ASN1_NULL = 5, - ASN1_OID = 6, - ASN1_ODE = 7, - ASN1_EXT = 8, - ASN1_REAL = 9, - ASN1_ENUM = 10, - ASN1_EPDV = 11, - ASN1_UTF8STR = 12, - ASN1_RELOID = 13, - ASN1_SEQ = 16, - ASN1_SET = 17, - ASN1_NUMSTR = 18, - ASN1_PRNSTR = 19, - ASN1_TEXSTR = 20, - ASN1_VIDSTR = 21, - ASN1_IA5STR = 22, - ASN1_UNITIM = 23, - ASN1_GENTIM = 24, - ASN1_GRASTR = 25, - ASN1_VISSTR = 26, - ASN1_GENSTR = 27, - ASN1_UNISTR = 28, - ASN1_CHRSTR = 29, - ASN1_BMPSTR = 30, - ASN1_LONG_TAG = 31, -}; - -typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); - -struct asn1_decoder { - const unsigned char *machine; - size_t machlen; - const asn1_action_t *actions; -}; - -enum asn1_opcode { - ASN1_OP_MATCH = 0, - ASN1_OP_MATCH_OR_SKIP = 1, - ASN1_OP_MATCH_ACT = 2, - ASN1_OP_MATCH_ACT_OR_SKIP = 3, - ASN1_OP_MATCH_JUMP = 4, - ASN1_OP_MATCH_JUMP_OR_SKIP = 5, - ASN1_OP_MATCH_ANY = 8, - ASN1_OP_MATCH_ANY_OR_SKIP = 9, - ASN1_OP_MATCH_ANY_ACT = 10, - ASN1_OP_MATCH_ANY_ACT_OR_SKIP = 11, - ASN1_OP_COND_MATCH_OR_SKIP = 17, - ASN1_OP_COND_MATCH_ACT_OR_SKIP = 19, - ASN1_OP_COND_MATCH_JUMP_OR_SKIP = 21, - ASN1_OP_COND_MATCH_ANY = 24, - ASN1_OP_COND_MATCH_ANY_OR_SKIP = 25, - ASN1_OP_COND_MATCH_ANY_ACT = 26, - ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP = 27, - ASN1_OP_COND_FAIL = 28, - ASN1_OP_COMPLETE = 29, - ASN1_OP_ACT = 30, - ASN1_OP_MAYBE_ACT = 31, - ASN1_OP_END_SEQ = 32, - ASN1_OP_END_SET = 33, - ASN1_OP_END_SEQ_OF = 34, - ASN1_OP_END_SET_OF = 35, - ASN1_OP_END_SEQ_ACT = 36, - ASN1_OP_END_SET_ACT = 37, - ASN1_OP_END_SEQ_OF_ACT = 38, - ASN1_OP_END_SET_OF_ACT = 39, - ASN1_OP_RETURN = 40, - ASN1_OP__NR = 41, -}; - enum rsapubkey_actions { ACT_rsa_get_e = 0, ACT_rsa_get_n = 1, @@ -55597,8 +68752,6 @@ struct rsa_mpi_key { MPI d; }; -struct asn1_decoder; - struct rsa_asn1_template { const char *name; const u8 *data; @@ -55627,24 +68780,6 @@ struct crypto_report_acomp { char type[64]; }; -struct acomp_req { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int slen; - unsigned int dlen; - u32 flags; - void *__ctx[0]; -}; - -struct crypto_acomp { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - unsigned int reqsize; - struct crypto_tfm base; -}; - struct acomp_alg { int (*compress)(struct acomp_req *); int (*decompress)(struct acomp_req *); @@ -55683,16 +68818,9 @@ struct cryptomgr_param { struct rtattr attr; struct crypto_attr_type data; } type; - union { + struct { struct rtattr attr; - struct { - struct rtattr attr; - struct crypto_attr_alg data; - } alg; - struct { - struct rtattr attr; - struct crypto_attr_u32 data; - } nu32; + struct crypto_attr_alg data; } attrs[32]; char template[128]; struct crypto_larval *larval; @@ -55706,314 +68834,6 @@ struct crypto_test_param { u32 type; }; -struct drbg_string { - const unsigned char *buf; - size_t len; - struct list_head list; -}; - -struct drbg_test_data { - struct drbg_string *testentropy; -}; - -enum OID { - OID_id_dsa_with_sha1 = 0, - OID_id_dsa = 1, - OID_id_ecdsa_with_sha1 = 2, - OID_id_ecPublicKey = 3, - OID_rsaEncryption = 4, - OID_md2WithRSAEncryption = 5, - OID_md3WithRSAEncryption = 6, - OID_md4WithRSAEncryption = 7, - OID_sha1WithRSAEncryption = 8, - OID_sha256WithRSAEncryption = 9, - OID_sha384WithRSAEncryption = 10, - OID_sha512WithRSAEncryption = 11, - OID_sha224WithRSAEncryption = 12, - OID_data = 13, - OID_signed_data = 14, - OID_email_address = 15, - OID_contentType = 16, - OID_messageDigest = 17, - OID_signingTime = 18, - OID_smimeCapabilites = 19, - OID_smimeAuthenticatedAttrs = 20, - OID_md2 = 21, - OID_md4 = 22, - OID_md5 = 23, - OID_msIndirectData = 24, - OID_msStatementType = 25, - OID_msSpOpusInfo = 26, - OID_msPeImageDataObjId = 27, - OID_msIndividualSPKeyPurpose = 28, - OID_msOutlookExpress = 29, - OID_certAuthInfoAccess = 30, - OID_sha1 = 31, - OID_sha256 = 32, - OID_sha384 = 33, - OID_sha512 = 34, - OID_sha224 = 35, - OID_commonName = 36, - OID_surname = 37, - OID_countryName = 38, - OID_locality = 39, - OID_stateOrProvinceName = 40, - OID_organizationName = 41, - OID_organizationUnitName = 42, - OID_title = 43, - OID_description = 44, - OID_name = 45, - OID_givenName = 46, - OID_initials = 47, - OID_generationalQualifier = 48, - OID_subjectKeyIdentifier = 49, - OID_keyUsage = 50, - OID_subjectAltName = 51, - OID_issuerAltName = 52, - OID_basicConstraints = 53, - OID_crlDistributionPoints = 54, - OID_certPolicies = 55, - OID_authorityKeyIdentifier = 56, - OID_extKeyUsage = 57, - OID_gostCPSignA = 58, - OID_gostCPSignB = 59, - OID_gostCPSignC = 60, - OID_gost2012PKey256 = 61, - OID_gost2012PKey512 = 62, - OID_gost2012Digest256 = 63, - OID_gost2012Digest512 = 64, - OID_gost2012Signature256 = 65, - OID_gost2012Signature512 = 66, - OID_gostTC26Sign256A = 67, - OID_gostTC26Sign256B = 68, - OID_gostTC26Sign256C = 69, - OID_gostTC26Sign256D = 70, - OID_gostTC26Sign512A = 71, - OID_gostTC26Sign512B = 72, - OID_gostTC26Sign512C = 73, - OID_sm2 = 74, - OID_sm3 = 75, - OID_SM2_with_SM3 = 76, - OID_sm3WithRSAEncryption = 77, - OID__NR = 78, -}; - -struct hash_testvec { - const char *key; - const char *plaintext; - const char *digest; - unsigned int psize; - short unsigned int ksize; - int setkey_error; - int digest_error; -}; - -struct cipher_testvec { - const char *key; - const char *iv; - const char *iv_out; - const char *ptext; - const char *ctext; - unsigned char wk; - short unsigned int klen; - unsigned int len; - bool fips_skip; - bool generates_iv; - int setkey_error; - int crypt_error; -}; - -struct aead_testvec { - const char *key; - const char *iv; - const char *ptext; - const char *assoc; - const char *ctext; - unsigned char novrfy; - unsigned char wk; - unsigned char klen; - unsigned int plen; - unsigned int clen; - unsigned int alen; - int setkey_error; - int setauthsize_error; - int crypt_error; -}; - -struct cprng_testvec { - const char *key; - const char *dt; - const char *v; - const char *result; - unsigned char klen; - short unsigned int dtlen; - short unsigned int vlen; - short unsigned int rlen; - short unsigned int loops; -}; - -struct drbg_testvec { - const unsigned char *entropy; - size_t entropylen; - const unsigned char *entpra; - const unsigned char *entprb; - size_t entprlen; - const unsigned char *addtla; - const unsigned char *addtlb; - size_t addtllen; - const unsigned char *pers; - size_t perslen; - const unsigned char *expected; - size_t expectedlen; -}; - -struct akcipher_testvec { - const unsigned char *key; - const unsigned char *params; - const unsigned char *m; - const unsigned char *c; - unsigned int key_len; - unsigned int param_len; - unsigned int m_size; - unsigned int c_size; - bool public_key_vec; - bool siggen_sigver_test; - enum OID algo; -}; - -struct kpp_testvec { - const unsigned char *secret; - const unsigned char *b_secret; - const unsigned char *b_public; - const unsigned char *expected_a_public; - const unsigned char *expected_ss; - short unsigned int secret_size; - short unsigned int b_secret_size; - short unsigned int b_public_size; - short unsigned int expected_a_public_size; - short unsigned int expected_ss_size; - bool genkey; -}; - -struct comp_testvec { - int inlen; - int outlen; - char input[512]; - char output[512]; -}; - -struct aead_test_suite { - const struct aead_testvec *vecs; - unsigned int count; - unsigned int einval_allowed: 1; - unsigned int aad_iv: 1; -}; - -struct cipher_test_suite { - const struct cipher_testvec *vecs; - unsigned int count; -}; - -struct comp_test_suite { - struct { - const struct comp_testvec *vecs; - unsigned int count; - } comp; - struct { - const struct comp_testvec *vecs; - unsigned int count; - } decomp; -}; - -struct hash_test_suite { - const struct hash_testvec *vecs; - unsigned int count; -}; - -struct cprng_test_suite { - const struct cprng_testvec *vecs; - unsigned int count; -}; - -struct drbg_test_suite { - const struct drbg_testvec *vecs; - unsigned int count; -}; - -struct akcipher_test_suite { - const struct akcipher_testvec *vecs; - unsigned int count; -}; - -struct kpp_test_suite { - const struct kpp_testvec *vecs; - unsigned int count; -}; - -struct alg_test_desc { - const char *alg; - const char *generic_driver; - int (*test)(const struct alg_test_desc *, const char *, u32, u32); - int fips_allowed; - union { - struct aead_test_suite aead; - struct cipher_test_suite cipher; - struct comp_test_suite comp; - struct hash_test_suite hash; - struct cprng_test_suite cprng; - struct drbg_test_suite drbg; - struct akcipher_test_suite akcipher; - struct kpp_test_suite kpp; - } suite; -}; - -enum flush_type { - FLUSH_TYPE_NONE = 0, - FLUSH_TYPE_FLUSH = 1, - FLUSH_TYPE_REIMPORT = 2, -}; - -enum finalization_type { - FINALIZATION_TYPE_FINAL = 0, - FINALIZATION_TYPE_FINUP = 1, - FINALIZATION_TYPE_DIGEST = 2, -}; - -struct test_sg_division { - unsigned int proportion_of_total; - unsigned int offset; - bool offset_relative_to_alignmask; - enum flush_type flush_type; - bool nosimd; -}; - -struct testvec_config { - const char *name; - bool inplace; - u32 req_flags; - struct test_sg_division src_divs[8]; - struct test_sg_division dst_divs[8]; - unsigned int iv_offset; - unsigned int key_offset; - bool iv_offset_relative_to_alignmask; - bool key_offset_relative_to_alignmask; - enum finalization_type finalization_type; - bool nosimd; -}; - -struct test_sglist { - char *bufs[8]; - struct scatterlist sgl[8]; - struct scatterlist sgl_saved[8]; - struct scatterlist *sgl_ptr; - unsigned int nents; -}; - -struct cipher_test_sglists { - struct test_sglist src; - struct test_sglist dst; -}; - struct hmac_ctx { struct crypto_shash *hash; }; @@ -56038,11 +68858,152 @@ struct sha256_state { u8 buf[64]; }; +struct sha512_state { + u64 state[8]; + u64 count[2]; + u8 buf[128]; +}; + +typedef void sha512_block_fn(struct sha512_state *, const u8 *, int); + +typedef struct { + u64 a; + u64 b; +} u128; + +typedef struct { + __be64 a; + __be64 b; +} be128; + +typedef struct { + __le64 b; + __le64 a; +} le128; + +struct gf128mul_4k { + be128 t[256]; +}; + +struct gf128mul_64k { + struct gf128mul_4k *t[16]; +}; + +struct crypto_cts_ctx { + struct crypto_skcipher *child; +}; + +struct crypto_cts_reqctx { + struct scatterlist sg[2]; + unsigned int offset; + struct skcipher_request subreq; +}; + +struct xts_tfm_ctx { + struct crypto_skcipher *child; + struct crypto_cipher *tweak; +}; + +struct xts_instance_ctx { + struct crypto_skcipher_spawn spawn; + char name[128]; +}; + +struct xts_request_ctx { + le128 t; + struct scatterlist *tail; + struct scatterlist sg[2]; + struct skcipher_request subreq; +}; + +struct crypto_rfc3686_ctx { + struct crypto_skcipher *child; + u8 nonce[4]; +}; + +struct crypto_rfc3686_req_ctx { + u8 iv[16]; + struct skcipher_request subreq; +}; + +struct gcm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn ghash; +}; + +struct crypto_gcm_ctx { + struct crypto_skcipher *ctr; + struct crypto_ahash *ghash; +}; + +struct crypto_rfc4106_ctx { + struct crypto_aead *child; + u8 nonce[4]; +}; + +struct crypto_rfc4106_req_ctx { + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct aead_request subreq; +}; + +struct crypto_rfc4543_instance_ctx { + struct crypto_aead_spawn aead; +}; + +struct crypto_rfc4543_ctx { + struct crypto_aead *child; + struct crypto_sync_skcipher *null; + u8 nonce[4]; +}; + +struct crypto_rfc4543_req_ctx { + struct aead_request subreq; +}; + +struct crypto_gcm_ghash_ctx { + unsigned int cryptlen; + struct scatterlist *src; + int (*complete)(struct aead_request *, u32); +}; + +struct crypto_gcm_req_priv_ctx { + u8 iv[16]; + u8 auth_tag[16]; + u8 iauth_tag[16]; + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct scatterlist sg; + struct crypto_gcm_ghash_ctx ghash_ctx; + union { + struct ahash_request ahreq; + struct skcipher_request skreq; + } u; +}; + +struct crypto_aes_ctx { + u32 key_enc[60]; + u32 key_dec[60]; + u32 key_length; +}; + struct deflate_ctx { struct z_stream_s comp_stream; struct z_stream_s decomp_stream; }; +struct chksum_ctx { + u32 key; +}; + +struct chksum_desc_ctx { + u32 crc; +}; + +struct chksum_desc_ctx___2 { + __u16 crc; +}; + struct lzo_ctx { void *lzo_comp_mem; }; @@ -56056,11 +69017,109 @@ struct crypto_report_rng { unsigned int seedsize; }; -enum asymmetric_payload_bits { - asym_crypto = 0, - asym_subtype = 1, - asym_key_ids = 2, - asym_auth = 3, +struct drbg_string { + const unsigned char *buf; + size_t len; + struct list_head list; +}; + +typedef uint32_t drbg_flag_t; + +struct drbg_core { + drbg_flag_t flags; + __u8 statelen; + __u8 blocklen_bytes; + char cra_name[128]; + char backend_cra_name[128]; +}; + +struct drbg_state; + +struct drbg_state_ops { + int (*update)(struct drbg_state *, struct list_head *, int); + int (*generate)(struct drbg_state *, unsigned char *, unsigned int, struct list_head *); + int (*crypto_init)(struct drbg_state *); + int (*crypto_fini)(struct drbg_state *); +}; + +enum drbg_seed_state { + DRBG_SEED_STATE_UNSEEDED = 0, + DRBG_SEED_STATE_PARTIAL = 1, + DRBG_SEED_STATE_FULL = 2, +}; + +struct drbg_state { + struct mutex drbg_mutex; + unsigned char *V; + unsigned char *Vbuf; + unsigned char *C; + unsigned char *Cbuf; + size_t reseed_ctr; + size_t reseed_threshold; + unsigned char *scratchpad; + unsigned char *scratchpadbuf; + void *priv_data; + struct crypto_skcipher *ctr_handle; + struct skcipher_request *ctr_req; + __u8 *outscratchpadbuf; + __u8 *outscratchpad; + struct crypto_wait ctr_wait; + struct scatterlist sg_in; + struct scatterlist sg_out; + enum drbg_seed_state seeded; + bool pr; + bool fips_primed; + unsigned char *prev; + struct crypto_rng *jent; + const struct drbg_state_ops *d_ops; + const struct drbg_core *core; + struct drbg_string test_data; +}; + +enum drbg_prefixes { + DRBG_PREFIX0 = 0, + DRBG_PREFIX1 = 1, + DRBG_PREFIX2 = 2, + DRBG_PREFIX3 = 3, +}; + +struct s { + __be32 conv; +}; + +struct rand_data { + __u64 data; + __u64 old_data; + __u64 prev_time; + __u64 last_delta; + __s64 last_delta2; + unsigned int osr; + unsigned char *mem; + unsigned int memlocation; + unsigned int memblocks; + unsigned int memblocksize; + unsigned int memaccessloops; + int rct_count; + unsigned int apt_observations; + unsigned int apt_count; + unsigned int apt_base; + unsigned int apt_base_set: 1; + unsigned int health_failure: 1; +}; + +struct jitterentropy { + spinlock_t jent_lock; + struct rand_data *entropy_collector; + unsigned int reset_cnt; +}; + +struct ghash_ctx { + struct gf128mul_4k *gf128; +}; + +struct ghash_desc_ctx { + u8 buffer[16]; + u32 bytes; }; struct asymmetric_key_ids { @@ -56085,17 +69144,6 @@ struct asymmetric_key_parser { int (*parse)(struct key_preparsed_payload *); }; -struct public_key { - void *key; - u32 keylen; - enum OID algo; - void *params; - u32 paramlen; - bool key_is_private; - const char *id_type; - const char *pkey_algo; -}; - enum x509_actions { ACT_x509_extract_key_data = 0, ACT_x509_extract_name_segment = 1, @@ -56214,18 +69262,6 @@ struct pkcs7_signed_info { struct public_key_signature *sig; }; -struct pkcs7_message { - struct x509_certificate *certs; - struct x509_certificate *crl; - struct pkcs7_signed_info *signed_infos; - u8 version; - bool have_authattrs; - enum OID data_type; - size_t data_len; - size_t data_hdrlen; - const void *data; -}; - struct pkcs7_parse_context { struct pkcs7_message *msg; struct pkcs7_signed_info *sinfo; @@ -56409,24 +69445,45 @@ enum mscode_actions { NR__mscode_actions = 3, }; -enum stat_group { - STAT_READ = 0, - STAT_WRITE = 1, - STAT_DISCARD = 2, - STAT_FLUSH = 3, - NR_STAT_GROUPS = 4, +enum { + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, }; -struct biovec_slab { - int nr_vecs; - char *name; - struct kmem_cache *slab; +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +}; + +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; +}; + +struct blkdev_dio { + union { + struct kiocb *iocb; + struct task_struct *waiter; + }; + size_t size; + atomic_t ref; + bool multi_bio: 1; + bool should_dirty: 1; + bool is_sync: 1; + struct bio bio; +}; + +struct bio_alloc_cache { + struct bio_list free_list; + unsigned int nr; }; enum rq_qos_id { RQ_QOS_WBT = 0, RQ_QOS_LATENCY = 1, RQ_QOS_COST = 2, + RQ_QOS_IOPRIO = 3, }; struct rq_qos_ops; @@ -56453,6 +69510,12 @@ struct rq_qos_ops { const struct blk_mq_debugfs_attr *debugfs_attrs; }; +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; +}; + struct bio_slab { struct kmem_cache *slab; unsigned int slab_ref; @@ -56467,6 +69530,7 @@ enum { BLK_MQ_F_TAG_HCTX_SHARED = 8, BLK_MQ_F_BLOCKING = 32, BLK_MQ_F_NO_SCHED = 64, + BLK_MQ_F_NO_SCHED_BY_DEFAULT = 128, BLK_MQ_F_ALLOC_POLICY_START_BIT = 8, BLK_MQ_F_ALLOC_POLICY_BITS = 1, BLK_MQ_S_STOPPED = 0, @@ -56541,16 +69605,6 @@ struct trace_event_raw_block_rq { char __data[0]; }; -struct trace_event_raw_block_bio_bounce { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; - char __data[0]; -}; - struct trace_event_raw_block_bio_complete { struct trace_entry ent; dev_t dev; @@ -56561,27 +69615,7 @@ struct trace_event_raw_block_bio_complete { char __data[0]; }; -struct trace_event_raw_block_bio_merge { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; - char __data[0]; -}; - -struct trace_event_raw_block_bio_queue { - struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; - char __data[0]; -}; - -struct trace_event_raw_block_get_rq { +struct trace_event_raw_block_bio { struct trace_entry ent; dev_t dev; sector_t sector; @@ -56651,15 +69685,9 @@ struct trace_event_data_offsets_block_rq { u32 cmd; }; -struct trace_event_data_offsets_block_bio_bounce {}; - struct trace_event_data_offsets_block_bio_complete {}; -struct trace_event_data_offsets_block_bio_merge {}; - -struct trace_event_data_offsets_block_bio_queue {}; - -struct trace_event_data_offsets_block_get_rq {}; +struct trace_event_data_offsets_block_bio {}; struct trace_event_data_offsets_block_plug {}; @@ -56685,27 +69713,25 @@ typedef void (*btf_trace_block_rq_issue)(void *, struct request *); typedef void (*btf_trace_block_rq_merge)(void *, struct request *); -typedef void (*btf_trace_block_bio_bounce)(void *, struct request_queue *, struct bio *); - typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); -typedef void (*btf_trace_block_bio_backmerge)(void *, struct request_queue *, struct request *, struct bio *); +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); -typedef void (*btf_trace_block_bio_frontmerge)(void *, struct request_queue *, struct request *, struct bio *); +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); -typedef void (*btf_trace_block_bio_queue)(void *, struct request_queue *, struct bio *); +typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); -typedef void (*btf_trace_block_getrq)(void *, struct request_queue *, struct bio *, int); +typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); -typedef void (*btf_trace_block_sleeprq)(void *, struct request_queue *, struct bio *, int); +typedef void (*btf_trace_block_getrq)(void *, struct bio *); typedef void (*btf_trace_block_plug)(void *, struct request_queue *); typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); -typedef void (*btf_trace_block_split)(void *, struct request_queue *, struct bio *, unsigned int); +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); -typedef void (*btf_trace_block_bio_remap)(void *, struct request_queue *, struct bio *, dev_t, sector_t); +typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); @@ -56730,14 +69756,6 @@ enum { FLUSH_PENDING_TIMEOUT = 1250, }; -enum blk_default_limits { - BLK_MAX_SEGMENTS = 128, - BLK_SAFE_MAX_SECTORS = 255, - BLK_DEF_MAX_SECTORS = 2560, - BLK_MAX_SEGMENT_SIZE = 65536, - BLK_SEG_BOUNDARY_MASK = 4294967295, -}; - enum { ICQ_EXITED = 4, ICQ_DESTROYED = 8, @@ -56772,13 +69790,17 @@ enum bio_merge_status { typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); +typedef bool busy_iter_fn(struct blk_mq_hw_ctx *, struct request *, void *, bool); + +typedef bool busy_tag_iter_fn(struct request *, void *, bool); + enum { BLK_MQ_UNIQUE_TAG_BITS = 16, BLK_MQ_UNIQUE_TAG_MASK = 65535, }; struct mq_inflight { - struct hd_struct *part; + struct block_device *part; unsigned int inflight[2]; }; @@ -56814,10 +69836,6 @@ struct sbq_wait { struct wait_queue_entry wait; }; -typedef bool busy_iter_fn(struct blk_mq_hw_ctx *, struct request *, void *, bool); - -typedef bool busy_tag_iter_fn(struct request *, void *, bool); - struct bt_iter_data { struct blk_mq_hw_ctx *hctx; busy_iter_fn *fn; @@ -56838,12 +69856,6 @@ struct blk_queue_stats { bool enable_accounting; }; -struct blk_mq_ctx_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_mq_ctx *, char *); - ssize_t (*store)(struct blk_mq_ctx *, const char *, size_t); -}; - struct blk_mq_hw_ctx_sysfs_entry { struct attribute attr; ssize_t (*show)(struct blk_mq_hw_ctx *, char *); @@ -56939,23 +69951,6 @@ struct class_dev_iter { const struct device_type *type; }; -enum { - DISK_EVENT_FLAG_POLL = 1, - DISK_EVENT_FLAG_UEVENT = 2, -}; - -struct disk_events { - struct list_head node; - struct gendisk *disk; - spinlock_t lock; - struct mutex block_mutex; - int block; - unsigned int pending; - unsigned int clearing; - long int poll_msecs; - struct delayed_work dwork; -}; - struct badblocks { struct device *dev; int count; @@ -56968,17 +69963,11 @@ struct badblocks { sector_t size; }; -struct disk_part_iter { - struct gendisk *disk; - struct hd_struct *part; - int idx; - unsigned int flags; -}; - struct blk_major_name { struct blk_major_name *next; int major; char name[16]; + void (*probe)(dev_t); }; enum { @@ -56988,7 +69977,7 @@ enum { }; struct parsed_partitions { - struct block_device *bdev; + struct gendisk *disk; char name[32]; struct { sector_t from; @@ -57007,63 +69996,58 @@ typedef struct { struct page *v; } Sector; -struct ics_part { - __le32 start; - __le32 size; -}; - struct RigidDiskBlock { - __u32 rdb_ID; + __be32 rdb_ID; __be32 rdb_SummedLongs; - __s32 rdb_ChkSum; - __u32 rdb_HostID; + __be32 rdb_ChkSum; + __be32 rdb_HostID; __be32 rdb_BlockBytes; - __u32 rdb_Flags; - __u32 rdb_BadBlockList; + __be32 rdb_Flags; + __be32 rdb_BadBlockList; __be32 rdb_PartitionList; - __u32 rdb_FileSysHeaderList; - __u32 rdb_DriveInit; - __u32 rdb_Reserved1[6]; - __u32 rdb_Cylinders; - __u32 rdb_Sectors; - __u32 rdb_Heads; - __u32 rdb_Interleave; - __u32 rdb_Park; - __u32 rdb_Reserved2[3]; - __u32 rdb_WritePreComp; - __u32 rdb_ReducedWrite; - __u32 rdb_StepRate; - __u32 rdb_Reserved3[5]; - __u32 rdb_RDBBlocksLo; - __u32 rdb_RDBBlocksHi; - __u32 rdb_LoCylinder; - __u32 rdb_HiCylinder; - __u32 rdb_CylBlocks; - __u32 rdb_AutoParkSeconds; - __u32 rdb_HighRDSKBlock; - __u32 rdb_Reserved4; + __be32 rdb_FileSysHeaderList; + __be32 rdb_DriveInit; + __be32 rdb_Reserved1[6]; + __be32 rdb_Cylinders; + __be32 rdb_Sectors; + __be32 rdb_Heads; + __be32 rdb_Interleave; + __be32 rdb_Park; + __be32 rdb_Reserved2[3]; + __be32 rdb_WritePreComp; + __be32 rdb_ReducedWrite; + __be32 rdb_StepRate; + __be32 rdb_Reserved3[5]; + __be32 rdb_RDBBlocksLo; + __be32 rdb_RDBBlocksHi; + __be32 rdb_LoCylinder; + __be32 rdb_HiCylinder; + __be32 rdb_CylBlocks; + __be32 rdb_AutoParkSeconds; + __be32 rdb_HighRDSKBlock; + __be32 rdb_Reserved4; char rdb_DiskVendor[8]; char rdb_DiskProduct[16]; char rdb_DiskRevision[4]; char rdb_ControllerVendor[8]; char rdb_ControllerProduct[16]; char rdb_ControllerRevision[4]; - __u32 rdb_Reserved5[10]; + __be32 rdb_Reserved5[10]; }; struct PartitionBlock { __be32 pb_ID; __be32 pb_SummedLongs; - __s32 pb_ChkSum; - __u32 pb_HostID; + __be32 pb_ChkSum; + __be32 pb_HostID; __be32 pb_Next; - __u32 pb_Flags; - __u32 pb_Reserved1[2]; - __u32 pb_DevFlags; + __be32 pb_Flags; + __be32 pb_Reserved1[2]; + __be32 pb_DevFlags; __u8 pb_DriveName[32]; - __u32 pb_Reserved2[15]; + __be32 pb_Reserved2[15]; __be32 pb_Environment[17]; - __u32 pb_EReserved[15]; + __be32 pb_EReserved[15]; }; struct partition_info { @@ -57084,6 +70068,84 @@ struct rootsector { u16 checksum; } __attribute__((packed)); +struct lvm_rec { + char lvm_id[4]; + char reserved4[16]; + __be32 lvmarea_len; + __be32 vgda_len; + __be32 vgda_psn[2]; + char reserved36[10]; + __be16 pp_size; + char reserved46[12]; + __be16 version; +}; + +struct vgda { + __be32 secs; + __be32 usec; + char reserved8[16]; + __be16 numlvs; + __be16 maxlvs; + __be16 pp_size; + __be16 numpvs; + __be16 total_vgdas; + __be16 vgda_size; +}; + +struct lvd { + __be16 lv_ix; + __be16 res2; + __be16 res4; + __be16 maxsize; + __be16 lv_state; + __be16 mirror; + __be16 mirror_policy; + __be16 num_lps; + __be16 res10[8]; +}; + +struct lvname { + char name[64]; +}; + +struct ppe { + __be16 lv_ix; + short unsigned int res2; + short unsigned int res4; + __be16 lp_ix; + short unsigned int res8[12]; +}; + +struct pvd { + char reserved0[16]; + __be16 pp_count; + char reserved18[2]; + __be32 psn_part1; + char reserved24[8]; + struct ppe ppe[1016]; +}; + +struct lv_info { + short unsigned int pps_per_lv; + short unsigned int pps_found; + unsigned char lv_is_contiguous; +}; + +struct cmdline_subpart { + char name[32]; + sector_t from; + sector_t size; + int flags; + struct cmdline_subpart *next_subpart; +}; + +struct cmdline_parts { + char name[32]; + unsigned int nr_subparts; + struct cmdline_subpart *subpart; + struct cmdline_parts *next_parts; +}; + struct mac_partition { __be16 signature; __be16 res1; @@ -57222,48 +70284,6 @@ struct ldmdb { struct list_head v_part; }; -struct fat_boot_sector { - __u8 ignored[3]; - __u8 system_id[8]; - __u8 sector_size[2]; - __u8 sec_per_clus; - __le16 reserved; - __u8 fats; - __u8 dir_entries[2]; - __u8 sectors[2]; - __u8 media; - __le16 fat_length; - __le16 secs_track; - __le16 heads; - __le32 hidden; - __le32 total_sect; - union { - struct { - __u8 drive_number; - __u8 state; - __u8 signature; - __u8 vol_id[4]; - __u8 vol_label[11]; - __u8 fs_type[8]; - } fat16; - struct { - __le32 length; - __le16 flags; - __u8 version[2]; - __le32 root_cluster; - __le16 info_sector; - __le16 backup_boot; - __le16 reserved2[6]; - __u8 drive_number; - __u8 state; - __u8 signature; - __u8 vol_id[4]; - __u8 vol_label[11]; - __u8 fs_type[8]; - } fat32; - }; -}; - enum msdos_sys_ind { DOS_EXTENDED_PARTITION = 5, LINUX_EXTENDED_PARTITION = 133, @@ -57594,6 +70614,28 @@ struct disklabel___2 { __le16 d_magic; } __attribute__((packed)); +struct volumeid { + u8 vid_unused[248]; + u8 vid_mac[8]; +}; + +struct dkconfig { + u8 ios_unused0[128]; + __be32 ios_slcblk; + __be16 ios_slccnt; + u8 ios_unused1[122]; +}; + +struct dkblk0 { + struct volumeid dk_vid; + struct dkconfig dk_ios; +}; + +struct slice { + __be32 nblocks; + __be32 blkoff; +}; + struct rq_wait { wait_queue_head_t wait; atomic_t inflight; @@ -57620,240 +70662,64 @@ struct rq_qos_wait_data { bool got_token; }; -struct cdrom_device_ops; - -struct cdrom_device_info { - const struct cdrom_device_ops *ops; - struct list_head list; +struct disk_events { + struct list_head node; struct gendisk *disk; - void *handle; - int mask; - int speed; - int capacity; - unsigned int options: 30; - unsigned int mc_flags: 2; - unsigned int vfs_events; - unsigned int ioctl_events; - int use_count; - char name[20]; - __u8 sanyo_slot: 2; - __u8 keeplocked: 1; - __u8 reserved: 5; - int cdda_method; - __u8 last_sense; - __u8 media_written; - short unsigned int mmc3_profile; - int for_data; - int (*exit)(struct cdrom_device_info *); - int mrw_mode_page; + spinlock_t lock; + struct mutex block_mutex; + int block; + unsigned int pending; + unsigned int clearing; + long int poll_msecs; + struct delayed_work dwork; }; -struct scsi_sense_hdr { - u8 response_code; - u8 sense_key; - u8 asc; - u8 ascq; - u8 byte4; - u8 byte5; - u8 byte6; - u8 additional_length; +struct sg_io_v4 { + __s32 guard; + __u32 protocol; + __u32 subprotocol; + __u32 request_len; + __u64 request; + __u64 request_tag; + __u32 request_attr; + __u32 request_priority; + __u32 request_extra; + __u32 max_response_len; + __u64 response; + __u32 dout_iovec_count; + __u32 dout_xfer_len; + __u32 din_iovec_count; + __u32 din_xfer_len; + __u64 dout_xferp; + __u64 din_xferp; + __u32 timeout; + __u32 flags; + __u64 usr_ptr; + __u32 spare_in; + __u32 driver_status; + __u32 transport_status; + __u32 device_status; + __u32 retry_delay; + __u32 info; + __u32 duration; + __u32 response_len; + __s32 din_resid; + __s32 dout_resid; + __u64 generated_tag; + __u32 spare_out; + __u32 padding; }; -struct cdrom_msf0 { - __u8 minute; - __u8 second; - __u8 frame; -}; - -union cdrom_addr { - struct cdrom_msf0 msf; - int lba; -}; - -struct cdrom_multisession { - union cdrom_addr addr; - __u8 xa_flag; - __u8 addr_format; -}; - -struct cdrom_mcn { - __u8 medium_catalog_number[14]; -}; - -struct request_sense; - -struct cdrom_generic_command { - unsigned char cmd[12]; - unsigned char *buffer; - unsigned int buflen; - int stat; - struct request_sense *sense; - unsigned char data_direction; - int quiet; - int timeout; - union { - void *reserved[1]; - void *unused; - }; -}; - -struct request_sense { - __u8 error_code: 7; - __u8 valid: 1; - __u8 segment_number; - __u8 sense_key: 4; - __u8 reserved2: 1; - __u8 ili: 1; - __u8 reserved1: 2; - __u8 information[4]; - __u8 add_sense_len; - __u8 command_info[4]; - __u8 asc; - __u8 ascq; - __u8 fruc; - __u8 sks[3]; - __u8 asb[46]; -}; - -struct packet_command { - unsigned char cmd[12]; - unsigned char *buffer; - unsigned int buflen; - int stat; - struct scsi_sense_hdr *sshdr; - unsigned char data_direction; - int quiet; - int timeout; - void *reserved[1]; -}; - -struct cdrom_device_ops { - int (*open)(struct cdrom_device_info *, int); - void (*release)(struct cdrom_device_info *); - int (*drive_status)(struct cdrom_device_info *, int); - unsigned int (*check_events)(struct cdrom_device_info *, unsigned int, int); - int (*tray_move)(struct cdrom_device_info *, int); - int (*lock_door)(struct cdrom_device_info *, int); - int (*select_speed)(struct cdrom_device_info *, int); - int (*select_disc)(struct cdrom_device_info *, int); - int (*get_last_session)(struct cdrom_device_info *, struct cdrom_multisession *); - int (*get_mcn)(struct cdrom_device_info *, struct cdrom_mcn *); - int (*reset)(struct cdrom_device_info *); - int (*audio_ioctl)(struct cdrom_device_info *, unsigned int, void *); - const int capability; - int (*generic_packet)(struct cdrom_device_info *, struct packet_command *); -}; - -struct scsi_ioctl_command { - unsigned int inlen; - unsigned int outlen; - unsigned char data[0]; -}; - -enum scsi_device_event { - SDEV_EVT_MEDIA_CHANGE = 1, - SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, - SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, - SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, - SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, - SDEV_EVT_LUN_CHANGE_REPORTED = 6, - SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, - SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, - SDEV_EVT_FIRST = 1, - SDEV_EVT_LAST = 8, - SDEV_EVT_MAXBITS = 9, -}; - -struct scsi_request { - unsigned char __cmd[16]; - unsigned char *cmd; - short unsigned int cmd_len; - int result; - unsigned int sense_len; - unsigned int resid_len; - int retries; - void *sense; -}; - -struct sg_io_hdr { - int interface_id; - int dxfer_direction; - unsigned char cmd_len; - unsigned char mx_sb_len; - short unsigned int iovec_count; - unsigned int dxfer_len; - void *dxferp; - unsigned char *cmdp; - void *sbp; - unsigned int timeout; - unsigned int flags; - int pack_id; - void *usr_ptr; - unsigned char status; - unsigned char masked_status; - unsigned char msg_status; - unsigned char sb_len_wr; - short unsigned int host_status; - short unsigned int driver_status; - int resid; - unsigned int duration; - unsigned int info; -}; - -struct compat_sg_io_hdr { - compat_int_t interface_id; - compat_int_t dxfer_direction; - unsigned char cmd_len; - unsigned char mx_sb_len; - short unsigned int iovec_count; - compat_uint_t dxfer_len; - compat_uint_t dxferp; - compat_uptr_t cmdp; - compat_uptr_t sbp; - compat_uint_t timeout; - compat_uint_t flags; - compat_int_t pack_id; - compat_uptr_t usr_ptr; - unsigned char status; - unsigned char masked_status; - unsigned char msg_status; - unsigned char sb_len_wr; - short unsigned int host_status; - short unsigned int driver_status; - compat_int_t resid; - compat_uint_t duration; - compat_uint_t info; -}; - -struct blk_cmd_filter { - long unsigned int read_ok[4]; - long unsigned int write_ok[4]; -}; - -struct compat_cdrom_generic_command { - unsigned char cmd[12]; - compat_caddr_t buffer; - compat_uint_t buflen; - compat_int_t stat; - compat_caddr_t sense; - unsigned char data_direction; - unsigned char pad[3]; - compat_int_t quiet; - compat_int_t timeout; - compat_caddr_t unused; -}; - -enum { - OMAX_SB_LEN = 16, -}; +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, fmode_t, unsigned int); struct bsg_device { struct request_queue *queue; - spinlock_t lock; - struct hlist_node dev_list; - refcount_t ref_count; - char name[20]; + struct device device; + struct cdev cdev; int max_queue; + unsigned int timeout; + unsigned int reserved_size; + bsg_sg_io_fn *sg_io_fn; }; struct bsg_job; @@ -57885,8 +70751,23 @@ struct bsg_job { typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *); +enum scsi_device_event { + SDEV_EVT_MEDIA_CHANGE = 1, + SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, + SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, + SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, + SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, + SDEV_EVT_LUN_CHANGE_REPORTED = 6, + SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, + SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, + SDEV_EVT_FIRST = 1, + SDEV_EVT_LAST = 8, + SDEV_EVT_MAXBITS = 9, +}; + struct bsg_set { struct blk_mq_tag_set tag_set; + struct bsg_device *bd; bsg_job_fn *job_fn; bsg_timeout_fn *timeout_fn; }; @@ -57911,7 +70792,7 @@ typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); -typedef size_t blkcg_pol_stat_pd_fn(struct blkg_policy_data *, char *, size_t); +typedef bool blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); struct blkcg_policy { int plid; @@ -57931,7 +70812,7 @@ struct blkcg_policy { }; struct blkg_conf_ctx { - struct gendisk *disk; + struct block_device *bdev; struct blkcg_gq *blkg; char *body; }; @@ -58051,6 +70932,26 @@ enum { LIMIT_CNT = 2, }; +enum prio_policy { + POLICY_NO_CHANGE = 0, + POLICY_NONE_TO_RT = 1, + POLICY_RESTRICT_TO_BE = 2, + POLICY_ALL_TO_IDLE = 3, +}; + +struct ioprio_blkg { + struct blkg_policy_data pd; +}; + +struct ioprio_blkcg { + struct blkcg_policy_data cpd; + enum prio_policy prio_policy; +}; + +struct blk_ioprio { + struct rq_qos rqos; +}; + enum { MILLION = 1000000, MIN_PERIOD = 1000, @@ -58061,6 +70962,9 @@ enum { INUSE_ADJ_STEP_PCT = 25, TIMER_SLACK_PCT = 1, WEIGHT_ONE = 65536, +}; + +enum { VTIME_PER_SEC_SHIFT = 37, VTIME_PER_SEC = 0, VTIME_PER_USEC = 137438, @@ -58069,6 +70973,10 @@ enum { VRATE_MAX_PPM = 100000000, VRATE_MIN = 1374, VRATE_CLAMP_ADJ_PCT = 4, + AUTOP_CYCLE_NSEC = 1410065408, +}; + +enum { RQ_WAIT_BUSY_PCT = 5, UNBUSY_THR_PCT = 75, MIN_DELAY_THR_PCT = 500, @@ -58078,7 +70986,6 @@ enum { DFGV_USAGE_PCT = 50, DFGV_PERIOD = 100000, MAX_LAGGING_PERIODS = 10, - AUTOP_CYCLE_NSEC = 1410065408, IOC_PAGE_SHIFT = 12, IOC_PAGE_SIZE = 4096, IOC_SECT_TO_PAGE_SHIFT = 3, @@ -58281,7 +71188,7 @@ struct iocg_wake_ctx { s64 vbudget; }; -struct trace_event_raw_iocost_iocg_activate { +struct trace_event_raw_iocost_iocg_state { struct trace_entry ent; u32 __data_loc_devname; u32 __data_loc_cgroup; @@ -58338,7 +71245,7 @@ struct trace_event_raw_iocost_iocg_forgive_debt { char __data[0]; }; -struct trace_event_data_offsets_iocost_iocg_activate { +struct trace_event_data_offsets_iocost_iocg_state { u32 devname; u32 cgroup; }; @@ -58359,6 +71266,8 @@ struct trace_event_data_offsets_iocost_iocg_forgive_debt { typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); +typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); + typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); @@ -58369,19 +71278,57 @@ typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); -struct deadline_data { +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, +}; + +enum { + DD_DIR_COUNT = 2, +}; + +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, +}; + +enum { + DD_PRIO_COUNT = 3, +}; + +struct io_stats_per_prio { + local_t inserted; + local_t merged; + local_t dispatched; + local_t completed; +}; + +struct io_stats { + struct io_stats_per_prio stats[3]; +}; + +struct dd_per_prio { + struct list_head dispatch; struct rb_root sort_list[2]; struct list_head fifo_list[2]; struct request *next_rq[2]; +}; + +struct deadline_data { + struct dd_per_prio per_prio[3]; + enum dd_data_dir last_dir; unsigned int batching; unsigned int starved; + struct io_stats *stats; int fifo_expire[2]; int fifo_batch; int writes_starved; int front_merges; + u32 async_depth; spinlock_t lock; spinlock_t zone_lock; - struct list_head dispatch; }; enum bip_flags { @@ -58399,12 +71346,21 @@ enum blk_integrity_flags { BLK_INTEGRITY_IP_CHECKSUM = 8, }; -struct integrity_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_integrity *, char *); - ssize_t (*store)(struct blk_integrity *, const char *, size_t); +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, }; +struct t10_pi_tuple { + __be16 guard_tag; + __be16 app_tag; + __be32 ref_tag; +}; + +typedef __be16 csum_fn(void *, unsigned int); + struct virtio_device_id { __u32 device; __u32 vendor; @@ -58444,8 +71400,6 @@ struct virtio_device { typedef void vq_callback_t(struct virtqueue *); -struct irq_affinity; - struct virtio_shm_region; struct virtio_config_ops { @@ -58532,11 +71486,13 @@ enum rdma_restrack_type { RDMA_RESTRACK_MR = 4, RDMA_RESTRACK_CTX = 5, RDMA_RESTRACK_COUNTER = 6, - RDMA_RESTRACK_MAX = 7, + RDMA_RESTRACK_SRQ = 7, + RDMA_RESTRACK_MAX = 8, }; struct rdma_restrack_entry { bool valid; + u8 no_track: 1; struct kref kref; struct completion comp; struct task_struct *task; @@ -58590,7 +71546,7 @@ struct rdma_counter { struct rdma_counter_mode mode; struct mutex lock; struct rdma_hw_stats *stats; - u8 port; + u32 port; }; enum rdma_driver_id { @@ -58604,6 +71560,7 @@ enum rdma_driver_id { RDMA_DRIVER_OCRDMA = 7, RDMA_DRIVER_NES = 8, RDMA_DRIVER_I40IW = 9, + RDMA_DRIVER_IRDMA = 9, RDMA_DRIVER_VMW_PVRDMA = 10, RDMA_DRIVER_QEDR = 11, RDMA_DRIVER_HNS = 12, @@ -58760,6 +71717,8 @@ struct ib_device_ops { enum rdma_driver_id driver_id; u32 uverbs_abi_ver; unsigned int uverbs_no_driver_id_binding: 1; + const struct attribute_group *device_group; + const struct attribute_group **port_groups; int (*post_send)(struct ib_qp *, const struct ib_send_wr *, const struct ib_send_wr **); int (*post_recv)(struct ib_qp *, const struct ib_recv_wr *, const struct ib_recv_wr **); void (*drain_rq)(struct ib_qp *); @@ -58767,24 +71726,23 @@ struct ib_device_ops { int (*poll_cq)(struct ib_cq *, int, struct ib_wc *); int (*peek_cq)(struct ib_cq *, int); int (*req_notify_cq)(struct ib_cq *, enum ib_cq_notify_flags); - int (*req_ncomp_notif)(struct ib_cq *, int); int (*post_srq_recv)(struct ib_srq *, const struct ib_recv_wr *, const struct ib_recv_wr **); - int (*process_mad)(struct ib_device *, int, u8, const struct ib_wc *, const struct ib_grh *, const struct ib_mad *, struct ib_mad *, size_t *, u16 *); + int (*process_mad)(struct ib_device *, int, u32, const struct ib_wc *, const struct ib_grh *, const struct ib_mad *, struct ib_mad *, size_t *, u16 *); int (*query_device)(struct ib_device *, struct ib_device_attr *, struct ib_udata *); int (*modify_device)(struct ib_device *, int, struct ib_device_modify *); void (*get_dev_fw_str)(struct ib_device *, char *); const struct cpumask * (*get_vector_affinity)(struct ib_device *, int); - int (*query_port)(struct ib_device *, u8, struct ib_port_attr *); - int (*modify_port)(struct ib_device *, u8, int, struct ib_port_modify *); - int (*get_port_immutable)(struct ib_device *, u8, struct ib_port_immutable *); - enum rdma_link_layer (*get_link_layer)(struct ib_device *, u8); - struct net_device * (*get_netdev)(struct ib_device *, u8); - struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u8, enum rdma_netdev_t, const char *, unsigned char, void (*)(struct net_device *)); - int (*rdma_netdev_get_params)(struct ib_device *, u8, enum rdma_netdev_t, struct rdma_netdev_alloc_params *); - int (*query_gid)(struct ib_device *, u8, int, union ib_gid *); + int (*query_port)(struct ib_device *, u32, struct ib_port_attr *); + int (*modify_port)(struct ib_device *, u32, int, struct ib_port_modify *); + int (*get_port_immutable)(struct ib_device *, u32, struct ib_port_immutable *); + enum rdma_link_layer (*get_link_layer)(struct ib_device *, u32); + struct net_device * (*get_netdev)(struct ib_device *, u32); + struct net_device * (*alloc_rdma_netdev)(struct ib_device *, u32, enum rdma_netdev_t, const char *, unsigned char, void (*)(struct net_device *)); + int (*rdma_netdev_get_params)(struct ib_device *, u32, enum rdma_netdev_t, struct rdma_netdev_alloc_params *); + int (*query_gid)(struct ib_device *, u32, int, union ib_gid *); int (*add_gid)(const struct ib_gid_attr *, void **); int (*del_gid)(const struct ib_gid_attr *, void **); - int (*query_pkey)(struct ib_device *, u8, u16, u16 *); + int (*query_pkey)(struct ib_device *, u32, u16, u16 *); int (*alloc_ucontext)(struct ib_ucontext *, struct ib_udata *); void (*dealloc_ucontext)(struct ib_ucontext *); int (*mmap)(struct ib_ucontext *, struct vm_area_struct *); @@ -58793,6 +71751,7 @@ struct ib_device_ops { int (*alloc_pd)(struct ib_pd *, struct ib_udata *); int (*dealloc_pd)(struct ib_pd *, struct ib_udata *); int (*create_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *); + int (*create_user_ah)(struct ib_ah *, struct rdma_ah_init_attr *, struct ib_udata *); int (*modify_ah)(struct ib_ah *, struct rdma_ah_attr *); int (*query_ah)(struct ib_ah *, struct rdma_ah_attr *); int (*destroy_ah)(struct ib_ah *, u32); @@ -58800,7 +71759,7 @@ struct ib_device_ops { int (*modify_srq)(struct ib_srq *, struct ib_srq_attr *, enum ib_srq_attr_mask, struct ib_udata *); int (*query_srq)(struct ib_srq *, struct ib_srq_attr *); int (*destroy_srq)(struct ib_srq *, struct ib_udata *); - struct ib_qp * (*create_qp)(struct ib_pd *, struct ib_qp_init_attr *, struct ib_udata *); + int (*create_qp)(struct ib_qp *, struct ib_qp_init_attr *, struct ib_udata *); int (*modify_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_udata *); int (*query_qp)(struct ib_qp *, struct ib_qp_attr *, int, struct ib_qp_init_attr *); int (*destroy_qp)(struct ib_qp *, struct ib_udata *); @@ -58810,7 +71769,8 @@ struct ib_device_ops { int (*resize_cq)(struct ib_cq *, int, struct ib_udata *); struct ib_mr * (*get_dma_mr)(struct ib_pd *, int); struct ib_mr * (*reg_user_mr)(struct ib_pd *, u64, u64, u64, int, struct ib_udata *); - int (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *); + struct ib_mr * (*reg_user_mr_dmabuf)(struct ib_pd *, u64, u64, u64, int, int, struct ib_udata *); + struct ib_mr * (*rereg_user_mr)(struct ib_mr *, int, u64, u64, u64, int, struct ib_pd *, struct ib_udata *); int (*dereg_mr)(struct ib_mr *, struct ib_udata *); struct ib_mr * (*alloc_mr)(struct ib_pd *, enum ib_mr_type, u32); struct ib_mr * (*alloc_mr_integrity)(struct ib_pd *, u32, u32); @@ -58828,11 +71788,11 @@ struct ib_device_ops { struct ib_flow_action * (*create_flow_action_esp)(struct ib_device *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *); int (*destroy_flow_action)(struct ib_flow_action *); int (*modify_flow_action_esp)(struct ib_flow_action *, const struct ib_flow_action_attrs_esp *, struct uverbs_attr_bundle *); - int (*set_vf_link_state)(struct ib_device *, int, u8, int); - int (*get_vf_config)(struct ib_device *, int, u8, struct ifla_vf_info *); - int (*get_vf_stats)(struct ib_device *, int, u8, struct ifla_vf_stats *); - int (*get_vf_guid)(struct ib_device *, int, u8, struct ifla_vf_guid *, struct ifla_vf_guid *); - int (*set_vf_guid)(struct ib_device *, int, u8, u64, int); + int (*set_vf_link_state)(struct ib_device *, int, u32, int); + int (*get_vf_config)(struct ib_device *, int, u32, struct ifla_vf_info *); + int (*get_vf_stats)(struct ib_device *, int, u32, struct ifla_vf_stats *); + int (*get_vf_guid)(struct ib_device *, int, u32, struct ifla_vf_guid *, struct ifla_vf_guid *); + int (*set_vf_guid)(struct ib_device *, int, u32, u64, int); struct ib_wq * (*create_wq)(struct ib_pd *, struct ib_wq_init_attr *, struct ib_udata *); int (*destroy_wq)(struct ib_wq *, struct ib_udata *); int (*modify_wq)(struct ib_wq *, struct ib_wq_attr *, u32, struct ib_udata *); @@ -58845,9 +71805,9 @@ struct ib_device_ops { int (*destroy_counters)(struct ib_counters *); int (*read_counters)(struct ib_counters *, struct ib_counters_read_attr *, struct uverbs_attr_bundle *); int (*map_mr_sg_pi)(struct ib_mr *, struct scatterlist *, int, unsigned int *, struct scatterlist *, int, unsigned int *); - struct rdma_hw_stats * (*alloc_hw_stats)(struct ib_device *, u8); - int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u8, int); - int (*init_port)(struct ib_device *, u8, struct kobject *); + struct rdma_hw_stats * (*alloc_hw_device_stats)(struct ib_device *); + struct rdma_hw_stats * (*alloc_hw_port_stats)(struct ib_device *, u32); + int (*get_hw_stats)(struct ib_device *, struct rdma_hw_stats *, u32, int); int (*fill_res_mr_entry)(struct sk_buff *, struct ib_mr *); int (*fill_res_mr_entry_raw)(struct sk_buff *, struct ib_mr *); int (*fill_res_cq_entry)(struct sk_buff *, struct ib_cq *); @@ -58872,11 +71832,13 @@ struct ib_device_ops { int (*counter_update_stats)(struct rdma_counter *); int (*fill_stat_mr_entry)(struct sk_buff *, struct ib_mr *); int (*query_ucontext)(struct ib_ucontext *, struct uverbs_attr_bundle *); + int (*get_numa_node)(struct ib_device *); size_t size_ib_ah; size_t size_ib_counters; size_t size_ib_cq; size_t size_ib_mw; size_t size_ib_pd; + size_t size_ib_qp; size_t size_ib_rwq_ind_table; size_t size_ib_srq; size_t size_ib_ucontext; @@ -58981,6 +71943,8 @@ struct ib_device_attr { u32 max_sgl_rd; }; +struct hw_stats_device_data; + struct rdma_restrack_root; struct uapi_definition; @@ -59005,9 +71969,8 @@ struct ib_device { struct device dev; struct ib_core_device coredev; }; - const struct attribute_group *groups[3]; + const struct attribute_group *groups[4]; u64 uverbs_cmd_mask; - u64 uverbs_ex_cmd_mask; char node_desc[64]; __be64 node_guid; u32 local_dma_lkey; @@ -59015,10 +71978,9 @@ struct ib_device { u16 kverbs_provider: 1; u16 use_cq_dim: 1; u8 node_type; - u8 phys_port_cnt; + u32 phys_port_cnt; struct ib_device_attr attrs; - struct attribute_group *hw_stats_ag; - struct rdma_hw_stats *hw_stats; + struct hw_stats_device_data *hw_stats_data; struct rdmacg_device cg_device; u32 index; spinlock_t cq_pools_lock; @@ -59129,7 +72091,7 @@ struct ib_gid_attr { union ib_gid gid; enum ib_gid_type gid_type; u16 index; - u8 port_num; + u32 port_num; }; struct ib_cq_init_attr { @@ -59313,7 +72275,7 @@ struct ib_qp { enum ib_qp_type qp_type; struct ib_rwq_ind_table *rwq_ind_tbl; struct ib_qp_security *qp_sec; - u8 port; + u32 port; bool integrity_en; struct rdma_restrack_entry res; struct rdma_counter *counter; @@ -59344,6 +72306,7 @@ struct ib_srq { } xrc; }; } ext; + struct rdma_restrack_entry res; }; struct ib_uwq_object; @@ -59378,7 +72341,7 @@ struct ib_event { struct ib_qp *qp; struct ib_srq *srq; struct ib_wq *wq; - u8 port_num; + u32 port_num; } element; enum ib_event_type event; }; @@ -59438,7 +72401,7 @@ struct rdma_ah_attr { struct ib_global_route grh; u8 sl; u8 static_rate; - u8 port_num; + u32 port_num; u8 ah_flags; enum rdma_ah_attr_type type; union { @@ -59513,7 +72476,7 @@ struct ib_wc { u16 pkey_index; u8 sl; u8 dlid_path_bits; - u8 port_num; + u32 port_num; u8 smac[6]; u16 vlan_id; u8 network_hdr_type; @@ -59576,7 +72539,7 @@ struct ib_qp_init_attr { enum ib_sig_type sq_sig_type; enum ib_qp_type qp_type; u32 create_flags; - u8 port_num; + u32 port_num; struct ib_rwq_ind_table *rwq_ind_tbl; u32 source_qpn; }; @@ -59633,11 +72596,11 @@ struct ib_qp_attr { u8 max_rd_atomic; u8 max_dest_rd_atomic; u8 min_rnr_timer; - u8 port_num; + u32 port_num; u8 timeout; u8 retry_cnt; u8 rnr_retry; - u8 alt_port_num; + u32 alt_port_num; u8 alt_timeout; u32 rate_limit; struct net_device *xmit_slave; @@ -59740,7 +72703,6 @@ struct ib_uverbs_file; struct ib_ucontext { struct ib_device *device; struct ib_uverbs_file *ufile; - bool cleanup_retryable; struct ib_rdmacg_object cg_obj; struct rdma_restrack_entry res; struct xarray mmap_xa; @@ -59811,7 +72773,7 @@ enum port_pkey_state { struct ib_port_pkey { enum port_pkey_state state; u16 pkey_index; - u8 port_num; + u32 port_num; struct list_head qp_list; struct list_head to_error_list; struct ib_qp_security *sec; @@ -60071,7 +73033,7 @@ struct ib_flow_attr { u16 priority; u32 flags; u8 num_of_specs; - u8 port; + u32 port; union ib_flow_spec flows[0]; }; @@ -60131,17 +73093,19 @@ struct ib_port_immutable { u32 max_mad_size; }; +struct ib_port; + struct ib_port_data { struct ib_device *ib_dev; struct ib_port_immutable immutable; spinlock_t pkey_list_lock; + spinlock_t netdev_lock; struct list_head pkey_list; struct ib_port_cache cache; - spinlock_t netdev_lock; struct net_device *netdev; struct hlist_node ndev_hash_link; struct rdma_port_counter port_counter; - struct rdma_hw_stats *hw_stats; + struct ib_port *sysfs; }; struct rdma_netdev_alloc_params { @@ -60149,7 +73113,7 @@ struct rdma_netdev_alloc_params { unsigned int txqs; unsigned int rxqs; void *param; - int (*initialize_rdma_netdev)(struct ib_device *, u8, struct net_device *, void *); + int (*initialize_rdma_netdev)(struct ib_device *, u32, struct net_device *, void *); }; struct ib_counters_read_attr { @@ -60689,8 +73653,8 @@ struct opal_dev { u64 align; u64 lowest_lba; size_t pos; - u8 cmd[2048]; - u8 resp[2048]; + u8 *cmd; + u8 *resp; struct parsed_resp parsed; size_t prev_d_len; void *prev_data; @@ -60705,7 +73669,1368 @@ struct opal_suspend_data { struct list_head node; }; -typedef void (*swap_func_t)(void *, void *, int); +struct blk_ksm_keyslot { + atomic_t slot_refs; + struct list_head idle_slot_node; + struct hlist_node hash_node; + const struct blk_crypto_key *key; + struct blk_keyslot_manager *ksm; +}; + +struct blk_ksm_ll_ops { + int (*keyslot_program)(struct blk_keyslot_manager *, const struct blk_crypto_key *, unsigned int); + int (*keyslot_evict)(struct blk_keyslot_manager *, const struct blk_crypto_key *, unsigned int); +}; + +struct blk_keyslot_manager { + struct blk_ksm_ll_ops ksm_ll_ops; + unsigned int max_dun_bytes_supported; + unsigned int crypto_modes_supported[4]; + struct device *dev; + unsigned int num_slots; + struct rw_semaphore lock; + wait_queue_head_t idle_slots_wait_queue; + struct list_head idle_slots; + spinlock_t idle_slots_lock; + struct hlist_head *slot_hashtable; + unsigned int log_slot_ht_size; + struct blk_ksm_keyslot *slots; +}; + +struct blk_crypto_mode { + const char *cipher_str; + unsigned int keysize; + unsigned int ivsize; +}; + +struct bio_fallback_crypt_ctx { + struct bio_crypt_ctx crypt_ctx; + struct bvec_iter crypt_iter; + union { + struct { + struct work_struct work; + struct bio *bio; + }; + struct { + void *bi_private_orig; + bio_end_io_t *bi_end_io_orig; + }; + }; +}; + +struct blk_crypto_keyslot { + enum blk_crypto_mode_num crypto_mode; + struct crypto_skcipher *tfms[4]; +}; + +union blk_crypto_iv { + __le64 dun[4]; + u8 bytes[32]; +}; + +struct bd_holder_disk { + struct list_head list; + struct block_device *bdev; + int refcnt; +}; + +struct xa_limit { + u32 max; + u32 min; +}; + +struct io_wq_work_node; + +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; + +struct io_ring_ctx; + +struct io_wq; + +struct io_uring_task { + int cached_refs; + struct xarray xa; + struct wait_queue_head wait; + const struct io_ring_ctx *last; + struct io_wq *io_wq; + struct percpu_counter inflight; + atomic_t inflight_tracked; + atomic_t in_idle; + spinlock_t task_lock; + struct io_wq_work_list task_list; + struct callback_head task_work; + bool task_running; +}; + +struct iov_iter_state { + size_t iov_offset; + size_t count; + long unsigned int nr_segs; +}; + +struct user_msghdr { + void *msg_name; + int msg_namelen; + struct iovec *msg_iov; + __kernel_size_t msg_iovlen; + void *msg_control; + __kernel_size_t msg_controllen; + unsigned int msg_flags; +}; + +struct compat_msghdr { + compat_uptr_t msg_name; + compat_int_t msg_namelen; + compat_uptr_t msg_iov; + compat_size_t msg_iovlen; + compat_uptr_t msg_control; + compat_size_t msg_controllen; + compat_uint_t msg_flags; +}; + +struct trace_event_raw_io_uring_create { + struct trace_entry ent; + int fd; + void *ctx; + u32 sq_entries; + u32 cq_entries; + u32 flags; + char __data[0]; +}; + +struct trace_event_raw_io_uring_register { + struct trace_entry ent; + void *ctx; + unsigned int opcode; + unsigned int nr_files; + unsigned int nr_bufs; + bool eventfd; + long int ret; + char __data[0]; +}; + +struct trace_event_raw_io_uring_file_get { + struct trace_entry ent; + void *ctx; + int fd; + char __data[0]; +}; + +struct io_wq_work; + +struct trace_event_raw_io_uring_queue_async_work { + struct trace_entry ent; + void *ctx; + int rw; + void *req; + struct io_wq_work *work; + unsigned int flags; + char __data[0]; +}; + +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_wq_work { + struct io_wq_work_node list; + unsigned int flags; +}; + +struct trace_event_raw_io_uring_defer { + struct trace_entry ent; + void *ctx; + void *req; + long long unsigned int data; + char __data[0]; +}; + +struct trace_event_raw_io_uring_link { + struct trace_entry ent; + void *ctx; + void *req; + void *target_req; + char __data[0]; +}; + +struct trace_event_raw_io_uring_cqring_wait { + struct trace_entry ent; + void *ctx; + int min_events; + char __data[0]; +}; + +struct trace_event_raw_io_uring_fail_link { + struct trace_entry ent; + void *req; + void *link; + char __data[0]; +}; + +struct trace_event_raw_io_uring_complete { + struct trace_entry ent; + void *ctx; + u64 user_data; + int res; + unsigned int cflags; + char __data[0]; +}; + +struct trace_event_raw_io_uring_submit_sqe { + struct trace_entry ent; + void *ctx; + void *req; + u8 opcode; + u64 user_data; + u32 flags; + bool force_nonblock; + bool sq_thread; + char __data[0]; +}; + +struct trace_event_raw_io_uring_poll_arm { + struct trace_entry ent; + void *ctx; + void *req; + u8 opcode; + u64 user_data; + int mask; + int events; + char __data[0]; +}; + +struct trace_event_raw_io_uring_poll_wake { + struct trace_entry ent; + void *ctx; + u8 opcode; + u64 user_data; + int mask; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_add { + struct trace_entry ent; + void *ctx; + u8 opcode; + u64 user_data; + int mask; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_run { + struct trace_entry ent; + void *ctx; + void *req; + u8 opcode; + u64 user_data; + char __data[0]; +}; + +struct trace_event_data_offsets_io_uring_create {}; + +struct trace_event_data_offsets_io_uring_register {}; + +struct trace_event_data_offsets_io_uring_file_get {}; + +struct trace_event_data_offsets_io_uring_queue_async_work {}; + +struct trace_event_data_offsets_io_uring_defer {}; + +struct trace_event_data_offsets_io_uring_link {}; + +struct trace_event_data_offsets_io_uring_cqring_wait {}; + +struct trace_event_data_offsets_io_uring_fail_link {}; + +struct trace_event_data_offsets_io_uring_complete {}; + +struct trace_event_data_offsets_io_uring_submit_sqe {}; + +struct trace_event_data_offsets_io_uring_poll_arm {}; + +struct trace_event_data_offsets_io_uring_poll_wake {}; + +struct trace_event_data_offsets_io_uring_task_add {}; + +struct trace_event_data_offsets_io_uring_task_run {}; + +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); + +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, bool, long int); + +typedef void (*btf_trace_io_uring_file_get)(void *, void *, int); + +typedef void (*btf_trace_io_uring_queue_async_work)(void *, void *, int, void *, struct io_wq_work *, unsigned int); + +typedef void (*btf_trace_io_uring_defer)(void *, void *, void *, long long unsigned int); + +typedef void (*btf_trace_io_uring_link)(void *, void *, void *, void *); + +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); + +typedef void (*btf_trace_io_uring_fail_link)(void *, void *, void *); + +typedef void (*btf_trace_io_uring_complete)(void *, void *, u64, int, unsigned int); + +typedef void (*btf_trace_io_uring_submit_sqe)(void *, void *, void *, u8, u64, u32, bool, bool); + +typedef void (*btf_trace_io_uring_poll_arm)(void *, void *, void *, u8, u64, int, int); + +typedef void (*btf_trace_io_uring_poll_wake)(void *, void *, u8, u64, int); + +typedef void (*btf_trace_io_uring_task_add)(void *, void *, u8, u64, int); + +typedef void (*btf_trace_io_uring_task_run)(void *, void *, void *, u8, u64); + +struct io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; + union { + __u64 off; + __u64 addr2; + }; + union { + __u64 addr; + __u64 splice_off_in; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + }; + __u64 __pad2[2]; +}; + +enum { + IOSQE_FIXED_FILE_BIT = 0, + IOSQE_IO_DRAIN_BIT = 1, + IOSQE_IO_LINK_BIT = 2, + IOSQE_IO_HARDLINK_BIT = 3, + IOSQE_ASYNC_BIT = 4, + IOSQE_BUFFER_SELECT_BIT = 5, +}; + +enum { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_LAST = 40, +}; + +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; +}; + +enum { + IORING_CQE_BUFFER_SHIFT = 16, +}; + +struct io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 resv2; +}; + +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 resv2; +}; + +struct io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; +}; + +enum { + IORING_REGISTER_BUFFERS = 0, + IORING_UNREGISTER_BUFFERS = 1, + IORING_REGISTER_FILES = 2, + IORING_UNREGISTER_FILES = 3, + IORING_REGISTER_EVENTFD = 4, + IORING_UNREGISTER_EVENTFD = 5, + IORING_REGISTER_FILES_UPDATE = 6, + IORING_REGISTER_EVENTFD_ASYNC = 7, + IORING_REGISTER_PROBE = 8, + IORING_REGISTER_PERSONALITY = 9, + IORING_UNREGISTER_PERSONALITY = 10, + IORING_REGISTER_RESTRICTIONS = 11, + IORING_REGISTER_ENABLE_RINGS = 12, + IORING_REGISTER_FILES2 = 13, + IORING_REGISTER_FILES_UPDATE2 = 14, + IORING_REGISTER_BUFFERS2 = 15, + IORING_REGISTER_BUFFERS_UPDATE = 16, + IORING_REGISTER_IOWQ_AFF = 17, + IORING_UNREGISTER_IOWQ_AFF = 18, + IORING_REGISTER_IOWQ_MAX_WORKERS = 19, + IORING_REGISTER_LAST = 20, +}; + +struct io_uring_rsrc_register { + __u32 nr; + __u32 resv; + __u64 resv2; + __u64 data; + __u64 tags; +}; + +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; +}; + +struct io_uring_probe_op { + __u8 op; + __u8 resv; + __u16 flags; + __u32 resv2; +}; + +struct io_uring_probe { + __u8 last_op; + __u8 ops_len; + __u16 resv; + __u32 resv2[3]; + struct io_uring_probe_op ops[0]; +}; + +struct io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; +}; + +enum { + IORING_RESTRICTION_REGISTER_OP = 0, + IORING_RESTRICTION_SQE_OP = 1, + IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2, + IORING_RESTRICTION_SQE_FLAGS_REQUIRED = 3, + IORING_RESTRICTION_LAST = 4, +}; + +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad; + __u64 ts; +}; + +enum { + IO_WQ_WORK_CANCEL = 1, + IO_WQ_WORK_HASHED = 2, + IO_WQ_WORK_UNBOUND = 4, + IO_WQ_WORK_CONCURRENT = 16, + IO_WQ_HASH_SHIFT = 24, +}; + +enum io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, +}; + +typedef struct io_wq_work *free_work_fn(struct io_wq_work *); + +typedef void io_wq_work_fn(struct io_wq_work *); + +struct io_wq_hash { + refcount_t refs; + long unsigned int map; + struct wait_queue_head wait; +}; + +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; +}; + +typedef bool work_cancel_fn(struct io_wq_work *, void *); + +struct io_uring { + u32 head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 tail; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + u32 sq_flags; + u32 cq_flags; + u32 cq_overflow; + long: 64; + long: 64; + long: 64; + long: 64; + struct io_uring_cqe cqes[0]; +}; + +enum io_uring_cmd_flags { + IO_URING_F_NONBLOCK = 1, + IO_URING_F_COMPLETE_DEFER = 2, +}; + +struct io_mapped_ubuf { + u64 ubuf; + u64 ubuf_end; + unsigned int nr_bvecs; + long unsigned int acct_pages; + struct bio_vec bvec[0]; +}; + +struct io_overflow_cqe { + struct io_uring_cqe cqe; + struct list_head list; +}; + +struct io_fixed_file { + long unsigned int file_ptr; +}; + +struct io_rsrc_put { + struct list_head list; + u64 tag; + union { + void *rsrc; + struct file *file; + struct io_mapped_ubuf *buf; + }; +}; + +struct io_file_table { + struct io_fixed_file *files; +}; + +struct io_rsrc_data; + +struct io_rsrc_node { + struct percpu_ref refs; + struct list_head node; + struct list_head rsrc_list; + struct io_rsrc_data *rsrc_data; + struct llist_node llist; + bool done; +}; + +typedef void rsrc_put_fn(struct io_ring_ctx *, struct io_rsrc_put *); + +struct io_rsrc_data { + struct io_ring_ctx *ctx; + u64 **tags; + unsigned int nr; + rsrc_put_fn *do_put; + atomic_t refs; + struct completion done; + bool quiesce; +}; + +struct io_kiocb; + +struct io_submit_link { + struct io_kiocb *head; + struct io_kiocb *last; +}; + +struct io_submit_state { + struct blk_plug plug; + struct io_submit_link link; + void *reqs[32]; + unsigned int free_reqs; + bool plug_started; + struct io_kiocb *compl_reqs[32]; + unsigned int compl_nr; + struct list_head free_list; + unsigned int ios_left; +}; + +struct io_restriction { + long unsigned int register_op[1]; + long unsigned int sqe_op[1]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; +}; + +struct io_sq_data; + +struct io_ring_ctx { + struct { + struct percpu_ref refs; + struct io_rings *rings; + unsigned int flags; + unsigned int compat: 1; + unsigned int drain_next: 1; + unsigned int eventfd_async: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + struct mutex uring_lock; + u32 *sq_array; + struct io_uring_sqe *sq_sqes; + unsigned int cached_sq_head; + unsigned int sq_entries; + struct list_head defer_list; + struct io_rsrc_node *rsrc_node; + struct io_file_table file_table; + unsigned int nr_user_files; + unsigned int nr_user_bufs; + struct io_mapped_ubuf **user_bufs; + struct io_submit_state submit_state; + struct list_head timeout_list; + struct list_head ltimeout_list; + struct list_head cq_overflow_list; + struct xarray io_buffers; + struct xarray personalities; + u32 pers_next; + unsigned int sq_thread_idle; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct list_head locked_free_list; + unsigned int locked_free_nr; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + long unsigned int check_cq_overflow; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct { + unsigned int cached_cq_tail; + unsigned int cq_entries; + struct eventfd_ctx *cq_ev_fd; + struct wait_queue_head poll_wait; + struct wait_queue_head cq_wait; + unsigned int cq_extra; + atomic_t cq_timeouts; + unsigned int cq_last_tm_flush; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct { + spinlock_t completion_lock; + spinlock_t timeout_lock; + struct list_head iopoll_list; + struct hlist_head *cancel_hash; + unsigned int cancel_hash_bits; + bool poll_multi_queue; + long: 64; + long: 64; + long: 64; + }; + struct io_restriction restrictions; + struct { + struct io_rsrc_node *rsrc_backup_node; + struct io_mapped_ubuf *dummy_ubuf; + struct io_rsrc_data *file_data; + struct io_rsrc_data *buf_data; + struct delayed_work rsrc_put_work; + struct llist_head rsrc_put_llist; + struct list_head rsrc_ref_list; + spinlock_t rsrc_ref_lock; + }; + struct { + struct io_wq_hash *hash_map; + struct user_struct *user; + struct mm_struct *mm_account; + struct llist_head fallback_llist; + struct delayed_work fallback_work; + struct work_struct exit_work; + struct list_head tctx_list; + struct completion ref_comp; + u32 iowq_limits[2]; + bool iowq_limits_set; + }; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; +}; + +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, +}; + +struct io_sq_data { + refcount_t refs; + atomic_t park_pending; + struct mutex lock; + struct list_head ctx_list; + struct task_struct *thread; + struct wait_queue_head wait; + unsigned int sq_thread_idle; + int sq_cpu; + pid_t task_pid; + pid_t task_tgid; + long unsigned int state; + struct completion exited; +}; + +struct io_rw { + struct kiocb kiocb; + u64 addr; + u64 len; +}; + +struct io_poll_iocb { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; + +struct io_poll_update { + struct file *file; + u64 old_user_data; + u64 new_user_data; + __poll_t events; + bool update_events; + bool update_user_data; +}; + +struct io_accept { + struct file *file; + struct sockaddr *addr; + int *addr_len; + int flags; + u32 file_slot; + long unsigned int nofile; +}; + +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; +}; + +struct io_cancel { + struct file *file; + u64 addr; +}; + +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; +}; + +struct io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; +}; + +struct io_connect { + struct file *file; + struct sockaddr *addr; + int addr_len; +}; + +struct io_sr_msg { + struct file *file; + union { + struct compat_msghdr *umsg_compat; + struct user_msghdr *umsg; + void *buf; + }; + int msg_flags; + int bgid; + size_t len; + size_t done_io; + struct io_buffer *kbuf; + void *msg_control; +}; + +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + long unsigned int nofile; +}; + +struct io_close { + struct file *file; + int fd; + u32 file_slot; +}; + +struct io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; +}; + +struct io_fadvise { + struct file *file; + u64 offset; + u32 len; + u32 advice; +}; + +struct io_madvise { + struct file *file; + u64 addr; + u32 len; + u32 advice; +}; + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; + +struct io_splice { + struct file *file_out; + loff_t off_out; + loff_t off_in; + u64 len; + int splice_fd_in; + unsigned int flags; +}; + +struct io_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u16 nbufs; + __u16 bid; +}; + +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + const char *filename; + struct statx *buffer; +}; + +struct io_shutdown { + struct file *file; + int how; +}; + +struct io_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; +}; + +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; +}; + +struct io_symlink { + struct file *file; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; +}; + +struct io_hardlink { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_completion { + struct file *file; + u32 cflags; +}; + +typedef void (*io_req_tw_func_t)(struct io_kiocb *, bool *); + +struct io_task_work { + union { + struct io_wq_work_node node; + struct llist_node fallback_node; + }; + io_req_tw_func_t func; +}; + +struct async_poll; + +struct io_kiocb { + union { + struct file *file; + struct io_rw rw; + struct io_poll_iocb poll; + struct io_poll_update poll_update; + struct io_accept accept; + struct io_sync sync; + struct io_cancel cancel; + struct io_timeout timeout; + struct io_timeout_rem timeout_rem; + struct io_connect connect; + struct io_sr_msg sr_msg; + struct io_open open; + struct io_close close; + struct io_rsrc_update rsrc_update; + struct io_fadvise fadvise; + struct io_madvise madvise; + struct io_epoll epoll; + struct io_splice splice; + struct io_provide_buf pbuf; + struct io_statx statx; + struct io_shutdown shutdown; + struct io_rename rename; + struct io_unlink unlink; + struct io_mkdir mkdir; + struct io_symlink symlink; + struct io_hardlink hardlink; + struct io_completion compl; + }; + void *async_data; + u8 opcode; + u8 iopoll_completed; + u16 buf_index; + u32 result; + struct io_ring_ctx *ctx; + unsigned int flags; + atomic_t refs; + struct task_struct *task; + u64 user_data; + struct io_kiocb *link; + struct percpu_ref *fixed_rsrc_refs; + struct list_head inflight_entry; + struct io_task_work io_task_work; + struct hlist_node hash_node; + struct async_poll *apoll; + struct io_wq_work work; + const struct cred *creds; + struct io_mapped_ubuf *imu; + struct io_buffer *kbuf; + atomic_t poll_refs; +}; + +struct io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; +}; + +struct io_async_connect { + struct __kernel_sockaddr_storage address; +}; + +struct io_async_msghdr { + struct iovec fast_iov[8]; + struct iovec *free_iov; + struct sockaddr *uaddr; + struct msghdr msg; + struct __kernel_sockaddr_storage addr; +}; + +struct io_async_rw { + struct iovec fast_iov[8]; + const struct iovec *free_iovec; + struct iov_iter iter; + struct iov_iter_state iter_state; + size_t bytes_done; + struct wait_page_queue wpq; +}; + +enum { + REQ_F_FIXED_FILE_BIT = 0, + REQ_F_IO_DRAIN_BIT = 1, + REQ_F_LINK_BIT = 2, + REQ_F_HARDLINK_BIT = 3, + REQ_F_FORCE_ASYNC_BIT = 4, + REQ_F_BUFFER_SELECT_BIT = 5, + REQ_F_FAIL_BIT = 8, + REQ_F_INFLIGHT_BIT = 9, + REQ_F_CUR_POS_BIT = 10, + REQ_F_NOWAIT_BIT = 11, + REQ_F_LINK_TIMEOUT_BIT = 12, + REQ_F_NEED_CLEANUP_BIT = 13, + REQ_F_POLLED_BIT = 14, + REQ_F_BUFFER_SELECTED_BIT = 15, + REQ_F_COMPLETE_INLINE_BIT = 16, + REQ_F_REISSUE_BIT = 17, + REQ_F_CREDS_BIT = 18, + REQ_F_REFCOUNT_BIT = 19, + REQ_F_ARM_LTIMEOUT_BIT = 20, + REQ_F_PARTIAL_IO_BIT = 21, + REQ_F_NOWAIT_READ_BIT = 22, + REQ_F_NOWAIT_WRITE_BIT = 23, + REQ_F_ISREG_BIT = 24, + __REQ_F_LAST_BIT = 25, +}; + +enum { + REQ_F_FIXED_FILE = 1, + REQ_F_IO_DRAIN = 2, + REQ_F_LINK = 4, + REQ_F_HARDLINK = 8, + REQ_F_FORCE_ASYNC = 16, + REQ_F_BUFFER_SELECT = 32, + REQ_F_FAIL = 256, + REQ_F_INFLIGHT = 512, + REQ_F_CUR_POS = 1024, + REQ_F_NOWAIT = 2048, + REQ_F_LINK_TIMEOUT = 4096, + REQ_F_NEED_CLEANUP = 8192, + REQ_F_POLLED = 16384, + REQ_F_BUFFER_SELECTED = 32768, + REQ_F_COMPLETE_INLINE = 65536, + REQ_F_REISSUE = 131072, + REQ_F_NOWAIT_READ = 4194304, + REQ_F_NOWAIT_WRITE = 8388608, + REQ_F_ISREG = 16777216, + REQ_F_CREDS = 262144, + REQ_F_REFCOUNT = 524288, + REQ_F_ARM_LTIMEOUT = 1048576, + REQ_F_PARTIAL_IO = 2097152, +}; + +struct async_poll { + struct io_poll_iocb poll; + struct io_poll_iocb *double_poll; +}; + +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; + +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; +}; + +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; +}; + +struct io_op_def { + unsigned int needs_file: 1; + unsigned int hash_reg_file: 1; + unsigned int unbound_nonreg_file: 1; + unsigned int not_supported: 1; + unsigned int pollin: 1; + unsigned int pollout: 1; + unsigned int buffer_select: 1; + unsigned int needs_async_setup: 1; + unsigned int plug: 1; + short unsigned int async_size; +}; + +struct req_batch { + struct task_struct *task; + int task_refs; + int ctx_refs; +}; + +struct io_poll_table { + struct poll_table_struct pt; + struct io_kiocb *req; + int nr_entries; + int error; +}; + +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, +}; + +struct io_cancel_data { + struct io_ring_ctx *ctx; + u64 user_data; +}; + +struct io_wait_queue { + struct wait_queue_entry wq; + struct io_ring_ctx *ctx; + unsigned int cq_tail; + unsigned int nr_timeouts; +}; + +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; + +struct io_task_cancel { + struct task_struct *task; + bool all; +}; + +struct creds; + +enum { + IO_WQ_BOUND = 0, + IO_WQ_UNBOUND = 1, +}; + +enum { + IO_WORKER_F_UP = 1, + IO_WORKER_F_RUNNING = 2, + IO_WORKER_F_FREE = 4, + IO_WORKER_F_BOUND = 8, +}; + +enum { + IO_WQ_BIT_EXIT = 0, +}; + +enum { + IO_ACCT_STALLED_BIT = 0, +}; + +struct io_wqe; + +struct io_worker { + refcount_t ref; + unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wqe *wqe; + struct io_wq_work *cur_work; + spinlock_t lock; + struct completion ref_done; + long unsigned int create_state; + struct callback_head create_work; + int create_index; + int init_retries; + union { + struct callback_head rcu; + struct work_struct work; + }; +}; + +struct io_wqe_acct { + unsigned int nr_workers; + unsigned int max_workers; + int index; + atomic_t nr_running; + struct io_wq_work_list work_list; + long unsigned int flags; +}; + +struct io_wqe { + raw_spinlock_t lock; + struct io_wqe_acct acct[2]; + int node; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq *wq; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; +}; + +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, +}; + +struct io_wq { + long unsigned int state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wqe *wqes[0]; +}; + +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; +}; + +struct online_data { + unsigned int cpu; + bool online; +}; typedef int (*cmp_r_func_t)(const void *, const void *, const void *); @@ -60716,15 +75041,12 @@ struct siprand_state { long unsigned int v3; }; -typedef __kernel_long_t __kernel_ptrdiff_t; - -typedef __kernel_ptrdiff_t ptrdiff_t; - struct region { unsigned int start; unsigned int off; unsigned int group_len; unsigned int end; + unsigned int nbits; }; enum { @@ -60733,6 +75055,12 @@ enum { REG_OP_RELEASE = 2, }; +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; +}; + typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); typedef void sg_free_fn(struct scatterlist *, unsigned int); @@ -60759,8 +75087,6 @@ struct sg_mapping_iter { unsigned int __flags; }; -typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); - struct csum_state { __wsum csum; size_t off; @@ -60830,6 +75156,7 @@ enum devm_ioremap_type { DEVM_IOREMAP = 0, DEVM_IOREMAP_UC = 1, DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, }; struct pcim_iomap_devres { @@ -60890,6 +75217,11 @@ struct linear_range { unsigned int step; }; +enum packing_op { + PACK = 0, + UNPACK = 1, +}; + struct xxh32_state { uint32_t total_len_32; uint32_t large_len; @@ -60929,10 +75261,6 @@ struct genpool_data_fixed { long unsigned int offset; }; -typedef struct z_stream_s z_stream; - -typedef z_stream *z_streamp; - typedef struct { unsigned char op; unsigned char bits; @@ -61012,17 +75340,17 @@ union uu { typedef unsigned int uInt; -struct inflate_workspace { - struct inflate_state inflate_state; - unsigned char working_window[32768]; -}; - typedef enum { CODES = 0, LENS = 1, DISTS = 2, } codetype; +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; +}; + typedef unsigned char uch; typedef short unsigned int ush; @@ -61156,52 +75484,6 @@ typedef struct config_s config; typedef struct tree_desc_s tree_desc; -typedef struct { - uint32_t hashTable[4096]; - uint32_t currentOffset; - uint32_t initCheck; - const uint8_t *dictionary; - uint8_t *bufferStart; - uint32_t dictSize; -} LZ4_stream_t_internal; - -typedef union { - long long unsigned int table[2052]; - LZ4_stream_t_internal internal_donotuse; -} LZ4_stream_t; - -typedef uint8_t BYTE; - -typedef uint16_t U16; - -typedef uint32_t U32; - -typedef uint64_t U64; - -typedef uintptr_t uptrval; - -typedef enum { - noLimit = 0, - limitedOutput = 1, -} limitedOutput_directive; - -typedef enum { - byPtr = 0, - byU32 = 1, - byU16 = 2, -} tableType_t; - -typedef enum { - noDict = 0, - withPrefix64k = 1, - usingExtDict = 2, -} dict_directive; - -typedef enum { - noDictIssue = 0, - dictSmall = 1, -} dictIssue_directive; - typedef struct { const uint8_t *externalDict; size_t extDictSize; @@ -61214,6 +75496,18 @@ typedef union { LZ4_streamDecode_t_internal internal_donotuse; } LZ4_streamDecode_t; +typedef uint16_t U16; + +typedef uint64_t U64; + +typedef uintptr_t uptrval; + +typedef enum { + noDict = 0, + withPrefix64k = 1, + usingExtDict = 2, +} dict_directive; + typedef enum { endOnOutputSize = 0, endOnInputSize = 1, @@ -61224,286 +75518,6 @@ typedef enum { partial_decode = 1, } earlyEnd_directive; -typedef struct { - size_t bitContainer; - int bitPos; - char *startPtr; - char *ptr; - char *endPtr; -} BIT_CStream_t; - -typedef unsigned int FSE_CTable; - -typedef struct { - ptrdiff_t value; - const void *stateTable; - const void *symbolTT; - unsigned int stateLog; -} FSE_CState_t; - -typedef struct { - int deltaFindState; - U32 deltaNbBits; -} FSE_symbolCompressionTransform; - -typedef int16_t S16; - -struct HUF_CElt_s { - U16 val; - BYTE nbBits; -}; - -typedef struct HUF_CElt_s HUF_CElt; - -typedef enum { - HUF_repeat_none = 0, - HUF_repeat_check = 1, - HUF_repeat_valid = 2, -} HUF_repeat; - -struct nodeElt_s { - U32 count; - U16 parent; - BYTE byte; - BYTE nbBits; -}; - -typedef struct nodeElt_s nodeElt; - -typedef struct { - U32 base; - U32 curr; -} rankPos; - -typedef enum { - ZSTD_fast = 0, - ZSTD_dfast = 1, - ZSTD_greedy = 2, - ZSTD_lazy = 3, - ZSTD_lazy2 = 4, - ZSTD_btlazy2 = 5, - ZSTD_btopt = 6, - ZSTD_btopt2 = 7, -} ZSTD_strategy; - -typedef struct { - unsigned int windowLog; - unsigned int chainLog; - unsigned int hashLog; - unsigned int searchLog; - unsigned int searchLength; - unsigned int targetLength; - ZSTD_strategy strategy; -} ZSTD_compressionParameters; - -typedef struct { - unsigned int contentSizeFlag; - unsigned int checksumFlag; - unsigned int noDictIDFlag; -} ZSTD_frameParameters; - -typedef struct { - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; -} ZSTD_parameters; - -typedef enum { - ZSTDcs_created = 0, - ZSTDcs_init = 1, - ZSTDcs_ongoing = 2, - ZSTDcs_ending = 3, -} ZSTD_compressionStage_e; - -typedef void * (*ZSTD_allocFunction)(void *, size_t); - -typedef void (*ZSTD_freeFunction)(void *, void *); - -typedef struct { - ZSTD_allocFunction customAlloc; - ZSTD_freeFunction customFree; - void *opaque; -} ZSTD_customMem; - -typedef struct { - U32 price; - U32 off; - U32 mlen; - U32 litlen; - U32 rep[3]; -} ZSTD_optimal_t; - -typedef struct { - U32 off; - U32 len; -} ZSTD_match_t; - -struct seqDef_s; - -typedef struct seqDef_s seqDef; - -typedef struct { - seqDef *sequencesStart; - seqDef *sequences; - BYTE *litStart; - BYTE *lit; - BYTE *llCode; - BYTE *mlCode; - BYTE *ofCode; - U32 longLengthID; - U32 longLengthPos; - ZSTD_optimal_t *priceTable; - ZSTD_match_t *matchTable; - U32 *matchLengthFreq; - U32 *litLengthFreq; - U32 *litFreq; - U32 *offCodeFreq; - U32 matchLengthSum; - U32 matchSum; - U32 litLengthSum; - U32 litSum; - U32 offCodeSum; - U32 log2matchLengthSum; - U32 log2matchSum; - U32 log2litLengthSum; - U32 log2litSum; - U32 log2offCodeSum; - U32 factor; - U32 staticPrices; - U32 cachedPrice; - U32 cachedLitLength; - const BYTE *cachedLiterals; -} seqStore_t; - -struct HUF_CElt_s; - -typedef struct HUF_CElt_s HUF_CElt___2; - -struct ZSTD_CCtx_s { - const BYTE *nextSrc; - const BYTE *base; - const BYTE *dictBase; - U32 dictLimit; - U32 lowLimit; - U32 nextToUpdate; - U32 nextToUpdate3; - U32 hashLog3; - U32 loadedDictEnd; - U32 forceWindow; - U32 forceRawDict; - ZSTD_compressionStage_e stage; - U32 rep[3]; - U32 repToConfirm[3]; - U32 dictID; - ZSTD_parameters params; - void *workSpace; - size_t workSpaceSize; - size_t blockSize; - U64 frameContentSize; - struct xxh64_state xxhState; - ZSTD_customMem customMem; - seqStore_t seqStore; - U32 *hashTable; - U32 *hashTable3; - U32 *chainTable; - HUF_CElt___2 *hufTable; - U32 flagStaticTables; - HUF_repeat flagStaticHufTable; - FSE_CTable offcodeCTable[187]; - FSE_CTable matchlengthCTable[363]; - FSE_CTable litlengthCTable[329]; - unsigned int tmpCounters[1536]; -}; - -typedef struct ZSTD_CCtx_s ZSTD_CCtx; - -struct ZSTD_CDict_s { - void *dictBuffer; - const void *dictContent; - size_t dictContentSize; - ZSTD_CCtx *refContext; -}; - -typedef struct ZSTD_CDict_s ZSTD_CDict; - -struct ZSTD_inBuffer_s { - const void *src; - size_t size; - size_t pos; -}; - -typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; - -struct ZSTD_outBuffer_s { - void *dst; - size_t size; - size_t pos; -}; - -typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; - -typedef enum { - zcss_init = 0, - zcss_load = 1, - zcss_flush = 2, - zcss_final = 3, -} ZSTD_cStreamStage; - -struct ZSTD_CStream_s { - ZSTD_CCtx *cctx; - ZSTD_CDict *cdictLocal; - const ZSTD_CDict *cdict; - char *inBuff; - size_t inBuffSize; - size_t inToCompress; - size_t inBuffPos; - size_t inBuffTarget; - size_t blockSize; - char *outBuff; - size_t outBuffSize; - size_t outBuffContentSize; - size_t outBuffFlushedSize; - ZSTD_cStreamStage stage; - U32 checksum; - U32 frameEnded; - U64 pledgedSrcSize; - U64 inputProcessed; - ZSTD_parameters params; - ZSTD_customMem customMem; -}; - -typedef struct ZSTD_CStream_s ZSTD_CStream; - -typedef int32_t S32; - -typedef enum { - set_basic = 0, - set_rle = 1, - set_compressed = 2, - set_repeat = 3, -} symbolEncodingType_e; - -struct seqDef_s { - U32 offset; - U16 litLength; - U16 matchLength; -}; - -typedef enum { - ZSTDcrp_continue = 0, - ZSTDcrp_noMemset = 1, - ZSTDcrp_fullReset = 2, -} ZSTD_compResetPolicy_e; - -typedef void (*ZSTD_blockCompressor)(ZSTD_CCtx *, const void *, size_t); - -typedef enum { - zsf_gather = 0, - zsf_flush = 1, - zsf_end = 2, -} ZSTD_flush_e; - -typedef size_t (*searchMax_f)(ZSTD_CCtx *, const BYTE *, const BYTE *, size_t *, U32, U32); - typedef struct { size_t bitContainer; unsigned int bitsConsumed; @@ -61518,29 +75532,6 @@ typedef enum { BIT_DStream_overflow = 3, } BIT_DStream_status; -typedef unsigned int FSE_DTable; - -typedef struct { - size_t state; - const void *table; -} FSE_DState_t; - -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; - -typedef struct { - short unsigned int newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; - -typedef struct { - void *ptr; - const void *end; -} ZSTD_stack; - typedef U32 HUF_DTable; typedef struct { @@ -61573,6 +75564,8 @@ typedef struct { U32 decode256Time; } algo_time_t; +typedef unsigned int FSE_DTable; + typedef struct { FSE_DTable LLTable[513]; FSE_DTable OFTable[257]; @@ -61582,13 +75575,6 @@ typedef struct { U32 rep[3]; } ZSTD_entropyTables_t; -typedef struct { - long long unsigned int frameContentSize; - unsigned int windowSize; - unsigned int dictID; - unsigned int checksumFlag; -} ZSTD_frameParams; - typedef enum { bt_raw = 0, bt_rle = 1, @@ -61634,8 +75620,6 @@ struct ZSTD_DCtx_s { BYTE headerBuffer[18]; }; -typedef struct ZSTD_DCtx_s ZSTD_DCtx; - struct ZSTD_DDict_s { void *dictBuffer; const void *dictContent; @@ -61646,42 +75630,6 @@ struct ZSTD_DDict_s { ZSTD_customMem cMem; }; -typedef struct ZSTD_DDict_s ZSTD_DDict; - -typedef enum { - zdss_init = 0, - zdss_loadHeader = 1, - zdss_read = 2, - zdss_load = 3, - zdss_flush = 4, -} ZSTD_dStreamStage; - -struct ZSTD_DStream_s { - ZSTD_DCtx *dctx; - ZSTD_DDict *ddictLocal; - const ZSTD_DDict *ddict; - ZSTD_frameParams fParams; - ZSTD_dStreamStage stage; - char *inBuff; - size_t inBuffSize; - size_t inPos; - size_t maxWindowSize; - char *outBuff; - size_t outBuffSize; - size_t outStart; - size_t outEnd; - size_t blockSize; - BYTE headerBuffer[18]; - size_t lhSize; - ZSTD_customMem customMem; - void *legacyContext; - U32 previousLegacyVersion; - U32 legacyVersion; - U32 hostageByte; -}; - -typedef struct ZSTD_DStream_s ZSTD_DStream; - typedef enum { ZSTDnit_frameHeader = 0, ZSTDnit_blockHeader = 1, @@ -61691,8 +75639,33 @@ typedef enum { ZSTDnit_skippableFrame = 5, } ZSTD_nextInputType_e; +typedef int16_t S16; + typedef uintptr_t uPtrDiff; +typedef struct { + size_t state; + const void *table; +} FSE_DState_t; + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; + +typedef struct { + short unsigned int newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; + +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; + typedef struct { blockType_e blockType; U32 lastBlock; @@ -61722,32 +75695,10 @@ typedef struct { uPtrDiff gotoDict; } seqState_t; -enum xz_mode { - XZ_SINGLE = 0, - XZ_PREALLOC = 1, - XZ_DYNALLOC = 2, -}; - -enum xz_ret { - XZ_OK = 0, - XZ_STREAM_END = 1, - XZ_UNSUPPORTED_CHECK = 2, - XZ_MEM_ERROR = 3, - XZ_MEMLIMIT_ERROR = 4, - XZ_FORMAT_ERROR = 5, - XZ_OPTIONS_ERROR = 6, - XZ_DATA_ERROR = 7, - XZ_BUF_ERROR = 8, -}; - -struct xz_buf { - const uint8_t *in; - size_t in_pos; - size_t in_size; - uint8_t *out; - size_t out_pos; - size_t out_size; -}; +typedef struct { + void *ptr; + const void *end; +} ZSTD_stack; typedef uint64_t vli_type; @@ -61946,7 +75897,7 @@ struct xz_dec_bcj { struct ts_state { unsigned int offset; - char cb[40]; + char cb[48]; }; struct ts_config; @@ -62145,10 +76096,6 @@ enum gcry_mpi_format { GCRYMPI_FMT_OPAQUE = 8, }; -struct barrett_ctx_s; - -typedef struct barrett_ctx_s *mpi_barrett_t___2; - struct barrett_ctx_s { MPI m; int m_copied; @@ -62247,6 +76194,7 @@ struct font_desc { const char *name; unsigned int width; unsigned int height; + unsigned int charcount; const void *data; int pref; }; @@ -62256,7 +76204,85 @@ struct font_data { const unsigned char data[0]; }; -typedef u16 ucs2_char_t; +enum { + type_kind_int = 0, + type_kind_float = 1, + type_unknown = 65535, +}; + +struct type_descriptor { + u16 type_kind; + u16 type_info; + char type_name[1]; +}; + +struct source_location { + const char *file_name; + union { + long unsigned int reported; + struct { + u32 line; + u32 column; + }; + }; +}; + +struct overflow_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct type_mismatch_data { + struct source_location location; + struct type_descriptor *type; + long unsigned int alignment; + unsigned char type_check_kind; +}; + +struct type_mismatch_data_v1 { + struct source_location location; + struct type_descriptor *type; + unsigned char log_alignment; + unsigned char type_check_kind; +}; + +struct type_mismatch_data_common { + struct source_location *location; + struct type_descriptor *type; + long unsigned int alignment; + unsigned char type_check_kind; +}; + +struct out_of_bounds_data { + struct source_location location; + struct type_descriptor *array_type; + struct type_descriptor *index_type; +}; + +struct shift_out_of_bounds_data { + struct source_location location; + struct type_descriptor *lhs_type; + struct type_descriptor *rhs_type; +}; + +struct unreachable_data { + struct source_location location; +}; + +struct invalid_value_data { + struct source_location location; + struct type_descriptor *type; +}; + +struct alignment_assumption_data { + struct source_location location; + struct source_location assumption_location; + struct type_descriptor *type; +}; + +typedef __int128 s_max; + +typedef __int128 unsigned u_max; struct pldmfw_record { struct list_head entry; @@ -62506,42 +76532,6 @@ struct cstate { uint32_t rep3; }; -struct xz_dec; - -typedef enum { - ZSTD_error_no_error = 0, - ZSTD_error_GENERIC = 1, - ZSTD_error_prefix_unknown = 2, - ZSTD_error_version_unsupported = 3, - ZSTD_error_parameter_unknown = 4, - ZSTD_error_frameParameter_unsupported = 5, - ZSTD_error_frameParameter_unsupportedBy32bits = 6, - ZSTD_error_frameParameter_windowTooLarge = 7, - ZSTD_error_compressionParameter_unsupported = 8, - ZSTD_error_init_missing = 9, - ZSTD_error_memory_allocation = 10, - ZSTD_error_stage_wrong = 11, - ZSTD_error_dstSize_tooSmall = 12, - ZSTD_error_srcSize_wrong = 13, - ZSTD_error_corruption_detected = 14, - ZSTD_error_checksum_wrong = 15, - ZSTD_error_tableLog_tooLarge = 16, - ZSTD_error_maxSymbolValue_tooLarge = 17, - ZSTD_error_maxSymbolValue_tooSmall = 18, - ZSTD_error_dictionary_corrupted = 19, - ZSTD_error_dictionary_wrong = 20, - ZSTD_error_dictionaryCreation_failed = 21, - ZSTD_error_maxCode = 22, -} ZSTD_ErrorCode; - -struct ZSTD_DCtx_s; - -typedef struct ZSTD_DCtx_s ZSTD_DCtx___2; - -struct ZSTD_DStream_s; - -typedef struct ZSTD_DStream_s ZSTD_DStream___2; - enum cpio_fields { C_MAGIC = 0, C_INO = 1, @@ -62607,10 +76597,28 @@ struct logic_pio_host_ops { void (*outs)(void *, long unsigned int, const void *, size_t, unsigned int); }; +struct radix_tree_preload { + unsigned int nr; + struct xa_node *nodes; +}; + typedef struct { long unsigned int key[2]; } hsiphash_key_t; +struct clk_core; + +struct clk { + struct clk_core *core; + struct device *dev; + const char *dev_id; + const char *con_id; + long unsigned int min_rate; + long unsigned int max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; +}; + enum format_type { FORMAT_TYPE_NONE = 0, FORMAT_TYPE_WIDTH = 1, @@ -62641,6 +76649,14 @@ struct printf_spec { int precision: 16; }; +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; +}; + struct minmax_sample { u32 t; u32 v; @@ -62663,8 +76679,6 @@ enum { st_wordskip___2 = 2, }; -struct in6_addr; - enum reg_type { REG_TYPE_RM = 0, REG_TYPE_REG = 1, @@ -62757,6 +76771,12 @@ enum phy_mode { PHY_MODE_DP = 19, }; +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, +}; + union phy_configure_opts { struct phy_configure_opts_mipi_dphy mipi_dphy; struct phy_configure_opts_dp dp; @@ -62770,6 +76790,8 @@ struct phy_ops { int (*power_on)(struct phy *); int (*power_off)(struct phy *); int (*set_mode)(struct phy *, enum phy_mode, int); + int (*set_media)(struct phy *, enum phy_media); + int (*set_speed)(struct phy *, int); int (*configure)(struct phy *, union phy_configure_opts *); int (*validate)(struct phy *, enum phy_mode, int, union phy_configure_opts *); int (*reset)(struct phy *); @@ -62853,8 +76875,8 @@ struct pinctrl_gpio_range { unsigned int id; unsigned int base; unsigned int pin_base; - const unsigned int *pins; unsigned int npins; + const unsigned int *pins; struct gpio_chip *gc; }; @@ -62873,11 +76895,15 @@ struct gpio_irq_chip { struct lock_class_key *lock_key; struct lock_class_key *request_key; irq_flow_handler_t parent_handler; - void *parent_handler_data; + union { + void *parent_handler_data; + void **parent_handler_data_array; + }; unsigned int num_parents; unsigned int *parents; unsigned int *map; bool threaded; + bool per_parent_data; int (*init_hw)(struct gpio_chip *); void (*init_valid_mask)(struct gpio_chip *, long unsigned int *, unsigned int); bool initialized; @@ -62912,6 +76938,7 @@ struct gpio_chip { int (*add_pin_ranges)(struct gpio_chip *); int base; u16 ngpio; + u16 offset; const char * const *names; bool can_sleep; long unsigned int (*read_reg)(void *); @@ -62924,7 +76951,7 @@ struct gpio_chip { void *reg_dir_in; bool bgpio_dir_unreadable; int bgpio_bits; - spinlock_t bgpio_lock; + raw_spinlock_t bgpio_lock; long unsigned int bgpio_data; long unsigned int bgpio_dir; struct gpio_irq_chip irq; @@ -63053,14 +77080,15 @@ enum pin_config_param { PIN_CONFIG_INPUT_ENABLE = 12, PIN_CONFIG_INPUT_SCHMITT = 13, PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, - PIN_CONFIG_LOW_POWER_MODE = 15, - PIN_CONFIG_OUTPUT_ENABLE = 16, + PIN_CONFIG_MODE_LOW_POWER = 15, + PIN_CONFIG_MODE_PWM = 16, PIN_CONFIG_OUTPUT = 17, - PIN_CONFIG_POWER_SOURCE = 18, - PIN_CONFIG_SLEEP_HARDWARE_STATE = 19, - PIN_CONFIG_SLEW_RATE = 20, + PIN_CONFIG_OUTPUT_ENABLE = 18, + PIN_CONFIG_PERSIST_STATE = 19, + PIN_CONFIG_POWER_SOURCE = 20, PIN_CONFIG_SKEW_DELAY = 21, - PIN_CONFIG_PERSIST_STATE = 22, + PIN_CONFIG_SLEEP_HARDWARE_STATE = 22, + PIN_CONFIG_SLEW_RATE = 23, PIN_CONFIG_END = 127, PIN_CONFIG_MAX = 255, }; @@ -63078,8 +77106,6 @@ struct pin_config_item { bool has_arg; }; -struct gpio_desc; - struct gpio_device { int id; struct device dev; @@ -63094,6 +77120,7 @@ struct gpio_device { void *data; struct list_head list; struct blocking_notifier_head notifier; + struct rw_semaphore sem; struct list_head pin_ranges; }; @@ -63163,6 +77190,375 @@ struct amd_gpio { struct resource *res; struct platform_device *pdev; u32 *saved_regs; + int irq; +}; + +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_COMPRESSED = 2, + REGCACHE_FLAT = 3, +}; + +struct reg_default { + unsigned int reg; + unsigned int def; +}; + +enum regmap_endian { + REGMAP_ENDIAN_DEFAULT = 0, + REGMAP_ENDIAN_BIG = 1, + REGMAP_ENDIAN_LITTLE = 2, + REGMAP_ENDIAN_NATIVE = 3, +}; + +struct regmap_range { + unsigned int range_min; + unsigned int range_max; +}; + +struct regmap_access_table { + const struct regmap_range *yes_ranges; + unsigned int n_yes_ranges; + const struct regmap_range *no_ranges; + unsigned int n_no_ranges; +}; + +typedef void (*regmap_lock)(void *); + +typedef void (*regmap_unlock)(void *); + +struct regmap_range_cfg; + +struct regmap_config { + const char *name; + int reg_bits; + int reg_stride; + int pad_bits; + int val_bits; + bool (*writeable_reg)(struct device *, unsigned int); + bool (*readable_reg)(struct device *, unsigned int); + bool (*volatile_reg)(struct device *, unsigned int); + bool (*precious_reg)(struct device *, unsigned int); + bool (*writeable_noinc_reg)(struct device *, unsigned int); + bool (*readable_noinc_reg)(struct device *, unsigned int); + bool disable_locking; + regmap_lock lock; + regmap_unlock unlock; + void *lock_arg; + int (*reg_read)(void *, unsigned int, unsigned int *); + int (*reg_write)(void *, unsigned int, unsigned int); + int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); + int (*read)(void *, const void *, size_t, void *, size_t); + int (*write)(void *, const void *, size_t); + size_t max_raw_read; + size_t max_raw_write; + bool fast_io; + unsigned int max_register; + const struct regmap_access_table *wr_table; + const struct regmap_access_table *rd_table; + const struct regmap_access_table *volatile_table; + const struct regmap_access_table *precious_table; + const struct regmap_access_table *wr_noinc_table; + const struct regmap_access_table *rd_noinc_table; + const struct reg_default *reg_defaults; + unsigned int num_reg_defaults; + enum regcache_type cache_type; + const void *reg_defaults_raw; + unsigned int num_reg_defaults_raw; + long unsigned int read_flag_mask; + long unsigned int write_flag_mask; + bool zero_flag_mask; + bool use_single_read; + bool use_single_write; + bool use_relaxed_mmio; + bool can_multi_write; + enum regmap_endian reg_format_endian; + enum regmap_endian val_format_endian; + const struct regmap_range_cfg *ranges; + unsigned int num_ranges; + bool use_hwlock; + bool use_raw_spinlock; + unsigned int hwlock_id; + unsigned int hwlock_mode; + bool can_sleep; +}; + +struct regmap_range_cfg { + const char *name; + unsigned int range_min; + unsigned int range_max; + unsigned int selector_reg; + unsigned int selector_mask; + int selector_shift; + unsigned int window_start; + unsigned int window_len; +}; + +typedef int (*regmap_hw_write)(void *, const void *, size_t); + +typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); + +struct regmap_async; + +typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); + +typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t); + +typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *); + +typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); + +typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); + +typedef struct regmap_async * (*regmap_hw_async_alloc)(void); + +typedef void (*regmap_hw_free_context)(void *); + +struct regmap_bus { + bool fast_io; + regmap_hw_write write; + regmap_hw_gather_write gather_write; + regmap_hw_async_write async_write; + regmap_hw_reg_write reg_write; + regmap_hw_reg_update_bits reg_update_bits; + regmap_hw_read read; + regmap_hw_reg_read reg_read; + regmap_hw_free_context free_context; + regmap_hw_async_alloc async_alloc; + u8 read_flag_mask; + enum regmap_endian reg_format_endian_default; + enum regmap_endian val_format_endian_default; + size_t max_raw_read; + size_t max_raw_write; + bool free_on_exit; +}; + +struct i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +struct software_node { + const char *name; + const struct software_node *parent; + const struct property_entry *properties; +}; + +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; +}; + +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; +}; + +struct i2c_adapter; + +struct i2c_client { + short unsigned int flags; + short unsigned int addr; + char name[20]; + struct i2c_adapter *adapter; + struct device dev; + int init_irq; + int irq; + struct list_head detected; + void *devres_group_id; +}; + +enum i2c_alert_protocol { + I2C_PROTOCOL_SMBUS_ALERT = 0, + I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, +}; + +struct i2c_board_info; + +struct i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *, const struct i2c_device_id *); + int (*remove)(struct i2c_client *); + int (*probe_new)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const short unsigned int *address_list; + struct list_head clients; +}; + +struct i2c_board_info { + char type[20]; + short unsigned int flags; + short unsigned int addr; + const char *dev_name; + void *platform_data; + struct device_node *of_node; + struct fwnode_handle *fwnode; + const struct software_node *swnode; + const struct resource *resources; + unsigned int num_resources; + int irq; +}; + +struct i2c_algorithm; + +struct i2c_lock_operations; + +struct i2c_bus_recovery_info; + +struct i2c_adapter_quirks; + +struct i2c_adapter { + struct module *owner; + unsigned int class; + const struct i2c_algorithm *algo; + void *algo_data; + const struct i2c_lock_operations *lock_ops; + struct rt_mutex bus_lock; + struct rt_mutex mux_lock; + int timeout; + int retries; + struct device dev; + long unsigned int locked_flags; + int nr; + char name[48]; + struct completion dev_released; + struct mutex userspace_clients_lock; + struct list_head userspace_clients; + struct i2c_bus_recovery_info *bus_recovery_info; + const struct i2c_adapter_quirks *quirks; + struct irq_domain *host_notify_domain; + struct regulator *bus_regulator; + struct dentry *debugfs; + long unsigned int addrs_in_instantiation[2]; +}; + +struct i2c_algorithm { + int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int); + int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int); + int (*smbus_xfer)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *); + int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *); + u32 (*functionality)(struct i2c_adapter *); +}; + +struct i2c_lock_operations { + void (*lock_bus)(struct i2c_adapter *, unsigned int); + int (*trylock_bus)(struct i2c_adapter *, unsigned int); + void (*unlock_bus)(struct i2c_adapter *, unsigned int); +}; + +struct i2c_bus_recovery_info { + int (*recover_bus)(struct i2c_adapter *); + int (*get_scl)(struct i2c_adapter *); + void (*set_scl)(struct i2c_adapter *, int); + int (*get_sda)(struct i2c_adapter *); + void (*set_sda)(struct i2c_adapter *, int); + int (*get_bus_free)(struct i2c_adapter *); + void (*prepare_recovery)(struct i2c_adapter *); + void (*unprepare_recovery)(struct i2c_adapter *); + struct gpio_desc *scl_gpiod; + struct gpio_desc *sda_gpiod; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_gpio; +}; + +struct i2c_adapter_quirks { + u64 flags; + int max_num_msgs; + u16 max_write_len; + u16 max_read_len; + u16 max_comb_1st_msg_len; + u16 max_comb_2nd_msg_len; +}; + +enum { + SX150X_123 = 0, + SX150X_456 = 1, + SX150X_789 = 2, +}; + +enum { + SX150X_789_REG_MISC_AUTOCLEAR_OFF = 1, + SX150X_MAX_REGISTER = 173, + SX150X_IRQ_TYPE_EDGE_RISING = 1, + SX150X_IRQ_TYPE_EDGE_FALLING = 2, + SX150X_789_RESET_KEY1 = 18, + SX150X_789_RESET_KEY2 = 52, +}; + +struct sx150x_123_pri { + u8 reg_pld_mode; + u8 reg_pld_table0; + u8 reg_pld_table1; + u8 reg_pld_table2; + u8 reg_pld_table3; + u8 reg_pld_table4; + u8 reg_advanced; +}; + +struct sx150x_456_pri { + u8 reg_pld_mode; + u8 reg_pld_table0; + u8 reg_pld_table1; + u8 reg_pld_table2; + u8 reg_pld_table3; + u8 reg_pld_table4; + u8 reg_advanced; +}; + +struct sx150x_789_pri { + u8 reg_drain; + u8 reg_polarity; + u8 reg_clock; + u8 reg_misc; + u8 reg_reset; + u8 ngpios; +}; + +struct sx150x_device_data { + u8 model; + u8 reg_pullup; + u8 reg_pulldn; + u8 reg_dir; + u8 reg_data; + u8 reg_irq_mask; + u8 reg_irq_src; + u8 reg_sense; + u8 ngpios; + union { + struct sx150x_123_pri x123; + struct sx150x_456_pri x456; + struct sx150x_789_pri x789; + } pri; + const struct pinctrl_pin_desc *pins; + unsigned int npins; +}; + +struct regmap; + +struct sx150x_pinctrl { + struct device *dev; + struct i2c_client *client; + struct pinctrl_dev *pctldev; + struct pinctrl_desc pinctrl_desc; + struct gpio_chip gpio; + struct irq_chip irq_chip; + struct regmap *regmap; + struct { + u32 sense; + u32 masked; + } irq; + struct mutex lock; + const struct sx150x_device_data *data; }; struct intel_pingroup { @@ -63248,279 +77644,9 @@ struct intel_pinctrl { int irq; }; -typedef u64 acpi_io_address; +typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); -typedef u32 acpi_object_type; - -union acpi_object { - acpi_object_type type; - struct { - acpi_object_type type; - u64 value; - } integer; - struct { - acpi_object_type type; - u32 length; - char *pointer; - } string; - struct { - acpi_object_type type; - u32 length; - u8 *pointer; - } buffer; - struct { - acpi_object_type type; - u32 count; - union acpi_object *elements; - } package; - struct { - acpi_object_type type; - acpi_object_type actual_type; - acpi_handle handle; - } reference; - struct { - acpi_object_type type; - u32 proc_id; - acpi_io_address pblk_address; - u32 pblk_length; - } processor; - struct { - acpi_object_type type; - u32 system_level; - u32 resource_order; - } power_resource; -}; - -struct acpi_hotplug_profile { - struct kobject kobj; - int (*scan_dependent)(struct acpi_device *); - void (*notify_online)(struct acpi_device *); - bool enabled: 1; - bool demand_offline: 1; -}; - -struct acpi_device_status { - u32 present: 1; - u32 enabled: 1; - u32 show_in_ui: 1; - u32 functional: 1; - u32 battery_present: 1; - u32 reserved: 27; -}; - -struct acpi_device_flags { - u32 dynamic_status: 1; - u32 removable: 1; - u32 ejectable: 1; - u32 power_manageable: 1; - u32 match_driver: 1; - u32 initialized: 1; - u32 visited: 1; - u32 hotplug_notify: 1; - u32 is_dock_station: 1; - u32 of_compatible_ok: 1; - u32 coherent_dma: 1; - u32 cca_seen: 1; - u32 enumeration_by_parent: 1; - u32 reserved: 19; -}; - -typedef char acpi_bus_id[8]; - -struct acpi_pnp_type { - u32 hardware_id: 1; - u32 bus_address: 1; - u32 platform_id: 1; - u32 reserved: 29; -}; - -typedef u64 acpi_bus_address; - -typedef char acpi_device_name[40]; - -typedef char acpi_device_class[20]; - -struct acpi_device_pnp { - acpi_bus_id bus_id; - int instance_no; - struct acpi_pnp_type type; - acpi_bus_address bus_address; - char *unique_id; - struct list_head ids; - acpi_device_name device_name; - acpi_device_class device_class; - union acpi_object *str_obj; -}; - -struct acpi_device_power_flags { - u32 explicit_get: 1; - u32 power_resources: 1; - u32 inrush_current: 1; - u32 power_removed: 1; - u32 ignore_parent: 1; - u32 dsw_present: 1; - u32 reserved: 26; -}; - -struct acpi_device_power_state { - struct { - u8 valid: 1; - u8 explicit_set: 1; - u8 reserved: 6; - } flags; - int power; - int latency; - struct list_head resources; -}; - -struct acpi_device_power { - int state; - struct acpi_device_power_flags flags; - struct acpi_device_power_state states[5]; -}; - -struct acpi_device_wakeup_flags { - u8 valid: 1; - u8 notifier_present: 1; -}; - -struct acpi_device_wakeup_context { - void (*func)(struct acpi_device_wakeup_context *); - struct device *dev; -}; - -struct acpi_device_wakeup { - acpi_handle gpe_device; - u64 gpe_number; - u64 sleep_state; - struct list_head resources; - struct acpi_device_wakeup_flags flags; - struct acpi_device_wakeup_context context; - struct wakeup_source *ws; - int prepare_count; - int enable_count; -}; - -struct acpi_device_perf_flags { - u8 reserved: 8; -}; - -struct acpi_device_perf_state; - -struct acpi_device_perf { - int state; - struct acpi_device_perf_flags flags; - int state_count; - struct acpi_device_perf_state *states; -}; - -struct acpi_device_dir { - struct proc_dir_entry *entry; -}; - -struct acpi_device_data { - const union acpi_object *pointer; - struct list_head properties; - const union acpi_object *of_compatible; - struct list_head subnodes; -}; - -struct acpi_scan_handler; - -struct acpi_hotplug_context; - -struct acpi_driver; - -struct acpi_gpio_mapping; - -struct acpi_device { - int device_type; - acpi_handle handle; - struct fwnode_handle fwnode; - struct acpi_device *parent; - struct list_head children; - struct list_head node; - struct list_head wakeup_list; - struct list_head del_list; - struct acpi_device_status status; - struct acpi_device_flags flags; - struct acpi_device_pnp pnp; - struct acpi_device_power power; - struct acpi_device_wakeup wakeup; - struct acpi_device_perf performance; - struct acpi_device_dir dir; - struct acpi_device_data data; - struct acpi_scan_handler *handler; - struct acpi_hotplug_context *hp; - struct acpi_driver *driver; - const struct acpi_gpio_mapping *driver_gpios; - void *driver_data; - struct device dev; - unsigned int physical_node_count; - unsigned int dep_unmet; - struct list_head physical_node_list; - struct mutex physical_node_lock; - void (*remove)(struct acpi_device *); -}; - -struct acpi_scan_handler { - const struct acpi_device_id *ids; - struct list_head list_node; - bool (*match)(const char *, const struct acpi_device_id **); - int (*attach)(struct acpi_device *, const struct acpi_device_id *); - void (*detach)(struct acpi_device *); - void (*bind)(struct device *); - void (*unbind)(struct device *); - struct acpi_hotplug_profile hotplug; -}; - -struct acpi_hotplug_context { - struct acpi_device *self; - int (*notify)(struct acpi_device *, u32); - void (*uevent)(struct acpi_device *, u32); - void (*fixup)(struct acpi_device *); -}; - -typedef int (*acpi_op_add)(struct acpi_device *); - -typedef int (*acpi_op_remove)(struct acpi_device *); - -typedef void (*acpi_op_notify)(struct acpi_device *, u32); - -struct acpi_device_ops { - acpi_op_add add; - acpi_op_remove remove; - acpi_op_notify notify; -}; - -struct acpi_driver { - char name[80]; - char class[80]; - const struct acpi_device_id *ids; - unsigned int flags; - struct acpi_device_ops ops; - struct device_driver drv; - struct module *owner; -}; - -struct acpi_device_perf_state { - struct { - u8 valid: 1; - u8 reserved: 7; - } flags; - u8 power; - u8 performance; - int latency; -}; - -struct acpi_gpio_params; - -struct acpi_gpio_mapping { - const char *name; - const struct acpi_gpio_params *data; - unsigned int size; - unsigned int quirks; -}; +typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); struct intel_pad_context___2; @@ -63634,12 +77760,6 @@ enum gpiod_flags { GPIOD_OUT_HIGH_OPEN_DRAIN = 15, }; -struct acpi_gpio_params { - unsigned int crs_entry_index; - unsigned int line_index; - bool active_low; -}; - enum gpio_lookup_flags { GPIO_ACTIVE_HIGH = 0, GPIO_ACTIVE_LOW = 1, @@ -63688,6 +77808,7 @@ struct acpi_gpio_info { int pin_config; int polarity; int triggering; + unsigned int debounce; unsigned int quirks; }; @@ -63715,8 +77836,6 @@ typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); -struct devres; - struct gpio { unsigned int gpio; long unsigned int flags; @@ -63741,6 +77860,7 @@ enum gpio_v2_line_flag { GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, }; struct gpio_v2_line_values { @@ -63869,6 +77989,12 @@ struct gpioevent_data { __u32 id; }; +typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); + +typedef long int (*ioctl_fn)(struct file *, unsigned int, long unsigned int); + +typedef ssize_t (*read_fn)(struct file *, char *, size_t, loff_t *); + struct linehandle_state { struct gpio_device *gdev; const char *label; @@ -63968,6 +78094,15 @@ struct gpiod_data { bool direction_can_change; }; +typedef u64 acpi_size; + +struct acpi_buffer { + acpi_size length; + void *pointer; +}; + +typedef void (*acpi_object_handler)(acpi_handle, void *); + struct acpi_connection_info { u8 *connection; u16 length; @@ -64273,6 +78408,21 @@ struct acpi_resource_uart_serialbus { u32 default_baud_rate; } __attribute__((packed)); +struct acpi_resource_csi2_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 local_port_instance; + u8 phy_type; +} __attribute__((packed)); + struct acpi_resource_pin_function { u8 revision_id; u8 pin_config; @@ -64354,6 +78504,7 @@ union acpi_resource_data { struct acpi_resource_i2c_serialbus i2c_serial_bus; struct acpi_resource_spi_serialbus spi_serial_bus; struct acpi_resource_uart_serialbus uart_serial_bus; + struct acpi_resource_csi2_serialbus csi2_serial_bus; struct acpi_resource_common_serialbus common_serial_bus; struct acpi_resource_pin_function pin_function; struct acpi_resource_pin_config pin_config; @@ -64369,6 +78520,8 @@ struct acpi_resource { union acpi_resource_data data; }; +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); + struct acpi_gpiolib_dmi_quirk { bool no_edge_events_on_boot; char *ignore_wake; @@ -64404,12 +78557,758 @@ struct acpi_gpio_chip { struct acpi_gpio_lookup { struct acpi_gpio_info info; int index; - int pin_index; + u16 pin_index; bool active_low; struct gpio_desc *desc; int n; }; +struct regmap_irq_chip_data; + +struct intel_scu_ipc_dev; + +struct intel_soc_pmic { + int irq; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_chip_data; + struct regmap_irq_chip_data *irq_chip_data_pwrbtn; + struct regmap_irq_chip_data *irq_chip_data_tmu; + struct regmap_irq_chip_data *irq_chip_data_bcu; + struct regmap_irq_chip_data *irq_chip_data_adc; + struct regmap_irq_chip_data *irq_chip_data_chgr; + struct regmap_irq_chip_data *irq_chip_data_crit; + struct device *dev; + struct intel_scu_ipc_dev *scu; +}; + +enum ctrl_register { + CTRL_IN = 0, + CTRL_OUT = 1, +}; + +struct crystalcove_gpio { + struct mutex buslock; + struct gpio_chip chip; + struct regmap *regmap; + int update; + int intcnt_value; + bool set_irq_mask; +}; + +struct regulator_dev; + +struct regulator_ops { + int (*list_voltage)(struct regulator_dev *, unsigned int); + int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); + int (*map_voltage)(struct regulator_dev *, int, int); + int (*set_voltage_sel)(struct regulator_dev *, unsigned int); + int (*get_voltage)(struct regulator_dev *); + int (*get_voltage_sel)(struct regulator_dev *); + int (*set_current_limit)(struct regulator_dev *, int, int); + int (*get_current_limit)(struct regulator_dev *); + int (*set_input_current_limit)(struct regulator_dev *, int); + int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); + int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); + int (*set_active_discharge)(struct regulator_dev *, bool); + int (*enable)(struct regulator_dev *); + int (*disable)(struct regulator_dev *); + int (*is_enabled)(struct regulator_dev *); + int (*set_mode)(struct regulator_dev *, unsigned int); + unsigned int (*get_mode)(struct regulator_dev *); + int (*get_error_flags)(struct regulator_dev *, unsigned int *); + int (*enable_time)(struct regulator_dev *); + int (*set_ramp_delay)(struct regulator_dev *, int); + int (*set_voltage_time)(struct regulator_dev *, int, int); + int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); + int (*set_soft_start)(struct regulator_dev *); + int (*get_status)(struct regulator_dev *); + unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); + int (*set_load)(struct regulator_dev *, int); + int (*set_bypass)(struct regulator_dev *, bool); + int (*get_bypass)(struct regulator_dev *, bool *); + int (*set_suspend_voltage)(struct regulator_dev *, int); + int (*set_suspend_enable)(struct regulator_dev *); + int (*set_suspend_disable)(struct regulator_dev *); + int (*set_suspend_mode)(struct regulator_dev *, unsigned int); + int (*resume)(struct regulator_dev *); + int (*set_pull_down)(struct regulator_dev *); +}; + +struct regulator_coupler; + +struct coupling_desc { + struct regulator_dev **coupled_rdevs; + struct regulator_coupler *coupler; + int n_resolved; + int n_coupled; +}; + +struct regulator_desc; + +struct regulation_constraints; + +struct regulator_enable_gpio; + +struct regulator_dev { + const struct regulator_desc *desc; + int exclusive; + u32 use_count; + u32 open_count; + u32 bypass_count; + struct list_head list; + struct list_head consumer_list; + struct coupling_desc coupling_desc; + struct blocking_notifier_head notifier; + struct ww_mutex mutex; + struct task_struct *mutex_owner; + int ref_cnt; + struct module *owner; + struct device dev; + struct regulation_constraints *constraints; + struct regulator *supply; + const char *supply_name; + struct regmap *regmap; + struct delayed_work disable_work; + void *reg_data; + struct dentry *debugfs; + struct regulator_enable_gpio *ena_pin; + unsigned int ena_gpio_state: 1; + unsigned int is_switch: 1; + ktime_t last_off; + int cached_err; + bool use_cached_err; + spinlock_t err_lock; +}; + +enum regulator_type { + REGULATOR_VOLTAGE = 0, + REGULATOR_CURRENT = 1, +}; + +struct regulator_config; + +struct regulator_desc { + const char *name; + const char *supply_name; + const char *of_match; + bool of_match_full_name; + const char *regulators_node; + int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); + int id; + unsigned int continuous_voltage_range: 1; + unsigned int n_voltages; + unsigned int n_current_limits; + const struct regulator_ops *ops; + int irq; + enum regulator_type type; + struct module *owner; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + int fixed_uV; + unsigned int ramp_delay; + int min_dropout_uV; + const struct linear_range *linear_ranges; + const unsigned int *linear_range_selectors; + int n_linear_ranges; + const unsigned int *volt_table; + const unsigned int *curr_table; + unsigned int vsel_range_reg; + unsigned int vsel_range_mask; + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int vsel_step; + unsigned int csel_reg; + unsigned int csel_mask; + unsigned int apply_reg; + unsigned int apply_bit; + unsigned int enable_reg; + unsigned int enable_mask; + unsigned int enable_val; + unsigned int disable_val; + bool enable_is_inverted; + unsigned int bypass_reg; + unsigned int bypass_mask; + unsigned int bypass_val_on; + unsigned int bypass_val_off; + unsigned int active_discharge_on; + unsigned int active_discharge_off; + unsigned int active_discharge_mask; + unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; + unsigned int pull_down_reg; + unsigned int pull_down_mask; + unsigned int pull_down_val_on; + unsigned int ramp_reg; + unsigned int ramp_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int enable_time; + unsigned int off_on_delay; + unsigned int poll_enabled_time; + unsigned int (*of_map_mode)(unsigned int); +}; + +struct regulator_init_data; + +struct regulator_config { + struct device *dev; + const struct regulator_init_data *init_data; + void *driver_data; + struct device_node *of_node; + struct regmap *regmap; + struct gpio_desc *ena_gpiod; +}; + +struct regulator_state { + int uV; + int min_uV; + int max_uV; + unsigned int mode; + int enabled; + bool changeable; +}; + +struct notification_limit { + int prot; + int err; + int warn; +}; + +struct regulation_constraints { + const char *name; + int min_uV; + int max_uV; + int uV_offset; + int min_uA; + int max_uA; + int ilim_uA; + int system_load; + u32 *max_spread; + int max_uV_step; + unsigned int valid_modes_mask; + unsigned int valid_ops_mask; + int input_uV; + struct regulator_state state_disk; + struct regulator_state state_mem; + struct regulator_state state_standby; + struct notification_limit over_curr_limits; + struct notification_limit over_voltage_limits; + struct notification_limit under_voltage_limits; + struct notification_limit temp_limits; + suspend_state_t initial_state; + unsigned int initial_mode; + unsigned int ramp_delay; + unsigned int settling_time; + unsigned int settling_time_up; + unsigned int settling_time_down; + unsigned int enable_time; + unsigned int active_discharge; + unsigned int always_on: 1; + unsigned int boot_on: 1; + unsigned int apply_uV: 1; + unsigned int ramp_disable: 1; + unsigned int soft_start: 1; + unsigned int pull_down: 1; + unsigned int over_current_protection: 1; + unsigned int over_current_detection: 1; + unsigned int over_voltage_detection: 1; + unsigned int under_voltage_detection: 1; + unsigned int over_temp_detection: 1; +}; + +struct regulator_consumer_supply; + +struct regulator_init_data { + const char *supply_regulator; + struct regulation_constraints constraints; + int num_consumer_supplies; + struct regulator_consumer_supply *consumer_supplies; + int (*regulator_init)(void *); + void *driver_data; +}; + +enum palmas_usb_state { + PALMAS_USB_STATE_DISCONNECT = 0, + PALMAS_USB_STATE_VBUS = 1, + PALMAS_USB_STATE_ID = 2, +}; + +struct palmas_gpadc; + +struct palmas_pmic_driver_data; + +struct palmas_pmic; + +struct palmas_resource; + +struct palmas_usb; + +struct palmas { + struct device *dev; + struct i2c_client *i2c_clients[3]; + struct regmap *regmap[3]; + int id; + unsigned int features; + int irq; + u32 irq_mask; + struct mutex irq_lock; + struct regmap_irq_chip_data *irq_data; + struct palmas_pmic_driver_data *pmic_ddata; + struct palmas_pmic *pmic; + struct palmas_gpadc *gpadc; + struct palmas_resource *resource; + struct palmas_usb *usb; + u8 gpio_muxed; + u8 led_muxed; + u8 pwm_muxed; +}; + +struct of_regulator_match; + +struct palmas_regs_info; + +struct palmas_sleep_requestor_info; + +struct palmas_pmic_platform_data; + +struct palmas_pmic_driver_data { + int smps_start; + int smps_end; + int ldo_begin; + int ldo_end; + int max_reg; + bool has_regen3; + struct palmas_regs_info *palmas_regs_info; + struct of_regulator_match *palmas_matches; + struct palmas_sleep_requestor_info *sleep_req_info; + int (*smps_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); + int (*ldo_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); +}; + +struct palmas_pmic { + struct palmas *palmas; + struct device *dev; + struct regulator_desc desc[27]; + struct mutex mutex; + int smps123; + int smps457; + int smps12; + int range[10]; + unsigned int ramp_delay[10]; + unsigned int current_reg_mode[10]; +}; + +struct palmas_resource { + struct palmas *palmas; + struct device *dev; +}; + +struct extcon_dev; + +struct palmas_usb { + struct palmas *palmas; + struct device *dev; + struct extcon_dev *edev; + int id_otg_irq; + int id_irq; + int vbus_otg_irq; + int vbus_irq; + int gpio_id_irq; + int gpio_vbus_irq; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + long unsigned int sw_debounce_jiffies; + struct delayed_work wq_detectid; + enum palmas_usb_state linkstat; + int wakeup; + bool enable_vbus_detection; + bool enable_id_detection; + bool enable_gpio_id_detection; + bool enable_gpio_vbus_detection; +}; + +struct palmas_sleep_requestor_info { + int id; + int reg_offset; + int bit_pos; +}; + +struct palmas_regs_info { + char *name; + char *sname; + u8 vsel_addr; + u8 ctrl_addr; + u8 tstep_addr; + int sleep_id; +}; + +struct palmas_reg_init; + +struct palmas_pmic_platform_data { + struct regulator_init_data *reg_data[27]; + struct palmas_reg_init *reg_init[27]; + int ldo6_vibrator; + bool enable_ldo8_tracking; +}; + +struct palmas_adc_wakeup_property { + int adc_channel_number; + int adc_high_threshold; + int adc_low_threshold; +}; + +struct palmas_gpadc_platform_data { + int ch3_current; + int ch0_current; + bool extended_delay; + int bat_removal; + int start_polarity; + int auto_conversion_period_ms; + struct palmas_adc_wakeup_property *adc_wakeup1_data; + struct palmas_adc_wakeup_property *adc_wakeup2_data; +}; + +struct palmas_reg_init { + int warm_reset; + int roof_floor; + int mode_sleep; + u8 vsel; +}; + +enum palmas_regulators { + PALMAS_REG_SMPS12 = 0, + PALMAS_REG_SMPS123 = 1, + PALMAS_REG_SMPS3 = 2, + PALMAS_REG_SMPS45 = 3, + PALMAS_REG_SMPS457 = 4, + PALMAS_REG_SMPS6 = 5, + PALMAS_REG_SMPS7 = 6, + PALMAS_REG_SMPS8 = 7, + PALMAS_REG_SMPS9 = 8, + PALMAS_REG_SMPS10_OUT2 = 9, + PALMAS_REG_SMPS10_OUT1 = 10, + PALMAS_REG_LDO1 = 11, + PALMAS_REG_LDO2 = 12, + PALMAS_REG_LDO3 = 13, + PALMAS_REG_LDO4 = 14, + PALMAS_REG_LDO5 = 15, + PALMAS_REG_LDO6 = 16, + PALMAS_REG_LDO7 = 17, + PALMAS_REG_LDO8 = 18, + PALMAS_REG_LDO9 = 19, + PALMAS_REG_LDOLN = 20, + PALMAS_REG_LDOUSB = 21, + PALMAS_REG_REGEN1 = 22, + PALMAS_REG_REGEN2 = 23, + PALMAS_REG_REGEN3 = 24, + PALMAS_REG_SYSEN1 = 25, + PALMAS_REG_SYSEN2 = 26, + PALMAS_NUM_REGS = 27, +}; + +struct palmas_usb_platform_data { + int wakeup; +}; + +struct palmas_resource_platform_data { + int regen1_mode_sleep; + int regen2_mode_sleep; + int sysen1_mode_sleep; + int sysen2_mode_sleep; + u8 nsleep_res; + u8 nsleep_smps; + u8 nsleep_ldo1; + u8 nsleep_ldo2; + u8 enable1_res; + u8 enable1_smps; + u8 enable1_ldo1; + u8 enable1_ldo2; + u8 enable2_res; + u8 enable2_smps; + u8 enable2_ldo1; + u8 enable2_ldo2; +}; + +struct palmas_clk_platform_data { + int clk32kg_mode_sleep; + int clk32kgaudio_mode_sleep; +}; + +struct palmas_platform_data { + int irq_flags; + int gpio_base; + u8 power_ctrl; + int mux_from_pdata; + u8 pad1; + u8 pad2; + bool pm_off; + struct palmas_pmic_platform_data *pmic_pdata; + struct palmas_gpadc_platform_data *gpadc_pdata; + struct palmas_usb_platform_data *usb_pdata; + struct palmas_resource_platform_data *resource_pdata; + struct palmas_clk_platform_data *clk_pdata; +}; + +enum palmas_irqs { + PALMAS_CHARG_DET_N_VBUS_OVV_IRQ = 0, + PALMAS_PWRON_IRQ = 1, + PALMAS_LONG_PRESS_KEY_IRQ = 2, + PALMAS_RPWRON_IRQ = 3, + PALMAS_PWRDOWN_IRQ = 4, + PALMAS_HOTDIE_IRQ = 5, + PALMAS_VSYS_MON_IRQ = 6, + PALMAS_VBAT_MON_IRQ = 7, + PALMAS_RTC_ALARM_IRQ = 8, + PALMAS_RTC_TIMER_IRQ = 9, + PALMAS_WDT_IRQ = 10, + PALMAS_BATREMOVAL_IRQ = 11, + PALMAS_RESET_IN_IRQ = 12, + PALMAS_FBI_BB_IRQ = 13, + PALMAS_SHORT_IRQ = 14, + PALMAS_VAC_ACOK_IRQ = 15, + PALMAS_GPADC_AUTO_0_IRQ = 16, + PALMAS_GPADC_AUTO_1_IRQ = 17, + PALMAS_GPADC_EOC_SW_IRQ = 18, + PALMAS_GPADC_EOC_RT_IRQ = 19, + PALMAS_ID_OTG_IRQ = 20, + PALMAS_ID_IRQ = 21, + PALMAS_VBUS_OTG_IRQ = 22, + PALMAS_VBUS_IRQ = 23, + PALMAS_GPIO_0_IRQ = 24, + PALMAS_GPIO_1_IRQ = 25, + PALMAS_GPIO_2_IRQ = 26, + PALMAS_GPIO_3_IRQ = 27, + PALMAS_GPIO_4_IRQ = 28, + PALMAS_GPIO_5_IRQ = 29, + PALMAS_GPIO_6_IRQ = 30, + PALMAS_GPIO_7_IRQ = 31, + PALMAS_NUM_IRQ = 32, +}; + +struct palmas_gpio { + struct gpio_chip gpio_chip; + struct palmas *palmas; +}; + +struct palmas_device_data { + int ngpio; +}; + +enum { + RC5T583_IRQ_ONKEY = 0, + RC5T583_IRQ_ACOK = 1, + RC5T583_IRQ_LIDOPEN = 2, + RC5T583_IRQ_PREOT = 3, + RC5T583_IRQ_CLKSTP = 4, + RC5T583_IRQ_ONKEY_OFF = 5, + RC5T583_IRQ_WD = 6, + RC5T583_IRQ_EN_PWRREQ1 = 7, + RC5T583_IRQ_EN_PWRREQ2 = 8, + RC5T583_IRQ_PRE_VINDET = 9, + RC5T583_IRQ_DC0LIM = 10, + RC5T583_IRQ_DC1LIM = 11, + RC5T583_IRQ_DC2LIM = 12, + RC5T583_IRQ_DC3LIM = 13, + RC5T583_IRQ_CTC = 14, + RC5T583_IRQ_YALE = 15, + RC5T583_IRQ_DALE = 16, + RC5T583_IRQ_WALE = 17, + RC5T583_IRQ_AIN1L = 18, + RC5T583_IRQ_AIN2L = 19, + RC5T583_IRQ_AIN3L = 20, + RC5T583_IRQ_VBATL = 21, + RC5T583_IRQ_VIN3L = 22, + RC5T583_IRQ_VIN8L = 23, + RC5T583_IRQ_AIN1H = 24, + RC5T583_IRQ_AIN2H = 25, + RC5T583_IRQ_AIN3H = 26, + RC5T583_IRQ_VBATH = 27, + RC5T583_IRQ_VIN3H = 28, + RC5T583_IRQ_VIN8H = 29, + RC5T583_IRQ_ADCEND = 30, + RC5T583_IRQ_GPIO0 = 31, + RC5T583_IRQ_GPIO1 = 32, + RC5T583_IRQ_GPIO2 = 33, + RC5T583_IRQ_GPIO3 = 34, + RC5T583_IRQ_GPIO4 = 35, + RC5T583_IRQ_GPIO5 = 36, + RC5T583_IRQ_GPIO6 = 37, + RC5T583_IRQ_GPIO7 = 38, + RC5T583_MAX_IRQS = 39, +}; + +enum { + RC5T583_GPIO0 = 0, + RC5T583_GPIO1 = 1, + RC5T583_GPIO2 = 2, + RC5T583_GPIO3 = 3, + RC5T583_GPIO4 = 4, + RC5T583_GPIO5 = 5, + RC5T583_GPIO6 = 6, + RC5T583_GPIO7 = 7, + RC5T583_MAX_GPIO = 8, +}; + +enum { + RC5T583_REGULATOR_DC0 = 0, + RC5T583_REGULATOR_DC1 = 1, + RC5T583_REGULATOR_DC2 = 2, + RC5T583_REGULATOR_DC3 = 3, + RC5T583_REGULATOR_LDO0 = 4, + RC5T583_REGULATOR_LDO1 = 5, + RC5T583_REGULATOR_LDO2 = 6, + RC5T583_REGULATOR_LDO3 = 7, + RC5T583_REGULATOR_LDO4 = 8, + RC5T583_REGULATOR_LDO5 = 9, + RC5T583_REGULATOR_LDO6 = 10, + RC5T583_REGULATOR_LDO7 = 11, + RC5T583_REGULATOR_LDO8 = 12, + RC5T583_REGULATOR_LDO9 = 13, + RC5T583_REGULATOR_MAX = 14, +}; + +struct rc5t583 { + struct device *dev; + struct regmap *regmap; + int chip_irq; + int irq_base; + struct mutex irq_lock; + long unsigned int group_irq_en[5]; + uint8_t intc_inten_reg; + uint8_t irq_en_reg[8]; + uint8_t gpedge_reg[2]; +}; + +struct rc5t583_platform_data { + int irq_base; + int gpio_base; + bool enable_shutdown; + int regulator_deepsleep_slot[14]; + long unsigned int regulator_ext_pwr_control[14]; + struct regulator_init_data *reg_init_data[14]; +}; + +struct rc5t583_gpio { + struct gpio_chip gpio_chip; + struct rc5t583 *rc5t583; +}; + +enum { + TPS6586X_ID_SYS = 0, + TPS6586X_ID_SM_0 = 1, + TPS6586X_ID_SM_1 = 2, + TPS6586X_ID_SM_2 = 3, + TPS6586X_ID_LDO_0 = 4, + TPS6586X_ID_LDO_1 = 5, + TPS6586X_ID_LDO_2 = 6, + TPS6586X_ID_LDO_3 = 7, + TPS6586X_ID_LDO_4 = 8, + TPS6586X_ID_LDO_5 = 9, + TPS6586X_ID_LDO_6 = 10, + TPS6586X_ID_LDO_7 = 11, + TPS6586X_ID_LDO_8 = 12, + TPS6586X_ID_LDO_9 = 13, + TPS6586X_ID_LDO_RTC = 14, + TPS6586X_ID_MAX_REGULATOR = 15, +}; + +enum { + TPS6586X_INT_PLDO_0 = 0, + TPS6586X_INT_PLDO_1 = 1, + TPS6586X_INT_PLDO_2 = 2, + TPS6586X_INT_PLDO_3 = 3, + TPS6586X_INT_PLDO_4 = 4, + TPS6586X_INT_PLDO_5 = 5, + TPS6586X_INT_PLDO_6 = 6, + TPS6586X_INT_PLDO_7 = 7, + TPS6586X_INT_COMP_DET = 8, + TPS6586X_INT_ADC = 9, + TPS6586X_INT_PLDO_8 = 10, + TPS6586X_INT_PLDO_9 = 11, + TPS6586X_INT_PSM_0 = 12, + TPS6586X_INT_PSM_1 = 13, + TPS6586X_INT_PSM_2 = 14, + TPS6586X_INT_PSM_3 = 15, + TPS6586X_INT_RTC_ALM1 = 16, + TPS6586X_INT_ACUSB_OVP = 17, + TPS6586X_INT_USB_DET = 18, + TPS6586X_INT_AC_DET = 19, + TPS6586X_INT_BAT_DET = 20, + TPS6586X_INT_CHG_STAT = 21, + TPS6586X_INT_CHG_TEMP = 22, + TPS6586X_INT_PP = 23, + TPS6586X_INT_RESUME = 24, + TPS6586X_INT_LOW_SYS = 25, + TPS6586X_INT_RTC_ALM2 = 26, +}; + +struct tps6586x_subdev_info { + int id; + const char *name; + void *platform_data; + struct device_node *of_node; +}; + +struct tps6586x_platform_data { + int num_subdevs; + struct tps6586x_subdev_info *subdevs; + int gpio_base; + int irq_base; + bool pm_off; + struct regulator_init_data *reg_init_data[15]; +}; + +struct tps6586x_gpio { + struct gpio_chip gpio_chip; + struct device *parent; +}; + +struct tps65910_sleep_keepon_data { + unsigned int therm_keepon: 1; + unsigned int clkout32k_keepon: 1; + unsigned int i2chs_keepon: 1; +}; + +struct tps65910_board { + int gpio_base; + int irq; + int irq_base; + int vmbch_threshold; + int vmbch2_threshold; + bool en_ck32k_xtal; + bool en_dev_slp; + bool pm_off; + struct tps65910_sleep_keepon_data slp_keepon; + bool en_gpio_sleep[9]; + long unsigned int regulator_ext_sleep_control[14]; + struct regulator_init_data *tps65910_pmic_init_data[14]; +}; + +struct tps65910 { + struct device *dev; + struct i2c_client *i2c_client; + struct regmap *regmap; + long unsigned int id; + struct tps65910_board *of_plat_data; + int chip_irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65910_gpio { + struct gpio_chip gpio_chip; + struct tps65910 *tps65910; +}; + +struct tps68470_gpio_data { + struct regmap *tps68470_regmap; + struct gpio_chip gc; +}; + enum pwm_polarity { PWM_POLARITY_NORMAL = 0, PWM_POLARITY_INVERSED = 1, @@ -64421,8 +79320,8 @@ struct pwm_args { }; enum { - PWMF_REQUESTED = 1, - PWMF_EXPORTED = 2, + PWMF_REQUESTED = 0, + PWMF_EXPORTED = 1, }; struct pwm_state { @@ -64430,6 +79329,7 @@ struct pwm_state { u64 duty_cycle; enum pwm_polarity polarity; bool enabled; + bool usage_power; }; struct pwm_chip; @@ -64513,31 +79413,27 @@ struct pwm_export { struct pwm_state suspend; }; -struct regmap; - -struct regmap_irq_chip_data; - -struct intel_scu_ipc_dev; - -struct intel_soc_pmic { - int irq; - struct regmap *regmap; - struct regmap_irq_chip_data *irq_chip_data; - struct regmap_irq_chip_data *irq_chip_data_pwrbtn; - struct regmap_irq_chip_data *irq_chip_data_tmu; - struct regmap_irq_chip_data *irq_chip_data_bcu; - struct regmap_irq_chip_data *irq_chip_data_adc; - struct regmap_irq_chip_data *irq_chip_data_chgr; - struct regmap_irq_chip_data *irq_chip_data_crit; - struct device *dev; - struct intel_scu_ipc_dev *scu; -}; - struct crystalcove_pwm { struct pwm_chip chip; struct regmap *regmap; }; +struct pwm_lpss_boardinfo; + +struct pwm_lpss_chip { + struct pwm_chip chip; + void *regs; + const struct pwm_lpss_boardinfo *info; +}; + +struct pwm_lpss_boardinfo { + long unsigned int clk_rate; + unsigned int npwm; + long unsigned int base_unit_bits; + bool bypass; + bool other_devices_aml_touches_pwm_regs; +}; + enum { pci_channel_io_normal = 1, pci_channel_io_frozen = 2, @@ -64569,6 +79465,12 @@ struct pci_sriov { bool drivers_autoprobe; }; +struct rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; +}; + struct pci_bus_resource { struct list_head list; struct resource *res; @@ -64615,7 +79517,8 @@ enum pci_dev_flags { PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512, PCI_DEV_FLAGS_NO_FLR_RESET = 1024, PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048, - PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096, + PCI_DEV_FLAGS_ENABLE_ASPM = 4096, + PCI_DEV_FLAGS_HAS_MSI_MASKING = 8192, }; enum pci_bus_flags { @@ -64650,6 +79553,7 @@ enum pci_bus_speed { PCIE_SPEED_8_0GT = 22, PCIE_SPEED_16_0GT = 23, PCIE_SPEED_32_0GT = 24, + PCIE_SPEED_64_0GT = 25, PCI_SPEED_UNKNOWN = 255, }; @@ -64660,15 +79564,16 @@ struct pci_host_bridge { struct pci_ops *child_ops; void *sysdata; int busnr; + int domain_nr; struct list_head windows; struct list_head dma_ranges; u8 (*swizzle_irq)(struct pci_dev *, u8 *); int (*map_irq)(const struct pci_dev *, u8, u8); void (*release_fn)(struct pci_host_bridge *); void *release_data; - struct msi_controller *msi; unsigned int ignore_reset_delay: 1; unsigned int no_ext_tags: 1; + unsigned int no_inc_mrrs: 1; unsigned int native_aer: 1; unsigned int native_pcie_hotplug: 1; unsigned int native_shpc_hotplug: 1; @@ -64677,9 +79582,12 @@ struct pci_host_bridge { unsigned int native_dpc: 1; unsigned int preserve_config: 1; unsigned int size_windows: 1; + unsigned int msi_domain: 1; resource_size_t (*align_resource)(struct pci_dev *, const struct resource *, resource_size_t, resource_size_t, resource_size_t); long: 64; long: 64; + long: 64; + long: 64; long unsigned int private[0]; }; @@ -64710,7 +79618,7 @@ struct hotplug_slot_ops { int (*get_attention_status)(struct hotplug_slot *, u8 *); int (*get_latch_status)(struct hotplug_slot *, u8 *); int (*get_adapter_status)(struct hotplug_slot *, u8 *); - int (*reset_slot)(struct hotplug_slot *, int); + int (*reset_slot)(struct hotplug_slot *, bool); }; enum pci_bar_type { @@ -64762,8 +79670,6 @@ struct pci_cap_saved_state { struct pci_cap_saved_data cap; }; -typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); - struct pci_platform_pm_ops { bool (*bridge_d3)(struct pci_dev *); bool (*is_manageable)(struct pci_dev *); @@ -64775,6 +79681,11 @@ struct pci_platform_pm_ops { bool (*need_resume)(struct pci_dev *); }; +struct pci_reset_fn_method { + int (*reset_fn)(struct pci_dev *, bool); + char *name; +}; + struct pci_pme_device { struct list_head list; struct pci_dev *dev; @@ -64832,6 +79743,7 @@ struct pcie_port_service_driver { int (*resume)(struct pcie_device *); int (*runtime_suspend)(struct pcie_device *); int (*runtime_resume)(struct pcie_device *); + int (*slot_reset)(struct pcie_device *); void (*error_resume)(struct pci_dev *); int port_type; u32 service; @@ -64859,25 +79771,6 @@ enum pci_mmap_api { PCI_MMAP_PROCFS = 1, }; -struct pci_vpd_ops; - -struct pci_vpd { - const struct pci_vpd_ops *ops; - struct bin_attribute *attr; - struct mutex lock; - unsigned int len; - u16 flag; - u8 cap; - unsigned int busy: 1; - unsigned int valid: 1; -}; - -struct pci_vpd_ops { - ssize_t (*read)(struct pci_dev *, loff_t, size_t, void *); - ssize_t (*write)(struct pci_dev *, loff_t, size_t, const void *); - int (*set_size)(struct pci_dev *, size_t); -}; - struct pci_dev_resource { struct list_head list; struct resource *res; @@ -64902,13 +79795,24 @@ enum enable_type { auto_enabled = 3, }; +struct msix_entry { + u32 vector; + u16 entry; +}; + struct portdrv_service_data { struct pcie_port_service_driver *drv; struct device *dev; u32 service; }; -typedef int (*pcie_pm_callback_t)(struct pcie_device *); +typedef int (*pcie_callback_t)(struct pcie_device *); + +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; +}; struct aspm_latency { u32 l0s; @@ -65020,6 +79924,8 @@ struct pcie_pme_service_data { bool noirq; }; +typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); + struct pci_filp_private { enum pci_mmap_state mmap_state; int write_combine; @@ -65031,13 +79937,6 @@ struct pci_slot_attribute { ssize_t (*store)(struct pci_slot *, const char *, size_t); }; -typedef u64 acpi_size; - -struct acpi_buffer { - acpi_size length; - void *pointer; -}; - struct acpi_bus_type { struct list_head list; const char *name; @@ -65289,7 +80188,7 @@ struct ntb_ctrl_regs { struct pci_dev_reset_methods { u16 vendor; u16 device; - int (*reset)(struct pci_dev *, int); + int (*reset)(struct pci_dev *, bool); }; struct pci_dev_acs_enabled { @@ -65318,9 +80217,9 @@ struct slot { }; struct cpci_hp_controller_ops { - int (*query_enum)(); - int (*enable_irq)(); - int (*disable_irq)(); + int (*query_enum)(void); + int (*enable_irq)(void); + int (*disable_irq)(void); int (*check_irq)(void *); int (*hardware_test)(struct slot *, u32); u8 (*get_power)(struct slot *); @@ -65336,6 +80235,8 @@ struct cpci_hp_controller { struct cpci_hp_controller_ops *ops; }; +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); + struct controller { struct pcie_device *pcie; u32 slot_cap; @@ -65508,11 +80409,6 @@ struct acpiphp_root_context { struct acpiphp_bridge *root_bridge; }; -struct msix_entry { - u32 vector; - u16 entry; -}; - enum dmi_device_type { DMI_DEV_TYPE_ANY = 0, DMI_DEV_TYPE_OTHER = 1, @@ -65557,6 +80453,882 @@ enum acpi_attr_enum { ACPI_ATTR_INDEX_SHOW = 1, }; +struct pci_epf_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; + +enum pci_interrupt_pin { + PCI_INTERRUPT_UNKNOWN = 0, + PCI_INTERRUPT_INTA = 1, + PCI_INTERRUPT_INTB = 2, + PCI_INTERRUPT_INTC = 3, + PCI_INTERRUPT_INTD = 4, +}; + +enum pci_barno { + NO_BAR = 4294967295, + BAR_0 = 0, + BAR_1 = 1, + BAR_2 = 2, + BAR_3 = 3, + BAR_4 = 4, + BAR_5 = 5, +}; + +struct pci_epf_header { + u16 vendorid; + u16 deviceid; + u8 revid; + u8 progif_code; + u8 subclass_code; + u8 baseclass_code; + u8 cache_line_size; + u16 subsys_vendor_id; + u16 subsys_id; + enum pci_interrupt_pin interrupt_pin; +}; + +struct pci_epf; + +struct pci_epf_ops { + int (*bind)(struct pci_epf *); + void (*unbind)(struct pci_epf *); + struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); +}; + +struct pci_epf_bar { + dma_addr_t phys_addr; + void *addr; + size_t size; + enum pci_barno barno; + int flags; +}; + +struct pci_epc; + +struct pci_epf_driver; + +struct pci_epf { + struct device dev; + const char *name; + struct pci_epf_header *header; + struct pci_epf_bar bar[6]; + u8 msi_interrupts; + u16 msix_interrupts; + u8 func_no; + u8 vfunc_no; + struct pci_epc *epc; + struct pci_epf *epf_pf; + struct pci_epf_driver *driver; + struct list_head list; + struct notifier_block nb; + struct mutex lock; + struct pci_epc *sec_epc; + struct list_head sec_epc_list; + struct pci_epf_bar sec_epc_bar[6]; + u8 sec_epc_func_no; + struct config_group *group; + unsigned int is_bound; + unsigned int is_vf; + long unsigned int vfunction_num_map; + struct list_head pci_vepf; +}; + +struct pci_epf_driver { + int (*probe)(struct pci_epf *); + void (*remove)(struct pci_epf *); + struct device_driver driver; + struct pci_epf_ops *ops; + struct module *owner; + struct list_head epf_group; + const struct pci_epf_device_id *id_table; +}; + +struct pci_epc_ops; + +struct pci_epc_mem; + +struct pci_epc { + struct device dev; + struct list_head pci_epf; + const struct pci_epc_ops *ops; + struct pci_epc_mem **windows; + struct pci_epc_mem *mem; + unsigned int num_windows; + u8 max_functions; + u8 *max_vfs; + struct config_group *group; + struct mutex lock; + long unsigned int function_num_map; + struct atomic_notifier_head notifier; +}; + +enum pci_epc_interface_type { + UNKNOWN_INTERFACE = 4294967295, + PRIMARY_INTERFACE = 0, + SECONDARY_INTERFACE = 1, +}; + +enum pci_epc_irq_type { + PCI_EPC_IRQ_UNKNOWN = 0, + PCI_EPC_IRQ_LEGACY = 1, + PCI_EPC_IRQ_MSI = 2, + PCI_EPC_IRQ_MSIX = 3, +}; + +struct pci_epc_features; + +struct pci_epc_ops { + int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); + int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); + void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); + int (*set_msi)(struct pci_epc *, u8, u8, u8); + int (*get_msi)(struct pci_epc *, u8, u8); + int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); + int (*get_msix)(struct pci_epc *, u8, u8); + int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); + int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); + int (*start)(struct pci_epc *); + void (*stop)(struct pci_epc *); + const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); + struct module *owner; +}; + +struct pci_epc_features { + unsigned int linkup_notifier: 1; + unsigned int core_init_notifier: 1; + unsigned int msi_capable: 1; + unsigned int msix_capable: 1; + u8 reserved_bar; + u8 bar_fixed_64bit; + u64 bar_fixed_size[6]; + size_t align; +}; + +struct pci_epc_mem_window { + phys_addr_t phys_base; + size_t size; + size_t page_size; +}; + +struct pci_epc_mem { + struct pci_epc_mem_window window; + long unsigned int *bitmap; + int pages; + struct mutex lock; +}; + +struct pci_epf_group { + struct config_group group; + struct config_group primary_epc_group; + struct config_group secondary_epc_group; + struct delayed_work cfs_work; + struct pci_epf *epf; + int index; +}; + +struct pci_epc_group { + struct config_group group; + struct pci_epc *epc; + bool start; +}; + +enum pci_notify_event { + CORE_INIT = 0, + LINK_UP = 1, +}; + +enum dw_pcie_region_type { + DW_PCIE_REGION_UNKNOWN = 0, + DW_PCIE_REGION_INBOUND = 1, + DW_PCIE_REGION_OUTBOUND = 2, +}; + +struct pcie_port; + +struct dw_pcie_host_ops { + int (*host_init)(struct pcie_port *); + int (*msi_host_init)(struct pcie_port *); +}; + +struct pcie_port { + bool has_msi_ctrl: 1; + u64 cfg0_base; + void *va_cfg0_base; + u32 cfg0_size; + resource_size_t io_base; + phys_addr_t io_bus_addr; + u32 io_size; + int irq; + const struct dw_pcie_host_ops *ops; + int msi_irq; + struct irq_domain *irq_domain; + struct irq_domain *msi_domain; + u16 msi_msg; + dma_addr_t msi_data; + struct irq_chip *msi_irq_chip; + u32 num_vectors; + u32 irq_mask[8]; + struct pci_host_bridge *bridge; + raw_spinlock_t lock; + long unsigned int msi_irq_in_use[4]; +}; + +enum dw_pcie_as_type { + DW_PCIE_AS_UNKNOWN = 0, + DW_PCIE_AS_MEM = 1, + DW_PCIE_AS_IO = 2, +}; + +struct dw_pcie_ep; + +struct dw_pcie_ep_ops { + void (*ep_init)(struct dw_pcie_ep *); + int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); + const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); + unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); +}; + +struct dw_pcie_ep { + struct pci_epc *epc; + struct list_head func_list; + const struct dw_pcie_ep_ops *ops; + phys_addr_t phys_base; + size_t addr_size; + size_t page_size; + u8 bar_to_atu[6]; + phys_addr_t *outbound_addr; + long unsigned int *ib_window_map; + long unsigned int *ob_window_map; + void *msi_mem; + phys_addr_t msi_mem_phys; + struct pci_epf_bar *epf_bar[6]; +}; + +struct dw_pcie; + +struct dw_pcie_ops { + u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); + u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); + void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); + void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); + int (*link_up)(struct dw_pcie *); + int (*start_link)(struct dw_pcie *); + void (*stop_link)(struct dw_pcie *); +}; + +struct dw_pcie { + struct device *dev; + void *dbi_base; + void *dbi_base2; + void *atu_base; + size_t atu_size; + u32 num_ib_windows; + u32 num_ob_windows; + struct pcie_port pp; + struct dw_pcie_ep ep; + const struct dw_pcie_ops *ops; + unsigned int version; + int num_lanes; + int link_gen; + u8 n_fts[2]; + bool iatu_unroll_enabled: 1; + bool io_cfg_atu_shared: 1; +}; + +struct pci_epf_msix_tbl { + u64 msg_addr; + u32 msg_data; + u32 vector_ctrl; +}; + +struct dw_pcie_ep_func { + struct list_head list; + u8 func_no; + u8 msi_cap; + u8 msix_cap; +}; + +enum dw_pcie_device_mode { + DW_PCIE_UNKNOWN_TYPE = 0, + DW_PCIE_EP_TYPE = 1, + DW_PCIE_LEG_EP_TYPE = 2, + DW_PCIE_RC_TYPE = 3, +}; + +struct dw_plat_pcie { + struct dw_pcie *pci; + struct regmap *regmap; + enum dw_pcie_device_mode mode; +}; + +struct dw_plat_pcie_of_data { + enum dw_pcie_device_mode mode; +}; + +struct rio_device_id { + __u16 did; + __u16 vid; + __u16 asm_did; + __u16 asm_vid; +}; + +typedef s32 dma_cookie_t; + +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, +}; + +enum dma_transaction_type { + DMA_MEMCPY = 0, + DMA_XOR = 1, + DMA_PQ = 2, + DMA_XOR_VAL = 3, + DMA_PQ_VAL = 4, + DMA_MEMSET = 5, + DMA_MEMSET_SG = 6, + DMA_INTERRUPT = 7, + DMA_PRIVATE = 8, + DMA_ASYNC_TX = 9, + DMA_SLAVE = 10, + DMA_CYCLIC = 11, + DMA_INTERLEAVE = 12, + DMA_COMPLETION_NO_ORDER = 13, + DMA_REPEAT = 14, + DMA_LOAD_EOT = 15, + DMA_TX_TYPE_END = 16, +}; + +enum dma_transfer_direction { + DMA_MEM_TO_MEM = 0, + DMA_MEM_TO_DEV = 1, + DMA_DEV_TO_MEM = 2, + DMA_DEV_TO_DEV = 3, + DMA_TRANS_NONE = 4, +}; + +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; +}; + +struct dma_interleaved_template { + dma_addr_t src_start; + dma_addr_t dst_start; + enum dma_transfer_direction dir; + bool src_inc; + bool dst_inc; + bool src_sgl; + bool dst_sgl; + size_t numf; + size_t frame_size; + struct data_chunk sgl[0]; +}; + +enum dma_ctrl_flags { + DMA_PREP_INTERRUPT = 1, + DMA_CTRL_ACK = 2, + DMA_PREP_PQ_DISABLE_P = 4, + DMA_PREP_PQ_DISABLE_Q = 8, + DMA_PREP_CONTINUE = 16, + DMA_PREP_FENCE = 32, + DMA_CTRL_REUSE = 64, + DMA_PREP_CMD = 128, + DMA_PREP_REPEAT = 256, + DMA_PREP_LOAD_EOT = 512, +}; + +enum sum_check_bits { + SUM_CHECK_P = 0, + SUM_CHECK_Q = 1, +}; + +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, +}; + +typedef struct { + long unsigned int bits[1]; +} dma_cap_mask_t; + +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, +}; + +struct dma_chan_percpu { + long unsigned int memcpy_count; + long unsigned int bytes_transferred; +}; + +struct dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); +}; + +struct dma_device; + +struct dma_chan_dev; + +struct dma_chan___2 { + struct dma_device *device; + struct device *slave; + dma_cookie_t cookie; + dma_cookie_t completed_cookie; + int chan_id; + struct dma_chan_dev *dev; + const char *name; + char *dbg_client_name; + struct list_head device_node; + struct dma_chan_percpu *local; + int client_count; + int table_count; + struct dma_router *router; + void *route_data; + void *private; +}; + +typedef bool (*dma_filter_fn)(struct dma_chan___2 *, void *); + +struct dma_slave_map; + +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; +}; + +enum dmaengine_alignment { + DMAENGINE_ALIGN_1_BYTE = 0, + DMAENGINE_ALIGN_2_BYTES = 1, + DMAENGINE_ALIGN_4_BYTES = 2, + DMAENGINE_ALIGN_8_BYTES = 3, + DMAENGINE_ALIGN_16_BYTES = 4, + DMAENGINE_ALIGN_32_BYTES = 5, + DMAENGINE_ALIGN_64_BYTES = 6, + DMAENGINE_ALIGN_128_BYTES = 7, + DMAENGINE_ALIGN_256_BYTES = 8, +}; + +enum dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, +}; + +struct dma_async_tx_descriptor; + +struct dma_slave_caps; + +struct dma_slave_config; + +struct dma_tx_state; + +struct dma_device { + struct kref ref; + unsigned int chancnt; + unsigned int privatecnt; + struct list_head channels; + struct list_head global_node; + struct dma_filter filter; + dma_cap_mask_t cap_mask; + enum dma_desc_metadata_mode desc_metadata_modes; + short unsigned int max_xor; + short unsigned int max_pq; + enum dmaengine_alignment copy_align; + enum dmaengine_alignment xor_align; + enum dmaengine_alignment pq_align; + enum dmaengine_alignment fill_align; + int dev_id; + struct device *dev; + struct module *owner; + struct ida chan_ida; + struct mutex chan_mutex; + u32 src_addr_widths; + u32 dst_addr_widths; + u32 directions; + u32 min_burst; + u32 max_burst; + u32 max_sg_burst; + bool descriptor_reuse; + enum dma_residue_granularity residue_granularity; + int (*device_alloc_chan_resources)(struct dma_chan___2 *); + int (*device_router_config)(struct dma_chan___2 *); + void (*device_free_chan_resources)(struct dma_chan___2 *); + struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan___2 *, dma_addr_t, dma_addr_t, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan___2 *, dma_addr_t, dma_addr_t *, unsigned int, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan___2 *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan___2 *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan___2 *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan___2 *, dma_addr_t, int, size_t, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, int, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan___2 *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *); + struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan___2 *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan___2 *, struct dma_interleaved_template *, long unsigned int); + struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan___2 *, dma_addr_t, u64, long unsigned int); + void (*device_caps)(struct dma_chan___2 *, struct dma_slave_caps *); + int (*device_config)(struct dma_chan___2 *, struct dma_slave_config *); + int (*device_pause)(struct dma_chan___2 *); + int (*device_resume)(struct dma_chan___2 *); + int (*device_terminate_all)(struct dma_chan___2 *); + void (*device_synchronize)(struct dma_chan___2 *); + enum dma_status (*device_tx_status)(struct dma_chan___2 *, dma_cookie_t, struct dma_tx_state *); + void (*device_issue_pending)(struct dma_chan___2 *); + void (*device_release)(struct dma_device *); + void (*dbg_summary_show)(struct seq_file *, struct dma_device *); + struct dentry *dbg_dev_root; +}; + +struct dma_chan_dev { + struct dma_chan___2 *chan; + struct device device; + int dev_id; + bool chan_dma_dev; +}; + +enum dma_slave_buswidth { + DMA_SLAVE_BUSWIDTH_UNDEFINED = 0, + DMA_SLAVE_BUSWIDTH_1_BYTE = 1, + DMA_SLAVE_BUSWIDTH_2_BYTES = 2, + DMA_SLAVE_BUSWIDTH_3_BYTES = 3, + DMA_SLAVE_BUSWIDTH_4_BYTES = 4, + DMA_SLAVE_BUSWIDTH_8_BYTES = 8, + DMA_SLAVE_BUSWIDTH_16_BYTES = 16, + DMA_SLAVE_BUSWIDTH_32_BYTES = 32, + DMA_SLAVE_BUSWIDTH_64_BYTES = 64, + DMA_SLAVE_BUSWIDTH_128_BYTES = 128, +}; + +struct dma_slave_config { + enum dma_transfer_direction direction; + phys_addr_t src_addr; + phys_addr_t dst_addr; + enum dma_slave_buswidth src_addr_width; + enum dma_slave_buswidth dst_addr_width; + u32 src_maxburst; + u32 dst_maxburst; + u32 src_port_window_size; + u32 dst_port_window_size; + bool device_fc; + unsigned int slave_id; + void *peripheral_config; + size_t peripheral_size; +}; + +struct dma_slave_caps { + u32 src_addr_widths; + u32 dst_addr_widths; + u32 directions; + u32 min_burst; + u32 max_burst; + u32 max_sg_burst; + bool cmd_pause; + bool cmd_resume; + bool cmd_terminate; + enum dma_residue_granularity residue_granularity; + bool descriptor_reuse; +}; + +typedef void (*dma_async_tx_callback)(void *); + +enum dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; + +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; +}; + +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); + +struct dmaengine_unmap_data { + u16 map_cnt; + u8 to_cnt; + u8 from_cnt; + u8 bidi_cnt; + struct device *dev; + struct kref kref; + size_t len; + dma_addr_t addr[0]; +}; + +struct dma_descriptor_metadata_ops { + int (*attach)(struct dma_async_tx_descriptor *, void *, size_t); + void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *); + int (*set_len)(struct dma_async_tx_descriptor *, size_t); +}; + +struct dma_async_tx_descriptor { + dma_cookie_t cookie; + enum dma_ctrl_flags flags; + dma_addr_t phys; + struct dma_chan___2 *chan; + dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); + int (*desc_free)(struct dma_async_tx_descriptor *); + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; + struct dmaengine_unmap_data *unmap; + enum dma_desc_metadata_mode desc_metadata_mode; + struct dma_descriptor_metadata_ops *metadata_ops; +}; + +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; +}; + +struct dma_slave_map { + const char *devname; + const char *slave; + void *param; +}; + +struct rio_switch_ops; + +struct rio_dev; + +struct rio_switch { + struct list_head node; + u8 *route_table; + u32 port_ok; + struct rio_switch_ops *ops; + spinlock_t lock; + struct rio_dev *nextdev[0]; +}; + +struct rio_mport; + +struct rio_switch_ops { + struct module *owner; + int (*add_entry)(struct rio_mport *, u16, u8, u16, u16, u8); + int (*get_entry)(struct rio_mport *, u16, u8, u16, u16, u8 *); + int (*clr_table)(struct rio_mport *, u16, u8, u16); + int (*set_domain)(struct rio_mport *, u16, u8, u8); + int (*get_domain)(struct rio_mport *, u16, u8, u8 *); + int (*em_init)(struct rio_dev *); + int (*em_handle)(struct rio_dev *, u8); +}; + +struct rio_net; + +struct rio_driver; + +union rio_pw_msg; + +struct rio_dev { + struct list_head global_list; + struct list_head net_list; + struct rio_net *net; + bool do_enum; + u16 did; + u16 vid; + u32 device_rev; + u16 asm_did; + u16 asm_vid; + u16 asm_rev; + u16 efptr; + u32 pef; + u32 swpinfo; + u32 src_ops; + u32 dst_ops; + u32 comp_tag; + u32 phys_efptr; + u32 phys_rmap; + u32 em_efptr; + u64 dma_mask; + struct rio_driver *driver; + struct device dev; + struct resource riores[16]; + int (*pwcback)(struct rio_dev *, union rio_pw_msg *, int); + u16 destid; + u8 hopcount; + struct rio_dev *prev; + atomic_t state; + struct rio_switch rswitch[0]; +}; + +struct rio_msg { + struct resource *res; + void (*mcback)(struct rio_mport *, void *, int, int); +}; + +struct rio_ops; + +struct rio_scan; + +struct rio_mport { + struct list_head dbells; + struct list_head pwrites; + struct list_head node; + struct list_head nnode; + struct rio_net *net; + struct mutex lock; + struct resource iores; + struct resource riores[16]; + struct rio_msg inb_msg[4]; + struct rio_msg outb_msg[4]; + int host_deviceid; + struct rio_ops *ops; + unsigned char id; + unsigned char index; + unsigned int sys_size; + u32 phys_efptr; + u32 phys_rmap; + unsigned char name[40]; + struct device dev; + void *priv; + struct dma_device dma; + struct rio_scan *nscan; + atomic_t state; + unsigned int pwe_refcnt; +}; + +enum rio_device_state { + RIO_DEVICE_INITIALIZING = 0, + RIO_DEVICE_RUNNING = 1, + RIO_DEVICE_GONE = 2, + RIO_DEVICE_SHUTDOWN = 3, +}; + +struct rio_net { + struct list_head node; + struct list_head devices; + struct list_head switches; + struct list_head mports; + struct rio_mport *hport; + unsigned char id; + struct device dev; + void *enum_data; + void (*release)(struct rio_net *); +}; + +struct rio_driver { + struct list_head node; + char *name; + const struct rio_device_id *id_table; + int (*probe)(struct rio_dev *, const struct rio_device_id *); + void (*remove)(struct rio_dev *); + void (*shutdown)(struct rio_dev *); + int (*suspend)(struct rio_dev *, u32); + int (*resume)(struct rio_dev *); + int (*enable_wake)(struct rio_dev *, u32, int); + struct device_driver driver; +}; + +union rio_pw_msg { + struct { + u32 comptag; + u32 errdetect; + u32 is_port; + u32 ltlerrdet; + u32 padding[12]; + } em; + u32 raw[16]; +}; + +struct rio_dbell { + struct list_head node; + struct resource *res; + void (*dinb)(struct rio_mport *, void *, u16, u16, u16); + void *dev_id; +}; + +struct rio_mport_attr; + +struct rio_ops { + int (*lcread)(struct rio_mport *, int, u32, int, u32 *); + int (*lcwrite)(struct rio_mport *, int, u32, int, u32); + int (*cread)(struct rio_mport *, int, u16, u8, u32, int, u32 *); + int (*cwrite)(struct rio_mport *, int, u16, u8, u32, int, u32); + int (*dsend)(struct rio_mport *, int, u16, u16); + int (*pwenable)(struct rio_mport *, int); + int (*open_outb_mbox)(struct rio_mport *, void *, int, int); + void (*close_outb_mbox)(struct rio_mport *, int); + int (*open_inb_mbox)(struct rio_mport *, void *, int, int); + void (*close_inb_mbox)(struct rio_mport *, int); + int (*add_outb_message)(struct rio_mport *, struct rio_dev *, int, void *, size_t); + int (*add_inb_buffer)(struct rio_mport *, int, void *); + void * (*get_inb_message)(struct rio_mport *, int); + int (*map_inb)(struct rio_mport *, dma_addr_t, u64, u64, u32); + void (*unmap_inb)(struct rio_mport *, dma_addr_t); + int (*query_mport)(struct rio_mport *, struct rio_mport_attr *); + int (*map_outb)(struct rio_mport *, u16, u64, u32, u32, dma_addr_t *); + void (*unmap_outb)(struct rio_mport *, u16, u64); +}; + +struct rio_scan { + struct module *owner; + int (*enumerate)(struct rio_mport *, u32); + int (*discover)(struct rio_mport *, u32); +}; + +struct rio_mport_attr { + int flags; + int link_speed; + int link_width; + int dma_max_sge; + int dma_max_size; + int dma_align; +}; + +enum rio_write_type { + RDW_DEFAULT = 0, + RDW_ALL_NWRITE = 1, + RDW_ALL_NWRITE_R = 2, + RDW_LAST_NWRITE_R = 3, +}; + +struct rio_dma_ext { + u16 destid; + u64 rio_addr; + u8 rio_addr_u; + enum rio_write_type wr_type; +}; + +struct rio_dma_data { + struct scatterlist *sg; + unsigned int sg_len; + u64 rio_addr; + u8 rio_addr_u; + enum rio_write_type wr_type; +}; + +struct rio_scan_node { + int mport_id; + struct list_head node; + struct rio_scan *ops; +}; + +struct rio_pwrite { + struct list_head node; + int (*pwcback)(struct rio_mport *, void *, union rio_pw_msg *, int); + void *context; +}; + +struct rio_disc_work { + struct work_struct work; + struct rio_mport *mport; +}; + enum hdmi_infoframe_type { HDMI_INFOFRAME_TYPE_VENDOR = 129, HDMI_INFOFRAME_TYPE_AVI = 130, @@ -65656,7 +81428,7 @@ enum hdmi_content_type { }; enum hdmi_metadata_type { - HDMI_STATIC_METADATA_TYPE1 = 1, + HDMI_STATIC_METADATA_TYPE1 = 0, }; enum hdmi_eotf { @@ -66058,6 +81830,8 @@ struct fb_pixmap { struct backlight_device; +struct fb_deferred_io_pageref; + struct fb_deferred_io; struct fb_ops; @@ -66067,7 +81841,7 @@ struct fb_tile_ops; struct apertures_struct; struct fb_info { - atomic_t count; + refcount_t count; int node; int flags; int fbcon_rotate_hint; @@ -66086,6 +81860,8 @@ struct fb_info { struct mutex bl_curve_mutex; u8 bl_curve[128]; struct delayed_work deferred_work; + long unsigned int npagerefs; + struct fb_deferred_io_pageref *pagerefs; struct fb_deferred_io *fbdefio; const struct fb_ops *fbops; struct device *device; @@ -66103,6 +81879,7 @@ struct fb_info { void *par; struct apertures_struct *apertures; bool skip_vt_switch; + bool forced_out; }; struct fb_blit_caps { @@ -66112,10 +81889,18 @@ struct fb_blit_caps { u32 flags; }; +struct fb_deferred_io_pageref { + struct page *page; + long unsigned int offset; + struct list_head list; +}; + struct fb_deferred_io { long unsigned int delay; + bool sort_pagereflist; + int open_count; struct mutex lock; - struct list_head pagelist; + struct list_head pagereflist; void (*first_io)(struct fb_info *); void (*deferred_io)(struct fb_info *, struct list_head *); }; @@ -66389,8 +82174,6 @@ struct fb_cvt_data { typedef unsigned char u_char; -typedef short unsigned int u_short; - struct fb_con2fbmap { __u32 console; __u32 framebuffer; @@ -66457,130 +82240,199 @@ enum { FBCON_LOGO_DONTSHOW = 4294967293, }; -struct xenfb_update { - uint8_t type; - int32_t x; - int32_t y; - int32_t width; - int32_t height; -}; +typedef long unsigned int u_long; -struct xenfb_resize { - uint8_t type; - int32_t width; - int32_t height; - int32_t stride; - int32_t depth; - int32_t offset; -}; - -union xenfb_out_event { - uint8_t type; - struct xenfb_update update; - struct xenfb_resize resize; - char pad[40]; -}; - -struct xenfb_page { - uint32_t in_cons; - uint32_t in_prod; - uint32_t out_cons; - uint32_t out_prod; - int32_t width; - int32_t height; - uint32_t line_length; - uint32_t mem_length; - uint8_t depth; - long unsigned int pd[256]; -}; - -enum xenbus_state { - XenbusStateUnknown = 0, - XenbusStateInitialising = 1, - XenbusStateInitWait = 2, - XenbusStateInitialised = 3, - XenbusStateConnected = 4, - XenbusStateClosing = 5, - XenbusStateClosed = 6, - XenbusStateReconfiguring = 7, - XenbusStateReconfigured = 8, -}; - -struct xsd_errors { - int errnum; - const char *errstring; -}; - -struct xenbus_watch { - struct list_head list; - const char *node; - unsigned int nr_pending; - bool (*will_handle)(struct xenbus_watch *, const char *, const char *); - void (*callback)(struct xenbus_watch *, const char *, const char *); -}; - -struct xenbus_device { - const char *devicetype; - const char *nodename; - const char *otherend; - int otherend_id; - struct xenbus_watch otherend_watch; - struct device dev; - enum xenbus_state state; - struct completion down; - struct work_struct work; - struct semaphore reclaim_sem; -}; - -struct xenbus_device_id { - char devicetype[32]; -}; - -struct xenbus_driver { - const char *name; - const struct xenbus_device_id *ids; - bool allow_rebind; - int (*probe)(struct xenbus_device *, const struct xenbus_device_id *); - void (*otherend_changed)(struct xenbus_device *, enum xenbus_state); - int (*remove)(struct xenbus_device *); - int (*suspend)(struct xenbus_device *); - int (*resume)(struct xenbus_device *); - int (*uevent)(struct xenbus_device *, struct kobj_uevent_env *); - struct device_driver driver; - int (*read_otherend_details)(struct xenbus_device *); - int (*is_ready)(struct xenbus_device *); - void (*reclaim_memory)(struct xenbus_device *); -}; - -struct xenbus_transaction { - u32 id; -}; - -struct xenfb_info { - unsigned char *fb; - struct fb_info *fb_info; - int x1; - int y1; - int x2; - int y2; - spinlock_t dirty_lock; - int nr_pages; - int irq; - struct xenfb_page *page; - long unsigned int *gfns; - int update_wanted; - int feature_resize; - struct xenfb_resize resize; - int resize_dpy; - spinlock_t resize_lock; - struct xenbus_device *xbdev; +enum { + S1SA = 0, + S2SA = 1, + SP = 2, + DSA = 3, + CNT = 4, + DP_OCTL = 5, + CLR = 6, + BI = 8, + MBC = 9, + BLTCTL = 10, + HES = 12, + HEB = 13, + HSB = 14, + HT = 15, + VES = 16, + VEB = 17, + VSB = 18, + VT = 19, + HCIV = 20, + VCIV = 21, + TCDR = 22, + VIL = 23, + STGCTL = 24, + SSR = 25, + HRIR = 26, + SPR = 27, + CMR = 28, + SRGCTL = 29, + RRCIV = 30, + RRSC = 31, + RRCR = 34, + GIOE = 32, + GIO = 33, + SCR = 35, + SSTATUS = 36, + PRC = 37, }; enum { - KPARAM_MEM = 0, - KPARAM_WIDTH = 1, - KPARAM_HEIGHT = 2, - KPARAM_CNT = 3, + PADDRW = 0, + PDATA = 4, + PPMASK = 8, + PADDRR = 12, + PIDXLO = 16, + PIDXHI = 20, + PIDXDATA = 24, + PIDXCTL = 28, +}; + +enum { + CLKCTL = 2, + SYNCCTL = 3, + HSYNCPOS = 4, + PWRMNGMT = 5, + DACOP = 6, + PALETCTL = 7, + SYSCLKCTL = 8, + PIXFMT = 10, + BPP8 = 11, + BPP16 = 12, + BPP24 = 13, + BPP32 = 14, + PIXCTL1 = 16, + PIXCTL2 = 17, + SYSCLKN = 21, + SYSCLKM = 22, + SYSCLKP = 23, + SYSCLKC = 24, + PIXM0 = 32, + PIXN0 = 33, + PIXP0 = 34, + PIXC0 = 35, + CURSCTL = 48, + CURSXLO = 49, + CURSXHI = 50, + CURSYLO = 51, + CURSYHI = 52, + CURSHOTX = 53, + CURSHOTY = 54, + CURSACCTL = 55, + CURSACATTR = 56, + CURS1R = 64, + CURS1G = 65, + CURS1B = 66, + CURS2R = 67, + CURS2G = 68, + CURS2B = 69, + CURS3R = 70, + CURS3G = 71, + CURS3B = 72, + BORDR = 96, + BORDG = 97, + BORDB = 98, + MISCTL1 = 112, + MISCTL2 = 113, + MISCTL3 = 114, + KEYCTL = 120, +}; + +enum { + TVPADDRW = 0, + TVPPDATA = 4, + TVPPMASK = 8, + TVPPADRR = 12, + TVPCADRW = 16, + TVPCDATA = 20, + TVPCADRR = 28, + TVPDCCTL = 36, + TVPIDATA = 40, + TVPCRDAT = 44, + TVPCXPOL = 48, + TVPCXPOH = 52, + TVPCYPOL = 56, + TVPCYPOH = 60, +}; + +enum { + TVPIRREV = 1, + TVPIRICC = 6, + TVPIRBRC = 7, + TVPIRLAC = 15, + TVPIRTCC = 24, + TVPIRMXC = 25, + TVPIRCLS = 26, + TVPIRPPG = 28, + TVPIRGEC = 29, + TVPIRMIC = 30, + TVPIRPLA = 44, + TVPIRPPD = 45, + TVPIRMPD = 46, + TVPIRLPD = 47, + TVPIRCKL = 48, + TVPIRCKH = 49, + TVPIRCRL = 50, + TVPIRCRH = 51, + TVPIRCGL = 52, + TVPIRCGH = 53, + TVPIRCBL = 54, + TVPIRCBH = 55, + TVPIRCKC = 56, + TVPIRMLC = 57, + TVPIRSEN = 58, + TVPIRTMD = 59, + TVPIRRML = 60, + TVPIRRMM = 61, + TVPIRRMS = 62, + TVPIRDID = 63, + TVPIRRES = 255, +}; + +struct initvalues { + __u8 addr; + __u8 value; +}; + +struct imstt_regvals { + __u32 pitch; + __u16 hes; + __u16 heb; + __u16 hsb; + __u16 ht; + __u16 ves; + __u16 veb; + __u16 vsb; + __u16 vt; + __u16 vil; + __u8 pclk_m; + __u8 pclk_n; + __u8 pclk_p; + __u8 mlc[3]; + __u8 lckl_p[3]; +}; + +struct imstt_par { + struct imstt_regvals init; + __u32 *dc_regs; + long unsigned int cmap_regs_phys; + __u8 *cmap_regs; + __u32 ramdac; + __u32 palette[16]; +}; + +enum { + IBM = 0, + TVP = 1, +}; + +struct chips_init_reg { + unsigned char addr; + unsigned char data; }; struct vesafb_par { @@ -66589,6 +82441,16 @@ struct vesafb_par { struct resource *region; }; +struct acpi_table_bgrt { + struct acpi_table_header header; + u16 version; + u8 status; + u8 image_type; + u64 image_address; + u32 image_offset_x; + u32 image_offset_y; +}; + enum drm_panel_orientation { DRM_MODE_PANEL_ORIENTATION_UNKNOWN = 4294967295, DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, @@ -66597,6 +82459,27 @@ enum drm_panel_orientation { DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, }; +struct bmp_file_header { + u16 id; + u32 file_size; + u32 reserved; + u32 bitmap_offset; +} __attribute__((packed)); + +struct bmp_dib_header { + u32 dib_header_size; + s32 width; + s32 height; + u16 planes; + u16 bpp; + u32 compression; + u32 bitmap_size; + u32 horz_resolution; + u32 vert_resolution; + u32 colors_used; + u32 colors_important; +}; + struct timing_entry { u32 min; u32 typ; @@ -66627,6 +82510,7 @@ struct thermal_cooling_device_ops; struct thermal_cooling_device { int id; char *type; + long unsigned int max_state; struct device device; struct device_node *np; void *devdata; @@ -66638,6 +82522,12 @@ struct thermal_cooling_device { struct list_head node; }; +enum { + C1E_PROMOTION_PRESERVE = 0, + C1E_PROMOTION_ENABLE = 1, + C1E_PROMOTION_DISABLE = 2, +}; + struct idle_cpu { struct cpuidle_state *state_table; long unsigned int auto_demotion_disable_flags; @@ -66812,6 +82702,7 @@ enum si_type { SI_KCS = 1, SI_SMIC = 2, SI_BT = 3, + SI_TYPE_MAX = 4, }; enum ipmi_addr_space { @@ -66911,11 +82802,10 @@ struct acpi_madt_generic_distributor { u8 reserved2[3]; }; -typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); - enum acpi_subtable_type { ACPI_SUBTABLE_COMMON = 0, ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, }; struct acpi_subtable_entry { @@ -66940,7 +82830,7 @@ struct acpi_platform_list { u32 data; }; -typedef char *acpi_string; +typedef u32 (*acpi_interface_handler)(acpi_string, u32); struct acpi_osi_entry { char string[64]; @@ -66969,14 +82859,6 @@ typedef void (*acpi_osd_exec_callback)(void *); typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); -typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); - -typedef void (*acpi_object_handler)(acpi_handle, void *); - -typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); - -typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); - struct acpi_pci_id { u16 segment; u16 bus; @@ -67008,6 +82890,20 @@ typedef enum { OSL_EC_BURST_HANDLER = 6, } acpi_execute_type; +struct acpi_debugger_ops { + int (*create_thread)(acpi_osd_exec_callback, void *); + ssize_t (*write_log)(const char *); + ssize_t (*read_cmd)(char *, size_t); + int (*wait_command_ready)(bool, char *, size_t); + int (*notify_command_complete)(void); +}; + +struct acpi_debugger { + const struct acpi_debugger_ops *ops; + struct module *owner; + struct mutex lock; +}; + union acpi_operand_object; struct acpi_namespace_node { @@ -67616,6 +83512,10 @@ struct acpi_parse_obj_common { struct acpi_namespace_node *node; union acpi_parse_value value; u8 arg_list_length; + u16 disasm_flags; + u8 disasm_opcode; + char *operator_symbol; + char aml_op_name[16]; }; struct acpi_parse_obj_named { @@ -67628,6 +83528,10 @@ struct acpi_parse_obj_named { struct acpi_namespace_node *node; union acpi_parse_value value; u8 arg_list_length; + u16 disasm_flags; + u8 disasm_opcode; + char *operator_symbol; + char aml_op_name[16]; char *path; u8 *data; u32 length; @@ -67644,6 +83548,10 @@ struct acpi_parse_obj_asl { struct acpi_namespace_node *node; union acpi_parse_value value; u8 arg_list_length; + u16 disasm_flags; + u8 disasm_opcode; + char *operator_symbol; + char aml_op_name[16]; union acpi_parse_object *child; union acpi_parse_object *parent_method; char *filename; @@ -67751,6 +83659,7 @@ union acpi_generic_state { }; struct acpi_opcode_info { + char *name; u32 parse_args; u32 runtime_args; u16 flags; @@ -67782,11 +83691,6 @@ struct acpi_hp_work { u32 src; }; -struct acpi_object_list { - u32 count; - union acpi_object *pointer; -}; - struct acpi_pld_info { u8 revision; u8 ignore_color; @@ -67872,23 +83776,6 @@ struct acpi_table_facs { u8 reserved1[24]; }; -struct lpi_device_info { - char *name; - int enabled; - union acpi_object *package; -}; - -struct lpi_device_constraint { - int uid; - int min_dstate; - int function_states; -}; - -struct lpi_constraints { - acpi_handle handle; - int min_dstate; -}; - struct acpi_hardware_id { struct list_head list; const char *id; @@ -67923,6 +83810,10 @@ struct acpi_device_physical_node { bool put_online: 1; }; +typedef u32 (*acpi_event_handler)(void *); + +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + enum acpi_bus_device_type { ACPI_BUS_TYPE_DEVICE = 0, ACPI_BUS_TYPE_POWER = 1, @@ -67997,6 +83888,12 @@ struct acpi_table_stao { u8 ignore_uart; } __attribute__((packed)); +struct acpi_dep_data { + struct list_head node; + acpi_handle supplier; + acpi_handle consumer; +}; + enum acpi_reconfig_event { ACPI_RECONFIG_DEVICE_ADD = 0, ACPI_RECONFIG_DEVICE_REMOVE = 1, @@ -68017,16 +83914,9 @@ struct acpi_probe_entry { kernel_ulong_t driver_data; }; -struct acpi_dep_data { - struct list_head node; - acpi_handle master; - acpi_handle slave; -}; - -struct acpi_table_events_work { +struct acpi_scan_clear_dep_work { struct work_struct work; - void *table; - u32 event; + struct acpi_device *adev; }; struct resource_win { @@ -68034,6 +83924,15 @@ struct resource_win { resource_size_t offset; }; +struct irq_override_cmp { + const struct dmi_system_id *system; + unsigned char irq; + unsigned char triggering; + unsigned char polarity; + unsigned char shareable; + bool override; +}; + struct res_proc_context { struct list_head *list; int (*preproc)(struct acpi_resource *, void *); @@ -68294,11 +84193,10 @@ struct acpi_power_dependent_device { struct acpi_power_resource { struct acpi_device device; struct list_head list_node; - char *name; u32 system_level; u32 order; unsigned int ref_count; - bool wakeup_enabled; + u8 state; struct mutex resource_lock; struct list_head dependents; }; @@ -68348,12 +84246,24 @@ struct acpi_ged_event { acpi_handle handle; }; +typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); + struct acpi_table_bert { struct acpi_table_header header; u32 region_length; u64 address; }; +struct acpi_dlayer { + const char *name; + long unsigned int value; +}; + +struct acpi_dlevel { + const char *name; + long unsigned int value; +}; + struct acpi_table_attr { struct bin_attribute attr; char name[4]; @@ -68392,6 +84302,36 @@ struct override_status_id { long long unsigned int status; }; +struct acpi_s2idle_dev_ops { + struct list_head list_node; + void (*prepare)(void); + void (*restore)(void); +}; + +struct lpi_device_info { + char *name; + int enabled; + union acpi_object *package; +}; + +struct lpi_device_constraint { + int uid; + int min_dstate; + int function_states; +}; + +struct lpi_constraints { + acpi_handle handle; + int min_dstate; +}; + +struct lpi_device_constraint_amd { + char *name; + int enabled; + int function_states; + int min_dstate; +}; + struct acpi_lpat { int temp; int raw; @@ -68402,6 +84342,59 @@ struct acpi_lpat_conversion_table { int lpat_count; }; +enum fpdt_subtable_type { + SUBTABLE_FBPT = 0, + SUBTABLE_S3PT = 1, +}; + +struct fpdt_subtable_entry { + u16 type; + u8 length; + u8 revision; + u32 reserved; + u64 address; +}; + +struct fpdt_subtable_header { + u32 signature; + u32 length; +}; + +enum fpdt_record_type { + RECORD_S3_RESUME = 0, + RECORD_S3_SUSPEND = 1, + RECORD_BOOT = 2, +}; + +struct fpdt_record_header { + u16 type; + u8 length; + u8 revision; +}; + +struct resume_performance_record { + struct fpdt_record_header header; + u32 resume_count; + u64 resume_prev; + u64 resume_avg; +}; + +struct boot_performance_record { + struct fpdt_record_header header; + u32 reserved; + u64 firmware_start; + u64 bootloader_load; + u64 bootloader_launch; + u64 exitbootservice_start; + u64 exitbootservice_end; +}; + +struct suspend_performance_record { + struct fpdt_record_header header; + u64 suspend_start; + u64 suspend_end; +} __attribute__((packed)); + struct acpi_table_lpit { struct acpi_table_header header; }; @@ -68454,70 +84447,74 @@ struct acpi_wdat_entry { u32 mask; }; -enum { - ACPI_REFCLASS_LOCAL = 0, - ACPI_REFCLASS_ARG = 1, - ACPI_REFCLASS_REFOF = 2, - ACPI_REFCLASS_INDEX = 3, - ACPI_REFCLASS_TABLE = 4, - ACPI_REFCLASS_NAME = 5, - ACPI_REFCLASS_DEBUG = 6, - ACPI_REFCLASS_MAX = 6, +typedef u64 acpi_integer; + +struct acpi_prmt_module_info { + u16 revision; + u16 length; + u8 module_guid[16]; + u16 major_rev; + u16 minor_rev; + u16 handler_info_count; + u32 handler_info_offset; + u64 mmio_list_pointer; +} __attribute__((packed)); + +struct acpi_prmt_handler_info { + u16 revision; + u16 length; + u8 handler_guid[16]; + u64 handler_address; + u64 static_data_buffer_address; + u64 acpi_param_buffer_address; +} __attribute__((packed)); + +struct prm_mmio_addr_range { + u64 phys_addr; + u64 virt_addr; + u32 length; +} __attribute__((packed)); + +struct prm_mmio_info { + u64 mmio_count; + struct prm_mmio_addr_range addr_ranges[0]; }; -struct acpi_common_descriptor { - void *common_pointer; - u8 descriptor_type; +struct prm_buffer { + u8 prm_status; + u64 efi_status; + u8 prm_cmd; + guid_t handler_guid; +} __attribute__((packed)); + +struct prm_context_buffer { + char signature[4]; + u16 revision; + u16 reserved; + guid_t identifier; + u64 static_data_buffer; + struct prm_mmio_info *mmio_ranges; }; -union acpi_descriptor { - struct acpi_common_descriptor common; - union acpi_operand_object object; - struct acpi_namespace_node node; - union acpi_parse_object op; +struct prm_handler_info { + guid_t guid; + u64 handler_addr; + u64 static_data_buffer_addr; + u64 acpi_param_buffer_addr; + struct list_head handler_list; }; -struct acpi_create_field_info { - struct acpi_namespace_node *region_node; - struct acpi_namespace_node *field_node; - struct acpi_namespace_node *register_node; - struct acpi_namespace_node *data_register_node; - struct acpi_namespace_node *connection_node; - u8 *resource_buffer; - u32 bank_value; - u32 field_bit_position; - u32 field_bit_length; - u16 resource_length; - u16 pin_number_index; - u8 field_flags; - u8 attribute; - u8 field_type; - u8 access_length; +struct prm_module_info { + guid_t guid; + u16 major_rev; + u16 minor_rev; + u16 handler_count; + struct prm_mmio_info *mmio_info; + bool updatable; + struct list_head module_list; + struct prm_handler_info handlers[0]; }; -struct acpi_init_walk_info { - u32 table_index; - u32 object_count; - u32 method_count; - u32 serial_method_count; - u32 non_serial_method_count; - u32 serialized_method_count; - u32 device_count; - u32 op_region_count; - u32 field_count; - u32 buffer_count; - u32 package_count; - u32 op_region_init; - u32 field_init; - u32 buffer_init; - u32 package_init; - acpi_owner_id owner_id; -}; - -typedef u32 acpi_name; - -typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); - struct acpi_name_info { char name[4]; u16 argument_list; @@ -68585,12 +84582,26 @@ struct acpi_evaluate_info { }; enum { - AML_FIELD_ACCESS_ANY = 0, - AML_FIELD_ACCESS_BYTE = 1, - AML_FIELD_ACCESS_WORD = 2, - AML_FIELD_ACCESS_DWORD = 3, - AML_FIELD_ACCESS_QWORD = 4, - AML_FIELD_ACCESS_BUFFER = 5, + ACPI_REFCLASS_LOCAL = 0, + ACPI_REFCLASS_ARG = 1, + ACPI_REFCLASS_REFOF = 2, + ACPI_REFCLASS_INDEX = 3, + ACPI_REFCLASS_TABLE = 4, + ACPI_REFCLASS_NAME = 5, + ACPI_REFCLASS_DEBUG = 6, + ACPI_REFCLASS_MAX = 6, +}; + +struct acpi_common_descriptor { + void *common_pointer; + u8 descriptor_type; +}; + +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; }; typedef enum { @@ -68599,12 +84610,58 @@ typedef enum { ACPI_IMODE_EXECUTE = 3, } acpi_interpreter_mode; +struct acpi_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; +}; + +struct acpi_init_walk_info { + u32 table_index; + u32 object_count; + u32 method_count; + u32 serial_method_count; + u32 non_serial_method_count; + u32 serialized_method_count; + u32 device_count; + u32 op_region_count; + u32 field_count; + u32 buffer_count; + u32 package_count; + u32 op_region_init; + u32 field_init; + u32 buffer_init; + u32 package_init; + acpi_owner_id owner_id; +}; + +typedef u32 acpi_name; + +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); + +enum { + AML_FIELD_ACCESS_ANY = 0, + AML_FIELD_ACCESS_BYTE = 1, + AML_FIELD_ACCESS_WORD = 2, + AML_FIELD_ACCESS_DWORD = 3, + AML_FIELD_ACCESS_QWORD = 4, + AML_FIELD_ACCESS_BUFFER = 5, +}; + typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); -typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); - -typedef u32 (*acpi_event_handler)(void *); - struct acpi_fixed_event_handler { acpi_event_handler handler; void *context; @@ -68617,6 +84674,8 @@ struct acpi_fixed_event_info { u16 enable_bit_mask; }; +typedef u32 acpi_mutex_handle; + struct acpi_gpe_walk_info { struct acpi_namespace_node *gpe_device; struct acpi_gpe_block_info *gpe_block; @@ -68648,6 +84707,12 @@ struct acpi_sci_handler_info { void *context; }; +struct acpi_exdump_info { + u8 opcode; + u8 offset; + const char *name; +} __attribute__((packed)); + enum { AML_FIELD_UPDATE_PRESERVE = 0, AML_FIELD_UPDATE_WRITE_AS_ONES = 32, @@ -68712,6 +84777,13 @@ struct acpi_pci_device { struct acpi_pci_device *next; }; +struct acpi_walk_info { + u32 debug_level; + u32 count; + acpi_owner_id owner_id; + u8 display_type; +}; + typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); struct acpi_device_walk_info { @@ -68722,6 +84794,8 @@ struct acpi_device_walk_info { u32 num_INI; }; +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); + struct acpi_table_list { struct acpi_table_desc *tables; u32 current_table_count; @@ -68771,8 +84845,6 @@ struct acpi_namestring_info { u8 fully_qualified; }; -typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); - struct acpi_rw_lock { void *writer_mutex; void *reader_mutex; @@ -68989,6 +85061,18 @@ struct aml_resource_common_serialbus { u16 type_data_length; } __attribute__((packed)); +struct aml_resource_csi2_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + struct aml_resource_i2c_serialbus { u8 descriptor_type; u16 resource_length; @@ -69130,6 +85214,7 @@ union aml_resource { struct aml_resource_i2c_serialbus i2c_serial_bus; struct aml_resource_spi_serialbus spi_serial_bus; struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; struct aml_resource_common_serialbus common_serial_bus; struct aml_resource_pin_function pin_function; struct aml_resource_pin_config pin_config; @@ -69156,36 +85241,69 @@ enum { ACPI_RSC_1BITFLAG = 3, ACPI_RSC_2BITFLAG = 4, ACPI_RSC_3BITFLAG = 5, - ACPI_RSC_ADDRESS = 6, - ACPI_RSC_BITMASK = 7, - ACPI_RSC_BITMASK16 = 8, - ACPI_RSC_COUNT = 9, - ACPI_RSC_COUNT16 = 10, - ACPI_RSC_COUNT_GPIO_PIN = 11, - ACPI_RSC_COUNT_GPIO_RES = 12, - ACPI_RSC_COUNT_GPIO_VEN = 13, - ACPI_RSC_COUNT_SERIAL_RES = 14, - ACPI_RSC_COUNT_SERIAL_VEN = 15, - ACPI_RSC_DATA8 = 16, - ACPI_RSC_EXIT_EQ = 17, - ACPI_RSC_EXIT_LE = 18, - ACPI_RSC_EXIT_NE = 19, - ACPI_RSC_LENGTH = 20, - ACPI_RSC_MOVE_GPIO_PIN = 21, - ACPI_RSC_MOVE_GPIO_RES = 22, - ACPI_RSC_MOVE_SERIAL_RES = 23, - ACPI_RSC_MOVE_SERIAL_VEN = 24, - ACPI_RSC_MOVE8 = 25, - ACPI_RSC_MOVE16 = 26, - ACPI_RSC_MOVE32 = 27, - ACPI_RSC_MOVE64 = 28, - ACPI_RSC_SET8 = 29, - ACPI_RSC_SOURCE = 30, - ACPI_RSC_SOURCEX = 31, + ACPI_RSC_6BITFLAG = 6, + ACPI_RSC_ADDRESS = 7, + ACPI_RSC_BITMASK = 8, + ACPI_RSC_BITMASK16 = 9, + ACPI_RSC_COUNT = 10, + ACPI_RSC_COUNT16 = 11, + ACPI_RSC_COUNT_GPIO_PIN = 12, + ACPI_RSC_COUNT_GPIO_RES = 13, + ACPI_RSC_COUNT_GPIO_VEN = 14, + ACPI_RSC_COUNT_SERIAL_RES = 15, + ACPI_RSC_COUNT_SERIAL_VEN = 16, + ACPI_RSC_DATA8 = 17, + ACPI_RSC_EXIT_EQ = 18, + ACPI_RSC_EXIT_LE = 19, + ACPI_RSC_EXIT_NE = 20, + ACPI_RSC_LENGTH = 21, + ACPI_RSC_MOVE_GPIO_PIN = 22, + ACPI_RSC_MOVE_GPIO_RES = 23, + ACPI_RSC_MOVE_SERIAL_RES = 24, + ACPI_RSC_MOVE_SERIAL_VEN = 25, + ACPI_RSC_MOVE8 = 26, + ACPI_RSC_MOVE16 = 27, + ACPI_RSC_MOVE32 = 28, + ACPI_RSC_MOVE64 = 29, + ACPI_RSC_SET8 = 30, + ACPI_RSC_SOURCE = 31, + ACPI_RSC_SOURCEX = 32, }; typedef u16 acpi_rs_length; +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); + +struct acpi_rsdump_info { + u8 opcode; + u8 offset; + const char *name; + const char **pointer; +} __attribute__((packed)); + +enum { + ACPI_RSD_TITLE = 0, + ACPI_RSD_1BITFLAG = 1, + ACPI_RSD_2BITFLAG = 2, + ACPI_RSD_3BITFLAG = 3, + ACPI_RSD_6BITFLAG = 4, + ACPI_RSD_ADDRESS = 5, + ACPI_RSD_DWORDLIST = 6, + ACPI_RSD_LITERAL = 7, + ACPI_RSD_LONGLIST = 8, + ACPI_RSD_SHORTLIST = 9, + ACPI_RSD_SHORTLISTX = 10, + ACPI_RSD_SOURCE = 11, + ACPI_RSD_STRING = 12, + ACPI_RSD_UINT8 = 13, + ACPI_RSD_UINT16 = 14, + ACPI_RSD_UINT32 = 15, + ACPI_RSD_UINT64 = 16, + ACPI_RSD_WORDLIST = 17, + ACPI_RSD_LABEL = 18, + ACPI_RSD_SOURCE_LABEL = 19, +}; + typedef u32 acpi_rsdesc_size; struct acpi_vendor_uuid { @@ -69193,16 +85311,12 @@ struct acpi_vendor_uuid { u8 data[16]; }; -typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); - struct acpi_vendor_walk_info { struct acpi_vendor_uuid *uuid; struct acpi_buffer *buffer; acpi_status status; }; -typedef acpi_status (*acpi_table_handler)(u32, void *, void *); - struct acpi_fadt_info { const char *name; u16 address64; @@ -69248,8 +85362,6 @@ struct acpi_exception_info { char *name; }; -typedef u32 (*acpi_interface_handler)(acpi_string, u32); - struct acpi_mutex_info { void *mutex; u32 use_count; @@ -69268,11 +85380,664 @@ struct acpi_interface_info { u8 value; }; -typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); +struct acpi_handler_info { + void *handler; + char *name; +}; -typedef u32 acpi_mutex_handle; +struct acpi_db_method_info { + acpi_handle method; + acpi_handle main_thread_gate; + acpi_handle thread_complete_gate; + acpi_handle info_gate; + u64 *threads; + u32 num_threads; + u32 num_created; + u32 num_completed; + char *name; + u32 flags; + u32 num_loops; + char pathname[512]; + char **args; + acpi_object_type *types; + char init_args; + acpi_object_type arg_types[7]; + char *arguments[7]; + char num_threads_str[11]; + char id_of_thread_str[11]; + char index_of_thread_str[11]; +}; -typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); +struct history_info { + char *command; + u32 cmd_num; +}; + +typedef struct history_info HISTORY_INFO; + +struct acpi_db_command_info { + const char *name; + u8 min_args; +}; + +struct acpi_db_command_help { + u8 line_count; + char *invocation; + char *description; +}; + +enum acpi_ex_debugger_commands { + CMD_NOT_FOUND = 0, + CMD_NULL = 1, + CMD_ALL = 2, + CMD_ALLOCATIONS = 3, + CMD_ARGS = 4, + CMD_ARGUMENTS = 5, + CMD_BREAKPOINT = 6, + CMD_BUSINFO = 7, + CMD_CALL = 8, + CMD_DEBUG = 9, + CMD_DISASSEMBLE = 10, + CMD_DISASM = 11, + CMD_DUMP = 12, + CMD_EVALUATE = 13, + CMD_EXECUTE = 14, + CMD_EXIT = 15, + CMD_FIELDS = 16, + CMD_FIND = 17, + CMD_GO = 18, + CMD_HANDLERS = 19, + CMD_HELP = 20, + CMD_HELP2 = 21, + CMD_HISTORY = 22, + CMD_HISTORY_EXE = 23, + CMD_HISTORY_LAST = 24, + CMD_INFORMATION = 25, + CMD_INTEGRITY = 26, + CMD_INTO = 27, + CMD_LEVEL = 28, + CMD_LIST = 29, + CMD_LOCALS = 30, + CMD_LOCKS = 31, + CMD_METHODS = 32, + CMD_NAMESPACE = 33, + CMD_NOTIFY = 34, + CMD_OBJECTS = 35, + CMD_OSI = 36, + CMD_OWNER = 37, + CMD_PATHS = 38, + CMD_PREDEFINED = 39, + CMD_PREFIX = 40, + CMD_QUIT = 41, + CMD_REFERENCES = 42, + CMD_RESOURCES = 43, + CMD_RESULTS = 44, + CMD_SET = 45, + CMD_STATS = 46, + CMD_STOP = 47, + CMD_TABLES = 48, + CMD_TEMPLATE = 49, + CMD_TRACE = 50, + CMD_TREE = 51, + CMD_TYPE = 52, +}; + +struct acpi_db_execute_walk { + u32 count; + u32 max_count; + char name_seg[5]; +}; + +struct acpi_integrity_info { + u32 nodes; + u32 objects; +}; + +struct acpi_object_info { + u32 types[28]; +}; + +struct acpi_region_walk_info { + u32 debug_level; + u32 count; + acpi_owner_id owner_id; + u8 display_type; + u32 address_space_id; +}; + +struct acpi_db_argument_info { + const char *name; +}; + +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, +}; + +struct led_hw_trigger_type { + int dummy; +}; + +struct led_pattern; + +struct led_trigger; + +struct led_classdev { + const char *name; + unsigned int brightness; + unsigned int max_brightness; + int flags; + long unsigned int work_flags; + void (*brightness_set)(struct led_classdev *, enum led_brightness); + int (*brightness_set_blocking)(struct led_classdev *, enum led_brightness); + enum led_brightness (*brightness_get)(struct led_classdev *); + int (*blink_set)(struct led_classdev *, long unsigned int *, long unsigned int *); + int (*pattern_set)(struct led_classdev *, struct led_pattern *, u32, int); + int (*pattern_clear)(struct led_classdev *); + struct device *dev; + const struct attribute_group **groups; + struct list_head node; + const char *default_trigger; + long unsigned int blink_delay_on; + long unsigned int blink_delay_off; + struct timer_list blink_timer; + int blink_brightness; + int new_blink_brightness; + void (*flash_resume)(struct led_classdev *); + struct work_struct set_brightness_work; + int delayed_set_value; + struct rw_semaphore trigger_lock; + struct led_trigger *trigger; + struct list_head trig_list; + void *trigger_data; + bool activated; + struct led_hw_trigger_type *trigger_type; + int brightness_hw_changed; + struct kernfs_node *brightness_hw_changed_kn; + struct mutex led_access; +}; + +struct led_pattern { + u32 delta_t; + int brightness; +}; + +struct led_trigger { + const char *name; + int (*activate)(struct led_classdev *); + void (*deactivate)(struct led_classdev *); + enum led_brightness brightness; + struct led_hw_trigger_type *trigger_type; + spinlock_t leddev_list_lock; + struct list_head led_cdevs; + struct list_head next_trig; + const struct attribute_group **groups; +}; + +enum power_supply_property { + POWER_SUPPLY_PROP_STATUS = 0, + POWER_SUPPLY_PROP_CHARGE_TYPE = 1, + POWER_SUPPLY_PROP_HEALTH = 2, + POWER_SUPPLY_PROP_PRESENT = 3, + POWER_SUPPLY_PROP_ONLINE = 4, + POWER_SUPPLY_PROP_AUTHENTIC = 5, + POWER_SUPPLY_PROP_TECHNOLOGY = 6, + POWER_SUPPLY_PROP_CYCLE_COUNT = 7, + POWER_SUPPLY_PROP_VOLTAGE_MAX = 8, + POWER_SUPPLY_PROP_VOLTAGE_MIN = 9, + POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10, + POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11, + POWER_SUPPLY_PROP_VOLTAGE_NOW = 12, + POWER_SUPPLY_PROP_VOLTAGE_AVG = 13, + POWER_SUPPLY_PROP_VOLTAGE_OCV = 14, + POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15, + POWER_SUPPLY_PROP_CURRENT_MAX = 16, + POWER_SUPPLY_PROP_CURRENT_NOW = 17, + POWER_SUPPLY_PROP_CURRENT_AVG = 18, + POWER_SUPPLY_PROP_CURRENT_BOOT = 19, + POWER_SUPPLY_PROP_POWER_NOW = 20, + POWER_SUPPLY_PROP_POWER_AVG = 21, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22, + POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23, + POWER_SUPPLY_PROP_CHARGE_FULL = 24, + POWER_SUPPLY_PROP_CHARGE_EMPTY = 25, + POWER_SUPPLY_PROP_CHARGE_NOW = 26, + POWER_SUPPLY_PROP_CHARGE_AVG = 27, + POWER_SUPPLY_PROP_CHARGE_COUNTER = 28, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33, + POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34, + POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35, + POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36, + POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 37, + POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 38, + POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 39, + POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 40, + POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 41, + POWER_SUPPLY_PROP_ENERGY_FULL = 42, + POWER_SUPPLY_PROP_ENERGY_EMPTY = 43, + POWER_SUPPLY_PROP_ENERGY_NOW = 44, + POWER_SUPPLY_PROP_ENERGY_AVG = 45, + POWER_SUPPLY_PROP_CAPACITY = 46, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 47, + POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 48, + POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 49, + POWER_SUPPLY_PROP_CAPACITY_LEVEL = 50, + POWER_SUPPLY_PROP_TEMP = 51, + POWER_SUPPLY_PROP_TEMP_MAX = 52, + POWER_SUPPLY_PROP_TEMP_MIN = 53, + POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 54, + POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 55, + POWER_SUPPLY_PROP_TEMP_AMBIENT = 56, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 57, + POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 58, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 59, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 60, + POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 61, + POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 62, + POWER_SUPPLY_PROP_TYPE = 63, + POWER_SUPPLY_PROP_USB_TYPE = 64, + POWER_SUPPLY_PROP_SCOPE = 65, + POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 66, + POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 67, + POWER_SUPPLY_PROP_CALIBRATE = 68, + POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 69, + POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 70, + POWER_SUPPLY_PROP_MANUFACTURE_DAY = 71, + POWER_SUPPLY_PROP_MODEL_NAME = 72, + POWER_SUPPLY_PROP_MANUFACTURER = 73, + POWER_SUPPLY_PROP_SERIAL_NUMBER = 74, +}; + +enum power_supply_type { + POWER_SUPPLY_TYPE_UNKNOWN = 0, + POWER_SUPPLY_TYPE_BATTERY = 1, + POWER_SUPPLY_TYPE_UPS = 2, + POWER_SUPPLY_TYPE_MAINS = 3, + POWER_SUPPLY_TYPE_USB = 4, + POWER_SUPPLY_TYPE_USB_DCP = 5, + POWER_SUPPLY_TYPE_USB_CDP = 6, + POWER_SUPPLY_TYPE_USB_ACA = 7, + POWER_SUPPLY_TYPE_USB_TYPE_C = 8, + POWER_SUPPLY_TYPE_USB_PD = 9, + POWER_SUPPLY_TYPE_USB_PD_DRP = 10, + POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11, + POWER_SUPPLY_TYPE_WIRELESS = 12, +}; + +enum power_supply_usb_type { + POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, + POWER_SUPPLY_USB_TYPE_SDP = 1, + POWER_SUPPLY_USB_TYPE_DCP = 2, + POWER_SUPPLY_USB_TYPE_CDP = 3, + POWER_SUPPLY_USB_TYPE_ACA = 4, + POWER_SUPPLY_USB_TYPE_C = 5, + POWER_SUPPLY_USB_TYPE_PD = 6, + POWER_SUPPLY_USB_TYPE_PD_DRP = 7, + POWER_SUPPLY_USB_TYPE_PD_PPS = 8, + POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, +}; + +union power_supply_propval { + int intval; + const char *strval; +}; + +struct power_supply_config { + struct device_node *of_node; + struct fwnode_handle *fwnode; + void *drv_data; + const struct attribute_group **attr_grp; + char **supplied_to; + size_t num_supplicants; +}; + +struct power_supply; + +struct power_supply_desc { + const char *name; + enum power_supply_type type; + const enum power_supply_usb_type *usb_types; + size_t num_usb_types; + const enum power_supply_property *properties; + size_t num_properties; + int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *); + int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *); + int (*property_is_writeable)(struct power_supply *, enum power_supply_property); + void (*external_power_changed)(struct power_supply *); + void (*set_charged)(struct power_supply *); + bool no_thermal; + int use_for_apm; +}; + +struct thermal_zone_device; + +struct power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool initialized; + bool removing; + atomic_t use_cnt; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; + struct led_trigger *charging_full_trig; + char *charging_full_trig_name; + struct led_trigger *charging_trig; + char *charging_trig_name; + struct led_trigger *full_trig; + char *full_trig_name; + struct led_trigger *online_trig; + char *online_trig_name; + struct led_trigger *charging_blink_full_solid_trig; + char *charging_blink_full_solid_trig_name; +}; + +struct acpi_ac_bl { + const char *hid; + int hrv; +}; + +struct acpi_ac { + struct power_supply *charger; + struct power_supply_desc charger_desc; + struct acpi_device *device; + long long unsigned int state; + struct notifier_block battery_nb; +}; + +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; +}; + +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; +}; + +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; +}; + +struct ff_replay { + __u16 length; + __u16 delay; +}; + +struct ff_trigger { + __u16 button; + __u16 interval; +}; + +struct ff_envelope { + __u16 attack_length; + __u16 attack_level; + __u16 fade_length; + __u16 fade_level; +}; + +struct ff_constant_effect { + __s16 level; + struct ff_envelope envelope; +}; + +struct ff_ramp_effect { + __s16 start_level; + __s16 end_level; + struct ff_envelope envelope; +}; + +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; +}; + +struct ff_periodic_effect { + __u16 waveform; + __u16 period; + __s16 magnitude; + __s16 offset; + __u16 phase; + struct ff_envelope envelope; + __u32 custom_len; + __s16 *custom_data; +}; + +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; +}; + +struct ff_effect { + __u16 type; + __s16 id; + __u16 direction; + struct ff_trigger trigger; + struct ff_replay replay; + union { + struct ff_constant_effect constant; + struct ff_ramp_effect ramp; + struct ff_periodic_effect periodic; + struct ff_condition_effect condition[2]; + struct ff_rumble_effect rumble; + } u; +}; + +struct input_device_id { + kernel_ulong_t flags; + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; + kernel_ulong_t evbit[1]; + kernel_ulong_t keybit[12]; + kernel_ulong_t relbit[1]; + kernel_ulong_t absbit[1]; + kernel_ulong_t mscbit[1]; + kernel_ulong_t ledbit[1]; + kernel_ulong_t sndbit[1]; + kernel_ulong_t ffbit[2]; + kernel_ulong_t swbit[1]; + kernel_ulong_t propbit[1]; + kernel_ulong_t driver_info; +}; + +struct input_value { + __u16 type; + __u16 code; + __s32 value; +}; + +enum input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, +}; + +struct ff_device; + +struct input_dev_poller; + +struct input_mt; + +struct input_handle; + +struct input_dev { + const char *name; + const char *phys; + const char *uniq; + struct input_id id; + long unsigned int propbit[1]; + long unsigned int evbit[1]; + long unsigned int keybit[12]; + long unsigned int relbit[1]; + long unsigned int absbit[1]; + long unsigned int mscbit[1]; + long unsigned int ledbit[1]; + long unsigned int sndbit[1]; + long unsigned int ffbit[2]; + long unsigned int swbit[1]; + unsigned int hint_events_per_packet; + unsigned int keycodemax; + unsigned int keycodesize; + void *keycode; + int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *); + int (*getkeycode)(struct input_dev *, struct input_keymap_entry *); + struct ff_device *ff; + struct input_dev_poller *poller; + unsigned int repeat_key; + struct timer_list timer; + int rep[2]; + struct input_mt *mt; + struct input_absinfo *absinfo; + long unsigned int key[12]; + long unsigned int led[1]; + long unsigned int snd[1]; + long unsigned int sw[1]; + int (*open)(struct input_dev *); + void (*close)(struct input_dev *); + int (*flush)(struct input_dev *, struct file *); + int (*event)(struct input_dev *, unsigned int, unsigned int, int); + struct input_handle *grab; + spinlock_t event_lock; + struct mutex mutex; + unsigned int users; + bool going_away; + struct device dev; + struct list_head h_list; + struct list_head node; + unsigned int num_vals; + unsigned int max_vals; + struct input_value *vals; + bool devres_managed; + ktime_t timestamp[3]; + bool inhibited; +}; + +struct ff_device { + int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *); + int (*erase)(struct input_dev *, int); + int (*playback)(struct input_dev *, int, int); + void (*set_gain)(struct input_dev *, u16); + void (*set_autocenter)(struct input_dev *, u16); + void (*destroy)(struct ff_device *); + void *private; + long unsigned int ffbit[2]; + struct mutex mutex; + int max_effects; + struct ff_effect *effects; + struct file *effect_owners[0]; +}; + +struct input_handler; + +struct input_handle { + void *private; + int open; + const char *name; + struct input_dev *dev; + struct input_handler *handler; + struct list_head d_node; + struct list_head h_node; +}; + +struct input_handler { + void *private; + void (*event)(struct input_handle *, unsigned int, unsigned int, int); + void (*events)(struct input_handle *, const struct input_value *, unsigned int); + bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); + bool (*match)(struct input_handler *, struct input_dev *); + int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); + void (*disconnect)(struct input_handle *); + void (*start)(struct input_handle *); + bool legacy_minors; + int minor; + const char *name; + const struct input_device_id *id_table; + struct list_head h_list; + struct list_head node; +}; + +enum { + ACPI_BUTTON_LID_INIT_IGNORE = 0, + ACPI_BUTTON_LID_INIT_OPEN = 1, + ACPI_BUTTON_LID_INIT_METHOD = 2, + ACPI_BUTTON_LID_INIT_DISABLED = 3, +}; + +struct acpi_button { + unsigned int type; + struct input_dev *input; + char phys[32]; + long unsigned int pushed; + int last_state; + ktime_t last_time; + bool suspended; + bool lid_state_initialized; +}; + +struct acpi_fan_fps { + u64 control; + u64 trip_point; + u64 speed; + u64 noise_level; + u64 power; + char name[20]; + struct device_attribute dev_attr; +}; + +struct acpi_fan_fif { + u8 revision; + u8 fine_grain_ctrl; + u8 step_size; + u8 low_speed_notification; +}; + +struct acpi_fan_fst { + u64 revision; + u64 control; + u64 speed; +}; + +struct acpi_fan { + bool acpi4; + struct acpi_fan_fif fif; + struct acpi_fan_fps *fps; + int fps_count; + struct thermal_cooling_device *cdev; + struct device_attribute fst_speed; + struct device_attribute fine_grain_control; +}; struct acpi_pci_slot { struct pci_slot *pci_slot; @@ -69334,8 +86099,6 @@ enum thermal_notify_event { THERMAL_EVENT_KEEP_ALIVE = 8, }; -struct thermal_zone_device; - struct thermal_zone_device_ops { int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); @@ -69350,7 +86113,8 @@ struct thermal_zone_device_ops { int (*get_crit_temp)(struct thermal_zone_device *, int *); int (*set_emul_temp)(struct thermal_zone_device *, int); int (*get_trend)(struct thermal_zone_device *, int, enum thermal_trend *); - int (*notify)(struct thermal_zone_device *, int, enum thermal_trip_type); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); }; struct thermal_attr; @@ -69369,17 +86133,16 @@ struct thermal_zone_device { struct thermal_attr *trip_hyst_attrs; enum thermal_device_mode mode; void *devdata; - int trips; + int num_trips; long unsigned int trips_disabled; - int passive_delay; - int polling_delay; + long unsigned int passive_delay_jiffies; + long unsigned int polling_delay_jiffies; int temperature; int last_temperature; int emul_temperature; int passive; int prev_low_trip; int prev_high_trip; - unsigned int forced_passive; atomic_t need_update; struct thermal_zone_device_ops *ops; struct thermal_zone_params *tzp; @@ -69570,7 +86333,8 @@ struct acpi_hmat_locality { struct acpi_hmat_structure header; u8 flags; u8 data_type; - u16 reserved1; + u8 min_transfer_size; + u8 reserved1; u32 number_of_initiator_Pds; u32 number_of_target_Pds; u32 reserved2; @@ -69660,6 +86424,7 @@ struct acpi_memory_info { struct acpi_memory_device { struct acpi_device *device; struct list_head res_list; + int mgid; }; struct acpi_pci_ioapic { @@ -69671,14 +86436,135 @@ struct acpi_pci_ioapic { struct list_head list; }; -struct acpi_table_bgrt { - struct acpi_table_header header; - u16 version; - u8 status; - u8 image_type; - u64 image_address; - u32 image_offset_x; - u32 image_offset_y; +enum dmi_entry_type { + DMI_ENTRY_BIOS = 0, + DMI_ENTRY_SYSTEM = 1, + DMI_ENTRY_BASEBOARD = 2, + DMI_ENTRY_CHASSIS = 3, + DMI_ENTRY_PROCESSOR = 4, + DMI_ENTRY_MEM_CONTROLLER = 5, + DMI_ENTRY_MEM_MODULE = 6, + DMI_ENTRY_CACHE = 7, + DMI_ENTRY_PORT_CONNECTOR = 8, + DMI_ENTRY_SYSTEM_SLOT = 9, + DMI_ENTRY_ONBOARD_DEVICE = 10, + DMI_ENTRY_OEMSTRINGS = 11, + DMI_ENTRY_SYSCONF = 12, + DMI_ENTRY_BIOS_LANG = 13, + DMI_ENTRY_GROUP_ASSOC = 14, + DMI_ENTRY_SYSTEM_EVENT_LOG = 15, + DMI_ENTRY_PHYS_MEM_ARRAY = 16, + DMI_ENTRY_MEM_DEVICE = 17, + DMI_ENTRY_32_MEM_ERROR = 18, + DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, + DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, + DMI_ENTRY_BUILTIN_POINTING_DEV = 21, + DMI_ENTRY_PORTABLE_BATTERY = 22, + DMI_ENTRY_SYSTEM_RESET = 23, + DMI_ENTRY_HW_SECURITY = 24, + DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, + DMI_ENTRY_VOLTAGE_PROBE = 26, + DMI_ENTRY_COOLING_DEV = 27, + DMI_ENTRY_TEMP_PROBE = 28, + DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, + DMI_ENTRY_OOB_REMOTE_ACCESS = 30, + DMI_ENTRY_BIS_ENTRY = 31, + DMI_ENTRY_SYSTEM_BOOT = 32, + DMI_ENTRY_MGMT_DEV = 33, + DMI_ENTRY_MGMT_DEV_COMPONENT = 34, + DMI_ENTRY_MGMT_DEV_THRES = 35, + DMI_ENTRY_MEM_CHANNEL = 36, + DMI_ENTRY_IPMI_DEV = 37, + DMI_ENTRY_SYS_POWER_SUPPLY = 38, + DMI_ENTRY_ADDITIONAL = 39, + DMI_ENTRY_ONBOARD_DEV_EXT = 40, + DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, + DMI_ENTRY_INACTIVE = 126, + DMI_ENTRY_END_OF_TABLE = 127, +}; + +enum { + POWER_SUPPLY_STATUS_UNKNOWN = 0, + POWER_SUPPLY_STATUS_CHARGING = 1, + POWER_SUPPLY_STATUS_DISCHARGING = 2, + POWER_SUPPLY_STATUS_NOT_CHARGING = 3, + POWER_SUPPLY_STATUS_FULL = 4, +}; + +enum { + POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0, + POWER_SUPPLY_TECHNOLOGY_NiMH = 1, + POWER_SUPPLY_TECHNOLOGY_LION = 2, + POWER_SUPPLY_TECHNOLOGY_LIPO = 3, + POWER_SUPPLY_TECHNOLOGY_LiFe = 4, + POWER_SUPPLY_TECHNOLOGY_NiCd = 5, + POWER_SUPPLY_TECHNOLOGY_LiMn = 6, +}; + +enum { + POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0, + POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL = 1, + POWER_SUPPLY_CAPACITY_LEVEL_LOW = 2, + POWER_SUPPLY_CAPACITY_LEVEL_NORMAL = 3, + POWER_SUPPLY_CAPACITY_LEVEL_HIGH = 4, + POWER_SUPPLY_CAPACITY_LEVEL_FULL = 5, +}; + +struct acpi_battery_hook { + const char *name; + int (*add_battery)(struct power_supply *); + int (*remove_battery)(struct power_supply *); + struct list_head list; +}; + +enum { + ACPI_BATTERY_ALARM_PRESENT = 0, + ACPI_BATTERY_XINFO_PRESENT = 1, + ACPI_BATTERY_QUIRK_PERCENTAGE_CAPACITY = 2, + ACPI_BATTERY_QUIRK_THINKPAD_MAH = 3, + ACPI_BATTERY_QUIRK_DEGRADED_FULL_CHARGE = 4, +}; + +struct acpi_battery { + struct mutex lock; + struct mutex sysfs_lock; + struct power_supply *bat; + struct power_supply_desc bat_desc; + struct acpi_device *device; + struct notifier_block pm_nb; + struct list_head list; + long unsigned int update_time; + int revision; + int rate_now; + int capacity_now; + int voltage_now; + int design_capacity; + int full_charge_capacity; + int technology; + int design_voltage; + int design_capacity_warning; + int design_capacity_low; + int cycle_count; + int measurement_accuracy; + int max_sampling_time; + int min_sampling_time; + int max_averaging_interval; + int min_averaging_interval; + int capacity_granularity_1; + int capacity_granularity_2; + int alarm; + char model_number[32]; + char serial_number[32]; + char type[32]; + char oem_info[32]; + int state; + int power_unit; + long unsigned int flags; +}; + +struct acpi_offsets { + size_t offset; + u8 mode; }; struct acpi_pcct_hw_reduced { @@ -69769,6 +86655,7 @@ struct cpc_desc { int cpu_id; int write_cmd_status; int write_cmd_id; + spinlock_t rmw_lock; struct cpc_register_resource cpc_regs[21]; struct acpi_psd_package domain_info; struct kobject kobj; @@ -69798,16 +86685,6 @@ enum cppc_regs { NOMINAL_FREQ = 20, }; -struct cppc_perf_caps { - u32 guaranteed_perf; - u32 highest_perf; - u32 nominal_perf; - u32 lowest_perf; - u32 lowest_nonlinear_perf; - u32 lowest_freq; - u32 nominal_freq; -}; - struct cppc_perf_ctrls { u32 max_perf; u32 min_perf; @@ -69822,11 +86699,10 @@ struct cppc_perf_fb_ctrs { }; struct cppc_cpudata { - int cpu; + struct list_head node; struct cppc_perf_caps perf_caps; struct cppc_perf_ctrls perf_ctrls; struct cppc_perf_fb_ctrs perf_fb_ctrs; - struct cpufreq_policy *cur_policy; unsigned int shared_type; cpumask_var_t shared_cpu_map; }; @@ -69850,6 +86726,21 @@ struct cppc_pcc_data { int refcount; }; +struct acpi_aml_io { + wait_queue_head_t wait; + long unsigned int flags; + long unsigned int users; + struct mutex lock; + struct task_struct *thread; + char out_buf[4096]; + struct circ_buf out_crc; + char in_buf[4096]; + struct circ_buf in_crc; + acpi_osd_exec_callback function; + void *context; + long unsigned int usages; +}; + struct acpi_whea_header { u8 action; u8 instruction; @@ -70208,18 +87099,6 @@ struct ghes_vendor_record_entry { char vendor_record[0]; }; -struct extlog_l1_head { - u32 ver; - u32 hdr_len; - u64 total_len; - u64 elog_base; - u64 elog_len; - u32 flags; - u8 rev0[12]; - u32 entries; - u8 rev1[12]; -}; - struct pmic_table { int address; int reg; @@ -70254,101 +87133,6 @@ struct intel_pmic_opregion { struct intel_pmic_regs_handler_ctx ctx; }; -enum regcache_type { - REGCACHE_NONE = 0, - REGCACHE_RBTREE = 1, - REGCACHE_COMPRESSED = 2, - REGCACHE_FLAT = 3, -}; - -struct reg_default { - unsigned int reg; - unsigned int def; -}; - -enum regmap_endian { - REGMAP_ENDIAN_DEFAULT = 0, - REGMAP_ENDIAN_BIG = 1, - REGMAP_ENDIAN_LITTLE = 2, - REGMAP_ENDIAN_NATIVE = 3, -}; - -struct regmap_range { - unsigned int range_min; - unsigned int range_max; -}; - -struct regmap_access_table { - const struct regmap_range *yes_ranges; - unsigned int n_yes_ranges; - const struct regmap_range *no_ranges; - unsigned int n_no_ranges; -}; - -typedef void (*regmap_lock)(void *); - -typedef void (*regmap_unlock)(void *); - -struct regmap_range_cfg; - -struct regmap_config { - const char *name; - int reg_bits; - int reg_stride; - int pad_bits; - int val_bits; - bool (*writeable_reg)(struct device *, unsigned int); - bool (*readable_reg)(struct device *, unsigned int); - bool (*volatile_reg)(struct device *, unsigned int); - bool (*precious_reg)(struct device *, unsigned int); - bool (*writeable_noinc_reg)(struct device *, unsigned int); - bool (*readable_noinc_reg)(struct device *, unsigned int); - bool disable_locking; - regmap_lock lock; - regmap_unlock unlock; - void *lock_arg; - int (*reg_read)(void *, unsigned int, unsigned int *); - int (*reg_write)(void *, unsigned int, unsigned int); - bool fast_io; - unsigned int max_register; - const struct regmap_access_table *wr_table; - const struct regmap_access_table *rd_table; - const struct regmap_access_table *volatile_table; - const struct regmap_access_table *precious_table; - const struct regmap_access_table *wr_noinc_table; - const struct regmap_access_table *rd_noinc_table; - const struct reg_default *reg_defaults; - unsigned int num_reg_defaults; - enum regcache_type cache_type; - const void *reg_defaults_raw; - unsigned int num_reg_defaults_raw; - long unsigned int read_flag_mask; - long unsigned int write_flag_mask; - bool zero_flag_mask; - bool use_single_read; - bool use_single_write; - bool can_multi_write; - enum regmap_endian reg_format_endian; - enum regmap_endian val_format_endian; - const struct regmap_range_cfg *ranges; - unsigned int num_ranges; - bool use_hwlock; - unsigned int hwlock_id; - unsigned int hwlock_mode; - bool can_sleep; -}; - -struct regmap_range_cfg { - const char *name; - unsigned int range_min; - unsigned int range_max; - unsigned int selector_reg; - unsigned int selector_mask; - int selector_shift; - unsigned int window_start; - unsigned int window_len; -}; - struct regmap_irq_type { unsigned int type_reg_offset; unsigned int type_reg_mask; @@ -70382,6 +87166,7 @@ struct regmap_irq_chip { unsigned int ack_base; unsigned int wake_base; unsigned int type_base; + unsigned int *virt_reg_base; unsigned int irq_reg_stride; bool mask_writeonly: 1; bool init_ack_masked: 1; @@ -70394,13 +87179,17 @@ struct regmap_irq_chip { bool type_invert: 1; bool type_in_mask: 1; bool clear_on_unmask: 1; + bool not_fixed_stride: 1; + bool status_invert: 1; int num_regs; const struct regmap_irq *irqs; int num_irqs; int num_type_reg; + int num_virt_regs; unsigned int type_reg_stride; int (*handle_pre_irq)(void *); int (*handle_post_irq)(void *); + int (*set_type_virt)(unsigned int **, unsigned int, long unsigned int, int); void *irq_drv_data; }; @@ -70429,9 +87218,9 @@ struct mfd_cell { int (*resume)(struct platform_device *); void *platform_data; size_t pdata_size; - const struct property_entry *properties; + const struct software_node *swnode; const char *of_compatible; - const u64 of_reg; + u64 of_reg; bool use_of_reg; const struct mfd_cell_acpi_match *acpi_match; int num_resources; @@ -70442,23 +87231,90 @@ struct mfd_cell { int num_parent_supplies; }; -struct acpi_table_xsdt { +struct tps68470_pmic_table { + u32 address; + u32 reg; + u32 bitmask; +}; + +struct tps68470_pmic_opregion { + struct mutex lock; + struct regmap *regmap; +}; + +struct acpi_table_viot { struct acpi_table_header header; - u64 table_offset_entry[1]; -} __attribute__((packed)); - -struct sfi_table_key { - char *sig; - char *oem_id; - char *oem_table_id; + u16 node_count; + u16 node_offset; + u8 reserved[8]; }; -struct sfi_table_attr { - struct bin_attribute attr; - char name[8]; +struct acpi_viot_header { + u8 type; + u8 reserved; + u16 length; }; -typedef int (*sfi_table_handler)(struct sfi_table_header *); +enum acpi_viot_node_type { + ACPI_VIOT_NODE_PCI_RANGE = 1, + ACPI_VIOT_NODE_MMIO = 2, + ACPI_VIOT_NODE_VIRTIO_IOMMU_PCI = 3, + ACPI_VIOT_NODE_VIRTIO_IOMMU_MMIO = 4, + ACPI_VIOT_RESERVED = 5, +}; + +struct acpi_viot_pci_range { + struct acpi_viot_header header; + u32 endpoint_start; + u16 segment_start; + u16 segment_end; + u16 bdf_start; + u16 bdf_end; + u16 output_node; + u8 reserved[6]; +}; + +struct acpi_viot_mmio { + struct acpi_viot_header header; + u32 endpoint; + u64 base_address; + u16 output_node; + u8 reserved[6]; +}; + +struct acpi_viot_virtio_iommu_pci { + struct acpi_viot_header header; + u16 segment; + u16 bdf; + u8 reserved[8]; +}; + +struct acpi_viot_virtio_iommu_mmio { + struct acpi_viot_header header; + u8 reserved[4]; + u64 base_address; +}; + +struct viot_iommu { + unsigned int offset; + struct fwnode_handle *fwnode; + struct list_head list; +}; + +struct viot_endpoint { + union { + struct { + u16 segment_start; + u16 segment_end; + u16 bdf_start; + u16 bdf_end; + }; + u64 address; + }; + u32 endpoint_id; + struct viot_iommu *viommu; + struct list_head list; +}; struct pnp_resource { struct list_head list; @@ -70533,6 +87389,11 @@ struct clk_bulk_data { struct clk *clk; }; +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); +}; + struct clk_bulk_devres { struct clk_bulk_data *clks; int num_clks; @@ -70548,8 +87409,6 @@ struct clk_lookup { struct clk_hw *clk_hw; }; -struct clk_core; - struct clk_init_data; struct clk_hw { @@ -70628,17 +87487,6 @@ struct clk_notifier { struct list_head node; }; -struct clk { - struct clk_core *core; - struct device *dev; - const char *dev_id; - const char *con_id; - long unsigned int min_rate; - long unsigned int max_rate; - unsigned int exclusive_count; - struct hlist_node clks_node; -}; - struct clk_notifier_data { struct clk *clk; long unsigned int old_rate; @@ -70653,6 +87501,7 @@ struct clk_core { struct clk_hw *hw; struct module *owner; struct device *dev; + struct hlist_node rpm_node; struct device_node *of_node; struct clk_core *parent; struct clk_parent_map *parents; @@ -70704,6 +87553,14 @@ struct trace_event_raw_clk_rate { char __data[0]; }; +struct trace_event_raw_clk_rate_range { + struct trace_entry ent; + u32 __data_loc_name; + long unsigned int min; + long unsigned int max; + char __data[0]; +}; + struct trace_event_raw_clk_parent { struct trace_entry ent; u32 __data_loc_name; @@ -70734,6 +87591,10 @@ struct trace_event_data_offsets_clk_rate { u32 name; }; +struct trace_event_data_offsets_clk_rate_range { + u32 name; +}; + struct trace_event_data_offsets_clk_parent { u32 name; u32 pname; @@ -70767,6 +87628,12 @@ typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, long unsigned typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, long unsigned int); +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, long unsigned int); + +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, long unsigned int, long unsigned int); + typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); @@ -70779,6 +87646,11 @@ typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct c typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); +struct clk_notifier_devres { + struct clk *clk; + struct notifier_block *nb; +}; + struct clk_div_table { unsigned int val; unsigned int div; @@ -70859,13 +87731,55 @@ struct clk_fractional_divider { spinlock_t *lock; }; -struct gpio_desc; - struct clk_gpio { struct clk_hw hw; struct gpio_desc *gpiod; }; +struct icst_params { + long unsigned int ref; + long unsigned int vco_max; + long unsigned int vco_min; + short unsigned int vd_min; + short unsigned int vd_max; + unsigned char rd_min; + unsigned char rd_max; + const unsigned char *s2div; + const unsigned char *idx2s; +}; + +struct icst_vco { + short unsigned int v; + unsigned char r; + unsigned char s; +}; + +enum icst_control_type { + ICST_VERSATILE = 0, + ICST_INTEGRATOR_AP_CM = 1, + ICST_INTEGRATOR_AP_SYS = 2, + ICST_INTEGRATOR_AP_PCI = 3, + ICST_INTEGRATOR_CP_CM_CORE = 4, + ICST_INTEGRATOR_CP_CM_MEM = 5, + ICST_INTEGRATOR_IM_PD1 = 6, +}; + +struct clk_icst_desc { + const struct icst_params *params; + u32 vco_offset; + u32 lock_offset; +}; + +struct clk_icst { + struct clk_hw hw; + struct regmap *map; + u32 vcoreg_off; + u32 lockreg_off; + struct icst_params *params; + long unsigned int rate; + enum icst_control_type ctype; +}; + struct pmc_clk { const char *name; long unsigned int freq; @@ -70898,325 +87812,6 @@ struct clk_plt_data { struct clk_lookup *ether_clk_lookup; }; -typedef s32 dma_cookie_t; - -enum dma_status { - DMA_COMPLETE = 0, - DMA_IN_PROGRESS = 1, - DMA_PAUSED = 2, - DMA_ERROR = 3, - DMA_OUT_OF_ORDER = 4, -}; - -enum dma_transaction_type { - DMA_MEMCPY = 0, - DMA_XOR = 1, - DMA_PQ = 2, - DMA_XOR_VAL = 3, - DMA_PQ_VAL = 4, - DMA_MEMSET = 5, - DMA_MEMSET_SG = 6, - DMA_INTERRUPT = 7, - DMA_PRIVATE = 8, - DMA_ASYNC_TX = 9, - DMA_SLAVE = 10, - DMA_CYCLIC = 11, - DMA_INTERLEAVE = 12, - DMA_COMPLETION_NO_ORDER = 13, - DMA_REPEAT = 14, - DMA_LOAD_EOT = 15, - DMA_TX_TYPE_END = 16, -}; - -enum dma_transfer_direction { - DMA_MEM_TO_MEM = 0, - DMA_MEM_TO_DEV = 1, - DMA_DEV_TO_MEM = 2, - DMA_DEV_TO_DEV = 3, - DMA_TRANS_NONE = 4, -}; - -struct data_chunk { - size_t size; - size_t icg; - size_t dst_icg; - size_t src_icg; -}; - -struct dma_interleaved_template { - dma_addr_t src_start; - dma_addr_t dst_start; - enum dma_transfer_direction dir; - bool src_inc; - bool dst_inc; - bool src_sgl; - bool dst_sgl; - size_t numf; - size_t frame_size; - struct data_chunk sgl[0]; -}; - -enum dma_ctrl_flags { - DMA_PREP_INTERRUPT = 1, - DMA_CTRL_ACK = 2, - DMA_PREP_PQ_DISABLE_P = 4, - DMA_PREP_PQ_DISABLE_Q = 8, - DMA_PREP_CONTINUE = 16, - DMA_PREP_FENCE = 32, - DMA_CTRL_REUSE = 64, - DMA_PREP_CMD = 128, - DMA_PREP_REPEAT = 256, - DMA_PREP_LOAD_EOT = 512, -}; - -enum sum_check_bits { - SUM_CHECK_P = 0, - SUM_CHECK_Q = 1, -}; - -enum sum_check_flags { - SUM_CHECK_P_RESULT = 1, - SUM_CHECK_Q_RESULT = 2, -}; - -typedef struct { - long unsigned int bits[1]; -} dma_cap_mask_t; - -enum dma_desc_metadata_mode { - DESC_METADATA_NONE = 0, - DESC_METADATA_CLIENT = 1, - DESC_METADATA_ENGINE = 2, -}; - -struct dma_chan_percpu { - long unsigned int memcpy_count; - long unsigned int bytes_transferred; -}; - -struct dma_router { - struct device *dev; - void (*route_free)(struct device *, void *); -}; - -struct dma_device; - -struct dma_chan_dev; - -struct dma_chan___2 { - struct dma_device *device; - struct device *slave; - dma_cookie_t cookie; - dma_cookie_t completed_cookie; - int chan_id; - struct dma_chan_dev *dev; - const char *name; - char *dbg_client_name; - struct list_head device_node; - struct dma_chan_percpu *local; - int client_count; - int table_count; - struct dma_router *router; - void *route_data; - void *private; -}; - -typedef bool (*dma_filter_fn)(struct dma_chan___2 *, void *); - -struct dma_slave_map; - -struct dma_filter { - dma_filter_fn fn; - int mapcnt; - const struct dma_slave_map *map; -}; - -enum dmaengine_alignment { - DMAENGINE_ALIGN_1_BYTE = 0, - DMAENGINE_ALIGN_2_BYTES = 1, - DMAENGINE_ALIGN_4_BYTES = 2, - DMAENGINE_ALIGN_8_BYTES = 3, - DMAENGINE_ALIGN_16_BYTES = 4, - DMAENGINE_ALIGN_32_BYTES = 5, - DMAENGINE_ALIGN_64_BYTES = 6, -}; - -enum dma_residue_granularity { - DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, - DMA_RESIDUE_GRANULARITY_SEGMENT = 1, - DMA_RESIDUE_GRANULARITY_BURST = 2, -}; - -struct dma_async_tx_descriptor; - -struct dma_slave_caps; - -struct dma_slave_config; - -struct dma_tx_state; - -struct dma_device { - struct kref ref; - unsigned int chancnt; - unsigned int privatecnt; - struct list_head channels; - struct list_head global_node; - struct dma_filter filter; - dma_cap_mask_t cap_mask; - enum dma_desc_metadata_mode desc_metadata_modes; - short unsigned int max_xor; - short unsigned int max_pq; - enum dmaengine_alignment copy_align; - enum dmaengine_alignment xor_align; - enum dmaengine_alignment pq_align; - enum dmaengine_alignment fill_align; - int dev_id; - struct device *dev; - struct module *owner; - struct ida chan_ida; - struct mutex chan_mutex; - u32 src_addr_widths; - u32 dst_addr_widths; - u32 directions; - u32 min_burst; - u32 max_burst; - u32 max_sg_burst; - bool descriptor_reuse; - enum dma_residue_granularity residue_granularity; - int (*device_alloc_chan_resources)(struct dma_chan___2 *); - void (*device_free_chan_resources)(struct dma_chan___2 *); - struct dma_async_tx_descriptor * (*device_prep_dma_memcpy)(struct dma_chan___2 *, dma_addr_t, dma_addr_t, size_t, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_xor)(struct dma_chan___2 *, dma_addr_t, dma_addr_t *, unsigned int, size_t, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_xor_val)(struct dma_chan___2 *, dma_addr_t *, unsigned int, size_t, enum sum_check_flags *, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_pq)(struct dma_chan___2 *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_pq_val)(struct dma_chan___2 *, dma_addr_t *, dma_addr_t *, unsigned int, const unsigned char *, size_t, enum sum_check_flags *, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_memset)(struct dma_chan___2 *, dma_addr_t, int, size_t, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_memset_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, int, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_interrupt)(struct dma_chan___2 *, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_slave_sg)(struct dma_chan___2 *, struct scatterlist *, unsigned int, enum dma_transfer_direction, long unsigned int, void *); - struct dma_async_tx_descriptor * (*device_prep_dma_cyclic)(struct dma_chan___2 *, dma_addr_t, size_t, size_t, enum dma_transfer_direction, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_interleaved_dma)(struct dma_chan___2 *, struct dma_interleaved_template *, long unsigned int); - struct dma_async_tx_descriptor * (*device_prep_dma_imm_data)(struct dma_chan___2 *, dma_addr_t, u64, long unsigned int); - void (*device_caps)(struct dma_chan___2 *, struct dma_slave_caps *); - int (*device_config)(struct dma_chan___2 *, struct dma_slave_config *); - int (*device_pause)(struct dma_chan___2 *); - int (*device_resume)(struct dma_chan___2 *); - int (*device_terminate_all)(struct dma_chan___2 *); - void (*device_synchronize)(struct dma_chan___2 *); - enum dma_status (*device_tx_status)(struct dma_chan___2 *, dma_cookie_t, struct dma_tx_state *); - void (*device_issue_pending)(struct dma_chan___2 *); - void (*device_release)(struct dma_device *); - void (*dbg_summary_show)(struct seq_file *, struct dma_device *); - struct dentry *dbg_dev_root; -}; - -struct dma_chan_dev { - struct dma_chan___2 *chan; - struct device device; - int dev_id; -}; - -enum dma_slave_buswidth { - DMA_SLAVE_BUSWIDTH_UNDEFINED = 0, - DMA_SLAVE_BUSWIDTH_1_BYTE = 1, - DMA_SLAVE_BUSWIDTH_2_BYTES = 2, - DMA_SLAVE_BUSWIDTH_3_BYTES = 3, - DMA_SLAVE_BUSWIDTH_4_BYTES = 4, - DMA_SLAVE_BUSWIDTH_8_BYTES = 8, - DMA_SLAVE_BUSWIDTH_16_BYTES = 16, - DMA_SLAVE_BUSWIDTH_32_BYTES = 32, - DMA_SLAVE_BUSWIDTH_64_BYTES = 64, -}; - -struct dma_slave_config { - enum dma_transfer_direction direction; - phys_addr_t src_addr; - phys_addr_t dst_addr; - enum dma_slave_buswidth src_addr_width; - enum dma_slave_buswidth dst_addr_width; - u32 src_maxburst; - u32 dst_maxburst; - u32 src_port_window_size; - u32 dst_port_window_size; - bool device_fc; - unsigned int slave_id; -}; - -struct dma_slave_caps { - u32 src_addr_widths; - u32 dst_addr_widths; - u32 directions; - u32 min_burst; - u32 max_burst; - u32 max_sg_burst; - bool cmd_pause; - bool cmd_resume; - bool cmd_terminate; - enum dma_residue_granularity residue_granularity; - bool descriptor_reuse; -}; - -typedef void (*dma_async_tx_callback)(void *); - -enum dmaengine_tx_result { - DMA_TRANS_NOERROR = 0, - DMA_TRANS_READ_FAILED = 1, - DMA_TRANS_WRITE_FAILED = 2, - DMA_TRANS_ABORTED = 3, -}; - -struct dmaengine_result { - enum dmaengine_tx_result result; - u32 residue; -}; - -typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); - -struct dmaengine_unmap_data { - u16 map_cnt; - u8 to_cnt; - u8 from_cnt; - u8 bidi_cnt; - struct device *dev; - struct kref kref; - size_t len; - dma_addr_t addr[0]; -}; - -struct dma_descriptor_metadata_ops { - int (*attach)(struct dma_async_tx_descriptor *, void *, size_t); - void * (*get_ptr)(struct dma_async_tx_descriptor *, size_t *, size_t *); - int (*set_len)(struct dma_async_tx_descriptor *, size_t); -}; - -struct dma_async_tx_descriptor { - dma_cookie_t cookie; - enum dma_ctrl_flags flags; - dma_addr_t phys; - struct dma_chan___2 *chan; - dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); - int (*desc_free)(struct dma_async_tx_descriptor *); - dma_async_tx_callback callback; - dma_async_tx_callback_result callback_result; - void *callback_param; - struct dmaengine_unmap_data *unmap; - enum dma_desc_metadata_mode desc_metadata_mode; - struct dma_descriptor_metadata_ops *metadata_ops; -}; - -struct dma_tx_state { - dma_cookie_t last; - dma_cookie_t used; - u32 residue; - u32 in_flight_bytes; -}; - -struct dma_slave_map { - const char *devname; - const char *slave; - void *param; -}; - struct dma_chan_tbl_ent { struct dma_chan___2 *chan; }; @@ -71351,6 +87946,420 @@ struct hsu_dma_chan { struct hsu_dma_desc *desc; }; +struct of_dma { + struct list_head of_dma_controllers; + struct device_node *of_node; + struct dma_chan___2 * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); + void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); + struct dma_router *dma_router; + void *of_dma_data; +}; + +enum ldma_chan_on_off { + DMA_CH_OFF = 0, + DMA_CH_ON = 1, +}; + +enum { + DMA_TYPE_TX = 0, + DMA_TYPE_RX = 1, + DMA_TYPE_MCPY = 2, +}; + +struct ldma_port; + +struct dw2_desc_sw; + +struct ldma_chan { + struct virt_dma_chan vchan; + struct ldma_port *port; + char name[8]; + int nr; + u32 flags; + enum ldma_chan_on_off onoff; + dma_addr_t desc_phys; + void *desc_base; + u32 desc_cnt; + int rst; + u32 hdrm_len; + bool hdrm_csum; + u32 boff_len; + u32 data_endian; + u32 desc_endian; + bool pden; + bool desc_rx_np; + bool data_endian_en; + bool desc_endian_en; + bool abc_en; + bool desc_init; + struct dma_pool *desc_pool; + u32 desc_num; + struct dw2_desc_sw *ds; + struct work_struct work; + struct dma_slave_config config; +}; + +struct ldma_dev; + +struct ldma_port { + struct ldma_dev *ldev; + u32 portid; + u32 rxbl; + u32 txbl; + u32 rxendi; + u32 txendi; + u32 pkt_drop; +}; + +struct dw2_desc; + +struct dw2_desc_sw { + struct virt_dma_desc vdesc; + struct ldma_chan *chan; + dma_addr_t desc_phys; + size_t desc_cnt; + size_t size; + struct dw2_desc *desc_hw; +}; + +struct reset_control; + +struct ldma_inst_data; + +struct ldma_dev { + struct device *dev; + void *base; + struct reset_control *rst; + struct clk *core_clk; + struct dma_device dma_dev; + u32 ver; + int irq; + struct ldma_port *ports; + struct ldma_chan *chans; + spinlock_t dev_lock; + u32 chan_nrs; + u32 port_nrs; + u32 channels_mask; + u32 flags; + u32 pollcnt; + const struct ldma_inst_data *inst; + struct workqueue_struct *wq; +}; + +struct ldma_inst_data { + bool desc_in_sram; + bool chan_fc; + bool desc_fod; + bool valid_desc_fetch_ack; + u32 orrc; + const char *name; + u32 type; +}; + +struct dw2_desc { + u32 field; + u32 addr; +}; + +struct virtio_driver { + struct device_driver driver; + const struct virtio_device_id *id_table; + const unsigned int *feature_table; + unsigned int feature_table_size; + const unsigned int *feature_table_legacy; + unsigned int feature_table_size_legacy; + int (*validate)(struct virtio_device *); + int (*probe)(struct virtio_device *); + void (*scan)(struct virtio_device *); + void (*remove)(struct virtio_device *); + void (*config_changed)(struct virtio_device *); + int (*freeze)(struct virtio_device *); + int (*restore)(struct virtio_device *); +}; + +typedef __u16 __virtio16; + +typedef __u32 __virtio32; + +typedef __u64 __virtio64; + +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; +}; + +struct vring_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; +}; + +struct vring_used_elem { + __virtio32 id; + __virtio32 len; +}; + +typedef struct vring_used_elem vring_used_elem_t; + +struct vring_used { + __virtio16 flags; + __virtio16 idx; + vring_used_elem_t ring[0]; +}; + +typedef struct vring_desc vring_desc_t; + +typedef struct vring_avail vring_avail_t; + +typedef struct vring_used vring_used_t; + +struct vring { + unsigned int num; + vring_desc_t *desc; + vring_avail_t *avail; + vring_used_t *used; +}; + +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; +}; + +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; +}; + +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; +}; + +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; +}; + +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; +}; + +struct vring_virtqueue { + struct virtqueue vq; + bool packed_ring; + bool use_dma_api; + bool weak_barriers; + bool broken; + bool indirect; + bool event; + unsigned int free_head; + unsigned int num_added; + u16 last_used_idx; + bool event_triggered; + union { + struct { + struct vring vring; + u16 avail_flags_shadow; + u16 avail_idx_shadow; + struct vring_desc_state_split *desc_state; + struct vring_desc_extra *desc_extra; + dma_addr_t queue_dma_addr; + size_t queue_size_in_bytes; + } split; + struct { + struct { + unsigned int num; + struct vring_packed_desc *desc; + struct vring_packed_desc_event *driver; + struct vring_packed_desc_event *device; + } vring; + bool avail_wrap_counter; + bool used_wrap_counter; + u16 avail_used_flags; + u16 next_avail_idx; + u16 event_flags_shadow; + struct vring_desc_state_packed *desc_state; + struct vring_desc_extra *desc_extra; + dma_addr_t ring_dma_addr; + dma_addr_t driver_event_dma_addr; + dma_addr_t device_event_dma_addr; + size_t ring_size_in_bytes; + size_t event_size_in_bytes; + } packed; + }; + bool (*notify)(struct virtqueue *); + bool we_own_ring; +}; + +struct virtio_pci_common_cfg { + __le32 device_feature_select; + __le32 device_feature; + __le32 guest_feature_select; + __le32 guest_feature; + __le16 msix_config; + __le16 num_queues; + __u8 device_status; + __u8 config_generation; + __le16 queue_select; + __le16 queue_size; + __le16 queue_msix_vector; + __le16 queue_enable; + __le16 queue_notify_off; + __le32 queue_desc_lo; + __le32 queue_desc_hi; + __le32 queue_avail_lo; + __le32 queue_avail_hi; + __le32 queue_used_lo; + __le32 queue_used_hi; +}; + +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; +}; + +struct virtio_mmio_device { + struct virtio_device vdev; + struct platform_device *pdev; + void *base; + long unsigned int version; + spinlock_t lock; + struct list_head virtqueues; +}; + +struct virtio_mmio_vq_info { + struct virtqueue *vq; + struct list_head node; +}; + +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; +}; + +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + struct virtio_pci_modern_device mdev; + u8 *isr; + void *ioaddr; + spinlock_t lock; + struct list_head virtqueues; + struct virtio_pci_vq_info **vqs; + int msix_enabled; + int intx_enabled; + cpumask_var_t *msix_affinity_masks; + char (*msix_names)[256]; + unsigned int msix_vectors; + unsigned int msix_used_vectors; + bool per_vq_vectors; + struct virtqueue * (*setup_vq)(struct virtio_pci_device *, struct virtio_pci_vq_info *, unsigned int, void (*)(struct virtqueue *), const char *, bool, u16); + void (*del_vq)(struct virtio_pci_vq_info *); + u16 (*config_vector)(struct virtio_pci_device *, u16); +}; + +enum { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, +}; + +struct virtio_balloon_config { + __le32 num_pages; + __le32 actual; + union { + __le32 free_page_hint_cmd_id; + __le32 free_page_report_cmd_id; + }; + __le32 poison_val; +}; + +struct virtio_balloon_stat { + __virtio16 tag; + __virtio64 val; +} __attribute__((packed)); + +enum virtio_balloon_vq { + VIRTIO_BALLOON_VQ_INFLATE = 0, + VIRTIO_BALLOON_VQ_DEFLATE = 1, + VIRTIO_BALLOON_VQ_STATS = 2, + VIRTIO_BALLOON_VQ_FREE_PAGE = 3, + VIRTIO_BALLOON_VQ_REPORTING = 4, + VIRTIO_BALLOON_VQ_MAX = 5, +}; + +enum virtio_balloon_config_read { + VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, +}; + +struct virtio_balloon { + struct virtio_device *vdev; + struct virtqueue *inflate_vq; + struct virtqueue *deflate_vq; + struct virtqueue *stats_vq; + struct virtqueue *free_page_vq; + struct workqueue_struct *balloon_wq; + struct work_struct report_free_page_work; + struct work_struct update_balloon_stats_work; + struct work_struct update_balloon_size_work; + spinlock_t stop_update_lock; + bool stop_update; + long unsigned int config_read_bitmap; + struct list_head free_page_list; + spinlock_t free_page_list_lock; + long unsigned int num_free_page_blocks; + u32 cmd_id_received_cache; + __virtio32 cmd_id_active; + __virtio32 cmd_id_stop; + wait_queue_head_t acked; + unsigned int num_pages; + struct balloon_dev_info vb_dev_info; + struct mutex balloon_lock; + unsigned int num_pfns; + __virtio32 pfns[256]; + struct virtio_balloon_stat stats[10]; + struct shrinker shrinker; + struct notifier_block oom_nb; + struct virtqueue *reporting_vq; + struct page_reporting_dev_info pr_dev_info; +}; + +struct xsd_errors { + int errnum; + const char *errstring; +}; + +struct xenbus_watch { + struct list_head list; + const char *node; + unsigned int nr_pending; + bool (*will_handle)(struct xenbus_watch *, const char *, const char *); + void (*callback)(struct xenbus_watch *, const char *, const char *); +}; + +struct xenbus_transaction { + u32 id; +}; + struct grant_entry_v1 { uint16_t flags; domid_t domid; @@ -71459,6 +88468,16 @@ struct gnttab_page_cache { unsigned int num_pages; }; +struct gnttab_dma_alloc_args { + struct device *dev; + bool coherent; + int nr_pages; + struct page **pages; + xen_pfn_t *frames; + void *vaddr; + dma_addr_t dev_bus_addr; +}; + struct xen_page_foreign { domid_t domid; grant_ref_t gref; @@ -71470,7 +88489,7 @@ struct gnttab_ops { unsigned int version; unsigned int grefs_per_grant_frame; int (*map_frames)(xen_pfn_t *, unsigned int); - void (*unmap_frames)(); + void (*unmap_frames)(void); void (*update_entry)(grant_ref_t, domid_t, long unsigned int, unsigned int); int (*end_foreign_access_ref)(grant_ref_t, int); long unsigned int (*end_foreign_transfer_ref)(grant_ref_t); @@ -71529,7 +88548,7 @@ struct suspend_info { struct shutdown_handler { const char command[11]; bool flag; - void (*cb)(); + void (*cb)(void); }; struct vcpu_runstate_info { @@ -71656,11 +88675,41 @@ struct physdev_get_free_pirq { uint32_t pirq; }; +enum xenbus_state { + XenbusStateUnknown = 0, + XenbusStateInitialising = 1, + XenbusStateInitWait = 2, + XenbusStateInitialised = 3, + XenbusStateConnected = 4, + XenbusStateClosing = 5, + XenbusStateClosed = 6, + XenbusStateReconfiguring = 7, + XenbusStateReconfigured = 8, +}; + +struct xenbus_device { + const char *devicetype; + const char *nodename; + const char *otherend; + int otherend_id; + struct xenbus_watch otherend_watch; + struct device dev; + enum xenbus_state state; + struct completion down; + struct work_struct work; + struct semaphore reclaim_sem; + atomic_t event_channels; + atomic_t events; + atomic_t spurious_events; + atomic_t jiffies_eoi_delayed; + unsigned int spurious_threshold; +}; + struct evtchn_loop_ctrl; struct evtchn_ops { - unsigned int (*max_channels)(); - unsigned int (*nr_channels)(); + unsigned int (*max_channels)(void); + unsigned int (*nr_channels)(void); int (*setup)(evtchn_port_t); void (*remove)(evtchn_port_t, unsigned int); void (*bind_to_cpu)(evtchn_port_t, unsigned int, unsigned int); @@ -71670,7 +88719,7 @@ struct evtchn_ops { void (*mask)(evtchn_port_t); void (*unmask)(evtchn_port_t); void (*handle_events)(unsigned int, struct evtchn_loop_ctrl *); - void (*resume)(); + void (*resume)(void); int (*percpu_init)(unsigned int); int (*percpu_deinit)(unsigned int); }; @@ -71692,8 +88741,10 @@ enum xen_irq_type { struct irq_info { struct list_head list; struct list_head eoi_list; + struct rcu_work rwork; short int refcnt; - short int spurious_cnt; + u8 spurious_cnt; + u8 is_accounted; short int type; u8 mask_reason; u8 is_active; @@ -71714,6 +88765,7 @@ struct irq_info { unsigned char flags; uint16_t domid; } pirq; + struct xenbus_device *interdomain; } u; }; @@ -71874,6 +88926,26 @@ enum xenstore_init { XS_LOCAL = 3, }; +struct xenbus_device_id { + char devicetype[32]; +}; + +struct xenbus_driver { + const char *name; + const struct xenbus_device_id *ids; + bool allow_rebind; + int (*probe)(struct xenbus_device *, const struct xenbus_device_id *); + void (*otherend_changed)(struct xenbus_device *, enum xenbus_state); + int (*remove)(struct xenbus_device *); + int (*suspend)(struct xenbus_device *); + int (*resume)(struct xenbus_device *); + int (*uevent)(struct xenbus_device *, struct kobj_uevent_env *); + struct device_driver driver; + int (*read_otherend_details)(struct xenbus_device *); + int (*is_ready)(struct xenbus_device *); + void (*reclaim_memory)(struct xenbus_device *); +}; + struct xen_hvm_param { domid_t domid; uint32_t index; @@ -71973,17 +89045,6 @@ struct physdev_pci_device { uint8_t devfn; }; -struct pci_mmcfg_region { - struct list_head list; - struct resource res; - u64 address; - char *virt; - u16 segment; - u8 start_bus; - u8 end_bus; - char name[30]; -}; - struct usb_device_descriptor { __u8 bLength; __u8 bDescriptorType; @@ -72140,6 +89201,13 @@ enum usb3_link_state { USB3_LPM_U3 = 3, }; +enum usb_ssp_rate { + USB_SSP_GEN_UNKNOWN = 0, + USB_SSP_GEN_2x1 = 1, + USB_SSP_GEN_1x2 = 2, + USB_SSP_GEN_2x2 = 3, +}; + struct ep_device; struct usb_host_endpoint { @@ -72252,12 +89320,6 @@ struct usb_bus { struct wusb_dev; -enum usb_device_removable { - USB_DEVICE_REMOVABLE_UNKNOWN = 0, - USB_DEVICE_REMOVABLE = 1, - USB_DEVICE_FIXED = 2, -}; - struct usb2_lpm_parameters { unsigned int besl; int timeout; @@ -72280,6 +89342,7 @@ struct usb_device { enum usb_device_speed speed; unsigned int rx_lanes; unsigned int tx_lanes; + enum usb_ssp_rate ssp_rate; struct usb_tt *tt; int ttport; unsigned int toggle[2]; @@ -72327,7 +89390,6 @@ struct usb_device { unsigned int port_is_suspended: 1; struct wusb_dev *wusb_dev; int slot_id; - enum usb_device_removable removable; struct usb2_lpm_parameters l1_params; struct usb3_lpm_parameters u1_params; struct usb3_lpm_parameters u2_params; @@ -72413,16 +89475,12 @@ enum usb_dev_authorize_policy { USB_DEVICE_AUTHORIZE_INTERNAL = 2, }; +struct hc_driver; + struct usb_phy; struct usb_phy_roothub; -struct dma_pool; - -struct gen_pool; - -struct hc_driver; - struct usb_hcd { struct usb_bus self; struct kref kref; @@ -72513,6 +89571,7 @@ struct hc_driver { int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); int (*find_raw_port_number)(struct usb_hcd *, int); int (*port_power)(struct usb_hcd *, int, bool); + int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); }; struct physdev_dbgp_op { @@ -72527,6 +89586,7 @@ struct pcpu { struct list_head list; struct device dev; uint32_t cpu_id; + uint32_t acpi_id; uint32_t flags; }; @@ -72771,128 +89831,6 @@ struct ww_class { unsigned int is_wait_die; }; -struct regulator_state { - int uV; - int min_uV; - int max_uV; - unsigned int mode; - int enabled; - bool changeable; -}; - -struct regulation_constraints { - const char *name; - int min_uV; - int max_uV; - int uV_offset; - int min_uA; - int max_uA; - int ilim_uA; - int system_load; - u32 *max_spread; - int max_uV_step; - unsigned int valid_modes_mask; - unsigned int valid_ops_mask; - int input_uV; - struct regulator_state state_disk; - struct regulator_state state_mem; - struct regulator_state state_standby; - suspend_state_t initial_state; - unsigned int initial_mode; - unsigned int ramp_delay; - unsigned int settling_time; - unsigned int settling_time_up; - unsigned int settling_time_down; - unsigned int enable_time; - unsigned int active_discharge; - unsigned int always_on: 1; - unsigned int boot_on: 1; - unsigned int apply_uV: 1; - unsigned int ramp_disable: 1; - unsigned int soft_start: 1; - unsigned int pull_down: 1; - unsigned int over_current_protection: 1; -}; - -struct regulator_consumer_supply; - -struct regulator_init_data { - const char *supply_regulator; - struct regulation_constraints constraints; - int num_consumer_supplies; - struct regulator_consumer_supply *consumer_supplies; - int (*regulator_init)(void *); - void *driver_data; -}; - -enum regulator_type { - REGULATOR_VOLTAGE = 0, - REGULATOR_CURRENT = 1, -}; - -struct regulator_config; - -struct regulator_ops; - -struct regulator_desc { - const char *name; - const char *supply_name; - const char *of_match; - const char *regulators_node; - int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); - int id; - unsigned int continuous_voltage_range: 1; - unsigned int n_voltages; - unsigned int n_current_limits; - const struct regulator_ops *ops; - int irq; - enum regulator_type type; - struct module *owner; - unsigned int min_uV; - unsigned int uV_step; - unsigned int linear_min_sel; - int fixed_uV; - unsigned int ramp_delay; - int min_dropout_uV; - const struct linear_range *linear_ranges; - const unsigned int *linear_range_selectors; - int n_linear_ranges; - const unsigned int *volt_table; - const unsigned int *curr_table; - unsigned int vsel_range_reg; - unsigned int vsel_range_mask; - unsigned int vsel_reg; - unsigned int vsel_mask; - unsigned int vsel_step; - unsigned int csel_reg; - unsigned int csel_mask; - unsigned int apply_reg; - unsigned int apply_bit; - unsigned int enable_reg; - unsigned int enable_mask; - unsigned int enable_val; - unsigned int disable_val; - bool enable_is_inverted; - unsigned int bypass_reg; - unsigned int bypass_mask; - unsigned int bypass_val_on; - unsigned int bypass_val_off; - unsigned int active_discharge_on; - unsigned int active_discharge_off; - unsigned int active_discharge_mask; - unsigned int active_discharge_reg; - unsigned int soft_start_reg; - unsigned int soft_start_mask; - unsigned int soft_start_val_on; - unsigned int pull_down_reg; - unsigned int pull_down_mask; - unsigned int pull_down_val_on; - unsigned int enable_time; - unsigned int off_on_delay; - unsigned int poll_enabled_time; - unsigned int (*of_map_mode)(unsigned int); -}; - struct pre_voltage_change_data { long unsigned int old_uV; long unsigned int min_uV; @@ -72910,8 +89848,6 @@ struct regulator_voltage { int max_uV; }; -struct regulator_dev; - struct regulator { struct device *dev; struct list_head list; @@ -72935,43 +89871,6 @@ struct regulator_coupler { int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); }; -struct coupling_desc { - struct regulator_dev **coupled_rdevs; - struct regulator_coupler *coupler; - int n_resolved; - int n_coupled; -}; - -struct regulator_enable_gpio; - -struct regulator_dev { - const struct regulator_desc *desc; - int exclusive; - u32 use_count; - u32 open_count; - u32 bypass_count; - struct list_head list; - struct list_head consumer_list; - struct coupling_desc coupling_desc; - struct blocking_notifier_head notifier; - struct ww_mutex mutex; - struct task_struct *mutex_owner; - int ref_cnt; - struct module *owner; - struct device dev; - struct regulation_constraints *constraints; - struct regulator *supply; - const char *supply_name; - struct regmap *regmap; - struct delayed_work disable_work; - void *reg_data; - struct dentry *debugfs; - struct regulator_enable_gpio *ena_pin; - unsigned int ena_gpio_state: 1; - unsigned int is_switch: 1; - long unsigned int last_off_jiffy; -}; - enum regulator_status { REGULATOR_STATUS_OFF = 0, REGULATOR_STATUS_ON = 1, @@ -72984,49 +89883,10 @@ enum regulator_status { REGULATOR_STATUS_UNDEFINED = 8, }; -struct regulator_ops { - int (*list_voltage)(struct regulator_dev *, unsigned int); - int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); - int (*map_voltage)(struct regulator_dev *, int, int); - int (*set_voltage_sel)(struct regulator_dev *, unsigned int); - int (*get_voltage)(struct regulator_dev *); - int (*get_voltage_sel)(struct regulator_dev *); - int (*set_current_limit)(struct regulator_dev *, int, int); - int (*get_current_limit)(struct regulator_dev *); - int (*set_input_current_limit)(struct regulator_dev *, int); - int (*set_over_current_protection)(struct regulator_dev *); - int (*set_active_discharge)(struct regulator_dev *, bool); - int (*enable)(struct regulator_dev *); - int (*disable)(struct regulator_dev *); - int (*is_enabled)(struct regulator_dev *); - int (*set_mode)(struct regulator_dev *, unsigned int); - unsigned int (*get_mode)(struct regulator_dev *); - int (*get_error_flags)(struct regulator_dev *, unsigned int *); - int (*enable_time)(struct regulator_dev *); - int (*set_ramp_delay)(struct regulator_dev *, int); - int (*set_voltage_time)(struct regulator_dev *, int, int); - int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); - int (*set_soft_start)(struct regulator_dev *); - int (*get_status)(struct regulator_dev *); - unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); - int (*set_load)(struct regulator_dev *, int); - int (*set_bypass)(struct regulator_dev *, bool); - int (*get_bypass)(struct regulator_dev *, bool *); - int (*set_suspend_voltage)(struct regulator_dev *, int); - int (*set_suspend_enable)(struct regulator_dev *); - int (*set_suspend_disable)(struct regulator_dev *); - int (*set_suspend_mode)(struct regulator_dev *, unsigned int); - int (*resume)(struct regulator_dev *); - int (*set_pull_down)(struct regulator_dev *); -}; - -struct regulator_config { - struct device *dev; - const struct regulator_init_data *init_data; - void *driver_data; - struct device_node *of_node; - struct regmap *regmap; - struct gpio_desc *ena_gpiod; +enum regulator_detection_severity { + REGULATOR_SEVERITY_PROT = 0, + REGULATOR_SEVERITY_ERR = 1, + REGULATOR_SEVERITY_WARN = 2, }; struct regulator_enable_gpio { @@ -73152,6 +90012,34 @@ struct fixed_regulator_data { struct platform_device pdev; }; +struct regulator_err_state { + struct regulator_dev *rdev; + long unsigned int notifs; + long unsigned int errors; + int possible_errs; +}; + +struct regulator_irq_data { + struct regulator_err_state *states; + int num_states; + void *data; + long int opaque; +}; + +struct regulator_irq_desc { + const char *name; + int irq_flags; + int fatal_cnt; + int reread_ms; + int irq_off_ms; + bool skip_off; + bool high_prio; + void *data; + int (*die)(struct regulator_irq_data *); + int (*map_event)(int, struct regulator_irq_data *, long unsigned int *); + int (*renable)(struct regulator_irq_data *); +}; + struct regulator_bulk_devres { struct regulator_bulk_data *consumers; int num_consumers; @@ -73167,8 +90055,39 @@ struct regulator_notifier_match { struct notifier_block *nb; }; +enum { + REGULATOR_ERROR_CLEARED = 0, + REGULATOR_FAILED_RETRY = 1, + REGULATOR_ERROR_ON = 2, +}; + +struct regulator_irq { + struct regulator_irq_data rdata; + struct regulator_irq_desc desc; + int irq; + int retry_cnt; + struct delayed_work isr_work; +}; + +struct reset_control_bulk_data { + const char *id; + struct reset_control *rstc; +}; + struct reset_controller_dev; +struct reset_control { + struct reset_controller_dev *rcdev; + struct list_head list; + unsigned int id; + struct kref refcnt; + bool acquired; + bool shared; + bool array; + atomic_t deassert_count; + atomic_t triggered_count; +}; + struct reset_control_ops { int (*reset)(struct reset_controller_dev *, long unsigned int); int (*assert)(struct reset_controller_dev *, long unsigned int); @@ -73196,24 +90115,17 @@ struct reset_control_lookup { const char *con_id; }; -struct reset_control { - struct reset_controller_dev *rcdev; - struct list_head list; - unsigned int id; - struct kref refcnt; - bool acquired; - bool shared; - bool array; - atomic_t deassert_count; - atomic_t triggered_count; -}; - struct reset_control_array { struct reset_control base; unsigned int num_rstcs; struct reset_control *rstc[0]; }; +struct reset_control_bulk_devres { + int num_rstcs; + struct reset_control_bulk_data *rstcs; +}; + struct serial_struct32 { compat_int_t type; compat_int_t line; @@ -73304,8 +90216,6 @@ struct ldsem_waiter { struct task_struct *task; }; -struct pts_fs_info; - struct tty_audit_buf { struct mutex mutex; dev_t dev; @@ -73314,233 +90224,6 @@ struct tty_audit_buf { unsigned char *data; }; -struct input_id { - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; -}; - -struct input_absinfo { - __s32 value; - __s32 minimum; - __s32 maximum; - __s32 fuzz; - __s32 flat; - __s32 resolution; -}; - -struct input_keymap_entry { - __u8 flags; - __u8 len; - __u16 index; - __u32 keycode; - __u8 scancode[32]; -}; - -struct ff_replay { - __u16 length; - __u16 delay; -}; - -struct ff_trigger { - __u16 button; - __u16 interval; -}; - -struct ff_envelope { - __u16 attack_length; - __u16 attack_level; - __u16 fade_length; - __u16 fade_level; -}; - -struct ff_constant_effect { - __s16 level; - struct ff_envelope envelope; -}; - -struct ff_ramp_effect { - __s16 start_level; - __s16 end_level; - struct ff_envelope envelope; -}; - -struct ff_condition_effect { - __u16 right_saturation; - __u16 left_saturation; - __s16 right_coeff; - __s16 left_coeff; - __u16 deadband; - __s16 center; -}; - -struct ff_periodic_effect { - __u16 waveform; - __u16 period; - __s16 magnitude; - __s16 offset; - __u16 phase; - struct ff_envelope envelope; - __u32 custom_len; - __s16 *custom_data; -}; - -struct ff_rumble_effect { - __u16 strong_magnitude; - __u16 weak_magnitude; -}; - -struct ff_effect { - __u16 type; - __s16 id; - __u16 direction; - struct ff_trigger trigger; - struct ff_replay replay; - union { - struct ff_constant_effect constant; - struct ff_ramp_effect ramp; - struct ff_periodic_effect periodic; - struct ff_condition_effect condition[2]; - struct ff_rumble_effect rumble; - } u; -}; - -struct input_device_id { - kernel_ulong_t flags; - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; - kernel_ulong_t evbit[1]; - kernel_ulong_t keybit[12]; - kernel_ulong_t relbit[1]; - kernel_ulong_t absbit[1]; - kernel_ulong_t mscbit[1]; - kernel_ulong_t ledbit[1]; - kernel_ulong_t sndbit[1]; - kernel_ulong_t ffbit[2]; - kernel_ulong_t swbit[1]; - kernel_ulong_t propbit[1]; - kernel_ulong_t driver_info; -}; - -struct input_value { - __u16 type; - __u16 code; - __s32 value; -}; - -enum input_clock_type { - INPUT_CLK_REAL = 0, - INPUT_CLK_MONO = 1, - INPUT_CLK_BOOT = 2, - INPUT_CLK_MAX = 3, -}; - -struct ff_device; - -struct input_dev_poller; - -struct input_mt; - -struct input_handle; - -struct input_dev { - const char *name; - const char *phys; - const char *uniq; - struct input_id id; - long unsigned int propbit[1]; - long unsigned int evbit[1]; - long unsigned int keybit[12]; - long unsigned int relbit[1]; - long unsigned int absbit[1]; - long unsigned int mscbit[1]; - long unsigned int ledbit[1]; - long unsigned int sndbit[1]; - long unsigned int ffbit[2]; - long unsigned int swbit[1]; - unsigned int hint_events_per_packet; - unsigned int keycodemax; - unsigned int keycodesize; - void *keycode; - int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *); - int (*getkeycode)(struct input_dev *, struct input_keymap_entry *); - struct ff_device *ff; - struct input_dev_poller *poller; - unsigned int repeat_key; - struct timer_list timer; - int rep[2]; - struct input_mt *mt; - struct input_absinfo *absinfo; - long unsigned int key[12]; - long unsigned int led[1]; - long unsigned int snd[1]; - long unsigned int sw[1]; - int (*open)(struct input_dev *); - void (*close)(struct input_dev *); - int (*flush)(struct input_dev *, struct file *); - int (*event)(struct input_dev *, unsigned int, unsigned int, int); - struct input_handle *grab; - spinlock_t event_lock; - struct mutex mutex; - unsigned int users; - bool going_away; - struct device dev; - struct list_head h_list; - struct list_head node; - unsigned int num_vals; - unsigned int max_vals; - struct input_value *vals; - bool devres_managed; - ktime_t timestamp[3]; -}; - -struct ff_device { - int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *); - int (*erase)(struct input_dev *, int); - int (*playback)(struct input_dev *, int, int); - void (*set_gain)(struct input_dev *, u16); - void (*set_autocenter)(struct input_dev *, u16); - void (*destroy)(struct ff_device *); - void *private; - long unsigned int ffbit[2]; - struct mutex mutex; - int max_effects; - struct ff_effect *effects; - struct file *effect_owners[0]; -}; - -struct input_handler; - -struct input_handle { - void *private; - int open; - const char *name; - struct input_dev *dev; - struct input_handler *handler; - struct list_head d_node; - struct list_head h_node; -}; - -struct input_handler { - void *private; - void (*event)(struct input_handle *, unsigned int, unsigned int, int); - void (*events)(struct input_handle *, const struct input_value *, unsigned int); - bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); - bool (*match)(struct input_handler *, struct input_dev *); - int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); - void (*disconnect)(struct input_handle *); - void (*start)(struct input_handle *); - bool legacy_minors; - int minor; - const char *name; - const struct input_device_id *id_table; - struct list_head h_list; - struct list_head node; -}; - struct sysrq_state { struct input_handle handle; struct work_struct reinject_work; @@ -73571,6 +90254,22 @@ struct unimapdesc { struct unipair *entries; }; +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + short unsigned int kb_value; +}; + +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; +}; + +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; +}; + struct kbd_repeat { int delay; int period; @@ -73674,103 +90373,6 @@ struct vc_selection { int end; }; -enum led_brightness { - LED_OFF = 0, - LED_ON = 1, - LED_HALF = 127, - LED_FULL = 255, -}; - -struct led_hw_trigger_type { - int dummy; -}; - -struct led_pattern; - -struct led_trigger; - -struct led_classdev { - const char *name; - enum led_brightness brightness; - enum led_brightness max_brightness; - int flags; - long unsigned int work_flags; - void (*brightness_set)(struct led_classdev *, enum led_brightness); - int (*brightness_set_blocking)(struct led_classdev *, enum led_brightness); - enum led_brightness (*brightness_get)(struct led_classdev *); - int (*blink_set)(struct led_classdev *, long unsigned int *, long unsigned int *); - int (*pattern_set)(struct led_classdev *, struct led_pattern *, u32, int); - int (*pattern_clear)(struct led_classdev *); - struct device *dev; - const struct attribute_group **groups; - struct list_head node; - const char *default_trigger; - long unsigned int blink_delay_on; - long unsigned int blink_delay_off; - struct timer_list blink_timer; - int blink_brightness; - int new_blink_brightness; - void (*flash_resume)(struct led_classdev *); - struct work_struct set_brightness_work; - int delayed_set_value; - struct rw_semaphore trigger_lock; - struct led_trigger *trigger; - struct list_head trig_list; - void *trigger_data; - bool activated; - struct led_hw_trigger_type *trigger_type; - int brightness_hw_changed; - struct kernfs_node *brightness_hw_changed_kn; - struct mutex led_access; -}; - -struct led_pattern { - u32 delta_t; - int brightness; -}; - -struct led_trigger { - const char *name; - int (*activate)(struct led_classdev *); - void (*deactivate)(struct led_classdev *); - struct led_hw_trigger_type *trigger_type; - rwlock_t leddev_list_lock; - struct list_head led_cdevs; - struct list_head next_trig; - const struct attribute_group **groups; -}; - -struct keyboard_notifier_param { - struct vc_data *vc; - int down; - int shift; - int ledstate; - unsigned int value; -}; - -struct kbd_struct { - unsigned char lockstate; - unsigned char slockstate; - unsigned char ledmode: 1; - unsigned char ledflagstate: 4; - char: 3; - unsigned char default_ledflagstate: 4; - unsigned char kbdmode: 3; - int: 1; - unsigned char modeflags: 5; -}; - -struct kbentry { - unsigned char kb_table; - unsigned char kb_index; - short unsigned int kb_value; -}; - -struct kbsentry { - unsigned char kb_func; - unsigned char kb_string[512]; -}; - struct kbdiacr { unsigned char diacr; unsigned char base; @@ -73793,9 +90395,24 @@ struct kbdiacrsuc { struct kbdiacruc kbdiacruc[256]; }; -struct kbkeycode { - unsigned int scancode; - unsigned int keycode; +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; +}; + +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; }; typedef void k_handler_fn(struct vc_data *, unsigned char, char); @@ -73918,154 +90535,6 @@ struct hv_ops { void (*dtr_rts)(struct hvc_struct *, int); }; -struct circ_buf { - char *buf; - int head; - int tail; -}; - -struct serial_rs485 { - __u32 flags; - __u32 delay_rts_before_send; - __u32 delay_rts_after_send; - __u32 padding[5]; -}; - -struct serial_iso7816 { - __u32 flags; - __u32 tg; - __u32 sc_fi; - __u32 sc_di; - __u32 clk; - __u32 reserved[5]; -}; - -struct uart_port; - -struct uart_ops { - unsigned int (*tx_empty)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_mctrl)(struct uart_port *); - void (*stop_tx)(struct uart_port *); - void (*start_tx)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - void (*send_xchar)(struct uart_port *, char); - void (*stop_rx)(struct uart_port *); - void (*enable_ms)(struct uart_port *); - void (*break_ctl)(struct uart_port *, int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*flush_buffer)(struct uart_port *); - void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - const char * (*type)(struct uart_port *); - void (*release_port)(struct uart_port *); - int (*request_port)(struct uart_port *); - void (*config_port)(struct uart_port *, int); - int (*verify_port)(struct uart_port *, struct serial_struct *); - int (*ioctl)(struct uart_port *, unsigned int, long unsigned int); -}; - -struct uart_icount { - __u32 cts; - __u32 dsr; - __u32 rng; - __u32 dcd; - __u32 rx; - __u32 tx; - __u32 frame; - __u32 overrun; - __u32 parity; - __u32 brk; - __u32 buf_overrun; -}; - -typedef unsigned int upf_t; - -typedef unsigned int upstat_t; - -struct uart_state; - -struct uart_port { - spinlock_t lock; - long unsigned int iobase; - unsigned char *membase; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - void (*set_termios)(struct uart_port *, struct ktermios *, struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); - void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); - int (*rs485_config)(struct uart_port *, struct serial_rs485 *); - int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); - unsigned int irq; - long unsigned int irqflags; - unsigned int uartclk; - unsigned int fifosize; - unsigned char x_char; - unsigned char regshift; - unsigned char iotype; - unsigned char quirks; - unsigned int read_status_mask; - unsigned int ignore_status_mask; - struct uart_state *state; - struct uart_icount icount; - struct console *cons; - upf_t flags; - upstat_t status; - int hw_stopped; - unsigned int mctrl; - unsigned int timeout; - unsigned int type; - const struct uart_ops *ops; - unsigned int custom_divisor; - unsigned int line; - unsigned int minor; - resource_size_t mapbase; - resource_size_t mapsize; - struct device *dev; - long unsigned int sysrq; - unsigned int sysrq_ch; - unsigned char has_sysrq; - unsigned char sysrq_seq; - unsigned char hub6; - unsigned char suspended; - unsigned char console_reinit; - const char *name; - struct attribute_group *attr_group; - const struct attribute_group **tty_groups; - struct serial_rs485 rs485; - struct gpio_desc *rs485_term_gpio; - struct serial_iso7816 iso7816; - void *private_data; -}; - -enum uart_pm_state { - UART_PM_STATE_ON = 0, - UART_PM_STATE_OFF = 3, - UART_PM_STATE_UNDEFINED = 4, -}; - -struct uart_state { - struct tty_port port; - enum uart_pm_state pm_state; - struct circ_buf xmit; - atomic_t refcount; - wait_queue_head_t remove_wait; - struct uart_port *uart_port; -}; - struct earlycon_device { struct console *con; struct uart_port port; @@ -74102,6 +90571,7 @@ struct xencons_info { int irq; int vtermno; grant_ref_t gntref; + spinlock_t ring_lock; }; struct uart_driver { @@ -74174,6 +90644,7 @@ struct uart_8250_port; struct uart_8250_ops { int (*setup_irq)(struct uart_8250_port *); void (*release_irq)(struct uart_8250_port *); + void (*setup_timer)(struct uart_8250_port *); }; struct mctrl_gpios; @@ -74188,7 +90659,6 @@ struct uart_8250_port { struct list_head list; u32 capabilities; short unsigned int bugs; - bool fifo_bug; unsigned int tx_loadsz; unsigned char acr; unsigned char fcr; @@ -74226,6 +90696,8 @@ struct uart_8250_em485 { struct uart_8250_dma { int (*tx_dma)(struct uart_8250_port *); int (*rx_dma)(struct uart_8250_port *); + void (*prepare_tx_dma)(struct uart_8250_port *); + void (*prepare_rx_dma)(struct uart_8250_port *); dma_filter_fn fn; void *rx_param; void *tx_param; @@ -74347,7 +90819,7 @@ enum pci_board_num_t { pbn_b0_4_1250000 = 11, pbn_b0_2_1843200 = 12, pbn_b0_4_1843200 = 13, - pbn_b0_1_3906250 = 14, + pbn_b0_1_15625000 = 14, pbn_b0_bt_1_115200 = 15, pbn_b0_bt_2_115200 = 16, pbn_b0_bt_4_115200 = 17, @@ -74405,10 +90877,10 @@ enum pci_board_num_t { pbn_panacom4 = 69, pbn_plx_romulus = 70, pbn_oxsemi = 71, - pbn_oxsemi_1_3906250 = 72, - pbn_oxsemi_2_3906250 = 73, - pbn_oxsemi_4_3906250 = 74, - pbn_oxsemi_8_3906250 = 75, + pbn_oxsemi_1_15625000 = 72, + pbn_oxsemi_2_15625000 = 73, + pbn_oxsemi_4_15625000 = 74, + pbn_oxsemi_8_15625000 = 75, pbn_intel_i960 = 76, pbn_sgi_ioc3 = 77, pbn_computone_4 = 78, @@ -74455,22 +90927,6 @@ enum pci_board_num_t { pbn_moxa8250_8p = 119, }; -struct reset_control; - -struct dw8250_data { - struct dw8250_port_data data; - u8 usr_reg; - int msr_mask_on; - int msr_mask_off; - struct clk *clk; - struct clk *pclk; - struct notifier_block clk_notifier; - struct work_struct clk_work; - struct reset_control *rst; - unsigned int skip_autocfg: 1; - unsigned int uart_16550_compatible: 1; -}; - struct hsu_dma_slave { struct device *dma_dev; int chan_id; @@ -74495,6 +90951,267 @@ struct mid8250 { struct hsu_dma_chip dma_chip; }; +struct spi_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; + +struct ptp_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; +}; + +struct spi_statistics { + spinlock_t lock; + long unsigned int messages; + long unsigned int transfers; + long unsigned int errors; + long unsigned int timedout; + long unsigned int spi_sync; + long unsigned int spi_sync_immediate; + long unsigned int spi_async; + long long unsigned int bytes; + long long unsigned int bytes_rx; + long long unsigned int bytes_tx; + long unsigned int transfer_bytes_histo[17]; + long unsigned int transfers_split_maxsize; +}; + +struct spi_delay { + u16 value; + u8 unit; +}; + +struct spi_controller; + +struct spi_device { + struct device dev; + struct spi_controller *controller; + struct spi_controller *master; + u32 max_speed_hz; + u8 chip_select; + u8 bits_per_word; + bool rt; + u32 mode; + int irq; + void *controller_state; + void *controller_data; + char modalias[32]; + const char *driver_override; + int cs_gpio; + struct gpio_desc *cs_gpiod; + struct spi_delay word_delay; + struct spi_delay cs_setup; + struct spi_delay cs_hold; + struct spi_delay cs_inactive; + struct spi_statistics statistics; +}; + +struct spi_message; + +struct spi_transfer; + +struct spi_controller_mem_ops; + +struct spi_controller { + struct device dev; + struct list_head list; + s16 bus_num; + u16 num_chipselect; + u16 dma_alignment; + u32 mode_bits; + u32 buswidth_override_bits; + u32 bits_per_word_mask; + u32 min_speed_hz; + u32 max_speed_hz; + u16 flags; + bool devm_allocated; + bool slave; + size_t (*max_transfer_size)(struct spi_device *); + size_t (*max_message_size)(struct spi_device *); + struct mutex io_mutex; + struct mutex add_lock; + spinlock_t bus_lock_spinlock; + struct mutex bus_lock_mutex; + bool bus_lock_flag; + int (*setup)(struct spi_device *); + int (*set_cs_timing)(struct spi_device *); + int (*transfer)(struct spi_device *, struct spi_message *); + void (*cleanup)(struct spi_device *); + bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + struct device *dma_map_dev; + bool queued; + struct kthread_worker *kworker; + struct kthread_work pump_messages; + spinlock_t queue_lock; + struct list_head queue; + struct spi_message *cur_msg; + bool idling; + bool busy; + bool running; + bool rt; + bool auto_runtime_pm; + bool cur_msg_prepared; + bool cur_msg_mapped; + bool last_cs_enable; + bool last_cs_mode_high; + bool fallback; + struct completion xfer_completion; + size_t max_dma_len; + int (*prepare_transfer_hardware)(struct spi_controller *); + int (*transfer_one_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_transfer_hardware)(struct spi_controller *); + int (*prepare_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_message)(struct spi_controller *, struct spi_message *); + int (*slave_abort)(struct spi_controller *); + void (*set_cs)(struct spi_device *, bool); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + void (*handle_err)(struct spi_controller *, struct spi_message *); + const struct spi_controller_mem_ops *mem_ops; + int *cs_gpios; + struct gpio_desc **cs_gpiods; + bool use_gpio_descriptors; + s8 unused_native_cs; + s8 max_native_cs; + struct spi_statistics statistics; + struct dma_chan___2 *dma_tx; + struct dma_chan___2 *dma_rx; + void *dummy_rx; + void *dummy_tx; + int (*fw_translate_cs)(struct spi_controller *, unsigned int); + bool ptp_sts_supported; + long unsigned int irq_flags; +}; + +struct spi_driver { + const struct spi_device_id *id_table; + int (*probe)(struct spi_device *); + int (*remove)(struct spi_device *); + void (*shutdown)(struct spi_device *); + struct device_driver driver; +}; + +struct spi_message { + struct list_head transfers; + struct spi_device *spi; + unsigned int is_dma_mapped: 1; + void (*complete)(void *); + void *context; + unsigned int frame_length; + unsigned int actual_length; + int status; + struct list_head queue; + void *state; + struct list_head resources; +}; + +struct spi_transfer { + const void *tx_buf; + void *rx_buf; + unsigned int len; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + struct sg_table tx_sg; + struct sg_table rx_sg; + unsigned int dummy_data: 1; + unsigned int cs_change: 1; + unsigned int tx_nbits: 3; + unsigned int rx_nbits: 3; + u8 bits_per_word; + struct spi_delay delay; + struct spi_delay cs_change_delay; + struct spi_delay word_delay; + u32 speed_hz; + u32 effective_speed_hz; + unsigned int ptp_sts_word_pre; + unsigned int ptp_sts_word_post; + struct ptp_system_timestamp *ptp_sts; + bool timestamped; + struct list_head transfer_list; + u16 error; +}; + +struct spi_mem; + +struct spi_mem_op; + +struct spi_mem_dirmap_desc; + +struct spi_controller_mem_ops { + int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); + bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); + int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); + const char * (*get_name)(struct spi_mem *); + int (*dirmap_create)(struct spi_mem_dirmap_desc *); + void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); + ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); + ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); + int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, long unsigned int, long unsigned int, long unsigned int); +}; + +struct max310x_if_cfg { + int (*extended_reg_enable)(struct device *, bool); + unsigned int rev_id_reg; +}; + +struct max310x_devtype { + char name[9]; + int nr; + u8 mode1; + int (*detect)(struct device *); + void (*power)(struct uart_port *, int); +}; + +struct max310x_one { + struct uart_port port; + struct work_struct tx_work; + struct work_struct md_work; + struct work_struct rs_work; + struct regmap *regmap; + u8 rx_buf[128]; +}; + +struct max310x_port { + const struct max310x_devtype *devtype; + const struct max310x_if_cfg *if_cfg; + struct regmap *regmap; + struct clk *clk; + struct gpio_chip gpio; + struct max310x_one p[0]; +}; + +struct sccnxp_pdata { + const u8 reg_shift; + const u32 mctrl_cfg[2]; + const unsigned int poll_time_us; +}; + +struct sccnxp_chip { + const char *name; + unsigned int nr; + long unsigned int freq_min; + long unsigned int freq_std; + long unsigned int freq_max; + unsigned int flags; + unsigned int fifosize; + unsigned int trwd; +}; + +struct sccnxp_port { + struct uart_driver uart; + struct uart_port port[2]; + bool opened[2]; + int irq; + u8 imr; + struct sccnxp_chip *chip; + struct console console; + spinlock_t lock; + bool poll; + struct timer_list timer; + struct sccnxp_pdata pdata; + struct regulator *regulator; +}; + enum mctrl_gpio_idx { UART_GPIO_CTS = 0, UART_GPIO_DSR = 1, @@ -74514,6 +91231,24 @@ struct mctrl_gpios { bool mctrl_on; }; +typedef unsigned char unchar; + +struct kgdb_nmi_tty_priv { + struct tty_port port; + struct timer_list timer; + struct { + union { + struct __kfifo kfifo; + char *type; + const char *const_type; + char (*rectype)[0]; + char *ptr; + const char *ptr_const; + }; + char buf[64]; + } fifo; +}; + struct serdev_device; struct serdev_device_ops { @@ -74650,6 +91385,105 @@ enum { MIX_INFLIGHT = 2147483648, }; +struct ttyprintk_port { + struct tty_port port; + spinlock_t spinlock; +}; + +struct virtio_console_config { + __virtio16 cols; + __virtio16 rows; + __virtio32 max_nr_ports; + __virtio32 emerg_wr; +}; + +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; +}; + +struct ports_driver_data { + struct class *class; + struct dentry *debugfs_dir; + struct list_head portdevs; + unsigned int next_vtermno; + struct list_head consoles; +}; + +struct console___2 { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; +}; + +struct port_buffer { + char *buf; + size_t size; + size_t len; + size_t offset; + dma_addr_t dma; + struct device *dev; + struct list_head list; + unsigned int sgpages; + struct scatterlist sg[0]; +}; + +struct ports_device { + struct list_head list; + struct work_struct control_work; + struct work_struct config_work; + struct list_head ports; + spinlock_t ports_lock; + spinlock_t c_ivq_lock; + spinlock_t c_ovq_lock; + u32 max_nr_ports; + struct virtio_device *vdev; + struct virtqueue *c_ivq; + struct virtqueue *c_ovq; + struct virtio_console_control cpkt; + struct virtqueue **in_vqs; + struct virtqueue **out_vqs; + int chr_major; +}; + +struct port_stats { + long unsigned int bytes_sent; + long unsigned int bytes_received; + long unsigned int bytes_discarded; +}; + +struct port { + struct list_head list; + struct ports_device *portdev; + struct port_buffer *inbuf; + spinlock_t inbuf_lock; + spinlock_t outvq_lock; + struct virtqueue *in_vq; + struct virtqueue *out_vq; + struct dentry *debugfs_file; + struct port_stats stats; + struct console___2 cons; + struct cdev *cdev; + struct device *dev; + struct kref kref; + wait_queue_head_t waitqueue; + char *name; + struct fasync_struct *async_queue; + u32 id; + bool outvq_full; + bool host_connected; + bool guest_connected; +}; + +struct sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; +}; + struct hpet_info { long unsigned int hi_ireqfreq; long unsigned int hi_flags; @@ -74793,13 +91627,13 @@ struct agp_bridge_driver { bool cant_use_aperture; bool needs_scratch_page; const struct gatt_mask *masks; - int (*fetch_size)(); - int (*configure)(); + int (*fetch_size)(void); + int (*configure)(void); void (*agp_enable)(struct agp_bridge_data *, u32); - void (*cleanup)(); + void (*cleanup)(void); void (*tlb_flush)(struct agp_memory *); long unsigned int (*mask_memory)(struct agp_bridge_data *, dma_addr_t, int); - void (*cache_flush)(); + void (*cache_flush)(void); int (*create_gatt_table)(struct agp_bridge_data *); int (*free_gatt_table)(struct agp_bridge_data *); int (*insert_memory)(struct agp_memory *, off_t, int); @@ -74813,89 +91647,6 @@ struct agp_bridge_driver { int (*agp_type_to_mask_type)(struct agp_bridge_data *, int); }; -struct agp_info { - struct agp_version version; - u32 bridge_id; - u32 agp_mode; - long unsigned int aper_base; - size_t aper_size; - size_t pg_total; - size_t pg_system; - size_t pg_used; -}; - -struct agp_setup { - u32 agp_mode; -}; - -struct agp_segment { - off_t pg_start; - size_t pg_count; - int prot; -}; - -struct agp_segment_priv { - off_t pg_start; - size_t pg_count; - pgprot_t prot; -}; - -struct agp_region { - pid_t pid; - size_t seg_count; - struct agp_segment *seg_list; -}; - -struct agp_allocate { - int key; - size_t pg_count; - u32 type; - u32 physical; -}; - -struct agp_bind { - int key; - off_t pg_start; -}; - -struct agp_unbind { - int key; - u32 priority; -}; - -struct agp_client { - struct agp_client *next; - struct agp_client *prev; - pid_t pid; - int num_segments; - struct agp_segment_priv **segments; -}; - -struct agp_controller { - struct agp_controller *next; - struct agp_controller *prev; - pid_t pid; - int num_clients; - struct agp_memory *pool; - struct agp_client *clients; -}; - -struct agp_file_private { - struct agp_file_private *next; - struct agp_file_private *prev; - pid_t my_pid; - long unsigned int access_flags; -}; - -struct agp_front_data { - struct mutex agp_mutex; - struct agp_controller *current_controller; - struct agp_controller *controllers; - struct agp_file_private *file_priv_list; - bool used_by_controller; - bool backend_acquired; -}; - struct aper_size_info_8 { int size; int num_entries; @@ -74945,46 +91696,6 @@ struct isoch_data { struct agp_3_5_dev *dev; }; -struct agp_info32 { - struct agp_version version; - u32 bridge_id; - u32 agp_mode; - compat_long_t aper_base; - compat_size_t aper_size; - compat_size_t pg_total; - compat_size_t pg_system; - compat_size_t pg_used; -}; - -struct agp_segment32 { - compat_off_t pg_start; - compat_size_t pg_count; - compat_int_t prot; -}; - -struct agp_region32 { - compat_pid_t pid; - compat_size_t seg_count; - struct agp_segment32 *seg_list; -}; - -struct agp_allocate32 { - compat_int_t key; - compat_size_t pg_count; - u32 type; - u32 physical; -}; - -struct agp_bind32 { - compat_int_t key; - compat_off_t pg_start; -}; - -struct agp_unbind32 { - compat_int_t key; - u32 priority; -}; - struct intel_agp_driver_description { unsigned int chip_id; char *name; @@ -74998,11 +91709,11 @@ struct intel_gtt_driver { unsigned int is_ironlake: 1; unsigned int has_pgtbl_enable: 1; unsigned int dma_mask_size: 8; - int (*setup)(); - void (*cleanup)(); + int (*setup)(void); + void (*cleanup)(void); void (*write_entry)(dma_addr_t, unsigned int, unsigned int); bool (*check_flags)(unsigned int); - void (*chipset_flush)(); + void (*chipset_flush)(void); }; struct _intel_private { @@ -75042,6 +91753,561 @@ struct agp_device_ids { int (*chipset_setup)(struct pci_dev *); }; +enum tpm2_startup_types { + TPM2_SU_CLEAR = 0, + TPM2_SU_STATE = 1, +}; + +enum tpm_chip_flags { + TPM_CHIP_FLAG_TPM2 = 2, + TPM_CHIP_FLAG_IRQ = 4, + TPM_CHIP_FLAG_VIRTUAL = 8, + TPM_CHIP_FLAG_HAVE_TIMEOUTS = 16, + TPM_CHIP_FLAG_ALWAYS_POWERED = 32, + TPM_CHIP_FLAG_FIRMWARE_POWER_MANAGED = 64, +}; + +struct file_priv { + struct tpm_chip *chip; + struct tpm_space *space; + struct mutex buffer_mutex; + struct timer_list user_read_timer; + struct work_struct timeout_work; + struct work_struct async_work; + wait_queue_head_t async_wait; + ssize_t response_length; + bool response_read; + bool command_enqueued; + u8 data_buffer[4096]; +}; + +enum TPM_OPS_FLAGS { + TPM_OPS_AUTO_STARTUP = 1, +}; + +enum tpm2_timeouts { + TPM2_TIMEOUT_A = 750, + TPM2_TIMEOUT_B = 2000, + TPM2_TIMEOUT_C = 200, + TPM2_TIMEOUT_D = 30, + TPM2_DURATION_SHORT = 20, + TPM2_DURATION_MEDIUM = 750, + TPM2_DURATION_LONG = 2000, + TPM2_DURATION_LONG_LONG = 300000, + TPM2_DURATION_DEFAULT = 120000, +}; + +enum tpm_timeout { + TPM_TIMEOUT = 5, + TPM_TIMEOUT_RETRY = 100, + TPM_TIMEOUT_RANGE_US = 300, + TPM_TIMEOUT_POLL = 1, + TPM_TIMEOUT_USECS_MIN = 100, + TPM_TIMEOUT_USECS_MAX = 500, +}; + +struct stclear_flags_t { + __be16 tag; + u8 deactivated; + u8 disableForceClear; + u8 physicalPresence; + u8 physicalPresenceLock; + u8 bGlobalLock; +} __attribute__((packed)); + +struct tpm1_version { + u8 major; + u8 minor; + u8 rev_major; + u8 rev_minor; +}; + +struct tpm1_version2 { + __be16 tag; + struct tpm1_version version; +}; + +struct timeout_t { + __be32 a; + __be32 b; + __be32 c; + __be32 d; +}; + +struct duration_t { + __be32 tpm_short; + __be32 tpm_medium; + __be32 tpm_long; +}; + +struct permanent_flags_t { + __be16 tag; + u8 disable; + u8 ownership; + u8 deactivated; + u8 readPubek; + u8 disableOwnerClear; + u8 allowMaintenance; + u8 physicalPresenceLifetimeLock; + u8 physicalPresenceHWEnable; + u8 physicalPresenceCMDEnable; + u8 CEKPUsed; + u8 TPMpost; + u8 TPMpostLock; + u8 FIPS; + u8 operator; + u8 enableRevokeEK; + u8 nvLocked; + u8 readSRKPub; + u8 tpmEstablished; + u8 maintenanceDone; + u8 disableFullDALogicInfo; +}; + +typedef union { + struct permanent_flags_t perm_flags; + struct stclear_flags_t stclear_flags; + __u8 owned; + __be32 num_pcrs; + struct tpm1_version version1; + struct tpm1_version2 version2; + __be32 manufacturer_id; + struct timeout_t timeout; + struct duration_t duration; +} cap_t; + +enum tpm_capabilities { + TPM_CAP_FLAG = 4, + TPM_CAP_PROP = 5, + TPM_CAP_VERSION_1_1 = 6, + TPM_CAP_VERSION_1_2 = 26, +}; + +enum tpm_sub_capabilities { + TPM_CAP_PROP_PCR = 257, + TPM_CAP_PROP_MANUFACTURER = 259, + TPM_CAP_FLAG_PERM = 264, + TPM_CAP_FLAG_VOL = 265, + TPM_CAP_PROP_OWNER = 273, + TPM_CAP_PROP_TIS_TIMEOUT = 277, + TPM_CAP_PROP_TIS_DURATION = 288, +}; + +struct tpm1_get_random_out { + __be32 rng_data_len; + u8 rng_data[128]; +}; + +enum tpm2_const { + TPM2_PLATFORM_PCR = 24, + TPM2_PCR_SELECT_MIN = 3, +}; + +enum tpm2_capabilities { + TPM2_CAP_HANDLES = 1, + TPM2_CAP_COMMANDS = 2, + TPM2_CAP_PCRS = 5, + TPM2_CAP_TPM_PROPERTIES = 6, +}; + +enum tpm2_properties { + TPM_PT_TOTAL_COMMANDS = 297, +}; + +enum tpm2_cc_attrs { + TPM2_CC_ATTR_CHANDLES = 25, + TPM2_CC_ATTR_RHANDLE = 28, +}; + +struct tpm2_pcr_read_out { + __be32 update_cnt; + __be32 pcr_selects_cnt; + __be16 hash_alg; + u8 pcr_select_size; + u8 pcr_select[3]; + __be32 digests_cnt; + __be16 digest_size; + u8 digest[0]; +} __attribute__((packed)); + +struct tpm2_null_auth_area { + __be32 handle; + __be16 nonce_size; + u8 attributes; + __be16 auth_size; +} __attribute__((packed)); + +struct tpm2_get_random_out { + __be16 size; + u8 buffer[128]; +}; + +struct tpm2_get_cap_out { + u8 more_data; + __be32 subcap_id; + __be32 property_cnt; + __be32 property_id; + __be32 value; +} __attribute__((packed)); + +struct tpm2_pcr_selection { + __be16 hash_alg; + u8 size_of_select; + u8 pcr_select[3]; +}; + +struct tpmrm_priv { + struct file_priv priv; + struct tpm_space space; +}; + +enum tpm2_handle_types { + TPM2_HT_HMAC_SESSION = 33554432, + TPM2_HT_POLICY_SESSION = 50331648, + TPM2_HT_TRANSIENT = 2147483648, +}; + +struct tpm2_context { + __be64 sequence; + __be32 saved_handle; + __be32 hierarchy; + __be16 blob_size; +} __attribute__((packed)); + +struct tpm2_cap_handles { + u8 more_data; + __be32 capability; + __be32 count; + __be32 handles[0]; +} __attribute__((packed)); + +struct tpm_readpubek_out { + u8 algorithm[4]; + u8 encscheme[2]; + u8 sigscheme[2]; + __be32 paramsize; + u8 parameters[12]; + __be32 keysize; + u8 modulus[256]; + u8 checksum[20]; +}; + +struct tpm_pcr_attr { + int alg_id; + int pcr; + struct device_attribute attr; +}; + +struct tcpa_event { + u32 pcr_index; + u32 event_type; + u8 pcr_value[20]; + u32 event_size; + u8 event_data[0]; +}; + +enum tcpa_event_types { + PREBOOT = 0, + POST_CODE = 1, + UNUSED = 2, + NO_ACTION = 3, + SEPARATOR = 4, + ACTION = 5, + EVENT_TAG = 6, + SCRTM_CONTENTS = 7, + SCRTM_VERSION = 8, + CPU_MICROCODE = 9, + PLATFORM_CONFIG_FLAGS = 10, + TABLE_OF_DEVICES = 11, + COMPACT_HASH = 12, + IPL = 13, + IPL_PARTITION_DATA = 14, + NONHOST_CODE = 15, + NONHOST_CONFIG = 16, + NONHOST_INFO = 17, +}; + +struct tcpa_pc_event { + u32 event_id; + u32 event_size; + u8 event_data[0]; +}; + +enum tcpa_pc_event_ids { + SMBIOS = 1, + BIS_CERT = 2, + POST_BIOS_ROM = 3, + ESCD = 4, + CMOS = 5, + NVRAM = 6, + OPTION_ROM_EXEC = 7, + OPTION_ROM_CONFIG = 8, + OPTION_ROM_MICROCODE = 10, + S_CRTM_VERSION = 11, + S_CRTM_CONTENTS = 12, + POST_CONTENTS = 13, + HOST_TABLE_OF_DEVICES = 14, +}; + +struct tcg_efi_specid_event_algs { + u16 alg_id; + u16 digest_size; +}; + +struct tcg_efi_specid_event_head { + u8 signature[16]; + u32 platform_class; + u8 spec_version_minor; + u8 spec_version_major; + u8 spec_errata; + u8 uintnsize; + u32 num_algs; + struct tcg_efi_specid_event_algs digest_sizes[0]; +}; + +struct tcg_pcr_event { + u32 pcr_idx; + u32 event_type; + u8 digest[20]; + u32 event_size; + u8 event[0]; +}; + +struct tcg_event_field { + u32 event_size; + u8 event[0]; +}; + +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; +}; + +struct acpi_table_tpm2 { + struct acpi_table_header header; + u16 platform_class; + u16 reserved; + u64 control_address; + u32 start_method; +} __attribute__((packed)); + +struct acpi_tpm2_phy { + u8 start_method_specific[12]; + u32 log_area_minimum_length; + u64 log_area_start_address; +}; + +enum bios_platform_class { + BIOS_CLIENT = 0, + BIOS_SERVER = 1, +}; + +struct client_hdr { + u32 log_max_len; + u64 log_start_addr; +} __attribute__((packed)); + +struct server_hdr { + u16 reserved; + u64 log_max_len; + u64 log_start_addr; +} __attribute__((packed)); + +struct acpi_tcpa { + struct acpi_table_header hdr; + u16 platform_class; + union { + struct client_hdr client; + struct server_hdr server; + }; +}; + +struct linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; +}; + +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; +}; + +enum tis_access { + TPM_ACCESS_VALID = 128, + TPM_ACCESS_ACTIVE_LOCALITY = 32, + TPM_ACCESS_REQUEST_PENDING = 4, + TPM_ACCESS_REQUEST_USE = 2, +}; + +enum tis_status { + TPM_STS_VALID = 128, + TPM_STS_COMMAND_READY = 64, + TPM_STS_GO = 32, + TPM_STS_DATA_AVAIL = 16, + TPM_STS_DATA_EXPECT = 8, + TPM_STS_READ_ZERO = 35, +}; + +enum tis_int_flags { + TPM_GLOBAL_INT_ENABLE = 2147483648, + TPM_INTF_BURST_COUNT_STATIC = 256, + TPM_INTF_CMD_READY_INT = 128, + TPM_INTF_INT_EDGE_FALLING = 64, + TPM_INTF_INT_EDGE_RISING = 32, + TPM_INTF_INT_LEVEL_LOW = 16, + TPM_INTF_INT_LEVEL_HIGH = 8, + TPM_INTF_LOCALITY_CHANGE_INT = 4, + TPM_INTF_STS_VALID_INT = 2, + TPM_INTF_DATA_AVAIL_INT = 1, +}; + +enum tis_defaults { + TIS_MEM_LEN = 20480, + TIS_SHORT_TIMEOUT = 750, + TIS_LONG_TIMEOUT = 2000, + TIS_TIMEOUT_MIN_ATML = 14700, + TIS_TIMEOUT_MAX_ATML = 15000, +}; + +enum tpm_tis_flags { + TPM_TIS_ITPM_WORKAROUND = 1, + TPM_TIS_INVALID_STATUS = 2, +}; + +struct tpm_tis_phy_ops; + +struct tpm_tis_data { + u16 manufacturer_id; + struct mutex locality_count_mutex; + unsigned int locality_count; + int locality; + int irq; + bool irq_tested; + long unsigned int flags; + void *ilb_base_addr; + u16 clkrun_enabled; + wait_queue_head_t int_queue; + wait_queue_head_t read_queue; + const struct tpm_tis_phy_ops *phy_ops; + short unsigned int rng_quality; + unsigned int timeout_min; + unsigned int timeout_max; +}; + +struct tpm_tis_phy_ops { + int (*read_bytes)(struct tpm_tis_data *, u32, u16, u8 *); + int (*write_bytes)(struct tpm_tis_data *, u32, u16, const u8 *); + int (*read16)(struct tpm_tis_data *, u32, u16 *); + int (*read32)(struct tpm_tis_data *, u32, u32 *); + int (*write32)(struct tpm_tis_data *, u32, u32); +}; + +struct tis_vendor_durations_override { + u32 did_vid; + struct tpm1_version version; + long unsigned int durations[3]; +}; + +struct tis_vendor_timeout_override { + u32 did_vid; + long unsigned int timeout_us[4]; +}; + +struct tpm_info { + struct resource res; + int irq; +}; + +struct tpm_tis_tcg_phy { + struct tpm_tis_data priv; + void *iobase; +}; + +enum crb_defaults { + CRB_ACPI_START_REVISION_ID = 1, + CRB_ACPI_START_INDEX = 1, +}; + +enum crb_loc_ctrl { + CRB_LOC_CTRL_REQUEST_ACCESS = 1, + CRB_LOC_CTRL_RELINQUISH = 2, +}; + +enum crb_loc_state { + CRB_LOC_STATE_LOC_ASSIGNED = 2, + CRB_LOC_STATE_TPM_REG_VALID_STS = 128, +}; + +enum crb_ctrl_req { + CRB_CTRL_REQ_CMD_READY = 1, + CRB_CTRL_REQ_GO_IDLE = 2, +}; + +enum crb_ctrl_sts { + CRB_CTRL_STS_ERROR = 1, + CRB_CTRL_STS_TPM_IDLE = 2, +}; + +enum crb_start { + CRB_START_INVOKE = 1, +}; + +enum crb_cancel { + CRB_CANCEL_INVOKE = 1, +}; + +struct crb_regs_head { + u32 loc_state; + u32 reserved1; + u32 loc_ctrl; + u32 loc_sts; + u8 reserved2[32]; + u64 intf_id; + u64 ctrl_ext; +}; + +struct crb_regs_tail { + u32 ctrl_req; + u32 ctrl_sts; + u32 ctrl_cancel; + u32 ctrl_start; + u32 ctrl_int_enable; + u32 ctrl_int_sts; + u32 ctrl_cmd_size; + u32 ctrl_cmd_pa_low; + u32 ctrl_cmd_pa_high; + u32 ctrl_rsp_size; + u64 ctrl_rsp_pa; +}; + +enum crb_status { + CRB_DRV_STS_COMPLETE = 1, +}; + +struct crb_priv { + u32 sm; + const char *hid; + struct crb_regs_head *regs_h; + struct crb_regs_tail *regs_t; + u8 *cmd; + u8 *rsp; + u32 cmd_size; + u32 smc_func_id; +}; + +struct tpm2_crb_smc { + u32 interrupt; + u8 interrupt_flags; + u8 op_flags; + u16 reserved2; + u32 smc_func_id; +}; + struct vcpu_data; struct amd_iommu_pi_data { @@ -75063,6 +92329,89 @@ struct amd_iommu_device_info { u32 flags; }; +enum io_pgtable_fmt { + ARM_32_LPAE_S1 = 0, + ARM_32_LPAE_S2 = 1, + ARM_64_LPAE_S1 = 2, + ARM_64_LPAE_S2 = 3, + ARM_V7S = 4, + ARM_MALI_LPAE = 5, + AMD_IOMMU_V1 = 6, + APPLE_DART = 7, + IO_PGTABLE_NUM_FMTS = 8, +}; + +struct iommu_flush_ops { + void (*tlb_flush_all)(void *); + void (*tlb_flush_walk)(long unsigned int, size_t, size_t, void *); + void (*tlb_add_page)(struct iommu_iotlb_gather *, long unsigned int, size_t, void *); +}; + +struct io_pgtable_cfg { + long unsigned int quirks; + long unsigned int pgsize_bitmap; + unsigned int ias; + unsigned int oas; + bool coherent_walk; + const struct iommu_flush_ops *tlb; + struct device *iommu_dev; + union { + struct { + u64 ttbr; + struct { + u32 ips: 3; + u32 tg: 2; + u32 sh: 2; + u32 orgn: 2; + u32 irgn: 2; + u32 tsz: 6; + } tcr; + u64 mair; + } arm_lpae_s1_cfg; + struct { + u64 vttbr; + struct { + u32 ps: 3; + u32 tg: 2; + u32 sh: 2; + u32 orgn: 2; + u32 irgn: 2; + u32 sl: 2; + u32 tsz: 6; + } vtcr; + } arm_lpae_s2_cfg; + struct { + u32 ttbr; + u32 tcr; + u32 nmrr; + u32 prrr; + } arm_v7s_cfg; + struct { + u64 transtab; + u64 memattr; + } arm_mali_lpae_cfg; + struct { + u64 ttbr[4]; + u32 n_ttbrs; + } apple_dart_cfg; + }; +}; + +struct io_pgtable_ops { + int (*map)(struct io_pgtable_ops *, long unsigned int, phys_addr_t, size_t, int, gfp_t); + int (*map_pages)(struct io_pgtable_ops *, long unsigned int, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap)(struct io_pgtable_ops *, long unsigned int, size_t, struct iommu_iotlb_gather *); + size_t (*unmap_pages)(struct io_pgtable_ops *, long unsigned int, size_t, size_t, struct iommu_iotlb_gather *); + phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *, long unsigned int); +}; + +struct io_pgtable { + enum io_pgtable_fmt fmt; + void *cookie; + struct io_pgtable_cfg cfg; + struct io_pgtable_ops ops; +}; + struct irq_remap_table { raw_spinlock_t lock; unsigned int min_index; @@ -75077,12 +92426,20 @@ struct amd_iommu_fault { u16 flags; }; +struct amd_io_pgtable { + struct io_pgtable_cfg pgtbl_cfg; + struct io_pgtable iop; + int mode; + u64 *root; + atomic64_t pt_root; +}; + struct protection_domain { struct list_head dev_list; struct iommu_domain domain; + struct amd_io_pgtable iop; spinlock_t lock; u16 id; - atomic64_t pt_root; int glx; u64 *gcr3_tbl; long unsigned int flags; @@ -75090,9 +92447,9 @@ struct protection_domain { unsigned int dev_iommu[32]; }; -struct domain_pgtable { - int mode; - u64 *root; +struct amd_iommu_pci_seg { + struct list_head list; + u16 id; }; struct amd_irte_ops; @@ -75112,7 +92469,7 @@ struct amd_iommu { bool is_iommu_v2; u16 devid; u16 cap_ptr; - u16 pci_seg; + struct amd_iommu_pci_seg *pci_seg; u64 exclusion_start; u64 exclusion_length; u8 *cmd_buf; @@ -75137,11 +92494,10 @@ struct amd_iommu { u32 flags; volatile u64 *cmd_sem; u64 cmd_sem_val; - struct irq_affinity_notify intcapxt_notify; }; struct amd_irte_ops { - void (*prepare)(void *, u32, u32, u8, u32, int); + void (*prepare)(void *, u32, bool, u8, u32, int); void (*activate)(void *, u16, u16); void (*deactivate)(void *, u16, u16); void (*set_affinity)(void *, u16, u16, u8, u32); @@ -75181,7 +92537,6 @@ struct iommu_dev_data { int qdep; } ats; bool pri_tlp; - u32 errata; bool use_vapic; bool defer_attach; struct ratelimit_state rs; @@ -75274,18 +92629,17 @@ struct amd_ir_data { void *ref; struct irq_cfg *cfg; int ga_vector; - int ga_root_ptr; - int ga_tag; + u64 ga_root_ptr; + u32 ga_tag; }; struct irq_remap_ops { int capability; - int (*prepare)(); - int (*enable)(); - void (*disable)(); + int (*prepare)(void); + int (*enable)(void); + void (*disable)(void); int (*reenable)(int); - int (*enable_faulting)(); - struct irq_domain * (*get_irq_domain)(struct irq_alloc_info *); + int (*enable_faulting)(void); }; struct iommu_cmd { @@ -75340,11 +92694,23 @@ enum iommu_init_state { IOMMU_ENABLED = 3, IOMMU_PCI_INIT = 4, IOMMU_INTERRUPTS_EN = 5, - IOMMU_DMA_OPS = 6, - IOMMU_INITIALIZED = 7, - IOMMU_NOT_FOUND = 8, - IOMMU_INIT_ERROR = 9, - IOMMU_CMDLINE_DISABLED = 10, + IOMMU_INITIALIZED = 6, + IOMMU_NOT_FOUND = 7, + IOMMU_INIT_ERROR = 8, + IOMMU_CMDLINE_DISABLED = 9, +}; + +union intcapxt { + u64 capxt; + struct { + u64 reserved_0: 2; + u64 dest_mode_logical: 1; + u64 reserved_1: 5; + u64 destid_0_23: 24; + u64 vector: 8; + u64 reserved_2: 16; + u64 destid_24_31: 8; + }; }; struct ivrs_quirk_entry { @@ -75358,58 +92724,9 @@ enum { LENOVO_IDEAPAD_330S_15ARR = 2, }; -typedef int (*amd_iommu_invalid_ppr_cb)(struct pci_dev *, u32, long unsigned int, u16); - -typedef void (*amd_iommu_invalidate_ctx)(struct pci_dev *, u32); - -struct pri_queue { - atomic_t inflight; - bool finish; - int status; -}; - -struct device_state; - -struct pasid_state { - struct list_head list; - atomic_t count; - unsigned int mmu_notifier_count; - struct mm_struct *mm; - struct mmu_notifier mn; - struct pri_queue pri[512]; - struct device_state *device_state; - u32 pasid; - bool invalid; - spinlock_t lock; - wait_queue_head_t wq; -}; - -struct device_state { - struct list_head list; - u16 devid; - atomic_t count; - struct pci_dev *pdev; - struct pasid_state **states; - struct iommu_domain *domain; - int pasid_levels; - int max_pasids; - amd_iommu_invalid_ppr_cb inv_ppr_cb; - amd_iommu_invalidate_ctx inv_ctx_cb; - spinlock_t lock; - wait_queue_head_t wq; -}; - -struct fault { - struct work_struct work; - struct device_state *dev_state; - struct pasid_state *state; - struct mm_struct *mm; - u64 address; - u16 devid; - u32 pasid; - u16 tag; - u16 finish; - u16 flags; +struct io_pgtable_init_fns { + struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); + void (*free)(struct io_pgtable *); }; struct acpi_table_dmar { @@ -75430,7 +92747,8 @@ enum acpi_dmar_type { ACPI_DMAR_TYPE_ROOT_ATS = 2, ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3, ACPI_DMAR_TYPE_NAMESPACE = 4, - ACPI_DMAR_TYPE_RESERVED = 5, + ACPI_DMAR_TYPE_SATC = 5, + ACPI_DMAR_TYPE_RESERVED = 6, }; struct acpi_dmar_device_scope { @@ -75493,6 +92811,13 @@ struct acpi_dmar_andd { char device_name[1]; } __attribute__((packed)); +struct acpi_dmar_satc { + struct acpi_dmar_header header; + u8 flags; + u8 reserved; + u16 segment; +}; + struct dmar_dev_scope { struct device *dev; u8 bus; @@ -75538,6 +92863,8 @@ struct root_entry; struct page_req_dsc; +struct iopf_queue; + struct q_inval; struct ir_table; @@ -75560,6 +92887,7 @@ struct intel_iommu { unsigned char name[13]; long unsigned int *domain_ids; struct dmar_domain ***domains; + long unsigned int *copied_tables; spinlock_t lock; struct root_entry *root_entry; struct iommu_flush flush; @@ -75567,8 +92895,10 @@ struct intel_iommu { unsigned char prq_name[16]; struct completion prq_complete; struct ioasid_allocator_ops pasid_allocator; + struct iopf_queue *iopf_queue; + unsigned char iopfq_name[16]; struct q_inval *qi; - u32 *iommu_state; + u32 iommu_state[4]; struct ir_table *ir_table; struct irq_domain *ir_domain; struct irq_domain *ir_msi_domain; @@ -75576,6 +92906,7 @@ struct intel_iommu { int node; u32 flags; struct dmar_drhd_unit *drhd; + void *perf_statistic; }; struct dmar_pci_path { @@ -75693,6 +93024,7 @@ struct iova_domain { iova_entry_dtor entry_dtor; struct timer_list fq_timer; atomic_t fq_timer_on; + struct hlist_node cpuhp_dead; }; struct iova_fq_entry { @@ -75748,18 +93080,16 @@ struct dmar_domain { int nid; unsigned int iommu_refcnt[128]; u16 iommu_did[128]; - unsigned int auxd_refcnt; - bool has_iotlb_device; + u8 has_iotlb_device: 1; + u8 iommu_coherency: 1; + u8 iommu_snooping: 1; struct list_head devices; - struct list_head auxd; + struct list_head subdevices; struct iova_domain iovad; struct dma_pte *pgd; int gaw; int agaw; int flags; - int iommu_coherency; - int iommu_snooping; - int iommu_count; int iommu_superpage; u64 max_addr; u32 default_pasid; @@ -75770,11 +93100,33 @@ struct dma_pte { u64 val; }; +enum latency_type { + DMAR_LATENCY_INV_IOTLB = 0, + DMAR_LATENCY_INV_DEVTLB = 1, + DMAR_LATENCY_INV_IEC = 2, + DMAR_LATENCY_PRQ = 3, + DMAR_LATENCY_NUM = 4, +}; + +enum latency_count { + COUNTS_10e2 = 0, + COUNTS_10e3 = 1, + COUNTS_10e4 = 2, + COUNTS_10e5 = 3, + COUNTS_10e6 = 4, + COUNTS_10e7 = 5, + COUNTS_10e8_plus = 6, + COUNTS_MIN = 7, + COUNTS_MAX = 8, + COUNTS_SUM = 9, + COUNTS_NUM = 10, +}; + typedef int (*dmar_res_handler_t)(struct acpi_dmar_header *, void *); struct dmar_res_callback { - dmar_res_handler_t cb[5]; - void *arg[5]; + dmar_res_handler_t cb[6]; + void *arg[6]; bool ignore_unhandled; bool print_entry; }; @@ -75785,6 +93137,10 @@ enum faulttype { UNKNOWN = 2, }; +struct ioasid_set { + int dummy; +}; + enum iommu_inv_granularity { IOMMU_INV_GRANU_DOMAIN = 0, IOMMU_INV_GRANU_PASID = 1, @@ -75792,26 +93148,25 @@ enum iommu_inv_granularity { IOMMU_INV_GRANU_NR = 3, }; -enum { - SR_DMAR_FECTL_REG = 0, - SR_DMAR_FEDATA_REG = 1, - SR_DMAR_FEADDR_REG = 2, - SR_DMAR_FEUADDR_REG = 3, - MAX_SR_DMAR_REGS = 4, -}; - struct context_entry { u64 lo; u64 hi; }; +struct subdev_domain_info { + struct list_head link_phys; + struct list_head link_domain; + struct device *pdev; + struct dmar_domain *domain; + int users; +}; + struct pasid_table; struct device_domain_info { struct list_head link; struct list_head global; - struct list_head table; - struct list_head auxiliary_domains; + struct list_head subdevices; u32 segment; u8 bus; u8 devfn; @@ -75834,7 +93189,13 @@ struct pasid_table { void *table; int order; u32 max_pasid; - struct list_head dev; +}; + +enum cap_audit_type { + CAP_AUDIT_STATIC_DMAR = 0, + CAP_AUDIT_STATIC_IRQR = 1, + CAP_AUDIT_HOTPLUG_DMAR = 2, + CAP_AUDIT_HOTPLUG_IRQR = 3, }; struct dmar_rmrr_unit { @@ -75854,6 +93215,15 @@ struct dmar_atsr_unit { u8 include_all: 1; }; +struct dmar_satc_unit { + struct list_head list; + struct acpi_dmar_header *hdr; + struct dmar_dev_scope *devices; + struct intel_iommu *iommu; + int devices_cnt; + u8 atc_required: 1; +}; + struct domain_context_mapping_data { struct dmar_domain *domain; struct intel_iommu *iommu; @@ -75868,66 +93238,42 @@ struct pasid_entry { u64 val[8]; }; -struct pasid_table_opaque { - struct pasid_table **pasid_table; - int segment; - int bus; - int devfn; -}; - -struct trace_event_raw_dma_map { +struct trace_event_raw_qi_submit { struct trace_entry ent; - u32 __data_loc_dev_name; - dma_addr_t dev_addr; - phys_addr_t phys_addr; - size_t size; + u64 qw0; + u64 qw1; + u64 qw2; + u64 qw3; + u32 __data_loc_iommu; char __data[0]; }; -struct trace_event_raw_dma_unmap { +struct trace_event_raw_prq_report { struct trace_entry ent; - u32 __data_loc_dev_name; - dma_addr_t dev_addr; - size_t size; + u64 dw0; + u64 dw1; + u64 dw2; + u64 dw3; + long unsigned int seq; + u32 __data_loc_iommu; + u32 __data_loc_dev; + u32 __data_loc_buff; char __data[0]; }; -struct trace_event_raw_dma_map_sg { - struct trace_entry ent; - u32 __data_loc_dev_name; - dma_addr_t dev_addr; - phys_addr_t phys_addr; - size_t size; - int index; - int total; - char __data[0]; +struct trace_event_data_offsets_qi_submit { + u32 iommu; }; -struct trace_event_data_offsets_dma_map { - u32 dev_name; +struct trace_event_data_offsets_prq_report { + u32 iommu; + u32 dev; + u32 buff; }; -struct trace_event_data_offsets_dma_unmap { - u32 dev_name; -}; +typedef void (*btf_trace_qi_submit)(void *, struct intel_iommu *, u64, u64, u64, u64); -struct trace_event_data_offsets_dma_map_sg { - u32 dev_name; -}; - -typedef void (*btf_trace_map_single)(void *, struct device *, dma_addr_t, phys_addr_t, size_t); - -typedef void (*btf_trace_bounce_map_single)(void *, struct device *, dma_addr_t, phys_addr_t, size_t); - -typedef void (*btf_trace_unmap_single)(void *, struct device *, dma_addr_t, size_t); - -typedef void (*btf_trace_unmap_sg)(void *, struct device *, dma_addr_t, size_t); - -typedef void (*btf_trace_bounce_unmap_single)(void *, struct device *, dma_addr_t, size_t); - -typedef void (*btf_trace_map_sg)(void *, struct device *, int, int, struct scatterlist *); - -typedef void (*btf_trace_bounce_map_sg)(void *, struct device *, int, int, struct scatterlist *); +typedef void (*btf_trace_prq_report)(void *, struct intel_iommu *, struct device *, u64, u64, u64, u64, long unsigned int); enum iommu_fault_type { IOMMU_FAULT_DMA_UNRECOV = 1, @@ -75962,15 +93308,13 @@ struct page_req_dsc { u64 priv_data[2]; }; -struct svm_dev_ops; - struct intel_svm_dev { struct list_head list; struct callback_head rcu; struct device *dev; struct intel_iommu *iommu; - struct svm_dev_ops *ops; struct iommu_sva sva; + long unsigned int prq_seq_number; u32 pasid; int users; u16 did; @@ -75979,10 +93323,6 @@ struct intel_svm_dev { u16 qdep; }; -struct svm_dev_ops { - void (*fault_cb)(struct device *, u32, u64, void *, int, int); -}; - struct intel_svm { struct mmu_notifier notifier; struct mm_struct *mm; @@ -75990,7 +93330,6 @@ struct intel_svm { u32 pasid; int gpasid; struct list_head devs; - struct list_head list; }; enum irq_mode { @@ -76213,12 +93552,6 @@ typedef void (*btf_trace_unmap)(void *, long unsigned int, size_t, size_t); typedef void (*btf_trace_io_page_fault)(void *, struct device *, long unsigned int, int); -struct iommu_dma_msi_page { - struct list_head list; - dma_addr_t iova; - phys_addr_t phys; -}; - enum iommu_dma_cookie_type { IOMMU_DMA_IOVA_COOKIE = 0, IOMMU_DMA_MSI_COOKIE = 1, @@ -76234,8 +93567,10 @@ struct iommu_dma_cookie { struct iommu_domain *fq_domain; }; -struct ioasid_set { - int dummy; +struct iommu_dma_msi_page { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; }; struct ioasid_data { @@ -76243,6 +93578,7 @@ struct ioasid_data { struct ioasid_set *set; void *private; struct callback_head rcu; + refcount_t refs; }; struct ioasid_allocator_data { @@ -76265,6 +93601,8408 @@ struct iova_cpu_rcache { struct iova_magazine *prev; }; +struct hyperv_root_ir_data { + u8 ioapic_id; + bool is_level; + struct hv_interrupt_entry entry; +} __attribute__((packed)); + +struct virtio_iommu_range_64 { + __le64 start; + __le64 end; +}; + +struct virtio_iommu_range_32 { + __le32 start; + __le32 end; +}; + +struct virtio_iommu_config { + __le64 page_size_mask; + struct virtio_iommu_range_64 input_range; + struct virtio_iommu_range_32 domain_range; + __le32 probe_size; +}; + +struct virtio_iommu_req_head { + __u8 type; + __u8 reserved[3]; +}; + +struct virtio_iommu_req_tail { + __u8 status; + __u8 reserved[3]; +}; + +struct virtio_iommu_req_attach { + struct virtio_iommu_req_head head; + __le32 domain; + __le32 endpoint; + __u8 reserved[8]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_map { + struct virtio_iommu_req_head head; + __le32 domain; + __le64 virt_start; + __le64 virt_end; + __le64 phys_start; + __le32 flags; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_req_unmap { + struct virtio_iommu_req_head head; + __le32 domain; + __le64 virt_start; + __le64 virt_end; + __u8 reserved[4]; + struct virtio_iommu_req_tail tail; +}; + +struct virtio_iommu_probe_property { + __le16 type; + __le16 length; +}; + +struct virtio_iommu_probe_resv_mem { + struct virtio_iommu_probe_property head; + __u8 subtype; + __u8 reserved[3]; + __le64 start; + __le64 end; +}; + +struct virtio_iommu_req_probe { + struct virtio_iommu_req_head head; + __le32 endpoint; + __u8 reserved[64]; + __u8 properties[0]; +}; + +struct virtio_iommu_fault { + __u8 reason; + __u8 reserved[3]; + __le32 flags; + __le32 endpoint; + __u8 reserved2[4]; + __le64 address; +}; + +struct viommu_dev { + struct iommu_device iommu; + struct device *dev; + struct virtio_device *vdev; + struct ida domain_ids; + struct virtqueue *vqs[2]; + spinlock_t request_lock; + struct list_head requests; + void *evts; + struct iommu_domain_geometry geometry; + u64 pgsize_bitmap; + u32 first_domain; + u32 last_domain; + u32 map_flags; + u32 probe_size; +}; + +struct viommu_mapping { + phys_addr_t paddr; + struct interval_tree_node iova; + u32 flags; +}; + +struct viommu_domain { + struct iommu_domain domain; + struct viommu_dev *viommu; + struct mutex mutex; + unsigned int id; + u32 map_flags; + spinlock_t mappings_lock; + struct rb_root_cached mappings; + long unsigned int nr_endpoints; +}; + +struct viommu_endpoint { + struct device *dev; + struct viommu_dev *viommu; + struct viommu_domain *vdomain; + struct list_head resv_regions; +}; + +struct viommu_request { + struct list_head list; + void *writeback; + unsigned int write_offset; + unsigned int len; + char buf[0]; +}; + +struct viommu_event { + union { + u32 head; + struct virtio_iommu_fault fault; + }; +}; + +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, +}; + +struct iopf_device_param { + struct device *dev; + struct iopf_queue *queue; + struct list_head queue_list; + struct list_head partial; +}; + +struct iopf_queue { + struct workqueue_struct *wq; + struct list_head devices; + struct mutex lock; +}; + +struct iopf_fault { + struct iommu_fault fault; + struct list_head list; +}; + +struct iopf_group { + struct iopf_fault last_fault; + struct list_head faults; + struct work_struct work; + struct device *dev; +}; + +struct cb_id { + __u32 idx; + __u32 val; +}; + +struct cn_msg { + struct cb_id id; + __u32 seq; + __u32 ack; + __u16 len; + __u16 flags; + __u8 data[0]; +}; + +struct cn_queue_dev { + atomic_t refcnt; + unsigned char name[32]; + struct list_head queue_list; + spinlock_t queue_lock; + struct sock *nls; +}; + +struct cn_callback_id { + unsigned char name[32]; + struct cb_id id; +}; + +struct cn_callback_entry { + struct list_head callback_entry; + refcount_t refcnt; + struct cn_queue_dev *pdev; + struct cn_callback_id id; + void (*callback)(struct cn_msg *, struct netlink_skb_parms *); + u32 seq; + u32 group; +}; + +struct cn_dev { + struct cb_id id; + u32 seq; + u32 groups; + struct sock *nls; + struct cn_queue_dev *cbdev; +}; + +enum proc_cn_mcast_op { + PROC_CN_MCAST_LISTEN = 1, + PROC_CN_MCAST_IGNORE = 2, +}; + +struct fork_proc_event { + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; + __kernel_pid_t child_pid; + __kernel_pid_t child_tgid; +}; + +struct exec_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; +}; + +struct id_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + union { + __u32 ruid; + __u32 rgid; + } r; + union { + __u32 euid; + __u32 egid; + } e; +}; + +struct sid_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; +}; + +struct ptrace_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + __kernel_pid_t tracer_pid; + __kernel_pid_t tracer_tgid; +}; + +struct comm_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + char comm[16]; +}; + +struct coredump_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; +}; + +struct exit_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + __u32 exit_code; + __u32 exit_signal; + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; +}; + +struct proc_event { + enum what what; + __u32 cpu; + __u64 timestamp_ns; + union { + struct { + __u32 err; + } ack; + struct fork_proc_event fork; + struct exec_proc_event exec; + struct id_proc_event id; + struct sid_proc_event sid; + struct ptrace_proc_event ptrace; + struct comm_proc_event comm; + struct coredump_proc_event coredump; + struct exit_proc_event exit; + } event_data; +}; + +struct local_event { + local_lock_t lock; + __u32 count; +}; + +struct component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); +}; + +struct component_master_ops { + int (*bind)(struct device *); + void (*unbind)(struct device *); +}; + +struct component; + +struct component_match_array { + void *data; + int (*compare)(struct device *, void *); + int (*compare_typed)(struct device *, int, void *); + void (*release)(struct device *, void *); + struct component *component; + bool duplicate; +}; + +struct master; + +struct component { + struct list_head node; + struct master *master; + bool bound; + const struct component_ops *ops; + int subcomponent; + struct device *dev; +}; + +struct component_match { + size_t alloc; + size_t num; + struct component_match_array *compare; +}; + +struct master { + struct list_head node; + bool bound; + const struct component_master_ops *ops; + struct device *parent; + struct component_match *match; +}; + +struct fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; +}; + +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; +}; + +enum dpm_order { + DPM_ORDER_NONE = 0, + DPM_ORDER_DEV_AFTER_PARENT = 1, + DPM_ORDER_PARENT_BEFORE_DEV = 2, + DPM_ORDER_DEV_LAST = 3, +}; + +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + struct bus_type *bus; + struct kset glue_dirs; + struct class *class; +}; + +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; +}; + +struct device_private { + struct klist klist_children; + struct klist_node knode_parent; + struct klist_node knode_driver; + struct klist_node knode_bus; + struct klist_node knode_class; + struct list_head deferred_probe; + struct device_driver *async_driver; + char *deferred_probe_reason; + struct device *device; + u8 dead: 1; +}; + +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; +}; + +struct class_dir { + struct kobject kobj; + struct class *class; +}; + +struct root_device { + struct device dev; + struct module *owner; +}; + +struct subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; +}; + +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; +}; + +struct class_attribute_string { + struct class_attribute attr; + char *str; +}; + +struct class_compat { + struct kobject *kobj; +}; + +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; +}; + +struct platform_object { + struct platform_device pdev; + char name[0]; +}; + +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; +}; + +struct probe { + struct probe *next; + dev_t dev; + long unsigned int range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; +}; + +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; +}; + +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; + size_t size; +}; + +struct devres { + struct devres_node node; + u8 data[0]; +}; + +struct devres_group { + struct devres_node node[2]; + void *id; + int color; +}; + +struct action_devres { + void *data; + void (*action)(void *); +}; + +struct pages_devres { + long unsigned int addr; + unsigned int order; +}; + +struct attribute_container { + struct list_head node; + struct klist containers; + struct class *class; + const struct attribute_group *grp; + struct device_attribute **attrs; + int (*match)(struct attribute_container *, struct device *); + long unsigned int flags; +}; + +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; +}; + +struct transport_container; + +struct transport_class { + struct class class; + int (*setup)(struct transport_container *, struct device *, struct device *); + int (*configure)(struct transport_container *, struct device *, struct device *); + int (*remove)(struct transport_container *, struct device *, struct device *); +}; + +struct transport_container { + struct attribute_container ac; + const struct attribute_group *statistics; +}; + +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; +}; + +typedef void * (*devcon_match_fn_t)(struct fwnode_handle *, const char *, void *); + +struct mii_bus; + +struct mdio_device { + struct device dev; + struct mii_bus *bus; + char modalias[32]; + int (*bus_match)(struct device *, struct device_driver *); + void (*device_free)(struct mdio_device *); + void (*device_remove)(struct mdio_device *); + int addr; + int flags; + struct gpio_desc *reset_gpio; + struct reset_control *reset_ctrl; + unsigned int reset_assert_delay; + unsigned int reset_deassert_delay; +}; + +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; +}; + +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_UP = 3, + PHY_RUNNING = 4, + PHY_NOLINK = 5, + PHY_CABLETEST = 6, +}; + +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_QSGMII = 18, + PHY_INTERFACE_MODE_TRGMII = 19, + PHY_INTERFACE_MODE_100BASEX = 20, + PHY_INTERFACE_MODE_1000BASEX = 21, + PHY_INTERFACE_MODE_2500BASEX = 22, + PHY_INTERFACE_MODE_5GBASER = 23, + PHY_INTERFACE_MODE_RXAUI = 24, + PHY_INTERFACE_MODE_XAUI = 25, + PHY_INTERFACE_MODE_10GBASER = 26, + PHY_INTERFACE_MODE_25GBASER = 27, + PHY_INTERFACE_MODE_USXGMII = 28, + PHY_INTERFACE_MODE_10GKR = 29, + PHY_INTERFACE_MODE_MAX = 30, +} phy_interface_t; + +struct phylink; + +struct phy_driver; + +struct phy_led_trigger; + +struct phy_package_shared; + +struct mii_timestamper; + +struct phy_device { + struct mdio_device mdio; + struct phy_driver *drv; + u32 phy_id; + struct phy_c45_device_ids c45_ids; + unsigned int is_c45: 1; + unsigned int is_internal: 1; + unsigned int is_pseudo_fixed_link: 1; + unsigned int is_gigabit_capable: 1; + unsigned int has_fixups: 1; + unsigned int suspended: 1; + unsigned int suspended_by_mdio_bus: 1; + unsigned int sysfs_links: 1; + unsigned int loopback_enabled: 1; + unsigned int downshifted_rate: 1; + unsigned int is_on_sfp_module: 1; + unsigned int mac_managed_pm: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + int speed; + int duplex; + int port; + int pause; + int asym_pause; + u8 master_slave_get; + u8 master_slave_set; + u8 master_slave_state; + long unsigned int supported[2]; + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + long unsigned int adv_old[2]; + u32 eee_broken_modes; + struct phy_led_trigger *phy_led_triggers; + unsigned int phy_num_led_triggers; + struct phy_led_trigger *last_triggered; + struct phy_led_trigger *led_link_trigger; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + u8 mdix; + u8 mdix_ctrl; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); + const struct macsec_ops *macsec_ops; +}; + +struct phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; +}; + +struct mdio_bus_stats { + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t writes; + u64_stats_t reads; + struct u64_stats_sync syncp; +}; + +struct mii_bus { + struct module *owner; + const char *name; + char id[61]; + void *priv; + int (*read)(struct mii_bus *, int, int); + int (*write)(struct mii_bus *, int, int, u16); + int (*reset)(struct mii_bus *); + struct mdio_bus_stats stats[32]; + struct mutex mdio_lock; + struct device *parent; + enum { + MDIOBUS_ALLOCATED = 1, + MDIOBUS_REGISTERED = 2, + MDIOBUS_UNREGISTERED = 3, + MDIOBUS_RELEASED = 4, + } state; + struct device dev; + struct mdio_device *mdio_map[32]; + u32 phy_mask; + u32 phy_ignore_ta_mask; + int irq[32]; + int reset_delay_us; + int reset_post_delay_us; + struct gpio_desc *reset_gpiod; + enum { + MDIOBUS_NO_CAP = 0, + MDIOBUS_C22 = 1, + MDIOBUS_C45 = 2, + MDIOBUS_C22_C45 = 3, + } probe_capabilities; + struct mutex shared_lock; + struct phy_package_shared *shared[32]; +}; + +struct mdio_driver_common { + struct device_driver driver; + int flags; +}; + +struct mii_timestamper { + bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int); + void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); + int (*hwtstamp)(struct mii_timestamper *, struct ifreq *); + void (*link_state)(struct mii_timestamper *, struct phy_device *); + int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *); + struct device *device; +}; + +struct phy_package_shared { + int addr; + refcount_t refcnt; + long unsigned int flags; + size_t priv_size; + void *priv; +}; + +struct phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const long unsigned int * const features; + u32 flags; + const void *driver_data; + int (*soft_reset)(struct phy_device *); + int (*config_init)(struct phy_device *); + int (*probe)(struct phy_device *); + int (*get_features)(struct phy_device *); + int (*suspend)(struct phy_device *); + int (*resume)(struct phy_device *); + int (*config_aneg)(struct phy_device *); + int (*aneg_done)(struct phy_device *); + int (*read_status)(struct phy_device *); + int (*config_intr)(struct phy_device *); + irqreturn_t (*handle_interrupt)(struct phy_device *); + void (*remove)(struct phy_device *); + int (*match_phy_device)(struct phy_device *); + int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*link_change_notify)(struct phy_device *); + int (*read_mmd)(struct phy_device *, int, u16); + int (*write_mmd)(struct phy_device *, int, u16, u16); + int (*read_page)(struct phy_device *); + int (*write_page)(struct phy_device *, int); + int (*module_info)(struct phy_device *, struct ethtool_modinfo *); + int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); + int (*cable_test_start)(struct phy_device *); + int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); + int (*cable_test_get_status)(struct phy_device *, bool *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); +}; + +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[8]; +}; + +struct swnode { + struct kobject kobj; + struct fwnode_handle fwnode; + const struct software_node *node; + int id; + struct ida child_ids; + struct list_head entry; + struct list_head children; + struct swnode *parent; + unsigned int allocated: 1; + unsigned int managed: 1; +}; + +struct auxiliary_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; + +struct auxiliary_device { + struct device dev; + const char *name; + u32 id; +}; + +struct auxiliary_driver { + int (*probe)(struct auxiliary_device *, const struct auxiliary_device_id *); + void (*remove)(struct auxiliary_device *); + void (*shutdown)(struct auxiliary_device *); + int (*suspend)(struct auxiliary_device *, pm_message_t); + int (*resume)(struct auxiliary_device *); + const char *name; + struct device_driver driver; + const struct auxiliary_device_id *id_table; +}; + +struct req { + struct req *next; + struct completion done; + int err; + const char *name; + umode_t mode; + kuid_t uid; + kgid_t gid; + struct device *dev; +}; + +typedef int (*pm_callback_t)(struct device *); + +enum gpd_status { + GENPD_STATE_ON = 0, + GENPD_STATE_OFF = 1, +}; + +enum genpd_notication { + GENPD_NOTIFY_PRE_OFF = 0, + GENPD_NOTIFY_OFF = 1, + GENPD_NOTIFY_PRE_ON = 2, + GENPD_NOTIFY_ON = 3, +}; + +struct dev_power_governor { + bool (*power_down_ok)(struct dev_pm_domain *); + bool (*suspend_ok)(struct device *); +}; + +struct gpd_dev_ops { + int (*start)(struct device *); + int (*stop)(struct device *); +}; + +struct genpd_power_state { + s64 power_off_latency_ns; + s64 power_on_latency_ns; + s64 residency_ns; + u64 usage; + u64 rejected; + struct fwnode_handle *fwnode; + ktime_t idle_time; + void *data; +}; + +struct opp_table; + +struct dev_pm_opp; + +struct genpd_lock_ops; + +struct generic_pm_domain { + struct device dev; + struct dev_pm_domain domain; + struct list_head gpd_list_node; + struct list_head parent_links; + struct list_head child_links; + struct list_head dev_list; + struct dev_power_governor *gov; + struct work_struct power_off_work; + struct fwnode_handle *provider; + bool has_provider; + const char *name; + atomic_t sd_count; + enum gpd_status status; + unsigned int device_count; + unsigned int suspended_count; + unsigned int prepared_count; + unsigned int performance_state; + cpumask_var_t cpus; + int (*power_off)(struct generic_pm_domain *); + int (*power_on)(struct generic_pm_domain *); + struct raw_notifier_head power_notifiers; + struct opp_table *opp_table; + unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); + int (*set_performance_state)(struct generic_pm_domain *, unsigned int); + struct gpd_dev_ops dev_ops; + s64 max_off_time_ns; + ktime_t next_wakeup; + bool max_off_time_changed; + bool cached_power_down_ok; + bool cached_power_down_state_idx; + int (*attach_dev)(struct generic_pm_domain *, struct device *); + void (*detach_dev)(struct generic_pm_domain *, struct device *); + unsigned int flags; + struct genpd_power_state *states; + void (*free_states)(struct genpd_power_state *, unsigned int); + unsigned int state_count; + unsigned int state_idx; + ktime_t on_time; + ktime_t accounting_time; + const struct genpd_lock_ops *lock_ops; + union { + struct mutex mlock; + struct { + spinlock_t slock; + long unsigned int lock_flags; + }; + }; +}; + +struct genpd_lock_ops { + void (*lock)(struct generic_pm_domain *); + void (*lock_nested)(struct generic_pm_domain *, int); + int (*lock_interruptible)(struct generic_pm_domain *); + void (*unlock)(struct generic_pm_domain *); +}; + +struct gpd_link { + struct generic_pm_domain *parent; + struct list_head parent_node; + struct generic_pm_domain *child; + struct list_head child_node; + unsigned int performance_state; + unsigned int prev_performance_state; +}; + +struct gpd_timing_data { + s64 suspend_latency_ns; + s64 resume_latency_ns; + s64 effective_constraint_ns; + bool constraint_changed; + bool cached_suspend_ok; +}; + +struct generic_pm_domain_data { + struct pm_domain_data base; + struct gpd_timing_data td; + struct notifier_block nb; + struct notifier_block *power_nb; + int cpu; + unsigned int performance_state; + unsigned int default_pstate; + unsigned int rpm_pstate; + ktime_t next_wakeup; + void *data; +}; + +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; +}; + +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, +}; + +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; +}; + +struct isa_driver { + int (*match)(struct device *, unsigned int); + int (*probe)(struct device *, unsigned int); + void (*remove)(struct device *, unsigned int); + void (*shutdown)(struct device *, unsigned int); + int (*suspend)(struct device *, unsigned int, pm_message_t); + int (*resume)(struct device *, unsigned int); + struct device_driver driver; + struct device *devices; +}; + +struct isa_dev { + struct device dev; + struct device *next; + unsigned int id; +}; + +struct firmware_fallback_config { + unsigned int force_sysfs_fallback; + unsigned int ignore_sysfs_fallback; + int old_timeout; + int loading_timeout; +}; + +enum fw_opt { + FW_OPT_UEVENT = 1, + FW_OPT_NOWAIT = 2, + FW_OPT_USERHELPER = 4, + FW_OPT_NO_WARN = 8, + FW_OPT_NOCACHE = 16, + FW_OPT_NOFALLBACK_SYSFS = 32, + FW_OPT_FALLBACK_PLATFORM = 64, + FW_OPT_PARTIAL = 128, +}; + +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, +}; + +struct fw_state { + struct completion completion; + enum fw_status status; +}; + +struct firmware_cache; + +struct fw_priv { + struct kref ref; + struct list_head list; + struct firmware_cache *fwc; + struct fw_state fw_st; + void *data; + size_t size; + size_t allocated_size; + size_t offset; + u32 opt_flags; + bool is_paged_buf; + struct page **pages; + int nr_pages; + int page_array_size; + bool need_uevent; + struct list_head pending_list; + const char *fw_name; +}; + +struct firmware_cache { + spinlock_t lock; + struct list_head head; + int state; + spinlock_t name_lock; + struct list_head fw_names; + struct delayed_work work; + struct notifier_block pm_notify; +}; + +struct fw_cache_entry { + struct list_head list; + const char *name; +}; + +struct fw_name_devm { + long unsigned int magic; + const char *name; +}; + +struct firmware_work { + struct work_struct work; + struct module *module; + const char *name; + struct device *device; + void *context; + void (*cont)(const struct firmware *, void *); + u32 opt_flags; +}; + +struct fw_sysfs { + bool nowait; + struct device dev; + struct fw_priv *fw_priv; + struct firmware *fw; +}; + +struct node_access_nodes { + struct device dev; + struct list_head list_node; + unsigned int access; + struct node_hmem_attrs hmem_attrs; +}; + +struct node_cache_info { + struct device dev; + struct list_head node; + struct node_cache_attrs cache_attrs; +}; + +struct node_attr { + struct device_attribute attr; + enum node_states state; +}; + +struct for_each_memory_block_cb_data { + walk_memory_blocks_func_t func; + void *arg; +}; + +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; +}; + +struct regmap_async { + struct list_head list; + struct regmap *map; + void *work_buf; +}; + +struct reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; +}; + +struct regmap_format { + size_t buf_size; + size_t reg_bytes; + size_t pad_bytes; + size_t val_bytes; + void (*format_write)(struct regmap *, unsigned int, unsigned int); + void (*format_reg)(void *, unsigned int, unsigned int); + void (*format_val)(void *, unsigned int, unsigned int); + unsigned int (*parse_val)(const void *); + void (*parse_inplace)(void *); +}; + +struct regcache_ops; + +struct hwspinlock; + +struct regmap { + union { + struct mutex mutex; + struct { + spinlock_t spinlock; + long unsigned int spinlock_flags; + }; + struct { + raw_spinlock_t raw_spinlock; + long unsigned int raw_spinlock_flags; + }; + }; + regmap_lock lock; + regmap_unlock unlock; + void *lock_arg; + gfp_t alloc_flags; + struct device *dev; + void *work_buf; + struct regmap_format format; + const struct regmap_bus *bus; + void *bus_context; + const char *name; + bool async; + spinlock_t async_lock; + wait_queue_head_t async_waitq; + struct list_head async_list; + struct list_head async_free; + int async_ret; + bool debugfs_disable; + struct dentry *debugfs; + const char *debugfs_name; + unsigned int debugfs_reg_len; + unsigned int debugfs_val_len; + unsigned int debugfs_tot_len; + struct list_head debugfs_off_cache; + struct mutex cache_lock; + unsigned int max_register; + bool (*writeable_reg)(struct device *, unsigned int); + bool (*readable_reg)(struct device *, unsigned int); + bool (*volatile_reg)(struct device *, unsigned int); + bool (*precious_reg)(struct device *, unsigned int); + bool (*writeable_noinc_reg)(struct device *, unsigned int); + bool (*readable_noinc_reg)(struct device *, unsigned int); + const struct regmap_access_table *wr_table; + const struct regmap_access_table *rd_table; + const struct regmap_access_table *volatile_table; + const struct regmap_access_table *precious_table; + const struct regmap_access_table *wr_noinc_table; + const struct regmap_access_table *rd_noinc_table; + int (*reg_read)(void *, unsigned int, unsigned int *); + int (*reg_write)(void *, unsigned int, unsigned int); + int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); + int (*read)(void *, const void *, size_t, void *, size_t); + int (*write)(void *, const void *, size_t); + bool defer_caching; + long unsigned int read_flag_mask; + long unsigned int write_flag_mask; + int reg_shift; + int reg_stride; + int reg_stride_order; + const struct regcache_ops *cache_ops; + enum regcache_type cache_type; + unsigned int cache_size_raw; + unsigned int cache_word_size; + unsigned int num_reg_defaults; + unsigned int num_reg_defaults_raw; + bool cache_only; + bool cache_bypass; + bool cache_free; + struct reg_default *reg_defaults; + const void *reg_defaults_raw; + void *cache; + bool cache_dirty; + bool no_sync_defaults; + struct reg_sequence *patch; + int patch_regs; + bool use_single_read; + bool use_single_write; + bool can_multi_write; + size_t max_raw_read; + size_t max_raw_write; + struct rb_root range_tree; + void *selector_work_buf; + struct hwspinlock *hwlock; + bool can_sleep; +}; + +struct regcache_ops { + const char *name; + enum regcache_type type; + int (*init)(struct regmap *); + int (*exit)(struct regmap *); + void (*debugfs_init)(struct regmap *); + int (*read)(struct regmap *, unsigned int, unsigned int *); + int (*write)(struct regmap *, unsigned int, unsigned int); + int (*sync)(struct regmap *, unsigned int, unsigned int); + int (*drop)(struct regmap *, unsigned int, unsigned int); +}; + +struct regmap_range_node { + struct rb_node node; + const char *name; + struct regmap *map; + unsigned int range_min; + unsigned int range_max; + unsigned int selector_reg; + unsigned int selector_mask; + int selector_shift; + unsigned int window_start; + unsigned int window_len; +}; + +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; + unsigned int reg; + unsigned int id_size; + unsigned int id_offset; +}; + +struct trace_event_raw_regmap_reg { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + unsigned int val; + char __data[0]; +}; + +struct trace_event_raw_regmap_block { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + int count; + char __data[0]; +}; + +struct trace_event_raw_regcache_sync { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_status; + u32 __data_loc_type; + char __data[0]; +}; + +struct trace_event_raw_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + char __data[0]; +}; + +struct trace_event_raw_regmap_async { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_regcache_drop_region { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int from; + unsigned int to; + char __data[0]; +}; + +struct trace_event_data_offsets_regmap_reg { + u32 name; +}; + +struct trace_event_data_offsets_regmap_block { + u32 name; +}; + +struct trace_event_data_offsets_regcache_sync { + u32 name; + u32 status; + u32 type; +}; + +struct trace_event_data_offsets_regmap_bool { + u32 name; +}; + +struct trace_event_data_offsets_regmap_async { + u32 name; +}; + +struct trace_event_data_offsets_regcache_drop_region { + u32 name; +}; + +typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); + +typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); + +typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); + +typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); + +typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); + +typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); + +typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); + +typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); + +struct regcache_rbtree_node { + void *block; + long int *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; +}; + +struct regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; +}; + +struct regmap_debugfs_off_cache { + struct list_head list; + off_t min; + off_t max; + unsigned int base_reg; + unsigned int max_reg; +}; + +struct regmap_debugfs_node { + struct regmap *map; + struct list_head link; +}; + +struct regmap_async_spi { + struct regmap_async core; + struct spi_message m; + struct spi_transfer t[2]; +}; + +struct regmap_mmio_context { + void *regs; + unsigned int val_bytes; + bool relaxed_mmio; + bool attached_clk; + struct clk *clk; + void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); + unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +}; + +struct regmap_irq_chip_data { + struct mutex lock; + struct irq_chip irq_chip; + struct regmap *map; + const struct regmap_irq_chip *chip; + int irq_base; + struct irq_domain *domain; + int irq; + int wake_count; + void *status_reg_buf; + unsigned int *main_status_buf; + unsigned int *status_buf; + unsigned int *mask_buf; + unsigned int *mask_buf_def; + unsigned int *wake_buf; + unsigned int *type_buf; + unsigned int *type_buf_def; + unsigned int **virt_buf; + unsigned int irq_reg_stride; + unsigned int type_reg_stride; + bool clear_status: 1; +}; + +struct devcd_entry { + struct device devcd_dev; + void *data; + size_t datalen; + struct mutex mutex; + bool delete_work; + struct module *owner; + ssize_t (*read)(char *, loff_t, size_t, void *, size_t); + void (*free)(void *); + struct delayed_work del_wk; + struct device *failing_dev; +}; + +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); + +struct platform_msi_priv_data { + struct device *dev; + void *host_data; + const struct attribute_group **msi_irq_groups; + msi_alloc_info_t arg; + irq_write_msi_msg_t write_msg; + int devid; +}; + +struct trace_event_raw_devres { + struct trace_entry ent; + u32 __data_loc_devname; + struct device *dev; + const char *op; + void *node; + const char *name; + size_t size; + char __data[0]; +}; + +struct trace_event_data_offsets_devres { + u32 devname; +}; + +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); + +typedef long unsigned int __kernel_old_dev_t; + +typedef u16 compat_dev_t; + +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, +}; + +struct loop_info { + int lo_number; + __kernel_old_dev_t lo_device; + long unsigned int lo_inode; + __kernel_old_dev_t lo_rdevice; + int lo_offset; + int lo_encrypt_type; + int lo_encrypt_key_size; + int lo_flags; + char lo_name[64]; + unsigned char lo_encrypt_key[32]; + long unsigned int lo_init[2]; + char reserved[4]; +}; + +struct loop_info64 { + __u64 lo_device; + __u64 lo_inode; + __u64 lo_rdevice; + __u64 lo_offset; + __u64 lo_sizelimit; + __u32 lo_number; + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; + __u32 lo_flags; + __u8 lo_file_name[64]; + __u8 lo_crypt_name[64]; + __u8 lo_encrypt_key[32]; + __u64 lo_init[2]; +}; + +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; +}; + +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, +}; + +struct loop_func_table; + +struct loop_device { + int lo_number; + atomic_t lo_refcnt; + loff_t lo_offset; + loff_t lo_sizelimit; + int lo_flags; + int (*transfer)(struct loop_device *, int, struct page *, unsigned int, struct page *, unsigned int, int, sector_t); + char lo_file_name[64]; + char lo_crypt_name[64]; + char lo_encrypt_key[32]; + int lo_encrypt_key_size; + struct loop_func_table *lo_encryption; + __u32 lo_init[2]; + kuid_t lo_key_owner; + int (*ioctl)(struct loop_device *, int, long unsigned int); + struct file *lo_backing_file; + struct file *lo_backing_virt_file; + struct block_device *lo_device; + void *key_data; + gfp_t old_gfp_mask; + spinlock_t lo_lock; + int lo_state; + spinlock_t lo_work_lock; + struct workqueue_struct *workqueue; + struct work_struct rootcg_work; + struct list_head rootcg_cmd_list; + struct list_head idle_worker_list; + struct rb_root worker_tree; + struct timer_list timer; + bool use_dio; + bool sysfs_inited; + struct request_queue *lo_queue; + struct blk_mq_tag_set tag_set; + struct gendisk *lo_disk; + struct mutex lo_mutex; + bool idr_visible; +}; + +struct loop_func_table { + int number; + int (*transfer)(struct loop_device *, int, struct page *, unsigned int, struct page *, unsigned int, int, sector_t); + int (*init)(struct loop_device *, const struct loop_info64 *); + int (*release)(struct loop_device *); + int (*ioctl)(struct loop_device *, int, long unsigned int); + struct module *owner; +}; + +struct loop_cmd { + struct list_head list_entry; + bool use_aio; + atomic_t ref; + long int ret; + struct kiocb iocb; + struct bio_vec *bvec; + struct cgroup_subsys_state *blkcg_css; + struct cgroup_subsys_state *memcg_css; +}; + +struct loop_worker { + struct rb_node rb_node; + struct work_struct work; + struct list_head cmd_list; + struct list_head idle_list; + struct loop_device *lo; + struct cgroup_subsys_state *blkcg_css; + long unsigned int last_ran_at; +}; + +struct compat_loop_info { + compat_int_t lo_number; + compat_dev_t lo_device; + compat_ulong_t lo_inode; + compat_dev_t lo_rdevice; + compat_int_t lo_offset; + compat_int_t lo_encrypt_type; + compat_int_t lo_encrypt_key_size; + compat_int_t lo_flags; + char lo_name[64]; + unsigned char lo_encrypt_key[32]; + compat_ulong_t lo_init[2]; + char reserved[4]; +}; + +struct cdrom_device_ops; + +struct cdrom_device_info { + const struct cdrom_device_ops *ops; + struct list_head list; + struct gendisk *disk; + void *handle; + int mask; + int speed; + int capacity; + unsigned int options: 30; + unsigned int mc_flags: 2; + unsigned int vfs_events; + unsigned int ioctl_events; + int use_count; + char name[20]; + __u8 sanyo_slot: 2; + __u8 keeplocked: 1; + __u8 reserved: 5; + int cdda_method; + __u8 last_sense; + __u8 media_written; + short unsigned int mmc3_profile; + int for_data; + int (*exit)(struct cdrom_device_info *); + int mrw_mode_page; +}; + +struct scsi_sense_hdr { + u8 response_code; + u8 sense_key; + u8 asc; + u8 ascq; + u8 byte4; + u8 byte5; + u8 byte6; + u8 additional_length; +}; + +struct cdrom_msf0 { + __u8 minute; + __u8 second; + __u8 frame; +}; + +union cdrom_addr { + struct cdrom_msf0 msf; + int lba; +}; + +struct cdrom_multisession { + union cdrom_addr addr; + __u8 xa_flag; + __u8 addr_format; +}; + +struct cdrom_mcn { + __u8 medium_catalog_number[14]; +}; + +struct packet_command { + unsigned char cmd[12]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct scsi_sense_hdr *sshdr; + unsigned char data_direction; + int quiet; + int timeout; + void *reserved[1]; +}; + +struct cdrom_device_ops { + int (*open)(struct cdrom_device_info *, int); + void (*release)(struct cdrom_device_info *); + int (*drive_status)(struct cdrom_device_info *, int); + unsigned int (*check_events)(struct cdrom_device_info *, unsigned int, int); + int (*tray_move)(struct cdrom_device_info *, int); + int (*lock_door)(struct cdrom_device_info *, int); + int (*select_speed)(struct cdrom_device_info *, int); + int (*select_disc)(struct cdrom_device_info *, int); + int (*get_last_session)(struct cdrom_device_info *, struct cdrom_multisession *); + int (*get_mcn)(struct cdrom_device_info *, struct cdrom_mcn *); + int (*reset)(struct cdrom_device_info *); + int (*audio_ioctl)(struct cdrom_device_info *, unsigned int, void *); + int (*generic_packet)(struct cdrom_device_info *, struct packet_command *); + int (*read_cdda_bpc)(struct cdrom_device_info *, void *, u32, u32, u8 *); + const int capability; +}; + +typedef unsigned int RING_IDX; + +typedef uint16_t blkif_vdev_t; + +typedef uint64_t blkif_sector_t; + +struct blkif_request_segment { + grant_ref_t gref; + uint8_t first_sect; + uint8_t last_sect; +}; + +struct blkif_request_rw { + uint8_t nr_segments; + blkif_vdev_t handle; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + struct blkif_request_segment seg[11]; +} __attribute__((packed)); + +struct blkif_request_discard { + uint8_t flag; + blkif_vdev_t _pad1; + uint32_t _pad2; + uint64_t id; + blkif_sector_t sector_number; + uint64_t nr_sectors; + uint8_t _pad3; +} __attribute__((packed)); + +struct blkif_request_other { + uint8_t _pad1; + blkif_vdev_t _pad2; + uint32_t _pad3; + uint64_t id; +} __attribute__((packed)); + +struct blkif_request_indirect { + uint8_t indirect_op; + uint16_t nr_segments; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + blkif_vdev_t handle; + uint16_t _pad2; + grant_ref_t indirect_grefs[8]; + uint32_t _pad3; +} __attribute__((packed)); + +struct blkif_request { + uint8_t operation; + union { + struct blkif_request_rw rw; + struct blkif_request_discard discard; + struct blkif_request_other other; + struct blkif_request_indirect indirect; + } u; +}; + +struct blkif_response { + uint64_t id; + uint8_t operation; + int16_t status; +}; + +union blkif_sring_entry { + struct blkif_request req; + struct blkif_response rsp; +}; + +struct blkif_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union blkif_sring_entry ring[1]; +}; + +struct blkif_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct blkif_sring *sring; +}; + +enum blkif_state { + BLKIF_STATE_DISCONNECTED = 0, + BLKIF_STATE_CONNECTED = 1, + BLKIF_STATE_SUSPENDED = 2, + BLKIF_STATE_ERROR = 3, +}; + +struct grant { + grant_ref_t gref; + struct page *page; + struct list_head node; +}; + +enum blk_req_status { + REQ_PROCESSING = 0, + REQ_WAITING = 1, + REQ_DONE = 2, + REQ_ERROR = 3, + REQ_EOPNOTSUPP = 4, +}; + +struct blk_shadow { + struct blkif_request req; + struct request *request; + struct grant **grants_used; + struct grant **indirect_grants; + struct scatterlist *sg; + unsigned int num_sg; + enum blk_req_status status; + long unsigned int associated_id; +}; + +struct blkif_req { + blk_status_t error; +}; + +struct blkfront_info; + +struct blkfront_ring_info { + spinlock_t ring_lock; + struct blkif_front_ring ring; + unsigned int ring_ref[16]; + unsigned int evtchn; + unsigned int irq; + struct work_struct work; + struct gnttab_free_callback callback; + struct list_head indirect_pages; + struct list_head grants; + unsigned int persistent_gnts_c; + long unsigned int shadow_free; + struct blkfront_info *dev_info; + struct blk_shadow shadow[0]; +}; + +struct blkfront_info { + struct mutex mutex; + struct xenbus_device *xbdev; + struct gendisk *gd; + u16 sector_size; + unsigned int physical_sector_size; + int vdevice; + blkif_vdev_t handle; + enum blkif_state connected; + unsigned int nr_ring_pages; + struct request_queue *rq; + unsigned int feature_flush: 1; + unsigned int feature_fua: 1; + unsigned int feature_discard: 1; + unsigned int feature_secdiscard: 1; + unsigned int feature_persistent_parm: 1; + unsigned int feature_persistent: 1; + unsigned int bounce: 1; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int max_indirect_segments; + int is_ready; + struct blk_mq_tag_set tag_set; + struct blkfront_ring_info *rinfo; + unsigned int nr_rings; + unsigned int rinfo_size; + struct list_head requests; + struct bio_list bio_list; + struct list_head info_list; +}; + +struct setup_rw_req { + unsigned int grant_idx; + struct blkif_request_segment *segments; + struct blkfront_ring_info *rinfo; + struct blkif_request *ring_req; + grant_ref_t gref_head; + unsigned int id; + bool need_copy; + unsigned int bvec_off; + char *bvec_data; + bool require_extra_req; + struct blkif_request *extra_ring_req; +}; + +struct copy_from_grant { + const struct blk_shadow *s; + unsigned int grant_idx; + unsigned int bvec_offset; + char *bvec_data; +}; + +struct sram_config { + int (*init)(void); + bool map_only_reserved; +}; + +struct sram_partition { + void *base; + struct gen_pool *pool; + struct bin_attribute battr; + struct mutex lock; + struct list_head list; +}; + +struct sram_dev { + const struct sram_config *config; + struct device *dev; + void *virt_base; + bool no_memory_wc; + struct gen_pool *pool; + struct clk *clk; + struct sram_partition *partition; + u32 partitions; +}; + +struct sram_reserve { + struct list_head list; + u32 start; + u32 size; + struct resource res; + bool export; + bool pool; + bool protect_exec; + const char *label; +}; + +struct mfd_cell_acpi_match { + const char *pnpid; + const long long unsigned int adr; +}; + +enum { + CHIP_INVALID = 0, + CHIP_PM8606 = 1, + CHIP_PM8607 = 2, + CHIP_MAX = 3, +}; + +enum pm8606_ref_gp_and_osc_clients { + REF_GP_NO_CLIENTS = 0, + WLED1_DUTY = 1, + WLED2_DUTY = 2, + WLED3_DUTY = 4, + RGB1_ENABLE = 8, + RGB2_ENABLE = 16, + LDO_VBR_EN = 32, + REF_GP_MAX_CLIENT = 65535, +}; + +enum { + PM8607_IRQ_ONKEY = 0, + PM8607_IRQ_EXTON = 1, + PM8607_IRQ_CHG = 2, + PM8607_IRQ_BAT = 3, + PM8607_IRQ_RTC = 4, + PM8607_IRQ_CC = 5, + PM8607_IRQ_VBAT = 6, + PM8607_IRQ_VCHG = 7, + PM8607_IRQ_VSYS = 8, + PM8607_IRQ_TINT = 9, + PM8607_IRQ_GPADC0 = 10, + PM8607_IRQ_GPADC1 = 11, + PM8607_IRQ_GPADC2 = 12, + PM8607_IRQ_GPADC3 = 13, + PM8607_IRQ_AUDIO_SHORT = 14, + PM8607_IRQ_PEN = 15, + PM8607_IRQ_HEADSET = 16, + PM8607_IRQ_HOOK = 17, + PM8607_IRQ_MICIN = 18, + PM8607_IRQ_CHG_FAIL = 19, + PM8607_IRQ_CHG_DONE = 20, + PM8607_IRQ_CHG_FAULT = 21, +}; + +struct pm860x_chip { + struct device *dev; + struct mutex irq_lock; + struct mutex osc_lock; + struct i2c_client *client; + struct i2c_client *companion; + struct regmap *regmap; + struct regmap *regmap_companion; + int buck3_double; + int companion_addr; + short unsigned int osc_vote; + int id; + int irq_mode; + int irq_base; + int core_irq; + unsigned char chip_version; + unsigned char osc_status; + unsigned int wakeup_flag; +}; + +enum { + GI2C_PORT = 0, + PI2C_PORT = 1, +}; + +struct pm860x_backlight_pdata { + int pwm; + int iset; +}; + +struct pm860x_led_pdata { + int iset; +}; + +struct pm860x_rtc_pdata { + int (*sync)(unsigned int); + int vrtc; +}; + +struct pm860x_touch_pdata { + int gpadc_prebias; + int slot_cycle; + int off_scale; + int sw_cal; + int tsi_prebias; + int pen_prebias; + int pen_prechg; + int res_x; + long unsigned int flags; +}; + +struct pm860x_power_pdata { + int max_capacity; + int resistor; +}; + +struct charger_desc; + +struct pm860x_platform_data { + struct pm860x_backlight_pdata *backlight; + struct pm860x_led_pdata *led; + struct pm860x_rtc_pdata *rtc; + struct pm860x_touch_pdata *touch; + struct pm860x_power_pdata *power; + struct regulator_init_data *buck1; + struct regulator_init_data *buck2; + struct regulator_init_data *buck3; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldo8; + struct regulator_init_data *ldo9; + struct regulator_init_data *ldo10; + struct regulator_init_data *ldo12; + struct regulator_init_data *ldo_vibrator; + struct regulator_init_data *ldo14; + struct charger_desc *chg_desc; + int companion_addr; + int i2c_port; + int irq_mode; + int irq_base; + int num_leds; + int num_backlights; +}; + +enum polling_modes { + CM_POLL_DISABLE = 0, + CM_POLL_ALWAYS = 1, + CM_POLL_EXTERNAL_POWER_ONLY = 2, + CM_POLL_CHARGING_ONLY = 3, +}; + +enum data_source { + CM_BATTERY_PRESENT = 0, + CM_NO_BATTERY = 1, + CM_FUEL_GAUGE = 2, + CM_CHARGER_STAT = 3, +}; + +struct charger_regulator; + +struct charger_desc { + const char *psy_name; + enum polling_modes polling_mode; + unsigned int polling_interval_ms; + unsigned int fullbatt_vchkdrop_uV; + unsigned int fullbatt_uV; + unsigned int fullbatt_soc; + unsigned int fullbatt_full_capacity; + enum data_source battery_present; + const char **psy_charger_stat; + int num_charger_regulators; + struct charger_regulator *charger_regulators; + const struct attribute_group **sysfs_groups; + const char *psy_fuel_gauge; + const char *thermal_zone; + int temp_min; + int temp_max; + int temp_diff; + bool measure_battery_temp; + u32 charging_max_duration_ms; + u32 discharging_max_duration_ms; +}; + +struct charger_manager; + +struct charger_cable { + const char *extcon_name; + const char *name; + struct extcon_dev *extcon_dev; + u64 extcon_type; + struct work_struct wq; + struct notifier_block nb; + bool attached; + struct charger_regulator *charger; + int min_uA; + int max_uA; + struct charger_manager *cm; +}; + +struct charger_regulator { + const char *regulator_name; + struct regulator *consumer; + int externally_control; + struct charger_cable *cables; + int num_cables; + struct attribute_group attr_grp; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct device_attribute attr_externally_control; + struct attribute *attrs[4]; + struct charger_manager *cm; +}; + +struct charger_manager { + struct list_head entry; + struct device *dev; + struct charger_desc *desc; + struct thermal_zone_device *tzd_batt; + bool charger_enabled; + int emergency_stop; + char psy_name_buf[31]; + struct power_supply_desc charger_psy_desc; + struct power_supply *charger_psy; + u64 charging_start_time; + u64 charging_end_time; + int battery_status; +}; + +struct pm860x_irq_data { + int reg; + int mask_reg; + int enable; + int offs; +}; + +struct htcpld_chip_platform_data { + unsigned int addr; + unsigned int reset; + unsigned int num_gpios; + unsigned int gpio_out_base; + unsigned int gpio_in_base; + unsigned int irq_base; + unsigned int num_irqs; +}; + +struct htcpld_core_platform_data { + unsigned int int_reset_gpio_hi; + unsigned int int_reset_gpio_lo; + unsigned int i2c_adapter_id; + struct htcpld_chip_platform_data *chip; + unsigned int num_chip; +}; + +struct htcpld_chip { + spinlock_t lock; + u8 reset; + u8 addr; + struct device *dev; + struct i2c_client *client; + u8 cache_out; + struct gpio_chip chip_out; + u8 cache_in; + struct gpio_chip chip_in; + u16 irqs_enabled; + uint irq_start; + int nirqs; + unsigned int flow_type; + struct work_struct set_val_work; +}; + +struct htcpld_data { + u16 irqs_enabled; + uint irq_start; + int nirqs; + uint chained_irq; + unsigned int int_reset_gpio_hi; + unsigned int int_reset_gpio_lo; + struct htcpld_chip *chip; + unsigned int nchips; +}; + +struct wm8400_platform_data { + int (*platform_init)(struct device *); +}; + +struct wm8400 { + struct device *dev; + struct regmap *regmap; + struct platform_device regulators[6]; +}; + +enum wm831x_auxadc { + WM831X_AUX_CAL = 15, + WM831X_AUX_BKUP_BATT = 10, + WM831X_AUX_WALL = 9, + WM831X_AUX_BATT = 8, + WM831X_AUX_USB = 7, + WM831X_AUX_SYSVDD = 6, + WM831X_AUX_BATT_TEMP = 5, + WM831X_AUX_CHIP_TEMP = 4, + WM831X_AUX_AUX4 = 3, + WM831X_AUX_AUX3 = 2, + WM831X_AUX_AUX2 = 1, + WM831X_AUX_AUX1 = 0, +}; + +struct wm831x_backlight_pdata { + int isink; + int max_uA; +}; + +struct wm831x_backup_pdata { + int charger_enable; + int no_constant_voltage; + int vlim; + int ilim; +}; + +struct wm831x_battery_pdata { + int enable; + int fast_enable; + int off_mask; + int trickle_ilim; + int vsel; + int eoc_iterm; + int fast_ilim; + int timeout; +}; + +enum wm831x_status_src { + WM831X_STATUS_PRESERVE = 0, + WM831X_STATUS_OTP = 1, + WM831X_STATUS_POWER = 2, + WM831X_STATUS_CHARGER = 3, + WM831X_STATUS_MANUAL = 4, +}; + +struct wm831x_status_pdata { + enum wm831x_status_src default_src; + const char *name; + const char *default_trigger; +}; + +struct wm831x_touch_pdata { + int fivewire; + int isel; + int rpu; + int pressure; + unsigned int data_irq; + int data_irqf; + unsigned int pd_irq; + int pd_irqf; +}; + +enum wm831x_watchdog_action { + WM831X_WDOG_NONE = 0, + WM831X_WDOG_INTERRUPT = 1, + WM831X_WDOG_RESET = 2, + WM831X_WDOG_WAKE = 3, +}; + +struct wm831x_watchdog_pdata { + enum wm831x_watchdog_action primary; + enum wm831x_watchdog_action secondary; + unsigned int software: 1; +}; + +struct wm831x; + +struct wm831x_pdata { + int wm831x_num; + int (*pre_init)(struct wm831x *); + int (*post_init)(struct wm831x *); + bool irq_cmos; + bool disable_touch; + bool soft_shutdown; + int irq_base; + int gpio_base; + int gpio_defaults[16]; + struct wm831x_backlight_pdata *backlight; + struct wm831x_backup_pdata *backup; + struct wm831x_battery_pdata *battery; + struct wm831x_touch_pdata *touch; + struct wm831x_watchdog_pdata *watchdog; + struct wm831x_status_pdata *status[2]; + struct regulator_init_data *dcdc[4]; + struct regulator_init_data *epe[2]; + struct regulator_init_data *ldo[11]; + struct regulator_init_data *isink[2]; +}; + +enum wm831x_parent { + WM8310 = 33552, + WM8311 = 33553, + WM8312 = 33554, + WM8320 = 33568, + WM8321 = 33569, + WM8325 = 33573, + WM8326 = 33574, +}; + +typedef int (*wm831x_auxadc_read_fn)(struct wm831x *, enum wm831x_auxadc); + +struct wm831x { + struct mutex io_lock; + struct device *dev; + struct regmap *regmap; + struct wm831x_pdata pdata; + enum wm831x_parent type; + int irq; + struct mutex irq_lock; + struct irq_domain *irq_domain; + int irq_masks_cur[5]; + int irq_masks_cache[5]; + bool soft_shutdown; + unsigned int has_gpio_ena: 1; + unsigned int has_cs_sts: 1; + unsigned int charger_irq_wake: 1; + int num_gpio; + int gpio_update[16]; + bool gpio_level_high[16]; + bool gpio_level_low[16]; + struct mutex auxadc_lock; + struct list_head auxadc_pending; + u16 auxadc_active; + wm831x_auxadc_read_fn auxadc_read; + struct mutex key_lock; + unsigned int locked: 1; +}; + +struct wm831x_irq_data { + int primary; + int reg; + int mask; +}; + +struct wm831x_auxadc_req { + struct list_head list; + enum wm831x_auxadc input; + int val; + struct completion done; +}; + +struct wm8350_audio_platform_data { + int vmid_discharge_msecs; + int drain_msecs; + int cap_discharge_msecs; + int vmid_charge_msecs; + u32 vmid_s_curve: 2; + u32 dis_out4: 2; + u32 dis_out3: 2; + u32 dis_out2: 2; + u32 dis_out1: 2; + u32 vroi_out4: 1; + u32 vroi_out3: 1; + u32 vroi_out2: 1; + u32 vroi_out1: 1; + u32 vroi_enable: 1; + u32 codec_current_on: 2; + u32 codec_current_standby: 2; + u32 codec_current_charge: 2; +}; + +struct wm8350_codec { + struct platform_device *pdev; + struct wm8350_audio_platform_data *platform_data; +}; + +struct wm8350_gpio { + struct platform_device *pdev; +}; + +struct wm8350_led { + struct platform_device *pdev; + struct work_struct work; + spinlock_t value_lock; + enum led_brightness value; + struct led_classdev cdev; + int max_uA_index; + int enabled; + struct regulator *isink; + struct regulator_consumer_supply isink_consumer; + struct regulator_init_data isink_init; + struct regulator *dcdc; + struct regulator_consumer_supply dcdc_consumer; + struct regulator_init_data dcdc_init; +}; + +struct wm8350_pmic { + int max_dcdc; + int max_isink; + int isink_A_dcdc; + int isink_B_dcdc; + u16 dcdc1_hib_mode; + u16 dcdc3_hib_mode; + u16 dcdc4_hib_mode; + u16 dcdc6_hib_mode; + struct platform_device *pdev[12]; + struct wm8350_led led[2]; +}; + +struct wm8350_rtc { + struct platform_device *pdev; + struct rtc_device *rtc; + int alarm_enabled; + int update_enabled; +}; + +struct wm8350_charger_policy { + int eoc_mA; + int charge_mV; + int fast_limit_mA; + int fast_limit_USB_mA; + int charge_timeout; + int trickle_start_mV; + int trickle_charge_mA; + int trickle_charge_USB_mA; +}; + +struct wm8350_power { + struct platform_device *pdev; + struct power_supply *battery; + struct power_supply *usb; + struct power_supply *ac; + struct wm8350_charger_policy *policy; + int rev_g_coeff; +}; + +struct wm8350_wdt { + struct platform_device *pdev; +}; + +struct wm8350_hwmon { + struct platform_device *pdev; + struct device *classdev; +}; + +struct wm8350 { + struct device *dev; + struct regmap *regmap; + bool unlocked; + struct mutex auxadc_mutex; + struct completion auxadc_done; + struct mutex irq_lock; + int chip_irq; + int irq_base; + u16 irq_masks[7]; + struct wm8350_codec codec; + struct wm8350_gpio gpio; + struct wm8350_hwmon hwmon; + struct wm8350_pmic pmic; + struct wm8350_power power; + struct wm8350_rtc rtc; + struct wm8350_wdt wdt; +}; + +struct wm8350_platform_data { + int (*init)(struct wm8350 *); + int irq_high; + int irq_base; + int gpio_base; +}; + +struct wm8350_reg_access { + u16 readable; + u16 writable; + u16 vol; +}; + +struct wm8350_irq_data { + int primary; + int reg; + int mask; + int primary_only; +}; + +struct tps65910_platform_data { + int irq; + int irq_base; +}; + +enum tps65912_irqs { + TPS65912_IRQ_PWRHOLD_F = 0, + TPS65912_IRQ_VMON = 1, + TPS65912_IRQ_PWRON = 2, + TPS65912_IRQ_PWRON_LP = 3, + TPS65912_IRQ_PWRHOLD_R = 4, + TPS65912_IRQ_HOTDIE = 5, + TPS65912_IRQ_GPIO1_R = 6, + TPS65912_IRQ_GPIO1_F = 7, + TPS65912_IRQ_GPIO2_R = 8, + TPS65912_IRQ_GPIO2_F = 9, + TPS65912_IRQ_GPIO3_R = 10, + TPS65912_IRQ_GPIO3_F = 11, + TPS65912_IRQ_GPIO4_R = 12, + TPS65912_IRQ_GPIO4_F = 13, + TPS65912_IRQ_GPIO5_R = 14, + TPS65912_IRQ_GPIO5_F = 15, + TPS65912_IRQ_PGOOD_DCDC1 = 16, + TPS65912_IRQ_PGOOD_DCDC2 = 17, + TPS65912_IRQ_PGOOD_DCDC3 = 18, + TPS65912_IRQ_PGOOD_DCDC4 = 19, + TPS65912_IRQ_PGOOD_LDO1 = 20, + TPS65912_IRQ_PGOOD_LDO2 = 21, + TPS65912_IRQ_PGOOD_LDO3 = 22, + TPS65912_IRQ_PGOOD_LDO4 = 23, + TPS65912_IRQ_PGOOD_LDO5 = 24, + TPS65912_IRQ_PGOOD_LDO6 = 25, + TPS65912_IRQ_PGOOD_LDO7 = 26, + TPS65912_IRQ_PGOOD_LDO8 = 27, + TPS65912_IRQ_PGOOD_LDO9 = 28, + TPS65912_IRQ_PGOOD_LDO10 = 29, +}; + +struct tps65912 { + struct device *dev; + struct regmap *regmap; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +enum chips { + TPS80031 = 1, + TPS80032 = 2, +}; + +enum { + TPS80031_INT_PWRON = 0, + TPS80031_INT_RPWRON = 1, + TPS80031_INT_SYS_VLOW = 2, + TPS80031_INT_RTC_ALARM = 3, + TPS80031_INT_RTC_PERIOD = 4, + TPS80031_INT_HOT_DIE = 5, + TPS80031_INT_VXX_SHORT = 6, + TPS80031_INT_SPDURATION = 7, + TPS80031_INT_WATCHDOG = 8, + TPS80031_INT_BAT = 9, + TPS80031_INT_SIM = 10, + TPS80031_INT_MMC = 11, + TPS80031_INT_RES = 12, + TPS80031_INT_GPADC_RT = 13, + TPS80031_INT_GPADC_SW2_EOC = 14, + TPS80031_INT_CC_AUTOCAL = 15, + TPS80031_INT_ID_WKUP = 16, + TPS80031_INT_VBUSS_WKUP = 17, + TPS80031_INT_ID = 18, + TPS80031_INT_VBUS = 19, + TPS80031_INT_CHRG_CTRL = 20, + TPS80031_INT_EXT_CHRG = 21, + TPS80031_INT_INT_CHRG = 22, + TPS80031_INT_RES2 = 23, + TPS80031_INT_BAT_TEMP_OVRANGE = 24, + TPS80031_INT_BAT_REMOVED = 25, + TPS80031_INT_VBUS_DET = 26, + TPS80031_INT_VAC_DET = 27, + TPS80031_INT_FAULT_WDG = 28, + TPS80031_INT_LINCH_GATED = 29, + TPS80031_INT_NR = 30, +}; + +enum { + TPS80031_REGULATOR_VIO = 0, + TPS80031_REGULATOR_SMPS1 = 1, + TPS80031_REGULATOR_SMPS2 = 2, + TPS80031_REGULATOR_SMPS3 = 3, + TPS80031_REGULATOR_SMPS4 = 4, + TPS80031_REGULATOR_VANA = 5, + TPS80031_REGULATOR_LDO1 = 6, + TPS80031_REGULATOR_LDO2 = 7, + TPS80031_REGULATOR_LDO3 = 8, + TPS80031_REGULATOR_LDO4 = 9, + TPS80031_REGULATOR_LDO5 = 10, + TPS80031_REGULATOR_LDO6 = 11, + TPS80031_REGULATOR_LDO7 = 12, + TPS80031_REGULATOR_LDOLN = 13, + TPS80031_REGULATOR_LDOUSB = 14, + TPS80031_REGULATOR_VBUS = 15, + TPS80031_REGULATOR_REGEN1 = 16, + TPS80031_REGULATOR_REGEN2 = 17, + TPS80031_REGULATOR_SYSEN = 18, + TPS80031_REGULATOR_MAX = 19, +}; + +enum tps80031_ext_control { + TPS80031_PWR_REQ_INPUT_NONE = 0, + TPS80031_PWR_REQ_INPUT_PREQ1 = 1, + TPS80031_PWR_REQ_INPUT_PREQ2 = 2, + TPS80031_PWR_REQ_INPUT_PREQ3 = 4, + TPS80031_PWR_OFF_ON_SLEEP = 8, + TPS80031_PWR_ON_ON_SLEEP = 16, +}; + +enum tps80031_pupd_pins { + TPS80031_PREQ1 = 0, + TPS80031_PREQ2A = 1, + TPS80031_PREQ2B = 2, + TPS80031_PREQ2C = 3, + TPS80031_PREQ3 = 4, + TPS80031_NRES_WARM = 5, + TPS80031_PWM_FORCE = 6, + TPS80031_CHRG_EXT_CHRG_STATZ = 7, + TPS80031_SIM = 8, + TPS80031_MMC = 9, + TPS80031_GPADC_START = 10, + TPS80031_DVSI2C_SCL = 11, + TPS80031_DVSI2C_SDA = 12, + TPS80031_CTLI2C_SCL = 13, + TPS80031_CTLI2C_SDA = 14, +}; + +enum tps80031_pupd_settings { + TPS80031_PUPD_NORMAL = 0, + TPS80031_PUPD_PULLDOWN = 1, + TPS80031_PUPD_PULLUP = 2, +}; + +struct tps80031 { + struct device *dev; + long unsigned int chip_info; + int es_version; + struct i2c_client *clients[4]; + struct regmap *regmap[4]; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps80031_pupd_init_data { + int input_pin; + int setting; +}; + +struct tps80031_regulator_platform_data { + struct regulator_init_data *reg_init_data; + unsigned int ext_ctrl_flag; + unsigned int config_flags; +}; + +struct tps80031_platform_data { + int irq_base; + bool use_power_off; + struct tps80031_pupd_init_data *pupd_init_data; + int pupd_init_data_size; + struct tps80031_regulator_platform_data *regulator_pdata[19]; +}; + +struct tps80031_pupd_data { + u8 reg; + u8 pullup_bit; + u8 pulldown_bit; +}; + +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; +}; + +struct matrix_keymap_data { + const uint32_t *keymap; + unsigned int keymap_size; +}; + +enum twl_module_ids { + TWL_MODULE_USB = 0, + TWL_MODULE_PIH = 1, + TWL_MODULE_MAIN_CHARGE = 2, + TWL_MODULE_PM_MASTER = 3, + TWL_MODULE_PM_RECEIVER = 4, + TWL_MODULE_RTC = 5, + TWL_MODULE_PWM = 6, + TWL_MODULE_LED = 7, + TWL_MODULE_SECURED_REG = 8, + TWL_MODULE_LAST = 9, +}; + +enum twl4030_module_ids { + TWL4030_MODULE_AUDIO_VOICE = 9, + TWL4030_MODULE_GPIO = 10, + TWL4030_MODULE_INTBR = 11, + TWL4030_MODULE_TEST = 12, + TWL4030_MODULE_KEYPAD = 13, + TWL4030_MODULE_MADC = 14, + TWL4030_MODULE_INTERRUPTS = 15, + TWL4030_MODULE_PRECHARGE = 16, + TWL4030_MODULE_BACKUP = 17, + TWL4030_MODULE_INT = 18, + TWL5031_MODULE_ACCESSORY = 19, + TWL5031_MODULE_INTERRUPTS = 20, + TWL4030_MODULE_LAST = 21, +}; + +enum twl6030_module_ids { + TWL6030_MODULE_ID0 = 9, + TWL6030_MODULE_ID1 = 10, + TWL6030_MODULE_ID2 = 11, + TWL6030_MODULE_GPADC = 12, + TWL6030_MODULE_GASGAUGE = 13, + TWL6030_MODULE_LAST = 14, +}; + +struct twl4030_clock_init_data { + bool ck32k_lowpwr_enable; +}; + +struct twl4030_bci_platform_data { + int *battery_tmp_tbl; + unsigned int tblsize; + int bb_uvolt; + int bb_uamp; +}; + +struct twl4030_gpio_platform_data { + bool use_leds; + u8 mmc_cd; + u32 debounce; + u32 pullups; + u32 pulldowns; + int (*setup)(struct device *, unsigned int, unsigned int); + int (*teardown)(struct device *, unsigned int, unsigned int); +}; + +struct twl4030_madc_platform_data { + int irq_line; +}; + +struct twl4030_keypad_data { + const struct matrix_keymap_data *keymap_data; + unsigned int rows; + unsigned int cols; + bool rep; +}; + +enum twl4030_usb_mode { + T2_USB_MODE_ULPI = 1, + T2_USB_MODE_CEA2011_3PIN = 2, +}; + +struct twl4030_usb_data { + enum twl4030_usb_mode usb_mode; + long unsigned int features; + int (*phy_init)(struct device *); + int (*phy_exit)(struct device *); + int (*phy_power)(struct device *, int, int); + int (*phy_set_clock)(struct device *, int); + int (*phy_suspend)(struct device *, int); +}; + +struct twl4030_ins { + u16 pmb_message; + u8 delay; +}; + +struct twl4030_script { + struct twl4030_ins *script; + unsigned int size; + u8 flags; +}; + +struct twl4030_resconfig { + u8 resource; + u8 devgroup; + u8 type; + u8 type2; + u8 remap_off; + u8 remap_sleep; +}; + +struct twl4030_power_data { + struct twl4030_script **scripts; + unsigned int num; + struct twl4030_resconfig *resource_config; + struct twl4030_resconfig *board_config; + bool use_poweroff; + bool ac_charger_quirk; +}; + +struct twl4030_codec_data { + unsigned int digimic_delay; + unsigned int ramp_delay_value; + unsigned int offset_cncl_path; + unsigned int hs_extmute: 1; + int hs_extmute_gpio; +}; + +struct twl4030_vibra_data { + unsigned int coexist; +}; + +struct twl4030_audio_data { + unsigned int audio_mclk; + struct twl4030_codec_data *codec; + struct twl4030_vibra_data *vibra; + int audpwron_gpio; + int naudint_irq; + unsigned int irq_base; +}; + +struct twl4030_platform_data { + struct twl4030_clock_init_data *clock; + struct twl4030_bci_platform_data *bci; + struct twl4030_gpio_platform_data *gpio; + struct twl4030_madc_platform_data *madc; + struct twl4030_keypad_data *keypad; + struct twl4030_usb_data *usb; + struct twl4030_power_data *power; + struct twl4030_audio_data *audio; + struct regulator_init_data *vdac; + struct regulator_init_data *vaux1; + struct regulator_init_data *vaux2; + struct regulator_init_data *vaux3; + struct regulator_init_data *vdd1; + struct regulator_init_data *vdd2; + struct regulator_init_data *vdd3; + struct regulator_init_data *vpll1; + struct regulator_init_data *vpll2; + struct regulator_init_data *vmmc1; + struct regulator_init_data *vmmc2; + struct regulator_init_data *vsim; + struct regulator_init_data *vaux4; + struct regulator_init_data *vio; + struct regulator_init_data *vintana1; + struct regulator_init_data *vintana2; + struct regulator_init_data *vintdig; + struct regulator_init_data *vmmc; + struct regulator_init_data *vpp; + struct regulator_init_data *vusim; + struct regulator_init_data *vana; + struct regulator_init_data *vcxio; + struct regulator_init_data *vusb; + struct regulator_init_data *clk32kg; + struct regulator_init_data *v1v8; + struct regulator_init_data *v2v1; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldoln; + struct regulator_init_data *ldousb; + struct regulator_init_data *smps3; + struct regulator_init_data *smps4; + struct regulator_init_data *vio6025; +}; + +struct twl_regulator_driver_data { + int (*set_voltage)(void *, int); + int (*get_voltage)(void *); + void *data; + long unsigned int features; +}; + +struct twl_client { + struct i2c_client *client; + struct regmap *regmap; +}; + +struct twl_mapping { + unsigned char sid; + unsigned char base; +}; + +struct twl_private { + bool ready; + u32 twl_idcode; + unsigned int twl_id; + struct twl_mapping *twl_map; + struct twl_client *twl_modules; +}; + +struct sih_irq_data { + u8 isr_offset; + u8 imr_offset; +}; + +struct sih { + char name[8]; + u8 module; + u8 control_offset; + bool set_cor; + u8 bits; + u8 bytes_ixr; + u8 edr_offset; + u8 bytes_edr; + u8 irq_lines; + struct sih_irq_data mask[2]; +}; + +struct sih_agent { + int irq_base; + const struct sih *sih; + u32 imr; + bool imr_change_pending; + u32 edge_change; + struct mutex irq_lock; + char *irq_name; +}; + +struct twl6030_irq { + unsigned int irq_base; + int twl_irq; + bool irq_wake_enabled; + atomic_t wakeirqs; + struct notifier_block pm_nb; + struct irq_chip irq_chip; + struct irq_domain *irq_domain; + const int *irq_mapping_tbl; +}; + +enum twl4030_audio_res { + TWL4030_AUDIO_RES_POWER = 0, + TWL4030_AUDIO_RES_APLL = 1, + TWL4030_AUDIO_RES_MAX = 2, +}; + +struct twl4030_audio_resource { + int request_count; + u8 reg; + u8 mask; +}; + +struct twl4030_audio { + unsigned int audio_mclk; + struct mutex mutex; + struct twl4030_audio_resource resource[2]; + struct mfd_cell cells[2]; +}; + +enum of_gpio_flags { + OF_GPIO_ACTIVE_LOW = 1, + OF_GPIO_SINGLE_ENDED = 2, + OF_GPIO_OPEN_DRAIN = 4, + OF_GPIO_TRANSITORY = 8, + OF_GPIO_PULL_UP = 16, + OF_GPIO_PULL_DOWN = 32, +}; + +struct twl6040 { + struct device *dev; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct regulator_bulk_data supplies[2]; + struct clk *clk32k; + struct clk *mclk; + struct mutex mutex; + struct mutex irq_mutex; + struct mfd_cell cells[4]; + struct completion ready; + int audpwron; + int power_count; + int rev; + int pll; + unsigned int sysclk_rate; + unsigned int mclk_rate; + unsigned int irq; + unsigned int irq_ready; + unsigned int irq_th; +}; + +struct mfd_of_node_entry { + struct list_head list; + struct device *dev; + struct device_node *np; +}; + +struct pcap_subdev { + int id; + const char *name; + void *platform_data; +}; + +struct pcap_platform_data { + unsigned int irq_base; + unsigned int config; + int gpio; + void (*init)(void *); + int num_subdevs; + struct pcap_subdev *subdevs; +}; + +struct pcap_adc_request { + u8 bank; + u8 ch[2]; + u32 flags; + void (*callback)(void *, u16 *); + void *data; +}; + +struct pcap_adc_sync_request { + u16 res[2]; + struct completion completion; +}; + +struct pcap_chip { + struct spi_device *spi; + u32 buf; + spinlock_t io_lock; + unsigned int irq_base; + u32 msr; + struct work_struct isr_work; + struct work_struct msr_work; + struct workqueue_struct *workqueue; + struct pcap_adc_request *adc_queue[8]; + u8 adc_head; + u8 adc_tail; + spinlock_t adc_lock; +}; + +struct da903x_subdev_info { + int id; + const char *name; + void *platform_data; +}; + +struct da903x_platform_data { + int num_subdevs; + struct da903x_subdev_info *subdevs; +}; + +struct da903x_chip; + +struct da903x_chip_ops { + int (*init_chip)(struct da903x_chip *); + int (*unmask_events)(struct da903x_chip *, unsigned int); + int (*mask_events)(struct da903x_chip *, unsigned int); + int (*read_events)(struct da903x_chip *, unsigned int *); + int (*read_status)(struct da903x_chip *, unsigned int *); +}; + +struct da903x_chip { + struct i2c_client *client; + struct device *dev; + const struct da903x_chip_ops *ops; + int type; + uint32_t events_mask; + struct mutex lock; + struct work_struct irq_work; + struct blocking_notifier_head notifier_list; +}; + +struct da9052 { + struct device *dev; + struct regmap *regmap; + struct mutex auxadc_lock; + struct completion done; + int irq_base; + struct regmap_irq_chip_data *irq_data; + u8 chip_id; + int chip_irq; + int (*fix_io)(struct da9052 *, unsigned char); +}; + +struct led_platform_data; + +struct da9052_pdata { + struct led_platform_data *pled; + int (*init)(struct da9052 *); + int irq_base; + int gpio_base; + int use_for_apm; + struct regulator_init_data *regulators[14]; +}; + +enum da9052_chip_id { + DA9052 = 0, + DA9053_AA = 1, + DA9053_BA = 2, + DA9053_BB = 3, + DA9053_BC = 4, +}; + +enum lp8788_int_id { + LP8788_INT_TSDL = 0, + LP8788_INT_TSDH = 1, + LP8788_INT_UVLO = 2, + LP8788_INT_FLAGMON = 3, + LP8788_INT_PWRON_TIME = 4, + LP8788_INT_PWRON = 5, + LP8788_INT_COMP1 = 6, + LP8788_INT_COMP2 = 7, + LP8788_INT_CHG_INPUT_STATE = 8, + LP8788_INT_CHG_STATE = 9, + LP8788_INT_EOC = 10, + LP8788_INT_CHG_RESTART = 11, + LP8788_INT_RESTART_TIMEOUT = 12, + LP8788_INT_FULLCHG_TIMEOUT = 13, + LP8788_INT_PRECHG_TIMEOUT = 14, + LP8788_INT_RTC_ALARM1 = 17, + LP8788_INT_RTC_ALARM2 = 18, + LP8788_INT_ENTER_SYS_SUPPORT = 19, + LP8788_INT_EXIT_SYS_SUPPORT = 20, + LP8788_INT_BATT_LOW = 21, + LP8788_INT_NO_BATT = 22, + LP8788_INT_MAX = 24, +}; + +enum lp8788_dvs_sel { + DVS_SEL_V0 = 0, + DVS_SEL_V1 = 1, + DVS_SEL_V2 = 2, + DVS_SEL_V3 = 3, +}; + +enum lp8788_charger_event { + NO_CHARGER = 0, + CHARGER_DETECTED = 1, +}; + +enum lp8788_bl_ctrl_mode { + LP8788_BL_REGISTER_ONLY = 0, + LP8788_BL_COMB_PWM_BASED = 1, + LP8788_BL_COMB_REGISTER_BASED = 2, +}; + +enum lp8788_bl_dim_mode { + LP8788_DIM_EXPONENTIAL = 0, + LP8788_DIM_LINEAR = 1, +}; + +enum lp8788_bl_full_scale_current { + LP8788_FULLSCALE_5000uA = 0, + LP8788_FULLSCALE_8500uA = 1, + LP8788_FULLSCALE_1200uA = 2, + LP8788_FULLSCALE_1550uA = 3, + LP8788_FULLSCALE_1900uA = 4, + LP8788_FULLSCALE_2250uA = 5, + LP8788_FULLSCALE_2600uA = 6, + LP8788_FULLSCALE_2950uA = 7, +}; + +enum lp8788_bl_ramp_step { + LP8788_RAMP_8us = 0, + LP8788_RAMP_1024us = 1, + LP8788_RAMP_2048us = 2, + LP8788_RAMP_4096us = 3, + LP8788_RAMP_8192us = 4, + LP8788_RAMP_16384us = 5, + LP8788_RAMP_32768us = 6, + LP8788_RAMP_65538us = 7, +}; + +enum lp8788_isink_scale { + LP8788_ISINK_SCALE_100mA = 0, + LP8788_ISINK_SCALE_120mA = 1, +}; + +enum lp8788_isink_number { + LP8788_ISINK_1 = 0, + LP8788_ISINK_2 = 1, + LP8788_ISINK_3 = 2, +}; + +enum lp8788_alarm_sel { + LP8788_ALARM_1 = 0, + LP8788_ALARM_2 = 1, + LP8788_ALARM_MAX = 2, +}; + +struct lp8788_buck1_dvs { + int gpio; + enum lp8788_dvs_sel vsel; +}; + +struct lp8788_buck2_dvs { + int gpio[2]; + enum lp8788_dvs_sel vsel; +}; + +struct lp8788_chg_param { + u8 addr; + u8 val; +}; + +struct lp8788; + +struct lp8788_charger_platform_data { + const char *adc_vbatt; + const char *adc_batt_temp; + unsigned int max_vbatt_mv; + struct lp8788_chg_param *chg_params; + int num_chg_params; + void (*charger_event)(struct lp8788 *, enum lp8788_charger_event); +}; + +struct lp8788_platform_data; + +struct lp8788 { + struct device *dev; + struct regmap *regmap; + struct irq_domain *irqdm; + int irq; + struct lp8788_platform_data *pdata; +}; + +struct lp8788_backlight_platform_data { + char *name; + int initial_brightness; + enum lp8788_bl_ctrl_mode bl_mode; + enum lp8788_bl_dim_mode dim_mode; + enum lp8788_bl_full_scale_current full_scale; + enum lp8788_bl_ramp_step rise_time; + enum lp8788_bl_ramp_step fall_time; + enum pwm_polarity pwm_pol; + unsigned int period_ns; +}; + +struct lp8788_led_platform_data { + char *name; + enum lp8788_isink_scale scale; + enum lp8788_isink_number num; + int iout_code; +}; + +struct lp8788_vib_platform_data { + char *name; + enum lp8788_isink_scale scale; + enum lp8788_isink_number num; + int iout_code; + int pwm_code; +}; + +struct iio_map; + +struct lp8788_platform_data { + int (*init_func)(struct lp8788 *); + struct regulator_init_data *buck_data[4]; + struct regulator_init_data *dldo_data[12]; + struct regulator_init_data *aldo_data[10]; + struct lp8788_buck1_dvs *buck1_dvs; + struct lp8788_buck2_dvs *buck2_dvs; + struct lp8788_charger_platform_data *chg_pdata; + enum lp8788_alarm_sel alarm_sel; + struct lp8788_backlight_platform_data *bl_pdata; + struct lp8788_led_platform_data *led_pdata; + struct lp8788_vib_platform_data *vib_pdata; + struct iio_map *adc_pdata; +}; + +struct lp8788_irq_data { + struct lp8788 *lp; + struct mutex irq_lock; + struct irq_domain *domain; + int enabled[24]; +}; + +struct da9055 { + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct device *dev; + struct i2c_client *i2c_client; + int irq_base; + int chip_irq; +}; + +enum gpio_select { + NO_GPIO = 0, + GPIO_1 = 1, + GPIO_2 = 2, +}; + +struct da9055_pdata { + int (*init)(struct da9055 *); + int irq_base; + int gpio_base; + struct regulator_init_data *regulators[8]; + bool reset_enable; + int *gpio_ren; + int *gpio_rsel; + enum gpio_select *reg_ren; + enum gpio_select *reg_rsel; + struct gpio_desc **ena_gpiods; +}; + +enum da9063_type { + PMIC_TYPE_DA9063 = 0, + PMIC_TYPE_DA9063L = 1, +}; + +enum da9063_irqs { + DA9063_IRQ_ONKEY = 0, + DA9063_IRQ_ALARM = 1, + DA9063_IRQ_TICK = 2, + DA9063_IRQ_ADC_RDY = 3, + DA9063_IRQ_SEQ_RDY = 4, + DA9063_IRQ_WAKE = 5, + DA9063_IRQ_TEMP = 6, + DA9063_IRQ_COMP_1V2 = 7, + DA9063_IRQ_LDO_LIM = 8, + DA9063_IRQ_REG_UVOV = 9, + DA9063_IRQ_DVC_RDY = 10, + DA9063_IRQ_VDD_MON = 11, + DA9063_IRQ_WARN = 12, + DA9063_IRQ_GPI0 = 13, + DA9063_IRQ_GPI1 = 14, + DA9063_IRQ_GPI2 = 15, + DA9063_IRQ_GPI3 = 16, + DA9063_IRQ_GPI4 = 17, + DA9063_IRQ_GPI5 = 18, + DA9063_IRQ_GPI6 = 19, + DA9063_IRQ_GPI7 = 20, + DA9063_IRQ_GPI8 = 21, + DA9063_IRQ_GPI9 = 22, + DA9063_IRQ_GPI10 = 23, + DA9063_IRQ_GPI11 = 24, + DA9063_IRQ_GPI12 = 25, + DA9063_IRQ_GPI13 = 26, + DA9063_IRQ_GPI14 = 27, + DA9063_IRQ_GPI15 = 28, +}; + +struct da9063 { + struct device *dev; + enum da9063_type type; + unsigned char variant_code; + unsigned int flags; + struct regmap *regmap; + int chip_irq; + unsigned int irq_base; + struct regmap_irq_chip_data *regmap_irq; +}; + +enum da9063_variant_codes { + PMIC_DA9063_AD = 3, + PMIC_DA9063_BB = 5, + PMIC_DA9063_CA = 6, + PMIC_DA9063_DA = 7, +}; + +enum da9063_page_sel_buf_fmt { + DA9063_PAGE_SEL_BUF_PAGE_REG = 0, + DA9063_PAGE_SEL_BUF_PAGE_VAL = 1, + DA9063_PAGE_SEL_BUF_SIZE = 2, +}; + +enum da9063_paged_read_msgs { + DA9063_PAGED_READ_MSG_PAGE_SEL = 0, + DA9063_PAGED_READ_MSG_REG_SEL = 1, + DA9063_PAGED_READ_MSG_DATA = 2, + DA9063_PAGED_READ_MSG_CNT = 3, +}; + +enum { + DA9063_DEV_ID_REG = 0, + DA9063_VAR_ID_REG = 1, + DA9063_CHIP_ID_REGS = 2, +}; + +struct max14577_regulator_platform_data { + int id; + struct regulator_init_data *initdata; + struct device_node *of_node; +}; + +struct max14577_platform_data { + int irq_base; + int gpio_pogo_vbatt_en; + int gpio_pogo_vbus_en; + int (*set_gpio_pogo_vbatt_en)(int); + int (*set_gpio_pogo_vbus_en)(int); + int (*set_gpio_pogo_cb)(int); + struct max14577_regulator_platform_data *regulators; +}; + +struct maxim_charger_current { + unsigned int min; + unsigned int high_start; + unsigned int high_step; + unsigned int max; +}; + +enum maxim_device_type { + MAXIM_DEVICE_TYPE_UNKNOWN = 0, + MAXIM_DEVICE_TYPE_MAX14577 = 1, + MAXIM_DEVICE_TYPE_MAX77836 = 2, + MAXIM_DEVICE_TYPE_NUM = 3, +}; + +enum max14577_reg { + MAX14577_REG_DEVICEID = 0, + MAX14577_REG_INT1 = 1, + MAX14577_REG_INT2 = 2, + MAX14577_REG_INT3 = 3, + MAX14577_REG_STATUS1 = 4, + MAX14577_REG_STATUS2 = 5, + MAX14577_REG_STATUS3 = 6, + MAX14577_REG_INTMASK1 = 7, + MAX14577_REG_INTMASK2 = 8, + MAX14577_REG_INTMASK3 = 9, + MAX14577_REG_CDETCTRL1 = 10, + MAX14577_REG_RFU = 11, + MAX14577_REG_CONTROL1 = 12, + MAX14577_REG_CONTROL2 = 13, + MAX14577_REG_CONTROL3 = 14, + MAX14577_REG_CHGCTRL1 = 15, + MAX14577_REG_CHGCTRL2 = 16, + MAX14577_REG_CHGCTRL3 = 17, + MAX14577_REG_CHGCTRL4 = 18, + MAX14577_REG_CHGCTRL5 = 19, + MAX14577_REG_CHGCTRL6 = 20, + MAX14577_REG_CHGCTRL7 = 21, + MAX14577_REG_END = 22, +}; + +enum max77836_pmic_reg { + MAX77836_PMIC_REG_PMIC_ID = 32, + MAX77836_PMIC_REG_PMIC_REV = 33, + MAX77836_PMIC_REG_INTSRC = 34, + MAX77836_PMIC_REG_INTSRC_MASK = 35, + MAX77836_PMIC_REG_TOPSYS_INT = 36, + MAX77836_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77836_PMIC_REG_TOPSYS_STAT = 40, + MAX77836_PMIC_REG_MRSTB_CNTL = 42, + MAX77836_PMIC_REG_LSCNFG = 43, + MAX77836_LDO_REG_CNFG1_LDO1 = 81, + MAX77836_LDO_REG_CNFG2_LDO1 = 82, + MAX77836_LDO_REG_CNFG1_LDO2 = 83, + MAX77836_LDO_REG_CNFG2_LDO2 = 84, + MAX77836_LDO_REG_CNFG_LDO_BIAS = 85, + MAX77836_COMP_REG_COMP1 = 96, + MAX77836_PMIC_REG_END = 97, +}; + +enum max77836_fg_reg { + MAX77836_FG_REG_VCELL_MSB = 2, + MAX77836_FG_REG_VCELL_LSB = 3, + MAX77836_FG_REG_SOC_MSB = 4, + MAX77836_FG_REG_SOC_LSB = 5, + MAX77836_FG_REG_MODE_H = 6, + MAX77836_FG_REG_MODE_L = 7, + MAX77836_FG_REG_VERSION_MSB = 8, + MAX77836_FG_REG_VERSION_LSB = 9, + MAX77836_FG_REG_HIBRT_H = 10, + MAX77836_FG_REG_HIBRT_L = 11, + MAX77836_FG_REG_CONFIG_H = 12, + MAX77836_FG_REG_CONFIG_L = 13, + MAX77836_FG_REG_VALRT_MIN = 20, + MAX77836_FG_REG_VALRT_MAX = 21, + MAX77836_FG_REG_CRATE_MSB = 22, + MAX77836_FG_REG_CRATE_LSB = 23, + MAX77836_FG_REG_VRESET = 24, + MAX77836_FG_REG_FGID = 25, + MAX77836_FG_REG_STATUS_H = 26, + MAX77836_FG_REG_STATUS_L = 27, + MAX77836_FG_REG_END = 28, +}; + +struct max14577 { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *i2c_pmic; + enum maxim_device_type dev_type; + struct regmap *regmap; + struct regmap *regmap_pmic; + struct regmap_irq_chip_data *irq_data; + struct regmap_irq_chip_data *irq_data_pmic; + int irq; +}; + +enum max77693_types { + TYPE_MAX77693_UNKNOWN = 0, + TYPE_MAX77693 = 1, + TYPE_MAX77843 = 2, + TYPE_MAX77693_NUM = 3, +}; + +struct max77693_dev { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *i2c_muic; + struct i2c_client *i2c_haptic; + struct i2c_client *i2c_chg; + enum max77693_types type; + struct regmap *regmap; + struct regmap *regmap_muic; + struct regmap *regmap_haptic; + struct regmap *regmap_chg; + struct regmap_irq_chip_data *irq_data_led; + struct regmap_irq_chip_data *irq_data_topsys; + struct regmap_irq_chip_data *irq_data_chg; + struct regmap_irq_chip_data *irq_data_muic; + int irq; +}; + +enum max77693_pmic_reg { + MAX77693_LED_REG_IFLASH1 = 0, + MAX77693_LED_REG_IFLASH2 = 1, + MAX77693_LED_REG_ITORCH = 2, + MAX77693_LED_REG_ITORCHTIMER = 3, + MAX77693_LED_REG_FLASH_TIMER = 4, + MAX77693_LED_REG_FLASH_EN = 5, + MAX77693_LED_REG_MAX_FLASH1 = 6, + MAX77693_LED_REG_MAX_FLASH2 = 7, + MAX77693_LED_REG_MAX_FLASH3 = 8, + MAX77693_LED_REG_MAX_FLASH4 = 9, + MAX77693_LED_REG_VOUT_CNTL = 10, + MAX77693_LED_REG_VOUT_FLASH1 = 11, + MAX77693_LED_REG_VOUT_FLASH2 = 12, + MAX77693_LED_REG_FLASH_INT = 14, + MAX77693_LED_REG_FLASH_INT_MASK = 15, + MAX77693_LED_REG_FLASH_STATUS = 16, + MAX77693_PMIC_REG_PMIC_ID1 = 32, + MAX77693_PMIC_REG_PMIC_ID2 = 33, + MAX77693_PMIC_REG_INTSRC = 34, + MAX77693_PMIC_REG_INTSRC_MASK = 35, + MAX77693_PMIC_REG_TOPSYS_INT = 36, + MAX77693_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77693_PMIC_REG_TOPSYS_STAT = 40, + MAX77693_PMIC_REG_MAINCTRL1 = 42, + MAX77693_PMIC_REG_LSCNFG = 43, + MAX77693_CHG_REG_CHG_INT = 176, + MAX77693_CHG_REG_CHG_INT_MASK = 177, + MAX77693_CHG_REG_CHG_INT_OK = 178, + MAX77693_CHG_REG_CHG_DETAILS_00 = 179, + MAX77693_CHG_REG_CHG_DETAILS_01 = 180, + MAX77693_CHG_REG_CHG_DETAILS_02 = 181, + MAX77693_CHG_REG_CHG_DETAILS_03 = 182, + MAX77693_CHG_REG_CHG_CNFG_00 = 183, + MAX77693_CHG_REG_CHG_CNFG_01 = 184, + MAX77693_CHG_REG_CHG_CNFG_02 = 185, + MAX77693_CHG_REG_CHG_CNFG_03 = 186, + MAX77693_CHG_REG_CHG_CNFG_04 = 187, + MAX77693_CHG_REG_CHG_CNFG_05 = 188, + MAX77693_CHG_REG_CHG_CNFG_06 = 189, + MAX77693_CHG_REG_CHG_CNFG_07 = 190, + MAX77693_CHG_REG_CHG_CNFG_08 = 191, + MAX77693_CHG_REG_CHG_CNFG_09 = 192, + MAX77693_CHG_REG_CHG_CNFG_10 = 193, + MAX77693_CHG_REG_CHG_CNFG_11 = 194, + MAX77693_CHG_REG_CHG_CNFG_12 = 195, + MAX77693_CHG_REG_CHG_CNFG_13 = 196, + MAX77693_CHG_REG_CHG_CNFG_14 = 197, + MAX77693_CHG_REG_SAFEOUT_CTRL = 198, + MAX77693_PMIC_REG_END = 199, +}; + +enum max77693_muic_reg { + MAX77693_MUIC_REG_ID = 0, + MAX77693_MUIC_REG_INT1 = 1, + MAX77693_MUIC_REG_INT2 = 2, + MAX77693_MUIC_REG_INT3 = 3, + MAX77693_MUIC_REG_STATUS1 = 4, + MAX77693_MUIC_REG_STATUS2 = 5, + MAX77693_MUIC_REG_STATUS3 = 6, + MAX77693_MUIC_REG_INTMASK1 = 7, + MAX77693_MUIC_REG_INTMASK2 = 8, + MAX77693_MUIC_REG_INTMASK3 = 9, + MAX77693_MUIC_REG_CDETCTRL1 = 10, + MAX77693_MUIC_REG_CDETCTRL2 = 11, + MAX77693_MUIC_REG_CTRL1 = 12, + MAX77693_MUIC_REG_CTRL2 = 13, + MAX77693_MUIC_REG_CTRL3 = 14, + MAX77693_MUIC_REG_END = 15, +}; + +enum max77693_haptic_reg { + MAX77693_HAPTIC_REG_STATUS = 0, + MAX77693_HAPTIC_REG_CONFIG1 = 1, + MAX77693_HAPTIC_REG_CONFIG2 = 2, + MAX77693_HAPTIC_REG_CONFIG_CHNL = 3, + MAX77693_HAPTIC_REG_CONFG_CYC1 = 4, + MAX77693_HAPTIC_REG_CONFG_CYC2 = 5, + MAX77693_HAPTIC_REG_CONFIG_PER1 = 6, + MAX77693_HAPTIC_REG_CONFIG_PER2 = 7, + MAX77693_HAPTIC_REG_CONFIG_PER3 = 8, + MAX77693_HAPTIC_REG_CONFIG_PER4 = 9, + MAX77693_HAPTIC_REG_CONFIG_DUTY1 = 10, + MAX77693_HAPTIC_REG_CONFIG_DUTY2 = 11, + MAX77693_HAPTIC_REG_CONFIG_PWM1 = 12, + MAX77693_HAPTIC_REG_CONFIG_PWM2 = 13, + MAX77693_HAPTIC_REG_CONFIG_PWM3 = 14, + MAX77693_HAPTIC_REG_CONFIG_PWM4 = 15, + MAX77693_HAPTIC_REG_REV = 16, + MAX77693_HAPTIC_REG_END = 17, +}; + +enum max77843_sys_reg { + MAX77843_SYS_REG_PMICID = 0, + MAX77843_SYS_REG_PMICREV = 1, + MAX77843_SYS_REG_MAINCTRL1 = 2, + MAX77843_SYS_REG_INTSRC = 34, + MAX77843_SYS_REG_INTSRCMASK = 35, + MAX77843_SYS_REG_SYSINTSRC = 36, + MAX77843_SYS_REG_SYSINTMASK = 38, + MAX77843_SYS_REG_TOPSYS_STAT = 40, + MAX77843_SYS_REG_SAFEOUTCTRL = 198, + MAX77843_SYS_REG_END = 199, +}; + +enum max77843_charger_reg { + MAX77843_CHG_REG_CHG_INT = 176, + MAX77843_CHG_REG_CHG_INT_MASK = 177, + MAX77843_CHG_REG_CHG_INT_OK = 178, + MAX77843_CHG_REG_CHG_DTLS_00 = 179, + MAX77843_CHG_REG_CHG_DTLS_01 = 180, + MAX77843_CHG_REG_CHG_DTLS_02 = 181, + MAX77843_CHG_REG_CHG_CNFG_00 = 183, + MAX77843_CHG_REG_CHG_CNFG_01 = 184, + MAX77843_CHG_REG_CHG_CNFG_02 = 185, + MAX77843_CHG_REG_CHG_CNFG_03 = 186, + MAX77843_CHG_REG_CHG_CNFG_04 = 187, + MAX77843_CHG_REG_CHG_CNFG_06 = 189, + MAX77843_CHG_REG_CHG_CNFG_07 = 190, + MAX77843_CHG_REG_CHG_CNFG_09 = 192, + MAX77843_CHG_REG_CHG_CNFG_10 = 193, + MAX77843_CHG_REG_CHG_CNFG_11 = 194, + MAX77843_CHG_REG_CHG_CNFG_12 = 195, + MAX77843_CHG_REG_END = 196, +}; + +enum { + MAX8925_IRQ_VCHG_DC_OVP = 0, + MAX8925_IRQ_VCHG_DC_F = 1, + MAX8925_IRQ_VCHG_DC_R = 2, + MAX8925_IRQ_VCHG_THM_OK_R = 3, + MAX8925_IRQ_VCHG_THM_OK_F = 4, + MAX8925_IRQ_VCHG_SYSLOW_F = 5, + MAX8925_IRQ_VCHG_SYSLOW_R = 6, + MAX8925_IRQ_VCHG_RST = 7, + MAX8925_IRQ_VCHG_DONE = 8, + MAX8925_IRQ_VCHG_TOPOFF = 9, + MAX8925_IRQ_VCHG_TMR_FAULT = 10, + MAX8925_IRQ_GPM_RSTIN = 11, + MAX8925_IRQ_GPM_MPL = 12, + MAX8925_IRQ_GPM_SW_3SEC = 13, + MAX8925_IRQ_GPM_EXTON_F = 14, + MAX8925_IRQ_GPM_EXTON_R = 15, + MAX8925_IRQ_GPM_SW_1SEC = 16, + MAX8925_IRQ_GPM_SW_F = 17, + MAX8925_IRQ_GPM_SW_R = 18, + MAX8925_IRQ_GPM_SYSCKEN_F = 19, + MAX8925_IRQ_GPM_SYSCKEN_R = 20, + MAX8925_IRQ_RTC_ALARM1 = 21, + MAX8925_IRQ_RTC_ALARM0 = 22, + MAX8925_IRQ_TSC_STICK = 23, + MAX8925_IRQ_TSC_NSTICK = 24, + MAX8925_NR_IRQS = 25, +}; + +struct max8925_chip { + struct device *dev; + struct i2c_client *i2c; + struct i2c_client *adc; + struct i2c_client *rtc; + struct mutex io_lock; + struct mutex irq_lock; + int irq_base; + int core_irq; + int tsc_irq; + unsigned int wakeup_flag; +}; + +struct max8925_backlight_pdata { + int lxw_scl; + int lxw_freq; + int dual_string; +}; + +struct max8925_touch_pdata { + unsigned int flags; +}; + +struct max8925_power_pdata { + int (*set_charger)(int); + unsigned int batt_detect: 1; + unsigned int topoff_threshold: 2; + unsigned int fast_charge: 3; + unsigned int no_temp_support: 1; + unsigned int no_insert_detect: 1; + char **supplied_to; + int num_supplicants; +}; + +struct max8925_platform_data { + struct max8925_backlight_pdata *backlight; + struct max8925_touch_pdata *touch; + struct max8925_power_pdata *power; + struct regulator_init_data *sd1; + struct regulator_init_data *sd2; + struct regulator_init_data *sd3; + struct regulator_init_data *ldo1; + struct regulator_init_data *ldo2; + struct regulator_init_data *ldo3; + struct regulator_init_data *ldo4; + struct regulator_init_data *ldo5; + struct regulator_init_data *ldo6; + struct regulator_init_data *ldo7; + struct regulator_init_data *ldo8; + struct regulator_init_data *ldo9; + struct regulator_init_data *ldo10; + struct regulator_init_data *ldo11; + struct regulator_init_data *ldo12; + struct regulator_init_data *ldo13; + struct regulator_init_data *ldo14; + struct regulator_init_data *ldo15; + struct regulator_init_data *ldo16; + struct regulator_init_data *ldo17; + struct regulator_init_data *ldo18; + struct regulator_init_data *ldo19; + struct regulator_init_data *ldo20; + int irq_base; + int tsc_irq; +}; + +enum { + FLAGS_ADC = 1, + FLAGS_RTC = 2, +}; + +struct max8925_irq_data { + int reg; + int mask_reg; + int enable; + int offs; + int flags; + int tsc_irq; +}; + +struct max8997_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; + +struct max8997_muic_reg_data { + u8 addr; + u8 data; +}; + +struct max8997_muic_platform_data { + struct max8997_muic_reg_data *init_data; + int num_init_data; + int detcable_delay_ms; + int path_usb; + int path_uart; +}; + +enum max8997_haptic_motor_type { + MAX8997_HAPTIC_ERM = 0, + MAX8997_HAPTIC_LRA = 1, +}; + +enum max8997_haptic_pulse_mode { + MAX8997_EXTERNAL_MODE = 0, + MAX8997_INTERNAL_MODE = 1, +}; + +enum max8997_haptic_pwm_divisor { + MAX8997_PWM_DIVISOR_32 = 0, + MAX8997_PWM_DIVISOR_64 = 1, + MAX8997_PWM_DIVISOR_128 = 2, + MAX8997_PWM_DIVISOR_256 = 3, +}; + +struct max8997_haptic_platform_data { + unsigned int pwm_channel_id; + unsigned int pwm_period; + enum max8997_haptic_motor_type type; + enum max8997_haptic_pulse_mode mode; + enum max8997_haptic_pwm_divisor pwm_divisor; + unsigned int internal_mode_pattern; + unsigned int pattern_cycle; + unsigned int pattern_signal_period; +}; + +enum max8997_led_mode { + MAX8997_NONE = 0, + MAX8997_FLASH_MODE = 1, + MAX8997_MOVIE_MODE = 2, + MAX8997_FLASH_PIN_CONTROL_MODE = 3, + MAX8997_MOVIE_PIN_CONTROL_MODE = 4, +}; + +struct max8997_led_platform_data { + enum max8997_led_mode mode[2]; + u8 brightness[2]; +}; + +struct max8997_platform_data { + int ono; + struct max8997_regulator_data *regulators; + int num_regulators; + bool ignore_gpiodvs_side_effect; + int buck125_gpios[3]; + int buck125_default_idx; + unsigned int buck1_voltage[8]; + bool buck1_gpiodvs; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck5_voltage[8]; + bool buck5_gpiodvs; + int eoc_mA; + int timeout; + struct max8997_muic_platform_data *muic_pdata; + struct max8997_haptic_platform_data *haptic_pdata; + struct max8997_led_platform_data *led_pdata; +}; + +enum max8997_pmic_reg { + MAX8997_REG_PMIC_ID0 = 0, + MAX8997_REG_PMIC_ID1 = 1, + MAX8997_REG_INTSRC = 2, + MAX8997_REG_INT1 = 3, + MAX8997_REG_INT2 = 4, + MAX8997_REG_INT3 = 5, + MAX8997_REG_INT4 = 6, + MAX8997_REG_INT1MSK = 8, + MAX8997_REG_INT2MSK = 9, + MAX8997_REG_INT3MSK = 10, + MAX8997_REG_INT4MSK = 11, + MAX8997_REG_STATUS1 = 13, + MAX8997_REG_STATUS2 = 14, + MAX8997_REG_STATUS3 = 15, + MAX8997_REG_STATUS4 = 16, + MAX8997_REG_MAINCON1 = 19, + MAX8997_REG_MAINCON2 = 20, + MAX8997_REG_BUCKRAMP = 21, + MAX8997_REG_BUCK1CTRL = 24, + MAX8997_REG_BUCK1DVS1 = 25, + MAX8997_REG_BUCK1DVS2 = 26, + MAX8997_REG_BUCK1DVS3 = 27, + MAX8997_REG_BUCK1DVS4 = 28, + MAX8997_REG_BUCK1DVS5 = 29, + MAX8997_REG_BUCK1DVS6 = 30, + MAX8997_REG_BUCK1DVS7 = 31, + MAX8997_REG_BUCK1DVS8 = 32, + MAX8997_REG_BUCK2CTRL = 33, + MAX8997_REG_BUCK2DVS1 = 34, + MAX8997_REG_BUCK2DVS2 = 35, + MAX8997_REG_BUCK2DVS3 = 36, + MAX8997_REG_BUCK2DVS4 = 37, + MAX8997_REG_BUCK2DVS5 = 38, + MAX8997_REG_BUCK2DVS6 = 39, + MAX8997_REG_BUCK2DVS7 = 40, + MAX8997_REG_BUCK2DVS8 = 41, + MAX8997_REG_BUCK3CTRL = 42, + MAX8997_REG_BUCK3DVS = 43, + MAX8997_REG_BUCK4CTRL = 44, + MAX8997_REG_BUCK4DVS = 45, + MAX8997_REG_BUCK5CTRL = 46, + MAX8997_REG_BUCK5DVS1 = 47, + MAX8997_REG_BUCK5DVS2 = 48, + MAX8997_REG_BUCK5DVS3 = 49, + MAX8997_REG_BUCK5DVS4 = 50, + MAX8997_REG_BUCK5DVS5 = 51, + MAX8997_REG_BUCK5DVS6 = 52, + MAX8997_REG_BUCK5DVS7 = 53, + MAX8997_REG_BUCK5DVS8 = 54, + MAX8997_REG_BUCK6CTRL = 55, + MAX8997_REG_BUCK6BPSKIPCTRL = 56, + MAX8997_REG_BUCK7CTRL = 57, + MAX8997_REG_BUCK7DVS = 58, + MAX8997_REG_LDO1CTRL = 59, + MAX8997_REG_LDO2CTRL = 60, + MAX8997_REG_LDO3CTRL = 61, + MAX8997_REG_LDO4CTRL = 62, + MAX8997_REG_LDO5CTRL = 63, + MAX8997_REG_LDO6CTRL = 64, + MAX8997_REG_LDO7CTRL = 65, + MAX8997_REG_LDO8CTRL = 66, + MAX8997_REG_LDO9CTRL = 67, + MAX8997_REG_LDO10CTRL = 68, + MAX8997_REG_LDO11CTRL = 69, + MAX8997_REG_LDO12CTRL = 70, + MAX8997_REG_LDO13CTRL = 71, + MAX8997_REG_LDO14CTRL = 72, + MAX8997_REG_LDO15CTRL = 73, + MAX8997_REG_LDO16CTRL = 74, + MAX8997_REG_LDO17CTRL = 75, + MAX8997_REG_LDO18CTRL = 76, + MAX8997_REG_LDO21CTRL = 77, + MAX8997_REG_MBCCTRL1 = 80, + MAX8997_REG_MBCCTRL2 = 81, + MAX8997_REG_MBCCTRL3 = 82, + MAX8997_REG_MBCCTRL4 = 83, + MAX8997_REG_MBCCTRL5 = 84, + MAX8997_REG_MBCCTRL6 = 85, + MAX8997_REG_OTPCGHCVS = 86, + MAX8997_REG_SAFEOUTCTRL = 90, + MAX8997_REG_LBCNFG1 = 94, + MAX8997_REG_LBCNFG2 = 95, + MAX8997_REG_BBCCTRL = 96, + MAX8997_REG_FLASH1_CUR = 99, + MAX8997_REG_FLASH2_CUR = 100, + MAX8997_REG_MOVIE_CUR = 101, + MAX8997_REG_GSMB_CUR = 102, + MAX8997_REG_BOOST_CNTL = 103, + MAX8997_REG_LEN_CNTL = 104, + MAX8997_REG_FLASH_CNTL = 105, + MAX8997_REG_WDT_CNTL = 106, + MAX8997_REG_MAXFLASH1 = 107, + MAX8997_REG_MAXFLASH2 = 108, + MAX8997_REG_FLASHSTATUS = 109, + MAX8997_REG_FLASHSTATUSMASK = 110, + MAX8997_REG_GPIOCNTL1 = 112, + MAX8997_REG_GPIOCNTL2 = 113, + MAX8997_REG_GPIOCNTL3 = 114, + MAX8997_REG_GPIOCNTL4 = 115, + MAX8997_REG_GPIOCNTL5 = 116, + MAX8997_REG_GPIOCNTL6 = 117, + MAX8997_REG_GPIOCNTL7 = 118, + MAX8997_REG_GPIOCNTL8 = 119, + MAX8997_REG_GPIOCNTL9 = 120, + MAX8997_REG_GPIOCNTL10 = 121, + MAX8997_REG_GPIOCNTL11 = 122, + MAX8997_REG_GPIOCNTL12 = 123, + MAX8997_REG_LDO1CONFIG = 128, + MAX8997_REG_LDO2CONFIG = 129, + MAX8997_REG_LDO3CONFIG = 130, + MAX8997_REG_LDO4CONFIG = 131, + MAX8997_REG_LDO5CONFIG = 132, + MAX8997_REG_LDO6CONFIG = 133, + MAX8997_REG_LDO7CONFIG = 134, + MAX8997_REG_LDO8CONFIG = 135, + MAX8997_REG_LDO9CONFIG = 136, + MAX8997_REG_LDO10CONFIG = 137, + MAX8997_REG_LDO11CONFIG = 138, + MAX8997_REG_LDO12CONFIG = 139, + MAX8997_REG_LDO13CONFIG = 140, + MAX8997_REG_LDO14CONFIG = 141, + MAX8997_REG_LDO15CONFIG = 142, + MAX8997_REG_LDO16CONFIG = 143, + MAX8997_REG_LDO17CONFIG = 144, + MAX8997_REG_LDO18CONFIG = 145, + MAX8997_REG_LDO21CONFIG = 146, + MAX8997_REG_DVSOKTIMER1 = 151, + MAX8997_REG_DVSOKTIMER2 = 152, + MAX8997_REG_DVSOKTIMER4 = 153, + MAX8997_REG_DVSOKTIMER5 = 154, + MAX8997_REG_PMIC_END = 155, +}; + +enum max8997_muic_reg { + MAX8997_MUIC_REG_ID = 0, + MAX8997_MUIC_REG_INT1 = 1, + MAX8997_MUIC_REG_INT2 = 2, + MAX8997_MUIC_REG_INT3 = 3, + MAX8997_MUIC_REG_STATUS1 = 4, + MAX8997_MUIC_REG_STATUS2 = 5, + MAX8997_MUIC_REG_STATUS3 = 6, + MAX8997_MUIC_REG_INTMASK1 = 7, + MAX8997_MUIC_REG_INTMASK2 = 8, + MAX8997_MUIC_REG_INTMASK3 = 9, + MAX8997_MUIC_REG_CDETCTRL = 10, + MAX8997_MUIC_REG_CONTROL1 = 12, + MAX8997_MUIC_REG_CONTROL2 = 13, + MAX8997_MUIC_REG_CONTROL3 = 14, + MAX8997_MUIC_REG_END = 15, +}; + +enum max8997_haptic_reg { + MAX8997_HAPTIC_REG_GENERAL = 0, + MAX8997_HAPTIC_REG_CONF1 = 1, + MAX8997_HAPTIC_REG_CONF2 = 2, + MAX8997_HAPTIC_REG_DRVCONF = 3, + MAX8997_HAPTIC_REG_CYCLECONF1 = 4, + MAX8997_HAPTIC_REG_CYCLECONF2 = 5, + MAX8997_HAPTIC_REG_SIGCONF1 = 6, + MAX8997_HAPTIC_REG_SIGCONF2 = 7, + MAX8997_HAPTIC_REG_SIGCONF3 = 8, + MAX8997_HAPTIC_REG_SIGCONF4 = 9, + MAX8997_HAPTIC_REG_SIGDC1 = 10, + MAX8997_HAPTIC_REG_SIGDC2 = 11, + MAX8997_HAPTIC_REG_SIGPWMDC1 = 12, + MAX8997_HAPTIC_REG_SIGPWMDC2 = 13, + MAX8997_HAPTIC_REG_SIGPWMDC3 = 14, + MAX8997_HAPTIC_REG_SIGPWMDC4 = 15, + MAX8997_HAPTIC_REG_MTR_REV = 16, + MAX8997_HAPTIC_REG_END = 17, +}; + +enum max8997_irq_source { + PMIC_INT1 = 0, + PMIC_INT2 = 1, + PMIC_INT3 = 2, + PMIC_INT4 = 3, + FUEL_GAUGE = 4, + MUIC_INT1 = 5, + MUIC_INT2 = 6, + MUIC_INT3 = 7, + GPIO_LOW = 8, + GPIO_HI = 9, + FLASH_STATUS = 10, + MAX8997_IRQ_GROUP_NR = 11, +}; + +struct max8997_dev { + struct device *dev; + struct max8997_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct i2c_client *haptic; + struct i2c_client *muic; + struct mutex iolock; + long unsigned int type; + struct platform_device *battery; + int irq; + int ono; + struct irq_domain *irq_domain; + struct mutex irqlock; + int irq_masks_cur[11]; + int irq_masks_cache[11]; + u8 reg_dump[187]; + bool gpio_status[12]; +}; + +enum max8997_types { + TYPE_MAX8997 = 0, + TYPE_MAX8966 = 1, +}; + +enum max8997_irq { + MAX8997_PMICIRQ_PWRONR = 0, + MAX8997_PMICIRQ_PWRONF = 1, + MAX8997_PMICIRQ_PWRON1SEC = 2, + MAX8997_PMICIRQ_JIGONR = 3, + MAX8997_PMICIRQ_JIGONF = 4, + MAX8997_PMICIRQ_LOWBAT2 = 5, + MAX8997_PMICIRQ_LOWBAT1 = 6, + MAX8997_PMICIRQ_JIGR = 7, + MAX8997_PMICIRQ_JIGF = 8, + MAX8997_PMICIRQ_MR = 9, + MAX8997_PMICIRQ_DVS1OK = 10, + MAX8997_PMICIRQ_DVS2OK = 11, + MAX8997_PMICIRQ_DVS3OK = 12, + MAX8997_PMICIRQ_DVS4OK = 13, + MAX8997_PMICIRQ_CHGINS = 14, + MAX8997_PMICIRQ_CHGRM = 15, + MAX8997_PMICIRQ_DCINOVP = 16, + MAX8997_PMICIRQ_TOPOFFR = 17, + MAX8997_PMICIRQ_CHGRSTF = 18, + MAX8997_PMICIRQ_MBCHGTMEXPD = 19, + MAX8997_PMICIRQ_RTC60S = 20, + MAX8997_PMICIRQ_RTCA1 = 21, + MAX8997_PMICIRQ_RTCA2 = 22, + MAX8997_PMICIRQ_SMPL_INT = 23, + MAX8997_PMICIRQ_RTC1S = 24, + MAX8997_PMICIRQ_WTSR = 25, + MAX8997_MUICIRQ_ADCError = 26, + MAX8997_MUICIRQ_ADCLow = 27, + MAX8997_MUICIRQ_ADC = 28, + MAX8997_MUICIRQ_VBVolt = 29, + MAX8997_MUICIRQ_DBChg = 30, + MAX8997_MUICIRQ_DCDTmr = 31, + MAX8997_MUICIRQ_ChgDetRun = 32, + MAX8997_MUICIRQ_ChgTyp = 33, + MAX8997_MUICIRQ_OVP = 34, + MAX8997_IRQ_NR = 35, +}; + +struct max8997_irq_data { + int mask; + enum max8997_irq_source group; +}; + +struct max8998_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; + +struct max8998_platform_data { + struct max8998_regulator_data *regulators; + int num_regulators; + unsigned int irq_base; + int ono; + bool buck_voltage_lock; + int buck1_voltage[4]; + int buck2_voltage[2]; + int buck1_set1; + int buck1_set2; + int buck1_default_idx; + int buck2_set3; + int buck2_default_idx; + bool wakeup; + bool rtc_delay; + int eoc; + int restart; + int timeout; +}; + +enum { + MAX8998_REG_IRQ1 = 0, + MAX8998_REG_IRQ2 = 1, + MAX8998_REG_IRQ3 = 2, + MAX8998_REG_IRQ4 = 3, + MAX8998_REG_IRQM1 = 4, + MAX8998_REG_IRQM2 = 5, + MAX8998_REG_IRQM3 = 6, + MAX8998_REG_IRQM4 = 7, + MAX8998_REG_STATUS1 = 8, + MAX8998_REG_STATUS2 = 9, + MAX8998_REG_STATUSM1 = 10, + MAX8998_REG_STATUSM2 = 11, + MAX8998_REG_CHGR1 = 12, + MAX8998_REG_CHGR2 = 13, + MAX8998_REG_LDO_ACTIVE_DISCHARGE1 = 14, + MAX8998_REG_LDO_ACTIVE_DISCHARGE2 = 15, + MAX8998_REG_BUCK_ACTIVE_DISCHARGE3 = 16, + MAX8998_REG_ONOFF1 = 17, + MAX8998_REG_ONOFF2 = 18, + MAX8998_REG_ONOFF3 = 19, + MAX8998_REG_ONOFF4 = 20, + MAX8998_REG_BUCK1_VOLTAGE1 = 21, + MAX8998_REG_BUCK1_VOLTAGE2 = 22, + MAX8998_REG_BUCK1_VOLTAGE3 = 23, + MAX8998_REG_BUCK1_VOLTAGE4 = 24, + MAX8998_REG_BUCK2_VOLTAGE1 = 25, + MAX8998_REG_BUCK2_VOLTAGE2 = 26, + MAX8998_REG_BUCK3 = 27, + MAX8998_REG_BUCK4 = 28, + MAX8998_REG_LDO2_LDO3 = 29, + MAX8998_REG_LDO4 = 30, + MAX8998_REG_LDO5 = 31, + MAX8998_REG_LDO6 = 32, + MAX8998_REG_LDO7 = 33, + MAX8998_REG_LDO8_LDO9 = 34, + MAX8998_REG_LDO10_LDO11 = 35, + MAX8998_REG_LDO12 = 36, + MAX8998_REG_LDO13 = 37, + MAX8998_REG_LDO14 = 38, + MAX8998_REG_LDO15 = 39, + MAX8998_REG_LDO16 = 40, + MAX8998_REG_LDO17 = 41, + MAX8998_REG_BKCHR = 42, + MAX8998_REG_LBCNFG1 = 43, + MAX8998_REG_LBCNFG2 = 44, +}; + +enum { + TYPE_MAX8998 = 0, + TYPE_LP3974 = 1, + TYPE_LP3979 = 2, +}; + +struct max8998_dev { + struct device *dev; + struct max8998_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct mutex iolock; + struct mutex irqlock; + unsigned int irq_base; + struct irq_domain *irq_domain; + int irq; + int ono; + u8 irq_masks_cur[4]; + u8 irq_masks_cache[4]; + long unsigned int type; + bool wakeup; +}; + +struct max8998_reg_dump { + u8 addr; + u8 val; +}; + +enum { + MAX8998_IRQ_DCINF = 0, + MAX8998_IRQ_DCINR = 1, + MAX8998_IRQ_JIGF = 2, + MAX8998_IRQ_JIGR = 3, + MAX8998_IRQ_PWRONF = 4, + MAX8998_IRQ_PWRONR = 5, + MAX8998_IRQ_WTSREVNT = 6, + MAX8998_IRQ_SMPLEVNT = 7, + MAX8998_IRQ_ALARM1 = 8, + MAX8998_IRQ_ALARM0 = 9, + MAX8998_IRQ_ONKEY1S = 10, + MAX8998_IRQ_TOPOFFR = 11, + MAX8998_IRQ_DCINOVPR = 12, + MAX8998_IRQ_CHGRSTF = 13, + MAX8998_IRQ_DONER = 14, + MAX8998_IRQ_CHGFAULT = 15, + MAX8998_IRQ_LOBAT1 = 16, + MAX8998_IRQ_LOBAT2 = 17, + MAX8998_IRQ_NR = 18, +}; + +struct max8998_irq_data { + int reg; + int mask; +}; + +struct adp5520_gpio_platform_data { + unsigned int gpio_start; + u8 gpio_en_mask; + u8 gpio_pullup_mask; +}; + +struct adp5520_keys_platform_data { + int rows_en_mask; + int cols_en_mask; + const short unsigned int *keymap; + short unsigned int keymapsize; + unsigned int repeat: 1; +}; + +struct led_info; + +struct adp5520_leds_platform_data { + int num_leds; + struct led_info *leds; + u8 fade_in; + u8 fade_out; + u8 led_on_time; +}; + +struct adp5520_backlight_platform_data { + u8 fade_in; + u8 fade_out; + u8 fade_led_law; + u8 en_ambl_sens; + u8 abml_filt; + u8 l1_daylight_max; + u8 l1_daylight_dim; + u8 l2_office_max; + u8 l2_office_dim; + u8 l3_dark_max; + u8 l3_dark_dim; + u8 l2_trip; + u8 l2_hyst; + u8 l3_trip; + u8 l3_hyst; +}; + +struct adp5520_platform_data { + struct adp5520_keys_platform_data *keys; + struct adp5520_gpio_platform_data *gpio; + struct adp5520_leds_platform_data *leds; + struct adp5520_backlight_platform_data *backlight; +}; + +struct adp5520_chip { + struct i2c_client *client; + struct device *dev; + struct mutex lock; + struct blocking_notifier_head notifier_list; + int irq; + long unsigned int id; + uint8_t mode; +}; + +struct tps6586x_irq_data { + u8 mask_reg; + u8 mask_mask; +}; + +struct tps6586x { + struct device *dev; + struct i2c_client *client; + struct regmap *regmap; + int version; + int irq; + struct irq_chip irq_chip; + struct mutex irq_lock; + int irq_base; + u32 irq_en; + u8 mask_reg[5]; + struct irq_domain *irq_domain; +}; + +enum { + TPS65090_IRQ_INTERRUPT = 0, + TPS65090_IRQ_VAC_STATUS_CHANGE = 1, + TPS65090_IRQ_VSYS_STATUS_CHANGE = 2, + TPS65090_IRQ_BAT_STATUS_CHANGE = 3, + TPS65090_IRQ_CHARGING_STATUS_CHANGE = 4, + TPS65090_IRQ_CHARGING_COMPLETE = 5, + TPS65090_IRQ_OVERLOAD_DCDC1 = 6, + TPS65090_IRQ_OVERLOAD_DCDC2 = 7, + TPS65090_IRQ_OVERLOAD_DCDC3 = 8, + TPS65090_IRQ_OVERLOAD_FET1 = 9, + TPS65090_IRQ_OVERLOAD_FET2 = 10, + TPS65090_IRQ_OVERLOAD_FET3 = 11, + TPS65090_IRQ_OVERLOAD_FET4 = 12, + TPS65090_IRQ_OVERLOAD_FET5 = 13, + TPS65090_IRQ_OVERLOAD_FET6 = 14, + TPS65090_IRQ_OVERLOAD_FET7 = 15, +}; + +enum { + TPS65090_REGULATOR_DCDC1 = 0, + TPS65090_REGULATOR_DCDC2 = 1, + TPS65090_REGULATOR_DCDC3 = 2, + TPS65090_REGULATOR_FET1 = 3, + TPS65090_REGULATOR_FET2 = 4, + TPS65090_REGULATOR_FET3 = 5, + TPS65090_REGULATOR_FET4 = 6, + TPS65090_REGULATOR_FET5 = 7, + TPS65090_REGULATOR_FET6 = 8, + TPS65090_REGULATOR_FET7 = 9, + TPS65090_REGULATOR_LDO1 = 10, + TPS65090_REGULATOR_LDO2 = 11, + TPS65090_REGULATOR_MAX = 12, +}; + +struct tps65090 { + struct device *dev; + struct regmap *rmap; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65090_regulator_plat_data { + struct regulator_init_data *reg_init_data; + bool enable_ext_control; + struct gpio_desc *gpiod; + bool overcurrent_wait_valid; + int overcurrent_wait; +}; + +struct tps65090_platform_data { + int irq_base; + char **supplied_to; + size_t num_supplicants; + int enable_low_current_chrg; + struct tps65090_regulator_plat_data *reg_pdata[12]; +}; + +enum tps65090_cells { + PMIC = 0, + CHARGER = 1, +}; + +enum aat2870_id { + AAT2870_ID_BL = 0, + AAT2870_ID_LDOA = 1, + AAT2870_ID_LDOB = 2, + AAT2870_ID_LDOC = 3, + AAT2870_ID_LDOD = 4, +}; + +struct aat2870_register { + bool readable; + bool writeable; + u8 value; +}; + +struct aat2870_data { + struct device *dev; + struct i2c_client *client; + struct mutex io_lock; + struct aat2870_register *reg_cache; + int en_pin; + bool is_enable; + int (*init)(struct aat2870_data *); + void (*uninit)(struct aat2870_data *); + int (*read)(struct aat2870_data *, u8, u8 *); + int (*write)(struct aat2870_data *, u8, u8); + int (*update)(struct aat2870_data *, u8, u8, u8); + struct dentry *dentry_root; +}; + +struct aat2870_subdev_info { + int id; + const char *name; + void *platform_data; +}; + +struct aat2870_platform_data { + int en_pin; + struct aat2870_subdev_info *subdevs; + int num_subdevs; + int (*init)(struct aat2870_data *); + void (*uninit)(struct aat2870_data *); +}; + +enum { + PALMAS_EXT_CONTROL_ENABLE1 = 1, + PALMAS_EXT_CONTROL_ENABLE2 = 2, + PALMAS_EXT_CONTROL_NSLEEP = 4, +}; + +enum palmas_external_requestor_id { + PALMAS_EXTERNAL_REQSTR_ID_REGEN1 = 0, + PALMAS_EXTERNAL_REQSTR_ID_REGEN2 = 1, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN1 = 2, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN2 = 3, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KG = 4, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO = 5, + PALMAS_EXTERNAL_REQSTR_ID_REGEN3 = 6, + PALMAS_EXTERNAL_REQSTR_ID_SMPS12 = 7, + PALMAS_EXTERNAL_REQSTR_ID_SMPS3 = 8, + PALMAS_EXTERNAL_REQSTR_ID_SMPS45 = 9, + PALMAS_EXTERNAL_REQSTR_ID_SMPS6 = 10, + PALMAS_EXTERNAL_REQSTR_ID_SMPS7 = 11, + PALMAS_EXTERNAL_REQSTR_ID_SMPS8 = 12, + PALMAS_EXTERNAL_REQSTR_ID_SMPS9 = 13, + PALMAS_EXTERNAL_REQSTR_ID_SMPS10 = 14, + PALMAS_EXTERNAL_REQSTR_ID_LDO1 = 15, + PALMAS_EXTERNAL_REQSTR_ID_LDO2 = 16, + PALMAS_EXTERNAL_REQSTR_ID_LDO3 = 17, + PALMAS_EXTERNAL_REQSTR_ID_LDO4 = 18, + PALMAS_EXTERNAL_REQSTR_ID_LDO5 = 19, + PALMAS_EXTERNAL_REQSTR_ID_LDO6 = 20, + PALMAS_EXTERNAL_REQSTR_ID_LDO7 = 21, + PALMAS_EXTERNAL_REQSTR_ID_LDO8 = 22, + PALMAS_EXTERNAL_REQSTR_ID_LDO9 = 23, + PALMAS_EXTERNAL_REQSTR_ID_LDOLN = 24, + PALMAS_EXTERNAL_REQSTR_ID_LDOUSB = 25, + PALMAS_EXTERNAL_REQSTR_ID_MAX = 26, +}; + +enum tps65917_irqs { + TPS65917_RESERVED1 = 0, + TPS65917_PWRON_IRQ = 1, + TPS65917_LONG_PRESS_KEY_IRQ = 2, + TPS65917_RESERVED2 = 3, + TPS65917_PWRDOWN_IRQ = 4, + TPS65917_HOTDIE_IRQ = 5, + TPS65917_VSYS_MON_IRQ = 6, + TPS65917_RESERVED3 = 7, + TPS65917_RESERVED4 = 8, + TPS65917_OTP_ERROR_IRQ = 9, + TPS65917_WDT_IRQ = 10, + TPS65917_RESERVED5 = 11, + TPS65917_RESET_IN_IRQ = 12, + TPS65917_FSD_IRQ = 13, + TPS65917_SHORT_IRQ = 14, + TPS65917_RESERVED6 = 15, + TPS65917_GPADC_AUTO_0_IRQ = 16, + TPS65917_GPADC_AUTO_1_IRQ = 17, + TPS65917_GPADC_EOC_SW_IRQ = 18, + TPS65917_RESREVED6 = 19, + TPS65917_RESERVED7 = 20, + TPS65917_RESERVED8 = 21, + TPS65917_RESERVED9 = 22, + TPS65917_VBUS_IRQ = 23, + TPS65917_GPIO_0_IRQ = 24, + TPS65917_GPIO_1_IRQ = 25, + TPS65917_GPIO_2_IRQ = 26, + TPS65917_GPIO_3_IRQ = 27, + TPS65917_GPIO_4_IRQ = 28, + TPS65917_GPIO_5_IRQ = 29, + TPS65917_GPIO_6_IRQ = 30, + TPS65917_RESERVED10 = 31, + TPS65917_NUM_IRQ = 32, +}; + +struct palmas_driver_data { + unsigned int *features; + struct regmap_irq_chip *irq_chip; +}; + +enum { + RC5T583_DS_NONE = 0, + RC5T583_DS_DC0 = 1, + RC5T583_DS_DC1 = 2, + RC5T583_DS_DC2 = 3, + RC5T583_DS_DC3 = 4, + RC5T583_DS_LDO0 = 5, + RC5T583_DS_LDO1 = 6, + RC5T583_DS_LDO2 = 7, + RC5T583_DS_LDO3 = 8, + RC5T583_DS_LDO4 = 9, + RC5T583_DS_LDO5 = 10, + RC5T583_DS_LDO6 = 11, + RC5T583_DS_LDO7 = 12, + RC5T583_DS_LDO8 = 13, + RC5T583_DS_LDO9 = 14, + RC5T583_DS_PSO0 = 15, + RC5T583_DS_PSO1 = 16, + RC5T583_DS_PSO2 = 17, + RC5T583_DS_PSO3 = 18, + RC5T583_DS_PSO4 = 19, + RC5T583_DS_PSO5 = 20, + RC5T583_DS_PSO6 = 21, + RC5T583_DS_PSO7 = 22, + RC5T583_DS_MAX = 23, +}; + +enum { + RC5T583_EXT_PWRREQ1_CONTROL = 1, + RC5T583_EXT_PWRREQ2_CONTROL = 2, +}; + +struct deepsleep_control_data { + u8 reg_add; + u8 ds_pos_bit; +}; + +enum int_type { + SYS_INT = 1, + DCDC_INT = 2, + RTC_INT = 4, + ADC_INT = 8, + GPIO_INT = 16, +}; + +struct rc5t583_irq_data { + u8 int_type; + u8 master_bit; + u8 int_en_bit; + u8 mask_reg_index; + int grp_index; +}; + +struct syscon_platform_data { + const char *label; +}; + +struct syscon { + struct device_node *np; + struct regmap *regmap; + struct list_head list; +}; + +enum { + AS3711_REGULATOR_SD_1 = 0, + AS3711_REGULATOR_SD_2 = 1, + AS3711_REGULATOR_SD_3 = 2, + AS3711_REGULATOR_SD_4 = 3, + AS3711_REGULATOR_LDO_1 = 4, + AS3711_REGULATOR_LDO_2 = 5, + AS3711_REGULATOR_LDO_3 = 6, + AS3711_REGULATOR_LDO_4 = 7, + AS3711_REGULATOR_LDO_5 = 8, + AS3711_REGULATOR_LDO_6 = 9, + AS3711_REGULATOR_LDO_7 = 10, + AS3711_REGULATOR_LDO_8 = 11, + AS3711_REGULATOR_MAX = 12, +}; + +struct as3711 { + struct device *dev; + struct regmap *regmap; +}; + +enum as3711_su2_feedback { + AS3711_SU2_VOLTAGE = 0, + AS3711_SU2_CURR1 = 1, + AS3711_SU2_CURR2 = 2, + AS3711_SU2_CURR3 = 3, + AS3711_SU2_CURR_AUTO = 4, +}; + +enum as3711_su2_fbprot { + AS3711_SU2_LX_SD4 = 0, + AS3711_SU2_GPIO2 = 1, + AS3711_SU2_GPIO3 = 2, + AS3711_SU2_GPIO4 = 3, +}; + +struct as3711_regulator_pdata { + struct regulator_init_data *init_data[12]; +}; + +struct as3711_bl_pdata { + bool su1_fb; + int su1_max_uA; + bool su2_fb; + int su2_max_uA; + enum as3711_su2_feedback su2_feedback; + enum as3711_su2_fbprot su2_fbprot; + bool su2_auto_curr1; + bool su2_auto_curr2; + bool su2_auto_curr3; +}; + +struct as3711_platform_data { + struct as3711_regulator_pdata regulator; + struct as3711_bl_pdata backlight; +}; + +enum { + AS3711_REGULATOR = 0, + AS3711_BACKLIGHT = 1, +}; + +struct intel_soc_pmic_config { + long unsigned int irq_flags; + struct mfd_cell *cell_dev; + int n_cell_devs; + const struct regmap_config *regmap_config; + const struct regmap_irq_chip *irq_chip; +}; + +enum { + CHT_WC_PWRSRC_IRQ = 0, + CHT_WC_THRM_IRQ = 1, + CHT_WC_BCU_IRQ = 2, + CHT_WC_ADC_IRQ = 3, + CHT_WC_EXT_CHGR_IRQ = 4, + CHT_WC_GPIO_IRQ = 5, + CHT_WC_CRIT_IRQ = 7, +}; + +struct badrange { + struct list_head list; + spinlock_t lock; +}; + +enum { + NDD_ALIASING = 0, + NDD_UNARMED = 1, + NDD_LOCKED = 2, + NDD_SECURITY_OVERWRITE = 3, + NDD_WORK_PENDING = 4, + NDD_NOBLK = 5, + NDD_LABELING = 6, + ND_IOCTL_MAX_BUFLEN = 4194304, + ND_CMD_MAX_ELEM = 5, + ND_CMD_MAX_ENVELOPE = 256, + ND_MAX_MAPPINGS = 32, + ND_REGION_PAGEMAP = 0, + ND_REGION_PERSIST_CACHE = 1, + ND_REGION_PERSIST_MEMCTRL = 2, + ND_REGION_ASYNC = 3, + DPA_RESOURCE_ADJUSTED = 1, +}; + +struct nvdimm_bus_descriptor; + +struct nvdimm; + +typedef int (*ndctl_fn)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *, unsigned int, int *); + +struct nvdimm_bus_fw_ops; + +struct nvdimm_bus_descriptor { + const struct attribute_group **attr_groups; + long unsigned int cmd_mask; + long unsigned int dimm_family_mask; + long unsigned int bus_family_mask; + struct module *module; + char *provider_name; + struct device_node *of_node; + ndctl_fn ndctl; + int (*flush_probe)(struct nvdimm_bus_descriptor *); + int (*clear_to_send)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *); + const struct nvdimm_bus_fw_ops *fw_ops; +}; + +struct nvdimm_security_ops; + +struct nvdimm_fw_ops; + +struct nvdimm { + long unsigned int flags; + void *provider_data; + long unsigned int cmd_mask; + struct device dev; + atomic_t busy; + int id; + int num_flush; + struct resource *flush_wpq; + const char *dimm_id; + struct { + const struct nvdimm_security_ops *ops; + long unsigned int flags; + long unsigned int ext_flags; + unsigned int overwrite_tmo; + struct kernfs_node *overwrite_state; + } sec; + struct delayed_work dwork; + const struct nvdimm_fw_ops *fw_ops; +}; + +enum nvdimm_fwa_state { + NVDIMM_FWA_INVALID = 0, + NVDIMM_FWA_IDLE = 1, + NVDIMM_FWA_ARMED = 2, + NVDIMM_FWA_BUSY = 3, + NVDIMM_FWA_ARM_OVERFLOW = 4, +}; + +enum nvdimm_fwa_capability { + NVDIMM_FWA_CAP_INVALID = 0, + NVDIMM_FWA_CAP_NONE = 1, + NVDIMM_FWA_CAP_QUIESCE = 2, + NVDIMM_FWA_CAP_LIVE = 3, +}; + +struct nvdimm_bus_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm_bus_descriptor *); + enum nvdimm_fwa_capability (*capability)(struct nvdimm_bus_descriptor *); + int (*activate)(struct nvdimm_bus_descriptor *); +}; + +struct nvdimm_bus { + struct nvdimm_bus_descriptor *nd_desc; + wait_queue_head_t wait; + struct list_head list; + struct device dev; + int id; + int probe_active; + atomic_t ioctl_active; + struct list_head mapping_list; + struct mutex reconfig_mutex; + struct badrange badrange; +}; + +struct nvdimm_key_data { + u8 data[32]; +}; + +enum nvdimm_passphrase_type { + NVDIMM_USER = 0, + NVDIMM_MASTER = 1, +}; + +struct nvdimm_security_ops { + long unsigned int (*get_flags)(struct nvdimm *, enum nvdimm_passphrase_type); + int (*freeze)(struct nvdimm *); + int (*change_key)(struct nvdimm *, const struct nvdimm_key_data *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*unlock)(struct nvdimm *, const struct nvdimm_key_data *); + int (*disable)(struct nvdimm *, const struct nvdimm_key_data *); + int (*erase)(struct nvdimm *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*overwrite)(struct nvdimm *, const struct nvdimm_key_data *); + int (*query_overwrite)(struct nvdimm *); +}; + +enum nvdimm_fwa_trigger { + NVDIMM_FWA_ARM = 0, + NVDIMM_FWA_DISARM = 1, +}; + +enum nvdimm_fwa_result { + NVDIMM_FWA_RESULT_INVALID = 0, + NVDIMM_FWA_RESULT_NONE = 1, + NVDIMM_FWA_RESULT_SUCCESS = 2, + NVDIMM_FWA_RESULT_NOTSTAGED = 3, + NVDIMM_FWA_RESULT_NEEDRESET = 4, + NVDIMM_FWA_RESULT_FAIL = 5, +}; + +struct nvdimm_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm *); + enum nvdimm_fwa_result (*activate_result)(struct nvdimm *); + int (*arm)(struct nvdimm *, enum nvdimm_fwa_trigger); +}; + +enum { + ND_CMD_IMPLEMENTED = 0, + ND_CMD_ARS_CAP = 1, + ND_CMD_ARS_START = 2, + ND_CMD_ARS_STATUS = 3, + ND_CMD_CLEAR_ERROR = 4, + ND_CMD_SMART = 1, + ND_CMD_SMART_THRESHOLD = 2, + ND_CMD_DIMM_FLAGS = 3, + ND_CMD_GET_CONFIG_SIZE = 4, + ND_CMD_GET_CONFIG_DATA = 5, + ND_CMD_SET_CONFIG_DATA = 6, + ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7, + ND_CMD_VENDOR_EFFECT_LOG = 8, + ND_CMD_VENDOR = 9, + ND_CMD_CALL = 10, +}; + +enum { + NSINDEX_SIG_LEN = 16, + NSINDEX_ALIGN = 256, + NSINDEX_SEQ_MASK = 3, + NSLABEL_UUID_LEN = 16, + NSLABEL_NAME_LEN = 64, + NSLABEL_FLAG_ROLABEL = 1, + NSLABEL_FLAG_LOCAL = 2, + NSLABEL_FLAG_BTT = 4, + NSLABEL_FLAG_UPDATING = 8, + BTT_ALIGN = 4096, + BTTINFO_SIG_LEN = 16, + BTTINFO_UUID_LEN = 16, + BTTINFO_FLAG_ERROR = 1, + BTTINFO_MAJOR_VERSION = 1, + ND_LABEL_MIN_SIZE = 1024, + ND_LABEL_ID_SIZE = 50, + ND_NSINDEX_INIT = 1, +}; + +struct nvdimm_map { + struct nvdimm_bus *nvdimm_bus; + struct list_head list; + resource_size_t offset; + long unsigned int flags; + size_t size; + union { + void *mem; + void *iomem; + }; + struct kref kref; +}; + +struct badrange_entry { + u64 start; + u64 length; + struct list_head list; +}; + +struct nd_cmd_desc { + int in_num; + int out_num; + u32 in_sizes[5]; + int out_sizes[5]; +}; + +struct nd_interleave_set { + u64 cookie1; + u64 cookie2; + u64 altcookie; + guid_t type_guid; +}; + +struct nvdimm_drvdata; + +struct nd_mapping { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; + struct list_head labels; + struct mutex lock; + struct nvdimm_drvdata *ndd; +}; + +struct nd_percpu_lane; + +struct nd_region { + struct device dev; + struct ida ns_ida; + struct ida btt_ida; + struct ida pfn_ida; + struct ida dax_ida; + long unsigned int flags; + struct device *ns_seed; + struct device *btt_seed; + struct device *pfn_seed; + struct device *dax_seed; + long unsigned int align; + u16 ndr_mappings; + u64 ndr_size; + u64 ndr_start; + int id; + int num_lanes; + int ro; + int numa_node; + int target_node; + void *provider_data; + struct kernfs_node *bb_state; + struct badblocks bb; + struct nd_interleave_set *nd_set; + struct nd_percpu_lane *lane; + int (*flush)(struct nd_region *, struct bio *); + struct nd_mapping mapping[0]; +}; + +struct nd_cmd_get_config_size { + __u32 status; + __u32 config_size; + __u32 max_xfer; +}; + +struct nd_cmd_set_config_hdr { + __u32 in_offset; + __u32 in_length; + __u8 in_buf[0]; +}; + +struct nd_cmd_vendor_hdr { + __u32 opcode; + __u32 in_length; + __u8 in_buf[0]; +}; + +struct nd_cmd_ars_cap { + __u64 address; + __u64 length; + __u32 status; + __u32 max_ars_out; + __u32 clear_err_unit; + __u16 flags; + __u16 reserved; +}; + +struct nd_cmd_clear_error { + __u64 address; + __u64 length; + __u32 status; + __u8 reserved[4]; + __u64 cleared; +}; + +struct nd_cmd_pkg { + __u64 nd_family; + __u64 nd_command; + __u32 nd_size_in; + __u32 nd_size_out; + __u32 nd_reserved2[9]; + __u32 nd_fw_size; + unsigned char nd_payload[0]; +}; + +enum nvdimm_event { + NVDIMM_REVALIDATE_POISON = 0, + NVDIMM_REVALIDATE_REGION = 1, +}; + +enum nvdimm_claim_class { + NVDIMM_CCLASS_NONE = 0, + NVDIMM_CCLASS_BTT = 1, + NVDIMM_CCLASS_BTT2 = 2, + NVDIMM_CCLASS_PFN = 3, + NVDIMM_CCLASS_DAX = 4, + NVDIMM_CCLASS_UNKNOWN = 5, +}; + +struct nd_device_driver { + struct device_driver drv; + long unsigned int type; + int (*probe)(struct device *); + void (*remove)(struct device *); + void (*shutdown)(struct device *); + void (*notify)(struct device *, enum nvdimm_event); +}; + +struct nd_namespace_common { + int force_raw; + struct device dev; + struct device *claim; + enum nvdimm_claim_class claim_class; + int (*rw_bytes)(struct nd_namespace_common *, resource_size_t, void *, size_t, int, long unsigned int); +}; + +struct nd_namespace_io { + struct nd_namespace_common common; + struct resource res; + resource_size_t size; + void *addr; + struct badblocks bb; +}; + +struct nvdimm_drvdata { + struct device *dev; + int nslabel_size; + struct nd_cmd_get_config_size nsarea; + void *data; + int ns_current; + int ns_next; + struct resource dpa; + struct kref kref; +}; + +struct nd_percpu_lane { + int count; + spinlock_t lock; +}; + +struct btt; + +struct nd_btt { + struct device dev; + struct nd_namespace_common *ndns; + struct btt *btt; + long unsigned int lbasize; + u64 size; + u8 *uuid; + int id; + int initial_offset; + u16 version_major; + u16 version_minor; +}; + +enum nd_pfn_mode { + PFN_MODE_NONE = 0, + PFN_MODE_RAM = 1, + PFN_MODE_PMEM = 2, +}; + +struct nd_pfn_sb; + +struct nd_pfn { + int id; + u8 *uuid; + struct device dev; + long unsigned int align; + long unsigned int npfns; + enum nd_pfn_mode mode; + struct nd_pfn_sb *pfn_sb; + struct nd_namespace_common *ndns; +}; + +struct nd_pfn_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le64 dataoff; + __le64 npfns; + __le32 mode; + __le32 start_pad; + __le32 end_trunc; + __le32 align; + __le32 page_size; + __le16 page_struct_size; + u8 padding[3994]; + __le64 checksum; +}; + +struct nd_dax { + struct nd_pfn nd_pfn; +}; + +enum nd_async_mode { + ND_SYNC = 0, + ND_ASYNC = 1, +}; + +struct clear_badblocks_context { + resource_size_t phys; + resource_size_t cleared; +}; + +enum nd_ioctl_mode { + BUS_IOCTL = 0, + DIMM_IOCTL = 1, +}; + +struct nd_cmd_get_config_data_hdr { + __u32 in_offset; + __u32 in_length; + __u32 status; + __u8 out_buf[0]; +}; + +struct nd_blk_region { + int (*enable)(struct nvdimm_bus *, struct device *); + int (*do_io)(struct nd_blk_region *, resource_size_t, void *, u64, int); + void *blk_provider_data; + struct nd_region nd_region; +}; + +enum nvdimm_security_bits { + NVDIMM_SECURITY_DISABLED = 0, + NVDIMM_SECURITY_UNLOCKED = 1, + NVDIMM_SECURITY_LOCKED = 2, + NVDIMM_SECURITY_FROZEN = 3, + NVDIMM_SECURITY_OVERWRITE = 4, +}; + +struct nd_label_id { + char id[50]; +}; + +struct blk_alloc_info { + struct nd_mapping *nd_mapping; + resource_size_t available; + resource_size_t busy; + struct resource *res; +}; + +enum nd_driver_flags { + ND_DRIVER_DIMM = 2, + ND_DRIVER_REGION_PMEM = 4, + ND_DRIVER_REGION_BLK = 8, + ND_DRIVER_NAMESPACE_IO = 16, + ND_DRIVER_NAMESPACE_PMEM = 32, + ND_DRIVER_NAMESPACE_BLK = 64, + ND_DRIVER_DAX_PMEM = 128, +}; + +struct nd_mapping_desc { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; +}; + +struct nd_region_desc { + struct resource *res; + struct nd_mapping_desc *mapping; + u16 num_mappings; + const struct attribute_group **attr_groups; + struct nd_interleave_set *nd_set; + void *provider_data; + int num_lanes; + int numa_node; + int target_node; + long unsigned int flags; + struct device_node *of_node; + int (*flush)(struct nd_region *, struct bio *); +}; + +struct nd_blk_region_desc { + int (*enable)(struct nvdimm_bus *, struct device *); + int (*do_io)(struct nd_blk_region *, resource_size_t, void *, u64, int); + struct nd_region_desc ndr_desc; +}; + +struct nd_namespace_index { + u8 sig[16]; + u8 flags[3]; + u8 labelsize; + __le32 seq; + __le64 myoff; + __le64 mysize; + __le64 otheroff; + __le64 labeloff; + __le32 nslot; + __le16 major; + __le16 minor; + __le64 checksum; + u8 free[0]; +}; + +struct nd_namespace_label { + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nlabel; + __le16 position; + __le64 isetcookie; + __le64 lbasize; + __le64 dpa; + __le64 rawsize; + __le32 slot; + u8 align; + u8 reserved[3]; + guid_t type_guid; + guid_t abstraction_guid; + u8 reserved2[88]; + __le64 checksum; +}; + +enum { + ND_MAX_LANES = 256, + INT_LBASIZE_ALIGNMENT = 64, + NVDIMM_IO_ATOMIC = 1, +}; + +struct nd_region_data { + int ns_count; + int ns_active; + unsigned int hints_shift; + void *flush_wpq[0]; +}; + +struct nd_label_ent { + struct list_head list; + long unsigned int flags; + struct nd_namespace_label *label; +}; + +struct conflict_context { + struct nd_region *nd_region; + resource_size_t start; + resource_size_t size; +}; + +enum { + ND_MIN_NAMESPACE_SIZE = 4096, +}; + +struct nd_namespace_pmem { + struct nd_namespace_io nsio; + long unsigned int lbasize; + char *alt_name; + u8 *uuid; + int id; +}; + +struct nd_namespace_blk { + struct nd_namespace_common common; + char *alt_name; + u8 *uuid; + int id; + long unsigned int lbasize; + resource_size_t size; + int num_resources; + struct resource **res; +}; + +enum nd_label_flags { + ND_LABEL_REAP = 0, +}; + +enum alloc_loc { + ALLOC_ERR = 0, + ALLOC_BEFORE = 1, + ALLOC_MID = 2, + ALLOC_AFTER = 3, +}; + +struct btt { + struct gendisk *btt_disk; + struct list_head arena_list; + struct dentry *debugfs_dir; + struct nd_btt *nd_btt; + u64 nlba; + long long unsigned int rawsize; + u32 lbasize; + u32 sector_size; + struct nd_region *nd_region; + struct mutex init_lock; + int init_state; + int num_arenas; + struct badblocks *phys_bb; +}; + +struct nd_gen_sb { + char reserved[4088]; + __le64 checksum; +}; + +struct btt_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le32 external_lbasize; + __le32 external_nlba; + __le32 internal_lbasize; + __le32 internal_nlba; + __le32 nfree; + __le32 infosize; + __le64 nextoff; + __le64 dataoff; + __le64 mapoff; + __le64 logoff; + __le64 info2off; + u8 padding[3968]; + __le64 checksum; +}; + +enum nvdimmsec_op_ids { + OP_FREEZE = 0, + OP_DISABLE = 1, + OP_UPDATE = 2, + OP_ERASE = 3, + OP_OVERWRITE = 4, + OP_MASTER_UPDATE = 5, + OP_MASTER_ERASE = 6, +}; + +struct dax_operations { + long int (*direct_access)(struct dax_device *, long unsigned int, long int, void **, pfn_t *); + bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t); + size_t (*copy_from_iter)(struct dax_device *, long unsigned int, void *, size_t, struct iov_iter *); + size_t (*copy_to_iter)(struct dax_device *, long unsigned int, void *, size_t, struct iov_iter *); + int (*zero_page_range)(struct dax_device *, long unsigned int, size_t); +}; + +struct dax_device { + struct hlist_node list; + struct inode inode; + struct cdev cdev; + const char *host; + void *private; + long unsigned int flags; + const struct dax_operations *ops; +}; + +enum dax_device_flags { + DAXDEV_ALIVE = 0, + DAXDEV_WRITE_CACHE = 1, + DAXDEV_SYNC = 2, +}; + +struct dax_region { + int id; + int target_node; + struct kref kref; + struct device *dev; + unsigned int align; + struct ida ida; + struct resource res; + struct device *seed; + struct device *youngest; +}; + +struct dax_mapping { + struct device dev; + int range_id; + int id; +}; + +struct dev_dax_range { + long unsigned int pgoff; + struct range range; + struct dax_mapping *mapping; +}; + +struct dev_dax { + struct dax_region *region; + struct dax_device *dax_dev; + unsigned int align; + int target_node; + bool dyn_id; + int id; + struct ida ida; + struct device dev; + struct dev_pagemap *pgmap; + int nr_range; + struct dev_dax_range *ranges; +}; + +enum dev_dax_subsys { + DEV_DAX_BUS = 0, + DEV_DAX_CLASS = 1, +}; + +struct dev_dax_data { + struct dax_region *dax_region; + struct dev_pagemap *pgmap; + enum dev_dax_subsys subsys; + resource_size_t size; + int id; +}; + +struct dax_device_driver { + struct device_driver drv; + struct list_head ids; + int match_always; + int (*probe)(struct dev_dax *); + void (*remove)(struct dev_dax *); +}; + +struct dax_id { + struct list_head list; + char dev_name[30]; +}; + +enum id_action { + ID_REMOVE = 0, + ID_ADD = 1, +}; + +struct memregion_info { + int target_node; +}; + +struct seqcount_ww_mutex { + seqcount_t seqcount; +}; + +typedef struct seqcount_ww_mutex seqcount_ww_mutex_t; + +struct dma_buf_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; +}; + +struct dma_fence_ops; + +struct dma_fence { + spinlock_t *lock; + const struct dma_fence_ops *ops; + union { + struct list_head cb_list; + ktime_t timestamp; + struct callback_head rcu; + }; + u64 context; + u64 seqno; + long unsigned int flags; + struct kref refcount; + int error; +}; + +struct dma_fence_ops { + bool use_64bit_seqno; + const char * (*get_driver_name)(struct dma_fence *); + const char * (*get_timeline_name)(struct dma_fence *); + bool (*enable_signaling)(struct dma_fence *); + bool (*signaled)(struct dma_fence *); + long int (*wait)(struct dma_fence *, bool, long int); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); +}; + +enum dma_fence_flag_bits { + DMA_FENCE_FLAG_SIGNALED_BIT = 0, + DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, + DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, + DMA_FENCE_FLAG_USER_BITS = 3, +}; + +struct dma_fence_cb; + +typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); + +struct dma_fence_cb { + struct list_head node; + dma_fence_func_t func; +}; + +struct dma_buf; + +struct dma_buf_attachment; + +struct dma_buf_ops { + bool cache_sgt_mapping; + int (*attach)(struct dma_buf *, struct dma_buf_attachment *); + void (*detach)(struct dma_buf *, struct dma_buf_attachment *); + int (*pin)(struct dma_buf_attachment *); + void (*unpin)(struct dma_buf_attachment *); + struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction); + void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction); + void (*release)(struct dma_buf *); + int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction); + int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction); + int (*mmap)(struct dma_buf *, struct vm_area_struct *); + int (*vmap)(struct dma_buf *, struct dma_buf_map *); + void (*vunmap)(struct dma_buf *, struct dma_buf_map *); +}; + +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; +}; + +struct dma_resv; + +struct dma_buf { + size_t size; + struct file *file; + struct list_head attachments; + const struct dma_buf_ops *ops; + struct mutex lock; + unsigned int vmapping_counter; + struct dma_buf_map vmap_ptr; + const char *exp_name; + const char *name; + spinlock_t name_lock; + struct module *owner; + struct list_head list_node; + void *priv; + struct dma_resv *resv; + wait_queue_head_t poll; + struct dma_buf_poll_cb_t cb_in; + struct dma_buf_poll_cb_t cb_out; +}; + +struct dma_buf_attach_ops; + +struct dma_buf_attachment { + struct dma_buf *dmabuf; + struct device *dev; + struct list_head node; + struct sg_table *sgt; + enum dma_data_direction dir; + bool peer2peer; + const struct dma_buf_attach_ops *importer_ops; + void *importer_priv; + void *priv; +}; + +struct dma_resv_list; + +struct dma_resv { + struct ww_mutex lock; + seqcount_ww_mutex_t seq; + struct dma_fence *fence_excl; + struct dma_resv_list *fence; +}; + +struct dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); +}; + +struct dma_buf_export_info { + const char *exp_name; + struct module *owner; + const struct dma_buf_ops *ops; + size_t size; + int flags; + struct dma_resv *resv; + void *priv; +}; + +struct dma_resv_list { + struct callback_head rcu; + u32 shared_count; + u32 shared_max; + struct dma_fence *shared[0]; +}; + +struct dma_buf_sync { + __u64 flags; +}; + +struct dma_buf_list { + struct list_head head; + struct mutex lock; +}; + +struct trace_event_raw_dma_fence { + struct trace_entry ent; + u32 __data_loc_driver; + u32 __data_loc_timeline; + unsigned int context; + unsigned int seqno; + char __data[0]; +}; + +struct trace_event_data_offsets_dma_fence { + u32 driver; + u32 timeline; +}; + +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); + +typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); + +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; +}; + +struct dma_fence_array; + +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; +}; + +struct dma_fence_array { + struct dma_fence base; + spinlock_t lock; + unsigned int num_fences; + atomic_t num_pending; + struct dma_fence **fences; + struct irq_work work; +}; + +struct dma_fence_chain { + struct dma_fence base; + struct dma_fence *prev; + u64 prev_seqno; + struct dma_fence *fence; + union { + struct dma_fence_cb cb; + struct irq_work work; + }; + spinlock_t lock; +}; + +enum seqno_fence_condition { + SEQNO_FENCE_WAIT_GEQUAL = 0, + SEQNO_FENCE_WAIT_NONZERO = 1, +}; + +struct seqno_fence { + struct dma_fence base; + const struct dma_fence_ops *ops; + struct dma_buf *sync_buf; + uint32_t seqno_ofs; + enum seqno_fence_condition condition; +}; + +struct dma_heap; + +struct dma_heap_ops { + struct dma_buf * (*allocate)(struct dma_heap *, long unsigned int, long unsigned int, long unsigned int); +}; + +struct dma_heap { + const char *name; + const struct dma_heap_ops *ops; + void *priv; + dev_t heap_devt; + struct list_head list; + struct cdev heap_cdev; +}; + +struct dma_heap_export_info { + const char *name; + const struct dma_heap_ops *ops; + void *priv; +}; + +struct dma_heap_allocation_data { + __u64 len; + __u32 fd; + __u32 fd_flags; + __u64 heap_flags; +}; + +struct system_heap_buffer { + struct dma_heap *heap; + struct list_head attachments; + struct mutex lock; + long unsigned int len; + struct sg_table sg_table; + int vmap_cnt; + void *vaddr; +}; + +struct dma_heap_attachment { + struct device *dev; + struct sg_table *table; + struct list_head list; + bool mapped; +}; + +struct sync_file { + struct file *file; + char user_name[32]; + struct list_head sync_file_list; + wait_queue_head_t wq; + long unsigned int flags; + struct dma_fence *fence; + struct dma_fence_cb cb; +}; + +struct sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; +}; + +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; +}; + +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; +}; + +struct sync_timeline { + struct kref kref; + char name[32]; + u64 context; + int value; + struct rb_root pt_tree; + struct list_head pt_list; + spinlock_t lock; + struct list_head sync_timeline_list; +}; + +struct sync_pt { + struct dma_fence base; + struct list_head link; + struct rb_node node; +}; + +struct trace_event_raw_sync_timeline { + struct trace_entry ent; + u32 __data_loc_name; + u32 value; + char __data[0]; +}; + +struct trace_event_data_offsets_sync_timeline { + u32 name; +}; + +typedef void (*btf_trace_sync_timeline)(void *, struct sync_timeline *); + +struct sw_sync_create_fence_data { + __u32 value; + char name[32]; + __s32 fence; +}; + +struct udmabuf_create { + __u32 memfd; + __u32 flags; + __u64 offset; + __u64 size; +}; + +struct udmabuf_create_item { + __u32 memfd; + __u32 __pad; + __u64 offset; + __u64 size; +}; + +struct udmabuf_create_list { + __u32 flags; + __u32 count; + struct udmabuf_create_item list[0]; +}; + +struct udmabuf { + long unsigned int pagecount; + struct page **pages; + struct sg_table *sg; + struct miscdevice *device; +}; + +enum sam_status { + SAM_STAT_GOOD = 0, + SAM_STAT_CHECK_CONDITION = 2, + SAM_STAT_CONDITION_MET = 4, + SAM_STAT_BUSY = 8, + SAM_STAT_INTERMEDIATE = 16, + SAM_STAT_INTERMEDIATE_CONDITION_MET = 20, + SAM_STAT_RESERVATION_CONFLICT = 24, + SAM_STAT_COMMAND_TERMINATED = 34, + SAM_STAT_TASK_SET_FULL = 40, + SAM_STAT_ACA_ACTIVE = 48, + SAM_STAT_TASK_ABORTED = 64, +}; + +enum scsi_host_status { + DID_OK = 0, + DID_NO_CONNECT = 1, + DID_BUS_BUSY = 2, + DID_TIME_OUT = 3, + DID_BAD_TARGET = 4, + DID_ABORT = 5, + DID_PARITY = 6, + DID_ERROR = 7, + DID_RESET = 8, + DID_BAD_INTR = 9, + DID_PASSTHROUGH = 10, + DID_SOFT_ERROR = 11, + DID_IMM_RETRY = 12, + DID_REQUEUE = 13, + DID_TRANSPORT_DISRUPTED = 14, + DID_TRANSPORT_FAILFAST = 15, + DID_TARGET_FAILURE = 16, + DID_NEXUS_FAILURE = 17, + DID_ALLOC_FAILURE = 18, + DID_MEDIUM_ERROR = 19, + DID_TRANSPORT_MARGINAL = 20, +}; + +enum scsi_disposition { + NEEDS_RETRY = 8193, + SUCCESS = 8194, + FAILED = 8195, + QUEUED = 8196, + SOFT_ERROR = 8197, + ADD_TO_MLQUEUE = 8198, + TIMEOUT_ERROR = 8199, + SCSI_RETURN_NOT_HANDLED = 8200, + FAST_IO_FAIL = 8201, +}; + +typedef __u64 blist_flags_t; + +enum scsi_device_state { + SDEV_CREATED = 1, + SDEV_RUNNING = 2, + SDEV_CANCEL = 3, + SDEV_DEL = 4, + SDEV_QUIESCE = 5, + SDEV_OFFLINE = 6, + SDEV_TRANSPORT_OFFLINE = 7, + SDEV_BLOCK = 8, + SDEV_CREATED_BLOCK = 9, +}; + +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; +}; + +struct Scsi_Host; + +struct scsi_target; + +struct scsi_device_handler; + +struct scsi_device { + struct Scsi_Host *host; + struct request_queue *request_queue; + struct list_head siblings; + struct list_head same_target_siblings; + struct sbitmap budget_map; + atomic_t device_blocked; + atomic_t restarts; + spinlock_t list_lock; + struct list_head starved_entry; + short unsigned int queue_depth; + short unsigned int max_queue_depth; + short unsigned int last_queue_full_depth; + short unsigned int last_queue_full_count; + long unsigned int last_queue_full_time; + long unsigned int queue_ramp_up_period; + long unsigned int last_queue_ramp_up; + unsigned int id; + unsigned int channel; + u64 lun; + unsigned int manufacturer; + unsigned int sector_size; + void *hostdata; + unsigned char type; + char scsi_level; + char inq_periph_qual; + struct mutex inquiry_mutex; + unsigned char inquiry_len; + unsigned char *inquiry; + const char *vendor; + const char *model; + const char *rev; + struct scsi_vpd *vpd_pg0; + struct scsi_vpd *vpd_pg83; + struct scsi_vpd *vpd_pg80; + struct scsi_vpd *vpd_pg89; + struct scsi_target *sdev_target; + blist_flags_t sdev_bflags; + unsigned int eh_timeout; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int manage_start_stop: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + bool offline_already; + atomic_t disk_events_disable_depth; + long unsigned int supported_events[1]; + long unsigned int pending_events[1]; + struct list_head event_list; + struct work_struct event_work; + unsigned int max_device_blocked; + atomic_t iorequest_cnt; + atomic_t iodone_cnt; + atomic_t ioerr_cnt; + struct device sdev_gendev; + struct device sdev_dev; + struct execute_work ew; + struct work_struct requeue_work; + struct scsi_device_handler *handler; + void *handler_data; + size_t dma_drain_len; + void *dma_drain_buf; + unsigned int sg_timeout; + unsigned int sg_reserved_size; + struct bsg_device *bsg_dev; + unsigned char access_state; + struct mutex state_mutex; + enum scsi_device_state sdev_state; + struct task_struct *quiesced_by; + long unsigned int sdev_data[0]; +}; + +enum scsi_host_state { + SHOST_CREATED = 1, + SHOST_RUNNING = 2, + SHOST_CANCEL = 3, + SHOST_DEL = 4, + SHOST_RECOVERY = 5, + SHOST_CANCEL_RECOVERY = 6, + SHOST_DEL_RECOVERY = 7, +}; + +struct scsi_host_template; + +struct scsi_transport_template; + +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + long unsigned int last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + short unsigned int max_cmd_len; + int this_id; + int can_queue; + short int cmd_per_lun; + short unsigned int sg_tablesize; + short unsigned int sg_prot_tablesize; + unsigned int max_sectors; + unsigned int max_segment_size; + long unsigned int dma_boundary; + long unsigned int virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + char work_q_name[20]; + struct workqueue_struct *work_q; + struct workqueue_struct *tmf_work_q; + unsigned int max_host_blocked; + unsigned int prot_capabilities; + unsigned char prot_guard_type; + long unsigned int base; + long unsigned int io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + long unsigned int hostdata[0]; +}; + +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, +}; + +struct scsi_target { + struct scsi_device *starget_sdev_user; + struct list_head siblings; + struct list_head devices; + struct device dev; + struct kref reap_ref; + unsigned int channel; + unsigned int id; + unsigned int create: 1; + unsigned int single_lun: 1; + unsigned int pdt_1f_for_no_lun: 1; + unsigned int no_report_luns: 1; + unsigned int expecting_lun_change: 1; + atomic_t target_busy; + atomic_t target_blocked; + unsigned int can_queue; + unsigned int max_target_blocked; + char scsi_level; + enum scsi_target_state state; + void *hostdata; + long unsigned int starget_data[0]; +}; + +struct scsi_host_cmd_pool; + +struct scsi_cmnd; + +struct scsi_host_template { + unsigned int cmd_size; + int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); + void (*commit_rqs)(struct Scsi_Host *, u16); + struct module *module; + const char *name; + const char * (*info)(struct Scsi_Host *); + int (*ioctl)(struct scsi_device *, unsigned int, void *); + int (*compat_ioctl)(struct scsi_device *, unsigned int, void *); + int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); + int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); + int (*eh_abort_handler)(struct scsi_cmnd *); + int (*eh_device_reset_handler)(struct scsi_cmnd *); + int (*eh_target_reset_handler)(struct scsi_cmnd *); + int (*eh_bus_reset_handler)(struct scsi_cmnd *); + int (*eh_host_reset_handler)(struct scsi_cmnd *); + int (*slave_alloc)(struct scsi_device *); + int (*slave_configure)(struct scsi_device *); + void (*slave_destroy)(struct scsi_device *); + int (*target_alloc)(struct scsi_target *); + void (*target_destroy)(struct scsi_target *); + int (*scan_finished)(struct Scsi_Host *, long unsigned int); + void (*scan_start)(struct Scsi_Host *); + int (*change_queue_depth)(struct scsi_device *, int); + int (*map_queues)(struct Scsi_Host *); + int (*mq_poll)(struct Scsi_Host *, unsigned int); + bool (*dma_need_drain)(struct request *); + int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *); + void (*unlock_native_capacity)(struct scsi_device *); + int (*show_info)(struct seq_file *, struct Scsi_Host *); + int (*write_info)(struct Scsi_Host *, char *, int); + enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *); + bool (*eh_should_retry_cmd)(struct scsi_cmnd *); + int (*host_reset)(struct Scsi_Host *, int); + const char *proc_name; + struct proc_dir_entry *proc_dir; + int can_queue; + int this_id; + short unsigned int sg_tablesize; + short unsigned int sg_prot_tablesize; + unsigned int max_sectors; + unsigned int max_segment_size; + long unsigned int dma_boundary; + long unsigned int virt_boundary_mask; + short int cmd_per_lun; + unsigned char present; + int tag_alloc_policy; + unsigned int track_queue_depth: 1; + unsigned int supported_mode: 2; + unsigned int emulated: 1; + unsigned int skip_settle_delay: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int max_host_blocked; + struct device_attribute **shost_attrs; + struct device_attribute **sdev_attrs; + const struct attribute_group **sdev_groups; + u64 vendor_id; + struct scsi_host_cmd_pool *cmd_pool; + int rpm_autosuspend_delay; +}; + +struct scsi_request { + unsigned char __cmd[16]; + unsigned char *cmd; + short unsigned int cmd_len; + int result; + unsigned int sense_len; + unsigned int resid_len; + int retries; + void *sense; +}; + +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +}; + +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; +}; + +struct scsi_pointer { + char *ptr; + int this_residual; + struct scatterlist *buffer; + int buffers_residual; + dma_addr_t dma_handle; + volatile int Status; + volatile int Message; + volatile int have_data_in; + volatile int sent_command; + volatile int phase; +}; + +struct scsi_cmnd { + struct scsi_request req; + struct scsi_device *device; + struct list_head eh_entry; + struct delayed_work abort_work; + struct callback_head rcu; + int eh_eflags; + int budget_token; + long unsigned int jiffies_at_alloc; + int retries; + int allowed; + unsigned char prot_op; + unsigned char prot_type; + unsigned char prot_flags; + enum scsi_cmnd_submitter submitter; + short unsigned int cmd_len; + enum dma_data_direction sc_data_direction; + unsigned char *cmnd; + struct scsi_data_buffer sdb; + struct scsi_data_buffer *prot_sdb; + unsigned int underflow; + unsigned int transfersize; + unsigned char *sense_buffer; + void (*scsi_done)(struct scsi_cmnd *); + struct scsi_pointer SCp; + unsigned char *host_scribble; + int result; + int flags; + long unsigned int state; + unsigned int extra_len; +}; + +enum scsi_prot_operations { + SCSI_PROT_NORMAL = 0, + SCSI_PROT_READ_INSERT = 1, + SCSI_PROT_WRITE_STRIP = 2, + SCSI_PROT_READ_STRIP = 3, + SCSI_PROT_WRITE_INSERT = 4, + SCSI_PROT_READ_PASS = 5, + SCSI_PROT_WRITE_PASS = 6, +}; + +struct scsi_driver { + struct device_driver gendrv; + void (*rescan)(struct device *); + blk_status_t (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); + int (*done)(struct scsi_cmnd *); + int (*eh_action)(struct scsi_cmnd *, int); + void (*eh_reset)(struct scsi_cmnd *); +}; + +struct trace_event_raw_scsi_dispatch_cmd_start { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + unsigned int opcode; + unsigned int cmd_len; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_dispatch_cmd_error { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int rtn; + unsigned int opcode; + unsigned int cmd_len; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; +}; + +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; +}; + +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; +}; + +struct trace_event_data_offsets_scsi_eh_wakeup {}; + +typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); + +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); + +typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); + +struct scsi_transport_template { + struct transport_container host_attrs; + struct transport_container target_attrs; + struct transport_container device_attrs; + int (*user_scan)(struct Scsi_Host *, uint, uint, u64); + int device_size; + int device_private_offset; + int target_size; + int target_private_offset; + int host_size; + unsigned int create_work_queue: 1; + void (*eh_strategy_handler)(struct Scsi_Host *); +}; + +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *, bool); + void *priv; +}; + +struct request_sense; + +struct cdrom_generic_command { + unsigned char cmd[12]; + unsigned char *buffer; + unsigned int buflen; + int stat; + struct request_sense *sense; + unsigned char data_direction; + int quiet; + int timeout; + union { + void *reserved[1]; + void *unused; + }; +}; + +struct request_sense { + __u8 error_code: 7; + __u8 valid: 1; + __u8 segment_number; + __u8 sense_key: 4; + __u8 reserved2: 1; + __u8 ili: 1; + __u8 reserved1: 2; + __u8 information[4]; + __u8 add_sense_len; + __u8 command_info[4]; + __u8 asc; + __u8 ascq; + __u8 fruc; + __u8 sks[3]; + __u8 asb[46]; +}; + +enum scsi_msg_byte { + COMMAND_COMPLETE = 0, + EXTENDED_MESSAGE = 1, + SAVE_POINTERS = 2, + RESTORE_POINTERS = 3, + DISCONNECT = 4, + INITIATOR_ERROR = 5, + ABORT_TASK_SET = 6, + MESSAGE_REJECT = 7, + NOP___2 = 8, + MSG_PARITY_ERROR = 9, + LINKED_CMD_COMPLETE = 10, + LINKED_FLG_CMD_COMPLETE = 11, + TARGET_RESET = 12, + ABORT_TASK = 13, + CLEAR_TASK_SET = 14, + INITIATE_RECOVERY = 15, + RELEASE_RECOVERY = 16, + TERMINATE_IO_PROC = 17, + CLEAR_ACA = 22, + LOGICAL_UNIT_RESET = 23, + SIMPLE_QUEUE_TAG = 32, + HEAD_OF_QUEUE_TAG = 33, + ORDERED_QUEUE_TAG = 34, + IGNORE_WIDE_RESIDUE = 35, + ACA = 36, + QAS_REQUEST = 85, + BUS_DEVICE_RESET = 12, + ABORT = 6, +}; + +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +}; + +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +}; + +struct sg_io_hdr { + int interface_id; + int dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + short unsigned int iovec_count; + unsigned int dxfer_len; + void *dxferp; + unsigned char *cmdp; + void *sbp; + unsigned int timeout; + unsigned int flags; + int pack_id; + void *usr_ptr; + unsigned char status; + unsigned char masked_status; + unsigned char msg_status; + unsigned char sb_len_wr; + short unsigned int host_status; + short unsigned int driver_status; + int resid; + unsigned int duration; + unsigned int info; +}; + +struct compat_sg_io_hdr { + compat_int_t interface_id; + compat_int_t dxfer_direction; + unsigned char cmd_len; + unsigned char mx_sb_len; + short unsigned int iovec_count; + compat_uint_t dxfer_len; + compat_uint_t dxferp; + compat_uptr_t cmdp; + compat_uptr_t sbp; + compat_uint_t timeout; + compat_uint_t flags; + compat_int_t pack_id; + compat_uptr_t usr_ptr; + unsigned char status; + unsigned char masked_status; + unsigned char msg_status; + unsigned char sb_len_wr; + short unsigned int host_status; + short unsigned int driver_status; + compat_int_t resid; + compat_uint_t duration; + compat_uint_t info; +}; + +struct compat_cdrom_generic_command { + unsigned char cmd[12]; + compat_caddr_t buffer; + compat_uint_t buflen; + compat_int_t stat; + compat_caddr_t sense; + unsigned char data_direction; + unsigned char pad[3]; + compat_int_t quiet; + compat_int_t timeout; + compat_caddr_t unused; +}; + +enum { + OMAX_SB_LEN = 16, +}; + +typedef void (*activate_complete)(void *, int); + +struct scsi_device_handler { + struct list_head list; + struct module *module; + const char *name; + enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); + int (*attach)(struct scsi_device *); + void (*detach)(struct scsi_device *); + int (*activate)(struct scsi_device *, activate_complete, void *); + blk_status_t (*prep_fn)(struct scsi_device *, struct request *); + int (*set_params)(struct scsi_device *, const char *); + void (*rescan)(struct scsi_device *); +}; + +struct scsi_eh_save { + int result; + unsigned int resid_len; + int eh_eflags; + enum dma_data_direction data_direction; + unsigned int underflow; + unsigned char cmd_len; + unsigned char prot_op; + unsigned char *cmnd; + struct scsi_data_buffer sdb; + unsigned char eh_cmnd[16]; + struct scatterlist sense_sgl; +}; + +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; +}; + +struct scsi_event { + enum scsi_device_event evt_type; + struct list_head node; +}; + +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, +}; + +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_RETRY = 2, + ACTION_DELAYED_RETRY = 3, +}; + +struct value_name_pair; + +struct sa_name_list { + int opcode; + const struct value_name_pair *arr; + int arr_sz; +}; + +struct value_name_pair { + int value; + const char *name; +}; + +struct error_info { + short unsigned int code12; + short unsigned int size; +}; + +struct error_info2 { + unsigned char code1; + unsigned char code2_min; + unsigned char code2_max; + const char *str; + const char *fmt; +}; + +struct scsi_lun { + __u8 scsi_lun[8]; +}; + +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 2500, +}; + +enum scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, +}; + +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; +}; + +enum scsi_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, +}; + +struct scsi_dev_info_list { + struct list_head dev_info_list; + char vendor[8]; + char model[16]; + blist_flags_t flags; + unsigned int compatible; +}; + +struct scsi_dev_info_list_table { + struct list_head node; + struct list_head scsi_dev_info_list; + const char *name; + int key; +}; + +struct double_list { + struct list_head *top; + struct list_head *bottom; +}; + +struct scsi_nl_hdr { + __u8 version; + __u8 transport; + __u16 magic; + __u16 msgtype; + __u16 msglen; +}; + +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; +}; + +enum { + SCSI_DH_OK = 0, + SCSI_DH_DEV_FAILED = 1, + SCSI_DH_DEV_TEMP_BUSY = 2, + SCSI_DH_DEV_UNSUPP = 3, + SCSI_DH_DEVICE_MAX = 4, + SCSI_DH_NOTCONN = 5, + SCSI_DH_CONN_FAILURE = 6, + SCSI_DH_TRANSPORT_MAX = 7, + SCSI_DH_IO = 8, + SCSI_DH_INVALID_IO = 9, + SCSI_DH_RETRY = 10, + SCSI_DH_IMM_RETRY = 11, + SCSI_DH_TIMED_OUT = 12, + SCSI_DH_RES_TEMP_UNAVAIL = 13, + SCSI_DH_DEV_OFFLINED = 14, + SCSI_DH_NOMEM = 15, + SCSI_DH_NOSYS = 16, + SCSI_DH_DRIVER_MAX = 17, +}; + +struct scsi_dh_blist { + const char *vendor; + const char *model; + const char *driver; +}; + +enum scsi_prot_flags { + SCSI_PROT_TRANSFER_PI = 1, + SCSI_PROT_GUARD_CHECK = 2, + SCSI_PROT_REF_CHECK = 4, + SCSI_PROT_REF_INCREMENT = 8, + SCSI_PROT_IP_CHECKSUM = 16, +}; + +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, +}; + +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, +}; + +enum { + SD_LBP_FULL = 0, + SD_LBP_UNMAP = 1, + SD_LBP_WS16 = 2, + SD_LBP_WS10 = 3, + SD_LBP_ZERO = 4, + SD_LBP_DISABLE = 5, +}; + +enum { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, +}; + +struct scsi_disk { + struct scsi_driver *driver; + struct scsi_device *device; + struct device dev; + struct gendisk *disk; + struct opal_dev *opal_dev; + u32 nr_zones; + u32 rev_nr_zones; + u32 zone_blocks; + u32 rev_zone_blocks; + u32 zones_optimal_open; + u32 zones_optimal_nonseq; + u32 zones_max_open; + u32 *zones_wp_offset; + spinlock_t zones_wp_offset_lock; + u32 *rev_wp_offset; + struct mutex rev_mutex; + struct work_struct zone_wp_offset_work; + char *zone_wp_update_buf; + atomic_t openers; + sector_t capacity; + int max_retries; + u32 max_xfer_blocks; + u32 opt_xfer_blocks; + u32 max_ws_blocks; + u32 max_unmap_blocks; + u32 unmap_granularity; + u32 unmap_alignment; + u32 index; + unsigned int physical_block_size; + unsigned int max_medium_access_timeouts; + unsigned int medium_access_timed_out; + u8 media_present; + u8 write_prot; + u8 protection_type; + u8 provisioning_mode; + u8 zeroing_mode; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; +}; + +enum scsi_host_guard_type { + SHOST_DIX_GUARD_CRC = 1, + SHOST_DIX_GUARD_IP = 2, +}; + +enum zbc_zone_type { + ZBC_ZONE_TYPE_CONV = 1, + ZBC_ZONE_TYPE_SEQWRITE_REQ = 2, + ZBC_ZONE_TYPE_SEQWRITE_PREF = 3, +}; + +enum zbc_zone_cond { + ZBC_ZONE_COND_NO_WP = 0, + ZBC_ZONE_COND_EMPTY = 1, + ZBC_ZONE_COND_IMP_OPEN = 2, + ZBC_ZONE_COND_EXP_OPEN = 3, + ZBC_ZONE_COND_CLOSED = 4, + ZBC_ZONE_COND_READONLY = 13, + ZBC_ZONE_COND_FULL = 14, + ZBC_ZONE_COND_OFFLINE = 15, +}; + +enum { + mechtype_caddy = 0, + mechtype_tray = 1, + mechtype_popup = 2, + mechtype_individual_changer = 4, + mechtype_cartridge_changer = 5, +}; + +struct event_header { + __be16 data_len; + __u8 notification_class: 3; + __u8 reserved1: 4; + __u8 nea: 1; + __u8 supp_event_class; +}; + +struct media_event_desc { + __u8 media_event_code: 4; + __u8 reserved1: 4; + __u8 door_open: 1; + __u8 media_present: 1; + __u8 reserved2: 6; + __u8 start_slot; + __u8 end_slot; +}; + +struct scsi_cd { + struct scsi_driver *driver; + unsigned int capacity; + struct scsi_device *device; + unsigned int vendor; + long unsigned int ms_offset; + unsigned int writeable: 1; + unsigned int use: 1; + unsigned int xa_flag: 1; + unsigned int readcd_known: 1; + unsigned int readcd_cdda: 1; + unsigned int media_present: 1; + int tur_mismatch; + bool tur_changed: 1; + bool get_event_changed: 1; + bool ignore_get_event: 1; + struct cdrom_device_info cdi; + struct mutex lock; + struct kref kref; + struct gendisk *disk; +}; + +typedef struct scsi_cd Scsi_CD; + +struct cdrom_ti { + __u8 cdti_trk0; + __u8 cdti_ind0; + __u8 cdti_trk1; + __u8 cdti_ind1; +}; + +struct cdrom_tochdr { + __u8 cdth_trk0; + __u8 cdth_trk1; +}; + +struct cdrom_tocentry { + __u8 cdte_track; + __u8 cdte_adr: 4; + __u8 cdte_ctrl: 4; + __u8 cdte_format; + union cdrom_addr cdte_addr; + __u8 cdte_datamode; +}; + +struct ccs_modesel_head { + __u8 _r1; + __u8 medium; + __u8 _r2; + __u8 block_desc_length; + __u8 density; + __u8 number_blocks_hi; + __u8 number_blocks_med; + __u8 number_blocks_lo; + __u8 _r3; + __u8 block_length_hi; + __u8 block_length_med; + __u8 block_length_lo; +}; + +typedef struct sg_io_hdr sg_io_hdr_t; + +struct sg_scsi_id { + int host_no; + int channel; + int scsi_id; + int lun; + int scsi_type; + short int h_cmd_per_lun; + short int d_queue_depth; + int unused[2]; +}; + +typedef struct sg_scsi_id sg_scsi_id_t; + +struct sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + void *usr_ptr; + unsigned int duration; + int unused; +}; + +typedef struct sg_req_info sg_req_info_t; + +struct sg_header { + int pack_len; + int reply_len; + int pack_id; + int result; + unsigned int twelve_byte: 1; + unsigned int target_status: 5; + unsigned int host_status: 8; + unsigned int driver_status: 8; + unsigned int other_flags: 10; + unsigned char sense_buffer[16]; +}; + +struct sg_scatter_hold { + short unsigned int k_use_sg; + unsigned int sglist_len; + unsigned int bufflen; + struct page **pages; + int page_order; + char dio_in_use; + unsigned char cmd_opcode; +}; + +typedef struct sg_scatter_hold Sg_scatter_hold; + +struct sg_fd; + +struct sg_request { + struct list_head entry; + struct sg_fd *parentfp; + Sg_scatter_hold data; + sg_io_hdr_t header; + unsigned char sense_b[96]; + char res_used; + char orphan; + char sg_io_owned; + char done; + struct request *rq; + struct bio *bio; + struct execute_work ew; +}; + +typedef struct sg_request Sg_request; + +struct sg_device; + +struct sg_fd { + struct list_head sfd_siblings; + struct sg_device *parentdp; + wait_queue_head_t read_wait; + rwlock_t rq_list_lock; + struct mutex f_mutex; + int timeout; + int timeout_user; + Sg_scatter_hold reserve; + struct list_head rq_list; + struct fasync_struct *async_qp; + Sg_request req_arr[16]; + char force_packid; + char cmd_q; + unsigned char next_cmd_len; + char keep_orphan; + char mmap_called; + char res_in_use; + struct kref f_ref; + struct execute_work ew; +}; + +struct sg_device { + struct scsi_device *device; + wait_queue_head_t open_wait; + struct mutex open_rel_lock; + int sg_tablesize; + u32 index; + struct list_head sfds; + rwlock_t sfd_lock; + atomic_t detaching; + bool exclude; + int open_cnt; + char sgdebug; + char name[32]; + struct cdev *cdev; + struct kref d_ref; +}; + +typedef struct sg_fd Sg_fd; + +typedef struct sg_device Sg_device; + +struct compat_sg_req_info { + char req_state; + char orphan; + char sg_io_owned; + char problem; + int pack_id; + compat_uptr_t usr_ptr; + unsigned int duration; + int unused; +}; + +struct sg_proc_deviter { + loff_t index; + size_t max; +}; + +enum { + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = 2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, +}; + +enum ata_prot_flags { + ATA_PROT_FLAG_PIO = 1, + ATA_PROT_FLAG_DMA = 2, + ATA_PROT_FLAG_NCQ = 4, + ATA_PROT_FLAG_ATAPI = 8, + ATA_PROT_UNKNOWN = 255, + ATA_PROT_NODATA = 0, + ATA_PROT_PIO = 1, + ATA_PROT_DMA = 2, + ATA_PROT_NCQ_NODATA = 4, + ATA_PROT_NCQ = 6, + ATAPI_PROT_NODATA = 8, + ATAPI_PROT_PIO = 9, + ATAPI_PROT_DMA = 10, +}; + +struct ata_bmdma_prd { + __le32 addr; + __le32 flags_len; +}; + +enum { + ATA_MSG_DRV = 1, + ATA_MSG_INFO = 2, + ATA_MSG_PROBE = 4, + ATA_MSG_WARN = 8, + ATA_MSG_MALLOC = 16, + ATA_MSG_CTL = 32, + ATA_MSG_INTR = 64, + ATA_MSG_ERR = 128, +}; + +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = 4294967295, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_CFG_MASK = 4095, + ATA_DFLAG_PIO = 4096, + ATA_DFLAG_NCQ_OFF = 8192, + ATA_DFLAG_SLEEPING = 32768, + ATA_DFLAG_DUBIOUS_XFER = 65536, + ATA_DFLAG_NO_UNLOAD = 131072, + ATA_DFLAG_UNLOCK_HPA = 262144, + ATA_DFLAG_NCQ_SEND_RECV = 524288, + ATA_DFLAG_NCQ_PRIO = 1048576, + ATA_DFLAG_NCQ_PRIO_ENABLE = 2097152, + ATA_DFLAG_INIT_MASK = 16777215, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 202899712, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_FAILED = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_BOOT = 30000, + ATA_TMOUT_BOOT_QUICK = 7000, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_PERDEV_MASK = 33, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_PROBE_MAX_TRIES = 3, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 7, + ATA_HORKAGE_DIAGNOSTIC = 1, + ATA_HORKAGE_NODMA = 2, + ATA_HORKAGE_NONCQ = 4, + ATA_HORKAGE_MAX_SEC_128 = 8, + ATA_HORKAGE_BROKEN_HPA = 16, + ATA_HORKAGE_DISABLE = 32, + ATA_HORKAGE_HPA_SIZE = 64, + ATA_HORKAGE_IVB = 256, + ATA_HORKAGE_STUCK_ERR = 512, + ATA_HORKAGE_BRIDGE_OK = 1024, + ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, + ATA_HORKAGE_FIRMWARE_WARN = 4096, + ATA_HORKAGE_1_5_GBPS = 8192, + ATA_HORKAGE_NOSETXFER = 16384, + ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, + ATA_HORKAGE_DUMP_ID = 65536, + ATA_HORKAGE_MAX_SEC_LBA48 = 131072, + ATA_HORKAGE_ATAPI_DMADIR = 262144, + ATA_HORKAGE_NO_NCQ_TRIM = 524288, + ATA_HORKAGE_NOLPM = 1048576, + ATA_HORKAGE_WD_BROKEN_LPM = 2097152, + ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, + ATA_HORKAGE_NO_DMA_LOG = 8388608, + ATA_HORKAGE_NOTRIM = 16777216, + ATA_HORKAGE_MAX_SEC_1024 = 33554432, + ATA_HORKAGE_MAX_TRIM_128M = 67108864, + ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, + ATA_DMA_MASK_ATA = 1, + ATA_DMA_MASK_ATAPI = 2, + ATA_DMA_MASK_CFA = 4, + ATAPI_READ = 0, + ATAPI_WRITE = 1, + ATAPI_READ_CD = 2, + ATAPI_PASS_THRU = 3, + ATAPI_MISC = 4, + ATA_TIMING_SETUP = 1, + ATA_TIMING_ACT8B = 2, + ATA_TIMING_REC8B = 4, + ATA_TIMING_CYC8B = 8, + ATA_TIMING_8BIT = 14, + ATA_TIMING_ACTIVE = 16, + ATA_TIMING_RECOVER = 32, + ATA_TIMING_DMACK_HOLD = 64, + ATA_TIMING_CYCLE = 128, + ATA_TIMING_UDMA = 256, + ATA_TIMING_ALL = 511, + ATA_ACPI_FILTER_SETXFER = 1, + ATA_ACPI_FILTER_LOCK = 2, + ATA_ACPI_FILTER_DIPM = 4, + ATA_ACPI_FILTER_FPDMA_OFFSET = 8, + ATA_ACPI_FILTER_FPDMA_AA = 16, + ATA_ACPI_FILTER_DEFAULT = 7, +}; + +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, +}; + +enum ata_completion_errors { + AC_ERR_OK = 0, + AC_ERR_DEV = 1, + AC_ERR_HSM = 2, + AC_ERR_TIMEOUT = 4, + AC_ERR_MEDIA = 8, + AC_ERR_ATA_BUS = 16, + AC_ERR_HOST_BUS = 32, + AC_ERR_SYSTEM = 64, + AC_ERR_INVALID = 128, + AC_ERR_OTHER = 256, + AC_ERR_NODEV_HINT = 512, + AC_ERR_NCQ = 1024, +}; + +enum ata_lpm_policy { + ATA_LPM_UNKNOWN = 0, + ATA_LPM_MAX_POWER = 1, + ATA_LPM_MED_POWER = 2, + ATA_LPM_MED_POWER_WITH_DIPM = 3, + ATA_LPM_MIN_POWER_WITH_PARTIAL = 4, + ATA_LPM_MIN_POWER = 5, +}; + +struct ata_queued_cmd; + +typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); + +struct ata_taskfile { + long unsigned int flags; + u8 protocol; + u8 ctl; + u8 hob_feature; + u8 hob_nsect; + u8 hob_lbal; + u8 hob_lbam; + u8 hob_lbah; + union { + u8 error; + u8 feature; + }; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; +}; + +struct ata_port; + +struct ata_device; + +struct ata_queued_cmd { + struct ata_port *ap; + struct ata_device *dev; + struct scsi_cmnd *scsicmd; + void (*scsidone)(struct scsi_cmnd *); + struct ata_taskfile tf; + u8 cdb[16]; + long unsigned int flags; + unsigned int tag; + unsigned int hw_tag; + unsigned int n_elem; + unsigned int orig_n_elem; + int dma_dir; + unsigned int sect_size; + unsigned int nbytes; + unsigned int extrabytes; + unsigned int curbytes; + struct scatterlist sgent; + struct scatterlist *sg; + struct scatterlist *cursg; + unsigned int cursg_ofs; + unsigned int err_mask; + struct ata_taskfile result_tf; + ata_qc_cb_t complete_fn; + void *private_data; + void *lldd_task; +}; + +struct ata_link; + +typedef int (*ata_prereset_fn_t)(struct ata_link *, long unsigned int); + +struct ata_eh_info { + struct ata_device *dev; + u32 serror; + unsigned int err_mask; + unsigned int action; + unsigned int dev_action[2]; + unsigned int flags; + unsigned int probe_mask; + char desc[80]; + int desc_len; +}; + +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[14]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + long unsigned int last_reset; +}; + +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; +}; + +struct ata_ering { + int cursor; + struct ata_ering_entry ring[32]; +}; + +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int horkage; + long unsigned int flags; + struct scsi_device *sdev; + void *private_data; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + void *zpodd; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + long unsigned int unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + long unsigned int pio_mask; + long unsigned int mwdma_mask; + long unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + int spdn_cnt; + struct ata_ering ering; + long: 64; +}; + +struct ata_link { + struct ata_port *ap; + int pmp; + struct device tdev; + unsigned int active_tag; + u32 sactive; + unsigned int flags; + u32 saved_scontrol; + unsigned int hw_sata_spd_limit; + unsigned int sata_spd_limit; + unsigned int sata_spd; + enum ata_lpm_policy lpm_policy; + struct ata_eh_info eh_info; + struct ata_eh_context eh_context; + long: 64; + long: 64; + long: 64; + struct ata_device device[2]; + long unsigned int last_lpm_change; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, long unsigned int); + +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); + +enum sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, +}; + +struct ata_ioports { + void *cmd_addr; + void *data_addr; + void *error_addr; + void *feature_addr; + void *nsect_addr; + void *lbal_addr; + void *lbam_addr; + void *lbah_addr; + void *device_addr; + void *status_addr; + void *command_addr; + void *altstatus_addr; + void *ctl_addr; + void *bmdma_addr; + void *scr_addr; +}; + +struct ata_port_operations; + +struct ata_host { + spinlock_t lock; + struct device *dev; + void * const *iomap; + unsigned int n_ports; + unsigned int n_tags; + void *private_data; + struct ata_port_operations *ops; + long unsigned int flags; + struct kref kref; + struct mutex eh_mutex; + struct task_struct *eh_owner; + struct ata_port *simplex_claimed; + struct ata_port *ports[0]; +}; + +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + bool (*qc_fill_rtf)(struct ata_queued_cmd *); + int (*cable_detect)(struct ata_port *); + long unsigned int (*mode_filter)(struct ata_device *, long unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, u16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + void (*phy_reset)(struct ata_port *); + void (*eng_timeout)(struct ata_port *); + const struct ata_port_operations *inherits; +}; + +struct ata_port_stats { + long unsigned int unhandled_irq; + long unsigned int idle_irq; + long unsigned int rw_reqbuf; +}; + +struct ata_acpi_drive { + u32 pio; + u32 dma; +}; + +struct ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; +}; + +struct ata_port { + struct Scsi_Host *scsi_host; + struct ata_port_operations *ops; + spinlock_t *lock; + long unsigned int flags; + unsigned int pflags; + unsigned int print_id; + unsigned int local_port_no; + unsigned int port_no; + struct ata_ioports ioaddr; + u8 ctl; + u8 last_ctl; + struct ata_link *sff_pio_task_link; + struct delayed_work sff_pio_task; + struct ata_bmdma_prd *bmdma_prd; + dma_addr_t bmdma_prd_dma; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + unsigned int cbl; + struct ata_queued_cmd qcmd[33]; + long unsigned int sas_tag_allocated; + u64 qc_active; + int nr_active_links; + unsigned int sas_last_tag; + long: 64; + struct ata_link link; + struct ata_link *slave_link; + int nr_pmp_links; + struct ata_link *pmp_link; + struct ata_link *excl_link; + struct ata_port_stats stats; + struct ata_host *host; + struct device *dev; + struct device tdev; + struct mutex scsi_scan_mutex; + struct delayed_work hotplug_task; + struct delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + u32 msg_enable; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + long unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + long: 0; + u8 sector_buf[512]; +}; + +struct ata_port_info { + long unsigned int flags; + long unsigned int link_flags; + long unsigned int pio_mask; + long unsigned int mwdma_mask; + long unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; +}; + +struct ata_timing { + short unsigned int mode; + short unsigned int setup; + short unsigned int act8b; + short unsigned int rec8b; + short unsigned int cyc8b; + short unsigned int active; + short unsigned int recover; + short unsigned int dmack_hold; + short unsigned int cycle; + short unsigned int udma; +}; + +struct pci_bits { + unsigned int reg; + unsigned int width; + long unsigned int mask; + long unsigned int val; +}; + +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, +}; + +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, +}; + +struct trace_event_raw_ata_qc_issue { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned char cmd; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char feature; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char ctl; + unsigned char proto; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ata_qc_complete_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned char status; + unsigned char dev; + unsigned char lbal; + unsigned char lbam; + unsigned char lbah; + unsigned char nsect; + unsigned char error; + unsigned char hob_lbal; + unsigned char hob_lbam; + unsigned char hob_lbah; + unsigned char hob_nsect; + unsigned char hob_feature; + unsigned char ctl; + long unsigned int flags; + char __data[0]; +}; + +struct trace_event_raw_ata_eh_link_autopsy { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int eh_action; + unsigned int eh_err_mask; + char __data[0]; +}; + +struct trace_event_raw_ata_eh_link_autopsy_qc { + struct trace_entry ent; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int tag; + unsigned int qc_flags; + unsigned int eh_err_mask; + char __data[0]; +}; + +struct trace_event_data_offsets_ata_qc_issue {}; + +struct trace_event_data_offsets_ata_qc_complete_template {}; + +struct trace_event_data_offsets_ata_eh_link_autopsy {}; + +struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; + +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); + +typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); + +typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); + +enum { + ATA_READID_POSTRESET = 1, + ATA_DNXFER_PIO = 0, + ATA_DNXFER_DMA = 1, + ATA_DNXFER_40C = 2, + ATA_DNXFER_FORCE_PIO = 3, + ATA_DNXFER_FORCE_PIO0 = 4, + ATA_DNXFER_QUIET = 2147483648, +}; + +struct ata_force_param { + const char *name; + u8 cbl; + u8 spd_limit; + long unsigned int xfer_mask; + unsigned int horkage_on; + unsigned int horkage_off; + u16 lflags; +}; + +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; +}; + +struct ata_xfer_ent { + int shift; + int bits; + u8 base; +}; + +struct ata_blacklist_entry { + const char *model_num; + const char *model_rev; + long unsigned int horkage; +}; + +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); + +struct ata_scsi_args { + struct ata_device *dev; + u16 *id; + struct scsi_cmnd *cmd; +}; + +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, +}; + +enum { + ATA_EH_SPDN_NCQ_OFF = 1, + ATA_EH_SPDN_SPEED_DOWN = 2, + ATA_EH_SPDN_FALLBACK_TO_PIO = 4, + ATA_EH_SPDN_KEEP_ERRORS = 8, + ATA_EFLAG_IS_IO = 1, + ATA_EFLAG_DUBIOUS_XFER = 2, + ATA_EFLAG_OLD_ER = 2147483648, + ATA_ECAT_NONE = 0, + ATA_ECAT_ATA_BUS = 1, + ATA_ECAT_TOUT_HSM = 2, + ATA_ECAT_UNK_DEV = 3, + ATA_ECAT_DUBIOUS_NONE = 4, + ATA_ECAT_DUBIOUS_ATA_BUS = 5, + ATA_ECAT_DUBIOUS_TOUT_HSM = 6, + ATA_ECAT_DUBIOUS_UNK_DEV = 7, + ATA_ECAT_NR = 8, + ATA_EH_CMD_DFL_TIMEOUT = 5000, + ATA_EH_RESET_COOL_DOWN = 5000, + ATA_EH_PRERESET_TIMEOUT = 10000, + ATA_EH_FASTDRAIN_INTERVAL = 3000, + ATA_EH_UA_TRIES = 5, + ATA_EH_PROBE_TRIAL_INTERVAL = 60000, + ATA_EH_PROBE_TRIALS = 2, +}; + +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const long unsigned int *timeouts; +}; + +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; +}; + +struct ata_internal { + struct scsi_transport_template t; + struct device_attribute private_port_attrs[3]; + struct device_attribute private_link_attrs[3]; + struct device_attribute private_dev_attrs[9]; + struct transport_container link_attr_cont; + struct transport_container dev_attr_cont; + struct device_attribute *link_attrs[4]; + struct device_attribute *port_attrs[4]; + struct device_attribute *dev_attrs[10]; +}; + +struct ata_show_ering_arg { + char *buf; + int written; +}; + +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, +}; + +struct ata_acpi_gtf { + u8 tf[7]; +}; + +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; +}; + +struct rm_feature_desc { + __be16 feature_code; + __u8 curr: 1; + __u8 persistent: 1; + __u8 feature_version: 4; + __u8 reserved1: 2; + __u8 add_len; + __u8 lock: 1; + __u8 dbml: 1; + __u8 pvnt_jmpr: 1; + __u8 eject: 1; + __u8 load: 1; + __u8 mech_type: 3; + __u8 reserved2; + __u8 reserved3; + __u8 reserved4; +}; + +enum odd_mech_type { + ODD_MECH_TYPE_SLOT = 0, + ODD_MECH_TYPE_DRAWER = 1, + ODD_MECH_TYPE_UNSUPPORTED = 2, +}; + +struct zpodd { + enum odd_mech_type mech_type; + struct ata_device *dev; + bool from_notify; + bool zp_ready; + long unsigned int last_ready; + bool zp_sampled; + bool powered_off; +}; + +enum { + PIIX_IOCFG = 84, + ICH5_PMR = 144, + ICH5_PCS = 146, + PIIX_SIDPR_BAR = 5, + PIIX_SIDPR_LEN = 16, + PIIX_SIDPR_IDX = 0, + PIIX_SIDPR_DATA = 4, + PIIX_FLAG_CHECKINTR = 268435456, + PIIX_FLAG_SIDPR = 536870912, + PIIX_PATA_FLAGS = 1, + PIIX_SATA_FLAGS = 268435458, + PIIX_FLAG_PIO16 = 1073741824, + PIIX_80C_PRI = 48, + PIIX_80C_SEC = 192, + P0 = 0, + P1 = 1, + P2 = 2, + P3 = 3, + IDE = 4294967295, + NA = 4294967294, + RV = 4294967293, + PIIX_AHCI_DEVICE = 6, + PIIX_HOST_BROKEN_SUSPEND = 16777216, +}; + +enum piix_controller_ids { + piix_pata_mwdma = 0, + piix_pata_33 = 1, + ich_pata_33 = 2, + ich_pata_66 = 3, + ich_pata_100 = 4, + ich_pata_100_nomwdma1 = 5, + ich5_sata = 6, + ich6_sata = 7, + ich6m_sata = 8, + ich8_sata = 9, + ich8_2port_sata = 10, + ich8m_apple_sata = 11, + tolapai_sata = 12, + piix_pata_vmw = 13, + ich8_sata_snb = 14, + ich8_2port_sata_snb = 15, + ich8_2port_sata_byt = 16, +}; + +struct piix_map_db { + const u32 mask; + const u16 port_enable; + const int map[0]; +}; + +struct piix_host_priv { + const int *map; + u32 saved_iocfg; + void *sidpr; +}; + +struct ich_laptop { + u16 device; + u16 subvendor; + u16 subdevice; +}; + +struct sis_chipset { + u16 device; + const struct ata_port_info *info; +}; + +struct sis_laptop { + u16 device; + u16 subvendor; + u16 subdevice; +}; + +enum { + ATA_GEN_CLASS_MATCH = 1, + ATA_GEN_FORCE_DMA = 2, + ATA_GEN_INTEL_IDER = 4, +}; + struct mipi_dsi_msg { u8 channel; u8 type; @@ -76308,6 +102046,7 @@ enum mipi_dsi_pixel_format { struct mipi_dsi_device { struct mipi_dsi_host *host; struct device dev; + bool attached; char name[20]; unsigned int channel; unsigned int lanes; @@ -76506,9 +102245,7 @@ struct vga_device { unsigned int io_norm_cnt; unsigned int mem_norm_cnt; bool bridge_has_one_vga; - void *cookie; - void (*irq_set_state)(void *, bool); - unsigned int (*set_vga_decode)(void *, bool); + unsigned int (*set_decode)(struct pci_dev *, bool); }; struct vga_arb_user_card { @@ -76543,7 +102280,7 @@ enum vga_switcheroo_client_id { }; struct vga_switcheroo_handler { - int (*init)(); + int (*init)(void); int (*switchto)(enum vga_switcheroo_client_id); int (*switch_ddc)(enum vga_switcheroo_client_id); int (*power_state)(enum vga_switcheroo_client_id, enum vga_switcheroo_state); @@ -76582,2108 +102319,6 @@ struct vgasr_priv { int old_ddc_owner; }; -struct cb_id { - __u32 idx; - __u32 val; -}; - -struct cn_msg { - struct cb_id id; - __u32 seq; - __u32 ack; - __u16 len; - __u16 flags; - __u8 data[0]; -}; - -struct cn_queue_dev { - atomic_t refcnt; - unsigned char name[32]; - struct list_head queue_list; - spinlock_t queue_lock; - struct sock *nls; -}; - -struct cn_callback_id { - unsigned char name[32]; - struct cb_id id; -}; - -struct cn_callback_entry { - struct list_head callback_entry; - refcount_t refcnt; - struct cn_queue_dev *pdev; - struct cn_callback_id id; - void (*callback)(struct cn_msg *, struct netlink_skb_parms *); - u32 seq; - u32 group; -}; - -struct cn_dev { - struct cb_id id; - u32 seq; - u32 groups; - struct sock *nls; - struct cn_queue_dev *cbdev; -}; - -enum proc_cn_mcast_op { - PROC_CN_MCAST_LISTEN = 1, - PROC_CN_MCAST_IGNORE = 2, -}; - -struct fork_proc_event { - __kernel_pid_t parent_pid; - __kernel_pid_t parent_tgid; - __kernel_pid_t child_pid; - __kernel_pid_t child_tgid; -}; - -struct exec_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; -}; - -struct id_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; - union { - __u32 ruid; - __u32 rgid; - } r; - union { - __u32 euid; - __u32 egid; - } e; -}; - -struct sid_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; -}; - -struct ptrace_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; - __kernel_pid_t tracer_pid; - __kernel_pid_t tracer_tgid; -}; - -struct comm_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; - char comm[16]; -}; - -struct coredump_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; - __kernel_pid_t parent_pid; - __kernel_pid_t parent_tgid; -}; - -struct exit_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; - __u32 exit_code; - __u32 exit_signal; - __kernel_pid_t parent_pid; - __kernel_pid_t parent_tgid; -}; - -struct proc_event { - enum what what; - __u32 cpu; - __u64 timestamp_ns; - union { - struct { - __u32 err; - } ack; - struct fork_proc_event fork; - struct exec_proc_event exec; - struct id_proc_event id; - struct sid_proc_event sid; - struct ptrace_proc_event ptrace; - struct comm_proc_event comm; - struct coredump_proc_event coredump; - struct exit_proc_event exit; - } event_data; -}; - -struct local_event { - local_lock_t lock; - __u32 count; -}; - -struct component_ops { - int (*bind)(struct device *, struct device *, void *); - void (*unbind)(struct device *, struct device *, void *); -}; - -struct component_master_ops { - int (*bind)(struct device *); - void (*unbind)(struct device *); -}; - -struct component; - -struct component_match_array { - void *data; - int (*compare)(struct device *, void *); - int (*compare_typed)(struct device *, int, void *); - void (*release)(struct device *, void *); - struct component *component; - bool duplicate; -}; - -struct master; - -struct component { - struct list_head node; - struct master *master; - bool bound; - const struct component_ops *ops; - int subcomponent; - struct device *dev; -}; - -struct component_match { - size_t alloc; - size_t num; - struct component_match_array *compare; -}; - -struct master { - struct list_head node; - bool bound; - const struct component_master_ops *ops; - struct device *dev; - struct component_match *match; - struct dentry *dentry; -}; - -struct wake_irq { - struct device *dev; - unsigned int status; - int irq; - const char *name; -}; - -enum dpm_order { - DPM_ORDER_NONE = 0, - DPM_ORDER_DEV_AFTER_PARENT = 1, - DPM_ORDER_PARENT_BEFORE_DEV = 2, - DPM_ORDER_DEV_LAST = 3, -}; - -struct subsys_private { - struct kset subsys; - struct kset *devices_kset; - struct list_head interfaces; - struct mutex mutex; - struct kset *drivers_kset; - struct klist klist_devices; - struct klist klist_drivers; - struct blocking_notifier_head bus_notifier; - unsigned int drivers_autoprobe: 1; - struct bus_type *bus; - struct kset glue_dirs; - struct class *class; -}; - -struct driver_private { - struct kobject kobj; - struct klist klist_devices; - struct klist_node knode_bus; - struct module_kobject *mkobj; - struct device_driver *driver; -}; - -struct device_private { - struct klist klist_children; - struct klist_node knode_parent; - struct klist_node knode_driver; - struct klist_node knode_bus; - struct klist_node knode_class; - struct list_head deferred_probe; - struct device_driver *async_driver; - char *deferred_probe_reason; - struct device *device; - u8 dead: 1; -}; - -union device_attr_group_devres { - const struct attribute_group *group; - const struct attribute_group **groups; -}; - -struct class_dir { - struct kobject kobj; - struct class *class; -}; - -struct root_device { - struct device dev; - struct module *owner; -}; - -struct subsys_dev_iter { - struct klist_iter ki; - const struct device_type *type; -}; - -struct device_attach_data { - struct device *dev; - bool check_async; - bool want_async; - bool have_async; -}; - -struct class_attribute_string { - struct class_attribute attr; - char *str; -}; - -struct class_compat { - struct kobject *kobj; -}; - -struct platform_object { - struct platform_device pdev; - char name[0]; -}; - -struct cpu_attr { - struct device_attribute attr; - const struct cpumask * const map; -}; - -typedef struct kobject *kobj_probe_t(dev_t, int *, void *); - -struct probe { - struct probe *next; - dev_t dev; - long unsigned int range; - struct module *owner; - kobj_probe_t *get; - int (*lock)(dev_t, void *); - void *data; -}; - -struct kobj_map { - struct probe *probes[255]; - struct mutex *lock; -}; - -typedef int (*dr_match_t)(struct device *, void *, void *); - -struct devres_node { - struct list_head entry; - dr_release_t release; -}; - -struct devres { - struct devres_node node; - u8 data[0]; -}; - -struct devres_group { - struct devres_node node[2]; - void *id; - int color; -}; - -struct action_devres { - void *data; - void (*action)(void *); -}; - -struct pages_devres { - long unsigned int addr; - unsigned int order; -}; - -struct attribute_container { - struct list_head node; - struct klist containers; - struct class *class; - const struct attribute_group *grp; - struct device_attribute **attrs; - int (*match)(struct attribute_container *, struct device *); - long unsigned int flags; -}; - -struct internal_container { - struct klist_node node; - struct attribute_container *cont; - struct device classdev; -}; - -struct transport_container; - -struct transport_class { - struct class class; - int (*setup)(struct transport_container *, struct device *, struct device *); - int (*configure)(struct transport_container *, struct device *, struct device *); - int (*remove)(struct transport_container *, struct device *, struct device *); -}; - -struct transport_container { - struct attribute_container ac; - const struct attribute_group *statistics; -}; - -struct anon_transport_class { - struct transport_class tclass; - struct attribute_container container; -}; - -typedef void * (*devcon_match_fn_t)(struct fwnode_handle *, const char *, void *); - -enum ethtool_link_mode_bit_indices { - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, - ETHTOOL_LINK_MODE_Autoneg_BIT = 6, - ETHTOOL_LINK_MODE_TP_BIT = 7, - ETHTOOL_LINK_MODE_AUI_BIT = 8, - ETHTOOL_LINK_MODE_MII_BIT = 9, - ETHTOOL_LINK_MODE_FIBRE_BIT = 10, - ETHTOOL_LINK_MODE_BNC_BIT = 11, - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, - ETHTOOL_LINK_MODE_Pause_BIT = 13, - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, - ETHTOOL_LINK_MODE_Backplane_BIT = 16, - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, - ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, - __ETHTOOL_LINK_MODE_MASK_NBITS = 92, -}; - -struct mii_bus; - -struct mdio_device { - struct device dev; - struct mii_bus *bus; - char modalias[32]; - int (*bus_match)(struct device *, struct device_driver *); - void (*device_free)(struct mdio_device *); - void (*device_remove)(struct mdio_device *); - int addr; - int flags; - struct gpio_desc *reset_gpio; - struct reset_control *reset_ctrl; - unsigned int reset_assert_delay; - unsigned int reset_deassert_delay; -}; - -struct phy_c45_device_ids { - u32 devices_in_package; - u32 mmds_present; - u32 device_ids[32]; -}; - -enum phy_state { - PHY_DOWN = 0, - PHY_READY = 1, - PHY_HALTED = 2, - PHY_UP = 3, - PHY_RUNNING = 4, - PHY_NOLINK = 5, - PHY_CABLETEST = 6, -}; - -typedef enum { - PHY_INTERFACE_MODE_NA = 0, - PHY_INTERFACE_MODE_INTERNAL = 1, - PHY_INTERFACE_MODE_MII = 2, - PHY_INTERFACE_MODE_GMII = 3, - PHY_INTERFACE_MODE_SGMII = 4, - PHY_INTERFACE_MODE_TBI = 5, - PHY_INTERFACE_MODE_REVMII = 6, - PHY_INTERFACE_MODE_RMII = 7, - PHY_INTERFACE_MODE_RGMII = 8, - PHY_INTERFACE_MODE_RGMII_ID = 9, - PHY_INTERFACE_MODE_RGMII_RXID = 10, - PHY_INTERFACE_MODE_RGMII_TXID = 11, - PHY_INTERFACE_MODE_RTBI = 12, - PHY_INTERFACE_MODE_SMII = 13, - PHY_INTERFACE_MODE_XGMII = 14, - PHY_INTERFACE_MODE_XLGMII = 15, - PHY_INTERFACE_MODE_MOCA = 16, - PHY_INTERFACE_MODE_QSGMII = 17, - PHY_INTERFACE_MODE_TRGMII = 18, - PHY_INTERFACE_MODE_1000BASEX = 19, - PHY_INTERFACE_MODE_2500BASEX = 20, - PHY_INTERFACE_MODE_RXAUI = 21, - PHY_INTERFACE_MODE_XAUI = 22, - PHY_INTERFACE_MODE_10GBASER = 23, - PHY_INTERFACE_MODE_USXGMII = 24, - PHY_INTERFACE_MODE_10GKR = 25, - PHY_INTERFACE_MODE_MAX = 26, -} phy_interface_t; - -struct phy_led_trigger; - -struct phylink; - -struct phy_driver; - -struct phy_package_shared; - -struct mii_timestamper; - -struct phy_device { - struct mdio_device mdio; - struct phy_driver *drv; - u32 phy_id; - struct phy_c45_device_ids c45_ids; - unsigned int is_c45: 1; - unsigned int is_internal: 1; - unsigned int is_pseudo_fixed_link: 1; - unsigned int is_gigabit_capable: 1; - unsigned int has_fixups: 1; - unsigned int suspended: 1; - unsigned int suspended_by_mdio_bus: 1; - unsigned int sysfs_links: 1; - unsigned int loopback_enabled: 1; - unsigned int downshifted_rate: 1; - unsigned int autoneg: 1; - unsigned int link: 1; - unsigned int autoneg_complete: 1; - unsigned int interrupts: 1; - enum phy_state state; - u32 dev_flags; - phy_interface_t interface; - int speed; - int duplex; - int port; - int pause; - int asym_pause; - u8 master_slave_get; - u8 master_slave_set; - u8 master_slave_state; - long unsigned int supported[2]; - long unsigned int advertising[2]; - long unsigned int lp_advertising[2]; - long unsigned int adv_old[2]; - u32 eee_broken_modes; - struct phy_led_trigger *phy_led_triggers; - unsigned int phy_num_led_triggers; - struct phy_led_trigger *last_triggered; - struct phy_led_trigger *led_link_trigger; - int irq; - void *priv; - struct phy_package_shared *shared; - struct sk_buff *skb; - void *ehdr; - struct nlattr *nest; - struct delayed_work state_queue; - struct mutex lock; - bool sfp_bus_attached; - struct sfp_bus *sfp_bus; - struct phylink *phylink; - struct net_device *attached_dev; - struct mii_timestamper *mii_ts; - u8 mdix; - u8 mdix_ctrl; - void (*phy_link_change)(struct phy_device *, bool); - void (*adjust_link)(struct net_device *); - const struct macsec_ops *macsec_ops; -}; - -struct phy_tdr_config { - u32 first; - u32 last; - u32 step; - s8 pair; -}; - -struct mdio_bus_stats { - u64_stats_t transfers; - u64_stats_t errors; - u64_stats_t writes; - u64_stats_t reads; - struct u64_stats_sync syncp; -}; - -struct mii_bus { - struct module *owner; - const char *name; - char id[61]; - void *priv; - int (*read)(struct mii_bus *, int, int); - int (*write)(struct mii_bus *, int, int, u16); - int (*reset)(struct mii_bus *); - struct mdio_bus_stats stats[32]; - struct mutex mdio_lock; - struct device *parent; - enum { - MDIOBUS_ALLOCATED = 1, - MDIOBUS_REGISTERED = 2, - MDIOBUS_UNREGISTERED = 3, - MDIOBUS_RELEASED = 4, - } state; - struct device dev; - struct mdio_device *mdio_map[32]; - u32 phy_mask; - u32 phy_ignore_ta_mask; - int irq[32]; - int reset_delay_us; - int reset_post_delay_us; - struct gpio_desc *reset_gpiod; - enum { - MDIOBUS_NO_CAP = 0, - MDIOBUS_C22 = 1, - MDIOBUS_C45 = 2, - MDIOBUS_C22_C45 = 3, - } probe_capabilities; - struct mutex shared_lock; - struct phy_package_shared *shared[32]; -}; - -struct mdio_driver_common { - struct device_driver driver; - int flags; -}; - -struct mii_timestamper { - bool (*rxtstamp)(struct mii_timestamper *, struct sk_buff *, int); - void (*txtstamp)(struct mii_timestamper *, struct sk_buff *, int); - int (*hwtstamp)(struct mii_timestamper *, struct ifreq *); - void (*link_state)(struct mii_timestamper *, struct phy_device *); - int (*ts_info)(struct mii_timestamper *, struct ethtool_ts_info *); - struct device *device; -}; - -struct phy_package_shared { - int addr; - refcount_t refcnt; - long unsigned int flags; - size_t priv_size; - void *priv; -}; - -struct phy_driver { - struct mdio_driver_common mdiodrv; - u32 phy_id; - char *name; - u32 phy_id_mask; - const long unsigned int * const features; - u32 flags; - const void *driver_data; - int (*soft_reset)(struct phy_device *); - int (*config_init)(struct phy_device *); - int (*probe)(struct phy_device *); - int (*get_features)(struct phy_device *); - int (*suspend)(struct phy_device *); - int (*resume)(struct phy_device *); - int (*config_aneg)(struct phy_device *); - int (*aneg_done)(struct phy_device *); - int (*read_status)(struct phy_device *); - int (*ack_interrupt)(struct phy_device *); - int (*config_intr)(struct phy_device *); - int (*did_interrupt)(struct phy_device *); - irqreturn_t (*handle_interrupt)(struct phy_device *); - void (*remove)(struct phy_device *); - int (*match_phy_device)(struct phy_device *); - int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*link_change_notify)(struct phy_device *); - int (*read_mmd)(struct phy_device *, int, u16); - int (*write_mmd)(struct phy_device *, int, u16, u16); - int (*read_page)(struct phy_device *); - int (*write_page)(struct phy_device *, int); - int (*module_info)(struct phy_device *, struct ethtool_modinfo *); - int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); - int (*cable_test_start)(struct phy_device *); - int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); - int (*cable_test_get_status)(struct phy_device *, bool *); - int (*get_sset_count)(struct phy_device *); - void (*get_strings)(struct phy_device *, u8 *); - void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); - int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); - int (*set_loopback)(struct phy_device *, bool); - int (*get_sqi)(struct phy_device *); - int (*get_sqi_max)(struct phy_device *); -}; - -struct software_node; - -struct software_node_ref_args { - const struct software_node *node; - unsigned int nargs; - u64 args[8]; -}; - -struct software_node { - const char *name; - const struct software_node *parent; - const struct property_entry *properties; -}; - -struct swnode { - int id; - struct kobject kobj; - struct fwnode_handle fwnode; - const struct software_node *node; - struct ida child_ids; - struct list_head entry; - struct list_head children; - struct swnode *parent; - unsigned int allocated: 1; -}; - -struct req { - struct req *next; - struct completion done; - int err; - const char *name; - umode_t mode; - kuid_t uid; - kgid_t gid; - struct device *dev; -}; - -typedef int (*pm_callback_t)(struct device *); - -enum gpd_status { - GENPD_STATE_ON = 0, - GENPD_STATE_OFF = 1, -}; - -enum genpd_notication { - GENPD_NOTIFY_PRE_OFF = 0, - GENPD_NOTIFY_OFF = 1, - GENPD_NOTIFY_PRE_ON = 2, - GENPD_NOTIFY_ON = 3, -}; - -struct dev_power_governor { - bool (*power_down_ok)(struct dev_pm_domain *); - bool (*suspend_ok)(struct device *); -}; - -struct gpd_dev_ops { - int (*start)(struct device *); - int (*stop)(struct device *); -}; - -struct genpd_power_state { - s64 power_off_latency_ns; - s64 power_on_latency_ns; - s64 residency_ns; - u64 usage; - u64 rejected; - struct fwnode_handle *fwnode; - ktime_t idle_time; - void *data; -}; - -struct opp_table; - -struct dev_pm_opp; - -struct genpd_lock_ops; - -struct generic_pm_domain { - struct device dev; - struct dev_pm_domain domain; - struct list_head gpd_list_node; - struct list_head parent_links; - struct list_head child_links; - struct list_head dev_list; - struct dev_power_governor *gov; - struct work_struct power_off_work; - struct fwnode_handle *provider; - bool has_provider; - const char *name; - atomic_t sd_count; - enum gpd_status status; - unsigned int device_count; - unsigned int suspended_count; - unsigned int prepared_count; - unsigned int performance_state; - cpumask_var_t cpus; - int (*power_off)(struct generic_pm_domain *); - int (*power_on)(struct generic_pm_domain *); - struct raw_notifier_head power_notifiers; - struct opp_table *opp_table; - unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); - int (*set_performance_state)(struct generic_pm_domain *, unsigned int); - struct gpd_dev_ops dev_ops; - s64 max_off_time_ns; - bool max_off_time_changed; - bool cached_power_down_ok; - bool cached_power_down_state_idx; - int (*attach_dev)(struct generic_pm_domain *, struct device *); - void (*detach_dev)(struct generic_pm_domain *, struct device *); - unsigned int flags; - struct genpd_power_state *states; - void (*free_states)(struct genpd_power_state *, unsigned int); - unsigned int state_count; - unsigned int state_idx; - ktime_t on_time; - ktime_t accounting_time; - const struct genpd_lock_ops *lock_ops; - union { - struct mutex mlock; - struct { - spinlock_t slock; - long unsigned int lock_flags; - }; - }; -}; - -struct genpd_lock_ops { - void (*lock)(struct generic_pm_domain *); - void (*lock_nested)(struct generic_pm_domain *, int); - int (*lock_interruptible)(struct generic_pm_domain *); - void (*unlock)(struct generic_pm_domain *); -}; - -struct gpd_link { - struct generic_pm_domain *parent; - struct list_head parent_node; - struct generic_pm_domain *child; - struct list_head child_node; - unsigned int performance_state; - unsigned int prev_performance_state; -}; - -struct gpd_timing_data { - s64 suspend_latency_ns; - s64 resume_latency_ns; - s64 effective_constraint_ns; - bool constraint_changed; - bool cached_suspend_ok; -}; - -struct generic_pm_domain_data { - struct pm_domain_data base; - struct gpd_timing_data td; - struct notifier_block nb; - struct notifier_block *power_nb; - int cpu; - unsigned int performance_state; - void *data; -}; - -struct pm_clk_notifier_block { - struct notifier_block nb; - struct dev_pm_domain *pm_domain; - char *con_ids[0]; -}; - -enum pce_status { - PCE_STATUS_NONE = 0, - PCE_STATUS_ACQUIRED = 1, - PCE_STATUS_ENABLED = 2, - PCE_STATUS_ERROR = 3, -}; - -struct pm_clock_entry { - struct list_head node; - char *con_id; - struct clk *clk; - enum pce_status status; -}; - -struct firmware_fallback_config { - unsigned int force_sysfs_fallback; - unsigned int ignore_sysfs_fallback; - int old_timeout; - int loading_timeout; -}; - -enum fw_opt { - FW_OPT_UEVENT = 1, - FW_OPT_NOWAIT = 2, - FW_OPT_USERHELPER = 4, - FW_OPT_NO_WARN = 8, - FW_OPT_NOCACHE = 16, - FW_OPT_NOFALLBACK_SYSFS = 32, - FW_OPT_FALLBACK_PLATFORM = 64, - FW_OPT_PARTIAL = 128, -}; - -enum fw_status { - FW_STATUS_UNKNOWN = 0, - FW_STATUS_LOADING = 1, - FW_STATUS_DONE = 2, - FW_STATUS_ABORTED = 3, -}; - -struct fw_state { - struct completion completion; - enum fw_status status; -}; - -struct firmware_cache; - -struct fw_priv { - struct kref ref; - struct list_head list; - struct firmware_cache *fwc; - struct fw_state fw_st; - void *data; - size_t size; - size_t allocated_size; - size_t offset; - u32 opt_flags; - bool is_paged_buf; - struct page **pages; - int nr_pages; - int page_array_size; - bool need_uevent; - struct list_head pending_list; - const char *fw_name; -}; - -struct firmware_cache { - spinlock_t lock; - struct list_head head; - int state; - spinlock_t name_lock; - struct list_head fw_names; - struct delayed_work work; - struct notifier_block pm_notify; -}; - -struct fw_cache_entry { - struct list_head list; - const char *name; -}; - -struct fw_name_devm { - long unsigned int magic; - const char *name; -}; - -struct firmware_work { - struct work_struct work; - struct module *module; - const char *name; - struct device *device; - void *context; - void (*cont)(const struct firmware *, void *); - u32 opt_flags; -}; - -struct fw_sysfs { - bool nowait; - struct device dev; - struct fw_priv *fw_priv; - struct firmware *fw; -}; - -typedef void (*node_registration_func_t)(struct node___2 *); - -typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *); - -struct node_access_nodes { - struct device dev; - struct list_head list_node; - unsigned int access; - struct node_hmem_attrs hmem_attrs; -}; - -struct node_cache_info { - struct device dev; - struct list_head node; - struct node_cache_attrs cache_attrs; -}; - -struct node_attr { - struct device_attribute attr; - enum node_states state; -}; - -struct for_each_memory_block_cb_data { - walk_memory_blocks_func_t func; - void *arg; -}; - -struct reg_sequence { - unsigned int reg; - unsigned int def; - unsigned int delay_us; -}; - -typedef int (*regmap_hw_write)(void *, const void *, size_t); - -typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); - -struct regmap_async; - -typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); - -struct regmap; - -struct regmap_async { - struct list_head list; - struct regmap *map; - void *work_buf; -}; - -typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t); - -typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *); - -typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); - -typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); - -typedef struct regmap_async * (*regmap_hw_async_alloc)(); - -typedef void (*regmap_hw_free_context)(void *); - -struct regmap_bus { - bool fast_io; - regmap_hw_write write; - regmap_hw_gather_write gather_write; - regmap_hw_async_write async_write; - regmap_hw_reg_write reg_write; - regmap_hw_reg_update_bits reg_update_bits; - regmap_hw_read read; - regmap_hw_reg_read reg_read; - regmap_hw_free_context free_context; - regmap_hw_async_alloc async_alloc; - u8 read_flag_mask; - enum regmap_endian reg_format_endian_default; - enum regmap_endian val_format_endian_default; - size_t max_raw_read; - size_t max_raw_write; -}; - -struct reg_field { - unsigned int reg; - unsigned int lsb; - unsigned int msb; - unsigned int id_size; - unsigned int id_offset; -}; - -struct regmap_format { - size_t buf_size; - size_t reg_bytes; - size_t pad_bytes; - size_t val_bytes; - void (*format_write)(struct regmap *, unsigned int, unsigned int); - void (*format_reg)(void *, unsigned int, unsigned int); - void (*format_val)(void *, unsigned int, unsigned int); - unsigned int (*parse_val)(const void *); - void (*parse_inplace)(void *); -}; - -struct hwspinlock; - -struct regcache_ops; - -struct regmap { - union { - struct mutex mutex; - struct { - spinlock_t spinlock; - long unsigned int spinlock_flags; - }; - }; - regmap_lock lock; - regmap_unlock unlock; - void *lock_arg; - gfp_t alloc_flags; - struct device *dev; - void *work_buf; - struct regmap_format format; - const struct regmap_bus *bus; - void *bus_context; - const char *name; - bool async; - spinlock_t async_lock; - wait_queue_head_t async_waitq; - struct list_head async_list; - struct list_head async_free; - int async_ret; - bool debugfs_disable; - struct dentry *debugfs; - const char *debugfs_name; - unsigned int debugfs_reg_len; - unsigned int debugfs_val_len; - unsigned int debugfs_tot_len; - struct list_head debugfs_off_cache; - struct mutex cache_lock; - unsigned int max_register; - bool (*writeable_reg)(struct device *, unsigned int); - bool (*readable_reg)(struct device *, unsigned int); - bool (*volatile_reg)(struct device *, unsigned int); - bool (*precious_reg)(struct device *, unsigned int); - bool (*writeable_noinc_reg)(struct device *, unsigned int); - bool (*readable_noinc_reg)(struct device *, unsigned int); - const struct regmap_access_table *wr_table; - const struct regmap_access_table *rd_table; - const struct regmap_access_table *volatile_table; - const struct regmap_access_table *precious_table; - const struct regmap_access_table *wr_noinc_table; - const struct regmap_access_table *rd_noinc_table; - int (*reg_read)(void *, unsigned int, unsigned int *); - int (*reg_write)(void *, unsigned int, unsigned int); - int (*reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); - bool defer_caching; - long unsigned int read_flag_mask; - long unsigned int write_flag_mask; - int reg_shift; - int reg_stride; - int reg_stride_order; - const struct regcache_ops *cache_ops; - enum regcache_type cache_type; - unsigned int cache_size_raw; - unsigned int cache_word_size; - unsigned int num_reg_defaults; - unsigned int num_reg_defaults_raw; - bool cache_only; - bool cache_bypass; - bool cache_free; - struct reg_default *reg_defaults; - const void *reg_defaults_raw; - void *cache; - bool cache_dirty; - bool no_sync_defaults; - struct reg_sequence *patch; - int patch_regs; - bool use_single_read; - bool use_single_write; - bool can_multi_write; - size_t max_raw_read; - size_t max_raw_write; - struct rb_root range_tree; - void *selector_work_buf; - struct hwspinlock *hwlock; - bool can_sleep; -}; - -struct regcache_ops { - const char *name; - enum regcache_type type; - int (*init)(struct regmap *); - int (*exit)(struct regmap *); - void (*debugfs_init)(struct regmap *); - int (*read)(struct regmap *, unsigned int, unsigned int *); - int (*write)(struct regmap *, unsigned int, unsigned int); - int (*sync)(struct regmap *, unsigned int, unsigned int); - int (*drop)(struct regmap *, unsigned int, unsigned int); -}; - -struct regmap_range_node { - struct rb_node node; - const char *name; - struct regmap *map; - unsigned int range_min; - unsigned int range_max; - unsigned int selector_reg; - unsigned int selector_mask; - int selector_shift; - unsigned int window_start; - unsigned int window_len; -}; - -struct regmap_field { - struct regmap *regmap; - unsigned int mask; - unsigned int shift; - unsigned int reg; - unsigned int id_size; - unsigned int id_offset; -}; - -struct trace_event_raw_regmap_reg { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - unsigned int val; - char __data[0]; -}; - -struct trace_event_raw_regmap_block { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - int count; - char __data[0]; -}; - -struct trace_event_raw_regcache_sync { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_status; - u32 __data_loc_type; - int type; - char __data[0]; -}; - -struct trace_event_raw_regmap_bool { - struct trace_entry ent; - u32 __data_loc_name; - int flag; - char __data[0]; -}; - -struct trace_event_raw_regmap_async { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_regcache_drop_region { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int from; - unsigned int to; - char __data[0]; -}; - -struct trace_event_data_offsets_regmap_reg { - u32 name; -}; - -struct trace_event_data_offsets_regmap_block { - u32 name; -}; - -struct trace_event_data_offsets_regcache_sync { - u32 name; - u32 status; - u32 type; -}; - -struct trace_event_data_offsets_regmap_bool { - u32 name; -}; - -struct trace_event_data_offsets_regmap_async { - u32 name; -}; - -struct trace_event_data_offsets_regcache_drop_region { - u32 name; -}; - -typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); - -typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); - -typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); - -typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); - -typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); - -typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int); - -typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int); - -typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); - -typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); - -typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); - -typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); - -typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); - -typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); - -typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); - -typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); - -struct regcache_rbtree_node { - void *block; - long int *cache_present; - unsigned int base_reg; - unsigned int blklen; - struct rb_node node; -}; - -struct regcache_rbtree_ctx { - struct rb_root root; - struct regcache_rbtree_node *cached_rbnode; -}; - -struct regmap_debugfs_off_cache { - struct list_head list; - off_t min; - off_t max; - unsigned int base_reg; - unsigned int max_reg; -}; - -struct regmap_debugfs_node { - struct regmap *map; - struct list_head link; -}; - -struct i2c_msg { - __u16 addr; - __u16 flags; - __u16 len; - __u8 *buf; -}; - -union i2c_smbus_data { - __u8 byte; - __u16 word; - __u8 block[34]; -}; - -struct i2c_adapter; - -struct i2c_client { - short unsigned int flags; - short unsigned int addr; - char name[20]; - struct i2c_adapter *adapter; - struct device dev; - int init_irq; - int irq; - struct list_head detected; -}; - -struct i2c_algorithm; - -struct i2c_lock_operations; - -struct i2c_bus_recovery_info; - -struct i2c_adapter_quirks; - -struct i2c_adapter { - struct module *owner; - unsigned int class; - const struct i2c_algorithm *algo; - void *algo_data; - const struct i2c_lock_operations *lock_ops; - struct rt_mutex bus_lock; - struct rt_mutex mux_lock; - int timeout; - int retries; - struct device dev; - long unsigned int locked_flags; - int nr; - char name[48]; - struct completion dev_released; - struct mutex userspace_clients_lock; - struct list_head userspace_clients; - struct i2c_bus_recovery_info *bus_recovery_info; - const struct i2c_adapter_quirks *quirks; - struct irq_domain *host_notify_domain; -}; - -struct i2c_algorithm { - int (*master_xfer)(struct i2c_adapter *, struct i2c_msg *, int); - int (*master_xfer_atomic)(struct i2c_adapter *, struct i2c_msg *, int); - int (*smbus_xfer)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *); - int (*smbus_xfer_atomic)(struct i2c_adapter *, u16, short unsigned int, char, u8, int, union i2c_smbus_data *); - u32 (*functionality)(struct i2c_adapter *); -}; - -struct i2c_lock_operations { - void (*lock_bus)(struct i2c_adapter *, unsigned int); - int (*trylock_bus)(struct i2c_adapter *, unsigned int); - void (*unlock_bus)(struct i2c_adapter *, unsigned int); -}; - -struct i2c_bus_recovery_info { - int (*recover_bus)(struct i2c_adapter *); - int (*get_scl)(struct i2c_adapter *); - void (*set_scl)(struct i2c_adapter *, int); - int (*get_sda)(struct i2c_adapter *); - void (*set_sda)(struct i2c_adapter *, int); - int (*get_bus_free)(struct i2c_adapter *); - void (*prepare_recovery)(struct i2c_adapter *); - void (*unprepare_recovery)(struct i2c_adapter *); - struct gpio_desc *scl_gpiod; - struct gpio_desc *sda_gpiod; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_gpio; -}; - -struct i2c_adapter_quirks { - u64 flags; - int max_num_msgs; - u16 max_write_len; - u16 max_read_len; - u16 max_comb_1st_msg_len; - u16 max_comb_2nd_msg_len; -}; - -struct regmap_mmio_context { - void *regs; - unsigned int val_bytes; - bool attached_clk; - struct clk *clk; - void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); - unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); -}; - -struct regmap_irq_chip_data { - struct mutex lock; - struct irq_chip irq_chip; - struct regmap *map; - const struct regmap_irq_chip *chip; - int irq_base; - struct irq_domain *domain; - int irq; - int wake_count; - void *status_reg_buf; - unsigned int *main_status_buf; - unsigned int *status_buf; - unsigned int *mask_buf; - unsigned int *mask_buf_def; - unsigned int *wake_buf; - unsigned int *type_buf; - unsigned int *type_buf_def; - unsigned int irq_reg_stride; - unsigned int type_reg_stride; - bool clear_status: 1; -}; - -struct devcd_entry { - struct device devcd_dev; - void *data; - size_t datalen; - struct module *owner; - ssize_t (*read)(char *, loff_t, size_t, void *, size_t); - void (*free)(void *); - struct delayed_work del_wk; - struct device *failing_dev; -}; - -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); - -struct platform_msi_priv_data { - struct device *dev; - void *host_data; - msi_alloc_info_t arg; - irq_write_msi_msg_t write_msg; - int devid; -}; - -struct mfd_cell_acpi_match { - const char *pnpid; - const long long unsigned int adr; -}; - -struct mfd_of_node_entry { - struct list_head list; - struct device *dev; - struct device_node *np; -}; - -struct syscon_platform_data { - const char *label; -}; - -struct syscon { - struct device_node *np; - struct regmap *regmap; - struct list_head list; -}; - -struct i2c_device_id { - char name[20]; - kernel_ulong_t driver_data; -}; - -enum i2c_alert_protocol { - I2C_PROTOCOL_SMBUS_ALERT = 0, - I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, -}; - -struct i2c_board_info; - -struct i2c_driver { - unsigned int class; - int (*probe)(struct i2c_client *, const struct i2c_device_id *); - int (*remove)(struct i2c_client *); - int (*probe_new)(struct i2c_client *); - void (*shutdown)(struct i2c_client *); - void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); - int (*command)(struct i2c_client *, unsigned int, void *); - struct device_driver driver; - const struct i2c_device_id *id_table; - int (*detect)(struct i2c_client *, struct i2c_board_info *); - const short unsigned int *address_list; - struct list_head clients; -}; - -struct i2c_board_info { - char type[20]; - short unsigned int flags; - short unsigned int addr; - const char *dev_name; - void *platform_data; - struct device_node *of_node; - struct fwnode_handle *fwnode; - const struct property_entry *properties; - const struct resource *resources; - unsigned int num_resources; - int irq; -}; - -struct intel_soc_pmic_config { - long unsigned int irq_flags; - struct mfd_cell *cell_dev; - int n_cell_devs; - const struct regmap_config *regmap_config; - const struct regmap_irq_chip *irq_chip; -}; - -enum { - CHT_WC_PWRSRC_IRQ = 0, - CHT_WC_THRM_IRQ = 1, - CHT_WC_BCU_IRQ = 2, - CHT_WC_ADC_IRQ = 3, - CHT_WC_EXT_CHGR_IRQ = 4, - CHT_WC_GPIO_IRQ = 5, - CHT_WC_CRIT_IRQ = 7, -}; - -struct dax_device; - -struct dax_operations { - long int (*direct_access)(struct dax_device *, long unsigned int, long int, void **, pfn_t *); - bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t); - size_t (*copy_from_iter)(struct dax_device *, long unsigned int, void *, size_t, struct iov_iter *); - size_t (*copy_to_iter)(struct dax_device *, long unsigned int, void *, size_t, struct iov_iter *); - int (*zero_page_range)(struct dax_device *, long unsigned int, size_t); -}; - -struct dax_device { - struct hlist_node list; - struct inode inode; - struct cdev cdev; - const char *host; - void *private; - long unsigned int flags; - const struct dax_operations *ops; -}; - -enum dax_device_flags { - DAXDEV_ALIVE = 0, - DAXDEV_WRITE_CACHE = 1, - DAXDEV_SYNC = 2, -}; - -struct dax_region { - int id; - int target_node; - struct kref kref; - struct device *dev; - unsigned int align; - struct ida ida; - struct resource res; - struct device *seed; - struct device *youngest; -}; - -struct dax_mapping { - struct device dev; - int range_id; - int id; -}; - -struct dev_dax_range { - long unsigned int pgoff; - struct range range; - struct dax_mapping *mapping; -}; - -struct dev_dax { - struct dax_region *region; - struct dax_device *dax_dev; - unsigned int align; - int target_node; - int id; - struct ida ida; - struct device dev; - struct dev_pagemap *pgmap; - int nr_range; - struct dev_dax_range *ranges; -}; - -enum dev_dax_subsys { - DEV_DAX_BUS = 0, - DEV_DAX_CLASS = 1, -}; - -struct dev_dax_data { - struct dax_region *dax_region; - struct dev_pagemap *pgmap; - enum dev_dax_subsys subsys; - resource_size_t size; - int id; -}; - -struct dax_device_driver { - struct device_driver drv; - struct list_head ids; - int match_always; - int (*probe)(struct dev_dax *); - int (*remove)(struct dev_dax *); -}; - -struct dax_id { - struct list_head list; - char dev_name[30]; -}; - -enum id_action { - ID_REMOVE = 0, - ID_ADD = 1, -}; - -struct memregion_info { - int target_node; -}; - -struct seqcount_ww_mutex { - seqcount_t seqcount; -}; - -typedef struct seqcount_ww_mutex seqcount_ww_mutex_t; - -struct dma_fence_ops; - -struct dma_fence { - spinlock_t *lock; - const struct dma_fence_ops *ops; - union { - struct list_head cb_list; - ktime_t timestamp; - struct callback_head rcu; - }; - u64 context; - u64 seqno; - long unsigned int flags; - struct kref refcount; - int error; -}; - -struct dma_fence_ops { - bool use_64bit_seqno; - const char * (*get_driver_name)(struct dma_fence *); - const char * (*get_timeline_name)(struct dma_fence *); - bool (*enable_signaling)(struct dma_fence *); - bool (*signaled)(struct dma_fence *); - long int (*wait)(struct dma_fence *, bool, long int); - void (*release)(struct dma_fence *); - void (*fence_value_str)(struct dma_fence *, char *, int); - void (*timeline_value_str)(struct dma_fence *, char *, int); -}; - -enum dma_fence_flag_bits { - DMA_FENCE_FLAG_SIGNALED_BIT = 0, - DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, - DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, - DMA_FENCE_FLAG_USER_BITS = 3, -}; - -struct dma_fence_cb; - -typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); - -struct dma_fence_cb { - struct list_head node; - dma_fence_func_t func; -}; - -struct dma_buf; - -struct dma_buf_attachment; - -struct dma_buf_ops { - bool cache_sgt_mapping; - int (*attach)(struct dma_buf *, struct dma_buf_attachment *); - void (*detach)(struct dma_buf *, struct dma_buf_attachment *); - int (*pin)(struct dma_buf_attachment *); - void (*unpin)(struct dma_buf_attachment *); - struct sg_table * (*map_dma_buf)(struct dma_buf_attachment *, enum dma_data_direction); - void (*unmap_dma_buf)(struct dma_buf_attachment *, struct sg_table *, enum dma_data_direction); - void (*release)(struct dma_buf *); - int (*begin_cpu_access)(struct dma_buf *, enum dma_data_direction); - int (*end_cpu_access)(struct dma_buf *, enum dma_data_direction); - int (*mmap)(struct dma_buf *, struct vm_area_struct *); - void * (*vmap)(struct dma_buf *); - void (*vunmap)(struct dma_buf *, void *); -}; - -struct dma_buf_poll_cb_t { - struct dma_fence_cb cb; - wait_queue_head_t *poll; - __poll_t active; -}; - -struct dma_resv; - -struct dma_buf { - size_t size; - struct file *file; - struct list_head attachments; - const struct dma_buf_ops *ops; - struct mutex lock; - unsigned int vmapping_counter; - void *vmap_ptr; - const char *exp_name; - const char *name; - spinlock_t name_lock; - struct module *owner; - struct list_head list_node; - void *priv; - struct dma_resv *resv; - wait_queue_head_t poll; - struct dma_buf_poll_cb_t cb_excl; - struct dma_buf_poll_cb_t cb_shared; -}; - -struct dma_buf_attach_ops; - -struct dma_buf_attachment { - struct dma_buf *dmabuf; - struct device *dev; - struct list_head node; - struct sg_table *sgt; - enum dma_data_direction dir; - bool peer2peer; - const struct dma_buf_attach_ops *importer_ops; - void *importer_priv; - void *priv; -}; - -struct dma_resv_list; - -struct dma_resv { - struct ww_mutex lock; - seqcount_ww_mutex_t seq; - struct dma_fence *fence_excl; - struct dma_resv_list *fence; -}; - -struct dma_buf_attach_ops { - bool allow_peer2peer; - void (*move_notify)(struct dma_buf_attachment *); -}; - -struct dma_buf_export_info { - const char *exp_name; - struct module *owner; - const struct dma_buf_ops *ops; - size_t size; - int flags; - struct dma_resv *resv; - void *priv; -}; - -struct dma_resv_list { - struct callback_head rcu; - u32 shared_count; - u32 shared_max; - struct dma_fence *shared[0]; -}; - -struct dma_buf_sync { - __u64 flags; -}; - -struct dma_buf_list { - struct list_head head; - struct mutex lock; -}; - -struct trace_event_raw_dma_fence { - struct trace_entry ent; - u32 __data_loc_driver; - u32 __data_loc_timeline; - unsigned int context; - unsigned int seqno; - char __data[0]; -}; - -struct trace_event_data_offsets_dma_fence { - u32 driver; - u32 timeline; -}; - -typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); - -typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); - -struct default_wait_cb { - struct dma_fence_cb base; - struct task_struct *task; -}; - -struct dma_fence_array; - -struct dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; -}; - -struct dma_fence_array { - struct dma_fence base; - spinlock_t lock; - unsigned int num_fences; - atomic_t num_pending; - struct dma_fence **fences; - struct irq_work work; -}; - -struct dma_fence_chain { - struct dma_fence base; - spinlock_t lock; - struct dma_fence *prev; - u64 prev_seqno; - struct dma_fence *fence; - struct dma_fence_cb cb; - struct irq_work work; -}; - -enum seqno_fence_condition { - SEQNO_FENCE_WAIT_GEQUAL = 0, - SEQNO_FENCE_WAIT_NONZERO = 1, -}; - -struct seqno_fence { - struct dma_fence base; - const struct dma_fence_ops *ops; - struct dma_buf *sync_buf; - uint32_t seqno_ofs; - enum seqno_fence_condition condition; -}; - -struct sync_file { - struct file *file; - char user_name[32]; - struct list_head sync_file_list; - wait_queue_head_t wq; - long unsigned int flags; - struct dma_fence *fence; - struct dma_fence_cb cb; -}; - -struct sync_merge_data { - char name[32]; - __s32 fd2; - __s32 fence; - __u32 flags; - __u32 pad; -}; - -struct sync_fence_info { - char obj_name[32]; - char driver_name[32]; - __s32 status; - __u32 flags; - __u64 timestamp_ns; -}; - -struct sync_file_info { - char name[32]; - __s32 status; - __u32 flags; - __u32 num_fences; - __u32 pad; - __u64 sync_fence_info; -}; - -struct scsi_lun { - __u8 scsi_lun[8]; -}; - -struct spi_device_id { - char name[32]; - kernel_ulong_t driver_data; -}; - -struct ptp_system_timestamp { - struct timespec64 pre_ts; - struct timespec64 post_ts; -}; - -struct spi_statistics { - spinlock_t lock; - long unsigned int messages; - long unsigned int transfers; - long unsigned int errors; - long unsigned int timedout; - long unsigned int spi_sync; - long unsigned int spi_sync_immediate; - long unsigned int spi_async; - long long unsigned int bytes; - long long unsigned int bytes_rx; - long long unsigned int bytes_tx; - long unsigned int transfer_bytes_histo[17]; - long unsigned int transfers_split_maxsize; -}; - -struct spi_delay { - u16 value; - u8 unit; -}; - -struct spi_controller; - -struct spi_device { - struct device dev; - struct spi_controller *controller; - struct spi_controller *master; - u32 max_speed_hz; - u8 chip_select; - u8 bits_per_word; - bool rt; - u32 mode; - int irq; - void *controller_state; - void *controller_data; - char modalias[32]; - const char *driver_override; - int cs_gpio; - struct gpio_desc *cs_gpiod; - struct spi_delay word_delay; - struct spi_statistics statistics; -}; - -struct spi_message; - -struct spi_transfer; - -struct spi_controller_mem_ops; - -struct spi_controller { - struct device dev; - struct list_head list; - s16 bus_num; - u16 num_chipselect; - u16 dma_alignment; - u32 mode_bits; - u32 buswidth_override_bits; - u32 bits_per_word_mask; - u32 min_speed_hz; - u32 max_speed_hz; - u16 flags; - bool devm_allocated; - bool slave; - size_t (*max_transfer_size)(struct spi_device *); - size_t (*max_message_size)(struct spi_device *); - struct mutex io_mutex; - spinlock_t bus_lock_spinlock; - struct mutex bus_lock_mutex; - bool bus_lock_flag; - int (*setup)(struct spi_device *); - int (*set_cs_timing)(struct spi_device *, struct spi_delay *, struct spi_delay *, struct spi_delay *); - int (*transfer)(struct spi_device *, struct spi_message *); - void (*cleanup)(struct spi_device *); - bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - bool queued; - struct kthread_worker *kworker; - struct kthread_work pump_messages; - spinlock_t queue_lock; - struct list_head queue; - struct spi_message *cur_msg; - bool idling; - bool busy; - bool running; - bool rt; - bool auto_runtime_pm; - bool cur_msg_prepared; - bool cur_msg_mapped; - bool last_cs_enable; - bool last_cs_mode_high; - bool fallback; - struct completion xfer_completion; - size_t max_dma_len; - int (*prepare_transfer_hardware)(struct spi_controller *); - int (*transfer_one_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_transfer_hardware)(struct spi_controller *); - int (*prepare_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_message)(struct spi_controller *, struct spi_message *); - int (*slave_abort)(struct spi_controller *); - void (*set_cs)(struct spi_device *, bool); - int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - void (*handle_err)(struct spi_controller *, struct spi_message *); - const struct spi_controller_mem_ops *mem_ops; - struct spi_delay cs_setup; - struct spi_delay cs_hold; - struct spi_delay cs_inactive; - int *cs_gpios; - struct gpio_desc **cs_gpiods; - bool use_gpio_descriptors; - s8 unused_native_cs; - s8 max_native_cs; - struct spi_statistics statistics; - struct dma_chan___2 *dma_tx; - struct dma_chan___2 *dma_rx; - void *dummy_rx; - void *dummy_tx; - int (*fw_translate_cs)(struct spi_controller *, unsigned int); - bool ptp_sts_supported; - long unsigned int irq_flags; -}; - -struct spi_driver { - const struct spi_device_id *id_table; - int (*probe)(struct spi_device *); - int (*remove)(struct spi_device *); - void (*shutdown)(struct spi_device *); - struct device_driver driver; -}; - -struct spi_message { - struct list_head transfers; - struct spi_device *spi; - unsigned int is_dma_mapped: 1; - void (*complete)(void *); - void *context; - unsigned int frame_length; - unsigned int actual_length; - int status; - struct list_head queue; - void *state; - struct list_head resources; -}; - -struct spi_transfer { - const void *tx_buf; - void *rx_buf; - unsigned int len; - dma_addr_t tx_dma; - dma_addr_t rx_dma; - struct sg_table tx_sg; - struct sg_table rx_sg; - unsigned int cs_change: 1; - unsigned int tx_nbits: 3; - unsigned int rx_nbits: 3; - u8 bits_per_word; - u16 delay_usecs; - struct spi_delay delay; - struct spi_delay cs_change_delay; - struct spi_delay word_delay; - u32 speed_hz; - u32 effective_speed_hz; - unsigned int ptp_sts_word_pre; - unsigned int ptp_sts_word_post; - struct ptp_system_timestamp *ptp_sts; - bool timestamped; - struct list_head transfer_list; - u16 error; -}; - -struct spi_mem; - -struct spi_mem_op; - -struct spi_mem_dirmap_desc; - -struct spi_controller_mem_ops { - int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); - bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); - int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); - const char * (*get_name)(struct spi_mem *); - int (*dirmap_create)(struct spi_mem_dirmap_desc *); - void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); - ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); - ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); -}; - typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); struct spi_res { @@ -78708,7 +102343,7 @@ struct spi_replaced_transfers { struct spi_board_info { char modalias[32]; const void *platform_data; - const struct property_entry *properties; + const struct software_node *swnode; void *controller_data; int irq; u32 max_speed_hz; @@ -78778,6 +102413,26 @@ struct trace_event_raw_spi_controller { char __data[0]; }; +struct trace_event_raw_spi_setup { + struct trace_entry ent; + int bus_num; + int chip_select; + long unsigned int mode; + unsigned int bits_per_word; + unsigned int max_speed_hz; + int status; + char __data[0]; +}; + +struct trace_event_raw_spi_set_cs { + struct trace_entry ent; + int bus_num; + int chip_select; + long unsigned int mode; + bool enable; + char __data[0]; +}; + struct trace_event_raw_spi_message { struct trace_entry ent; int bus_num; @@ -78809,6 +102464,10 @@ struct trace_event_raw_spi_transfer { struct trace_event_data_offsets_spi_controller {}; +struct trace_event_data_offsets_spi_setup {}; + +struct trace_event_data_offsets_spi_set_cs {}; + struct trace_event_data_offsets_spi_message {}; struct trace_event_data_offsets_spi_message_done {}; @@ -78822,6 +102481,10 @@ typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); +typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); + +typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); + typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); @@ -78844,6 +102507,8 @@ struct acpi_spi_lookup { int irq; u8 bits_per_word; u8 chip_select; + int n; + int index; }; struct spi_mem_driver { @@ -78853,37 +102518,6 @@ struct spi_mem_driver { void (*shutdown)(struct spi_mem *); }; -struct spi_ioc_transfer { - __u64 tx_buf; - __u64 rx_buf; - __u32 len; - __u32 speed_hz; - __u16 delay_usecs; - __u8 bits_per_word; - __u8 cs_change; - __u8 tx_nbits; - __u8 rx_nbits; - __u8 word_delay_usecs; - __u8 pad; -}; - -struct spidev_data { - dev_t devt; - spinlock_t spi_lock; - struct spi_device *spi; - struct list_head device_entry; - struct mutex buf_lock; - unsigned int users; - u8 *tx_buffer; - u8 *rx_buffer; - u32 speed_hz; -}; - -struct devprobe2 { - struct net_device * (*probe)(int); - int status; -}; - enum { NETIF_F_SG_BIT = 0, NETIF_F_IP_CSUM_BIT = 1, @@ -78946,51 +102580,42 @@ enum { NETIF_F_HW_TLS_RECORD_BIT = 56, NETIF_F_GRO_FRAGLIST_BIT = 57, NETIF_F_HW_MACSEC_BIT = 58, - NETDEV_FEATURE_COUNT = 59, + NETIF_F_GRO_UDP_FWD_BIT = 59, + NETIF_F_HW_HSR_TAG_INS_BIT = 60, + NETIF_F_HW_HSR_TAG_RM_BIT = 61, + NETIF_F_HW_HSR_FWD_BIT = 62, + NETIF_F_HW_HSR_DUP_BIT = 63, + NETDEV_FEATURE_COUNT = 64, +}; + +typedef struct bio_vec skb_frag_t; + +struct skb_shared_hwtstamps { + ktime_t hwtstamp; }; enum { SKBTX_HW_TSTAMP = 1, SKBTX_SW_TSTAMP = 2, SKBTX_IN_PROGRESS = 4, - SKBTX_DEV_ZEROCOPY = 8, SKBTX_WIFI_STATUS = 16, - SKBTX_SHARED_FRAG = 32, SKBTX_SCHED_TSTAMP = 64, }; -enum netdev_priv_flags { - IFF_802_1Q_VLAN = 1, - IFF_EBRIDGE = 2, - IFF_BONDING = 4, - IFF_ISATAP = 8, - IFF_WAN_HDLC = 16, - IFF_XMIT_DST_RELEASE = 32, - IFF_DONT_BRIDGE = 64, - IFF_DISABLE_NETPOLL = 128, - IFF_MACVLAN_PORT = 256, - IFF_BRIDGE_PORT = 512, - IFF_OVS_DATAPATH = 1024, - IFF_TX_SKB_SHARING = 2048, - IFF_UNICAST_FLT = 4096, - IFF_TEAM_PORT = 8192, - IFF_SUPP_NOFCS = 16384, - IFF_LIVE_ADDR_CHANGE = 32768, - IFF_MACVLAN = 65536, - IFF_XMIT_DST_RELEASE_PERM = 131072, - IFF_L3MDEV_MASTER = 262144, - IFF_NO_QUEUE = 524288, - IFF_OPENVSWITCH = 1048576, - IFF_L3MDEV_SLAVE = 2097152, - IFF_TEAM = 4194304, - IFF_RXFH_CONFIGURED = 8388608, - IFF_PHONY_HEADROOM = 16777216, - IFF_MACSEC = 33554432, - IFF_NO_RX_HANDLER = 67108864, - IFF_FAILOVER = 134217728, - IFF_FAILOVER_SLAVE = 268435456, - IFF_L3MDEV_RX_HANDLER = 536870912, - IFF_LIVE_RENAME_OK = 1073741824, +struct skb_shared_info { + __u8 flags; + __u8 meta_len; + __u8 nr_frags; + __u8 tx_flags; + short unsigned int gso_size; + short unsigned int gso_segs; + struct sk_buff *frag_list; + struct skb_shared_hwtstamps hwtstamps; + unsigned int gso_type; + u32 tskey; + atomic_t dataref; + void *destructor_arg; + skb_frag_t frags[17]; }; struct mdio_board_info { @@ -79005,27 +102630,92 @@ struct mdio_board_entry { struct mdio_board_info board_info; }; -struct sfp; +struct mdiobus_devres { + struct mii_bus *mii; +}; -struct sfp_socket_ops; +enum netdev_state_t { + __LINK_STATE_START = 0, + __LINK_STATE_PRESENT = 1, + __LINK_STATE_NOCARRIER = 2, + __LINK_STATE_LINKWATCH_PENDING = 3, + __LINK_STATE_DORMANT = 4, + __LINK_STATE_TESTING = 5, +}; -struct sfp_quirk; +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; -struct sfp_upstream_ops; +enum { + ETHTOOL_MSG_KERNEL_NONE = 0, + ETHTOOL_MSG_STRSET_GET_REPLY = 1, + ETHTOOL_MSG_LINKINFO_GET_REPLY = 2, + ETHTOOL_MSG_LINKINFO_NTF = 3, + ETHTOOL_MSG_LINKMODES_GET_REPLY = 4, + ETHTOOL_MSG_LINKMODES_NTF = 5, + ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6, + ETHTOOL_MSG_DEBUG_GET_REPLY = 7, + ETHTOOL_MSG_DEBUG_NTF = 8, + ETHTOOL_MSG_WOL_GET_REPLY = 9, + ETHTOOL_MSG_WOL_NTF = 10, + ETHTOOL_MSG_FEATURES_GET_REPLY = 11, + ETHTOOL_MSG_FEATURES_SET_REPLY = 12, + ETHTOOL_MSG_FEATURES_NTF = 13, + ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14, + ETHTOOL_MSG_PRIVFLAGS_NTF = 15, + ETHTOOL_MSG_RINGS_GET_REPLY = 16, + ETHTOOL_MSG_RINGS_NTF = 17, + ETHTOOL_MSG_CHANNELS_GET_REPLY = 18, + ETHTOOL_MSG_CHANNELS_NTF = 19, + ETHTOOL_MSG_COALESCE_GET_REPLY = 20, + ETHTOOL_MSG_COALESCE_NTF = 21, + ETHTOOL_MSG_PAUSE_GET_REPLY = 22, + ETHTOOL_MSG_PAUSE_NTF = 23, + ETHTOOL_MSG_EEE_GET_REPLY = 24, + ETHTOOL_MSG_EEE_NTF = 25, + ETHTOOL_MSG_TSINFO_GET_REPLY = 26, + ETHTOOL_MSG_CABLE_TEST_NTF = 27, + ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28, + ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29, + ETHTOOL_MSG_FEC_GET_REPLY = 30, + ETHTOOL_MSG_FEC_NTF = 31, + ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 32, + ETHTOOL_MSG_STATS_GET_REPLY = 33, + ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 34, + __ETHTOOL_MSG_KERNEL_CNT = 35, + ETHTOOL_MSG_KERNEL_MAX = 34, +}; -struct sfp_bus { - struct kref kref; - struct list_head node; - struct fwnode_handle *fwnode; - const struct sfp_socket_ops *socket_ops; - struct device *sfp_dev; - struct sfp *sfp; - const struct sfp_quirk *sfp_quirk; - const struct sfp_upstream_ops *upstream_ops; - void *upstream; - struct phy_device *phydev; - bool registered; - bool started; +struct phy_led_trigger { + struct led_trigger trigger; + char name[76]; + unsigned int speed; +}; + +struct phy_setting { + u32 speed; + u8 duplex; + u8 bit; +}; + +struct ethtool_phy_ops { + int (*get_sset_count)(struct phy_device *); + int (*get_strings)(struct phy_device *, u8 *); + int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *); + int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *); +}; + +struct phy_fixup { + struct list_head list; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); }; struct sfp_eeprom_base { @@ -79144,6 +102834,100 @@ struct sfp_eeprom_id { struct sfp_eeprom_ext ext; }; +struct sfp_upstream_ops { + void (*attach)(void *, struct sfp_bus *); + void (*detach)(void *, struct sfp_bus *); + int (*module_insert)(void *, const struct sfp_eeprom_id *); + void (*module_remove)(void *); + int (*module_start)(void *); + void (*module_stop)(void *); + void (*link_down)(void *); + void (*link_up)(void *); + int (*connect_phy)(void *, struct phy_device *); + void (*disconnect_phy)(void *); +}; + +struct trace_event_raw_mdio_access { + struct trace_entry ent; + char busid[61]; + char read; + u8 addr; + u16 val; + unsigned int regnum; + char __data[0]; +}; + +struct trace_event_data_offsets_mdio_access {}; + +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; +}; + +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); +}; + +struct fixed_phy_status { + int link; + int speed; + int duplex; + int pause; + int asym_pause; +}; + +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; +}; + +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, +}; + +struct mii_timestamping_ctrl { + struct mii_timestamper * (*probe_channel)(struct device *, unsigned int); + void (*release_channel)(struct device *, struct mii_timestamper *); +}; + +struct mii_timestamping_desc { + struct list_head list; + struct mii_timestamping_ctrl *ctrl; + struct device *device; +}; + +struct sfp; + +struct sfp_socket_ops; + +struct sfp_quirk; + +struct sfp_bus { + struct kref kref; + struct list_head node; + struct fwnode_handle *fwnode; + const struct sfp_socket_ops *socket_ops; + struct device *sfp_dev; + struct sfp *sfp; + const struct sfp_quirk *sfp_quirk; + const struct sfp_upstream_ops *upstream_ops; + void *upstream; + struct phy_device *phydev; + bool registered; + bool started; +}; + enum { SFF8024_ID_UNK = 0, SFF8024_ID_SFF_8472 = 2, @@ -79194,19 +102978,6 @@ enum { SFF8024_ECC_2_5GBASE_T = 30, }; -struct sfp_upstream_ops { - void (*attach)(void *, struct sfp_bus *); - void (*detach)(void *, struct sfp_bus *); - int (*module_insert)(void *, const struct sfp_eeprom_id *); - void (*module_remove)(void *); - int (*module_start)(void *); - void (*module_stop)(void *); - void (*link_down)(void *); - void (*link_up)(void *); - int (*connect_phy)(void *, struct phy_device *); - void (*disconnect_phy)(void *); -}; - struct sfp_socket_ops { void (*attach)(struct sfp *); void (*detach)(struct sfp *); @@ -79214,6 +102985,7 @@ struct sfp_socket_ops { void (*stop)(struct sfp *); int (*module_info)(struct sfp *, struct ethtool_modinfo *); int (*module_eeprom)(struct sfp *, struct ethtool_eeprom *, u8 *); + int (*module_eeprom_by_page)(struct sfp *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); }; struct sfp_quirk { @@ -79222,6 +102994,3429 @@ struct sfp_quirk { void (*modes)(const struct sfp_eeprom_id *, long unsigned int *); }; +struct mdio_device_id { + __u32 phy_id; + __u32 phy_id_mask; +}; + +enum { + MDIO_AN_C22 = 65504, +}; + +struct fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; +}; + +struct fixed_phy { + int addr; + struct phy_device *phydev; + struct fixed_phy_status status; + bool no_carrier; + int (*link_update)(struct net_device *, struct fixed_phy_status *); + struct list_head node; + struct gpio_desc *link_gpiod; +}; + +struct flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; +}; + +struct flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; +}; + +struct flow_dissector { + unsigned int used_keys; + short unsigned int offset[28]; +}; + +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; + +struct nf_conntrack { + refcount_t use; +}; + +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, +}; + +struct mmpin { + struct user_struct *user; + unsigned int num_pg; +}; + +struct ubuf_info { + void (*callback)(struct sk_buff *, struct ubuf_info *, bool); + union { + struct { + long unsigned int desc; + void *ctx; + }; + struct { + u32 id; + u16 len; + u16 zerocopy: 1; + u32 bytelen; + }; + }; + refcount_t refcnt; + u8 flags; + struct mmpin mmp; +}; + +enum { + SKB_GSO_TCPV4 = 1, + SKB_GSO_DODGY = 2, + SKB_GSO_TCP_ECN = 4, + SKB_GSO_TCP_FIXEDID = 8, + SKB_GSO_TCPV6 = 16, + SKB_GSO_FCOE = 32, + SKB_GSO_GRE = 64, + SKB_GSO_GRE_CSUM = 128, + SKB_GSO_IPXIP4 = 256, + SKB_GSO_IPXIP6 = 512, + SKB_GSO_UDP_TUNNEL = 1024, + SKB_GSO_UDP_TUNNEL_CSUM = 2048, + SKB_GSO_PARTIAL = 4096, + SKB_GSO_TUNNEL_REMCSUM = 8192, + SKB_GSO_SCTP = 16384, + SKB_GSO_ESP = 32768, + SKB_GSO_UDP = 65536, + SKB_GSO_UDP_L4 = 131072, + SKB_GSO_FRAGLIST = 262144, +}; + +enum { + IFLA_TUN_UNSPEC = 0, + IFLA_TUN_OWNER = 1, + IFLA_TUN_GROUP = 2, + IFLA_TUN_TYPE = 3, + IFLA_TUN_PI = 4, + IFLA_TUN_VNET_HDR = 5, + IFLA_TUN_PERSIST = 6, + IFLA_TUN_MULTI_QUEUE = 7, + IFLA_TUN_NUM_QUEUES = 8, + IFLA_TUN_NUM_DISABLED_QUEUES = 9, + __IFLA_TUN_MAX = 10, +}; + +struct gro_list { + struct list_head list; + int count; +}; + +struct napi_struct { + struct list_head poll_list; + long unsigned int state; + int weight; + int defer_hard_irqs_count; + long unsigned int gro_bitmask; + int (*poll)(struct napi_struct *, int); + int poll_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + struct hrtimer timer; + struct list_head dev_list; + struct hlist_node napi_hash_node; + unsigned int napi_id; + struct task_struct *thread; +}; + +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, +}; + +typedef enum gro_result gro_result_t; + +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, +}; + +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; +}; + +struct ip_tunnel_parm { + char name[16]; + int link; + __be16 i_flags; + __be16 o_flags; + __be32 i_key; + __be32 o_key; + struct iphdr iph; +}; + +struct wpan_phy; + +struct wpan_dev_header_ops; + +struct wpan_dev { + struct wpan_phy *wpan_phy; + int iftype; + struct list_head list; + struct net_device *netdev; + const struct wpan_dev_header_ops *header_ops; + struct net_device *lowpan_dev; + u32 identifier; + __le16 pan_id; + __le16 short_addr; + __le64 extended_addr; + atomic_t bsn; + atomic_t dsn; + u8 min_be; + u8 max_be; + u8 csma_retries; + s8 frame_retries; + bool lbt; + bool promiscuous_mode; + bool ackreq; +}; + +struct tun_pi { + __u16 flags; + __be16 proto; +}; + +struct tun_filter { + __u16 flags; + __u16 count; + __u8 addr[0]; +}; + +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; +}; + +struct tun_msg_ctl { + short unsigned int type; + short unsigned int num; + void *ptr; +}; + +struct tun_xdp_hdr { + int buflen; + struct virtio_net_hdr gso; +}; + +struct fib_info; + +struct fib_nh { + struct fib_nh_common nh_common; + struct hlist_node nh_hash; + struct fib_info *nh_parent; + __u32 nh_tclassid; + __be32 nh_saddr; + int nh_saddr_genid; +}; + +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; +}; + +struct nh_info; + +struct nh_group; + +struct nexthop { + struct rb_node rb_node; + struct list_head fi_list; + struct list_head f6i_list; + struct list_head fdb_list; + struct list_head grp_list; + struct net *net; + u32 id; + u8 protocol; + u8 nh_flags; + bool is_group; + refcount_t refcnt; + struct callback_head rcu; + union { + struct nh_info *nh_info; + struct nh_group *nh_grp; + }; +}; + +struct nh_info { + struct hlist_node dev_hash; + struct nexthop *nh_parent; + u8 family; + bool reject_nh; + bool fdb_nh; + union { + struct fib_nh_common fib_nhc; + struct fib_nh fib_nh; + struct fib6_nh fib6_nh; + }; +}; + +struct nh_grp_entry; + +struct nh_res_bucket { + struct nh_grp_entry *nh_entry; + atomic_long_t used_time; + long unsigned int migrated_time; + bool occupied; + u8 nh_flags; +}; + +struct nh_grp_entry { + struct nexthop *nh; + u8 weight; + union { + struct { + atomic_t upper_bound; + } hthr; + struct { + struct list_head uw_nh_entry; + u16 count_buckets; + u16 wants_buckets; + } res; + }; + struct list_head nh_list; + struct nexthop *nh_parent; +}; + +struct nh_res_table { + struct net *net; + u32 nhg_id; + struct delayed_work upkeep_dw; + struct list_head uw_nh_entries; + long unsigned int unbalanced_since; + u32 idle_timer; + u32 unbalanced_timer; + u16 num_nh_buckets; + struct nh_res_bucket nh_buckets[0]; +}; + +struct nh_group { + struct nh_group *spare; + u16 num_nh; + bool is_multipath; + bool hash_threshold; + bool resilient; + bool fdb_nh; + bool has_v4; + struct nh_res_table *res_table; + struct nh_grp_entry nh_entries[0]; +}; + +enum { + AX25_VALUES_IPDEFMODE = 0, + AX25_VALUES_AXDEFMODE = 1, + AX25_VALUES_BACKOFF = 2, + AX25_VALUES_CONMODE = 3, + AX25_VALUES_WINDOW = 4, + AX25_VALUES_EWINDOW = 5, + AX25_VALUES_T1 = 6, + AX25_VALUES_T2 = 7, + AX25_VALUES_T3 = 8, + AX25_VALUES_IDLE = 9, + AX25_VALUES_N2 = 10, + AX25_VALUES_PACLEN = 11, + AX25_VALUES_PROTOCOL = 12, + AX25_VALUES_DS_TIMEOUT = 13, + AX25_MAX_VALUES = 14, +}; + +enum nl802154_cca_modes { + __NL802154_CCA_INVALID = 0, + NL802154_CCA_ENERGY = 1, + NL802154_CCA_CARRIER = 2, + NL802154_CCA_ENERGY_CARRIER = 3, + NL802154_CCA_ALOHA = 4, + NL802154_CCA_UWB_SHR = 5, + NL802154_CCA_UWB_MULTIPLEXED = 6, + __NL802154_CCA_ATTR_AFTER_LAST = 7, + NL802154_CCA_ATTR_MAX = 6, +}; + +enum nl802154_cca_opts { + NL802154_CCA_OPT_ENERGY_CARRIER_AND = 0, + NL802154_CCA_OPT_ENERGY_CARRIER_OR = 1, + __NL802154_CCA_OPT_ATTR_AFTER_LAST = 2, + NL802154_CCA_OPT_ATTR_MAX = 1, +}; + +enum nl802154_supported_bool_states { + NL802154_SUPPORTED_BOOL_FALSE = 0, + NL802154_SUPPORTED_BOOL_TRUE = 1, + __NL802154_SUPPORTED_BOOL_INVALD = 2, + NL802154_SUPPORTED_BOOL_BOTH = 3, + __NL802154_SUPPORTED_BOOL_AFTER_LAST = 4, + NL802154_SUPPORTED_BOOL_MAX = 3, +}; + +struct wpan_phy_supported { + u32 channels[32]; + u32 cca_modes; + u32 cca_opts; + u32 iftypes; + enum nl802154_supported_bool_states lbt; + u8 min_minbe; + u8 max_minbe; + u8 min_maxbe; + u8 max_maxbe; + u8 min_csma_backoffs; + u8 max_csma_backoffs; + s8 min_frame_retries; + s8 max_frame_retries; + size_t tx_powers_size; + size_t cca_ed_levels_size; + const s32 *tx_powers; + const s32 *cca_ed_levels; +}; + +struct wpan_phy_cca { + enum nl802154_cca_modes mode; + enum nl802154_cca_opts opt; +}; + +struct wpan_phy { + const void *privid; + u32 flags; + u8 current_channel; + u8 current_page; + struct wpan_phy_supported supported; + s32 transmit_power; + struct wpan_phy_cca cca; + __le64 perm_extended_addr; + s32 cca_ed_level; + u8 symbol_duration; + u16 lifs_period; + u16 sifs_period; + struct device dev; + possible_net_t _net; + char priv[0]; +}; + +struct ieee802154_addr { + u8 mode; + __le16 pan_id; + union { + __le16 short_addr; + __le64 extended_addr; + }; +}; + +struct wpan_dev_header_ops { + int (*create)(struct sk_buff *, struct net_device *, const struct ieee802154_addr *, const struct ieee802154_addr *, unsigned int); +}; + +struct tap_filter { + unsigned int count; + u32 mask[2]; + unsigned char addr[48]; +}; + +struct tun_struct; + +struct tun_file { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + struct socket socket; + struct tun_struct *tun; + struct fasync_struct *fasync; + unsigned int flags; + union { + u16 queue_index; + unsigned int ifindex; + }; + struct napi_struct napi; + bool napi_enabled; + bool napi_frags_enabled; + struct mutex napi_mutex; + struct list_head next; + struct tun_struct *detached; + long: 64; + long: 64; + long: 64; + struct ptr_ring tx_ring; + struct xdp_rxq_info xdp_rxq; +}; + +struct tun_prog; + +struct tun_struct { + struct tun_file *tfiles[256]; + unsigned int numqueues; + unsigned int flags; + kuid_t owner; + kgid_t group; + struct net_device *dev; + netdev_features_t set_features; + int align; + int vnet_hdr_sz; + int sndbuf; + struct tap_filter txflt; + struct sock_fprog fprog; + bool filter_attached; + u32 msg_enable; + spinlock_t lock; + struct hlist_head flows[1024]; + struct timer_list flow_gc_timer; + long unsigned int ageing_time; + unsigned int numdisabled; + struct list_head disabled; + void *security; + u32 flow_count; + u32 rx_batched; + atomic_long_t rx_frame_errors; + struct bpf_prog *xdp_prog; + struct tun_prog *steering_prog; + struct tun_prog *filter_prog; + struct ethtool_link_ksettings link_ksettings; + struct file *file; + struct ifreq *ifr; +}; + +struct tun_page { + struct page *page; + int count; +}; + +struct tun_flow_entry { + struct hlist_node hash_link; + struct callback_head rcu; + struct tun_struct *tun; + u32 rxhash; + u32 rps_rxhash; + int queue_index; + long: 64; + long unsigned int updated; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct tun_prog { + struct callback_head rcu; + struct bpf_prog *prog; +}; + +struct veth { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; +}; + +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + __IFLA_MAX = 58, +}; + +enum { + IFLA_PPP_UNSPEC = 0, + IFLA_PPP_DEV_FD = 1, + __IFLA_PPP_MAX = 2, +}; + +enum NPmode { + NPMODE_PASS = 0, + NPMODE_DROP = 1, + NPMODE_ERROR = 2, + NPMODE_QUEUE = 3, +}; + +struct pppstat { + __u32 ppp_discards; + __u32 ppp_ibytes; + __u32 ppp_ioctects; + __u32 ppp_ipackets; + __u32 ppp_ierrors; + __u32 ppp_ilqrs; + __u32 ppp_obytes; + __u32 ppp_ooctects; + __u32 ppp_opackets; + __u32 ppp_oerrors; + __u32 ppp_olqrs; +}; + +struct vjstat { + __u32 vjs_packets; + __u32 vjs_compressed; + __u32 vjs_searches; + __u32 vjs_misses; + __u32 vjs_uncompressedin; + __u32 vjs_compressedin; + __u32 vjs_errorin; + __u32 vjs_tossed; +}; + +struct compstat { + __u32 unc_bytes; + __u32 unc_packets; + __u32 comp_bytes; + __u32 comp_packets; + __u32 inc_bytes; + __u32 inc_packets; + __u32 in_count; + __u32 bytes_out; + double ratio; +}; + +struct ppp_stats { + struct pppstat p; + struct vjstat vj; +}; + +struct ppp_comp_stats { + struct compstat c; + struct compstat d; +}; + +struct ppp_idle32 { + __s32 xmit_idle; + __s32 recv_idle; +}; + +struct ppp_idle64 { + __s64 xmit_idle; + __s64 recv_idle; +}; + +struct npioctl { + int protocol; + enum NPmode mode; +}; + +struct ppp_option_data { + __u8 *ptr; + __u32 length; + int transmit; +}; + +struct ppp_channel; + +struct ppp_channel_ops { + int (*start_xmit)(struct ppp_channel *, struct sk_buff *); + int (*ioctl)(struct ppp_channel *, unsigned int, long unsigned int); + int (*fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *, const struct ppp_channel *); +}; + +struct ppp_channel { + void *private; + const struct ppp_channel_ops *ops; + int mtu; + int hdrlen; + void *ppp; + int speed; + int latency; +}; + +struct compressor { + int compress_proto; + void * (*comp_alloc)(unsigned char *, int); + void (*comp_free)(void *); + int (*comp_init)(void *, unsigned char *, int, int, int, int); + void (*comp_reset)(void *); + int (*compress)(void *, unsigned char *, unsigned char *, int, int); + void (*comp_stat)(void *, struct compstat *); + void * (*decomp_alloc)(unsigned char *, int); + void (*decomp_free)(void *); + int (*decomp_init)(void *, unsigned char *, int, int, int, int, int); + void (*decomp_reset)(void *); + int (*decompress)(void *, unsigned char *, int, unsigned char *, int); + void (*incomp)(void *, unsigned char *, int); + void (*decomp_stat)(void *, struct compstat *); + struct module *owner; + unsigned int comp_extra; +}; + +typedef __u8 byte_t; + +typedef __u32 int32; + +struct cstate___2 { + byte_t cs_this; + bool initialized; + struct cstate___2 *next; + struct iphdr cs_ip; + struct tcphdr cs_tcp; + unsigned char cs_ipopt[64]; + unsigned char cs_tcpopt[64]; + int cs_hsize; +}; + +struct slcompress { + struct cstate___2 *tstate; + struct cstate___2 *rstate; + byte_t tslot_limit; + byte_t rslot_limit; + byte_t xmit_oldest; + byte_t xmit_current; + byte_t recv_current; + byte_t flags; + int32 sls_o_nontcp; + int32 sls_o_tcp; + int32 sls_o_uncompressed; + int32 sls_o_compressed; + int32 sls_o_searches; + int32 sls_o_misses; + int32 sls_i_uncompressed; + int32 sls_i_compressed; + int32 sls_i_error; + int32 sls_i_tossed; + int32 sls_i_runt; + int32 sls_i_badcheck; +}; + +struct ppp_file { + enum { + INTERFACE = 1, + CHANNEL = 2, + } kind; + struct sk_buff_head xq; + struct sk_buff_head rq; + wait_queue_head_t rwait; + refcount_t refcnt; + int hdrlen; + int index; + int dead; +}; + +struct ppp_link_stats { + u64 rx_packets; + u64 tx_packets; + u64 rx_bytes; + u64 tx_bytes; +}; + +struct ppp { + struct ppp_file file; + struct file *owner; + struct list_head channels; + int n_channels; + spinlock_t rlock; + spinlock_t wlock; + int *xmit_recursion; + int mru; + unsigned int flags; + unsigned int xstate; + unsigned int rstate; + int debug; + struct slcompress *vj; + enum NPmode npmode[6]; + struct sk_buff *xmit_pending; + struct compressor *xcomp; + void *xc_state; + struct compressor *rcomp; + void *rc_state; + long unsigned int last_xmit; + long unsigned int last_recv; + struct net_device *dev; + int closing; + int nxchan; + u32 nxseq; + int mrru; + u32 nextseq; + u32 minseq; + struct sk_buff_head mrq; + struct bpf_prog *pass_filter; + struct bpf_prog *active_filter; + struct net *ppp_net; + struct ppp_link_stats stats64; +}; + +struct channel { + struct ppp_file file; + struct list_head list; + struct ppp_channel *chan; + struct rw_semaphore chan_sem; + spinlock_t downl; + struct ppp *ppp; + struct net *chan_net; + struct list_head clist; + rwlock_t upl; + struct channel *bridge; + u8 avail; + u8 had_frag; + u32 lastseq; + int speed; +}; + +struct ppp_config { + struct file *file; + s32 unit; + bool ifname_is_set; +}; + +struct ppp_net { + struct idr units_idr; + struct mutex all_ppp_mutex; + struct list_head all_channels; + struct list_head new_channels; + int last_channel_index; + spinlock_t all_channels_lock; +}; + +struct sock_fprog32 { + short unsigned int len; + compat_caddr_t filter; +}; + +struct ppp_option_data32 { + compat_uptr_t ptr; + u32 length; + compat_int_t transmit; +}; + +struct ppp_mp_skb_parm { + u32 sequence; + u8 BEbits; +}; + +struct compressor_entry { + struct list_head list; + struct compressor *comp; +}; + +struct wl1251_platform_data { + int power_gpio; + int irq; + bool use_eeprom; +}; + +enum skb_free_reason { + SKB_REASON_CONSUMED = 0, + SKB_REASON_DROPPED = 1, +}; + +enum ethtool_stringset { + ETH_SS_TEST = 0, + ETH_SS_STATS = 1, + ETH_SS_PRIV_FLAGS = 2, + ETH_SS_NTUPLE_FILTERS = 3, + ETH_SS_FEATURES = 4, + ETH_SS_RSS_HASH_FUNCS = 5, + ETH_SS_TUNABLES = 6, + ETH_SS_PHY_STATS = 7, + ETH_SS_PHY_TUNABLES = 8, + ETH_SS_LINK_MODES = 9, + ETH_SS_MSG_CLASSES = 10, + ETH_SS_WOL_MODES = 11, + ETH_SS_SOF_TIMESTAMPING = 12, + ETH_SS_TS_TX_TYPES = 13, + ETH_SS_TS_RX_FILTERS = 14, + ETH_SS_UDP_TUNNEL_TYPES = 15, + ETH_SS_STATS_STD = 16, + ETH_SS_STATS_ETH_PHY = 17, + ETH_SS_STATS_ETH_MAC = 18, + ETH_SS_STATS_ETH_CTRL = 19, + ETH_SS_STATS_RMON = 20, + ETH_SS_COUNT = 21, +}; + +struct xen_netif_tx_request { + grant_ref_t gref; + uint16_t offset; + uint16_t flags; + uint16_t id; + uint16_t size; +}; + +struct xen_netif_extra_info { + uint8_t type; + uint8_t flags; + union { + struct { + uint16_t size; + uint8_t type; + uint8_t pad; + uint16_t features; + } gso; + struct { + uint8_t addr[6]; + } mcast; + struct { + uint8_t type; + uint8_t algorithm; + uint8_t value[4]; + } hash; + struct { + uint16_t headroom; + uint16_t pad[2]; + } xdp; + uint16_t pad[3]; + } u; +}; + +struct xen_netif_tx_response { + uint16_t id; + int16_t status; +}; + +struct xen_netif_rx_request { + uint16_t id; + uint16_t pad; + grant_ref_t gref; +}; + +struct xen_netif_rx_response { + uint16_t id; + uint16_t offset; + uint16_t flags; + int16_t status; +}; + +union xen_netif_tx_sring_entry { + struct xen_netif_tx_request req; + struct xen_netif_tx_response rsp; +}; + +struct xen_netif_tx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_tx_sring_entry ring[1]; +}; + +struct xen_netif_tx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_tx_sring *sring; +}; + +union xen_netif_rx_sring_entry { + struct xen_netif_rx_request req; + struct xen_netif_rx_response rsp; +}; + +struct xen_netif_rx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_rx_sring_entry ring[1]; +}; + +struct xen_netif_rx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_rx_sring *sring; +}; + +struct netfront_cb { + int pull_to; +}; + +struct netfront_stats { + u64 packets; + u64 bytes; + struct u64_stats_sync syncp; +}; + +struct netfront_info; + +struct netfront_queue { + unsigned int id; + char name[22]; + struct netfront_info *info; + struct bpf_prog *xdp_prog; + struct napi_struct napi; + unsigned int tx_evtchn; + unsigned int rx_evtchn; + unsigned int tx_irq; + unsigned int rx_irq; + char tx_irq_name[25]; + char rx_irq_name[25]; + spinlock_t tx_lock; + struct xen_netif_tx_front_ring tx; + int tx_ring_ref; + struct sk_buff *tx_skbs[256]; + short unsigned int tx_link[256]; + grant_ref_t gref_tx_head; + grant_ref_t grant_tx_ref[256]; + struct page *grant_tx_page[256]; + unsigned int tx_skb_freelist; + unsigned int tx_pend_queue; + long: 64; + spinlock_t rx_lock; + struct xen_netif_rx_front_ring rx; + int rx_ring_ref; + struct timer_list rx_refill_timer; + struct sk_buff *rx_skbs[256]; + grant_ref_t gref_rx_head; + grant_ref_t grant_rx_ref[256]; + unsigned int rx_rsp_unconsumed; + spinlock_t rx_cons_lock; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; +}; + +struct netfront_info { + struct list_head list; + struct net_device *netdev; + struct xenbus_device *xbdev; + struct netfront_queue *queues; + struct netfront_stats *rx_stats; + struct netfront_stats *tx_stats; + bool netback_has_xdp_headroom; + bool netfront_xdp_enabled; + bool broken; + bool bounce; + atomic_t rx_gso_checksum_fixup; +}; + +struct netfront_rx_info { + struct xen_netif_rx_response rx; + struct xen_netif_extra_info extras[5]; +}; + +struct xennet_gnttab_make_txreq { + struct netfront_queue *queue; + struct sk_buff *skb; + struct page *page; + struct xen_netif_tx_request *tx; + struct xen_netif_tx_request tx_local; + unsigned int size; +}; + +struct xennet_stat { + char name[32]; + u16 offset; +}; + +struct vfio_info_cap_header { + __u16 id; + __u16 version; + __u32 next; +}; + +struct vfio_group_status { + __u32 argsz; + __u32 flags; +}; + +struct vfio_irq_set { + __u32 argsz; + __u32 flags; + __u32 index; + __u32 start; + __u32 count; + __u8 data[0]; +}; + +struct vfio_device_set { + void *set_id; + struct mutex lock; + struct list_head device_list; + unsigned int device_count; +}; + +struct vfio_device_ops; + +struct vfio_group; + +struct vfio_device { + struct device *dev; + const struct vfio_device_ops *ops; + struct vfio_group *group; + struct vfio_device_set *dev_set; + struct list_head dev_set_list; + refcount_t refcount; + unsigned int open_count; + struct completion comp; + struct list_head group_next; +}; + +struct vfio_device_ops { + char *name; + int (*open_device)(struct vfio_device *); + void (*close_device)(struct vfio_device *); + ssize_t (*read)(struct vfio_device *, char *, size_t, loff_t *); + ssize_t (*write)(struct vfio_device *, const char *, size_t, loff_t *); + long int (*ioctl)(struct vfio_device *, unsigned int, long unsigned int); + int (*mmap)(struct vfio_device *, struct vm_area_struct *); + void (*request)(struct vfio_device *, unsigned int); + int (*match)(struct vfio_device *, char *); +}; + +struct vfio_container; + +struct vfio_group { + struct kref kref; + int minor; + atomic_t container_users; + struct iommu_group *iommu_group; + struct vfio_container *container; + struct list_head device_list; + struct mutex device_lock; + struct device *dev; + struct notifier_block nb; + struct list_head vfio_next; + struct list_head container_next; + struct list_head unbound_list; + struct mutex unbound_lock; + atomic_t opened; + wait_queue_head_t container_q; + bool noiommu; + unsigned int dev_counter; + struct kvm *kvm; + struct blocking_notifier_head notifier; +}; + +enum vfio_iommu_notify_type { + VFIO_IOMMU_CONTAINER_CLOSE = 0, +}; + +struct vfio_iommu_driver_ops { + char *name; + struct module *owner; + void * (*open)(long unsigned int); + void (*release)(void *); + ssize_t (*read)(void *, char *, size_t, loff_t *); + ssize_t (*write)(void *, const char *, size_t, loff_t *); + long int (*ioctl)(void *, unsigned int, long unsigned int); + int (*mmap)(void *, struct vm_area_struct *); + int (*attach_group)(void *, struct iommu_group *); + void (*detach_group)(void *, struct iommu_group *); + int (*pin_pages)(void *, struct iommu_group *, long unsigned int *, int, int, long unsigned int *); + int (*unpin_pages)(void *, long unsigned int *, int); + int (*register_notifier)(void *, long unsigned int *, struct notifier_block *); + int (*unregister_notifier)(void *, struct notifier_block *); + int (*dma_rw)(void *, dma_addr_t, void *, size_t, bool); + struct iommu_domain * (*group_iommu_domain)(void *, struct iommu_group *); + void (*notify)(void *, enum vfio_iommu_notify_type); +}; + +enum vfio_notify_type { + VFIO_IOMMU_NOTIFY = 0, + VFIO_GROUP_NOTIFY = 1, +}; + +struct vfio_info_cap { + struct vfio_info_cap_header *buf; + size_t size; +}; + +struct vfio { + struct class *class; + struct list_head iommu_drivers_list; + struct mutex iommu_drivers_lock; + struct list_head group_list; + struct idr group_idr; + struct mutex group_lock; + struct cdev group_cdev; + dev_t group_devt; +}; + +struct vfio_iommu_driver { + const struct vfio_iommu_driver_ops *ops; + struct list_head vfio_next; +}; + +struct vfio_container { + struct kref kref; + struct list_head group_list; + struct rw_semaphore group_lock; + struct vfio_iommu_driver *iommu_driver; + void *iommu_data; + bool noiommu; +}; + +struct vfio_unbound_dev { + struct device *dev; + struct list_head unbound_next; +}; + +struct vfio_group_put_work { + struct work_struct work; + struct vfio_group *group; +}; + +struct virqfd { + void *opaque; + struct eventfd_ctx *eventfd; + int (*handler)(void *, void *); + void (*thread)(void *, void *); + void *data; + struct work_struct inject; + wait_queue_entry_t wait; + poll_table pt; + struct work_struct shutdown; + struct work_struct flush_inject; + struct virqfd **pvirqfd; +}; + +struct vfio_iommu_type1_info { + __u32 argsz; + __u32 flags; + __u64 iova_pgsizes; + __u32 cap_offset; +}; + +struct vfio_iova_range { + __u64 start; + __u64 end; +}; + +struct vfio_iommu_type1_info_cap_iova_range { + struct vfio_info_cap_header header; + __u32 nr_iovas; + __u32 reserved; + struct vfio_iova_range iova_ranges[0]; +}; + +struct vfio_iommu_type1_info_cap_migration { + struct vfio_info_cap_header header; + __u32 flags; + __u64 pgsize_bitmap; + __u64 max_dirty_bitmap_size; +}; + +struct vfio_iommu_type1_info_dma_avail { + struct vfio_info_cap_header header; + __u32 avail; +}; + +struct vfio_iommu_type1_dma_map { + __u32 argsz; + __u32 flags; + __u64 vaddr; + __u64 iova; + __u64 size; +}; + +struct vfio_bitmap { + __u64 pgsize; + __u64 size; + __u64 *data; +}; + +struct vfio_iommu_type1_dma_unmap { + __u32 argsz; + __u32 flags; + __u64 iova; + __u64 size; + __u8 data[0]; +}; + +struct vfio_iommu_type1_dirty_bitmap { + __u32 argsz; + __u32 flags; + __u8 data[0]; +}; + +struct vfio_iommu_type1_dirty_bitmap_get { + __u64 iova; + __u64 size; + struct vfio_bitmap bitmap; +}; + +struct mdev_type; + +struct mdev_device { + struct device dev; + guid_t uuid; + void *driver_data; + struct list_head next; + struct mdev_type *type; + struct device *iommu_device; + bool active; +}; + +struct vfio_domain; + +struct vfio_iommu { + struct list_head domain_list; + struct list_head iova_list; + struct vfio_domain *external_domain; + struct mutex lock; + struct rb_root dma_list; + struct blocking_notifier_head notifier; + unsigned int dma_avail; + unsigned int vaddr_invalid_count; + uint64_t pgsize_bitmap; + uint64_t num_non_pinned_groups; + wait_queue_head_t vaddr_wait; + bool v2; + bool nesting; + bool dirty_page_tracking; + bool container_open; +}; + +struct vfio_domain { + struct iommu_domain *domain; + struct list_head next; + struct list_head group_list; + int prot; + bool fgsp; +}; + +struct vfio_dma { + struct rb_node node; + dma_addr_t iova; + long unsigned int vaddr; + size_t size; + int prot; + bool iommu_mapped; + bool lock_cap; + bool vaddr_invalid; + struct task_struct *task; + struct rb_root pfn_list; + long unsigned int *bitmap; + struct mm_struct *mm; + size_t locked_vm; +}; + +struct vfio_batch { + struct page **pages; + struct page *fallback_page; + int capacity; + int size; + int offset; +}; + +struct vfio_iommu_group { + struct iommu_group *iommu_group; + struct list_head next; + bool mdev_group; + bool pinned_page_dirty_scope; +}; + +struct vfio_iova { + struct list_head list; + dma_addr_t start; + dma_addr_t end; +}; + +struct vfio_pfn { + struct rb_node node; + dma_addr_t iova; + long unsigned int pfn; + unsigned int ref_count; +}; + +struct vfio_regions { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; + size_t len; +}; + +struct vfio_device_info { + __u32 argsz; + __u32 flags; + __u32 num_regions; + __u32 num_irqs; + __u32 cap_offset; +}; + +struct vfio_region_info { + __u32 argsz; + __u32 flags; + __u32 index; + __u32 cap_offset; + __u64 size; + __u64 offset; +}; + +struct vfio_region_info_cap_type { + struct vfio_info_cap_header header; + __u32 type; + __u32 subtype; +}; + +struct vfio_irq_info { + __u32 argsz; + __u32 flags; + __u32 index; + __u32 count; +}; + +enum { + VFIO_PCI_BAR0_REGION_INDEX = 0, + VFIO_PCI_BAR1_REGION_INDEX = 1, + VFIO_PCI_BAR2_REGION_INDEX = 2, + VFIO_PCI_BAR3_REGION_INDEX = 3, + VFIO_PCI_BAR4_REGION_INDEX = 4, + VFIO_PCI_BAR5_REGION_INDEX = 5, + VFIO_PCI_ROM_REGION_INDEX = 6, + VFIO_PCI_CONFIG_REGION_INDEX = 7, + VFIO_PCI_VGA_REGION_INDEX = 8, + VFIO_PCI_NUM_REGIONS = 9, +}; + +enum { + VFIO_PCI_INTX_IRQ_INDEX = 0, + VFIO_PCI_MSI_IRQ_INDEX = 1, + VFIO_PCI_MSIX_IRQ_INDEX = 2, + VFIO_PCI_ERR_IRQ_INDEX = 3, + VFIO_PCI_REQ_IRQ_INDEX = 4, + VFIO_PCI_NUM_IRQS = 5, +}; + +struct vfio_pci_dependent_device { + __u32 group_id; + __u16 segment; + __u8 bus; + __u8 devfn; +}; + +struct vfio_pci_hot_reset_info { + __u32 argsz; + __u32 flags; + __u32 count; + struct vfio_pci_dependent_device devices[0]; +}; + +struct vfio_pci_hot_reset { + __u32 argsz; + __u32 flags; + __u32 count; + __s32 group_fds[0]; +}; + +struct vfio_device_ioeventfd { + __u32 argsz; + __u32 flags; + __u64 offset; + __u64 data; + __s32 fd; +}; + +struct vfio_device_feature { + __u32 argsz; + __u32 flags; + __u8 data[0]; +}; + +struct irq_bypass_consumer; + +struct irq_bypass_producer { + struct list_head node; + void *token; + int irq; + int (*add_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); + void (*del_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); + void (*stop)(struct irq_bypass_producer *); + void (*start)(struct irq_bypass_producer *); +}; + +struct irq_bypass_consumer { + struct list_head node; + void *token; + int (*add_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); + void (*del_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); + void (*stop)(struct irq_bypass_consumer *); + void (*start)(struct irq_bypass_consumer *); +}; + +struct vfio_pci_core_device; + +struct vfio_pci_ioeventfd { + struct list_head next; + struct vfio_pci_core_device *vdev; + struct virqfd *virqfd; + void *addr; + uint64_t data; + loff_t pos; + int bar; + int count; + bool test_mem; +}; + +struct perm_bits; + +struct vfio_pci_irq_ctx; + +struct vfio_pci_region; + +struct vfio_pci_vf_token; + +struct vfio_pci_core_device { + struct vfio_device vdev; + struct pci_dev *pdev; + void *barmap[6]; + bool bar_mmap_supported[6]; + u8 *pci_config_map; + u8 *vconfig; + struct perm_bits *msi_perm; + spinlock_t irqlock; + struct mutex igate; + struct vfio_pci_irq_ctx *ctx; + int num_ctx; + int irq_type; + int num_regions; + struct vfio_pci_region *region; + u8 msi_qmax; + u8 msix_bar; + u16 msix_size; + u32 msix_offset; + u32 rbar[7]; + bool pci_2_3; + bool virq_disabled; + bool reset_works; + bool extended_caps; + bool bardirty; + bool has_vga; + bool needs_reset; + bool nointx; + bool needs_pm_restore; + struct pci_saved_state *pci_saved_state; + struct pci_saved_state *pm_save; + int ioeventfds_nr; + struct eventfd_ctx *err_trigger; + struct eventfd_ctx *req_trigger; + struct list_head dummy_resources_list; + struct mutex ioeventfds_lock; + struct list_head ioeventfds_list; + struct vfio_pci_vf_token *vf_token; + struct list_head sriov_pfs_item; + struct vfio_pci_core_device *sriov_pf_core_dev; + struct notifier_block nb; + struct mutex vma_lock; + struct list_head vma_list; + struct rw_semaphore memory_lock; +}; + +struct vfio_pci_irq_ctx { + struct eventfd_ctx *trigger; + struct virqfd *unmask; + struct virqfd *mask; + char *name; + bool masked; + struct irq_bypass_producer producer; +}; + +struct vfio_pci_regops { + ssize_t (*rw)(struct vfio_pci_core_device *, char *, size_t, loff_t *, bool); + void (*release)(struct vfio_pci_core_device *, struct vfio_pci_region *); + int (*mmap)(struct vfio_pci_core_device *, struct vfio_pci_region *, struct vm_area_struct *); + int (*add_capability)(struct vfio_pci_core_device *, struct vfio_pci_region *, struct vfio_info_cap *); +}; + +struct vfio_pci_region { + u32 type; + u32 subtype; + const struct vfio_pci_regops *ops; + void *data; + size_t size; + u32 flags; +}; + +struct vfio_pci_dummy_resource { + struct resource resource; + int index; + struct list_head res_next; +}; + +struct vfio_pci_vf_token { + struct mutex lock; + uuid_t uuid; + int users; +}; + +struct vfio_pci_mmap_vma { + struct vm_area_struct *vma; + struct list_head vma_next; +}; + +struct vfio_pci_fill_info { + int max; + int cur; + struct vfio_pci_dependent_device *devices; +}; + +struct vfio_pci_group_info { + int count; + struct vfio_group **groups; +}; + +struct vfio_pci_walk_info { + int (*fn)(struct pci_dev *, void *); + void *data; + struct pci_dev *pdev; + bool slot; + int ret; +}; + +struct perm_bits { + u8 *virt; + u8 *write; + int (*readfn)(struct vfio_pci_core_device *, int, int, struct perm_bits *, int, __le32 *); + int (*writefn)(struct vfio_pci_core_device *, int, int, struct perm_bits *, int, __le32); +}; + +enum { + PCI_ID_F_VFIO_DRIVER_OVERRIDE = 1, +}; + +struct cdrom_msf { + __u8 cdmsf_min0; + __u8 cdmsf_sec0; + __u8 cdmsf_frame0; + __u8 cdmsf_min1; + __u8 cdmsf_sec1; + __u8 cdmsf_frame1; +}; + +struct cdrom_volctrl { + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; +}; + +struct cdrom_subchnl { + __u8 cdsc_format; + __u8 cdsc_audiostatus; + __u8 cdsc_adr: 4; + __u8 cdsc_ctrl: 4; + __u8 cdsc_trk; + __u8 cdsc_ind; + union cdrom_addr cdsc_absaddr; + union cdrom_addr cdsc_reladdr; +}; + +struct cdrom_read_audio { + union cdrom_addr addr; + __u8 addr_format; + int nframes; + __u8 *buf; +}; + +struct cdrom_blk { + unsigned int from; + short unsigned int len; +}; + +struct dvd_layer { + __u8 book_version: 4; + __u8 book_type: 4; + __u8 min_rate: 4; + __u8 disc_size: 4; + __u8 layer_type: 4; + __u8 track_path: 1; + __u8 nlayers: 2; + char: 1; + __u8 track_density: 4; + __u8 linear_density: 4; + __u8 bca: 1; + __u32 start_sector; + __u32 end_sector; + __u32 end_sector_l0; +}; + +struct dvd_physical { + __u8 type; + __u8 layer_num; + struct dvd_layer layer[4]; +}; + +struct dvd_copyright { + __u8 type; + __u8 layer_num; + __u8 cpst; + __u8 rmi; +}; + +struct dvd_disckey { + __u8 type; + unsigned int agid: 2; + __u8 value[2048]; +}; + +struct dvd_bca { + __u8 type; + int len; + __u8 value[188]; +}; + +struct dvd_manufact { + __u8 type; + __u8 layer_num; + int len; + __u8 value[2048]; +}; + +typedef union { + __u8 type; + struct dvd_physical physical; + struct dvd_copyright copyright; + struct dvd_disckey disckey; + struct dvd_bca bca; + struct dvd_manufact manufact; +} dvd_struct; + +typedef __u8 dvd_key[5]; + +typedef __u8 dvd_challenge[10]; + +struct dvd_lu_send_agid { + __u8 type; + unsigned int agid: 2; +}; + +struct dvd_host_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; +}; + +struct dvd_send_key { + __u8 type; + unsigned int agid: 2; + dvd_key key; +}; + +struct dvd_lu_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; +}; + +struct dvd_lu_send_title_key { + __u8 type; + unsigned int agid: 2; + dvd_key title_key; + int lba; + unsigned int cpm: 1; + unsigned int cp_sec: 1; + unsigned int cgms: 2; +}; + +struct dvd_lu_send_asf { + __u8 type; + unsigned int agid: 2; + unsigned int asf: 1; +}; + +struct dvd_host_send_rpcstate { + __u8 type; + __u8 pdrc; +}; + +struct dvd_lu_send_rpcstate { + __u8 type: 2; + __u8 vra: 3; + __u8 ucca: 3; + __u8 region_mask; + __u8 rpc_scheme; +}; + +typedef union { + __u8 type; + struct dvd_lu_send_agid lsa; + struct dvd_host_send_challenge hsc; + struct dvd_send_key lsk; + struct dvd_lu_send_challenge lsc; + struct dvd_send_key hsk; + struct dvd_lu_send_title_key lstk; + struct dvd_lu_send_asf lsasf; + struct dvd_host_send_rpcstate hrpcs; + struct dvd_lu_send_rpcstate lrpcs; +} dvd_authinfo; + +struct mrw_feature_desc { + __be16 feature_code; + __u8 curr: 1; + __u8 persistent: 1; + __u8 feature_version: 4; + __u8 reserved1: 2; + __u8 add_len; + __u8 write: 1; + __u8 reserved2: 7; + __u8 reserved3; + __u8 reserved4; + __u8 reserved5; +}; + +struct rwrt_feature_desc { + __be16 feature_code; + __u8 curr: 1; + __u8 persistent: 1; + __u8 feature_version: 4; + __u8 reserved1: 2; + __u8 add_len; + __u32 last_lba; + __u32 block_size; + __u16 blocking; + __u8 page_present: 1; + __u8 reserved2: 7; + __u8 reserved3; +}; + +typedef struct { + __be16 disc_information_length; + __u8 disc_status: 2; + __u8 border_status: 2; + __u8 erasable: 1; + __u8 reserved1: 3; + __u8 n_first_track; + __u8 n_sessions_lsb; + __u8 first_track_lsb; + __u8 last_track_lsb; + __u8 mrw_status: 2; + __u8 dbit: 1; + __u8 reserved2: 2; + __u8 uru: 1; + __u8 dbc_v: 1; + __u8 did_v: 1; + __u8 disc_type; + __u8 n_sessions_msb; + __u8 first_track_msb; + __u8 last_track_msb; + __u32 disc_id; + __u32 lead_in; + __u32 lead_out; + __u8 disc_bar_code[8]; + __u8 reserved3; + __u8 n_opc; +} disc_information; + +typedef struct { + __be16 track_information_length; + __u8 track_lsb; + __u8 session_lsb; + __u8 reserved1; + __u8 track_mode: 4; + __u8 copy: 1; + __u8 damage: 1; + __u8 reserved2: 2; + __u8 data_mode: 4; + __u8 fp: 1; + __u8 packet: 1; + __u8 blank: 1; + __u8 rt: 1; + __u8 nwa_v: 1; + __u8 lra_v: 1; + __u8 reserved3: 6; + __be32 track_start; + __be32 next_writable; + __be32 free_blocks; + __be32 fixed_packet_size; + __be32 track_size; + __be32 last_rec_address; +} track_information; + +struct mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; +}; + +typedef struct { + int data; + int audio; + int cdi; + int xa; + long int error; +} tracktype; + +struct cdrom_mechstat_header { + __u8 curslot: 5; + __u8 changer_state: 2; + __u8 fault: 1; + __u8 reserved1: 4; + __u8 door_open: 1; + __u8 mech_state: 3; + __u8 curlba[3]; + __u8 nslots; + __u16 slot_tablelen; +}; + +struct cdrom_slot { + __u8 change: 1; + __u8 reserved1: 6; + __u8 disc_present: 1; + __u8 reserved2[3]; +}; + +struct cdrom_changer_info { + struct cdrom_mechstat_header hdr; + struct cdrom_slot slots[256]; +}; + +struct modesel_head { + __u8 reserved1; + __u8 medium; + __u8 reserved2; + __u8 block_desc_length; + __u8 density; + __u8 number_of_blocks_hi; + __u8 number_of_blocks_med; + __u8 number_of_blocks_lo; + __u8 reserved3; + __u8 block_length_hi; + __u8 block_length_med; + __u8 block_length_lo; +}; + +typedef struct { + __u16 report_key_length; + __u8 reserved1; + __u8 reserved2; + __u8 ucca: 3; + __u8 vra: 3; + __u8 type_code: 2; + __u8 region_mask; + __u8 rpc_scheme; + __u8 reserved3; +} rpc_state_t; + +struct cdrom_sysctl_settings { + char info[1000]; + int autoclose; + int autoeject; + int debug; + int lock; + int check; +}; + +enum cdrom_print_option { + CTL_NAME = 0, + CTL_SPEED = 1, + CTL_SLOTS = 2, + CTL_CAPABILITY = 3, +}; + +struct compat_cdrom_read_audio { + union cdrom_addr addr; + u8 addr_format; + compat_int_t nframes; + compat_caddr_t buf; +}; + +enum usb_otg_state { + OTG_STATE_UNDEFINED = 0, + OTG_STATE_B_IDLE = 1, + OTG_STATE_B_SRP_INIT = 2, + OTG_STATE_B_PERIPHERAL = 3, + OTG_STATE_B_WAIT_ACON = 4, + OTG_STATE_B_HOST = 5, + OTG_STATE_A_IDLE = 6, + OTG_STATE_A_WAIT_VRISE = 7, + OTG_STATE_A_WAIT_BCON = 8, + OTG_STATE_A_HOST = 9, + OTG_STATE_A_SUSPEND = 10, + OTG_STATE_A_PERIPHERAL = 11, + OTG_STATE_A_WAIT_VFALL = 12, + OTG_STATE_A_VBUS_ERR = 13, +}; + +enum usb_dr_mode { + USB_DR_MODE_UNKNOWN = 0, + USB_DR_MODE_HOST = 1, + USB_DR_MODE_PERIPHERAL = 2, + USB_DR_MODE_OTG = 3, +}; + +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, +}; + +struct usb_device_id { + __u16 match_flags; + __u16 idVendor; + __u16 idProduct; + __u16 bcdDevice_lo; + __u16 bcdDevice_hi; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 bInterfaceNumber; + kernel_ulong_t driver_info; +}; + +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; +}; + +enum usb_port_connect_type { + USB_PORT_CONNECT_TYPE_UNKNOWN = 0, + USB_PORT_CONNECT_TYPE_HOT_PLUG = 1, + USB_PORT_CONNECT_TYPE_HARD_WIRED = 2, + USB_PORT_NOT_USED = 3, +}; + +struct usb_dynids { + spinlock_t lock; + struct list_head list; +}; + +struct usbdrv_wrap { + struct device_driver driver; + int for_devices; +}; + +struct usb_driver { + const char *name; + int (*probe)(struct usb_interface *, const struct usb_device_id *); + void (*disconnect)(struct usb_interface *); + int (*unlocked_ioctl)(struct usb_interface *, unsigned int, void *); + int (*suspend)(struct usb_interface *, pm_message_t); + int (*resume)(struct usb_interface *); + int (*reset_resume)(struct usb_interface *); + int (*pre_reset)(struct usb_interface *); + int (*post_reset)(struct usb_interface *); + const struct usb_device_id *id_table; + const struct attribute_group **dev_groups; + struct usb_dynids dynids; + struct usbdrv_wrap drvwrap; + unsigned int no_dynamic_id: 1; + unsigned int supports_autosuspend: 1; + unsigned int disable_hub_initiated_lpm: 1; + unsigned int soft_unbind: 1; +}; + +struct usb_device_driver { + const char *name; + bool (*match)(struct usb_device *); + int (*probe)(struct usb_device *); + void (*disconnect)(struct usb_device *); + int (*suspend)(struct usb_device *, pm_message_t); + int (*resume)(struct usb_device *, pm_message_t); + const struct attribute_group **dev_groups; + struct usbdrv_wrap drvwrap; + const struct usb_device_id *id_table; + unsigned int supports_autosuspend: 1; + unsigned int generic_subclass: 1; +}; + +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, +}; + +enum usb_phy_events { + USB_EVENT_NONE = 0, + USB_EVENT_VBUS = 1, + USB_EVENT_ID = 2, + USB_EVENT_CHARGER = 3, + USB_EVENT_ENUMERATED = 4, +}; + +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, +}; + +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, +}; + +struct usb_charger_current { + unsigned int sdp_min; + unsigned int sdp_max; + unsigned int dcp_min; + unsigned int dcp_max; + unsigned int cdp_min; + unsigned int cdp_max; + unsigned int aca_min; + unsigned int aca_max; +}; + +struct usb_otg; + +struct usb_phy_io_ops; + +struct usb_phy { + struct device *dev; + const char *label; + unsigned int flags; + enum usb_phy_type type; + enum usb_phy_events last_event; + struct usb_otg *otg; + struct device *io_dev; + struct usb_phy_io_ops *io_ops; + void *io_priv; + struct extcon_dev *edev; + struct extcon_dev *id_edev; + struct notifier_block vbus_nb; + struct notifier_block id_nb; + struct notifier_block type_nb; + enum usb_charger_type chg_type; + enum usb_charger_state chg_state; + struct usb_charger_current chg_cur; + struct work_struct chg_work; + struct atomic_notifier_head notifier; + u16 port_status; + u16 port_change; + struct list_head head; + int (*init)(struct usb_phy *); + void (*shutdown)(struct usb_phy *); + int (*set_vbus)(struct usb_phy *, int); + int (*set_power)(struct usb_phy *, unsigned int); + int (*set_suspend)(struct usb_phy *, int); + int (*set_wakeup)(struct usb_phy *, bool); + int (*notify_connect)(struct usb_phy *, enum usb_device_speed); + int (*notify_disconnect)(struct usb_phy *, enum usb_device_speed); + enum usb_charger_type (*charger_detect)(struct usb_phy *); +}; + +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; +}; + +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; +}; + +struct usb_hub_descriptor { + __u8 bDescLength; + __u8 bDescriptorType; + __u8 bNbrPorts; + __le16 wHubCharacteristics; + __u8 bPwrOn2PwrGood; + __u8 bHubContrCurrent; + union { + struct { + __u8 DeviceRemovable[4]; + __u8 PortPwrCtrlMask[4]; + } hs; + struct { + __u8 bHubHdrDecLat; + __le16 wHubDelay; + __le16 DeviceRemovable; + } __attribute__((packed)) ss; + } u; +} __attribute__((packed)); + +struct usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); +}; + +struct usb_gadget; + +struct usb_otg { + u8 default_a; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); +}; + +typedef u32 usb_port_location_t; + +struct usb_port; + +struct usb_hub { + struct device *intfdev; + struct usb_device *hdev; + struct kref kref; + struct urb *urb; + u8 (*buffer)[8]; + union { + struct usb_hub_status hub; + struct usb_port_status port; + } *status; + struct mutex status_mutex; + int error; + int nerrors; + long unsigned int event_bits[1]; + long unsigned int change_bits[1]; + long unsigned int removed_bits[1]; + long unsigned int wakeup_bits[1]; + long unsigned int power_bits[1]; + long unsigned int child_usage_bits[1]; + long unsigned int warm_reset_bits[1]; + struct usb_hub_descriptor *descriptor; + struct usb_tt tt; + unsigned int mA_per_port; + unsigned int wakeup_enabled_descendants; + unsigned int limited_power: 1; + unsigned int quiescing: 1; + unsigned int disconnected: 1; + unsigned int in_reset: 1; + unsigned int quirk_disable_autosuspend: 1; + unsigned int quirk_check_port_auto_suspend: 1; + unsigned int has_indicators: 1; + u8 indicator[31]; + struct delayed_work leds; + struct delayed_work init_work; + struct work_struct events; + spinlock_t irq_urb_lock; + struct timer_list irq_urb_retry; + struct usb_port **ports; +}; + +struct usb_dev_state; + +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; +}; + +struct find_interface_arg { + int minor; + struct device_driver *drv; +}; + +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); +}; + +struct each_hub_arg { + void *data; + int (*fn)(struct device *, void *); +}; + +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; +}; + +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; +}; + +struct usbdevfs_hub_portinfo { + char nports; + char port[127]; +}; + +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +}; + +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; +}; + +enum hub_activation_type { + HUB_INIT = 0, + HUB_INIT2 = 1, + HUB_INIT3 = 2, + HUB_POST_RESET = 3, + HUB_RESUME = 4, + HUB_RESET_RESUME = 5, +}; + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, +}; + +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; +}; + +struct usb_mon_operations { + void (*urb_submit)(struct usb_bus *, struct urb *); + void (*urb_submit_error)(struct usb_bus *, struct urb *, int); + void (*urb_complete)(struct usb_bus *, struct urb *, int); +}; + +struct usb_sg_request { + int status; + size_t bytes; + spinlock_t lock; + struct usb_device *dev; + int pipe; + int entries; + struct urb **urbs; + int count; + struct completion complete; +}; + +struct usb_cdc_header_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdCDC; +} __attribute__((packed)); + +struct usb_cdc_call_mgmt_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; + __u8 bDataInterface; +}; + +struct usb_cdc_acm_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; +}; + +struct usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; +}; + +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; +}; + +struct usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; +}; + +struct usb_cdc_ether_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iMACAddress; + __le32 bmEthernetStatistics; + __le16 wMaxSegmentSize; + __le16 wNumberMCFilters; + __u8 bNumberPowerFilters; +} __attribute__((packed)); + +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__((packed)); + +struct usb_cdc_mdlm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; + __u8 bGUID[16]; +} __attribute__((packed)); + +struct usb_cdc_mdlm_detail_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bGuidDescriptorType; + __u8 bDetailData[0]; +}; + +struct usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; +} __attribute__((packed)); + +struct usb_cdc_ncm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdNcmVersion; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); + +struct usb_cdc_mbim_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMVersion; + __le16 wMaxControlMessage; + __u8 bNumberFilters; + __u8 bMaxFilterSize; + __le16 wMaxSegmentSize; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); + +struct usb_cdc_mbim_extended_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMExtendedVersion; + __u8 bMaxOutstandingCommandMessages; + __le16 wMTU; +} __attribute__((packed)); + +struct usb_cdc_parsed_header { + struct usb_cdc_union_desc *usb_cdc_union_desc; + struct usb_cdc_header_desc *usb_cdc_header_desc; + struct usb_cdc_call_mgmt_descriptor *usb_cdc_call_mgmt_descriptor; + struct usb_cdc_acm_descriptor *usb_cdc_acm_descriptor; + struct usb_cdc_country_functional_desc *usb_cdc_country_functional_desc; + struct usb_cdc_network_terminal_desc *usb_cdc_network_terminal_desc; + struct usb_cdc_ether_desc *usb_cdc_ether_desc; + struct usb_cdc_dmm_desc *usb_cdc_dmm_desc; + struct usb_cdc_mdlm_desc *usb_cdc_mdlm_desc; + struct usb_cdc_mdlm_detail_desc *usb_cdc_mdlm_detail_desc; + struct usb_cdc_obex_desc *usb_cdc_obex_desc; + struct usb_cdc_ncm_desc *usb_cdc_ncm_desc; + struct usb_cdc_mbim_desc *usb_cdc_mbim_desc; + struct usb_cdc_mbim_extended_desc *usb_cdc_mbim_extended_desc; + bool phonet_magic_present; +}; + +struct api_context { + struct completion done; + int status; +}; + +struct set_config_request { + struct usb_device *udev; + int config; + struct work_struct work; + struct list_head node; +}; + +struct usb_dynid { + struct list_head node; + struct usb_device_id id; +}; + +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +struct usb_class_driver { + char *name; + char * (*devnode)(struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; +}; + +struct usb_class { + struct kref kref; + struct class *class; +}; + +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; +}; + +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void *data; +}; + +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void *data; +}; + +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; +}; + +struct usbdevfs_disconnectsignal { + unsigned int signr; + void *context; +}; + +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; +}; + +struct usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; +}; + +struct usbdevfs_conninfo_ex { + __u32 size; + __u32 busnum; + __u32 devnum; + __u32 speed; + __u8 num_ports; + __u8 ports[7]; +}; + +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; +}; + +struct usbdevfs_urb { + unsigned char type; + unsigned char endpoint; + int status; + unsigned int flags; + void *buffer; + int buffer_length; + int actual_length; + int start_frame; + union { + int number_of_packets; + unsigned int stream_id; + }; + int error_count; + unsigned int signr; + void *usercontext; + struct usbdevfs_iso_packet_desc iso_frame_desc[0]; +}; + +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void *data; +}; + +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; +}; + +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; +}; + +struct usbdevfs_ctrltransfer32 { + u8 bRequestType; + u8 bRequest; + u16 wValue; + u16 wIndex; + u16 wLength; + u32 timeout; + compat_caddr_t data; +}; + +struct usbdevfs_bulktransfer32 { + compat_uint_t ep; + compat_uint_t len; + compat_uint_t timeout; + compat_caddr_t data; +}; + +struct usbdevfs_disconnectsignal32 { + compat_int_t signr; + compat_caddr_t context; +}; + +struct usbdevfs_urb32 { + unsigned char type; + unsigned char endpoint; + compat_int_t status; + compat_uint_t flags; + compat_caddr_t buffer; + compat_int_t buffer_length; + compat_int_t actual_length; + compat_int_t start_frame; + compat_int_t number_of_packets; + compat_int_t error_count; + compat_uint_t signr; + compat_caddr_t usercontext; + struct usbdevfs_iso_packet_desc iso_frame_desc[0]; +}; + +struct usbdevfs_ioctl32 { + s32 ifno; + s32 ioctl_code; + compat_caddr_t data; +}; + +struct usb_dev_state { + struct list_head list; + struct usb_device *dev; + struct file *file; + spinlock_t lock; + struct list_head async_pending; + struct list_head async_completed; + struct list_head memory_list; + wait_queue_head_t wait; + wait_queue_head_t wait_for_resume; + unsigned int discsignr; + struct pid *disc_pid; + const struct cred *cred; + sigval_t disccontext; + long unsigned int ifclaimed; + u32 disabled_bulk_eps; + long unsigned int interface_allowed_mask; + int not_yet_resumed; + bool suspend_allowed; + bool privileges_dropped; +}; + +struct usb_memory { + struct list_head memlist; + int vma_use_count; + int urb_use_count; + u32 size; + void *mem; + dma_addr_t dma_handle; + long unsigned int vm_start; + struct usb_dev_state *ps; +}; + +struct async { + struct list_head asynclist; + struct usb_dev_state *ps; + struct pid *pid; + const struct cred *cred; + unsigned int signr; + unsigned int ifnum; + void *userbuffer; + void *userurb; + sigval_t userurb_sigval; + struct urb *urb; + struct usb_memory *usbm; + unsigned int mem_usage; + int status; + u8 bulk_addr; + u8 bulk_status; +}; + +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, +}; + +struct quirk_entry { + u16 vid; + u16 pid; + u32 flags; +}; + +struct class_info { + int class; + char *class_name; +}; + +struct usb_phy_roothub { + struct phy *phy; + struct list_head list; +}; + +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); + +struct phy_devm { + struct usb_phy *phy; + struct notifier_block *nb; +}; + +struct usb_ep; + +struct usb_request { + void *buf; + unsigned int length; + dma_addr_t dma; + struct scatterlist *sg; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id: 16; + unsigned int is_last: 1; + unsigned int no_interrupt: 1; + unsigned int zero: 1; + unsigned int short_not_ok: 1; + unsigned int dma_mapped: 1; + void (*complete)(struct usb_ep *, struct usb_request *); + void *context; + struct list_head list; + unsigned int frame_number; + int status; + unsigned int actual; +}; + +struct usb_ep_caps { + unsigned int type_control: 1; + unsigned int type_iso: 1; + unsigned int type_bulk: 1; + unsigned int type_int: 1; + unsigned int dir_in: 1; + unsigned int dir_out: 1; +}; + +struct usb_ep_ops; + +struct usb_ep { + void *driver_data; + const char *name; + const struct usb_ep_ops *ops; + struct list_head ep_list; + struct usb_ep_caps caps; + bool claimed; + bool enabled; + unsigned int maxpacket: 16; + unsigned int maxpacket_limit: 16; + unsigned int max_streams: 16; + unsigned int mult: 2; + unsigned int maxburst: 5; + u8 address; + const struct usb_endpoint_descriptor *desc; + const struct usb_ss_ep_comp_descriptor *comp_desc; +}; + +struct usb_ep_ops { + int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); + int (*disable)(struct usb_ep *); + void (*dispose)(struct usb_ep *); + struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); + void (*free_request)(struct usb_ep *, struct usb_request *); + int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); + int (*dequeue)(struct usb_ep *, struct usb_request *); + int (*set_halt)(struct usb_ep *, int); + int (*set_wedge)(struct usb_ep *); + int (*fifo_status)(struct usb_ep *); + void (*fifo_flush)(struct usb_ep *); +}; + +struct usb_dcd_config_params { + __u8 bU1devExitLat; + __le16 bU2DevExitLat; + __u8 besl_baseline; + __u8 besl_deep; +}; + +struct usb_gadget_driver; + +struct usb_gadget_ops { + int (*get_frame)(struct usb_gadget *); + int (*wakeup)(struct usb_gadget *); + int (*set_remote_wakeup)(struct usb_gadget *, int); + int (*set_selfpowered)(struct usb_gadget *, int); + int (*vbus_session)(struct usb_gadget *, int); + int (*vbus_draw)(struct usb_gadget *, unsigned int); + int (*pullup)(struct usb_gadget *, int); + int (*ioctl)(struct usb_gadget *, unsigned int, long unsigned int); + void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); + int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); + int (*udc_stop)(struct usb_gadget *); + void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); + void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); + void (*udc_async_callbacks)(struct usb_gadget *, bool); + struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); + int (*check_config)(struct usb_gadget *); +}; + +struct usb_udc; + +struct usb_otg_caps; + +struct usb_gadget { + struct work_struct work; + struct usb_udc *udc; + const struct usb_gadget_ops *ops; + struct usb_ep *ep0; + struct list_head ep_list; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_ssp_rate ssp_rate; + enum usb_ssp_rate max_ssp_rate; + enum usb_device_state state; + const char *name; + struct device dev; + unsigned int isoch_delay; + unsigned int out_epnum; + unsigned int in_epnum; + unsigned int mA; + struct usb_otg_caps *otg_caps; + unsigned int sg_supported: 1; + unsigned int is_otg: 1; + unsigned int is_a_peripheral: 1; + unsigned int b_hnp_enable: 1; + unsigned int a_hnp_support: 1; + unsigned int a_alt_hnp_support: 1; + unsigned int hnp_polling_support: 1; + unsigned int host_request_flag: 1; + unsigned int quirk_ep_out_aligned_size: 1; + unsigned int quirk_altset_not_supp: 1; + unsigned int quirk_stall_not_supp: 1; + unsigned int quirk_zlp_not_supp: 1; + unsigned int quirk_avoids_skb_reserve: 1; + unsigned int is_selfpowered: 1; + unsigned int deactivated: 1; + unsigned int connected: 1; + unsigned int lpm_capable: 1; + unsigned int wakeup_capable: 1; + unsigned int wakeup_armed: 1; + int irq; +}; + +struct usb_gadget_driver { + char *function; + enum usb_device_speed max_speed; + int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); + void (*unbind)(struct usb_gadget *); + int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); + void (*disconnect)(struct usb_gadget *); + void (*suspend)(struct usb_gadget *); + void (*resume)(struct usb_gadget *); + void (*reset)(struct usb_gadget *); + struct device_driver driver; + char *udc_name; + struct list_head pending; + unsigned int match_existing_only: 1; +}; + +struct usb_otg_caps { + u16 otg_rev; + bool hnp_support; + bool srp_support; + bool adp_support; +}; + +struct dwc2_dma_desc { + u32 status; + u32 buf; +}; + +struct dwc2_hw_params { + unsigned int op_mode: 3; + unsigned int arch: 2; + unsigned int dma_desc_enable: 1; + unsigned int enable_dynamic_fifo: 1; + unsigned int en_multiple_tx_fifo: 1; + unsigned int rx_fifo_size: 16; + int: 8; + unsigned int host_nperio_tx_fifo_size: 16; + unsigned int dev_nperio_tx_fifo_size: 16; + unsigned int host_perio_tx_fifo_size: 16; + unsigned int nperio_tx_q_depth: 3; + unsigned int host_perio_tx_q_depth: 3; + unsigned int dev_token_q_depth: 5; + int: 5; + unsigned int max_transfer_size: 26; + long: 6; + unsigned int max_packet_count: 11; + unsigned int host_channels: 5; + unsigned int hs_phy_type: 2; + unsigned int fs_phy_type: 2; + unsigned int i2c_enable: 1; + unsigned int acg_enable: 1; + unsigned int num_dev_ep: 4; + unsigned int num_dev_in_eps: 4; + int: 2; + unsigned int num_dev_perio_in_ep: 4; + unsigned int total_fifo_size: 16; + unsigned int power_optimized: 1; + unsigned int hibernation: 1; + unsigned int utmi_phy_data_width: 2; + unsigned int lpm_mode: 1; + unsigned int ipg_isoc_en: 1; + unsigned int service_interval_mode: 1; + u32 snpsid; + u32 dev_ep_dirs; + u32 g_tx_fifo_size[16]; +}; + +struct dwc2_core_params { + u8 otg_cap; + u8 phy_type; + u8 speed; + u8 phy_utmi_width; + bool phy_ulpi_ddr; + bool phy_ulpi_ext_vbus; + bool enable_dynamic_fifo; + bool en_multiple_tx_fifo; + bool i2c_enable; + bool acg_enable; + bool ulpi_fs_ls; + bool ts_dline; + bool reload_ctl; + bool uframe_sched; + bool external_id_pin_ctl; + int power_down; + bool no_clock_gating; + bool lpm; + bool lpm_clock_gating; + bool besl; + bool hird_threshold_en; + bool service_interval; + u8 hird_threshold; + bool activate_stm_fs_transceiver; + bool activate_stm_id_vb_detection; + bool ipg_isoc_en; + u16 max_packet_count; + u32 max_transfer_size; + u32 ahbcfg; + u32 ref_clk_per; + u16 sof_cnt_wkup_alert; + bool host_dma; + bool dma_desc_enable; + bool dma_desc_fs_enable; + bool host_support_fs_ls_low_power; + bool host_ls_low_power_phy_clk; + bool oc_disable; + u8 host_channels; + u16 host_rx_fifo_size; + u16 host_nperio_tx_fifo_size; + u16 host_perio_tx_fifo_size; + bool g_dma; + bool g_dma_desc; + u32 g_rx_fifo_size; + u32 g_np_tx_fifo_size; + u32 g_tx_fifo_size[16]; + bool change_speed_quirk; +}; + +enum dwc2_lx_state { + DWC2_L0 = 0, + DWC2_L1 = 1, + DWC2_L2 = 2, + DWC2_L3 = 3, +}; + +struct dwc2_gregs_backup { + u32 gotgctl; + u32 gintmsk; + u32 gahbcfg; + u32 gusbcfg; + u32 grxfsiz; + u32 gnptxfsiz; + u32 gi2cctl; + u32 glpmcfg; + u32 pcgcctl; + u32 pcgcctl1; + u32 gdfifocfg; + u32 gpwrdn; + bool valid; +}; + +struct dwc2_dregs_backup { + u32 dcfg; + u32 dctl; + u32 daintmsk; + u32 diepmsk; + u32 doepmsk; + u32 diepctl[16]; + u32 dieptsiz[16]; + u32 diepdma[16]; + u32 doepctl[16]; + u32 doeptsiz[16]; + u32 doepdma[16]; + u32 dtxfsiz[16]; + bool valid; +}; + +struct dwc2_hregs_backup { + u32 hcfg; + u32 hflbaddr; + u32 haintmsk; + u32 hcchar[16]; + u32 hcsplt[16]; + u32 hcintmsk[16]; + u32 hctsiz[16]; + u32 hcidma[16]; + u32 hcidmab[16]; + u32 hprt0; + u32 hfir; + u32 hptxfsiz; + bool valid; +}; + +union dwc2_hcd_internal_flags { + u32 d32; + struct { + unsigned int port_connect_status_change: 1; + unsigned int port_connect_status: 1; + unsigned int port_reset_change: 1; + unsigned int port_enable_change: 1; + unsigned int port_suspend_change: 1; + unsigned int port_over_current_change: 1; + unsigned int port_l1_change: 1; + unsigned int reserved: 25; + } b; +}; + +struct usb_role_switch; + +struct dwc2_hsotg_plat; + +struct dwc2_host_chan; + +struct dwc2_hsotg { + struct device *dev; + void *regs; + struct dwc2_hw_params hw_params; + struct dwc2_core_params params; + enum usb_otg_state op_state; + enum usb_dr_mode dr_mode; + struct usb_role_switch *role_sw; + unsigned int hcd_enabled: 1; + unsigned int gadget_enabled: 1; + unsigned int ll_hw_enabled: 1; + unsigned int hibernated: 1; + unsigned int in_ppd: 1; + bool bus_suspended; + unsigned int reset_phy_on_wake: 1; + unsigned int need_phy_for_wake: 1; + unsigned int phy_off_for_suspend: 1; + u16 frame_number; + struct phy *phy; + struct usb_phy *uphy; + struct dwc2_hsotg_plat *plat; + struct regulator_bulk_data supplies[2]; + struct regulator *vbus_supply; + struct regulator *usb33d; + spinlock_t lock; + void *priv; + int irq; + struct clk *clk; + struct reset_control *reset; + struct reset_control *reset_ecc; + unsigned int queuing_high_bandwidth: 1; + unsigned int srp_success: 1; + struct workqueue_struct *wq_otg; + struct work_struct wf_otg; + struct timer_list wkp_timer; + enum dwc2_lx_state lx_state; + struct dwc2_gregs_backup gr_backup; + struct dwc2_dregs_backup dr_backup; + struct dwc2_hregs_backup hr_backup; + struct dentry *debug_root; + struct debugfs_regset32 *regset; + bool needs_byte_swap; + union dwc2_hcd_internal_flags flags; + struct list_head non_periodic_sched_inactive; + struct list_head non_periodic_sched_waiting; + struct list_head non_periodic_sched_active; + struct list_head *non_periodic_qh_ptr; + struct list_head periodic_sched_inactive; + struct list_head periodic_sched_ready; + struct list_head periodic_sched_assigned; + struct list_head periodic_sched_queued; + struct list_head split_order; + u16 periodic_usecs; + long unsigned int hs_periodic_bitmap[13]; + u16 periodic_qh_count; + bool new_connection; + u16 last_frame_num; + struct list_head free_hc_list; + int periodic_channels; + int non_periodic_channels; + int available_host_channels; + struct dwc2_host_chan *hc_ptr_array[16]; + u8 *status_buf; + dma_addr_t status_buf_dma; + struct delayed_work start_work; + struct delayed_work reset_work; + struct work_struct phy_reset_work; + u8 otg_port; + u32 *frame_list; + dma_addr_t frame_list_dma; + u32 frame_list_sz; + struct kmem_cache *desc_gen_cache; + struct kmem_cache *desc_hsisoc_cache; + struct kmem_cache *unaligned_cache; +}; + +enum dwc2_halt_status { + DWC2_HC_XFER_NO_HALT_STATUS = 0, + DWC2_HC_XFER_COMPLETE = 1, + DWC2_HC_XFER_URB_COMPLETE = 2, + DWC2_HC_XFER_ACK = 3, + DWC2_HC_XFER_NAK = 4, + DWC2_HC_XFER_NYET = 5, + DWC2_HC_XFER_STALL = 6, + DWC2_HC_XFER_XACT_ERR = 7, + DWC2_HC_XFER_FRAME_OVERRUN = 8, + DWC2_HC_XFER_BABBLE_ERR = 9, + DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, + DWC2_HC_XFER_AHB_ERR = 11, + DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, + DWC2_HC_XFER_URB_DEQUEUE = 13, +}; + +struct dwc2_qh; + +struct dwc2_host_chan { + u8 hc_num; + unsigned int dev_addr: 7; + unsigned int ep_num: 4; + unsigned int ep_is_in: 1; + unsigned int speed: 4; + unsigned int ep_type: 2; + int: 6; + unsigned int max_packet: 11; + unsigned int data_pid_start: 2; + unsigned int multi_count: 2; + u8 *xfer_buf; + dma_addr_t xfer_dma; + dma_addr_t align_buf; + u32 xfer_len; + u32 xfer_count; + u16 start_pkt_count; + u8 xfer_started; + u8 do_ping; + u8 error_state; + u8 halt_on_queue; + u8 halt_pending; + u8 do_split; + u8 complete_split; + u8 hub_addr; + u8 hub_port; + u8 xact_pos; + u8 requests; + u8 schinfo; + u16 ntd; + enum dwc2_halt_status halt_status; + u32 hcint; + struct dwc2_qh *qh; + struct list_head hc_list_entry; + dma_addr_t desc_list_addr; + u32 desc_list_sz; + struct list_head split_order_list_entry; +}; + +struct dwc2_hs_transfer_time { + u32 start_schedule_us; + u16 duration_us; +}; + +struct dwc2_tt; + +struct dwc2_qh { + struct dwc2_hsotg *hsotg; + u8 ep_type; + u8 ep_is_in; + u16 maxp; + u16 maxp_mult; + u8 dev_speed; + u8 data_toggle; + u8 ping_state; + u8 do_split; + u8 td_first; + u8 td_last; + u16 host_us; + u16 device_us; + u16 host_interval; + u16 device_interval; + u16 next_active_frame; + u16 start_active_frame; + s16 num_hs_transfers; + struct dwc2_hs_transfer_time hs_transfers[8]; + u32 ls_start_schedule_slice; + u16 ntd; + u8 *dw_align_buf; + dma_addr_t dw_align_buf_dma; + struct list_head qtd_list; + struct dwc2_host_chan *channel; + struct list_head qh_list_entry; + struct dwc2_dma_desc *desc_list; + dma_addr_t desc_list_dma; + u32 desc_list_sz; + u32 *n_bytes; + struct timer_list unreserve_timer; + struct hrtimer wait_timer; + struct dwc2_tt *dwc_tt; + int ttport; + unsigned int tt_buffer_dirty: 1; + unsigned int unreserve_pending: 1; + unsigned int schedule_low_speed: 1; + unsigned int want_wait: 1; + unsigned int wait_timer_cancel: 1; +}; + +struct dwc2_tt { + int refcount; + struct usb_tt *usb_tt; + long unsigned int periodic_bitmaps[0]; +}; + +enum dwc2_hsotg_dmamode { + S3C_HSOTG_DMA_NONE = 0, + S3C_HSOTG_DMA_ONLY = 1, + S3C_HSOTG_DMA_DRV = 2, +}; + +struct dwc2_hsotg_plat { + enum dwc2_hsotg_dmamode dma; + unsigned int is_osc: 1; + int phy_type; + int (*phy_init)(struct platform_device *, int); + int (*phy_exit)(struct platform_device *, int); +}; + +enum usb_role { + USB_ROLE_NONE = 0, + USB_ROLE_HOST = 1, + USB_ROLE_DEVICE = 2, +}; + +typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); + +typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); + +struct usb_role_switch_desc { + struct fwnode_handle *fwnode; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; + void *driver_data; + const char *name; +}; + +typedef void (*set_params_cb)(struct dwc2_hsotg *); + +struct dwc2_hcd_pipe_info { + u8 dev_addr; + u8 ep_num; + u8 pipe_type; + u8 pipe_dir; + u16 maxp; + u16 maxp_mult; +}; + +struct dwc2_hcd_iso_packet_desc { + u32 offset; + u32 length; + u32 actual_length; + u32 status; +}; + +struct dwc2_qtd; + +struct dwc2_hcd_urb { + void *priv; + struct dwc2_qtd *qtd; + void *buf; + dma_addr_t dma; + void *setup_packet; + dma_addr_t setup_dma; + u32 length; + u32 actual_length; + u32 status; + u32 error_count; + u32 packet_count; + u32 flags; + u16 interval; + struct dwc2_hcd_pipe_info pipe_info; + struct dwc2_hcd_iso_packet_desc iso_descs[0]; +}; + +enum dwc2_control_phase { + DWC2_CONTROL_SETUP = 0, + DWC2_CONTROL_DATA = 1, + DWC2_CONTROL_STATUS = 2, +}; + +struct dwc2_qtd { + enum dwc2_control_phase control_phase; + u8 in_process; + u8 data_toggle; + u8 complete_split; + u8 isoc_split_pos; + u16 isoc_frame_index; + u16 isoc_split_offset; + u16 isoc_td_last; + u16 isoc_td_first; + u32 ssplit_out_xfer_count; + u8 error_count; + u8 n_desc; + u16 isoc_frame_index_last; + u16 num_naks; + struct dwc2_hcd_urb *urb; + struct dwc2_qh *qh; + struct list_head qtd_list_entry; +}; + +enum dwc2_transaction_type { + DWC2_TRANSACTION_NONE = 0, + DWC2_TRANSACTION_PERIODIC = 1, + DWC2_TRANSACTION_NON_PERIODIC = 2, + DWC2_TRANSACTION_ALL = 3, +}; + +struct wrapper_priv_data { + struct dwc2_hsotg *hsotg; +}; + enum amd_chipset_gen { NOT_AMD_CHIPSET = 0, AMD_CHIPSET_SB600 = 1, @@ -79249,6 +106444,1744 @@ struct amd_chipset_info { bool need_pll_quirk; }; +struct ehci_stats { + long unsigned int normal; + long unsigned int error; + long unsigned int iaa; + long unsigned int lost_iaa; + long unsigned int complete; + long unsigned int unlink; +}; + +struct ehci_per_sched { + struct usb_device *udev; + struct usb_host_endpoint *ep; + struct list_head ps_list; + u16 tt_usecs; + u16 cs_mask; + u16 period; + u16 phase; + u8 bw_phase; + u8 phase_uf; + u8 usecs; + u8 c_usecs; + u8 bw_uperiod; + u8 bw_period; +}; + +enum ehci_rh_state { + EHCI_RH_HALTED = 0, + EHCI_RH_SUSPENDED = 1, + EHCI_RH_RUNNING = 2, + EHCI_RH_STOPPING = 3, +}; + +enum ehci_hrtimer_event { + EHCI_HRTIMER_POLL_ASS = 0, + EHCI_HRTIMER_POLL_PSS = 1, + EHCI_HRTIMER_POLL_DEAD = 2, + EHCI_HRTIMER_UNLINK_INTR = 3, + EHCI_HRTIMER_FREE_ITDS = 4, + EHCI_HRTIMER_ACTIVE_UNLINK = 5, + EHCI_HRTIMER_START_UNLINK_INTR = 6, + EHCI_HRTIMER_ASYNC_UNLINKS = 7, + EHCI_HRTIMER_IAA_WATCHDOG = 8, + EHCI_HRTIMER_DISABLE_PERIODIC = 9, + EHCI_HRTIMER_DISABLE_ASYNC = 10, + EHCI_HRTIMER_IO_WATCHDOG = 11, + EHCI_HRTIMER_NUM_EVENTS = 12, +}; + +struct ehci_caps; + +struct ehci_regs; + +struct ehci_dbg_port; + +struct ehci_qh; + +union ehci_shadow; + +struct ehci_itd; + +struct ehci_sitd; + +struct ehci_hcd { + enum ehci_hrtimer_event next_hrtimer_event; + unsigned int enabled_hrtimer_events; + ktime_t hr_timeouts[12]; + struct hrtimer hrtimer; + int PSS_poll_count; + int ASS_poll_count; + int died_poll_count; + struct ehci_caps *caps; + struct ehci_regs *regs; + struct ehci_dbg_port *debug; + __u32 hcs_params; + spinlock_t lock; + enum ehci_rh_state rh_state; + bool scanning: 1; + bool need_rescan: 1; + bool intr_unlinking: 1; + bool iaa_in_progress: 1; + bool async_unlinking: 1; + bool shutdown: 1; + struct ehci_qh *qh_scan_next; + struct ehci_qh *async; + struct ehci_qh *dummy; + struct list_head async_unlink; + struct list_head async_idle; + unsigned int async_unlink_cycle; + unsigned int async_count; + __le32 old_current; + __le32 old_token; + unsigned int periodic_size; + __le32 *periodic; + dma_addr_t periodic_dma; + struct list_head intr_qh_list; + unsigned int i_thresh; + union ehci_shadow *pshadow; + struct list_head intr_unlink_wait; + struct list_head intr_unlink; + unsigned int intr_unlink_wait_cycle; + unsigned int intr_unlink_cycle; + unsigned int now_frame; + unsigned int last_iso_frame; + unsigned int intr_count; + unsigned int isoc_count; + unsigned int periodic_count; + unsigned int uframe_periodic_max; + struct list_head cached_itd_list; + struct ehci_itd *last_itd_to_free; + struct list_head cached_sitd_list; + struct ehci_sitd *last_sitd_to_free; + long unsigned int reset_done[15]; + long unsigned int bus_suspended; + long unsigned int companion_ports; + long unsigned int owned_ports; + long unsigned int port_c_suspend; + long unsigned int suspended_ports; + long unsigned int resuming_ports; + struct dma_pool *qh_pool; + struct dma_pool *qtd_pool; + struct dma_pool *itd_pool; + struct dma_pool *sitd_pool; + unsigned int random_frame; + long unsigned int next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + struct ehci_stats stats; + struct dentry *debug_dir; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + long unsigned int priv[0]; +}; + +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; +}; + +struct ehci_regs { + u32 command; + u32 status; + u32 intr_enable; + u32 frame_index; + u32 segment; + u32 frame_list; + u32 async_next; + u32 reserved1[2]; + u32 txfill_tuning; + u32 reserved2[6]; + u32 configured_flag; + union { + u32 port_status[15]; + struct { + u32 reserved3[9]; + u32 usbmode; + }; + }; + union { + struct { + u32 reserved4; + u32 hostpc[15]; + }; + u32 brcm_insnreg[4]; + }; + u32 reserved5[2]; + u32 usbmode_ex; +}; + +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; +}; + +struct ehci_fstn; + +union ehci_shadow { + struct ehci_qh *qh; + struct ehci_itd *itd; + struct ehci_sitd *sitd; + struct ehci_fstn *fstn; + __le32 *hw_next; + void *ptr; +}; + +struct ehci_qh_hw; + +struct ehci_qtd; + +struct ehci_qh { + struct ehci_qh_hw *hw; + dma_addr_t qh_dma; + union ehci_shadow qh_next; + struct list_head qtd_list; + struct list_head intr_node; + struct ehci_qtd *dummy; + struct list_head unlink_node; + struct ehci_per_sched ps; + unsigned int unlink_cycle; + u8 qh_state; + u8 xacterrs; + u8 unlink_reason; + u8 gap_uf; + unsigned int is_out: 1; + unsigned int clearing_tt: 1; + unsigned int dequeue_during_giveback: 1; + unsigned int should_be_inactive: 1; +}; + +struct ehci_iso_stream; + +struct ehci_itd { + __le32 hw_next; + __le32 hw_transaction[8]; + __le32 hw_bufp[7]; + __le32 hw_bufp_hi[7]; + dma_addr_t itd_dma; + union ehci_shadow itd_next; + struct urb *urb; + struct ehci_iso_stream *stream; + struct list_head itd_list; + unsigned int frame; + unsigned int pg; + unsigned int index[8]; + long: 64; +}; + +struct ehci_sitd { + __le32 hw_next; + __le32 hw_fullspeed_ep; + __le32 hw_uframe; + __le32 hw_results; + __le32 hw_buf[2]; + __le32 hw_backpointer; + __le32 hw_buf_hi[2]; + dma_addr_t sitd_dma; + union ehci_shadow sitd_next; + struct urb *urb; + struct ehci_iso_stream *stream; + struct list_head sitd_list; + unsigned int frame; + unsigned int index; +}; + +struct ehci_qtd { + __le32 hw_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + dma_addr_t qtd_dma; + struct list_head qtd_list; + struct urb *urb; + size_t length; +}; + +struct ehci_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; +}; + +struct ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; +}; + +struct ehci_iso_packet { + u64 bufp; + __le32 transaction; + u8 cross; + u32 buf1; +}; + +struct ehci_iso_sched { + struct list_head td_list; + unsigned int span; + unsigned int first_packet; + struct ehci_iso_packet packet[0]; +}; + +struct ehci_iso_stream { + struct ehci_qh_hw *hw; + u8 bEndpointAddress; + u8 highspeed; + struct list_head td_list; + struct list_head free_list; + struct ehci_per_sched ps; + unsigned int next_uframe; + __le32 splits; + u16 uperiod; + u16 maxp; + unsigned int bandwidth; + __le32 buf0; + __le32 buf1; + __le32 buf2; + __le32 address; +}; + +struct ehci_tt { + u16 bandwidth[8]; + struct list_head tt_list; + struct list_head ps_list; + struct usb_tt *usb_tt; + int tt_port; +}; + +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); +}; + +struct debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct usb_bus *bus; + struct mutex mutex; + size_t count; + char *output_buf; + size_t alloc_size; +}; + +struct soc_device_attribute { + const char *machine; + const char *family; + const char *revision; + const char *serial_number; + const char *soc_id; + const void *data; + const struct attribute_group *custom_attr_group; +}; + +struct usb_ehci_pdata { + int caps_offset; + unsigned int has_tt: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_io_watchdog: 1; + unsigned int reset_on_resume: 1; + unsigned int dma_mask_64: 1; + unsigned int spurious_oc: 1; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); + int (*pre_setup)(struct usb_hcd *); +}; + +struct ehci_platform_priv { + struct clk *clks[4]; + struct reset_control *rsts; + bool reset_on_resume; + bool quirk_poll; + struct timer_list poll_timer; + struct delayed_work poll_work; +}; + +typedef __u32 __hc32; + +typedef __u16 __hc16; + +struct td; + +struct ed { + __hc32 hwINFO; + __hc32 hwTailP; + __hc32 hwHeadP; + __hc32 hwNextED; + dma_addr_t dma; + struct td *dummy; + struct ed *ed_next; + struct ed *ed_prev; + struct list_head td_list; + struct list_head in_use_list; + u8 state; + u8 type; + u8 branch; + u16 interval; + u16 load; + u16 last_iso; + u16 tick; + unsigned int takeback_wdh_cnt; + struct td *pending_td; + long: 64; +}; + +struct td { + __hc32 hwINFO; + __hc32 hwCBP; + __hc32 hwNextTD; + __hc32 hwBE; + __hc16 hwPSW[2]; + __u8 index; + struct ed *ed; + struct td *td_hash; + struct td *next_dl_td; + struct urb *urb; + dma_addr_t td_dma; + dma_addr_t data_dma; + struct list_head td_list; + long: 64; +}; + +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[4]; +}; + +struct ohci_roothub_regs { + __hc32 a; + __hc32 b; + __hc32 status; + __hc32 portstatus[15]; +}; + +struct ohci_regs { + __hc32 revision; + __hc32 control; + __hc32 cmdstatus; + __hc32 intrstatus; + __hc32 intrenable; + __hc32 intrdisable; + __hc32 hcca; + __hc32 ed_periodcurrent; + __hc32 ed_controlhead; + __hc32 ed_controlcurrent; + __hc32 ed_bulkhead; + __hc32 ed_bulkcurrent; + __hc32 donehead; + __hc32 fminterval; + __hc32 fmremaining; + __hc32 fmnumber; + __hc32 periodicstart; + __hc32 lsthresh; + struct ohci_roothub_regs roothub; + long: 64; + long: 64; +}; + +struct urb_priv { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; +}; + +typedef struct urb_priv urb_priv_t; + +enum ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 2, +}; + +struct ohci_hcd { + spinlock_t lock; + struct ohci_regs *regs; + struct ohci_hcca *hcca; + dma_addr_t hcca_dma; + struct ed *ed_rm_list; + struct ed *ed_bulktail; + struct ed *ed_controltail; + struct ed *periodic[32]; + void (*start_hnp)(struct ohci_hcd *); + struct dma_pool *td_cache; + struct dma_pool *ed_cache; + struct td *td_hash[64]; + struct td *dl_start; + struct td *dl_end; + struct list_head pending; + struct list_head eds_in_use; + enum ohci_rh_state rh_state; + int num_ports; + int load[32]; + u32 hc_control; + long unsigned int next_statechange; + u32 fminterval; + unsigned int autostop: 1; + unsigned int working: 1; + unsigned int restart_work: 1; + long unsigned int flags; + unsigned int prev_frame_no; + unsigned int wdh_cnt; + unsigned int prev_wdh_cnt; + u32 prev_donehead; + struct timer_list io_watchdog; + struct work_struct nec_work; + struct dentry *debug_dir; + long unsigned int priv[0]; +}; + +struct ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); +}; + +struct debug_buffer___2 { + ssize_t (*fill_func)(struct debug_buffer___2 *); + struct ohci_hcd *ohci; + struct mutex mutex; + size_t count; + char *page; +}; + +struct usb_ohci_pdata { + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_big_frame_no: 1; + unsigned int num_ports; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); +}; + +struct ohci_platform_priv { + struct clk *clks[3]; + struct reset_control *resets; +}; + +struct uhci_td; + +struct uhci_qh { + __le32 link; + __le32 element; + dma_addr_t dma_handle; + struct list_head node; + struct usb_host_endpoint *hep; + struct usb_device *udev; + struct list_head queue; + struct uhci_td *dummy_td; + struct uhci_td *post_td; + struct usb_iso_packet_descriptor *iso_packet_desc; + long unsigned int advance_jiffies; + unsigned int unlink_frame; + unsigned int period; + short int phase; + short int load; + unsigned int iso_frame; + int state; + int type; + int skel; + unsigned int initial_toggle: 1; + unsigned int needs_fixup: 1; + unsigned int is_stopped: 1; + unsigned int wait_expired: 1; + unsigned int bandwidth_reserved: 1; +}; + +struct uhci_td { + __le32 link; + __le32 status; + __le32 token; + __le32 buffer; + dma_addr_t dma_handle; + struct list_head list; + int frame; + struct list_head fl_list; +}; + +enum uhci_rh_state { + UHCI_RH_RESET = 0, + UHCI_RH_SUSPENDED = 1, + UHCI_RH_AUTO_STOPPED = 2, + UHCI_RH_RESUMING = 3, + UHCI_RH_SUSPENDING = 4, + UHCI_RH_RUNNING = 5, + UHCI_RH_RUNNING_NODEVS = 6, +}; + +struct uhci_hcd { + long unsigned int io_addr; + void *regs; + struct dma_pool *qh_pool; + struct dma_pool *td_pool; + struct uhci_td *term_td; + struct uhci_qh *skelqh[11]; + struct uhci_qh *next_qh; + spinlock_t lock; + dma_addr_t frame_dma_handle; + __le32 *frame; + void **frame_cpu; + enum uhci_rh_state rh_state; + long unsigned int auto_stop_time; + unsigned int frame_number; + unsigned int is_stopped; + unsigned int last_iso_frame; + unsigned int cur_iso_frame; + unsigned int scan_in_progress: 1; + unsigned int need_rescan: 1; + unsigned int dead: 1; + unsigned int RD_enable: 1; + unsigned int is_initialized: 1; + unsigned int fsbr_is_on: 1; + unsigned int fsbr_is_wanted: 1; + unsigned int fsbr_expiring: 1; + struct timer_list fsbr_timer; + unsigned int oc_low: 1; + unsigned int wait_for_hp: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int is_aspeed: 1; + long unsigned int port_c_suspend; + long unsigned int resuming_ports; + long unsigned int ports_timeout; + struct list_head idle_qh_list; + int rh_numports; + wait_queue_head_t waitqh; + int num_waiting; + int total_load; + short int load[32]; + struct clk *clk; + void (*reset_hc)(struct uhci_hcd *); + int (*check_and_reset_hc)(struct uhci_hcd *); + void (*configure_hc)(struct uhci_hcd *); + int (*resume_detect_interrupts_are_broken)(struct uhci_hcd *); + int (*global_suspend_mode_is_broken)(struct uhci_hcd *); +}; + +struct urb_priv___2 { + struct list_head node; + struct urb *urb; + struct uhci_qh *qh; + struct list_head td_list; + unsigned int fsbr: 1; +}; + +struct uhci_debug { + int size; + char *data; +}; + +struct xhci_cap_regs { + __le32 hc_capbase; + __le32 hcs_params1; + __le32 hcs_params2; + __le32 hcs_params3; + __le32 hcc_params; + __le32 db_off; + __le32 run_regs_off; + __le32 hcc_params2; +}; + +struct xhci_op_regs { + __le32 command; + __le32 status; + __le32 page_size; + __le32 reserved1; + __le32 reserved2; + __le32 dev_notification; + __le64 cmd_ring; + __le32 reserved3[4]; + __le64 dcbaa_ptr; + __le32 config_reg; + __le32 reserved4[241]; + __le32 port_status_base; + __le32 port_power_base; + __le32 port_link_base; + __le32 reserved5; + __le32 reserved6[1016]; +}; + +struct xhci_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; +}; + +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; +}; + +struct xhci_doorbell_array { + __le32 doorbell[256]; +}; + +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; +}; + +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; +}; + +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; +}; + +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; +}; + +union xhci_trb; + +struct xhci_command { + struct xhci_container_ctx *in_ctx; + u32 status; + int slot_id; + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; +}; + +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; +}; + +struct xhci_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; +}; + +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; +}; + +struct xhci_generic_trb { + __le32 field[4]; +}; + +union xhci_trb { + struct xhci_link_trb link; + struct xhci_transfer_event trans_event; + struct xhci_event_cmd event_cmd; + struct xhci_generic_trb generic; +}; + +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; +}; + +struct xhci_ring; + +struct xhci_stream_info { + struct xhci_ring **stream_rings; + unsigned int num_streams; + struct xhci_stream_ctx *stream_ctx_array; + unsigned int num_stream_ctxs; + dma_addr_t ctx_array_dma; + struct xarray trb_address_map; + struct xhci_command *free_streams_command; +}; + +enum xhci_ring_type { + TYPE_CTRL = 0, + TYPE_ISOC = 1, + TYPE_BULK = 2, + TYPE_INTR = 3, + TYPE_STREAM = 4, + TYPE_COMMAND = 5, + TYPE_EVENT = 6, +}; + +struct xhci_segment; + +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int num_trbs_free_temp; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + bool last_td_was_short; + struct xarray *trb_address_map; +}; + +struct xhci_bw_info { + unsigned int ep_interval; + unsigned int mult; + unsigned int num_packets; + unsigned int max_packet_size; + unsigned int max_esit_payload; + unsigned int type; +}; + +struct xhci_virt_device; + +struct xhci_hcd; + +struct xhci_virt_ep { + struct xhci_virt_device *vdev; + unsigned int ep_index; + struct xhci_ring *ring; + struct xhci_stream_info *stream_info; + struct xhci_ring *new_ring; + unsigned int err_count; + unsigned int ep_state; + struct list_head cancelled_td_list; + struct timer_list stop_cmd_timer; + struct xhci_hcd *xhci; + struct xhci_segment *queued_deq_seg; + union xhci_trb *queued_deq_ptr; + bool skip; + struct xhci_bw_info bw_info; + struct list_head bw_endpoint_list; + int next_frame_id; + bool use_extended_tbc; +}; + +struct xhci_interval_bw_table; + +struct xhci_tt_bw_info; + +struct xhci_virt_device { + int slot_id; + struct usb_device *udev; + struct xhci_container_ctx *out_ctx; + struct xhci_container_ctx *in_ctx; + struct xhci_virt_ep eps[31]; + u8 fake_port; + u8 real_port; + struct xhci_interval_bw_table *bw_table; + struct xhci_tt_bw_info *tt_info; + long unsigned int flags; + u16 current_mel; + void *debugfs_private; +}; + +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; +}; + +struct xhci_bus_state { + long unsigned int bus_suspended; + long unsigned int next_statechange; + u32 port_c_suspend; + u32 suspended_ports; + u32 port_remote_wakeup; + long unsigned int resuming_ports; +}; + +struct xhci_port; + +struct xhci_hub { + struct xhci_port **ports; + unsigned int num_ports; + struct usb_hcd *hcd; + struct xhci_bus_state bus_state; + u8 maj_rev; + u8 min_rev; +}; + +struct xhci_device_context_array; + +struct xhci_interrupter; + +struct xhci_scratchpad; + +struct xhci_root_port_bw_info; + +struct xhci_port_cap; + +struct xhci_hcd { + struct usb_hcd *main_hcd; + struct usb_hcd *shared_hcd; + struct xhci_cap_regs *cap_regs; + struct xhci_op_regs *op_regs; + struct xhci_run_regs *run_regs; + struct xhci_doorbell_array *dba; + __u32 hcs_params1; + __u32 hcs_params2; + __u32 hcs_params3; + __u32 hcc_params; + __u32 hcc_params2; + spinlock_t lock; + u8 sbrn; + u16 hci_version; + u8 max_slots; + u16 max_interrupters; + u8 max_ports; + u8 isoc_threshold; + u32 imod_interval; + u32 isoc_bei_interval; + int event_ring_max; + int page_size; + int page_shift; + int msix_count; + struct clk *clk; + struct clk *reg_clk; + struct reset_control *reset; + struct xhci_device_context_array *dcbaa; + struct xhci_interrupter *interrupter; + struct xhci_ring *cmd_ring; + unsigned int cmd_ring_state; + struct list_head cmd_list; + unsigned int cmd_ring_reserved_trbs; + struct delayed_work cmd_timer; + struct completion cmd_ring_stop_completion; + struct xhci_command *current_cmd; + struct xhci_scratchpad *scratchpad; + struct list_head lpm_failed_devs; + struct mutex mutex; + struct xhci_command *lpm_command; + struct xhci_virt_device *devs[256]; + struct xhci_root_port_bw_info *rh_bw; + struct dma_pool *device_pool; + struct dma_pool *segment_pool; + struct dma_pool *small_streams_pool; + struct dma_pool *medium_streams_pool; + unsigned int xhc_state; + long unsigned int run_graceperiod; + u32 command; + struct s3_save s3; + long long unsigned int quirks; + unsigned int num_active_eps; + unsigned int limit_active_eps; + struct xhci_port *hw_ports; + struct xhci_hub usb2_rhub; + struct xhci_hub usb3_rhub; + unsigned int hw_lpm_support: 1; + unsigned int broken_suspend: 1; + u32 *ext_caps; + unsigned int num_ext_caps; + struct xhci_port_cap *port_caps; + unsigned int num_port_caps; + struct timer_list comp_mode_recovery_timer; + u32 port_status_u0; + u16 test_mode; + struct dentry *debugfs_root; + struct dentry *debugfs_slots; + struct list_head regset_list; + void *dbc; + long unsigned int priv[0]; +}; + +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; +}; + +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, +}; + +struct xhci_interval_bw { + unsigned int num_packets; + struct list_head endpoints; + unsigned int overhead[3]; +}; + +struct xhci_interval_bw_table { + unsigned int interval0_esit_payload; + struct xhci_interval_bw interval_bw[16]; + unsigned int bw_used; + unsigned int ss_bw_in; + unsigned int ss_bw_out; +}; + +struct xhci_tt_bw_info { + struct list_head tt_list; + int slot_id; + int ttport; + struct xhci_interval_bw_table bw_table; + int active_eps; +}; + +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; +}; + +struct xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; +}; + +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, +}; + +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARING_CACHE_DEFERRED = 3, + TD_CLEARED = 4, +}; + +struct xhci_td { + struct list_head td_list; + struct list_head cancelled_td_list; + int status; + enum xhci_cancelled_td_status cancel_status; + struct urb *urb; + struct xhci_segment *start_seg; + union xhci_trb *first_trb; + union xhci_trb *last_trb; + struct xhci_segment *last_trb_seg; + struct xhci_segment *bounce_seg; + bool urb_length_set; + bool error_mid_td; + unsigned int num_trbs; +}; + +struct xhci_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; +}; + +struct xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + dma_addr_t erst_dma_addr; + unsigned int erst_size; +}; + +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; +}; + +struct urb_priv___3 { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; +}; + +struct xhci_interrupter { + struct xhci_ring *event_ring; + struct xhci_erst erst; + struct xhci_intr_reg *ir_set; + unsigned int intr_num; + u32 s3_irq_pending; + u32 s3_irq_control; + u32 s3_erst_size; + u64 s3_erst_base; + u64 s3_erst_dequeue; +}; + +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; +}; + +struct xhci_port { + __le32 *addr; + int hw_portnum; + int hcd_portnum; + struct xhci_hub *rhub; + struct xhci_port_cap *port_cap; + unsigned int lpm_incapable: 1; + long unsigned int resume_timestamp; + bool rexit_active; + struct completion rexit_done; + struct completion u3exit_done; +}; + +struct xhci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); +}; + +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); + +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, +}; + +struct dbc_regs { + __le32 capability; + __le32 doorbell; + __le32 ersts; + __le32 __reserved_0; + __le64 erstba; + __le64 erdp; + __le32 control; + __le32 status; + __le32 portsc; + __le32 __reserved_1; + __le64 dccp; + __le32 devinfo1; + __le32 devinfo2; +}; + +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_STALLED = 5, +}; + +struct xhci_dbc; + +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; +}; + +struct dbc_driver; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + enum dbc_state state; + struct delayed_work event_work; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; +}; + +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); +}; + +struct dbc_request { + void *buf; + unsigned int length; + dma_addr_t dma; + void (*complete)(struct xhci_dbc *, struct dbc_request *); + struct list_head list_pool; + int status; + unsigned int actual; + struct xhci_dbc *dbc; + struct list_head list_pending; + dma_addr_t trb_dma; + union xhci_trb *trb; + unsigned int direction: 1; +}; + +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + int slot_id; + u32 __data_loc_ctx_data; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + u32 __data_loc_str; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_free_virt_dev { + struct trace_entry ent; + void *vdev; + long long unsigned int out_ctx; + long long unsigned int in_ctx; + u8 fake_port; + u8 real_port; + u16 current_mel; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_virt_dev { + struct trace_entry ent; + void *vdev; + long long unsigned int out_ctx; + long long unsigned int in_ctx; + int devnum; + int state; + int speed; + u8 portnum; + u8 level; + int slot_id; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_urb { + struct trace_entry ent; + void *urb; + unsigned int pipe; + unsigned int stream; + int status; + unsigned int flags; + int num_mapped_sgs; + int num_sgs; + int length; + int actual; + int epnum; + int dir_in; + int type; + int slot_id; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + u32 __data_loc_str; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + u32 __data_loc_str; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + u32 __data_loc_str; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + dma_addr_t enq_seg; + dma_addr_t deq_seg; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 portnum; + u32 portsc; + u32 __data_loc_str; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + u32 __data_loc_str; + char __data[0]; +}; + +struct trace_event_raw_xhci_dbc_log_request { + struct trace_entry ent; + struct dbc_request *req; + bool dir; + unsigned int actual; + unsigned int length; + int status; + char __data[0]; +}; + +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; +}; + +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; +}; + +struct trace_event_data_offsets_xhci_log_trb { + u32 str; +}; + +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_urb {}; + +struct trace_event_data_offsets_xhci_log_ep_ctx { + u32 str; +}; + +struct trace_event_data_offsets_xhci_log_slot_ctx { + u32 str; +}; + +struct trace_event_data_offsets_xhci_log_ctrl_ctx { + u32 str; +}; + +struct trace_event_data_offsets_xhci_log_ring {}; + +struct trace_event_data_offsets_xhci_log_portsc { + u32 str; +}; + +struct trace_event_data_offsets_xhci_log_doorbell { + u32 str; +}; + +struct trace_event_data_offsets_xhci_dbc_log_request {}; + +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); + +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32); + +typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32); + +typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); + +struct usb_string_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wData[1]; +}; + +struct dbc_info_context { + __le64 string0; + __le64 manufacturer; + __le64 product; + __le64 serial; + __le32 length; + __le32 __reserved_0[7]; +}; + +enum evtreturn { + EVT_ERR = 4294967295, + EVT_DONE = 0, + EVT_GSER = 1, + EVT_DISC = 2, +}; + +struct kfifo { + union { + struct __kfifo kfifo; + unsigned char *type; + const unsigned char *const_type; + char (*rectype)[0]; + void *ptr; + const void *ptr_const; + }; + unsigned char buf[0]; +}; + +struct dbc_port { + struct tty_port port; + spinlock_t port_lock; + struct list_head read_pool; + struct list_head read_queue; + unsigned int n_read; + struct tasklet_struct push; + struct list_head write_pool; + struct kfifo write_fifo; + bool registered; +}; + +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; +}; + +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); +}; + +struct xhci_ep_priv { + char name[32]; + struct dentry *root; + struct xhci_stream_info *stream_info; + struct xhci_ring *show_ring; + unsigned int stream_id; +}; + +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; +}; + +struct usb_debug_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDebugInEndpoint; + __u8 bDebugOutEndpoint; +}; + +struct ehci_dev { + u32 bus; + u32 slot; + u32 func; +}; + +typedef void (*set_debug_port_t)(int); + +struct xdbc_regs { + __le32 capability; + __le32 doorbell; + __le32 ersts; + __le32 __reserved_0; + __le64 erstba; + __le64 erdp; + __le32 control; + __le32 status; + __le32 portsc; + __le32 __reserved_1; + __le64 dccp; + __le32 devinfo1; + __le32 devinfo2; +}; + +struct xdbc_trb { + __le32 field[4]; +}; + +struct xdbc_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 __reserved_0; +}; + +struct xdbc_info_context { + __le64 string0; + __le64 manufacturer; + __le64 product; + __le64 serial; + __le32 length; + __le32 __reserved_0[7]; +}; + +struct xdbc_ep_context { + __le32 ep_info1; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 __reserved_0[11]; +}; + +struct xdbc_context { + struct xdbc_info_context info; + struct xdbc_ep_context out; + struct xdbc_ep_context in; +}; + +struct xdbc_strings { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +struct xdbc_segment { + struct xdbc_trb *trbs; + dma_addr_t dma; +}; + +struct xdbc_ring { + struct xdbc_segment *segment; + struct xdbc_trb *enqueue; + struct xdbc_trb *dequeue; + u32 cycle_state; +}; + +struct xdbc_state { + u16 vendor; + u16 device; + u32 bus; + u32 dev; + u32 func; + void *xhci_base; + u64 xhci_start; + size_t xhci_length; + int port_number; + struct xdbc_regs *xdbc_reg; + dma_addr_t table_dma; + void *table_base; + dma_addr_t erst_dma; + size_t erst_size; + void *erst_base; + struct xdbc_ring evt_ring; + struct xdbc_segment evt_seg; + dma_addr_t dbcc_dma; + size_t dbcc_size; + void *dbcc_base; + dma_addr_t string_dma; + size_t string_size; + void *string_base; + struct xdbc_ring out_ring; + struct xdbc_segment out_seg; + void *out_buf; + dma_addr_t out_dma; + struct xdbc_ring in_ring; + struct xdbc_segment in_seg; + void *in_buf; + dma_addr_t in_dma; + u32 flags; + raw_spinlock_t lock; +}; + +struct usb_role_switch { + struct device dev; + struct mutex lock; + struct module *module; + enum usb_role role; + bool registered; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; +}; + struct serio_device_id { __u8 type; __u8 extra; @@ -79419,16 +108352,12 @@ struct input_dev_poller { struct delayed_work work; }; -struct input_led { - struct led_classdev cdev; - struct input_handle *handle; - unsigned int code; -}; - -struct input_leds { - struct input_handle handle; - unsigned int num_leds; - struct input_led leds[0]; +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; }; struct mousedev_hw_data { @@ -79501,6 +108430,42 @@ enum { FRACTION_DENOM = 128, }; +struct input_mask { + __u32 type; + __u32 codes_size; + __u64 codes_ptr; +}; + +struct evdev_client; + +struct evdev { + int open; + struct input_handle handle; + struct evdev_client *grab; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + struct device dev; + struct cdev cdev; + bool exist; +}; + +struct evdev_client { + unsigned int head; + unsigned int tail; + unsigned int packet_head; + spinlock_t buffer_lock; + wait_queue_head_t wait; + struct fasync_struct *fasync; + struct evdev *evdev; + struct list_head node; + enum input_clock_type clk_type; + bool revoked; + long unsigned int *evmasks[32]; + unsigned int bufsize; + struct input_event buffer[0]; +}; + struct atkbd { struct ps2dev ps2dev; struct input_dev *dev; @@ -79532,84 +108497,136 @@ struct atkbd { int num_function_row_keys; }; -struct touchscreen_properties { - unsigned int max_x; - unsigned int max_y; - bool invert_x; - bool invert_y; - bool swap_x_y; +enum elants_chip_id { + EKTH3500 = 0, + EKTF3624 = 1, }; -struct xenkbd_motion { - uint8_t type; - int32_t rel_x; - int32_t rel_y; - int32_t rel_z; +enum elants_state { + ELAN_STATE_NORMAL = 0, + ELAN_WAIT_QUEUE_HEADER = 1, + ELAN_WAIT_RECALIBRATION = 2, }; -struct xenkbd_key { - uint8_t type; - uint8_t pressed; - uint32_t keycode; +enum elants_iap_mode { + ELAN_IAP_OPERATIONAL = 0, + ELAN_IAP_RECOVERY = 1, }; -struct xenkbd_position { - uint8_t type; - int32_t abs_x; - int32_t abs_y; - int32_t rel_z; +struct elants_data { + struct i2c_client *client; + struct input_dev *input; + struct regulator *vcc33; + struct regulator *vccio; + struct gpio_desc *reset_gpio; + u16 fw_version; + u8 test_version; + u8 solution_version; + u8 bc_version; + u8 iap_version; + u16 hw_version; + u8 major_res; + unsigned int x_res; + unsigned int y_res; + unsigned int x_max; + unsigned int y_max; + unsigned int phy_x; + unsigned int phy_y; + struct touchscreen_properties prop; + enum elants_state state; + enum elants_chip_id chip_id; + enum elants_iap_mode iap_mode; + struct mutex sysfs_mutex; + u8 cmd_resp[4]; + struct completion cmd_done; + bool wake_irq_enabled; + bool keep_power_in_suspend; + long: 64; + u8 buf[169]; + long: 64; + long: 64; }; -struct xenkbd_mtouch { - uint8_t type; - uint8_t event_type; - uint8_t contact_id; - uint8_t reserved[5]; +struct elants_version_attribute { + struct device_attribute dattr; + size_t field_offset; + size_t field_size; +}; + +struct uinput_ff_upload { + __u32 request_id; + __s32 retval; + struct ff_effect effect; + struct ff_effect old; +}; + +struct uinput_ff_erase { + __u32 request_id; + __s32 retval; + __u32 effect_id; +}; + +struct uinput_setup { + struct input_id id; + char name[80]; + __u32 ff_effects_max; +}; + +struct uinput_abs_setup { + __u16 code; + struct input_absinfo absinfo; +}; + +struct uinput_user_dev { + char name[80]; + struct input_id id; + __u32 ff_effects_max; + __s32 absmax[64]; + __s32 absmin[64]; + __s32 absfuzz[64]; + __s32 absflat[64]; +}; + +enum uinput_state { + UIST_NEW_DEVICE = 0, + UIST_SETUP_COMPLETE = 1, + UIST_CREATED = 2, +}; + +struct uinput_request { + unsigned int id; + unsigned int code; + int retval; + struct completion done; union { + unsigned int effect_id; struct { - int32_t abs_x; - int32_t abs_y; - } pos; - struct { - uint32_t major; - uint32_t minor; - } shape; - int16_t orientation; + struct ff_effect *effect; + struct ff_effect *old; + } upload; } u; }; -union xenkbd_in_event { - uint8_t type; - struct xenkbd_motion motion; - struct xenkbd_key key; - struct xenkbd_position pos; - struct xenkbd_mtouch mtouch; - char pad[40]; +struct uinput_device { + struct input_dev *dev; + struct mutex mutex; + enum uinput_state state; + wait_queue_head_t waitq; + unsigned char ready; + unsigned char head; + unsigned char tail; + struct input_event buff[16]; + unsigned int ff_effects_max; + struct uinput_request *requests[16]; + wait_queue_head_t requests_waitq; + spinlock_t requests_lock; }; -struct xenkbd_page { - uint32_t in_cons; - uint32_t in_prod; - uint32_t out_cons; - uint32_t out_prod; -}; - -struct xenkbd_info { - struct input_dev *kbd; - struct input_dev *ptr; - struct input_dev *mtouch; - struct xenkbd_page *page; - int gref; - int irq; - struct xenbus_device *xbdev; - char phys[32]; - int mtouch_cur_contact_id; -}; - -enum { - KPARAM_X = 0, - KPARAM_Y = 1, - KPARAM_CNT___2 = 2, +struct uinput_ff_upload_compat { + __u32 request_id; + __s32 retval; + struct ff_effect_compat effect; + struct ff_effect_compat old; }; struct trace_event_raw_rtc_time_alarm_class { @@ -79715,6 +108732,13 @@ enum nvmem_type { NVMEM_TYPE_EEPROM = 1, NVMEM_TYPE_OTP = 2, NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, +}; + +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; }; struct nvmem_config { @@ -79722,12 +108746,15 @@ struct nvmem_config { const char *name; int id; struct module *owner; - struct gpio_desc *wp_gpio; const struct nvmem_cell_info *cells; int ncells; + const struct nvmem_keepout *keepout; + unsigned int nkeepout; enum nvmem_type type; bool read_only; bool root_only; + bool ignore_wp; + struct device_node *of_node; bool no_of_node; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; @@ -79739,8 +108766,6 @@ struct nvmem_config { struct device *base_dev; }; -struct nvmem_device; - struct cmos_rtc_board_info { void (*wake_on)(struct device *); void (*wake_off)(struct device *); @@ -79767,6 +108792,22 @@ struct cmos_rtc { struct rtc_wkalrm saved_wkalrm; }; +struct cmos_read_alarm_callback_param { + struct cmos_rtc *cmos; + struct rtc_time *time; + unsigned char rtc_control; +}; + +struct cmos_set_alarm_callback_param { + struct cmos_rtc *cmos; + unsigned char mon; + unsigned char mday; + unsigned char hrs; + unsigned char min; + unsigned char sec; + struct rtc_wkalrm *t; +}; + struct i2c_devinfo { struct list_head list; int busnum; @@ -79850,12 +108891,6 @@ typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const st typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); -struct i2c_dummy_devres { - struct i2c_client *client; -}; - -struct class_compat; - struct i2c_cmd_arg { unsigned int cmd; void *arg; @@ -79955,6 +108990,44 @@ struct i2c_acpi_lookup { u32 force_speed; }; +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data *data; +}; + +struct i2c_rdwr_ioctl_data { + struct i2c_msg *msgs; + __u32 nmsgs; +}; + +struct i2c_dev { + struct list_head list; + struct i2c_adapter *adap; + struct device dev; + struct cdev cdev; +}; + +struct i2c_smbus_ioctl_data32 { + u8 read_write; + u8 command; + u32 size; + compat_caddr_t data; +}; + +struct i2c_msg32 { + u16 addr; + u16 flags; + u16 len; + compat_caddr_t buf; +}; + +struct i2c_rdwr_ioctl_data32 { + compat_caddr_t msgs; + u32 nmsgs; +}; + struct dw_i2c_dev { struct device *dev; struct regmap *map; @@ -79998,8 +109071,8 @@ struct dw_i2c_dev { u16 fp_lcnt; u16 hs_hcnt; u16 hs_lcnt; - int (*acquire_lock)(); - void (*release_lock)(); + int (*acquire_lock)(void); + void (*release_lock)(void); bool shared_with_punit; void (*disable)(struct dw_i2c_dev *); void (*disable_int)(struct dw_i2c_dev *); @@ -80010,183 +109083,306 @@ struct dw_i2c_dev { bool suspended; }; -struct dw_i2c_platform_data { - unsigned int i2c_scl_freq; +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; }; -enum power_supply_property { - POWER_SUPPLY_PROP_STATUS = 0, - POWER_SUPPLY_PROP_CHARGE_TYPE = 1, - POWER_SUPPLY_PROP_HEALTH = 2, - POWER_SUPPLY_PROP_PRESENT = 3, - POWER_SUPPLY_PROP_ONLINE = 4, - POWER_SUPPLY_PROP_AUTHENTIC = 5, - POWER_SUPPLY_PROP_TECHNOLOGY = 6, - POWER_SUPPLY_PROP_CYCLE_COUNT = 7, - POWER_SUPPLY_PROP_VOLTAGE_MAX = 8, - POWER_SUPPLY_PROP_VOLTAGE_MIN = 9, - POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN = 10, - POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN = 11, - POWER_SUPPLY_PROP_VOLTAGE_NOW = 12, - POWER_SUPPLY_PROP_VOLTAGE_AVG = 13, - POWER_SUPPLY_PROP_VOLTAGE_OCV = 14, - POWER_SUPPLY_PROP_VOLTAGE_BOOT = 15, - POWER_SUPPLY_PROP_CURRENT_MAX = 16, - POWER_SUPPLY_PROP_CURRENT_NOW = 17, - POWER_SUPPLY_PROP_CURRENT_AVG = 18, - POWER_SUPPLY_PROP_CURRENT_BOOT = 19, - POWER_SUPPLY_PROP_POWER_NOW = 20, - POWER_SUPPLY_PROP_POWER_AVG = 21, - POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN = 22, - POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN = 23, - POWER_SUPPLY_PROP_CHARGE_FULL = 24, - POWER_SUPPLY_PROP_CHARGE_EMPTY = 25, - POWER_SUPPLY_PROP_CHARGE_NOW = 26, - POWER_SUPPLY_PROP_CHARGE_AVG = 27, - POWER_SUPPLY_PROP_CHARGE_COUNTER = 28, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT = 29, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX = 30, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE = 31, - POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX = 32, - POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT = 33, - POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX = 34, - POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD = 35, - POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD = 36, - POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT = 37, - POWER_SUPPLY_PROP_INPUT_VOLTAGE_LIMIT = 38, - POWER_SUPPLY_PROP_INPUT_POWER_LIMIT = 39, - POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN = 40, - POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN = 41, - POWER_SUPPLY_PROP_ENERGY_FULL = 42, - POWER_SUPPLY_PROP_ENERGY_EMPTY = 43, - POWER_SUPPLY_PROP_ENERGY_NOW = 44, - POWER_SUPPLY_PROP_ENERGY_AVG = 45, - POWER_SUPPLY_PROP_CAPACITY = 46, - POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN = 47, - POWER_SUPPLY_PROP_CAPACITY_ALERT_MAX = 48, - POWER_SUPPLY_PROP_CAPACITY_ERROR_MARGIN = 49, - POWER_SUPPLY_PROP_CAPACITY_LEVEL = 50, - POWER_SUPPLY_PROP_TEMP = 51, - POWER_SUPPLY_PROP_TEMP_MAX = 52, - POWER_SUPPLY_PROP_TEMP_MIN = 53, - POWER_SUPPLY_PROP_TEMP_ALERT_MIN = 54, - POWER_SUPPLY_PROP_TEMP_ALERT_MAX = 55, - POWER_SUPPLY_PROP_TEMP_AMBIENT = 56, - POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MIN = 57, - POWER_SUPPLY_PROP_TEMP_AMBIENT_ALERT_MAX = 58, - POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW = 59, - POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG = 60, - POWER_SUPPLY_PROP_TIME_TO_FULL_NOW = 61, - POWER_SUPPLY_PROP_TIME_TO_FULL_AVG = 62, - POWER_SUPPLY_PROP_TYPE = 63, - POWER_SUPPLY_PROP_USB_TYPE = 64, - POWER_SUPPLY_PROP_SCOPE = 65, - POWER_SUPPLY_PROP_PRECHARGE_CURRENT = 66, - POWER_SUPPLY_PROP_CHARGE_TERM_CURRENT = 67, - POWER_SUPPLY_PROP_CALIBRATE = 68, - POWER_SUPPLY_PROP_MANUFACTURE_YEAR = 69, - POWER_SUPPLY_PROP_MANUFACTURE_MONTH = 70, - POWER_SUPPLY_PROP_MANUFACTURE_DAY = 71, - POWER_SUPPLY_PROP_MODEL_NAME = 72, - POWER_SUPPLY_PROP_MANUFACTURER = 73, - POWER_SUPPLY_PROP_SERIAL_NUMBER = 74, +struct pps_ktime_compat { + __s64 sec; + __s32 nsec; + __u32 flags; }; -enum power_supply_type { - POWER_SUPPLY_TYPE_UNKNOWN = 0, - POWER_SUPPLY_TYPE_BATTERY = 1, - POWER_SUPPLY_TYPE_UPS = 2, - POWER_SUPPLY_TYPE_MAINS = 3, - POWER_SUPPLY_TYPE_USB = 4, - POWER_SUPPLY_TYPE_USB_DCP = 5, - POWER_SUPPLY_TYPE_USB_CDP = 6, - POWER_SUPPLY_TYPE_USB_ACA = 7, - POWER_SUPPLY_TYPE_USB_TYPE_C = 8, - POWER_SUPPLY_TYPE_USB_PD = 9, - POWER_SUPPLY_TYPE_USB_PD_DRP = 10, - POWER_SUPPLY_TYPE_APPLE_BRICK_ID = 11, - POWER_SUPPLY_TYPE_WIRELESS = 12, +struct pps_kinfo { + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; }; -enum power_supply_usb_type { - POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, - POWER_SUPPLY_USB_TYPE_SDP = 1, - POWER_SUPPLY_USB_TYPE_DCP = 2, - POWER_SUPPLY_USB_TYPE_CDP = 3, - POWER_SUPPLY_USB_TYPE_ACA = 4, - POWER_SUPPLY_USB_TYPE_C = 5, - POWER_SUPPLY_USB_TYPE_PD = 6, - POWER_SUPPLY_USB_TYPE_PD_DRP = 7, - POWER_SUPPLY_USB_TYPE_PD_PPS = 8, - POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, +struct pps_kinfo_compat { + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime_compat assert_tu; + struct pps_ktime_compat clear_tu; + int current_mode; +} __attribute__((packed)); + +struct pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; +}; + +struct pps_fdata { + struct pps_kinfo info; + struct pps_ktime timeout; +}; + +struct pps_fdata_compat { + struct pps_kinfo_compat info; + struct pps_ktime_compat timeout; +} __attribute__((packed)); + +struct pps_bind_args { + int tsformat; + int edge; + int consumer; +}; + +struct pps_device; + +struct pps_source_info { + char name[32]; + char path[32]; + int mode; + void (*echo)(struct pps_device *, int, void *); + struct module *owner; + struct device *dev; +}; + +struct pps_device { + struct pps_source_info info; + struct pps_kparams params; + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; + unsigned int last_ev; + wait_queue_head_t queue; + unsigned int id; + const void *lookup_cookie; + struct cdev cdev; + struct device *dev; + struct fasync_struct *async_queue; + spinlock_t lock; +}; + +struct pps_event_time { + struct timespec64 ts_real; +}; + +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; +}; + +struct ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_perout_request { + union { + struct ptp_clock_time start; + struct ptp_clock_time phase; + }; + struct ptp_clock_time period; + unsigned int index; + unsigned int flags; + union { + struct ptp_clock_time on; + unsigned int rsv[4]; + }; +}; + +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, +}; + +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; +}; + +struct ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; + +struct ptp_clock_request { + enum { + PTP_CLK_REQ_EXTTS = 0, + PTP_CLK_REQ_PEROUT = 1, + PTP_CLK_REQ_PPS = 2, + } type; + union { + struct ptp_extts_request extts; + struct ptp_perout_request perout; + }; +}; + +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long int); + int (*adjfreq)(struct ptp_clock_info *, s32); + int (*adjphase)(struct ptp_clock_info *, s32); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long int (*do_aux_work)(struct ptp_clock_info *); +}; + +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_PPS = 2, + PTP_CLOCK_PPSUSR = 3, +}; + +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + struct pps_event_time pps_times; + }; +}; + +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; +}; + +struct ptp_clock { + struct posix_clock clock; + struct device dev; + struct ptp_clock_info *info; + dev_t devid; + int index; + struct pps_device *pps_source; + long int dialed_frequency; + struct timestamp_event_queue tsevq; + struct mutex tsevq_mux; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; +}; + +struct ptp_vclock { + struct ptp_clock *pclock; + struct ptp_clock_info info; + struct ptp_clock *clock; + struct cyclecounter cc; + struct timecounter tc; + spinlock_t lock; +}; + +struct ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int rsv[12]; +}; + +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; +}; + +struct ptp_sys_offset_extended { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[75]; +}; + +struct ptp_sys_offset_precise { + struct ptp_clock_time device; + struct ptp_clock_time sys_realtime; + struct ptp_clock_time sys_monoraw; + unsigned int rsv[4]; +}; + +struct mt6397_chip { + struct device *dev; + struct regmap *regmap; + struct notifier_block pm_nb; + int irq; + struct irq_domain *irq_domain; + struct mutex irqlock; + u16 wake_mask[2]; + u16 irq_masks_cur[2]; + u16 irq_masks_cache[2]; + u16 int_con[2]; + u16 int_status[2]; + u16 chip_id; + void *irq_data; +}; + +struct mt6323_pwrc { + struct device *dev; + struct regmap *regmap; + u32 base; +}; + +struct tps65086 { + struct device *dev; + struct regmap *regmap; + int irq; + struct regmap_irq_chip_data *irq_data; +}; + +struct tps65086_restart { + struct notifier_block handler; + struct device *dev; +}; + +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, }; enum power_supply_notifier_events { PSY_EVENT_PROP_CHANGED = 0, }; -union power_supply_propval { - int intval; - const char *strval; -}; - -struct power_supply_config { - struct device_node *of_node; - struct fwnode_handle *fwnode; - void *drv_data; - const struct attribute_group **attr_grp; - char **supplied_to; - size_t num_supplicants; -}; - -struct power_supply; - -struct power_supply_desc { - const char *name; - enum power_supply_type type; - const enum power_supply_usb_type *usb_types; - size_t num_usb_types; - const enum power_supply_property *properties; - size_t num_properties; - int (*get_property)(struct power_supply *, enum power_supply_property, union power_supply_propval *); - int (*set_property)(struct power_supply *, enum power_supply_property, const union power_supply_propval *); - int (*property_is_writeable)(struct power_supply *, enum power_supply_property); - void (*external_power_changed)(struct power_supply *); - void (*set_charged)(struct power_supply *); - bool no_thermal; - int use_for_apm; -}; - -struct power_supply { - const struct power_supply_desc *desc; - char **supplied_to; - size_t num_supplicants; - char **supplied_from; - size_t num_supplies; - struct device_node *of_node; - void *drv_data; - struct device dev; - struct work_struct changed_work; - struct delayed_work deferred_register_work; - spinlock_t changed_lock; - bool changed; - bool initialized; - bool removing; - atomic_t use_cnt; - struct thermal_zone_device *tzd; - struct thermal_cooling_device *tcd; - struct led_trigger *charging_full_trig; - char *charging_full_trig_name; - struct led_trigger *charging_trig; - char *charging_trig_name; - struct led_trigger *full_trig; - char *full_trig_name; - struct led_trigger *online_trig; - char *online_trig_name; - struct led_trigger *charging_blink_full_solid_trig; - char *charging_blink_full_solid_trig_name; -}; - struct power_supply_battery_ocv_table { int ocv; int capacity; @@ -80198,6 +109394,7 @@ struct power_supply_resistance_temp_table { }; struct power_supply_battery_info { + unsigned int technology; int energy_full_design_uwh; int charge_full_design_uah; int voltage_min_design_uv; @@ -80229,12 +109426,10 @@ struct psy_am_i_supplied_data { unsigned int count; }; -enum { - POWER_SUPPLY_STATUS_UNKNOWN = 0, - POWER_SUPPLY_STATUS_CHARGING = 1, - POWER_SUPPLY_STATUS_DISCHARGING = 2, - POWER_SUPPLY_STATUS_NOT_CHARGING = 3, - POWER_SUPPLY_STATUS_FULL = 4, +struct psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; }; enum { @@ -80265,31 +109460,6 @@ enum { POWER_SUPPLY_HEALTH_HOT = 13, }; -enum { - POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0, - POWER_SUPPLY_TECHNOLOGY_NiMH = 1, - POWER_SUPPLY_TECHNOLOGY_LION = 2, - POWER_SUPPLY_TECHNOLOGY_LIPO = 3, - POWER_SUPPLY_TECHNOLOGY_LiFe = 4, - POWER_SUPPLY_TECHNOLOGY_NiCd = 5, - POWER_SUPPLY_TECHNOLOGY_LiMn = 6, -}; - -enum { - POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN = 0, - POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL = 1, - POWER_SUPPLY_CAPACITY_LEVEL_LOW = 2, - POWER_SUPPLY_CAPACITY_LEVEL_NORMAL = 3, - POWER_SUPPLY_CAPACITY_LEVEL_HIGH = 4, - POWER_SUPPLY_CAPACITY_LEVEL_FULL = 5, -}; - -enum { - POWER_SUPPLY_SCOPE_UNKNOWN = 0, - POWER_SUPPLY_SCOPE_SYSTEM = 1, - POWER_SUPPLY_SCOPE_DEVICE = 2, -}; - struct power_supply_attr { const char *prop_name; char attr_name[31]; @@ -80411,6 +109581,12 @@ struct hwmon_type_attr_list { size_t n_attrs; }; +enum cm_batt_temp { + CM_BATT_OK = 0, + CM_BATT_OVERHEAT = 1, + CM_BATT_COLD = 2, +}; + enum hwmon_chip_attributes { hwmon_chip_temp_reset_history = 0, hwmon_chip_in_reset_history = 1, @@ -80597,9 +109773,8 @@ struct trace_event_raw_thermal_power_devfreq_get_power { struct trace_entry ent; u32 __data_loc_type; long unsigned int freq; - u32 load; - u32 dynamic_power; - u32 static_power; + u32 busy_time; + u32 total_time; u32 power; char __data[0]; }; @@ -80639,7 +109814,7 @@ typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, l typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); -typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, long unsigned int, u32, u32, u32); +typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, long unsigned int, u32); typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, long unsigned int, long unsigned int, u32); @@ -80672,6 +109847,87 @@ struct cooling_dev_stats { unsigned int *trans_table; }; +struct genl_dumpit_info { + const struct genl_family *family; + struct genl_ops op; + struct nlattr **attrs; +}; + +enum thermal_genl_attr { + THERMAL_GENL_ATTR_UNSPEC = 0, + THERMAL_GENL_ATTR_TZ = 1, + THERMAL_GENL_ATTR_TZ_ID = 2, + THERMAL_GENL_ATTR_TZ_TEMP = 3, + THERMAL_GENL_ATTR_TZ_TRIP = 4, + THERMAL_GENL_ATTR_TZ_TRIP_ID = 5, + THERMAL_GENL_ATTR_TZ_TRIP_TYPE = 6, + THERMAL_GENL_ATTR_TZ_TRIP_TEMP = 7, + THERMAL_GENL_ATTR_TZ_TRIP_HYST = 8, + THERMAL_GENL_ATTR_TZ_MODE = 9, + THERMAL_GENL_ATTR_TZ_NAME = 10, + THERMAL_GENL_ATTR_TZ_CDEV_WEIGHT = 11, + THERMAL_GENL_ATTR_TZ_GOV = 12, + THERMAL_GENL_ATTR_TZ_GOV_NAME = 13, + THERMAL_GENL_ATTR_CDEV = 14, + THERMAL_GENL_ATTR_CDEV_ID = 15, + THERMAL_GENL_ATTR_CDEV_CUR_STATE = 16, + THERMAL_GENL_ATTR_CDEV_MAX_STATE = 17, + THERMAL_GENL_ATTR_CDEV_NAME = 18, + THERMAL_GENL_ATTR_GOV_NAME = 19, + __THERMAL_GENL_ATTR_MAX = 20, +}; + +enum thermal_genl_sampling { + THERMAL_GENL_SAMPLING_TEMP = 0, + __THERMAL_GENL_SAMPLING_MAX = 1, +}; + +enum thermal_genl_event { + THERMAL_GENL_EVENT_UNSPEC = 0, + THERMAL_GENL_EVENT_TZ_CREATE = 1, + THERMAL_GENL_EVENT_TZ_DELETE = 2, + THERMAL_GENL_EVENT_TZ_DISABLE = 3, + THERMAL_GENL_EVENT_TZ_ENABLE = 4, + THERMAL_GENL_EVENT_TZ_TRIP_UP = 5, + THERMAL_GENL_EVENT_TZ_TRIP_DOWN = 6, + THERMAL_GENL_EVENT_TZ_TRIP_CHANGE = 7, + THERMAL_GENL_EVENT_TZ_TRIP_ADD = 8, + THERMAL_GENL_EVENT_TZ_TRIP_DELETE = 9, + THERMAL_GENL_EVENT_CDEV_ADD = 10, + THERMAL_GENL_EVENT_CDEV_DELETE = 11, + THERMAL_GENL_EVENT_CDEV_STATE_UPDATE = 12, + THERMAL_GENL_EVENT_TZ_GOV_CHANGE = 13, + __THERMAL_GENL_EVENT_MAX = 14, +}; + +enum thermal_genl_cmd { + THERMAL_GENL_CMD_UNSPEC = 0, + THERMAL_GENL_CMD_TZ_GET_ID = 1, + THERMAL_GENL_CMD_TZ_GET_TRIP = 2, + THERMAL_GENL_CMD_TZ_GET_TEMP = 3, + THERMAL_GENL_CMD_TZ_GET_GOV = 4, + THERMAL_GENL_CMD_TZ_GET_MODE = 5, + THERMAL_GENL_CMD_CDEV_GET = 6, + __THERMAL_GENL_CMD_MAX = 7, +}; + +struct param { + struct nlattr **attrs; + struct sk_buff *msg; + const char *name; + int tz_id; + int cdev_id; + int trip_id; + int trip_temp; + int trip_type; + int trip_hyst; + int temp; + int cdev_state; + int cdev_max_state; +}; + +typedef int (*cb_t)(struct param *); + struct thermal_hwmon_device { char type[20]; struct device *device; @@ -80736,6 +109992,7 @@ struct power_allocator_params { s32 prev_err; int trip_switch_on; int trip_max_desired_temperature; + u32 sustainable_power; }; enum devfreq_timer { @@ -80748,6 +110005,7 @@ struct devfreq_dev_profile { long unsigned int initial_freq; unsigned int polling_ms; enum devfreq_timer timer; + bool is_cooling_device; int (*target)(struct device *, long unsigned int *, u32); int (*get_dev_status)(struct device *, struct devfreq_dev_status *); int (*get_cur_freq)(struct device *, long unsigned int *); @@ -80771,12 +110029,13 @@ struct devfreq { struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; - char governor_name[16]; + struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; long unsigned int previous_freq; struct devfreq_dev_status last_status; void *data; + void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; long unsigned int scaling_min_freq; @@ -80787,6 +110046,7 @@ struct devfreq { atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; + struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; }; @@ -80794,31 +110054,974 @@ struct devfreq { struct devfreq_governor { struct list_head node; const char name[16]; - const unsigned int immutable; - const unsigned int interrupt_driven; + const u64 attrs; + const u64 flags; int (*get_target_freq)(struct devfreq *, long unsigned int *); int (*event_handler)(struct devfreq *, unsigned int, void *); }; struct devfreq_cooling_power { - long unsigned int (*get_static_power)(struct devfreq *, long unsigned int); - long unsigned int (*get_dynamic_power)(struct devfreq *, long unsigned int, long unsigned int); int (*get_real_power)(struct devfreq *, u32 *, long unsigned int, long unsigned int); - long unsigned int dyn_power_coeff; }; struct devfreq_cooling_device { - int id; struct thermal_cooling_device *cdev; struct devfreq *devfreq; long unsigned int cooling_state; - u32 *power_table; u32 *freq_table; - size_t freq_table_size; + size_t max_state; struct devfreq_cooling_power *power_ops; u32 res_util; int capped_state; struct dev_pm_qos_request req_max_freq; + struct em_perf_domain *em_pd; +}; + +struct _thermal_state { + u64 next_check; + u64 last_interrupt_time; + struct delayed_work therm_work; + long unsigned int count; + long unsigned int last_count; + long unsigned int max_time_ms; + long unsigned int total_time_ms; + bool rate_control_active; + bool new_event; + u8 level; + u8 sample_index; + u8 sample_count; + u8 average; + u8 baseline_temp; + u8 temp_samples[3]; +}; + +struct thermal_state { + struct _thermal_state core_throttle; + struct _thermal_state core_power_limit; + struct _thermal_state package_throttle; + struct _thermal_state package_power_limit; + struct _thermal_state core_thresh0; + struct _thermal_state core_thresh1; + struct _thermal_state pkg_thresh0; + struct _thermal_state pkg_thresh1; +}; + +struct watchdog_info { + __u32 options; + __u32 firmware_version; + __u8 identity[32]; +}; + +struct watchdog_device; + +struct watchdog_ops { + struct module *owner; + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); + int (*ping)(struct watchdog_device *); + unsigned int (*status)(struct watchdog_device *); + int (*set_timeout)(struct watchdog_device *, unsigned int); + int (*set_pretimeout)(struct watchdog_device *, unsigned int); + unsigned int (*get_timeleft)(struct watchdog_device *); + int (*restart)(struct watchdog_device *, long unsigned int, void *); + long int (*ioctl)(struct watchdog_device *, unsigned int, long unsigned int); +}; + +struct watchdog_governor; + +struct watchdog_core_data; + +struct watchdog_device { + int id; + struct device *parent; + const struct attribute_group **groups; + const struct watchdog_info *info; + const struct watchdog_ops *ops; + const struct watchdog_governor *gov; + unsigned int bootstatus; + unsigned int timeout; + unsigned int pretimeout; + unsigned int min_timeout; + unsigned int max_timeout; + unsigned int min_hw_heartbeat_ms; + unsigned int max_hw_heartbeat_ms; + struct notifier_block reboot_nb; + struct notifier_block restart_nb; + struct notifier_block pm_nb; + void *driver_data; + struct watchdog_core_data *wd_data; + long unsigned int status; + struct list_head deferred; +}; + +struct watchdog_governor { + const char name[20]; + void (*pretimeout)(struct watchdog_device *); +}; + +struct watchdog_core_data { + struct device dev; + struct cdev cdev; + struct watchdog_device *wdd; + struct mutex lock; + ktime_t last_keepalive; + ktime_t last_hw_keepalive; + ktime_t open_deadline; + struct hrtimer timer; + struct kthread_work work; + long unsigned int status; +}; + +struct watchdog_pretimeout { + struct watchdog_device *wdd; + struct list_head entry; +}; + +struct governor_priv { + struct watchdog_governor *gov; + struct list_head entry; +}; + +struct mdp_device_descriptor_s { + __u32 number; + __u32 major; + __u32 minor; + __u32 raid_disk; + __u32 state; + __u32 reserved[27]; +}; + +typedef struct mdp_device_descriptor_s mdp_disk_t; + +struct mdp_superblock_s { + __u32 md_magic; + __u32 major_version; + __u32 minor_version; + __u32 patch_version; + __u32 gvalid_words; + __u32 set_uuid0; + __u32 ctime; + __u32 level; + __u32 size; + __u32 nr_disks; + __u32 raid_disks; + __u32 md_minor; + __u32 not_persistent; + __u32 set_uuid1; + __u32 set_uuid2; + __u32 set_uuid3; + __u32 gstate_creserved[16]; + __u32 utime; + __u32 state; + __u32 active_disks; + __u32 working_disks; + __u32 failed_disks; + __u32 spare_disks; + __u32 sb_csum; + __u32 events_lo; + __u32 events_hi; + __u32 cp_events_lo; + __u32 cp_events_hi; + __u32 recovery_cp; + __u64 reshape_position; + __u32 new_level; + __u32 delta_disks; + __u32 new_layout; + __u32 new_chunk; + __u32 gstate_sreserved[14]; + __u32 layout; + __u32 chunk_size; + __u32 root_pv; + __u32 root_block; + __u32 pstate_reserved[60]; + mdp_disk_t disks[27]; + __u32 reserved[0]; + mdp_disk_t this_disk; +}; + +typedef struct mdp_superblock_s mdp_super_t; + +struct mdp_superblock_1 { + __le32 magic; + __le32 major_version; + __le32 feature_map; + __le32 pad0; + __u8 set_uuid[16]; + char set_name[32]; + __le64 ctime; + __le32 level; + __le32 layout; + __le64 size; + __le32 chunksize; + __le32 raid_disks; + union { + __le32 bitmap_offset; + struct { + __le16 offset; + __le16 size; + } ppl; + }; + __le32 new_level; + __le64 reshape_position; + __le32 delta_disks; + __le32 new_layout; + __le32 new_chunk; + __le32 new_offset; + __le64 data_offset; + __le64 data_size; + __le64 super_offset; + union { + __le64 recovery_offset; + __le64 journal_tail; + }; + __le32 dev_number; + __le32 cnt_corrected_read; + __u8 device_uuid[16]; + __u8 devflags; + __u8 bblog_shift; + __le16 bblog_size; + __le32 bblog_offset; + __le64 utime; + __le64 events; + __le64 resync_offset; + __le32 sb_csum; + __le32 max_dev; + __u8 pad3[32]; + __le16 dev_roles[0]; +}; + +struct mdu_version_s { + int major; + int minor; + int patchlevel; +}; + +typedef struct mdu_version_s mdu_version_t; + +struct mdu_array_info_s { + int major_version; + int minor_version; + int patch_version; + unsigned int ctime; + int level; + int size; + int nr_disks; + int raid_disks; + int md_minor; + int not_persistent; + unsigned int utime; + int state; + int active_disks; + int working_disks; + int failed_disks; + int spare_disks; + int layout; + int chunk_size; +}; + +typedef struct mdu_array_info_s mdu_array_info_t; + +struct mdu_disk_info_s { + int number; + int major; + int minor; + int raid_disk; + int state; +}; + +typedef struct mdu_disk_info_s mdu_disk_info_t; + +struct mdu_bitmap_file_s { + char pathname[4096]; +}; + +typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; + +struct mddev; + +struct md_rdev; + +struct md_cluster_operations { + int (*join)(struct mddev *, int); + int (*leave)(struct mddev *); + int (*slot_number)(struct mddev *); + int (*resync_info_update)(struct mddev *, sector_t, sector_t); + void (*resync_info_get)(struct mddev *, sector_t *, sector_t *); + int (*metadata_update_start)(struct mddev *); + int (*metadata_update_finish)(struct mddev *); + void (*metadata_update_cancel)(struct mddev *); + int (*resync_start)(struct mddev *); + int (*resync_finish)(struct mddev *); + int (*area_resyncing)(struct mddev *, int, sector_t, sector_t); + int (*add_new_disk)(struct mddev *, struct md_rdev *); + void (*add_new_disk_cancel)(struct mddev *); + int (*new_disk_ack)(struct mddev *, bool); + int (*remove_disk)(struct mddev *, struct md_rdev *); + void (*load_bitmaps)(struct mddev *, int); + int (*gather_bitmaps)(struct md_rdev *); + int (*resize_bitmaps)(struct mddev *, sector_t, sector_t); + int (*lock_all_bitmaps)(struct mddev *); + void (*unlock_all_bitmaps)(struct mddev *); + void (*update_size)(struct mddev *, sector_t); +}; + +struct md_cluster_info; + +struct md_personality; + +struct md_thread; + +struct bitmap; + +struct mddev { + void *private; + struct md_personality *pers; + dev_t unit; + int md_minor; + struct list_head disks; + long unsigned int flags; + long unsigned int sb_flags; + int suspended; + atomic_t active_io; + int ro; + int sysfs_active; + struct gendisk *gendisk; + struct kobject kobj; + int hold_active; + int major_version; + int minor_version; + int patch_version; + int persistent; + int external; + char metadata_type[17]; + int chunk_sectors; + time64_t ctime; + time64_t utime; + int level; + int layout; + char clevel[16]; + int raid_disks; + int max_disks; + sector_t dev_sectors; + sector_t array_sectors; + int external_size; + __u64 events; + int can_decrease_events; + char uuid[16]; + sector_t reshape_position; + int delta_disks; + int new_level; + int new_layout; + int new_chunk_sectors; + int reshape_backwards; + struct md_thread *thread; + struct md_thread *sync_thread; + char *last_sync_action; + sector_t curr_resync; + sector_t curr_resync_completed; + long unsigned int resync_mark; + sector_t resync_mark_cnt; + sector_t curr_mark_cnt; + sector_t resync_max_sectors; + atomic64_t resync_mismatches; + sector_t suspend_lo; + sector_t suspend_hi; + int sync_speed_min; + int sync_speed_max; + int parallel_resync; + int ok_start_degraded; + long unsigned int recovery; + int recovery_disabled; + int in_sync; + struct mutex open_mutex; + struct mutex reconfig_mutex; + atomic_t active; + atomic_t openers; + int changed; + int degraded; + atomic_t recovery_active; + wait_queue_head_t recovery_wait; + sector_t recovery_cp; + sector_t resync_min; + sector_t resync_max; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_action; + struct kernfs_node *sysfs_completed; + struct kernfs_node *sysfs_degraded; + struct kernfs_node *sysfs_level; + struct work_struct del_work; + spinlock_t lock; + wait_queue_head_t sb_wait; + atomic_t pending_writes; + unsigned int safemode; + unsigned int safemode_delay; + struct timer_list safemode_timer; + struct percpu_ref writes_pending; + int sync_checkers; + struct request_queue *queue; + struct bitmap *bitmap; + struct { + struct file *file; + loff_t offset; + long unsigned int space; + loff_t default_offset; + long unsigned int default_space; + struct mutex mutex; + long unsigned int chunksize; + long unsigned int daemon_sleep; + long unsigned int max_write_behind; + int external; + int nodes; + char cluster_name[64]; + } bitmap_info; + atomic_t max_corr_read_errors; + struct list_head all_mddevs; + const struct attribute_group *to_remove; + struct bio_set bio_set; + struct bio_set sync_set; + struct bio_set io_acct_set; + struct bio *flush_bio; + atomic_t flush_pending; + ktime_t start_flush; + ktime_t prev_flush_start; + struct work_struct flush_work; + struct work_struct event_work; + mempool_t *serial_info_pool; + void (*sync_super)(struct mddev *, struct md_rdev *); + struct md_cluster_info *cluster_info; + unsigned int good_device_nr; + unsigned int noio_flag; + bool has_superblocks: 1; + bool fail_last_dev: 1; + bool serialize_policy: 1; +}; + +struct serial_in_rdev; + +struct md_rdev { + struct list_head same_set; + sector_t sectors; + struct mddev *mddev; + int last_events; + struct block_device *meta_bdev; + struct block_device *bdev; + struct page *sb_page; + struct page *bb_page; + int sb_loaded; + __u64 sb_events; + sector_t data_offset; + sector_t new_data_offset; + sector_t sb_start; + int sb_size; + int preferred_minor; + struct kobject kobj; + long unsigned int flags; + wait_queue_head_t blocked_wait; + int desc_nr; + int raid_disk; + int new_raid_disk; + int saved_raid_disk; + union { + sector_t recovery_offset; + sector_t journal_tail; + }; + atomic_t nr_pending; + atomic_t read_errors; + time64_t last_read_error; + atomic_t corrected_errors; + struct serial_in_rdev *serial; + struct work_struct del_work; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_unack_badblocks; + struct kernfs_node *sysfs_badblocks; + struct badblocks badblocks; + struct { + short int offset; + unsigned int size; + sector_t sector; + } ppl; +}; + +struct serial_in_rdev { + struct rb_root_cached serial_rb; + spinlock_t serial_lock; + wait_queue_head_t serial_io_wait; +}; + +enum flag_bits { + Faulty = 0, + In_sync = 1, + Bitmap_sync = 2, + WriteMostly = 3, + AutoDetected = 4, + Blocked = 5, + WriteErrorSeen = 6, + FaultRecorded = 7, + BlockedBadBlocks = 8, + WantReplacement = 9, + Replacement = 10, + Candidate = 11, + Journal = 12, + ClusterRemove = 13, + RemoveSynchronized = 14, + ExternalBbl = 15, + FailFast = 16, + LastDev = 17, + CollisionCheck = 18, +}; + +enum mddev_flags { + MD_ARRAY_FIRST_USE = 0, + MD_CLOSING = 1, + MD_JOURNAL_CLEAN = 2, + MD_HAS_JOURNAL = 3, + MD_CLUSTER_RESYNC_LOCKED = 4, + MD_FAILFAST_SUPPORTED = 5, + MD_HAS_PPL = 6, + MD_HAS_MULTIPLE_PPLS = 7, + MD_ALLOW_SB_UPDATE = 8, + MD_UPDATING_SB = 9, + MD_NOT_READY = 10, + MD_BROKEN = 11, +}; + +enum mddev_sb_flags { + MD_SB_CHANGE_DEVS = 0, + MD_SB_CHANGE_CLEAN = 1, + MD_SB_CHANGE_PENDING = 2, + MD_SB_NEED_REWRITE = 3, +}; + +struct md_personality { + char *name; + int level; + struct list_head list; + struct module *owner; + bool (*make_request)(struct mddev *, struct bio *); + int (*run)(struct mddev *); + int (*start)(struct mddev *); + void (*free)(struct mddev *, void *); + void (*status)(struct seq_file *, struct mddev *); + void (*error_handler)(struct mddev *, struct md_rdev *); + int (*hot_add_disk)(struct mddev *, struct md_rdev *); + int (*hot_remove_disk)(struct mddev *, struct md_rdev *); + int (*spare_active)(struct mddev *); + sector_t (*sync_request)(struct mddev *, sector_t, int *); + int (*resize)(struct mddev *, sector_t); + sector_t (*size)(struct mddev *, sector_t, int); + int (*check_reshape)(struct mddev *); + int (*start_reshape)(struct mddev *); + void (*finish_reshape)(struct mddev *); + void (*update_reshape_pos)(struct mddev *); + void (*quiesce)(struct mddev *, int); + void * (*takeover)(struct mddev *); + int (*change_consistency_policy)(struct mddev *, const char *); +}; + +struct md_thread { + void (*run)(struct md_thread *); + struct mddev *mddev; + wait_queue_head_t wqueue; + long unsigned int flags; + struct task_struct *tsk; + long unsigned int timeout; + void *private; +}; + +struct bitmap_page; + +struct bitmap_counts { + spinlock_t lock; + struct bitmap_page *bp; + long unsigned int pages; + long unsigned int missing_pages; + long unsigned int chunkshift; + long unsigned int chunks; +}; + +struct bitmap_storage { + struct file *file; + struct page *sb_page; + struct page **filemap; + long unsigned int *filemap_attr; + long unsigned int file_pages; + long unsigned int bytes; +}; + +struct bitmap { + struct bitmap_counts counts; + struct mddev *mddev; + __u64 events_cleared; + int need_sync; + struct bitmap_storage storage; + long unsigned int flags; + int allclean; + atomic_t behind_writes; + long unsigned int behind_writes_used; + long unsigned int daemon_lastrun; + long unsigned int last_end_sync; + atomic_t pending_writes; + wait_queue_head_t write_wait; + wait_queue_head_t overflow_wait; + wait_queue_head_t behind_wait; + struct kernfs_node *sysfs_can_clear; + int cluster_slot; +}; + +enum recovery_flags { + MD_RECOVERY_RUNNING = 0, + MD_RECOVERY_SYNC = 1, + MD_RECOVERY_RECOVER = 2, + MD_RECOVERY_INTR = 3, + MD_RECOVERY_DONE = 4, + MD_RECOVERY_NEEDED = 5, + MD_RECOVERY_REQUESTED = 6, + MD_RECOVERY_CHECK = 7, + MD_RECOVERY_RESHAPE = 8, + MD_RECOVERY_FROZEN = 9, + MD_RECOVERY_ERROR = 10, + MD_RECOVERY_WAIT = 11, + MD_RESYNCING_REMOTE = 12, +}; + +struct md_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct mddev *, char *); + ssize_t (*store)(struct mddev *, const char *, size_t); +}; + +struct md_io_acct { + struct bio *orig_bio; + long unsigned int start_time; + struct bio bio_clone; +}; + +struct bitmap_page { + char *map; + unsigned int hijacked: 1; + unsigned int pending: 1; + unsigned int count: 30; +}; + +enum md_ro_state { + MD_RDWR = 0, + MD_RDONLY = 1, + MD_AUTO_READ = 2, + MD_MAX_STATE = 3, +}; + +struct super_type { + char *name; + struct module *owner; + int (*load_super)(struct md_rdev *, struct md_rdev *, int); + int (*validate_super)(struct mddev *, struct md_rdev *, struct md_rdev *); + void (*sync_super)(struct mddev *, struct md_rdev *); + long long unsigned int (*rdev_size_change)(struct md_rdev *, sector_t); + int (*allow_new_offset)(struct md_rdev *, long long unsigned int); +}; + +struct rdev_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct md_rdev *, char *); + ssize_t (*store)(struct md_rdev *, const char *, size_t); +}; + +enum array_state { + clear = 0, + inactive = 1, + suspended = 2, + readonly = 3, + read_auto = 4, + clean = 5, + active = 6, + write_pending = 7, + active_idle = 8, + broken = 9, + bad_word = 10, +}; + +struct detected_devices_node { + struct list_head list; + dev_t dev; +}; + +typedef __u16 bitmap_counter_t; + +enum bitmap_state { + BITMAP_STALE = 1, + BITMAP_WRITE_ERROR = 2, + BITMAP_HOSTENDIAN = 15, +}; + +struct bitmap_super_s { + __le32 magic; + __le32 version; + __u8 uuid[16]; + __le64 events; + __le64 events_cleared; + __le64 sync_size; + __le32 state; + __le32 chunksize; + __le32 daemon_sleep; + __le32 write_behind; + __le32 sectors_reserved; + __le32 nodes; + __u8 cluster_name[64]; + __u8 pad[120]; +}; + +typedef struct bitmap_super_s bitmap_super_t; + +enum bitmap_page_attr { + BITMAP_PAGE_DIRTY = 0, + BITMAP_PAGE_PENDING = 1, + BITMAP_PAGE_NEEDWRITE = 2, +}; + +struct md_setup_args { + int minor; + int partitioned; + int level; + int chunk; + char *device_names; +}; + +struct dm_ioctl { + __u32 version[3]; + __u32 data_size; + __u32 data_start; + __u32 target_count; + __s32 open_count; + __u32 flags; + __u32 event_nr; + __u32 padding; + __u64 dev; + char name[128]; + char uuid[129]; + char data[7]; +}; + +struct dm_target_spec { + __u64 sector_start; + __u64 length; + __s32 status; + __u32 next; + char target_type[16]; +}; + +struct dm_device { + struct dm_ioctl dmi; + struct dm_target_spec *table[256]; + char *target_args_array[256]; + struct list_head list; +}; + +typedef enum { + STATUSTYPE_INFO = 0, + STATUSTYPE_TABLE = 1, + STATUSTYPE_IMA = 2, +} status_type_t; + +union map_info___2 { + void *ptr; +}; + +struct dm_target; + +typedef int (*dm_ctr_fn)(struct dm_target *, unsigned int, char **); + +struct dm_table; + +struct target_type; + +struct dm_target { + struct dm_table *table; + struct target_type *type; + sector_t begin; + sector_t len; + uint32_t max_io_len; + unsigned int num_flush_bios; + unsigned int num_discard_bios; + unsigned int num_secure_erase_bios; + unsigned int num_write_same_bios; + unsigned int num_write_zeroes_bios; + unsigned int per_io_data_size; + void *private; + char *error; + bool flush_supported: 1; + bool discards_supported: 1; + bool limit_swap_bios: 1; + bool emulate_zone_append: 1; +}; + +typedef void (*dm_dtr_fn)(struct dm_target *); + +typedef int (*dm_map_fn)(struct dm_target *, struct bio *); + +typedef int (*dm_clone_and_map_request_fn)(struct dm_target *, struct request *, union map_info___2 *, struct request **); + +typedef void (*dm_release_clone_request_fn)(struct request *, union map_info___2 *); + +typedef int (*dm_endio_fn)(struct dm_target *, struct bio *, blk_status_t *); + +typedef int (*dm_request_endio_fn)(struct dm_target *, struct request *, blk_status_t, union map_info___2 *); + +typedef void (*dm_presuspend_fn)(struct dm_target *); + +typedef void (*dm_presuspend_undo_fn)(struct dm_target *); + +typedef void (*dm_postsuspend_fn)(struct dm_target *); + +typedef int (*dm_preresume_fn)(struct dm_target *); + +typedef void (*dm_resume_fn)(struct dm_target *); + +typedef void (*dm_status_fn)(struct dm_target *, status_type_t, unsigned int, char *, unsigned int); + +typedef int (*dm_message_fn)(struct dm_target *, unsigned int, char **, char *, unsigned int); + +typedef int (*dm_prepare_ioctl_fn)(struct dm_target *, struct block_device **); + +struct dm_report_zones_args; + +typedef int (*dm_report_zones_fn)(struct dm_target *, struct dm_report_zones_args *, unsigned int); + +struct dm_report_zones_args { + struct dm_target *tgt; + sector_t next_sector; + void *orig_data; + report_zones_cb orig_cb; + unsigned int zone_idx; + sector_t start; +}; + +struct dm_dev; + +typedef int (*iterate_devices_callout_fn)(struct dm_target *, struct dm_dev *, sector_t, sector_t, void *); + +struct dm_dev { + struct block_device *bdev; + struct dax_device *dax_dev; + fmode_t mode; + char name[16]; +}; + +typedef int (*dm_iterate_devices_fn)(struct dm_target *, iterate_devices_callout_fn, void *); + +typedef void (*dm_io_hints_fn)(struct dm_target *, struct queue_limits *); + +typedef int (*dm_busy_fn)(struct dm_target *); + +typedef long int (*dm_dax_direct_access_fn)(struct dm_target *, long unsigned int, long int, void **, pfn_t *); + +typedef size_t (*dm_dax_copy_iter_fn)(struct dm_target *, long unsigned int, void *, size_t, struct iov_iter *); + +typedef int (*dm_dax_zero_page_range_fn)(struct dm_target *, long unsigned int, size_t); + +struct target_type { + uint64_t features; + const char *name; + struct module *module; + unsigned int version[3]; + dm_ctr_fn ctr; + dm_dtr_fn dtr; + dm_map_fn map; + dm_clone_and_map_request_fn clone_and_map_rq; + dm_release_clone_request_fn release_clone_rq; + dm_endio_fn end_io; + dm_request_endio_fn rq_end_io; + dm_presuspend_fn presuspend; + dm_presuspend_undo_fn presuspend_undo; + dm_postsuspend_fn postsuspend; + dm_preresume_fn preresume; + dm_resume_fn resume; + dm_status_fn status; + dm_message_fn message; + dm_prepare_ioctl_fn prepare_ioctl; + dm_report_zones_fn report_zones; + dm_busy_fn busy; + dm_iterate_devices_fn iterate_devices; + dm_io_hints_fn io_hints; + dm_dax_direct_access_fn direct_access; + dm_dax_copy_iter_fn dax_copy_from_iter; + dm_dax_copy_iter_fn dax_copy_to_iter; + dm_dax_zero_page_range_fn dax_zero_page_range; + struct list_head list; +}; + +enum dm_uevent_type { + DM_UEVENT_PATH_FAILED = 0, + DM_UEVENT_PATH_REINSTATED = 1, +}; + +struct mapped_device; + +struct dm_uevent { + struct mapped_device *md; + enum kobject_action action; + struct kobj_uevent_env ku_env; + struct list_head elist; + char name[128]; + char uuid[129]; +}; + +enum dm_queue_mode { + DM_TYPE_NONE = 0, + DM_TYPE_BIO_BASED = 1, + DM_TYPE_REQUEST_BASED = 2, + DM_TYPE_DAX_BIO_BASED = 3, +}; + +struct dm_md_mempools; + +struct dm_table { + struct mapped_device *md; + enum dm_queue_mode type; + unsigned int depth; + unsigned int counts[16]; + sector_t *index[16]; + unsigned int num_targets; + unsigned int num_allocated; + sector_t *highs; + struct dm_target *targets; + struct target_type *immutable_target_type; + bool integrity_supported: 1; + bool singleton: 1; + unsigned int integrity_added: 1; + fmode_t mode; + struct list_head devices; + void (*event_fn)(void *); + void *event_context; + struct dm_md_mempools *mempools; + struct blk_keyslot_manager *ksm; +}; + +struct dm_stats_last_position; + +struct dm_stats { + struct mutex mutex; + struct list_head list; + struct dm_stats_last_position *last; + bool precise_timestamps; +}; + +struct dm_stats_aux { + bool merged; + long long unsigned int duration_ns; +}; + +struct dm_ima_device_table_metadata { + char *device_metadata; + unsigned int device_metadata_len; + unsigned int num_targets; + char *hash; + unsigned int hash_len; +}; + +struct dm_ima_measurements { + struct dm_ima_device_table_metadata active_table; + struct dm_ima_device_table_metadata inactive_table; + unsigned int dm_version_str_len; }; struct dm_kobject_holder { @@ -80826,6 +111029,419 @@ struct dm_kobject_holder { struct completion completion; }; +struct mapped_device { + struct mutex suspend_lock; + struct mutex table_devices_lock; + struct list_head table_devices; + void *map; + long unsigned int flags; + struct mutex type_lock; + enum dm_queue_mode type; + int numa_node_id; + struct request_queue *queue; + atomic_t holders; + atomic_t open_count; + struct dm_target *immutable_target; + struct target_type *immutable_target_type; + char name[16]; + struct gendisk *disk; + struct dax_device *dax_dev; + long unsigned int *pending_io; + struct work_struct work; + wait_queue_head_t wait; + spinlock_t deferred_lock; + struct bio_list deferred; + void *interface_ptr; + wait_queue_head_t eventq; + atomic_t event_nr; + atomic_t uevent_seq; + struct list_head uevent_list; + spinlock_t uevent_lock; + unsigned int internal_suspend_count; + struct bio_set io_bs; + struct bio_set bs; + struct workqueue_struct *wq; + struct hd_geometry geometry; + struct dm_kobject_holder kobj_holder; + int swap_bios; + struct semaphore swap_bios_semaphore; + struct mutex swap_bios_lock; + struct dm_stats stats; + struct blk_mq_tag_set *tag_set; + bool init_tio_pdu: 1; + struct srcu_struct io_barrier; + unsigned int nr_zones; + unsigned int *zwp_offset; + struct dm_ima_measurements ima; +}; + +struct dm_io; + +struct dm_target_io { + unsigned int magic; + struct dm_io *io; + struct dm_target *ti; + unsigned int target_bio_nr; + unsigned int *len_ptr; + bool inside_dm_io; + struct bio clone; +}; + +struct dm_io { + unsigned int magic; + struct mapped_device *md; + blk_status_t status; + atomic_t io_count; + struct bio *orig_bio; + long unsigned int start_time; + spinlock_t endio_lock; + struct dm_stats_aux stats_aux; + struct dm_target_io tio; +}; + +struct dm_md_mempools { + struct bio_set bs; + struct bio_set io_bs; +}; + +struct clone_info { + struct dm_table *map; + struct bio *bio; + struct dm_io *io; + sector_t sector; + unsigned int sector_count; +}; + +struct table_device { + struct list_head list; + refcount_t count; + struct dm_dev dm_dev; +}; + +struct dm_pr { + u64 old_key; + u64 new_key; + u32 flags; + bool fail_early; +}; + +struct dm_arg_set { + unsigned int argc; + char **argv; +}; + +struct dm_arg { + unsigned int min; + unsigned int max; + char *error; +}; + +struct dm_dev_internal { + struct list_head list; + refcount_t count; + struct dm_dev *dm_dev; +}; + +struct dm_keyslot_manager { + struct blk_keyslot_manager ksm; + struct mapped_device *md; +}; + +enum suspend_mode { + PRESUSPEND = 0, + PRESUSPEND_UNDO = 1, + POSTSUSPEND = 2, +}; + +struct linear_c { + struct dm_dev *dev; + sector_t start; +}; + +struct stripe { + struct dm_dev *dev; + sector_t physical_start; + atomic_t error_count; +}; + +struct stripe_c { + uint32_t stripes; + int stripes_shift; + sector_t stripe_width; + uint32_t chunk_size; + int chunk_size_shift; + struct dm_target *ti; + struct work_struct trigger_event; + struct stripe stripe[0]; +}; + +struct dm_target_deps { + __u32 count; + __u32 padding; + __u64 dev[0]; +}; + +struct dm_name_list { + __u64 dev; + __u32 next; + char name[0]; +}; + +struct dm_target_versions { + __u32 next; + __u32 version[3]; + char name[0]; +}; + +struct dm_target_msg { + __u64 sector; + char message[0]; +}; + +enum { + DM_VERSION_CMD = 0, + DM_REMOVE_ALL_CMD = 1, + DM_LIST_DEVICES_CMD = 2, + DM_DEV_CREATE_CMD = 3, + DM_DEV_REMOVE_CMD = 4, + DM_DEV_RENAME_CMD = 5, + DM_DEV_SUSPEND_CMD = 6, + DM_DEV_STATUS_CMD = 7, + DM_DEV_WAIT_CMD = 8, + DM_TABLE_LOAD_CMD = 9, + DM_TABLE_CLEAR_CMD = 10, + DM_TABLE_DEPS_CMD = 11, + DM_TABLE_STATUS_CMD = 12, + DM_LIST_VERSIONS_CMD = 13, + DM_TARGET_MSG_CMD = 14, + DM_DEV_SET_GEOMETRY_CMD = 15, + DM_DEV_ARM_POLL_CMD = 16, + DM_GET_TARGET_VERSION_CMD = 17, +}; + +struct dm_file { + volatile unsigned int global_event_nr; +}; + +struct hash_cell { + struct rb_node name_node; + struct rb_node uuid_node; + bool name_set; + bool uuid_set; + char *name; + char *uuid; + struct mapped_device *md; + struct dm_table *new_map; +}; + +struct vers_iter { + size_t param_size; + struct dm_target_versions *vers; + struct dm_target_versions *old_vers; + char *end; + uint32_t flags; +}; + +typedef int (*ioctl_fn___2)(struct file *, struct dm_ioctl *, size_t); + +struct dm_io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; +}; + +struct page_list { + struct page_list *next; + struct page *page; +}; + +typedef void (*io_notify_fn)(long unsigned int, void *); + +enum dm_io_mem_type { + DM_IO_PAGE_LIST = 0, + DM_IO_BIO = 1, + DM_IO_VMA = 2, + DM_IO_KMEM = 3, +}; + +struct dm_io_memory { + enum dm_io_mem_type type; + unsigned int offset; + union { + struct page_list *pl; + struct bio *bio; + void *vma; + void *addr; + } ptr; +}; + +struct dm_io_notify { + io_notify_fn fn; + void *context; +}; + +struct dm_io_client; + +struct dm_io_request { + int bi_op; + int bi_op_flags; + struct dm_io_memory mem; + struct dm_io_notify notify; + struct dm_io_client *client; +}; + +struct dm_io_client { + mempool_t pool; + struct bio_set bios; +}; + +struct io { + long unsigned int error_bits; + atomic_t count; + struct dm_io_client *client; + io_notify_fn callback; + void *context; + void *vma_invalidate_address; + long unsigned int vma_invalidate_size; + long: 64; +}; + +struct dpages { + void (*get_page)(struct dpages *, struct page **, long unsigned int *, unsigned int *); + void (*next_page)(struct dpages *); + union { + unsigned int context_u; + struct bvec_iter context_bi; + }; + void *context_ptr; + void *vma_invalidate_address; + long unsigned int vma_invalidate_size; +}; + +struct sync_io { + long unsigned int error_bits; + struct completion wait; +}; + +struct dm_kcopyd_throttle { + unsigned int throttle; + unsigned int num_io_jobs; + unsigned int io_period; + unsigned int total_period; + unsigned int last_jiffies; +}; + +typedef void (*dm_kcopyd_notify_fn)(int, long unsigned int, void *); + +struct dm_kcopyd_client { + struct page_list *pages; + unsigned int nr_reserved_pages; + unsigned int nr_free_pages; + unsigned int sub_job_size; + struct dm_io_client *io_client; + wait_queue_head_t destroyq; + mempool_t job_pool; + struct workqueue_struct *kcopyd_wq; + struct work_struct kcopyd_work; + struct dm_kcopyd_throttle *throttle; + atomic_t nr_jobs; + spinlock_t job_lock; + struct list_head callback_jobs; + struct list_head complete_jobs; + struct list_head io_jobs; + struct list_head pages_jobs; +}; + +struct kcopyd_job { + struct dm_kcopyd_client *kc; + struct list_head list; + unsigned int flags; + int read_err; + long unsigned int write_err; + int rw; + struct dm_io_region source; + unsigned int num_dests; + struct dm_io_region dests[8]; + struct page_list *pages; + dm_kcopyd_notify_fn fn; + void *context; + struct mutex lock; + atomic_t sub_jobs; + sector_t progress; + sector_t write_offset; + struct kcopyd_job *master_job; +}; + +struct dm_sysfs_attr { + struct attribute attr; + ssize_t (*show)(struct mapped_device *, char *); + ssize_t (*store)(struct mapped_device *, const char *, size_t); +}; + +struct dm_stats_last_position { + sector_t last_sector; + unsigned int last_rw; +}; + +struct dm_stat_percpu { + long long unsigned int sectors[2]; + long long unsigned int ios[2]; + long long unsigned int merges[2]; + long long unsigned int ticks[2]; + long long unsigned int io_ticks[2]; + long long unsigned int io_ticks_total; + long long unsigned int time_in_queue; + long long unsigned int *histogram; +}; + +struct dm_stat_shared { + atomic_t in_flight[2]; + long long unsigned int stamp; + struct dm_stat_percpu tmp; +}; + +struct dm_stat { + struct list_head list_entry; + int id; + unsigned int stat_flags; + size_t n_entries; + sector_t start; + sector_t end; + sector_t step; + unsigned int n_histogram_entries; + long long unsigned int *histogram_boundaries; + const char *program_id; + const char *aux_data; + struct callback_head callback_head; + size_t shared_alloc_size; + size_t percpu_alloc_size; + size_t histogram_alloc_size; + struct dm_stat_percpu *stat_percpu[8192]; + struct dm_stat_shared stat_shared[0]; +}; + +struct dm_rq_target_io; + +struct dm_rq_clone_bio_info { + struct bio *orig; + struct dm_rq_target_io *tio; + struct bio clone; +}; + +struct dm_rq_target_io { + struct mapped_device *md; + struct dm_target *ti; + struct request *orig; + struct request *clone; + struct kthread_work work; + blk_status_t error; + union map_info___2 info; + struct dm_stats_aux stats_aux; + long unsigned int duration_jiffies; + unsigned int n_sectors; + unsigned int completed; +}; + enum dev_type { DEV_UNKNOWN = 0, DEV_X1 = 1, @@ -80864,10 +111480,17 @@ enum mem_type { MEM_DDR3 = 15, MEM_RDDR3 = 16, MEM_LRDDR3 = 17, - MEM_DDR4 = 18, - MEM_RDDR4 = 19, - MEM_LRDDR4 = 20, - MEM_NVDIMM = 21, + MEM_LPDDR3 = 18, + MEM_DDR4 = 19, + MEM_RDDR4 = 20, + MEM_LRDDR4 = 21, + MEM_LPDDR4 = 22, + MEM_DDR5 = 23, + MEM_RDDR5 = 24, + MEM_LRDDR5 = 25, + MEM_NVDIMM = 26, + MEM_WIO2 = 27, + MEM_HBM2 = 28, }; enum edac_type { @@ -81085,11 +111708,6 @@ struct edac_device_instance { struct kobject kobj; }; -struct dev_ch_attribute { - struct device_attribute attr; - unsigned int channel; -}; - struct ctl_info_attribute { struct attribute attr; ssize_t (*show)(struct edac_device_ctl_info *, char *); @@ -81145,6 +111763,79 @@ struct edac_pci_dev_attribute { typedef void (*pci_parity_check_fn_t)(struct pci_dev *); +struct ghes_pvt { + struct mem_ctl_info *mci; + char other_detail[400]; + char msg[80]; +}; + +struct ghes_hw_desc { + int num_dimms; + struct dimm_info *dimms; +}; + +struct memdev_dmi_entry { + u8 type; + u8 length; + u16 handle; + u16 phys_mem_array_handle; + u16 mem_err_info_handle; + u16 total_width; + u16 data_width; + u16 size; + u8 form_factor; + u8 device_set; + u8 device_locator; + u8 bank_locator; + u8 memory_type; + u16 type_detail; + u16 speed; + u8 manufacturer; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 attributes; + u32 extended_size; + u16 conf_mem_clk_speed; +} __attribute__((packed)); + +struct eisa_device_id { + char sig[8]; + kernel_ulong_t driver_data; +}; + +struct eisa_device { + struct eisa_device_id id; + int slot; + int state; + long unsigned int base_addr; + struct resource res[4]; + u64 dma_mask; + struct device dev; + char pretty_name[50]; +}; + +struct eisa_driver { + const struct eisa_device_id *id_table; + struct device_driver driver; +}; + +struct eisa_root_device { + struct device *dev; + struct resource *res; + long unsigned int bus_base_addr; + int slots; + int force_probe; + u64 dma_mask; + int bus_nr; + struct resource eisa_root_res; +}; + +struct eisa_device_info { + struct eisa_device_id id; + char name[50]; +}; + enum opp_table_access { OPP_TABLE_ACCESS_UNKNOWN = 0, OPP_TABLE_ACCESS_EXCLUSIVE = 1, @@ -81153,12 +111844,13 @@ enum opp_table_access { struct icc_path; -struct dev_pm_opp; - struct dev_pm_set_opp_data; +struct dev_pm_opp_supply; + struct opp_table { struct list_head node; + struct list_head lazy; struct blocking_notifier_head head; struct list_head dev_list; struct list_head opp_list; @@ -81169,6 +111861,8 @@ struct opp_table { unsigned int voltage_tolerance_v1; unsigned int parsed_static_opps; enum opp_table_access shared_opp; + long unsigned int current_rate; + struct dev_pm_opp *current_opp; struct dev_pm_opp *suspend_opp; struct mutex genpd_virt_dev_lock; struct device **genpd_virt_devs; @@ -81186,13 +111880,12 @@ struct opp_table { bool genpd_performance_state; bool is_genpd; int (*set_opp)(struct dev_pm_set_opp_data *); + struct dev_pm_opp_supply *sod_supplies; struct dev_pm_set_opp_data *set_opp_data; struct dentry *dentry; char dentry_name[255]; }; -struct dev_pm_opp_supply; - struct dev_pm_opp_icc_bw; struct dev_pm_opp { @@ -81202,6 +111895,7 @@ struct dev_pm_opp { bool dynamic; bool turbo; bool suspend; + bool removed; unsigned int pstate; long unsigned int rate; unsigned int level; @@ -81212,6 +111906,7 @@ struct dev_pm_opp { struct opp_table *opp_table; struct device_node *np; struct dentry *dentry; + const char *of_name; }; enum dev_pm_opp_event { @@ -81278,7 +111973,7 @@ struct cpufreq_driver { int (*target)(struct cpufreq_policy *, unsigned int, unsigned int); int (*target_index)(struct cpufreq_policy *, unsigned int); unsigned int (*fast_switch)(struct cpufreq_policy *, unsigned int); - unsigned int (*resolve_freq)(struct cpufreq_policy *, unsigned int); + void (*adjust_perf)(unsigned int, long unsigned int, long unsigned int, long unsigned int); unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); int (*target_intermediate)(struct cpufreq_policy *, unsigned int); unsigned int (*get)(unsigned int); @@ -81287,13 +111982,12 @@ struct cpufreq_driver { int (*online)(struct cpufreq_policy *); int (*offline)(struct cpufreq_policy *); int (*exit)(struct cpufreq_policy *); - void (*stop_cpu)(struct cpufreq_policy *); int (*suspend)(struct cpufreq_policy *); int (*resume)(struct cpufreq_policy *); - void (*ready)(struct cpufreq_policy *); struct freq_attr **attr; bool boost_enabled; int (*set_boost)(struct cpufreq_policy *, int); + void (*register_em)(struct cpufreq_policy *); }; struct cpufreq_stats { @@ -81309,8 +112003,16 @@ struct cpufreq_stats { long long unsigned int reset_time; }; +enum { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, +}; + +struct dbs_governor; + struct dbs_data { struct gov_attr_set attr_set; + struct dbs_governor *gov; void *tuners; unsigned int ignore_nice_load; unsigned int sampling_rate; @@ -81319,6 +112021,20 @@ struct dbs_data { unsigned int io_is_busy; }; +struct policy_dbs_info; + +struct dbs_governor { + struct cpufreq_governor gov; + struct kobj_type kobj_type; + struct dbs_data *gdbs_data; + unsigned int (*gov_dbs_update)(struct cpufreq_policy *); + struct policy_dbs_info * (*alloc)(void); + void (*free)(struct policy_dbs_info *); + int (*init)(struct dbs_data *); + void (*exit)(struct dbs_data *); + void (*start)(struct cpufreq_policy *); +}; + struct policy_dbs_info { struct cpufreq_policy *policy; struct mutex update_mutex; @@ -81335,6 +112051,33 @@ struct policy_dbs_info { bool work_in_progress; }; +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +}; + +struct od_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int freq_lo; + unsigned int freq_lo_delay_us; + unsigned int freq_hi_delay_us; + unsigned int sample_type: 1; +}; + +struct od_dbs_tuners { + unsigned int powersave_bias; +}; + +struct cs_policy_dbs_info { + struct policy_dbs_info policy_dbs; + unsigned int down_skip; + unsigned int requested_freq; +}; + +struct cs_dbs_tuners { + unsigned int down_threshold; + unsigned int freq_step; +}; + struct cpu_dbs_info { u64 prev_cpu_idle; u64 prev_update_time; @@ -81344,16 +112087,171 @@ struct cpu_dbs_info { struct policy_dbs_info *policy_dbs; }; -struct dbs_governor { - struct cpufreq_governor gov; - struct kobj_type kobj_type; - struct dbs_data *gdbs_data; - unsigned int (*gov_dbs_update)(struct cpufreq_policy *); - struct policy_dbs_info * (*alloc)(); - void (*free)(struct policy_dbs_info *); - int (*init)(struct dbs_data *); - void (*exit)(struct dbs_data *); - void (*start)(struct cpufreq_policy *); +enum { + UNDEFINED_CAPABLE = 0, + SYSTEM_INTEL_MSR_CAPABLE = 1, + SYSTEM_AMD_MSR_CAPABLE = 2, + SYSTEM_IO_CAPABLE = 3, +}; + +struct acpi_cpufreq_data { + unsigned int resume; + unsigned int cpu_feature; + unsigned int acpi_perf_cpu; + cpumask_var_t freqdomain_cpus; + void (*cpu_freq_write)(struct acpi_pct_register *, u32); + u32 (*cpu_freq_read)(struct acpi_pct_register *); +}; + +struct drv_cmd { + struct acpi_pct_register *reg; + u32 val; + union { + void (*write)(struct acpi_pct_register *, u32); + u32 (*read)(struct acpi_pct_register *); + } func; +}; + +struct amd_cpudata { + int cpu; + struct freq_qos_request req[2]; + u64 cppc_req_cached; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_nonlinear_perf; + u32 lowest_perf; + u32 max_freq; + u32 min_freq; + u32 nominal_freq; + u32 lowest_nonlinear_freq; + bool boost_supported; +}; + +struct trace_event_raw_amd_pstate_perf { + struct trace_entry ent; + long unsigned int min_perf; + long unsigned int target_perf; + long unsigned int capacity; + unsigned int cpu_id; + bool changed; + bool fast_switch; + char __data[0]; +}; + +struct trace_event_data_offsets_amd_pstate_perf {}; + +typedef void (*btf_trace_amd_pstate_perf)(void *, long unsigned int, long unsigned int, long unsigned int, unsigned int, bool, bool); + +struct powernow_k8_data { + unsigned int cpu; + u32 numps; + u32 batps; + u32 rvo; + u32 irt; + u32 vidmvs; + u32 vstable; + u32 plllock; + u32 exttype; + u32 currvid; + u32 currfid; + struct cpufreq_frequency_table *powernow_table; + struct acpi_processor_performance acpi_data; + struct cpumask *available_cores; +}; + +struct psb_s { + u8 signature[10]; + u8 tableversion; + u8 flags1; + u16 vstable; + u8 flags2; + u8 num_tables; + u32 cpuid; + u8 plllocktime; + u8 maxfid; + u8 maxvid; + u8 numps; +}; + +struct pst_s { + u8 fid; + u8 vid; +}; + +struct powernowk8_target_arg { + struct cpufreq_policy *pol; + unsigned int newstate; +}; + +struct init_on_cpu { + struct powernow_k8_data *data; + int rc; +}; + +struct pcc_register_resource { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct pcc_memory_resource { + u8 descriptor; + u16 length; + u8 space_id; + u8 resource_usage; + u8 type_specific; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +} __attribute__((packed)); + +struct pcc_header { + u32 signature; + u16 length; + u8 major; + u8 minor; + u32 features; + u16 command; + u16 status; + u32 latency; + u32 minimum_time; + u32 maximum_time; + u32 nominal; + u32 throttled_frequency; + u32 minimum_frequency; +}; + +struct pcc_cpu { + u32 input_offset; + u32 output_offset; +}; + +struct cpu_id { + __u8 x86; + __u8 x86_model; + __u8 x86_stepping; +}; + +enum { + CPU_BANIAS = 0, + CPU_DOTHAN_A1 = 1, + CPU_DOTHAN_A2 = 2, + CPU_DOTHAN_B0 = 3, + CPU_MP4HT_D0 = 4, + CPU_MP4HT_E0 = 5, +}; + +struct cpu_model { + const struct cpu_id *cpu_id; + const char *model_name; + unsigned int max_freq; + struct cpufreq_frequency_table *op_points; }; enum acpi_preferred_pm_profiles { @@ -81382,8 +112280,10 @@ struct pstate_data { int min_pstate; int max_pstate; int max_pstate_physical; + int perf_ctl_scaling; int scaling; int turbo_pstate; + unsigned int min_freq; unsigned int max_freq; unsigned int turbo_freq; }; @@ -81436,16 +112336,25 @@ struct cpudata { }; struct pstate_funcs { - int (*get_max)(); - int (*get_max_physical)(); - int (*get_min)(); - int (*get_turbo)(); - int (*get_scaling)(); - int (*get_aperf_mperf_shift)(); + int (*get_max)(int); + int (*get_max_physical)(int); + int (*get_min)(int); + int (*get_turbo)(int); + int (*get_scaling)(void); + int (*get_cpu_scaling)(int); + int (*get_aperf_mperf_shift)(void); u64 (*get_val)(struct cpudata *, int); void (*get_vid)(struct cpudata *); }; +enum energy_perf_value_index { + EPP_INDEX_DEFAULT = 0, + EPP_INDEX_PERFORMANCE = 1, + EPP_INDEX_BALANCE_PERFORMANCE = 2, + EPP_INDEX_BALANCE_POWERSAVE = 3, + EPP_INDEX_POWERSAVE = 4, +}; + enum { PSS = 0, PPC = 1, @@ -81514,7 +112423,697 @@ struct menu_device { int interval_ptr; }; -struct pci_dev; +struct teo_bin { + unsigned int intercepts; + unsigned int hits; + unsigned int recent; +}; + +struct teo_cpu { + s64 time_span_ns; + s64 sleep_length_ns; + struct teo_bin state_bins[10]; + unsigned int total; + int next_recent_idx; + int recent_idx[9]; +}; + +struct mmc_cid { + unsigned int manfid; + char prod_name[8]; + unsigned char prv; + unsigned int serial; + short unsigned int oemid; + short unsigned int year; + unsigned char hwrev; + unsigned char fwrev; + unsigned char month; +}; + +struct mmc_csd { + unsigned char structure; + unsigned char mmca_vsn; + short unsigned int cmdclass; + short unsigned int taac_clks; + unsigned int taac_ns; + unsigned int c_size; + unsigned int r2w_factor; + unsigned int max_dtr; + unsigned int erase_size; + unsigned int read_blkbits; + unsigned int write_blkbits; + unsigned int capacity; + unsigned int read_partial: 1; + unsigned int read_misalign: 1; + unsigned int write_partial: 1; + unsigned int write_misalign: 1; + unsigned int dsr_imp: 1; +}; + +struct mmc_ext_csd { + u8 rev; + u8 erase_group_def; + u8 sec_feature_support; + u8 rel_sectors; + u8 rel_param; + bool enhanced_rpmb_supported; + u8 part_config; + u8 cache_ctrl; + u8 rst_n_function; + u8 max_packed_writes; + u8 max_packed_reads; + u8 packed_event_en; + unsigned int part_time; + unsigned int sa_timeout; + unsigned int generic_cmd6_time; + unsigned int power_off_longtime; + u8 power_off_notification; + unsigned int hs_max_dtr; + unsigned int hs200_max_dtr; + unsigned int sectors; + unsigned int hc_erase_size; + unsigned int hc_erase_timeout; + unsigned int sec_trim_mult; + unsigned int sec_erase_mult; + unsigned int trim_timeout; + bool partition_setting_completed; + long long unsigned int enhanced_area_offset; + unsigned int enhanced_area_size; + unsigned int cache_size; + bool hpi_en; + bool hpi; + unsigned int hpi_cmd; + bool bkops; + bool man_bkops_en; + bool auto_bkops_en; + unsigned int data_sector_size; + unsigned int data_tag_unit_size; + unsigned int boot_ro_lock; + bool boot_ro_lockable; + bool ffu_capable; + bool cmdq_en; + bool cmdq_support; + unsigned int cmdq_depth; + u8 fwrev[8]; + u8 raw_exception_status; + u8 raw_partition_support; + u8 raw_rpmb_size_mult; + u8 raw_erased_mem_count; + u8 strobe_support; + u8 raw_ext_csd_structure; + u8 raw_card_type; + u8 raw_driver_strength; + u8 out_of_int_time; + u8 raw_pwr_cl_52_195; + u8 raw_pwr_cl_26_195; + u8 raw_pwr_cl_52_360; + u8 raw_pwr_cl_26_360; + u8 raw_s_a_timeout; + u8 raw_hc_erase_gap_size; + u8 raw_erase_timeout_mult; + u8 raw_hc_erase_grp_size; + u8 raw_boot_mult; + u8 raw_sec_trim_mult; + u8 raw_sec_erase_mult; + u8 raw_sec_feature_support; + u8 raw_trim_mult; + u8 raw_pwr_cl_200_195; + u8 raw_pwr_cl_200_360; + u8 raw_pwr_cl_ddr_52_195; + u8 raw_pwr_cl_ddr_52_360; + u8 raw_pwr_cl_ddr_200_360; + u8 raw_bkops_status; + u8 raw_sectors[4]; + u8 pre_eol_info; + u8 device_life_time_est_typ_a; + u8 device_life_time_est_typ_b; + unsigned int feature_support; +}; + +struct sd_scr { + unsigned char sda_vsn; + unsigned char sda_spec3; + unsigned char sda_spec4; + unsigned char sda_specx; + unsigned char bus_widths; + unsigned char cmds; +}; + +struct sd_ssr { + unsigned int au; + unsigned int erase_timeout; + unsigned int erase_offset; +}; + +struct sd_switch_caps { + unsigned int hs_max_dtr; + unsigned int uhs_max_dtr; + unsigned int sd3_bus_mode; + unsigned int sd3_drv_type; + unsigned int sd3_curr_limit; +}; + +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; +}; + +struct sdio_cccr { + unsigned int sdio_vsn; + unsigned int sd_vsn; + unsigned int multi_block: 1; + unsigned int low_speed: 1; + unsigned int wide_bus: 1; + unsigned int high_power: 1; + unsigned int high_speed: 1; + unsigned int disable_cd: 1; +}; + +struct sdio_cis { + short unsigned int vendor; + short unsigned int device; + short unsigned int blksize; + unsigned int max_dtr; +}; + +struct mmc_part { + u64 size; + unsigned int part_cfg; + char name[20]; + bool force_ro; + unsigned int area_type; +}; + +struct mmc_host; + +struct sdio_func; + +struct sdio_func_tuple; + +struct mmc_card { + struct mmc_host *host; + struct device dev; + u32 ocr; + unsigned int rca; + unsigned int type; + unsigned int state; + unsigned int quirks; + unsigned int quirk_max_rate; + bool reenable_cmdq; + unsigned int erase_size; + unsigned int erase_shift; + unsigned int pref_erase; + unsigned int eg_boundary; + unsigned int erase_arg; + u8 erased_byte; + u32 raw_cid[4]; + u32 raw_csd[4]; + u32 raw_scr[2]; + u32 raw_ssr[16]; + struct mmc_cid cid; + struct mmc_csd csd; + struct mmc_ext_csd ext_csd; + struct sd_scr scr; + struct sd_ssr ssr; + struct sd_switch_caps sw_caps; + struct sd_ext_reg ext_power; + struct sd_ext_reg ext_perf; + unsigned int sdio_funcs; + atomic_t sdio_funcs_probed; + struct sdio_cccr cccr; + struct sdio_cis cis; + struct sdio_func *sdio_func[7]; + struct sdio_func *sdio_single_irq; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; + unsigned int sd_bus_speed; + unsigned int mmc_avail_type; + unsigned int drive_strength; + struct dentry *debugfs_root; + struct mmc_part part[7]; + unsigned int nr_parts; + struct workqueue_struct *complete_wq; +}; + +typedef unsigned int mmc_pm_flag_t; + +struct mmc_ios { + unsigned int clock; + short unsigned int vdd; + unsigned int power_delay_ms; + unsigned char bus_mode; + unsigned char chip_select; + unsigned char power_mode; + unsigned char bus_width; + unsigned char timing; + unsigned char signal_voltage; + unsigned char drv_type; + bool enhanced_strobe; +}; + +struct mmc_ctx { + struct task_struct *task; +}; + +struct mmc_slot { + int cd_irq; + bool cd_wake_enabled; + void *handler_priv; +}; + +struct mmc_supply { + struct regulator *vmmc; + struct regulator *vqmmc; +}; + +struct mmc_host_ops; + +struct mmc_pwrseq; + +struct mmc_bus_ops; + +struct mmc_request; + +struct mmc_cqe_ops; + +struct mmc_host { + struct device *parent; + struct device class_dev; + int index; + const struct mmc_host_ops *ops; + struct mmc_pwrseq *pwrseq; + unsigned int f_min; + unsigned int f_max; + unsigned int f_init; + u32 ocr_avail; + u32 ocr_avail_sdio; + u32 ocr_avail_sd; + u32 ocr_avail_mmc; + struct wakeup_source *ws; + u32 max_current_330; + u32 max_current_300; + u32 max_current_180; + u32 caps; + u32 caps2; + int fixed_drv_type; + mmc_pm_flag_t pm_caps; + unsigned int max_seg_size; + short unsigned int max_segs; + short unsigned int unused; + unsigned int max_req_size; + unsigned int max_blk_size; + unsigned int max_blk_count; + unsigned int max_busy_timeout; + spinlock_t lock; + struct mmc_ios ios; + unsigned int use_spi_crc: 1; + unsigned int claimed: 1; + unsigned int doing_init_tune: 1; + unsigned int can_retune: 1; + unsigned int doing_retune: 1; + unsigned int retune_now: 1; + unsigned int retune_paused: 1; + unsigned int retune_crc_disable: 1; + unsigned int can_dma_map_merge: 1; + unsigned int vqmmc_enabled: 1; + int rescan_disable; + int rescan_entered; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct timer_list retune_timer; + bool trigger_card_event; + struct mmc_card *card; + wait_queue_head_t wq; + struct mmc_ctx *claimer; + int claim_cnt; + struct mmc_ctx default_ctx; + struct delayed_work detect; + int detect_change; + struct mmc_slot slot; + const struct mmc_bus_ops *bus_ops; + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; + struct delayed_work sdio_irq_work; + bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + mmc_pm_flag_t pm_flags; + struct led_trigger *led; + bool regulator_enabled; + struct mmc_supply supply; + struct dentry *debugfs_root; + struct mmc_request *ongoing_mrq; + unsigned int actual_clock; + unsigned int slotno; + int dsr_req; + u32 dsr; + const struct mmc_cqe_ops *cqe_ops; + void *cqe_private; + int cqe_qdepth; + bool cqe_enabled; + bool cqe_on; + struct blk_keyslot_manager ksm; + bool hsq_enabled; + long: 64; + long unsigned int private[0]; +}; + +struct mmc_data; + +struct mmc_command { + u32 opcode; + u32 arg; + u32 resp[4]; + unsigned int flags; + unsigned int retries; + int error; + unsigned int busy_timeout; + struct mmc_data *data; + struct mmc_request *mrq; +}; + +struct mmc_data { + unsigned int timeout_ns; + unsigned int timeout_clks; + unsigned int blksz; + unsigned int blocks; + unsigned int blk_addr; + int error; + unsigned int flags; + unsigned int bytes_xfered; + struct mmc_command *stop; + struct mmc_request *mrq; + unsigned int sg_len; + int sg_count; + struct scatterlist *sg; + s32 host_cookie; +}; + +struct mmc_request { + struct mmc_command *sbc; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command *stop; + struct completion completion; + struct completion cmd_completion; + void (*done)(struct mmc_request *); + void (*recovery_notifier)(struct mmc_request *); + struct mmc_host *host; + bool cap_cmd_during_tfr; + int tag; + const struct bio_crypt_ctx *crypto_ctx; + int crypto_key_slot; +}; + +struct mmc_host_ops { + void (*post_req)(struct mmc_host *, struct mmc_request *, int); + void (*pre_req)(struct mmc_host *, struct mmc_request *); + void (*request)(struct mmc_host *, struct mmc_request *); + int (*request_atomic)(struct mmc_host *, struct mmc_request *); + void (*set_ios)(struct mmc_host *, struct mmc_ios *); + int (*get_ro)(struct mmc_host *); + int (*get_cd)(struct mmc_host *); + void (*enable_sdio_irq)(struct mmc_host *, int); + void (*ack_sdio_irq)(struct mmc_host *); + void (*init_card)(struct mmc_host *, struct mmc_card *); + int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); + int (*card_busy)(struct mmc_host *); + int (*execute_tuning)(struct mmc_host *, u32); + int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); + int (*hs400_prepare_ddr)(struct mmc_host *); + void (*hs400_downgrade)(struct mmc_host *); + void (*hs400_complete)(struct mmc_host *); + void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); + int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); + void (*hw_reset)(struct mmc_host *); + void (*card_event)(struct mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); +}; + +struct mmc_cqe_ops { + int (*cqe_enable)(struct mmc_host *, struct mmc_card *); + void (*cqe_disable)(struct mmc_host *); + int (*cqe_request)(struct mmc_host *, struct mmc_request *); + void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); + void (*cqe_off)(struct mmc_host *); + int (*cqe_wait_for_idle)(struct mmc_host *); + bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); + void (*cqe_recovery_start)(struct mmc_host *); + void (*cqe_recovery_finish)(struct mmc_host *); +}; + +struct mmc_pwrseq_ops; + +struct mmc_pwrseq { + const struct mmc_pwrseq_ops *ops; + struct device *dev; + struct list_head pwrseq_node; + struct module *owner; +}; + +struct mmc_bus_ops { + void (*remove)(struct mmc_host *); + void (*detect)(struct mmc_host *); + int (*pre_suspend)(struct mmc_host *); + int (*suspend)(struct mmc_host *); + int (*resume)(struct mmc_host *); + int (*runtime_suspend)(struct mmc_host *); + int (*runtime_resume)(struct mmc_host *); + int (*alive)(struct mmc_host *); + int (*shutdown)(struct mmc_host *); + int (*hw_reset)(struct mmc_host *); + int (*sw_reset)(struct mmc_host *); + bool (*cache_enabled)(struct mmc_host *); + int (*flush_cache)(struct mmc_host *); +}; + +struct trace_event_raw_mmc_request_start { + struct trace_entry ent; + u32 cmd_opcode; + u32 cmd_arg; + unsigned int cmd_flags; + unsigned int cmd_retries; + u32 stop_opcode; + u32 stop_arg; + unsigned int stop_flags; + unsigned int stop_retries; + u32 sbc_opcode; + u32 sbc_arg; + unsigned int sbc_flags; + unsigned int sbc_retries; + unsigned int blocks; + unsigned int blk_addr; + unsigned int blksz; + unsigned int data_flags; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_mmc_request_done { + struct trace_entry ent; + u32 cmd_opcode; + int cmd_err; + u32 cmd_resp[4]; + unsigned int cmd_retries; + u32 stop_opcode; + int stop_err; + u32 stop_resp[4]; + unsigned int stop_retries; + u32 sbc_opcode; + int sbc_err; + u32 sbc_resp[4]; + unsigned int sbc_retries; + unsigned int bytes_xfered; + int data_err; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_data_offsets_mmc_request_start { + u32 name; +}; + +struct trace_event_data_offsets_mmc_request_done { + u32 name; +}; + +typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); + +typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); + +struct mmc_pwrseq_ops { + void (*pre_power_on)(struct mmc_host *); + void (*post_power_on)(struct mmc_host *); + void (*power_off)(struct mmc_host *); + void (*reset)(struct mmc_host *); +}; + +enum mmc_busy_cmd { + MMC_BUSY_CMD6 = 0, + MMC_BUSY_ERASE = 1, + MMC_BUSY_HPI = 2, + MMC_BUSY_EXTR_SINGLE = 3, + MMC_BUSY_IO = 4, +}; + +struct mmc_driver { + struct device_driver drv; + int (*probe)(struct mmc_card *); + void (*remove)(struct mmc_card *); + void (*shutdown)(struct mmc_card *); +}; + +struct mmc_clk_phase { + bool valid; + u16 in_deg; + u16 out_deg; +}; + +struct mmc_clk_phase_map { + struct mmc_clk_phase phase[11]; +}; + +struct mmc_fixup { + const char *name; + u64 rev_start; + u64 rev_end; + unsigned int manfid; + short unsigned int oemid; + u16 cis_vendor; + u16 cis_device; + unsigned int ext_csd_rev; + void (*vendor_fixup)(struct mmc_card *, int); + int data; +}; + +struct mmc_busy_data { + struct mmc_card *card; + bool retry_crc_err; + enum mmc_busy_cmd busy_cmd; +}; + +struct sd_busy_data { + struct mmc_card *card; + u8 *reg_buf; +}; + +typedef void sdio_irq_handler_t(struct sdio_func *); + +struct sdio_func { + struct mmc_card *card; + struct device dev; + sdio_irq_handler_t *irq_handler; + unsigned int num; + unsigned char class; + short unsigned int vendor; + short unsigned int device; + unsigned int max_blksize; + unsigned int cur_blksize; + unsigned int enable_timeout; + unsigned int state; + u8 *tmpbuf; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; +}; + +struct sdio_func_tuple { + struct sdio_func_tuple *next; + unsigned char code; + unsigned char size; + unsigned char data[0]; +}; + +struct sdio_device_id { + __u8 class; + __u16 vendor; + __u16 device; + kernel_ulong_t driver_data; +}; + +struct sdio_driver { + char *name; + const struct sdio_device_id *id_table; + int (*probe)(struct sdio_func *, const struct sdio_device_id *); + void (*remove)(struct sdio_func *); + struct device_driver drv; +}; + +typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); + +struct cis_tpl { + unsigned char code; + unsigned char min_size; + tpl_parse_t *parse; +}; + +struct mmc_gpio { + struct gpio_desc *ro_gpio; + struct gpio_desc *cd_gpio; + irqreturn_t (*cd_gpio_isr)(int, void *); + char *ro_label; + char *cd_label; + u32 cd_debounce_delay_ms; +}; + +enum mmc_issue_type { + MMC_ISSUE_SYNC = 0, + MMC_ISSUE_DCMD = 1, + MMC_ISSUE_ASYNC = 2, + MMC_ISSUE_MAX = 3, +}; + +struct mmc_blk_request { + struct mmc_request mrq; + struct mmc_command sbc; + struct mmc_command cmd; + struct mmc_command stop; + struct mmc_data data; +}; + +enum mmc_drv_op { + MMC_DRV_OP_IOCTL = 0, + MMC_DRV_OP_IOCTL_RPMB = 1, + MMC_DRV_OP_BOOT_WP = 2, + MMC_DRV_OP_GET_CARD_STATUS = 3, + MMC_DRV_OP_GET_EXT_CSD = 4, +}; + +struct mmc_queue_req { + struct mmc_blk_request brq; + struct scatterlist *sg; + enum mmc_drv_op drv_op; + int drv_op_result; + void *drv_op_data; + unsigned int ioc_count; + int retries; +}; struct sdhci_pci_data { struct pci_dev *pdev; @@ -81525,6 +113124,12 @@ struct sdhci_pci_data { void (*cleanup)(struct sdhci_pci_data *); }; +enum led_default_state { + LEDS_DEFSTATE_OFF = 0, + LEDS_DEFSTATE_ON = 1, + LEDS_DEFSTATE_KEEP = 2, +}; + struct led_init_data { struct fwnode_handle *fwnode; const char *default_label; @@ -81555,53 +113160,6 @@ struct led_trigger_cpu { struct led_trigger *_trig; }; -enum dmi_entry_type { - DMI_ENTRY_BIOS = 0, - DMI_ENTRY_SYSTEM = 1, - DMI_ENTRY_BASEBOARD = 2, - DMI_ENTRY_CHASSIS = 3, - DMI_ENTRY_PROCESSOR = 4, - DMI_ENTRY_MEM_CONTROLLER = 5, - DMI_ENTRY_MEM_MODULE = 6, - DMI_ENTRY_CACHE = 7, - DMI_ENTRY_PORT_CONNECTOR = 8, - DMI_ENTRY_SYSTEM_SLOT = 9, - DMI_ENTRY_ONBOARD_DEVICE = 10, - DMI_ENTRY_OEMSTRINGS = 11, - DMI_ENTRY_SYSCONF = 12, - DMI_ENTRY_BIOS_LANG = 13, - DMI_ENTRY_GROUP_ASSOC = 14, - DMI_ENTRY_SYSTEM_EVENT_LOG = 15, - DMI_ENTRY_PHYS_MEM_ARRAY = 16, - DMI_ENTRY_MEM_DEVICE = 17, - DMI_ENTRY_32_MEM_ERROR = 18, - DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, - DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, - DMI_ENTRY_BUILTIN_POINTING_DEV = 21, - DMI_ENTRY_PORTABLE_BATTERY = 22, - DMI_ENTRY_SYSTEM_RESET = 23, - DMI_ENTRY_HW_SECURITY = 24, - DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, - DMI_ENTRY_VOLTAGE_PROBE = 26, - DMI_ENTRY_COOLING_DEV = 27, - DMI_ENTRY_TEMP_PROBE = 28, - DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, - DMI_ENTRY_OOB_REMOTE_ACCESS = 30, - DMI_ENTRY_BIS_ENTRY = 31, - DMI_ENTRY_SYSTEM_BOOT = 32, - DMI_ENTRY_MGMT_DEV = 33, - DMI_ENTRY_MGMT_DEV_COMPONENT = 34, - DMI_ENTRY_MGMT_DEV_THRES = 35, - DMI_ENTRY_MEM_CHANNEL = 36, - DMI_ENTRY_IPMI_DEV = 37, - DMI_ENTRY_SYS_POWER_SUPPLY = 38, - DMI_ENTRY_ADDITIONAL = 39, - DMI_ENTRY_ONBOARD_DEV_EXT = 40, - DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, - DMI_ENTRY_INACTIVE = 126, - DMI_ENTRY_END_OF_TABLE = 127, -}; - struct dmi_memdev_info { const char *device; const char *bank; @@ -81610,71 +113168,19 @@ struct dmi_memdev_info { u8 type; }; -struct dmi_sysfs_entry { - struct dmi_header dh; +struct edd_device { + unsigned int index; + unsigned int mbr_signature; + struct edd_info *info; struct kobject kobj; - int instance; - int position; - struct list_head list; - struct kobject *child; }; -struct dmi_sysfs_attribute { +struct edd_attribute { struct attribute attr; - ssize_t (*show)(struct dmi_sysfs_entry *, char *); + ssize_t (*show)(struct edd_device *, char *); + int (*test)(struct edd_device *); }; -struct dmi_sysfs_mapped_attribute { - struct attribute attr; - ssize_t (*show)(struct dmi_sysfs_entry *, const struct dmi_header *, char *); -}; - -typedef ssize_t (*dmi_callback)(struct dmi_sysfs_entry *, const struct dmi_header *, void *); - -struct find_dmi_data { - struct dmi_sysfs_entry *entry; - dmi_callback callback; - void *private; - int instance_countdown; - ssize_t ret; -}; - -struct dmi_read_state { - char *buf; - loff_t pos; - size_t count; -}; - -struct dmi_entry_attr_show_data { - struct attribute *attr; - char *buf; -}; - -struct dmi_system_event_log { - struct dmi_header header; - u16 area_length; - u16 header_start_offset; - u16 data_start_offset; - u8 access_method; - u8 status; - u32 change_token; - union { - struct { - u16 index_addr; - u16 data_addr; - } io; - u32 phys_addr32; - u16 gpnv_handle; - u32 access_method_address; - }; - u8 header_format; - u8 type_descriptors_supported_count; - u8 per_log_type_descriptor_length; - u8 supported_log_type_descriptos[0]; -} __attribute__((packed)); - -typedef u8 (*sel_io_reader)(const struct dmi_system_event_log *, loff_t); - struct dmi_device_attribute { struct device_attribute dev_attr; int field; @@ -81685,11 +113191,6 @@ struct mafield { int field; }; -struct acpi_table_ibft { - struct acpi_table_header header; - u8 reserved[12]; -}; - struct firmware_map_entry { u64 start; u64 end; @@ -81703,6 +113204,13 @@ struct memmap_attribute { ssize_t (*show)(struct firmware_map_entry *, char *); }; +struct simplefb_platform_data { + u32 width; + u32 height; + u32 stride; + const char *format; +}; + struct bmp_header { u16 id; u32 size; @@ -81710,19 +113218,6 @@ struct bmp_header { typedef efi_status_t efi_query_variable_store_t(u32, long unsigned int, bool); -typedef struct { - efi_guid_t guid; - u32 table; -} efi_config_table_32_t; - -typedef union { - struct { - efi_guid_t guid; - void *table; - }; - efi_config_table_32_t mixed_mode; -} efi_config_table_t; - typedef struct { u16 version; u16 length; @@ -81743,23 +113238,6 @@ struct efivars { const struct efivar_operations *ops; }; -struct efi_variable { - efi_char16_t VariableName[512]; - efi_guid_t VendorGuid; - long unsigned int DataSize; - __u8 Data[1024]; - efi_status_t Status; - __u32 Attributes; -} __attribute__((packed)); - -struct efivar_entry { - struct efi_variable var; - struct list_head list; - struct kobject kobj; - bool scanning; - bool deleting; -}; - struct linux_efi_random_seed { u32 size; u8 bits[0]; @@ -81775,6 +113253,12 @@ struct linux_efi_memreserve { } entry[0]; }; +struct efi_error_code { + efi_status_t status; + int errno; + const char *description; +}; + struct efi_generic_dev_path { u8 type; u8 sub_type; @@ -81795,92 +113279,6 @@ typedef struct { efi_memory_desc_t entry[0]; } efi_memory_attributes_table_t; -typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *); - -struct linux_efi_tpm_eventlog { - u32 size; - u32 final_events_preboot_size; - u8 version; - u8 log[0]; -}; - -struct efi_tcg2_final_events_table { - u64 version; - u64 nr_events; - u8 events[0]; -}; - -struct tpm_digest { - u16 alg_id; - u8 digest[64]; -}; - -enum tpm_duration { - TPM_SHORT = 0, - TPM_MEDIUM = 1, - TPM_LONG = 2, - TPM_LONG_LONG = 3, - TPM_UNDEFINED = 4, - TPM_NUM_DURATIONS = 4, -}; - -enum tcpa_event_types { - PREBOOT = 0, - POST_CODE = 1, - UNUSED = 2, - NO_ACTION = 3, - SEPARATOR = 4, - ACTION = 5, - EVENT_TAG = 6, - SCRTM_CONTENTS = 7, - SCRTM_VERSION = 8, - CPU_MICROCODE = 9, - PLATFORM_CONFIG_FLAGS = 10, - TABLE_OF_DEVICES = 11, - COMPACT_HASH = 12, - IPL = 13, - IPL_PARTITION_DATA = 14, - NONHOST_CODE = 15, - NONHOST_CONFIG = 16, - NONHOST_INFO = 17, -}; - -struct tcg_efi_specid_event_algs { - u16 alg_id; - u16 digest_size; -}; - -struct tcg_efi_specid_event_head { - u8 signature[16]; - u32 platform_class; - u8 spec_version_minor; - u8 spec_version_major; - u8 spec_errata; - u8 uintnsize; - u32 num_algs; - struct tcg_efi_specid_event_algs digest_sizes[0]; -}; - -struct tcg_pcr_event { - u32 pcr_idx; - u32 event_type; - u8 digest[20]; - u32 event_size; - u8 event[0]; -}; - -struct tcg_event_field { - u32 event_size; - u8 event[0]; -}; - -struct tcg_pcr_event2_head { - u32 pcr_idx; - u32 event_type; - u32 count; - struct tpm_digest digests[0]; -}; - typedef u64 efi_physical_addr_t; typedef struct { @@ -81888,6 +113286,21 @@ typedef struct { u64 data; } efi_capsule_block_desc_t; +struct compat_efi_variable { + efi_char16_t VariableName[512]; + efi_guid_t VendorGuid; + __u32 DataSize; + __u8 Data[1024]; + __u32 Status; + __u32 Attributes; +}; + +struct efivar_attribute { + struct attribute attr; + ssize_t (*show)(struct efivar_entry *, char *); + ssize_t (*store)(struct efivar_entry *, const char *, size_t); +}; + struct efi_system_resource_entry_v1 { efi_guid_t fw_class; u32 fw_type; @@ -82007,11 +113420,6 @@ struct efi_dev_path { }; }; -struct acpi_hid_uid { - struct acpi_device_id hid[2]; - char uid[11]; -}; - struct dev_header { u32 len; u32 prop_count; @@ -82025,11 +113433,100 @@ struct properties_header { struct dev_header dev_header[0]; }; +struct efi_embedded_fw { + struct list_head list; + const char *name; + const u8 *data; + size_t length; +}; + +struct efi_embedded_fw_desc { + const char *name; + u8 prefix[8]; + u32 length; + u8 sha256[32]; +}; + struct efi_mokvar_sysfs_attr { struct bin_attribute bin_attr; struct list_head node; }; +struct of_bus; + +struct of_pci_range_parser { + struct device_node *node; + struct of_bus *bus; + const __be32 *range; + const __be32 *end; + int na; + int ns; + int pna; + bool dma; +}; + +struct of_pci_range { + union { + u64 pci_addr; + u64 bus_addr; + }; + u64 cpu_addr; + u64 size; + u32 flags; +}; + +enum { + M_I17 = 0, + M_I20 = 1, + M_I20_SR = 2, + M_I24 = 3, + M_I24_8_1 = 4, + M_I24_10_1 = 5, + M_I27_11_1 = 6, + M_MINI = 7, + M_MINI_3_1 = 8, + M_MINI_4_1 = 9, + M_MB = 10, + M_MB_2 = 11, + M_MB_3 = 12, + M_MB_5_1 = 13, + M_MB_6_1 = 14, + M_MB_7_1 = 15, + M_MB_SR = 16, + M_MBA = 17, + M_MBA_3 = 18, + M_MBP = 19, + M_MBP_2 = 20, + M_MBP_2_2 = 21, + M_MBP_SR = 22, + M_MBP_4 = 23, + M_MBP_5_1 = 24, + M_MBP_5_2 = 25, + M_MBP_5_3 = 26, + M_MBP_6_1 = 27, + M_MBP_6_2 = 28, + M_MBP_7_1 = 29, + M_MBP_8_2 = 30, + M_UNKNOWN = 31, +}; + +struct efifb_dmi_info { + char *optname; + long unsigned int base; + int stride; + int width; + int height; + int flags; +}; + +enum { + OVERRIDE_NONE = 0, + OVERRIDE_BASE = 1, + OVERRIDE_STRIDE = 2, + OVERRIDE_HEIGHT = 4, + OVERRIDE_WIDTH = 8, +}; + struct cper_ia_err_info { guid_t err_type; u64 validation_bits; @@ -82040,13 +113537,6 @@ struct cper_ia_err_info { u64 ip; }; -struct cper_ia_proc_ctx { - u16 reg_ctx_type; - u16 reg_arr_size; - u32 msr_addr; - u64 mm_reg_addr; -}; - enum err_types { ERR_TYPE_CACHE = 0, ERR_TYPE_TLB = 1, @@ -82055,6 +113545,71 @@ enum err_types { N_ERR_TYPES = 4, }; +enum ppfear_regs { + SPT_PMC_XRAM_PPFEAR0A = 1424, + SPT_PMC_XRAM_PPFEAR0B = 1425, + SPT_PMC_XRAM_PPFEAR0C = 1426, + SPT_PMC_XRAM_PPFEAR0D = 1427, + SPT_PMC_XRAM_PPFEAR1A = 1428, +}; + +struct pmc_bit_map { + const char *name; + u32 bit_mask; +}; + +struct pmc_reg_map { + const struct pmc_bit_map **pfear_sts; + const struct pmc_bit_map *mphy_sts; + const struct pmc_bit_map *pll_sts; + const struct pmc_bit_map **slps0_dbg_maps; + const struct pmc_bit_map *ltr_show_sts; + const struct pmc_bit_map *msr_sts; + const struct pmc_bit_map **lpm_sts; + const u32 slp_s0_offset; + const int slp_s0_res_counter_step; + const u32 ltr_ignore_offset; + const int regmap_length; + const u32 ppfear0_offset; + const int ppfear_buckets; + const u32 pm_cfg_offset; + const int pm_read_disable_bit; + const u32 slps0_dbg_offset; + const u32 ltr_ignore_max; + const u32 pm_vric1_offset; + const int lpm_num_maps; + const int lpm_num_modes; + const int lpm_res_counter_step_x2; + const u32 lpm_sts_latch_en_offset; + const u32 lpm_en_offset; + const u32 lpm_priority_offset; + const u32 lpm_residency_offset; + const u32 lpm_status_offset; + const u32 lpm_live_status_offset; + const u32 etr3_offset; +}; + +struct pmc_dev { + u32 base_addr; + void *regbase; + const struct pmc_reg_map *map; + struct dentry *dbgfs_dir; + int pmc_xram_read_bit; + struct mutex lock; + bool check_counters; + u64 pc10_counter; + u64 s0ix_counter; + int num_lpm_modes; + int lpm_en_modes[8]; + u32 *lpm_req_regs; +}; + +struct ts_dmi_data { + struct efi_embedded_fw_desc embedded_fw; + const char *acpi_name; + const struct property_entry *properties; +}; + struct intel_scu_ipc_data { struct resource mem; int irq; @@ -82073,12 +113628,7 @@ struct intel_scu_ipc_devres { struct intel_scu_ipc_dev *scu; }; -struct pmc_bit_map { - const char *name; - u32 bit_mask; -}; - -struct pmc_reg_map { +struct pmc_reg_map___2 { const struct pmc_bit_map *d3_sts_0; const struct pmc_bit_map *d3_sts_1; const struct pmc_bit_map *func_dis; @@ -82087,18 +113637,474 @@ struct pmc_reg_map { }; struct pmc_data { - const struct pmc_reg_map *map; + const struct pmc_reg_map___2 *map; const struct pmc_clk *clks; }; -struct pmc_dev { +struct pmc_dev___2 { u32 base_addr; void *regmap; - const struct pmc_reg_map *map; + const struct pmc_reg_map___2 *map; struct dentry *dbgfs_dir; bool init; }; +enum ec_status { + EC_RES_SUCCESS = 0, + EC_RES_INVALID_COMMAND = 1, + EC_RES_ERROR = 2, + EC_RES_INVALID_PARAM = 3, + EC_RES_ACCESS_DENIED = 4, + EC_RES_INVALID_RESPONSE = 5, + EC_RES_INVALID_VERSION = 6, + EC_RES_INVALID_CHECKSUM = 7, + EC_RES_IN_PROGRESS = 8, + EC_RES_UNAVAILABLE = 9, + EC_RES_TIMEOUT = 10, + EC_RES_OVERFLOW = 11, + EC_RES_INVALID_HEADER = 12, + EC_RES_REQUEST_TRUNCATED = 13, + EC_RES_RESPONSE_TOO_BIG = 14, + EC_RES_BUS_ERROR = 15, + EC_RES_BUSY = 16, + EC_RES_INVALID_HEADER_VERSION = 17, + EC_RES_INVALID_HEADER_CRC = 18, + EC_RES_INVALID_DATA_CRC = 19, + EC_RES_DUP_UNAVAILABLE = 20, +}; + +enum host_event_code { + EC_HOST_EVENT_LID_CLOSED = 1, + EC_HOST_EVENT_LID_OPEN = 2, + EC_HOST_EVENT_POWER_BUTTON = 3, + EC_HOST_EVENT_AC_CONNECTED = 4, + EC_HOST_EVENT_AC_DISCONNECTED = 5, + EC_HOST_EVENT_BATTERY_LOW = 6, + EC_HOST_EVENT_BATTERY_CRITICAL = 7, + EC_HOST_EVENT_BATTERY = 8, + EC_HOST_EVENT_THERMAL_THRESHOLD = 9, + EC_HOST_EVENT_DEVICE = 10, + EC_HOST_EVENT_THERMAL = 11, + EC_HOST_EVENT_USB_CHARGER = 12, + EC_HOST_EVENT_KEY_PRESSED = 13, + EC_HOST_EVENT_INTERFACE_READY = 14, + EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, + EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, + EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, + EC_HOST_EVENT_THROTTLE_START = 18, + EC_HOST_EVENT_THROTTLE_STOP = 19, + EC_HOST_EVENT_HANG_DETECT = 20, + EC_HOST_EVENT_HANG_REBOOT = 21, + EC_HOST_EVENT_PD_MCU = 22, + EC_HOST_EVENT_BATTERY_STATUS = 23, + EC_HOST_EVENT_PANIC = 24, + EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, + EC_HOST_EVENT_RTC = 26, + EC_HOST_EVENT_MKBP = 27, + EC_HOST_EVENT_USB_MUX = 28, + EC_HOST_EVENT_MODE_CHANGE = 29, + EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, + EC_HOST_EVENT_WOV = 31, + EC_HOST_EVENT_INVALID = 32, +}; + +struct ec_host_request { + uint8_t struct_version; + uint8_t checksum; + uint16_t command; + uint8_t command_version; + uint8_t reserved; + uint16_t data_len; +}; + +struct ec_params_hello { + uint32_t in_data; +}; + +struct ec_response_hello { + uint32_t out_data; +}; + +struct ec_params_get_cmd_versions { + uint8_t cmd; +}; + +struct ec_response_get_cmd_versions { + uint32_t version_mask; +}; + +enum ec_comms_status { + EC_COMMS_STATUS_PROCESSING = 1, +}; + +struct ec_response_get_comms_status { + uint32_t flags; +}; + +struct ec_response_get_protocol_info { + uint32_t protocol_versions; + uint16_t max_request_packet_size; + uint16_t max_response_packet_size; + uint32_t flags; +}; + +enum ec_led_colors { + EC_LED_COLOR_RED = 0, + EC_LED_COLOR_GREEN = 1, + EC_LED_COLOR_BLUE = 2, + EC_LED_COLOR_YELLOW = 3, + EC_LED_COLOR_WHITE = 4, + EC_LED_COLOR_AMBER = 5, + EC_LED_COLOR_COUNT = 6, +}; + +enum motionsense_command { + MOTIONSENSE_CMD_DUMP = 0, + MOTIONSENSE_CMD_INFO = 1, + MOTIONSENSE_CMD_EC_RATE = 2, + MOTIONSENSE_CMD_SENSOR_ODR = 3, + MOTIONSENSE_CMD_SENSOR_RANGE = 4, + MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, + MOTIONSENSE_CMD_DATA = 6, + MOTIONSENSE_CMD_FIFO_INFO = 7, + MOTIONSENSE_CMD_FIFO_FLUSH = 8, + MOTIONSENSE_CMD_FIFO_READ = 9, + MOTIONSENSE_CMD_PERFORM_CALIB = 10, + MOTIONSENSE_CMD_SENSOR_OFFSET = 11, + MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, + MOTIONSENSE_CMD_SET_ACTIVITY = 13, + MOTIONSENSE_CMD_LID_ANGLE = 14, + MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, + MOTIONSENSE_CMD_SPOOF = 16, + MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, + MOTIONSENSE_CMD_SENSOR_SCALE = 18, + MOTIONSENSE_NUM_CMDS = 19, +}; + +struct ec_response_motion_sensor_data { + uint8_t flags; + uint8_t sensor_num; + union { + int16_t data[3]; + struct { + uint16_t reserved; + uint32_t timestamp; + } __attribute__((packed)); + struct { + uint8_t activity; + uint8_t state; + int16_t add_info[2]; + }; + }; +}; + +struct ec_response_motion_sense_fifo_info { + uint16_t size; + uint16_t count; + uint32_t timestamp; + uint16_t total_lost; + uint16_t lost[0]; +} __attribute__((packed)); + +struct ec_response_motion_sense_fifo_data { + uint32_t number_data; + struct ec_response_motion_sensor_data data[0]; +}; + +struct ec_motion_sense_activity { + uint8_t sensor_num; + uint8_t activity; + uint8_t enable; + uint8_t reserved; + uint16_t parameters[3]; +}; + +struct ec_params_motion_sense { + uint8_t cmd; + union { + struct { + uint8_t max_sensor_count; + } dump; + struct { + int16_t data; + } kb_wake_angle; + struct { + uint8_t sensor_num; + } info; + struct { + uint8_t sensor_num; + } info_3; + struct { + uint8_t sensor_num; + } data; + struct { + uint8_t sensor_num; + } fifo_flush; + struct { + uint8_t sensor_num; + } perform_calib; + struct { + uint8_t sensor_num; + } list_activities; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } ec_rate; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_odr; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_range; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + int16_t offset[3]; + } __attribute__((packed)) sensor_offset; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + uint16_t scale[3]; + } __attribute__((packed)) sensor_scale; + struct { + uint32_t max_data_vector; + } fifo_read; + struct ec_motion_sense_activity set_activity; + struct { + int8_t enable; + } fifo_int_enable; + struct { + uint8_t sensor_id; + uint8_t spoof_enable; + uint8_t reserved; + int16_t components[3]; + } __attribute__((packed)) spoof; + struct { + int16_t lid_angle; + int16_t hys_degree; + } tablet_mode_threshold; + }; +} __attribute__((packed)); + +struct ec_response_motion_sense { + union { + struct { + uint8_t module_flags; + uint8_t sensor_count; + struct ec_response_motion_sensor_data sensor[0]; + } dump; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + } info; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + uint32_t min_frequency; + uint32_t max_frequency; + uint32_t fifo_max_event_count; + } info_3; + struct ec_response_motion_sensor_data data; + struct { + int32_t ret; + } ec_rate; + struct { + int32_t ret; + } sensor_odr; + struct { + int32_t ret; + } sensor_range; + struct { + int32_t ret; + } kb_wake_angle; + struct { + int32_t ret; + } fifo_int_enable; + struct { + int32_t ret; + } spoof; + struct { + int16_t temp; + int16_t offset[3]; + } sensor_offset; + struct { + int16_t temp; + int16_t offset[3]; + } perform_calib; + struct { + int16_t temp; + uint16_t scale[3]; + } sensor_scale; + struct ec_response_motion_sense_fifo_info fifo_info; + struct ec_response_motion_sense_fifo_info fifo_flush; + struct ec_response_motion_sense_fifo_data fifo_read; + struct { + uint16_t reserved; + uint32_t enabled; + uint32_t disabled; + } __attribute__((packed)) list_activities; + struct { + uint16_t value; + } lid_angle; + struct { + uint16_t lid_angle; + uint16_t hys_degree; + } tablet_mode_threshold; + }; +}; + +enum ec_temp_thresholds { + EC_TEMP_THRESH_WARN = 0, + EC_TEMP_THRESH_HIGH = 1, + EC_TEMP_THRESH_HALT = 2, + EC_TEMP_THRESH_COUNT = 3, +}; + +enum ec_mkbp_event { + EC_MKBP_EVENT_KEY_MATRIX = 0, + EC_MKBP_EVENT_HOST_EVENT = 1, + EC_MKBP_EVENT_SENSOR_FIFO = 2, + EC_MKBP_EVENT_BUTTON = 3, + EC_MKBP_EVENT_SWITCH = 4, + EC_MKBP_EVENT_FINGERPRINT = 5, + EC_MKBP_EVENT_SYSRQ = 6, + EC_MKBP_EVENT_HOST_EVENT64 = 7, + EC_MKBP_EVENT_CEC_EVENT = 8, + EC_MKBP_EVENT_CEC_MESSAGE = 9, + EC_MKBP_EVENT_COUNT = 10, +}; + +union ec_response_get_next_data_v1 { + uint8_t key_matrix[16]; + uint32_t host_event; + uint64_t host_event64; + struct { + uint8_t reserved[3]; + struct ec_response_motion_sense_fifo_info info; + } sensor_fifo; + uint32_t buttons; + uint32_t switches; + uint32_t fp_events; + uint32_t sysrq; + uint32_t cec_events; + uint8_t cec_message[16]; +}; + +struct ec_response_get_next_event_v1 { + uint8_t event_type; + union ec_response_get_next_data_v1 data; +} __attribute__((packed)); + +struct ec_response_host_event_mask { + uint32_t mask; +}; + +enum { + EC_MSG_TX_HEADER_BYTES = 3, + EC_MSG_TX_TRAILER_BYTES = 1, + EC_MSG_TX_PROTO_BYTES = 4, + EC_MSG_RX_PROTO_BYTES = 3, + EC_PROTO2_MSG_BYTES = 256, + EC_MAX_MSG_BYTES = 65536, +}; + +struct cros_ec_command { + uint32_t version; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + uint8_t data[0]; +}; + +struct cros_ec_device { + const char *phys_name; + struct device *dev; + bool was_wake_device; + struct class *cros_class; + int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); + u16 max_request; + u16 max_response; + u16 max_passthru; + u16 proto_version; + void *priv; + int irq; + u8 *din; + u8 *dout; + int din_size; + int dout_size; + bool wake_enabled; + bool suspended; + int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); + int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); + struct mutex lock; + u8 mkbp_event_supported; + bool host_sleep_v1; + struct blocking_notifier_head event_notifier; + struct ec_response_get_next_event_v1 event_data; + int event_size; + u32 host_event_wake_mask; + u32 last_resume_result; + ktime_t last_event_time; + struct notifier_block notifier_ready; + struct platform_device *ec; + struct platform_device *pd; +}; + +struct cros_ec_debugfs; + +struct cros_ec_dev { + struct device class_dev; + struct cros_ec_device *ec_dev; + struct device *dev; + struct cros_ec_debugfs *debug_info; + bool has_kb_wake_angle; + u16 cmd_offset; + u32 features[2]; +}; + +struct trace_event_raw_cros_ec_request_start { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + char __data[0]; +}; + +struct trace_event_raw_cros_ec_request_done { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + int retval; + char __data[0]; +}; + +struct trace_event_data_offsets_cros_ec_request_start {}; + +struct trace_event_data_offsets_cros_ec_request_done {}; + +typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); + +typedef void (*btf_trace_cros_ec_request_done)(void *, struct cros_ec_command *, int); + struct acpi_table_pcct { struct acpi_table_header header; u32 flags; @@ -82111,7 +114117,8 @@ enum acpi_pcct_type { ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, - ACPI_PCCT_TYPE_RESERVED = 5, + ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5, + ACPI_PCCT_TYPE_RESERVED = 6, }; struct acpi_pcct_subspace { @@ -82145,11 +114152,282 @@ struct acpi_pcct_hw_reduced_type2 { u64 ack_write_mask; } __attribute__((packed)); +struct hwspinlock_ops { + int (*trylock)(struct hwspinlock *); + void (*unlock)(struct hwspinlock *); + int (*bust)(struct hwspinlock *, unsigned int); + void (*relax)(struct hwspinlock *); +}; + +struct hwspinlock_device; + +struct hwspinlock { + struct hwspinlock_device *bank; + spinlock_t lock; + void *priv; +}; + +struct hwspinlock_device { + struct device *dev; + const struct hwspinlock_ops *ops; + int base_id; + int num_locks; + struct hwspinlock lock[0]; +}; + +struct resource_table { + u32 ver; + u32 num; + u32 reserved[2]; + u32 offset[0]; +}; + +struct fw_rsc_hdr { + u32 type; + u8 data[0]; +}; + +enum fw_resource_type { + RSC_CARVEOUT = 0, + RSC_DEVMEM = 1, + RSC_TRACE = 2, + RSC_VDEV = 3, + RSC_LAST = 4, + RSC_VENDOR_START = 128, + RSC_VENDOR_END = 512, +}; + +struct fw_rsc_carveout { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_devmem { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_trace { + u32 da; + u32 len; + u32 reserved; + u8 name[32]; +}; + +struct fw_rsc_vdev_vring { + u32 da; + u32 align; + u32 num; + u32 notifyid; + u32 pa; +}; + +struct fw_rsc_vdev { + u32 id; + u32 notifyid; + u32 dfeatures; + u32 gfeatures; + u32 config_len; + u8 status; + u8 num_of_vrings; + u8 reserved[2]; + struct fw_rsc_vdev_vring vring[0]; +}; + +struct rproc; + +struct rproc_mem_entry { + void *va; + bool is_iomem; + dma_addr_t dma; + size_t len; + u32 da; + void *priv; + char name[32]; + struct list_head node; + u32 rsc_offset; + u32 flags; + u32 of_resm_idx; + int (*alloc)(struct rproc *, struct rproc_mem_entry *); + int (*release)(struct rproc *, struct rproc_mem_entry *); +}; + +enum rproc_dump_mechanism { + RPROC_COREDUMP_DISABLED = 0, + RPROC_COREDUMP_ENABLED = 1, + RPROC_COREDUMP_INLINE = 2, +}; + +struct rproc_ops; + +struct rproc { + struct list_head node; + struct iommu_domain *domain; + const char *name; + const char *firmware; + void *priv; + struct rproc_ops *ops; + struct device dev; + atomic_t power; + unsigned int state; + enum rproc_dump_mechanism dump_conf; + struct mutex lock; + struct dentry *dbg_dir; + struct list_head traces; + int num_traces; + struct list_head carveouts; + struct list_head mappings; + u64 bootaddr; + struct list_head rvdevs; + struct list_head subdevs; + struct idr notifyids; + int index; + struct work_struct crash_handler; + unsigned int crash_cnt; + bool recovery_disabled; + int max_notifyid; + struct resource_table *table_ptr; + struct resource_table *clean_table; + struct resource_table *cached_table; + size_t table_sz; + bool has_iommu; + bool auto_boot; + struct list_head dump_segments; + int nb_vdev; + u8 elf_class; + u16 elf_machine; + struct cdev cdev; + bool cdev_put_on_release; +}; + +enum rsc_handling_status { + RSC_HANDLED = 0, + RSC_IGNORED = 1, +}; + +struct rproc_ops { + int (*prepare)(struct rproc *); + int (*unprepare)(struct rproc *); + int (*start)(struct rproc *); + int (*stop)(struct rproc *); + int (*attach)(struct rproc *); + int (*detach)(struct rproc *); + void (*kick)(struct rproc *, int); + void * (*da_to_va)(struct rproc *, u64, size_t, bool *); + int (*parse_fw)(struct rproc *, const struct firmware *); + int (*handle_rsc)(struct rproc *, u32, void *, int, int); + struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); + struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); + int (*load)(struct rproc *, const struct firmware *); + int (*sanity_check)(struct rproc *, const struct firmware *); + u64 (*get_boot_addr)(struct rproc *, const struct firmware *); + long unsigned int (*panic)(struct rproc *); + void (*coredump)(struct rproc *); +}; + +enum rproc_state { + RPROC_OFFLINE = 0, + RPROC_SUSPENDED = 1, + RPROC_RUNNING = 2, + RPROC_CRASHED = 3, + RPROC_DELETED = 4, + RPROC_ATTACHED = 5, + RPROC_DETACHED = 6, + RPROC_LAST = 7, +}; + +enum rproc_crash_type { + RPROC_MMUFAULT = 0, + RPROC_WATCHDOG = 1, + RPROC_FATAL_ERROR = 2, +}; + +struct rproc_subdev { + struct list_head node; + int (*prepare)(struct rproc_subdev *); + int (*start)(struct rproc_subdev *); + void (*stop)(struct rproc_subdev *, bool); + void (*unprepare)(struct rproc_subdev *); +}; + +struct rproc_vdev; + +struct rproc_vring { + void *va; + int len; + u32 da; + u32 align; + int notifyid; + struct rproc_vdev *rvdev; + struct virtqueue *vq; +}; + +struct rproc_vdev { + struct kref refcount; + struct rproc_subdev subdev; + struct device dev; + unsigned int id; + struct list_head node; + struct rproc *rproc; + struct rproc_vring vring[2]; + u32 rsc_offset; + u32 index; +}; + +struct rproc_debug_trace { + struct rproc *rproc; + struct dentry *tfile; + struct list_head node; + struct rproc_mem_entry trace_mem; +}; + +typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); + +struct rproc_dump_segment { + struct list_head node; + dma_addr_t da; + size_t size; + void *priv; + void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); + loff_t offset; +}; + +struct rproc_coredump_state { + struct rproc *rproc; + void *header; + struct completion dump_done; +}; + struct devfreq_freqs { long unsigned int old; long unsigned int new; }; +struct devfreq_passive_data { + struct devfreq *parent; + int (*get_target_freq)(struct devfreq *, long unsigned int *); + struct devfreq *this; + struct notifier_block nb; +}; + +struct trace_event_raw_devfreq_frequency { + struct trace_entry ent; + u32 __data_loc_dev_name; + long unsigned int freq; + long unsigned int prev_freq; + long unsigned int busy_time; + long unsigned int total_time; + char __data[0]; +}; + struct trace_event_raw_devfreq_monitor { struct trace_entry ent; long unsigned int freq; @@ -82160,10 +114438,16 @@ struct trace_event_raw_devfreq_monitor { char __data[0]; }; +struct trace_event_data_offsets_devfreq_frequency { + u32 dev_name; +}; + struct trace_event_data_offsets_devfreq_monitor { u32 dev_name; }; +typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, long unsigned int, long unsigned int); + typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); struct devfreq_notifier_devres { @@ -82172,6 +114456,267 @@ struct devfreq_notifier_devres { unsigned int list; }; +struct devfreq_event_desc; + +struct devfreq_event_dev { + struct list_head node; + struct device dev; + struct mutex lock; + u32 enable_count; + const struct devfreq_event_desc *desc; +}; + +struct devfreq_event_ops; + +struct devfreq_event_desc { + const char *name; + u32 event_type; + void *driver_data; + const struct devfreq_event_ops *ops; +}; + +struct devfreq_event_data { + long unsigned int load_count; + long unsigned int total_count; +}; + +struct devfreq_event_ops { + int (*enable)(struct devfreq_event_dev *); + int (*disable)(struct devfreq_event_dev *); + int (*reset)(struct devfreq_event_dev *); + int (*set_event)(struct devfreq_event_dev *); + int (*get_event)(struct devfreq_event_dev *, struct devfreq_event_data *); +}; + +struct devfreq_simple_ondemand_data { + unsigned int upthreshold; + unsigned int downdifferential; +}; + +struct userspace_data { + long unsigned int user_frequency; + bool valid; +}; + +union extcon_property_value { + int intval; +}; + +struct extcon_cable; + +struct extcon_dev { + const char *name; + const unsigned int *supported_cable; + const u32 *mutually_exclusive; + struct device dev; + struct raw_notifier_head nh_all; + struct raw_notifier_head *nh; + struct list_head entry; + int max_supported; + spinlock_t lock; + u32 state; + struct device_type extcon_dev_type; + struct extcon_cable *cables; + struct attribute_group attr_g_muex; + struct attribute **attrs_muex; + struct device_attribute *d_attrs_muex; +}; + +struct extcon_cable { + struct extcon_dev *edev; + int cable_index; + struct attribute_group attr_g; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct attribute *attrs[3]; + union extcon_property_value usb_propval[3]; + union extcon_property_value chg_propval[1]; + union extcon_property_value jack_propval[1]; + union extcon_property_value disp_propval[2]; + long unsigned int usb_bits[1]; + long unsigned int chg_bits[1]; + long unsigned int jack_bits[1]; + long unsigned int disp_bits[1]; +}; + +struct __extcon_info { + unsigned int type; + unsigned int id; + const char *name; +}; + +struct extcon_dev_notifier_devres { + struct extcon_dev *edev; + unsigned int id; + struct notifier_block *nb; +}; + +enum vme_resource_type { + VME_MASTER = 0, + VME_SLAVE = 1, + VME_DMA = 2, + VME_LM = 3, +}; + +struct vme_dma_attr { + u32 type; + void *private; +}; + +struct vme_resource { + enum vme_resource_type type; + struct list_head *entry; +}; + +struct vme_bridge; + +struct vme_dev { + int num; + struct vme_bridge *bridge; + struct device dev; + struct list_head drv_list; + struct list_head bridge_list; +}; + +struct vme_callback { + void (*func)(int, int, void *); + void *priv_data; +}; + +struct vme_irq { + int count; + struct vme_callback callback[256]; +}; + +struct vme_slave_resource; + +struct vme_master_resource; + +struct vme_dma_list; + +struct vme_lm_resource; + +struct vme_bridge { + char name[16]; + int num; + struct list_head master_resources; + struct list_head slave_resources; + struct list_head dma_resources; + struct list_head lm_resources; + struct list_head vme_error_handlers; + struct list_head devices; + struct device *parent; + void *driver_priv; + struct list_head bus_list; + struct vme_irq irq[7]; + struct mutex irq_mtx; + int (*slave_get)(struct vme_slave_resource *, int *, long long unsigned int *, long long unsigned int *, dma_addr_t *, u32 *, u32 *); + int (*slave_set)(struct vme_slave_resource *, int, long long unsigned int, long long unsigned int, dma_addr_t, u32, u32); + int (*master_get)(struct vme_master_resource *, int *, long long unsigned int *, long long unsigned int *, u32 *, u32 *, u32 *); + int (*master_set)(struct vme_master_resource *, int, long long unsigned int, long long unsigned int, u32, u32, u32); + ssize_t (*master_read)(struct vme_master_resource *, void *, size_t, loff_t); + ssize_t (*master_write)(struct vme_master_resource *, void *, size_t, loff_t); + unsigned int (*master_rmw)(struct vme_master_resource *, unsigned int, unsigned int, unsigned int, loff_t); + int (*dma_list_add)(struct vme_dma_list *, struct vme_dma_attr *, struct vme_dma_attr *, size_t); + int (*dma_list_exec)(struct vme_dma_list *); + int (*dma_list_empty)(struct vme_dma_list *); + void (*irq_set)(struct vme_bridge *, int, int, int); + int (*irq_generate)(struct vme_bridge *, int, int); + int (*lm_set)(struct vme_lm_resource *, long long unsigned int, u32, u32); + int (*lm_get)(struct vme_lm_resource *, long long unsigned int *, u32 *, u32 *); + int (*lm_attach)(struct vme_lm_resource *, int, void (*)(void *), void *); + int (*lm_detach)(struct vme_lm_resource *, int); + int (*slot_get)(struct vme_bridge *); + void * (*alloc_consistent)(struct device *, size_t, dma_addr_t *); + void (*free_consistent)(struct device *, size_t, void *, dma_addr_t); +}; + +struct vme_driver { + const char *name; + int (*match)(struct vme_dev *); + int (*probe)(struct vme_dev *); + void (*remove)(struct vme_dev *); + struct device_driver driver; + struct list_head devices; +}; + +struct vme_master_resource { + struct list_head list; + struct vme_bridge *parent; + spinlock_t lock; + int locked; + int number; + u32 address_attr; + u32 cycle_attr; + u32 width_attr; + struct resource bus_resource; + void *kern_base; +}; + +struct vme_slave_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + u32 address_attr; + u32 cycle_attr; +}; + +struct vme_dma_pattern { + u32 pattern; + u32 type; +}; + +struct vme_dma_pci { + dma_addr_t address; +}; + +struct vme_dma_vme { + long long unsigned int address; + u32 aspace; + u32 cycle; + u32 dwidth; +}; + +struct vme_dma_resource; + +struct vme_dma_list { + struct list_head list; + struct vme_dma_resource *parent; + struct list_head entries; + struct mutex mtx; +}; + +struct vme_dma_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + struct list_head pending; + struct list_head running; + u32 route_attr; +}; + +struct vme_lm_resource { + struct list_head list; + struct vme_bridge *parent; + struct mutex mtx; + int locked; + int number; + int monitors; +}; + +struct vme_error_handler { + struct list_head list; + long long unsigned int start; + long long unsigned int end; + long long unsigned int first_error; + u32 aspace; + unsigned int num_errors; +}; + struct powercap_control_type; struct powercap_control_type_ops { @@ -82243,6 +114788,43 @@ struct powercap_zone_constraint_ops { const char * (*get_name)(struct powercap_zone *, int); }; +struct dtpm_ops; + +struct dtpm { + struct powercap_zone zone; + struct dtpm *parent; + struct list_head sibling; + struct list_head children; + struct dtpm_ops *ops; + long unsigned int flags; + u64 power_limit; + u64 power_max; + u64 power_min; + int weight; + void *private; +}; + +struct dtpm_ops { + u64 (*set_power_uw)(struct dtpm *, u64); + u64 (*get_power_uw)(struct dtpm *); + void (*release)(struct dtpm *); +}; + +struct dtpm_descr; + +typedef int (*dtpm_init_t)(struct dtpm_descr *); + +struct dtpm_descr { + struct dtpm *parent; + const char *name; + dtpm_init_t init; +}; + +struct dtpm_cpu { + struct freq_qos_request qos_req; + int cpu; +}; + struct powercap_constraint_attr { struct device_attribute power_limit_attr; struct device_attribute time_window_attr; @@ -82253,6 +114835,19 @@ struct powercap_constraint_attr { struct device_attribute name_attr; }; +struct idle_inject_thread { + struct task_struct *tsk; + int should_run; +}; + +struct idle_inject_device { + struct hrtimer timer; + unsigned int idle_duration_us; + unsigned int run_duration_us; + unsigned int latency_us; + long unsigned int cpumask[0]; +}; + struct trace_event_raw_extlog_mem_event { struct trace_entry ent; u32 err_seq; @@ -82357,6 +114952,22 @@ typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, c typedef void (*btf_trace_memory_failure_event)(void *, long unsigned int, int, int); +struct ce_array { + u64 *array; + unsigned int n; + unsigned int decay_count; + u64 pfns_poisoned; + u64 ces_entered; + u64 decays_done; + union { + struct { + __u32 disabled: 1; + __u32 __resv: 31; + }; + __u32 flags; + }; +}; + struct nvmem_cell_lookup { const char *nvmem_name; const char *cell_name; @@ -82394,6 +115005,8 @@ struct nvmem_device { struct bin_attribute eeprom; struct device *base_dev; struct list_head cells; + const struct nvmem_keepout *keepout; + unsigned int nkeepout; nvmem_reg_read_t reg_read; nvmem_reg_write_t reg_write; struct gpio_desc *wp_gpio; @@ -82411,6 +115024,111 @@ struct nvmem_cell { struct list_head node; }; +struct icc_node; + +struct icc_req { + struct hlist_node req_node; + struct icc_node *node; + struct device *dev; + bool enabled; + u32 tag; + u32 avg_bw; + u32 peak_bw; +}; + +struct icc_path { + const char *name; + size_t num_nodes; + struct icc_req reqs[0]; +}; + +struct icc_node_data { + struct icc_node *node; + u32 tag; +}; + +struct icc_provider; + +struct icc_node { + int id; + const char *name; + struct icc_node **links; + size_t num_links; + struct icc_provider *provider; + struct list_head node_list; + struct list_head search_list; + struct icc_node *reverse; + u8 is_traversed: 1; + struct hlist_head req_list; + u32 avg_bw; + u32 peak_bw; + u32 init_avg; + u32 init_peak; + void *data; +}; + +struct icc_onecell_data { + unsigned int num_nodes; + struct icc_node *nodes[0]; +}; + +struct icc_provider { + struct list_head provider_list; + struct list_head nodes; + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + void (*pre_aggregate)(struct icc_node *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); + struct icc_node * (*xlate)(struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); + struct device *dev; + int users; + bool inter_set; + void *data; +}; + +struct trace_event_raw_icc_set_bw { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + u32 __data_loc_node_name; + u32 avg_bw; + u32 peak_bw; + u32 node_avg_bw; + u32 node_peak_bw; + char __data[0]; +}; + +struct trace_event_raw_icc_set_bw_end { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + int ret; + char __data[0]; +}; + +struct trace_event_data_offsets_icc_set_bw { + u32 path_name; + u32 dev; + u32 node_name; +}; + +struct trace_event_data_offsets_icc_set_bw_end { + u32 path_name; + u32 dev; +}; + +typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); + +typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); + +struct icc_bulk_data { + struct icc_path *path; + const char *name; + u32 avg_bw; + u32 peak_bw; +}; + struct net_device_devres { struct net_device *ndev; }; @@ -82434,25 +115152,6 @@ struct scm_timestamping_internal { struct timespec64 ts[3]; }; -enum sock_shutdown_cmd { - SHUT_RD = 0, - SHUT_WR = 1, - SHUT_RDWR = 2, -}; - -struct net_proto_family { - int family; - int (*create)(struct net *, struct socket *, int, int); - struct module *owner; -}; - -enum { - SOCK_WAKE_IO = 0, - SOCK_WAKE_WAITD = 1, - SOCK_WAKE_SPACE = 2, - SOCK_WAKE_URG = 3, -}; - struct ifconf { int ifc_len; union { @@ -82497,9 +115196,23 @@ struct compat_ifreq { } ifr_ifru; }; -struct compat_ifconf { - compat_int_t ifc_len; - compat_caddr_t ifcbuf; +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 2, +}; + +struct net_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; +}; + +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, }; struct libipw_device; @@ -82620,8 +115333,9 @@ enum { SOF_TIMESTAMPING_OPT_STATS = 4096, SOF_TIMESTAMPING_OPT_PKTINFO = 8192, SOF_TIMESTAMPING_OPT_TX_SWHW = 16384, - SOF_TIMESTAMPING_LAST = 16384, - SOF_TIMESTAMPING_MASK = 32767, + SOF_TIMESTAMPING_BIND_PHC = 32768, + SOF_TIMESTAMPING_LAST = 32768, + SOF_TIMESTAMPING_MASK = 65535, }; struct scm_ts_pktinfo { @@ -82687,79 +115401,6 @@ struct ucred { __u32 gid; }; -struct mmpin { - struct user_struct *user; - unsigned int num_pg; -}; - -struct ubuf_info { - void (*callback)(struct ubuf_info *, bool); - union { - struct { - long unsigned int desc; - void *ctx; - }; - struct { - u32 id; - u16 len; - u16 zerocopy: 1; - u32 bytelen; - }; - }; - refcount_t refcnt; - struct mmpin mmp; -}; - -enum { - SKB_GSO_TCPV4 = 1, - SKB_GSO_DODGY = 2, - SKB_GSO_TCP_ECN = 4, - SKB_GSO_TCP_FIXEDID = 8, - SKB_GSO_TCPV6 = 16, - SKB_GSO_FCOE = 32, - SKB_GSO_GRE = 64, - SKB_GSO_GRE_CSUM = 128, - SKB_GSO_IPXIP4 = 256, - SKB_GSO_IPXIP6 = 512, - SKB_GSO_UDP_TUNNEL = 1024, - SKB_GSO_UDP_TUNNEL_CSUM = 2048, - SKB_GSO_PARTIAL = 4096, - SKB_GSO_TUNNEL_REMCSUM = 8192, - SKB_GSO_SCTP = 16384, - SKB_GSO_ESP = 32768, - SKB_GSO_UDP = 65536, - SKB_GSO_UDP_L4 = 131072, - SKB_GSO_FRAGLIST = 262144, -}; - -struct prot_inuse { - int val[64]; -}; - -struct gro_list { - struct list_head list; - int count; -}; - -struct napi_struct { - struct list_head poll_list; - long unsigned int state; - int weight; - int defer_hard_irqs_count; - long unsigned int gro_bitmask; - int (*poll)(struct napi_struct *, int); - int poll_owner; - struct net_device *dev; - struct gro_list gro_hash[8]; - struct sk_buff *skb; - struct list_head rx_list; - int rx_count; - struct hrtimer timer; - struct list_head dev_list; - struct hlist_node napi_hash_node; - unsigned int napi_id; -}; - struct sd_flow_limit { u64 count; unsigned int num_buckets; @@ -82804,7 +115445,11 @@ struct softnet_data { long: 64; long: 64; long: 64; - long: 64; +}; + +struct so_timestamping { + int flags; + int bind_phc; }; enum txtime_flags { @@ -82887,7 +115532,6 @@ struct inet_connection_sock { const struct tcp_ulp_ops *icsk_ulp_ops; void *icsk_ulp_data; void (*icsk_clean_acked)(struct sock *, u32); - struct hlist_node icsk_listen_portaddr_node; unsigned int (*icsk_sync_mss)(struct sock *, u32); __u8 icsk_ca_state: 5; __u8 icsk_ca_initialized: 1; @@ -82911,10 +115555,10 @@ struct inet_connection_sock { __u16 rcv_mss; } icsk_ack; struct { - int enabled; int search_high; int search_low; - int probe_size; + u32 probe_size: 31; + u32 enabled: 1; u32 probe_timestamp; } icsk_mtup; u32 icsk_probes_tstamp; @@ -82942,7 +115586,7 @@ struct tcp_ulp_ops { int (*init)(struct sock *); void (*update)(struct sock *, struct proto *, void (*)(struct sock *)); void (*release)(struct sock *); - int (*get_info)(const struct sock *, struct sk_buff *); + int (*get_info)(struct sock *, struct sk_buff *); size_t (*get_info_size)(const struct sock *); void (*clone)(const struct request_sock *, struct sock *, const gfp_t); char name[16]; @@ -83070,7 +115714,7 @@ struct tcp_sock { u32 packets_out; u32 retrans_out; u32 max_packets_out; - u32 max_packets_seq; + u32 cwnd_usage_seq; u16 urg_data; u8 ecn_flags; u8 keepalive_probes; @@ -83142,6 +115786,7 @@ struct tcp_sock { u32 probe_seq_end; } mtu_probe; u32 mtu_info; + bool is_mptcp; bool syn_smc; const struct tcp_sock_af_ops *af_specific; struct tcp_md5sig_info *md5sig_info; @@ -83181,6 +115826,7 @@ struct tcp_md5sig_key { u8 keylen; u8 family; u8 prefixlen; + u8 flags; union tcp_md5_addr addr; int l3index; u8 key[80]; @@ -83188,12 +115834,9 @@ struct tcp_md5sig_key { }; struct net_protocol { - int (*early_demux)(struct sk_buff *); - int (*early_demux_handler)(struct sk_buff *); int (*handler)(struct sk_buff *); int (*err_handler)(struct sk_buff *, u32); unsigned int no_policy: 1; - unsigned int netns_ok: 1; unsigned int icmp_strict_tag_validation: 1; }; @@ -83253,6 +115896,7 @@ struct tcp_request_sock { u64 snt_synack; bool tfo_listener; bool is_mptcp; + bool drop_req; u32 txhash; u32 rcv_isn; u32 snt_isn; @@ -83272,18 +115916,13 @@ struct tcp_request_sock_ops { u16 mss_clamp; struct tcp_md5sig_key * (*req_md5_lookup)(const struct sock *, const struct sock *); int (*calc_md5_hash)(char *, const struct tcp_md5sig_key *, const struct sock *, const struct sk_buff *); - void (*init_req)(struct request_sock *, const struct sock *, struct sk_buff *); __u32 (*cookie_init_seq)(const struct sk_buff *, __u16 *); - struct dst_entry * (*route_req)(const struct sock *, struct flowi *, const struct request_sock *); + struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); u32 (*init_seq)(const struct sk_buff *); u32 (*init_ts_off)(const struct net *, const struct sk_buff *); int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); }; -struct nf_conntrack { - atomic_t use; -}; - enum { SKB_FCLONE_UNAVAILABLE = 0, SKB_FCLONE_ORIG = 1, @@ -83304,6 +115943,7 @@ struct skb_seq_state { struct sk_buff *root_skb; struct sk_buff *cur_skb; __u8 *frag_data; + __u32 frag_off; }; struct skb_checksum_ops { @@ -83345,9 +115985,24 @@ struct napi_gro_cb { struct sk_buff *last; }; -enum skb_free_reason { - SKB_REASON_CONSUMED = 0, - SKB_REASON_DROPPED = 1, +enum { + TCA_UNSPEC = 0, + TCA_KIND = 1, + TCA_OPTIONS = 2, + TCA_STATS = 3, + TCA_XSTATS = 4, + TCA_RATE = 5, + TCA_FCNT = 6, + TCA_STATS2 = 7, + TCA_STAB = 8, + TCA_PAD = 9, + TCA_DUMP_INVISIBLE = 10, + TCA_CHAIN = 11, + TCA_HW_OFFLOAD = 12, + TCA_INGRESS_BLOCK = 13, + TCA_EGRESS_BLOCK = 14, + TCA_DUMP_FLAGS = 15, + __TCA_MAX = 16, }; struct vlan_hdr { @@ -83402,13 +116057,22 @@ struct napi_alloc_cache { void *skb_cache[64]; }; -struct ahash_request; +typedef int (*sendmsg_func)(struct sock *, struct msghdr *, struct kvec *, size_t, size_t); + +typedef int (*sendpage_func)(struct sock *, struct page *, int, size_t, int); + +struct scm_fp_list { + short int count; + short int max; + struct user_struct *user; + struct file *fp[253]; +}; struct scm_cookie { struct pid *pid; struct scm_fp_list *fp; struct scm_creds creds; - u32 secid; + struct lsmblob lsmblob; }; struct scm_timestamping { @@ -83545,6 +116209,10 @@ struct gen_cookie { long: 64; }; +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); + +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); + enum rtnl_link_flags { RTNL_FLAG_DOIT_UNLOCKED = 1, }; @@ -83574,12 +116242,6 @@ typedef u32 u_int32_t; typedef u64 u_int64_t; -struct flow_dissector_key_control { - u16 thoff; - u16 addr_type; - u32 flags; -}; - enum flow_dissect_ret { FLOW_DISSECT_RET_OUT_GOOD = 0, FLOW_DISSECT_RET_OUT_BAD = 1, @@ -83588,12 +116250,6 @@ enum flow_dissect_ret { FLOW_DISSECT_RET_CONTINUE = 4, }; -struct flow_dissector_key_basic { - __be16 n_proto; - u8 ip_proto; - u8 padding; -}; - struct flow_dissector_key_tags { u32 flow_label; }; @@ -83717,16 +116373,6 @@ struct flow_dissector_key { size_t offset; }; -struct flow_dissector { - unsigned int used_keys; - short unsigned int offset[28]; -}; - -struct flow_keys_basic { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; -}; - struct flow_keys { struct flow_dissector_key_control control; struct flow_dissector_key_basic basic; @@ -83755,19 +116401,6 @@ enum ip_conntrack_info { IP_CT_UNTRACKED = 7, }; -struct xt_table_info; - -struct xt_table { - struct list_head list; - unsigned int valid_hooks; - struct xt_table_info *private; - struct module *me; - u_int8_t af; - int priority; - int (*table_init)(struct net *); - const char name[32]; -}; - union nf_inet_addr { __u32 all[4]; __be32 ip; @@ -83832,20 +116465,18 @@ struct nf_ct_dccp { struct ip_ct_sctp { enum sctp_conntrack state; __be32 vtag[2]; + u8 init[2]; u8 last_dir; u8 flags; }; struct nf_ct_event; -struct nf_ct_event_notifier { - int (*fcn)(unsigned int, struct nf_ct_event *); -}; - struct nf_exp_event; -struct nf_exp_event_notifier { - int (*fcn)(unsigned int, struct nf_exp_event *); +struct nf_ct_event_notifier { + int (*ct_event)(unsigned int, const struct nf_ct_event *); + int (*exp_event)(unsigned int, const struct nf_exp_event *); }; enum bpf_ret_code { @@ -83861,6 +116492,16 @@ enum { BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 4, }; +enum { + TCA_FLOWER_KEY_CT_FLAGS_NEW = 1, + TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED = 2, + TCA_FLOWER_KEY_CT_FLAGS_RELATED = 4, + TCA_FLOWER_KEY_CT_FLAGS_TRACKED = 8, + TCA_FLOWER_KEY_CT_FLAGS_INVALID = 16, + TCA_FLOWER_KEY_CT_FLAGS_REPLY = 32, + __TCA_FLOWER_KEY_CT_FLAGS_MAX = 33, +}; + enum devlink_port_type { DEVLINK_PORT_TYPE_NOTSET = 0, DEVLINK_PORT_TYPE_AUTO = 1, @@ -83876,6 +116517,7 @@ enum devlink_port_flavour { DEVLINK_PORT_FLAVOUR_PCI_VF = 4, DEVLINK_PORT_FLAVOUR_VIRTUAL = 5, DEVLINK_PORT_FLAVOUR_UNUSED = 6, + DEVLINK_PORT_FLAVOUR_PCI_SF = 7, }; struct devlink_port_phys_attrs { @@ -83896,6 +116538,13 @@ struct devlink_port_pci_vf_attrs { u8 external: 1; }; +struct devlink_port_pci_sf_attrs { + u32 controller; + u32 sf; + u16 pf; + u8 external: 1; +}; + struct devlink_port_attrs { u8 split: 1; u8 splittable: 1; @@ -83906,18 +116555,20 @@ struct devlink_port_attrs { struct devlink_port_phys_attrs phys; struct devlink_port_pci_pf_attrs pci_pf; struct devlink_port_pci_vf_attrs pci_vf; + struct devlink_port_pci_sf_attrs pci_sf; }; }; struct devlink; +struct devlink_rate; + struct devlink_port { struct list_head list; struct list_head param_list; struct list_head region_list; struct devlink *devlink; unsigned int index; - bool registered; spinlock_t type_lock; enum devlink_port_type type; enum devlink_port_type desired_type; @@ -83928,18 +116579,175 @@ struct devlink_port { struct delayed_work type_warn_dw; struct list_head reporter_list; struct mutex reporters_lock; + struct devlink_rate *devlink_rate; }; -struct ip_tunnel_parm { - char name[16]; - int link; - __be16 i_flags; - __be16 o_flags; - __be32 i_key; - __be32 o_key; - struct iphdr iph; +enum phylink_op_type { + PHYLINK_NETDEV = 0, + PHYLINK_DEV = 1, }; +struct phylink_link_state; + +struct phylink_config { + struct device *dev; + enum phylink_op_type type; + bool pcs_poll; + bool poll_fixed_state; + bool mac_managed_pm; + bool ovr_an_inband; + void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); +}; + +struct dsa_device_ops; + +struct dsa_switch_tree; + +struct dsa_switch; + +struct dsa_netdevice_ops; + +struct dsa_port { + union { + struct net_device *master; + struct net_device *slave; + }; + const struct dsa_device_ops *tag_ops; + struct dsa_switch_tree *dst; + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + enum { + DSA_PORT_TYPE_UNUSED = 0, + DSA_PORT_TYPE_CPU = 1, + DSA_PORT_TYPE_DSA = 2, + DSA_PORT_TYPE_USER = 3, + } type; + struct dsa_switch *ds; + unsigned int index; + const char *name; + struct dsa_port *cpu_dp; + u8 mac[6]; + struct device_node *dn; + unsigned int ageing_time; + bool vlan_filtering; + bool learning; + u8 stp_state; + struct net_device *bridge_dev; + int bridge_num; + struct devlink_port devlink_port; + bool devlink_port_setup; + struct phylink *pl; + struct phylink_config pl_config; + struct net_device *lag_dev; + bool lag_tx_enabled; + struct net_device *hsr_dev; + struct list_head list; + void *priv; + const struct ethtool_ops *orig_ethtool_ops; + const struct dsa_netdevice_ops *netdev_ops; + struct list_head fdbs; + struct list_head mdbs; + bool setup; +}; + +enum netdev_lag_tx_type { + NETDEV_LAG_TX_TYPE_UNKNOWN = 0, + NETDEV_LAG_TX_TYPE_RANDOM = 1, + NETDEV_LAG_TX_TYPE_BROADCAST = 2, + NETDEV_LAG_TX_TYPE_ROUNDROBIN = 3, + NETDEV_LAG_TX_TYPE_ACTIVEBACKUP = 4, + NETDEV_LAG_TX_TYPE_HASH = 5, +}; + +enum netdev_lag_hash { + NETDEV_LAG_HASH_NONE = 0, + NETDEV_LAG_HASH_L2 = 1, + NETDEV_LAG_HASH_L34 = 2, + NETDEV_LAG_HASH_L23 = 3, + NETDEV_LAG_HASH_E23 = 4, + NETDEV_LAG_HASH_E34 = 5, + NETDEV_LAG_HASH_VLAN_SRCMAC = 6, + NETDEV_LAG_HASH_UNKNOWN = 7, +}; + +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; +}; + +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; +}; + +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; +}; + +enum flow_action_id { + FLOW_ACTION_ACCEPT = 0, + FLOW_ACTION_DROP = 1, + FLOW_ACTION_TRAP = 2, + FLOW_ACTION_GOTO = 3, + FLOW_ACTION_REDIRECT = 4, + FLOW_ACTION_MIRRED = 5, + FLOW_ACTION_REDIRECT_INGRESS = 6, + FLOW_ACTION_MIRRED_INGRESS = 7, + FLOW_ACTION_VLAN_PUSH = 8, + FLOW_ACTION_VLAN_POP = 9, + FLOW_ACTION_VLAN_MANGLE = 10, + FLOW_ACTION_TUNNEL_ENCAP = 11, + FLOW_ACTION_TUNNEL_DECAP = 12, + FLOW_ACTION_MANGLE = 13, + FLOW_ACTION_ADD = 14, + FLOW_ACTION_CSUM = 15, + FLOW_ACTION_MARK = 16, + FLOW_ACTION_PTYPE = 17, + FLOW_ACTION_PRIORITY = 18, + FLOW_ACTION_WAKE = 19, + FLOW_ACTION_QUEUE = 20, + FLOW_ACTION_SAMPLE = 21, + FLOW_ACTION_POLICE = 22, + FLOW_ACTION_CT = 23, + FLOW_ACTION_CT_METADATA = 24, + FLOW_ACTION_MPLS_PUSH = 25, + FLOW_ACTION_MPLS_POP = 26, + FLOW_ACTION_MPLS_MANGLE = 27, + FLOW_ACTION_GATE = 28, + FLOW_ACTION_PPPOE_PUSH = 29, + NUM_FLOW_ACTIONS = 30, +}; + +enum flow_action_mangle_base { + FLOW_ACT_MANGLE_UNSPEC = 0, + FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1, + FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2, + FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3, + FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4, + FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5, +}; + +enum flow_action_hw_stats { + FLOW_ACTION_HW_STATS_IMMEDIATE = 1, + FLOW_ACTION_HW_STATS_DELAYED = 2, + FLOW_ACTION_HW_STATS_ANY = 3, + FLOW_ACTION_HW_STATS_DISABLED = 4, + FLOW_ACTION_HW_STATS_DONT_CARE = 7, +}; + +typedef void (*action_destr)(void *); + +struct flow_action_cookie { + u32 cookie_len; + u8 cookie[0]; +}; + +struct nf_flowtable; + struct ip_tunnel_key { __be64 tun_id; union { @@ -83974,11 +116782,174 @@ struct ip_tunnel_info { u8 mode; }; +struct psample_group; + +struct action_gate_entry; + +struct flow_action_entry { + enum flow_action_id id; + enum flow_action_hw_stats hw_stats; + action_destr destructor; + void *destructor_priv; + union { + u32 chain_index; + struct net_device *dev; + struct { + u16 vid; + __be16 proto; + u8 prio; + } vlan; + struct { + enum flow_action_mangle_base htype; + u32 offset; + u32 mask; + u32 val; + } mangle; + struct ip_tunnel_info *tunnel; + u32 csum_flags; + u32 mark; + u16 ptype; + u32 priority; + struct { + u32 ctx; + u32 index; + u8 vf; + } queue; + struct { + struct psample_group *psample_group; + u32 rate; + u32 trunc_size; + bool truncate; + } sample; + struct { + u32 index; + u32 burst; + u64 rate_bytes_ps; + u64 burst_pkt; + u64 rate_pkt_ps; + u32 mtu; + } police; + struct { + int action; + u16 zone; + struct nf_flowtable *flow_table; + } ct; + struct { + long unsigned int cookie; + u32 mark; + u32 labels[4]; + bool orig_dir; + } ct_metadata; + struct { + u32 label; + __be16 proto; + u8 tc; + u8 bos; + u8 ttl; + } mpls_push; + struct { + __be16 proto; + } mpls_pop; + struct { + u32 label; + u8 tc; + u8 bos; + u8 ttl; + } mpls_mangle; + struct { + u32 index; + s32 prio; + u64 basetime; + u64 cycletime; + u64 cycletimeext; + u32 num_entries; + struct action_gate_entry *entries; + } gate; + struct { + u16 sid; + } pppoe; + }; + struct flow_action_cookie *cookie; +}; + +struct flow_action { + unsigned int num_entries; + struct flow_action_entry entries[0]; +}; + +struct flow_rule { + struct flow_match match; + struct flow_action action; +}; + +struct flow_stats { + u64 pkts; + u64 bytes; + u64 drops; + u64 lastused; + enum flow_action_hw_stats used_hw_stats; + bool used_hw_stats_valid; +}; + +enum flow_cls_command { + FLOW_CLS_REPLACE = 0, + FLOW_CLS_DESTROY = 1, + FLOW_CLS_STATS = 2, + FLOW_CLS_TMPLT_CREATE = 3, + FLOW_CLS_TMPLT_DESTROY = 4, +}; + +struct flow_cls_common_offload { + u32 chain_index; + __be16 protocol; + u32 prio; + struct netlink_ext_ack *extack; +}; + +struct flow_cls_offload { + struct flow_cls_common_offload common; + enum flow_cls_command command; + long unsigned int cookie; + struct flow_rule *rule; + struct flow_stats stats; + u32 classid; +}; + union tcp_word_hdr { struct tcphdr hdr; __be32 words[5]; }; +struct dsa_chip_data { + struct device *host_dev; + int sw_addr; + struct device *netdev[12]; + int eeprom_len; + struct device_node *of_node; + char *port_names[12]; + struct device_node *port_dn[12]; + s8 rtable[4]; +}; + +struct dsa_platform_data { + struct device *netdev; + struct net_device *of_netdev; + int nr_chips; + struct dsa_chip_data *chip; +}; + +struct phylink_link_state { + long unsigned int advertising[2]; + long unsigned int lp_advertising[2]; + phy_interface_t interface; + int speed; + int duplex; + int pause; + unsigned int link: 1; + unsigned int an_enabled: 1; + unsigned int an_complete: 1; +}; + enum devlink_sb_pool_type { DEVLINK_SB_POOL_TYPE_INGRESS = 0, DEVLINK_SB_POOL_TYPE_EGRESS = 1, @@ -83994,6 +116965,19 @@ enum devlink_eswitch_encap_mode { DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, }; +enum devlink_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, +}; + +enum devlink_param_cmode { + DEVLINK_PARAM_CMODE_RUNTIME = 0, + DEVLINK_PARAM_CMODE_DRIVERINIT = 1, + DEVLINK_PARAM_CMODE_PERMANENT = 2, + __DEVLINK_PARAM_CMODE_MAX = 3, + DEVLINK_PARAM_CMODE_MAX = 2, +}; + enum devlink_trap_action { DEVLINK_TRAP_ACTION_DROP = 0, DEVLINK_TRAP_ACTION_TRAP = 1, @@ -84026,6 +117010,16 @@ enum devlink_dpipe_field_mapping_type { DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, }; +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, +}; + +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +}; + struct devlink_dev_stats { u32 reload_stats[6]; u32 remote_reload_stats[6]; @@ -84036,8 +117030,9 @@ struct devlink_dpipe_headers; struct devlink_ops; struct devlink { - struct list_head list; + u32 index; struct list_head port_list; + struct list_head rate_list; struct list_head sb_list; struct list_head dpipe_table_list; struct list_head resource_list; @@ -84057,8 +117052,8 @@ struct devlink { struct mutex lock; u8 reload_failed: 1; u8 reload_enabled: 1; - u8 registered: 1; - long: 64; + refcount_t refcount; + struct completion comp; char priv[0]; }; @@ -84081,6 +117076,8 @@ struct devlink_trap_group; struct devlink_trap_policer; +struct devlink_port_new_attrs; + struct devlink_ops { u32 supported_flash_update_params; long unsigned int reload_actions; @@ -84114,12 +117111,53 @@ struct devlink_ops { int (*trap_group_init)(struct devlink *, const struct devlink_trap_group *); int (*trap_group_set)(struct devlink *, const struct devlink_trap_group *, const struct devlink_trap_policer *, struct netlink_ext_ack *); int (*trap_group_action_set)(struct devlink *, const struct devlink_trap_group *, enum devlink_trap_action, struct netlink_ext_ack *); + int (*trap_drop_counter_get)(struct devlink *, const struct devlink_trap *, u64 *); int (*trap_policer_init)(struct devlink *, const struct devlink_trap_policer *); void (*trap_policer_fini)(struct devlink *, const struct devlink_trap_policer *); int (*trap_policer_set)(struct devlink *, const struct devlink_trap_policer *, u64, u64, struct netlink_ext_ack *); int (*trap_policer_counter_get)(struct devlink *, const struct devlink_trap_policer *, u64 *); - int (*port_function_hw_addr_get)(struct devlink *, struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); - int (*port_function_hw_addr_set)(struct devlink *, struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_function_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_function_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, unsigned int *); + int (*port_del)(struct devlink *, unsigned int, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*rate_leaf_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_leaf_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_tx_share_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_tx_max_set)(struct devlink_rate *, void *, u64, struct netlink_ext_ack *); + int (*rate_node_new)(struct devlink_rate *, void **, struct netlink_ext_ack *); + int (*rate_node_del)(struct devlink_rate *, void *, struct netlink_ext_ack *); + int (*rate_leaf_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); + int (*rate_node_parent_set)(struct devlink_rate *, struct devlink_rate *, void *, void *, struct netlink_ext_ack *); +}; + +struct devlink_rate { + struct list_head list; + enum devlink_rate_type type; + struct devlink *devlink; + void *priv; + u64 tx_share; + u64 tx_max; + struct devlink_rate *parent; + union { + struct devlink_port *devlink_port; + struct { + char *name; + refcount_t refcnt; + }; + }; +}; + +struct devlink_port_new_attrs { + enum devlink_port_flavour flavour; + unsigned int port_index; + u32 controller; + u32 sfnum; + u16 pfnum; + u8 port_index_valid: 1; + u8 controller_valid: 1; + u8 sfnum_valid: 1; }; struct devlink_sb_pool_info { @@ -84144,8 +117182,21 @@ struct devlink_dpipe_header { bool global; }; +union devlink_param_value { + u8 vu8; + u16 vu16; + u32 vu32; + char vstr[32]; + bool vbool; +}; + +struct devlink_param_gset_ctx { + union devlink_param_value val; + enum devlink_param_cmode cmode; +}; + struct devlink_flash_update_params { - const char *file_name; + const struct firmware *fw; const char *component; u32 overwrite_mask; }; @@ -84185,62 +117236,267 @@ struct arphdr { __be16 ar_op; }; -struct fib_info; - -struct fib_nh { - struct fib_nh_common nh_common; - struct hlist_node nh_hash; - struct fib_info *nh_parent; - __u32 nh_tclassid; - __be32 nh_saddr; - int nh_saddr_genid; +struct switchdev_brport_flags { + long unsigned int val; + long unsigned int mask; }; -struct fib_info { - struct hlist_node fib_hash; - struct hlist_node fib_lhash; - struct list_head nh_list; - struct net *fib_net; - int fib_treeref; - refcount_t fib_clntref; - unsigned int fib_flags; - unsigned char fib_dead; - unsigned char fib_protocol; - unsigned char fib_scope; - unsigned char fib_type; - __be32 fib_prefsrc; - u32 fib_tb_id; - u32 fib_priority; - struct dst_metrics *fib_metrics; - int fib_nhs; - bool fib_nh_is_v6; - bool nh_updated; - struct nexthop *nh; - struct callback_head rcu; - struct fib_nh fib_nh[0]; +enum switchdev_obj_id { + SWITCHDEV_OBJ_ID_UNDEFINED = 0, + SWITCHDEV_OBJ_ID_PORT_VLAN = 1, + SWITCHDEV_OBJ_ID_PORT_MDB = 2, + SWITCHDEV_OBJ_ID_HOST_MDB = 3, + SWITCHDEV_OBJ_ID_MRP = 4, + SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, + SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, + SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, + SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, + SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, + SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, }; -struct nh_info; +struct switchdev_obj { + struct list_head list; + struct net_device *orig_dev; + enum switchdev_obj_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); +}; -struct nh_group; +struct switchdev_obj_port_vlan { + struct switchdev_obj obj; + u16 flags; + u16 vid; +}; -struct nexthop { - struct rb_node rb_node; - struct list_head fi_list; - struct list_head f6i_list; - struct list_head fdb_list; - struct list_head grp_list; - struct net *net; - u32 id; - u8 protocol; - u8 nh_flags; - bool is_group; - refcount_t refcnt; - struct callback_head rcu; - union { - struct nh_info *nh_info; - struct nh_group *nh_grp; - }; +struct switchdev_obj_port_mdb { + struct switchdev_obj obj; + unsigned char addr[6]; + u16 vid; +}; + +struct switchdev_obj_mrp { + struct switchdev_obj obj; + struct net_device *p_port; + struct net_device *s_port; + u32 ring_id; + u16 prio; +}; + +struct switchdev_obj_ring_role_mrp { + struct switchdev_obj obj; + u8 ring_role; + u32 ring_id; + u8 sw_backup; +}; + +enum dsa_tag_protocol { + DSA_TAG_PROTO_NONE = 0, + DSA_TAG_PROTO_BRCM = 1, + DSA_TAG_PROTO_BRCM_LEGACY = 22, + DSA_TAG_PROTO_BRCM_PREPEND = 2, + DSA_TAG_PROTO_DSA = 3, + DSA_TAG_PROTO_EDSA = 4, + DSA_TAG_PROTO_GSWIP = 5, + DSA_TAG_PROTO_KSZ9477 = 6, + DSA_TAG_PROTO_KSZ9893 = 7, + DSA_TAG_PROTO_LAN9303 = 8, + DSA_TAG_PROTO_MTK = 9, + DSA_TAG_PROTO_QCA = 10, + DSA_TAG_PROTO_TRAILER = 11, + DSA_TAG_PROTO_8021Q = 12, + DSA_TAG_PROTO_SJA1105 = 13, + DSA_TAG_PROTO_KSZ8795 = 14, + DSA_TAG_PROTO_OCELOT = 15, + DSA_TAG_PROTO_AR9331 = 16, + DSA_TAG_PROTO_RTL4_A = 17, + DSA_TAG_PROTO_HELLCREEK = 18, + DSA_TAG_PROTO_XRS700X = 19, + DSA_TAG_PROTO_OCELOT_8021Q = 20, + DSA_TAG_PROTO_SEVILLE = 21, + DSA_TAG_PROTO_SJA1110 = 23, +}; + +struct dsa_device_ops { + struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + const char *name; + enum dsa_tag_protocol proto; + bool promisc_on_master; +}; + +struct dsa_netdevice_ops { + int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); +}; + +struct dsa_switch_tree { + struct list_head list; + struct raw_notifier_head nh; + unsigned int index; + struct kref refcount; + bool setup; + const struct dsa_device_ops *tag_ops; + enum dsa_tag_protocol default_proto; + struct dsa_platform_data *pd; + struct list_head ports; + struct list_head rtable; + struct net_device **lags; + unsigned int lags_len; + unsigned int last_switch; +}; + +struct dsa_mall_mirror_tc_entry { + u8 to_local_port; + bool ingress; +}; + +struct dsa_mall_policer_tc_entry { + u32 burst; + u64 rate_bytes_per_sec; +}; + +struct dsa_8021q_context; + +struct dsa_switch_ops; + +struct dsa_switch { + bool setup; + struct device *dev; + struct dsa_switch_tree *dst; + unsigned int index; + struct notifier_block nb; + void *priv; + struct dsa_chip_data *cd; + const struct dsa_switch_ops *ops; + u32 phys_mii_mask; + struct mii_bus *slave_mii_bus; + unsigned int ageing_time_min; + unsigned int ageing_time_max; + struct dsa_8021q_context *tag_8021q_ctx; + struct devlink *devlink; + unsigned int num_tx_queues; + bool vlan_filtering_is_global; + bool needs_standalone_vlan_filtering; + bool configure_vlan_while_not_filtering; + bool untag_bridge_pvid; + bool assisted_learning_on_cpu_port; + bool vlan_filtering; + bool pcs_poll; + bool mtu_enforcement_ingress; + unsigned int num_lag_ids; + unsigned int num_fwd_offloading_bridges; + size_t num_ports; +}; + +typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); + +struct dsa_switch_ops { + enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); + int (*change_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); + int (*setup)(struct dsa_switch *); + void (*teardown)(struct dsa_switch *); + int (*port_setup)(struct dsa_switch *, int); + void (*port_teardown)(struct dsa_switch *, int); + u32 (*get_phy_flags)(struct dsa_switch *, int); + int (*phy_read)(struct dsa_switch *, int, int); + int (*phy_write)(struct dsa_switch *, int, int, u16); + void (*adjust_link)(struct dsa_switch *, int, struct phy_device *); + void (*fixed_link_update)(struct dsa_switch *, int, struct fixed_phy_status *); + void (*phylink_validate)(struct dsa_switch *, int, long unsigned int *, struct phylink_link_state *); + int (*phylink_mac_link_state)(struct dsa_switch *, int, struct phylink_link_state *); + void (*phylink_mac_config)(struct dsa_switch *, int, unsigned int, const struct phylink_link_state *); + void (*phylink_mac_an_restart)(struct dsa_switch *, int); + void (*phylink_mac_link_down)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_link_up)(struct dsa_switch *, int, unsigned int, phy_interface_t, struct phy_device *, int, int, bool, bool); + void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); + void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); + void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); + int (*get_sset_count)(struct dsa_switch *, int, int); + void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); + void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); + void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); + void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*get_ts_info)(struct dsa_switch *, int, struct ethtool_ts_info *); + int (*suspend)(struct dsa_switch *); + int (*resume)(struct dsa_switch *); + int (*port_enable)(struct dsa_switch *, int, struct phy_device *); + void (*port_disable)(struct dsa_switch *, int); + struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); + int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); + int (*get_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); + int (*get_eeprom_len)(struct dsa_switch *); + int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*get_regs_len)(struct dsa_switch *, int); + void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); + int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); + int (*set_ageing_time)(struct dsa_switch *, unsigned int); + int (*port_bridge_join)(struct dsa_switch *, int, struct net_device *); + void (*port_bridge_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_bridge_tx_fwd_offload)(struct dsa_switch *, int, struct net_device *, int); + void (*port_bridge_tx_fwd_unoffload)(struct dsa_switch *, int, struct net_device *, int); + void (*port_stp_state_set)(struct dsa_switch *, int, u8); + void (*port_fast_age)(struct dsa_switch *, int); + int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); + int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); + int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); + int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16); + int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16); + int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); + int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *); + int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *); + int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); + int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); + int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool); + void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); + int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); + void (*port_policer_del)(struct dsa_switch *, int); + int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); + int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct net_device *); + void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct net_device *); + int (*crosschip_lag_change)(struct dsa_switch *, int, int); + int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct net_device *, struct netdev_lag_upper_info *); + int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct net_device *); + int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); + int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); + void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); + bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); + int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); + int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); + int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*port_change_mtu)(struct dsa_switch *, int, int); + int (*port_max_mtu)(struct dsa_switch *, int); + int (*port_lag_change)(struct dsa_switch *, int); + int (*port_lag_join)(struct dsa_switch *, int, struct net_device *, struct netdev_lag_upper_info *); + int (*port_lag_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *); + int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); + int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); }; enum lwtunnel_encap_types { @@ -84253,37 +117509,8 @@ enum lwtunnel_encap_types { LWTUNNEL_ENCAP_BPF = 6, LWTUNNEL_ENCAP_SEG6_LOCAL = 7, LWTUNNEL_ENCAP_RPL = 8, - __LWTUNNEL_ENCAP_MAX = 9, -}; - -struct nh_info { - struct hlist_node dev_hash; - struct nexthop *nh_parent; - u8 family; - bool reject_nh; - bool fdb_nh; - union { - struct fib_nh_common fib_nhc; - struct fib_nh fib_nh; - struct fib6_nh fib6_nh; - }; -}; - -struct nh_grp_entry { - struct nexthop *nh; - u8 weight; - atomic_t upper_bound; - struct list_head nh_list; - struct nexthop *nh_parent; -}; - -struct nh_group { - struct nh_group *spare; - u16 num_nh; - bool mpath; - bool fdb_nh; - bool has_v4; - struct nh_grp_entry nh_entries[0]; + LWTUNNEL_ENCAP_IOAM6 = 9, + __LWTUNNEL_ENCAP_MAX = 10, }; enum metadata_type { @@ -84374,6 +117601,30 @@ struct mpls_label { __be32 entry; }; +struct clock_identity { + u8 id[8]; +}; + +struct port_identity { + struct clock_identity clock_identity; + __be16 port_number; +}; + +struct ptp_header { + u8 tsmt; + u8 ver; + __be16 message_length; + u8 domain_number; + u8 reserved1; + u8 flag_field[2]; + __be64 correction; + __be32 reserved2; + struct port_identity source_port_identity; + __be16 sequence_id; + u8 control; + u8 log_message_interval; +} __attribute__((packed)); + enum batadv_packettype { BATADV_IV_OGM = 0, BATADV_BCAST = 1, @@ -84481,17 +117732,6 @@ struct nf_conn { union nf_conntrack_proto proto; }; -struct xt_table_info { - unsigned int size; - unsigned int number; - unsigned int initial_entries; - unsigned int hook_entry[5]; - unsigned int underflow[5]; - unsigned int stacksize; - void ***jumpstack; - unsigned char entries[0]; -}; - struct nf_conntrack_tuple_mask { struct { union nf_inet_addr u3; @@ -84563,26 +117803,13 @@ struct _flow_keys_digest_data { __be32 dst; }; -struct rps_sock_flow_table { - u32 mask; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 ents[0]; -}; - -enum { - IF_OPER_UNKNOWN = 0, - IF_OPER_NOTPRESENT = 1, - IF_OPER_DOWN = 2, - IF_OPER_LOWERLAYERDOWN = 3, - IF_OPER_TESTING = 4, - IF_OPER_DORMANT = 5, - IF_OPER_UP = 6, +struct tc_skb_ext { + __u32 chain; + __u16 mru; + __u16 zone; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; }; struct ipv4_devconf { @@ -84596,6 +117823,16 @@ enum nf_dev_hooks { NF_NETDEV_NUMHOOKS = 1, }; +enum { + IF_OPER_UNKNOWN = 0, + IF_OPER_NOTPRESENT = 1, + IF_OPER_DOWN = 2, + IF_OPER_LOWERLAYERDOWN = 3, + IF_OPER_TESTING = 4, + IF_OPER_DORMANT = 5, + IF_OPER_UP = 6, +}; + struct ifbond { __s32 bond_mode; __s32 num_slaves; @@ -84614,20 +117851,6 @@ struct ifslave { typedef struct ifslave ifslave; -enum netdev_state_t { - __LINK_STATE_START = 0, - __LINK_STATE_PRESENT = 1, - __LINK_STATE_NOCARRIER = 2, - __LINK_STATE_LINKWATCH_PENDING = 3, - __LINK_STATE_DORMANT = 4, - __LINK_STATE_TESTING = 5, -}; - -struct netdev_boot_setup { - char name[16]; - struct ifmap map; -}; - enum { NAPIF_STATE_SCHED = 1, NAPIF_STATE_MISSED = 2, @@ -84636,23 +117859,14 @@ enum { NAPIF_STATE_LISTED = 16, NAPIF_STATE_NO_BUSY_POLL = 32, NAPIF_STATE_IN_BUSY_POLL = 64, + NAPIF_STATE_PREFER_BUSY_POLL = 128, + NAPIF_STATE_THREADED = 256, + NAPIF_STATE_SCHED_THREADED = 512, }; -enum gro_result { - GRO_MERGED = 0, - GRO_MERGED_FREE = 1, - GRO_HELD = 2, - GRO_NORMAL = 3, - GRO_DROP = 4, - GRO_CONSUMED = 5, -}; - -typedef enum gro_result gro_result_t; - -enum netdev_queue_state_t { - __QUEUE_STATE_DRV_XOFF = 0, - __QUEUE_STATE_STACK_XOFF = 1, - __QUEUE_STATE_FROZEN = 2, +struct net_device_path_stack { + int num_paths; + struct net_device_path path[5]; }; struct bpf_xdp_link { @@ -84677,13 +117891,6 @@ struct netpoll_info { struct callback_head rcu; }; -struct udp_tunnel_info { - short unsigned int type; - sa_family_t sa_family; - __be16 port; - u8 hw_priv; -}; - struct in_ifaddr; struct ip_mc_list; @@ -84750,14 +117957,6 @@ struct netdev_notifier_change_info { unsigned int flags_changed; }; -struct netdev_notifier_changeupper_info { - struct netdev_notifier_info info; - struct net_device *upper_dev; - bool master; - bool linking; - void *upper_info; -}; - struct netdev_notifier_changelowerstate_info { struct netdev_notifier_info info; void *lower_state_info; @@ -84814,6 +118013,7 @@ enum qdisc_state_t { __QDISC_STATE_SCHED = 0, __QDISC_STATE_DEACTIVATED = 1, __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, }; struct tcf_walker { @@ -84861,6 +118061,15 @@ enum { __IPV4_DEVCONF_MAX = 33, }; +struct tc_skb_cb { + struct qdisc_skb_cb qdisc_cb; + u16 mru; + u8 post_ct: 1; + u8 post_ct_snat: 1; + u8 post_ct_dnat: 1; + u16 zone; +}; + struct in_ifaddr { struct hlist_node hash; struct in_ifaddr *ifa_next; @@ -84881,6 +118090,13 @@ struct in_ifaddr { long unsigned int ifa_tstamp; }; +struct udp_tunnel_info { + short unsigned int type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; +}; + struct udp_tunnel_nic_shared { struct udp_tunnel_nic *udp_tunnel_nic_info; struct list_head devices; @@ -84902,6 +118118,7 @@ struct netdev_adjacent { struct netdev_hw_addr { struct list_head list; + struct rb_node node; unsigned char addr[32]; unsigned char type; bool global_use; @@ -85108,67 +118325,6 @@ struct rtnl_link_ifmap { __u8 port; }; -enum { - IFLA_UNSPEC = 0, - IFLA_ADDRESS = 1, - IFLA_BROADCAST = 2, - IFLA_IFNAME = 3, - IFLA_MTU = 4, - IFLA_LINK = 5, - IFLA_QDISC = 6, - IFLA_STATS = 7, - IFLA_COST = 8, - IFLA_PRIORITY = 9, - IFLA_MASTER = 10, - IFLA_WIRELESS = 11, - IFLA_PROTINFO = 12, - IFLA_TXQLEN = 13, - IFLA_MAP = 14, - IFLA_WEIGHT = 15, - IFLA_OPERSTATE = 16, - IFLA_LINKMODE = 17, - IFLA_LINKINFO = 18, - IFLA_NET_NS_PID = 19, - IFLA_IFALIAS = 20, - IFLA_NUM_VF = 21, - IFLA_VFINFO_LIST = 22, - IFLA_STATS64 = 23, - IFLA_VF_PORTS = 24, - IFLA_PORT_SELF = 25, - IFLA_AF_SPEC = 26, - IFLA_GROUP = 27, - IFLA_NET_NS_FD = 28, - IFLA_EXT_MASK = 29, - IFLA_PROMISCUITY = 30, - IFLA_NUM_TX_QUEUES = 31, - IFLA_NUM_RX_QUEUES = 32, - IFLA_CARRIER = 33, - IFLA_PHYS_PORT_ID = 34, - IFLA_CARRIER_CHANGES = 35, - IFLA_PHYS_SWITCH_ID = 36, - IFLA_LINK_NETNSID = 37, - IFLA_PHYS_PORT_NAME = 38, - IFLA_PROTO_DOWN = 39, - IFLA_GSO_MAX_SEGS = 40, - IFLA_GSO_MAX_SIZE = 41, - IFLA_PAD = 42, - IFLA_XDP = 43, - IFLA_EVENT = 44, - IFLA_NEW_NETNSID = 45, - IFLA_IF_NETNSID = 46, - IFLA_TARGET_NETNSID = 46, - IFLA_CARRIER_UP_COUNT = 47, - IFLA_CARRIER_DOWN_COUNT = 48, - IFLA_NEW_IFINDEX = 49, - IFLA_MIN_MTU = 50, - IFLA_MAX_MTU = 51, - IFLA_PROP_LIST = 52, - IFLA_ALT_IFNAME = 53, - IFLA_PERM_ADDRESS = 54, - IFLA_PROTO_DOWN_REASON = 55, - __IFLA_MAX = 56, -}; - enum { IFLA_PROTO_DOWN_REASON_UNSPEC = 0, IFLA_PROTO_DOWN_REASON_MASK = 1, @@ -85215,7 +118371,9 @@ enum { IFLA_BRPORT_BACKUP_PORT = 34, IFLA_BRPORT_MRP_RING_OPEN = 35, IFLA_BRPORT_MRP_IN_OPEN = 36, - __IFLA_BRPORT_MAX = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + __IFLA_BRPORT_MAX = 39, }; enum { @@ -85403,7 +118561,8 @@ enum { IFLA_BRIDGE_VLAN_INFO = 2, IFLA_BRIDGE_VLAN_TUNNEL_INFO = 3, IFLA_BRIDGE_MRP = 4, - __IFLA_BRIDGE_MAX = 5, + IFLA_BRIDGE_CFM = 5, + __IFLA_BRIDGE_MAX = 6, }; enum { @@ -85467,17 +118626,29 @@ struct ifinfomsg { unsigned int ifi_change; }; -typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); +enum rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, +}; -typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); +struct rtnl_msg_handler { + struct module *owner; + int protocol; + int msgtype; + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + int flags; +}; struct rtnl_af_ops { struct list_head list; int family; int (*fill_link_af)(struct sk_buff *, const struct net_device *, u32); size_t (*get_link_af_size)(const struct net_device *, u32); - int (*validate_link_af)(const struct net_device *, const struct nlattr *); - int (*set_link_af)(struct net_device *, const struct nlattr *); + int (*validate_link_af)(const struct net_device *, const struct nlattr *, struct netlink_ext_ack *); + int (*set_link_af)(struct net_device *, const struct nlattr *, struct netlink_ext_ack *); int (*fill_stats_af)(struct sk_buff *, const struct net_device *); size_t (*get_stats_af_size)(const struct net_device *); }; @@ -85549,6 +118720,7 @@ enum { BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 8, BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 16, BPF_F_ADJ_ROOM_NO_CSUM_RESET = 32, + BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 64, }; enum { @@ -85697,6 +118869,9 @@ enum { enum { BPF_FIB_LOOKUP_DIRECT = 1, BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, }; enum { @@ -85709,6 +118884,7 @@ enum { BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, BPF_FIB_LKUP_RET_NO_NEIGH = 7, BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, }; struct bpf_fib_lookup { @@ -85716,7 +118892,10 @@ struct bpf_fib_lookup { __u8 l4_protocol; __be16 sport; __be16 dport; - __u16 tot_len; + union { + __u16 tot_len; + __u16 mtu_result; + }; __u32 ifindex; union { __u8 tos; @@ -85731,8 +118910,13 @@ struct bpf_fib_lookup { __be32 ipv4_dst; __u32 ipv6_dst[4]; }; - __be16 h_vlan_proto; - __be16 h_vlan_TCI; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; __u8 smac[6]; __u8 dmac[6]; }; @@ -85745,6 +118929,16 @@ struct bpf_redir_neigh { }; }; +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, +}; + +enum bpf_check_mtu_ret { + BPF_MTU_CHK_RET_SUCCESS = 0, + BPF_MTU_CHK_RET_FRAG_NEEDED = 1, + BPF_MTU_CHK_RET_SEGS_TOOBIG = 2, +}; + enum rt_scope_t { RT_SCOPE_UNIVERSE = 0, RT_SCOPE_SITE = 200, @@ -85770,8 +118964,6 @@ struct nl_info { u8 skip_notify_kernel: 1; }; -typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); - struct inet_timewait_sock { struct sock_common __tw_common; __u32 tw_mark; @@ -85818,10 +119010,13 @@ struct udp_sock { __u8 pcflag; __u8 unused[3]; int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, unsigned int); int (*encap_err_lookup)(struct sock *, struct sk_buff *); void (*encap_destroy)(struct sock *); struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); int (*gro_complete)(struct sock *, struct sk_buff *, int); + long: 64; + long: 64; struct sk_buff_head reader_queue; int forward_deficit; long: 64; @@ -85864,13 +119059,14 @@ struct ipv6_stub { void (*fib6_update_sernum)(struct net *, struct fib6_info *); int (*ip6_del_rt)(struct net *, struct fib6_info *, bool); void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *); - void (*udpv6_encap_enable)(); + void (*udpv6_encap_enable)(void); void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32); int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *); int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int); struct neigh_table *nd_tbl; int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); + struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); }; struct fib6_result { @@ -85912,6 +119108,7 @@ struct fib6_config { struct ipv6_bpf_stub { int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); }; struct fib_result { @@ -85966,51 +119163,9 @@ struct tcp_skb_cb { struct inet_skb_parm h4; struct inet6_skb_parm h6; } header; - struct { - __u32 flags; - struct sock *sk_redir; - void *data_end; - } bpf; }; }; -struct strp_stats { - long long unsigned int msgs; - long long unsigned int bytes; - unsigned int mem_fail; - unsigned int need_more_hdr; - unsigned int msg_too_big; - unsigned int msg_timeouts; - unsigned int bad_hdr_len; -}; - -struct strparser; - -struct strp_callbacks { - int (*parse_msg)(struct strparser *, struct sk_buff *); - void (*rcv_msg)(struct strparser *, struct sk_buff *); - int (*read_sock_done)(struct strparser *, int); - void (*abort_parser)(struct strparser *, int); - void (*lock)(struct strparser *); - void (*unlock)(struct strparser *); -}; - -struct strparser { - struct sock *sk; - u32 stopped: 1; - u32 paused: 1; - u32 aborted: 1; - u32 interrupted: 1; - u32 unrecov_intr: 1; - struct sk_buff **skb_nextp; - struct sk_buff *skb_head; - unsigned int need_bytes; - struct delayed_work msg_timer_work; - struct work_struct work; - struct strp_stats stats; - struct strp_callbacks cb; -}; - struct strp_msg { int full_len; int offset; @@ -86021,9 +119176,16 @@ struct _strp_msg { int accum_len; }; +struct tls_msg { + u8 control; + u8 decrypted; +}; + struct sk_skb_cb { unsigned char data[20]; struct _strp_msg strp; + u64 temp_reg; + struct tls_msg tls; }; struct xdp_umem { @@ -86043,27 +119205,14 @@ struct xdp_umem { struct work_struct work; }; -struct xdp_sock; - -struct xsk_map { - struct bpf_map map; - spinlock_t lock; - struct xdp_sock *xsk_map[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - struct xsk_queue; struct xdp_sock { struct sock sk; long: 64; long: 64; + long: 64; + long: 64; struct xsk_queue *rx; struct net_device *dev; struct xdp_umem *umem; @@ -86118,7 +119267,8 @@ enum { SEG6_LOCAL_ACTION_END_AS = 13, SEG6_LOCAL_ACTION_END_AM = 14, SEG6_LOCAL_ACTION_END_BPF = 15, - __SEG6_LOCAL_ACTION_MAX = 16, + SEG6_LOCAL_ACTION_END_DT46 = 16, + __SEG6_LOCAL_ACTION_MAX = 17, }; struct seg6_bpf_srh_state { @@ -86148,6 +119298,14 @@ struct tls12_crypto_info_aes_gcm_256 { unsigned char rec_seq[8]; }; +struct tls12_crypto_info_chacha20_poly1305 { + struct tls_crypto_info info; + unsigned char iv[12]; + unsigned char key[32]; + unsigned char salt[0]; + unsigned char rec_seq[8]; +}; + struct tls_sw_context_rx { struct crypto_aead *aead_recv; struct crypto_wait async_wait; @@ -86155,25 +119313,11 @@ struct tls_sw_context_rx { struct sk_buff_head rx_list; void (*saved_data_ready)(struct sock *); struct sk_buff *recv_pkt; - u8 control; + u8 reader_present; u8 async_capable: 1; - u8 decrypted: 1; + u8 reader_contended: 1; atomic_t decrypt_pending; - spinlock_t decrypt_compl_lock; - bool async_notify; -}; - -struct cipher_context { - char *iv; - char *rec_seq; -}; - -union tls_crypto_context { - struct tls_crypto_info info; - union { - struct tls12_crypto_info_aes_gcm_128 aes_gcm_128; - struct tls12_crypto_info_aes_gcm_256 aes_gcm_256; - }; + struct wait_queue_head wq; }; struct tls_prot_info { @@ -86189,6 +119333,20 @@ struct tls_prot_info { u16 tail_size; }; +struct cipher_context { + char *iv; + char *rec_seq; +}; + +union tls_crypto_context { + struct tls_crypto_info info; + union { + struct tls12_crypto_info_aes_gcm_128 aes_gcm_128; + struct tls12_crypto_info_aes_gcm_256 aes_gcm_256; + struct tls12_crypto_info_chacha20_poly1305 chacha20_poly1305; + }; +}; + struct tls_context { struct tls_prot_info prot_info; u8 tx_conf: 3; @@ -86289,7 +119447,7 @@ typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); -typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(void); typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); @@ -86361,14 +119519,24 @@ typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); + typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); +typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); + typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); + typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); @@ -86387,6 +119555,10 @@ typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup * typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); + +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); + typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); @@ -86403,6 +119575,12 @@ typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); + typedef u64 (*btf_bpf_sk_release)(struct sock *); typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); @@ -86453,7 +119631,7 @@ typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); -struct bpf_dtab_netdev; +typedef u64 (*btf_bpf_sock_from_file)(struct file *); enum { INET_DIAG_REQ_NONE = 0, @@ -86514,6 +119692,11 @@ enum hwtstamp_rx_filters { __HWTSTAMP_FILTER_CNT = 16, }; +struct compat_ifconf { + compat_int_t ifc_len; + compat_caddr_t ifcbuf; +}; + struct tso_t { int next_frag_idx; int size; @@ -86547,6 +119730,12 @@ struct fib_notifier_net { struct atomic_notifier_head fib_chain; }; +struct xdp_frame_bulk { + int count; + void *xa; + void *q[16]; +}; + struct xdp_attachment_info { struct bpf_prog *prog; u32 flags; @@ -86554,6 +119743,8 @@ struct xdp_attachment_info { struct xdp_buff_xsk; +struct xdp_desc; + struct xsk_buff_pool { struct device *dev; struct net_device *netdev; @@ -86572,6 +119763,7 @@ struct xsk_buff_pool { struct xsk_queue *cq; dma_addr_t *dma_pages; struct xdp_buff_xsk *heads; + struct xdp_desc *tx_descs; u64 chunk_mask; u64 addrs_cnt; u32 free_list_cnt; @@ -86590,54 +119782,12 @@ struct xsk_buff_pool { long: 64; long: 64; long: 64; - long: 64; }; -struct pp_alloc_cache { - u32 count; - void *cache[128]; -}; - -struct page_pool_params { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; -}; - -struct page_pool { - struct page_pool_params p; - struct delayed_work release_dw; - void (*disconnect)(void *); - long unsigned int defer_start; - long unsigned int defer_warn; - u32 pages_state_hold_cnt; - long: 64; - long: 64; - long: 64; - long: 64; - struct pp_alloc_cache alloc; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct ptr_ring ring; - atomic_t pages_state_release_cnt; - refcount_t user_cnt; - u64 destroy_cnt; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; }; struct xdp_buff_xsk { @@ -86650,12 +119800,6 @@ struct xdp_buff_xsk { struct list_head free_list_node; }; -struct flow_match { - struct flow_dissector *dissector; - void *mask; - void *key; -}; - struct flow_match_meta { struct flow_dissector_key_meta *key; struct flow_dissector_key_meta *mask; @@ -86731,159 +119875,6 @@ struct flow_match_ct { struct flow_dissector_key_ct *mask; }; -enum flow_action_id { - FLOW_ACTION_ACCEPT = 0, - FLOW_ACTION_DROP = 1, - FLOW_ACTION_TRAP = 2, - FLOW_ACTION_GOTO = 3, - FLOW_ACTION_REDIRECT = 4, - FLOW_ACTION_MIRRED = 5, - FLOW_ACTION_REDIRECT_INGRESS = 6, - FLOW_ACTION_MIRRED_INGRESS = 7, - FLOW_ACTION_VLAN_PUSH = 8, - FLOW_ACTION_VLAN_POP = 9, - FLOW_ACTION_VLAN_MANGLE = 10, - FLOW_ACTION_TUNNEL_ENCAP = 11, - FLOW_ACTION_TUNNEL_DECAP = 12, - FLOW_ACTION_MANGLE = 13, - FLOW_ACTION_ADD = 14, - FLOW_ACTION_CSUM = 15, - FLOW_ACTION_MARK = 16, - FLOW_ACTION_PTYPE = 17, - FLOW_ACTION_PRIORITY = 18, - FLOW_ACTION_WAKE = 19, - FLOW_ACTION_QUEUE = 20, - FLOW_ACTION_SAMPLE = 21, - FLOW_ACTION_POLICE = 22, - FLOW_ACTION_CT = 23, - FLOW_ACTION_CT_METADATA = 24, - FLOW_ACTION_MPLS_PUSH = 25, - FLOW_ACTION_MPLS_POP = 26, - FLOW_ACTION_MPLS_MANGLE = 27, - FLOW_ACTION_GATE = 28, - NUM_FLOW_ACTIONS = 29, -}; - -enum flow_action_mangle_base { - FLOW_ACT_MANGLE_UNSPEC = 0, - FLOW_ACT_MANGLE_HDR_TYPE_ETH = 1, - FLOW_ACT_MANGLE_HDR_TYPE_IP4 = 2, - FLOW_ACT_MANGLE_HDR_TYPE_IP6 = 3, - FLOW_ACT_MANGLE_HDR_TYPE_TCP = 4, - FLOW_ACT_MANGLE_HDR_TYPE_UDP = 5, -}; - -enum flow_action_hw_stats { - FLOW_ACTION_HW_STATS_IMMEDIATE = 1, - FLOW_ACTION_HW_STATS_DELAYED = 2, - FLOW_ACTION_HW_STATS_ANY = 3, - FLOW_ACTION_HW_STATS_DISABLED = 4, - FLOW_ACTION_HW_STATS_DONT_CARE = 7, -}; - -typedef void (*action_destr)(void *); - -struct flow_action_cookie { - u32 cookie_len; - u8 cookie[0]; -}; - -struct nf_flowtable; - -struct psample_group; - -struct action_gate_entry; - -struct flow_action_entry { - enum flow_action_id id; - enum flow_action_hw_stats hw_stats; - action_destr destructor; - void *destructor_priv; - union { - u32 chain_index; - struct net_device *dev; - struct { - u16 vid; - __be16 proto; - u8 prio; - } vlan; - struct { - enum flow_action_mangle_base htype; - u32 offset; - u32 mask; - u32 val; - } mangle; - struct ip_tunnel_info *tunnel; - u32 csum_flags; - u32 mark; - u16 ptype; - u32 priority; - struct { - u32 ctx; - u32 index; - u8 vf; - } queue; - struct { - struct psample_group *psample_group; - u32 rate; - u32 trunc_size; - bool truncate; - } sample; - struct { - u32 index; - u32 burst; - u64 rate_bytes_ps; - u32 mtu; - } police; - struct { - int action; - u16 zone; - struct nf_flowtable *flow_table; - } ct; - struct { - long unsigned int cookie; - u32 mark; - u32 labels[4]; - } ct_metadata; - struct { - u32 label; - __be16 proto; - u8 tc; - u8 bos; - u8 ttl; - } mpls_push; - struct { - __be16 proto; - } mpls_pop; - struct { - u32 label; - u8 tc; - u8 bos; - u8 ttl; - } mpls_mangle; - struct { - u32 index; - s32 prio; - u64 basetime; - u64 cycletime; - u64 cycletimeext; - u32 num_entries; - struct action_gate_entry *entries; - } gate; - }; - struct flow_action_cookie *cookie; -}; - -struct flow_action { - unsigned int num_entries; - struct flow_action_entry entries[0]; -}; - -struct flow_rule { - struct flow_match match; - struct flow_action action; -}; - enum flow_block_command { FLOW_BLOCK_BIND = 0, FLOW_BLOCK_UNBIND = 1, @@ -86941,7 +119932,6 @@ struct flow_indr_dev { flow_indr_block_bind_cb_t *cb; void *cb_priv; refcount_t refcnt; - struct callback_head rcu; }; struct flow_indir_dev_info { @@ -86968,68 +119958,6 @@ struct netdev_queue_attribute { ssize_t (*store)(struct netdev_queue *, const char *, size_t); }; -enum __sk_action { - __SK_DROP = 0, - __SK_PASS = 1, - __SK_REDIRECT = 2, - __SK_NONE = 3, -}; - -struct sk_psock_progs { - struct bpf_prog *msg_parser; - struct bpf_prog *skb_parser; - struct bpf_prog *skb_verdict; -}; - -enum sk_psock_state_bits { - SK_PSOCK_TX_ENABLED = 0, -}; - -struct sk_psock_link { - struct list_head list; - struct bpf_map *map; - void *link_raw; -}; - -struct sk_psock_parser { - struct strparser strp; - bool enabled; - void (*saved_data_ready)(struct sock *); -}; - -struct sk_psock_work_state { - struct sk_buff *skb; - u32 len; - u32 off; -}; - -struct sk_psock { - struct sock *sk; - struct sock *sk_redir; - u32 apply_bytes; - u32 cork_bytes; - u32 eval; - struct sk_msg *cork; - struct sk_psock_progs progs; - struct sk_psock_parser parser; - struct sk_buff_head ingress_skb; - struct list_head ingress_msg; - long unsigned int state; - struct list_head link; - spinlock_t link_lock; - refcount_t refcnt; - void (*saved_unhash)(struct sock *); - void (*saved_close)(struct sock *, long int); - void (*saved_write_space)(struct sock *); - struct proto *sk_proto; - struct sk_psock_work_state work_state; - struct work_struct work; - union { - struct callback_head rcu; - struct work_struct gc; - }; -}; - struct inet6_ifaddr { struct in6_addr addr; __u32 prefix_len; @@ -87117,6 +120045,7 @@ struct trace_event_raw_kfree_skb { void *skbaddr; void *location; short unsigned int protocol; + enum skb_drop_reason reason; char __data[0]; }; @@ -87139,7 +120068,7 @@ struct trace_event_data_offsets_consume_skb {}; struct trace_event_data_offsets_skb_copy_datagram_iovec {}; -typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *); +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *); @@ -87342,18 +120271,36 @@ struct trace_event_raw_inet_sock_set_state { char __data[0]; }; +struct trace_event_raw_inet_sk_error_report { + struct trace_entry ent; + int error; + __u16 sport; + __u16 dport; + __u16 family; + __u16 protocol; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + char __data[0]; +}; + struct trace_event_data_offsets_sock_rcvqueue_full {}; struct trace_event_data_offsets_sock_exceed_buf_limit {}; struct trace_event_data_offsets_inet_sock_set_state {}; +struct trace_event_data_offsets_inet_sk_error_report {}; + typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long int, int); typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); +typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); + struct trace_event_raw_udp_fail_queue_rcv_skb { struct trace_entry ent; int rc; @@ -87372,6 +120319,7 @@ struct trace_event_raw_tcp_event_sk_skb { int state; __u16 sport; __u16 dport; + __u16 family; __u8 saddr[4]; __u8 daddr[4]; __u8 saddr_v6[16]; @@ -87384,6 +120332,7 @@ struct trace_event_raw_tcp_event_sk { const void *skaddr; __u16 sport; __u16 dport; + __u16 family; __u8 saddr[4]; __u8 daddr[4]; __u8 saddr_v6[16]; @@ -87398,6 +120347,7 @@ struct trace_event_raw_tcp_retransmit_synack { const void *req; __u16 sport; __u16 dport; + __u16 family; __u8 saddr[4]; __u8 daddr[4]; __u8 saddr_v6[16]; @@ -87411,6 +120361,7 @@ struct trace_event_raw_tcp_probe { __u8 daddr[28]; __u16 sport; __u16 dport; + __u16 family; __u32 mark; __u16 data_len; __u32 snd_nxt; @@ -87424,6 +120375,14 @@ struct trace_event_raw_tcp_probe { char __data[0]; }; +struct trace_event_raw_tcp_event_skb { + struct trace_entry ent; + const void *skbaddr; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; +}; + struct trace_event_data_offsets_tcp_event_sk_skb {}; struct trace_event_data_offsets_tcp_event_sk {}; @@ -87432,6 +120391,8 @@ struct trace_event_data_offsets_tcp_retransmit_synack {}; struct trace_event_data_offsets_tcp_probe {}; +struct trace_event_data_offsets_tcp_event_skb {}; + typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *); @@ -87446,6 +120407,8 @@ typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, con typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); +typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); + struct trace_event_raw_fib_table_lookup { struct trace_entry ent; u32 tb_id; @@ -87485,6 +120448,17 @@ struct trace_event_raw_qdisc_dequeue { char __data[0]; }; +struct trace_event_raw_qdisc_enqueue { + struct trace_entry ent; + struct Qdisc *qdisc; + const struct netdev_queue *txq; + void *skbaddr; + int ifindex; + u32 handle; + u32 parent; + char __data[0]; +}; + struct trace_event_raw_qdisc_reset { struct trace_entry ent; u32 __data_loc_dev; @@ -87513,6 +120487,8 @@ struct trace_event_raw_qdisc_create { struct trace_event_data_offsets_qdisc_dequeue {}; +struct trace_event_data_offsets_qdisc_enqueue {}; + struct trace_event_data_offsets_qdisc_reset { u32 dev; u32 kind; @@ -87530,6 +120506,8 @@ struct trace_event_data_offsets_qdisc_create { typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); +typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); + typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); @@ -87572,6 +120550,7 @@ struct br_ip { union { __be32 ip4; struct in6_addr ip6; + unsigned char mac_addr[6]; } dst; __be16 proto; __u16 vid; @@ -87599,22 +120578,40 @@ struct bridge_mcast_own_query { struct bridge_mcast_other_query { struct timer_list timer; - long unsigned int delay_time; + struct timer_list delay_timer; +}; + +struct bridge_mcast_querier { + struct br_ip addr; + int port_ifidx; + seqcount_spinlock_t seq; +}; + +struct bridge_mcast_stats { + struct br_mcast_stats mstats; + struct u64_stats_sync syncp; }; struct net_bridge_port; -struct bridge_mcast_querier { - struct br_ip addr; +struct net_bridge_vlan; + +struct net_bridge_mcast_port { struct net_bridge_port *port; + struct net_bridge_vlan *vlan; + struct bridge_mcast_own_query ip4_own_query; + struct timer_list ip4_mc_router_timer; + struct hlist_node ip4_rlist; + struct bridge_mcast_own_query ip6_own_query; + struct timer_list ip6_mc_router_timer; + struct hlist_node ip6_rlist; + unsigned char multicast_router; }; struct net_bridge; struct net_bridge_vlan_group; -struct bridge_mcast_stats; - struct net_bridge_port { struct net_bridge *br; struct net_device *dev; @@ -87639,37 +120636,89 @@ struct net_bridge_port { struct timer_list message_age_timer; struct kobject kobj; struct callback_head rcu; - struct bridge_mcast_own_query ip4_own_query; - struct bridge_mcast_own_query ip6_own_query; - unsigned char multicast_router; + struct net_bridge_mcast_port multicast_ctx; struct bridge_mcast_stats *mcast_stats; - struct timer_list multicast_router_timer; + u32 multicast_eht_hosts_limit; + u32 multicast_eht_hosts_cnt; struct hlist_head mglist; - struct hlist_node rlist; char sysfs_name[16]; struct netpoll *np; - int offload_fwd_mark; + int hwdom; + int offload_count; + struct netdev_phys_item_id ppid; u16 group_fwd_mask; u16 backup_redirected_cnt; struct bridge_stp_xstats stp_xstats; }; -struct bridge_mcast_stats { - struct br_mcast_stats mstats; - struct u64_stats_sync syncp; +struct br_tunnel_info { + __be64 tunnel_id; + struct metadata_dst *tunnel_dst; +}; + +struct net_bridge_mcast { + struct net_bridge *br; + struct net_bridge_vlan *vlan; + u32 multicast_last_member_count; + u32 multicast_startup_query_count; + u8 multicast_querier; + u8 multicast_igmp_version; + u8 multicast_router; + u8 multicast_mld_version; + long unsigned int multicast_last_member_interval; + long unsigned int multicast_membership_interval; + long unsigned int multicast_querier_interval; + long unsigned int multicast_query_interval; + long unsigned int multicast_query_response_interval; + long unsigned int multicast_startup_query_interval; + struct hlist_head ip4_mc_router_list; + struct timer_list ip4_mc_router_timer; + struct bridge_mcast_other_query ip4_other_query; + struct bridge_mcast_own_query ip4_own_query; + struct bridge_mcast_querier ip4_querier; + struct hlist_head ip6_mc_router_list; + struct timer_list ip6_mc_router_timer; + struct bridge_mcast_other_query ip6_other_query; + struct bridge_mcast_own_query ip6_own_query; + struct bridge_mcast_querier ip6_querier; +}; + +struct net_bridge_vlan { + struct rhash_head vnode; + struct rhash_head tnode; + u16 vid; + u16 flags; + u16 priv_flags; + u8 state; + struct pcpu_sw_netstats *stats; + union { + struct net_bridge *br; + struct net_bridge_port *port; + }; + union { + refcount_t refcnt; + struct net_bridge_vlan *brvlan; + }; + struct br_tunnel_info tinfo; + union { + struct net_bridge_mcast br_mcast_ctx; + struct net_bridge_mcast_port port_mcast_ctx; + }; + struct list_head vlist; + struct callback_head rcu; }; struct net_bridge { spinlock_t lock; spinlock_t hash_lock; - struct list_head port_list; + struct hlist_head frame_type_list; struct net_device *dev; - struct pcpu_sw_netstats *stats; long unsigned int options; __be16 vlan_proto; u16 default_pvid; struct net_bridge_vlan_group *vlgrp; struct rhashtable fdb_hash_tbl; + struct list_head port_list; union { struct rtable fake_rtable; struct rt6_info fake_rt6_info; @@ -87696,32 +120745,14 @@ struct net_bridge { BR_KERNEL_STP = 1, BR_USER_STP = 2, } stp_enabled; + struct net_bridge_mcast multicast_ctx; + struct bridge_mcast_stats *mcast_stats; u32 hash_max; - u32 multicast_last_member_count; - u32 multicast_startup_query_count; - u8 multicast_igmp_version; - u8 multicast_router; - u8 multicast_mld_version; spinlock_t multicast_lock; - long unsigned int multicast_last_member_interval; - long unsigned int multicast_membership_interval; - long unsigned int multicast_querier_interval; - long unsigned int multicast_query_interval; - long unsigned int multicast_query_response_interval; - long unsigned int multicast_startup_query_interval; struct rhashtable mdb_hash_tbl; struct rhashtable sg_port_tbl; struct hlist_head mcast_gc_list; struct hlist_head mdb_list; - struct hlist_head router_list; - struct timer_list multicast_router_timer; - struct bridge_mcast_other_query ip4_other_query; - struct bridge_mcast_own_query ip4_own_query; - struct bridge_mcast_querier ip4_querier; - struct bridge_mcast_stats *mcast_stats; - struct bridge_mcast_other_query ip6_other_query; - struct bridge_mcast_own_query ip6_own_query; - struct bridge_mcast_querier ip6_querier; struct work_struct mcast_gc_work; struct timer_list hello_timer; struct timer_list tcn_timer; @@ -87729,8 +120760,11 @@ struct net_bridge { struct delayed_work gc_work; struct kobject *ifobj; u32 auto_cnt; - int offload_fwd_mark; + int last_hwdom; + long unsigned int busy_hwdoms; struct hlist_head fdb_list; + struct hlist_head mrp_list; + struct hlist_head mep_list; }; struct net_bridge_vlan_group { @@ -87962,30 +120996,181 @@ typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int) typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); -struct clock_identity { - u8 id[8]; +struct net_dm_drop_point { + __u8 pc[8]; + __u32 count; }; -struct port_identity { - struct clock_identity clock_identity; - __be16 port_number; +struct net_dm_alert_msg { + __u32 entries; + struct net_dm_drop_point points[0]; }; -struct ptp_header { - u8 tsmt; - u8 ver; - __be16 message_length; - u8 domain_number; - u8 reserved1; - u8 flag_field[2]; - __be64 correction; - __be32 reserved2; - struct port_identity source_port_identity; - __be16 sequence_id; - u8 control; - u8 log_message_interval; +enum { + NET_DM_CMD_UNSPEC = 0, + NET_DM_CMD_ALERT = 1, + NET_DM_CMD_CONFIG = 2, + NET_DM_CMD_START = 3, + NET_DM_CMD_STOP = 4, + NET_DM_CMD_PACKET_ALERT = 5, + NET_DM_CMD_CONFIG_GET = 6, + NET_DM_CMD_CONFIG_NEW = 7, + NET_DM_CMD_STATS_GET = 8, + NET_DM_CMD_STATS_NEW = 9, + _NET_DM_CMD_MAX = 10, +}; + +enum net_dm_attr { + NET_DM_ATTR_UNSPEC = 0, + NET_DM_ATTR_ALERT_MODE = 1, + NET_DM_ATTR_PC = 2, + NET_DM_ATTR_SYMBOL = 3, + NET_DM_ATTR_IN_PORT = 4, + NET_DM_ATTR_TIMESTAMP = 5, + NET_DM_ATTR_PROTO = 6, + NET_DM_ATTR_PAYLOAD = 7, + NET_DM_ATTR_PAD = 8, + NET_DM_ATTR_TRUNC_LEN = 9, + NET_DM_ATTR_ORIG_LEN = 10, + NET_DM_ATTR_QUEUE_LEN = 11, + NET_DM_ATTR_STATS = 12, + NET_DM_ATTR_HW_STATS = 13, + NET_DM_ATTR_ORIGIN = 14, + NET_DM_ATTR_HW_TRAP_GROUP_NAME = 15, + NET_DM_ATTR_HW_TRAP_NAME = 16, + NET_DM_ATTR_HW_ENTRIES = 17, + NET_DM_ATTR_HW_ENTRY = 18, + NET_DM_ATTR_HW_TRAP_COUNT = 19, + NET_DM_ATTR_SW_DROPS = 20, + NET_DM_ATTR_HW_DROPS = 21, + NET_DM_ATTR_FLOW_ACTION_COOKIE = 22, + __NET_DM_ATTR_MAX = 23, + NET_DM_ATTR_MAX = 22, +}; + +enum net_dm_alert_mode { + NET_DM_ALERT_MODE_SUMMARY = 0, + NET_DM_ALERT_MODE_PACKET = 1, +}; + +enum { + NET_DM_ATTR_PORT_NETDEV_IFINDEX = 0, + NET_DM_ATTR_PORT_NETDEV_NAME = 1, + __NET_DM_ATTR_PORT_MAX = 2, + NET_DM_ATTR_PORT_MAX = 1, +}; + +enum { + NET_DM_ATTR_STATS_DROPPED = 0, + __NET_DM_ATTR_STATS_MAX = 1, + NET_DM_ATTR_STATS_MAX = 0, +}; + +enum net_dm_origin { + NET_DM_ORIGIN_SW = 0, + NET_DM_ORIGIN_HW = 1, +}; + +struct devlink_trap_metadata { + const char *trap_name; + const char *trap_group_name; + struct net_device *input_dev; + const struct flow_action_cookie *fa_cookie; + enum devlink_trap_type trap_type; +}; + +struct net_dm_stats { + u64 dropped; + struct u64_stats_sync syncp; +}; + +struct net_dm_hw_entry { + char trap_name[40]; + u32 count; +}; + +struct net_dm_hw_entries { + u32 num_entries; + struct net_dm_hw_entry entries[0]; +}; + +struct per_cpu_dm_data { + raw_spinlock_t lock; + union { + struct sk_buff *skb; + struct net_dm_hw_entries *hw_entries; + }; + struct sk_buff_head drop_queue; + struct work_struct dm_alert_work; + struct timer_list send_timer; + struct net_dm_stats stats; +}; + +struct dm_hw_stat_delta { + struct net_device *dev; + long unsigned int last_rx; + struct list_head list; + struct callback_head rcu; + long unsigned int last_drop_val; +}; + +struct net_dm_alert_ops { + void (*kfree_skb_probe)(void *, struct sk_buff *, void *, enum skb_drop_reason); + void (*napi_poll_probe)(void *, struct napi_struct *, int, int); + void (*work_item_func)(struct work_struct *); + void (*hw_work_item_func)(struct work_struct *); + void (*hw_trap_probe)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); +}; + +struct net_dm_skb_cb { + union { + struct devlink_trap_metadata *hw_metadata; + void *pc; + }; +}; + +enum ethtool_test_flags { + ETH_TEST_FL_OFFLINE = 1, + ETH_TEST_FL_FAILED = 2, + ETH_TEST_FL_EXTERNAL_LB = 4, + ETH_TEST_FL_EXTERNAL_LB_DONE = 8, +}; + +struct net_packet_attrs { + unsigned char *src; + unsigned char *dst; + u32 ip_src; + u32 ip_dst; + bool tcp; + u16 sport; + u16 dport; + int timeout; + int size; + int max_size; + u8 id; + u16 queue_mapping; +}; + +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; +}; + +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; } __attribute__((packed)); +struct net_test { + char name[32]; + int (*fn)(struct net_device *); +}; + struct update_classid_context { u32 classid; unsigned int batch; @@ -88028,7 +121213,7 @@ enum { enum { LWTUNNEL_XMIT_DONE = 0, - LWTUNNEL_XMIT_CONTINUE = 1, + LWTUNNEL_XMIT_CONTINUE = 256, }; struct bpf_lwt_prog { @@ -88043,79 +121228,6 @@ struct bpf_lwt { int family; }; -struct bpf_stab { - struct bpf_map map; - struct sock **sks; - struct sk_psock_progs progs; - raw_spinlock_t lock; - long: 64; - long: 64; - long: 64; -}; - -typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); - -typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); - -struct sock_map_seq_info { - struct bpf_map *map; - struct sock *sk; - u32 index; -}; - -struct bpf_iter__sockmap { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - struct sock *sk; - }; -}; - -struct bpf_shtab_elem { - struct callback_head rcu; - u32 hash; - struct sock *sk; - struct hlist_node node; - u8 key[0]; -}; - -struct bpf_shtab_bucket { - struct hlist_head head; - raw_spinlock_t lock; -}; - -struct bpf_shtab { - struct bpf_map map; - struct bpf_shtab_bucket *buckets; - u32 buckets_num; - u32 elem_size; - struct sk_psock_progs progs; - atomic_t count; - long: 64; - long: 64; -}; - -typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); - -typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); - -struct sock_hash_seq_info { - struct bpf_map *map; - struct bpf_shtab *htab; - u32 bucket_id; -}; - struct dst_cache_pcpu { long unsigned int refresh_ts; struct dst_entry *dst; @@ -88126,12 +121238,6 @@ struct dst_cache_pcpu { }; }; -struct genl_dumpit_info { - const struct genl_family *family; - struct genl_ops op; - struct nlattr **attrs; -}; - enum devlink_command { DEVLINK_CMD_UNSPEC = 0, DEVLINK_CMD_GET = 1, @@ -88207,8 +121313,12 @@ enum devlink_command { DEVLINK_CMD_TRAP_POLICER_NEW = 71, DEVLINK_CMD_TRAP_POLICER_DEL = 72, DEVLINK_CMD_HEALTH_REPORTER_TEST = 73, - __DEVLINK_CMD_MAX = 74, - DEVLINK_CMD_MAX = 73, + DEVLINK_CMD_RATE_GET = 74, + DEVLINK_CMD_RATE_SET = 75, + DEVLINK_CMD_RATE_NEW = 76, + DEVLINK_CMD_RATE_DEL = 77, + __DEVLINK_CMD_MAX = 78, + DEVLINK_CMD_MAX = 77, }; enum devlink_eswitch_mode { @@ -88216,14 +121326,6 @@ enum devlink_eswitch_mode { DEVLINK_ESWITCH_MODE_SWITCHDEV = 1, }; -enum devlink_param_cmode { - DEVLINK_PARAM_CMODE_RUNTIME = 0, - DEVLINK_PARAM_CMODE_DRIVERINIT = 1, - DEVLINK_PARAM_CMODE_PERMANENT = 2, - __DEVLINK_PARAM_CMODE_MAX = 3, - DEVLINK_PARAM_CMODE_MAX = 2, -}; - enum { DEVLINK_ATTR_STATS_RX_PACKETS = 0, DEVLINK_ATTR_STATS_RX_BYTES = 1, @@ -88409,8 +121511,14 @@ enum devlink_attr { DEVLINK_ATTR_REMOTE_RELOAD_STATS = 161, DEVLINK_ATTR_RELOAD_ACTION_INFO = 162, DEVLINK_ATTR_RELOAD_ACTION_STATS = 163, - __DEVLINK_ATTR_MAX = 164, - DEVLINK_ATTR_MAX = 163, + DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 164, + DEVLINK_ATTR_RATE_TYPE = 165, + DEVLINK_ATTR_RATE_TX_SHARE = 166, + DEVLINK_ATTR_RATE_TX_MAX = 167, + DEVLINK_ATTR_RATE_NODE_NAME = 168, + DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 169, + __DEVLINK_ATTR_MAX = 170, + DEVLINK_ATTR_MAX = 169, }; enum devlink_dpipe_match_type { @@ -88446,8 +121554,10 @@ enum devlink_resource_unit { enum devlink_port_function_attr { DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0, DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 1, - __DEVLINK_PORT_FUNCTION_ATTR_MAX = 2, - DEVLINK_PORT_FUNCTION_ATTR_MAX = 1, + DEVLINK_PORT_FN_ATTR_STATE = 2, + DEVLINK_PORT_FN_ATTR_OPSTATE = 3, + __DEVLINK_PORT_FUNCTION_ATTR_MAX = 4, + DEVLINK_PORT_FUNCTION_ATTR_MAX = 3, }; struct devlink_dpipe_match { @@ -88548,19 +121658,6 @@ enum devlink_param_type { DEVLINK_PARAM_TYPE_BOOL = 4, }; -union devlink_param_value { - u8 vu8; - u16 vu16; - u32 vu32; - char vstr[32]; - bool vbool; -}; - -struct devlink_param_gset_ctx { - union devlink_param_value val; - enum devlink_param_cmode cmode; -}; - struct devlink_flash_notify { const char *status_msg; const char *component; @@ -88600,8 +121697,11 @@ enum devlink_param_generic_id { DEVLINK_PARAM_GENERIC_ID_RESET_DEV_ON_DRV_PROBE = 8, DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE = 9, DEVLINK_PARAM_GENERIC_ID_ENABLE_REMOTE_DEV_RESET = 10, - __DEVLINK_PARAM_GENERIC_ID_MAX = 11, - DEVLINK_PARAM_GENERIC_ID_MAX = 10, + DEVLINK_PARAM_GENERIC_ID_ENABLE_ETH = 11, + DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA = 12, + DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET = 13, + __DEVLINK_PARAM_GENERIC_ID_MAX = 14, + DEVLINK_PARAM_GENERIC_ID_MAX = 13, }; struct devlink_region_ops { @@ -88660,14 +121760,6 @@ struct devlink_fmsg { bool putting_binary; }; -struct devlink_trap_metadata { - const char *trap_name; - const char *trap_group_name; - struct net_device *input_dev; - const struct flow_action_cookie *fa_cookie; - enum devlink_trap_type trap_type; -}; - enum devlink_trap_generic_id { DEVLINK_TRAP_GENERIC_ID_SMAC_MC = 0, DEVLINK_TRAP_GENERIC_ID_VLAN_TAG_MISMATCH = 1, @@ -88759,8 +121851,10 @@ enum devlink_trap_generic_id { DEVLINK_TRAP_GENERIC_ID_DCCP_PARSING = 87, DEVLINK_TRAP_GENERIC_ID_GTP_PARSING = 88, DEVLINK_TRAP_GENERIC_ID_ESP_PARSING = 89, - __DEVLINK_TRAP_GENERIC_ID_MAX = 90, - DEVLINK_TRAP_GENERIC_ID_MAX = 89, + DEVLINK_TRAP_GENERIC_ID_BLACKHOLE_NEXTHOP = 90, + DEVLINK_TRAP_GENERIC_ID_DMAC_FILTER = 91, + __DEVLINK_TRAP_GENERIC_ID_MAX = 92, + DEVLINK_TRAP_GENERIC_ID_MAX = 91, }; enum devlink_trap_group_generic_id { @@ -89007,6 +122101,95 @@ struct gro_cell { struct napi_struct napi; }; +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, +}; + +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, +}; + +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; +}; + +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + raw_spinlock_t lock; + long: 64; + long: 64; +}; + +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); + +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; +}; + +struct bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; +}; + +struct bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; +}; + +struct bpf_shtab_bucket { + struct hlist_head head; + raw_spinlock_t lock; +}; + +struct bpf_shtab { + struct bpf_map map; + struct bpf_shtab_bucket *buckets; + u32 buckets_num; + u32 elem_size; + struct sk_psock_progs progs; + atomic_t count; + long: 64; +}; + +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); + +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; +}; + enum { SK_DIAG_BPF_STORAGE_REQ_NONE = 0, SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, @@ -89031,6 +122214,10 @@ typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64); + +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); + struct bpf_sk_storage_diag { u32 nr_maps; struct bpf_map *maps[0]; @@ -89063,10 +122250,6 @@ struct compat_cmsghdr { compat_int_t cmsg_type; }; -typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); - -struct nvmem_cell; - struct fch_hdr { __u8 daddr[6]; __u8 saddr[6]; @@ -89112,43 +122295,6 @@ struct fddihdr { } hdr; } __attribute__((packed)); -struct hippi_fp_hdr { - __be32 fixed; - __be32 d2_size; -}; - -struct hippi_le_hdr { - __u8 message_type: 4; - __u8 double_wide: 1; - __u8 fc: 3; - __u8 dest_switch_addr[3]; - __u8 src_addr_type: 4; - __u8 dest_addr_type: 4; - __u8 src_switch_addr[3]; - __u16 reserved; - __u8 daddr[6]; - __u16 locally_administered; - __u8 saddr[6]; -}; - -struct hippi_snap_hdr { - __u8 dsap; - __u8 ssap; - __u8 ctrl; - __u8 oui[3]; - __be16 ethertype; -}; - -struct hippi_hdr { - struct hippi_fp_hdr fp; - struct hippi_le_hdr le; - struct hippi_snap_hdr snap; -}; - -struct hippi_cb { - __u32 ifield; -}; - enum macvlan_mode { MACVLAN_MODE_PRIVATE = 1, MACVLAN_MODE_VEPA = 2, @@ -89171,26 +122317,6 @@ struct tc_prio_qopt { __u8 priomap[16]; }; -enum { - TCA_UNSPEC = 0, - TCA_KIND = 1, - TCA_OPTIONS = 2, - TCA_STATS = 3, - TCA_XSTATS = 4, - TCA_RATE = 5, - TCA_FCNT = 6, - TCA_STATS2 = 7, - TCA_STAB = 8, - TCA_PAD = 9, - TCA_DUMP_INVISIBLE = 10, - TCA_CHAIN = 11, - TCA_HW_OFFLOAD = 12, - TCA_INGRESS_BLOCK = 13, - TCA_EGRESS_BLOCK = 14, - TCA_DUMP_FLAGS = 15, - __TCA_MAX = 16, -}; - struct vlan_pcpu_stats { u64 rx_packets; u64 rx_bytes; @@ -89202,8 +122328,6 @@ struct vlan_pcpu_stats { u32 tx_dropped; }; -struct netpoll; - struct skb_array { struct ptr_ring ring; }; @@ -89223,6 +122347,7 @@ struct macvlan_dev { enum macvlan_mode mode; u16 flags; unsigned int macaddr_count; + u32 bc_queue_len_req; struct netpoll *netpoll; }; @@ -89235,6 +122360,12 @@ struct psched_ratecfg { u8 shift; }; +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; + struct mini_Qdisc_pair { struct mini_Qdisc miniq1; struct mini_Qdisc miniq2; @@ -89275,6 +122406,17 @@ struct mq_sched { struct Qdisc **qdiscs; }; +struct sch_frag_data { + long unsigned int dst; + struct qdisc_skb_cb cb; + __be16 inner_protocol; + u16 vlan_tci; + __be16 vlan_proto; + unsigned int l2_len; + u8 l2_data[18]; + int (*xmit)(struct sk_buff *); +}; + enum tc_link_layer { TC_LINKLAYER_UNAWARE = 0, TC_LINKLAYER_ETHERNET = 1, @@ -89474,7 +122616,7 @@ struct tc_action_ops { int (*dump)(struct sk_buff *, struct tc_action *, int, int); void (*cleanup)(struct tc_action *); int (*lookup)(struct net *, struct tc_action **, u32); - int (*init)(struct net *, struct nlattr *, struct nlattr *, struct tc_action **, int, int, bool, struct tcf_proto *, u32, struct netlink_ext_ack *); + int (*init)(struct net *, struct nlattr *, struct nlattr *, struct tc_action **, struct tcf_proto *, u32, struct netlink_ext_ack *); int (*walk)(struct net *, struct sk_buff *, struct netlink_callback *, int, const struct tc_action_ops *, struct netlink_ext_ack *); void (*stats_update)(struct tc_action *, u64, u64, u64, u64, bool); size_t (*get_fill_size)(const struct tc_action *); @@ -89540,13 +122682,18 @@ struct tcf_pedit_key_ex { enum pedit_cmd cmd; }; -struct tcf_pedit { - struct tc_action common; - unsigned char tcfp_nkeys; - unsigned char tcfp_flags; - u32 tcfp_off_max_hint; +struct tcf_pedit_parms { struct tc_pedit_key *tcfp_keys; struct tcf_pedit_key_ex *tcfp_keys_ex; + u32 tcfp_off_max_hint; + unsigned char tcfp_nkeys; + unsigned char tcfp_flags; + struct callback_head rcu; +}; + +struct tcf_pedit { + struct tc_action common; + struct tcf_pedit_parms *parms; }; struct tcf_mirred { @@ -89608,10 +122755,13 @@ struct tcf_police_params { s64 tcfp_burst; u32 tcfp_mtu; s64 tcfp_mtu_ptoks; + s64 tcfp_pkt_burst; struct psched_ratecfg rate; bool rate_present; struct psched_ratecfg peak; bool peak_present; + struct psched_pktrate ppsrate; + bool pps_present; struct callback_head rcu; }; @@ -89628,11 +122778,11 @@ struct tcf_police { spinlock_t tcfp_lock; s64 tcfp_toks; s64 tcfp_ptoks; + s64 tcfp_pkttoks; s64 tcfp_t_c; long: 64; long: 64; long: 64; - long: 64; }; struct tcf_sample { @@ -89907,6 +123057,18 @@ struct netlink_tap { struct list_head list; }; +struct trace_event_raw_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_data_offsets_netlink_extack { + u32 msg; +}; + +typedef void (*btf_trace_netlink_extack)(void *, const char *); + struct netlink_sock { struct sock sk; u32 portid; @@ -90206,26 +123368,6 @@ enum phy_tunable_id { __ETHTOOL_PHY_TUNABLE_COUNT = 4, }; -enum ethtool_stringset { - ETH_SS_TEST = 0, - ETH_SS_STATS = 1, - ETH_SS_PRIV_FLAGS = 2, - ETH_SS_NTUPLE_FILTERS = 3, - ETH_SS_FEATURES = 4, - ETH_SS_RSS_HASH_FUNCS = 5, - ETH_SS_TUNABLES = 6, - ETH_SS_PHY_STATS = 7, - ETH_SS_PHY_TUNABLES = 8, - ETH_SS_LINK_MODES = 9, - ETH_SS_MSG_CLASSES = 10, - ETH_SS_WOL_MODES = 11, - ETH_SS_SOF_TIMESTAMPING = 12, - ETH_SS_TS_TX_TYPES = 13, - ETH_SS_TS_RX_FILTERS = 14, - ETH_SS_UDP_TUNNEL_TYPES = 15, - ETH_SS_COUNT = 16, -}; - struct ethtool_gstrings { __u32 cmd; __u32 string_set; @@ -90302,6 +123444,15 @@ struct ethtool_per_queue_op { char data[0]; }; +enum ethtool_fec_config_bits { + ETHTOOL_FEC_NONE_BIT = 0, + ETHTOOL_FEC_AUTO_BIT = 1, + ETHTOOL_FEC_OFF_BIT = 2, + ETHTOOL_FEC_RS_BIT = 3, + ETHTOOL_FEC_BASER_BIT = 4, + ETHTOOL_FEC_LLRS_BIT = 5, +}; + struct compat_ethtool_rx_flow_spec { u32 flow_type; union ethtool_flow_union h_u; @@ -90338,49 +123489,6 @@ struct ethtool_rx_flow_spec_input { u32 rss_ctx; }; -struct ethtool_phy_ops { - int (*get_sset_count)(struct phy_device *); - int (*get_strings)(struct phy_device *, u8 *); - int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *); - int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *); -}; - -enum { - ETHTOOL_MSG_KERNEL_NONE = 0, - ETHTOOL_MSG_STRSET_GET_REPLY = 1, - ETHTOOL_MSG_LINKINFO_GET_REPLY = 2, - ETHTOOL_MSG_LINKINFO_NTF = 3, - ETHTOOL_MSG_LINKMODES_GET_REPLY = 4, - ETHTOOL_MSG_LINKMODES_NTF = 5, - ETHTOOL_MSG_LINKSTATE_GET_REPLY = 6, - ETHTOOL_MSG_DEBUG_GET_REPLY = 7, - ETHTOOL_MSG_DEBUG_NTF = 8, - ETHTOOL_MSG_WOL_GET_REPLY = 9, - ETHTOOL_MSG_WOL_NTF = 10, - ETHTOOL_MSG_FEATURES_GET_REPLY = 11, - ETHTOOL_MSG_FEATURES_SET_REPLY = 12, - ETHTOOL_MSG_FEATURES_NTF = 13, - ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 14, - ETHTOOL_MSG_PRIVFLAGS_NTF = 15, - ETHTOOL_MSG_RINGS_GET_REPLY = 16, - ETHTOOL_MSG_RINGS_NTF = 17, - ETHTOOL_MSG_CHANNELS_GET_REPLY = 18, - ETHTOOL_MSG_CHANNELS_NTF = 19, - ETHTOOL_MSG_COALESCE_GET_REPLY = 20, - ETHTOOL_MSG_COALESCE_NTF = 21, - ETHTOOL_MSG_PAUSE_GET_REPLY = 22, - ETHTOOL_MSG_PAUSE_NTF = 23, - ETHTOOL_MSG_EEE_GET_REPLY = 24, - ETHTOOL_MSG_EEE_NTF = 25, - ETHTOOL_MSG_TSINFO_GET_REPLY = 26, - ETHTOOL_MSG_CABLE_TEST_NTF = 27, - ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 28, - ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 29, - __ETHTOOL_MSG_KERNEL_CNT = 30, - ETHTOOL_MSG_KERNEL_MAX = 29, -}; - struct ethtool_link_usettings { struct ethtool_link_settings base; struct { @@ -90416,6 +123524,12 @@ enum { __ETHTOOL_UDP_TUNNEL_TYPE_CNT = 3, }; +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; +}; + enum { ETHTOOL_MSG_USER_NONE = 0, ETHTOOL_MSG_STRSET_GET = 1, @@ -90446,8 +123560,13 @@ enum { ETHTOOL_MSG_CABLE_TEST_ACT = 26, ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 27, ETHTOOL_MSG_TUNNEL_INFO_GET = 28, - __ETHTOOL_MSG_USER_CNT = 29, - ETHTOOL_MSG_USER_MAX = 28, + ETHTOOL_MSG_FEC_GET = 29, + ETHTOOL_MSG_FEC_SET = 30, + ETHTOOL_MSG_MODULE_EEPROM_GET = 31, + ETHTOOL_MSG_STATS_GET = 32, + ETHTOOL_MSG_PHC_VCLOCKS_GET = 33, + __ETHTOOL_MSG_USER_CNT = 34, + ETHTOOL_MSG_USER_MAX = 33, }; enum { @@ -90490,8 +123609,9 @@ enum { ETHTOOL_A_LINKMODES_DUPLEX = 6, ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 7, ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 8, - __ETHTOOL_A_LINKMODES_CNT = 9, - ETHTOOL_A_LINKMODES_MAX = 8, + ETHTOOL_A_LINKMODES_LANES = 9, + __ETHTOOL_A_LINKMODES_CNT = 10, + ETHTOOL_A_LINKMODES_MAX = 9, }; enum { @@ -90597,8 +123717,10 @@ enum { ETHTOOL_A_COALESCE_TX_USECS_HIGH = 21, ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 22, ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 23, - __ETHTOOL_A_COALESCE_CNT = 24, - ETHTOOL_A_COALESCE_MAX = 23, + ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 24, + ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 25, + __ETHTOOL_A_COALESCE_CNT = 26, + ETHTOOL_A_COALESCE_MAX = 25, }; enum { @@ -90636,6 +123758,15 @@ enum { ETHTOOL_A_TSINFO_MAX = 5, }; +enum { + ETHTOOL_A_PHC_VCLOCKS_UNSPEC = 0, + ETHTOOL_A_PHC_VCLOCKS_HEADER = 1, + ETHTOOL_A_PHC_VCLOCKS_NUM = 2, + ETHTOOL_A_PHC_VCLOCKS_INDEX = 3, + __ETHTOOL_A_PHC_VCLOCKS_CNT = 4, + ETHTOOL_A_PHC_VCLOCKS_MAX = 3, +}; + enum { ETHTOOL_A_CABLE_TEST_UNSPEC = 0, ETHTOOL_A_CABLE_TEST_HEADER = 1, @@ -90659,6 +123790,98 @@ enum { ETHTOOL_A_TUNNEL_INFO_MAX = 2, }; +enum { + ETHTOOL_A_FEC_UNSPEC = 0, + ETHTOOL_A_FEC_HEADER = 1, + ETHTOOL_A_FEC_MODES = 2, + ETHTOOL_A_FEC_AUTO = 3, + ETHTOOL_A_FEC_ACTIVE = 4, + ETHTOOL_A_FEC_STATS = 5, + __ETHTOOL_A_FEC_CNT = 6, + ETHTOOL_A_FEC_MAX = 5, +}; + +enum { + ETHTOOL_A_MODULE_EEPROM_UNSPEC = 0, + ETHTOOL_A_MODULE_EEPROM_HEADER = 1, + ETHTOOL_A_MODULE_EEPROM_OFFSET = 2, + ETHTOOL_A_MODULE_EEPROM_LENGTH = 3, + ETHTOOL_A_MODULE_EEPROM_PAGE = 4, + ETHTOOL_A_MODULE_EEPROM_BANK = 5, + ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS = 6, + ETHTOOL_A_MODULE_EEPROM_DATA = 7, + __ETHTOOL_A_MODULE_EEPROM_CNT = 8, + ETHTOOL_A_MODULE_EEPROM_MAX = 7, +}; + +enum { + ETHTOOL_A_STATS_UNSPEC = 0, + ETHTOOL_A_STATS_PAD = 1, + ETHTOOL_A_STATS_HEADER = 2, + ETHTOOL_A_STATS_GROUPS = 3, + ETHTOOL_A_STATS_GRP = 4, + __ETHTOOL_A_STATS_CNT = 5, + ETHTOOL_A_STATS_MAX = 4, +}; + +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + __ETHTOOL_STATS_CNT = 4, +}; + +enum { + ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +}; + +enum { + ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT = 0, + ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL = 1, + ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL = 2, + ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT = 3, + ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR = 4, + ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR = 5, + ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES = 6, + ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER = 7, + ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL = 8, + ETHTOOL_A_STATS_ETH_MAC_11_XS_COL = 9, + ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR = 10, + ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR = 11, + ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES = 12, + ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR = 13, + ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST = 14, + ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST = 15, + ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER = 16, + ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST = 17, + ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST = 18, + ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR = 19, + ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN = 20, + ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR = 21, + __ETHTOOL_A_STATS_ETH_MAC_CNT = 22, + ETHTOOL_A_STATS_ETH_MAC_MAX = 21, +}; + +enum { + ETHTOOL_A_STATS_ETH_CTRL_3_TX = 0, + ETHTOOL_A_STATS_ETH_CTRL_4_RX = 1, + ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP = 2, + __ETHTOOL_A_STATS_ETH_CTRL_CNT = 3, + ETHTOOL_A_STATS_ETH_CTRL_MAX = 2, +}; + +enum { + ETHTOOL_A_STATS_RMON_UNDERSIZE = 0, + ETHTOOL_A_STATS_RMON_OVERSIZE = 1, + ETHTOOL_A_STATS_RMON_FRAG = 2, + ETHTOOL_A_STATS_RMON_JABBER = 3, + __ETHTOOL_A_STATS_RMON_CNT = 4, + ETHTOOL_A_STATS_RMON_MAX = 3, +}; + enum ethtool_multicast_groups { ETHNL_MCGRP_MONITOR = 0, }; @@ -90771,7 +123994,7 @@ struct strset_req_info { struct strset_reply_data { struct ethnl_reply_data base; - struct strset_info sets[16]; + struct strset_info sets[21]; }; struct linkinfo_reply_data { @@ -90787,11 +124010,6 @@ struct linkmodes_reply_data { bool peer_empty; }; -struct link_mode_info { - int speed; - u8 duplex; -}; - struct linkstate_reply_data { struct ethnl_reply_data base; int link; @@ -90841,6 +124059,7 @@ struct channels_reply_data { struct coalesce_reply_data { struct ethnl_reply_data base; struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; u32 supported_params; }; @@ -91011,13 +124230,86 @@ struct ethnl_tunnel_info_dump_ctx { int pos_idx; }; +enum { + ETHTOOL_A_FEC_STAT_UNSPEC = 0, + ETHTOOL_A_FEC_STAT_PAD = 1, + ETHTOOL_A_FEC_STAT_CORRECTED = 2, + ETHTOOL_A_FEC_STAT_UNCORR = 3, + ETHTOOL_A_FEC_STAT_CORR_BITS = 4, + __ETHTOOL_A_FEC_STAT_CNT = 5, + ETHTOOL_A_FEC_STAT_MAX = 4, +}; + +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; +}; + +struct fec_reply_data { + struct ethnl_reply_data base; + long unsigned int fec_link_modes[2]; + u32 active_fec; + u8 fec_auto; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; +}; + +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; +}; + +struct eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; +}; + +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, +}; + +struct stats_req_info { + struct ethnl_req_info base; + long unsigned int stat_mask[1]; +}; + +struct stats_reply_data { + struct ethnl_reply_data base; + struct ethtool_eth_phy_stats phy_stats; + struct ethtool_eth_mac_stats mac_stats; + struct ethtool_eth_ctrl_stats ctrl_stats; + struct ethtool_rmon_stats rmon_stats; + const struct ethtool_rmon_hist_range *rmon_ranges; +}; + +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; +}; + struct nf_hook_entries_rcu_head { struct callback_head head; void *allocation; }; -struct nf_conn; - enum nf_nat_manip_type; struct nf_nat_hook { @@ -91026,16 +124318,16 @@ struct nf_nat_hook { unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); }; -struct nf_conntrack_tuple; - struct nf_ct_hook { int (*update)(struct net *, struct sk_buff *); void (*destroy)(struct nf_conntrack *); bool (*get_tuple_skb)(struct nf_conntrack_tuple *, const struct sk_buff *); + void (*attach)(struct sk_buff *, const struct sk_buff *); + void (*set_closing)(struct nf_conntrack *); + int (*confirm)(struct sk_buff *); }; struct nfnl_ct_hook { - struct nf_conn * (*get_ct)(const struct sk_buff *, enum ip_conntrack_info *); size_t (*build_size)(const struct nf_conn *); int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t); int (*parse)(const struct nlattr *, struct nf_conn *); @@ -91043,6 +124335,8 @@ struct nfnl_ct_hook { void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32); }; +struct nf_queue_entry; + struct nf_ipv6_ops { void (*route_input)(struct sk_buff *); int (*fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); @@ -91090,6 +124384,7 @@ struct nf_bridge_info { u8 pkt_otherhost: 1; u8 in_prerouting: 1; u8 bridged_dnat: 1; + u8 sabotage_in_done: 1; __u16 frag_max_size; struct net_device *physindev; struct net_device *physoutdev; @@ -91113,6 +124408,11 @@ struct ip6_rt_info { u_int32_t mark; }; +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); +}; + struct nf_sockopt_ops { struct list_head list; u_int8_t pf; @@ -91239,7 +124539,8 @@ struct fib_rt_info { u8 type; u8 offload: 1; u8 trap: 1; - u8 unused: 6; + u8 offload_failed: 1; + u8 unused: 5; }; struct uncached_list { @@ -91274,9 +124575,9 @@ struct fib_alias { u8 fa_slen; u32 tb_id; s16 fa_default; - u8 offload: 1; - u8 trap: 1; - u8 unused: 6; + u8 offload; + u8 trap; + u8 offload_failed; struct callback_head rcu; }; @@ -91337,6 +124638,7 @@ struct ipcm_cookie { __be32 addr; int oif; struct ip_options_rcu *opt; + __u8 protocol; __u8 ttl; __s16 tos; char priority; @@ -91378,11 +124680,22 @@ struct ip_mreq_source { }; struct ip_msfilter { - __be32 imsf_multiaddr; - __be32 imsf_interface; - __u32 imsf_fmode; - __u32 imsf_numsrc; - __be32 imsf_slist[1]; + union { + struct { + __be32 imsf_multiaddr_aux; + __be32 imsf_interface_aux; + __u32 imsf_fmode_aux; + __u32 imsf_numsrc_aux; + __be32 imsf_slist[1]; + }; + struct { + __be32 imsf_multiaddr; + __be32 imsf_interface; + __u32 imsf_fmode; + __u32 imsf_numsrc; + __be32 imsf_slist_flex[0]; + }; + }; }; struct group_req { @@ -91397,11 +124710,22 @@ struct group_source_req { }; struct group_filter { - __u32 gf_interface; - struct __kernel_sockaddr_storage gf_group; - __u32 gf_fmode; - __u32 gf_numsrc; - struct __kernel_sockaddr_storage gf_slist[1]; + union { + struct { + __u32 gf_interface_aux; + struct __kernel_sockaddr_storage gf_group_aux; + __u32 gf_fmode_aux; + __u32 gf_numsrc_aux; + struct __kernel_sockaddr_storage gf_slist[1]; + }; + struct { + __u32 gf_interface; + struct __kernel_sockaddr_storage gf_group; + __u32 gf_fmode; + __u32 gf_numsrc; + struct __kernel_sockaddr_storage gf_slist_flex[0]; + }; + }; }; struct in_pktinfo { @@ -91422,12 +124746,39 @@ struct compat_group_source_req { } __attribute__((packed)); struct compat_group_filter { - __u32 gf_interface; - struct __kernel_sockaddr_storage gf_group; - __u32 gf_fmode; - __u32 gf_numsrc; - struct __kernel_sockaddr_storage gf_slist[1]; -} __attribute__((packed)); + union { + struct { + __u32 gf_interface_aux; + struct __kernel_sockaddr_storage gf_group_aux; + __u32 gf_fmode_aux; + __u32 gf_numsrc_aux; + struct __kernel_sockaddr_storage gf_slist[1]; + } __attribute__((packed)); + struct { + __u32 gf_interface; + struct __kernel_sockaddr_storage gf_group; + __u32 gf_fmode; + __u32 gf_numsrc; + struct __kernel_sockaddr_storage gf_slist_flex[0]; + } __attribute__((packed)); + }; +}; + +enum { + BPFILTER_IPT_SO_SET_REPLACE = 64, + BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65, + BPFILTER_IPT_SET_MAX = 66, +}; + +enum { + BPFILTER_IPT_SO_GET_INFO = 64, + BPFILTER_IPT_SO_GET_ENTRIES = 65, + BPFILTER_IPT_SO_GET_REVISION_MATCH = 66, + BPFILTER_IPT_SO_GET_REVISION_TARGET = 67, + BPFILTER_IPT_GET_MAX = 68, +}; + +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); struct tcpvegas_info { __u32 tcpv_enabled; @@ -91601,6 +124952,7 @@ enum { TCP_NLA_TIMEOUT_REHASH = 23, TCP_NLA_BYTES_NOTSENT = 24, TCP_NLA_EDT = 25, + TCP_NLA_TTL = 26, }; struct tcp_zerocopy_receive { @@ -91611,6 +124963,11 @@ struct tcp_zerocopy_receive { __s32 err; __u64 copybuf_address; __s32 copybuf_len; + __u32 flags; + __u64 msg_control; + __u64 msg_controllen; + __u32 msg_flags; + __u32 reserved; }; struct tcp_md5sig_pool { @@ -91626,6 +124983,11 @@ enum tcp_chrono { __TCP_CHRONO_MAX = 4, }; +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, +}; + struct tcp_splice_state { struct pipe_inode_info *pipe; size_t len; @@ -91644,6 +125006,33 @@ struct tcp_sack_block_wire { __be32 end_seq; }; +struct static_key_false_deferred { + struct static_key_false key; + long unsigned int timeout; + struct delayed_work work; +}; + +struct mptcp_ext { + union { + u64 data_ack; + u32 data_ack32; + }; + u64 data_seq; + u32 subflow_seq; + u16 data_len; + __sum16 csum; + u8 use_map: 1; + u8 dsn64: 1; + u8 data_fin: 1; + u8 use_ack: 1; + u8 ack64: 1; + u8 mpc_map: 1; + u8 frozen: 1; + u8 reset_transient: 1; + u8 reset_reason: 4; + u8 csum_reqd: 1; +}; + enum tcp_queue { TCP_FRAG_IN_WRITE_QUEUE = 0, TCP_FRAG_IN_RTX_QUEUE = 1, @@ -91686,7 +125075,55 @@ enum tsq_flags { TCPF_MTU_REDUCED_DEFERRED = 32, }; -struct mptcp_out_options {}; +struct mptcp_rm_list { + u8 ids[8]; + u8 nr; +}; + +struct mptcp_addr_info { + u8 id; + sa_family_t family; + __be16 port; + union { + struct in_addr addr; + struct in6_addr addr6; + }; +}; + +struct mptcp_out_options { + u16 suboptions; + struct mptcp_rm_list rm_list; + u8 join_id; + u8 backup; + u8 reset_reason: 4; + u8 reset_transient: 1; + u8 csum_reqd: 1; + u8 allow_join_id0: 1; + union { + struct { + u64 sndr_key; + u64 rcvr_key; + u64 data_seq; + u32 subflow_seq; + u16 data_len; + __sum16 csum; + }; + struct { + struct mptcp_addr_info addr; + u64 ahmac; + }; + struct { + struct mptcp_ext ext_copy; + u64 fail_seq; + }; + struct { + u32 nonce; + u32 token; + u64 thmac; + u8 hmac[20]; + }; + }; +}; struct tcp_out_options { u16 options; @@ -91749,7 +125186,6 @@ struct tcp_iter_state { struct seq_net_private p; enum tcp_seq_states state; struct sock *syn_wait_sk; - struct tcp_seq_afinfo *bpf_seq_afinfo; int bucket; int offset; int sbucket; @@ -91757,6 +125193,15 @@ struct tcp_iter_state { loff_t last_pos; }; +struct bpf_tcp_iter_state { + struct tcp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + struct sock **batch; + bool st_bucket_done; +}; + struct bpf_iter__tcp { union { struct bpf_iter_meta *meta; @@ -91813,7 +125258,7 @@ struct tcp_fastopen_metrics { struct tcp_metrics_block { struct tcp_metrics_block *tcpm_next; - possible_net_t tcpm_net; + struct net *tcpm_net; struct inetpeer_addr tcpm_saddr; struct inetpeer_addr tcpm_daddr; long unsigned int tcpm_stamp; @@ -91912,9 +125357,11 @@ struct inet_protosw { unsigned char flags; }; +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); + typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); -typedef struct sock * (*udp_lookup_t)(struct sk_buff *, __be16, __be16); +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); struct arpreq { struct sockaddr arp_pa; @@ -91928,24 +125375,6 @@ typedef struct { char ax25_call[7]; } ax25_address; -enum { - AX25_VALUES_IPDEFMODE = 0, - AX25_VALUES_AXDEFMODE = 1, - AX25_VALUES_BACKOFF = 2, - AX25_VALUES_CONMODE = 3, - AX25_VALUES_WINDOW = 4, - AX25_VALUES_EWINDOW = 5, - AX25_VALUES_T1 = 6, - AX25_VALUES_T2 = 7, - AX25_VALUES_T3 = 8, - AX25_VALUES_IDLE = 9, - AX25_VALUES_N2 = 10, - AX25_VALUES_PACLEN = 11, - AX25_VALUES_PROTOCOL = 12, - AX25_VALUES_DS_TIMEOUT = 13, - AX25_MAX_VALUES = 14, -}; - enum ip_conntrack_status { IPS_EXPECTED_BIT = 0, IPS_EXPECTED = 1, @@ -92006,6 +125435,27 @@ struct icmp_extobj_hdr { __u8 class_type; }; +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; +}; + +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; + union { + char name[16]; + __be32 ifindex; + struct { + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; +}; + struct icmp_bxm { struct sk_buff *skb; int offset; @@ -92326,6 +125776,7 @@ struct ipfrag_skb_cb { }; struct sk_buff *next_frag; int frag_run_len; + int ip_defrag_offset; }; struct icmpv6_echo { @@ -92497,7 +125948,8 @@ struct nexthop_grp { enum { NEXTHOP_GRP_TYPE_MPATH = 0, - __NEXTHOP_GRP_TYPE_MAX = 1, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, }; enum { @@ -92513,7 +125965,28 @@ enum { NHA_GROUPS = 9, NHA_MASTER = 10, NHA_FDB = 11, - __NHA_MAX = 12, + NHA_RES_GROUP = 12, + NHA_RES_BUCKET = 13, + __NHA_MAX = 14, +}; + +enum { + NHA_RES_GROUP_UNSPEC = 0, + NHA_RES_GROUP_PAD = 0, + NHA_RES_GROUP_BUCKETS = 1, + NHA_RES_GROUP_IDLE_TIMER = 2, + NHA_RES_GROUP_UNBALANCED_TIMER = 3, + NHA_RES_GROUP_UNBALANCED_TIME = 4, + __NHA_RES_GROUP_MAX = 5, +}; + +enum { + NHA_RES_BUCKET_UNSPEC = 0, + NHA_RES_BUCKET_PAD = 0, + NHA_RES_BUCKET_INDEX = 1, + NHA_RES_BUCKET_IDLE_TIME = 2, + NHA_RES_BUCKET_NH_ID = 3, + __NHA_RES_BUCKET_MAX = 4, }; struct nh_config { @@ -92531,6 +126004,12 @@ struct nh_config { } gw; struct nlattr *nh_grp; u16 nh_grp_type; + u16 nh_grp_res_num_buckets; + long unsigned int nh_grp_res_idle_timer; + long unsigned int nh_grp_res_unbalanced_timer; + bool nh_grp_res_has_num_buckets; + bool nh_grp_res_has_idle_timer; + bool nh_grp_res_has_unbalanced_timer; struct nlattr *nh_encap; u16 nh_encap_type; u32 nlflags; @@ -92539,14 +126018,97 @@ struct nh_config { enum nexthop_event_type { NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, }; -struct inet6_protocol { - void (*early_demux)(struct sk_buff *); - void (*early_demux_handler)(struct sk_buff *); - int (*handler)(struct sk_buff *); - int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); - unsigned int flags; +enum nh_notifier_info_type { + NH_NOTIFIER_INFO_TYPE_SINGLE = 0, + NH_NOTIFIER_INFO_TYPE_GRP = 1, + NH_NOTIFIER_INFO_TYPE_RES_TABLE = 2, + NH_NOTIFIER_INFO_TYPE_RES_BUCKET = 3, +}; + +struct nh_notifier_single_info { + struct net_device *dev; + u8 gw_family; + union { + __be32 ipv4; + struct in6_addr ipv6; + }; + u8 is_reject: 1; + u8 is_fdb: 1; + u8 has_encap: 1; +}; + +struct nh_notifier_grp_entry_info { + u8 weight; + u32 id; + struct nh_notifier_single_info nh; +}; + +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + struct nh_notifier_grp_entry_info nh_entries[0]; +}; + +struct nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; +}; + +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + struct nh_notifier_single_info nhs[0]; +}; + +struct nh_notifier_info { + struct net *net; + struct netlink_ext_ack *extack; + u32 id; + enum nh_notifier_info_type type; + union { + struct nh_notifier_single_info *nh; + struct nh_notifier_grp_info *nh_grp; + struct nh_notifier_res_table_info *nh_res_table; + struct nh_notifier_res_bucket_info *nh_res_bucket; + }; +}; + +struct nh_dump_filter { + u32 nh_id; + int dev_idx; + int master_idx; + bool group_filter; + bool fdb_filter; + u32 res_bucket_nh_id; +}; + +struct rtm_dump_nh_ctx { + u32 idx; +}; + +struct rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; + u32 done_nh_idx; +}; + +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; +}; + +struct bpfilter_umh_ops { + struct umd_info info; + struct mutex lock; + int (*sockopt)(struct sock *, int, sockptr_t, unsigned int, bool); + int (*start)(void); }; struct snmp_mib { @@ -92868,8 +126430,6 @@ struct tls_sw_context_tx { struct tls_rec *open_rec; struct list_head tx_list; atomic_t encrypt_pending; - spinlock_t encrypt_compl_lock; - int async_notify; u8 async_capable: 1; long unsigned int tx_bitmask; }; @@ -92883,7 +126443,9 @@ enum { enum { TCP_BPF_BASE = 0, TCP_BPF_TX = 1, - TCP_BPF_NUM_CFGS = 2, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, }; enum { @@ -92892,39 +126454,6 @@ enum { UDP_BPF_NUM_PROTS = 2, }; -struct netlbl_audit { - u32 secid; - kuid_t loginuid; - unsigned int sessionid; -}; - -struct cipso_v4_std_map_tbl { - struct { - u32 *cipso; - u32 *local; - u32 cipso_size; - u32 local_size; - } lvl; - struct { - u32 *cipso; - u32 *local; - u32 cipso_size; - u32 local_size; - } cat; -}; - -struct cipso_v4_doi { - u32 doi; - u32 type; - union { - struct cipso_v4_std_map_tbl *std; - } map; - u8 tags[5]; - refcount_t refcount; - struct list_head list; - struct callback_head rcu; -}; - struct cipso_v4_map_cache_bkt { spinlock_t lock; u32 size; @@ -93049,26 +126578,6 @@ struct xfrm_policy_walk { u32 seq; }; -struct xfrm_kmaddress { - xfrm_address_t local; - xfrm_address_t remote; - u32 reserved; - u16 family; -}; - -struct xfrm_migrate { - xfrm_address_t old_daddr; - xfrm_address_t old_saddr; - xfrm_address_t new_daddr; - xfrm_address_t new_saddr; - u8 proto; - u8 mode; - u16 reserved; - u32 reqid; - u16 old_family; - u16 new_family; -}; - struct xfrmk_spdinfo { u32 incnt; u32 outcnt; @@ -93179,6 +126688,26 @@ struct km_event { struct net *net; }; +struct xfrm_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + u32 reserved; + u16 family; +}; + +struct xfrm_migrate { + xfrm_address_t old_daddr; + xfrm_address_t old_saddr; + xfrm_address_t new_daddr; + xfrm_address_t new_saddr; + u8 proto; + u8 mode; + u16 reserved; + u32 reqid; + u16 old_family; + u16 new_family; +}; + struct xfrm_mgr { struct list_head list; int (*notify)(struct xfrm_state *, const struct km_event *); @@ -93218,6 +126747,10 @@ struct ip_tunnel_6rd_parm { u16 relay_prefixlen; }; +struct ip_tunnel_fan { + struct list_head fan_maps; +}; + struct ip_tunnel_prl_entry; struct ip_tunnel { @@ -93243,6 +126776,7 @@ struct ip_tunnel { struct ip_tunnel_6rd_parm ip6rd; struct ip_tunnel_prl_entry *prl; unsigned int prl_count; + struct ip_tunnel_fan fan; unsigned int ip_tnl_net_id; struct gro_cells gro_cells; __u32 fwmark; @@ -93313,7 +126847,8 @@ struct ip_tunnel_prl_entry { }; struct xfrm_trans_tasklet { - struct tasklet_struct tasklet; + struct work_struct work; + spinlock_t queue_lock; struct sk_buff_head queue; }; @@ -93331,6 +126866,34 @@ struct xfrm_user_offload { __u8 flags; }; +struct espintcp_msg { + struct sk_buff *skb; + struct sk_msg skmsg; + int offset; + int len; +}; + +struct espintcp_ctx { + struct strparser strp; + struct sk_buff_head ike_queue; + struct sk_buff_head out_queue; + struct espintcp_msg partial; + void (*saved_data_ready)(struct sock *); + void (*saved_write_space)(struct sock *); + void (*saved_destruct)(struct sock *); + struct work_struct work; + bool tx_running; +}; + +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + struct lsmblob lsmblob; + u32 consumed; +}; + struct unix_stream_read_state { int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); struct socket *socket; @@ -93341,6 +126904,22 @@ struct unix_stream_read_state { unsigned int splice_flags; }; +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; +}; + +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; +}; + struct ipv6_params { __s32 disable_ipv6; __s32 autoconf; @@ -93422,6 +127001,12 @@ struct ipcm6_cookie { __u16 gso_size; }; +struct inet6_protocol { + int (*handler)(struct sk_buff *); + int (*err_handler)(struct sk_buff *, struct inet6_skb_parm *, u8, u8, int, __be32); + unsigned int flags; +}; + enum { IFLA_INET6_UNSPEC = 0, IFLA_INET6_FLAGS = 1, @@ -93432,7 +127017,8 @@ enum { IFLA_INET6_ICMP6STATS = 6, IFLA_INET6_TOKEN = 7, IFLA_INET6_ADDR_GEN_MODE = 8, - __IFLA_INET6_MAX = 9, + IFLA_INET6_RA_MTU = 9, + __IFLA_INET6_MAX = 10, }; enum in6_addr_gen_mode { @@ -93449,32 +127035,6 @@ struct ifla_cacheinfo { __u32 retrans_time; }; -struct wpan_phy; - -struct wpan_dev_header_ops; - -struct wpan_dev { - struct wpan_phy *wpan_phy; - int iftype; - struct list_head list; - struct net_device *netdev; - const struct wpan_dev_header_ops *header_ops; - struct net_device *lowpan_dev; - u32 identifier; - __le16 pan_id; - __le16 short_addr; - __le64 extended_addr; - atomic_t bsn; - atomic_t dsn; - u8 min_be; - u8 max_be; - u8 csma_retries; - s8 frame_retries; - bool lbt; - bool promiscuous_mode; - bool ackreq; -}; - struct prefixmsg { unsigned char prefix_family; unsigned char prefix_pad1; @@ -93557,7 +127117,14 @@ enum { DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, DEVCONF_NDISC_TCLASS = 50, DEVCONF_RPL_SEG_ENABLED = 51, - DEVCONF_MAX = 52, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, }; enum { @@ -93568,93 +127135,6 @@ enum { INET6_IFADDR_STATE_DEAD = 4, }; -enum nl802154_cca_modes { - __NL802154_CCA_INVALID = 0, - NL802154_CCA_ENERGY = 1, - NL802154_CCA_CARRIER = 2, - NL802154_CCA_ENERGY_CARRIER = 3, - NL802154_CCA_ALOHA = 4, - NL802154_CCA_UWB_SHR = 5, - NL802154_CCA_UWB_MULTIPLEXED = 6, - __NL802154_CCA_ATTR_AFTER_LAST = 7, - NL802154_CCA_ATTR_MAX = 6, -}; - -enum nl802154_cca_opts { - NL802154_CCA_OPT_ENERGY_CARRIER_AND = 0, - NL802154_CCA_OPT_ENERGY_CARRIER_OR = 1, - __NL802154_CCA_OPT_ATTR_AFTER_LAST = 2, - NL802154_CCA_OPT_ATTR_MAX = 1, -}; - -enum nl802154_supported_bool_states { - NL802154_SUPPORTED_BOOL_FALSE = 0, - NL802154_SUPPORTED_BOOL_TRUE = 1, - __NL802154_SUPPORTED_BOOL_INVALD = 2, - NL802154_SUPPORTED_BOOL_BOTH = 3, - __NL802154_SUPPORTED_BOOL_AFTER_LAST = 4, - NL802154_SUPPORTED_BOOL_MAX = 3, -}; - -struct wpan_phy_supported { - u32 channels[32]; - u32 cca_modes; - u32 cca_opts; - u32 iftypes; - enum nl802154_supported_bool_states lbt; - u8 min_minbe; - u8 max_minbe; - u8 min_maxbe; - u8 max_maxbe; - u8 min_csma_backoffs; - u8 max_csma_backoffs; - s8 min_frame_retries; - s8 max_frame_retries; - size_t tx_powers_size; - size_t cca_ed_levels_size; - const s32 *tx_powers; - const s32 *cca_ed_levels; -}; - -struct wpan_phy_cca { - enum nl802154_cca_modes mode; - enum nl802154_cca_opts opt; -}; - -struct wpan_phy { - const void *privid; - u32 flags; - u8 current_channel; - u8 current_page; - struct wpan_phy_supported supported; - s32 transmit_power; - struct wpan_phy_cca cca; - __le64 perm_extended_addr; - s32 cca_ed_level; - u8 symbol_duration; - u16 lifs_period; - u16 sifs_period; - struct device dev; - possible_net_t _net; - long: 64; - long: 64; - long: 64; - char priv[0]; -}; - -struct ieee802154_addr { - u8 mode; - __le16 pan_id; - union { - __le16 short_addr; - __le64 extended_addr; - }; -}; - -struct wpan_dev_header_ops { - int (*create)(struct sk_buff *, struct net_device *, const struct ieee802154_addr *, const struct ieee802154_addr *, unsigned int); -}; - union fwnet_hwaddr { u8 u[16]; struct { @@ -93694,14 +127174,12 @@ enum { IPV6_SADDR_RULE_LOCAL = 1, IPV6_SADDR_RULE_SCOPE = 2, IPV6_SADDR_RULE_PREFERRED = 3, - IPV6_SADDR_RULE_HOA = 4, - IPV6_SADDR_RULE_OIF = 5, - IPV6_SADDR_RULE_LABEL = 6, - IPV6_SADDR_RULE_PRIVACY = 7, - IPV6_SADDR_RULE_ORCHID = 8, - IPV6_SADDR_RULE_PREFIX = 9, - IPV6_SADDR_RULE_NOT_OPTIMISTIC = 10, - IPV6_SADDR_RULE_MAX = 11, + IPV6_SADDR_RULE_OIF = 4, + IPV6_SADDR_RULE_LABEL = 5, + IPV6_SADDR_RULE_PRIVACY = 6, + IPV6_SADDR_RULE_ORCHID = 7, + IPV6_SADDR_RULE_PREFIX = 8, + IPV6_SADDR_RULE_MAX = 9, }; struct ipv6_saddr_score { @@ -93799,6 +127277,8 @@ struct rt6_exception { struct callback_head rcu; }; +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); + struct route_info { __u8 type; __u8 length; @@ -94075,11 +127555,7 @@ struct ra_msg { __be32 retrans_timer; }; -struct static_key_false_deferred { - struct static_key_false key; - long unsigned int timeout; - struct delayed_work work; -}; +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); struct icmp6_filter { __u32 data[8]; @@ -94209,9 +127685,70 @@ struct ipv6_rpl_sr_hdr { } segments; }; -struct tlvtype_proc { - int type; - bool (*func)(struct sk_buff *, int); +struct ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; +}; + +struct ioam6_trace_hdr { + __be16 namespace_id; + char: 2; + __u8 overflow: 1; + __u8 nodelen: 5; + __u8 remlen: 7; + union { + __be32 type_be32; + struct { + __u32 bit7: 1; + __u32 bit6: 1; + __u32 bit5: 1; + __u32 bit4: 1; + __u32 bit3: 1; + __u32 bit2: 1; + __u32 bit1: 1; + __u32 bit0: 1; + __u32 bit15: 1; + __u32 bit14: 1; + __u32 bit13: 1; + __u32 bit12: 1; + __u32 bit11: 1; + __u32 bit10: 1; + __u32 bit9: 1; + __u32 bit8: 1; + __u32 bit23: 1; + __u32 bit22: 1; + __u32 bit21: 1; + __u32 bit20: 1; + __u32 bit19: 1; + __u32 bit18: 1; + __u32 bit17: 1; + __u32 bit16: 1; + } type; + }; + __u8 data[0]; +}; + +struct ioam6_schema; + +struct ioam6_namespace { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_schema *schema; + __be16 id; + __be32 data; + __be64 data_wide; +}; + +struct ioam6_schema { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_namespace *ns; + u32 id; + int len; + __be32 hdr; + u8 data[0]; }; struct ip6fl_iter_state { @@ -94256,6 +127793,30 @@ struct seg6_hmac_info { u8 alg_id; }; +enum { + IOAM6_ATTR_UNSPEC = 0, + IOAM6_ATTR_NS_ID = 1, + IOAM6_ATTR_NS_DATA = 2, + IOAM6_ATTR_NS_DATA_WIDE = 3, + IOAM6_ATTR_SC_ID = 4, + IOAM6_ATTR_SC_DATA = 5, + IOAM6_ATTR_SC_NONE = 6, + IOAM6_ATTR_PAD = 7, + __IOAM6_ATTR_MAX = 8, +}; + +enum { + IOAM6_CMD_UNSPEC = 0, + IOAM6_CMD_ADD_NAMESPACE = 1, + IOAM6_CMD_DEL_NAMESPACE = 2, + IOAM6_CMD_DUMP_NAMESPACES = 3, + IOAM6_CMD_ADD_SCHEMA = 4, + IOAM6_CMD_DEL_SCHEMA = 5, + IOAM6_CMD_DUMP_SCHEMAS = 6, + IOAM6_CMD_NS_SET_SCHEMA = 7, + __IOAM6_CMD_MAX = 8, +}; + typedef short unsigned int mifi_t; typedef __u32 if_mask; @@ -94366,15 +127927,16 @@ struct br_input_skb_cb { u8 mrouters_only: 1; u8 proxyarp_replied: 1; u8 src_port_isolated: 1; + u8 promisc: 1; u8 vlan_filtered: 1; u8 br_netfilter_broute: 1; - int offload_fwd_mark; + u8 tx_fwd_offload: 1; + int src_hwdom; + long unsigned int fwd_hwdoms; }; struct nf_bridge_frag_data; -typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); - struct fib6_rule { struct fib_rule common; struct rt6key src; @@ -94400,7 +127962,7 @@ struct netlbl_calipso_ops { unsigned char * (*skbuff_optptr)(const struct sk_buff *); int (*skbuff_setattr)(struct sk_buff *, const struct calipso_doi *, const struct netlbl_lsm_secattr *); int (*skbuff_delattr)(struct sk_buff *); - void (*cache_invalidate)(); + void (*cache_invalidate)(void); int (*cache_add)(const unsigned char *, const struct netlbl_lsm_secattr *); }; @@ -94449,6 +128011,18 @@ struct seg6_lwt { struct seg6_iptunnel_encap tuninfo[0]; }; +enum l3mdev_type { + L3MDEV_TYPE_UNSPEC = 0, + L3MDEV_TYPE_VRF = 1, + __L3MDEV_TYPE_MAX = 2, +}; + +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, +}; + enum { SEG6_LOCAL_UNSPEC = 0, SEG6_LOCAL_ACTION = 1, @@ -94459,7 +128033,9 @@ enum { SEG6_LOCAL_IIF = 6, SEG6_LOCAL_OIF = 7, SEG6_LOCAL_BPF = 8, - __SEG6_LOCAL_MAX = 9, + SEG6_LOCAL_VRFTABLE = 9, + SEG6_LOCAL_COUNTERS = 10, + __SEG6_LOCAL_MAX = 11, }; enum { @@ -94469,15 +128045,40 @@ enum { __SEG6_LOCAL_BPF_PROG_MAX = 3, }; +enum { + SEG6_LOCAL_CNT_UNSPEC = 0, + SEG6_LOCAL_CNT_PAD = 1, + SEG6_LOCAL_CNT_PACKETS = 2, + SEG6_LOCAL_CNT_BYTES = 3, + SEG6_LOCAL_CNT_ERRORS = 4, + __SEG6_LOCAL_CNT_MAX = 5, +}; + struct seg6_local_lwt; -struct seg6_action_desc { - int action; - long unsigned int attrs; - int (*input)(struct sk_buff *, struct seg6_local_lwt *); - int static_headroom; +struct seg6_local_lwtunnel_ops { + int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); + void (*destroy_state)(struct seg6_local_lwt *); }; +enum seg6_end_dt_mode { + DT_INVALID_MODE = 4294967274, + DT_LEGACY_MODE = 0, + DT_VRF_MODE = 1, +}; + +struct seg6_end_dt_info { + enum seg6_end_dt_mode mode; + struct net *net; + int vrf_ifindex; + int vrf_table; + u16 family; +}; + +struct pcpu_seg6_local_counters; + +struct seg6_action_desc; + struct seg6_local_lwt { int action; struct ipv6_sr_hdr *srh; @@ -94487,14 +128088,40 @@ struct seg6_local_lwt { int iif; int oif; struct bpf_lwt_prog bpf; + struct seg6_end_dt_info dt_info; + struct pcpu_seg6_local_counters *pcpu_counters; int headroom; struct seg6_action_desc *desc; + long unsigned int parsed_optattrs; +}; + +struct seg6_action_desc { + int action; + long unsigned int attrs; + long unsigned int optattrs; + int (*input)(struct sk_buff *, struct seg6_local_lwt *); + int static_headroom; + struct seg6_local_lwtunnel_ops slwt_ops; +}; + +struct pcpu_seg6_local_counters { + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t errors; + struct u64_stats_sync syncp; +}; + +struct seg6_local_counters { + __u64 packets; + __u64 bytes; + __u64 errors; }; struct seg6_action_param { int (*parse)(struct nlattr **, struct seg6_local_lwt *); int (*put)(struct sk_buff *, struct seg6_local_lwt *); int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); + void (*destroy)(struct seg6_local_lwt *); }; struct sr6_tlv_hmac { @@ -94516,24 +128143,21 @@ struct seg6_hmac_algo { struct shash_desc **shashs; }; -struct rt2_hdr { - struct ipv6_rt_hdr rt_hdr; - __u32 reserved; - struct in6_addr addr; -}; - -struct mip6_report_rate_limiter { - spinlock_t lock; - ktime_t stamp; - int iif; - struct in6_addr src; - struct in6_addr dst; -}; - enum { - IP6_FH_F_FRAG = 1, - IP6_FH_F_AUTH = 2, - IP6_FH_F_SKIP_RH = 4, + IOAM6_IPTUNNEL_UNSPEC = 0, + IOAM6_IPTUNNEL_TRACE = 1, + __IOAM6_IPTUNNEL_MAX = 2, +}; + +struct ioam6_lwt_encap { + struct ipv6_opt_hdr eh; + u8 pad[2]; + struct ioam6_hdr ioamh; + struct ioam6_trace_hdr traceh; +}; + +struct ioam6_lwt { + struct ioam6_lwt_encap tuninfo; }; struct sockaddr_pkt { @@ -94691,17 +128315,6 @@ struct fanout_args { __u32 max_num_members; }; -typedef __u16 __virtio16; - -struct virtio_net_hdr { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - __virtio16 csum_start; - __virtio16 csum_offset; -}; - struct packet_mclist { struct packet_mclist *next; int ifindex; @@ -94805,9 +128418,8 @@ struct packet_sock { int copy_thresh; spinlock_t bind_lock; struct mutex pg_vec_lock; + long unsigned int flags; unsigned int running; - unsigned int auxdata: 1; - unsigned int origdev: 1; unsigned int has_vnet_hdr: 1; unsigned int tp_loss: 1; unsigned int tp_tx_has_off: 1; @@ -94816,7 +128428,7 @@ struct packet_sock { __be16 num; struct packet_rollover *rollover; struct packet_mclist *mclist; - atomic_t mapped; + atomic_long_t mapped; enum tpacket_versions tp_version; unsigned int tp_hdrlen; unsigned int tp_reserve; @@ -94826,6 +128438,7 @@ struct packet_sock { int (*xmit)(struct sk_buff *); long: 64; long: 64; + long: 64; struct packet_type prot_hook; long: 64; long: 64; @@ -94844,6 +128457,11 @@ struct packet_sock { long: 64; }; +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, +}; + struct packet_mreq_max { int mr_ifindex; short unsigned int mr_type; @@ -95062,6 +128680,13 @@ enum nl80211_mfp { NL80211_MFP_OPTIONAL = 2, }; +enum nl80211_sae_pwe_mechanism { + NL80211_SAE_PWE_UNSPECIFIED = 0, + NL80211_SAE_PWE_HUNT_AND_PECK = 1, + NL80211_SAE_PWE_HASH_TO_ELEMENT = 2, + NL80211_SAE_PWE_BOTH = 3, +}; + struct cfg80211_crypto_settings { u32 wpa_versions; u32 cipher_group; @@ -95079,6 +128704,7 @@ struct cfg80211_crypto_settings { const u8 *psk; const u8 *sae_pwd; u8 sae_pwd_len; + enum nl80211_sae_pwe_mechanism sae_pwe; }; struct ieee80211_vht_mcs_info { @@ -95175,6 +128801,8 @@ struct wireless_dev { struct mutex mtx; bool use_4addr; bool is_running; + bool registered; + bool registering; u8 address[6]; u8 ssid[32]; u8 ssid_len; @@ -95254,7 +128882,13 @@ struct compat_iw_point { struct __compat_iw_event { __u16 len; __u16 cmd; - compat_caddr_t pointer; + union { + compat_caddr_t pointer; + struct { + struct {} __empty_ptr_bytes; + __u8 ptr_bytes[0]; + }; + }; }; enum nl80211_reg_initiator { @@ -95377,8 +129011,13 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51, NL80211_EXT_FEATURE_FILS_DISCOVERY = 52, NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53, - NUM_NL80211_EXT_FEATURES = 54, - MAX_NL80211_EXT_FEATURES = 53, + NL80211_EXT_FEATURE_BEACON_RATE_HE = 54, + NL80211_EXT_FEATURE_SECURE_LTF = 55, + NL80211_EXT_FEATURE_SECURE_RTT = 56, + NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57, + NL80211_EXT_FEATURE_BSS_COLOR = 58, + NUM_NL80211_EXT_FEATURES = 59, + MAX_NL80211_EXT_FEATURES = 58, }; enum nl80211_dfs_state { @@ -95392,6 +129031,11 @@ struct nl80211_vendor_cmd_info { __u32 subcmd; }; +enum nl80211_sar_type { + NL80211_SAR_TYPE_POWER = 0, + NUM_NL80211_SAR_TYPE = 1, +}; + struct ieee80211_he_cap_elem { u8 mac_cap_info[6]; u8 phy_cap_info[11]; @@ -95520,7 +129164,11 @@ struct ieee80211_sband_iftype_data { u16 types_mask; struct ieee80211_sta_he_cap he_cap; struct ieee80211_he_6ghz_capa he_6ghz_capa; - int: 0; + long: 0; + struct { + const u8 *data; + unsigned int len; + } vendor_elems; } __attribute__((packed)); struct ieee80211_sta_s1g_cap { @@ -95557,6 +129205,17 @@ struct mac_address { u8 addr[6]; }; +struct cfg80211_sar_freq_ranges { + u32 start_freq; + u32 end_freq; +}; + +struct cfg80211_sar_capa { + enum nl80211_sar_type type; + u32 num_freq_ranges; + const struct cfg80211_sar_freq_ranges *freq_ranges; +}; + struct cfg80211_ssid { u8 ssid[32]; u8 ssid_len; @@ -95586,7 +129245,10 @@ struct wiphy_vendor_command; struct cfg80211_pmsr_capabilities; +struct rfkill; + struct wiphy { + struct mutex mtx; u8 perm_addr[6]; u8 addr_mask[6]; struct mac_address *addresses; @@ -95600,7 +129262,7 @@ struct wiphy { u32 flags; u32 regulatory_flags; u32 features; - u8 ext_features[7]; + u8 ext_features[8]; u32 ap_sme_capa; enum cfg80211_signal_type signal_type; int bss_priv_size; @@ -95672,7 +129334,8 @@ struct wiphy { u8 max_retry; } tid_config_support; u8 max_data_retry_count; - long: 64; + const struct cfg80211_sar_capa *sar_capa; + struct rfkill *rfkill; long: 64; char priv[0]; }; @@ -95985,13 +129648,13 @@ struct netlbl_unlhsh_tbl { }; struct netlbl_unlhsh_addr4 { - u32 secid; + struct lsmblob lsmblob; struct netlbl_af4list list; struct callback_head rcu; }; struct netlbl_unlhsh_addr6 { - u32 secid; + struct lsmblob lsmblob; struct netlbl_af6list list; struct callback_head rcu; }; @@ -96070,6 +129733,101 @@ struct netlbl_calipso_doiwalk_arg { u32 seq; }; +enum rfkill_type { + RFKILL_TYPE_ALL = 0, + RFKILL_TYPE_WLAN = 1, + RFKILL_TYPE_BLUETOOTH = 2, + RFKILL_TYPE_UWB = 3, + RFKILL_TYPE_WIMAX = 4, + RFKILL_TYPE_WWAN = 5, + RFKILL_TYPE_GPS = 6, + RFKILL_TYPE_FM = 7, + RFKILL_TYPE_NFC = 8, + NUM_RFKILL_TYPES = 9, +}; + +enum rfkill_operation { + RFKILL_OP_ADD = 0, + RFKILL_OP_DEL = 1, + RFKILL_OP_CHANGE = 2, + RFKILL_OP_CHANGE_ALL = 3, +}; + +enum rfkill_hard_block_reasons { + RFKILL_HARD_BLOCK_SIGNAL = 1, + RFKILL_HARD_BLOCK_NOT_OWNER = 2, +}; + +struct rfkill_event_ext { + __u32 idx; + __u8 type; + __u8 op; + __u8 soft; + __u8 hard; + __u8 hard_block_reasons; +} __attribute__((packed)); + +enum rfkill_user_states { + RFKILL_USER_STATE_SOFT_BLOCKED = 0, + RFKILL_USER_STATE_UNBLOCKED = 1, + RFKILL_USER_STATE_HARD_BLOCKED = 2, +}; + +struct rfkill_ops { + void (*poll)(struct rfkill *, void *); + void (*query)(struct rfkill *, void *); + int (*set_block)(void *, bool); +}; + +struct rfkill { + spinlock_t lock; + enum rfkill_type type; + long unsigned int state; + long unsigned int hard_block_reasons; + u32 idx; + bool registered; + bool persistent; + bool polling_paused; + bool suspended; + const struct rfkill_ops *ops; + void *data; + struct led_trigger led_trigger; + const char *ledtrigname; + struct device dev; + struct list_head node; + struct delayed_work poll_work; + struct work_struct uevent_work; + struct work_struct sync_work; + char name[0]; +}; + +struct rfkill_int_event { + struct list_head list; + struct rfkill_event_ext ev; +}; + +struct rfkill_data { + struct list_head list; + struct list_head events; + struct mutex mtx; + wait_queue_head_t read_wait; + bool input_handler; +}; + +enum rfkill_input_master_mode { + RFKILL_INPUT_MASTER_UNLOCK = 0, + RFKILL_INPUT_MASTER_RESTORE = 1, + RFKILL_INPUT_MASTER_UNBLOCKALL = 2, + NUM_RFKILL_INPUT_MASTER_MODES = 3, +}; + +enum rfkill_sched_op { + RFKILL_GLOBAL_OP_EPO = 0, + RFKILL_GLOBAL_OP_RESTORE = 1, + RFKILL_GLOBAL_OP_UNLOCK = 2, + RFKILL_GLOBAL_OP_UNBLOCK = 3, +}; + struct dcbmsg { __u8 dcb_family; __u8 cmd; @@ -96326,8 +130084,38 @@ struct reply_func { int (*cb)(struct net_device *, struct nlmsghdr *, u32, struct nlattr **, struct sk_buff *); }; -struct switchdev_trans { - bool ph_prepare; +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, +}; + +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, +}; + +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; +}; + +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; +}; + +enum { + dns_key_data = 0, + dns_key_error = 1, }; enum switchdev_attr_id { @@ -96338,8 +130126,10 @@ enum switchdev_attr_id { SWITCHDEV_ATTR_ID_PORT_MROUTER = 4, SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 5, SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 6, - SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 7, - SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 8, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 7, + SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 8, + SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 9, + SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 10, }; struct switchdev_attr { @@ -96350,27 +130140,22 @@ struct switchdev_attr { void (*complete)(struct net_device *, int, void *); union { u8 stp_state; - long unsigned int brport_flags; + struct switchdev_brport_flags brport_flags; bool mrouter; clock_t ageing_time; bool vlan_filtering; + u16 vlan_protocol; bool mc_disabled; + u8 mrp_port_role; } u; }; -enum switchdev_obj_id { - SWITCHDEV_OBJ_ID_UNDEFINED = 0, - SWITCHDEV_OBJ_ID_PORT_VLAN = 1, - SWITCHDEV_OBJ_ID_PORT_MDB = 2, - SWITCHDEV_OBJ_ID_HOST_MDB = 3, -}; - -struct switchdev_obj { - struct net_device *orig_dev; - enum switchdev_obj_id id; - u32 flags; - void *complete_priv; - void (*complete)(struct net_device *, int, void *); +struct switchdev_brport { + struct net_device *dev; + const void *ctx; + struct notifier_block *atomic_nb; + struct notifier_block *blocking_nb; + bool tx_fwd_offload; }; enum switchdev_notifier_type { @@ -96388,27 +130173,42 @@ enum switchdev_notifier_type { SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, + SWITCHDEV_BRPORT_OFFLOADED = 15, + SWITCHDEV_BRPORT_UNOFFLOADED = 16, }; struct switchdev_notifier_info { struct net_device *dev; struct netlink_ext_ack *extack; + const void *ctx; +}; + +struct switchdev_notifier_fdb_info { + struct switchdev_notifier_info info; + const unsigned char *addr; + u16 vid; + u8 added_by_user: 1; + u8 is_local: 1; + u8 offloaded: 1; }; struct switchdev_notifier_port_obj_info { struct switchdev_notifier_info info; const struct switchdev_obj *obj; - struct switchdev_trans *trans; bool handled; }; struct switchdev_notifier_port_attr_info { struct switchdev_notifier_info info; const struct switchdev_attr *attr; - struct switchdev_trans *trans; bool handled; }; +struct switchdev_notifier_brport_info { + struct switchdev_notifier_info info; + const struct switchdev_brport brport; +}; + typedef void switchdev_deferred_func_t(struct net_device *, const void *); struct switchdev_deferred_item { @@ -96418,10 +130218,11 @@ struct switchdev_deferred_item { long unsigned int data[0]; }; -enum l3mdev_type { - L3MDEV_TYPE_UNSPEC = 0, - L3MDEV_TYPE_VRF = 1, - __L3MDEV_TYPE_MAX = 2, +struct switchdev_nested_priv { + bool (*check_cb)(const struct net_device *); + bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); + const struct net_device *dev; + struct net_device *lower_dev; }; typedef int (*lookup_by_table_id_t)(struct net *, u32); @@ -96430,6 +130231,720 @@ struct l3mdev_handler { lookup_by_table_id_t dev_lookup; }; +struct ncsi_dev { + int state; + int link_up; + struct net_device *dev; + void (*handler)(struct ncsi_dev *); +}; + +struct ncsi_channel_version { + u8 major; + u8 minor; + u8 update; + char alpha1; + char alpha2; + u8 fw_name[12]; + u32 fw_version; + u16 pci_ids[4]; + u32 mf_id; +}; + +struct ncsi_channel_cap { + u32 index; + u32 cap; +}; + +struct ncsi_channel_mode { + u32 index; + u32 enable; + u32 size; + u32 data[8]; +}; + +struct ncsi_channel_mac_filter { + u8 n_uc; + u8 n_mc; + u8 n_mixed; + u64 bitmap; + unsigned char *addrs; +}; + +struct ncsi_channel_vlan_filter { + u8 n_vids; + u64 bitmap; + u16 *vids; +}; + +struct ncsi_channel_stats { + u32 hnc_cnt_hi; + u32 hnc_cnt_lo; + u32 hnc_rx_bytes; + u32 hnc_tx_bytes; + u32 hnc_rx_uc_pkts; + u32 hnc_rx_mc_pkts; + u32 hnc_rx_bc_pkts; + u32 hnc_tx_uc_pkts; + u32 hnc_tx_mc_pkts; + u32 hnc_tx_bc_pkts; + u32 hnc_fcs_err; + u32 hnc_align_err; + u32 hnc_false_carrier; + u32 hnc_runt_pkts; + u32 hnc_jabber_pkts; + u32 hnc_rx_pause_xon; + u32 hnc_rx_pause_xoff; + u32 hnc_tx_pause_xon; + u32 hnc_tx_pause_xoff; + u32 hnc_tx_s_collision; + u32 hnc_tx_m_collision; + u32 hnc_l_collision; + u32 hnc_e_collision; + u32 hnc_rx_ctl_frames; + u32 hnc_rx_64_frames; + u32 hnc_rx_127_frames; + u32 hnc_rx_255_frames; + u32 hnc_rx_511_frames; + u32 hnc_rx_1023_frames; + u32 hnc_rx_1522_frames; + u32 hnc_rx_9022_frames; + u32 hnc_tx_64_frames; + u32 hnc_tx_127_frames; + u32 hnc_tx_255_frames; + u32 hnc_tx_511_frames; + u32 hnc_tx_1023_frames; + u32 hnc_tx_1522_frames; + u32 hnc_tx_9022_frames; + u32 hnc_rx_valid_bytes; + u32 hnc_rx_runt_pkts; + u32 hnc_rx_jabber_pkts; + u32 ncsi_rx_cmds; + u32 ncsi_dropped_cmds; + u32 ncsi_cmd_type_errs; + u32 ncsi_cmd_csum_errs; + u32 ncsi_rx_pkts; + u32 ncsi_tx_pkts; + u32 ncsi_tx_aen_pkts; + u32 pt_tx_pkts; + u32 pt_tx_dropped; + u32 pt_tx_channel_err; + u32 pt_tx_us_err; + u32 pt_rx_pkts; + u32 pt_rx_dropped; + u32 pt_rx_channel_err; + u32 pt_rx_us_err; + u32 pt_rx_os_err; +}; + +struct ncsi_package; + +struct ncsi_channel { + unsigned char id; + int state; + bool reconfigure_needed; + spinlock_t lock; + struct ncsi_package *package; + struct ncsi_channel_version version; + struct ncsi_channel_cap caps[6]; + struct ncsi_channel_mode modes[8]; + struct ncsi_channel_mac_filter mac_filter; + struct ncsi_channel_vlan_filter vlan_filter; + struct ncsi_channel_stats stats; + struct { + struct timer_list timer; + bool enabled; + unsigned int state; + } monitor; + struct list_head node; + struct list_head link; +}; + +struct ncsi_dev_priv; + +struct ncsi_package { + unsigned char id; + unsigned char uuid[16]; + struct ncsi_dev_priv *ndp; + spinlock_t lock; + unsigned int channel_num; + struct list_head channels; + struct list_head node; + bool multi_channel; + u32 channel_whitelist; + struct ncsi_channel *preferred_channel; +}; + +struct ncsi_request { + unsigned char id; + bool used; + unsigned int flags; + struct ncsi_dev_priv *ndp; + struct sk_buff *cmd; + struct sk_buff *rsp; + struct timer_list timer; + bool enabled; + u32 snd_seq; + u32 snd_portid; + struct nlmsghdr nlhdr; +}; + +struct ncsi_dev_priv { + struct ncsi_dev ndev; + unsigned int flags; + unsigned int gma_flag; + spinlock_t lock; + unsigned int package_probe_id; + unsigned int package_num; + unsigned int channel_probe_id; + struct list_head packages; + struct ncsi_channel *hot_channel; + struct ncsi_request requests[256]; + unsigned int request_id; + unsigned int pending_req_num; + struct ncsi_package *active_package; + struct ncsi_channel *active_channel; + struct list_head channel_queue; + struct work_struct work; + struct packet_type ptype; + struct list_head node; + struct list_head vlan_vids; + bool multi_package; + bool mlx_multi_host; + u32 package_whitelist; + unsigned char channel_count; +}; + +struct ncsi_cmd_arg { + struct ncsi_dev_priv *ndp; + unsigned char type; + unsigned char id; + unsigned char package; + unsigned char channel; + short unsigned int payload; + unsigned int req_flags; + union { + unsigned char bytes[16]; + short unsigned int words[8]; + unsigned int dwords[4]; + }; + unsigned char *data; + struct genl_info *info; +}; + +struct ncsi_pkt_hdr { + unsigned char mc_id; + unsigned char revision; + unsigned char reserved; + unsigned char id; + unsigned char type; + unsigned char channel; + __be16 length; + __be32 reserved1[2]; +}; + +struct ncsi_cmd_pkt_hdr { + struct ncsi_pkt_hdr common; +}; + +struct ncsi_cmd_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 checksum; + unsigned char pad[26]; +}; + +struct ncsi_cmd_sp_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char hw_arbitration; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_dc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char ald; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_rc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 reserved; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_ae_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mc_id; + __be32 mode; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_sl_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 oem_mode; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_svf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be16 reserved; + __be16 vlan; + __be16 reserved1; + unsigned char index; + unsigned char enable; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_ev_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_sma_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char mac[6]; + unsigned char index; + unsigned char at_e; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_cmd_ebf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_egmf_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_snfc_pkt { + struct ncsi_cmd_pkt_hdr cmd; + unsigned char reserved[3]; + unsigned char mode; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_cmd_oem_pkt { + struct ncsi_cmd_pkt_hdr cmd; + __be32 mfr_id; + unsigned char data[0]; +}; + +struct ncsi_cmd_handler { + unsigned char type; + int payload; + int (*handler)(struct sk_buff *, struct ncsi_cmd_arg *); +}; + +enum { + NCSI_CAP_BASE = 0, + NCSI_CAP_GENERIC = 0, + NCSI_CAP_BC = 1, + NCSI_CAP_MC = 2, + NCSI_CAP_BUFFER = 3, + NCSI_CAP_AEN = 4, + NCSI_CAP_VLAN = 5, + NCSI_CAP_MAX = 6, +}; + +enum { + NCSI_CAP_GENERIC_HWA = 1, + NCSI_CAP_GENERIC_HDS = 2, + NCSI_CAP_GENERIC_FC = 4, + NCSI_CAP_GENERIC_FC1 = 8, + NCSI_CAP_GENERIC_MC = 16, + NCSI_CAP_GENERIC_HWA_UNKNOWN = 0, + NCSI_CAP_GENERIC_HWA_SUPPORT = 32, + NCSI_CAP_GENERIC_HWA_NOT_SUPPORT = 64, + NCSI_CAP_GENERIC_HWA_RESERVED = 96, + NCSI_CAP_GENERIC_HWA_MASK = 96, + NCSI_CAP_GENERIC_MASK = 127, + NCSI_CAP_BC_ARP = 1, + NCSI_CAP_BC_DHCPC = 2, + NCSI_CAP_BC_DHCPS = 4, + NCSI_CAP_BC_NETBIOS = 8, + NCSI_CAP_BC_MASK = 15, + NCSI_CAP_MC_IPV6_NEIGHBOR = 1, + NCSI_CAP_MC_IPV6_ROUTER = 2, + NCSI_CAP_MC_DHCPV6_RELAY = 4, + NCSI_CAP_MC_DHCPV6_WELL_KNOWN = 8, + NCSI_CAP_MC_IPV6_MLD = 16, + NCSI_CAP_MC_IPV6_NEIGHBOR_S = 32, + NCSI_CAP_MC_MASK = 63, + NCSI_CAP_AEN_LSC = 1, + NCSI_CAP_AEN_CR = 2, + NCSI_CAP_AEN_HDS = 4, + NCSI_CAP_AEN_MASK = 7, + NCSI_CAP_VLAN_ONLY = 1, + NCSI_CAP_VLAN_NO = 2, + NCSI_CAP_VLAN_ANY = 4, + NCSI_CAP_VLAN_MASK = 7, +}; + +enum { + NCSI_MODE_BASE = 0, + NCSI_MODE_ENABLE = 0, + NCSI_MODE_TX_ENABLE = 1, + NCSI_MODE_LINK = 2, + NCSI_MODE_VLAN = 3, + NCSI_MODE_BC = 4, + NCSI_MODE_MC = 5, + NCSI_MODE_AEN = 6, + NCSI_MODE_FC = 7, + NCSI_MODE_MAX = 8, +}; + +struct ncsi_rsp_pkt_hdr { + struct ncsi_pkt_hdr common; + __be16 code; + __be16 reason; +}; + +struct ncsi_rsp_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 checksum; + unsigned char pad[22]; +}; + +struct ncsi_rsp_oem_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 mfr_id; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_mlx_pkt { + unsigned char cmd_rev; + unsigned char cmd; + unsigned char param; + unsigned char optional; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_bcm_pkt { + unsigned char ver; + unsigned char type; + __be16 len; + unsigned char data[0]; +}; + +struct ncsi_rsp_oem_intel_pkt { + unsigned char cmd; + unsigned char data[0]; +}; + +struct ncsi_rsp_gls_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 status; + __be32 other; + __be32 oem_status; + __be32 checksum; + unsigned char pad[10]; +}; + +struct ncsi_rsp_gvi_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char major; + unsigned char minor; + unsigned char update; + unsigned char alpha1; + unsigned char reserved[3]; + unsigned char alpha2; + unsigned char fw_name[12]; + __be32 fw_version; + __be16 pci_ids[4]; + __be32 mf_id; + __be32 checksum; +}; + +struct ncsi_rsp_gc_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 cap; + __be32 bc_cap; + __be32 mc_cap; + __be32 buf_cap; + __be32 aen_cap; + unsigned char vlan_cnt; + unsigned char mixed_cnt; + unsigned char mc_cnt; + unsigned char uc_cnt; + unsigned char reserved[2]; + unsigned char vlan_mode; + unsigned char channel_cnt; + __be32 checksum; +}; + +struct ncsi_rsp_gp_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char mac_cnt; + unsigned char reserved[2]; + unsigned char mac_enable; + unsigned char vlan_cnt; + unsigned char reserved1; + __be16 vlan_enable; + __be32 link_mode; + __be32 bc_mode; + __be32 valid_modes; + unsigned char vlan_mode; + unsigned char fc_mode; + unsigned char reserved2[2]; + __be32 aen_mode; + unsigned char mac[6]; + __be16 vlan; + __be32 checksum; +}; + +struct ncsi_rsp_gcps_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 cnt_hi; + __be32 cnt_lo; + __be32 rx_bytes; + __be32 tx_bytes; + __be32 rx_uc_pkts; + __be32 rx_mc_pkts; + __be32 rx_bc_pkts; + __be32 tx_uc_pkts; + __be32 tx_mc_pkts; + __be32 tx_bc_pkts; + __be32 fcs_err; + __be32 align_err; + __be32 false_carrier; + __be32 runt_pkts; + __be32 jabber_pkts; + __be32 rx_pause_xon; + __be32 rx_pause_xoff; + __be32 tx_pause_xon; + __be32 tx_pause_xoff; + __be32 tx_s_collision; + __be32 tx_m_collision; + __be32 l_collision; + __be32 e_collision; + __be32 rx_ctl_frames; + __be32 rx_64_frames; + __be32 rx_127_frames; + __be32 rx_255_frames; + __be32 rx_511_frames; + __be32 rx_1023_frames; + __be32 rx_1522_frames; + __be32 rx_9022_frames; + __be32 tx_64_frames; + __be32 tx_127_frames; + __be32 tx_255_frames; + __be32 tx_511_frames; + __be32 tx_1023_frames; + __be32 tx_1522_frames; + __be32 tx_9022_frames; + __be32 rx_valid_bytes; + __be32 rx_runt_pkts; + __be32 rx_jabber_pkts; + __be32 checksum; +}; + +struct ncsi_rsp_gns_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 rx_cmds; + __be32 dropped_cmds; + __be32 cmd_type_errs; + __be32 cmd_csum_errs; + __be32 rx_pkts; + __be32 tx_pkts; + __be32 tx_aen_pkts; + __be32 checksum; +}; + +struct ncsi_rsp_gnpts_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 tx_pkts; + __be32 tx_dropped; + __be32 tx_channel_err; + __be32 tx_us_err; + __be32 rx_pkts; + __be32 rx_dropped; + __be32 rx_channel_err; + __be32 rx_us_err; + __be32 rx_os_err; + __be32 checksum; +}; + +struct ncsi_rsp_gps_pkt { + struct ncsi_rsp_pkt_hdr rsp; + __be32 status; + __be32 checksum; +}; + +struct ncsi_rsp_gpuuid_pkt { + struct ncsi_rsp_pkt_hdr rsp; + unsigned char uuid[16]; + __be32 checksum; +}; + +struct ncsi_rsp_oem_handler { + unsigned int mfr_id; + int (*handler)(struct ncsi_request *); +}; + +struct ncsi_rsp_handler { + unsigned char type; + int payload; + int (*handler)(struct ncsi_request *); +}; + +struct ncsi_aen_pkt_hdr { + struct ncsi_pkt_hdr common; + unsigned char reserved2[3]; + unsigned char type; +}; + +struct ncsi_aen_lsc_pkt { + struct ncsi_aen_pkt_hdr aen; + __be32 status; + __be32 oem_status; + __be32 checksum; + unsigned char pad[14]; +}; + +struct ncsi_aen_hncdsc_pkt { + struct ncsi_aen_pkt_hdr aen; + __be32 status; + __be32 checksum; + unsigned char pad[18]; +}; + +struct ncsi_aen_handler { + unsigned char type; + int payload; + int (*handler)(struct ncsi_dev_priv *, struct ncsi_aen_pkt_hdr *); +}; + +enum { + ncsi_dev_state_registered = 0, + ncsi_dev_state_functional = 256, + ncsi_dev_state_probe = 512, + ncsi_dev_state_config = 768, + ncsi_dev_state_suspend = 1024, +}; + +enum { + MLX_MC_RBT_SUPPORT = 1, + MLX_MC_RBT_AVL = 8, +}; + +enum { + ncsi_dev_state_major = 65280, + ncsi_dev_state_minor = 255, + ncsi_dev_state_probe_deselect = 513, + ncsi_dev_state_probe_package = 514, + ncsi_dev_state_probe_channel = 515, + ncsi_dev_state_probe_mlx_gma = 516, + ncsi_dev_state_probe_mlx_smaf = 517, + ncsi_dev_state_probe_cis = 518, + ncsi_dev_state_probe_keep_phy = 519, + ncsi_dev_state_probe_gvi = 520, + ncsi_dev_state_probe_gc = 521, + ncsi_dev_state_probe_gls = 522, + ncsi_dev_state_probe_dp = 523, + ncsi_dev_state_config_sp = 769, + ncsi_dev_state_config_cis = 770, + ncsi_dev_state_config_oem_gma = 771, + ncsi_dev_state_config_clear_vids = 772, + ncsi_dev_state_config_svf = 773, + ncsi_dev_state_config_ev = 774, + ncsi_dev_state_config_sma = 775, + ncsi_dev_state_config_ebf = 776, + ncsi_dev_state_config_dgmf = 777, + ncsi_dev_state_config_ecnt = 778, + ncsi_dev_state_config_ec = 779, + ncsi_dev_state_config_ae = 780, + ncsi_dev_state_config_gls = 781, + ncsi_dev_state_config_done = 782, + ncsi_dev_state_suspend_select = 1025, + ncsi_dev_state_suspend_gls = 1026, + ncsi_dev_state_suspend_dcnt = 1027, + ncsi_dev_state_suspend_dc = 1028, + ncsi_dev_state_suspend_deselect = 1029, + ncsi_dev_state_suspend_done = 1030, +}; + +struct vlan_vid { + struct list_head list; + __be16 proto; + u16 vid; +}; + +struct ncsi_oem_gma_handler { + unsigned int mfr_id; + int (*handler)(struct ncsi_cmd_arg *); +}; + +enum ncsi_nl_commands { + NCSI_CMD_UNSPEC = 0, + NCSI_CMD_PKG_INFO = 1, + NCSI_CMD_SET_INTERFACE = 2, + NCSI_CMD_CLEAR_INTERFACE = 3, + NCSI_CMD_SEND_CMD = 4, + NCSI_CMD_SET_PACKAGE_MASK = 5, + NCSI_CMD_SET_CHANNEL_MASK = 6, + __NCSI_CMD_AFTER_LAST = 7, + NCSI_CMD_MAX = 6, +}; + +enum ncsi_nl_attrs { + NCSI_ATTR_UNSPEC = 0, + NCSI_ATTR_IFINDEX = 1, + NCSI_ATTR_PACKAGE_LIST = 2, + NCSI_ATTR_PACKAGE_ID = 3, + NCSI_ATTR_CHANNEL_ID = 4, + NCSI_ATTR_DATA = 5, + NCSI_ATTR_MULTI_FLAG = 6, + NCSI_ATTR_PACKAGE_MASK = 7, + NCSI_ATTR_CHANNEL_MASK = 8, + __NCSI_ATTR_AFTER_LAST = 9, + NCSI_ATTR_MAX = 8, +}; + +enum ncsi_nl_pkg_attrs { + NCSI_PKG_ATTR_UNSPEC = 0, + NCSI_PKG_ATTR = 1, + NCSI_PKG_ATTR_ID = 2, + NCSI_PKG_ATTR_FORCED = 3, + NCSI_PKG_ATTR_CHANNEL_LIST = 4, + __NCSI_PKG_ATTR_AFTER_LAST = 5, + NCSI_PKG_ATTR_MAX = 4, +}; + +enum ncsi_nl_channel_attrs { + NCSI_CHANNEL_ATTR_UNSPEC = 0, + NCSI_CHANNEL_ATTR = 1, + NCSI_CHANNEL_ATTR_ID = 2, + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 3, + NCSI_CHANNEL_ATTR_VERSION_MINOR = 4, + NCSI_CHANNEL_ATTR_VERSION_STR = 5, + NCSI_CHANNEL_ATTR_LINK_STATE = 6, + NCSI_CHANNEL_ATTR_ACTIVE = 7, + NCSI_CHANNEL_ATTR_FORCED = 8, + NCSI_CHANNEL_ATTR_VLAN_LIST = 9, + NCSI_CHANNEL_ATTR_VLAN_ID = 10, + __NCSI_CHANNEL_ATTR_AFTER_LAST = 11, + NCSI_CHANNEL_ATTR_MAX = 10, +}; + struct sockaddr_xdp { __u16 sxdp_family; __u16 sxdp_flags; @@ -96473,10 +130988,17 @@ struct xdp_options { __u32 flags; }; -struct xdp_desc { - __u64 addr; - __u32 len; - __u32 options; +struct xsk_map { + struct bpf_map map; + spinlock_t lock; + struct xdp_sock *xsk_map[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct xdp_ring; @@ -96519,7 +131041,7 @@ struct xdp_ring { long: 64; long: 64; long: 64; - u32 pad; + u32 pad1; long: 64; long: 64; long: 64; @@ -96528,6 +131050,14 @@ struct xdp_ring { long: 64; long: 64; u32 consumer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad2; u32 flags; long: 64; long: 64; @@ -96536,6 +131066,14 @@ struct xdp_ring { long: 64; long: 64; long: 64; + u32 pad3; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct xdp_rxtx_ring { @@ -96558,6 +131096,532 @@ struct xsk_dma_map { bool dma_need_sync; }; +struct mptcp_mib { + long unsigned int mibs[45]; +}; + +enum mptcp_event_type { + MPTCP_EVENT_UNSPEC = 0, + MPTCP_EVENT_CREATED = 1, + MPTCP_EVENT_ESTABLISHED = 2, + MPTCP_EVENT_CLOSED = 3, + MPTCP_EVENT_ANNOUNCED = 6, + MPTCP_EVENT_REMOVED = 7, + MPTCP_EVENT_SUB_ESTABLISHED = 10, + MPTCP_EVENT_SUB_CLOSED = 11, + MPTCP_EVENT_SUB_PRIORITY = 13, +}; + +struct mptcp_options_received { + u64 sndr_key; + u64 rcvr_key; + u64 data_ack; + u64 data_seq; + u32 subflow_seq; + u16 data_len; + __sum16 csum; + u16 suboptions; + u32 token; + u32 nonce; + u16 use_map: 1; + u16 dsn64: 1; + u16 data_fin: 1; + u16 use_ack: 1; + u16 ack64: 1; + u16 mpc_map: 1; + u16 reset_reason: 4; + u16 reset_transient: 1; + u16 echo: 1; + u16 backup: 1; + u16 deny_join_id0: 1; + u16 __unused: 2; + u8 join_id; + u64 thmac; + u8 hmac[20]; + struct mptcp_addr_info addr; + struct mptcp_rm_list rm_list; + u64 ahmac; + u64 fail_seq; +}; + +struct mptcp_pm_data { + struct mptcp_addr_info local; + struct mptcp_addr_info remote; + struct list_head anno_list; + spinlock_t lock; + u8 addr_signal; + bool server_side; + bool work_pending; + bool accept_addr; + bool accept_subflow; + bool remote_deny_join_id0; + u8 add_addr_signaled; + u8 add_addr_accepted; + u8 local_addr_used; + u8 subflows; + u8 status; + struct mptcp_rm_list rm_list_tx; + struct mptcp_rm_list rm_list_rx; +}; + +struct mptcp_data_frag { + struct list_head list; + u64 data_seq; + u16 data_len; + u16 offset; + u16 overhead; + u16 already_sent; + struct page *page; +}; + +struct mptcp_sock { + struct inet_connection_sock sk; + u64 local_key; + u64 remote_key; + u64 write_seq; + u64 snd_nxt; + u64 ack_seq; + u64 rcv_wnd_sent; + u64 rcv_data_fin_seq; + int wmem_reserved; + struct sock *last_snd; + int snd_burst; + int old_wspace; + u64 recovery_snd_nxt; + u64 snd_una; + u64 wnd_end; + long unsigned int timer_ival; + u32 token; + int rmem_released; + long unsigned int flags; + bool recovery; + bool can_ack; + bool fully_established; + bool rcv_data_fin; + bool snd_data_fin_enable; + bool rcv_fastclose; + bool use_64bit_ack; + bool csum_enabled; + spinlock_t join_list_lock; + int keepalive_cnt; + int keepalive_idle; + int keepalive_intvl; + struct work_struct work; + struct sk_buff *ooo_last_skb; + struct rb_root out_of_order_queue; + struct sk_buff_head receive_queue; + int tx_pending_data; + struct list_head conn_list; + struct list_head rtx_queue; + struct mptcp_data_frag *first_pending; + struct list_head join_list; + struct socket *subflow; + struct sock *first; + struct mptcp_pm_data pm; + struct { + u32 space; + u32 copied; + u64 time; + u64 rtt_us; + } rcvq_space; + u32 setsockopt_seq; + char ca_name[16]; +}; + +struct mptcp_subflow_request_sock { + struct tcp_request_sock sk; + u16 mp_capable: 1; + u16 mp_join: 1; + u16 backup: 1; + u16 request_bkup: 1; + u16 csum_reqd: 1; + u16 allow_join_id0: 1; + u8 local_id; + u8 remote_id; + u64 local_key; + u64 idsn; + u32 token; + u32 ssn_offset; + u64 thmac; + u32 local_nonce; + u32 remote_nonce; + struct mptcp_sock *msk; + struct hlist_nulls_node token_node; +}; + +enum mptcp_data_avail { + MPTCP_SUBFLOW_NODATA = 0, + MPTCP_SUBFLOW_DATA_AVAIL = 1, +}; + +struct mptcp_delegated_action { + struct napi_struct napi; + struct list_head head; +}; + +struct mptcp_subflow_context { + struct list_head node; + u64 local_key; + u64 remote_key; + u64 idsn; + u64 map_seq; + u32 snd_isn; + u32 token; + u32 rel_write_seq; + u32 map_subflow_seq; + u32 ssn_offset; + u32 map_data_len; + __wsum map_data_csum; + u32 map_csum_len; + u32 request_mptcp: 1; + u32 request_join: 1; + u32 request_bkup: 1; + u32 mp_capable: 1; + u32 mp_join: 1; + u32 fully_established: 1; + u32 pm_notified: 1; + u32 conn_finished: 1; + u32 map_valid: 1; + u32 map_csum_reqd: 1; + u32 map_data_fin: 1; + u32 mpc_map: 1; + u32 backup: 1; + u32 send_mp_prio: 1; + u32 send_mp_fail: 1; + u32 rx_eof: 1; + u32 can_ack: 1; + u32 disposable: 1; + u32 stale: 1; + u32 valid_csum_seen: 1; + u32 close_event_done: 1; + u32 __unused: 11; + enum mptcp_data_avail data_avail; + u32 remote_nonce; + u64 thmac; + u32 local_nonce; + u32 remote_token; + u8 hmac[20]; + u8 local_id; + u8 remote_id; + u8 reset_seen: 1; + u8 reset_transient: 1; + u8 reset_reason: 4; + u8 stale_count; + long int delegated_status; + struct list_head delegated_node; + u32 setsockopt_seq; + u32 stale_rcv_tstamp; + struct sock *tcp_sock; + struct sock *conn; + const struct inet_connection_sock_af_ops *icsk_af_ops; + void (*tcp_data_ready)(struct sock *); + void (*tcp_state_change)(struct sock *); + void (*tcp_write_space)(struct sock *); + void (*tcp_error_report)(struct sock *); + struct callback_head rcu; +}; + +enum linux_mptcp_mib_field { + MPTCP_MIB_NUM = 0, + MPTCP_MIB_MPCAPABLEPASSIVE = 1, + MPTCP_MIB_MPCAPABLEACTIVE = 2, + MPTCP_MIB_MPCAPABLEACTIVEACK = 3, + MPTCP_MIB_MPCAPABLEPASSIVEACK = 4, + MPTCP_MIB_MPCAPABLEPASSIVEFALLBACK = 5, + MPTCP_MIB_MPCAPABLEACTIVEFALLBACK = 6, + MPTCP_MIB_TOKENFALLBACKINIT = 7, + MPTCP_MIB_RETRANSSEGS = 8, + MPTCP_MIB_JOINNOTOKEN = 9, + MPTCP_MIB_JOINSYNRX = 10, + MPTCP_MIB_JOINSYNBACKUPRX = 11, + MPTCP_MIB_JOINSYNACKRX = 12, + MPTCP_MIB_JOINSYNACKBACKUPRX = 13, + MPTCP_MIB_JOINSYNACKMAC = 14, + MPTCP_MIB_JOINACKRX = 15, + MPTCP_MIB_JOINACKMAC = 16, + MPTCP_MIB_DSSNOMATCH = 17, + MPTCP_MIB_INFINITEMAPRX = 18, + MPTCP_MIB_DSSTCPMISMATCH = 19, + MPTCP_MIB_DATACSUMERR = 20, + MPTCP_MIB_OFOQUEUETAIL = 21, + MPTCP_MIB_OFOQUEUE = 22, + MPTCP_MIB_OFOMERGE = 23, + MPTCP_MIB_NODSSWINDOW = 24, + MPTCP_MIB_DUPDATA = 25, + MPTCP_MIB_ADDADDR = 26, + MPTCP_MIB_ECHOADD = 27, + MPTCP_MIB_PORTADD = 28, + MPTCP_MIB_ADDADDRDROP = 29, + MPTCP_MIB_JOINPORTSYNRX = 30, + MPTCP_MIB_JOINPORTSYNACKRX = 31, + MPTCP_MIB_JOINPORTACKRX = 32, + MPTCP_MIB_MISMATCHPORTSYNRX = 33, + MPTCP_MIB_MISMATCHPORTACKRX = 34, + MPTCP_MIB_RMADDR = 35, + MPTCP_MIB_RMADDRDROP = 36, + MPTCP_MIB_RMSUBFLOW = 37, + MPTCP_MIB_MPPRIOTX = 38, + MPTCP_MIB_MPPRIORX = 39, + MPTCP_MIB_MPFAILTX = 40, + MPTCP_MIB_MPFAILRX = 41, + MPTCP_MIB_RCVPRUNED = 42, + MPTCP_MIB_SUBFLOWSTALE = 43, + MPTCP_MIB_SUBFLOWRECOVER = 44, + __MPTCP_MIB_MAX = 45, +}; + +struct trace_event_raw_mptcp_subflow_get_send { + struct trace_entry ent; + bool active; + bool free; + u32 snd_wnd; + u32 pace; + u8 backup; + u64 ratio; + char __data[0]; +}; + +struct trace_event_raw_mptcp_dump_mpext { + struct trace_entry ent; + u64 data_ack; + u64 data_seq; + u32 subflow_seq; + u16 data_len; + u16 csum; + u8 use_map; + u8 dsn64; + u8 data_fin; + u8 use_ack; + u8 ack64; + u8 mpc_map; + u8 frozen; + u8 reset_transient; + u8 reset_reason; + u8 csum_reqd; + char __data[0]; +}; + +struct trace_event_raw_ack_update_msk { + struct trace_entry ent; + u64 data_ack; + u64 old_snd_una; + u64 new_snd_una; + u64 new_wnd_end; + u64 msk_wnd_end; + char __data[0]; +}; + +struct trace_event_raw_subflow_check_data_avail { + struct trace_entry ent; + u8 status; + const void *skb; + char __data[0]; +}; + +struct trace_event_data_offsets_mptcp_subflow_get_send {}; + +struct trace_event_data_offsets_mptcp_dump_mpext {}; + +struct trace_event_data_offsets_ack_update_msk {}; + +struct trace_event_data_offsets_subflow_check_data_avail {}; + +typedef void (*btf_trace_mptcp_subflow_get_send)(void *, struct mptcp_subflow_context *); + +typedef void (*btf_trace_get_mapping_status)(void *, struct mptcp_ext *); + +typedef void (*btf_trace_ack_update_msk)(void *, u64, u64, u64, u64, u64); + +typedef void (*btf_trace_subflow_check_data_avail)(void *, __u8, struct sk_buff *); + +struct mptcp_skb_cb { + u64 map_seq; + u64 end_seq; + u32 offset; + u8 has_rxtstamp: 1; +}; + +enum { + MPTCP_CMSG_TS = 1, +}; + +struct mptcp_sendmsg_info { + int mss_now; + int size_goal; + u16 limit; + u16 sent; + unsigned int flags; + bool data_lock_held; +}; + +struct subflow_send_info { + struct sock *ssk; + u64 ratio; +}; + +enum mapping_status { + MAPPING_OK = 0, + MAPPING_INVALID = 1, + MAPPING_EMPTY = 2, + MAPPING_DATA_FIN = 3, + MAPPING_DUMMY = 4, +}; + +enum mptcp_addr_signal_status { + MPTCP_ADD_ADDR_SIGNAL = 0, + MPTCP_ADD_ADDR_ECHO = 1, + MPTCP_RM_ADDR_SIGNAL = 2, +}; + +struct csum_pseudo_header { + __be64 data_seq; + __be32 subflow_seq; + __be16 data_len; + __sum16 csum; +}; + +struct token_bucket { + spinlock_t lock; + int chain_len; + struct hlist_nulls_head req_chain; + struct hlist_nulls_head msk_chain; +}; + +struct mptcp_pernet { + struct ctl_table_header *ctl_table_hdr; + unsigned int add_addr_timeout; + unsigned int stale_loss_cnt; + u8 mptcp_enabled; + u8 checksum_enabled; + u8 allow_join_initial_addr_port; +}; + +enum mptcp_pm_status { + MPTCP_PM_ADD_ADDR_RECEIVED = 0, + MPTCP_PM_ADD_ADDR_SEND_ACK = 1, + MPTCP_PM_RM_ADDR_RECEIVED = 2, + MPTCP_PM_ESTABLISHED = 3, + MPTCP_PM_ALREADY_ESTABLISHED = 4, + MPTCP_PM_SUBFLOW_ESTABLISHED = 5, +}; + +enum { + INET_ULP_INFO_UNSPEC = 0, + INET_ULP_INFO_NAME = 1, + INET_ULP_INFO_TLS = 2, + INET_ULP_INFO_MPTCP = 3, + __INET_ULP_INFO_MAX = 4, +}; + +enum { + MPTCP_SUBFLOW_ATTR_UNSPEC = 0, + MPTCP_SUBFLOW_ATTR_TOKEN_REM = 1, + MPTCP_SUBFLOW_ATTR_TOKEN_LOC = 2, + MPTCP_SUBFLOW_ATTR_RELWRITE_SEQ = 3, + MPTCP_SUBFLOW_ATTR_MAP_SEQ = 4, + MPTCP_SUBFLOW_ATTR_MAP_SFSEQ = 5, + MPTCP_SUBFLOW_ATTR_SSN_OFFSET = 6, + MPTCP_SUBFLOW_ATTR_MAP_DATALEN = 7, + MPTCP_SUBFLOW_ATTR_FLAGS = 8, + MPTCP_SUBFLOW_ATTR_ID_REM = 9, + MPTCP_SUBFLOW_ATTR_ID_LOC = 10, + MPTCP_SUBFLOW_ATTR_PAD = 11, + __MPTCP_SUBFLOW_ATTR_MAX = 12, +}; + +enum { + MPTCP_PM_ATTR_UNSPEC = 0, + MPTCP_PM_ATTR_ADDR = 1, + MPTCP_PM_ATTR_RCV_ADD_ADDRS = 2, + MPTCP_PM_ATTR_SUBFLOWS = 3, + __MPTCP_PM_ATTR_MAX = 4, +}; + +enum { + MPTCP_PM_ADDR_ATTR_UNSPEC = 0, + MPTCP_PM_ADDR_ATTR_FAMILY = 1, + MPTCP_PM_ADDR_ATTR_ID = 2, + MPTCP_PM_ADDR_ATTR_ADDR4 = 3, + MPTCP_PM_ADDR_ATTR_ADDR6 = 4, + MPTCP_PM_ADDR_ATTR_PORT = 5, + MPTCP_PM_ADDR_ATTR_FLAGS = 6, + MPTCP_PM_ADDR_ATTR_IF_IDX = 7, + __MPTCP_PM_ADDR_ATTR_MAX = 8, +}; + +enum { + MPTCP_PM_CMD_UNSPEC = 0, + MPTCP_PM_CMD_ADD_ADDR = 1, + MPTCP_PM_CMD_DEL_ADDR = 2, + MPTCP_PM_CMD_GET_ADDR = 3, + MPTCP_PM_CMD_FLUSH_ADDRS = 4, + MPTCP_PM_CMD_SET_LIMITS = 5, + MPTCP_PM_CMD_GET_LIMITS = 6, + MPTCP_PM_CMD_SET_FLAGS = 7, + __MPTCP_PM_CMD_AFTER_LAST = 8, +}; + +enum mptcp_event_attr { + MPTCP_ATTR_UNSPEC = 0, + MPTCP_ATTR_TOKEN = 1, + MPTCP_ATTR_FAMILY = 2, + MPTCP_ATTR_LOC_ID = 3, + MPTCP_ATTR_REM_ID = 4, + MPTCP_ATTR_SADDR4 = 5, + MPTCP_ATTR_SADDR6 = 6, + MPTCP_ATTR_DADDR4 = 7, + MPTCP_ATTR_DADDR6 = 8, + MPTCP_ATTR_SPORT = 9, + MPTCP_ATTR_DPORT = 10, + MPTCP_ATTR_BACKUP = 11, + MPTCP_ATTR_ERROR = 12, + MPTCP_ATTR_FLAGS = 13, + MPTCP_ATTR_TIMEOUT = 14, + MPTCP_ATTR_IF_IDX = 15, + MPTCP_ATTR_RESET_REASON = 16, + MPTCP_ATTR_RESET_FLAGS = 17, + __MPTCP_ATTR_AFTER_LAST = 18, +}; + +struct mptcp_pm_addr_entry { + struct list_head list; + struct mptcp_addr_info addr; + u8 flags; + int ifindex; + struct socket *lsk; +}; + +struct mptcp_pm_add_entry { + struct list_head list; + struct mptcp_addr_info addr; + struct timer_list add_timer; + struct mptcp_sock *sock; + u8 retrans_times; +}; + +struct pm_nl_pernet { + spinlock_t lock; + struct list_head local_addr_list; + unsigned int addrs; + unsigned int stale_loss_cnt; + unsigned int add_addr_signal_max; + unsigned int add_addr_accept_max; + unsigned int local_addr_max; + unsigned int subflows_max; + unsigned int next_id; + long unsigned int id_bitmap[4]; +}; + +struct join_entry { + u32 token; + u32 remote_nonce; + u32 local_nonce; + u8 join_id; + u8 local_id; + u8 backup; + u8 valid; +}; + struct pcibios_fwaddrmap { struct list_head list; struct pci_dev *dev; @@ -96592,10 +131656,10 @@ struct pci_mmcfg_hostbridge_probe { u32 devfn; u32 vendor; u32 device; - const char * (*probe)(); + const char * (*probe)(void); }; -typedef bool (*check_reserved_t)(u64, u64, unsigned int); +typedef bool (*check_reserved_t)(u64, u64, enum e820_type); struct physdev_restore_msi { uint8_t bus; @@ -96666,6 +131730,7 @@ struct irq_router { u16 device; int (*get)(struct pci_dev *, struct pci_dev *, int); int (*set)(struct pci_dev *, struct pci_dev *, int, int); + int (*lvl)(struct pci_dev *, struct pci_dev *, int, int); }; struct irq_router_handler { @@ -96752,6 +131817,11 @@ struct saved_context { typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); +struct msr_enumeration { + u32 msr_no; + u32 feature; +}; + struct restore_data_record { long unsigned int jump_address; long unsigned int jump_address_phys;