TD_ 4gq/./tmp/_lbl/prd=xos/typ=386AT/rel=2.2.3c/vol=N05 444 0 0  0 4261512512 13277 (U./usr/lib/storel*8 711 3 3 263275 4040366362 7037 O,I idG `? ?vvGvI!I!O.WM7  _QDl"l"9VW؎6D%< t< t6v v 3ҋڊuN6D%£r. _^ˊ>>Ju t*Et@EꬊuĪEN6j*< t< tN6D%r._^VW؎6D%< t< tN6v F3ҋڊuN6D%£r. _^ˊ>>Ju t*Et@EꬊuĪEN6j*6D%r._^ˋW؎G G2t3__܌VWwߦuN3ًD&*E_^܋WwߦuN3ًD&*E_   r.$r.Sw ww ?ێ[ tGGGG` | t21VW؎ 㵰 W+)wuN| uN F_^ˋVwO+t\> tUW؎3G }EA}8F},I} }_e^PQSw ww ?[S;G t ؎[G HYXËW؎3AًË_ˋW֌؎wO t2Ë_ˋW؎w3AًD*E_ˋ׌؎3@@؋U^v vw7P?^W]U^WN?^W]U^KK&=Ot &]UVW>u%tjut`u v?_^]3PPPPp#?t3‡ tڣ3HH  Ì؎N3ێ* ҌU3P$?[Ћ]UV3P?[ uLL6^3=t!tHBBuP3XQS?[Y3^]UWV3ۋF }ӋVFVF }ӋV F V NF f׋ t؃^_]22USVF uN F3؋F>ȋ^ VF u3RPv v P?;Vwr;Fv3ҋ^[]UVF N؋F ږf؋Ӌ^]USF uN F3F3Hȋ^ VF u3RPv v P?;Vwr ;Fv+F V +FV؃[]2U^KK]4UVW?u)3u3$@$D6N؎_^]UVWߎNj~*)ً~v׹Ot tIs_^]UWߎNj~*ыFuH+_]UVW+N ~ ߎNj~vً+ًˋtHw_^]UWߎNj~*OFu@+_]sAwtBH;st4Dt L+HLƌځOt&&=t%tH;stDG t&t=Ot&7뽋w3Y;t $@@Mt M tNN3QEt+IAA&;vurr #+ uu3YRQtWDw+JUXYZSP3RRPPp#?Z[t UVWNA~3ی=OuWOOPW$;uBtHs; t2r#=u0GG3d;u%Mt^Z믋 AA+@F3_Y _^]UWVS3F }׋VFVF }׋V F V uN F3؋F>؋N VF u3RPv v P?;Vwr;Fv3ҋ t؃[^_]USW3F }׋VFVF }V F V uN F3F3 uGL؋N VF  u3RPv v P?;Vwr ;Fv+F V +FV u؃_[]U^v vw7 ?^W]UVWN ~ߎNj~FuH+_^]UVWN ~"ߎNj~vt tIsF_^]~ (d2+ ?PE?+r%;r ZXPRS ?[r.U$? SP$? ?* *?U^ ?U[ ?WV6r Fx.V ?>x8 ?WVvƷ? FW ?F^_U[ ?WVv<|u;u^_U[ ?V``u^U[ ?V``u^U [ ?WVjvjvq?FVt+%~W?F tFO uF^_U3[ ?v?* *?%?U3[ ?v?P?U [ ?WV?^W+FVFP!?uFwF/} Jt} Ku] F] FvW?FvW?F>t:9v| 9vu0}|*9v 9vu }}FVFP!?E^_U3[ ?WVv~:|t }?-mD +D+^_U[ ?WVjhQ^w7 ?FVjhQ^w7 ?FV~}FQVn^Fjjv6W}?=nu|+ +zG9z~|^FD^F?^_U[ ?WV|GF u^kG |GFGFGFFFFkGFGFGFn^7V?n^dPV?n^dPV?n^dPV?^ d|D2D0^G dPV?|^_U3[ ?F u Fd u F unmU3[ ?VvF~ |F 0 FF 0F^U[ ?WV>trFP<#?jjtjv#$? P6?h#? u<u*GGF><t GNu<-u+F tFF<9kN ȃ0N<0}~tF؉FiF<t+ t>F<t GNu^_U3[ ?c?W ?v ?U[ ?V V?96Lw^U[ ?WVv u[Dt/Dt+ V?DP ? } Dtt?DDDD^_U3[ ?VvDu#D-Dt|t9DsVK?DtD t+^U[ ?VvD$R0 ?[Zr#t=u+ _^]UPSQRVW ؋F-AP2__^ZY[X]U[ ?X#?FV~t^WFV**? %?**?%?U[ ?^%FW؀FVjjRP ?^Wjjvv ?F0U3[ ?WVv~^ t8^ ^ +)G^ ^ v ?v WjV%?^ WV^ 7 ?Nj^ ^_U^[ ?WVv~ FEFȋFʃ~u ^㋇NF̊F tZ=%tUvFF t=%u+FFFFʉF;FvFPWvv6?vvvʚ ?FĉFʃ~uiF+F)EFʉEF;Fv}t W?EDt'Euvj F+FPh ? t WK?E taF[+FFFډFFF=9~=1}u- =v. NՀNπNɀNÀ N@FF@uF^GF }؉Fv떃F^GF }FDuN F-0FkF F-0FF؉^uF@t FFBFF9N2FtF^GW F^GFVFىFF }.FFu ~uFV؃ډFVFtF Ft FFFVFV |= wF Fuu=xuҋFFF t$Fu N+FމF F+FFFFgFuaF+FމFFPWjh6?n~FFʉF;FvFPWvh6?vhvʚ ?FFʃ~t:FFʉF;FvFPWvv6?vvvʚ ?FFFt^FFFPWjh6?n~FFʉF;FvFPWvh6?vhvʚ ?FFʃ~~:FFʉF;FvFPWvv6?vvvʚ ?FFFuKFuBF9F7F+FމFFPWjh6?n~FFʉF;FvFPWvh6?vhvʚ ?FF^_U[ ?V Du 96Lw+^*<#*?U^( ?]*X#*? ?*p#*?Uvv vv#?]˸(%?OU[ ?WVv>xuV#?F u=u+^_U3[ ?WVv~G8Eu F|=u <u}=t+^_*$*? ?U[ ?V0,9Fu"~t |tDX~u |tDGˋ܁ ?r.ˋ܁ ?rˋ܁ ?r3ˋ܁ ?U[ ?WVv ~~9~ ~3D$<u|t9Du|uDDu V?+ t+$D㋇NFF n9DsDu sWvDP?F;tL ~|F+FF~9~vFFPvv ?F)DF|}+DȊD㋇N+;} V?+~u.DDt#Duvj th ? t VK?F 8FFF N+F ~`VK?@uFH+vȋF +^_*'*?6%?U [ ?VFFFFFFF FFPvv?^^ F u j ? ^ Vv 6 ^~ vvc?*FV uj ^&&WÌ~ vv v=?(FV FV^&&WÌ£U.[ ?WV>Ju2F&~G؊@FDF=u& r.Fv^FNҋON^Ҏ&&WFV t+^F&9GuV&w? u ^&G^ĸ^_U츔[ ?WV<t#<'t<"u ;uN<;u|;u<tFF͊Dt NwuSFlD%D%D%'t"u4Ǣ$VWl0?D%D% t $*;u uD% tOu+Ǣ$D%>$&u&u!$PVl?D%VlJ?D%D% thF+FP'?np u#GĞnF&G+&G&ÌRPtPG..FV unp..-^&& Gt&&WFV^np&&W^_U츐[ ?V]?a?D%D%?,t{?vFFp>vtyD%t?D%?J 'us~u{?D%t?D%>t-D%D%jM,?D%t?D%?,t׋D%D%?>u{?ƆtD%D%~t(=<t=>trrt u&Ɔt:rut ƆtD%^Fƈp9Fr{?Ntt^FvPF+PƝ?D%?>u ~tD%+..v.^U츎[ ?VdžtD%t?FvFFrD%D% u D%F%uvr?Ft't"tƢ$^Fr9Fr{?ND%D%^Fr9Fr{?N$*;u*D%8u"D%^Fƈr9Fr{?N u$*;uu5tv^Fƈr9Fr{?NFttDtu!uD%D%^FHu,utu-~tu FD%1;u tu u^Fƈr9Fr{?N~uP^FvPF+PƝ?^U[ ?WV? tZ jj?v.D%  D%D%FF;r{?N~u+FP'? u#GĞF&G+&G&ÌRP PG..FV u..-^&& Gt&&WFV^&&W?^_U[ ?F> tSd?6 hJ h6 G t;>J !u4FD%D%?D%t?D%?,tٚ?> t~u G# ~u D%p?U [ ?jD?]? jM,?D%F<,t(؊FFuFu{?D%D%FFt?FtOt.&G  GW.. uG"*FG#t.FF9Fs"h jƝ?FD%?,tJD%C GW..?Z FG j *!P?^O u !tS^?P  66:?U[ ?Fvv v FPvvע? U[ ?WV> 6 u Dd D }uP}u-Wy?> t^ jjvɍ?6^^?ubEt?D\}u݋D%? jjvɍ?6^ Eu Dj {?E uDDEtj{?E DEDEUD TD}u}u E DEDM t}$t >rtEDMt<EEu Mt|E㋇^ D }u<t} rd l D }u}$td% l D E uL v 9D u}u6m?v?^_U[ ?WVvd?6 x G tM twtn6j*? wF?Fv =~9jd{?6 hE hG tj>E t>E u}v D%>E uDB6j*hf? w6v f?hhG?v D%V?*  ?.u'v @D%"E ㋇jjVɍ?+6 hX G tjjx ?$u1u+ԑ?x z E UE ED ??u ujjVɍ?>rt$jL{? j 6 G{?jjVɍ?^_U[ ?(^ F uG FF^ uut>5 t>t uv ^~t=vvv4?>pt(^ uut>5 t>t uG?FF ~ tjU[ ?+FFFk؀ u w 5?RP^wwP?FV>^ uG *+FV&D "^_ G+FV^_  tD ^F uFVU[ ?VD%t?FFFD%FI FI d? ?uSx G t} usum6j*? w?Ƌv =~ jd{?66j*hf? w6v f?hhG?v FFD%FI >J Fu!D%F<'t<"u>t u FPR?>J Ft>J Kt FPJ?~u FPN?~u$>5 t>t u^GGGF^U[ ?V^wD uS? tI|tC^w'?^GD%l.4 I GI ?^GI Ghhj j(v?^UX[ ?VFFF6D%D%D%D%F^Fu<.tݘ؊@FJ GuF >J IuF FFFF^FvFFN uj {?^U[ ?V FFFFFF+FFFFP? t\=t=tLFÉFF*G~tŊF*N*t{?~u ԑ?FFFP;?뻍FP ?vD %xFFFFDDDF FuFtUF$<uj/{?F F%FFt F% F NFFptF%p-@ FF#~u~ u F F$FF%F^?u_F$<tSMF+FV t^FF Ft~tFF- F"F Ft~u ~u݃nNLu^?u덡v 9FtFDG=wY.;D DD|wr| w|tj8{?D %>4 tj{?DD Fhj{?_^;e;e;e;e;l;;OFtCFt DDFFt|tFFP??~u|t FFD TFV|t~t ~t~ uL D uQ~tH~u?D u8<u3~wr~s|t~wr~s |t*D|u,|u&FVĊ* u=u Ft*D|t~wr~w~rw~v |u*D~ tZD t<t|uNF Ft|tF=t =t= t }~twNrF$<<u |uFDDD uM|tGFD u;|u5RD-Ft'~u!FFP??|u >rtF|u$|uRDD u~u FP??<t N਋tZ|tF\ u=u3GF*㋇ D<uC|t=Df D DF(j2vFP?|t\uj5{?~tl D ~t ~t~ u/~u#^?t<u|u^*㋇ Dl D Nਐt(|t"D t jD P?D tD DD tFD tFD tDDDDFD u |t&~t D|v*D u*DFDFDFDFDF@t ~tj2{?F^U3[ ?V>Ru)^vG^G^D$ G ^GG^>F t j{?0>uj >t h h @;u h >u j {?59h uh h 9u*>t F VD%D%F<t u~>t {?+26D%H;Fu!FD%D%D%F<>t< t6D%^V^FF<t tF~>t{?^WVD%FP@?6D%D%t?D%D%?,t{?D%t?D%FP@?>D%D%t?;uVvv? u**+^_J -=v.jB> u ? u*yF? td?6 x G uF Gt*F>J uI~Ěb@?밚b@? 봚(A?F>J u$ABBBYBYBABzAPBIB>uv>v uv>t>w F F >t~th VJ -*= v.C &FZ> u*FX FY? u*F[? u*F\d?6 x G uF Gt*F>J 4u~u*F]e^`b@?F_Sb@? u*F`<(A?F>J /u u*FbaC C CC\CC,CDCCC\C>v uv~tV{?^> t>Tt >I u+#D? t@>t9hRPGh؊VPhZ7y?#D? t GuFGW#D? t Gu jD?ED? x z FV~ tv ^ _G F F u*^u_ u ^ tFF؋F>pt~ uv? ? ^wrw ^vv^vvv4?^wrw ^vG?>pt9~ u3v5?n p ~ t^ wwhn ?n p FV^F>pt>O* u>V* t? B ^F^F~t~ tG?V~ tG>5 t2>t t+ F 9GujvvD?^ 6 D GSv vv4?^^G t2=t=t5hhy?jcE?^ tw '?v?^rw ?>t*( ^G FF*^F*P6?> ~? B F^G *;Fw>O* t? ^w?? ƇH*[?B >t>ptH*+G]?>t > ~? B ^ u w ?vG?>t?^ uSpG?vG?V uFG  G Fv^7 uF G^ VD%D%F<-u*FF@tD%D%؊@F~A|+ȊF+-0FF9Fr{?^*fFFFFFvv*fFFFFF~ rك~tj{?D%D%؊@F$8Ft[~uD%~tSFFvv**FFFFFF~ rՠJ F9s ~tj{?^VD%D%FDЉFu{?D%tvI?^G tf^_ vFރ sG ^D%F<-u*^G G F@t D%D%FvI?^G tj{?WVFD%t?^D%GD%F@t D%D%FFu<.t~.u*^GFD%D%؊@Fu*^G6D%^uF^GF~ rD%D%D%؊@$*=Bt-=DtF=Htx=OtD=Qt?=Rt?D%$8&$t_ ^GD%taFP8? Fݿ؋>D%^+O_?0uOtt tj:{?멠k.< u~t^G t@ u>J Iu~u FPMJ?#WFPH?>$>t>$)t>$,uD%j?^G u#G^_G J w㋇F^_FG v? u#G^_w F^݊GFF^_G *;Fw^_G F< t6F ^݀t^݀tj{?F~ r ^GD%^_ V^7Ք?^7p?^7|uD DuD DjI{?j?F u#G^GG G D TGW^7'?FD%t?D%D%F<(t {?D%06?F~u^G ^FFF^GD%t?D%F<,uD%~)t {?D% ~)t FtFt{?D%F^V^G>t tD%?5 t>t u|t|uj{?|tV? uj5{?|tj5{?> td?^G2>5 t+>t t$^uGD% % G^GG^tSM?^G^t>t uvO?^ WV^7>J Fu D Ph?>J Kt->J Gt&>J Jt|t |tj+{?DDD>t tjN{?|t| u>J Fu >J Ku>Rt >J Gu>J Juj?^G u#G^_G J ㊇^_G ^_G *P?F u#G^_FG |tD DtD TD TD TFVF,R9Fs^FFjFP? ^FF^_G *;Fwċ^7'?|tV? uj5{?|t|u>J Gu>Rt>J JuDj?^G u#G^_G ^_~G J ㋇D=u|t|t <u|tDR;Ds<tj+|uj!{?|v*D^_WV >5 t % G^Gq6G^G j?^G u#G^_G ^_> E G w ? u#G^_w ^G FG F^G^_WVvD% DD%$+D%G-? tDD% u{?|vwD%Dj?D u#G\G LjG EP?F u#G\FG -? uD%D%^FO u^D%^_V06?FpPh?h3HWF?p^ GuvDTW^ tD S5?n p >5 t >t tD > t#>D u^uvs? ujK{?^t vTH?>5 t">t t5 6 h?hFWF?5 qvh?hFWF?a^ u_ G^G *+ңn p > t$^u^ u w p?vm?^tcvF?n p  Lx z D%t?^ >5 t >t u*F>t,j t P G>5 t>t t Ok? Fr+FFD%t j{?/D%D%FPS?D%t?D%?,tՀ>tMJ ㋇^G ~t, u&> t  FGGG ^FGrd? ?tSx G uj {? FGd? ?uSx G u> uj {? uu Sy? > u j{?` G=|=~=t&=tj  Gt jJ{? O ( tӀ>Ju6B G G > tj5V?d?'?~t uF<$tJu6B G G  X G G~uG  G> t |G|Sj?D? Gt j{?i F8GuX 9G uu~t9Gt j{?8 O">X t>X u>t  G~u  Gd? ?t|Sx GF'?D%D%?:t j {?Xd?6 hX G uj>X rjFPDW? u"G$>X u ujjFPDW?V> tj{?~t- uF<$t t Guj{?6 \uw| t\9D t j{?\D >tw"6^d? ?u{?6 hE hG uW6 x G ujX? tu P{?q Gu> u>\tYxY?Rjր>E tj>d? ?urSx G uj O਌tG uj,j{?6 x G t? t j {?" G t G Gtj{? O uD> t j{?4 uF<$t u O$u uã\\D%D%Y?D%t?D%?,t> t Gu j {?_㡲 WVd?D%?:t96 hE hG t>E u+~LJ G뚥{?6 x G uj 6 | tj|tj6D%d? ?tShE hG u+6 x G u jX?6 |tm|tgjp>E u_LJ ]>E uOd?6 x G t 6 Du j{?1L਌tDu  G 6 [? jtj{?^_V~tv?Dtjl{?>u jF{?(.ujGD#x #z t h6?^d? ?u{?"L N t j{?6 GL N Vh 89?|uj9|t%|u|t |tj5{?9Dtj4VՔ?|tj3{?x z 9Tw*r9Ds#x z 9p.wr9n.sx z n.p.DTx z k?V'?^d?6 hUG u 6 x G t  g0j {?'  tj  tG! 6 ^?^ww?^+GGG G!V$?r wk.j3{?$k.P??^ F8FuD%D%F uD%+$P_? t v.?D%t?D%?u{?"D%D%$P_? u v.> u6D%h@hy?h?D%D%uh 89?j Guj.{? >Z u{?zWVFYD%t?D%FFFD%F9F|^㋇F tw-FH;Fv0~\u^F/F^F~F^F uNjD%F t w ? P?>t"? tW?P?>Zt"Z? tW?ZP?jE?F9FIh?P? u#GhDPf?D DFD D P?DD u#G+D6 ^_V6 x G u jX? tujj{?6 D?|t|u >t96u j{?> u D uyVc?L>t9x z GW9p.rw9n.v n.p.x z G&W(D6DTx z D&T(n.p.k?D%Fu&<'uV0d?FtVd?̚{?|0uPD0D0R^WVv>~u6~M>~F~9> t)DTRPEURP? } |^7EF} uË^7D^_VvD%d?D%D%?'t{?? $t?6 x G u j{?y ttt j{?Z 9D$tR΋ ?u{?@6 x G u3 uF<$tete8Ftwf?(g?F*=rc=w^G$x z b d wg?>Ru~rF F*h6z 6x F*%P9f?FtdFed~r``Fd``FhJg?vvWf?f?+d b $hJg?>nu ``^GWRPG`@=k.v f?hJg?^ t w f?^wwWf?VF^0~(r w&vFFPJg?^G.FG/F0~``FN``FN~t~u^w*f?``vD^w(w&v9f?^wg?^$uj ^_$wg?jg?f?^hJg?^wg?^G0^t!u``^wg?^G"F uɚf?F^GWFVr w rF^u t+G@FVFPJg?^O t,t&_u^t_ t ^_wjg?^ujg?jf?^_wg?^ t w f?^wwWf?vvv9f?jg?f?hJg?^GW)RPG`=k.v f?hJg?^ t w f?^wwWf?``WV^?t> u'G^||`=k.vf?hJg?````F``F ``F``R``Q``Q``> ub=$r 6hl?6hJg?6`d*+l*bb,<bb`+-l*bbF^?rbbDZbb~^_F*b=$s+>ujW{?$9Gu!b d 9z u9x uF*`=k.v+f?eF*EPJg?jl? t 6hl?6hJg?``Fb d jl? t 6hl?6hJg?vf?b d jl? t 6hl?6hJg?vf?vf?b d >ujW{?x z FV^G FG *+x z -FVFVFVFV9Vw.r9Fw'FVx z ^F*P m?FVNjFVx z FF FuFF^ GtF^ uF ^ uFFFF^ GtF^ uF ^ uFF*N* ^+ɊjF~v v+F^ Gt~u~t~uF FFF F tF>RuF~t2F*Pl? uF*b=$rhN*+Pl?>Ru>fuj{?f>fuj{?fFF~uF@`d*+-l*F~FFbbF`+-l*Fbbvv v vVn?bb^GF=rbbbbF^ GF=rbbbbFF F tQbbFFV Ċ*bb>fu$bbF FV ?bbF*+b d ``FN u^OਐtEuu^Gvjq?^Oਐtuu^Gvjq?WVv^ D^|u^ |t/|u)^D^ |tD^ ?u~^_WVv>ujW{?FPFPvTq?~th>Ru*PJg?|t~u?|u``D |u t f?| ``O uD=t=t%=t>Rutt ~m?t m?tt Gm?z>Ru D t9=tD؊*PD t96D=r=vD ji{?̋D=r =v=tD+Pvvtt F*Pn?^_V`-l*=uRF^ uG *^ u _ G@FF`=k.v `l.^wf?>Ru ^wf?^wf?^ u?G F``vD F^G *;Fr>``vFF܋^ u``vt D^w !q?^>RuFFPl?vJg?vh?h sWF?`-l*=u`l*db Ff?(g?eF* ~uhJg?``^_0~hhJg?``FPFPvTq?^GtÉF^GWFVvvRPVn?$F``^whg?^wg?vf?^_0~vf?f?WVD%t?D%t j{?!ujj G> }t j{?}uM h 89?F>vte>tt1>t*}uD T9Uu9EuD8E u9Et GD te߀|t |u |u|uj5{?EE| uDEED TEUDE DE | t<u D uE EI*= } tJ*-u??v'?^_Fu'?jj G'?I*= uF8Gt+^ GWVvjVv? u j{? t w??>D%D%?t-?;u#D%D%GtD%GD%9>D%wݡD%+@P?G u#GWwf?^_'?D%t?D%Fd? ?$u u6 hE hG t  ?uD%uG t'jFPv? t'^l.G4 GG -jFPv? u j{?6 x G u> tj {?^G^u G^ 9Gt ã Gvy?FFD%I FI rh 89?FrFI ^t u1u+>vt>v u^GuG@u  8uu&>vdtvv'?FD%FPv?'v'?FD%?'?t4u?tvD%Pf?d?D%?u ?t'?FPv?vhthy?j E?VFFF9Gu jT{?+}F^GF؋vD9Gu;u*F^u j {?F ^GF^u u~u~t^u tj5{?F^>vt>vt>vt>vVt>vu+> uVz? u>ltJ>t"6v7 P w{?T?> u6vh P w{?> t6v{? t\ Vz? txF=Vt =u=f|=g~=i|=k~+>vt~du#Fv~tjvh?v6 G{?vjG{?j jG{?h^ &R &P Gh~ msPF HPv {? tPvvhv y?Vvj{?Fԑ?؋F^WVv<uV|?tV|?<^_Vv<u j{?&uGFãF^WVv<ߡ^_WVvDF|~t؀u*^G=u }tE t;DFDDFDD T DT\GWD T DF}u ^d G ^E8GuD T DTGD T 9Trw9DvD T )DT'D T +DTDT^u*^GD Du^G^tG tj){?^DTG W^_Vv\tDT؃ډDT|t\tD T ؃ډD T ^WVv\t؋\GFt j{? ~v+|u NJNNJN^_VvD t|tj+{?^VvDuj.{?^VvD Du j${?+|r w|rd l ^WVv|DF|t}u؀uj!{?F *= vp.t~?~tWt~?L~tt~?^G 5t~?E '^9uj |u^tu^G ttj-ԑ?D\G\G^_GEtm?DDD~+t~?^t tj#?^?uu ^G @toj,$^G 8tbj%E uWE @ttIj'{?@^?t8=t3j(^F t#9Ftj)Uq!7_R}^G WDT|t E UD T ^_WVv~ E @u(u uG=t-=uj1{?~tUF 9DtJj2{?@EGF>Rujj{?~t~u!G G tj/릋FGG 뚃~t~utj0zFGrEGF>Rujj{?~uGuËF  G8F؋G G tuF 랋F fF p~uE tGpt j{?Q^ G=t=t=t=t"j2ۋOO O0O@v m?ԑ?^_VvtF*PV?DtF*PV?D؋GWDT\GWD T ^WVFF7?|?F^F؃?uPo|?FF*PhH ? u ~)t~(uԑ? ^7?|?F^FG~t ^G^Gv~F*=)v.jjFP ?v~FP}?F*= t =t=tuFV#F#VHFV F V:FV3F3V,jjFP ?v~FP}?FV҉E UjjFP ?v~FPB~?E EjjFP ?v~jFP?j jFP ?v~}tEDjFP|?jFP?j jFP ?v~jFP?9u4 t0D tD +DD DE tE +EE Ej jFP ?jFP|?v~<uE % E EEvm?Ft#D E @tjFP?^GxtjjFP ?v~~$uvvvvP?"F Fu j{?vvvv?E UE EuAE8Dt*EIE tjE P?M M E&E t E E݀M EE uEE E =u}u }tE tEjjFP ?v~~uEmEeeEFFvm?ԑ?FFVajjFP ?v~}uX}uO~u!]uGE E2]G$]uGWE U]G"+FF9vu(}uN}tN E tNE tNvm?ԑ?FFVE Uv^uu vꚨ|?~ tvjFP?FwjjFP ?v~F Fuj{?+EE !vvvvv?E U t|uEEjjFP ?v~FEx z E U~sw ~s EjjFP ?v~M jjFP ?v~E t}tD t jB{?kFED t E  uEE $L  E :jjFP ?jFP|?v~F*=t=tA=tD=tR=t[=t;F Ft9++҉FVFVE U u9=u42}u}uϋF FtǸĀ}uF FۊE*EEjjFP ?v~E @$߉E uM LVSM5􃛈!!!!!!))[[[[[[r҉oՄՄF*Ph? uAEE~tD~uE +EE E9EtE E ^FG~tn~#t D % E }uDE}uDE}uDE}uD SED % E vm?F^FG^G^F؃?uG_Gr^F؀uK tu ^GI^F؋F؊G^G^)t(u ^G^F؋G^G>t6m?^F؋_^G_?u ^t^_VFFFFF t ^u؀t!u*F~t^u FFP?^?t.uD8Gs~t~tF8Ft ^?uF^u tDG^uf~t@?u ^G^44DG^vD*G6m? vޡtDG^D%F u {?#$8FuD%D%F:$tD%+VvDF<t t<uV'?^WVvԑ?+EEE D%?(u*D^_WVvFF * tf=u|ԑ?F* t=t6=t+=tUE UEE>X E E1E +F PFPV`1?Y'? u#GE GF G^_V+FFdD%D%؊@0~ ~ ~9v{?vvFRPq?ȋƋڙډN^rwvj{?F N uFVjjvɍ?^WVv+D%DD%GD%Fu蘋؊@=HtC=Oth=QtcD%D%D%؊@=BtO=DtR~.u{?>$tGF FD%D%FDD%WvVp?FD%FFOF k.F^_VD%D%$^D%G++D%F-? t u{?^GD%vD%-? t{?C+,D%D%+ҋȋڡԊ*ډ-? tD%jjvɍ?^VD%FtD%D%FuD%FtFt v;3?*FuD%-(=w>.oE fE &_E 'XE $QE %JE C{?E "7~[uE *~]uE !~:uE #5' <.E ㋇jjvɍ?+1Ft v ?~"t ~'t vՏ?^WVY'? u#GV| ^^_V|   Df D D+DD+҉D T~ DDD^WVvF~t?^*㋿ \GF uGF~t t9~t^u 9 uF~t FD\F^_WVv|D tq=u}tf|t`}tZ>rtS^*PVA? uAjVA?jVA?jVA?jVA?tjVA?jVA?|uD^_WVvu|u D%Dp!u|tD<u G u+> tjl? u jl? uhl?>4 0tTF>t>E} F*;tF~tFjIPTk?jIjDhjIjWhTk?h6?h6?>t#~t tFjJPTk?^_>uu NuOu+WVv*>u$ss^GP6?GPPw?6?^_WVvD?D%t DDV89?}u>l.u>tj2{?E tUE %D}wr} w}tj3{?=u}u }t}tj+{?E6m?^_ V'?FFP?>t64 -%= v.F>l.u>u>u{?v? t F*P?l.*P6?jFP?~uO{?GFF*P?ݚv? t F*P?l.*P6?jFP?>upv? t F*P?>tjU{?>uB6F*P?>4 *u36?|ul.*P6?|uj:{?>4 +u06?|t|u l.*wl.*P6?|뺀>4 -t>4 1uS>4 -u9|t|u9>t9>l.u2>u+|u%|ul.| t |tj:{?l.*P6?|u|u>l.u>tj5{?>4 +t|t Lt'jx~uF>t j5{?v? t F*P?l.*P6?jFP?D%?,t{?D%FP?+~t96tj5{?~u!j@둚v? t F*P? LuV>ul.*6F*P?| tl.*P6?$l.*P6?|uj5{?>  ut6F*P?| ul.*P6?jR6?|v? t F*P?~u4l.*P6?*%F=vF4jFP?>uf~ul.*$<v6l.*P6?FFD%?,t{?D%FP?>tj5{?~tFF6?6F*P?|tdl.*P6?|uSj:v? t F*P?>u StV!6F*P?6?|tdl.*P6?>0q_>t 6m?^D%D%uD%?F G>` t]` ujV {?hhy? @ w ? w? GFS?F **Fj'? u#G+&G&&G&G>J 'u&G>J (u &G &G+&G &G FFP'?FV u#G^F&G+&G&ÌRPvG&G&W FV uFV&G&W +^&& Gt&&WFV^FV&&W D%t?d? ?uD%t{?6 ?FP'?FV u#G^F&G+&G&ÌRP6 G&&WF4V t^&& Gt&&WFV^FV&&WVk.ȋF + tVvv5?Fk.ȋF +V v*F 0^FF9Fr{?NF^?FPvv5?~ r^F F9Fr{?N^FF F9Fr{?NF^ F Ft46 FVRP? u^ ^&&WFV+WVvD%?&u*F tD%>D% ?~tD%?&u  ?tD%FP&w&7?F tFF9vw{?N~u/FP&w&w?F tFF9vw{?N~u-~t!&F9vw{?NGPVv?9>D%w^_Vv ~&t~tFPVv?~tD%VvJ?^? tX&u/ ww? ..GW66:?Z jj?v. (??WV~ rQ^&uG&G N *-F??P?$=uGF *-F^&G&W FV~t!&tv^&&WFVN u^&u^^F&G-FVFV^&F^&?u^_ WV^ ?ul F^ Gu)F VW u^ ^ ?u l F>l uv^WFV^F&Vvv?>^&t^&G u ^F&ƈG u^&&W^W>ztFD%?~u >l u#>l t&^&t vv ?+vv:?Z ^_ F Ft+^&&WFVS&GP'?FVFV^&w&7?^&w&w?^&w &w?vvj'??B >ru >t* WV> ~~?> u>t H*$G<u-H* ^_WVv$ށHEHE^_WVv$ށHEށHEށHEHE^_ > u>t6x ?? > u>t/> uk?> ~* F*P??VH*hVf? FFN u>Ju^GtG PVf?V^GWRPG^GWRPG hH*h7y?^v? u th7y?h$h7y?>ul>te+=s?8?^h7y?T?8?^Uh7y?T?8?h7y?h7y?T?9w?N'H>uh.Ph h7y? >N'uh7y?6N'h7y?>t6h7y?h*h#7y?> t >vt_Vz? u> u>ltF>f t?>u>Q t1>H tȃ>Z t>H t>H u>I*=t>I* u>t+ WV? u> u>tm> t)>Tu">tED?VPh)Z7y?e* tC F>Z to>Z v+Z 0 F FF>uT?F > t$>Tu6^ h,7y?^ FhH*h07y?$>B o+FFB 9FsFFVPh37y?v+~ ~;h87y?T?> t >Tu:@P7y? hE7y?>vt > th$hH*hGhy?z?v> u>thhH*f?^_WVv+<}D%?tD%FGD%D%D%?u FG<|^_v?h$hM7y?V^t w g?FF^vD 9( uF@FF~|߃~u;^ uF+^ uF^ uF ^w g?~t^XhZ7y?^>u> uhjh]hy?>thjha7y?T?8?U> tx>tjvܥ?8?> u'h^GWRPGhhehy?^GF u> uhihy?>u> uhxhkhy?>thxho7y?T?8?U> tx>tjvܥ?8?> u'h^GWRPGhhshy?^GF u> uhwhy?>tK> tx> u6hh =yhy?>t6hh7y?T?^GtSi?>qu>ty^GupG@ujtd t^ tXj?v?jvܥ?vԭ?^uw ^ttu ^w?8?^G=tl=t=u=u= u^ uhh7y?$?^u t^ uwg?^ uh붋^ uhh7y?v?hh냋^u  uhn^uet_GWFV+FFh7y?F Fu8hFVRPGh h7y?^uh^whh^GWRPGhh7y?$?^t*h_GWRPGhh7y?^Gth7y?^Gth7y?^ tGt>u@8?h7y?8?8?h7y?8?8?jvܥ?F^GWFVF Ft^&&WFVFvh7y?8?v?^Gtp>ui+=s?8?h7y?T?8?h7y?T?hX7y?T ?8?v?jvܥ?^uwg?$?^GP^w g?$?^w g?8?^t G ujPܥ? wg?$? G$Pg?$? w"g?$? w g?8?v? Gj6 ܥ? wg?8?v? G uVvvܥ?^w&g?$?7^G.P1G$?^/uG/^.u/u w*g?]^/uhh7y?>7^/u+^/|+^ȊG/+P1G$?^$uh7y?^_$GWRPG^G=vGF&^_$w^&@Ph7y?F^F9Gwh7y?v?8?^^OtoGuij?v?^u uKjS ?Ajvܥ?h7y?T?^Gj6 ? G" uVvL@^V ?D%?:u D% ?6 hJ h6 GF u'D%t ?6 hJ h6 GF~t5>6 u+>6 u++\ >\ u ?+^>l tz_d?D%?:u D%d?6 hJ h6 G t5>6 u >J ?t!>6 u>u j {?h FPFPvt+..v.WV^?ul F^  Gu)FV W u^^?u l F>l u?^ WFV^F&F^&?u^ =&&UW>ztFD%?~u >l u]>l t+Z ^_ jD?d? ?uD%t{?6 ?FP'?FV u#G^F&G+&G&ÌRP6 G&G& GuFV&G&W7&G&WFV^&& Gt &&W^FV&&W6 hUG uF uF<$tTuj6F*? Pv ?Z u#G6F*ZPf?hZPG?hZP<?Z uPhhy?jE?>Tu8j66hZ7y?# >z.tjhhZ7y?> u'GhGhVj G6~G~G~>~uhGhj GhGhj G ?>tra?>qtfN'HFF* ^F F~=|6h?hȯG6 h?hGh?hjj Gh?h3j G6j lt?j ?F>t7jPG> uhZ PvG>TtjhZ7y?>xt8> t' G +Pww ? w ?jE?> t1 w +7Vww ?;t  w ?> t$> thhy? P?>tG thhy?>Tt)ZG th$hy?ZP?jE?^ V6F*?P? u#G6F* Pf? GjP? G @uPh hy?jE?jjj w ?FVu$=u Ph hy?jE?jjj w ?FV ?FV +9Vw r9FsF  G P? GG u1   G P? GG u#G +Dj/6F*?F tFF*FFF*j.P?F t>u>tj6F*? Pv ? u#G6F*Pf?h PG?h P<? uPh hy?jE?> u> tj6F*?Pv ? u#G6F* Pf?h4 PG? GhhP? G @u Ph7 hy?jE?* D P? GG u#G>t-u * Z  h hf?D%h L?F ^F ~2 r^j?FVFP ?.h,?^>V uh, /?V ~t>V }h ,?V WVv`V6 f?r.> r.G=u6 x G tj{?6 hj G DGGDG<u^_WVvF-C=5v . FuhX hy?jE?-0 DtF -0 > t> ?v  9 s 9 r TTlF<t thw hy?jE?VWy?LIF<t th hy?jE?> }㉷V?HO 3|uAFV? P? u#GVPf?<-t=h P<? uPh hy?jE?odF=lt=ut=xtVh (JJJq |uz FV?P? u#GV Pf? GhhP? G @uPh hy?j+ E P? GG t}#GuKI Z > u*  |-t FVh hy?j_?l`p Š< ÿ˿Xh¼yŽ–±FF tS^_6h hy?vE?V+N L j Q F* ^F ~D*r^t.Z +**~.|.h  Gz x N'^ k. f $z.I F t 5  H 9:OF^LJ F~r > t*uDDGjjj w ?jj??^G v.~t=~t ~t~u+F..FVFVFVl >G u*F t=tK=t,=tVל? u >uWG l aFPvvvv41?ҍFPvvFPN?FPvvFPvvע?˃|.~.> uhhf?l?-B D%> u>tLh?F=vFPhh$?~v^Ƈ$hhH*f?> t6>zu/ t=t<=t>=t@=tB=tD >B tS?>v.t6v.F\ /a/?ߚ[.?ؚp?њL_?ʚCGÊFF> tG >G uDG V# w ? wS?6  u^Vjjj?>Zt"Z7 tV?ZP?>t"7 tV?P?> t$  tw ? P?j ?^V6^ <u.t uFP? u+^ D6^ D^^GV^wV? u'|uRDl D |r j-{?RD|u 9Dt |tjA{?D t |uD|t |uD uL RDF*P6?|uAD tjH{?F*P6?RDDF *P6?RDDR9Dt;Du^R9Dt |ujf6?^wG *P?h6?R9Dt|uDPF *Pt?CDPF|t|u&jf6?^wG *P?h6?|j:{?^w?^ WV~t*P6?~u/^_t>@ tje{?^GFG GFG ^w w ?DPtP?EPtu?^w ?~t |uj<{?}uOtj{?^_WV$<t j{?j6?^w ~t@D% t =t)=t(j"6?}tj{?jD%PEHj#j&؋E% t =t=tj 6?j!j$}tj {?jE%PD%P?^_WV~ u*F~u^GFG GFG ^w E8Dt }tj {?F8Ft+ȊDȊF *Q6?^w ?~uEPtu?^w ?^_~u^_t>@ tje{?hFPv ?VF^w |u3G=t=t!jv?^w 6jv\?^_t>@ tje{?hFPv ?^WV~u^GFE GFG ^w Otj{?DPj?DP6?^_WV~u^GFG GFG ^w E8Dt }tj {?~u|u|t}u jv|?D~t}t}u }ujڊD,z*P6?EPtu?^w ?^_V^wF|u |uF9tD u|u|tסx z 9Tr8w9D v1D T+x z -FV wKr=sDFFV2x z +D TFV wr=sF+FVD TV? u+F^V4 ؊ *Nt>4 uC>l.t>l.t>l.nu*F~u+ȊF;t+-؋^~t ~tjD{?mWV^w FF|u%D %=u>4 t E #F;Fuh6?^_WV^w |t}uDEED|u/}t)E U?FV tu~tj3{?|u }uj${?|t DEDE}u }uE^_WV+FF+@ 4 ؀x uD%FVo?FFP89?F>t4 ؊x F<t<ujf{?v4 ?FV% @ uP;Ds|s |tj:{?F&u |rj:{?FV%6. uvF*P?FV%'Ձ tv욏?F@uv2?FV% tv Ք?4 ؀x t&<t>l.t>l.t>l.lt >l.ntD%D%?,t{?>l.u*Fjo?FFP89?F>tjf{?~>l.t>4 tvF*P?FV%8 tv?>4 tv2?FV%  u&}v t}t}s }tj:{?}r ~uj:{?4 -=w.EWV?WV??WV?<<<{{{&&&&{&<&<&{{{&&<<&<&<Ҡ4 =v.Ԛo?FP?FP?FP?FP?yFP5?mFP?a?YFP?MFPV?A #FP?5FP?)FPj?FP~?FP?FPj?FP?FP|?hhjjFP?FP7?FPe?FP;?FP?FPN?FP?FP?xFPM?mFP6?_FP?FP?FP?ڍ_uӯ#ӗҏұ/GӻҥәSӁӣӽ; Ӄ~tv'?~tv'?>tG1^_>t>w*;Rtjf6?l.*P6?>l.t>l.u *P6? WV^wtw? u |t+Fv? t |t+FD uj.{?9t~t<tj4{?D tj5{?D t> t$~uj6{?~u~u j6jG{?~tCD u=~u7j6?l.*% P6?D FL ^w?FD +|uDL |wr| s ^D G^Gl.*P6?|uD^w?^G*P6?>l.t ~tS~tM|uGD uAD t|uh6?h6?jk{?>R>l.u Oh6?O ^_l.*=r=v+WV^w >@ tje{?|rR9Dtjf6?>l.t >l.tvN?j6?W?D%D%?,uph 89?F؀uuuu l.*  vՔ?l.*P6?DPE%Pt?^w?^tS{?}u}u} u }uD,.I^w Ք?}u } uD,0+>u j5{?#}rw} vj3{?D,@*P6?^w?DP*Pt?^w?>t}u} t ^w ?^_WV^w V?}uj5{?R9Dtjf6?j6?El.* P6?EPtu?^w ?^_V^wj6?*P6?DPjt?^w?^WV^w j6?|uj9{?|uj:{?}u3h6?DP*Pt?^w?^w ?9}u,` *P6?DPut?^wj5{?^_WV^w j6?|tj{?}uj9{?}uj:{?*P6?EPtu?^w ?^_WV^w>tD%?,t>uD%|t |tj;{?jo?^G  P89?^G D%?,tD%}t }tj:{?^GFG Gh 89?^G PՔ?^wG *P?Ei*P6?DP^wt?^w?}u*E? u ^w ?^GE^w ?v'?}tAt:vN?^w G *P?j6?h6?EPtu?N^w Ք?Ei*P6?DPtt?}u*E u ^w ?DE^w ^^w?^wG *P?>l.t>l.u>@ tje{?D, *P6?DP*Pt?^w?^_WV^w V?D;Etj:{?l.*P6?EPtu?^w ?^_WV^w w Ք?}tj3{?l.*P6?DD^w?^w ?^_l.*P6?*P~6?V^w|tj:{?l.*P6?j6?DP*Pt?^w?^V^w|uj:{?l.*P6?>t>ujj6?DP*Pt?^w?^V^w|uj:{?l.*P6?j6?DP*Pt?^w?^WV^w V?}uj:{?l.*P6?*P6?EPtu?^w ?^_WV^w |uj:{?W?l.*P6?DPut?^w?^_V^w|twp?G t"=u=t=u=#t=tvmj;{?cDPj?>l.Xu |uj<{?|r"j6?>l.Xu+L>l.Xu+LP6?R9Dsji{?R9Dtjf6?DPj?Dl.*|uA>u ^w?Dh*P6?|u*D u^w?r|t ^w?|tR9Dt|vjf6?ji{?>@ tje{?>l.Pu*P6?DP>l.Pu+Pt?^w?^V^w>ul. tl.ˋD Du|t l.*P6? l.*HP6?DD^w?^V^w|uj$o{?|u|tDl.*P6?B>@ tje{?D,*P6?DP>l.Hu+Pt?^w?^V^wD Ph?|u| u |tl.l.*@P6?D *P6?^WV^w >l.uSw?}u}uDl.*x^w Ք?E Ph?Dl.*P6?E H^w ?|u |uE먋^wՔ?D Ph?El.*P6?D *P6?^_WV^w |tjOtj{?}uj2{?>l.tQ}t}t}t j:{?}tR;Etjf6?}t| tD;Etj:{?l.*=t =r =wj6?l.*P6?EPtu?}uE^w ?^_WV^w |}}tM > uE}t|u\Otj9{?DDP6?vN?^w ?|t~}ux=usE ulh6?bvN?|u}uEDED>@ tje{?D,:*P6?DPjt?^w?^w ?v?|ukG=v.jv?jv\?|uW? t jv?sjv?gW}uJG=w+.jj뙃 }uV? tjjjj5{?^_WV^w |t}tM > uE^G}t|u<|u6SN?>l.u D,X*D*l.*P6?^G |u }uj${?vN?|u}uEDED>l.uD, *P6?l.l.*F<t<t<u>@ tje{?D,*Pe}tG>l.8t>@ tje{?ED,*P6?}u*E u*^w ?>l.8t>@ tje{?h6?DPl.*Pt?^w?}t |uj3{?^w ?v?^uE ucE th6?|uG^ww ?>l.ul.Dl.*P6?EPtu?^w a}t j5{?W>l.8t>l.t>@ tje{?^w w?El.*P6?DPut?^w?^_WV^w |u<|u|t}u}t jS|?9>@ tje{?jv?}u>@ tje{?jj@{?^_WV^w D Pj??D T?P6?EPD %Pu?^w ?^_l.*P6?  ƇH*/d?G u jC{??^GG WV^ uGG ^w >l.nu"|tj|tj{?^G G>l.lu"}tj}tj{?^GG |~|| }~ }}j5{?|u }uj${?E8Dtj {?t|t|uR9Dtjf6?>l.t>l.t>l.nu$^w j?^G 9Gt+DP?EP?^G 9Gt wj?Dl.*P6?^G 9GuG^_V^w|~|| |tj:{?l.*P6?^Vv|u|t |u |u+^WVv~ tP|t t3}t- t}t |uE}t%|tE9Dt uD R=ujf6?^_WVv~ t[4 t#>R}|~ jg6?8>R~|| t'4 t>R}}̃>R~}|^_Vv|tj{?|tt|tj;{?^Vv> t|uj$D tj-{?9Ft|vt|tj:{?^WVv~}tD8Etj {?DE^_> u>lt$> t>rt F*P m?F*P?>rt x z ~ vF N-P6?v ~ vF -F NFP6?Vv|}cF8Dt[|tU>Ktt |,u@ |}D &P6?tD `jE{?  ƇH*:|~jE{?^V> ~ ?   ؋vFH*  ؋vH*^WV~u }t؋v sj3{?^_WV~u }t؋*E Ee8& t }u*F>rt tvp?} tC~t!V?hd V?>rtAx z 5V6? t(t"j3{?> t* hg V?^_Vv>lu > u|tD DtD T؃ډD TD> t* | u.FD;FrU ƇH*?<} ~?FD u/|u+;Du t??t ??|tD t|u hj V?hm V?|uhp <ths V?|uhv V?>rt+> t|t vp?jGm?D+x z ^Vv|t|t |uDD= w{.U|t kD$<ub|uRRD,Dv?=|u|tRD|tv? k.  ^> t^uj{?^uj9{?^G^F*9v<wj8j3{?^F*^F+9Wr$w9v~wj8j3{?^FG^utj={?^G@t_uj>{? d?>t6D%=:tS==t?D% ?u{?4u?>t>tC6 hUG t3/?D% ?u{?>t jj Gd?묀>t)6 j0UG t u GG}6 hJ h6 G u>u>6 t>6 t >J AtHJ =Kv<.D%D%[?D%t?D%?,to_?_???_?@?j{?B?j]?j!`?D%D%aX?D%t?D%?,tA?:`?x*?pp]?h]?`?XD%D%fV?D%t?D%?,t*D%D%U^?D%t?D%?,t ?I H Q f ^?H Q h*L?> u> t*Q >z.t j{?hL?z.qH iD%tI QD%D%$W?D%t?D%?,t#f  U?tjh{?RItjh{?tjh{? tjh{?땃>tjh{?Rj?->tjh{?j?R>t*RP!uj?u9QAI8@!!!!11 #H)k>tdG t>4 %}?M>ItAƗ??6 x G t$ u#uGl.G4 G 뺋 ?t{?>P tP 8>t,D%u?D%uj{??>u 6 hJ h6 G tv'?d?6 hJ h6 G u'?J -F=v.Gk?w?Z?'?d?6 hX G t>X t'?6X j Gtj 6 j0UG u j{?X'? w ͚?C{G<G5b?.\G' U? kc[s{b6 j0UG tH'?6 hJ h6 G t>J F~>J K~" u GG D%d?D%t?D%Ft>f uH~+u'D%D%t?>f tvl?o~,t7?F= ~ =}j3{?N'=u -:D%F<,u%D%?F==<} j3{?F6 x G t>u j{? 9u؀ux z 9p.wr9n.w  x z  n.p.G&W( x z GW1t)>Ru+ҋ;W(wr;G&sjg{? G t؊G0PR Gk?>t GWx z G&W(n.p.+z x p.n.WVv ~uF HF~u }+9~s&++Nj}FЋρt j3{?~F#^_WVvd? F uu<$Qt |u\\|^DGD%D%?:t{??FD%t?D%?=uD%FPFPu^G7FPFPt{?Ft 5 ؃ uJ FJ K U?t Vj? u#GDDDD D ^6 j0UG u7 uF<$tJ Iu+>J Hu+>J Gu+F>?J Ku+F>J FtD%u'?d?6 hJ h6 G td'?>J Iu+>J Hu+>J Gu+F>J Ku+F>J Fut+ F F +^_VjO6 PG t>v.5  tDG x G Gk?z | x z xD% ? ?tM9G tT> u!G  _G !G   _G U? J GD%ujO{??^Vj? u#GDDDD D D ^v{?vF?GWV^?u"jM{?D%^u?~D%F<,t<>u G@J F^F؊GJ 06?FJ ^ ^E *G8d u jPVTGw^u}tjQE 8D tZ<u]  tjcȋ] G^G;E *P?F u#G\ G^t '?FD D D | u]D *F^;Gs0wt "?D FF^F9Gv"^F F^D *9Gsjc{?^GD E 8D u| u>vu ] G\ G^^> t 76 6 ^_ D%t?D%?t{?D% Gt 5  J L؋G j U?t 5 WVvƙ㋿ t8]&97u*vÌRP? u> jD?ED?= u+^_ WVvF<t[V6r. GF uJ>JuCV?3Fފ؊@CFO }CFPv GFF^_WVvV?Wc?FV u#G^r.&ÌRPVGFV^_WVvV?W?F u#G^r.VPf?F^_ WVF= w;. .) $ >t96sh? u#G>6)6 ~u!u t=t =u E EuEEE FEFE+EE+҉EUEE Ev GEU]&F؋> ?^_ Oj{?VF uF<$tvu%DTx z L~t >rtk?D?^WVvr.+ҹ㋿ t;]r.&9u*MtvÌRP? u > = u+^_WV+㋷VG4 uG|^_WVv| u >F|t|u > F j\&G؊@Ft,AF㋿  F2DTRPEURP? } |^7EF} uʋ^7D^_WV^?t ShV$(?@t^狅~ +^_WV^ ?t'Shb$(?@t^ƈ^狅+^_V ?t\Shh$(?@tN^F&GFȊFt&$:w&l.&G&G4 +^V^ ?t!Sh\$(?@t^ ^7+^WV^ ?t/ShJ$(?@t!&@^&A^+^_WV^ ?t/ShP$(?@t!&^&^+^_Fh vy?>tY ?D%tD'?d?6 hJ h6 G t'J 8Fu'?6 x G t 9Fu+ud6 GWRP? tj{?x z +GWFV> t9W"u9G tj{?FVG W"GV'?vj G6 D|u%|u 96tD> u+D"D 6^'? d? ?uD%tj(6 hX G u j{?>X sj 6X .G> uj.GVv 6 D@uV^t u^V+ v vG>t~t >t8?Fr^VvLtnnDu DV@h?Dt ||D| udd^Vv|u7|.uD.|/uD/  DDVh?+DDD(D&^^uSi?^GtSj?L N us>tKjhh?D%?d?D%t? ?tp]?L N u AGS GL N  6N 6L h?~t06~.6|.6*6*h"v y? 6 hJv y?vhWv y?h6xh6\ huv y?V wPhhy?>Zt"Z7 tV?ZP?>t"7 tV?P?> t$  tw ? P?jE?^Vv ^F&<u^&^Vv ^F&F^&?u^V+F^F&?u^UVv ~ N33]>c6eΉgo3 u1m ra6e aouBt0qsÉm$aVU^aX0%0u߃ tǀu ǀt >qs3ɋrrӋڀt3ɉi>tk5ù23t'N
k>oV>uP~P}:~:}wQE>cY>iv>cQ6Y^ uË>c3ߋ׉>wrJ u kPSXw>ursN@ x H93Vw^WUSRwwXXXX&wX@+X02ù߃ tǀu ǀt >qs3ɋrrP&m&m urXs딾q3ɻ@Āt b x u3 K y˕3w>caû.r wxrt <+t<-tN N#^t,0r< ~,:m}2FN3(uauu$t<.t,0r< wδuk i2;6gs#>`t< t< t< t< tu?S.F.GF.GF.GF.GF.G F^66W >uSV ++ك"+"**SV++߃+>u6'.'FVV^[Ou>u 3 ȭ ͭ ѭ x>uL LЀ>t# 3l ŀ>u]c{#Tw=:zc%C1 |ì?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~BYTE WORD DWORDQWORDTBYTENEAR FAR Segments and Groups:Symbols: . Size Align Combine Class Type Value Attr m 0123456789ABCDEFOpen segmentsOpen proceduresNumber of open conditionals:. . %s -%s%s  N a m e %s %s%s%sSymbolsPage %5d-%d %s %c%8d%s%.*s %s%s Length = %s%s%s:%s: %s %s:%s: %s %s%d %s%d N PROCF PROCL NEARL FAR L V REG NumberAlias %sOpcodeText %s%s%s External GlobalMacros: N a m e L"ines%4dStructures and Records:  N a m e !g Width # fields  Shift Width Mask Initial NONE%s'%c'GROUP .crfwUnable to open cref file %s %c%c%c%s%c%cWrite error on object file Write error on listing file Write error on cross-reference file ! J ECSACSADW>B?R CSDSESSSAXCXDXALBLCLDLAHBHCHDHBXBPSIDISPSTPFSGSEAXECXEDXEBXEBPESIEDIESP&CR0CR2CR3DR0DR1B DR2 DR3 DR4 DR5 DR6DR7TR6TR7 $D*Microsoft (R) Macro Assembler 386 Version  @ @    @Unable to open input file %s Unable to lseek input file %s .lstwUnable to open listing file %s .oUnable to open object file %s buffer size expected after -b symbol expected after -D path expected after -I wUnable to open listing file %s Unknown case switch; %s Unable to open object file %s Argument error: %s usage: %s -c -Dsym -Ipath -l[file|-] -M{l|u|x} -o[file] -v -X srcfil E??---- E R U %sDBEXTRNDDDF.286C.386CIF.ERRDQDT%OUTPAGE.286P.386PIFNBDWNAME.RADIX.XCREF.ERRNBENDMIFNDEFELSE.ERRNDEFEVENIRPC.ERRNZPUBLICREPT.XLISTIF1IF2.ERR1ASSUME.ERR2.CREF.186.LALL.287.386IFB.ERRBIFESUBTTL.SALLEND.ERREIFDEF.LFCOND.XALL.ERRDEFIFDIF.ERRDIFENDIF.SFCOND.TFCONDIFIDN.LISTLOCALALIGN.ERRIDNORGIRP.PROTINCLUDETITLEPURGEEXITM.8086.8087COMMENTDWSEGMENTDBLABELDDRECORDDFENDPEQUENDSDQGROUPDTMACROPROCSTRUCTBYTEBYTENEARQWORDABSDWORDWORDFWORDFARSTACKUSE16BYTEPARAPUBLICWORDDWORDATPAGEMEMORYCOMMONUSE32SHRLEHIGHNENOTLOWWIDTHEQPTRGTXORMASKNOTHINGLTORANDSHORTLENG mTHTHISOFFSETSIZESEGMOD.TYPETYPESHLDUPGEJAJBJCJEJGBTJLINJOJPJSORJZAAAAADDAAADCADDDECAAMJAEJBECLCLEAANDCLDCMCAASFLDJGESBBCDQCLIDASBTCJNAINCJNBNEGBSFESCJLEJNCCBWJNECWDJNGJPELARCMPSALRCLDIVLDSJNLLESLFSLGSSARBSRJMPJNORCRREPSHLBTRHLTJNPBTSJPOINSSTCSUBINTJNSLSLRETSTDFSTNOPROLSHRMULPOPSTINOTJNZLSSLTRMOVROROUTSTRXORFLD1FADDFBLDLAHFCALLFABSJNAEFILDJNBEFENISAHFCWDEFCHSJNGEFCOMFDIVFXCHJNLELOCKSCAS \XCHGLGDTSHLDFXAMIDIVINSBREPELIDTSETAINSDSETBARPLSETCFLDZFSUBLLDTPOPASETESHRDIBTSLODSSGDTCMPSFNOPSETGFMULIRETSIDTPOPFWAITCLTSFISTIMULSLDTSETLXLATINTOLOOPSETOSETPFSTPJCXZSETSVERRPUSHTESTFTSTINSWREPZXBTSLMSWVERWMOVSSETZSTOSSMSWOUTSF2XM1FIADDFADDPFFREESCASBLEAVEFICOMSCASDFDISIFLDPIFLDCWFNENIFCLEXFIDIVSETAESETBELODSBPOPADCMPSBFCOMPFSAVEFYL2XLODSDCMPSDBOUNDIRETDSETGEFDIVPFISUBFPTANPOPFDFINITFPREMREPNEFDIVRFWAITSETNAXLAThBSETNBFIMULSETLESETNCENTERFBSTPLOOPESETNEFSUBPPUSHASCASWSETNGSETPEFSUBRFMULPJECXZFISTPPUSHFSETNLFSTCWMOVSBLODSWMOVSDSETNOCMPSWSETNPSETPOSTOSBOUTSBSETNSSTOSDOUTSDREPNZFSQRTLOOPZSETNZFSTSWFLDL2EFLDLG2MOVSWMOVSXSTOSWFLDLN2OUTSWMOVZXFLDL2TFSCALEFPATANFNDISIFICOMPFLDENVFNCLEXSETNAESETNBEFNSAVEFIDIVRFCOMPPPUSHADSETNGEFNINITPUSHFDFDIVRPFISUBRSETNLELOOPNEFSETPMFSUBRPFNSTCWFSTENVFRSTORLOOPNZFNSTSWFYL2XP1FDECSTPFRNDINTFINCSTPFXTRACTFNSTENVn^FNRSTOR_z_P_ _h_/d_7ATBYTEWORDPARAPAGEMEMORYPUBLICSTACKCOMMON     nqv{ Warning Errors Severe Errors %7ld Source Lines %7ld Total Lines %7d Symbols %7u Bytes symbol space free %7d%s %7d%s %s(%d) : Out of memory error   ((((( H      3F%'`'`'DLh' jM:/Day Mon 00 00:00:00 1900 SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecTZ@(#)realloc.c:1.5;$9 -+ 0123456789ABCDEF0123456789abcdef0x0X(null)  00pASTADTESTEDTCSTCDTMSTMDTPSTPDTJSTGMT+-GMT%s%d:%02d,h W___Block nesting errorExtra characters on lineRegister already definedUnknown symbol typeRedefinition of symbolSymbol is multi-definedPhase error between passesAlready had ELSKE clauseNot in conditional blockSymbol not definedSyntax errorType illegal in contextShould have been group nameMust be declared in pass 1Symbol type usage illegalSymbol already different kindSymbol is reserved wordForward reference is illegalMust be registerWrong type of registerMust be segment or groupSymbol has no segmentMust be symbol typeAlready defined locallySegment parameters are changedNot proper align/combine typeReference to mult definedOperand was expectedOperator was expectedDivision by 0 or overflowShift count is negativeOperand types must matchIllegal use of externalMust be record field nameMust be record or fieldnameOperand must have sizeMust be var, label or constantMust be structure field nameLeft operand must have segmentOne operand must be constOperands must be same or 1 absNormal type operand expectedConstant was expectedOperand must have segmentMust be associated with dataMust be associated with codeAlready have base registerAlready have index regi`sterMust be index or base registerIllegal use of registerValue is out of rangeOperand not in IP segmentImproper operand typeRelative jump out of rangeIndex displ. must be constantIllegal register valueNo immediate modeIllegal size for itemByte register is illegalCS register illegal usageMust be AX or ALImproper use of segment registerNo or unreachable CSOperand combination illegalNear JMP/CALL to different CSLabel can't have seg. overrideMust have opcode after prefixCan't override ES seg wmentCan't reach with segment regMust be in segment blockCan't use EVEN on BYTE segmentForward needs override or farIllegal value for DUP countSymbol is already externalDUP is too large for linkerUsage of ?(indeterminate) badMore values than defined withOnly initialize list legalDirective illegal in STRUCOverride with DUP is illegalField cannot be overriddenOverride is of wrong typeRegister can't be forward refCircular chain of EQU aliases8087 opcode can't be emulatedEnd of file, no END dir  ectiveData emitted with no segmentForced error - pass1Forced error - pass2Forced errorForced error - expression equals 0Forced error - expression not equal 0Forced error - symbol not definedForced error - symbol definedForced error - string blankForced error - string not blankForced error - strings identicalForced error - strings differentOverride value is wrong lengthLine too long expandingImpure memory referenceMissing data; zero assumedSegment near (or at) 64K limitCan't change processo r after first segmentOperand size does not match Word sizeAddress size does not match Word sizeJump shortened. No-Ops insertedAlign must be power of 2WW-WFWZWqWWWWWWW W)WDW^W|WWWWWWWW4WSWqWWWWWWWW3WOWfWWWWWWW-WGWdWWWWWWWW5WPWnWWWWWWWW'WCWaWWWWWW W+WGWbW~WWWWW W(WBW`W~WWWW W W W1 WW Wy W W W W W W4 WL Wd W W W W W W6 W    D ? A    Z_ :d_ ) @ B_ !  !'_ 3_ 8  $  " ) 4 ._ .%% _, *3 ;,8 9? C G H M J_T I Z N/` >e S0k =|_p Au y Y_  ?_ - Z4 _ \ ^ 1_ _7  b  f _ 5 6 j 0_ j2 k&D_ kE X_ ( $sC#.+"C;(<._ ___(_2_<_F_P_ n_x____________"_ ,_6_@_T_^_h_r___(_______ __&_:_N_b_l_v________69 AD` JM TW'\`*e>_hnqr \_w4 f_|__ ___ @__ _*_4_ H_R_p_b4&_(_<__ __2_<_F_v_T 4$<_ __R _____ ___\  d_n_   _ ,_%-03 7 =D8IP;UY]pcBhlp(P_Z_x______ _________"_,_6_@_J_T_^_sv!y#|%&V _(9:=T>  _ " _@ _  _ < _'gZ _ d _x _+ _- _Q _ _ ) _/01 _"; _&*  _.e2Z6, _:B>3@ _BAFJ^ _NfRr _V*| _Z5 _^[ _b\ _fk =j _n _r6v _z<~~ _m _s _7 _ _a _n0 _R: _bD _lPVoS8 _ _ _LcU _y? _, _. "* _"d#$H _$2$%))f _.)p _3)4z _8)C=*h _B*vG+ _ b tL+Q, _V, _[, _`,]e- _j- o. _t.y/z_~/0_0$_0._01B_12V_2D`_23t_3~_34_4_45W_5u6|_67_789w:_:G;<  =?$2_? <_?@XP_#@t(Ad_-An_2A`x_7A<CADFEMK FPIpUJZK_NeXk_qhwli}mn_no"_op6_prJ_rT_rstEr_tu_u_u_uvwx{_x_xy_y_ y_yz_z_%z^+{&_1{0_7{:_={xC|I}X_O}b_U}[~}a_gH_msy _j____Y_ _NF _*_>_R_qf_ p___ K_!(/O5;rA_HNT[bipw~L_ ~_ c__IJ  !)19$A. p$ _. _8 _B _L _` _j _t _~ _ _ _ _< _ _ _ _ _ _ _ _ _ 8( _2 _F _P _n _ _ _ _ _ _ _ _ _" _6 _J _T _h _ _ _ _ _& _N _X _b _l _v _ _ _ _ _ _ _ _ _ _ _ _4 _> _R _\ _x _ _ _ _ _ __8_L_j________ ___(_F_Z______ ____ y _ _____,_@_^_h_|_______D_N_l_v________4_H_\_z_____________ _$_L._8_B_V_`_j_t_________ __ _ __ _$(_ 2_<_F_P_Z_nAFGHIK?%)*+,-./01234<"$#='(!&>@     B 567J8FGHIKQOMRSLPUNTJ7  ? 8'/H 6    @wsrvrt}|~vrswsu~|}q{yupzz{xt       XP n 8( 0cbllmnnoa`%%&'11%%((%%%&'&'%)*****+*%%*+**,%-.%%%%%%&'%%%%%/-.-%%%%//%%(-.,-%&'&'%؛0%)%%%/   m o`a%%&'&'%)*****+*%%*+**,%-.%%%%%%&'%%%%%/-.-%%%%//%%(-.,-%&'&'%؛0%)%%%/   m M./bin/ld.8 711 3 3 155442 4115454451 5313  ok,\`Jd `@? H?\\DG`9  ړ~:ã3謟PҠUWVu@Yff%fEfǨt$feEfLfF EfE%;fEfF E rvtVrv?`hjYfFff%fEfǨt'Ef|,fFEfE+ XȐfEfFhjYfFwtfǨt 3F^_XF^_fǨuXF^_ÐUWVu$Xff%fFfǨ@uffF rvtPr vA_hjXfFfǨ@u*fNJN|,fNf E+(WАfNJNLfNf E%3^_Ðwtf% f%fFfǨ@t2F.WfffffF .$Lf+f9h/^+H;wqh,ڐ+;wWhD+;w?h\4V !u !t2F^_ÐU}tfEluYu}tt|Ph u( %EExuE  (*+Phu} uE@PjE@P<5%趤PhuA f}f}E %EExuuhuuE@PjE@P輤uhHE %EExuu@PjE@Pswt uh uhup uՖ=t%9Et EXÐU}!v!EM8Ht3ÐEMHÃ} tj%P,E HP`EM8uMr]UE t tHtsfT9f9E r'[EM \f JfEM * Ðf8f9E rZEM  0 f M빐f%f9E rZEM 8f JfEM %딋EfEÐUuEPEPEPf}ufEfEE $fAfEEfAfEE ,fAM,f+JfEf t&juEPEPE@EPhfEEwtHE@E;Es:E@E@EMjuEPEPE@EPhWwuCE+M9Hv3@E-EMjuEPEPE@EPh몐E  @Ef=VupfEfVEH=tUf=Zt5%j Ӛ5%j Ú5HV ,APh(5%LÐU UQfEE@tEPEPÐU fTf{&fE=ptfMfTf9EvfEf9Ef=`uE +P9%MÐE ,AEEAEE EE E%f8r hLWj% PEPj,^%fÐUEfx ufIfH EfIfHEfx u[f %f9Hr}WE@8ffEf tEMf MfRE PMI8f J␐Efx uEf (ʐEPuE@PE@ Puu E@PE@PU$VEP9EEƈ!uEPEPEPE $fAfEf}tEfAfEfEf=%f}uMEfxu/%+mhhuVn^ËEfx^Ðf}tIEދ ,fAM,f+JfEf t,juEPEPuhh@ fEfEEx% ,fAM,f+JfEE%Ef}t"ju(PEPuhxEfx tf x uE+E+E+EfxtfxuE+E+E E+E+EHEEEE@NEwtE@tFNEE@ .$<E@EEE}Ext }juEPEPuh^ÐwoEFEFmEFE^ÐEދ ,fAfE=^tfFfffffE=uE+tfmEFEEPu%P ^ÐwEFEFmEFEFEދ ,fAfE=^tfFfff f fFffffEEFEEPEPW  , t ttt t t ^ÐUEP# tqf=%u6f=(ul&HPLfhkPא=htf8f9%r f}ufEEPff=l&qÐUfufET9HPjK \fAfEJE rvQf=l&ffEf t}juPEPj Xfu;JEJEjuPEPjWfuf=l&wfuf9EvNQU e$VEE uEjuEPjtWEEE܋ $fAfEfEfMf juEPj1WEP,M܋* U5`&+ MMjQEPjVE t t$EEjuEPjVlfEMEEEEEE9E^ÐUUQjjh E H%jjh %8jjh %,jjh %8jjh %)h0j u jjh0ju jj ڜh0j˜u jj躜}UhNÐUVu>t'@PVEP+ jhjEP^UVu6~u^ÐUEf@fEf tEM* HÐUjju j %E}t-jjuM E=,uEÐE@h)jju  j5%DE@`ff9r hMEMH %X9Ef ffHEMHjUEExf@fEE@EE@ EE@E@ fD}=t$}|1%; %~!%$Eu %@$%E@E %HEf *fHE tH=t3E%;%}hLE%E%=%h(À=EE;E} hLULEmE|);)~)$)E);)} hp LE )HEf )fHE@E)EmE=Eu )@$)E)=~f=)t) %E )HjjhhE@Ef@f))EE5}EEE +MHEf fHE@GE9E~EjjhhEM|HE@E)E}u=htE @PEPuz ÐUWVfEfFf95Ƌ $fEx t5@ MiAE@ Ex~[uh Ð}t*Ex u!Em E E=~"uhŋEM9H t uh밐EM 9H}HUVf=l&w^Ðf%f%f=r h3W,xf=wufxPyP,xP04f=8tfxf;8v 8xhj, fv+abt&3sEEjjxP jjxP =,u~uFFfvfFxPuuVf=l&^EEfF!8txPf=l&l^ÐUf=l&wÐf=(r h1*EfEPEP2+jjEP f(f( %%f=l&wUEEExu@EEMIEf9EvܸÐUuPhP/ÐU (f=T9r hp1)fEEf%fEf u)fE)wt * )EEtwt h0E(HPjV*fE(HPj?* %EE=^tbE4u`E tI=hu2fT9fT9 \fAl&HP)Ðuu`(HPj)EEjhP9* tEEEt ME rvfT9fT9 \fAf%Ef%fEf t]jjEދ %4 E=,uYExtxuM9HuEx du9,jEEʐ,jEދ %4=E=,ff9r h.Ef fHff %X9EMHEMHE@!MEMHEf %fH,E@$M:tuPh<.Ef@fEf}uffE&f}uE@EE@E9EsEE@Ef}u@$;f}u E$(f}u E$f}u E*EE@M;tEȊIU ʈHf}taEEEt} vh}v h)- xEMHEt)Eu#}uu EMHE܋ *UfT9fT9 \fUfAÐU=8 r h$,(HPjT&fEjjE %4 E=,t(= r hDQ,E HE@EEM% +880Mf=l&wÐ$fET9Pj%fEE \A %ExuMHEM8Ht0=t5%fuPhT)f=l&rUfuh|g)=t7%9t*  E%uh/)EÐU8HPj$ET9HPj$frf ufDžjEj3$F}tE0Er \fAfjj *Ef=l&w#tw$=uftPuPm#tP*ttu |u~2E t,fDfDf;Xu=]t h&(f=8tftf;8v 8twt" "Ehj%#fh=^u fDžhjjtPM l t0 xt!j!8ttP,jjtP l=,tRl@lMMHlfjfHlMHlMH f=l&:Ëlfjf9HuEEl;AttPf=l&ÐUfu uH&UWVpf%f%f=r h' Ef=wufEPEP!EP(f=8tfEf;8v8E=^u (HPhj4!fjjEPu jjEP[ =,tF=^ f t@EPNj <fƅq   ѐƅq ǐƅq 뻐htltmqsLf=l& {uƅq t!t t uq t q u qfrtJ=uAh"^4tHu +n&f=l&vl&HPÐU,h<ƅfT98f%f(f(^5%k5%jj PffuH? tt#Ct#ff%f;ts#j5%j E+n& X C=+uR%x%H@f5%=afw}f=tLf=tF=+u"=htiS=z&p=n&WÐEfl&w$==t|=tu=tf==tl=t%f=wn]f=wvM?f=l&3#ސg֐ΐƐ뾐붐뮐l&HPF+듐=tw'=t=tl&HPd=i=t=t=Pƅ2ÐU T9HPjfEwt 5 Efl&fHf+f=v h  +Ph!E \fAfEf(f=tf tE $fTf9Avf%f`ÐE *EP9E $fAf%fwf``$=uOf=+vfh$ +!%+Pj+!Pj ÐU VfEEf%fEf ufEbwt  EEtE(HPj0fE(HPj %EE4uO t9=h u0fT9fT9 \fAl&HP^(HPjE rv fT9fT9 \fA^Ðf%Ef%fEf t9jjE %4/ ExtLxuM9Ht>E␐jjE %4 ExtxuTf %f9HuGEf@fEf}u=E *U5$V5`&uV+UE떐f}tE *MA E1E $A `&EEM* +MH Et#tNtat,E *UsE *UB[E *UAE * U)E *U*f}u EM9H s EMH fT9fT9 \fUfAf}uE $A ,fUfA=htE@tuEPP^ÐU(HPj&fEjjE %4 E880MIl&HPÐU<  < ;s EÐfEfEE Ej< PEPj@"f< < ÐUf=l&wÐKEf=wufEPEPEP/f=8tfEf;8v8Ehjjj REP8 | uwjjEP x t54@PxfA% %% 8fA%8L%8|I% %|R% 8|fRfAf%f=l&ÐUf=l&wÐEf=wufEPEPOEPf=8tfEf;8v8Ehjpatbt jjEP | u h@ v%8|I% %|R% 8|fRf Af%f=l&Uf} &EEffEP9 %`&+P%PuEPAE +8t&E +P5P9%P P9EfEfMf ufEEP9EE`t'E@M EEf@fEEEEEf@fEE}u!EPuEEM uEEfE fM f t+!;EsEÐUSWVf=`f%`$=uCP9 %`&+P%Ph!+P7+P9#!jV'+! ;r%+f`^_[U8HPjf tT9HPjfEf uE \fAfEE $fAfEf)f9EXf=Zt5%j aX5%hd zX5%5%hx YXE %E0{E5%@PjE@P^5%h  XfEf)fZf=l&wÐf=ZrfZ5%j WfEwtM* ȉME ,APEPh 5%VEPh 5%V fZf=l&V Uhjhjf jf=l&wÐ EfEPEPf=8tfEf;8v8Ewt  hj?f~}t;} ~5}~/jjEPj fEP~P5X9D f=l&FU88%f)ƅfT98f%f(f`fu5%[5%jjhl&Vf=l&ujj j5%=Z ƅuG%x%H@f5%mQ fwf=nrf=vHu=htFf=ut=z&Ð fl&w$=u cf=`tw$=tu=tH=tA==t?==tEof=l&-/ސs֐ΐƐ=htC뵀=tq=\th뜐뒐=htMƅp蟿c=tw3=H=]=tl&HP %=E=t=+=( ƅB  ÐUff f ‰EPTE u h uju[ E`&!`&**%hTÐUfff ‰Efff EEu2TE uu,E u h $ujuZ E$$,,E))++d&%%ÐU=t5!Jf=)t5%j cQ=b=u %lHPh 5%P HPh 5 &%P 5h 5%P %Ph8 5%P 5%j P5%I=t5%AIÐU\0%\PTT4|@T|f@fEf=z&=8u|@^|@ X|%||xuE=z&tf+f9E=uf=+t5%6HE@@PEPPW E@ƄhT PM% uG5hX hlN EPh` <  EPht  jX5%S Uf,fEf+=z&u5%\GT\f}t=u5%0GUfE E=tY=%\tM5%j ON5%E@PjE@PTEfxt5%h >Nhlj NhlE@PjE@PtTEfxthlh MEfxf@fE~jEPEPj!E4fEfE=t*=%\t5%j \M5%hlj ?Mhlf}|ÐUL KE@@PEP|PnU f|Ƅ}h }P7K! u h  |8 5!4E=u!j?Y%P}PGJÐU=tf=v h O =tx\d\,Pj5`&TÐUV*E 8-uE xruu h JF9uƹ8u ux*=t%=t@$Ph 5%)K =bthlh Kf%f,f+h==bthlh( CK 48=bthlhD K苿=t =bthlh` Jf%f,f+=bthlhx JhM=bthlh J7==tH=%\t<5%j (J5h 5%I 5%h (Jhlj I5h hlI hlh IjhT$=t*=%\t5%j I5%Bhlj rIhlBf=u =t 3PG^ÐUV%x%H@f 5%YEf@u$f l&^ÐUVf ^ÐUE EÐUVfu 5%PjuI%@ u@ tf)5l&^ÐUVfujP5%/M tgf)5l&^ÐUVftffff ff9uwf9u s!^ÐUSWVu f} fEfffOf u^_[ÐUEPE@PhP EƀUWVu} ffEff;Es3^_ÐE*}uNO8FtאNF OO ;ufEfMf u̸ ^_ÐUWVfuE )U9s h f t#jEP,EPu PG ^_UEÐUEÐU V5!LEE$ERju EfEf-ff9E }fu 5!PjuL)E E} uE^ÐUuuu u|LÐU=tu(u5Euh EU 4E@E EEExuu@PjE@PK}t:uj(YEEEu@PjE@PKuj),EÐU=t0% 9u#f=)t5j Df)}5} t $ , Ph4 5^D }tXu=t < D P5/D }tuhH 5D 5hP xD5ugD= uC5j "D=t*wP5%JPhT 5C5=ÐUjjuÐUju PjuÐU ju Pjub ÐUjjuEÐUju Pju%ÐU ju |Pju Ð  XU=t$5!;8@PBPÐU}=t5%;hlht hlQB} t-hlE PjE @P Ihlh BhluBhlj KB=t)wP5%DHPh hlA\=t5%:j>@UjuÐUu uU=t  PÐUuuu uhlCAhlj Adj?ÐU졀!@ t h dÐU5!jjEP2U}/u3UE d@EE f,fEfEf f+f0EEfEf+ffEf uԋEPu,EM+ÐUÐUf@ÐUfEEfE*fEf}@|fEEƀ8+fEf}|f@f,fHfx&f%fdÐUhjPH fdf9EwÐfdfdPPfdf9EwÐUHƀÐUuAE u2=t'5CuWAÐ3U Vf@f9,}FhE t&f,f,f WƋM &^Ðf,f@f5x&Ƌ&Ef%fEEf8+f;uEΊ88+GEf8+Ef8fEEf8f;uEΊ88ƀKfE)fEfdf9Erf9Ev EPfEf@fdEPuU VfƋM 6fM f E)ƀf95x&ufx&f,f9x&| fx&f5HEf3Eff+ffUM8+8EfΈ8+ƊM%Ƌ&Ef} t7fdf9E sE PutE^Ðhju .E E^UVEf3Eff+ff8+ f8f tDƋM9 6uf95x&ufx&f,f9x&| fx&f5H^3^ÐUVE EfEfEuUff t&} t ƀƋ&M^Ð}@}>Efu<E tfx&f@f,f9E|f랐fx&f@f,f@3ÐUEh %BE t#8th jCPh( F P?Fh( Chh( 8P7jh( dCt&@u h ÐUVuf$ f9E w%hE D-PVA ^Ðf$ f)E =t&u hx wjE H P5t&A hV5t&D =t h 6^U= u u0f$ f9E =t&f u"h:D tef$ [DE$  P5D<D u$  P:D9Et h f$ f9E w'huE D-P@ Ðf$ f)E =t&ujE H P5t&f@ hu5t&dE =t h ÐUt&ÐU=t&t5t&5h( DÐU=u-f}t h d&f zffÐ} t2=u=u=]t h]0=u=u= \t h,\} u f=|u-f=Xu fzfXfXfEfX+f=Zu f|fZfZfEfZf~f9Ev fEf~E d&fUfA'fME d&fUf9Au hDjf}uEÐU(VEEfXEfE=u fTf8f%U%+u"}u% `&E% `&% *A %E@E% )U܉EE@E tBfTfEfMf%f9EvVEڋ *A %EM8Hu2=x tE@u@tf8fTf%fE%+$Ef%f@fEhlh`4E+Ehl@PjE@P;hlht4E@+Ehl@PjE@P:hlh|b4hlj '4E+$:Et*} E+PhEE@E ,fUfAE )URE@$EEt  E@$E܀}tE9Es}uH}w?E )U+UTE܉EE `&%U܉E@E܀}t E9Er6}}w#%+}}E+E}tIPhE܃$E܃$ E*}vEPh멐EPh뚐fEfEf9EwBE *A %EM8Hx >fEfHfEڀ=u9}u3%+u!EE=v hfEf%fXf%fTf9%%+%PXPfE% ,fUfA=%+9}/%  `&EX=t =th8h=ht5*fEfE1E $ff;Eu hT+|PM 4jj|P @EE\M 40hphlPX,XXXXXL|XpX8XXXXXXXXXXXXXXXXXXX xXXX|PM 4hM 4% tIjEPf}et|PwE|P訐5%*M 40hhljf;Es8M 8-"@?7.$}u hjjP赛 %LÐUE Pu@P E Ƅ@h@P% u3ÐjEPf}et5%ӐjEP]j EPAPX ƅ@ jh@P跍 t}|=+tEP%@ P `Dž<j<5%b jh%ÐU=,u4+ÐU4+*|!+Ef8ff98=4+=4+t;P4+,jh7=4+t=Pu-=|!t5%9|!f8rEf8f+PE*Ph=EPE+}t =4+**ÐU=|!uy8(E@PEPd uIhhlzhlE@PjE@P7hlj ,|!Džljl5%X fDžvxfxPyPf=8tfxf;8v 8xjlPbjjxP p t[xuU8(Elj8PlEP t=Pu %*Pfvf%f9vÐU5!EPM5!EP4ÐUEPEPCÐÐUjjh# %,jjh  %*jjh %pjjhҖ %%jjh(跖 %8jjh4蜖 %+ÐU=ht4Exu+ ,9Ht *9Ht `9Hu Ð3U졄,9Eu89E t/p9E t%3Ð*9Eu+9E t %9E u۸ÐU졄,9E u4fMfH&á*9E u 4fMfH(ÐUEEfE fEjffPEPj=tfE4fMffH$ÐÐUExu ,9Hu Ð3UExu *9Hu Ð3UVfTf@f8hIh<fTfo&f58f95o&s^ÐEH %EƋ )URfFf95o&s^ÐÐUVfl&fE8HPjT9HPj \fAfEf=l&!jhth* E f=t j5hjOff*@Ph*ht f*@Ph*V f*@pfEEFEFwt SM* ȉM=t2)EEFEFff=l&w-!fE4E}tf*@EfMfH*j5h!EP*E=\t-jl&M+P5%Y fEfl&g^U4EfxuUM$ J,f JfHEM* H EfM fH=tE *2Uf=t j5hjWftÐUE=tEPhhuÐhl@hlfxu fx$ufx&ufx(u fx*.l@P=tlp  lp l@P5555l@$l@&l@(l@*l@$Pl@&Pl@(Pl@*PlfxEl@pllE@PutPV ptx}trtftƄt(pEPE@PftuP EttftƄt)ftE@5!ftP. 5!tPjuP hÐU WVEyju荅Ph^Ef=s!fE艅f-EfEf~t fTf9Ev Ef@=t u uEPE@P?u5!GP 5!GPjG@PtE9EsfE0FEf~DF $fAfEE ,fAfE=E+fmf=z^_ÐU5!b+E8jh5!ÐUEM H 5!jj uEM HEf@ÐUj ju E@EfEf@E 8H5u5ut5uc5uR5uA=u =t jj5!1 EpÐU q f8fE(E )4EP,PgfEfo&f9Ev̡-Ph?j5+5! ujj5! ÐUVL95 w^ÐV95 w^ÐUWVu u^_ÐF t5F t3 VRF P }F tv# FF FF듐UVuF u(7F t~tF9FvV.F tF t ^Ð3^ÐUVu F $RuF DuV3 u:F D>V:xENFVEP F t^E^ÐUSWVu^~+؉~F Dt3F +FF +F 3;} V@ ~!SWF Pn ;tN ^_[3^_[ÐUVuF $<tF u ^ÐF $ F ~u VJF9Fu9F Du3F +FF +F 3;} V3^ÐUWVu~ F u?}F DN5h:F tN F NאF 0N FFW t F uN @^_ÐUWVuF +F }F F^_Ð9>~>^_ÐUWVu~u VF uF N F Dt$L9= vG @tWyFFF tF +FPvF P xFF^_Ð>tN N F tf ^_ÐU WVu 5 )E8V-=AWVu觶 ETE^_ÐUWVu>~u;u^_ÐUVu^Ðu^UVu^Ðu^ør3ãør3ãørãU5u uÐU_uÐUPu u(ÐUVuVVu u ^ÐU SWVu t}tE8u 3^_[ÐE x+E at:rtQwu t؀hSu| E }2 tf̐ t3븐EF tE 8ruF E 8au ujju *F 3ɉNN ^_[ÐUVEEE@ u @ t H uuu Z E@ t^Ë^ÐUVu xFFM^VuS^ÐUSWVu 3F $<u~tF9Fu>uF Du V3 t 3^_[ÐF EF mSjuuE t+]K)^F +F 3;} VA}tF @t V4@t(^_[Ð]ENM+ Vn@u^_[ÐuEPuF P, E^_[ÐUSWVu} ~}3^_[ÐEE ؃>+V@uE H+u ȋE+^_[ÐN;rËWvu ljE)>~F +F 3;} V,+wE^_[ÐUSWVE=u6    E؋5Eu559=u5>t;w ;K$;w9= ut3^_[E}v5j ;t=oEe ǹ t>Ǚ+ډUNjE% ++؉EEe E;dEE=vhT@Cmu;@uW = 8E+ED ;t ȋ  u;s 95u F^_[ÐUWVu=$ 9u=^_ÐUSWV}Gt WG+Eu v t9uu^_[ÐE EE9EsEEEPuV ;sŋE;rE+   륐UWVuf F }}i~tcF u]>E E}ujjF P% +E)} F u+ ~'9}"F+F;EEFE)F t FFf uu F P E=F t5VpF t f FFuu F P E}u ^_Ð3^_Ðr3ãUVE8}E@ t ؋%E@ t?3@ txt @ up+pjjE@ P E |uE^Ð^USWVu} ~<}~6F $<u~tF9Fu>uF DuV83 t 3^_[ÐF \EEE F9FrdF urVWuF PM ;t N 3؋Ù} ^_[ÐV:@uE H+u ȋE+^_[Ð]ENM+ ~ȋ;rËSuu )^F +F 3;} V^+uF Dt!F uSj v t VE^_[USWVu=wV u?u3^_[ÐUWVu} G8Gu F~=u^_À>u=t3^_ÐrãUVWUߎNj}Nju ~+ttف+ ~_^UWSUߎNj}E ~'فa+  ~E[_U SWV uF~uNǹ +0+N>XtFaz~3^_[ËCju @uߋE^_[ÐrãUEEE EEPuU SWVE +EE;P+ÉEEEEu} +9uuVE u)]uVҐ}}dŐWuE uW]u9}~.9uuW]uV ]uWV+렐+9}r9uup=)tEEEEE9ErE+EM +Mm;|u EPEE uuEÉEV)]uWC )]}^_[ÐUSWVEu} FG_Mu^_[USWVEu} ]EFCEMu^_[ørã80r;u ÃD$=| T$  UVWߎNj} +ы}>ѹO~+ttف+E_^UVWSU ߎNj} ++ыڋ}~+ttف+gU+~4~+ttف+E[_^<rã r3ãørãUE%EE%EMEE0ÐUSWVu} ]{ E@u@6EE EfEf f ŠM*Ȁ0K } KE0E@tEM++E ~ EЉEME+ÉEEEE9EhE#EE E @E]]FEP K2EEEEEE E @E}XuE]]EE uE@u6EЉEM%KE#EEE%ME uE@tEM++E ~ EЉEME}EăXt;ot xtfEEܼEEꐐE E E @E]@'E E X uE@uS)ÉEF|||8tMyꋅ|HӐزȲh!X0c3dNlos!uxːEEE t,fEu M+EE E+EEЋE؉EEE+ExEPWjhxx܋xEt;EvEPWxh!xhu tE}tAEEp;EvEPWuu2uuu pEfEEЉlEPWjhll܋lEh;EvEPWlh!lhu5 hE}~?EEd;EvEPWuS`uSu dEfEȄEE9EE+E`EPWjh``܋`E\;Ev EPW`hd`huI \E=UVL95 v F u^Ð3^Ð!r3ãør D$3ã; crãUEPhTu }3ÐÐUVW+M ~[ߎNj} ыEt++ы}~-ttف+ t_^UWM ~ߎNj}E uH+_UWVu u ^_Ë=P[@u ^_Ð^_ÐUWߎNj}+H_6rãS T invalid object moduleinvalid object moduleinvalid object moduleinvalid object moduleerrorwarning : %s : %s near %04x in segment offset %lxH frm seg , tgt seg , tgt offset %08lx , tgt offset %04x fixup overflowfixup overflowfixup overflowProgram entry point at %04x:%04x relocation table overflowfixup overflowfixup overflowfixup overflowfixup(s) without dataDGROUPCODEBEGDATABSSSTACKterminated by usertoo many segmentscommon area longer than 4G-1 bytescommon area longer than 65536 bytescommon area longer than 4G-1 bytescommon area longer than 4G-1 bytesFAR_BSSFAR_BSSHUGE_BSSHUGE_BSSBSSc_common%3d segment "" class "" length %lxH bytes too many libraries %04X:%08lX %04X:%04X Abs Origin Group %04X:0 PublicsLocals Address ( %s by Name PublicsLocals Address  %s by Value Start  Length Name  Cl#ass Start Length Name & Class Start Stop Length Name ~ Class %04x:%08lx %04x:%04x %05lXH %05lXH %05lXH %05lXH out of space for list fileLINKlL/ ?X,symbol table overflowTotal number of symbols = %6u Sum of buckt(elen^2 = %6lu (cSymbols^2)/#buckets = %6lu Average bucket length = %6u Maximum bucket length = %6u Number of empty buckets = %6u too many TYPDEF recordsNEAR/HUGE conflictNEAR/HUGE conflictarray-element size mismatchtoo many external symbols in one moduletoo many group, segment, and class names in one modulecode-segment size exceeds 65500too many segments in one modulesegment size exceeds 2MBCODEtoo many segmentssegment defined both 16- and 32-bitsegment size exceeds 2MBsegment size exceeds 64Ktoo many groups in one moduletoo many groupssegment declared in more than one groupsymbol defined more than oncesymbol defined more than oncetoo many public symbolstoo many external symbols in one modulemodel mismatchdata record too largeLIDATA record too largeunresolved COMDEF; internal error Line numbers for segment %4d %04x:%04xrequested segment limit too highrequested segment limit too high Segments %u Groups %u Bytes in symbol table %ld Entries in reloc table %urb%s: object not foundcannot find file in file(s): in file(s): wbcannot open run filetoo many segments for 386 program/lib/ldrStack Allocation = %u bytes **** PASS ONE **** **** LIBRARY SEARCH **** **** ASSIGN ADDRESSES **** **** PRINT MAP **** **** PASS TWO **** **** WRITING EXECUTABLE **** %s: unresolved externals: %s: unresolved externals: attempt to access data outside segment bounds : warningerror%s: '%s'%s, %s : pos: %lx Record type: %02x fatal error: : pos: %lx Record type: %02x invalid object moduleunexpected end-of-fileout of space for run fileLINKTMP/vm6XXXXXXcannot open temporary file/tmp/vmXXXXXX!scratch file missingunexpected end-of-file on scratch fileinternal error: pageoutunexpected end-of-file on scratch fileuse PURE (-i) optionmultiple code segmentsmultiple data segmentsselector collisionWARNING: Groups "" and "" overlapboth 16-bit and 32-bit segments in group; assuming 32group larger than 4G-1 bytesgroup larger than 64K bytescode group longer than 65530stack plus data exceed 64Kstack option ignored for 386 executablespage-alignment option ignored for 286 executablesbadly formed hex numberinvalid numeric valuenumber too large%s: "%s" ignored Microsoft (R) L 4inker Version%s %d.%02d.%02d Copyright (C) Microsoft Corp 1986, 1987. All rights reserved. a.out[-A ][-C][-F ][-M{smlhe}][-N [-P][-R{td}] usage: %s %s[-S #][-V{01}][-i][-g][-m ][-n #][-o ][-s][-u ][-v #] version number missingunrecognized Xenix version numbercpu number missingbad cpu numberaddress missing-A and -F are mutually exclusivebias value missingbias value missingpagesize value missing%s: Pagesize converted t 3o %lx pagesize larger than 0xfe00relocation value missing%s: unknown model specifier "%s" stack size missing-A and -F are mutually exclusiveinvalid numeric valuesegment limit set too highunrecognized option namewtcannot open list file%s: -u seen before %s invalid numeric valueunrecognized option nameunrecognized option name%s: %s ignored rb%s: cannot find "%s" no object modules specifiedrb __.SYMDEFError accessing library >sLDEBTYPDEBSYM TYPES SYMBOLS$$TYPES $$SYMBOLS,2008s 0@-+ 0123456789ABCDEF0123456789abcdef0x0X(null)  00 U ((((( H     A#@(#) Fri Aug 28 21:31:37 PDT 1987 5@-+ 0123456789ABCDEF0123456789abcdef0x0X(null)  00  U./tmp/init.link*9 700 3 3 1704 4135450744 6573 # # @(#) link.src 1.8 87/10/07 # /tmp/init.link - onetime initialization script # PATH=/bin:/usr/bin:/etc # Return code definitions : ${OK=0} ${FAIL=1} ${STOP=10} ${HALT=11} # Must be at root for fixperm to work cd / # Brand the link kit echo "\nLink kit serialization" >&2 file=/usr/sys/mdep/libmdep.a while echo "\nEnter your serial number: \c" do read serial echo "\nEnter your activation key: \c" read key /etc/brand $serial $key $file case $? in 0) break ;; 1) echo "Error, please try again"7 >&2 ;; 2) ;; 3) echo "$file is already serialized" >&2; break ;; esac while echo "Do you wish to try activation again? (y/n) \c" read yn do case $yn in [Yy]*) break ;; [Nn]*) echo " The Xenix link kit will not work correctly without proper serialization. Contact your support center to obtain a valid activation key and re-install the link kit." >&2 exit $FAIL ;; *) echo "Enter either 'y' or 'n'" >&2 esac done done exit $OK e $? in 0) break ;; 1) echo "Error, please try again" N]./usr/include/sys/var.h&9 444 0 0 4464 4145160260 10161  &/* * @(#) var.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE2NIX TO NEW HARDWARE. */ struct var { int v_buf; /* NBUF */ int v_sabuf; /* NSABUF  */ int v_hbuf; /* NHBUF */ int v_hmask; /* NHBUF-1 -*/ int v_maxbuf; /* MAXBUF */ int v_call;  /* NCALL */ int v_inode; E/* NINODE */ inodep_t ve_inode; /* &inode[NINODE] */ int v_file; D /* NFILE */ filep_t ve_file; /* &file[NFILE] */ int v_mount; /* NMOUNT */ struct mou1nt *ve_mount; /* &mount[NMOUNT] */ int v_proc; H /* NPROC */ struct proc *ve_proc; /* &proc[NPROC] */ int v_text; I /* NTEXT */ struct text *ve_text; /* &text[NTEXT] */ int v_clist; /* NCLIST */ int v_maxup; /* MAXUPRC */ int v_maxmem;  /* MAXMEM */ int v_lock;  /* NFLOCKS */ int v_sdata; |/* NSDSEGS */ int v_sdslots; /* NSDSLOTS */ int v_msgmap; /* MSGMAP */ int v_msgmax; /* MSGMAX */ int v_msgmnb; /* MSGMNB */ int v_msgmni; /* MSGMNI */ int v_msgtql; /* MSGTQL */ int v_msgssz; /* MSGSSZ */ unsigned short v_msgseg;/* MSGSEG */ int v_semmap; /* SEMMAP */ int v_semmni; /* SEMMNI */ int v_semmnu; /* SEMMNU */ int v_semmsl; /* SEMMSL */ int v_semopm; /* SEMOPM */ int v_semume; /* SEMUME */ int v_semvmx; /* SEMVMX */ int v_semaem; /* SEMAEM */ int v_semmns; /* SEMMNS */ int v_semusz; /* SEMUSZ */ int v_scrn; /* NSCRN */ int v_pbuf; /* NPBUF */ int v_emap;  /* NEMAP */ int v_sxt; /* NSXT */ #ifdef M_I386 int v_shmmax; /* SHMMAX */ int v_shmmin; /* SHMMIN */ int v_shmmni; /* SHMMNI */ int v_shmseg; /* SHMSEG */ int v_shmbrk; /* SHMBRK */ int v_shmall; /* SHMALL */ int v_nsdtab; /* # entries in sdtab[] */ #endif }; extern struct var v; ; /* SEMUME */ int v_semvmx; /* SEMVMX */ int v_semaem; /* SEMAEM */ int v_semmns; /* SEMMNS */ int v_semusz; /* SEMUSZ */ int v_scrn; /* NSCRN */ int v_pbuf; /* NPBUF */ int v_emap; a./usr/include/sys/utsname.h$9 444 0 0 2316 4145160260 11037 /* * @(#) utsname.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ #define SYS_NMLN 9 struct utsname { char sysname[SYS_NMLN]; char nodename[SYS_NMLN]; char release[SYS_NMLN]; char version[SYS_NMLN]; char machine[SYS_NMLN]; char reserved[15]; unsigned short sysorigin; /* original supplier of Xenix system */ unsigned short sysoem; /* OEM for this system */ long sysserial; /* serial number for this system */ }; extern struct utsname utsname; struct uts3name { char sysname[SYS_NMLN]; char nodename[SYS_NMLN]; char release[SYS_NM LN]; char version[SYS_NMLN]; unsigned short sysorigin; /* original supplier of Xenix system */ unsigned short sysoem; /* OEM for this system */ long sysserial; /* serial number for this system */ }; d[15]; unsigned short sysorigin; /* original supplier of Xenix system */ unsigned short sysoem; /* OEM for this system */ long sysserial; /* serial number for this system */ }; extern struct utsname utsname; struct uts3name { char sysname[SYS_NMLN]; char nodename[SYS_NMLN]; char release[SYS_NM A]./usr/include/sys/user.h&8 444 0 0 22462 4145160260 10365 * /* * @(#) user.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #ifndef X_MAGIC #include "a.out.h" #endif /* * The user structure. * One allocated per process. * Contains all per process data that doesn't need to be referenced * while the process is swapped. * The user block is USIZE*click bytes long; resides at virtual kernel * SPTADDR, contains the system stack per user; is cross referenced * with the proc structure for the same process. */ #define PSARGSZ 40 /* Space in u-block for exec arguments */ /* Used by ps command */ #ifdef M_I386 typedef char *faddr_u; #else /* M_I8086 or M_I286 */ typedef union { char far *fu_far; char *fu_near; } faddr_u; #endif struct user { char u_kstack[KSSIZE]; /* kernel stack, per process */ label_t u_rsav; /* save info when exchanging stacks */ label_t u_qsav; /* label variable for quits and interrupts */ label_t u_ssav; /* label variable for swapping */ char u_segflg; /* IO flag: 0:user D; 1:system; 2:user I */ uchar_t u_error; /* return error code */ ushort u_uid; /* effective user id */ ushort u_gid; /* effective group id */ ushort u_ruid; /* real user id */ ushort u_rgid; /* real group id */ struct proc *u_procp; /* pointer to proc structure */ int *u_ap; /* pointer to arglist */ union { /* syscall return values */ struct { int r_val1; int r_val2; }r_reg; off_t r_off; time_t r_time; long r_long; faddr_t r_faddr; #ifndef M_I386 char far *r_far; #endif } u_r; faddr_u u_baseu; /* base address for IO */ unsigned u_count; /* bytes remaining for IO */ off_t u_offset; /* offset in file for IO */ short u_fmode; /* file mode for IO */ daddr_t u_rablock; /* read ahead block addr */ short u_errcnt; /* syscall error count */ inodep_t uh_cdir; /* current directory of process */ inodep_t u_rdir; /* root directory of process */ faddr_u u_dirpu; /* pathname pointer */ struct direct u_dent; /* current directory entry */ inodep_t u_pdir; /* inode of parent directory of dirp */ filep_t u_ofile[NOFILE]; /* pointers to open file structures */ char u_pofile[NOFILE]; /* per-process flags of open files */ int u_arg[10]; /* arguments to current system call */ unsigned u_tsize; /* text size (clicks) */ unsigned u_dsize; /* data size (cXlicks) */ unsigned u_ssize; /* stack size (clicks) */ #ifdef M_I386 int (*u_signal[MAXSIG])(); /* disposition of signals */ int (*u_sigreturn)(); /* for cleanup */ #else int (far *u_signal[NSIG])(); /* disposition of signals */ #endif time_t u_utime; /* this process user time */ time_t u_stime; /* this process system time */ time_t u_cutime; /* sum of childs' utimes */ time_t u_cstime; /* sum of childs' stimes */ int *u_ar0; /* address of users saved R0 */ char u_psargs[PSARGSZ]; /* args fr om exec system call */ struct { /* profile arguments */ faddr_u pr_baseu; /* buffer base */ unsigned pr_size; /* buffer size */ long pr_off; /* pc offset */ unsigned pr_scale; /* pc scaling */ faddr_u pr_syspcu; /* address of user pc during syscall */ } u_prof; char u_intflg; * /* catch intr from sys */ char u_sep; b/* flag for I and D separation */ char u_osvers; /* version of binary (SYS2, 3, 5, etc) */ c har u_hugex; /* allows exec of proc > swapper when set */ char u_lock; /* for plock() system call */ char u_cpu; /* cpu type for this program */ unsigned short u_renv; /* runtime environment */ struct tty *u_ttyp; /* pointer- to pgrp in tty structure */ dev_t u_ttyd; /* controlling tty dev */ struct u_exdata { /* header information */ long x_text; /* size of text segment(s) */ long x_data; /* size of initialized data segment(s) */ long x_bss; - /* size of uninitialized data segment(s) */ long x_stack; /* size of stack (if XE_FS set) */ long x_entry; /* entry offset */ unsigned short x_eseg; /* entry segment */ unsigned short x_renv; /* run-time environment */ char x_osvers; char x_cpu; /* cpu type */ long x_segsize; /* segment table size */ long x_segpos; /* segment table position */ } u_exdata; char u_comm[DIRSIZ]; time_t u_start;  time_t u_ticks;  long u_mem; long u_ior;  long u_iow;  long u_iosw; x long u_ioch; char u_acflag; char u_nfsflgs; /* reserved for future use */ short u_cmask; ./* mask for file creation */ daddr_t u_limit; -/* maximum write address */ int u_t[32]; &/* (see iupdat) */ int u_sdsaved; S/* we have saved the shared data */ /* machine dependent fields */ int u_fper; , /* FP error register */ char u_fpsaved; /3* FP regs saved for this proc */ char u_fpused; Q /* FP used for this process */ #ifdef M_I386 char u_fpad[2]; struct u_fps { /* 80287 save status */ struct fp_hardware { unsigned int fp_cntrl; /* control word */ unsigned int fp_stat; /* status word */ unsigned int fp_tag; /* tag word */ unsigned long fp_ip; /* instruction pointer*/ unsigned short fp_cs; /* caode selector */ unsigned short fp_ds; /* data selector */ unsigned long fp_op; /* operand offset */ unsigned long fp_rsvd; unsigned char fp_regs[80]; /* register stack */ unsigned short fp_new_status; unsigned char fp_pad[6]; } fp_hardware; struct fp_emul { char fp_emul[214]; /* (extras for emulator) */ char fp_/epad[2]; } fp_emul; } u_fps; #else struct { /* 80287 save status */ int fp_cntrl; /* control word */ int fp_stat; /* status word */ int fp_tag; /* tag word */ int fp_ip[2]; /* instruction pointer */ int fp_op[2]; /* operand pointer */ char fp_regs[100]; /* temporary registers */ int fp_spare; /* (2 xtra for emulator) */ } u_fps; #endif unsigned short u_lxrw; /* R/W access of text segments */ faddr_u u_stkbotu; /* start or bottom of user stack */ #ifdef M_I386 caddr_t u_stktop; /* end or top of user stack */ #endif faddr_u u_edatau; /* end of user data before brks seg:off for 286, 32 bit addr for 386 */ caddr_t u_sdata; /* start of user data */ #ifndef M_I386S struct segtmp far *u_segoff; /* ptr to segoff array used by exec */ #endif #ifdef M_I8086 /* following are 8086 only fields */ short u_usegs[NSEG]; /* segments table for mem management*/ caddr_t u_topstk; /* user data address of stack top*/ caddr_t u_botstk; /* " " " " bottom*/ unsigned u_flags; /* misc flags */ caddr_t u_seginfo; /* seginfo table pointer */ unsigned u_curbrk; /* current break val: brkctl */ unsigned u_hdrsiz; /* 8086 only x.out hdr size */ struct exN86 { long x_reloc; long x_syms; unsigned short x_ext; char x_relsym; char x_res; } u_ex86; #endif #ifdef M_I386 int u_res0; /* reserved 0 */ int u_res1; /* reserved 1 */ struct tabent u_tpdent[TXTPDENT]; /* text page directory entries */ struct tabent u_dpdent[DATAPDENT]; /* data page directory entries */ struct tabent u_shmpdent[SHMPDENT]; /* shared data page dir entries */ int u_dtime; /* time spent on this data segment */ struct ldtinfo *u_ldtinfo; /* pointer to ldtinfo array forW exec */ unsigned short u_ldtlimit; /* current size(index) of ldt */ char u_lpad[2]; struct descriptor u_ldt[1]; /* ldt grows up from here */ #endif }; extern struct user u; #define u_rval1 u_r.r_reg.r_val1 #define u_rval2 u_r.r_reg.r_val2 #define u_roff u_r.r_off #define u_rtime u_r.r_time #define u_rlong u_r.r_long #define u_rfaddr u_r.r_faddr #define u_rfar u_r.r_far #define IS386() ((u.u_cpu & XC_386) == XC_386) #ifdef M_I286 # define u_base u_baseu.fu_far # define u_dirp u_dirpu.fu_far v # define u_stkbot u_stkbotu.fu_far # define u_edata u_edatau.fu_far #endif /* M_I286 */ #ifdef M_I8086 # define u_base u_baseu.fu_near # define u_dirp u_dirpu.fu_near # define u_stkbot u_stkbotu.fu_near # define u_edata u_edatau.fu_near #endif /* M_I8086 */ #ifdef M_I386 # define u_base u_baseu # define u_dirp u_dirpu # define u_stkbot u_stkbotu # define u_edata u_edatau #endif /* M_I386 */ #ifdef M_I386 #define pr_base pr_baseu #define pr_syspc pr_syspcu #else #define ! pr_base pr_baseu.fu_far #define pr_syspc pr_syspcu.fu_far #endif #define U_WRITE 0 #define U_READ 1 /* segflg values */ #define U_UD 0 /* user data */ #define U_KD 1 /* kernel data */ #define U_UI 2 /* user code */ /* ioflag values: Read/Write, User/Kernel, Ins/Data */ #define U_WUD 0 #define U_RUD 1 #define U_WKD 2 #define U_RKD 3 #define U_WUI 4 #define U_RUI 5 #define EXCLOSE 01 /* values for u_nfsflgs (all bits reserved for NFS) */ #define NFSNEGO 0x01 /* core negotiate wanted or not */ #define NFSNOCASE 0x80 /* caseless compare needed (core server proc)*/ /* u_flags */ #define UF_WSWAP 0x1 /* Words in longs swapped relative to kernel */ /* values for u_hugex flag */ #define HX_SMALL 0x01 /* not currently bigger than swap area */ #define HX_BIG 0x02 /* proc is bigger than swap area*/ 1 #define U_WKD 2 #define U_RKD 3 #define U_WUI 4 #define U_RUI 5 #define EXCLOSE 01 /* values for u_nfsflgs (all bits reserved for NFS) */ #define NFSNEGO 0x01 /* core negotiate wanted or not */ #defi_./usr/include/sys/ulimit.h%8 444 0 0 1444 4145160257 10675 @/* * @(#) ulimit.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTINGm XENIX TO NEW HARDWARE. */ /* * The following are codes which can be * passed to the ulimit system call. */ #define UL_GFILLIM 1 /* get file limit */ #define UL_SFILLIM 2 /* set file limit */ #define UL_GMEMLIM 3 /* get process size limit */ #define UL_GTXTOFF 64 /* get text offset */ d be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING_./usr/include/sys/uadmin.h%8 444 0 0 1225 4145160262 10640 /* * @(#) uadmin.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #define A_REBOOT 1 #define A_SHUTDOWN 2 #define A_REMOUNT 4 #define A_SETCONFIG 128 #define A_GETDEV 130 /* * fnc's for A_REBOOT & A_SHUTDOWN */ #define AD_HALT 0 #define AD_BOOT 1- #define AD_IBOOT 2 /* * fnc's for A_SETCONFIG */ #define AD_PANICBOOT 1 /* * fnc's for A_GETDEV */ #define AD_GETBMAJ 0 #define AD_GETCMAJ 1 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #define A_REBOOT 1 #define A_SHUTDOWN 2 #define A_REMOUNT 4 #define A_SETCONFIG 128 #define A_GETDEV 130 /* * fnc's for A_REBOOT & A_SHUTDOWN */ #define AD_HALT 0 #define AD_BOOT 1 _./usr/include/sys/types.h%9 444 0 0 3664 4145160257 10544  0/* * @(#) types.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80286 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ typedef struct { int r[1]; } *physadr;; typedef long daddr_t; typedef char *caddr_t; typedef unsigned short ushort; typedef unsigned short ino_t; typedef char cnt_t; typedef long time_t; #ifdef M_I386 typedef int label_t[6]; /* return, sp, si, di, bp */ #else typedef int label_t[6]; /* return, sp, si, di, bp */ #endif typedef short dev_t; typedef long off_t; typedef unsigned long paddr_t; typedef unsigned short mloc_t; /* memory region location */ typedef unsigned short msize_t; /* memory region size */ typedef long key_t; /* IPC key _ */ typedef int pfn_t; #ifdef M_I386 #define inodep_t struct inode * #define filep_t struct file * #else #define inodep_t struct inode far * #define filep_t struct file far * #endif /* 80286 special types */ #ifdef M_I286 #define faddr_t char far * #define fdesc_t struct desctab far /* far ldt entry */ #else #define faddr_t char * /* same as caddr_t for 8086/386 */ #endif /* 'void' type compatibility */ #ifdef M_OLDVOID typedef int void; #endif /* 'unsigned' type compatibility */ #ifdef &M_OLDSIGN /* { */ typedef char uchar_t; typedef long ulong_t; #define GETUCHAR(uc) (0xff & (uc)) /* extract value */ /* WARNING: you will lose the high bit */ #define GETULONG(ul) (0x7fffffffL & (ul)) /* extract value */ #else /* }{ */ typedef unsigned char uchar_t; typedef unsigned long ulong_t; #define GETUCHAR(uc) (uc) #define GETULONG(ul) (ul) #endif /* } */ struct saddr { unsigned short sa_seg; long sa_off; }; LDVOID typedef int void; #endif /* 'unsigned' type compatibility */ #ifdef  ]./usr/include/sys/tty.h&9 444 0 0 10357 4145160256 10234 x/* * @(#) tty.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * A clist structure is the head of a linked list queue of characters. * The routines getc* and putc* manipulate these structures. */ #include "termio.h" struct clist { int c_cc; /* character count */ struct cblock *c_cf; /* pointer to first */ struct cblock *c_cl; /* pointer to last */ }; /* Macro to find cblock structure given pointer into it */ #define CMATCH(pointer) (cfree + (pointer - cfree)) /* Character control block for interrupt level control */ struct ccblock { unsigned char *c_ptr; /* buffer address */ ushort c_count; /* character count */ ushort c_size; /* buffer size */ }; /* * A tty structure is needed for each UNIX character device that * is used for no(rmal terminal IO. */ #define NCC 8 struct tty { struct clist t_rawq; /* raw input queue */ struct clist t_canq; /* canonical queue */ struct clist t_outq; /* output queue */ struct ccblock t_tbuf; /* tx control block */ struct ccblock t_rbuf; /* rx control block */ #ifdef M_I386 int (*t_proc)();/* routine for device functions */ #else int (far *t_proc)();/* routine for device functions */ #endif ushort t_iflag; /* input modes */ ushort t_oflag; /* output modes */ ushort t_cflag; /* control modes  t*/ ushort t_lflag; /* line discipline modes */ short t_state; /* internal state */ short t_pgrp; /* process group name */ char t_line; /* line discipline */ char t_delct; /* delimiter count */ char t_mstate; /* emapping state */ unsigned char t_mchar;/* saved emapping char */ char t_col; /* current column */ char t_merr; /* emapping error flag */ struct emap *t_mp; /* emapping table */ char t_xstate; /* extended state */ char t_dstat; /* used by line disciplines */ unsigned char t_schar;/ )* save timeout char instead of using lflag */ char t_xxx; /* reserved */ unsigned char t_cc[NCC+2]; /* settable control chars */ }; /* * The structure of a clist block */ #define CLSIZE 32 #define CLFSIZE ((CLSIZE + 7) / 8) struct cblock { struct cblock *c_next; unsigned char c_first; unsigned char c_last; unsigned char c_data[CLSIZE]; unsigned char c_dflags[CLFSIZE]; }; extern struct cblock cfree[]; extern struct cblock * getcb(); extern struct cblock * getcf(); extern struct clist ttnulq; z struct chead { struct cblock *c_next; int c_size; int c_flag; }; extern struct chead cfreelist; struct inter { int cnt; }; #define QESC 0400 /* queue escape */ #define QDELAY 0400 /* delay output */ #define TTIPRI 28 #define TTOPRI 29 /* limits */ extern int ttlowat[], tthiwat[], ttyhog; #define TTYHOG 256 #define TTXOLO 60 #define TTXOHI 180 #define TTECHI 80 /* Hardware bits */ #define DONE 0200 #define IENABLE 0100 #define OVERRUN 040000 #define FRERROR 020000 #define PERROR 010000 /* Interna)l state */ #define TIMEOUT 01 /* Delay timeout in progress */ #define WOPEN 02 /* Waiting for open to complete */ #define ISOPEN 04 /* Device is open */ #define TBLOCK 010 #define CARR_ON 020 /* Software copy of carrier-present */ #define BUSY 040 /* Output in progress */ #define OASLP 0100 /* Wakeup when output done */ #define IASLP 0200 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define CLESC 04000 /* Last char escape */ #define RTO 010000 /* Raw Timeout */ #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* Extended internal state */ #define EXTDLY 01 /* External delay processing */ /* l_output status */ #define CPRES 0100000 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_SUSPEND 2 #define T_RESUME 3 #define T_BLOCK 4 #define T_UNBLOCK 5 #define T_RFLUSH 6 #define T_WFLUSH 7 #define T_BREAK 8 #define T_INPUT 9 #define T_PARM 11 #define T_SWTCH 12 /* * device report */ #define L_BUF 0 #define L_BREAK 3 /* Extract minor device bits not associated with modem control */ #define UNMODEM(dev) (dev & 0x7f) /* does this dev have modem support */ #define ISMODEM(dev) ((dev & 0x80) == 0) fine CPRES 0100000 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_SUSPEND 2 #define T_RESUME 3 #define T_BLOCK 4 #define T_UNBLOCK 5 #define T_RFLUSH 6 #define T_WFLUSH 7 #define T_BREAK 8 #define T_INPUT 9 #define T_PARM 11 #define T_SWTCH 12 _./usr/include/sys/ttold.h%9 444 0 0 2571 4145160256 10521 B/* * @(#) ttold.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING 0XENIX TO NEW HARDWARE. */ #ifdef M_I386 #pragma pack(2) #endif /* * Structure for stty and gtty system calls. */ struct sgttyb { char sg_ispeed; char sg_ospeed; char sg_erase; char sg_kill; short sg_flags; }; /* * List of special characters */ struct tc { char t_intrc; char t_quitc; char t_startc; char t_stopc; char t_eofc; char t_brkc; }; #ifdef M_I386 #pragma pack() #endif /* modes */ #define O_TANDEM 01 #define O_CBREAK 02 #define O_LCASE 04 #define O_ECHO 010 #define O_CRMOD 020  #define O_RAW 040 #define O_ODDP 0100 #define O_EVENP 0200 #define O_NLDELAY 001400 #define O_NL1 000400 #define O_NL2 001000 #define O_TBDELAY 005000 #define O_TAB1 001000 #define O_TAB2 004000 #define O_XTABS 006000 /***#define O_NOAL 004000***/ #define O_CRDELAY 030000 #define O_CR1 010000 #define O_CR2 020000 #define O_VTDELAY 040000 #define O_BSDELAY 0100000 #pragma pack() #endif /* modes */ #define O_TANDEM 01 #define O_CBREAK 02 #define O_LCASE 04 #define O_ECHO 010 #define O_CRMOD 020 ?]./usr/include/sys/trap.h&8 640 315 5 2732 4030703574 10413 /* * %Z% %M% %I% %D% %Q% * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * 386 trap types */ #define TR_DIVERR 0 /* divide error */ #define TR_SINGLE 1 /* single step */ #define TR_NMI 2 /* non-maskable interrupt */ #define TR_BRKPNT 3 /* breakpoint */ #define| TR_INTO 4 /* INTO instruction */ #define TR_BOUND 5 /* BOUND instruction */ #define TR_ILLINST 6 /* illegal instruction */ #define TR_DNA 7 /* device not available */ #define TR_DBLFLT 8 /* double fault */ #define TR_OVERRUN 9 /* coprocessor overrun */ #define TR_INVTSS 10 /* invalid tss */ #define TR_SEGNP 11 /* segment not present */ #define TR_STACK 12 /* stack fault */ #define TR_GP 13 /* general protection fault */ #define TR_PAGE 14 /* page fault */ #define TR_COPROC 16 /* coprocessor error */ #dzefine RESCHED 17 /* software generated */ #define SYSCALL 18 /* software generated */ #define USER 512 /* * floating point traps */ #define TR_SW240 240 #define TR_SW241 241 #define TR_SW242 242 #define TR_SW243 243 #define TR_SW244 244 #define TR_SW245 245 #define TR_SW246 246 #define TR_SW247 247 #define TR_SW248 248 #define TR_SW249 249 #define TR_SW250 250 #define TR_SW251 251 #define TR_SW252 252 #define TR_SW253 253 #define TR_SW254 254 #define TR_SW255 255 R_COPROC 16 /* coprocessor error */ #d\_./usr/include/sys/times.h%9 444 0 0 1376 4145160255 10515 /* * @(#) times.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure returned by times() */ struct tms { time_t tms_utime; /* user time */ time_t tms_stime; /* system time */ time_t tms_cutime; /* user time, children */ time_t tms_cstime; /* system time, children */ }; ft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING _./usr/include/sys/timeb.h%9 444 0 0 1616 4145160255 10471  ?/* * @(#) timeb.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure returned by ftime system call */ #ifdef M_I386 #pragma pack(2) #endif struct timeb { time_t time; /* time, seconds since the epoch */ unsigned short millitm;/* 1000 msec of additional accuracy */ short timezone; /* timezone, minutes west of GMT */ short dstflag; /* daylight savings when appropriate? */ }; #ifdef M_I386 #pragma pack() #endif N DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING ]./usr/include/sys/text.h&8 444 0 0 2626 4145160255 10357 /* * @(#) text.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Text structure. * One allocated per pure procedure on swap device. * Manipulated by text.c */ struct text { short x_daddr; /* disk address of segment (relative to swplo) */ " short x_size; /* size (clicks) */ #ifdef M_I386 struct proc *x_caddr; /* ptr to linked proc, if loaded */ #else mloc_t x_caddr; /* ptr to linked proc, if loaded */ #endif inodep_t x_iptr; /* inode of prototype */ char x_count; /* reference count */ char x_ccount; /* number of loaded references */ char x_flag; /* traced, written flags */ char x_lcount; /* lock count */ unsigned short x_fcsel;/* first code selector */ unsigned short x_lsize;/* size of the text ldt in bytes */ }; extern struct text text[]; #define XTRC 01 /* Text may be written, exclusive use */ #define XWRIT 02 /* Text written into, must swap out */ #define XLOAD 04 /* Currently being read from file */ #define XLOCK 010 /* Being swapped in or out */ #define XWANT 020 /* Wanlted for swapping */ #define XLARGE 040 /* large text segment 286/86 uses this flag */ #define XFPU 0100 /* text uses floating point */ * first code selector */ unsigned short x_lsize;/* size of the text ldt in bytes */ }; extern struct tex_./usr/include/sys/termio.h%8 444 0 0 12113 4145160255 10702 /* * @(#) termio.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTINGZ XENIX TO NEW HARDWARE. */ #define IOCTYPE 0xff00 #define TIOC ('T'<<8) #define TCGETA (TIOC|1) #define TCSETA (TIOC|2) #define TCSETAW (TIOC|3) #define TCSETAF (TIOC|4) #define TCSBRK (TIOC|5) #define TCXONC (TIOC|6) #define TCFLSH (TIOC|7) #define TCDSET (TIOC|32) #include "machdep.h" #define LDIOC ('D'<<8) #define LDOPEN (LDIOC|0) #define LDCLOSE (LDIOC|1) #define LDCHG (LDIOC|2) #define tIOC ('t'<<8) #define TIOCGETD (tIOC|0) /* V7 */ #define TIOCSETD (tIOC|1)  q /* V7 */ #define TIOCHPCL (tIOC|2) /* V7 */ #define TIOCGETP (tIOC|8) #define TIOCSETP (tIOC|9) #define TIOCSETN (tIOC|10)  /* V7 */ #define TIOCEXCL (tIOC|13)  /* V7 */ #define TIOCNXCL (tIOC|14) + /* V7 */ #define TIOCFLUSH (tIOC|16)  /* V7 */ #define TIOCSETC (tIOC|17)  /* V7 */ #define TIOCGETC (tIOC|18) ( /* V7 */ #define LIOC ('l'<<8) #define  LIOCGETP (LIOC|1) #define LIOCSETP (LIOC|2) #define LIOCGETS (LIOC|5) #define LIOCSETS (LIOC|6) #define DIOC ('d'<<8) #define DIOCGETC (DIOC|1) #define DIOCGETB (DIOC|2) #define DIOCSETE (DIOC|3) #define DIOCGETP (DIOC|8) /* V7 */ #define DIOCSETP (DIOC|9) /* V7 */ #define VPM ('V'<<8) #define VPMCMD (VPM|8) #define VPMERRS (VPM|9) #define VPMRPT (VPM|10) #define VPMTRCO (VPM|16) #define FIOCLEX (('f'<<8)|1) !/* V7 */ #define FIONCLEX X (('f'<<8)|2) /* V7 */ #define FIORDCHK (('f'<<8)|3) /* V7 */ #define NCC 8 /* control characters */ #define VINTR 0 #define VQUIT 1 #define VERASE 2 #define VKILL 3 #define VEOF 4 #define VEOL 5 #define VEOL2 6 #define VMIN 4 #define VTIME 5 #define VSWTCH 7 #define VCEOF NCC /* RESERVED true EOF char (V7 compatability) */ #define VCEOL (NCC + 1) /* RESERVED true EOL char */ #define CNUL 0 #define CDEL 0377 /* default control chars */ #define CESC '\\' #define CINTR 0177 /* DEL */ #define CQUIT 034 /* FS, cntl | */ #define CERASE '\010' /* backsp */ #define CKILL '\025' /* cntl u */ #define CEOF 04 /* cntl d */ #define CSTART 021 /* cntl q */ #define CSTOP 023 /* cntl s */ #define CSWTCH 032 /* cntl z */ #define CNSWTCH 0 /* input modes */ #define IGNBRK 0000001 #define BRKINT 0000002 #define IGNPAR 0000004 #define PARMRK 0000010 #define INPCK 0000020 #define ISTRIP 0000040 #define INLCR 0000100 #define IGNCR 0000200 #define ICRNL 0000400 #define IUCLC 0001000 #define IXON 0002000 #define IXANY 0004000 #define IXOFF 0010000 /* output modes */ #define OPOST 0000001 #define OLCUC 0000002 #define ONLCR 0000004 #define OCRNL 0000010 #define ONOCR 0000020 #define ONLRET 0000040 #define OFILL 0000100 #define OFDEL 0000200 #define NLDLY 0000400 #define NL0 0 #define NL1 0000400 #define CRDLY 0003000 #define CR0 0 #define CR1 0001000 #define CR2 0002000 #define CR3 0003000 #define TABDLY 0014000 #define TAB0 0 #define TAB1 0004000 #define TAB2 0010000 #define TAB3 0014000 #defin7e BSDLY 0020000 #define BS0 0 #define BS1 0020000 #define VTDLY 0040000 #define VT0 0 #define VT1 0040000 #define FFDLY 0100000 #define FF0 0 #define FF1 0100000 /* control modes */ #define CBAUD 0000017 #define B0 0 #define B50 0000001 #define B75 0000002 #define B110 0000003 #define B134 0000004 #define B150 0000005 #define B200 0000006 #define B300 0000007 #define B600 0000010 #define B1200 0000011 #define B1800 0000012 #define B2400 0000013 #define B4800 0000014 #define B9600 0000015 #define EXTA 00000I16 #define B19200 0000016 #define EXTB 0000017 #define B38400 0000017 #define CSIZE 0000060 #define CS5 0 #define CS6 0000020 #define CS7 0000040 #define CS8 0000060 #define CSTOPB 0000100 #define CREAD 0000200 #define PARENB 0000400 #define PARODD 0001000 #define HUPCL 0002000 #define CLOCAL 0004000 #define LOBLK 0010000 #define CTSFLOW 0020000 #define RTSFLOW 0040000 /* line discipline 0 modes */ #define ISIG 0000001 #define ICANON 0000002 #define XCASE 0000004 #define ECHO 0000010 #define ECHOE 0000020 y#define ECHOK 0000040 #define ECHONL 0000100 #define NOFLSH 0000200 #define XCLUDE 0100000 /* *V7* exclusive use */ #define SSPEED 13 /* default speed: 7=300, 13=9600 baud */ #ifdef M_I386 #pragma pack(2) #endif /* * Ioctl control packet */ struct termio { unsigned short c_iflag; /* input modes */ unsigned short c_oflag; /* output modes */ unsigned short c_cflag; /* control modesk */ unsigned short c_lflag; /* line discipline modes */ char c_line; /* line discipline */ unsigned ch=ar c_cc[NCC]; /* control chars */ }; #ifdef M_I386 #pragma pack() #endif XCLUDE 0100000 /* *V7* exclusive use */ #define SSPEED 13 /* default speed: 7=300, 13=9600 baud */ #ifdef M_I386 #pragma pack(2) #endif /* * Ioctl control packet */ struct termio { unsigned short c_iflag; /* input modes */ unsigned short c_oflag; /* output modes */ unsigned short c_cflag; /* control modesk */ unsigned short c_lflag; /* line discipline modes */ char c_line; /* line discipline */ unsigned ch _./usr/include/sys/systm.h%9 444 0 0 11232 4145160254 10562  6/* /* * @(#) systm.h 2.3 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Random set of variables used by more than one routine. */ inodep_t rootdir; /* pointer to inode of root directory */ struct proc *runq; /* head of linked list of running processes */ extern struct proc *curproc; /* %current proc */ struct proc *Hogproc; ? /* if non-NULL, schedule only this process */ short cputype; y/* type of cpu */ time_t lbolt; /* time in HZ since last boot */ time_t time; /* time in sec from 1970 */ int Hz; # 1 /* configurable clock speed */ int Timezone; - /* configurable timezone */ int Dstflag; /* configurable DST flag */ int mpid; /* generic for unique process id's */ char runin; /* scheduling flag */ short runout; /* scheduling flag */ char runrun; /* scheduling flag */ char runtxt; /* scheduling flag */ char curpri; /* more scheduling */ unsigned maxmem; /* actual max memory per process */ #ifdef M_I386 long physmem; /* physical mgemory in clicks */ #else paddr_t physmem; /* physical memory on this CPU */ #endif daddr_t swplo; /* block number of swap space */ int nswap; /* size of swap space */ int updlock; /* lock for sync */ daddr_t rablock; /* block to be read ahead */ in t Cmask; /* default creation mask */ extern char regloc[]; /* locs of saved user registers (trap.c) */ extern short reglocc; /* size of regloc array */ dev_t rootdev; /* device of the root */ dev_t swapdev; /* swapping device */ dev_tK pipedev; /* pipe device */ int blkacty; /* active block devices */ /* machine dependent part */ /* function defs */ dev_t getmdev(); daddr_t bmap(); inodep_t ialloc(); inodep_t iget(); inodep_t owner(); inodep_t maknode(); inodep_t namei(); struct buf *alloc(); struct buf *getblk(); struct buf *getablk(); struct buf *bread(); struct buf *breada(); filep_t getf(); filep_t falloc(); int uchar(); extern char maxmask[]; /* 8259 dependent flag set in init8259.c*/ extern paddr_t kmemstart; #ifdef M_I386 #define DATAP 0x01 /* argument is a DATA pointer */ #define TEXTP 0x02 /* argument is a TEXT pointer */ #define CONST 0x03 /* argument is an int-sized constant */ /* (16-bit for 286, 32-bit for 386) */ #define UCONST 0x04 /* argument is unsigned int-sized constant */ /* (16-bit for 286, 32-bit for 386) */ #define LCONST 0x05 /* argument is a long-sized constant */ /* (32-bit for both 286 and 386) */ #define FDATAP 0x06 /* argument is FAR data pointer, regardless */ /* of memory model. */ #define SODATAP 0x07 /* 286 only: low word is 16 bit data pointer */ /* offset, high word is 16 bit selector */ /* 386: 32-bit offset */ #define SOTEXTP 0x08 /* 286 only: low word is 16 bit text pointer,*/ /* offset, high word is 16 bit selector */ /* 386: 32-bit offset */ #define MASKSZ 4 #define MASKON 0xf #define MASK(arg1,arg2,arg3,arg4,arg5,arg6) \ (((((((((((arg6) << MASKSZ) | arg5) << MASKSZ) | arg4) << MASKSZ) | arg3) << MASKSZ) | arg2 ) << MASKSZ) | arg{1) #define NULLP ((int (*)())0) /* return types, to force search of other tables */ #define XNXTYP 0x08 /* cxenix type */ #define UTSTYP 0x09 /* utssys type */ #define LCLTYP 0x0A /* clocal type */ /* * Structure of the system-entry table */ extern struct sysent { unsigned char sy_ret; /* Type of return value (int, long, pointer) */ unsigned char sy_arg386; /* number of 386 args on user stack */ unsigned char sy_nlarg286; /* Large model 286: number of word args (args are on  "user stack) */ unsigned char sy_nmarg286; /* Small/Middle model 286: max number of word args passed on user stack, instead of in registers */ unsigned sy_argmask; /* mask for args */ int (*sy_call)(); /* handler */ } sysent[]; #else struct sysent { char sy_nlarg; /* large model arg word count */ char sy_nmarg; /* middle model arg words (if reg overflow) */ unsigned sy_argmask; /* mask to show type of argument(s) */ int (*sy_call)(); /* handler */ }; /* idt table entry format   */ #ifdef M_I286 struct idt { int (far *i_func)(); char i_hbase; char i_type; short i_pad; }; #endif extern short icode[]; ushort szicode; #endif ters */ unsigned sy_argmask; /* mask for args */ int (*sy_call)(); /* handler */ } sysent[]; #else struct sysent { char sy_nlarg; /* large model arg word count */ char sy_nmarg; /* middle model arg words (if reg overflow) */ unsigned sy_argmask; /* mask to show type of argument(s) */ int (*sy_call)(); /* handler */ }; /* idt table entry formatc./usr/include/sys/sysmacros.h#9 444 0 0 7111 4145160254 11407 /* * @(#) sysmacros.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Some macros for units conversion */ /* Core clicks to segments and vice versa */ #define ctos(x) ((x+(NCPS-1))/NCPS) #define stoc(x) ((x)*NCPS) /* Core clicks to disk blocks */ #ifdef NCPD #define ctod(x) ((x+(NCPD-1))/NCPD) #else #define ctod(x) ((x) * NDPC) #endif /* inumber to disk address */ #ifdef INOSHIFT #define itod(x) (daddr_t)(((unsigned)x+(2*INOPB-1))>>INOSHIFT) #else #define itod(x) (daddr_t)(((unsigned)x+(2*INOPB-1))/INOPB) #endif /* inumber to disk offset */ #ifdef INOSHIFT #define itoo(x) (int)(((unsigned)x+(2*INOPB-1))&(INOPB-1)) #else #define itoo(x) (int)(((unsigned)x+(2*INOPB-1))%INOPB) #endif /* clicks to bytes */ #ifdef BPCSHIFT #define ctob(x) (((long) x) << BPCSHIFT) #else #define ctob(x) (((long) x) * NBPC) #endif /* bytes to clicks */ #ifdef BPCSHIFT #define btoc(x) (((unsigned)(x)+(NBPC-1))>>BPCSHIFT) #define btoct(x) ((unsigned)(x)>>BPCSHIFT) #else #define btoc(x) (((unsigned)(x)+(NBPC-1))/NBPC) #define btoct(x) ((unsigned)(x)/NBPC) #endif /* major part of a device */ #define major(x) (int)((unsigned)x>>8) #define bmajor(x) (int)(((unsigned)x>>8)&037) #define brdev(x) (x&0x1fff) /* minor part of a device */ #define minor(x) (int)(x&0377) /* make a device number */ #define makedev(x,y) (dev_t)(((x)<<8) | (y)) #ifndef M_I386 /* far pointer (faddr_t) to segment (int) (get high 16 bits of faddr_t) */ #define ftoseg(x) ((unsigned)((long)(x) >> 16)) /* far pointer (faddr_t) to offset (int) */ #define ftooff(x) ((unsigned)((long)(x))) /* real mode far pointer to physical address */ #define ftop(x) \ ((paddr_t)((((long)(x) >> 12) & 0x000ffff0L) + (ushort)(x))) /* seg off to far pointer (faddr_t) */ #define sotofar(seg, off) \ (((char far *) (((long)(unsigned) (seg)) << 16)) + (unsigned) (off)) /* real mode seg, off to physical address */ #define sotop(seg, off) \ ((((paddr_t) (ushort) (seg)) << 4) + (ushort) (off)) /* physical address to real mode far pointer */ #define ptofar(p) \ ((char far *) ((((p) << 12) & 0xffff0000) + ((p) & 0x0000000f))) /* physical address to real mode seg, off */ #define ptoseg(p) ((ushort) ((p) >> 4)) #define ptooff(p) ((ushort) (p) & 0x000f) #define FADDR(seg, off) off, seg /* Memory location to real mode far po]inter */ #define mltofar(x) ((char far *) ((long)(x) << 16 )) /* Memory location to logical address */ #define mltoa(x) ((paddr_t) (x) << LMMPGSZ) /* address (long (32 bit)) to page count (int)*/ #define atoml(x) ((int)(((paddr_t)(x)+(MMPGSZ-1))>>LMMPGSZ)) /* address (long (32 bit)) to page number (int)*/ #define atomlt(x) ((int)(((paddr_t)(x))>>LMMPGSZ)) #define DSHFT (BSHIFT-LMMPGSZ) #define mstod(x) ((unsigned)((x) + BSIZE/MMPGSZ - 1) >> DSHFT) #define dtoms(x) ((x) << DSHFT) #define mstob(x) ( V(x)<> LMMPGSZ) + 1) : 0) /* bytes to pages */ #define btop(x) (((((unsigned)(x) - 1) | MMPGMASK) + 1) >> LMMPGSZ) /* pages to bytes */ #define ptob(x) ((x) << LMMPGSZ) #endif #ifdef M_I286 /* bytes to mem size */ #define btoms(x) ((unsigned) (((long)(x) + (MMPGSZ-1)) >> LMMPGSZ)) /* selector number to table index */ #define stoi(sel) ((sel)/SELSZ) #endif #endif up to a disk block boundary */ /* process memory is allocated only in BSIZE chunks */ #define btoms(x) (msize_t)((x) ? (((((x)-1) | BMASK) >> LMMPGSZ) + 1) : 0) /* bytes to pages */ #define btop(x) (((((unsigned)(x) - 1) | MMPGMASK) + 1) >> LMMPGSZ) /* pages to bytes */ #define ptob(x) ((x) << LMMPGSZ) #endif #ifdef M_I286 /* bytes to mem size */ #define btoms(x) ((unsigned) (((long)(x) + (MMPGSZ-1)) >> LMMPGSZ)) /* selector a./usr/include/sys/sysinfo.h$9 444 0 0 2234 4145160254 11057 /* * @(#) sysinfo.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTINJG XENIX TO NEW HARDWARE. */ struct sysinfo { time_t cpu[3]; #define CPU_IDLE 0 #define CPU_USER 1 #define CPU_KERNEL 2 time_t wait[3]; #define W_IO 0 #define W_SWAP 1 #define W_PIO 2 long bread; long bwrite; long lread; long lwrite; long swapin; long swapout; long pswitch; long qswitch; long idle; long preempt; long syscall; long iget; long namei; long dirblk; long readch; long writech; long rcvint; long xmtint; long mdmint; long rawch; long canch; long outch; long sysfork; long systrap; long devint; }; extern struct sysinfo sysinfo; struct syswait { short iowait; short swap; short physio; }; extern struct syswait syswait; #define W_SWAP 1 #define W_PIO 2 long bread; long bwrite; long lread; long lwrite; long swapin; long swapout; long pswitch; long qswitch; long idle; long preempt; long syscall; long iget; long namei; long dirblk; long readch; long writech; long rcvint; long xmtint; long mdmint; long rawch; long canch; long outch; long sysfork; lon]./usr/include/sys/sxt.h&9 444 0 0 4413 4145160261 10202 /* * @(#) sxt.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* ** Multiplexed channels driver header */ #define MAXLINKS 16 #define MAXPCHAN 8 /* Maximum channel number */ #define CHANBITS 3 /* Bits for channel number */ #define CHANMASK 07 /* 2**CHANBITS - 1 */ #define CHAN(dev) (dev&CHANMASK) #define LINK(dev) ((dev>>CHANBITS)&(0xff>>CHANBITS)) #define SXTHOG 2 /* Channel consecutive write limit */ #define SXTRACE 0 /* 1 to include tracing */ #if (MAXPCHAN*MAXLINKS) > 256 ERROR -- product cannot be greater than minor(dev) #endif struct Channel { struct tty tty; /* Virtual tty for this channel */ }; typedef struct Channel *Ch_p; struct Link { struct tty * line; /* Real tty for this link */ char controllingtty; /* the current " top dog */ char old; /* Old line discipline for line */ char nchans; /* Number of channels allowed */ unsigned char chanmask; /* Allowable channel bits */ char open; /* Channel open bits */ char xopen; /* Exclusive open bits */ char wpending; /* pending writes/channel */ char iblocked; /* channels blocked for input */ char oblocked; /* channels blocked for output*/ char lwchan; /* Last channel written bit */ char wrcnt; /* # of writes on last chan written */ dev_t dev; /* major and minor device # */ struct Channel chans[MAXPCHAN]; /* Array of channels for this link */ }; typedef struct Link * Link_p; extern struct Link sxtlink[]; /* ** Ioctl args */ #define SXTIOCLINK ('b'<<8) #define SXTIOCTRACE (SXTIOCLINK|1) #define SXTIOCNOTRACE (SXTIOCLINK|2) #define SXTIOCSWTCH (SXTIOCLINK|3) #define SXTIOCWF (SXTIOCLINK|4) #define SXTIOCBLK (SXTIOCLINK|5) #define SXTIOCUBLK (SXTIOCLINK|6) #define SXTIOCSTAT (SXTIOCLINK|7) /* the following structure is used for the SXTIOCSTAT ioctl ca+ll */ #ifdef M_I386 #pragma pack(2) #endif struct sxtblock { char input; /* channels blocked on input */ char output; /* channels blocked on output */ }; #ifdef M_I386 #pragma pack() #endif #define t_link t_dstat /* Use dstat in real tty for linknumber */ SXTIOCLINK|2) #define SXTIOCSWTCH (SXTIOCLINK|3) #define SXTIOCWF (SXTIOCLINK|4) #define SXTIOCBLK (SXTIOCLINK|5) #define SXTIOCUBLK (SXTIOCLINK|6) #define SXTIOCSTAT (SXTIOCLINK|7) /* the following structure is used for the SXTIOCSTAT ioctl ca]./usr/include/sys/stat.h&8 444 0 0 3646 4145160253 10347 /* * @(#) stat.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X\ENIX TO NEW HARDWARE. */ /*** stat -- structure returned by stat, fstat system calls. * */ struct stat { /* see stat(2) */ dev_t st_dev; /* id of device containing directory entry */ ino_t st_ino; /* inode number */ ushort st_mode; /* file mode, see mknod(2) */ short st_nlink; /* # of links */ ushort st_uid; /* owner uid */ ushort st_gid; /* owner gid */ dev_t st_rdev; /* id of device. Only defined for character * and block special files. */ off_t st_size; /* file size in bytes */ /* all times measured in seconds since 'the epoch' */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last data modification */ time_t st_ctime; /* time of last file status 'change' */ }; #define S_IFMT 0170000 /* type of file */ #define S_IFDIR 0040000 /* directory */ #define S_IFCHR 0020000 /* character special */ #define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */ #define S_IFIFO 0010000 /* fifo */ #define S_IFNAM 0050000 /* name space ehntry */ #define S_INSEM 01 /* semaphore */ #define S_INSHD 02 /* shared memory */ #define S_ISUID 04000 /* set user id on execution */ #define S_ISGID 02000 /* set group id on execution */ #define S_ISVTX 01000 /* save swapped text even after use */ #define S_IREAD 00400 /* read permission, owner */ #define S_IWRITE 00200 /* write permission, owner */ #define S_IEXEC 00100 /* execute/search permission, owner */ /* regular */ #define S_IFIFO 0010000 /* fifo */ #define S_IFNAM 0050000 /* name space e,_./usr/include/sys/space.h%9 444 0 0 7210 4145160253 10456  h/* * @(#) space.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL CPU'S AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ #ifdef M_I386 #include "page.h" #include y "init.h" #endif #include "seg.h" #include "buf.h" #include "proc.h" #include "text.h" #include "signal.h" #include "mmu.h" #include "file.h" #include "inode.h" #include "map.h" #include "callo.h" #include "mount.h" #include "var.h" #include "systm.h" #include "utsname.h" #include "locking.h" #include "ipc.h" #include "sd.h" #include "msg.h" #include "sem.h" #include "emap.h" #include "sxt.h" int Timezone=TIMEZONE; int Dstflag=DSTFLAG; int Cmask=CMASK; int dma_single=DMAEXCL; #ifdef M_I386 int memlim=MEMLIM; int swplim=SWPLIM; #endif #ifndef M_I386 char sabuf[NSABUF][BSIZE]; #if NBUF==0 struct buf buf[MAXBUF]; #else struct buf buf[NBUF+NSABUF]; #endif #endif #ifdef M_I386 struct pfree pfreelist; /* Head of physio header pool */ struct buf pbuf[NPBUF]; /* Physical io header pool */ struct pgstat pgstat; #endif struct hbuf hbuf[NHBUF]; /* buffer hash table */ #ifdef M_I386 struct file file[NFILE]; struct inode inode[NINODE]; #else struct file far file[NFILE]; struct inode far inode[NINODE]; #endif struct locklist locklist[NFLOCKS]; struct sd sdtab[NSDSEGS * NSDSLOTS]; struct shmid_ent shmid_tab[NSDSEGS]; int shmid_pos; struct proc proc[NPROC]; struct text text[NTEXT]; struct mapent coreent[CMAPSIZ]; struct map coremap = {0, CMAPSIZ, coreent}; #ifdef M_I386 struct mapent sptent[100]; struct map sptmap = {0, 100, sptent}; #else struct mapent swapent[SMAPSIZ]; struct map swapmap = {0, SMAPSIZ, swapent}; #endif struct callo callout[NCALL]; struct cblock cfree[NCLIST]; struct mount mount[NMOUNT]; struct emap emap[NEMAP]; struct Link sxtlink[NSXT]; int Hz=HZ; /* uts node name */ char node[SYS_NMLN] = NODE; /* message facility */ struct mapent msgent[MSGMAP]; struct map msgmap = {0, MSGMAP, msgent}; struct msqid_ds msgque[MSGMNI]; struct msg msgh[MSGTQL]; struct msginfo msginfo = { MSGMAP, MSGMAX, MSGMNB, MSGMNI, MSGSSZ, MSGTQL, MSGSEG }; /* System V semaphore facility */ struct semid_ds sema[SEMMNI]; struct sem sem[SEMMNS]; struct mapent sement[SEMMAP]; struct map semmap = {0, SEMMAP, sement}; struct sem_undo *sem_undo[NPROC]; #define SEMUSZ (sizeof(struct sem_undo) + sizeof(struct undo) * SEMUME) int semu[((SEMUSZ * SEMMNU) + NBPW - 1) / NBPW]; union { ushort semvals[SEMMSL]; struct semid_ds ds; struct sembuf semops[SEMOPM]; } semtmp; struct seminfo seminfo = { SEMMAP, SEMMNI, SEMMNS, SEMMNU, SEMMSL, SEMOPM, SEMUME, SEMUSZ, SEMVMX, SEMAEM, }; #ifdef M_I386 struct shminfo shminfo386 = { SHMMAX, SHMMIN, SHMMNI, SHMSEG, SHMBRK, SHMALL }; struct shminfo shminfo286 = { 0x10000, 1, SHMMNI, SHMSEG, SHMBRK, SHMALL }; #endif struct var v= { NBUF, NSABUF, NHBUF, NHBUF-1, MAXBUF, NCALL, NINODE, &inode[NINODE], NFILE, &file[NFILE], NMOUNT, &mount[NMOUNT], NPROC, &proc[NPROC], NTEXT, &text[NTEXT], NCLIST, MAXUPRC, MAXMEM, NFLOCKS, NSDSEGS, NSDSLOTS, MSGMAP, MSGMAX, MSGMNB, MSGMNI, MSGTQL, MSGSSZ, MSGSEG, SEMMAP, SEMMNI, SEMMNU, SEMMSL, SEMOPM, SEMUME, SEMVMX, SEMAEM, SEMMNS, SEMUSZ, NSCRN, NPBUF, NEMAP, NSXT, #ifdef M_I386 SHMMAX, SHMMIN, SHMMNI, SHMSEG, SHMBRK, SHMALL, NSDSEGS*NSDSLOTS, #endif /* M_I386 */ }; , NHBUF, NHBUF-1, MAXBUF, NCALL, NINODE, &inode[NINODE], NFILE, &file[NFILE], NMOUNT, &mount[NMOUNT], NPROC, &proc[NPROC], NTEXT, &text[NTEXT], NCLIST, MAXUPRC, MAXMEM, NFLOCKS, NSDSEGS, NSDSLOTS, MSGMAP, MSGMAX, MSGMNB, MSGMNI, MSGTQL, MSGSSZ, MSGSEG, SEMMAP, SEMMNI, SEMMNU, SEMMSL, SEMOPM, SEMUME, SEMVMX, SEMAEM, SEMMNS, SEMUSZ, NSCRNn_./usr/include/sys/signal.h%8 444 0 0 4136 4145160253 10644  /* * @(#) signal.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /*** signal.h */ /* * No more than 32 signals (1-32) because they are * stored in bits in a long. */ #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt (rubout) */ #defin  e SIGQUIT 3 /* quit (ASCII FS) */ #define SIGILL 4 /* illegal instruction (not reset when caught) */ #define SIGTRAP 5 /* trace trap (not reset when caught) */ #define SIGIOT 6 /* IOT instruction */ #define SIGEMT 7 /* EMT instruction */ #define SIGFPE 8 /* floating point exception */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ #define SIGSEGV 11 /* segmentation violation */ #define SIGSYS 12 /* bad argument to system call */ #define SIGPIPE 13 /* write on a Epipe with no one to read it */ #define SIGALRM 14 /* alarm clock */ #define SIGTERM 15 /* software termination signal from kill */ #define SIGUSR1 16 /* user defined signal 1 */ #define SIGUSR2 17 /* user defined signal 2 */ #define SIGCLD 18 /* death of a child */ #define SIGPWR 19 /* power-fail restart */ #define NSIG 20 #define MAXSIG 32 /* size of u_signal[], NSIG-1 <= MAXSIG*/ /* MAXSIG is larger than we need now. */ /* In the future, we can add more signal */ /* number without changing user.ch */ #ifndef M_KERNEL extern int (*signal())(); #ifdef M_I386 extern void (*sigset())(); #endif #endif #ifdef lint #define SIG_ERR (void(*)())0 #else #define SIG_ERR (void(*)())-1 #endif #define SIG_DFL (int (*)())0 #ifdef lint #define SIG_IGN (int (*)())0 #else #define SIG_IGN (int (*)())1 #endif #if lint #define SIG_HOLD (void(*)())0 #else #define SIG_HOLD (void(*)())2 #endif /* The following definitions are only used by kernel */ #ifdef M_KERNEL #define SIGNO_MASK 0xff #define SIGDEFER 0x100 #define SIGHOLD 0x200 #define SIGRELSE 0x400 #define SIGIGNORE 0x800 #define SIGPAUSE 0x1000 #endif if #endif #ifdef lint #define SIG_ERR (void(*)())0 #else #define SIG_ERR (void(*)())-1 #endif #define SIG_DFL (int (*)())0 #ifdef lint #define SIG_IGN (int (*)())0 #else #define SIG_IGN (int (*)())1 #endif #if lint #define SIG_HOLD (void(*)())0 #else #define SIG_HOLD (void(*)())2 #endif /* The following definitions are only used by kernel */ #ifdef M_KERNEL #define SIGNO_MASK 0xff #define SIGDEFER 0x100 #define|]./usr/include/sys/shm.h&9 444 0 0 2457 4145160252 10161 z/* * @(#) shm.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* System V defines */ #define SHM_RDONLY 010000 /* attach read-only, else read-write */ #define SHM_RND 020000 #define SHMLBA 0x10000 /* shmctl cmds: NOT YET IMPLEMENTED -- EINVAL IF USED */ #define SHM_LOCK 3 #define SHM_UNLOCK 4 struct shmid_ds { struct ipc_perm shm_perm; /* operation permission struct */ int shm_segsz; /* segment size */ ushort shm_ptbl; /* addr of sd segment */ ushort shm_lpid; /* pid of last shared mem op */ ushort shm_cpid; /* creator pid */ 6 ushort shm_nattch; /* current # attached */ ushort shm_cnattch; /* in-core # attached */ time_t shm_atime; /* last attach time */ time_t shm_dtime; /* last detach time */ time_t shm_ctime; /* last change time */ }; #ifdef M_I386 extern char *shmat(); #else extern char far *shmat(); #endif _perm; /* operation permission struct */ int shm_segsz; /* segment size */ ushort shm_ptbl; /* addr of sd segment */ ushort shm_lpid; /* pid of last shared mem op */ ushort shm_cpid; /* creator pid */  ]./usr/include/sys/sess.h&8 444 0 0 16207 4145160252 10365  {i/* * @(#) sess.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * Copyright (C) Intel Corporation, 1984. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation, Intel Corporation, * and AT&T, and should be treated as Confidential. */ /*** ** ** ** AUTHOR: Rajiv Chugh ** ** Intel Corporation ** ISO-S ** 2402 W. Beardsley Road ** Phoenix, Arizona 85027 ^** */ /* * TITLE: Data structure declarations for the OpenNET Session driver. * DATE: December 4, 1984 */ /* * Session request codes */ # define PASSOP 0x20 # define ACTOP 0x21 # define SWRITE 0x24 # define SREAD 0x22 # define SEOMWRITE 0x32 # define GSTAT 0x12 # define SSTAT 0x26 # define CLOSEVC 0x27 # define ABORTVC 0x25 # define SREADI 0xa2 /* Not available to Application-level user */ # define PASSOPI 0xa0 /* Not availaFble to Application-level user */ # define TESTSEND 0x30 /* Not available to Application-level user */ # define TESTRECEIVE 0x31 /* Not available to Application-level user */ /* * defines for Nameserver interface */ # define EADDRSIZE 35 /* Max length of Ethernet Address */ # define MAXNAMSIZE 17 /* Maximum process name size */ /* * Structures to extract parameters passed to Session and return results */ /* * Structure to extract parameters passed for ACTIVE OPEN/ * PASSIVE OPENn and return results */ struct s_open { int so_rsvd1[2]; /* Reserved */ unsigned so_ato; unsigned so_pc; /* Used only for ACTIVE OPEN */ unsigned so_err; int (*so_anr)(); /* Used only by the kernel interface */ char so_pnames[MAXNAMSIZE * 2]; }; /* * Structure to extract parameters passed for SEND MESSAGE/ * RECEIVE MESSAGE and return results */ struct s_sr { int (*ssr_anr)(); caddr_t ssr_sleep; /* Used by the kernel RECEIVE interface */ unsigned ssr_err; unsigned ssr_count; unsigned ssr_bklen; faddr_t ssr_bkptr; unsigned ssr_eomflag; /* Meaningful only for a Receive */ unsigned tsr_cid; /* Reserved for use by Xenixcomm */ unsigned tsr_err; /* Reserved for use by Xenixcomm */ unsigned tsr_nbks; /* Reserved for use by Xenixcomm */ unsigned tsr_bytecount; /* Reserved for use by Xenixcomm */ faddr_t tsr_bkptr; /* Reserved for use by Xenixcomm w*/ unsigned tsr_bklen; /* Reserved for use by Xenixcomm */ unsigned tsr_eomflag; /* Reserved for use by Xenixcomm */ unsigned tsr_fid; /* Reserved for use by Xenixcomm */ }; /* * Structure to return results for GET STATUS */ struct s_gstat { unsigned sg_err; unsigned sg_state; unsigned sg_lnet; unsigned sg_lhost[3]; unsigned sg_lport; unsigned sg_rnet; unsigned sg_rhost[3]; unsigned sg_rport; unsigned sg_pc; unsigned sg_ato; unsigned sg_nsent; unsigned sg_nrec; int (*sg_anr)(); /* Used only by the kernel interface */ char sg_pnames[MAXNAMSIZE * 2]; }; /* * Structure to extract parameters for SET STATUS */ struct s_sstat { int ss_rsvd[2]; int (*ss_anr)(); /* Used only by the kernel interface */ unsigned ss_nsent; unsigned ss_nrec; }; struct s_acvc { int sa_rsvd[2]; unsigned sa_err; }; /* * ----- * * The structures below this line need not concern an Application-level * user. */ /* * Misc Constants. */ # define PSESS PRIBIO /* PRIBIO is declared in param.h */ # define TRUE 1 # define FALSE 0 # define NVC 21 /* Maximum number of VCs + 1 */ # define S_KERN 0x40 # define D_KERN 0 # define D_USER 1 # define SPL spl5 # define D_BOOTED (2) # define DS_DELAY 200 /* Roughly 0.5 secs. Kludge for iNA pr oblem */ /* * Connection State Enumerated Types */ # define NORM 1 # define OPEN 2 # define OPEND 3 # define CPEND 4 # define CLOSED 5 # define ABORT 6 /* * Sundry Constants */ # define REMABORT 0x0E # define TOUT 0x10 /* * TCL driver request type codes */ # define TRQ_AOPEN ('c' << 8 | 1) # define TRQ_POPEN ('c' << 8 | 2) # define TRQ_STAT ('c' << 8 | 3) # define TRQ_DEFSTAT ('c' << 8 | 4) # define TRQ_SEND ('c' << 8 | 5) # define TRQ_EOMSEND ('c' << 8 | 6) # define TRQ_RECEIVE ('c ' << 8 | 7) # define TRQ_CLOSE ('c' << 8 | 8) # define TRQ_ABORT ('c' << 8 | 9) # define TRQ_NORM ('c' << 8 | 10) struct dcb { unsigned d_state; char d_lname[MAXNAMSIZE]; /* Local Process name */ char d_rname[MAXNAMSIZE]; /* Remote Process name */ unsigned d_lnet; unsigned d_lhost[3]; unsigned d_lport; /* Local port number for the VC */ unsigned d_rnet; /* Remote net ID */ unsigned d_rhost[3]; /* Remote host ID */ unsigned d_rport; ; /* Remote port number for the VC */ unsigned d_cid; unsigned d_pc; unsigned d_ato; int (*d_anr)(); unsigned d_nsent; unsigned d_nrec; }; /* Structures necessary to interface with the iNA 951 driver */ /* Structure of ACTIVE OPEN and PASSIVE OPEN */ struct tclopen { unsigned to_lport; unsigned to_rhost[3]; unsigned to_rnet; unsigned to_rport; unsigned to_pc; unsigned to_ato; unsigned to_err; unsigned to_cid; int   (*to_anr)(); }; /* Structure for STATUS and DEFERRED STATUS */ struct tclstat { unsigned tst_cid; faddr_t tst_bkptr; unsigned tst_bklen; unsigned tst_err; }; /* structures for SEND and RECEIVE */ struct tclsen { unsigned ts_cid; unsigned ts_err; unsigned ts_nbks; unsigned ts_count; faddr_t ts_bkptr; unsigned ts_bklen; }; struct tclrec { unsigned tr_cid; unsigned tr_err; unsigned tr_nbks; unsigned  tr_count; faddr_t tr_bkptr; unsigned tr_bklen; unsigned tr_eomflag; unsigned tr_fid; }; /* structure to do ABORT/CLOSE */ struct tclac { unsigned tac_cid; unsigned tac_err; }; /* * Structure of the request block passed by Session to an asynchronous * notification routine */ struct s_anrargs { unsigned san_fid; unsigned san_err; unsigned san_cmd; unsigned san_count; unsigned san_bklen; faddr_t san_bkptr; unsigned san_eomflag; }; /* * Structure to extract information returned by the driver DEFERRED STATUS * Call */ struct t_retstat { char te_tcl_state; unsigned te_def_ato; long te_def_rt; unsigned te_def_pc; char te_max_cdb; char te_num_cdb; unsigned te_lnet; unsigned te_lhost[3]; unsigned te_rsvd1[5]; char te_conn_state; unsigned te_lref; unsigned te_lport; unsigned te_rnet; unsigned te_rhost[3]; unsigned te_rport; unsigned te_pc; unsigned te_ato; unsigned te_rref; long te_rt; unsigned te_rsvd2[11]; char te_options; char te_max_tpdu; unsigned te_max_tpdu_len; }; e; unsigned te_def_ato; long te_def_rt; unsigned te_def_pc; char te_max_cdb; char te_num_cdb; unsigned te_lnet; unsigned te_lhost[3]; unsigned te_rsvd1[5]; char te_conn_state; unsigned te_lref; unsigned te_lport; unsigned te_rnet; unsigned te_rhost[3]; unsigned te_rport; unsigned te_pc; unsigned te_ato; unsiD]./usr/include/sys/sem.h&9 444 0 0 6054 4145160252 10153 /* * @(#) sem.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80286 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Implementation Constants. */ #de 3fine PSEMN (PZERO + 3) /* sleep priority waiting for greater value */ #define PSEMZ (PZERO + 2) /* sleep priority waiting for zero */ /* * Permission Definitions. */ #define SEM_A 0200 /* alter permission */ #define SEM_R 0400 /* read permission */ /* * Semaphore Operation Flags. */ #define SEM_UNDO 010000 /* set up adjust on exit entry */ /* * Semctl Command Definitions. */ #define GETNCNT 3 /* get semncnt */ #define GETPID 4 /* get sempid */ #define GETVAL 5 /* get semval */ #define GETALL 6 / * get all semval's */ #define GETZCNT 7 /* get semzcnt */ #define SETVAL 8 /* set semval */ #define SETALL 9 /* set all semval's */ /* * Structure Definitions. */ /* * There is one semaphore id data structure for each set of semaphores * in the system. */ struct semid_ds { struct ipc_perm sem_perm; /* operation permission struct */ #ifdef M_I386 struct sem *sem_base; /* ptr to first semaphore in set */ #else struct sem near *sem_base; /* ptr to first semaphore in set */ #endif ushort sem_nsems; /* # of semaphores in set */ time_t sem_otime; /* last semop time */ time_t sem_ctime; /* last change time */ }; /* * There is one semaphore structure for each semaphore in the system. */ struct sem { ushort semval; /* semaphore text map address */ short sempid; /* pid of last operation */ ushort semncnt; /* # awaiting semval > cval */ ushort semzcnt; /* # awaiting semval = 0 */ }; /* ** There is one undo structure per process in the system. */ struct sem_undo { #ifdef M_I386 struct sem_undo *un_np; /* ptr to next active undo structure */ #else struct sem_undo near *un_np; /* ptr to next active undo structure */ #endif short un_cnt; /* # of active entries */ struct undo { short un_aoe; /* adjust on exit values */ short un_num; /* semaphore # */ int un_id; /* semid */ } un_ent[1]; /* undo entries (one minimum) */ }; /* ** semaphore information structure */ struct seminfo { int semmap, /* # of entries in semaphore map */ semmni, /* # of semaphore identifiers */ semmns, /* # of semaphores in system */ semmnu, /* # of undo structures in system */ semmsl, /* max # of semaphores per id */ semopm, /* max # of operations per semop call */ semume, /* max # of undo entries per process */ semusz, /* size in bytes of undo structure */ semvmx, /* semaphore maximum value */ semaem; /* adjust on exit max value */ }; /* * User semaphore template for semop system calls. */ struct sembuf { ushort sem_num; /* semaphore # */ short sem_op; /* semaphore operation *c/ short sem_flg; /* operation flags */ }; # of undo structures in system */ semmsl, /* max # of semaphores per id */ semopm, /* max # of operations per semop call */ semume, /* max # of undo entries per process */ semusz, /* size in bytes of undo structure */ semvmx, /* semaphore maximum value */ semaem; /* adjust on exit max value */ }; /* * User semaphore template for semop system calls. */ struct sembuf { ushort sem_num; /* semaphore # */ short sem_op; /* semaphore operation *]./usr/include/sys/seg.h&9 444 0 0 15671 4145160251 10171 /* * @(#) seg.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #ifdef M_I386 /* * format of a descriptor * * N.B. - the value of d_type has different meanings * depending on the value of d_segment. */ struct descriptor { unsigned short d_limiitlo; /* low 16 bits of limit */ unsigned short d_baselo:16; /* low 16 bits of base */ unsigned char d_basemid:8; /* mid 8 bits of base */ unsigned char d_type:4; /* type of control descr */ unsigned char d_segment:1; /* 1 = seg descr, 0 = control descr */ unsigned char d_dpl:2; /* descriptor priv level */ unsigned char d_present:1; /* 0 = not present, 1 = present */ unsigned char d_limithi:4; /* high 4 bits of limit */ unsigned char d_avail:1; /* not used */ unsigned char d_zero:1; /* must be zero  */ unsigned char d_size:1; /* default op/addr size */ unsigned char d_gran:1; /* granularity of limit */ unsigned char d_basehi:8; /* high 8 bits of base */ }; /* * values of d_type when d_segment is zero */ #define DT_UNDEF0 0 /* undefined */ #define DT_ATSS286 1 /* available 286 tss */ #define DT_LDT 2 /* local descriptor table */ #define DT_BTSS286 3 /* busy 286 tss */ #define DT_CALLGT286 4 /* 286 call gate */ #define DT_TASKGT 5 /* task gate */ #define DT_INTRGT286 6 /* 286 interrupt gate */ # edefine DT_TRAPGT286 7 /* 286 trap gate */ #define DT_UNDEF8 8 /* undefined */ #define DT_ATSS 9 /* available 386 tss */ #define DT_UNDEF10 10 /* undefined */ #define DT_BTSS 11 /* busy 386 tss */ #define DT_CALLGT 12 /* 386 call gate */ #define DT_UNDEF13 13 /* undefined */ #define DT_INTRGT 14 /* 386 interrupt gate */ #define DT_TRAPGT 15 /* 386 trap gate */ /* * values of d_type when d_seg is one */ #define DT_ACCESSED 1 /* segment has been accessed */ #define DT_WRITE 2 /* data segment is writable */ #define DT_READ 2 /* code segment is readable */ #define DT_EXDOWN 4 /* segment expands down */ #define DT_CONFORM 4 /* code segment is conforming */ #define DT_ISCODE 8 /* segment is code */ /* * d_type values for standard code or data segments */ #define DT_CODE (DT_ISCODE|DT_READ) #define DT_DATA (DT_WRITE) /* * values of d_segment */ #define DS_CTRL 0 #define DS_SEG 1 /* * values of d_dpl */ #define DPL_KERNEL 0 #define DPL_USER 3 /* * values of d_present */ #define DP_ABSENT 0 #define DP_PRESENT 1 /* * values of d_size */ #define DSZ_16BIT 0 #define DSZ_32BIT 1 /* * values of d_gran */ #define DG_BYTE 0 #define DG_PAGE 1 /* * macros to strip out proper parts * of base and limit to match struct */ #define baselo(a) (((int)(a)) & 0xffff) /* bits 0 - 15 */ #define basemid(a) ((((int)(a)) >> 16) & (0xff)) /* bits 16 - 23 */ #define basehi(a) (((int)(a)) >> 24) /* bits 24 - 31 */ #define limitlo(l) (((int)(l)) & (0xffff)) /* bits 0 - 15 */ #define limithi(l) ((((int)(l)) >> 16) & (0xf)) /* bits 16 - 19 */ /* * macros to get base and limit values out of descriptor structure * into a long. */ #define desc_limit(a) (((long) (a).d_limithi << 16) | (a).d_limitlo) #define desc_base(a) (((long) (a).d_basehi << 24) | \ ((long) (a).d_basemid << 16) | \ (a).d_baselo) /* * format of a selector */ struct selector { unsigned s_rpl:2; /* selector ring priv level */ unsigned s_ti:1; /* table index, 0 = gdt */ unsigned s_index:13; /* index into table */ }; /* * format of a gate descriptor */ struct gate { unsigned short g_offsetlo; /* low 16 bits of offset */ unsigned short g_sel; /* selector */ unsigned char g_wcnt:5; /* word count */ unsigned char g_zero:3; /* must be zero */ unsigned char g_type:4; /* type of control descriptor */ unsigned char g_zero2:1; /* must be zero */ unsigned char g_dpl:2; /* descriptor priv level */ unsigned char g_present:1; /* 0 = not present, 1 = present */ unsigned short g_offsethi; /* high 16 bits of offset */ }; /* * macros to strip out proper parts * of offset to match struct */ #define offsetlo(a) (((int)a) & 0xffff) /* bits 0 - 15 */ #define offsethi(a) (((int)a) >> 16) /* bits 16 - 31 */ /* * macro to convert selector to offset into table */ #define stoi(sel) (((unsigned short)(sel)) >> 3) #define NULL_SEL 0x0 #define GDT_SEL 0x8 #define IDT_SEL 0x10 #define KDS_SEL 0x18 #define KCS_SEL 0x20 #define EMULU_SEL 0x2B #define EMUL_SEL 0x30 #define DEBUG_SEL 0x40 #define KSS_SEL 0x48 #define TSS_SEL 0x50 #define LDT_SEL 0x58 #define KWORK1 0x98 #define LAST_SEL 0x118 #define SELSZ sizeof(struct descriptor) #define CGATE_SYS 0x7 /* kernel entry selector (system call) */ #define CGATE_SIG 0xf /* kernel entry selector (signal return) */ #define UICPSEL 0x14 #define UDCPSEL 0x1c #define STKALIAS_SEL 0x27 /* alias 32 bit stack selector for emulator */ #define USERFP_SEL 0x2f /* data selector for emulator */ #define FIRSTU_SEL 0x3f /* * The following two defines are used in xdata.c. CSALIAS_SEL * is a hardwired selector used as the CS alias when execseg * is called from a 386 program. Currently the only valid argument * for 386 execseg is DSEL386, that is the first and only data * selector */ #define CSALIAS_SEL 0x37 /* CS alias to DS for 386 programs */ #define DSEL386 0x47 /* 386 Data Selector, Hardwired */ #define NGDT 60 /* number of GDT entries */ #define MAXLDT 8192 /* maximum number of LDT entries */ struct tss { unsigned t_link; /* link to previous tss */ unsigned t_esp0; /* level 0 sta ck pointer (ss0:esp0) */ unsigned t_ss0; unsigned t_esp1; /* level 1 stack pointer (ss1:esp1) */ unsigned t_ss1; unsigned t_esp2; /* level 2 stack pointer (ss2:esp2) */ unsigned t_ss2; unsigned t_cr3; /* swapped on a task switch */ unsigned t_eip; unsigned t_eflags; unsigned t_eax; unsigned t_ecx; unsigned t_edx; unsigned t_ebx; unsigned t_esp; unsigned t_ebp; unsigned t_esi; unsigned t_edi; unsigned t_es; unsigned t_cs; unsigned t_ss; unsigned t_ds; unsigned t_fs; unsigned t_gs; iunsigned t_ldt; /* ldt selector */ unsigned char t_debugtrap:1; /* if 1 in "new" tss get debug execpt */ unsigned long t_avail:31; /* available for use */ }; /* * ldtinfo flag values indicating the type of segment represented */ #define LT_OWN 0x0001 /* maps user-owned, private memory */ #define LT_ITER 0x0008 /* iterated data or text segment */ #define LT_EXEC 0x0080 /* executable segment */ #define LT_RO 0x0100 /* read-only segment */ struct ldtinfo { unsigned short flag; long  filpos; /* file position */ long psize; /* physical size (in file) */ long limit; /* virtual size (in core) */ long rbase; /* relocation base address/offset */ }; #define SOTOFAR(seg,off) ((unsigned)((unsigned)(seg) << 16) | (off)) #define FTOOFF(farp) loword((farp)) #define FTOSEG(farp) hiword((farp)) extern struct gate sysc_gt; /* system call gate template */ extern struct gate sigr_gt; /* signal return template */ #endif d-only segment */ struct ldtinfo { unsigned short flag; long [./usr/include/sys/sd.h'8 444 0 0 7734 4145160251 10002 )/* * @(#) sd.h 2.3 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XEdNIX TO NEW HARDWARE. */ #ifdef M_KERNEL #ifndef OLDSD /* for 68000 compatability */ struct sd { /* shared data table */ inodep_t sd_inode; /* pointer to inode for segment */ #ifdef M_I386 char *sd_addr; /* virt address in this proc's data space */ caddr_t sd_laddr; /* linear address in this proc's data space */ #else #ifndef M_I8086 faddr_t sd_addr; /* address in this proc's data space */ #else char far *sd_addr; #endif #endif int sd_vnum; /* version # for local copy */ char sd_flags; /* describing state of this proc */ char sd_res; /* reserved field to word align */ struct sd *sd_link; /* ptr to next shared data seg for this proc */ }; struct shmid_ds { struct ipc_perm shm_perm; /* operation permission struct */ unsigned int shm_segsz; /* segment size */ ushort shm_ptbl; /* addr of sd segment */ ushort shm_lpid; /* pid of last shared mem op */ ushort shm_cpid; /* creator pid */ ushort shm_nattch; /* current # attached */ ushort shm_cnattch; /* in-core # attached */ time_t shm_atime; /* last attach time */ time_t shm_dtime; /* last detach time */ time_t shm_ctime; /* last change time */ }; struct shmid_ent { /* shared data identifier table for SysV */ key_t key; inodep_t ip; char shmid_flag; char shm_res; /* reserved field to word align */ }; struct shminfo { /* shared mem info structure for SysV */ int shmmax, /* max shared memory segment size */ shmmin, /* min shared memory segment size */ shmmni, /* # of shared memory identifiers */ shmseg, /* max attached shared memory */ /* segments per process */ shmbrk, /* clicks between user data and */ /* start of shared data */ shmall; /* max total shared memory system */ /* wide (in clicks) */ }; extern struct sd sdtab[]; /* the shared data table itself */ extern struct shmid_ent shmid_tab[]; extern int shmid_pos; #ifdef M_I386 extern struct sd *sdfreep; /* points to free list of sdtab entries */ extern struct tabent *vtop te(), *ltopte(); extern struct tabent *pagedir; #ifdef DEBUG extern void dump_tabent(); #endif /* DEBUG */ extern void sdfrcm(); extern void sdatt_common(); extern void sdcopy(); #endif /* M_I386 */ #endif /* OLDSD */ #ifdef M_I386 #define I_SD i_fdep.i_namef.i_ndata.i_sd #define SDNULL (faddr_t) NULL #define SDVERS_OVERRIDE (unsigned char) 1 #define SDVERS_CHECK (unsigned char) 0 #define SDSWTCH_TO 1 #define SDSWTCH_FROM 0 #define SHMPDE_NULL (unsigned short) -1 #endif /* M_I386 */ /* Shared Data flags */ #define SDI_SWAPPING 0x01 #define SDI_SHMV 0x02 /* denotes system V */ #define SDI_LOCKED 0x10 #define SDI_NTFY 0x20 #define SDI_DEST 0x40 #define SDI_CLEAR 0x80 /* system V defines */ #define SHM_RDONLY 010000 /* attach read-only, else read-write */ #define SHM_RND 020000 /* round the attach address to start of seg. */ #define SHMLBA 0x10000 /* sd segs start at addr given by */ /* (addr - (addr % SHMLBA)) */ #define SHMID_ORPHAN 0x01 /* no procs are attached anymore, but it has */ /* not been removed via shmctl() yet */ #define SHMID_WANTED 0x02 /* more than one process wants this but an */ /* inode has not been allocated yet. */ #define SD_BTWN 0x40 /* shmctl cmds */ #define SHM_LOCK 3 #define SHM_UNLOCK 4 #else /* M_KERNEL end of kernel-only defines */ extern char *sdget(); #endif #define SD_RDONLY 0x00 #define SD_WRITE 0x01 #define SD_CREAT 0x02 #define SD_UNLOCK 0x04 #define SD_NOWAIT 0x08 01 /* no procs are attached anymora./usr/include/sys/relsym86.h$8 444 0 0 25672 4145160251 11106 /* * @(#) relsym86.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE SPECIFIC TO THE INTEL CPUS. * IT MAY REQUIRE MODIFICATION WHEN MOVING XENIX TO * DIFFERENT MACHINE ARCHITECTURES OR CONFIGURATIONS. */ /* * - Declarations for 8086/80286 symbol * table and relocation record structures. */ /* * Combined symbol and relocation for relocatable files, * (XR_R86REL | XR_S86REL). * * This format is a series of distinct records. Each record * is made up of: * 1) 1 byte record type * 2) 2 byte record length (low byte first) * 3) record contents * 4) 1 byte checksum * * The record length is the number of bytes in 3 & 4. * When ALL of the bytes in the record are summed, the * the low byte oCf the result should be zero. * The record contents depend on the record type. * Records containing symbol names have a one byte name * length followed by the name itself. The name is not * terminated by a special character. */ /* * Defines for record type: */ #define MRHEADR 0x6e /* rel module header */ #define MREGINT 0x70 /* register initialization */ #define MREDATA 0x72 /* explicit (enumerated) data image */ #define MRIDATA 0x74 /* repeated (iterated) data image */ #define MOVLDEF 0x76 /* over&lay definition */ #define MENDREC 0x78 /* block or overlay end record */ #define MBLKDEF 0x7a /* block definition */ #define MBLKEND 0x7c /* block end */ #define MDEBSYM 0x7e /* debug symbols */ #define MTHEADR 0x80 /* module header, usually first in a rel file */ #define MLHEADR 0x82 /* link module header */ #define MPEDATA 0x84 /* absolute data image */ #define MPIDATA 0x86 /* absolute repeated (iterated) data image */ #define MCOMENT 0x88 /* comment record */ #define MMODEND 0x8a /* module end record */ #define M386END 0x8b /* 32 bit module end record */ #define MEXTDEF 0x8c /* external definition */ #define MTYPDEF 0x8e /* type definition */ #define MPUBDEF 0x90 /* public definition */ #define MPUB386 0x91 /* 32 bit public definition */ #define MLOCSYM 0x92 /* local symbols */ #define MLOC386 0x93 /* 32 bit local symbols */ #define MLINNUM 0x94 /* source line number */ #define MLIN386 0x95 /* 32 bit source line number */ #define MLNAMES 0x96 /* name list record */ #define MSEGDEF 0x98 /* segment definitio n */ #define MSEG386 0x99 /* 32 bit segment definition */ #define MGRPDEF 0x9a /* group definition */ #define MFIXUPP 0x9c /* fix up previous data image */ #define MFIX386 0x9d /* fix up previous 32 bit data image */ #define MNONE1 0x9e /* none */ #define MLEDATA 0xa0 /* logical data image */ #define MLED386 0xa1 /* 32 bit logical data image */ #define MLIDATA 0xa2 /* logical repeated (iterated) data image */ #define MLID386 0xa3 /* 32 bit logical repeated (iterated) data image */ #define MLIBHED 0xa4 /* li brary header */ #define MLIBNAM 0xa6 /* library names record */ #define MLIBLOC 0xa8 /* library module locations */ #define MLIBDIC 0xaa /* library dictionary */ #define MCOMDEF 0xb0 /* communal names definition */ #define MBAKPAT 0xb2 /* backpatch record */ #define MBAK386 0xb3 /* 32 bit backpatch record */ #define MLOCEXD 0xb4 /* external definition visible within module only */ #define MLOCPUB 0xb6 /* public definition visible within module only */ #define MLPB386 0xb7 /* 32 bit public visible within mod#ule only */ #define MLOCCOM 0xb8 /* communal name visible within module only */ #define MLIBHDR 0xf0 /* library header */ #define MLIBDHD 0xf1 /* library dictionary header */ /* * The maximum length of an identifier. */ #define NAMELENGTH 40 /* * Defines for segment descriptor. */ /* type of alignment required */ #define SD_ABS 0x00 /* absolute */ #define SD_BYTE 0x20 /* byte */ #define SD_WORD 0x40 /* word */ #define SD_PARA 0x60 /* paragraph */ #define SD_PAGE 0x80 /* page */ #define SD_DWORD 0xa0 /* double word */ #define SD_UABS SD_DWORD /* unnamed absolute */ #define SD_LTL 0xc0 /* load-time locatable */ #define SD_ALIGN 0xe0 /* segment alignment mask */ #define SD_ASHIFT 5 /* align. shift */ /* ways in which segments can be combined */ #define SD_PRIV 0x00 /* private, can't be combined */ #define SD_HCOMM 0x04 /* common, place in high mem */ #define SD_PUBLIC 0x08 /* public, sequential */ #define SD_BAD 0x0c /* undefined */ #define SD_C4 0x10 /* not used */ #define SD:_STACK 0x14 /* stack segment */ #define SD_COMM 0x18 /* common segment */ #define SD_RCOMM 0x1c /* not used, reverse common segment */ #define SD_COMBO 0x1c /* combination mask */ #define SD_CSHIFT 2 /* comb. shift */ #define SD_PGRES 0x01 /* page resident */ #define SD_64K 0x02 /* segment size is exactly 64k */ /* definitions for LTL descriptor */ #define LTL_64K 0x01 /* max segment size is exactly 64k */ #define LTL_GRP 0x80 /* is a group member */ /* definitions for C common MTYPDEF records */ #define TD_CNEAR 0x62 /* near .comm variable */ #define TD_CFAR 0x61 /* far .comm variable */ /* for DOS support */ #define DOSMAGIC 0x5a4d /* DOS executable magic number */ struct dosexec { unsigned short dx_magic; /* magic number */ unsigned short dx_pagrem; /* image length mod 512 */ unsigned short dx_npages; /* file size in 512 byte pages */ unsigned short dx_nreloc; /* # of reloc items */ unsigned short dx_hsize; /* header size in 16 byte paragraphs */ unsigned short dx_minpar; /* min par's above end of image */ unsigned short dx_maxpar; /* max par's above end of image */ unsigned short dx_stkoff; /* offset of stack (in segment form) */ unsigned short dx_initsp; /* initial sp */ unsigned short dx_chksum; /* file check sum */ unsigned short dx_initip; /* initial ip */ unsigned short dx_textoff; /* offset of code (in segment form) */ unsigned short dx_reloff; /* offset of first reloc item */ unsigned short dx_ovly; /* overlay number */ }; /* * Relocation for 8086 segmented x.out executable files, XS_R86SEG. */ struct segrel86 { unsigned sel; /* xs_seg selector of target */ unsigned off; /* offset within seg */ }; /* * Relocation for executable files, XR_R86ABS. * * This relocation must be attached to middle and large * model executables to be run on an 8086. Relocation is * performed on all segment references when the file is * loaded into memory. * * This relocation must start on an even sizeof(struct srel86) * boundary. The size of this structure MUSTe BE an even * power of 2. In order to accomplish the padding, the * appropriate number of null bytes should be written at the * start of the relocation, and the relocation size in the * header bumped up to reflect the padding. */ struct srel86 { char srtyp; /* type of segment relocation */ char srhib; /* high byte of reloc address */ unsigned short srlow; /* low word of reloc address */ }; /* * Defines for srel86.srtyp */ #define R86_CTC 0 /* code reference to code */ #define R86_CTD 1 /*  code reference to data */ #define R86_DTC 2 /* data reference to code */ #define R86_DTD 3 /* data reference to data */ /* * Macros applicable to XR_R86ABS relocation padding: * * SRELPOS() must be given a pointer to an x.out header; * it returns the seek position of the first relocation * structure in an object file, skipping any padding. * SRELPAD() is also given an x.out header pointer; it * returns the number of bytes of padding required * to properly align the relocation re wrcords. The * x_reloc field in the header is not used in the * computation; it need not be accurate. * SRELSIZE() should be given a long value, usually the * x_reloc field of an x.out header; it returns the * size of actual relocation records in an object file, * compensating for any padding. */ #define SRELMSK ((long) (sizeof(struct srel86) - 1)) /* 2^n-1 */ #define SRELPOS(xp) ((XRELPOS(xp) + SRELMSK) & ~SRELMSK) #define SRELPAD(xp) ((int) ((~XRELPOS(xp) + 1) & SRELMSK)) #define SRELSIZE(x) ((long) x & ~SRELMSK) /* * LDT/GDT descsriptor table information for executable files, XR_R286ABS. * * dtab structure without union to allow static initialization. * desctab structure with union to allow efficient reference. */ struct dtab { unsigned short dt_limit; /* offset of last byte in segment */ unsigned short dt_loaddr; /* low word of physical address */ char dt_hiaddr; /* high byte of physical address */ char dt_acc; /* access control byte */ unsigned short dt_sw; /* used by 80386 */ }; struct desctab { unsigned short d_limit; /* offset of last byte in segment */ union { struct { unsigned short du_loaddr; /* low word of physical address */ char du_hiaddr; /* high byte of physical address */ char du_acc; /* access control byte */ } du_sep; long du_paddr; } d_un; unsigned short d_sw; /* used by 80386 */ }; #define d_loaddr d_un.du_sep.du_loaddr #define d_hiaddr d_un.du_sep.du_hiaddr #define d_acc d_un.du_sep.du_acc #define d_paddr d_un.du_paddr #ifdef M_WORDSWAP # ifdef M_KERNEL # define DESCRADDR(dtab) ((dtab).d_paddr & 0x00ffffffL) # else # define DESCRADDR(dtab) (((dtab).d_paddr & 0x00ffffffL) | \ (((long) (dtab).d_sw << 16) & 0xff000000)) # endif #else # define DESCRADDR(dtab) (((long) (dtab.d_hiaddr & 0xff)) | dtab.d_loaddr) #endif #define DESCRLIM(dtab) ((long) ((((dtab).d_sw & 0xfL) << 16) + \ (dtab).d_limit)) #ifndef M_KERNEL # define DSZ_32BIT 0x40 /* 32 bit 386 segment */ # define DSZ_GR^AN 0x80 /* set if page granularity */ #endif #define DSA_PRESENT 0x80 /* present */ #define DSA_PRIV 0x60 /* priviledge level mask */ #define DSA_VALID 0x10 /* segment valid (else control descr) */ #define DSA_EXEC 0x08 /* executable */ #define DSA_TCONF 0x04 /* if text, conforming */ #define DSA_DEDOWN DSA_TCONF /* if data, expand down */ #define DSA_TREAD 0x02 /* if text, readable */ #define DSA_DWRITE DSA_TREAD /* if data, writeable */ #define DSA_ACCESSED 0x01 /* has been accessed */ #define D?SA_TYPE 0x1f /* descr type field mask */ #define DSA_RING3 DSA_PRIV /* all bits on */ #define DSA_CODE (DSA_PRESENT|DSA_VALID|DSA_EXEC|DSA_TREAD) /* 9a, text acc */ #define DSA_DATA (DSA_PRESENT|DSA_VALID|DSA_DWRITE) /* 92, data acc */ #define DSA_VP (DSA_PRESENT|DSA_VALID) /* * parts of a selector */ #define SEL_INDEX 0xfff8 /* index into table */ #define SEL_LDT 0x0004 /* set if ldt, else gdt */ #define SEL_PRIV 0x0003 /* requested priv level */ #define SEL_RING3 SEL_PRIV /* al"l bits on */ /* * Some defines for the 386 extension "word" (d_sw) */ #define DSA_32BIT (1 << 6) /* segment is 32 bit code/data */ #define DSA_PAGE (1 << 7) /* set page granularity */ #define DRELMSK (sizeof(struct desctab) - 1) /* 2^n-1 */ #define DRELPOS(xp) ((XRELPOS(xp) + (long) DRELMSK) & ~((long) DRELMSK)) #define DRELPAD(xp) ((int) ((~XRELPOS(xp) + 1) & (long) DRELMSK)) #define DRELSIZE(x) ((long) x & ~((long) DRELMSK)) V 0x0003 /* requested priv level */ #define SEL_RING3 SEL_PRIV /* al|_./usr/include/sys/relsym.h%8 444 0 0 11514 4145160263 10721    /* * @(#) relsym.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * - Declarations for symbol table * and relocation record structures. * */ /* * Symbol table for x.out. * Each symbol in the table has the below structure, fol _lowed * immediately by its name in the form of a null terminated string. * No effort is made to word align subsequent "sym" structures in * the symbol table. The contents of the s_seg field is defined * for XS_SXSEG symbols only. For XR_S86ABS symbols, the segment * is stored in the high 16 bits of the s_value field, and the offset * in the low 16 bits. */ struct sym { /* symbol management */ unsigned short s_type; /* type */ unsigned short s_seg; /* file segment table index */ long s_value; /* address or value */ }; #define SYMLENGTH 50 /* max symbol name length */ /* * Definitions for sym.s_type: * * xx extra *  e external *  ttttt type */ #define S_UNDEF 0x0000 #define S_ABS 0x0001 #define S_TEXT 0x0002 #define S_DATA 0x0003 #define S_BSS 0x0004 #define S_COMM 0x0005 /* for internal use only */ #define S_REG 0x0006 #define S_COMB 0x0007 /* for internal use only; */ #define S_SEG 0x0008 /* segment name */ #define S_FN g0x001f #define S_TYPE 0x001f /* mask */ #define S_EXTERN 0x0020 #define FORMAT "%08lx" /* symbol value format */ #define FWIDTH 8 /* symbol value width */ /* * Relocation table entry for x.out and x.out segmented, long form. * This form is normally attached to ".o" files and may also be found * in segmented executables. */ struct reloc { unsigned short r_desc; /* descriptor */ unsigned short r_symbol; /* if extern, sym id; else segment id */ long r_pos; /* position of reloc in segme?nt */ }; /* * Definitions for reloc.r_desc (short). * * ss segment type * ss size * d 0 displacement * rrr reference type *  xx extra */ /* type of segment referenced */ #define RD_TEXT 0x0000 /* text */ #define RD_DATA 0x4000 /* data */ #define RD_BSS 0x8000 /* bss */ #define RD_EXT 0xc000 /* unknown, use type of reloc.r_symbol */ #define RD_SEG 0xc000 /* segme1nt type mask */ /* number of bytes involved in reference */ #define RD_BYTE 0x0000 /* 1 */ #define RD_WORD 0x1000 /* 2 */ #define RD_LONG 0x2000 /* 4 */ #define RD_SIZE 0x3000 /* size mask */ #define RD_DISP 0x0800 /* set if self relative (pc relative) */ /* type of reference */ #define RD_ROFF 0x0000 /* offset only */ #define RD_RSEG 0x0100 /* segment only */ #define RD_RFAR 0x0200 /* segment and offset */ #define RD_REFT 0x0700 /* reference type mask */ /* * Relocation table entry for x.out, short form. * This form is norma"lly attached to non-segmented executable files. */ struct xreloc { long xr_cmd; /* reloc command */ }; /* * Definitions for xreloc.xr_cmd (long). * * c  set if code segment * l set if long operand * oo offset */ #define XR_CODE 0x80000000L /* code/data segment */ #define XR_LONG 0x40000000L /* long/short operand */ #define XR_OFFS 0x3fffffffL /* 30 bit offset mask */ /* * Group structure for segmented x.out. * A segment of type XS_TGRPS contains an array of struct xgroup. */ struct xgroup { unsigned short xg_gnoff; /* string table group name offset */ unsigned short xg_snoff; /* string table segment name offset */ }; /* * All of the following are provided for compatibility only. */ struct asym { /* a.out, modified from struct nlist */ char sa_name[8]; /* symbol name */ unsigned short sa_type; /* type flag */ unsigned short sa_value; /* value */ }; /* Definitions for asym.sa_type and nlist.n_type. */ #define N_UNDF 0 /* undefined */ #define N_ABS 01 /* absolute */ #define N_TEXT 02 /* text symbol */ #define N_DATA 03 /* data symbol */ #define N_BSS 04 /* bss symbol */ #define N_TYPE 037 #define N_REG 024 /* register name */ #define N_FN 037 /* file name symbol */ #define N_EXT 040 /* external bit, or'ed in */ struct bsym { /* b.out, non-portable version of x.out */ char sb_type; /* use definitions for sym.s_type */ long sb_value; }; /* * Definitions for reloc .r_desc, compatible with bitfield * allocation from the low end of a word (pdp11). */ #define RD_BTEXT 0x0000 #define RD_BDATA 0x0001 #define RD_BBSS 0x0002 #define RD_BEXT 0x0003 #define RD_BSEG 0x0003 #define RD_BBYTE 0x0000 #define RD_BWORD 0x0004 #define RD_BLONG 0x0008 #define RD_BSIZE 0x000c #define RD_BDISP 0x0010 it, or'ed in */ struct bsym { /* b.out, non-portable version of x.out */ char sb_type; /* use definitions for sym.s_type */ long sb_value; }; /* * Definitions for reloc ]./usr/include/sys/reg.h&9 444 0 0 3545 4145160250 10144 g/* * @(#) reg.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * offsets of user registers on kernel stack * * The values here depend largely on the hardware, and on * the code for system call, trap, and interrupt entry. */ #ifdef M_I386 #define RSS 18 #define RESP 17 #define REFL 16 #define RCS 15 #define REIP 14 #define RCODE 13 #define RTYPE 12 #define REAX 11 #define RECX 10 #define REDX 9 #define REBX 8 #define KESP 7 /* kernel stack pointer, not user's! */ #define REBP 6 #define RESI 5 #define REDI 4 #define RDS 3 #define RES 2 #define RFS 1 #define RGS 0 #endif /* * users regs on kernel stack i80286 kernel. */ #ifdef M_I286 #define RSS 7 /* user ss */ #define RSP 6 /* user sp */ #define USP 6 #define RFL 5 #define RCS 4 #define RIP 3 #define Rviol 2 #define RES 1 #define RAX 0 #define RCX -1 #define RDX -2 #define RBX -3 #define RKSP -4 /* NOT sp to user's stack */ #define RBP -5 #define RSI -6 #define RDI -7 #define RDS -8 #endif /* These values are for the i8086 kernel */ #ifdef M_I8086 #define URFLAG 12 /* these guys are in the user data space, */ #define URCS 10 /* and are read by fuword(u.u_aAX[RSP] + URxx) */ #define URIP 8 #define URVEC 6 #define URBP 4 #define URES 2 #define URDX  0 #define RSP86 8 /* these guys are on system stack */ #define USP86 8 #define RSS86 7 #define RDS86 5 #define RDI86 4 #define RSI86 3 #define RCX86 2 #define RBX86 1 #define RAX86 0 #define Rstate -1 1/* user/system mode, trap # */ #define Rilev -2 /* interrupted procedure level */ #endif 10 /* and are read by fuword(u.u_aAX[RSP] + URxx) */ #define URIP 8 #define URVEC 6 #define URBP 4 #define URES 2 #define URDX R]./usr/include/sys/psl.h&9 444 0 0 1602 4145160250 10155  /* * @(#) psl.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * processor status */ #define PS_C 0x00001 /* carry flag */ #define PS_P 0x00004 /* parity flag */ #define PS_A 0x00010 /* aux carry flag */ #define PS_Z 0x00040 /* zero flag */ #Bdefine PS_S 0x00080 /* sign flag */ #define PS_T 0x00100 /* trace enable bit */ #define PS_I 0x00200 /* interrupt enable bit */ #define PS_D 0x00400 /* direction flag */ #define PS_V 0x00800 /* overflow flag */ #define PS_IOPL 0x03000 /* io priv level */ #define PS_NT 0x04000 /* nested task flag */ #define PS_RF 0x10000 /* resume flag */ #define PS_VM 0x20000 /* virtual 8086 mode */ lag */ #define PS_P 0x00004 /* parity flag */ #define PS_A 0x00010 /* aux carry flag */ #define PS_Z 0x00040 /* zero flag */ # =]./usr/include/sys/prof.h&8 444 0 0 1011 4145160264 10324   /* * @(#) prof.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #define PRF_ON 1 /* profiler collecting samples */ #define PRF_VAL 2 /* profiler contains valid text symbols */ #define PRF_MAX_FUNCS (2048) /* maximum number of functions in a keMrnel */ #) prof.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #define PRF_ON 1 /* profiler collecting samples */ #define PRF_VAL 2 /* profiler contains valid text symbols */ #define PRF_MAX_FUNCS (2048) /* maximum number of functions in a ke]./usr/include/sys/proc.h&8 444 0 0 12737 4145160247 10363 /* * @(#) proc.h 2.4 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * One structure allocated per active process. It contains all data needed * about the process while the process may be swapped out. * Other per process data (user.h) is swapped with the process. */ struct proc { char p_stat; #ifndef M_I386 char p_flag; #endif char p_pri; /* priority, negative is high */ char p_time; /* resident time for scheduling */ char p_cpu; /* cpu usage for scheduling */ char p_nice; /* nice for cpu usage */ ushort p_uid; /* real user id */ ushort p_suid; /* set (effective) user id */ ushort p_sgid; /* set (effective) group id */ short p_pgrp; /* name of process group leader */ short p_pid; /* unique process id */ short p_ppid; /* process id of parent */ #ifdef M_I386 unsigned int p_flag; #endif long p_sig; /* signals pending to this process */ #ifdef M_I386 int p_hold; /* hold signal bit mask */ int p_chold; /* defer signal bit mask */ /* sigset turns on this bit */ /* signal does not turn on this bit */ #ifdef UADJUST struct tabent p_addr[MAXUSIZE]; /* page table entries for u-area */ #else struct tabent p_addr[17]; /* page table entries for u-area */ #endif int p_wsize; /* working set size */ #define p_uaddr p_addr  /* used by resume */ #else union { unsigned short p_daddr; /* block number of u on swap */ mloc_t p_caddr; /* location of p_usize region in core */ } p_addr; #define p_uaddr p_addr.p_caddr /* used by resume */ #endif unsigned short p_fcsel; /* first code selector */ unsigned short p_fdsel; /* first data selector */ unsigned short p_ldsel; /* last data selector */ short p_tsize; /* size of text (used by exec/swapin) */ short p_ssize; /* size of stack (used by exec/swapin) */ unsigned short p_lsize; /* size in bytes of the ldt: 286 only */ msize_t p_usize; /* size of u + ldts + ldtinfo seg: 286 only */ struct text *p_textp; /* pointer to text structure */ struct proc *p_link; /* linked list of running processes */ union { caddr_t p_cad; int p_int; } p_unw; #define p_wchan p_unw.p_cad #define p_arg p_unw.p_int int p_clktim; /* time to alarm clock signal */ struct sd *p_sdp; /* pointer to list of shared data segments */ #ifdef M_I386 caddr_t p_smbeg; /* start of shared data */ cad dr_t p_smend; /* last byte of shared data */ caddr_t p_v86; /* pointer to virtual 8086 info */ int p_dummy0; /* reserved 0 */ int p_dummy1; /* reserved 1 */ int p_dummy2; /* reserved 2 */ #endif }; extern struct proc proc[]; /* the proc table itself */ #ifdef M_I8086 #define p_size p_usize /* re-use field for other purpose */ #define p_cflags p_lsize #endif /* stat codes */ #define SSLEEP 1 /* awaiting an event */ #define SWAIT 2 /* (abandoned state) */ #define SRUN 3 /* running */ A8#define SIDL 4 /* intermediate state in process creation */ #define SZOMB 5 /* intermediate state in process termination */ #define SSTOP 6 /* process being traced */ #define SXBRK 7 /* process being xswapped */ #define SXSTK 8 /* process being xswapped */ #define SXTXT 9 /* process being xswapped */ /* flag codes */ #define SLOAD 01 /* in core */ #define SSYS 02 /* scheduling process */ #define SLOCK 04 /* process cannot be swapped */ #define SSWAP 010 /* process is being swapped out */ #define STRC 020 /* process is being traced */ #define SWTED 040 /* another tracing flag */ #define STEXT 0100 /* text pointer valid */ #define SSPART 0200 /* process is partially swapped out */ #define SNWAKE 0400 /* Process cannot wakeup by */ /* a signal. */ #ifdef M_I386 #define SREQLK 01000 /* process requests it not be swapped */ #define SHAD2SWP 02000 /* process swapped anyway, despite request */ #define SPARTOUT 04000 /* tried to swap out, but had locked page */ #endif /* contiguity flags */ #define SCSTACK 01 #define SCDATA 02 #define SCWANT 04 #define SCLDATA 010 #define SCLTEXT 020 /* * parallel proc structure * to replace part with times * to be passed to parent process * in ZOMBIE state. */ struct xproc { char xp_stat; #ifndef M_I386 char xp_flag; #endif char xp_pri; /* priority, negative is high */ char xp_time; /* resident time for scheduling */ char xp_cpu; /* cpu usage for scheduling */ char xp_nice; /* nice for cpu usage */ ushort xp_uid; /* real user id */ ushort xp_suid; /* set (effective) user id */ ushort xp_sgid; /* set (effective) group id */ short xp_pgrp; /* name of process group leader */ short xp_pid; /* unique process id */ short xp_ppid; /* process id of parent */ #ifdef M_I386 unsigned int xp_flag; #endif long xp_sig; /* signals pending to this process */ #ifdef M_I386 int xp_hold; /* hold signal bit mask */ int xp_chold; /* defer signal bit mask */ /* sigset turns on this bit */ /* signal does not turn on this bit */ #ifdef UADJUSXT struct tabent xp_addr[MAXUSIZE]; /* page table entries for u-area */ #else struct tabent xp_addr[17]; /* page table entries for u-area */ #endif int xp_wsize; /* working set size */ #else union { unsigned short xp_daddr;/* block number of u on swap */ mloc_t xp_caddr;/* location of p_usize region in core */ } xp_addr; #endif short xp_xstat; /* Exit status for wait */ time_t xp_utime; /* user time, this proc */ time_t xp_stime; /* system time, this proc */ }; turn on this bit */ #ifdef UADJUS_./usr/include/sys/param.h%9 444 0 0 22627 4145160246 10516 /* * @(#) param.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80286 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Adjustable parameters */ #ifdef9 M_I8086 #define HZ 20 /* Ticks/second of the clock */ #define SSIZE 1024 /* initial stack size (bytes) */ #define KSSIZE 1024 /* size of per process kernel stack */ #endif #ifdef M_I286 #define HZ 50 /* Ticks/second of the clock */ #define SSIZE 4096 /* initial stack size (bytes) */ #define KSSIZE 1024 /* size of per process kernel stack */ #define OFFUSRPG 0 /* address of U page (for fpsup.s) */ #endif #ifdef M_I386 #define HZ 50 /* Ticks/second of the clock */ #define SSIZE 4096 /* initial sta ck size (bytes) */ #define KSSIZE 2048 /* size of per process kernel stack */ #ifdef UADJUST /* size of user block (pages) */ #define USIZE (u.u_procp->p_usize) #define MAXUSIZE 17 /* maximum size of user block (*4k bytes) */ /* min size of user block (*4k bytes) */ #define MINUSIZE btoc(sizeof(struct user)) #else #define USIZE 2 /* size of user block (pages) */ #define MAXUSIZE 2 /* maximum size of user block (*4k bytes) */ #endif #define KERNTBASE 40 /* page directory index for kernel text M- this is then moved to KERNBASE + KERNTBASE */ #define KERNTADDR (ctob((KERNTBASE)*NEPT)) /* kernel text base linear address */ #define KERNBASE 950 /* page directory index where kernel resides */ #define KERNADDR (ctob((KERNBASE)*NEPT)) /* kernel base linear address */ #define SPTOFFS 24 /* page directory offset of sptmap from base of kernel */ #define SPTADDR (ctob((SPTOFFS)*NEPT)) /* kernel data address of sptmapped address space */ #define SPTBASE (KERNBASE+SPTOFFS) /* page directory index for sptmapped address space */ #define TEXTBASE 600 /* page directory index for first text pt */ #define DATABASE 0 /* page directory index for first data pt */ #define SHMBASE 400 /* page directory index for first shdata pt */ #define SCREENBASE 511 /* page directory index for screen memory */ #define TXTPDENT 10 /* number of text page directory entries */ #define DATAPDENT 100 /* number of data page directory entries */ #define SHMPDENT 25 /* number of shared data page dir entries */ #define TAU (HZ/4) /* working set scanning period */ /* 64K/PGSIZE = num 4K pages per 286 seg */ #define N386PAGEPS (0x10000/PGSIZE) #endif #define SINCR 1024 /* increment of stack (bytes) (not used)*/ #define NOFILE 60 /* max open files per process */ #define CDLIMIT (1L<<21) /* default max write address */ #define CANBSIZ 256 /* max size of typewriter line */ #define MSGBUFS 128 /* Characters saved from error messages */ #define NCARGS 5120 /* # characters in exec arglist */ #define MAXTTYS 16 /* Max # open ttys */ #define NIOSTAT 50 /* max number of bufs to keep stats for */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ #define BSSIZE 256 /* bytes in bootstring buffer */ #define NCARGS 5120 /* # characters in exec arglist */ #define MINBUF 40 /* minimum # of buffers */ #define NSEG 2 /* max seg/user (see user.h) 8086 only */ /* * priorities * probably should not be * altered too much */ #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PCATCH 0400 #define PMASK 0177 #define PPIPE 26 #define PWAIT 30 #define PSLEP 40 #define PUSER 50 #define PIDLE 127 /* * fundamental constants of the implementation-- * cannot be changed easily */ #define NBPW sizeof(int) /* number of bytes in an integer */ /* * *** WARNING *** * Some io devices may have a problem * if BSIZE is greater than MMPGSZ * If BSIZE changes, so must NSBFILL, BSHIFT, * NSHIFT, LINOPB */ #define BSIZE 1024 /* size of secondary block (bytes) */ #define BSHIFT 10 /* LOG2(BSIZE) */ #define BMASK (BSIZE - 1) /* BSIZE-1 */ #define BSLOP 0 /* must be 0 for current copyio implemtation*/ #define NINDIR (BSIZE/sizeof(daddr_t)) #define NSHIFT 8 /* LOG2(NINDIR) */ #define NMASK (NINDIR - 1) /* NINDIR-1 */ #define INOPB (BSIZE/sizeof(struct dinode)) /* # inodes per block */ #define LINOPB 4 /* LOG2(INOPB) */ #define INOSHIFT 4 /* LOG2(INOPB) */ #ifndef NULL /* bs for util including param and stdio */ #define NULL ((char *)0) #endif #define NODEV (dev_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* block number of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define NICFREE 100 /* number of superblock free blocks */ #define NSBFILL 371 /* aligns s_magic, .. at end of super block */ #ifdef M_I386 #define NCPS 1 /* Number of clicks per segment */ #dewfine NBPC 4096 /* Number of bytes per click */ #define NDPC 4 /* number of blocks per click */ #define BPCSHIFT 12 /* LOG2(NBPC) if exact */ #endif #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsBOFF(dev, x) ((x)&BMASK) #define FsBNO(dev, x) (x>>BSHIFT) #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) (b) #define FsPTOL(dev, b) (b) #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsIT rOO(dev, x) itoo(x) #define FsINOS(dev, x) ((x&~07)+1) /* * MMU parameters. */ #ifdef M_I8086 #define PAGESIZE 16 /* size of memory allocation unit */ #define MMPGSZ PAGESIZE #define PAGEMASK (PAGESIZE - 1) /* PAGESIZE - 1 */ #define LPGSIZE 4 /* log 2 of pagesize */ #define LMMPGSZ LPGSIZE #define MMPGMASK PAGEMASK #define NPAGEPS 0x1000 /* 64k/MMPGSZ = number of pages/seg */ #define MAXPAGES 0xA000 #define MAXPAGE MAXPAGES #define UPGSIZE sizeof(struct user) #define USIZE btoms(UPGSIZE) #defin  e STACKSTART(ss) (USRSTACK - mstob(ss)) #endif #ifdef M_I286 #define MMPGSZ 512 /* bytes/page in the MMU */ #define LMMPGSZ 9 /* log2(MMPGSZ) */ #define NPAGEPS 128 /* 64k/MMPGSZ = number of pages per segment */ #define MAXPAGES 32768L #define USIZE (u.u_procp->p_usize) #endif #ifndef M_I386 #ifndef M_I8086 #ifndef M_I286 ERROR ****))))) /* error if none defined */ #endif #endif #endif #ifdef M_I8086 /* error if any two defined */ #ifdef M_I286 ERROR ****))))) #endif #ifdef M_I386 ERROR ****)B)))) #endif #endif #ifdef M_I286 #ifdef M_I386 ERROR ****))))) #endif #endif /* true if bp is not mapped out */ #ifdef M_I386 #define issabuf(bp) (1) #else #define issabuf(bp) (bp->b_paddr <= ktop(sabuf[v.v_sabuf])) #endif #ifdef M_I8086 #define ptok(x) ((caddr_t)x) #define ktop(x) ((paddr_t)(unsigned)x) #define copypsize(rpp,rip) rpp->p_size = rip->p_size; #define USRSTACK u.u_topstk #define URSBC 14 /* User stk Reg Save area Byte Cnt */ #endif #ifdef M_I286 #define ptok(x) ((caddr_t)((unsigned) x - (unsigned) kmemstart)) #define ktop(x) ((paddr_t)(unsigned) x + kmemstart) #define copypsize(rpp,rip) rpp->p_usize = rip->p_usize; \ rpp->p_lsize = rip->p_lsize #define USRSTACK u.u_stkbot #define URSBC 0 /* User stk Reg Save area Byte Cnt */ #endif #ifdef M_I386 #define ktop(addr) ((paddr_t)addr) #define ptok(addr) ((caddr_t)addr) #ifdef UADJUST #define copypsize(rpp,rip) rpp->p_usize = rip->p_usize; #else #define copypsize(rpp,rip) #endif #endif #define lobyte(X) (((unsigned char *)&X)[0]) #define hibyte(X) (((unsigned char *)&X)[1]) #define loword(X) (((ushort *)&X)[0]) #define hiword(X) (((ushort *)&X)[1]) /* * Machine-dependent bits and macros */ #ifndef M_I386 #define CLKONLY(ps) (((ps)&PS_PRIMASK)==0) #define USERMODE(ps) ((ps)&PS_USER) #define PTRSIZE(f) ((f)? sizeof(char far *) : sizeof(caddr_t)) /* * 286/8086 simulated "state" definitions. */ #define PS_USER 0x01 /* "user" mode */ #define PS_SYS 0xFE /* for mch.a86, turns off user mode */ #define PS_PRIMASK 0xFF00 /* U#previous priority */ #define SHWDSZ V(2+6) /* space on user stack for shell word */ #endif #ifdef M_I386 #define SPL0MASK 0x00 #define USERMODE(cs) ((cs & DPL_USER) == DPL_USER) #define CLKONLY(mask) ((mask) == 0) #define USRSTACK u.u_stkbot #define USRSTACK286 ((caddr_t)FTOOFF(u.u_stkbot)) #define URSBC 0 /* User stk Reg Save area Byte Cnt */ #define PTRSIZE(f) ((f)? sizeof(c'addr_t) : sizeof(short)) #define SHWDSZ 5(nbpw+6) /* space on user stack for shell word */ #en/dif #define NBPW286 2 /* sizeof an int on a 80286 */ /* Conditional compilation */ #define PAGEMMU /* mmu is divided in pages */ #ifdef M_I386 /*#define SHORTINT /* sizeof(int)==sizeof(short) */ /*#define BYTESWAP /* byte ordering is opposite that of pdp11 /*#define OLDFORK /* return to parent by bumping pc by 2 */ /*#define FIXEDSTACK /* stack cannot grow */ /*#define BUFMAPOUT /* buffers are mapped out */ /*#define LARGECODE /* kernel supports multisegment code */ /*#define UNOTMAPPED /* upage copied in on context switch */ #else #define SHORTINT /* sizeof(int)==sizeof(short) */ #define BUFMAPOUT /* buffers are mapped out */ #define UNOTMAPPED /* upage copied in on context switch */ #ifdef M_I286 #define FIXEDSTACK /* stack cannot grow */ #endif #ifdef M_I8086 #define LARGECODE /* kernel supports multisegment code */ #endif #endif UFMAPOUT /* buffers are mapped out */ /*#define LARGECODE /* kernel supports multisegment co_./usr/include/sys/proctl.h%8 444 0 0 1774 4145160247 10702  /* * @(#) proctl.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING b XENIX TO NEW HARDWARE. */ /* proctl() requests */ #define PRHUGEX 1 /* allow process > swapper size to execute */ #define PRNORMEX 2 /* remove PRHUGEX permission */ #define PRGETCMEM 3 /* allocate physically contiguous memory */ #define PRHGETCMEM 4 /* same as above, for huge model */ #define PRFREECMEM 5 /* deallocate memory allocated via PRGETCMEM */ #define PRHFREECMEM 6 /* same as above, for huge model */ /* proctl() arg structures */ struct pr_cmemarg { char far *addr; long bsize; }; TING__./usr/include/sys/preadi.h%8 444 0 0 1106 4145160247 10630 /* * @(#) preadi.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * array for storing physical transfer requests */ struct preq { daddr_t p_bnum; int p_bcount; }; struct pmapnode { int p_bufindex; int p_bufcount; }; #define MAXPREQ 10 #define MAXPBUF 10 #define ROK 0 #define BADREQ -1 #define RERROR -2 peration, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * array for storing physical transfer requests */ struct preq { daddr_t p_bnum; int p_bcount; }; struct pmapnode { int p_bufindex; int p_bufcount; }; #define MAXPREQ 10]./usr/include/sys/page.h&8 444 0 0 21223 4145160246 10321 /* * @(#) page.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #ifdef M_I386 /* * Format of a page directory or page table entry * * N.B.: if te_pres is zero, the other bits have no assigned meaning, * and are all available for software ulse. * * When the page table entry is marked present, the page frame number * (te_frameno) refers to a memory frame. When the PTE is marked * not present, te_frameno refers to a swap frame. */ struct tabent { unsigned long te_flags:9; /* see below */ unsigned long te_type:3; /* see below */ unsigned long te_frameno:20; /* see below */ }; /* * values of te_flags */ #define TF_PRESENT 0x001 /* page is present */ #define TF_WRITE 0x002 /* page is writable */ #define TF_USER 0x004 /* access is kernel only */ #define TF_RES1 0x008 /* reserved must not be set */ #define TF_RES2 0x010 /* reserved must not be set */ #define TF_ACCESSED 0x020 /* page has been accessed */ #define TF_DIRTY 0x040 /* page has been written */ #define TF_RES3 0x080 /* reserved must not be set */ #define TF_RES4 0x100 /* reserved must not be set */ /* * values of te_type */ #define TE_INVALID 0 /* page is not valid */ #define TE_FILSYS 1 /* text page resides on filesystem */ #define TE_LOCKED 2 /* page is locked in core ( shared data) */ #define TE_SWAP 3 /* page resides on swap area */ #define TE_ZERO 4 /* zero fill on access */ #define TE_COPY 5 /* copy on write */ #define TE_INTRN 6 /* filesystem page in transit */ #define TE_TABLE 7 /* page table or u area page */ /* * format of a linear address */ struct laddr { unsigned la_off:12; /* offset of byte in page */ unsigned la_page:10; /* offset of pte in page table */ unsigned la_dir:10; /* offset of pde in page directory */ }; /* * layout of a memory page f Srame information structure */ struct mpfi { struct mpfi *mp_fw, *mp_bw; /* freelist chains */ struct dpfi *mp_xlink; /* link to other map */ struct mpfi *mp_hash; /* link for filsys cache list */ unsigned short mp_rcnt; /* reference count */ unsigned short mp_flags; /* see below for values */ dev_t mp_dev; /* device for filsys page */ ino_t mp_ino; /* inode for filsys page */ daddr_t mp_blockno; /* block for filsys page */ #ifdef SANITY unsigned int mp_type; /* type of page in this frame */ #endif unsigned char mp_lcnt; /* number of locks on this page */ int mp_xser; /* xlink serial number */ int mp_pid; /* pid of owner if TE_SWAP */ }; extern struct mpfi *mftomp(); extern pfn_t mptomf(); /* * values of mp_flags */ #define MF_INTRANSIT 1 #define MF_NOTIFY 2 #define MF_DIRTY 4 #define MF_CACHE 8 #define MF_LOCKED 16 struct dpfi { struct dpfi *dp_fw, *dp_bw; /* freelist chains */ struct mpfi *dp_xlink; unsigned short dp_flags; unsigned short dp_rcnt; #ifdef SANITY unsigned i nt dp_type; /* type of page in this frame */ #endif int dp_xser; /* xlink serial number */ int dp_pid; /* pid of owner if TE_SWAP */ }; extern struct dpfi *dftodp(); /* * values of dp_flags */ #define DF_INTRANSIT 1 #define DF_NOTIFY 2 #define DF_DIRTY 4 /* * values of cr0 register */ #define CR0_PE 0x00000001 /* protection enabled (segmentation) */ #define CR0_MP 0x00000002 /* monitor coprocessor */ #define CR0_EM 0x00000004 /* emulate coprocessor */ #define CR0_TS 0x00000008 /* task switched< */ #define CR0_ET 0x00000010 /* coprocessor type */ #define CR0_PG 0x80000000 /* paging enabled */ /* * arguments to chgprot */ #define RO 0 #define RW TF_WRITE /* * some useful constants */ #define PGSIZE ctob(1) #define NEPT (ctob(1)/sizeof(struct tabent)) #define NBPT (NEPT*ctob(1)) /* how many pde's needed to map n bytes */ #define btopde(n) (((n) + NBPT - 1)/NBPT) #define btopdet(n) ((n)/NBPT) /* how many page table entries to map n bytes */ #define btopte(n) (((n) + ctob(1) - 1)/ctob(1)) #defhine btoptet(n) ((n)/ctob(1)) /* virtual address to page offset */ #define vtpo(a) ((unsigned long)(a) & (PGSIZE-1)) /* virtual address to page number */ #define vtpn(a) ( btoct((a)) ) /* kernel virtual address to linear address */ #define kvtol(a) ( (unsigned long)(a) + KERNADDR ) /* linear address to page directory offset */ #define latopdo(a) ( (unsigned long)(a) >> 22 ) /* linear address to page table offset */ #define latopto(a) ( ((unsigned long)(a) >> 12) & 0x3ff) /* linear address to page off set */ #define latopo(a) ((unsigned long)(a) & 0xfff) #define NOBLOCK 1 #define BLOCKOK 0 #define HEAD 0 #define TAIL 1 /* * paging system statistics */ struct pgstat { /* page cache statistics */ unsigned long ps_chits; /* page cache hits */ unsigned long ps_cmisses; /* page cache misses */ /* swapping statistics */ unsigned long ps_swapins; /* number of procs swapped in */ unsigned long ps_swapouts; /* number of procs swapped out */ /* page io statistics */ unsigned long ps_ffrds; /* fil(esystem page reads */ unsigned long ps_swrds; /* swap area page reads */ unsigned long ps_swwts; /* swap area page writes */ unsigned long ps_pgrcl; /* # pages reclaimed from free list */ /* copy on write statistics */ unsigned long ps_fshare; /* # of pages shared due to cow fork */ unsigned long ps_cshare; /* # pages shared due to cache hits */ unsigned long ps_copy; /* # of shared pages copied */ /* page fault statistics */ unsigned long ps_flts; /* total number of page faults */ }; extern struct pgstat pgstat; #define PG_OK 0 #define PG_FAIL 1 #define PG_NOROOM 2 typedef unsigned long laddr_t; /* * from pgalloc.c */ extern pfn_t mfalloc(int); extern pfn_t dfalloc(void); extern struct mpfi *mfclaim(struct mpfi *); extern struct dpfi *dfclaim(struct dpfi *); extern void mffree(pfn_t, int); extern void dffree(pfn_t); extern void xlink(pfn_t, pfn_t); extern char *sptalloc(int); extern void sptfree(char *, int, int); extern int map(struct tabent *, int); extern void unmap(char *, i nt); extern int mapphys(char *, int); extern void unmapphys(char *, int); extern int mapptov(char *, unsigned int, int); extern void xlcheck(struct mpfi *, struct dpfi *); /* * from pgbuild.c */ extern int buildpte(struct inode *, unsigned short, unsigned short, int); extern int impcode(unsigned short, unsigned short); extern int preload(struct inode *, unsigned short); /* * from pgfault.c */ extern int pagefault(struct tabent); extern int pgaccess(laddr_t, int, int); extern int lverify(laddr_t, int); e xtern int pgfault(laddr_t, struct tabent, int); extern struct tabent *addpt(struct tabent *); /* * from pghash.c */ extern int pgfind(dev_t, ino_t, daddr_t); extern void pghash(struct mpfi *); extern void pgunhash(dev_t, ino_t, daddr_t); extern void pginval(struct mpfi *); extern void pgpurge(dev_t); extern void pgflush(dev_t, ino_t); /* * from pginit.c */ extern struct mpfi *mftomp(pfn_t); extern pfn_t mptomf(struct mpfi *); extern void memrange(pfn_t, pfn_t); extern pfn_t memget(int); extern void memi nit(void); extern void mpinit(struct mpfi *, int); extern void swapadd(dev_t, daddr_t, daddr_t); extern void dpinit(struct dpfi *, int); extern void dfinit(void); extern struct dpfi *dftodp(pfn_t); extern pfn_t dptodf(struct dpfi *); extern void dptoblk(struct dpfi *, struct buf *); /* * from pgio.c */ extern int pgread(pfn_t); extern int pgwrite(struct mpfi *, struct dpfi *); extern int pageio(int, struct dpfi *, int); extern int ffread(pfn_t, dev_t, ino_t, daddr_t); /* * from pgmisc.c */ extern void u adjust(char *); extern void ptfree(struct tabent *, int); extern void ptshrink(pfn_t, pfn_t); extern void pgfree(struct tabent *, struct tabent *); extern struct tabent *vtopte(char *); extern struct tabent *ltopte(laddr_t); extern void pgcheck(struct tabent *, int); extern void pgset(struct tabent *, int); extern void pgpid(struct tabent *); extern laddr_t pghila(struct user *); extern laddr_t pglola(struct user *); /* * from pgscan.c */ extern void wsscan(void); extern void pdscan(pfn_t, pfn_t); extern int ptscan(struct tabent *, struct tabent *); /* * from pgswap.c */ extern void sched(void); extern void swapout(struct proc *); extern int pdswapout(struct tabent *, pfn_t, pfn_t, int); extern int ptswapout(struct tabent *, int, int); extern int swapin(struct proc *); extern void ptswapin(struct tabent *, int); extern void xswapout(struct proc *); /* * from pgxlat.c */ extern int dftomf(struct tabent *); extern int mftodf(struct tabent *); extern int fftomf(struct tabent *); extern pfn_t mfcvt(pfn_t);  extern void mftoff(struct tabent *); extern void pddup(struct user *); extern void ptdup(struct tabent *, struct tabent *, unsigned int); #endif apout(struct tabent *, pfn_t, pfn_t, int); extern int ptswapout(struct tabent *, int, int); extern int swapin(struct proc *); extern void ptswapin(struct tabent *, int); extern void xswapout(struct proc *); /* * from pgxlat.c */ extern int dftomf(struct tabent *); extern int mftodf(struct tabent *); extern int fftomf(struct tabent *); extern pfn_t mfcvt(pfn_t); ]./usr/include/sys/nfs.h&9 444 0 0 1132 4145160246 10150  /* * @(#) nfs.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #define REMOTE(IP) ((IP) && ((IP)->i_mode&IFMT)==IFNAM && \ ((IP)->i_fdep.i_namef.i_type == IFREM)) #define NOTREM(IP) (((IP)->i_mode&IFMT)!=IFNAM || \ ((IP)->i_fdep.i_nam ef.i_type != IFREM)) extern int nfs1, nfs2; inodep_t nfc_namei(); inodep_t nfc_owner(); 986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #define REMOTE(IP) ((IP) && ((IP)->i_mode&IFMT)==IFNAM && \ ((IP)->i_fdep.i_namef.i_type == IFREM)) #define NOTREM(IP) (((IP)->i_mode&IFMT)!=IFNAM || \ ((IP)->i_fdep.i_nam "]./usr/include/sys/ndp.h&9 444 0 0 4670 4145160245 10154  : /* * @(#) ndp.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * NDP Hardware DEFINES */ /* * Status word defines */ #define NDPSW_IE 0x0001 /* invalid operation */ #define NDPSW_DE 0x0002 /* denormalized operand */ #define NDPSW_ZE 0x0004 3 /* zero divide */ #define NDPSW_OE 0x0008 /* overflow */ #define NDPSW_UE 0x0010 /* underflow */ #define NDPSW_PE 0x0020 /* precision */ #define NDPSW_ES 0x0080 /* error summary status */ #define NDPSW_CC 0x4700 /* NPX condition code mask */ #define NDPSW_ST 0x1800 /* Stack top pointer mask */ #define NDPSW_NB 0x8000 /* NEU busy */ #define NDPSW_ERR (NDPSW_PE | NDPSW_UE | NDPSW_OE | NDPSW_ZE \ | NDPSW_DE | NDPSW_IE) /* * Control Word Defines */ #define NDPCW_IM 0x0001 /* invalid operatio  n */ #define NDPCW_DM 0x0002 /* denormalized operaand */ #define NDPCW_ZM 0x0004 /* zero divide */ #define NDPCW_OM 0x0008 /* overflow */ #define NDPCW_UM 0x0010 /* underflow */ #define NDPCW_PM 0x0020 /* precision */ #define NDPCW_PC 0x0300 /* precision control mask */ #define NDPCW_RC 0x0C00 /* rounding control mask */ #define NDPCW_IC 0x1000 /* infinity control 0 = projective, 1= affine */ /* * Precision control */ #define NDPPC_24 0x0000 /* 24 bit significand */ #define NDPPC_RES 0x01 00 /* reserved */ #define NDPPC_52 0x0200 /* 52 bit significand */ #define NDPPC_64 0x0300 /* 64 bit significand */ /* * Rounding control */ #define NDPRC_NE 0x0000 /* round to Nearest or Even */ #define NDPRC_RD 0x0400 /* Round Doun (toward -infinity) */ #define NDPRC_RU 0x0800 /* Round Up (toward +infinity) */ #define NDPRC_CH 0x0C00 /* CHop (truncate toward zero) */ /* * NDP software defines for fp_state */ #define FP_HW 0x01 /* have fp hardware */ #define FP_287 0x02 /* have 80287 */ # Ddefine FP_387 0x04 /* have 80387 */ #define FP_NOEX 0x08 /* no emulator for except. handling */ #define FP_EM 0 /* have fp emulation */ #define FP_NO -1 /* have no fp */ /* * defines for emulator */ #define EMUL_START 0x15 /* address for emulation */ #define EMUL_EXCEPT 0x1A /* address for exception handling */ #ifdef M_I386 /* * externals used for fpu support */ extern struct proc *fp_task; extern int fp_type; #endif W 0x01 /* have fp hardware */ #define FP_287 0x02 /* have 80287 */ # ]./usr/include/sys/ndir.h&8 444 0 0 5654 4145160262 10331   /* * @(#) ndir.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Change notice (rti!trt): To be compatible with non-bsd systems: * #defines for u_short, u_long, and void added. */ #define u_short unsigned short #define u_long long /* * A d )irectory consists of some number of blocks of DIRBLKSIZ * bytes, where DIRBLKSIZ is chosen such that it can be transferred * to disk in a single atomic operation (e.g. 512 bytes on most machines). * * Each DIRBLKSIZ byte block contains some number of directory entry * structures, which are of variable length. Each directory entry has * a struct direct at the front of it, containing its inode number, * the length of the entry, and the length of the name contained in * the entry. These are followed  by the name padded to a 4 byte boundary * with null bytes. All names are guaranteed null terminated. * The maximum length of a name in a directory is MAXNAMLEN. * * The macro DIRSIZ(dp) gives the amount of space required to represent * a directory entry. Free space in a directory is represented by * entries which have dp->d_reclen >= DIRSIZ(dp). All DIRBLKSIZ bytes * in a directory block are claimed by the directory entries. This * usually results in the last entry in a directory having a large !$!< * dp->d_reclen. When entries are deleted from a directory, the * space is returned to the previous entry in the same directory * block by increasing its dp->d_reclen. If the first entry of * a directory block is free, then its dp->d_ino is set to 0. * Entries other than the first in a directory do not normally have * dp->d_ino set to 0. */ #define DIRBLKSIZ 512 #define MAXNAMLEN 255 struct direct { u_long d_ino; /* inode number of entry */ u_short d_reclen; /* length of this record */ u_shor!tt d_namlen; /* length of string in d_name */ char d_name[MAXNAMLEN + 1]; /* name must be no longer than this */ }; /* * The DIRSIZ macro gives the minimum record length which will hold * the directory entry. This requires the amount of space in struct direct * without the d_name field, plus enough space for the name with a terminating * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. */ #undef DIRSIZ #define DIRSIZ(dp) \ ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+!1 + 3) &~ 3)) #ifndef KERNEL /* * Definitions for library routines operating on directories. */ typedef struct _dirdesc { int dd_fd; long dd_loc; long dd_size; char dd_buf[DIRBLKSIZ]; } DIR; #ifndef NULL #define NULL 0 #endif extern DIR *opendir(); extern struct direct *readdir(); extern long telldir(); extern void seekdir(); #define rewinddir(dirp) seekdir((dirp), (long)0) extern void closedir(); #endif /* KERNEL */ efine DIRSIZ(dp) \ ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+!]./usr/include/sys/msg.h&9 444 0 0 5216 4145160245 10156 ! /* * @(#) msg.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80286 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * IPC Message Facility. */ /* ** !Implementation Constants. */ #define PMSG (PZERO + 2) /* message facility sleep priority */ /* ** Permission Definitions. */ #define MSG_R 0400 /* read permission */ #define MSG_W 0200 /* write permission */ /* ** ipc_perm Mode Definitions. */ #define MSG_RWAIT 01000 /* a reader is waiting for a message */ #define MSG_WWAIT 02000 /* a writer is waiting to send */ /* ** Message Operation Flags. */ #define MSG_NOERROR 010000 /* no error if big message */ /* ** Structure Definitions. */ /* ** There is! one msg queue id data structure for each q in the system. */ struct msqid_ds { struct ipc_perm msg_perm; /* operation permission struct */ #ifdef M_I386 struct msg *msg_first; /* ptr to first message on q */ struct msg *msg_last; /* ptr to last message on q */ #else struct msg near *msg_first; /* ptr to first message on q */ struct msg near *msg_last; /* ptr to last message on q */ #endif ushort msg_cbytes; /* current # bytes on q */ ushort msg_qnum; /* # of messages on q */ ushort msg_qbytes!v; /* max # of bytes on q */ ushort msg_lspid; /* pid of last msgsnd */ ushort msg_lrpid; /* pid of last msgrcv */ time_t msg_stime; /* last msgsnd time */ time_t msg_rtime; /* last msgrcv time */ time_t msg_ctime; /* last change time */ }; /* ** There is one msg structure for each message that may be in the system. */ struct msg { #ifdef M_I386 struct msg *msg_next; /* ptr to next message on q */ #else struct msg near *msg_next; /* ptr to next message on q */ #endif long msg_type; /* messag! Ve type */ short msg_ts; /* message text size */ short msg_spot; /* message text map address */ }; /* ** User message buffer template for msgsnd and msgrcv system calls. */ struct msgbuf { long mtype; /* message type */ char mtext[1]; /* message text */ }; /* ** Message information structure. */ struct msginfo { int msgmap, /* # of entries in msg map */ msgmax, /* max message size */ msgmnb, /* max # bytes on queue */ msgmni, /* # of message queue identifiers */ msgssz, /* msg segment si !!ze (should be word size multiple) */ msgtql; /* # of system message headers */ ushort msgseg; /* # of msg segments (MUST BE < 32768) */ }; msgsnd and msgrcv system calls. */ struct msgbuf { long mtype; /* message type */ char mtext[1]; /* message text */ }; /* ** Message information structure. */ struct msginfo { int msgmap, /* # of entries in msg map */ msgmax, /* max message size */ msgmnb, /* max # bytes on queue */ msgmni, /* # of message queue identifiers */ msgssz, /* msg segment si!_./usr/include/sys/mount.h%9 444 0 0 1541 4145160245 10527 !x/* * @(#) mount.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING !XENIX TO NEW HARDWARE. */ /* * Mount structure. * One allocated on every mount. */ struct mount { int m_flags; /* status */ dev_t m_dev; /* device mounted */ inodep_t m_inodp; /* pointer to mounted on inode */ struct buf *m_bufp; /* buffer for super block */ }; #define MFREE 0 #define MINUSE 1 #define MINTER 2 extern struct mount mount[]; DE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING !0]./usr/include/sys/mmu.h&9 444 0 0 20411 4145160244 10177 !/* * @(#) mmu.h 2.3 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #ifdef M_I386 #define MMUERR ((int)-1) #define INVALID ((caddr_t)-1) /* bytes to memory size (page/click) */ #define btoms(x) btoc(x) /* memory size (click/page) to bytes */ #define ms!stob(x) ctob(x) #define mltoa(x) ctob(x) /* number of pages in a segment (used for setting baseaddr of 286 ldts) */ #define NPGS 17 /* memory size to disk blocks */ #define mstod(x) (ctob(x)/BSIZE) /* convert segment:offset 8086 far pointer to address */ #define ftop(x) (((x & 0xffff0000) >> 12) + (x & 0xffff)) /* * defines for 286 compatibility */ #define MMPGSZ 512 /* bytes/page in the MMU */ #define LMMPGSZ 9 /* log2(MMPGSZ) */ #define NPAGEPS 128 /* 64k/MMPGSZ = number of pages per segment */ !0/* mem size to bytes */ #define mstob286(x) ((x)<> LMMPGSZ)) #else /* * mmu.h * Memory Management Definitions * * used by mmu.c * param.h has basic page-size/etc definitions. * * definitions for 286/8086 memory managment model * */ #ifdef M_I8086 extern short mm_size; /* #mem pages initialized to NCOREL */ #define RO 0 #define RW 1 #define MMUERR -1 /* error return from MMU routines */ #define ! MMUOK 0 /* normal return from MMU routines */ #define SEGKD 0 #define SEGUD (u.u_usegs[0]) #define SEGUI (u.u_usegs[1]) #endif /* M_I8086 */ #define NDSEGS 3 /* number of data segments the kernel may have*/ #define NCSEGS 7 /* number of text segments the kernel may have*/ #include "relsym86.h" #define SELSZ sizeof(struct desctab) #ifdef M_I286 #define NBUFSEL 16 /* number of selectors for mapped out buffers */ /* * descriptor table defines * NOTE: the RPL in USEG_SEL and ULDT_SEL is 0. This * ""Kdoes not ENFORCE protection */ #define NULL_SEL 0 /* 'invalid' selector */ /* * portable gdt defines * WARNING - these must agree with the layout of the gdt in oem.c */ #define GDT_SEL 0x8 /* selector for GDT alias */ #define IDT_SEL 0x10 /* selector for IDT alias */ #define KDS_SEL 0x18 /* 1st kernel data seg selector */ #define KCS_SEL 0x30 /* 1st kernel code seg selector */ #define KSS_SEL 0x68 /* kernel stack seg selector */ #define KTSS 0x70 /* kernel TSS selector */ #define SFTSS 0x78 /* s"tack fault TSS selector */ #define KWORK0 0x80 /* work segment selector */ #define KWORK1 0x88 /* work segment selector */ #define KWORK2 0x90 /* work segment selector */ #define MAPWKSEL 0x98 /* selector for map work */ #define COPY_SEL 0xA0 /* selector for copyio */ #define CLDT_SEL 0xA8 /* current process' ldt selector */ #define KENTRY 0xB0 /* kernel entry selector (call gate) */ /* 0xB8 and 0xC0 reserved */ #define BUF_SEL 0xC8 /* 1st of 16 selectors to map buffers */ #define SWAP1_SEL 0x148 /"o* work segment selector - swap */ #define SWAP2_SEL 0x150 /* work segment selector - swap */ #define SWAP3_SEL 0x158 /* work segment selector - swap */ #define SWAP4_SEL 0x160 /* work segment selector - swap */ #define FREE_SEL 0x168 /* 1st dscralloc() selector */ #define NGDT (stoi(FREE_SEL)+1 + 40) /* 86 ; 40 dscralloc() selectors */ /* * ldt defines * These selector definitions should not be touched - they are chip * and linker defined */ #define USEG_SEL 0x04 /* LDT based U seg selector */ #"idefine ULDT_SEL 0x0C /* ldt based, ldt alias */ #define ULINFO_SEL 0x14 /* used for ldt info array */ #define UEXEC_SEL 0x1C /* used during an exec */ #define ULDTTMP_SEL 0x24 /* used for execing and in mmu routines */ #define UTEMP_SEL 0x2C /* used for swapping, etc */ #define UOVRLY_SEL 0x34 /* used with overlay files */ #define FIRSTU_SEL 0x3F /* user's initial selector */ #define LDTPAD 8 /* number extra ldt slots allocated per proc */ /* size of an ldt entry in bytes (8) */ #define MAXLDT 8192 /"l* maximum number of entries in an ldt */ #define KERNLDT 7 /* number of kernel reserved ldts */ #define IDTSZ 256 /* number of entries in idt */ #define IDTLIM (IDTSZ * SELSZ) -1 /* idt limit */ /* * Descriptor Types */ #define DST_ATASK 0x1 /* avail task */ #define DST_TABLE 0x2 /* descriptor table */ #define DST_BTASK 0x3 /* busy task */ #define DST_CGATE 0x4 /* call gate */ #define DST_TAGATE 0x5 /* task context gate */ #define DST_IGATE 0x6 /* interrupt gate */ #define DST_TRGATE 0x7 /* trap g":ate */ /* * access byte fields (DSA_*) are defined in relsym86.h */ /* * tss structure */ struct tss { unsigned t_link; /* previous tss selector */ unsigned t_sp0; /* stack for level 0 */ unsigned t_ss0; unsigned t_sp1; /* stack for level 1 */ unsigned t_ss1; unsigned t_sp2; /* stack for level 2 */ unsigned t_ss2; unsigned t_ip; /* task state - ip */ unsigned t_flags; /* task state - flags */ unsigned t_ax; /* task state - ax */ unsigned t_cx; /* task state - cx */ unsigned t_dx; "Y /* task state - dx */ unsigned t_bx; /* task state - bx */ unsigned t_sp; /* task state - sp */ unsigned t_bp; /* task state - bp */ unsigned t_si; /* task state - si */ unsigned t_di; /* task state - di */ unsigned t_es; /* task state - es */ unsigned t_cs; /* task state - cs */ unsigned t_ss; /* task state - ss */ unsigned t_ds; /* task state - ds */ unsigned t_ldt; /* task ldt selector */ }; #define TSSLIM (sizeof(struct tss) - 1) /* tss limit */ /* * flag register bits */ #def"Iine FL_NCX 0x4000 /* nested context */ #define FL_IOPL 0x3000 /* I/O priv level */ #define FL_OFLOW 0x800 /* overflow bit */ #define FL_DIR 0x400 /* direction of string ops */ #define FL_INTEN 0x200 /* interrupt enable */ #define FL_TRAP 0x100 /* single step flag */ #define FL_SIGN 0x80 /* sign bit */ #define FL_ZERO 0x40 /* zero bit */ #define FL_AUXCARRY 0x10 /* auxillary carry */ #define FL_PARITY 0x4 /* parity bit */ #define FL_CARRY 0x1 /* carry bit */ /* * parts of a selector see relsym86.h *" / #define SEL_TI SEL_LDT /* table indicator (0-gdt,1-ldt) */ /* * descriptor table structure: see relsym86.h */ #define NPSEGM 0 /* no segments */ /* * Misc constants. */ #define OFFMASK (MMPGSZ-1) /* develop offset within page from addr */ #define RO (DSA_CODE|DSA_RING3) /* tells mmuset to setup code to make */ #define RW (DSA_DATA|DSA_RING3) /* kernel access read-only, or rd/wr */ #define MMUOK ((mloc_t) 0) #define MMUERR ((mloc_t) -1) struct ldtinf { unsigned short flag; union { unsigned s "(" hort psize; /* used for exec */ unsigned short swapbn; /* block # on swapper */ unsigned short dupsel; /* sel this sel is dup of, if LT_DUP */ } si; }; /* * ldtinf flag values indicating the type of segment represented */ #define LT_OWN 0x0001 /* maps user-owned, private memory */ #define LT_ALLOC 0x0002 /* swapper must allocate mem for exec */ #define LT_EXPAND 0x0004 /* expanding segment -used by swapper */ #define LT_ITER 0x0008 /* iterated data or text segment */ #define LT_SD 0x0010 /"* shared data segment */ #define LT_ABS 0x0020 /* maps fixed location (i.e. screen) */ #define LT_DUP 0x0040 /* duplicate mapping */ #define LT_EXEC 0x0080 /* executable segment */ #define LT_RO 0x0100 /* read-only segment */ #define LT_HUGE 0x0200 /* allocated as HUGE seg by brkctl */ #define LT_CONTIG 0x0400 /* maps a segment in a series */ /* of physically contiguous segments */ #define LT_FCONTIG 0x0800 /* first in a series of physically */ /* contiguous segments */ extern fdesc_"t *ldt; /* ULDT_SEL:0 */ #define flinf_t struct ldtinf far /* far ldt info array entry */ extern flinf_t *ldtinfo; /* ULINFO_SEL:0 */ #ifndef NOEXTGDT extern struct desctab gdt[]; #endif extern mloc_t mmupget(); extern mloc_t mmuget(); /* * LDTDESCR initializes an ldt entry */ #define LDTDESCR(sel, addr, limit, access) \ if (1) { \ int xacc = access; \ fdesc_t *_p = &ldt[sel/SELSZ]; \ _p->d_limit = limit; \ _p->d_paddr = addr; \ _p->d_acc = xacc; \ } else /* * GDTDESCR initialize"s a gdt entry */ #define GDTDESCR(sel, addr, limit, access) \ if (1) { \ int xacc = access; \ struct desctab *_p = &gdt[sel/SELSZ]; \ _p->d_limit = limit; \ _p->d_paddr = addr; \ _p->d_acc = xacc; \ } else #endif /* M_I286 */ #endif /* M_I386 */ zes an ldt entry */ #define LDTDESCR(sel, addr, limit, access) \ if (1) { \ int xacc = access; \ fdesc_t *_p = &ldt[sel/SELSZ]; \ _p->d_limit = limit; \ _p->d_paddr = addr; \ _p->d_acc = xacc; \ } else /* * GDTDESCR initialize"]./usr/include/sys/map.h&9 444 0 0 1617 4145160244 10145 "!/* * @(#) map.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE"NIX TO NEW HARDWARE. */ struct mapent { unsigned int m_size; unsigned int m_addr; }; struct map { unsigned int nwaiting; /* # of processes waiting for freed space from this map */ unsigned int ncells; /* max. number of entries allowed in this map */ struct mapent *mpent; /* pointer to the map entries */ }; #ifndef M_I386 extern struct map swapmap; #endif extern struct map coremap; IFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE"a./usr/include/sys/machdep.h$9 444 0 0 16457 4212307224 11015 "  /* * @(#) machdep.h 2.4 88/02/29 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987, 1988. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987, 1988. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Various machine dependent things */ /* PC/AT Floppy disk control */ #define FLIOC ('F'<<8) #define FLIOCFTRK (FLIOC|1) /* ioctl command to format a track */ #defi #6#ne FLIOCSIZE (FLIOC|2) /* ioctl command to get floppy size */ #define FLIOCPRT (FLIOC|3) /* ioctl command to turn on/off prtfs */ /* PC/AT Floppy tape control */ #define MTIO ('T' << 8) #define MTTENSION (MTIO | 1) /* tension the tape */ #define MTTAPE_STATUS (MTIO | 2) /* get tape status */ /* (see return values below) */ #define MTERASE_SERVO (MTIO | 3) /* erase the servo track */ #define MTWRITE_SERVO (MTIO | 4) /* write the servo track */ #define MTFORMAT_TRACK (MTIO | 5) /* format one ta#pe track */ #define MTBUILD_BTT (MTIO | 6) /* build the bad block table */ /* and return the number of */ /* good blocks */ #define MTCART_TYPE (MTIO | 7) /* cartridge type */ #define MTENABLE_BTT (MTIO | 8) /* enable bad track table */ #define MTDISABLE_BTT (MTIO | 9) /* disable bad track table */ #define MTENABLE_ECC (MTIO | 0xA) /* enable ecc */ #define MTDISABLE_ECC (MTIO | 0xB) /* disable ecc */ #define MTNUM_BB (MTIO | 0xC) /* change the number of bufs */ #define MTDC1000 (MTI#O | 0xD) #define MTDC2000 (MTIO | 0xE) /* Drive types: */ #define IRWIN_110 5 /* Irwin 10 M tape drive */ #define IRWIN_145 6 /* Irwin 40 M tape drive */ #define IRWIN_125 7 /* Irwin 20 M tape drive */ /* Magnetic tape, return values from MTTAPE_STATUS ioctl call: */ #define MTXENIX_TAPE (MTIO | 32) /* XENIX formatted tape */ #define MTNOT_XENIX_TAPE (MTIO | 33) /* formatted tape, not */ /* XENIX format */ #define MTNO_SERVO (MTIO | 34) /* no servo track on tape */ #define MTNOT_FORMATTED #e (MTIO | 35) /* servo track on tape, */ /* PC/AT Cga adapter control */ #define CGAIOC ('C' << 8) #define CGAMODE (CGAIOC | 1) /* change cga mode */ #define CGAIO (CGAIOC | 2) /* do inb/outb on cga port */ #define CGA_GET (CGAIOC | 3) /* get cga mode setting */ /* PC/AT Pga adapter control */ #define PGAIOC ('P' << 8) #define PGAMODE (PGAIOC | 1) /* change pga mode */ #define PGAIO (PGAIOC | 2) /* do inb/outb on pga port */ #define PGA_GET (PGAIOC | 3) /* get pga mode setting */ /* PC/AT Ega adapt#ner control */ #define EGAIOC ('E' << 8) #define EGAMODE (EGAIOC | 1) /* change ega mode */ #define EGAIO (EGAIOC | 2) /* do inb/outb on ega port */ #define EGA_GET (EGAIOC | 3) /* get ega mode setting */ #define EGA_IOPRIVL (EGAIOC | 4) /* get in/out privilege for ega ports */ /* PC/AT Mca adapter control */ #define MCAIOC ('M' << 8) #define MCAMODE (MCAIOC | 1) /* change mca mode */ #define MCAIO (MCAIOC | 2) /* do inb/outb on mca port */ #define MCA_GET (MCAIOC | 3) /* get mca mode setting */ /* H#dercules support */ #define SW_HGC_P0 (MODESWITCH | M_HGC_P0) #define SW_HGC_P1 (MODESWITCH | M_HGC_P1) /* Common PC/AT adapter control */ #include "comcrt.h" /* Defines for console-switching ioctl -- MONO, CGA, PGA, and EGA */ /* definitions are in comcrt.h */ #define SWAPCONS ('s' << 8) #define SWAPMONO (SWAPCONS | MONO) #define SWAPCGA (SWAPCONS | CGA) #define SWAPPGA (SWAPCONS | PGA) #define SWAPEGA (SWAPCONS | EGA) /* defines for mode-switching ioctl -- modes are defined in comcrt.h */ #a#define MODESWITCH ('S' << 8) #define SW_B40x25 (MODESWITCH | M_B40x25) #define SW_C40x25 (MODESWITCH | M_C40x25) #define SW_B80x25 (MODESWITCH | M_B80x25) #define SW_C80x25 (MODESWITCH | M_C80x25) #define SW_BG320 (MODESWITCH | M_BG320) #define SW_CG320 (MODESWITCH | M_CG320) #define SW_BG640 (MODESWITCH | M_BG640) #define SW_EGAMONO80x25 (MODESWITCH | M_EGAMONO80x25) #define SW_CG320_D (MODESWITCH | M_CG320_D) #define SW_CG640_E (MODESWITCH | M_CG640_E) #define SW_EGAMONOAPA (MODESWITCH | #yM_EGAMONOAPA) #define SW_CG640x350 (MODESWITCH | M_CG640x350) #define SW_ENH_MONOAPA2 (MODESWITCH | M_ENHMONOAPA2) #define SW_ENH_CG640 (MODESWITCH | M_ENH_CG640) #define SW_ENHB40x25 (MODESWITCH | M_ENH_B40x25) #define SW_ENHC40x25 (MODESWITCH | M_ENH_C40x25) #define SW_ENHB80x25 (MODESWITCH | M_ENH_B80x25) #define SW_ENHC80x25 (MODESWITCH | M_ENH_C80x25) #define SW_ENHB80x43 (MODESWITCH | M_ENH_B80x43) #define SW_ENHC80x43 (MODESWITCH | M_ENH_C80x43) #define SW_MCAMODE (MODESWITCH | M_MCA_MODE)# > /* defines for display memory mapping ioctl (see consioctl in console.c) */ #define MAPADAPTER ('m' << 8) #define MAPCONS (MAPADAPTER) #define MAPMONO (MAPADAPTER | MONO) #define MAPCGA (MAPADAPTER | CGA) #define MAPPGA (MAPADAPTER | PGA) #define MAPEGA (MAPADAPTER | EGA) #define MAPPGA1K (MAPADAPTER | 0xff) /* defines for ibm keyboard ioctls (see consioctl in console.c) */ #define FKEYIOC ('k' << 8) #define GETFKEY (FKEYIOC) #define SETFKEY (FKEYIOC | 1) #define TIOCKBON (TIOC|8) #define T ##IOCKBOF (TIOC|9) #define KBENABLED (TIOC|10) #ifndef _GRAPHICS #define _GRAPHICS #define SW_MCAMODE (MODESWITCH | M_MCA_MODE) #ifdef M_I386 #pragma pack(2) #endif /* structure used for SETFKEY and GETFKEY ioctls */ struct fkeyarg { unsigned short keynum; char keydef[MAXFK]; char flen; }; #ifdef M_I386 #pragma pack() #endif /* defines for ibm console ioctls (see consioctl in console.c) */ #define CONSIOC ('c' << 8) #define CONS_CURRENT (CONSIOC|1) #define CONS_GET (CONSIOC|2) /* defines#) for inb/outb ioctls for graphics adapter ports */ #define IN_ON_PORT 1 #define OUT_ON_PORT 0 #ifdef M_I386 #pragma pack(2) #endif /* structure used for inb/outb ioctls for graphics adapter ports */ struct port_io_struct { char dir; /* direction flag (in vs. out) */ unsigned short port; char data; }; struct port_io_arg { struct port_io_struct args[4]; }; #ifdef M_I386 #pragma pack() #endif #endif /* _GRAPHICS */ /* defines for Adaptec AHA-1540 ioctls */ #define ADIOC ('a'<<8) #define ADFORMAT (AD#IOC|1) /* format disk */ #define ADMODESELECT (ADIOC|2) /* issue mode select */ #define ADTEST (ADIOC|3) /* run diagnostics */ #define ADBADSEC (ADIOC|4) /* set bad sector */ #define ADTRACE (ADIOC|5) /* set diagnostic trace levels */ #define ADMODESENSE (ADIOC|6) /* issue mode sense */ #define ADBLOCKS (ADIOC|97) /* SNAP of blkno trace */ #define ADSNAPMB (ADIOC|98) /* SNAP of driver mailboxes */ #define ADSNAPCDB (ADIOC|99) /* SNAP of driver CDBs */ /* * Initalize clock constant for 50msec cl#ock interrupts. * Magic value to cause proper interrupt interval. * Assumes a 1.193181MHz clock input. (1193181 / HZ) */ #define CLKNUM 23864 /* * Various defines for 8259 special fully nested support */ /* Yes 3 is correct for certain systems running this kernel */ #define NUM_8259 3 /* number of 8259s on this system */ #define MAX8259 9 /* max number of 8259s possible */ #define MAXLEV 8 /* max interrupt levels on an 8259 */ #define MAXVEC 72 /* max vectors on fully cascaded system */ #defi#Qne HAS_REBOOT /* This system has a software reboot capability */ #define CTLR_16BIT /* This system has a device controller that cannot */ /* handle transfers across a 64k boundary. */ #define AUTOBOOT /* This system has autoboot support */ #define AUTOFLAG 0xbe11 /* 3rd argument to shutdn() */ r of 8259s on this system */ #define MAX8259 9 /* max number of 8259s possible */ #define MAXLEV 8 /* max interrupt levels on an 8259 */ #define MAXVEC 72 /* max vectors on fully cascaded system */ #defi#a./usr/include/sys/locking.h$9 444 0 0 3576 4145160243 11023 #/* * @(#) locking.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTIN#G XENIX TO NEW HARDWARE. */ /* * Flag values for locking system call (sys/sys/locking.c) */ #include "lockcmn.h" #define LK_UNLCK CMN_UNLCK /* unlock request */ #define LK_LOCK CMN_WRLCK /* lock request */ #ifdef M_I386 #define LK_NBLCK 20 /* non-blocking lock request */ #else #define LK_NBLCK 2 /* non-blocking lock request */ #endif #define LK_RLCK CMN_RDLCK /* read permitted only lock request */ #define LK_NBRLCK 4 /* non-blocking read only lock request */ #define LK_GETLK 5 /* V2 req# uest to find first blocking lock */ #define LK_SETLK 6 /* V2 non-blocking lock request */ #define LK_SETLKW 7 /* V2 blocking lock request */ #define LK_TESTLK 8 /* V2 request to test for locks */ #ifdef M_KERNEL struct locklist { /* NOTE: ll_link must be first in struct */ struct locklist *ll_link; /* link to next lock region */ ushort ll_flags; /* misc flags ** sleeping */ struct proc *ll_proc; /* process which owns region */ off_t ll_start; /* starting offset */ off_t ll_end; /* endin $$g offset, zero is eof */ }; extern struct locklist locklist[]; /* The lock table itself */ /* ll_flags */ #define LROLOCK 01 /* record is locked & is read only */ #define MAXLOCKSZ ((off_t) (1L << 30)) /* flags for the locked() routine. */ #define BLOCK 0x00 #define READCHK 0x01 #define NBLOCK 0x02 #define RDLOCK 0x04 #define TESTLK 0x08 #define GETLK 0x10 #endif eeping */ struct proc *ll_proc; /* process which owns region */ off_t ll_start; /* starting offset */ off_t ll_end; /* endin$_./usr/include/sys/lockcmn.h$ 444 0 0  730 4145160243 10770 $'/* * @(#) lockcmn.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Common lock type definitions. Included by locking.h and by * fcntl.h. */ #define CMN_UNLCK 0 #define CMN_WRLCK 1 #define CMN_RDLCK 3 GzS $]./usr/include/sys/lock.h&8 444 0 0 1245 4145160243 10314 $/* * @(#) lock.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X$ENIX TO NEW HARDWARE. */ /* * flags for locking procs and texts */ #define UNLOCK 0 #define PROCLOCK 1 #define TXTLOCK 2 #define DATLOCK 4 #define HUGELOCK 8 * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X$/]./usr/include/sys/kmon.h&8 444 0 0 1654 4145160242 10333 $'/* * @(#) kmon.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Monitor buffer starts with the following structure: */ struct monhdr { int (far *mh_lowpc)(); /* lowest address */ int (far *mh_highpc)(); /* highest address */ unsigned shor$ t mh_nfunc; /* number of procedures */ }; /* * and is followed by an array of monhdr->mh_nfunc of: */ struct mon { long m_count; /* number of invocations */ int (far *m_proc)(); /* procedure address */ }; /* * and then by an array of shorts. */ /* * definitions for kernel monitor control */ #define KMON 1 #define KMON_ON 64 #define KMON_OFF 65 #define KMON_DUMP 66 #define KMON_RESET 67 #define KMON_TEST 68 /* lowest address */ int (far *mh_highpc)(); /* highest address */ unsigned shor $$1a./usr/include/sys/keyboard.h$8 444 0 0 6436 4145160260 11172 $/* * @(#) keyboard.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * User level include file for: * PC monitor keyboard related defines and variables. * */ #define NUM_KEYS 256 /* Max number of possible physical keys */ #define NUM_STATES 8 $7/* Number of key states */ #define NFKEYS 96 #define NUM_KEYS_21 111 /* Max number of keys under 2.1.x */ #define MIOC ('k' << 8) /* GET/SET FKEY in machdep.h are (MIOC|0) and (MIOC|1) */ /* GIO/PIO _SCRNMAP in console.h are (MIOC|2) and (MIOC|3) */ #define GIO_STRMAP_21 (MIOC|4) /* Get 2.1 function key string table */ #define PIO_STRMAP_21 (MIOC|5) /* Put 2.1 function key string table */ #define GIO_KEYMAP (MIOC|6) /* Get keyboard map table */ #define PIO_KEYMAP (MIOC|7) /* Put keyboard map table */ $ #define GIO_KEYMAP_21 (MIOC|8) /* Get 2.1 keyboard map table */ #define PIO_KEYMAP_21 (MIOC|9) /* Put 2.1 keyboard map table */ #define SETLOCKLOCK (MIOC|10) /* global cap/num lock on/off */ #define GIO_STRMAP (MIOC|11) /* Get function key string table */ #define PIO_STRMAP (MIOC|12) /* Put function key string table */ /* typedef unsigned char keymap_t[NUM_KEYS+1][NUM_STATES]; */ #ifdef M_I386 #pragma pack(2) #endif typedef struct { short n_keys ; struct key_t { unsigned char map[NUM_STATES]; $< unsigned char spcl; unsigned char flgs; } key[NUM_KEYS+1]; } keymap_t; #ifdef M_I386 #pragma pack() #endif /* key map table flags */ #define KMF_CLOCK 0x01 /* affected by caps lock */ #define KMF_NLOCK 0x02 /* affected by num lock */ #define L_O 0 #define L_C 1 #define L_N 2 #define L_B 3 #define NORMAL 0 #define SHIFT 1 #define CTRL 2 #define SHFCTL 3 #define ALT 4 #define ALTSHF 5 #define ALTCTL 6 #define ALTSHFCTL 7 /** * Special range macros and keys ***/ #d$efine IS_SPECIAL(c,i) ( cnkeymap.key[(c)].spcl & (0x80>>(i)) ) #define K_NOP 0 /* Keys with no function */ #define K_LSH 2 /* Left shift */ #define K_RSH 3 /* Right shift */ #define K_CLK 4 /* Caps lock */ #define K_NLK 5 /* Num lock */ #define K_SLK 6 /* Scroll lock */ #define K_BTAB 8 /* Back tab */ #define K_ALT 7 /* Alt */ #define K_CTL 9 /* Control */ #define K_NXSC 10 /* Switch to next screen */ #define K_SCRF 11 /* Switch to first screen */ #define K_SCRL 26 /* Switch to last screen */ #define K_FUN$KF 27 /* First function key */ #define K_FUNL 122 /* Last function key */ /**** Expanded function and screen key macros ***/ #define NSTRKEYS (K_FUNL-K_FUNF+1) #define STRTABLN_21 256 /* max length of the sum of all strings */ #define STRTABLN 512 /* max length of the sum of all strings */ #define FKEYSTART 0 /* The F1 key is string key #0 */ #define IS_SCRKEY(x) ( ((x) >n= K_SCRF) && ((x) <= K_SCRL) ) #define IS_FUNKEY(x) ( ((x) >= K_FUNF) && ((x) <= K_FUNL) ) typedef unsigned c$ghar strmap_t[STRTABLN]; /*** Special system scan codes **/ #define KBD_OVERRUN -1 /* keyboard imput data queue has been overrun */ #define KBD_BREAK 0x4000 /* key make/break flag (make=0/break=1) */ #define KBD_SCMASK 0xff /* scan code mask */ h of the sum of all strings */ #define FKEYSTART 0 /* The F1 key is string key #0 */ #define IS_SCRKEY(x) ( ((x) >= K_SCRF) && ((x) <= K_SCRL) ) #define IS_FUNKEY(x) ( ((x) >= K_FUNF) && ((x) <= K_FUNL) ) typedef unsigned c$ ]./usr/include/sys/ipc.h&9 444 0 0 2367 4145160242 10144  %% /* * @(#) ipc.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80286 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Common IPC Access Structure */% struct ipc_perm { ushort uid; /* owner's user id */ ushort gid; /* owner's group id */ ushort cuid; /* creator's user id */ ushort cgid; /* creator's group id */ ushort mode; /* access modes */ ushort seq; /* slot usage sequence number */ key_t key; /* key */ }; /* Common IPC Definitions. */ /* Mode bits. */ #define IPC_ALLOC 0100000 /* entry currently allocated */ #define IPC_CREAT 0001000 /* create entry if key doesn't exist */ #define IPC_EXCL 0002000 /* fail if key exists */ #define IPC_NOWA%IT 0004000 /* error if request must wait */ /* Keys. */ #define IPC_PRIVATE (key_t)0 /* private key */ /* Control Commands. */ #define IPC_RMID 0 /* remove identifier */ #define IPC_SET 1 /* set options */ #define IPC_STAT 2 /* get options */ key_t key; /* key */ }; /* Common IPC Definitions. */ /* Mode bits. */ #define IPC_ALLOC 0100000 /* entry currently allocated */ #define IPC_CREAT 0001000 /* create entry if key doesn't exist */ #define IPC_EXCL 0002000 /* fail if key exists */ #define IPC_NOWA% _./usr/include/sys/ioctl.h%9 444 0 0 4131 4145160242 10472 %`/* * @(#) ioctl.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING %XENIX TO NEW HARDWARE. */ #define IOCTYPE 0xff00 #define TIOC ('T'<<8) #define TCGETA (TIOC|1) #define TCSETA (TIOC|2) #define TCSETAW (TIOC|3) #define TCSETAF (TIOC|4) #define TCSBRK (TIOC|5) #define TCXONC (TIOC|6) #define TCFLSH (TIOC|7) #define TCDSET (TIOC|32) #include "machdep.h" #define LDIOC ('D'<<8) #define LDOPEN (LDIOC|0) #define LDCLOSE (LDIOC|1) #define LDCHG (LDIOC|2) #define tIOC ('t'<<8) #define TIOCGETD (tIOC|0) /* V7 */ #define TIOCSETD (tIOC|1)  %W /* V7 */ #define TIOCHPCL (tIOC|2) /* V7 */ #define TIOCGETP (tIOC|8) #define TIOCSETP (tIOC|9) #define TIOCSETN (tIOC|10)  /* V7 */ #define TIOCEXCL (tIOC|13)  /* V7 */ #define TIOCNXCL (tIOC|14) + /* V7 */ #define TIOCFLUSH (tIOC|16)  /* V7 */ #define TIOCSETC (tIOC|17)  /* V7 */ #define TIOCGETC (tIOC|18) ) /* V7 */ #define LIOC ('l'<<8) #define %LIOCGETP (LIOC|1) #define LIOCSETP (LIOC|2) #define LIOCGETS (LIOC|5) #define LIOCSETS (LIOC|6) #define DIOC ('d'<<8) #define DIOCGETC (DIOC|1) #define DIOCGETB (DIOC|2) #define DIOCSETE (DIOC|3) #define DIOCGETP (DIOC|8) /* V7 */ #define DIOCSETP (DIOC|9) /* V7 */ #define VPM ('V'<<8) #define VPMCMD (VPM|8) #define VPMERRS (VPM|9) #define VPMRPT (VPM|10) #define VPMTRCO (VPM|16) #define FIOCLEX (('f'<<8)|1) /* V7 */ #define FIONCLEX (%  ('f'<<8)|2) /* V7 */ #define FIORDCHK (('f'<<8)|3) /* V7 */ IOC|6) #define DIOC ('d'<<8) #define DIOCGETC (DIOC|1) #define DIOCGETB (DIOC|2) #define DIOCSETE (DIOC|3) #define DIOCGETP (DIOC|8) /* V7 */ #define DIOCSETP (DIOC|9) /* V7 */ #define VPM ('V'<<8) #define VPMCMD (VPM|8) #define VPMERRS (VPM|9) #define VPMRPT (VPM|10) #define VPMTRCO (VPM|16) #define FIOCLEX (('f'<<8)|1) /* V7 */ #define FIONCLEX ( %%_./usr/include/sys/iobuf.h%9 444 0 0 3472 4145160242 10473 %/* * @(#) iobuf.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING %%XENIX TO NEW HARDWARE. */ /* * Each block device has a iobuf, which contains private state stuff * and 2 list heads: the b_forw/b_back list, which is doubly linked * and has all the buffers currently associated with that major * device; and the d_actf/d_actl list, which is private to the * device but in fact is always used for the head and tail * of the I/O queue for the device. * Various routines in bio.c look at b_forw/b_back * (notice they are the same as in the buf structure) * but the rest i%s private to each device driver. */ struct iobuf { int b_flags; /* see buf.h */ struct buf *b_forw; /* first buffer for this dev */ struct buf *b_back; /* last buffer for this dev */ struct buf *b_actf; /* head of I/O queue */ struct buf *b_actl; /* tail of I/O queue */ dev_t b_dev; /* major+minor device name */ char b_active; /* busy flag */ char b_errcnt; /* error count (for recovery) */ physadr io_addr; /* csr address */ int io_s1; /* space for drivers to leave things */ int io_s%4F2; /* space for drivers to leave things */ }; #define tabinit(dv) {0, makedev(dv,0),0} #define NDEVREG (sizeof(struct device)/sizeof(int)) #define B_ONCE 01 /* flag for once only driver operations */ #define B_TAPE 02 /* this is a magtape (no bdwrite) */ #define B_TIME 04 /* for timeout use */ device name */ char b_active; /* busy flag */ char b_errcnt; /* error count (for recovery) */ physadr io_addr; /* csr address */ int io_s1; /* space for drivers to leave things */ int io_s%_./usr/include/sys/inode.h%9 444 0 0 13030 4145160241 10473 %D/* * @(#) inode.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING %XENIX TO NEW HARDWARE. */ /* * The I node is the focus of all * file activity in unix. There is a unique * inode allocated for each active file, * each current directory, each mounted-on * file, text file, and the root. An inode is 'named' * by its dev/inumber pair. (iget/iget.c) * Data, from mode on, is read in * from permanent inode on volume. */ #define NADDR 13 #define NSADDR (NADDR*sizeof(daddr_t)/sizeof(short)) /* file dependent part for named files */ struct iisem {  /* se% maphore */ int i_scount; 0 /* current semaphore count */ int i_eflag; "/* err flg */ filep_t i_headw; ( /* first waiter */ filep_t i_tailw; $ /* last waiter */ }; struct iisd { %/* shared data */ mloc_t i_buf; 0/* address of kernel copy */ long i_len; A/* limit (size (in bytes) - 1) of segment */ int i_vnum; * /* version number */ int i_snum; + /* serial # for getv, waitv */ int && i_flags; (/* LOCKED, etc. */ short i_daddr; /* swap (disk) address of shared segment */ char i_ccount; /* number of loaded references */ #ifdef M_I386 struct tabent *i_sdpt; /* pointer to shared data page table */ ushort i_sdlocks; /* # of procs locking this sd seg intuo core */ #endif /* M_I386 */ char i_res; /* reserved -- used for word alignment */ ushort i_cuid; - /* SysV, creator uid */ ushort i_cgid; /* SysV, cre& ator gid */ ushort i_cpid; - /* SysV, creator pid */ ushort i_lpid; 8 /* SysV, pid of last operation */ time_t i_ctime; 5/* SysV, time of last change */ time_t i_atime; 5/* SysV, time of last attach */ time_t i_dtime; /* SysV, time of last detach */ }; struct iirem { /* DSA */ unsigned i_vcid; /* location of remote file */ unsigned i_pte_p; /* ???? */ int i_typ; /* type of the remote file */ int i_fid; /&"* id of the remote file */ int i_bid; /* bind id on remote sys */ int i_tid; /* tree connect id */ char (*i_gchar)(); /* function passed to nfc_nami */ long i_path; /* path name */ unsigned i_remres[10]; /* reserved for future use */ }; struct inode { char i_flag; cnt_t i_count; /* reference count */ dev_t i_dev; /* device where inode resides */ ino_t i_number; /* i number, 1-to-1 with device address */ ushort i_mode; short i_nl&ink; /* directory entries */ ushort i_uid; /* owner */ ushort i_gid; /* group of owner */ off_t i_size; /* size of file */ union { 0 /* file type dependent section */ struct { /* files which have data blocks */ union { daddr_t i_a[NADDR]; /* if normal file/directory */ short i_f[NSADDR]; /* if fifio's */ } i_p; daddr_t i_l; K/* last logical block read (for read-ahead) */ } i_blks; struct { /* name type& files */ long i_type; union { struct iisem i_sem; struct iisd i_sd; struct iirem i_rem; /* DSA */ } i_ndata; } i_namef; } i_fdep; struct locklist *i_locklist; /* locked region list */ }; #if M_I8086 || M_I286 extern struct inode far inode[]; /* The inode table itself */ #else extern struct inode inode[]; /* The inode table itself */ #endif /* flags */ #define ILOCK 01 /* inode is locked */ #define IUPD 02 /* file has been modified */ #define IACC 04 /* inode a&Nccess time to be updated */ #define IMOUNT 010 /* inode is mounted on */ #define IWANT 020 /* some process waiting on lock */ #define ITEXT 040 /* inode is pure text prototype */ #define ICHG 0100 /* inode has been changed */ /* modes */ #define IFMT 0170000 /* type of file */ #define IFDIR 0040000 /* directory */ #define IFCHR 0020000 /* character special */ #define IFBLK 0060000 /* block special */ #define IFREG 0100000 /* regular */ #define IFMPC 0030000 /* multiplexed char special */ #define &Z IFMPB 0070000 /* multiplexed block special */ #define IFIFO 0010000 /* fifo special */ #define IFNAM 0050000 /* name special */ #define ISUID 04000 /* set user id on execution */ #define ISGID 02000 /* set group id on execution */ #define ISVTX 01000 /* save swapped text even after use */ #define IREAD 0400 /* read, write, execute permissions */ #define IWRITE 0200 #define IEXEC 0100 #define i_addr i_fdep.i_blks.i_p.i_a #define i_lastr i_fdep.i_blks.i_l #define i_rdev i_fdep.i_blks.i_p.i_&a[0] #define i_faddr i_fdep.i_blks.i_p.i_a #define NFADDR 10 #define PIPSIZ NFADDR*BSIZE #define i_frptr i_fdep.i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_fdep.i_blks.i_p.i_f[NSADDR-4] #define i_frcnt i_fdep.i_blks.i_p.i_f[NSADDR-3] #define i_fwcnt i_fdep.i_blks.i_p.i_f[NSADDR-2] #define i_fflag i_fdep.i_blks.i_p.i_f[NSADDR-1] #define IFIR 01 #define IFIW 02 /* types for IFNAM type files */ #define IFSEM 1L '/* semaphore type */ #define IFSHD 2L /* shared data */ #define IFREM& z 3L /* Remote inode */ fdep.i_blks.i_p.i_a #define NFADDR 10 #define PIPSIZ NFADDR*BSIZE #define i_frptr i_fdep.i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_fdep.i_blks.i_p.i_f[NSADDR-4] #define i_frcnt i_fdep.i_blks.i_p.i_f[NSADDR-3] #define i_fwcnt i_fdep.i_blks.i_p.i_f[NSADDR-2] #define i_fflag i_fdep.i_blks.i_p.i_f[NSADDR-1] #define IFIR 01 #define IFIW 02 /* types for IFNAM type files */ #define IFSEM 1L '/* semaphore type */ #define IFSHD 2L /* shared data */ #define IFREM & &M]./usr/include/sys/ino.h&9 444 0 0 2121 4145160241 10141 &/* * @(#) ino.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE&NIX TO NEW HARDWARE. */ /* Inode structure as it appears on a disk block. */ struct dinode { ushort di_mode; /* mode and type of file */ short di_nlink; /* number of links to file */ ushort di_uid; /* owner's user id */ ushort di_gid; /* owner's group id */ off_t di_size; /* number of bytes in file */ char di_addr[40]; /* disk block addresses */ time_t di_atime; /* time last accessed */ time_t di_mtime; /* time last modified */ time_t di_ctime; /* time created */& }; /* * the 40 address bytes: * 39 used; 13 addresses * of 3 bytes each. */ truct dinode { ushort di_mode; /* mode and type of file */ short di_nlink; /* number of links to file */ ushort di_uid; /* owner's user id */ ushort di_gid; /* owner's group id */ off_t di_size; /* number of bytes in file */ char di_addr[40]; /* disk block addresses */ time_t di_atime; /* time last accessed */ time_t di_mtime; /* time last modified */ time_t di_ctime; /* time created */&]./usr/include/sys/init.h&8 444 0 0 2245 4145160241 10326 & /* * @(#) init.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ extern int clkstart(),cinit(),binit(),errinit(),iinit(),inoinit(), clkinit(); #ifdef X25_0 extern x25init(); #endif #ifdef BX25S_0 extern bxncinit(); extern sessinit(); #endif #ifdef ST_0& extern stinit(); #endif #ifdef VPM_0 extern vpminit(); #endif #ifdef EM_0 extern eminit(); #endif /* Array containing the addresses of the various initializing */ /* routines executed by "main" at boot time. */ /* Note that dfinit must be called after open(swapdev) done in iinit() */ int (*init_tbl[])() = { clkinit, cinit, binit, #ifdef ERR errinit, #endif iinit, #ifdef VPM_0 vpminit, #endif #ifdef X25_0 x25init, #endif #ifdef ST_0 stinit, #endif #ifdef BX25S_0 bxncinit, sessin&it, #endif #ifdef EM_0 eminit, #endif meminit, /* all calls to memget must precede this call */ /* all calls to mfalloc must follow this call */ dfinit, 0 }; /* routines executed by "main" at boot time. */ /* Note that dfinit must be called after open(swapdev) done in iinit() */ int (*init_tbl[])() = { clkinit, cinit, binit, #ifdef ERR errinit, #endif iinit, #ifdef VPM_0 vpminit, #endif #ifdef X25_0 x25init, #endif #ifdef ST_0 stinit, #endif #ifdef BX25S_0 bxncinit, sessin& 4_./usr/include/sys/i8259.h%9 444 0 0 4310 4145160263 10142  ''/* * @(#) i8259.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * GENERIC 286 COMPUTER AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * i8259.h * definition's for interrupt control system on the 286. * */ /* * PIC Initialization Constants * constants for ICW1 are defined in oem.c */ #define PIC_VECT_BASE 0x40 /* start vectors at 64 */ #define PIC_SPF_MODE 0x10 /* special fully nested mode */ #define PIC_SLAVE_BUF 0x08 /* buffered mode, slave */ #define PIC_MASTER_BUF 0x0C /* buffered mode, master */ #define PIC_AUTO_EOI 0x02 /* set to auto eoi */ #define PIC_86_MODE 0x01 /* MCS 86 mode */ #define PIC_SINGLE 0x02 /* icw1 ( no cascade mode ) */ /' * * PIC commands */ #define PIC_EOI 0x20 /* Non-specific EOI command */ #define PIC_SEOI 0x60 /* Specific EOI command */ #define PIC_SET_PRI 0xC0 /* Set priority command */ #define PIC_ISR_READ 0x0B /* Select ISR for input */ #define PIC_IRR_READ 0x0A /* Select IRR for input */ /* * Generate masks to turn on/off a given level. * PIC_MASK: bit(i) = 1 ==> masked; 0 ==> enabled. */ #define PIC_MON(i) (0xFF & ~(1<<(i))) #define PIC_MOFF(i) (1<<(i)) /* * define master & slave levels * encoding fo'r master levels * lev = master# * encoding for slave levels * lev = (master# + 1) * 8 + slave# * * or, * 7 6 5 4 3 2 1 0 * --,- * | pic index | active lev | * --- */ #define PIC_ML0 0 #define PIC_ML1 1 #define PIC_ML2 2 #define PIC_ML3 3 #define PIC_ML4 4 #define PIC_ML5 5 #define PIC_ML6 6 #define PIC_ML7 7 #define PIC_MCL0 8 #define PIC_MCL1 16 #define PIC_MCL2 24 #define PIC_MCL3 32 #define PIC_MCL4 40 #def'ine PIC_MCL5 48 #define PIC_MCL6 56 #define PIC_MCL7 64 #define PIC_SL0 0 #define PIC_SL1 1 #define PIC_SL2 2 #define PIC_SL3 3 #define PIC_SL4 4 #define PIC_SL5 5 #define PIC_SL6 6 #define PIC_SL7 7 ex | active lev | * --- */ #define PIC_ML0 0 #define PIC_ML1 1 #define PIC_ML2 2 #define PIC_ML3 3 #define PIC_ML4 4 #define PIC_ML5 5 #define PIC_ML6 6 #define PIC_ML7 7 #define PIC_MCL0 8 #define PIC_MCL1 16 #define PIC_MCL2 24 #define PIC_MCL3 32 #define PIC_MCL4 40 #def'_./usr/include/sys/filsys.h%8 444 0 0 4424 4145160240 10674 '/* * @(#) filsys.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING' XENIX TO NEW HARDWARE. */ /* * Structure of the super-block */ #ifdef M_I386 #pragma pack(2) #endif struct filsys { ushort s_isize; /* size in blocks of i-list */ daddr_t s_fsize; /* size in blocks of entire volume */ short s_nfree; /* number of addresses in s_free */ daddr_t s_free[NICFREE]; /* free block list */ short s_ninode; /* number of i-nodes in s_inode */ ino_t s_inode[NICINOD]; /* free i-node list */ char s_flock; /* lock during free list manipulation */ char s_ilock; /* lock during'  i-list manipulation */ char s_fmod; /* super block modified flag */ char s_ronly; /* mounted read-only flag */ time_t s_time; /* last super block update */ daddr_t s_tfree; /* total free blocks*/ ino_t s_tinode; /* total free inodes */ short s_dinfo[4]; /* device information */ char s_fname[6]; /* file system name */ char s_fpack[6]; /* file system pack name */ /* remainder is maintained for xenix */ char s_clean; /* S_CLEAN if structure is properly closed */ char s_fill[NSBFI ''zLL];/* space to make sizeof filsys be BSIZE */ long s_magic; /* indicates version of filsys */ long s_type; /* type of new file system */ }; #ifdef M_I386 #pragma pack() #endif #define S_CLEAN 0106 /* arbitrary magic value */ /* s_magic, magic value for file system version */ #define S_S3MAGIC 0x2b5544 /* system 3 arbitrary magic value */ /* s_type, block size of file system */ #define S_B512 1 /* 512 byte block */ #define S_B1024 2 /* 1024 byte block */ /* codes for file system 'version (for utilities) */ #define S_V2 1 /* version 7 */ #define S_V3 2 /* system 3 */ #ifdef M_KERNEL /* a pointer to a struct filsys */ #ifdef M_I386 typedef struct filsys *filsysp_t; #else typedef struct filsys far *filsysp_t; #endif extern filsysp_t getfs(); #endif r file system version */ #define S_S3MAGIC 0x2b5544 /* system 3 arbitrary magic value */ /* s_type, block size of file system */ #define S_B512 1 /* 512 byte block */ #define S_B1024 2 /* 1024 byte block */ /* codes for file system ']./usr/include/sys/file.h&8 444 0 0 2744 4145160240 10305 '/* * @(#) file.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X'%ENIX TO NEW HARDWARE. */ /* * One file structure is allocated for each open/creat/pipe call. * Main use is to hold the read/write pointer associated with * each open file. */ struct file { char f_flag; char f_res; /* reserved field to word align */ ushort f_count; /* reference count */ inodep_t f_inode; /* pointer to inode structure */ union { off_t f_off; /* read/write character pointer */ filep_t f_slnk; /* next waiter for semaphore */ } f_un; }; #define f_offset f_un.f_off #if M_I808'6 || M_I286 extern struct file far file[]; /* The file table itself */ #else extern struct file file[]; /* The file table itself */ #endif /* flags */ #define FOPEN (-1) #define FREAD 00001 #define FWRITE 00002 #define FNDELAY 00004 #define FAPPEND 00010 #ifdef M_I386 #define FSYNC 00020 #define OFSYNC 0100 /* for 286 compatibility */ #else #define FSYNC 0100 #endif #define FMASK 00377 /* open only modes */ #define FCREAT 00400 #define FTRUNC 01000 #define FEXCL 02000 ffset f_un.f_off #if M_I808'_./usr/include/sys/fcntl.h%9 444 0 0 3247 4145160240 10473 'b/* * @(#) fcntl.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #include "lockcmn.h" /* Flag values accessible to open(2) and fcntl(2) */ /* (The first three can only be set by open) */ #define O_RDONLY 0000 #define O_WRONLY 0001 #define O_RDWR 00' 02 #define O_NDELAY 0004 /* Non-blocking I/O */ #define O_APPEND 0010 /* append (writes guaranteed at the end) */ #ifdef M_I386 #define O_SYNCW 0020 /* synchronous write option */ #else #define O_SYNCW 0100 #endif /* Flag values accessible only to open(2) */ #define O_CREAT 00400 /* open with file create (uses third open arg)*/ #define O_TRUNC 01000 /* open with truncation */ #define O_EXCL 02000 /* exclusive open */ /* fcntl(2) requests */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* G ((et fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags */ #define F_SETFL 4 /* Set file flags */ #define F_GETLK 5 /* Get first blocking lock */ #define F_SETLK 6 /* Non-blocking lock */ #define F_SETLKW 7 /* Blocking lock */ #define F_RDLCK CMN_RDLCK /* same as LK_RLCK in locking.h */ #define F_WRLCK CMN_WRLCK /* same as LK_LOCK in locking.h */ #define F_UNLCK CMN_UNLCK /* same as LK_UNLCK in locking.h */ /* Flock structure used for System V fcntl(). */ struct( flock { short l_type; short l_whence; long l_start; long l_len; #ifdef M_I386 short l_sysid; short l_pid; #else short l_pid; short l_sysid; #endif }; st blocking lock */ #define F_SETLK 6 /* Non-blocking lock */ #define F_SETLKW 7 /* Blocking lock */ #define F_RDLCK CMN_RDLCK /* same as LK_RLCK in locking.h */ #define F_WRLCK CMN_WRLCK /* same as LK_LOCK in locking.h */ #define F_UNLCK CMN_UNLCK /* same as LK_UNLCK in locking.h */ /* Flock structure used for System V fcntl(). */ struct(]./usr/include/sys/fblk.h&8 444 0 0 1243 4145160236 10302 (/* * @(#) fblk.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X(ENIX TO NEW HARDWARE. */ #ifdef M_I386 #pragma pack(2) #endif struct fblk { short df_nfree; daddr_t df_free[NICFREE]; }; #ifdef M_I386 #pragma pack() #endif 7. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X(0_./usr/include/sys/errno.h%9 444 0 0 11257 4145160236 10537 (/* * @(#) errno.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Error codes */ #define EPERM 1 /* Not super-user */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* interrupted sys(tem call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No children */ #define EAGAIN 11 /* No more processes */ #define ENOMEM 12 /* Not enough core */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Mount device bu( Ksy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on (r( device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math arg out of domain of func */ #define ERANGE 34 /* Math result not representable */ #ifdef M_I386 #define ENOMSG 35 /* No message of desired type */ #define EIDRM 36 /* Identifier removed */ #define ECHRNG 37 /* Channel number out of range */ #define EL2NSYNC 38 /* Level 2 not synchronized */ #define EL3H(gLT 39 /* Level 3 halted */ #define EL3RST 40 /* Level 3 reset */ #define ELNRNG 41 /* Link number out of range */ #define EUNATCH 42 /* Protocol driver not attached */ #define ENOCSI 43 /* No CSI structure available */ #define EL2HLT 44 /* Level 2 halted */ #define EDEADLK 45 /* Deadlock condition. */ #define ENOLCK 46 /* No record locks available. */ /* Convergent Error Returns */ #define EBADE 50 /* invalid exchange */ #define EBADR 51 /* invalid request descriptor */ #define EXFULL 52 /* (exchange full */ #define ENOANO 53 /* no anode */ #define EBADRQC 54 /* invalid request code */ #define EBADSLT 55 /* invalid slot */ #define EDEADLOCK 56 /* file locking deadlock error */ #define EBFONT 57 /* bad font file fmt */ /* stream problems */ #define ENOSTR 60 /* Device not a stream */ #define ENODATA 61 /* no data (for no delay io) */ #define ETIME 62 /* timer expired */ #define ENOSR 63 /* out of streams resources */ #define ENONET 64 /* Machine is not on the network */ #de('fine ENOPKG 65 /* Package not installed */ #define EREMOTE 66 /* The object is remote */ #define ENOLINK 67 /* the link has been severed */ #define EADV 68 /* advertise error */ #define ESRMNT 69 /* srmount error */ #define ECOMM 70 /* Communication error on send */ #define EPROTO 71 /* Protocol error */ #define EMULTIHOP 74 /* multihop attempted */ #define ELBIN 75 /* Inode is remote (not really error)*/ #define EDOTDOT 76 /* Cross mount point (not really error)*/ #define EBADMSG 77 /*(* trying to read unreadable message */ #define ENOTUNIQ 80 /* given log. name not unique */ #define EBADFD 81 /* f.d. invalid for this operation */ #define EREMCHG 82 /* Remote address changed */ /* shared library problems */ #define ELIBACC 83 /* Can't access a needed shared lib. */ #define ELIBBAD 84 /* Accessing a corrupted shared lib. */ #define ELIBSCN 85 /* .lib section in a.out corrupted. */ #define ELIBMAX 86 /* Attempting to link in too many libs. */ #define ELIBEXEC 87 /* Attempting to exec a s(hared library. */ /* MS */ #define EUCLEAN 135 /* File system needs cleaning */ #define ENOTNAM 137 /* Not a name file */ #define ENAVAIL 138 /* Not available */ #define EISNAM 139 /* Is a name file */ #define EREMOTEIO 140 #define EINIT 141 #define EREMDEV 142 #else /* M_I286, ... */ #define EUCLEAN 35 /* File system needs cleaning */ #define EDEADLOCK 36 /* Would deadlock */ #define EDEADLK EDEADLOCK /* Would deadlock */ #define ENOTNAM 37 /* Not a name file */ #define ENAVAIL 38 /* Not av(ailable */ #define EISNAM 39 /* Is a name file */ #define EREMOTEIO 40 #define EINIT 41 #define EREMDEV 42 #define ENOMSG 43 #define EIDRM 44 #define ENOLCK 45 #endif e EISNAM 139 /* Is a name file */ #define EREMOTEIO 140 #define EINIT 141 #define EREMDEV 142 #else /* M_I286, ... */ #define EUCLEAN 35 /* File system needs cleaning */ #define EDEADLOCK 36 /* Would deadlock */ #define EDEADLK EDEADLOCK /* Would deadlock */ #define ENOTNAM 37 /* Not a name file */ #define ENAVAIL 38 /* Not av(u]./usr/include/sys/emap.h&8 444 0 0 4402 4145160262 10305 ( /* * @(#) emap.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* Channel mapping ioctl's */ /* LDIOC ('D'<< 8) */ /* defined in termio.h */ #define LDSMAP (LDIOC|10) #define LDGMAP (LDIOC|11) #define LDNMAP (LDIOC|12) /* Emapping state (t_mstate) )l)F*/ #define ES_NULL 0 /* Mapping not enabled */ #define ES_START 1 /* Base mapping state */ #define ES_DEAD 2 /* Dead key received */ #define ES_COMP1 3 /* Compose key received */ #define ES_COMP2 4 /* Compose and 1st following keys received */ #ifdef M_I386 typedef struct emtab *emp_t; typedef struct emind *emip_t; typedef struct emout *emop_t; typedef unsigned char *emcp_t; #else typedef struct emtab far *emp_t; typedef struct emind far *emip_t; typedef struct emout far *emop_t; typedef unsigned char fa)r *emcp_t; #endif extern emcp_t emmapout(); /* Emap control structure */ struct emap { emp_t e_p; /* ptr to mapping tables struct */ struct buf *e_bp; /* buf hdr for mapping tables */ short e_count; /* use count */ short e_ndind; /* number of dead indexes */ short e_ncind; /* number of compose indexes */ short e_nsind; /* number of string indexes */ }; extern struct emap emap[]; /* allocated in space.h */ /* Emapping tables structures */ struct emind { unsigned char e_key; unsigned cha)r e_ind; }; struct emout { unsigned char e_key; unsigned char e_out; }; struct emtab { unsigned char e_imap[256]; /* 8-bit input map */ unsigned char e_omap[256]; /* 8-bit output map */ unsigned char e_comp; /* compose key */ unsigned char e_beep; /* beep on error flag */ short e_cind; /* offset of compose indexes */ short e_dctab; /* offset of dead/compose table */ short e_sind; /* offset of string indexes */ short e_stab; /* offset of string table */ struct emind e_dind[1]; /* start)J of dead key indexes */ }; #define E_TABSZ 1024 /* size of an emtab */ #if BSIZE < E_TABSZ ERROR ****))))) /* a buf must hold an emtab */ #endif #define E_DIND (STRUCTOFF(emtab, e_dind[0])) #define E_ESC '\0' /* key maps to dead/compose/string */ /* beep on error flag */ short e_cind; /* offset of compose indexes */ short e_dctab; /* offset of dead/compose table */ short e_sind; /* offset of string indexes */ short e_stab; /* offset of string table */ struct emind e_dind[1]; /* start)[./usr/include/sys/eio.h& 444 0 0  742 4145160262 10122 ) /* * @(#) eio.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * Error driver constants */ /* ioctl commands */ #define EMSG_NOSIG 0 /* disable signals */ #define EMSG_SIG 1 /* signal process when msg arrives */ 0U )1]./usr/include/sys/dio.h&9 444 0 0 12614 4145160236 10163 )~/* * @(#) dio.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * header file for sco standard bad track scheme */ /* * minor device number macros */ #define dmask(x) ((1 << (x)) - 1) #define dphys(ptr,x) (((unsigned)(x) >> ( 8 - () ڟrptr)->physbits)) & \ dmask((ptr)->physbits)) #define dlog(ptr,x) (((unsigned)(x) >> (ptr)->partbits) & \  Cdmask((ptr)->logbits)) #define dpart(ptr,x) ((unsigned)(x) & \  bdmask((ptr)->partbits)) #define dmkdev(ptr,d,l,p) (((unsigned)(d) << (8 - (ptr)->physbits)) | \  '((unsigned)(l) << (ptr)->partbits) | \  F((unsigned)(p))) /* * ioctl interface */ #define DIO ('D'<<8) #def ))@ine DIOGETP (DIO|1) /* get disk parameters */ #define DIOSETP (DIO|2) /* set disk parameters */ #define DIORPART (DIO|3) /* read partition table */ #define DIOWPART (DIO|4) /* write partition table */ #define DIORBTRK (DIO|5) /* read bad track tablee - fails in 2.2*/ #define DIOWBTRK (DIO|6) /* write bad track table -fails in 2.2*/ #define DIOBITP  (DIO|7) ) /* get bit parameters */ #define DIORVDT  (DIO|8) - /* read virt. drive table */ #define DIOWVDT  (DIO|9) ) /* write virt. drive table */ #define DIOSDISK (DIO|10) /* Size disk characeristics */ #define DIORDISK (DIO|11) /* Read disk characteristics */ #define DIOWDISK (DIO|12) /* Write disk characteristics */ #define DIOSBTRK (DIO|13) /* Set badtracks/virt. drive */ #define DIORBTRK22 (DIO|14) /* read bad track table - for 2.2 */ #define DIOWBTRK22 (DIO|15) /* write bad track table - for 2.2 */ #define DIODKTYPE (DIO|16) /* which disk type are we? */ #define DIOFORCE22 (DIO|17) /* force driver into 2.2 mode )*/ /* Definitions for space used by system routines in the hard disk area. Note that they are in sector(512 byte) quantities. The size of the badtrack table is not defined here because it can vary - it grew from 2 to 8 with Release 2.2. */ #define BOOTZERO 2 /* Really only 1, but 1 more is reserved */ #define DIVVYTBL 2 /* Size of divvy table */ #define BOOTONE 40 /* Maximum size of boot1 code */ #define BTABMAX 8 /* Maximum size of badtrack table */ /* Number of sectors at start of vi)rtual */ /* drive that must be good (error free) */ #define GDSECS (BOOTZERO+DIVVYTBL+BOOTONE+BTABMAX) /* * table sizes */ #define MAXPARTS 16 5 /* max partitions possible*/ #define MAXALTS 1023 : /* max alternate tracks possible */ #define MAXVDRIVES 16 /* max virtual drives possible */ #define NPARTS(ptr) (1 << ((ptr)->partbits))/* this dev's # of partitions */ #define NVIRTS(ptr) (1 << ((ptr)->logbits ))/* this dev's # of virt.) drives */ #define NPHYS(ptr) (1 << ((ptr)->physbits))/* this dev's # of phys drives */ /* * magic numbers */ #define PAMAGIC 0x1234 /* magic number for partition table */ #define BAMAGIC 0x4321 /* magic number for bad track table */ #define VAMAGIC 0x1342 /* magic number for virtual drive table */ #ifdef M_I386 #pragma pack(2) #endif /* * table format for DIOGETP, DIOSETP */ struct dparam { unsigned short d_cylin; /* cylinders per drive */ unsigned short d_heads; /* heads per drive */ unsigne)d short d_sectors; /* sectors per cylinder */ unsigned short d_bytes; /* bytes per sector */ unsigned short d_reserved; /* sectors reserved for system use */ /* at beginning of disk */ }; /* * table format for DIORPART, DIOWPART * partitions of zero size are considered non-existant */ struct partable { unsigned short p_magic; /* magic number validity indicator */ struct parts { long p_off; /* offset of partition */ long p_siz; /* size of partition */ } p[MAXPARTS]; }; #ifdef M_I)386 #pragma pack() #endif /* * table format for DIORBTRK, DIOWBTRK * alternate list stored in sorted order by b_trk terminated * by a -1 in b_trk */ struct badtab { unsigned short b_magic; unsigned short b_maxbad; struct badtrks { unsigned short b_trk; unsigned short b_alt; } b[MAXALTS]; }; #ifdef M_I386 #pragma pack(2) #endif /* table format for DIOBITP * Get makeup of minor device number, which is how many bits of the * number are the partition number, how many are the virtual drive, *) and how many are the physical drive */ struct dbitparams { short partbits; short logbits; short physbits; }; #ifdef M_I386 #pragma pack() #endif /* table format for DIORVDT, DIOWVDT * Get/set the contents of the virtual drive table * which lists what operating system can be found * in each virtual drive, and the sizes of each. */ #define NOTACTIVE 0x00 #define ACTIVE 0x80 #define NO_OS 0 #define DOS 1 #define DOSL 7 4 /* different number for "large" DOS */ #define XENI) IX 2 #define CCPM 0xDB #define AVIRT 5 /* active virtual drive (bootable) */ #define DOSVIRT 6 /* DOS virtual drive */ struct vdtab { unsigned short v_magic; unsigned short v_nvds; struct vdisk { unsigned short v_active; unsigned short v_os; long v_ovff; long v_size; long v_reserved; /* sectors reserved for system use */ } v_vdisk[MAXVDRIVES]; }; ne NO_OS 0 #define DOS 1 #define DOSL 7 4 /* different number for "large" DOS */ #define XENI **]./usr/include/sys/dir.h&9 444 0 0 1334 4145160236 10143 *$/* * @(#) dir.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE*'NIX TO NEW HARDWARE. */ #ifndef DIRSIZ /* Note: DIRSIZ must be even, or else add * filler byte to direct struct. */ #define DIRSIZ 14 #endif struct direct { ino_t d_ino; char d_name[DIRSIZ]; }; he Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE*_./usr/include/sys/debug.h%9 444 0 0 4261 4145160235 10454 */* * @(#) debug.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ #ifdef M_I386 #ifdef DEBUGGER # ifndef DEBUG # define DEBUG # endif # define debugger(class) if ( debug(class, DL_HALT) ) calldebug(); extern int calldebug(); #else # define debugger(* class) #endif #ifdef DEBUG # define debug(class, level) (bugbits[class] & level) # define dentry(class, name) if (debug(class,DL_CALL)) printf(entryfmt,name); # define dexit(class, name) if (debug(class,DL_CALL)) printf(exitfmt, name); extern char entryfmt[]; extern char exitfmt[]; #else # define debug(class, level) # define dentry(class, name) # define dexit(class, name) #endif /* * Debugging classes */ #define DB_EXEC 0 /* Exec system call */ #define DB_FP 1 /* Floating Point */ #define DB_MAIN*I 2 /* System initialization */ #define DB_MALLOC 3 /* Memory allocation */ #define DB_MMU 4 /* memory management */ #define DB_PHYSIO 5 /* raw I/O */ #define DB_SIG 6 /* Signals */ #define DB_SLP 7 /* Process switching */ #define DB_TEXT 8 /* Text table management */ #define DB_TRAP 9 /* Traps and faults */ #define DB_PFAULT 10 #define DB_PGOUT 11 #define DB_SCALL 12 #define DB_PHASH 13 /* filesystem page cache */ #define DB_FORK 14 /* copy on write fork */ #define DB_SWAP 15 /* swapping */ #define *7DB_IPC 16 /* ipc msgs, sems, shm */ #define DB_CONSOLE 17 /* console */ #define DB_DISK 18 /* disk driver */ #define DB_SYNC 19 /* page synchronization */ #define DB_SWTCH 20 /* context switching */ #define NDBC 21 /* number of debugging classes */ /* * Debugging levels */ #define DL_TERSE 1 /* terse output */ #define DL_VERB 2 /* verbose output */ #define DL_HALT 4 /* call debug() at strategic points */ #define DL_CALL 8 /* function entry/exit trace */ /* * Manifest constants for debugger */ * `#define NAR 19 /* can't match anything in reg.h */ extern char bugbits[]; #else #define calldebug() debug(0) #define dentry(class, name) #define dexit(class, name) #endif /* context switching */ #define NDBC 21 /* number of debugging classes */ /* * Debugging levels */ #define DL_TERSE 1 /* terse output */ #define DL_VERB 2 /* verbose output */ #define DL_HALT 4 /* call debug() at strategic points */ #define DL_CALL 8 /* function entry/exit trace */ /* * Manifest constants for debugger */ *`*_./usr/include/sys/crtctl.h%8 444 0 0 4457 4145160235 10670 *u/* * @(#) crtctl.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* Define the cursor control codes */ #define ESC 033 /* Escape for command */ /* Commands */ #define CUP 0101 /* Cursor up */ #define CDN 0102 /* Cursor down */ #define CRI 0103 /* C*ursor right */ #define CLE 0104 /* Cursor left */ #define NL 0134 /* Terminal newline function */ #define HOME 0105 /* Cursor home */ #define VHOME 0106 /* cursor home to variable portion */ #define LCA 0107 /* Load cursor, followed by (x,y) in (col,row) */ #define CRTN 0133 /* Return cursor to beginning of line */ #define STB 0110 /* Start blink */ #define SPB 0111 /* Stop blink */ #define CS 0112 /* Clear Screen */ #define CM 0135 /* Clear Memory */ #define EEOL 0113 /* Erase to end of line */ #define EE*tOP 0114 /* Erase to end of page */ #define DC 0115 /* Delete character */ #define DL 0116 /* Delete line */ #define IC 0117 /* Insert character */ #define IL 0120 /* Insert line */ #define KBL 0121 /* keyboard lock */ #define KBU 0122 /* keyboard unlock */ #define ATAB 0123 /* Set column of tabs */ #define STAB 0124 /* Set single tab */ #define CTAB 0125 /* Clear Tabs */ #define USCRL 0126 /* Scroll up one line */ #define DSCRL 0127 /* Scroll down one line */ #define ASEG 0130 /* Advance segment */ #define *'BPRT 0131 /* Begin protect */ #define EPRT 0132 /* End protect */ #define SVSCN 0136 /* Define variable portion of screen (OS only) */ #define UVSCN 0137 /* Scroll Up variable portion of screen */ #define DVSCN 0140 /* Scroll Down variable portion of screen */ #define SVID 0141 /* Set Video Attributes */ #define CVID 0142 /* Clear Video Attributes */ #define DVID 0143 /* Define Video Attributes */ /* Video Attribute Definitions */ #define VID_NORM 000 /* normal */ #define VID_UL 001 /* underline */ #de*cfine VID_BLNK 002 /* blink */ #define VID_REV 004 /* reverse video */ #define VID_DIM 010 /* dim intensity */ #define VID_BOLD 020 /* bright intensity */ #define VID_OFF 040 /* blank out field */ #define BRK 000 /* transmit break */ #define HIQ 001 /* Put remainder of write on high priority queue. */ tes */ #define CVID 0142 /* Clear Video Attributes */ #define DVID 0143 /* Define Video Attributes */ /* Video Attribute Definitions */ #define VID_NORM 000 /* normal */ #define VID_UL 001 /* underline */ #de*-a./usr/include/sys/console.h$9 444 0 0 1457 4145160234 11033 *?/* * @(#) console.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * User level include file for: * PC Console keyboard related defines and variables. * */ #define NUM_ASCII 256 /* Number of ascii characters */ #define GIO_COLOR ('c'<<8) /**  Ioctl for present color card status */ #define GIO_ATTR ('a'<<8) /* Ioctl for present char mode */ #define MIOC ('k' << 8) #define GIO_SCRNMAP (MIOC | 2) /* Get screen output map table */ #define PIO_SCRNMAP (MIOC | 3) /* Put screen output map table */ typedef unsigned char scrnmap_t[NUM_ASCII]; ed as Confidential. */ /* * User level include file for: * PC Console keyboard related defines and variables. * */ #define NUM_ASCII 256 /* Number of ascii characters */ #define GIO_COLOR ('c'<<8) /* +~+]./usr/include/sys/conf.h&8 444 0 0 3772 4145160234 10320 +7/* * @(#) conf.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING X+ENIX TO NEW HARDWARE. */ /* * Declaration of block device switch. Each entry (row) is * the only link between the main unix code and the driver. * The initialization of the device switches is in the file conf.c. */ extern struct bdevsw { char *d_name; int (*d_open)(); int (*d_close)(); int (*d_strategy)(); struct iobuf *d_tab; } bdevsw[]; /* * Character device switch. */ extern struct cdevsw { char *d_name; int (*d_open)(); int (*d_close)(); int (*d_read)(); int (*d_write)(); int (*d+_ioctl)(); struct tty *d_ttys; struct streamtab *d_stab; } cdevsw[]; extern int bdevcnt; extern int cdevcnt; /* * Line discipline switch. */ extern struct linesw { int (*l_open)(); int (*l_close)(); int (*l_read)(); int (*l_write)(); int (*l_ioctl)(); int (*l_input)(); int (*l_output)(); int (*l_mdmint)(); } linesw[]; extern int linecnt; extern int (*vecintsw[])(); extern uchar_t vecintflags[]; extern uchar_t vecintlev[]; /* * Definitions for vecintflags in c.c: * info about vectors cont+rained in vecintsw. */ #define SWITCH_INTR 0 #define FAST_INTR 1 #define CLOCK_INTR 2 extern int vintmin, vintmax; extern int bdevcnt, bdevmax; extern int cdevcnt, cdevmax; struct vecshrsw { int shr_ivec; /* interrupt level */ int (*shr_intr)( ); /* ptr to xxintr */ }; extern struct vecshrsw vecshrsw[]; extern int vshrcnt, vshrmax; extern nodev( ), nulldev( ), novec( ); extern shrvec( ); extern int (*dinitsw[])(); extern int (*dhaltsw[])(); struct streamtab { int s_streaml; }; s cont+_./usr/include/sys/comcrt.h%8 444 0 0 3452 4145160234 10655 + /* * @(#) comcrt.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* ** Definitions used by crt driver and by stty() ioctls */ /* mode definitions */ #define M_B40x25 0 /* black & white 40 columns */ #define M_C40x25 1 /* color 40 columns */ #define+T M_B80x25 2 /* black & white 80 columns */ #define M_C80x25 3 /* color 80 columns */ #define M_BG320 4 /* black & white graphics 320x200 */ #define M_CG320 5 /* color graphics 320x200 */ #define M_BG640 6 /* black & white graphics 640x200 hi-res */ #define M_EGAMONO80x25 7 /* ega-mono 80x25 */ #define M_CG320_D 13 /* ega mode D */ #define M_CG640_E 14 /* ega mode E */ #define M_EGAMONOAPA 15 /* ega mode F */ #define M_CG640x350 16 /* ega mode 10 */ #define M_ENHMONOAPA2 17 /* ega mode F with exten+ @ded memory */ #define M_ENH_CG640 18 /* ega mode 10* */ #define M_ENH_B40x25 19 /* ega enhanced black & white 40 columns */ #define M_ENH_C40x25 20 /* ega enhanced color 40 columns */ #define M_ENH_B80x25 21 /* ega enhanced black & white 80 columns */ #define M_ENH_C80x25 22 /* ega enhanced color 80 columns */ #define M_ENH_B80x43 0x70 /* ega black & white 80x43 */ #define M_ENH_C80x43 0x71 /* ega color 80x43 */ #define M_HGC_P0 0xe0 /* hercules graphics - page 0 @ B0000 */ # ++Edefine M_HGC_P1 0xe1 /* hercules graphics - page 1 @ B8000 */ #define M_MCA_MODE 0xff /* monochrome adapter mode */ /* display/adapter defines */ #define MONO 1 #define CGA 2 #define PGA 3 #define EGA 4 #define EGAREG 5 #define EGAENH 6 /* function key max definition length */ #define MAXFK 30 22 /* ega enhanced color 80 columns */ #define M_ENH_B80x43 0x70 /* ega black & white 80x43 */ #define M_ENH_C80x43 0x71 /* ega color 80x43 */ #define M_HGC_P0 0xe0 /* hercules graphics - page 0 @ B0000 */ #+_./usr/include/sys/callo.h%9 444 0 0 1645 4145160234 10462 +I/* * @(#) callo.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING +XENIX TO NEW HARDWARE. */ /* * The callout structure is for a routine arranging * to be called by the clock interrupt * (clock.c) with a specified argument, * in a specified amount of time. * Used, for example, to time tab delays on typewriters. */ struct callo { int c_time; /* incremental time */ caddr_t c_arg; /* argument to routine */ int (*c_func)(); /* routine */ }; extern struct callo callout[]; HITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING +h]./usr/include/sys/buf.h&9 444 0 0 7732 4145160233 10146 +H/* * @(#) buf.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XE+NIX TO NEW HARDWARE. */ /* * Each buffer in the pool is usually doubly linked into 2 lists: * the device with which it is currently associated (always) * and also on a list of blocks available for allocation * for other use (usually). * The latter list is kept in last-used order, and the two * lists are doubly linked to make it easy to remove * a buffer from one list when it was found by * looking through the other. * A buffer is on the available list, and is liable * to be reassigned to anoth+ er disk block, if and only * if it is not marked BUSY. When a buffer is busy, the * available-list pointers can be used for other purposes. * Most drivers use the forward ptr as a link in their I/O active queue. * A buffer header contains all the information required to perform I/O. * Most of the routines which manipulate these things are in bio.c. */ struct buf { int b_flags; /* see defines below */ struct buf *b_forw; /* headed by d_tab of conf.c */ struct buf *b_back; /* " */ struct buf *+ av_forw; /* position on free list, */ struct buf *av_back; /* if not BUSY*/ dev_t b_dev; /* major+minor device name */ unsigned b_bcount; /* transfer count */ paddr_t b_paddr; /* physical address */ #define paddr(X) X->b_paddr daddr_t b_blkno; /* block # on device */ char b_error; /* returned after I/O */ char b_res; /* reserved field to word align */ unsigned int b_resid; /* words not transferred after error */ ushort b_cylin; (/* cylinder number for disk i/o queue */ ,,Q }; #ifndef M_I386 extern struct buf buf[]; /* The buffer pool itself */ extern char sabuf[][BSIZE]; #endif extern struct buf bfreelist; /* head of available list */ #ifdef M_I386 extern struct buf pbuf[]; /* Physio header pool */ struct pfree { int b_flags; struct buf *av_forw; }; extern struct pfree pfreelist; /* head of physio pool */ #endif #ifdef BUFMAPOUT long bigetl(); #else #define bigetc(bp,cp) (*(char *)(bp->b_paddr+cp)) #define biget(bp,cp) (*(short *)(bp->b_paddr+cp)) #define bigetl(bp,,%cp) (*(long *)(bp->b_paddr+cp)) #define biputc(bp,cp,c) (*(char *)(bp->b_paddr+cp)=c) #define biput(bp,cp,c) (*(short *)(bp->b_paddr+cp)=c) #define biputl(bp,cp,c) (*(long *)(bp->b_paddr+cp)=c) #endif paddr_t bufbase; /* * These flags are kept in b_flags. */ #define B_WRITE 0 /* non-read pseudo-flag */ #define B_READ 01 /* read when I/O occurs */ #define B_DONE 02 /* transaction finished */ #define B_ERROR 04 /* transaction aborted */ #define B_BUSY 010 /* not on av_forw/back list */ #def,nine B_PHYS 020 /* Physical IO potentially using UNIBUS map */ #define B_MAP 040 /* This block has the UNIBUS map allocated */ #define B_WANTED 0100 /* issue wakeup when BUSY goes off */ #define B_AGE 0200 /* delayed write for correct aging */ #define B_ASYNC 0400 /* don't wait for I/O completion */ #define B_DELWRI 01000 /* don't write til block leaves available list*/ #define B_OPEN 02000 /* open routine called */ #define B_STALE 04000 #define B_NOCROSS 010000 /* transfer cannot cross ,64k boundary */ #define B_FLUSH 020000 /* write queued by bflush */ /* * Fast access to buffers in cache by hashing. */ #define bhash(d,b) ((struct buf *)&hbuf[((int)d+(int)b)&v.v_hmask]) struct hbuf { int b_flags; struct buf *b_forw; struct buf *b_back; }; extern struct hbuf hbuf[]; #ifdef M_KERNEL #ifdef M_I386 #define bimap(bp) (ptok(paddr(bp))) #endif #ifdef M_I286 extern faddr_t bimap(); #endif #ifdef M_I8086 extern char far *bimap(); #endif #endif CROSS 010000 /* transfer cannot cross ,C]./usr/include/sys/brk.h&9 444 0 0 1165 4145160233 10142 , /* * @(#) brk.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* commands for brkctl */ #define BR_ARGSEG 0001 /* specified segment */ #define BR_NEWSEG 0002 /* new segment */ #define BR_IMPSEG 0003 /* implied segment - last data segment */ #define B,R_FREESEG 0004 /* free the specified segment */ #define BR_HUGE 0100 /* do the specified command in huge context */ Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* commands for brkctl */ #define BR_ARGSEG 0001 /* specified segment */ #define BR_NEWSEG 0002 /* new segment */ #define BR_IMPSEG 0003 /* implied segment - last data segment */ #define B,_./usr/include/sys/ascii.h%9 444 0 0 1752 4145160232 10455 ,  /* * @(#) ascii.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* Definitions of ascii standard values and names from xenix manual * ascii(7) */ #define A_NUL 0 #define A_SOH 1 #define A_STX 2 #define A_ETX 3 #define A_EOT 4 #define A_ENQ 5 #def ,V,Line A_ACK 6 #define A_BEL 7 #define A_BS 8 #define A_HT 9 #define A_NL 10 #define A_LF 10 #define A_VT 11 #define A_FF 12 #define A_NP 12 #define A_CR 13 #define A_SO 14 #define A_SI 15 #define A_DLE 16 #define A_DC1 17 #define A_DC2 18 #define A_DC3 19 #define A_DC4 20 #define A_NAK 21 #define A_SYN 22 #define A_ETB 23 #define A_CAN 24 #define A_EM 25 #define A_SUB 26 #define A_ESC 27 #define A_FS 28 #define A_GS 29 #define A_RS 30 #define A_US 31 #define A_DEL 127 #define A_CSI 0x9b 4 #define A_ENQ 5 #def,+_./usr/include/sys/assert.h%8 444 0 0 1431 4145160233 10661 ,$/* * @(#) assert.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING, XENIX TO NEW HARDWARE. */ #ifdef DEBUG static char Asrtstr[] = "Invalid assertion line %d of %s :%s\n"; #define ASSERT(condition) \ if (!(condition)) {\ printf(Asrtstr, __LINE__, __FILE__, " condition ");\ calldebug();\ }\ else #else #define ASSERT(condition) #endif , and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING,_./usr/include/sys/align2.h%8 444 0 0 3553 4145160263 10546 ,/* * @(#) align2.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80386 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ #ifdef M_I386 #pragma pack(2) #endif , /* * struct msqid_ds { * struct ipc_perm msg_perm; * struct msg near *msg_first; * struct msg near *msg_last; * ushort msg_cbytes; * ushort msg_qnum; * ushort msg_qbytes; * ushort msg_lspid; * ushort msg_lrpid; * time_t msg_stime; * time_t msg_rtime; * time_t msg_ctime; * }; */ struct msqid_286 { struct ipc_perm msg_perm; char msg_first[2]; char msg_last[2]; ushort msg_cbytes; ushort msg_qnum; ushort msg_qbytes; ushort msg_lspid; ushort msg_lrpid; time_t ms,g_stime; time_t msg_rtime; time_t msg_ctime; }; /* * struct semid_ds { * struct ipc_perm sem_perm; * struct sem near *sem_base; * ushort sem_nsems; * time_t sem_otime; * time_t sem_ctime; * }; */ struct semid_286 { struct ipc_perm sem_perm; char sem_base[2]; ushort sem_nsems; time_t sem_otime; time_t sem_ctime; }; /* * struct shmid_ds { * struct ipc_perm shm_perm; * int shm_segsz; * ushort shm_ptbl; * ushort shm_lpid; * ushort shm_cpid; * ushort shm_nattch; * us, hort shm_cnattch; * time_t shm_atime; * time_t shm_dtime; * time_t shm_ctime; * }; */ struct shmid_286 { struct ipc_perm shm_perm; ushort shm_segsz; ushort shm_ptbl; ushort shm_lpid; ushort shm_cpid; ushort shm_nattch; ushort shm_cnattch; time_t shm_atime; time_t shm_dtime; time_t shm_ctime; }; #ifdef M_I386 #pragma pack() #endif id_ds { * struct ipc_perm shm_perm; * int shm_segsz; * ushort shm_ptbl; * ushort shm_lpid; * ushort shm_cpid; * ushort shm_nattch; * us -H-J_./usr/include/sys/align1.h%8 444 0 0 2167 4145160264 10546 -)/* * @(#) align1.h 2.2 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS SPECIFIC TO THE * INTEL 80386 CPU AND MAY REQUIRE MODIFICATION * WHEN ADAPTING XENIX TO NEW HARDWARE. */ #ifdef M_I386 #pragma pack(2) #endif - /* * struct saddr { * unsigned short sa_seg; * long sa_off; * }; */ struct saddr_286 { unsigned short sa_seg; long sa_off; }; /* * struct stat { * dev_t st_dev; * ino_t st_ino; * ushort st_mode; * short st_nlink; * ushort st_uid; * ushort st_gid; * dev_t st_rdev; * off_t st_size; * time_t st_atime; * time_t st_mtime; * time_t st_ctime; * }; */ struct stat_286 { dev_t st_dev; ino_t st_ino; ushort st_mode; short st_nlink; ushort st_uid; ushort st_gid; dev_t -st_rdev; off_t st_size; time_t st_atime; time_t st_mtime; time_t st_ctime; }; #ifdef M_I386 #pragma pack() #endif a_seg; long sa_off; }; /* * struct stat { * dev_t st_dev; * ino_t st_ino; * ushort st_mode; * short st_nlink; * ushort st_uid; * ushort st_gid; * dev_t st_rdev; * off_t st_size; * time_t st_atime; * time_t st_mtime; * time_t st_ctime; * }; */ struct stat_286 { dev_t st_dev; ino_t st_ino; ushort st_mode; short st_nlink; ushort st_uid; ushort st_gid; dev_t -(]./usr/include/sys/acct.h&8 444 0 0 2733 4145160232 10277 -M /* * @(#) acct.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING - XENIX TO NEW HARDWARE. */ /* * Accounting structures */ typedef ushort comp_t; /* "floating point" */ /* 13-bit fraction, 3-bit exponent */ struct acct { char ac_flag; /* Accounting flag */ char ac_stat; /* Exit status */ ushort ac_uid; /* Accounting user ID */ ushort ac_gid; /* Accounting group ID */ dev_t ac_tty; /* control typewriter */ time_t ac_btime; /* Beginning time */ comp_t ac_utime; /* acctng user time in clock ticks */ comp_t ac_stime; /* acctng system time in cloc-k ticks */ comp_t ac_etime; /* acctng elapsed time in clock ticks */ comp_t ac_mem; /* memory usage */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; extern struct acct acctbuf; extern inodep_t acctp; /* inode of accounting file */ #define AFORK 01 /* has executed fork, but no exec */ #define ASU 02 /* used super-user privileges */ #define ACCTF 0300 /* record type: 00 = acct */ stime; /* acctng system time in cloc- _./usr/include/sys/a.out.h%9 444 0 0 35340 4145160261 10435  --b/* * @(#) a.out.h 2.1 87/11/08 * * Copyright (C) The Santa Cruz Operation, 1984, 1985, 1986, 1987. * Copyright (C) Microsoft Corporation, 1984, 1985, 1986, 1987. * This Module contains Proprietary Information of * The Santa Cruz Operation, Microsoft Corporation * and AT&T, and should be treated as Confidential. * * - Object file structure declarations. */ /* * The main and extended header structures. * For x.out segmented (XE_SEG): * 1) fields marked with (s) must contain sums -of xs_psize for * non-memory images, or xs_vsize for memory images. * 2) the contents of fields marked with (u) are undefined. */ /* * For the 386 all these fields assume their full 32 bit meaning * * This is still sufficient for 386 large model so long as the * sum of the virtual sizes of the segments does not exceed 4Gb. * * The linker must generate some new data here, specifically: * * x_cpu == XC_386 * x_renv has new bits interpretations controlled by * the -V option of the li-%nker (see below). */ struct xexec { /* x.out header */ unsigned short x_magic; /* magic number */ unsigned short x_ext; /* size of header extension */ long x_text; /* size of text segment (s) */ long x_data; /* size of initialized data (s) */ long x_bss; /* size of uninitialized data (s) */ long x_syms; /* size of symbol table (s) */ long x_reloc; /* relocation table length (s) */ long x_entry; /* entry point, machine dependent */ char x_cpu; /* cpu type & byte/word order */ -Hchar x_relsym; /* relocation & symbol format (u) */ unsigned short x_renv; /* run-time environment */ }; /* * For the 386 the following fields are affected: * * xe_pagesize set by the linker option -R this * is currently 0 and should be set to the pagesize * of the 386 XENIX implementation modulo 512. */ struct xext { /* x.out header extension */ /* The following 4 fields are UNUSED currently */ long xe_trsize; /* size of text relocation (s) */ long xe_drsize; /* size of data reloc-ation (s) */ long xe_tbase; /* text relocation base (u) */ long xe_dbase; /* data relocation base (u) */ /* End of unused fields */ long xe_stksize; /* stack size (if XE_FS set) */ /* the following must be present if XE_SEG */ long xe_segpos; /* segment table position */ long xe_segsize; /* segment table size */ long xe_mdtpos; /* machine dependent table position */ long xe_mdtsize; /* machine dependent table size */ char xe_mdttype; /* machine dependent table type */ char xe_pagesize-; /* file pagesize, in multiples of 512 */ char xe_ostype; /* operating system type */ char xe_osvers; /* operating system version */ unsigned short xe_eseg; /* entry segment, machine dependent */ unsigned short xe_sres; /* reserved */ }; /* * for the 386: * * xs_filpos set to a multiple of xe_pagesize*512 to allow * demand loading from the file system. * xs_rbase modulo xe_pagesize*512 and set using the -D and * -T options of the linker. */ struct xseg { /* x.out segment table ent-ry */ unsigned short xs_type; /* segment type */ unsigned short xs_attr; /* segment attributes */ unsigned short xs_seg; /* segment number */ char xs_align; /* log base 2 of alignment */ char xs_cres; /* unused */ long xs_filpos; /* file position */ long xs_psize; /* physical size (in file) */ long xs_vsize; /* virtual size (in core) */ long xs_rbase; /* relocation base address/offset */ unsigned short xs_noff; /* segment name string table offset */ unsigned short xs_sres; /* unused */ lo-ng xs_lres; /* unused */ }; struct xiter { /* x.out iteration record */ long xi_size; /* source byte count */ long xi_rep; /* replication count */ long xi_offset; /* destination offset in segment */ }; struct xlist { /* xlist structure for xlist(3). */ unsigned short xl_type; /* symbol type */ unsigned short xl_seg; /* file segment table index */ long xl_value; /* symbol value */ char *xl_name; /* pointer to asciz name */ }; /* * Definitions for xexec.x_magic, HEX (sh- ort). */ #define ARCMAGIC 0xff65 /* 0177545, archive, same as always */ #define X_MAGIC 0x0206 /* indicates x.out header */ /* * Definitions for xexec.x_cpu, cpu type (char). * * b set if high byte first in short * w set if low word first in long * cccccc cpu type */ /* bytes/words are "swapped" if not stored in pdp11 ordering */ #define XC_BSWAP 0x80 /* bytes swapped */ #define XC_WSWAP 0x40 /* words swapped */ #define XC_NONE 0x00 /* none */ #define XC_PDP11 0x01 .. /* pdp11 */ #define XC_23 0x02 /* 23fixed from pdp11 */ #define XC_Z8K 0x03 /* Z8000 */ #define XC_8086 0x04 /* I8086 */ #define XC_68K 0x05 /* M68000 */ #define XC_Z80 0x06 /* Z80 */ #define XC_VAX 0x07 /* VAX 780/750 */ #define XC_16032 0x08 /* NS16032 */ #define XC_286 0x09 /* iAPX 80286 */ #define XC_286V 0x29 /* iAPX 80286, use xe_osver for version */ #define XC_386 0x0a /* iAPX 80386 */ #define XC_186 0x0b /* iAPX 80186 */ #define XC_CPU 0x3f /* cpu mask */ /* * Definitions for xexec.x_.0relsym (char), valid only if !XE_SEG. * * rrrr #relocation table format * ssss symbol table format */ /* relocation table format */ #define XR_RXOUT 0x00 /* x.out long form, linkable */ #define XR_RXEXEC 0x10 /* x.out short form, executable */ #define XR_RBOUT 0x20 /* b.out format */ #define XR_RAOUT 0x30 /* a.out format */ #define XR_R86REL 0x40 /* 8086 relocatable format */ #define XR_R86ABS 0x50 /* 8086 absolute format */ #define XR_R286ABS 0x60 /* 80286 absolute format */ #def.Fine XR_R286REL 0x70 /* 80286 relocatable format */ #define XR_REL 0xf0 /* relocation format mask */ /* symbol table format */ #define XR_SXOUT 0x00 /* trailing string, struct sym */ #define XR_SBOUT 0x01 /* trailing string, struct bsym */ #define XR_SAOUT 0x02 /* struct asym (nlist) */ #define XR_S86REL 0x03 /* 8086 relocatable format */ #define XR_S86ABS 0x04 /* 8086 absolute format */ #define XR_SUCBVAX 0x05 /* separate string table */ #define XR_S286ABS 0x06 /* 80286 absolute format */ #define XR_S286.REL 0x07 /* 80286 relocatable format */ #define XR_SXSEG 0x08 /* segmented format */ #define XR_SYM 0x0f /* symbol format mask */ /* * Definitions for xexec.x_renv (short). * * vv version compiled for * xx extra (zero) * s ! set if segmented x.out * a 8set if absolute (set up for physical address) * i = set if segment table contains iterated text/data * v %set if virtual kernel module or share.G7d library * was (h) but this was never used. *  f , set if floating point hardware required *   t set if large model text *  d  set if large model data *   o set if text overlay *  f set if fixed stack *   p set if text pure *  s set if separate I & D *  t e set if executable */ /* * On the 386 the validity of a module and its type * is determined by the setting.8s of the XE_ABS, XE_VMOD and XE_EXEC * bits as follows: * * XE_ABS XE_VMOD XE_EXEC Meaning * 0 0 0 BAD x.out (error in linking) * 0 0 1 Old x.out, no shared libraries used. * 0 1 0 Shared Library Module. * 0 1 1 x.out executable that uses shared libs. * 1 0 0 BAD (not possible) * 1 0 1 Standalone Program (e.g. kernel) * 1 1 0 Virtual Kernel Module (e.g. IDD) * 1 1 1 BAD (not possible) * * The setting of the XE_VMOD bit. is controlled by the -V option of * the linker. */ #define XE_V2 0x4000 /* version 2.x */ #define XE_V3 0x8000 /* version 3.x */ #define XE_OSV 0xc000 /* if XE_SEG use xe_osvers ... */ #define XE_V5 XE_OSV /* else assume v5.x */ #define XE_VERS 0xc000 /* version mask */ #define XE_res1 0x2000 /* reserved */ #define XE_res2 0x1000 /* reserved */ #define XE_SEG 0x0800 /* segment table present */ #define XE_ABS 0x0400 /* absolute memory image (standalone) */ #define XE_ITER 0x0200 /* .{iterated text/data present */ #define XE_HDATA 0x0100 /* huge model data (never used) */ #define XE_VMOD XE_HDATA /* virtual module */ #define XE_FPH 0x0080 /* floating point hardware required */ #define XE_LTEXT 0x0040 /* large model text */ #define XE_LDATA 0x0020 /* large model data */ #define XE_OVER 0x0010 /* text overlay */ #define XE_FS 0x0008 /* fixed stack */ #define XE_PURE 0x0004 /* pure text */ #define XE_SEP 0x0002 /* separate I & D */ #define XE_EXEC 0x0001 /* executable */ /. D* * Definitions for xe_mdttype (char). */ #define XE_MDTNONE 0 /* no machine dependent table */ #define XE_MDT286 1 /* iAPX286 LDT */ /* * Definitions for xe_ostype (char). */ #define XE_OSNONE 0 #define XE_OSXENIX 1 /* Xenix */ #define XE_OSRMX 2 /* iRMX */ #define XE_OSCCPM 3 /* Concurrent CP/M */ /* * Definitions for xe_osvers (char). */ #define XE_OSXV2 0 /* Xenix V3.x */ #define XE_OSXV3 1 /* Xenix V3.x */ #define XE_OSXV5 2 /* Xenix V5.x */ /* * Definitions for xs_type (short). * Va .D.lues from 64 to 127 are reserved. */ #define XS_TNULL 0 /* unused segment */ #define XS_TTEXT 1 /* text segment */ #define XS_TDATA 2 /* data segment */ #define XS_TSYMS 3 /* symbol table segment */ #define XS_TREL 4 /* relocation segment */ #define XS_TSESTR 5 /* segment table's string table segment */ #define XS_TGRPS 6 /* group definitions segment */ #define XS_TIDATA 64 /* iterated data */ #define XS_TTSS 65 /* tss */ #define XS_TLFIX 66 /* lodfix */ #define XS_TDNAME 67 /* descriptor names */ #def.ine XS_TDTEXT 68 /* debug text segment */ #define XS_TIDBG XS_TDTEXT #define XS_TDFIX 69 /* debug relocation */ #define XS_TOVTAB 70 /* overlay table */ #define XS_T71 71 #define XS_TSYSTR 72 /* symbol string table */ /* * Definitions for xs_attr (short). * The top bit is set if the file segment represents a memory image. * The low 15 bits' definitions depend on the type of file segment. */ #define XS_AMEM 0x8000 /* segment represents a memory image */ #define XS_AMASK 0x7fff /* type specific field. mask */ /* For XS_TTEXT and XS_TDATA segments, bit definitions. */ #define XS_AITER 0x0001 /* contains iteration records */ #define XS_AHUGE 0x0002 /* contains huge element */ #define XS_ABSS 0x0004 /* contains implicit bss */ #define XS_APURE 0x0008 /* read-only, may be shared */ #define XS_AEDOWN 0x0010 /* segment expands downward (stack) */ #define XS_APRIV 0x0020 /* segment may not be combined */ #define XS_A32BIT 0x0040 /* segment is 32 bits */ /* For XS_TSYMS segments, enumerated symbol ta.Jble types. */ #define XS_S5BELL 0 /* Bell 5.2 format */ #define XS_SXSEG 1 /* x.out segmented format */ #define XS_SISLAND 2 /* island debugger support */ /* For XS_TREL segments, enumerated relocation table types. */ #define XS_RXSEG 1 /* x.out segmented format */ #define XS_R86SEG 2 /* 8086 x.out segmented relocation */ /* * File position macros, valid only if !XE_SEG. */ #define XEXTPOS(xp) ((long) sizeof(struct xexec)) #define XTEXTPOS(xp) (XEXTPOS(xp) + (long) (xp)->x_ext) #define XDATAPOS(xp.) (XTEXTPOS(xp) + (xp)->x_text) #define XSYMPOS(xp) (XDATAPOS(xp) + (xp)->x_data) #define XRELPOS(xp) (XSYMPOS(xp) + (xp)->x_syms) #define XENDPOS(xp) (XRELPOS(xp) + (xp)->x_reloc) #define XRTEXTPOS(xp, ep) (XRELPOS(xp)) #define XRDATAPOS(xp, ep) (XRELPOS(xp) + (ep)->xe_trsize) /* * byte/word swapping macros: */ #define SBSWAP(x) ((((x) >> 8) & 0x00ff) | \ (((x) << 8) & 0xff00)) #define LBSWAP(x) ((((long) (x) >> 8) & 0x00ff00ffL) | \ (((long) (x) << 8) & 0xff00ff00L)) #define LWSWAP(x) (((.(long) (x) >> 16) & 0x0000ffffL) | \ (((long) (x) << 16) & 0xffff0000L)) #define STRUCTOFF(structure, field) (int) &(((struct structure *) 0)->field) #define H_NONE 0 /* not an object file */ #define H_AOUT 1 /* a.out */ #define H_BOUT 2 /* b.out */ #define H_ROUT 3 /* 8086 rel */ #define H_XROUT 4 /* 8086 rel with x.out header */ #define H_ZAOUT 5 /* z8000 a.out */ #define H_XOUT 6 /* x.out */ #define H_XSEG 7 /* segmented x.out */ #define S_NONE 0 /* not an object file */ #define S_ASYM. 1 /* a.out */ #define S_BSYM 2 /* b.out */ #define S_RSYM 3 /* 8086 rel */ #define S_XSYM 4 /* x.out symbols */ #define S_XSEG 5 /* x.out segmented symbols */ #define S_86ABS 6 /* 8086 abs symbols */ #define S_IDBG 7 /* debug symbols */ #define S_5BELL 8 /* Bell 5.2 symbols */ #define S_ISLAND 9 /* island debugger support */ /* * All of the following are provided for compatibility only. */ struct aexec { /* a.out header */ unsigned short xa_magic; /* magic number */ unsigned s. hort xa_text; 3/* size of text segment */ unsigned short xa_data; 6/* size of initialized data */ unsigned short xa_bss; 8 /* size of unitialized data */ unsigned short xa_syms; /* size of symbol table */ unsigned short xa_entry; /* entry point */ unsigned short xa_unused; /* not used */ unsigned short xa_flag; /* relocation info stripped */ }; struct nlist { /* nlist structure for nlist(3). */ char n_name[8]; /* symbol name */ int n_type; /* typ. ~e flag */ unsigned n_value; /* value */ }; /* * Definitions for aexec.xa_magic, OCTAL, obsolete (short). */ #define FMAGIC 0407 /* normal */ #define NMAGIC 0410 /* pure, shared text */ #define IMAGIC 0411 /* separate I & D */ #define OMAGIC 0405 /* text overlays */ #define ZMAGIC 0413 /* demand load format */ #define A_MAGIC1 FMAGIC #define A_MAGIC2 NMAGIC #define A_MAGIC3 IMAGIC #define A_MAGIC4 OMAGIC #define Z_MAGIC1 0164007 /* normal 0xe807 */ #define Z_MAGIC2 0164010 /* pure only text /Z/ 0xe808 */ #define Z_MAGIC3 0164011 /* separate I & D 0xe809 */ #define Z_MAGIC4 0164005 /* overlay 0xe805 */ #define ATEXTPOS(ap) ((long) sizeof(struct aexec)) #define ADATAPOS(ap) (ATEXTPOS(ap) + (long) (ap)->xa_text) #define ARTEXTPOS(ap) (ADATAPOS(ap) + (long) (ap)->xa_data) #define ARDATAPOS(ap) (ARTEXTPOS(ap) + ((long) \ ((ap)->xa_flag? 0 : (ap)->xa_text))) #define ASYMPOS(ap) (ATEXTPOS(ap) + \ (((ap)->xa_flag? 1L : 2L) * \ ((long) (ap)->xa_text + (long) (ap)->xa_data))) #de/Afine AENDPOS(ap) (ASYMPOS(ap) + (long) (ap)->xa_syms) struct bexec { /* b.out header */ long xb_magic; /* magic number */ long xb_text; /* text segment size */ long xb_data; /* data segment size */ long xb_bss; /* bss size */ long xb_syms; /* symbol table size */ long xb_trsize; /* text relocation table size */ long xb_drsize; /* data relocation table size */ long xb_entry; /* entry point */ }; #define BTEXTPOS(bp) ((long) sizeof(struct bexec)) #define BDATAPOS(bp) (BTEXTPOS(bp) + (bp)-/>xb_text) #define BSYMPOS(bp) (BDATAPOS(bp) + (bp)->xb_data) #define BRTEXTPOS(bp) (BSYMPOS(bp) + (bp)->xb_syms) #define BRDATAPOS(bp) (BRTEXTPOS(bp) + (bp)->xb_trsize) #define BENDPOS(bp) (BRDATAPOS(bp) + (bp)->xb_drsize) /* bss size */ long xb_syms; /* symbol table size */ long xb_trsize; /* text relocation table size */ long xb_drsize; /* data relocation table size */ long xb_entry; /* entry point */ }; #define BTEXTPOS(bp) ((long) sizeof(struct bexec)) #define BDATAPOS(bp) (BTEXTPOS(bp) + (bp)-/S ./usr/bin/sdb+9 755 0 0 313130 4145171271 6264 /m,LIXF83Jd `@? H?LILIDGPXFy//~:ã32'3UVEtXtHt8th8.j20E @ Ph$".E @E @8-u xu2=.3 VF|5v u4=u&5hh-=jG25 u3^Uhd=@d f@h+hg 諹Pj諺t tth붐h0뮐5hj5h.@uh<*+j]+hl?hL5h0 vjjIb-t/@u hV΂h= tSju t6Vhgy^薵 t3jEhsh$giPu!VrP u i^_[ËE뜐sPuR"E:K=f?C(IkjUd%Stasbc̐gi"r1sPv_뚐^_[ÐUSW/VrI hhÃ$/t1?t"bdg+ju?uidPudVXf^h\P t?^_[áhh8mt js蟳jduV}^` tkPjEPO ^_[ÐjiuP! h@#^_[jjiuP?~ } hXΐVȃ= tGjiuQVhgy^诲 t3jj^_[Ðhli^_[ÐU= lu }w?Ey} /jiu f@0F>xucF%D%Dt%Dt 70ME봐>7@EFN0E>0}5h0E^ÐkE FN0E%Du5hE^ÐUSV3k<\t 2V F| t h^[ÐUVkE<ƌ\FP$~tFPhY ^ÐUVujvPsb thhfh!vP t.Ph ^Ð= lt PhV; ^ÐUEl\PTÐUu uc@u VE jhhg hE@t kE<\tkE<\hÐ=t = u= u7=rudPh Ð0h@ Ã=rt~ hX j5lghgP` thhfhh 5lghgP~ t讥Php{ khTa U=r~ =r~5rh? Ðr4Ph! U=giug wX t ^Ð3^ÐUSWVPDžHu EH(F%Du >t0tF^ހ>/HDŽPPPu^_[ÐUWVE0>E%Dt0kE FN0E%DuF~>t3^_Ð>u+FEE>>uFM%Dt2F񐐐 u tFuuu E0^_ÐUhuu  E }u hh3uuj0u ;Et uh|ʐu`ÐUfEE EjEPEPj = lt3EEE-EE+EEPE PEPjO = lu&EEE fdEE9E~ÐUfEE EjEPEPj = lt3EEE-EE9E~ÐjE PEPj EEE9E~ÐU=thh50y uhz3ÐW uhH uhF0Ðj u hؐ/PoUjEPj50yw@u3Ðjh EPX ujEPh 50y7@tj5YPEP uÐUju u t ÐujuuuÐUj/u(E uEÐE@ÐU,G Ej5 G5y3 t3EjEfMfEfMfHE܋MHE܋MHE܋MH E܋MHE@Ef8uPhduh`E؋E9E}Q5yjj EPbfEtjE 0U z1f= ytrjWE tfEf yfHE܋ `IHE܋ `IHE܋ `I H E܋ `IHE@EܣdÐU,fEE jEPEPj< u3ÐE jEPEPj tEPjEPEPj tfe}tETf%EE?5EtE%M E%M @E` E@E t @;Eu}t}t EMHEMH ujE u EfEfMfH}tE0 $3MAEMH E@uh`= lt+EMH }t @H;EuEȋI+MH}tEEEE9EsLfEE$TEjEPEPjc #EtE$<uE{먐ÐUVE8u M ^ÐE0v~tFM fIf9HrE NHE F^ÐUWVE f0}u@^_Ð}u d`&f9wuE O 9Hs@G+G^_Ð uٸ^_U= tj  u5= t   Ph$ < 5dV=t= u P=  1#1t @ H PhP  5`Uhl }uËEppp p@Ph E@E}uÐU,f yh u y u3Ð5yj jhF t ef=Fu%F?Ft> t9 t t/)t* l5yj,jhF,t뛐 l֐Fbu f Gf y2E݈E߈EֈEވEj5 G5y GE5yj jEP9 !m f}uvEtt,tGt2tMWEMEPLE?EMHE.1~EMH EEMHEEMHE݃}VEmfMf MMiÐUV3F}6k<\E8vuejE PEPjX u3^ø^UV3k<\E8vt8tvF|^ÐÐÐU EuHEE9E|ÐEEEEEMM EEMEME9E|ÐUEE }]EE} MEM E}E ڃ}} EEE -EE u =E ÐUuu uÐUEE+u MEM E1+uE u؋EE u E ÐUVEEE %DtEE  EE MM %DtEE EE;uEEE8u3^ËEE %DtEE  EE MM %DtEE EE+^ÐUWVu=tLu uE@u3^_ÐuVu}uy0yPi@tӸ^_ÐE VW}_^E% t|)}jEP5 u]E=uMxEGF|E7jEP5 uE==Em}}ƃ}1DMjEP5 uE=3 E8FG9} UWVu=t ^_ÐE VW}_^E% )}jEP5 EPME=t3^_MxMGʈ|uEP5 u=uăE+6EP5 u=uEm}}σ}-jEP5 EPE=X3 M9G9}uEP5 unUE8uÐE%Dt E, EME8uU)x`f=dfuX=Xdt =Xdu h1h+5@a+ ll$lllƀ$l) %Qa Xd * @U)`f=dft]=Xdt =Xdu d=Xdt =Xdu `f %Qa Xd +<Td%@aTddf @atV %Qaǀ@hd-*@a%PS* ll$lllƀ$l)Ð %Qaǀ@hh-9*5@a뭐=df u;=@au %Qaǀ@LÐ %Qaǀ@TÐ=dfu %Qa @a $+"=df1u% %Qa @a d+ @U@'x`f=dft, %Qa Xd + @ð %Qaǀ@TÐU&`f=dfuQ=Xdv0=@as' %Qa @a + @ð %Qaǀ@TÐ=Xdt =Xdu r %Qa Xd +랐U4&x`f=dfuPhl-b(5@a+( ll$l=Xdt =Xduhp-)(Cht-3=Xdt =Xdu Xd=Xdt =Xdu Xd %Qa Xd $, 1x@ÐUd%`f=dfuah|-'5@a`' ll$lllƀ$l) %Qa Xd d, @Ð=Xdu `f=Xdt =Xdu d( %Qa Xd D, @ÐU$x`f=dft, %Qa Xd + @Ã=Xdu;=@au %Qa Xd ,Ű %Qaǀ@TÐ %Qa Xd , @h-%&5@a% ll$l=Xduh-h-%U#`f=dfte=Xdt =Xd1^u r=Xdt =Xdu d %Qa Xd , @Ð %Qa Xd , @=Xds6h-4%5@a$ ll$lh- %Ð=Xdu=@au h-ݐ %Qaǀ@TÐU|" %Qa Xd d* @UH"=Xdt =Xdu%" t h-" t h-a$x %Qa Xd * @ÐU!Cllƀ$l,$" t#" t %Qa Xd $* @U1 Qp!llƀ$l,! t+! tJ'=XduQaÐU!llƀ$l,=Qav h->#llƀ$l1 %Qa Xd - @ÐU llƀ$l,!hDaTdP#hlTdP|# %Qa Xd - @ÐU8 llƀ$l,=Qau\g!hDaTdP#Tdtllƀ$l-llƀ$l+hlTdP" %Qa Xd D* @U %Qa Xd 11( $- @=Xdu:llƀ$l, t Ð t2ÐUa hDaTdP"hlTdP!ÐUhlj!ÐUSWV hDaTdP!Tdf3E;w_Ek @&8fs }Oܐ8fvuFː %QakM D&@kE H&^_[Ð %Qaǀ@T^_[ÐUxf tt? %Qaǀ@Tð %Qa Xd * @ %Qa Xd *֐ U %Qa Xd D- 1@h-;ÐU t Ð tkÐUuTd%ETd%ExPPkh--E4UTd%ETd%ExE4h-EPIPÐUTd%ETd%ExPPh-iE4ZUQTd%ETd%ExE4h- EPP+ÐUTd%ETd%Ex1P=Ph-E4 UTd%ETd%ExE4 Oh-EEPPgÐUf%XdPDÐU ÐUx h-jÐUxn h-:UxF h- h-xj4`h-[5dÐUxQ h-+j4`h-5dh- ÐUhlQaPÐUx" 1t QÐ'ÐUx t UÐ/ÐUQa%x %QaH4`llƀ$l,j 4`ÐUWVwE t@;hDaTdPhDaPaPPa Td'hDa5$yG$yyTdPahDaTdPPhDaPaP>Pa TdEfEfyu5yE thhf;h-1hlPaPhlTdPllƀ$l:}thl5yhl5yX}tl1lƀ$l)^_Ullƀ$l,%ÐUllƀ$l,1ÐUlȊ"l8l lъ#l8 lɅt-lllƀ$l,ÐUxllƀ$l,Ullƀ$l,MÐUÐUTxllƀ$l,UQaEQa%x}tj 4`llƀ$l, %QaH4`ÐUjEPhgj  u3Ð}lr}ov }r}1v}}QaETdQahDaQaPG %QaD %Qa@EllME $lE8u߰ %QaHu hƀ'lZEQaÐUxj|4`xllƀ$l,ÐU=Qat =Qau2hDaTdPd=Td thlTdPI=gtk=Qanr =Qaov$=Qar =Qav=Qar>=Qaw5llƀ$l g4`llƀ$l:ÐUxllƀ$l,=XdsXd4YÐ1h-U`x=XdsXd4 h-~llƀ$l,ÐU t %Qaǀ@ %Qaǀ@ Ux %QaHP/ÐU %QaHx %QaHJPllƀ$l, t , Ð tJ 'ÐUQa%xQa%XdPP}llƀ$l,F t ÐC t ÐU` t @a @adf %QaHu x1I xllƀ$l, %QaH4` ÐU t @a @adf %QaHu x x %QaH4`llƀ$l,ÐUllƀ$l,ÐUdxllƀ$l,U4llƀ$l,ÐU xullƀ$l,RUxEllƀ$l,"UÐUxÐUXdPOP1 VÐU %QaHgTdQahDaQaPF %QaDÐU8\^TdQahDaQaP %QaDÐU@dTdQahDaQaP %QaDÐU(y=dfu = Ð3=gt#g4`5llƀ$l:U=dt =`ft yh-=rt=`ft yh-=dt =`f=xte yN tllƀ$lDh-H=`ftQa$ r߃vȃuաl 22lƀ$lQ yh-ÐUllƀ$l[fy ta=@au<=dfu3Pa Tdyllƀ$l]Ð{llƀ$l]Ð t;=@au=dfu $y뢐gllƀ$l]Ðh.llƀ$l]ÐUWV@a.$a  x fyc ME fy(y* !4aDaPahata|aaaV*) y=@as/llƀ$l+W2Q ) ydf t t t^_Ðj^_Ð^_ÐUt hDaTdP"TdtTd-)yTdy=(yt:=t1TdPheD tE)lhhf Tdt'llƀ$l-hlTd-llƀ$l+hlTdP\ U hDaTdP; hDaPaP) Pa TdEyPat0llƀ$l-PaЈETdЈEEuEllƀ$l+=tMu=gtg) f f@ 2_P thhf ÐPatEMEhlu U@a.$dEEwEkE_ÐEfy(y8E/E#`dldxddddddu E) ydf t t tÐj!Ð;ÐU3EEEz hDaTdP( Td%ETd%ETdE=dfu}uy$y EP< E) Ellƀ$l+}u}t~h. r2E ttltotrE1llM$lllƀ$l*EP E) M0EdfE2랐E4떐E8뎐3llƀ$l+hDaTdP hlTdP TdE7hDa5$yW $yE |'llƀ$l+hl5$y) 9llƀ$l-hl$y@PԐ t7tEEEyÐUhDa5$y $yEy }-+ ll$l=tO5y=gtg) f f@ P t2VhhfÐ}} $y@$yhl5$y ÐU@aPPUlhDaTdPhlTdPÐUahDaTdPhDaPaP=gtg)  @ EPa TdE=tZPu  uuuS t8hhfh.hlullƀ$l)ÐhlusÐU}hDaTdPhDaPaPPaff TdffE:hDaTdPhDaPaPPaff TdffEEM 2$y=gtg)  @ E=t`5$yP u5$yu t8hhfVh .Lhl5$yllƀ$l)hl5$yÐU hDaTdPg TdE=taPgP uugP` t5hhfh.hlullƀ$l)hluÐUhDaTdPhDaPaPPa TdgE=tdPgPZ uugP t8hhfh.hlul2`lƀ$l)hluEy f@u^ ll$l>u^UVu2 Tƃ|:~ |0+=t"VheG8 thhf^4`^UVu>u^ ll$l>u^UWVu }=uDat,P$l%P$l^_UWVu } P$l%P$l%Pv$l%P_$l^_UVu E}}^EM%P$lm}}^UWVu }G$l?u^_UWVDaDaDaƀ$l =Da|=t E 2/2*+*E *Tb3y yrddg`f@d8\Eg𥥿eg} tG= lt P] u [EE8tpTbTbME $lݐhTbgPTbTbƀ$l:= lthTb5gchTbgPTb@;*} ETb+*@EE*DaE+E* hE+E*lE*eE *tgP u\Daƀ$l?E. h hME $lE8uߡ hƀ$lEg$l^_ÐTdQahDaQaP %Qa2 D %Qa@E h hME $lE8u߀=PuKElƀ$l}lƀ$l eeƀ$l;eeƀ$lBeeƀ$lREEE 0EEEE ueeMM $lE9Euߡeƀ$l}= yl$luƀ$l e$luƀ$l =gt fgfytgtg y ` $ltgtg y `I$ltgtgƀ$l:= lthtg5y{htg5ytgtgƀ$l=f=yu2qEy) ffy= y yjhTdhyu uhtgh,.tg7htgTdP yjhTdhyuP thtgTdP-yyjhTdhyu uhtgTdP yjhTdhyu >htgTdPJ6UjjEPhÐUPhuht\ u3áPLEj5t\5y 5yjjEPuyxyH@5y}Eyhg yjhyw@t lg H8 E^_U졨 f@jc=tRjhhg5 j E H8X M9HDsLjEPu j3jhhg5 j ijjEPu j M9HD`=t蠣= jEPu j軴E I,= lt @, @$MuEPhe v ÐUV3|^Ðk<3\F|^ÐUSVu] u%Du_t $t@u +E}F^|g|gȐ+E^[U$S]PEP@= lt  E>f =fA=MfIfH =@"=@#[ÃE E܃8t$0EP- u= ltf럐EP u3[ÐUhH.5|g|gÐU|g|gE<\u,|g|gEbt*ft5ntrt#ttEø Ð ÐÐ Ð ÐUV|g|>"t Fi u>"t33^ÐF|P+P}^U|g ==f@=@#|g8't3|gÐUSVu ;%Dtà Ã79Ev3^[Ð|g|guP  t EE&%DtÃ0릸^[ÐU|gEh|gP=|g9Eu3á=f@=@#ÐU E|g80x.|g|g%Dt|g |gXu|gEA|g8nu|gE (Eu|g3P  u |g|gEuP  t`EPuD u3Ð|g8.t'%Dt|g |gEu3} u-E|gÐ|g8.u} t뗡|g%Dt|g |gLu |g[= luO}s=f@D}s} t =f@'}r} t =f@ =f@=M=@#ÐU S|g%Dt [Ð(u;|g u3[Ð|g8)u|g[%Du_t $t@u5|gEEPl3  uEE|gg'u [Ð"u [Ð.>LUWV=x#u3^_À} t05=K ty t١=ȍQ؋ y t=f@=@#=fU t5=r t} t-=(^_U=x#t P; u3á xu =E|g8)t=x t t5=J t|g8,u |gŐ|g|g8)tq @DE  ,yHD5=-=(q 7=9EruP 33ÐU$M u3Ð|g t|g(t߃-.tU[|gw t t|g8]t땐|gi txxv=x#u ]|g|gPEP< u-5=9 tEP- EPwJ |gx>t Ð|g=x#u|gPEP Zw EPItU(E|g%Du|gPEPC uÐOh|.EP襫 uBE|3gPEP uh.EP蟫E.h.EPN th.EP9 u|gPEP u3Ð|g8)t  ߐ|gu uEPSJ ÐEE8tEPE0貪 uߋE8EMI}t$E$<ugE|gPEP tIh.EPC uE h.EP& uE@|g8*t눡|g8*uE |g|g8)t8*|gÐUI|gE, uYE3M8(t3ËE@|g=PEP|t tЃt뼡=fMfH5=> ==@#=f@=@ÐUjhÐUjhÐUH u3c|g8-u!x-u|gjh`Ð|g8+ux+u|gjhӸÐU|g|g(@!t&&MEx FEx搐|g8-t EА|gE|g8+t3|gE또|gHEEPEPt tʃtd3g빐E|gÐ t}|*=fMfH=MH=@#Ð5=Du5=GÐEEt*t+-~ |gjh.5|g =|g@%D'|gÐUÐU|gEEM 8uEEE8uE8uE|gÐ3Ud3ÐUh0q u3Ð|gE0EEE8t0] tE8t!p t uE|g-=(ÐEP tUSV]u ƃt tt$38|3^[Ð%D%^[Ð%D%^[ÐUuBu Bu? t0u ? t3Ðu u=u ? t uu ߐu uf֐UuAu Auc? uu T? t5hu8E thu $E t Ð3u ueUu!Au Au> uu > t)uyg tu jg t3u ueU5p\hhTa< t l\3U=l\u3ál\HPlÐUSW38Vu tL]M } ~"Vj@tt tߋLjC< uKtu9]t ^_[Ð3^_[ÐUu;Eu}u3Ð=p\uf0 u u t Ðl\9Es9l\9Et u떡l\9Evl\9Et utUjj5p\V 5p\hhTa l\ÐU= 0txgHLHPR2 uUSWV}LLfh 0CWh"0WEX;]uu¢WE趢;Et1uh6ɡW3wuE芢+Eƀ6W* t^_[Ðh$0u# u3^_[ÐVhhTa tuh`d<5p\h@\h`d舝 !0l\uU=p\u%p\!0El\Ta3Ð= 0t xg9Es)xgjj5p\\ juxg9Ew`xgHL;EwPu t?HLHxgjHL4L5p\ HL4Luxg9EsE+xg^u XGF XG}IrGE^_ÐF~ u7E9EtGE^_ËEE EE3^_Ã*tEEǃ$tb*t%.t[tg\.#EEe}t E8t8 uEEEEψ8E,>u֋EE EEEEEF~^u F~E@ uGE^_Ð-u*Ext!F~]u E-E0E@;|5EEψE}IF~]uEMHjEȊIEE}IrPF~(uF} |4cGE^_ÐEE܊MEEEEME)u+E9EEE EEM܋M܊ 1n:eEEEEπ1]U WVuGE"EGE\GE} |ۀ=XGtWV_^_À?u7GE9EuWV=E tE^_F~u3^_ÐWVE uF~uݐUSWVu} GG.$G8Gt3^_[ÐF~tΐ>uĐ^_[ÐjFFPW tjGG4G뉐GG4\GvGGE<\Gu ^4E_[Vu? cE\GM+G(GGE<\Gtދ\GM+GEuVu u;WVE tE^_[+uڐF~u6F8FtG(ހPFFPW uNWVgE u;wt4UWVu Ef=u tMfAEfxrp$@P{MAUVuf~sfFu-F`u%~tFxzt V{ t^3^ÐUEfxs3ÐExup$@PMA t׋E@xyÐUEfxrxt@x\u3UE@yM v3Ð/|t}tۋEf@Mff=v뿋Ef@␸ÐU VEffEEf@E@#u u3^ÐEPEPu@ tfMffHMffEEfUff#Uf fuff#f fu5`' tEf@^UEPEPu u3ÐEMf(EfMffJf!ÐUWVuE~#u ^_ÐEE^V t V{^_À~"tF kV t3^_ÐVE t`EEPVFPj_ tl7Vdv^ElF#f~s>F$<u1&#V"E }c}VU=EP u3ÐE@yEEEp$Py 5 u말yHf=uEEE5yu- u}A_y@yxM}~f=t}y@yHMAEp$uy Byf=t +ME9Et MfAEp$@PMAUhhg/E x(@(yE@yEEEyEyEy9EfEf tfMf=yuáyE.)f=u5yu+ {EME M5Ð3ÐUEyU VuF;E u ^Ð} }E u3^ÐfE uE `tu Vy"^Ðf~r*V tVy t fFfFfFu$F`tF$<u fF fFf~eF[E E$<utE =t=t@6E F$<t E^;F^fEfFE F$<tEF^F$<uF=t =tBfFF9E tF$<t(E $<tE $N:w ofFF- ]5\.$xE =t*=t/=t=t!=t"=t+!fffEEiffEEE =t=t=t=t"ËE =t=E -z.$eEEːEEaWW__WW_E = ==t =t 느뎐E =B=E - .$^jv___bE -5V.$LZJ5JJf$:J$4_$4_D x_<x_U5=UExt@xxu3U$WV=EP u3^_Ðu[EE@yEEE܋Ep$Pey u 떐yf=u$ vE/yyEEEEE.EE yy MyE=U =AyEEp$5uy u-=(y,f=uE sEE9E|c =fA=p$@P3 =A5= t u9 uPEyEE9E}f=}EE-=(=MH^_U5=P 5= tEh=uW#5=; tu|Ð5=EP5=+EPuh=U Ðuh=TÐUEfxs3ÐExup$@PMA t׋E@x{ÐU5u u E 3ÐE@y5+f=}t ̐f=uyyEyMEEp$u%y tyEyEf=uy9EQf=jyyEyEEyM9uE E ME MyE ÐU,WVEE= ltE}hg f@Hf8d @E}u8 @EE ID+M艈r @Du3^ÐUErUErÐUErÐU=x#u3á=x"t 吡=fIfH=ȋI=@#=f@ÐUV5=Vmf~sj6 F- w\.$8HfC<3 h h$0^3^ÐUV5=VF-w8.$>؈^Ðf>fff搃>؉ڐ3^ÐxUV=E-=(=EPuY u3^ÐE@=t6=to=tT=tq=tz=빐EȋUff9ffEf@^ÐEȋUff9ҐEȋU96EȋU9ܐEM0ff뚐EM0UV=E-=(=EPuQ u3^ÐE@=t6=to=tT=tq=tz=빐EȋUff9ffEf@^ÐEȋUff9ҐEȋU9EȋU9ܐEM0ff뚐EM0U u3ÐU u3ÐUV5=VF=t'=t,=t-=t=t=t^Ðf񐐐3^ÐU(WV5=-=(=6=WV. u3^_ÐF- .$ ff/f/ff''ꐐ]G]]F]EMEMEMEM_VW}䥥_^VWw}إ_^VW}_^VW}v_^EMEMEMEM_l4DPX`l^_ÐUWV5=-=(==WVʢ u3^_ÐF=t!=tB=tK=tXf>u뻐fff>f^_Ã>tً>鐐f>tff+f6Ӑ>t+66ِUWV5=-=(==WV u3^_ÐF-wr.$8^_Ðff9ff9萐G^tfyȐG^u搐j`x`xLLLfG>U u3KÐUWV5=-=(==WV u3^_ÐF-wb.$?u>t2^_Ðf?uf>tff3f؃?u>t 3뾐z69xxx_UWV5=-=(==WV u3^_ÐF-wb.$?t >t2^_Ðf?tf>tff3f؃?t>t 3뾐zxxx_UWVE @=t=tJ=t7=tfff>f^_Ð>o>㐐f>Zff+f6ɐ>C+6ѐE&?뚐]G]]F]EMEMUEEMEMuEMEMu_VW}ܥ_^VWw 6 6c}Х_^VW}_^VW}v_^EMEMUEtsEMEMuEMEMu_'z4hhH`hhthh6U=xu3Ð=@E=(PEU tԀ}t5=` u)뺐u5= t5=$Ґ=@#Uh[ÐUhKÐUh;ÐUh+ÐUhLÐUWV=E-=(=Eu tu u3^_ÐE@Pu< t6dEU򥥥^_ÐUhÐUWV5=-=(==WV u3^_ÐhV thW tG"ffGfG= ltGG#fG^_ÐUWVu} f~sfr3^_ÐG$<tF$<ftf~u&hW thV fuhV^_Ðf~uhWfuhҐf~ShڐG$<t F$<u.W4 *V# ^_Ðf~tf~uF@PVLftfuG@6PW-f~u hAfu hf~u hfu hf~u hfu hf~ufu hfuf~u hf~ fUhuLÐUhu8ÐUE@$<u3Ðu uE@$<sE fI fHEfM fHÐU=Ex"u!PPuEPj:Ð= ltE@ UE@ UE)ÐU uE 369Ð}uhu tEE@%E M)HD  f@HfE @DEu tuEPu ÐuuEPj9ÐU= luLux u=juu j9 u3ÐE @jEPu j^9ÐuuU=@"ÐUE|g t5=9 u3Ðh5= tE = ÐUWVE|gN t5= u3^_Ðh5= tE =򥥸^_ÐUhjhXb\6 =Xb @D,y=6T u3#|g8t8,t8;tאÐUWVuE |ghjhXb5 =Xb @D,y}t耋 u3^_Ð# t=x#tx"uVp^P^_UWVEEE|g u ^_Ð5=a t|g8,|gEEE%|g8ht 8lE t"|g|gE|gPh=|gPh=7 E u|g8txt@%Du7|g%Dt|g |gxu$EE0}t EE8 E6oE4=fxtfxuEl}t EEME |g|g E@|g8tE8suH5= uh5= u3^_Ð5=hdJ:=fxu $=EPhdJ5dJ^_hdJ5=릐UWVuf} E|g u3^_Ð=x"t P=x#uAP t=f@f=F)hXbn tf>XbVWhb_^|g+E^_ÐUE@%),y= fIHfH= ,yHuu =PjS4 u36z=f@=@#= ,y= fIHfHÐU=(=9=r3ÐÐUE8u 襌ÐEP u3Ð蓀|gEEEEE8t05 tE8t+a tEP uE|g-=(ËEP uUV5=V u3^Ð~#t V tV t f@ fFfFFF"F#fFuF`tfF#^Ðf~rV* u끐qUSWVuV4E E ;t ^_[Ð=40t6V tVM E 8uKO%Dt M  %Dt E  E ;u OFE u@^_[ÐUEx,ue3ÐE 8*EE@,EE@EEfEE9EP= lt E EE}uPu  = lt8E0@Ph> EPuE@P) Ph>;EPE@Ph> EPuE@P Ph(>EEffEEEPfEfMf }tEPh0>I}uj ÐfEfEt j yj E@EE6  E}tEuZU} u#uu, tE8*u Ðuu uޟ uuuÐUV5hF9Pv$ uh^ÐUWVu=h$ t!ff9uG9FrO;Fvދ^_3^_ÐUHVuh E@$E tNj(9PEP0P?0E tj.EP1E tEPV, u}tE^Ð3^ÐUhhg试 u3uj5,0̜ ÐU|Vh8*u ^Ðh8?t3^Ðhh8t%Du3E 770EEj!5hX/ t#5hEP/E!Fhj.5h/ t#5hEP\/E.Fhh8t_%DuSh4>5hQ0 uj5h.E5hEP.EE5h}t}u }}t }}}u uX t ^ÐE8*thhgnE tuuP uȋEEhE@$E tE9Etuuu t1EPCE tuuPa ^ÐU V5h$E@EE9EsuVI7Uv$ t1F9P,h:>h<>V F F0EF0Eh^ÐUHSWVuEEE} uEE E 0F>%Duǃ+t-uEF3ۉ]E]]M } )} } m܉Eܸ mԉEEM؃}M } ؍G,} } m܉Eܸ mԉEԍGEEF>%Du.u#EE u.tE}t0uE̐}uE^_[Ð]E]}~ EME]E 0Eteu\3ۉ]F t +t-uEF>%Dt4} k ǃ0F>%Du}t7)]]E 0EE}H>VW}u_^Eu$E  [>rH>} } E]~ t M] ukEP}} EuE$i% ]}t E^_[ÐE^_[ÐU@SWVuEEF>%Duǃ+t-uEF3ۉ]E]]M } )} } mE m܉EEM}M } ؍G,} } mE m܉E܍GEEF>%Du.uEE u.t߃}t70uE u E^_[Ð]E]}~ EME]EteuX3ۉ]F t +t-uEF>%Dt0} k ǃ0F>%Du}t)]]}>VW}ču_^Eu$E  [>r>} } F]ě~ t M]ě ukEP}} EuEă$" ]}t E^_[ÐE^_[U}tu EÐu hEÐÐUE%EE%EMEE0ÐUSWVu} ]{ E=]$Et E>EtE>EEЉ  uQE@uVI ff f Š*Ȁ0K  K0E@EM++ EEMEE E @EЍ3];EPK'EEEE7.EE E @EЃ}Xu>?E܍3]EЉ uE@uAEEM0K#EE܊%M uE@tEM++ ~ EEME}EXt;ot xttfEhE?EIE?ꐐE@uEE E VW}ȍp_^EPEP}}E@PVWuȋ_^ ؃}t E ?Et E"?EtE$?E(E;tC0ME}uEt EE.E;tEE Cჽ~7EEM݁EEEFtmEH } ~ 0MEME슍0 ME0E9Ew}EFu+-MME%DtEeMM+E EEMOE@uEE E VW}ȍp_^EPEPE<|<PVWuȋ_^(؃}tE;E};0t E&?Et E(?EtE*?E(EEE~ ;t}|0 ECMEEu}~ EE.E<|<7 z9E~uF DuV3 u:F D>V:xENFVEP F t^E^ÐUSWVu^~+؉~F Dt3F 0C+FF 0C+F 3;} V@ ~!SWF P ;tN7 ^_[3^_[ÐUVuF $<tF u ^ÐF $ F ~u VJF9Fu9F Du3F 0C+FF 0C+F 3;} V3^ÐUWVu~ F u?}F d?N5hF tN F NאF lN 0CFFW t F uN @^_ÐUWVuF 0C+F }F 0CF^_Ð9>~>^_ÐUWVu~u VF uF N F Dt$l?9=,CvG @tWyFFF tF 0C+FPvF P xFF^_7&Ð>tN N F tf ^_ÐUWE }'_]}fEf fEmmU]E]U WVu 5eEyV-=(EAWVu ETE^_ÐUWVu>~u;u^_ÐUVEEu^ÐEu^UVEEu^ÐEu^U}}EËEÐ!r3ãør3ãU5(Eu uÐUcuÐUE wn.$`4uu u Ð}7u3EEPjuې}u3EEPjސ}u3EEPjƐÐ333333444ÐUVux FF^ÐV^U SWVu }EEG u 3^_[ÐNoO;|ƋSj wuOE t+]])_G 0C+G 3;} W}tEE^_[Ð+ ~?W@yE9Eu_U|Pu u(ÐUVuV#Vu u ^ÐU SWVu t}tE8u 3^_[ÐE x+E at:rtQwu t؀7  hSup E }2 tf̐ t3븐EF tE 8ruF E 8au ujju *F 3ɉNN 0C^_[Ðs  #t,E+USWVu} ~}3^_[ÐEE ؃>+VX@uE H+u ȋE+^_[ÐN;rËWvu ljE)>~F 0C+F 3;} V+wE^_[ÐUSWVE=$Lu6(L $L$L (L,L(L L$L,L4LE؋5 LEu55 L9= 88v4Lu54L>t;w ;K$;w9=,Lu$Lt3^_[E}v54Ljj,L;t=Ee ǹ t>Ǚ+ډUNjE%,L+4L+؉EEe E;dEE=vh@Cmu@uW =4L,L8E+ED,L;t,Lȋ ,L$Lu L;s0L L L 954Lu L4LF^_[ÐUWVu= L$,L9u=4L^_ÐUSWV}Gt WG+8Eu v t9uu^_[ÐE EE9EsEEEPuV ;sŋE;rE+ 0L 륐UWVuf F }}i~tcF u]>E E}ujjF Pa +E)} F u+ ~'9}"F+F;EEFE)F t FFf uu F P E=F t5VF t f FFuu F P E}u ^_Ð3^_ÐUVE8}E@ t ؋%E@ t?3@ txt @ up+pjjE@ P@ E |uE^Ð^U8SWVu} ~<}~6F $<u~tF9Fu>uF DuV3 t 3^_[ÐF 0CEEE F9FrdF urVWuF P ;t N 3؋Ù} ^_[ÐV@uE H+u ȋE+^_[Ð]ENM+ ~ȋ;rËSuu )^F 0C+F 3;} V+uF Dt!F uSj vL t V?E^_[U VEE=l?.hl?@uE9E3^Ð p?l?5l?Vj 5p?u E t+uu)5l?5p?y?0C+p? l? 3;} hl?!8~}YMEE^Ð6rãUWVu tE0Fu E^_ÐEPVu^   ~kE=~2"E0Fs 8F^_@F^_Ð~HFM]EEM^_ÐE=}"0F^_Ã}PFM]EEu^_ËŋUZzr bMJ+Ë͋E u@U; t Zzr bJM*UWM ~ߎNj}E uH+_UVW+M ~ߎNj}u tHw_^UVWUߎNj}Nju ~+t8tف+ ~_^UWSUߎNj}E ~'ف+  ~E[_rãUVE E?u?t% ?h|?uu ? t^Ë^ÐUuuu uQrãUSWV3?$<u(=?t?9?u$=|?u?Duh|?3 t 3^_[Ð?0CEWjuSE t+)=|?=??0C+? |? 3;} h|?0}t)8 ?@ ?Dth|?u@t/^_[}E?+Ë `h|?F@u۸^_[Ð80Br;0Eu0E ÃD$=|4E0ET$ 4EUVEEEEEEѹO~+ttف+E_^UWߎNj}+ыE uH+_UVWߎNj}׋u +ыtHw_^UVWߎNj} +ы}ǃ~/ttف8+_^USWVu ] G?t8u?t +E^_[ÐC;tېUWVu u 3^_ÐV"@P tVW0^_ÐUWߎNj}+H_UVW+M ~ ߎNj}+ыʋu tHw_^USWVu} C;t8u;t^_[F~u3^_[ÐUWߎNj}+OE u@+_USWVu ] G?t8u?u +E^_[ÐC;tېUWVE u&juhEhEhEjjjjjwEPE;Et8FuVjQWjF}u E^_ÐE^_ÐUV?u?t% ?h|?u u ? t ^Ð^ÐUE@uÃ}tEMɉEÐ>rãUVl?95,Cv F u^Ð3^Ðr ãr D$3ãU5(EE PuÐ;USE %u+% Et'ʁHe t-] t?U E[]UEPh8 STu }3ÐÐrãUVW+M ~[ߎNj} ыEt++ы}~-ttف+ t_^rãUWVu u ^_Ë=PH@u K^_Ð^_Ðrã(rã[ 8u88 a.outcoreSource path: %s usage: sdb [objfil [corfil [directory-list] ] ]'%s' does not exist @(#)sdb.c 1.1 87/11/08 b%s: %d mainr/dev/tty%dNo previous regular expressionNo matchNo previous regular expressionNo matchFile not foundrNot that many lines in fileNo executable code at this linelCannot set breakpo^intCannot set breakpointCannot set temporary breakpointno processNo breakpoint set8|Cannot set breakpointBad addressNot stopped at breakpointCannot set breakpointNo breakpoint setNot stopped at breakpointCannot set breakpointregister variableCannot set breakpointno process ? No breakpoints setAll breakpoints deletedno processMicrosoft (R) SDB for XENIX-386 V2.2.2Copyright (C) Microsoft Corp 1986. All rights reserved.single letter command unimplemented Cannot set breakpointno processNo executable code at this lineTBad addressNot stopped 8at breakpoint=%s breaksdb : :^ missing ')'bad breakpoint commandextra input ignoredbad registertoo many breakpointsbreakpoint # or '*' expectederrorCan't find %s %s() in "%s" %d: %s %s No breakpoints set<%s>%s:%d %08lX%04X%04X Program terminated normally (%d) Program terminated by Breakpoint at%s: %d hangupinterruptquitillegal instructiontrace/BPTIOTEMTfloating exceptionkilledbus errormemory faultbad system c8allbroken pipealarm callterminateduser defined signal 1user defined signal 2death of child processpower-fail restartunknown signal %d signal %d - %s tx(@Xp%d: %s %s %dunrecognized formatl0x%0%s%d%s%cl%%s%d%s%cl0%0%s%d%s%c  %3o0x%08lX0x%04X0x%04X Program terminated normally (%d) Program terminated by %s Program ter8minated normally (%d) Program terminated by symbol not found%08lX%04X%04X/sdb: can't open %s sdb: can't dup file descriptor %d Core file ignoredrNo core imageBad core file: ignoredBad core file: ignoredBad core file: ignoredcoreMemoryFile Text Segments %s - '%s' MemoryFile Data Segments %s - '%s' Seg # File Pos Vir Size Phys Size Reloc Base 0x%x% 0x%-8lx% 0x%-8lx% 0x%-8lx% 0x%lx rb0123456789ABCDEF0123456789ABCDEFeaxebxecxedx8espebpesiedidsesfsgssscseipeflaxbxcxdxspbpsididsessscsipflOVNVDNUPEIDINGPLZRNZACNAPEPOCYNCe%s=%04X %s=%04X %s=%04X %s=%08lX %s=%08lX                          $  (  ,  L0  4  8  <  @  D  H 8\ L  P  T  X  \  `  d  `h l p t x |   @         aaaaadaamaasadcaddaddrprfxandarplboundbsfbsrbstbtbtcbtrbtscallcbwclccldclicltscmccmpcmpscmpsbcmpswcs:cwddaadasdecdivds:enteresces:f2xm1fabsfaddfaddpfbldfbstpfchsfcl%exfcomfcompfcomppfdecstp8 fdisifdivfdivpfdivrfdivrpfeniffreefiaddficomficompfidivfidivrfildfimulfincstpfinitfistfistpfisubfisubrfldfld1fldcwfldenvfldl2efldl2tfldlg2fldln2fldpifldzfmulfmulpfnclexfninitfnopfnsavefnstcwfnstenvfnstswfnstswaxfpatanfpremfptanfrndintfrstorfsavefscalefsetpmfsqrtfstfstcwfstenvfstpfstswfstswaxfsubfsubpfsubrfsubrpfs:ftstfwaitfxamfxchfxtract 9k99fyl2xfyl2xp1gs:hltibtsidivimulinincinsinsbinswintintoiretjajaejbjbejcjcxzjejecxzjgjgejljlejmpjnajnaejnbjnbejncjnejngjngejnljnlejnojnpjnsjnzjojpjpejpojsjzlahflarldslealeaveleslfslgdtlgslidtlldtlmswlocklodslodsblodswlooploopeloopneloopnzloopzlsllssltrmovmovsmovsbmovswmovsxmovzxmulnegnopnotopprfxoroutoutsoutsboutswpop9Opopapopfpushpushapushfrclrcrrepreperepnerepnzrepzretretfrolrorsahfsalsarsbbscasscasbscaswsetasetbsetbesetesetgsetgesetlsetlesetnasetnaesetnbsetnesetngsetngesetnlsetnlesetnosetnpsetnssetnzsetosetpsetpesetposetssetzsgdtshlshldshrshrdsidtsldtsmswss:stcstdstistosstosbstoswstrsubtestverrverwwaitxbtsxchgxlat9Cxor??????dbalcldlblahchdhbhaxcxdxbxspbpsidieaxecxedxebxespebpesiediescsssdsfsgsstcr0???cr2cr3cr4cr5cr6cr7dr0dr1dr2dr3??????dr6dr7??????????????????TR6TR7ST(ST,ST(             $ ( , 0 4 < @ D H L T X \ d l t x |                     (08@HPX`hp9zx $,4@HPX`hpx (048<DLPX`dhlpt|  (,4<DLT\dlt|9 (,04<DLTX`dhptx| $,4<DLT\dlpx|  $(,048<@DHLPTX\`dhlptx|9L\\8]8]ZZ4Z(Z\\8]8]ZZ4ZXN \ \ 8] 8] Z Z4Z(Zx\x\x8]x8]xZxZ4Z(Z\\8]8]Z9Z^tX0\0\08]08]0Z0Zl^xXP\P\P8]P8]PZPZ^X\\\\\8]\8]\Z\Z^XZZ Z Z Z Z ZZ|Z|Z |Z |Z |Z |Z |Z|Z94Z4Z 4Z 4Z 4Z 4Z 4Z4Z(Z(Z (Z (Z (Z (Z (Z(Z8X,X V\lSpSX^^4T4V4ThXVXX X$Xpj`j j@jjljjjjhjxj9 [|j,j(j0j$jXKXKX4MX4M48]48]H8]H8]\\8]8]Y8] Z(]XHX HX HX HX HX HXHXDXpX@T@X<X0XlXXL\L\[[X 99NXdXhX4Z4Z$X(XXXXXD[D[D[D[D[D[D[D[D[D[ D[ D[ D[ D[ D[D[XLXL\h\XW8]KKVX`h`XN\NXX9PXTLXTLXTLXTLXX\SLXClD,FF8GHHI W W W`ZVVHWHW@S4S4T4jBCFf72-Aa9 (P./ki53Fcf^_g8qcf)Q/0lj64>BC*>+C8qffgy!x ST(ST(ST()),STST(ST()),STST()AXDDCL,? (????QWord Ptr TByte Ptr Word Ptr Byte Ptr 9J?????? ( ( ( ( (??? No Code ??????++ - core dumped charintshortlongfloatdoubleunsignedintstructunionnearfarP.X.\.d.l.t.sizeof*/:%+-<=>=<>==!=&&||=+=-=*=/=%=...(.LD..D.8.H.@.`D//D/0D /0D//T/d/t /$/D9&////h/P/(//rb   ???%04X:%08lX%04X:%04X%04X:%08lX%04X:%04X[BP-%08lX][BP+%08lX][BP-%04X][BP+%04X]SI%s DI%s ??%s BeginEnd %-16s %sInterruptNo such file/directoryNo program to debugI/O errorArg list too longExec format errorNo child processesNo more processesNot enough spaceBad addressInvalid argumentToo many ope9 Qn filesMissing ')'Bad breakpoint commandExtra input ignoredBad registerToo many breakpointsBreakpoint # or '*' expectedUnable to open fileBad type castBadly formed typeOperand types incorrect for this operationNo previous regular expressionRegular expression too longMissing ']'Regular expression too complexNo match of regular expressionSyntax errorUnknown symbolExpression too complexDivide by zeroNo symbolic informationBad type (use one of `ABDILSTUW')Bad flag ::No code at this line numberRegister variable out of scopeCannot use struct or union as scalarFunction call before 'main'Bad radix (use 8, 10, or 16)Constant too bigMissing '"'No closing single quoteNo source lines at this addressOperator needs lvalueOperator must have a struct/union typeObject too bigMissing '('Too many watch objectsType conversion too complexBad format stringNot a text fileVideo mode changed without /S optionFile errorInternal debugger error: %d: rb/Enter directory for (cr for none)? Enter directory for %s (cr for none)? rb:+/:+charintlongunsigned charunsigned intunsigned longfloatdoubleREAL80CPLX32CPLX64CPLX80BOOL08BOOL16BOOL32ASCI:IASCII2ASCII4char *int *long *unsigned char *unsigned int *unsigned long *float *double *REAL80 *CPLX32 *CPLX64 *CPLX80 *BOOL08 *BOOL16 *BOOL32 *ASCII *ASCII2 *ASCII4 *char far *int far *long far *unsigned char far *unsigned int far *unsigned long far *float far *double far *REAL80 far *CPLX32 far *CPLX64 far *CPLX80 far *BOOL08 far *BOOL16 far *BOOL32 far *ASCII far *ASC II2 far *:QASCII4 far *char huge *int huge *long huge *unsigned char huge *unsigned int huge *unsigned long huge *float huge *double huge *REAL80 huge *CPLX32 huge *CPLX64 huge *CPLX80 huge *BOOL08 huge *BOOL16 huge *BOOL32 huge *ASCII huge *ASCII2 huge *ASCII4 huge *???p7x7|77777777777777777778 88888888888$8,83848D8T8:d8h8p8|88888888888888888888888999909D9X9\9h9x999999999999:::::::::::(:4:@:D:\:p::::::::::::;;;(;8;SCALAR *[]struct()voidPROCEDURE .TRUE..FALSE.%#g%#.14g(%#g,%#g)(%#.14g,%#.14g)[0]%s/%s %s/?????? 0x%04X, line 8dXbduoxXdiuoxXfe:GEgGcs%04X:%08lX %-16s%04X:%04X %-16s%s *PM-+ 0123456789ABCDEF0123456789abcdef0x0X-+ -+ (null)  00 hnll3::,Clb:    ((((( H     -csh/bin/sh ??? :g:? $@Q??4GA>    -csh/bin/sh ???:?O ./bin/adb-9 755 0 0 173664 4145163072 5451 :zk,;Jd `@? H?DG;PP::~:ã3贔WUuu ujÐUVju ujEf+EPu uj^ÐUVju ujE*EPu ujr^Uju ujZÐUju uj>Uju uj*ÐUVu u(;^ÐUVu u;^ÐUVu u:^ÐUV=Au3^ÐE:7ju 5AuIE=uƋE @EMEN ƋE t6ju 5AuE=wVEPu ^ÐU8WVuEԉEȃ}؉E u3^_Ð=At{t}t }t Euu 5APVẼ=tt84@E^_ÐE}u=Au h9tE>E@EVu t@jWu艤 @t7}tjEPuת @tfjEPun @t84@:U WVu EPEPul @u58uuuF tExExE+x^_Ðt84@^_ÐU=>uEM I9HsÐE @ M AM;A3UE}tE8 >jj4K tAC(PAPA2,u&jj t>? >i2PG2 u 0)=Ku5>1A >E H%/t' !$E:E1*u, H)EE.EE >HtM +EEE=H=E|1LWh lmt#w >}*H%}t5H36EEjjR u56f}ؾAjjw.A^EE}t5HK40Ejjo}ؾAh,uhAh uuEPj8&@AuإE׃tH+ŐH-Pg@먐=OuO-P*;OHphD7\:t=>?5 + >=Kt=Atf=At ^_Ð3^_ÐU EElALE >;jEPhAd @t E@$@<@u 3%%Eh EPlA>ÐUfAfElAlAP*E5>EPÐU VfAfE5lA*E5>EPflA^U VfAfE5lAD*E5>EPlA^U VEEu  ~k #E:FuFB { .$\h!P jhPv= uhTV/ElhV=%thXhZV! =%t/E;.=t =t^Ðh\0hdhh붐jvhl衡 u hphrV=>u ht말E쨀tMAlAEfAfEEEhvjEPb ^Ðjvhx tjvh uhhV=>u hgAlAEfAfEEEhhhVEP5U/hH/hV]!gEEfEfEEEhhV%VEu h =%t hh;[Eu h=%thhV)E=%u E$}uEEhVxEt/E%Pudh-uuuu h,E%Pu}uyEEhV E;%PE PZdhX}u1EEhV uE PO hZ,E%PE P}uEEhVP E%PE Pch+%hV E%PEPuch+EFE쨀 PhV ju(chg+Et;hV} EШtjubh*+ fIfEcEhjEP] Eh*jhV E#;Z;E쨀tMu ^Ð}u1EEhV uE PO =%tPhD*G}uEEhVL E%Puah)uE P=%tPhEEhV uuh)E#EbEhV E%Pj ah K)uu%h 0)E#Ew1ahV9 uE Ph(E%Pj`Et h#h(;$hV ~h V uE$OMh"ΐh$V EtuE}QECEÐ} t57fEfCjjY} uԐ+-:q^D|U(*t"-tY@tD~tg >ujjjhC(8)t5두>U0WVEjT tu,hp>FPE u4=tp>PN t(5Ef@fCE@C=t0P u;0Pj u'E=0#!P ;C@EPEh>n;h>kCAAr=0"uC(PCݐ=0^u >P=03^_UjhP5>W tdjhT5>> tKjhX5>% t2jh\5> tjh^5> uÐ; 3U EECEp>t;p>PE|5EEEE} |EUVp>>s0Fj u݁>r^ÐF>r^ÐUS]0|9~ a|f [Ð3[ÐUEPO t E0ÐEP t#E-+t E EWÐÐU}0|}9 Ð3U}a|}z~ }A|}Z Ð3U=0\u 0P u#=0_t}t0Pt t Ð3UuU t E0Ðu;X t E% øÐU@u u5PPPhI tÐU WV3EEEffEE@EfLAf@EjEPDEf@EfEDEEjEPEDEEjEPaf*f=u3Epfǀ8f=u<3EEfPAfEEEjEP E1f*f=uE$8<uP3^_fǀ8f=u@3EEfPAfEEEjEPEErf*f=u E$8<t@EffEE@E; jEPMf@EfEDEEjEP*EDEEjEP EDEEjEPf*f=u*3EE}u$fEfEEEj>@}u?f@EfE}uEDEEEjEPCE@u Pjh@ESffu.f@EfEDEEjEP&lfu-f@EfEDEEjEPfȐft_=@uVEP t5E mEE0EEP uNE>u8A+E>VAu襥^=@t@}},@^_ÐuuVuUK5@ Mt5>2A=Ot j }^_ÐU,WVE E}E EEE-+u}fu2E}tE8auAEfEfE6}tuhAuhAfEEE=@tE^_Ð=Ot j E@EE<E}t>i u}at}At hl{E o.$(4uhtKcuhx搐h|uhA A >@AP5 h 5A5 h 뫐fAfEԡ@EhuEP@ EPh uh萐}CuEP EP" >x=tEPh0 Ԑ=tEPhސEPhύ}쾸A>@=@uLjdA}SuEP EP~ <]JuhAAE uA+E@>Au쥥EPhuhuhEPhuhEP5EPhwu5huhYEPuj j EPh#uhEEE$h >EEfAfEjEuEPEu܋h 5 >Sj E>E8tEP E8"uE8 EE >PHA<u搐Eې5544444444444444444444445434444444444444444444444444444440p1@134@344444443242x01`04142P2`244443440p1@12434p124444320p2x01`0142@2}t5>GA<]MK8U>E=0 uQmE uR58Ejx54Ejx>juhhh =jjcjÐ}u5Tgjj[xEPcyE;Etu58Ej2xh(a  >ÐUe} | }~}@u(}@u @E4`Ph,ÐuHÐUEAEjh?hAq9 @u5=AuN=>u?@ ?A;Er!?@ ?A;E|}}5D9EÐU} t};u Ð3U=0 t<\=0 t0ÐU=At00Ã=>uj>>j5>5>Fv أA=Ot j=Au>>8 u>>>>0 t>0ÐU$P t >3Ð0ÐU\uÀ=0'u3Ð0ÐUSVu2 t P t0F<"u >9utF^[ÐUWVhAhTj*m CAfjjjHg @AbE ph8u uAME 7E ph<<u u$ME }~E E XM}}~ E @}~ E @E>AOj,-OAPfCCf>fd@h@Ax@f>f|@C@C@>@?@|A@jjs8Et8E<h<jsjjs4Eh0PlO=@t,5@h@hDG @>@=Ot&Oj hLhP5XtP5Xjyt jhTjht > ><=Au>3=>t# Ajh0Pk5Hj=>=0 5\Uh<ulrjj5>k OÐU=@u =Ot5@,ÐUuh\h` jcÐUE@ jh0PjÐUhhP ÐUEE H} m ÐUj 5>kcÐUSV]=Op EEXEE& FM} FM}EFEp-XE9E}/EXE< fEEu}t EE} uE F-XEPhXE5lr pXE^[Ð upp p-XEt tp^[ÐUp-XEÐU=pXEt j ÐU|SWVEEu E E}%tEPE8-u ElEErEPOE8.uEEP6EEuuƋEEEEEEEEED4.$hAj EPu  ju~EEjPulu j EPuY몐ju뮐ju <Q<ut뺐EE!EPEPSEVW_^d;E}t-+ EE}0 EE EE}~MEE.K tEEME E8u EE80t+Ń| E}tEEej jdu E}}Tu} H+EP&?PA@PAPAPAPAPAPA APA?PA?PAPA(A?PAPA??PAPAPAPAPAPAPAPAPA@?PA@PAPAPA<PAPAPA]APA?PA?PA@(A?PAPA?}uEEEulmE;~ |EE+}ru( j O EEPEM u j O EEEEE ^_[ÐUWVEPSEE 7F|EE 7F|^_ÐUuhthÐUj "UE}9 kE M0EEE<0}ڋEEUDSWVu} }.} du(ޡEE-+u+u uE;u.# <n0WË EEE;u^_[ÐUVEE} t- }]EE-} ~EE+3E$D5}F ~eE N ||5tF }^áEEL50N }^UVEEEE0EEx3E$D5}F~N ~ |5tWD5 EEN | |5 0^ÐU0E؉EExEEEE }NEE-];E%EЋE%E}UЋEMEE}E}uE9Eu*EE0E9EuÐEEMM E9EuÐ<)U=>t5>5P>ÐU=ltc5lPlÐU0;A| hJÐUWVE?PESBtvCWDtKoRCEE@XE txu}u7j\HXE>EVA^ȋ?Q PE@?EE >$MEN t <=0 uE > 5@=At5AhuA^_Ð5,)E-+t 3PpE=Puu: hE =At5>E믐E-+t3P P뇐 E>VEPU=PtPP)hhZfEfEExE }}젘C$?< u6NxjEP谶P5NxN}hΐNx5}hjEPyP5Nyh?f@EfEܡDEEhjEPz& j PVW>u_^C$?< ujEPjEP$E t? ? ^_ÐU`V=>u ?EVB[] I%t"?-A5<~3} }_>5hxEjEPE_l }hEPIljj5la[ >;PT X\`d=Kt PPA=KtPOahhz3oWPhtf< @t$ @<P5hx4@5j HF$f< @u <@~ m0hjj hf