%!PS-Adobe-2.0 %%Creator: dvipsk 5.58a Copyright 1986, 1994 Radical Eye Software %%Title: PCMCIA-PROG.dvi %%Pages: 33 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentPaperSizes: Letter %%EndComments %DVIPSCommandLine: dvips -t letter PCMCIA-PROG.dvi -o PCMCIA-PROG.ps %DVIPSParameters: dpi=300, compressed, comments removed %DVIPSSource: TeX output 1995.02.08:0955 %%BeginProcSet: texc.pro /TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} {adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] }if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail {dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ 4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet TeXDict begin 40258431 52099146 1000 300 300 (PCMCIA-PROG.dvi) @start /Fa 26 121 df<1218123CA31204A21208A21210122012401280060C779C0D> 39 D<1418A21438A21478A214B8EB0138A2EB023C141C1304130C13081310A21320A2EB 7FFCEBC01C1380EA0100141E0002130EA25A120C001C131EB4EBFFC01A1D7E9C1F>65 D<903803F02090381E0C6090383002E09038E003C03801C001EA038048C7FC000E148012 1E121C123C15005AA35AA41404A35C12705C6C5B00185B6C485AD80706C7FCEA01F81B1E 7A9C1E>67 D<48B5FC39003C03C090383800E0A21570A24913781538A215785BA4484813 F0A315E03803800115C0140315803907000700140E5C5C000E13E0B512801D1C7E9B1F> I<903803F02090381E0C6090383002E09038E003C03801C001EA038048C7FC000E148012 1E121C123C15005AA35AA2903801FF809038001E00141CA400705BA27E001813786C1390 38070710D801F8C7FC1B1E7A9C20>71 D<3A01FFC3FF803A003C00780001381370A4495B A449485AA390B5FC3901C00380A4484848C7FCA43807000EA448131E39FFE1FFC0211C7E 9B1F>II<3A01FFC07F803A003C001E000138131815205D5DD97002C7FC5C5C5CEB E04014C013E1EBE2E0EA01C4EBD07013E013C048487EA21418141CEA070080A348130F39 FFE07FC0211C7E9B20>75 D<3801FFC038003C001338A45BA45BA4485AA438038002A314 04EA0700140C14181438000E13F0B5FC171C7E9B1A>II<3801FFFE39003C038090383801C0EC00E0A3EB7001A315C0EBE0031580EC 0700141C3801FFF001C0C7FCA3485AA448C8FCA45AEAFFE01B1C7E9B1C>80 D97 D<13F8EA0304120EEA1C0EEA181CEA30001270A25AA51304EA60081310 EA3060EA0F800F127C9113>99 DI<13F8 EA0704120CEA1802EA38041230EA7008EA7FF0EAE000A5EA60041308EA30101360EA0F80 0F127C9113>I105 D107 DI110 D<13F8EA030CEA0E06487E1218 123000701380A238E00700A3130EA25BEA60185BEA30E0EA0F8011127C9115>I<380387 803804C860EBD03013E0EA09C014381201A238038070A31460380700E014C0EB0180EB83 00EA0E86137890C7FCA25AA45AB4FC151A809115>I114 DI<381C0180EA2E03124EA2388E0700A2121CA2EA380EA438301C80A3EA383C38184D 00EA0F8611127C9116>117 DI<38038780380CC840380870E0121038 20E0C014001200A2485AA4EA03811263EAE38212C5EA8584EA787813127E9113>120 D E /Fb 1 16 df15 D E /Fc 73 126 df34 DI40 D<128012C01260123012381218121C120EA31207A9120E A3121C121812381230126012C01280081D7C9914>II<127012F812FCA2 127C120C1218123012E012C0060A798414>44 DI<127012F8A3 12700505798414>I48 D<1203A25A5A123F12F712471207AEEA 7FF0A20C177C9614>III<137813F8EA01B8A2EA0338A21206120E120C 121C12381230127012E0B51280A238003800A548B4FCA211177F9614>III<12 E0EAFFFEA2EAE01C1338EA0030137013E013C0120113801203A2EA0700A4120EA612040F 187E9714>III<127012F8A312701200A6127012F8A312 700510798F14>I<127012F8A312701200A6126012F012F8A2127812181230127012E012 800515798F14>I65 DI<3801F180EA07FFEA0E 1FEA1C071238EA7003A348C7FCA738700380A338380700121CEA0E0EEA07FCEA01F01117 7F9614>IIIII<38FE3F80A2 38380E00A8EA3FFEA2EA380EA938FE3F80A211177F9614>II76 D<38FC1F80A2007C1300EA7637A4EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80 A211177F9614>I<38FE3F80A2383E0E00123BA4138E1239A213CEA31238A213EE136EA4 133E12FEA211177F9614>IIIIII<387FFF80B5FCEAE1C3A43801 C000AFEA0FF8A211177F9614>I<38FE0FE0A238380380B0381C0700A2EA0E0EEA07FCEA 01F01317809614>I<38FC1F80A238380E00A3EA3C1EEA1C1CA46C5AA4EA0630EA0770A3 EA0360A213E0A26C5A11177F9614>I<38FC1F80A238700700A7EA31C6EA33E6EA3BEE13 6EA5EA1B6CA2EA1A2CEA1E3CA311177F9614>II91 D93 D95 D97 D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0E EA1DFCEA0CF81217809614>II<137EA2130EA5EA07CEEA0FFEEA1C3EEA 301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>II<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17 7F9614>II<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206 120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<136013F0A213601300A4EA 1FF0A2EA0070B2EA40E0EAE0C0EA7F80EA3F000C207E9714>I<12FCA2121CA5EBFF80A2 EB1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>I< EAFF80A21203B3EAFFFEA20F177E9614>III< EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E8F 14>IIIII< 1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>II<38FE3F80A2383C1E00EA1C1CA36C5AA3 EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA1B 6C121AA3EA1E7CA2EA0E3811107F8F14>II<38FE3F80A2381C0E005BA2 120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC127E123C11187F8F14 >II<133E13FEEA01E0EA0380AAEA7F0012FE127FEA0380AAEA01E0EA 00FE133E0F1D7E9914>I<127812FE120FEA0380AAEA01FCEA00FEEA01FCEA0380AAEA0F 0012FE12780F1D7E9914>125 D E /Fd 49 122 df12 D<13181330136013C01201EA0380EA0700A2120E121E121C123CA35AA412F85AAB7E1278 A47EA3121C121E120E7EA2EA0380EA01C012001360133013180D317BA416>40 D<12C012607E7E121C7E7EA2EA038013C0120113E0A3EA00F0A413F81378AB13F813F0A4 EA01E0A313C012031380EA0700A2120E5A12185A5A5A0D317DA416>I<1238127C12FEA3 127C123807077C8610>46 D<13181378EA01F812FFA21201B3A7387FFFE0A213207C9F1C >49 DI<13FE3807FFC0380F07E0381E03F0123FEB81F8A3 EA1F0314F0120014E0EB07C0EB1F803801FE007F380007C0EB01F014F8EB00FCA2003C13 FE127EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801FE0017207E9F1C>I<14E0 13011303A21307130F131FA21337137713E7EA01C71387EA03071207120E120C12181238 127012E0B6FCA2380007E0A790B5FCA218207E9F1C>I<00301320383E01E0383FFFC014 8014005B13F8EA33C00030C7FCA4EA31FCEA37FF383E0FC0383807E0EA3003000013F0A2 14F8A21238127C12FEA200FC13F0A2387007E0003013C0383C1F80380FFF00EA03F81520 7D9F1C>II<1470A214F8A3497EA2497EA3 EB067FA2010C7F143FA2496C7EA201307F140F01707FEB6007A201C07F90B5FC4880EB80 01A2D803007F14004880000680A23AFFE007FFF8A225227EA12A>65 DIIIIII73 D76 DIIII82 D<3801FE023807FF86381F01FE 383C007E007C131E0078130EA200F81306A27E1400B4FC13E06CB4FC14C06C13F06C13F8 6C13FC000313FEEA003F1303EB007F143FA200C0131FA36C131EA26C133C12FCB413F838 C7FFE00080138018227DA11F>I<007FB61280A2397E03F80F0078140700701403006014 0100E015C0A200C01400A400001500B3A248B512F0A222227EA127>I86 D89 D97 D99 DI<13FE3807FF80380F87 C0381E01E0003E13F0EA7C0014F812FCA2B5FCA200FCC7FCA3127CA2127E003E13186C13 30380FC0703803FFC0C6130015167E951A>II<3801FE0F3907FFBF8038 0F87C7381F03E7391E01E000003E7FA5001E5BEA1F03380F87C0EBFF80D809FEC7FC0018 C8FCA2121C381FFFE06C13F86C13FE001F7F383C003F48EB0F80481307A40078EB0F006C 131E001F137C6CB45A000113C019217F951C>II<121C123FA25A7EA2121CC7FCA7B4 FCA2121FB2EAFFE0A20B247EA310>I107 DI<3AFF07F007F090391FFC1FFC3A 1F303E303E01401340496C487EA201001300AE3BFFE0FFE0FFE0A22B167E9530>I<38FF 07E0EB1FF8381F307CEB403CEB803EA21300AE39FFE1FFC0A21A167E951F>I<13FE3807 FFC0380F83E0381E00F0003E13F848137CA300FC137EA7007C137CA26C13F8381F01F038 0F83E03807FFC03800FE0017167E951C>I<38FF0FE0EB3FF8381FE07CEB803E497E1580 A2EC0FC0A8EC1F80A29038803F00EBC03EEBE0FCEB3FF8EB0FC090C8FCA8EAFFE0A21A20 7E951F>I114 DI< 487EA41203A21207A2120F123FB5FCA2EA0F80ABEB8180A5EB8300EA07C3EA03FEEA00F8 11207F9F16>I<38FF01FEA2381F003EAF147E14FE380F81BE3907FF3FC0EA01FC1A167E 951F>I<39FFE01FE0A2391F800700000F1306EBC00E0007130C13E000035BA26C6C5AA2 6C6C5AA2EB7CC0A2137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFE3FF07F8A23A1F 007800C09038807C01000F1580A23A07C07E030014DE5D3903E1DF06148FD801F1138CEB F307A2D800FF13D8EBFE0315F890387C01F0A2013C5BEB3800A225167F9528>I<39FFE0 1FE0A2391F800700000F1306EBC00E0007130C13E000035BA26C6C5AA26C6C5AA2EB7CC0 A2137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8FC1B 207F951E>121 D E /Fe 1 59 df<126012F0A2126004047C830C>58 D E /Ff 55 122 df12 D<127012F812FCA3127C1204A21208A3 121012201240060E7D850D>44 D<127812FCA4127806067D850D>46 D<1360EA01E0120F12FF12F31203B3A2387FFF80A2111B7D9A18>49 DI< EA07F8EA1FFEEA3C1FEB0F80387C07C0127E127C123838000F80A2EB1E005BEA03F8EA00 1EEB0F80EB07C0A214E01230127812FCA214C038780F80EB1F00EA1FFEEA07F8131B7E9A 18>II<38380180383FFF005B5B5B13C0 0030C7FCA4EA31F8EA361E38380F80EA3007000013C014E0A3127812F8A214C012F03860 0F8038381F00EA1FFEEA07F0131B7E9A18>I<137EEA03FF38078180380F03C0EA1E0712 3C387C03800078C7FCA212F813F8EAFB0E38FA0780EAFC0314C000F813E0A41278A214C0 123CEB0780381E0F00EA07FEEA03F8131B7E9A18>I<1260387FFFE0A214C01480A238E0 0300EAC0065B5BC65AA25B13E0A212015B1203A41207A66C5A131C7D9B18>II65 DI<90381FE0 209038FFF8E03803F80F3807C003380F800148C7FC123E1560127E127C00FC1400A8007C 1460127E123E15C07E390F8001803907C003003803F80E3800FFFCEB1FE01B1C7D9B22> IIII<90380FF00890387FFE383901FC07F8 3807E001390F80007848C7FC481438123E007E1418127C00FC1400A6EC7FFFA2007CEB01 F8127E123E123F7EEA0F80EA07E03801FC0739007FFE7890380FF818201C7D9B26>I<39 FFFC3FFFA2390FC003F0AA90B5FCA2EBC003AC39FFFC3FFFA2201C7E9B25>II77 D<39FFE003FFA2390FF000307FEA0DFCEA 0CFE137E7FEB1F8014C0EB0FE0EB07F01303EB01F814FCEB00FE147F143FEC1FB015F014 0F1407140314011400A2D8FFC013701530201C7E9B25>IIIII<38 07F820381FFEE0EA3C07EA7801EA700012F01460A26C130012FEEAFFE0EA7FFE6C7E1480 000F13C06C13E0EA007FEB03F01301130012C0A214E07E38F001C0EAFC0338EFFF00EA83 FC141C7D9B1B>I<007FB512E0A238781F81007013800060146000E0147000C01430A400 001400B03807FFFEA21C1C7E9B21>I<3AFFFC01FF80A23A0FC00018006D133800071430 6D1370000314607F00015CA26C6C485AA2EBFE03017E90C7FCEB7F07EB3F061486EB1F8C A2EB0FD8A214F86D5AA26D5AA26D5AA2211C7F9B24>86 D<3BFFF87FFE0FFCA23B0FC007 E000C081D9E003130100071680EC07F801F014030003D90FFC1300140CD801F81406EC1C FE9039FC187E0E0000150CEC303F01FE141CD97E701398EC601F013F14B002E013F0ECC0 0F011F5CEC8007A2010F5CEC00036D5CA22E1C7F9B31>I97 DIIII<137F3801E3803803C7C0EA0787120FEB8380EB8000A5EAFF F8A2EA0F80AEEA7FF0A2121D809C0F>I<3803F0F0380E1F38EA3C0F3838073000781380 A400381300EA3C0FEA1E1CEA33F00030C7FCA3EA3FFF14C06C13E014F0387801F838F000 78A300701370007813F0381E03C03807FF00151B7F9118>II<121E123FA4121EC7FCA6127FA2 121FAEEAFFC0A20A1E7F9D0E>I<137813FCA413781300A6EA03FCA2EA007CB2127012F8 137813F0EA70E0EA1F800E26839D0F>III<39FF0FC07E903831E18F3A1F40F20780D980FC13C0A2 EB00F8AB3AFFE7FF3FF8A225127F9128>I<38FF0FC0EB31E0381F40F0EB80F8A21300AB 38FFE7FFA218127F911B>II<38FF3F80EBE1E0 381F80F0EB0078147C143C143EA6143C147C1478EB80F0EBC1E0EB3F0090C7FCA6EAFFE0 A2171A7F911B>I<3803F060380F0CE0EA1E07EA3C03127C127812F8A61278127C123CEA 1C07EA0E0FEA03F3EA0003A6EB1FFCA2161A7E9119>III<1203A4 5AA25AA2EA3FFC12FFEA1F00A9130CA4EA0F08EA0798EA03F00E1A7F9913>I<38FF07F8 A2EA1F00AC1301120F380786FFEA01F818127F911B>I<38FFC1FCA2381F00601380000F 13C0A23807C180A23803E300A213F7EA01F613FE6C5AA21378A2133016127F9119>I<39 FF8FF8FEA2391F03E030A3390F87F06013869038C6F8E03907CC78C0A23903FC7D80EBF8 3D143F3901F01F00A20000131EEBE00EA21F127F9122>I<38FFC7FCA2381F81C0380F83 803807C700EA03EEEA01FC5B1200137C13FEEA01DF38039F80EA070F380607C0380C03E0 38FF07FCA216127F9119>I<38FFC1FCA2381F00601380000F13C0A23807C180A23803E3 00A213F7EA01F613FE6C5AA21378A21330A25B1270EAF8E05BEAF9800073C7FC123E161A 7F9119>I E /Fg 35 119 df<49B4FC011F13C090387F00E001FC7F3901F001F8000313 03EA07E0A26E5A6E5A92C7FCA5B612F8A23807E001B3A53A7FFE1FFF80A2212A7FA925> 12 D<130C131C137CEA07FC12FF12F81200B3ADB512FCA216277BA621>49 DII<141C143CA2147C14FC1301A213 031307130E130C131813381370136013C01201EA038013001206120E5A12185A12705AB6 12F0A2C7EAFC00A990383FFFF0A21C277EA621>I<00181306381F803EEBFFFC5C5C5C14 8049C7FC0018C8FCA7EB7F803819FFF0381B80F8381E007E00187FC7FCEC1F80A215C0A3 127C12FEA315805A0078133F006014006C133E001C5B380F01F83807FFE0C690C7FC1A27 7DA621>II<91387FE0 02903907FFF80690391FE01E0E90397F00039E01FCEB01FE4848EB007ED807F0143E5B48 48141E001F150E485AA21606127F90C8FC16005AA97EA26D1406123FA36C6C140C120F6C 6C14186D1438D801F814306C6C14E0017FEB03C090391FE00F00903807FFFC9038007FE0 27297CA830>67 DII<91387FE002903907FFF80690391FE01E0E90397F00 039E01FCEB01FE4848EB007ED807F0143E5B4848141E001F150E485AA21606127F90C8FC 93C7FC5AA892B512E07E923800FE007F123FA27F121F120F6C7E7FEA01F86C6C1301017F EB03BE90391FF00F1E903907FFFC0E9039007FE0022B297CA834>71 DII77 D<9038FF80200003EBF060390F8078E038 1E001D4813071403481301A200F81300A215607EA26C1400EA7F8013F013FF6C13F06C13 FC6C7F6C7F00011480D8003F13C0010113E0EB001FEC0FF01407140312C01401A37E15E0 7E6CEB03C07EB4EB078039E3E01F0038C1FFFC38801FF01C297CA825>83 D87 D<3803FF80000F13E0381F01F8383F80FC147EA280EA1F00C7 FCA4EB3FFF3801FE3FEA0FE0EA1F80EA3F005A12FE150CA3145F007F139F393F831FF839 1FFE0FF03903F807C01E1B7E9A21>97 DIIIII<9038FF01 E00003EBC7F8390F81FC78381F00F8003EEB7C701500007E137EA6003E137CA26C5B380F 81F0380BFFC0001890C7FC0010C8FC1238A2123C381FFFF014FE6CEBFF806C14C0001F14 E0383C000F007CEB03F0127800F81301A4007CEB03E0A2003FEB0FC0390FC03F003807FF FE38007FE01D287E9A21>II<120FEA1F8013C0123FA2 121F1380EA0F00C7FCA8EAFFC0A2120FB3A5EAFFF8A20D2B7EAA13>I108 D<26FFC0FEEB3F80903AC3FF80FFE03B0FC60FC183F0 903AC807E201F89039D003E40001F001FC7F01E05BA201C05BB13CFFFC3FFF0FFFC0A232 1B7E9A37>I<38FFC0FE9038C3FF80390FC60FC09038C807E0EBD00301F013F013E0A213 C0B139FFFC3FFFA2201B7E9A25>II<38FFC1FE9038C7FF80390FDE0FE09038F003 F09038E001F801C013FC140015FEA2157FA8157E15FEA215FC140101E013F89038F007F0 9038DC0FE09038C7FF809038C1FC0001C0C7FCAAEAFFFCA220277E9A25>I<38FF83E0EB 8FF8380F8C7CEB98FE13B013A0A2EBE07CEBC000B1EAFFFEA2171B7E9A1B>114 D<3803FC60381FFFE0EA3C03EA7801EA700000F01360A300FC1300B47EEA7FFC13FF6C13 C0000F13E0000313F0EA003FEB03F8EAC00014787EA27E14706C13E0EAFE0338E7FF8038 81FE00151B7E9A1A>I<1360A413E0A21201A212031207121FB512E0A23807E000AE1430 A73803F0603801F8C03800FF80EB3F0014267FA51A>I<39FFC03FF0A2000F1303B21407 A2140F0007131B3803E0333901FFE3FF38007F83201B7E9A25>I<39FFF801FFA2390FC0 00707F000714606D13E0000314C07F0001EB0180A23900FC0300A26D5AEB7E06EB7F0EEB 3F0C148CEB1F98A2EB0FF0A36D5AA26D5AA26D5A201B7F9A23>I E /Fh 32 122 df45 D<12E0A303037C820C>I<131C133EA213 2E1367A2EBE78013C713C300017F1383138100037F1301486C7EA21206000E1378380FFF F8A2381C003CA2121800387FA248131F80126000E0EB0780191D7F9C1C>65 D67 D<12F0B3AB041D7C9C0C>73 D<12F0B3A9B5FCA2101D7D9C16>76 D<00FCEB07E0A300EE130DA300E71319A3EB803900 E31331EBC071A200E11361A2EBE0E1A200E013C113F1EB7181A3EB3B01A3131EA313001B 1D7C9C24>I80 D83 DI97 D<12E0ABEAE3E0EAEFF8EAFFFCEAF83EEAE01E13 0E1307A6130EEAF01EEAF83CEAFFF8EAEFF0EAE3E0101D7D9C15>II< 1307ABEA07C7EA1FF7EA3FFFEA3C1FEA7807127012E0A61270EA780FEA3C1FEA3FFFEA1F F7EA07C7101D7F9C15>II<13FC12011203EA0700120EA7 EAFFE0A2EA0E00B00E1D809C0D>I<3807C3C0EA0FFF5A38383800487EA56C5AEA3FF05B EA77C00070C7FCA2EA3FFC13FF481380EA700738E001C0A3EAF003387C0F80383FFF006C 5AEA07F8121B7F9115>I<12E0ABEAE3E0EAEFF0EAFFF8EAF83CEAF01C12E0AD0E1D7D9C 15>I<12F0A41200A71270B2041D7E9C0A>I<12E0AB133C137813F0EAE1E0EAE3C0EAE780 EAEF00B4FC138012FBEAF9C0EAF1E012E013F013781338133C131E0F1D7D9C14>107 D<12E0B3AB031D7D9C0A>I<38E3F03F39EFF8FF80D8FFFD13C039F81F81E038F00F00EA E00EAD1B127D9124>III114 DI<121CA6EAFFE0A2EA1C00AC1320EA1FF0120FEA 07C00C187F970F>III<39E0 3E0380A3D870371300EB7707A213733838E38EA33818E18C381CC1CC001D13DCA2380D80 D8000F13F8A20007137019127F911C>I<3870038038780700EA3C0EEA1C1C120E6C5AEA 03F06C5A5B7F487EEA0738EA0618EA0E1C487E487E3870038000F013C01212809113>I< EAE007A2EA700EA21278EA381CA2121C1338120CEA0E3013701206EA0760120313C01201 A21380A2EA0300A25A12FE5A5A101A7F9113>I E /Fi 68 123 df35 D38 D<13E01201EA0380EA0700120E5AA25AA25AA35AA91270A37EA27EA27E7EEA0380EA01E0 12000B217A9C16>40 D<12C07E12707E7E7EA27EA2EA0380A3EA01C0A9EA0380A3EA0700 A2120EA25A5A5A5A5A0A217B9C16>I<1238127C127EA2123E120E121E121C127812F012 60070B798416>44 DI<127012F8A312700505788416>II<12035AA25A5AB4FCA212E71207AEEAFFF8A30D197B9816>49 DII53 D<13F8EA03FC487EEA0F07EA1C0F1238EA78060070C7FCA2EAE3F8EAEFFCB47EEA F80F487EEB038012E0A21270A2130700381300EA3C1EEA1FFC6C5AEA03E011197E9816> I56 D<12C012F012FC123EEA0F806C7EEA01F06C7E133EEB1F801307131FEB3E0013F8 485AEA07C0485A003EC7FC12FC12F012C011157E9616>62 D<13F8EA03FC487EEA0F0738 1C3B80EA38FF12793873C7C01383EAE701A73873838013C73879FF00EA38FEEA1C38380F 03C0EA07FF6C1300EA00FC12197E9816>64 D<13E0487EA213B0A2EA03B8A31318EA071C A5EA0E0EA2EA0FFEA2487EEA1C07A3387E0FC038FF1FE0387E0FC013197F9816>II<3801F180EA07FBEA0FFFEA1F0FEA3C07EA38 031270A200F0C7FC5AA77E38700380A21238383C0700EA1F0FEA0FFE6C5AEA01F011197E 9816>II<387FFFC0B5FC7EEA1C01A490C7FCA213 1CA2EA1FFCA3EA1C1CA290C7FC14E0A5EA7FFFB5FC7E13197F9816>I<387FFFE0B5FC7E EA1C00A41400A2131CA2EA1FFCA3EA1C1CA290C7FCA6EA7F80487E6C5A13197F9816>I< 3801F180EA07FBEA0FFFEA1F0FEA3C07EA38031270A200F0C7FC5AA4EB1FC014E014C038 F00380127013071238123CEA1E0FEA0FFFEA07FBEA01F313197F9816>I<387F07F038FF 8FF8387F07F0381C01C0A7EA1FFFA3EA1C01A9387F07F038FF8FF8387F07F01519809816 >II<48B4FC481380 6C1300EA001CB0126012F05BEA7FF85BEA1FC011197E9816>I<387F0FE038FF8FF0387F 0FE0381C0780EB0F00130E5B133C5B5B5BEA1DF0121F7F1338EA1E1C121C7FA27FA2EB03 80387F07E038FF8FF0387F07E01419809816>II<38FC07E0EAFE0FA2383A0B80EA3B1BA513BBEA39B3A413F3EA38E3A2 1303A538FE0FE0A313197F9816>I<387E07F038FF0FF8387F07F0381D81C0A313C1121C 13E1A213611371A313311339A21319131D130DA3EA7F07EAFF87EA7F031519809816>I< EA1FFC487E487EEA780F38F00780EAE003AEEAF007A238780F00EA7FFF6C5A6C5A11197E 9816>II III<387FFFE0B5FCA2EAE0E0A400001300AFEA07FC487E6C5A13 197F9816>I<387F07F038FF8FF8387F07F0381C01C0B0380E0380A23807070013FF6C5A EA00F81519809816>I<38FE0FE0A338380380EA3C07001C1300A3EA1E0FEA0E0EA46C5A A4EA031813B8A3EA01B013F0A26C5A13197F9816>I<387E03F038FF07F8387E03F03838 00E0A4381C01C0A3137113F9A213D9A2000C1380A3EA0DDD138DA338078F00A213071519 809816>I<387F1F80EB3FC0EB1F80380E1E00131C12075BEA03B813F012015B12001201 7F120313B81207131C120FEA0E0EA2487E387E0FC038FF1FE0387E0FC013197F9816>I< 38FE0FE0EAFF1FEAFE0F381C0700A2EA0E0EA26C5AA3EA03B8A2EA01F0A26C5AA8EA03F8 487E6C5A13197F9816>I<387FFF80B5FCA238E007005B131E131CEA003C5B137013F048 5A5B1203485A90C7FC5A381E0380121C123C12781270B5FCA311197E9816>I97 D<12FCA3121CA4137CEA1DFEEA1FFFEB0780381E03C0EA1C01EB00 E0A6EB01C0EA1E03381F0780EBFF00EA1DFEEA0C7813197F9816>I I<133FA31307A4EA03C7EA0FF748B4FCEA3C1F487EEA700712E0A6EA700F12786C5A381F FFE0EA0FF7EA07C713197F9816>II<131E137F 3801FF8013C7380383001380A2EA7FFFB5FCA2EA0380ACEA7FFC487E6C5A11197F9816> I<3803E3C03807F7E0EA0FFF381C1CC038380E00A56C5AEA0FF8485AEA1BE00038C7FC12 18EA1FFC13FF481380387003C038E000E0A4387001C0EA7C07383FFF80380FFE00EA03F8 131C7F9116>I<12FCA3121CA41378EA1DFCEA1FFE130FEA1E07121CAA38FF8FE0139F13 8F13197F9816>I<1203EA0780A2EA0300C7FCA4EAFF80A31203ACEAFFFC13FE13FC0F1A 7C9916>I<13301378A213301300A4EA0FF8121F120FEA0038B3EA6070EAF0F0EAFFE0EA 7FC0EA3F800D237E9916>I<127E12FE127E120EA4EB7FE0A3EB0F00131E5B5B5B120F7F 13BC131EEA0E0E7F1480387F87F0EAFFCFEA7F871419809816>II<38F9C38038FFEFC0EBFFE0EA3C78A2EA3870AA 38FE7CF8A31512809116>IIII<3803E380EA0FF3EA1FFBEA3E0FEA78071270EAE003A6EA70071278EA3C1FEA 1FFBEA0FF3EA03E3EA0003A6EB1FF0EB3FF8EB1FF0151B7F9116>I<387F0FC038FF3FE0 EA7F7F3807F040EBC0005BA290C7FCA8EA7FFC12FF127F13127F9116>II<12035AA4EA7FFFB5FCA20007C7FCA75BEB0380A3EB8700 EA03FE6C5A6C5A11177F9616>II<387F1FC038FF9FE0387F1FC0381C0700A2EA0E0EA36C5AA4EA03B8A3EA01F0 A26C5A13127F9116>I<38FF1FE0A338380380A4EA39F3A20019130013B3A3EA1DB71317 EA1F1FEA0F1EEA0E0E13127F9116>I<387F1FC0133F131F380F1E006C5AEA03B813F012 016C5A12017FEA03B8EA073C131CEA0E0E387F1FC038FF3FE0387F1FC013127F9116>I< 387F1FC038FF9FE0387F1FC0381C0700120E130EA212075BA2EA039CA21398EA01B8A2EA 00F0A35BA3485A1279127BEA7F8090C7FC123C131B7F9116>I<383FFFC05AA238700780 EB0F00131EC65A5B485A485AEA078048C7FC381E01C0123C1278B5FCA312127F9116>I E /Fj 78 123 df11 D<137E3801C180EA0301380703C0120EEB 018090C7FCA5B512C0EA0E01B0387F87F8151D809C17>II<90383F07E03901C09C18380380F0D807 01133C000E13E00100131892C7FCA5B612FC390E00E01CB03A7FC7FCFF80211D809C23> I 34 D<1380A2EA07E0EA1898EA3084EA6082EA4081EAC087138FA21386EAE0801270127E EA3FC0EA1FF0EA0FF8EA03FCEA00BE138E13871260EAF083A212E0EA808212401384EA20 88EA1890EA07E0EA0080A210217E9E15>36 D<126012F012F812681208A31210A2122012 401280050C7C9C0C>39 D<1380EA0100120212065AA25AA25AA35AA412E0AC1260A47EA3 7EA27EA27E12027EEA0080092A7C9E10>I<7E12407E12307EA27EA27EA37EA41380AC13 00A41206A35AA25AA25A12205A5A092A7E9E10>I<1203A4EAC30CEAE31CEA7338EA1FE0 EA0780A2EA1FE0EA7338EAE31CEAC30CEA0300A40E127D9E15>I<126012F0A212701210 A41220A212401280040C7C830C>44 DI<126012F0A212600404 7C830C>I<130113031306A3130CA31318A31330A31360A213C0A3EA0180A3EA0300A312 06A25AA35AA35AA35AA35AA210297E9E15>II<5A12 07123F12C71207B3A5EAFFF80D1C7C9B15>III<130CA2131C133CA2135C13DC139CEA011C12031202 1204120C1208121012301220124012C0B512C038001C00A73801FFC0121C7F9B15>II<13F0EA030CEA0404EA0C0E EA181E1230130CEA7000A21260EAE3E0EAE430EAE818EAF00C130EEAE0061307A51260A2 EA7006EA300E130CEA1818EA0C30EA03E0101D7E9B15>I<1240387FFF801400A2EA4002 485AA25B485AA25B1360134013C0A212015BA21203A41207A66CC7FC111D7E9B15>II I<126012F0A212601200AA126012F0A2126004127C910C>I<126012F0A212601200AA12 6012F0A212701210A41220A212401280041A7C910C>I<007FB512C0B612E0C9FCA8B612 E06C14C01B0C7E8F20>61 D<1306A3130FA3EB1780A2EB37C01323A2EB43E01341A2EB80 F0A338010078A2EBFFF83802003CA3487FA2000C131F80001E5BB4EBFFF01C1D7F9C1F> 65 DI<90381F8080EBE0613801801938070007000E 13035A14015A00781300A2127000F01400A8007014801278A212386CEB0100A26C13026C 5B380180083800E030EB1FC0191E7E9C1E>IIII<90381F8080EBE06138018019380700 07000E13035A14015A00781300A2127000F01400A6ECFFF0EC0F80007013071278A21238 7EA27E6C130B380180113800E06090381F80001C1E7E9C21>I<39FFF0FFF0390F000F00 AC90B5FCEB000FAD39FFF0FFF01C1C7F9B1F>I I<3807FF8038007C00133CB3127012F8A21338EA7078EA4070EA30E0EA0F80111D7F9B15 >I<39FFF01FE0390F000780EC060014045C5C5C5C5C49C7FC13021306130FEB17801327 EB43C0EB81E013016D7E1478A280143E141E80158015C039FFF03FF01C1C7F9B20>IIIII< B51280380F00E01478143C141C141EA5141C143C147814E0EBFF8090C7FCACEAFFF0171C 7E9B1C>III<3807E080EA1C19EA30 051303EA600112E01300A36C13007E127CEA7FC0EA3FF8EA1FFEEA07FFC61380130FEB07 C0130313011280A300C01380A238E00300EAD002EACC0CEA83F8121E7E9C17>I<007FB5 12C038700F010060130000401440A200C014201280A300001400B1497E3803FFFC1B1C7F 9B1E>I<39FFF01FF0390F000380EC0100B3A26C1302138000035BEA01C03800E018EB70 60EB0F801C1D7F9B1F>I<39FFE00FF0391F0003C0EC01806C1400A238078002A213C000 035BA2EBE00C00011308A26C6C5AA213F8EB7820A26D5AA36D5AA2131F6DC7FCA21306A3 1C1D7F9B1F>I<3AFFE1FFC0FF3A1F003E003C001E013C13186C6D1310A32607801F1320 A33A03C0278040A33A01E043C080A33A00F081E100A39038F900F3017913F2A2017E137E 013E137CA2013C133C011C1338A20118131801081310281D7F9B2B>I<39FFF003FC390F 8001E00007EB00C06D13800003EB01006D5A000113026C6C5A13F8EB7808EB7C18EB3C10 EB3E20131F6D5A14C06D5AABEB7FF81E1C809B1F>89 D92 D97 D<12FC121CAA137CEA1D87381E0180381C00C014E014601470A6146014E014C0381E 018038190700EA10FC141D7F9C17>IIII<13F8EA018CEA071E1206EA0E0C1300A6EAFFE0EA0E00B0 EA7FE00F1D809C0D>II<12FC121CAA137C1387EA1D03001E1380121C AD38FF9FF0141D7F9C17>I<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>I< 13C0EA01E0A2EA00C01300A7EA07E01200B3A21260EAF0C012F1EA6180EA3E000B25839C 0D>I<12FC121CAAEB0FE0EB0780EB06005B13105B5B13E0121DEA1E70EA1C781338133C 131C7F130F148038FF9FE0131D7F9C16>I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E 07E0391C838838391D019018001EEBE01C001C13C0AD3AFF8FF8FF8021127F9124>IIII<3803E080EA0E19EA1805EA3807EA7003A2 12E0A61270A2EA38071218EA0E1BEA03E3EA0003A7EB1FF0141A7F9116>III<1204A4120CA2121C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910> I<38FC1F80EA1C03AD1307120CEA0E1B3803E3F014127F9117>I<38FF07E0383C038038 1C0100A2EA0E02A2EA0F06EA0704A2EA0388A213C8EA01D0A2EA00E0A3134013127F9116 >I<39FF3FC7E0393C0703C0001CEB01801500130B000E1382A21311000713C4A2132038 03A0E8A2EBC06800011370A2EB8030000013201B127F911E>I<38FF0FE0381E0700EA1C 06EA0E046C5AEA039013B0EA01E012007F12011338EA021C1204EA0C0E487E003C138038 FE1FF014127F9116>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA03 88A213C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>I< EA7FFCEA70381260EA407013F013E0EA41C012031380EA0700EA0F04120E121CEA3C0CEA 380812701338EAFFF80E127F9112>I E /Fk 19 121 df65 D 67 D71 D<12FEB3B3B3A6073C79BB16>73 D<12FEB3B3B2B7FCA6203C79BB2B>76 DI 80 D97 D<157FB3A6EB1FC0EBFFF8 4813FE4890B5FC5A380FFC07381FF001497E4848137F5B127F90C7FCA212FEAA127FA36C 7E6D13FF001F5BEBF003380FFC0F6CB6FC6C147F6C13FC6C13F0EB3FC0203C7DBB29> 100 DI<90390FE003E0 90387FFC3F9039FFFEFFF0000390B5FC5A9039F83FE000380FE00F48486C7EA2EB800300 3F80A6001F5CEBC007A26C6C485A3907F83FC090B5FC485C4AC7FC486C5A381E0FE090C9 FC121FA27F90B5FC15F06C14FC816C80001F15804815C0EB8000007EC7121FED0FE04814 07A5007EEC0FC0007F141FD83FC0EB7F803A1FF803FF006CB55A6C5C000114F06C6C13C0 D90FFEC7FC24367EA328>103 D<12FEA71200AD12FEB3B207387BB712>105 D<26FE01FEEB03FC903A0FFF801FFF013FD9E07F13C0496DB512E090B512F13CFFF81FFB F03FF0903AE007FFC00F496C90388007F8496CEB000301005BA3485CB3A635247BA344> 109 D<38FE01FE90380FFF80013F13E04913F090B5FC39FFF81FF8EBE0079038C003FCEB 80011300A35AB3A61E247BA329>II<00FE13F01307131F133F137F13FFB5120013F85B13C0A25B 90C7FCA25AB3A414247BA31B>114 DI<00FEEB01FCB3A81403A214076C130FEB807F6CB5FC14FD6C13F16C 13C13807FC011E247BA329>117 D120 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%PaperSize: Letter %%BeginPaperSize: Letter letter %%EndPaperSize %%EndSetup %%Page: 1 1 1 0 bop 0 99 a Fk(Linux)27 b(PCMCIA)f(Program)l(m)-5 b(ers)25 b(Guid)o(e)p 0 156 1950 12 v 14 213 a Fj(Da)o(vid)12 b(Hin)o(ds,)i Fi(dhinds@allegro.st)o(anfor)o(d.ed)o(u)604 b Fj(v1.10,)12 b(1995/02/08)f(17:51:54)0 366 y Fh(Thi)q(s)17 b(do)q(cu)o(ment)f(d)o(e)q(scr)q(ib)q(e)q(s)j(h)o(ow)f(t)o(o)f(wr)q(it) o(e)g(k)o(er)q(nel)h(d)o(evice)h(dr)q(ivers)f(fo)o(r)f(t)n(h)o(e)h (Linux)g(PCMCIA)d(Ca)o(rd)i(Service)q(s)h(int)o(erf)q(ace.)28 b(It)0 422 y(also)15 b(d)o(e)q(scr)q(ib)q(e)q(s)h(h)o(ow)g(t)o(o)f(wr)q (it)o(e)h(us)q(er-mo)q(d)o(e)e(u)o(t)o(ilit)o(ie)q(s)h(fo)o(r)g(comm)m (u)o(nica)o(t)o(ing)e(wit)n(h)j(Ca)o(rd)f(Service)q(s.)23 b(Th)o(e)16 b(la)o(t)o(e)q(st)g(vers)q(ion)f(of)g(t)n(hi)q(s)0 479 y(do)q(cu)o(ment)e(can)i(alw)o(ays)f(b)q(e)g(fou)o(nd)h(a)o(t)f Fi(cb-iris.stanford.e)o(du)d Fh(in)j Fi(/pub/pcmcia/doc)p Fh(.)0 648 y Fg(Con)n(t)n(en)n(t)o(s)0 768 y Ff(1)38 b(In)o(tro)q(d)o(u)o(ct)o(i)o(on)1601 b(3)62 846 y Fj(1.1)42 b(Co)o(p)o(yr)q(igh)o(t)12 b(not)o(ice)i(an)o(d)g(di)q(sclaim)o(er)i Fe(:)k(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) 66 b Fj(3)0 966 y Ff(2)38 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i) o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1052 b(3)62 1044 y Fj(2.1)42 b(Clien)o(t)13 b(m)o(an)o(agem)o(en)o(t)e(fu)o(nct)o(ions) 37 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)66 b Fj(4)158 1123 y(2.1.1)46 b(Regi)q(st)o(erClien)o(t)10 b Fe(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(4)158 1201 y(2.1.2)46 b(Deregi)q(st)o(erClien)o(t)40 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(5)158 1279 y(2.1.3)46 b(SetEv)o(en)o(tMask)c Fe(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)g(:)h(:)66 b Fj(5)158 1357 y(2.1.4)46 b(Bin)o(dDevice)30 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(5)62 1435 y(2.2)42 b(So)q(c)o(k)o(et)14 b(st)o(a)o(t)o(e)h(con)o(trol)e Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(6)158 1514 y(2.2.1)46 b(GetSt)o(a)o(t)o(us)25 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(6)158 1592 y(2.2.2)46 b(Re)q(s)q(etCard)13 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(7)158 1670 y(2.2.3)46 b(Susp)q(en)o(dCard)29 b Fe(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(7)158 1748 y(2.2.4)46 b(Re)q(su)o(m)o(eCard)37 b Fe(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(8)158 1827 y(2.2.5)46 b(EjectCard)21 b Fe(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(8)158 1905 y(2.2.6)46 b(Ins)q(ertCard)41 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(8)62 1983 y(2.3)42 b(IO)14 b(card)g(con\014gura)o(t)o(ion)g(calls)i Fe(:)k(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(9)158 2061 y(2.3.1)46 b(Reque)q(stIO)12 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)66 b Fj(9)158 2140 y(2.3.2)46 b(Releas)q(eIO)22 b Fe(:)e(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(10)158 2218 y(2.3.3)h(Reque)q(stIR)o(Q)14 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(10)158 2296 y(2.3.4)h(Releas)q(eIR)o(Q) 24 b Fe(:)c(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(11)158 2374 y(2.3.5)h(Reque)q (stCon\014gura)o(t)o(ion)37 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(12)158 2453 y(2.3.6)h(Mo)q(difyCon\014gura)o(t)o(ion)19 b Fe(:)i(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(13)158 2531 y(2.3.7)h(Releas)q(eCon\014gura)o(t)o(ion)14 b Fe(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)45 b Fj(14)p eop %%Page: 2 2 2 1 bop 0 -84 1950 3 v 0 -100 a Ff(CONTENTS)1661 b Fj(2)158 81 y(2.3.8)46 b(GetCon\014gura)o(t)o(ionInfo)10 b Fe(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)45 b Fj(15)62 159 y(2.4)d(Card)14 b(Inform)o(a)o(t)o(ion)d(Stru)o (ct)o(ure)k(\(CIS\))f(calls)20 b Fe(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)g(:)h(:)45 b Fj(15)158 237 y(2.4.1)h(GetFirstT)m(uple,)13 b(GetNextT)m(uple)20 b Fe(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)45 b Fj(16)158 316 y(2.4.2)h(GetT)m(upleDa)o(t)o(a)10 b Fe(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(17)158 394 y(2.4.3)h(P)o(ars)q(eT)m (uple)34 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(17)158 472 y(2.4.4)h(V)m(alid)o(a)o(t)o(eCIS)20 b Fe(:)g(:)h(:)f(:)g(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h (:)45 b Fj(18)62 550 y(2.5)d(M)o(emory)13 b(win)o(do)o(w)g(con)o(trol) 27 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(18)158 628 y(2.5.1)h(Reque)q(stWin)o (do)o(w)38 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(18)158 707 y(2.5.2)h(Mo)q (difyWin)o(do)o(w)21 b Fe(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(20)158 785 y(2.5.3)h(MapM)o(emP)o(age)41 b Fe(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(20)158 863 y(2.5.4)h(Releas)q(eWin)o(do)o(w)16 b Fe(:)k(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)g(:)h(:)45 b Fj(21)62 941 y(2.6)d(Mi)q(scellan)o(eous)13 b(calls)29 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(21)158 1020 y(2.6.1)h(GetCardService)q(sInfo)24 b Fe(:)d(:)f(:)g(:)h(:)f(:)g (:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:) g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(21)158 1098 y(2.6.2)h(Acce)q(ssCon\014gura)o(t)o(ionRegi)q(st)o (er)13 b Fe(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)45 b Fj(21)158 1176 y(2.6.3)h(AdjustRe)q(sourceInfo)41 b Fe(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)45 b Fj(23)158 1254 y(2.6.4)h(Rep)q(ortError)13 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(24)0 1374 y Ff(3)38 b(Card)16 b(Inform)o(a)o(t)o(ion)c(Stru)o(ct)o(ure)h(De\014nit)o(i)o (on)o(s)1020 b(25)62 1452 y Fj(3.1)42 b(CISTPL)p 312 1452 13 2 v 15 w(DEVICE)c Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(25)62 1531 y(3.2)d(CISTPL)p 312 1531 V 15 w(VERS)p 440 1531 V 15 w(1)21 b Fe(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f (:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:) f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(25)62 1609 y(3.3)d(CISTPL)p 312 1609 V 15 w(CONFIG)34 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(25)62 1687 y(3.4)d(CISTPL)p 312 1687 V 15 w(CFT)m(ABLE)p 525 1687 V 15 w(ENTR)m(Y)35 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) g(:)h(:)45 b Fj(25)0 1807 y Ff(4)38 b(Card)16 b(Service)q(s)f(Ev)o(en)o (t)f(Han)o(dlin)o(g)1207 b(26)62 1885 y Fj(4.1)42 b(Ev)o(en)o(t)14 b(h)o(an)o(dler)g(o)o(p)q(era)o(t)o(ions)g Fe(:)20 b(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(26)62 1963 y(4.2)d(Ev)o(en)o(t)14 b(d)o(e)q(scr)q(ipt)o(ions)36 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(27)0 2083 y Ff(5)38 b(Dr)q(iv)o(er)14 b(Service)q(s)h(in)o(t)o(erface)1321 b(28)62 2161 y Fj(5.1)42 b(In)o(t)o(erf)q(ace)14 b(t)o(o)g(ot)n(h)o(er) h(clien)o(t)f(dr)q(iv)o(ers)33 b Fe(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(28)158 2239 y(5.1.1)h(Th)o(e)14 b Fi(dev)p 444 2239 14 2 v 15 w(link)p 547 2239 V 15 w(t)f Fj(stru)o(ct)o(ure)31 b Fe(:)21 b(:)f(:)g(:)g(:)h (:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:) f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(28)158 2318 y(5.1.2)h(regi)q(st)o(er)p 426 2318 13 2 v 15 w(p)q(cmcia)p 570 2318 V 14 w(dr)q(iv)o(er)32 b Fe(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(29)158 2396 y(5.1.3)h(u)o(nregi)q(st)o(er)p 471 2396 V 16 w(p)q(cmcia)p 616 2396 V 14 w(dr)q(iv)o(er)18 b Fe(:)i(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:) h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g (:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(30)62 2474 y(5.2)d(In)o(t)o(erf)q(ace)14 b(t)o(o)g(us)q(er)h(mo)q(d)o(e)e(PCMCIA)i (u)o(t)o(ilit)o(ie)q(s)e Fe(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g (:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:) g(:)h(:)45 b Fj(30)158 2552 y(5.2.1)h(Card)13 b(Service)q(s)j(ev)o(en)o (t)e(not)o(i\014ca)o(t)o(ions)32 b Fe(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:) h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h (:)f(:)g(:)g(:)h(:)45 b Fj(30)p eop %%Page: 3 3 3 2 bop 0 -84 1950 3 v 0 -100 a Ff(1.)32 b(In)o(tro)q(d)o(u)o(ct)n(ion) 1597 b Fj(3)158 81 y(5.2.2)46 b Fi(ioctl)12 b Fj(d)o(e)q(scr)q(ipt)o (ions)29 b Fe(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:) g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f (:)g(:)h(:)f(:)g(:)g(:)h(:)45 b Fj(30)0 201 y Ff(6)38 b(Wh)o(ere)15 b(t)o(o)h(Go)f(for)g(More)h(Inform)o(a)o(t)o(ion)1102 b(32)0 370 y Fg(1)66 b(In)n(tro)r(d)n(u)n(ct)n(ion)0 489 y Fj(Th)o(e)16 b(Lin)n(ux)g(k)o(er)q(n)o(el)f(PCMCIA)h(syst)o(em)g (h)o(as)g(t)n(hree)h(m)o(ain)d(comp)q(on)o(en)o(t)o(s.)23 b(A)o(t)16 b(t)n(h)o(e)g(lo)o(w)o(e)q(st)g(lev)o(el)g(are)g(t)n(h)o(e)g (so)q(c)o(k)o(et)h(dr)q(iv)o(ers.)0 546 y(Next)c(i)q(s)f(t)n(h)o(e)h (Card)f(Service)q(s)i(mo)q(d)o(ule.)i(Dr)q(iv)o(ers)c(for)g(sp)q (eci\014c)h(cards)g(are)g(lay)o(ere)q(d)g(on)f(t)o(o)o(p)g(of)g(Card)g (Service)q(s.)19 b(On)o(e)13 b(sp)q(ecial)0 603 y(Card)k(Service)q(s)h (clien)o(t,)f(calle)q(d)g(Dr)q(iv)o(er)g(Service)q(s,)h(pro)o(vid)o(e)q (s)g(a)e(link)g(b)q(et)o(w)o(eek)i(us)q(er)g(lev)o(el)e(PCMCIA)h(u)o(t) o(ilit)o(y)f(programs)0 659 y(an)o(d)e(t)n(h)o(e)g(k)o(er)q(n)o(el)g (PCMCIA)g(f)q(acilit)o(ie)q(s.)0 738 y(Th)o(e)d(so)q(c)o(k)o(et)g(dr)q (iv)o(er)g(lay)o(er)f(i)q(s)g(lo)q(os)q(ely)h(bas)q(e)q(d)g(on)f(t)n(h) o(e)h(So)q(c)o(k)o(et)g(Service)q(s)i(API.)d(Th)o(ere)i(are)f(t)o(w)o (o)f(so)q(c)o(k)o(et)h(dr)q(iv)o(er)g(mo)q(d)o(ule)q(s.)16 b(Th)o(e)0 794 y Fi(tcic)e Fj(mo)q(d)o(ule)g(sup)o(p)q(ort)o(s)i(t)n(h) o(e)g(Da)o(t)o(a)o(b)q(o)q(ok)e(TCIC-2)g(f)q(amily)e(of)i(PCMCIA)h(con) o(trollers.)22 b(Th)o(e)15 b Fi(i82365)f Fj(mo)q(d)o(ule)f(sup)o(p)q (ort)o(s)0 851 y(t)n(h)o(e)i(In)o(t)o(el)e(i82365sl)f(f)q(amily)f(an)o (d)i(v)n(ar)q(ious)g(In)o(t)o(el-compa)o(t)o(ible)e(con)o(trollers,)j (includin)o(g)f(Cirrus,)h(VLSI,)f(an)o(d)h(V)m(ad)o(em)e(c)o(hips.)0 930 y(Card)g(Service)q(s)h(i)q(s)f(t)n(h)o(e)g(large)q(st)h(s)q(in)o (gle)e(comp)q(on)o(en)o(t)g(of)h(t)n(h)o(e)g(PCMCIA)h(pac)o(kage.)k(It) 12 b(pro)o(vid)o(e)q(s)g(an)g(API)g(som)o(ewh)o(a)o(t)f(s)q(imilar)0 986 y(t)o(o)i(DOS)g(Card)g(Service)q(s,)h(ad)o(apt)o(e)q(d)g(t)o(o)f(a) g(Unix)f(en)o(vironm)o(en)o(t.)k(Th)o(e)e(Lin)n(ux)e(implem)n(en)o(t)o (a)o(t)o(ion)e(w)o(as)i(bas)q(e)q(d)i(in)e(part)i(on)e(t)n(h)o(e)0 1043 y(Solar)q(i)q(s)g(PCMCIA)i(in)o(t)o(erf)q(ace)g(sp)q(eci\014ca)o (t)o(ion.)k(It)c(i)q(s)f(implem)n(en)o(t)o(e)q(d)f(in)i(t)n(h)o(e)g Fi(pcmcia)p 1322 1043 14 2 v 15 w(core)f Fj(mo)q(d)o(ule.)0 1121 y(Th)o(e)g(Dr)q(iv)o(er)g(Service)q(s)h(lay)o(er)f(implem)n(en)o (t)o(s)e(a)h(us)q(er)i(mo)q(d)o(e)e(ps)q(eudo-d)o(evice)j(for)d(acce)q (ss)q(in)o(g)j(som)o(e)c(Card)i(Service)q(s)i(fu)o(nct)o(ions)0 1178 y(f)q(rom)f(PCMCIA)i(u)o(t)o(ilit)o(y)g(programs.)23 b(It)16 b(i)q(s)g(re)q(sp)q(ons)q(ible)g(for)g(k)o(eepin)o(g)g(trac)o (k)h(of)e(all)g(PCMCIA)i(clien)o(t)f(dr)q(iv)o(ers,)h(an)o(d)e(for)0 1235 y(m)o(a)o(t)o(c)o(hin)o(g)d(up)i(dr)q(iv)o(ers)h(wit)n(h)f(ph)o (ys)q(ical)e(so)q(c)o(k)o(et)o(s.)20 b(It)14 b(i)q(s)f(implem)n(en)o(t) o(e)q(d)f(in)i(t)n(h)o(e)g Fi(ds)g Fj(mo)q(d)o(ule.)0 1313 y(Thi)q(s)k(do)q(cu)o(m)o(en)o(t)g(d)o(e)q(scr)q(ib)q(e)q(s)i(t)n (h)o(e)f(k)o(er)q(n)o(el)g(in)o(t)o(erf)q(ace)f(t)o(o)h(t)n(h)o(e)g (Card)f(Service)q(s)i(an)o(d)e(Dr)q(iv)o(er)g(Service)q(s)i(mo)q(d)o (ule)q(s,)e(an)o(d)g(t)n(h)o(e)0 1370 y(us)q(er)24 b(in)o(t)o(erf)q (ace)f(t)o(o)g(Dr)q(iv)o(er)g(Service)q(s.)46 b(It)23 b(i)q(s)f(in)o(t)o(en)o(d)o(e)q(d)i(for)e(us)q(e)i(b)o(y)f(PCMCIA)g(d)o (evice)h(dr)q(iv)o(er)f(d)o(ev)o(elo)o(p)q(ers.)46 b(Th)o(e)0 1427 y(Lin)n(ux)17 b(PCMCIA-HO)o(WTO)i(d)o(e)q(scr)q(ib)q(e)q(s)g(h)o (o)o(w)e(t)o(o)h(inst)o(all)f(an)o(d)g(us)q(e)i(Lin)n(ux)e(PCMCIA)h (sup)o(p)q(ort.)30 b(It)18 b(i)q(s)f(a)o(v)n(aila)o(ble)e(f)q(rom)0 1483 y Fi(cb-iris.stanford.)o(edu)c Fj(in)i Fi(/pub/pcmcia)p Fj(.)0 1629 y Fd(1.1)56 b(Co)n(p)n(yr)q(igh)n(t)19 b(not)n(ice)f(an)n (d)i(di)q(sclaim)n(er)0 1734 y Fj(Co)o(p)o(yr)q(igh)o(t)13 b(\(c\))h(1995)f(Da)o(vid)g(A.)g(Hin)o(ds)0 1813 y(Thi)q(s)j(do)q(cu)o (m)o(en)o(t)g(m)o(ay)f(b)q(e)h(repro)q(d)o(u)o(ce)q(d)i(or)e(di)q(str)q (ibu)o(t)o(e)q(d)h(in)f(an)o(y)g(form)f(wit)n(h)o(ou)o(t)h(m)o(y)f(pr)q (ior)h(p)q(ermi)q(ss)q(ion.)24 b(P)o(art)o(s)17 b(of)f(t)n(hi)q(s)0 1869 y(do)q(cu)o(m)o(en)o(t)d(m)o(ay)e(b)q(e)i(di)q(str)q(ibu)o(t)o(e)q (d,)g(pro)o(vid)o(e)q(d)g(t)n(h)o(a)o(t)g(t)n(hi)q(s)g(co)o(p)o(yr)q (igh)o(t)f(m)o(e)q(ssage)h(an)o(d)f(a)h(p)q(oin)o(t)o(er)g(t)o(o)g(t)n (h)o(e)h(complet)o(e)d(do)q(cu)o(m)o(en)o(t)0 1926 y(are)g(includ)o(e)q (d.)17 b(Sp)q(eci\014cally)m(,)10 b(it)g(m)o(ay)f(b)q(e)h(includ)o(e)q (d)h(in)f(comm)o(ercial)e(di)q(str)q(ibu)o(t)o(ions)i(wit)n(h)o(ou)o(t) g(m)o(y)f(pr)q(ior)h(cons)q(en)o(t.)18 b(Ho)o(w)o(ev)o(er,)0 1983 y(I)c(w)o(ould)f(lik)o(e)g(t)o(o)h(b)q(e)g(inform)o(e)q(d)e(of)i (su)o(c)o(h)g(usage.)0 2061 y(Thi)q(s)f(do)q(cu)o(m)o(en)o(t)h(m)o(ay)e (b)q(e)i(transla)o(t)o(e)q(d)g(in)o(t)o(o)g(an)o(y)f(lan)o(guage,)g (pro)o(vid)o(e)q(d)h(t)n(hi)q(s)g(co)o(p)o(yr)q(igh)o(t)f(st)o(a)o(t)o (em)o(en)o(t)g(i)q(s)h(left)f(in)o(t)o(act.)0 2139 y(Thi)q(s)19 b(do)q(cu)o(m)o(en)o(t)h(i)q(s)f(pro)o(vid)o(e)q(d)h(\\as)g(i)q(s",)g (wit)n(h)f(no)h(explicit)e(or)i(implie)q(d)d(w)o(arran)o(t)o(ie)q(s.)36 b(Us)q(e)21 b(t)n(h)o(e)f(inform)o(a)o(t)o(ion)d(in)i(t)n(hi)q(s)0 2196 y(do)q(cu)o(m)o(en)o(t)14 b(a)o(t)f(y)o(our)h(o)o(wn)f(r)q(i)q (sk.)0 2365 y Fg(2)66 b(Card)21 b(Service)r(s)g(su)m(bfu)o(nct)n(ion)f (d)o(e)r(scr)q(ipt)n(ions)0 2485 y Fj(Card)14 b(Service)q(s)h(calls)f (h)o(a)o(v)o(e)f(t)n(h)o(e)i(gen)o(eral)f(form:)p eop %%Page: 4 4 4 3 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n (bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1048 b Fj(4)104 81 y Fc(#include)16 b("cs_types.)o(h")104 133 y(#include)g("cs.h")104 237 y(int)i(CardServic)o(es\()o(in)o(t)f (subfunc,)f(void)i(*arg1,)g(void)g(*arg2,)f(...\);)0 339 y Fj(Som)o(e)9 b(Card)i(Service)q(s)h(fu)o(nct)o(ions)f(require)h (addit)o(ion)o(al)d Fi(#include)g Fj(st)o(a)o(t)o(em)o(en)o(t)o(s.)17 b(Th)o(e)11 b(part)o(icular)f(su)n(bfu)o(nct)o(ion)h(d)o(et)o(ermin)o (e)q(s)0 396 y(t)n(h)o(e)g(n)n(u)o(m)n(b)q(er)g(of)f(exp)q(ect)o(e)q(d) i(argu)o(m)o(en)o(t)o(s.)17 b(A)10 b(ret)o(ur)q(n)i(co)q(d)o(e)f(of)f Fi(CS)p 986 396 14 2 v 16 w(SUCCESS)f Fj(in)o(dica)o(t)o(e)q(s)h(t)n(h) o(a)o(t)h(a)f(call)g(su)o(ccee)q(d)o(e)q(d.)20 b(Ot)n(h)o(er)12 b(ret)o(ur)q(n)0 452 y(co)q(d)o(e)q(s)k(in)o(dica)o(t)o(e)d(errors.)0 595 y Fd(2.1)56 b(Clien)n(t)18 b(m)o(an)o(agem)n(en)n(t)e(fu)o(nct)n (ions)0 700 y Fj(Device)23 b(dr)q(iv)o(ers)h(t)n(h)o(a)o(t)f(us)q(e)h (Card)f(Service)q(s)i(fu)o(nct)o(ions)e(are)h(calle)q(d)f(\\clien)o(t)o (s".)46 b(A)23 b(d)o(evice)h(dr)q(iv)o(er)f(sh)o(ould)g(us)q(e)h(t)n(h) o(e)0 757 y Fi(RegisterClient)8 b Fj(call)i(t)o(o)g(get)h(a)g(clien)o (t)f(h)o(an)o(dle)g(b)q(efore)h(us)q(in)o(g)g(ot)n(h)o(er)g(s)q(ervice) q(s.)19 b(Most)11 b(Card)g(Service)q(s)h(fu)o(nct)o(ions)f(will)e(t)o (ak)o(e)0 814 y(t)n(hi)q(s)k(clien)o(t)g(h)o(an)o(dle)f(as)h(an)g(argu) o(m)o(en)o(t.)k(Before)d(u)o(nloadin)o(g,)e(dr)q(iv)o(ers)h(sh)o(ould)g (also)g(u)o(nregi)q(st)o(er)h(wit)n(h)f Fi(DeregisterClient)o Fj(.)0 947 y Ff(2.1.1)48 b(Regi)q(st)o(erCli)o(en)n(t)104 1039 y Fc(int)18 b(CardServic)o(es\()o(Re)o(gis)o(ter)o(Cl)o(ien)o(t,)e (client_han)o(dl)o(e_t)g(*client,)g(client_reg_)o(t)g(*reg\);)0 1141 y Fj(Th)o(e)e Fi(client)p 219 1141 V 15 w(reg)p 300 1141 V 15 w(t)f Fj(d)o(a)o(t)o(a)h(stru)o(ct)o(ure)i(i)q(s)d(giv)o (en)h(b)o(y:)104 1233 y Fc(typedef)j(struct)g(client_reg)o(_t)f({)261 1285 y(dev_info_)o(t)271 b(*dev_info;)261 1337 y(u_long)350 b(Attributes;)261 1389 y(u_long)g(EventMask;)261 1441 y(int)410 b(\(*event_han)o(dl)o(er\))o(\(e)o(ven)o(t_t)16 b(event,)h(int)i(priority)o(,)1065 1493 y(event_cal)o(lba)o(ck)o(_ar)o (gs_)o(t)d(*args\);)261 1545 y(event_cal)o(lb)o(ack)o(_ar)o(gs)o(_t)55 b(event_callb)o(ac)o(k_a)o(rg)o(s;)261 1597 y(u_long)350 b(Version;)104 1649 y(})19 b(client_reg)o(_t)o(;)0 1746 y Fi(RegisterClient)12 b Fj(e)q(st)o(a)o(bli)q(sh)o(e)q(s)k(a)f(link)f (b)q(et)o(w)o(een)i(a)g(clien)o(t)f(dr)q(iv)o(er)g(an)o(d)g(Card)h (Service)q(s,)g(an)o(d)f(conn)o(ect)o(s)j(t)n(h)o(e)e(clien)o(t)f(wit)n (h)0 1803 y(an)f(ap)o(pro)o(pr)q(ia)o(t)o(e)f(so)q(c)o(k)o(et.)20 b(Th)o(e)15 b Fi(dev)p 574 1803 V 15 w(info)e Fj(param)o(et)o(er)h(i)q (s)f(us)q(e)q(d)i(b)o(y)f(Card)h(Service)q(s)g(t)o(o)g(m)o(a)o(t)o(c)o (h)e(t)n(h)o(e)h(clien)o(t)h(wit)n(h)f(a)g(so)q(c)o(k)o(et,)0 1860 y(follo)o(win)o(g)d(a)j(call)f(t)o(o)h Fi(BindDevice)p Fj(.)i(If)e(su)o(cce)q(ssful,)h(a)f(clien)o(t)f(h)o(an)o(dle)h(will)e (b)q(e)i(ret)o(ur)q(n)o(e)q(d)h(in)f Fi(client)p Fj(.)0 1938 y Fi(EventMask)h Fj(sp)q(eci\014e)q(s)j(wh)o(a)o(t)e(ev)o(en)o(t)o (s)i(t)n(hi)q(s)f(clien)o(t)g(sh)o(ould)f(b)q(e)h(not)o(i\014e)q(d)g (of.)26 b(Th)o(e)17 b Fi(event)p 1424 1938 V 14 w(handler)e Fj(en)o(try)j(p)q(oin)o(t)e(will)f(b)q(e)0 1995 y(calle)q(d)f(b)o(y)h (Card)f(Service)q(s)j(wh)o(en)e(an)f(ev)o(en)o(t)h(in)f Fi(EventMask)f Fj(i)q(s)h(pro)q(ce)q(ss)q(e)q(d.)23 b(Th)o(e)15 b Fi(event)p 1428 1995 V 15 w(handler)p 1597 1995 V 14 w(args)f Fj(stru)o(ct)o(ure)i(i)q(s)e(a)0 2052 y(t)o(empla)o(t)o(e)h (for)h(t)n(h)o(e)i(stru)o(ct)o(ure)g(t)n(h)o(a)o(t)f(will)e(b)q(e)i (pass)q(e)q(d)h(t)o(o)f(t)n(h)o(e)h(ev)o(en)o(t)f(h)o(an)o(dler.)26 b(Th)o(e)17 b Fi(Version)f Fj(param)o(et)o(er)g(id)o(en)o(t)o(i\014e)q (s)h(t)n(h)o(e)0 2109 y(Card)d(Service)q(s)h(v)o(ers)q(ion)f(lev)o(el)g (t)n(h)o(a)o(t)g(t)n(hi)q(s)g(dr)q(iv)o(er)g(exp)q(ect)o(s;)h(it)e(i)q (s)h(curren)o(t)n(ly)h(ignore)q(d.)0 2187 y(A)h(dr)q(iv)o(er)g(sh)o (ould)g(b)q(e)h(prepare)q(d)g(t)o(o)g(h)o(an)o(dle)e(Card)h(Service)q (s)i(ev)o(en)o(t)o(s)g(wh)o(en)e(it)g(calls)g Fi(RegisterClient)p Fj(.)21 b(Thi)q(s)16 b(call)f(will)0 2244 y(alw)o(ays)c(gen)o(era)o(t)o (e)i(a)f Fi(CS)p 373 2244 V 15 w(REGISTRATION)p 652 2244 V 13 w(COMPLETE)e Fj(ev)o(en)o(t,)j(an)o(d)e(m)o(ay)f(also)h(gen)o(era) o(t)o(e)i(an)f(art)o(i\014cial)f Fi(CS)p 1639 2244 V 15 w(CARD)p 1742 2244 V 15 w(INSERTION)0 2300 y Fj(ev)o(en)o(t)j(if)f (t)n(h)o(e)i(so)q(c)o(k)o(et)g(i)q(s)e(curren)o(t)n(ly)i(o)q(ccupie)q (d.)0 2379 y(Ret)o(ur)q(n)f(co)q(d)o(e)q(s:)0 2476 y Fi(CS)p 47 2476 V 15 w(OUT)p 128 2476 V 15 w(OF)p 187 2476 V 16 w(RESOURCE)104 2546 y Fj(An)g(ap)o(pro)o(pr)q(ia)o(t)o(e)f (so)q(c)o(k)o(et)i(could)e(not)h(b)q(e)g(fou)o(n)o(d)g(for)f(t)n(hi)q (s)h(dr)q(iv)o(er.)p eop %%Page: 5 5 5 4 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n (bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1043 b Fj(5)0 81 y Ff(2.1.2)48 b(Deregi)q(st)o(erCl)o(ien)n(t)104 176 y Fc(int)18 b(CardServic)o(es\()o(De)o(reg)o(ist)o(er)o(Cli)o(en)o (t,)e(client_han)o(dle)o(_t)g(client\);)0 296 y Fi(DeregisterClient)c Fj(s)q(ev)o(ers)17 b(t)n(h)o(e)f(conn)o(ect)o(ion)g(b)q(et)o(w)o(een)g (a)f(clien)o(t)g(an)o(d)g(Card)h(Service)q(s.)23 b(It)16 b(sh)o(ould)f(b)q(e)g(calle)q(d)h(aft)o(er)f(t)n(h)o(e)0 353 y(clien)o(t)f(h)o(as)f(f)q(ree)q(d)i(an)o(y)e(re)q(source)q(s)j(it) e(h)o(as)g(allo)q(ca)o(t)o(e)q(d.)j(Once)e(a)e(conn)o(ect)o(ion)i(i)q (s)e(brok)o(en,)g(it)h(cannot)g(b)q(e)f(ree)q(st)o(a)o(bli)q(sh)o(e)q (d)i(u)o(n)o(t)o(il)0 410 y(aft)o(er)f(anot)n(h)o(er)h(call)e(t)o(o)h Fi(BindDevice)p Fj(.)0 488 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 599 y Fi(CS)p 47 599 14 2 v 15 w(BAD)p 128 599 V 15 w(HANDLE)104 673 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 763 y Fi(CS)p 47 763 V 15 w(IN)p 106 763 V 16 w(USE)104 836 y Fj(Th)o(e)h(clien)o(t)h(st)o(ill)e(h)o(as)h(allo)q(ca)o(t)o(e)q (d)g(re)q(source)q(s,)j(su)o(c)o(h)e(as)f(IO)h(p)q(ort)g(win)o(do)o(ws) e(or)i(an)f(in)o(t)o(errupt,)g(or)h(t)n(h)o(e)g(so)q(c)o(k)o(et)g (con\014g-)104 893 y(ura)o(t)o(ion)e(i)q(s)g(lo)q(c)o(k)o(e)q(d.)0 1029 y Ff(2.1.3)48 b(SetEv)o(en)o(tMask)104 1125 y Fc(int)18 b(CardServic)o(es\()o(Se)o(tEv)o(ent)o(Ma)o(sk,)e(client_ha)o(ndl)o(e_) o(t)h(client,)g(eventmas)o(k_t)f(*mask\);)0 1244 y Fj(Th)o(e)e Fi(eventmask)p 285 1244 V 14 w(t)g Fj(stru)o(ct)o(ure)h(i)q(s)f(giv)o (en)f(b)o(y:)104 1351 y Fc(typedef)k(struct)g(eventmask_)o(t)f({)261 1403 y(u_long)194 b(Attribut)o(es;)261 1455 y(u_long)g(EventMas)o(k;) 104 1507 y(})19 b(eventmask_)o(t;)0 1619 y Fi(SetEventMask)11 b Fj(up)q(d)o(a)o(t)o(e)q(s)16 b(t)n(h)o(e)e(m)o(ask)f(t)n(h)o(a)o(t)h (d)o(et)o(ermin)o(e)q(s)g(whic)o(h)g(ev)o(en)o(t)o(s)h(t)n(hi)q(s)f (clien)o(t)g(will)e(b)q(e)i(not)o(i\014e)q(d)g(of.)0 1697 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 1808 y Fi(CS)p 47 1808 V 15 w(BAD)p 128 1808 V 15 w(HANDLE)104 1882 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 2018 y Ff(2.1.4)48 b(Bin)o(dDevi)o(ce)104 2114 y Fc(int)18 b(CardServic)o(es\()o(Bi)o(ndD)o(evi)o(ce)o(,)f(bind_req)o(_t)f (*req\);)0 2233 y Fj(Th)o(e)e Fi(bind)p 175 2233 V 15 w(req)f Fj(stru)o(ct)o(ure)j(i)q(s)d(giv)o(en)h(b)o(y:)104 2340 y Fc(typedef)j(struct)g(bind_req_t)f({)261 2392 y(socket_t)154 b(Socket;)261 2444 y(dev_info_)o(t)115 b(*dev_inf)o(o;)104 2496 y(})19 b(bind_req_t)o(;)p eop %%Page: 6 6 6 5 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n (bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1043 b Fj(6)0 81 y Fi(BindDevice)10 b Fj(asso)q(cia)o(t)o(e)q(s)k(a)f(d)o (evice)g(dr)q(iv)o(er)g(wit)n(h)f(a)h(part)o(icular)f(so)q(c)o(k)o(et.) 18 b(It)13 b(i)q(s)f(norm)o(ally)e(calle)q(d)i(b)o(y)g(Dr)q(iv)o(er)h (Service)q(s)h(aft)o(er)0 138 y(a)i(n)o(ewly)g(ins)q(ert)o(e)q(d)h (card)f(h)o(as)h(b)q(een)f(id)o(en)o(t)o(i\014e)q(d.)25 b(Once)17 b(a)f(dr)q(iv)o(er)g(h)o(as)h(b)q(een)f(b)q(ou)o(n)o(d)h(t)o (o)f(a)g(so)q(c)o(k)o(et,)h(it)f(will)e(b)q(e)i(eligible)f(t)o(o)0 194 y(regi)q(st)o(er)h(as)e(a)h(clien)o(t)g(of)f(t)n(h)o(a)o(t)h(so)q (c)o(k)o(et.)21 b(Not)o(e)15 b(t)n(h)o(a)o(t)g(t)n(hi)q(s)g(call)f(do)q (e)q(s)h(not)g(t)o(ak)o(e)g(a)f(clien)o(t)h(h)o(an)o(dle)f(as)h(an)f (argu)o(m)o(en)o(t.)20 b(Thi)q(s)15 b(i)q(s)0 251 y(t)n(h)o(e)g(only)e (Card)h(Service)q(s)h(call)e(t)n(h)o(a)o(t)h(t)o(ak)o(e)q(s)g(a)g(so)q (c)o(k)o(et)h(n)n(u)o(m)n(b)q(er)e(as)h(an)g(argu)o(m)o(en)o(t.)0 329 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 440 y Fi(CS)p 47 440 14 2 v 15 w(BAD)p 128 440 V 15 w(SOCKET)104 513 y Fj(Th)o(e)g(sp)q(eci\014e)q(d)h(so)q(c)o(k)o(et)g(n)n(u)o(m)n(b)q(er) e(i)q(s)h(in)o(v)n(alid.)0 658 y Fd(2.2)56 b(So)r(c)n(k)n(et)18 b(st)n(a)o(t)n(e)h(con)n(tro)o(l)0 763 y Fj(Th)o(e)q(s)q(e)d(fu)o(nct)o (ions)f(are)g(more)f(or)g(le)q(ss)i(concer)q(n)o(e)q(d)h(wit)n(h)e(get) n(t)o(in)o(g)g(an)o(d)f(s)q(et)n(t)o(in)o(g)i(t)n(h)o(e)f(curren)o(t)h (o)o(p)q(era)o(t)o(in)o(g)f(st)o(a)o(t)o(e)g(of)f(a)h(so)q(c)o(k)o(et.) 0 820 y Fi(GetStatus)i Fj(ret)o(ur)q(ns)j(t)n(h)o(e)f(curren)o(t)i(so)q (c)o(k)o(et)e(st)o(a)o(t)o(e.)34 b Fi(ResetCard)17 b Fj(i)q(s)h(us)q(e)q(d)i(t)o(o)f(s)q(en)o(d)h(a)e(h)o(ard)h(re)q(s)q(et) h(s)q(ign)o(al)e(t)o(o)h(a)g(so)q(c)o(k)o(et.)0 877 y Fi(SuspendCard)d Fj(an)o(d)j Fi(ResumeCard)d Fj(can)j(b)q(e)g(us)q(e)q (d)h(t)o(o)f(p)q(o)o(w)o(er)g(do)o(wn)f(an)o(d)h(p)q(o)o(w)o(er)g(up)g (a)f(so)q(c)o(k)o(et)i(wit)n(h)o(ou)o(t)f(releas)q(in)o(g)g(t)n(h)o(e)0 934 y(dr)q(iv)o(ers)14 b(curren)o(t)n(ly)h(b)q(ou)o(n)o(d)f(t)o(o)g(t)n (h)o(a)o(t)f(so)q(c)o(k)o(et.)19 b Fi(EjectCard)12 b Fj(an)o(d)h Fi(InsertCard)f Fj(e)q(ss)q(en)o(t)o(ially)h(mimi)o(c)e (real)j(card)g(eject)o(ion)g(an)o(d)0 991 y(ins)q(ert)o(ion)g(ev)o(en)o (t)o(s.)0 1127 y Ff(2.2.1)48 b(GetSt)o(a)o(t)o(u)o(s)104 1222 y Fc(int)18 b(CardServic)o(es\()o(Ge)o(tSt)o(atu)o(s,)e(client_ha) o(ndl)o(e_t)g(client,)h(status_t)f(*status\);)0 1340 y Fj(Th)o(e)e Fi(status)p 219 1340 V 15 w(t)f Fj(d)o(a)o(t)o(a)h(stru)o (ct)o(ure)i(i)q(s)d(giv)o(en)h(b)o(y:)104 1446 y Fc(typedef)j(struct)g (status_t)g({)261 1498 y(u_long)194 b(CardStat)o(e;)261 1550 y(u_long)g(SocketSt)o(ate)o(;)104 1602 y(})19 b(status_t;)0 1712 y Fi(GetStatus)12 b Fj(ret)o(ur)q(ns)j(t)n(h)o(e)f(curren)o(t)i (st)o(a)o(t)o(us)e(of)f(a)h(clien)o(t's)g(so)q(c)o(k)o(et.)19 b(Th)o(e)14 b(follo)o(win)o(g)d(\015ags)j(are)g(d)o(e\014n)o(e)q(d)h (in)f Fi(CardState)p Fj(:)0 1830 y Fi(CS)p 47 1830 V 15 w(EVENT)p 172 1830 V 15 w(CARD)p 275 1830 V 15 w(DETECT)104 1904 y Fj(Sp)q(eci\014e)q(s)h(t)n(h)o(a)o(t)f(t)n(h)o(e)g(so)q(c)o(k)o (et)h(i)q(s)e(o)q(ccupie)q(d.)0 1993 y Fi(CS)p 47 1993 V 15 w(EVENT)p 172 1993 V 15 w(WRITE)p 297 1993 V 15 w(PROTECT)104 2066 y Fj(Sp)q(eci\014e)q(s)i(t)n(h)o(a)o(t)f(t)n(h)o(e)g (card)h(i)q(s)e(curren)o(t)n(ly)i(wr)q(it)o(e)f(prot)o(ect)o(e)q(d.)0 2155 y Fi(CS)p 47 2155 V 15 w(EVENT)p 172 2155 V 15 w(BATTERY)p 341 2155 V 14 w(LOW)104 2229 y Fj(Sp)q(eci\014e)q(s)h(t)n(h)o(a)o(t)f (t)n(h)o(e)g(card)h(ba)o(t)n(t)o(ery)g(i)q(s)e(lo)o(w.)0 2318 y Fi(CS)p 47 2318 V 15 w(EVENT)p 172 2318 V 15 w(BATTERY)p 341 2318 V 14 w(DEAD)104 2391 y Fj(Sp)q(eci\014e)q(s)i(t)n(h)o(a)o(t)f (t)n(h)o(e)g(card)h(ba)o(t)n(t)o(ery)g(i)q(s)e(d)o(ead.)0 2480 y Fi(CS)p 47 2480 V 15 w(EVENT)p 172 2480 V 15 w(READY)p 297 2480 V 15 w(CHANGE)104 2554 y Fj(Sp)q(eci\014e)q(s)i(t)n(h)o(a)o(t) f(t)n(h)o(e)g(card)h(i)q(s)e(ready)m(.)p eop %%Page: 7 7 7 6 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n (bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1043 b Fj(7)0 81 y Fi(CS)p 47 81 14 2 v 15 w(EVENT)p 172 81 V 15 w(PM)p 231 81 V 15 w(SUSPEND)104 154 y Fj(Sp)q(eci\014e)q(s)15 b(t)n(h)o(a)o(t)f(t)n(h)o(e)g(so)q(c)o(k)o(et)h(i)q(s)e(susp)q(en)o(d)o (e)q(d.)0 274 y Fi(SocketState)c Fj(i)q(s)h(curren)o(t)n(ly)i(u)o(n)n (us)q(e)q(d,)h(bu)o(t)e(in)f(t)n(h)o(eory)m(,)i(it)e(sh)o(ould)h(la)o (t)o(c)o(h)f(c)o(h)o(an)o(ge)q(s)i(in)f(t)n(h)o(e)g(st)o(a)o(t)o(e)h (of)e(t)n(h)o(e)i(\014elds)f(in)f Fi(CardState)p Fj(.)0 352 y(Ret)o(ur)q(n)k(co)q(d)o(e)q(s:)0 464 y Fi(CS)p 47 464 V 15 w(BAD)p 128 464 V 15 w(HANDLE)104 537 y Fj(Th)o(e)g(clien)o (t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 673 y Ff(2.2.2)48 b(Re)q(s)q(etCard)104 769 y Fc(int)18 b(CardServic)o(es\()o(Re)o(set)o (Car)o(d,)e(client_ha)o(ndl)o(e_t)g(client\);)0 889 y Fi(ResetCard)c Fj(reque)q(st)o(s)17 b(t)n(h)o(a)o(t)d(a)f(clien)o(t's)h (so)q(c)o(k)o(et)h(b)q(e)f(re)q(s)q(et.)20 b(Wh)o(en)14 b(t)n(hi)q(s)f(call)h(i)q(s)f(m)o(ad)o(e,)g(Card)h(Service)q(s)h(s)q (en)o(ds)g(all)e(clien)o(t)o(s)h(a)0 945 y Fi(CS)p 47 945 V 15 w(EVENT)p 172 945 V 15 w(RESET)p 297 945 V 15 w(REQUEST)f Fj(ev)o(en)o(t.)20 b(If)14 b(an)o(y)g(clien)o(t)h(reject)o (s)i(t)n(h)o(e)e(reque)q(st,)h(Card)e(Service)q(s)j(s)q(en)o(ds)e(t)n (h)o(e)g(init)o(ia)o(t)o(in)o(g)e(clien)o(t)h(a)0 1002 y Fi(CS)p 47 1002 V 15 w(EVENT)p 172 1002 V 15 w(RESET)p 297 1002 V 15 w(COMPLETE)f Fj(ev)o(en)o(t)k(wit)n(h)e Fi(event)p 817 1002 V 15 w(callback)p 1008 1002 V 14 w(args.info)f Fj(s)q(et)i(t)o(o)g(t)n(h)o(e)g(ret)o(ur)q(n)g(co)q(d)o (e)h(of)e(t)n(h)o(e)h(clien)o(t)g(t)n(h)o(a)o(t)0 1059 y(reject)o(e)q(d)g(t)n(h)o(e)e(reque)q(st.)0 1137 y(If)j(all)e(clien)o (t)o(s)j(agree)g(t)o(o)f(t)n(h)o(e)h(reque)q(st,)h(Card)e(Service)q(s)i (s)q(en)o(ds)e(a)g Fi(CS)p 1102 1137 V 15 w(EVENT)p 1227 1137 V 15 w(RESET)p 1352 1137 V 15 w(PHYSICAL)e Fj(ev)o(en)o(t,)j(t)n (h)o(en)g(re)q(s)q(et)o(s)h(t)n(h)o(e)0 1194 y(so)q(c)o(k)o(et.)34 b(Wh)o(en)20 b(t)n(h)o(e)f(so)q(c)o(k)o(et)h(s)q(ign)o(als)e(t)n(h)o(a) o(t)h(it)g(i)q(s)g(ready)m(,)h(a)f Fi(CS)p 1026 1194 V 15 w(EVENT)p 1151 1194 V 15 w(CARD)p 1254 1194 V 15 w(RESET)e Fj(ev)o(en)o(t)j(i)q(s)f(gen)o(era)o(t)o(e)q(d.)34 b(Fin)o(ally)m(,)18 b(a)0 1251 y Fi(CS)p 47 1251 V 15 w(EVENT)p 172 1251 V 15 w(RESET)p 297 1251 V 15 w(COMPLETE)10 b Fj(ev)o(en)o(t)i(i)q(s)g(s)q(en)o(t)g(t)o(o)g(t)n(h)o(e)h(init)o(ia)o (t)o(in)o(g)d(clien)o(t,)i(wit)n(h)g Fi(event)p 1343 1251 V 14 w(callback)p 1533 1251 V 14 w(args.info)e Fj(s)q(et)j(t)o(o)f (zero.)0 1329 y(Ret)o(ur)q(n)i(co)q(d)o(e)q(s:)0 1440 y Fi(CS)p 47 1440 V 15 w(BAD)p 128 1440 V 15 w(HANDLE)104 1514 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 1604 y Fi(CS)p 47 1604 V 15 w(NO)p 106 1604 V 16 w(CARD)104 1677 y Fj(Th)o(e)h(so)q(c)o(k)o(et)h(ass)q(ign)o(e)q(d)f(t)o(o)g(t)n (hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n(ly)i(v)n(acan)o(t.)0 1767 y Fi(CS)p 47 1767 V 15 w(IN)p 106 1767 V 16 w(USE)104 1841 y Fj(Thi)q(s)e(so)q(c)o(k)o(et)i(i)q(s)e(curren)o(t)n(ly)i(b)q(e)q (in)o(g)f(re)q(s)q(et.)0 1977 y Ff(2.2.3)48 b(Susp)q(en)o(dCard)104 2072 y Fc(int)18 b(CardServic)o(es\()o(Su)o(spe)o(ndC)o(ar)o(d,)e (client_han)o(dle)o(_t)g(client\);)0 2192 y Fj(Card)i(Service)q(s)i(s)q (en)o(ds)f(all)e(clien)o(t)o(s)h Fi(CS)p 627 2192 V 16 w(EVENT)p 753 2192 V 14 w(PM)p 811 2192 V 16 w(SUSPEND)e Fj(ev)o(en)o(t)o(s,)k(t)n(h)o(en)f(sh)n(u)o(t)o(s)h(do)o(wn)e(an)o(d)g (t)o(ur)q(ns)g(o\013)g(p)q(o)o(w)o(er)h(t)o(o)f(t)n(h)o(e)0 2249 y(so)q(c)o(k)o(et.)0 2327 y(Ret)o(ur)q(n)c(co)q(d)o(e)q(s:)0 2439 y Fi(CS)p 47 2439 V 15 w(BAD)p 128 2439 V 15 w(HANDLE)104 2512 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)p eop %%Page: 8 8 8 7 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n (bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1043 b Fj(8)0 81 y Fi(CS)p 47 81 14 2 v 15 w(NO)p 106 81 V 16 w(CARD)104 154 y Fj(Th)o(e)14 b(so)q(c)o(k)o(et)h(ass)q(ign)o(e)q(d) f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n(ly)i(v)n(acan)o (t.)0 244 y Fi(CS)p 47 244 V 15 w(IN)p 106 244 V 16 w(USE)104 318 y Fj(Thi)q(s)e(so)q(c)o(k)o(et)i(i)q(s)e(already)h(susp)q(en)o(d)o (e)q(d.)0 454 y Ff(2.2.4)48 b(Re)q(su)o(m)o(eCard)104 549 y Fc(int)18 b(CardServic)o(es\()o(Re)o(sum)o(eCa)o(rd)o(,)f (client_h)o(and)o(le_)o(t)f(client\);)0 669 y Fj(Aft)o(er)e(re)q(st)o (or)q(in)o(g)i(p)q(o)o(w)o(er)e(t)o(o)g(t)n(h)o(e)h(so)q(c)o(k)o(et,)f (Card)g(Service)q(s)h(will)e(not)o(ify)g(all)f(clien)o(t)o(s)j(wit)n(h) f Fi(CS)p 1444 669 V 15 w(EVENT)p 1569 669 V 15 w(PM)p 1628 669 V 15 w(RESUME)e Fj(ev)o(en)o(t)o(s.)0 747 y(Ret)o(ur)q(n)i(co) q(d)o(e)q(s:)0 859 y Fi(CS)p 47 859 V 15 w(BAD)p 128 859 V 15 w(HANDLE)104 932 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q (s)g(in)o(v)n(alid.)0 1022 y Fi(CS)p 47 1022 V 15 w(NO)p 106 1022 V 16 w(CARD)104 1096 y Fj(Th)o(e)h(so)q(c)o(k)o(et)h(ass)q (ign)o(e)q(d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n (ly)i(v)n(acan)o(t.)0 1186 y Fi(CS)p 47 1186 V 15 w(IN)p 106 1186 V 16 w(USE)104 1259 y Fj(Thi)q(s)e(so)q(c)o(k)o(et)i(i)q(s)e (not)h(curren)o(t)n(ly)h(susp)q(en)o(d)o(e)q(d.)0 1395 y Ff(2.2.5)48 b(EjectCard)104 1491 y Fc(int)18 b(CardServic)o(es\()o (Ej)o(ect)o(Car)o(d,)e(client_ha)o(ndl)o(e_t)g(client\);)0 1611 y Fj(Card)d(Service)q(s)i(s)q(en)o(ds)f(eject)h(ev)o(en)o(t)o(s)f (t)o(o)g(all)e(clien)o(t)o(s,)i(t)n(h)o(en)g(sh)n(u)o(t)o(s)h(do)o(wn)e (an)o(d)g(t)o(ur)q(ns)h(o\013)f(p)q(o)o(w)o(er)h(t)o(o)f(t)n(h)o(e)h (so)q(c)o(k)o(et.)19 b(All)12 b(clien)o(t)o(s)0 1667 y(except)j(for)f(Dr)q(iv)o(er)f(Service)q(s)j(will)c(b)q(e)i(u)o(nlink) o(e)q(d)g(f)q(rom)e(t)n(h)o(e)j(so)q(c)o(k)o(et.)0 1746 y(Ret)o(ur)q(n)f(co)q(d)o(e)q(s:)0 1857 y Fi(CS)p 47 1857 V 15 w(BAD)p 128 1857 V 15 w(HANDLE)104 1930 y Fj(Th)o(e)g(clien)o (t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 2020 y Fi(CS)p 47 2020 V 15 w(NO)p 106 2020 V 16 w(CARD)104 2094 y Fj(Th)o(e)h(so)q(c) o(k)o(et)h(ass)q(ign)o(e)q(d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f (curren)o(t)n(ly)i(v)n(acan)o(t.)0 2230 y Ff(2.2.6)48 b(Ins)q(ertCard)104 2326 y Fc(int)18 b(CardServic)o(es\()o(In)o(ser)o (tCa)o(rd)o(,)f(client_h)o(and)o(le_)o(t)f(client\);)0 2445 y Fj(Card)e(Service)q(s)h(s)q(en)o(ds)g(ins)q(ert)o(ion)f(ev)o(en) o(t)o(s)h(t)o(o)f(all)f(clien)o(t)o(s)i(of)e(t)n(hi)q(s)h(so)q(c)o(k)o (et)g(\(norm)o(ally)m(,)d(only)i(Dr)q(iv)o(er)h(Service)q(s\).)0 2524 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)p eop %%Page: 9 9 9 8 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n (bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1043 b Fj(9)0 81 y Fi(CS)p 47 81 14 2 v 15 w(BAD)p 128 81 V 15 w(HANDLE)104 152 y Fj(Th)o(e)14 b(clien)o(t)g(h)o(an)o(dle)f(i)q (s)g(in)o(v)n(alid.)0 239 y Fi(CS)p 47 239 V 15 w(NO)p 106 239 V 16 w(CARD)104 311 y Fj(Th)o(e)h(so)q(c)o(k)o(et)h(ass)q(ign)o (e)q(d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n(ly)i(v)n (acan)o(t.)0 397 y Fi(CS)p 47 397 V 15 w(IN)p 106 397 V 16 w(USE)104 469 y Fj(Th)o(e)f(so)q(c)o(k)o(et)h(h)o(as)f(already)g (b)q(een)g(con\014gure)q(d.)0 613 y Fd(2.3)56 b(IO)18 b(card)h(con\014gura)o(t)n(ion)g(calls)0 718 y Fj(Th)o(e)14 b(norm)o(al)e(ord)o(er)k(of)d(ev)o(en)o(t)o(s)i(i)q(s)f(for)g(a)f(dr)q (iv)o(er)h(t)o(o)h(re)q(s)q(erv)o(e)h(IO)e(p)q(ort)o(s)h(an)o(d)f(an)g (in)o(t)o(errupt)h(lin)o(e)e(wit)n(h)h(calls)g(t)o(o)g Fi(RequestIO)0 775 y Fj(an)o(d)g Fi(RequestIRQ)p Fj(,)f(t)n(h)o(en)i(t) o(o)g(call)f Fi(RequestConfigurat)o(ion)d Fj(t)o(o)k(act)o(ually)f (con\014gure)i(t)n(h)o(e)f(so)q(c)o(k)o(et.)21 b(If)15 b(an)o(y)f(of)g(t)n(h)o(e)q(s)q(e)i(calls)0 832 y(f)q(ails,)c(a)h(dr)q (iv)o(er)h(sh)o(ould)g(b)q(e)g(sure)h(t)o(o)f(releas)q(e)i(an)o(y)d(re) q(source)q(s)k(it)c(su)o(cce)q(ssfully)j(re)q(s)q(erv)o(e)q(d.)0 966 y Ff(2.3.1)48 b(Reque)q(stIO)104 1060 y Fc(int)18 b(CardServic)o(es\()o(Re)o(que)o(stI)o(O,)e(client_ha)o(ndl)o(e_t)g (client,)h(io_req_t)f(*req\);)0 1171 y Fj(Th)o(e)e Fi(io)p 131 1171 V 15 w(req)p 212 1171 V 16 w(t)f Fj(d)o(a)o(t)o(a)h(stru)o(ct) o(ure)i(i)q(s)d(giv)o(en)g(b)o(y:)104 1271 y Fc(typedef)k(struct)g (io_req_t)g({)261 1323 y(ioaddr_t)154 b(BasePort)o(1;)261 1375 y(ioaddr_t)g(NumPorts)o(1;)261 1427 y(u_long)194 b(Attribut)o(es1)o(;)261 1479 y(ioaddr_t)154 b(BasePort)o(2;)261 1531 y(ioaddr_t)g(NumPorts)o(2;)261 1583 y(u_long)194 b(Attribut)o(es2)o(;)261 1635 y(u_long)g(IOAddrLi)o(nes)o(;)104 1687 y(})19 b(io_req_t;)0 1792 y Fi(RequestIO)11 b Fj(re)q(s)q(erv)o(e) q(s)k(IO)d(p)q(ort)h(win)o(do)o(ws)f(for)g(a)g(card.)18 b(If)12 b Fi(BasePort1)f Fj(i)q(s)h(non-zero,)h(it)f(sp)q(eci\014e)q(s) i(t)n(h)o(e)f(IO)f(p)q(ort)h(addre)q(ss)i(of)0 1848 y(t)n(h)o(e)d(win)o (do)o(w)f(t)o(o)h(b)q(e)g(re)q(s)q(erv)o(e)q(d;)i(if)d(it)g(i)q(s)g (zero,)h(Card)g(Service)q(s)h(will)d(\014n)o(d)i(an)f(a)o(v)n(aila)o (ble)e(win)o(do)o(w)i(an)o(d)g(s)q(et)h Fi(BasePort1)e Fj(t)o(o)i(t)n(hi)q(s)0 1905 y(addre)q(ss.)26 b(If)16 b Fi(NumPorts2)e Fj(i)q(s)h(non-zero,)i(a)f(s)q(econ)o(d)g(IO)g(p)q (ort)h(win)o(do)o(w)e(will)f(also)h(b)q(e)h(re)q(s)q(erv)o(e)q(d.)27 b Fi(IOAddrLines)14 b Fj(sp)q(eci\014e)q(s)0 1962 y(t)n(h)o(e)h(n)n(u)o (m)n(b)q(er)e(of)h(addre)q(ss)h(lin)o(e)q(s)f(t)n(h)o(a)o(t)g(are)g (act)o(ually)f(d)o(eco)q(d)o(e)q(d)j(b)o(y)e(t)n(h)o(e)h(PCMCIA)f (card;)g(t)n(hi)q(s)f(i)q(s)h(not)g(curren)o(t)n(ly)h(us)q(e)q(d.)0 2040 y(Th)o(e)f(follo)o(win)o(g)d(\015ags)j(can)g(b)q(e)g(sp)q (eci\014e)q(d)h(in)f Fi(Attributes1)d Fj(an)o(d)j Fi(Attributes2)p Fj(:)0 2145 y Fi(IO)p 47 2145 V 15 w(DATA)p 150 2145 V 15 w(PATH)p 253 2145 V 15 w(WIDTH)104 2216 y Fj(Thi)q(s)g(\014eld)g (m)o(ay)f(e)q(it)n(h)o(er)j(b)q(e)e Fi(IO)p 601 2216 V 16 w(DATA)p 705 2216 V 14 w(PATH)p 807 2216 V 15 w(WIDTH)p 932 2216 V 15 w(16)g Fj(for)g(16-bit)g(acce)q(ss,)i(or)f Fi(IO)p 1422 2216 V 15 w(DATA)p 1525 2216 V 15 w(PATH)p 1628 2216 V 15 w(WIDTH)p 1753 2216 V 14 w(8)g Fj(for)f(8-bit)104 2273 y(acce)q(ss,)i(or)d Fi(IO)p 337 2273 V 16 w(DATA)p 441 2273 V 15 w(PATH)p 544 2273 V 14 w(WIDTH)p 668 2273 V 15 w(AUTO)g Fj(t)o(o)h(dyn)o(amically)d(s)q(ize)j(t)n(h)o(e)h(bus)f (bas)q(e)q(d)h(on)e(t)n(h)o(e)i(acce)q(ss)h(s)q(ize.)0 2378 y(Ret)o(ur)q(n)e(co)q(d)o(e)q(s:)0 2482 y Fi(CS)p 47 2482 V 15 w(BAD)p 128 2482 V 15 w(HANDLE)104 2554 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)p eop %%Page: 10 10 10 9 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su) n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o(s)1022 b Fj(10)0 81 y Fi(CS)p 47 81 14 2 v 15 w(NO)p 106 81 V 16 w(CARD)104 154 y Fj(Th)o(e)14 b(so)q(c)o(k)o(et)h(ass)q(ign)o(e)q (d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n(ly)i(v)n (acan)o(t.)0 244 y Fi(CS)p 47 244 V 15 w(IN)p 106 244 V 16 w(USE)104 318 y Fj(Thi)q(s)e(so)q(c)o(k)o(et's)i(IO)f(win)o(do)o (ws)f(h)o(a)o(v)o(e)h(already)g(b)q(een)g(re)q(s)q(erv)o(e)q(d.)0 408 y Fi(CS)p 47 408 V 15 w(CONFIGURATION)p 348 408 V 13 w(LOCKED)104 481 y Fj(Thi)q(s)f(so)q(c)o(k)o(et's)i(con\014gura)o(t) o(ion)e(h)o(as)h(b)q(een)g(lo)q(c)o(k)o(e)q(d)g(b)o(y)g(a)g(call)f(t)o (o)h Fi(RequestConfigurat)o(ion)p Fj(.)0 571 y Fi(CS)p 47 571 V 15 w(BAD)p 128 571 V 15 w(ATTRIBUTE)104 644 y Fj(An)g(u)o(nsup)o(p)q(ort)o(e)q(d)h(a)o(t)n(tr)q(ibu)o(t)o(e)g (\015ag)e(w)o(as)h(sp)q(eci\014e)q(d.)0 781 y Ff(2.3.2)48 b(Rele)q(as)q(eIO)104 876 y Fc(int)18 b(CardServic)o(es\()o(Re)o(lea)o (seI)o(O,)e(client_ha)o(ndl)o(e_t)g(client,)h(io_req_t)f(*req\);)0 996 y Fi(ReleaseIO)8 b Fj(u)o(n-re)q(s)q(erv)o(e)q(s)14 b(IO)c(p)q(ort)h(win)o(do)o(ws)f(allo)q(ca)o(t)o(e)q(d)f(b)o(y)h(a)g (previous)h(call)f(t)o(o)g Fi(RequestIO)p Fj(.)e(Th)o(e)j Fi(req)e Fj(param)o(et)o(er)h(sh)o(ould)0 1053 y(b)q(e)k(t)n(h)o(e)h (sam)o(e)d(on)o(e)i(pass)q(e)q(d)i(t)o(o)e Fi(RequestIO)p Fj(.)0 1131 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 1242 y Fi(CS)p 47 1242 V 15 w(BAD)p 128 1242 V 15 w(HANDLE)104 1316 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 1406 y Fi(CS)p 47 1406 V 15 w(CONFIGURATION)p 348 1406 V 13 w(LOCKED)104 1479 y Fj(Thi)q(s)j(so)q(c)o(k)o(et's)i(con\014gura)o (t)o(ion)f(h)o(as)g(b)q(een)h(lo)q(c)o(k)o(e)q(d)f(b)o(y)g(a)g(call)g (t)o(o)g Fi(RequestConfigurati)o(on)p Fj(.)25 b(Th)o(e)18 b(con\014gura)o(t)o(ion)104 1536 y(sh)o(ould)13 b(b)q(e)h(releas)q(e)q (d)i(b)q(efore)e(callin)o(g)f(Releas)q(eIO.)0 1626 y Fi(CS)p 47 1626 V 15 w(BAD)p 128 1626 V 15 w(ARGS)104 1699 y Fj(Th)o(e)h(param)o(et)o(ers)g(in)f Fi(req)g Fj(do)h(not)g(m)o (a)o(t)o(c)o(h)e(t)n(h)o(e)j(param)o(et)o(ers)f(pass)q(e)q(d)h(t)o(o)f Fi(RequestIO)p Fj(.)0 1836 y Ff(2.3.3)48 b(Reque)q(stIR)o(Q)104 1931 y Fc(int)18 b(CardServic)o(es\()o(Re)o(que)o(stI)o(RQ)o(,)f (client_h)o(and)o(le_)o(t)f(client,)h(irq_req_t)f(*req\);)0 2051 y Fj(Th)o(e)e Fi(irq)p 153 2051 V 15 w(req)p 234 2051 V 15 w(t)g Fj(stru)o(ct)o(ure)i(i)q(s)d(giv)o(en)g(b)o(y:)104 2158 y Fc(typedef)k(struct)g(irq_req_t)f({)261 2210 y(u_long)194 b(Attribut)o(es;)261 2262 y(u_long)g(Assigned)o(IRQ)o(;)261 2314 y(u_long)g(IRQInfo1)o(,)17 b(IRQInfo2;)104 2366 y(})i(irq_req_t;)p eop %%Page: 11 11 11 10 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(11)0 81 y Fi(RequestIRQ)12 b Fj(re)q(s)q(erv)o(e)q(s)17 b(an)e(in)o(t)o(errupt)g(lin)o(e)f(for)g(us)q(e)h(b)o(y)f(a)g(PCMCIA)h (card.)20 b(Th)o(e)15 b Fi(IRQInfo1)e Fj(an)o(d)h Fi(IRQInfo2)f Fj(\014elds)i(cor-)0 138 y(re)q(sp)q(on)o(d)e(t)o(o)f(t)n(h)o(e)h(in)o (t)o(errupt)f(d)o(e)q(scr)q(ipt)o(ion)h(b)o(yt)o(e)q(s)f(in)g(a)g Fi(CFTABLE)p 996 138 14 2 v 14 w(ENTRY)f Fj(t)o(uple.)17 b(If)11 b Fi(IRQ)p 1356 138 V 15 w(INFO2)p 1481 138 V 15 w(VALID)g Fj(i)q(s)g(s)q(et)i(in)e Fi(IRQInfo1)p Fj(,)0 194 y(t)n(h)o(en)j Fi(IRQInfo2)d Fj(i)q(s)h(a)g(bit-m)o(ap)o(p)q(e)q(d) f(m)o(ask)g(of)h(allo)o(w)o(e)q(d)g(in)o(t)o(errupt)h(v)n(alue)q(s.)18 b(Eac)o(h)13 b(bit)f(corre)q(sp)q(on)o(ds)j(t)o(o)e(on)o(e)g(in)o(t)o (errupt)g(lin)o(e:)0 251 y(bit)h(0)h(=)g(irq)f(0,)g(bit)h(1)f(=)h(irq)f (1,)g(et)o(c.)22 b(So,)14 b(a)g(m)o(ask)f(of)h(0x1100)g(w)o(ould)g(m)o (ean)f(t)n(h)o(a)o(t)i(in)o(t)o(errupt)o(s)h(12)f(an)o(d)f(8)g(could)h (b)q(e)g(us)q(e)q(d.)0 308 y(If)g Fi(IRQ)p 112 308 V 16 w(INFO2)p 238 308 V 14 w(VALID)g Fj(i)q(s)g(not)h(s)q(et,)h Fi(IRQInfo1)d Fj(i)q(s)h(just)h(t)n(h)o(e)h(d)o(e)q(s)q(ire)q(d)g(in)o (t)o(errupt)f(n)n(u)o(m)n(b)q(er.)24 b(If)15 b(t)n(h)o(e)i(call)e(i)q (s)g(su)o(cce)q(ssful,)j(t)n(h)o(e)0 365 y(re)q(s)q(erv)o(e)q(d)e(in)o (t)o(errupt)f(i)q(s)e(ret)o(ur)q(n)o(e)q(d)i(in)e Fi(AssignedIRQ)p Fj(.)0 443 y(Th)o(e)h(follo)o(win)o(g)d(\015ags)j(can)g(b)q(e)g(sp)q (eci\014e)q(d)h(in)f Fi(Attributes)p Fj(:)0 554 y Fi(IRQ)p 69 554 V 15 w(FORCED)p 216 554 V 15 w(PULSE)104 628 y Fj(Sp)q(eci\014e)q(s)h(t)n(h)o(a)o(t)f(t)n(h)o(e)g(in)o(t)o(errupt)h (sh)o(ould)f(b)q(e)g(con\014gure)q(d)g(for)g(puls)q(e)q(d)g(mo)q(d)o (e,)f(ra)o(t)n(h)o(er)i(t)n(h)o(an)f(t)n(h)o(e)h(d)o(ef)q(a)n(ul)o(t)f (lev)o(el)f(mo)q(d)o(e.)0 718 y Fi(IRQ)p 69 718 V 15 w(TYPE)p 172 718 V 15 w(TIME)104 791 y Fj(Sp)q(eci\014e)q(s)20 b(t)n(h)o(a)o(t)f(t)n(hi)q(s)g(in)o(t)o(errupt)g(can)g(b)q(e)g(t)o(im)o (e-sh)o(are)q(d)f(wit)n(h)h(ot)n(h)o(er)h(Card)f(Service)q(s)h(dr)q(iv) o(ers.)34 b(Only)19 b(on)o(e)g(dr)q(iv)o(er)104 848 y(sh)o(ould)13 b(en)o(a)o(ble)h(t)n(h)o(e)h(in)o(t)o(errupt)f(a)o(t)g(an)o(y)f(t)o(im) o(e.)0 938 y Fi(IRQ)p 69 938 V 15 w(FIRST)p 194 938 V 15 w(SHARED)104 1011 y Fj(In)f(conju)o(nct)o(ion)h(wit)n(h)f Fi(IRQ)p 536 1011 V 15 w(TYPE)p 639 1011 V 15 w(TIME)p Fj(,)f(t)n(hi)q(s)h(sh)o(ould)h(b)q(e)f(s)q(et)h(b)o(y)f(t)n(h)o(e)i (\014rst)f(dr)q(iv)o(er)f(reque)q(st)o(in)o(g)i(a)e(sh)o(are)q(d)i(in)o (t)o(errupt.)0 1123 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 1234 y Fi(CS)p 47 1234 V 15 w(BAD)p 128 1234 V 15 w(HANDLE)104 1308 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 1398 y Fi(CS)p 47 1398 V 15 w(NO)p 106 1398 V 16 w(CARD)104 1471 y Fj(Th)o(e)h(so)q(c)o(k)o(et)h(ass)q(ign)o(e)q(d)f(t)o(o)g(t)n (hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n(ly)i(v)n(acan)o(t.)0 1561 y Fi(CS)p 47 1561 V 15 w(IN)p 106 1561 V 16 w(USE)104 1634 y Fj(An)f(in)o(t)o(errupt)g(h)o(as)g(already)g(b)q(een)h(re)q(s)q (erv)o(e)q(d)h(for)d(t)n(hi)q(s)h(so)q(c)o(k)o(et,)g(or)g(t)n(h)o(e)h (reque)q(st)o(e)q(d)h(in)o(t)o(errupt)f(i)q(s)e(u)o(n)o(a)o(v)n(aila)o (ble.)0 1724 y Fi(CS)p 47 1724 V 15 w(CONFIGURATION)p 348 1724 V 13 w(LOCKED)104 1798 y Fj(Thi)q(s)g(so)q(c)o(k)o(et's)i (con\014gura)o(t)o(ion)e(h)o(as)h(b)q(een)g(lo)q(c)o(k)o(e)q(d)g(b)o(y) g(a)g(call)f(t)o(o)h Fi(RequestConfigurat)o(ion)p Fj(.)0 1888 y Fi(CS)p 47 1888 V 15 w(BAD)p 128 1888 V 15 w(ATTRIBUTE)104 1961 y Fj(An)g(u)o(nsup)o(p)q(ort)o(e)q(d)h(a)o(t)n(tr)q(ibu)o(t)o(e)g (\015ag)e(w)o(as)h(sp)q(eci\014e)q(d.)0 2098 y Ff(2.3.4)48 b(Rele)q(as)q(eIR)o(Q)104 2193 y Fc(int)18 b(CardServic)o(es\()o(Re)o (lea)o(seI)o(RQ)o(,)f(client_h)o(and)o(le_)o(t)f(client,)h(irq_req_t)f (*req\);)0 2313 y Fi(ReleaseIRQ)10 b Fj(u)o(n-re)q(s)q(erv)o(e)q(s)16 b(an)c(in)o(t)o(errupt)h(ass)q(ign)o(e)q(d)f(b)o(y)h(an)f(earlier)h (call)f(t)o(o)g Fi(RequestIRQ)p Fj(.)e(Th)o(e)j Fi(req)e Fj(stru)o(ct)o(ure)k(sh)o(ould)d(b)q(e)0 2370 y(t)n(h)o(e)j(sam)o(e)d (stru)o(ct)o(ure)k(t)n(h)o(a)o(t)e(w)o(as)g(pass)q(e)q(d)h(t)o(o)g Fi(RequestIRQ)p Fj(.)0 2448 y(Ret)o(ur)q(n)f(co)q(d)o(e)q(s:)p eop %%Page: 12 12 12 11 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(12)0 81 y Fi(CS)p 47 81 14 2 v 15 w(BAD)p 128 81 V 15 w(HANDLE)104 153 y Fj(Th)o(e)14 b(clien)o(t)g(h)o(an)o(dle) f(i)q(s)g(in)o(v)n(alid.)0 241 y Fi(CS)p 47 241 V 15 w(CONFIGURATION)p 348 241 V 13 w(LOCKED)104 314 y Fj(Thi)q(s)j(so)q(c)o (k)o(et's)i(con\014gura)o(t)o(ion)f(h)o(as)g(b)q(een)h(lo)q(c)o(k)o(e)q (d)f(b)o(y)g(a)g(call)g(t)o(o)g Fi(RequestConfigurati)o(on)p Fj(.)25 b(Th)o(e)18 b(con\014gura)o(t)o(ion)104 371 y(sh)o(ould)13 b(b)q(e)h(releas)q(e)q(d)i(b)q(efore)e(callin)o(g)f(Releas)q(eIR)o(Q.)0 459 y Fi(CS)p 47 459 V 15 w(BAD)p 128 459 V 15 w(IRQ)104 531 y Fj(Th)o(e)h(param)o(et)o(ers)g(in)f Fi(req)g Fj(do)h(not)g(m)o(a) o(t)o(c)o(h)e(t)n(h)o(e)j(param)o(et)o(ers)f(pass)q(e)q(d)h(t)o(o)f Fi(RequestIRQ)p Fj(.)0 667 y Ff(2.3.5)48 b(Reque)q(stCon\014gura)o(t)o (i)o(on)104 761 y Fc(int)18 b(CardServic)o(es\()o(Re)o(que)o(stC)o(on)o (fig)o(ur)o(ati)o(on)o(,)f(client_ha)o(nd)o(le_)o(t)g(client,)f (config_req_)o(t)g(*req\);)0 877 y Fj(Th)o(e)e Fi(config)p 219 877 V 15 w(req)p 300 877 V 15 w(t)f Fj(stru)o(ct)o(ure)j(i)q(s)d (giv)o(en)h(b)o(y:)104 980 y Fc(typedef)j(struct)g(config_req)o(_t)f({) 261 1032 y(u_long)194 b(Attribut)o(es;)261 1084 y(u_long)g(Vcc,)18 b(Vpp1,)f(Vpp2;)261 1136 y(u_long)194 b(IntType;)261 1188 y(caddr_t)174 b(ConfigBa)o(se;)261 1240 y(u_char)194 b(Status,)16 b(Pin,)i(Copy;)261 1292 y(u_char)194 b(ConfigIn)o(dex)o(;) 261 1344 y(u_long)g(Present;)104 1396 y(})19 b(config_req)o(_t)o(;)0 1504 y Fi(RequestConfigurat)o(ion)7 b Fj(i)q(s)i(re)q(sp)q(ons)q(ible)h (for)f(act)o(ually)g(con\014gur)q(in)o(g)g(a)h(so)q(c)o(k)o(et.)17 b(Thi)q(s)9 b(includ)o(e)q(s)i(s)q(et)n(t)o(in)o(g)g(v)o(ol)o(t)o(age)q (s,)e(s)q(et)n(t)o(in)o(g)0 1561 y(CIS)14 b(con\014gura)o(t)o(ion)f (regi)q(st)o(ers,)i(s)q(et)n(t)o(in)o(g)g(up)f(IO)g(p)q(ort)g(win)o(do) o(ws,)f(an)o(d)g(s)q(et)n(t)o(in)o(g)i(up)f(in)o(t)o(errupt)o(s.)0 1639 y Fi(IntType)29 b Fj(sp)q(eci\014e)q(s)j(t)n(h)o(e)g(t)o(yp)q(e)e (of)g(in)o(t)o(erf)q(ace)h(t)o(o)g(us)q(e)g(for)f(t)n(hi)q(s)h(card.)68 b(It)31 b(m)o(ay)e(e)q(it)n(h)o(er)j(b)q(e)f Fi(INT)p 1740 1639 V 15 w(MEMORY)e Fj(or)0 1696 y Fi(INT)p 69 1696 V 15 w(MEMORY)p 216 1696 V 15 w(AND)p 297 1696 V 15 w(IO)p Fj(.)13 b(V)m(ol)o(t)o(age)q(s)g(are)h(sp)q(eci\014e)q(d)h (in)f(u)o(nit)o(s)g(of)g(1/10)f(v)o(ol)o(t.)0 1774 y(Th)o(e)19 b(follo)o(win)o(g)c(\015ags)j(can)h(b)q(e)f(sp)q(eci\014e)q(d)i(in)e Fi(Attributes)p Fj(.)29 b(DMA)18 b(an)o(d)g(sp)q(eak)o(er)h(con)o(trol) f(are)g(not)h(sup)o(p)q(ort)o(e)q(d)g(on)f(all)0 1831 y(syst)o(ems.)0 1938 y Fi(CONF)p 91 1938 V 15 w(ENABLE)p 238 1938 V 14 w(IRQ)104 2011 y Fj(En)o(a)o(ble)13 b(t)n(h)o(e)i(IO)f (in)o(t)o(errupt)g(re)q(s)q(erv)o(e)q(d)j(b)o(y)c(a)h(previous)g(call)f (t)o(o)h Fi(RequestIRQ)p Fj(.)0 2099 y Fi(CONF)p 91 2099 V 15 w(ENABLE)p 238 2099 V 14 w(DMA)104 2172 y Fj(En)o(a)o(ble)f(DMA)h (acce)q(ss)q(e)q(s)j(for)c(t)n(hi)q(s)h(so)q(c)o(k)o(et.)0 2260 y Fi(CONF)p 91 2260 V 15 w(ENABLE)p 238 2260 V 14 w(SPKR)104 2332 y Fj(En)o(a)o(ble)f(sp)q(eak)o(er)i(ou)o(t)o(pu)o(t)g (f)q(rom)d(t)n(hi)q(s)i(so)q(c)o(k)o(et.)0 2440 y(Th)o(e)i Fi(Present)e Fj(param)o(et)o(er)i(i)q(s)f(a)g(bit)h(m)o(ap)e(sp)q (ecifyin)o(g)h(whic)o(h)h(CIS)f(con\014gura)o(t)o(ion)h(regi)q(st)o (ers)h(are)f(implem)n(en)o(t)o(e)q(d)e(b)o(y)h(t)n(hi)q(s)0 2497 y(card.)j Fi(ConfigBase)12 b Fj(giv)o(e)q(s)i(t)n(h)o(e)g(o\013s)q (et)g(of)g(t)n(h)o(e)g(con\014gura)o(t)o(ion)f(regi)q(st)o(ers)i(in)e (a)o(t)n(tr)q(ibu)o(t)o(e)i(m)o(emory)m(.)g(Th)o(e)f(follo)o(win)o(g)d (regi)q(st)o(ers)0 2554 y(can)j(b)q(e)g(sp)q(eci\014e)q(d:)p eop %%Page: 13 13 13 12 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(13)0 81 y Fi(PRESENT)p 157 81 14 2 v 14 w(OPTION)104 153 y Fj(Sp)q(eci\014e)q(s)18 b(t)n(h)o(a)o(t)f(t)n(h)o(e) h(Con\014gura)o(t)o(ion)e(Opt)o(ion)h(Regi)q(st)o(er)g(i)q(s)g(pre)q(s) q(en)o(t.)29 b(Th)o(e)17 b(COR)g(regi)q(st)o(er)h(will)d(b)q(e)j(s)q (et)f(us)q(in)o(g)g(t)n(h)o(e)104 210 y Fi(ConfigIndex)11 b Fj(param)o(et)o(er.)0 298 y Fi(PRESENT)p 157 298 V 14 w(STATUS)104 370 y Fj(Sp)q(eci\014e)q(s)i(t)n(h)o(a)o(t)f(t)n(h)o(e) g(Card)g(Con\014gura)o(t)o(ion)f(an)o(d)g(St)o(a)o(t)o(us)h(Regi)q(st)o (er)g(i)q(s)f(pre)q(s)q(en)o(t.)19 b(Th)o(e)12 b(CCSR)g(will)e(b)q(e)i (init)o(ialize)q(d)e(wit)n(h)104 427 y(t)n(h)o(e)k Fi(Status)f Fj(param)o(et)o(er.)0 515 y Fi(PRESENT)p 157 515 V 14 w(PIN)p 237 515 V 15 w(REPLACE)104 587 y Fj(Sp)q(eci\014e)q(s)20 b(t)n(h)o(a)o(t)g(t)n(h)o(e)g(Pin)g(Replacem)o(en)o(t)e(Regi)q(st)o(er) h(i)q(s)g(pre)q(s)q(en)o(t.)37 b(Th)o(e)19 b(PRR)g(will)f(b)q(e)i(init) o(ialize)q(d)e(wit)n(h)h(t)n(h)o(e)i Fi(Pin)104 644 y Fj(param)o(et)o(er.)0 732 y Fi(PRESENT)p 157 732 V 14 w(COPY)104 805 y Fj(Sp)q(eci\014e)q(s)e(t)n(h)o(a)o(t)g(t)n(h)o(e)g(So) q(c)o(k)o(et)g(an)o(d)f(Co)o(p)o(y)g(Regi)q(st)o(er)h(i)q(s)f(pre)q(s)q (en)o(t.)33 b(Th)o(e)19 b(SCR)f(will)f(b)q(e)h(init)o(ialize)q(d)f(wit) n(h)i(t)n(h)o(e)g Fi(Copy)104 861 y Fj(param)o(et)o(er.)0 969 y(Ret)o(ur)q(n)14 b(co)q(d)o(e)q(s:)0 1076 y Fi(CS)p 47 1076 V 15 w(BAD)p 128 1076 V 15 w(HANDLE)104 1149 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 1236 y Fi(CS)p 47 1236 V 15 w(NO)p 106 1236 V 16 w(CARD)104 1309 y Fj(Th)o(e)h(so)q(c)o(k)o(et)h(ass)q(ign)o(e)q(d)f(t)o(o)g(t)n (hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n(ly)i(v)n(acan)o(t.)0 1397 y Fi(CS)p 47 1397 V 15 w(OUT)p 128 1397 V 15 w(OF)p 187 1397 V 16 w(RESOURCE)104 1469 y Fj(Card)f(Service)q(s)h(w)o(as)f(u) o(n)o(a)o(ble)f(t)o(o)i(allo)q(ca)o(t)o(e)e(a)g(m)o(emory)f(win)o(do)o (w)g(t)o(o)j(acce)q(ss)h(t)n(h)o(e)f(card's)f(con\014gura)o(t)o(ion)f (regi)q(st)o(ers.)0 1557 y Fi(CS)p 47 1557 V 15 w(CONFIGURATION)p 348 1557 V 13 w(LOCKED)104 1630 y Fj(Thi)q(s)g(so)q(c)o(k)o(et's)i (con\014gura)o(t)o(ion)e(h)o(as)h(already)g(b)q(een)g(lo)q(c)o(k)o(e)q (d)g(b)o(y)g(anot)n(h)o(er)h(call)e(t)o(o)h Fi(RequestConfigurat)o(ion) p Fj(.)0 1718 y Fi(CS)p 47 1718 V 15 w(BAD)p 128 1718 V 15 w(VCC)104 1790 y Fj(Th)o(e)g(reque)q(st)o(e)q(d)i(Vcc)f(v)o(ol)o (t)o(age)e(i)q(s)g(not)h(sup)o(p)q(ort)o(e)q(d.)0 1878 y Fi(CS)p 47 1878 V 15 w(BAD)p 128 1878 V 15 w(VPP)104 1950 y Fj(Th)o(e)g(reque)q(st)o(e)q(d)i(Vp)o(p1/Vp)o(p2)d(v)o(ol)o(t)o (age)g(i)q(s)h(not)f(sup)o(p)q(ort)o(e)q(d.)0 2086 y Ff(2.3.6)48 b(Mo)q(difyCon\014gura)o(t)o(i)o(on)104 2180 y Fc(int)18 b(CardServic)o(es\()o(Mo)o(dif)o(yCo)o(nf)o(igu)o(ra)o(tio) o(n,)e(client_han)o(dl)o(e_t)g(client,)h(modconf_t)f(*mod\);)0 2295 y Fj(Th)o(e)e Fi(modconf)p 241 2295 V 14 w(t)g Fj(stru)o(ct)o(ure) i(i)q(s)d(giv)o(en)h(b)o(y:)104 2397 y Fc(typedef)j(struct)g(modconf_t) f({)261 2449 y(u_long)194 b(Attribut)o(es;)261 2502 y(u_long)g(Vcc,)18 b(Vpp1,)f(Vpp2;)104 2554 y(})i(modconf_t;)p eop %%Page: 14 14 14 13 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(14)0 81 y Fi(ModifyConfigurati)o(on)25 b Fj(mo)q(di\014e)q(s)i(som)o(e)g(a)o(t)n(tr)q(ibu)o(t)o(e)q(s)i(of)e(a)h (so)q(c)o(k)o(et)h(t)n(h)o(a)o(t)f(h)o(as)g(b)q(een)g(con\014gure)q(d)h (b)o(y)f(a)g(call)f(t)o(o)0 138 y Fi(RequestConfigurat)o(ion)p Fj(.)0 216 y(Th)o(e)14 b(follo)o(win)o(g)d(\015ags)j(can)g(b)q(e)g(sp)q (eci\014e)q(d)h(in)f Fi(Attributes)p Fj(:)0 321 y Fi(CONF)p 91 321 14 2 v 15 w(IRQ)p 172 321 V 15 w(CHANGE)p 319 321 V 14 w(VALID)104 393 y Fj(In)o(dica)o(t)o(e)q(s)g(t)n(h)o(a)o(t)g (t)n(h)o(e)h(CONF)p 555 393 13 2 v 15 w(ENABLE)p 743 393 V 16 w(IR)o(Q)f(s)q(et)n(t)o(in)o(g)g(sh)o(ould)g(b)q(e)g(up)q(d)o (a)o(t)o(e)q(d.)0 479 y Fi(CONF)p 91 479 14 2 v 15 w(ENABLE)p 238 479 V 14 w(IRQ)104 551 y Fj(Sp)q(eci\014e)q(s)h(t)n(h)o(a)o(t)f(IO) g(in)o(t)o(errupt)o(s)h(sh)o(ould)f(b)q(e)g(en)o(a)o(ble)q(d)g(for)f(t) n(hi)q(s)h(so)q(c)o(k)o(et.)0 638 y Fi(CONF)p 91 638 V 15 w(VCC)p 172 638 V 15 w(CHANGE)p 319 638 V 14 w(VALID)104 710 y Fj(In)o(dica)o(t)o(e)q(s)g(t)n(h)o(a)o(t)g(Vcc)h(sh)o(ould)f(b)q (e)f(up)q(d)o(a)o(t)o(e)q(d.)0 797 y Fi(CONF)p 91 797 V 15 w(VPP1)p 194 797 V 15 w(CHANGE)p 341 797 V 14 w(VALID)104 868 y Fj(In)o(dica)o(t)o(e)q(s)h(t)n(h)o(a)o(t)g(Vp)o(p1)g(sh)o(ould)f (b)q(e)h(up)q(d)o(a)o(t)o(e)q(d.)0 955 y Fi(CONF)p 91 955 V 15 w(VPP2)p 194 955 V 15 w(CHANGE)p 341 955 V 14 w(VALID)104 1027 y Fj(In)o(dica)o(t)o(e)q(s)g(t)n(h)o(a)o(t)g(Vp)o(p2)g (sh)o(ould)f(b)q(e)h(up)q(d)o(a)o(t)o(e)q(d.)0 1132 y(Curren)o(t)n(ly)m (,)g(Vp)o(p1)f(an)o(d)h(Vp)o(p2)f(m)n(ust)h(alw)o(ays)f(h)o(a)o(v)o(e)g (t)n(h)o(e)i(sam)o(e)d(v)n(alue.)18 b(So,)13 b(t)n(h)o(e)h(t)o(w)o(o)g (v)n(alue)q(s)f(m)n(ust)h(alw)o(ays)f(b)q(e)h(c)o(h)o(an)o(ge)q(d)g(a)o (t)0 1189 y(t)n(h)o(e)h(sam)o(e)d(t)o(im)o(e.)0 1267 y(Ret)o(ur)q(n)i(co)q(d)o(e)q(s:)0 1372 y Fi(CS)p 47 1372 V 15 w(BAD)p 128 1372 V 15 w(HANDLE)104 1444 y Fj(Th)o(e)g(clien)o (t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 1531 y Fi(CS)p 47 1531 V 15 w(NO)p 106 1531 V 16 w(CARD)104 1602 y Fj(Th)o(e)h(so)q(c) o(k)o(et)h(ass)q(ign)o(e)q(d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f (curren)o(t)n(ly)i(v)n(acan)o(t.)0 1689 y Fi(CS)p 47 1689 V 15 w(CONFIGURATION)p 348 1689 V 13 w(LOCKED)104 1761 y Fj(Thi)q(s)e(act)o(ually)g(m)o(eans)g(t)n(h)o(a)o(t)h(t)n(hi)q (s)g(so)q(c)o(k)o(et)h(h)o(as)f Ff(not)f Fj(b)q(een)h(lo)q(c)o(k)o(e)q (d.)0 1848 y Fi(CS)p 47 1848 V 15 w(BAD)p 128 1848 V 15 w(VCC)104 1919 y Fj(Th)o(e)g(reque)q(st)o(e)q(d)i(Vcc)f(v)o(ol)o(t)o (age)e(i)q(s)g(not)h(sup)o(p)q(ort)o(e)q(d.)0 2006 y Fi(CS)p 47 2006 V 15 w(BAD)p 128 2006 V 15 w(VPP)104 2078 y Fj(Th)o(e)g(reque)q(st)o(e)q(d)i(Vp)o(p1/Vp)o(p2)d(v)o(ol)o(t)o (age)g(i)q(s)h(not)f(sup)o(p)q(ort)o(e)q(d.)0 2213 y Ff(2.3.7)48 b(Rele)q(as)q(eCon\014gur)o(a)o(t)o(i)o(on)104 2307 y Fc(int)18 b(CardServic)o(es\()o(Re)o(lea)o(seC)o(on)o(fig)o(ur)o (ati)o(on)o(,)f(client_ha)o(nd)o(le_)o(t)g(client,)f(config_req_)o(t)g (*req\);)0 2419 y Fi(ReleaseConfigurat)o(ion)11 b Fj(u)o(n-con\014gure) q(s)16 b(a)e(so)q(c)o(k)o(et)i(previously)e(s)q(et)h(up)g(b)o(y)f(a)g (call)g(t)o(o)g Fi(RequestConfiguratio)o(n)p Fj(.)j(Th)o(e)0 2475 y Fi(req)c Fj(param)o(et)o(er)h(sh)o(ould)f(b)q(e)h(t)n(h)o(e)h (sam)o(e)e(on)o(e)h(us)q(e)q(d)g(t)o(o)h(con\014gure)f(t)n(h)o(e)h(so)q (c)o(k)o(et.)0 2554 y(Ret)o(ur)q(n)f(co)q(d)o(e)q(s:)p eop %%Page: 15 15 15 14 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(15)0 81 y Fi(CS)p 47 81 14 2 v 15 w(BAD)p 128 81 V 15 w(HANDLE)104 154 y Fj(Th)o(e)14 b(win)o(do)o(w)f(h)o(an)o (dle)g(i)q(s)h(in)o(v)n(alid,)d(or)j(t)n(h)o(e)g(so)q(c)o(k)o(et)h(i)q (s)e(not)h(con\014gure)q(d.)0 290 y Ff(2.3.8)48 b(GetCon\014gura)o(t)o (i)o(on)o(Inf)o(o)104 385 y Fc(int)18 b(CardServic)o(es\()o(Ge)o(tCo)o (nfi)o(gu)o(rat)o(io)o(nIn)o(fo)o(,)f(client_ha)o(nd)o(le_)o(t)g (client,)f(config_t)h(*config\);)0 502 y Fj(Th)o(e)d Fi(config)p 219 502 V 15 w(t)f Fj(stru)o(ct)o(ure)j(i)q(s)d(giv)o(en)h (b)o(y:)104 606 y Fc(typedef)j(struct)g(config_t)g({)261 658 y(u_long)194 b(Attribut)o(es;)261 710 y(u_long)g(Vcc,)18 b(Vpp1,)f(Vpp2;)261 763 y(u_long)194 b(IntType;)261 815 y(caddr_t)174 b(ConfigBa)o(se;)261 867 y(u_char)194 b(Status,)16 b(Pin,)i(Copy,)g(Option;)261 919 y(u_long)194 b(Present;)261 971 y(u_long)g(Assigned)o(IRQ)o(;)261 1023 y(u_long)g(IRQAttri)o(but)o (es)o(;)261 1075 y(ioaddr_t)154 b(BasePort)o(1;)261 1127 y(ioaddr_t)g(NumPorts)o(1;)261 1179 y(u_long)194 b(Attribut)o(es1)o(;) 261 1231 y(ioaddr_t)154 b(BasePort)o(2;)261 1283 y(ioaddr_t)g(NumPorts) o(2;)261 1335 y(u_long)194 b(Attribut)o(es2)o(;)261 1387 y(u_long)g(IOAddrLi)o(nes)o(;)104 1439 y(})19 b(config_t;)0 1549 y Fi(GetConfigurationI)o(nfo)8 b Fj(ret)o(ur)q(ns)k(t)n(h)o(e)g (curren)o(t)g(so)q(c)o(k)o(et)g(con\014gura)o(t)o(ion)f(as)g(it)g(w)o (as)g(s)q(et)h(up)f(b)o(y)g Fi(RequestIO)p Fj(,)e Fi(RequestIRQ)p Fj(,)0 1605 y(an)o(d)14 b Fi(RequestConfigur)o(ation)o Fj(.)h(It)f(can)g(only)g(b)q(e)f(ap)o(plie)q(d)g(t)o(o)h(a)g(fully)f (con\014gure)q(d)i(so)q(c)o(k)o(et.)0 1684 y(Ret)o(ur)q(n)f(co)q(d)o(e) q(s:)0 1793 y Fi(CS)p 47 1793 V 15 w(BAD)p 128 1793 V 15 w(HANDLE)104 1866 y Fj(Th)o(e)g(win)o(do)o(w)f(h)o(an)o(dle)g(i)q(s) h(in)o(v)n(alid,)d(or)j(t)n(h)o(e)g(so)q(c)o(k)o(et)h(i)q(s)e(not)h (con\014gure)q(d.)0 1955 y Fi(CS)p 47 1955 V 15 w(NO)p 106 1955 V 16 w(CARD)104 2028 y Fj(Th)o(e)g(so)q(c)o(k)o(et)h(ass)q (ign)o(e)q(d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n (ly)i(v)n(acan)o(t.)0 2117 y Fi(CS)p 47 2117 V 15 w(CONFIGURATION)p 348 2117 V 13 w(LOCKED)104 2190 y Fj(Thi)q(s)e(act)o(ually)g(m)o(eans)g (t)n(h)o(a)o(t)h(t)n(h)o(e)h(con\014gura)o(t)o(ion)e(h)o(as)h Ff(not)f Fj(b)q(een)h(lo)q(c)o(k)o(e)q(d.)0 2335 y Fd(2.4)56 b(Card)19 b(Inform)o(a)o(t)n(ion)e(Stru)n(ct)n(ure)i(\(CIS\))g(calls)0 2440 y Fj(Th)o(e)14 b(d)o(e\014nit)o(ion)f(of)g(t)n(h)o(e)h(Card)g (Inform)o(a)o(t)o(ion)d(Stru)o(ct)o(ure)k(\(CIS\))f(i)q(s)f(t)n(h)o(e)h (d)o(ar)o(k)o(e)q(st)i(c)o(h)o(apt)o(er)e(of)f(t)n(h)o(e)h(PCMCIA)g(st) o(an)o(d)o(ard.)19 b(All)0 2497 y(v)o(ers)q(ion)13 b(2)g(PCMCIA)g (cards)h(sh)o(ould)f(h)o(a)o(v)o(e)g(a)f(CIS,)h(whic)o(h)g(d)o(e)q(scr) q(ib)q(e)q(s)i(t)n(h)o(e)e(card)h(an)o(d)f(h)o(o)o(w)f(it)h(sh)o(ould)g (b)q(e)g(con\014gure)q(d.)19 b(Th)o(e)0 2554 y(CIS)13 b(i)q(s)g(a)h(link)o(e)q(d)f(li)q(st)f(of)h(\\t)o(uple)q(s")g(in)g(t)n (h)o(e)i(card's)e(a)o(t)n(tr)q(ibu)o(t)o(e)i(m)o(emory)c(space.)18 b(Eac)o(h)c(t)o(uple)f(cons)q(i)q(st)o(s)i(of)e(an)g(id)o(en)o(t)o (i\014ca)o(t)o(ion)p eop %%Page: 16 16 16 15 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n(bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1027 b Fj(16)0 81 y(co)q(d)o(e,)14 b(a)f(len)o(gt)n(h)g(b)o(yt)o(e,)g(an)o (d)g(a)g(s)q(er)q(ie)q(s)h(of)f(d)o(a)o(t)o(a)g(b)o(yt)o(e)q(s.)18 b(Th)o(e)c(lay)o(ou)o(t)e(of)h(t)n(h)o(e)g(d)o(a)o(t)o(a)g(b)o(yt)o(e)q (s)h(for)f(som)o(e)f(t)o(uple)h(t)o(yp)q(e)q(s)g(i)q(s)g(a)o(bsurdly)0 138 y(complica)o(t)o(e)q(d,)e(in)j(an)f(ap)o(paren)o(t)h(e\013ort)h(t)o (o)f(us)q(e)h(ev)o(ery)g(last)e(bit.)0 216 y(Th)o(e)h Fi(ValidateCIS)e Fj(call)h(c)o(h)o(ec)o(ks)i(t)o(o)g(s)q(ee)g(if)e(a)g (card)i(h)o(as)f(a)g(reason)o(a)o(ble)g(CIS.)f(Th)o(e)i Fi(GetFirstTuple)c Fj(an)o(d)i Fi(GetNextTuple)0 273 y Fj(calls)21 b(are)h(us)q(e)q(d)g(t)o(o)f(st)o(ep)h(t)n(hrough)g(CIS)f (t)o(uple)g(li)q(st)o(s.)40 b Fi(GetTupleData)19 b Fj(extract)o(s)k(d)o (a)o(t)o(a)e(b)o(yt)o(e)q(s)h(f)q(rom)d(a)i(t)o(uple.)40 b(An)o(d)0 329 y Fi(ParseTuple)12 b Fj(in)o(t)o(erpret)o(s)k(a)d(limit) o(e)q(d)f(n)n(u)o(m)n(b)q(er)h(of)h(part)o(icularly)e(imp)q(ort)o(an)o (t)g(t)o(uple)i(t)o(yp)q(e)q(s.)0 466 y Ff(2.4.1)48 b(GetFirstT)l(up)o (l)o(e,)14 b(GetNextT)l(up)o(le)104 561 y Fc(#include)i("cistpl.h")104 665 y(int)i(CardServic)o(es\()o(Ge)o(tFi)o(rst)o(Tu)o(ple)o(,)e (client_hand)o(le)o(_t)g(client,)h(tuple_t)g(*tuple\);)104 717 y(int)h(CardServic)o(es\()o(Ge)o(tNe)o(xtT)o(up)o(le,)e(client_ha)o (ndl)o(e_)o(t)h(client,)g(tuple_t)f(*tuple\);)0 837 y Fj(Th)o(e)e Fi(tuple)p 197 837 14 2 v 15 w(t)f Fj(d)o(a)o(t)o(a)h(stru) o(ct)o(ure)i(i)q(s)d(giv)o(en)h(b)o(y:)104 944 y Fc(typedef)j(struct)g (tuple_t)g({)261 996 y(u_long)194 b(Attribut)o(es;)261 1048 y(cis_data_)o(t)115 b(DesiredT)o(upl)o(e;)261 1100 y(u_long)194 b(Flags;)261 1152 y(cisdata_t)134 b(TupleCod)o(e;)261 1204 y(u_long)194 b(TupleLin)o(k;)261 1256 y(cisdata_t)134 b(TupleOff)o(set)o(;)261 1308 y(cisdata_t)g(TupleDat)o(aMa)o(x;)261 1360 y(cisdata_t)g(TupleDat)o(aLe)o(n;)261 1412 y(cisdata_t)g(*TupleDa) o(ta;)104 1464 y(})19 b(tuple_t;)0 1576 y Fi(GetFirstTuple)c Fj(s)q(earc)o(h)o(e)q(s)21 b(a)d(card's)g(CIS)g(for)g(t)n(h)o(e)h (\014rst)g(t)o(uple)f(co)q(d)o(e)h(m)o(a)o(t)o(c)o(hin)o(g)d Fi(DesiredTuple)p Fj(.)29 b(Th)o(e)18 b(sp)q(ecial)g(co)q(d)o(e)0 1633 y Fi(RETURN)p 135 1633 V 14 w(FIRST)p 259 1633 V 15 w(TUPLE)12 b Fj(will)g(m)o(a)o(t)o(c)o(h)f(t)n(h)o(e)j(\014rst)g(t)o (uple)f(of)f(an)o(y)h(kin)o(d.)k(If)c(su)o(cce)q(ssful,)i Fi(TupleCode)c Fj(i)q(s)i(s)q(et)g(t)o(o)h(t)n(h)o(e)g(co)q(d)o(e)g(of) e(t)n(h)o(e)0 1689 y(\014rst)j(m)o(a)o(t)o(c)o(hin)o(g)d(t)o(uple)i (fou)o(n)o(d,)f(an)o(d)g Fi(TupleLink)f Fj(i)q(s)i(t)n(h)o(e)g(addre)q (ss)i(of)d(t)n(hi)q(s)h(t)o(uple)g(in)f(a)o(t)n(tr)q(ibu)o(t)o(e)i(m)o (emory)m(.)0 1768 y Fi(GetNextTuple)d Fj(i)q(s)j(lik)o(e)f Fi(GetFirstTuple)p Fj(,)d(except)17 b(t)n(h)o(a)o(t)e(giv)o(en)f(a)g Fi(tuple)p 1182 1768 V 15 w(t)h Fj(stru)o(ct)o(ure)h(ret)o(ur)q(n)o(e)q (d)g(b)o(y)f(a)f(previous)i(call)e(t)o(o)0 1824 y Fi(GetFirstTuple)d Fj(or)j Fi(GetNextTuple)p Fj(,)d(it)i(will)g(ret)o(ur)q(n)h(t)n(h)o(e)h (n)o(ext)f(t)o(uple)g(m)o(a)o(t)o(c)o(hin)o(g)e Fi(DesiredTuple)p Fj(.)0 1903 y(Ret)o(ur)q(n)i(co)q(d)o(e)q(s:)0 2014 y Fi(CS)p 47 2014 V 15 w(BAD)p 128 2014 V 15 w(HANDLE)104 2088 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 2178 y Fi(CS)p 47 2178 V 15 w(OUT)p 128 2178 V 15 w(OF)p 187 2178 V 16 w(RESOURCE)104 2251 y Fj(Card)h(Service)q(s)h(w)o(as)f(u) o(n)o(a)o(ble)f(t)o(o)i(s)q(et)f(up)g(a)g(m)o(emory)d(win)o(do)o(w)i(t) o(o)h(m)o(ap)e(t)n(h)o(e)j(card's)f(CIS.)0 2341 y Fi(CS)p 47 2341 V 15 w(NO)p 106 2341 V 16 w(MORE)p 210 2341 V 14 w(ITEMS)104 2414 y Fj(Th)o(ere)h(w)o(ere)g(no)e(t)o(uple)q(s)h(m)o (a)o(t)o(c)o(hin)o(g)f Fi(DesiredTuple)p Fj(.)p eop %%Page: 17 17 17 16 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(17)0 81 y Ff(2.4.2)48 b(GetT)l(up)o(leDa)o(t)o(a)104 175 y Fc(#include)16 b("cistpl.h")104 280 y(int)i(CardServic)o(es\()o (Ge)o(tTu)o(ple)o(Da)o(ta,)e(client_ha)o(ndl)o(e_)o(t)h(client,)g (tuple_t)f(*tuple\);)0 395 y Fi(GetTupleData)c Fj(extract)o(s)k(a)e(s)q (er)q(ie)q(s)i(of)e(d)o(a)o(t)o(a)g(b)o(yt)o(e)q(s)h(f)q(rom)e(t)n(h)o (e)i(sp)q(eci\014e)q(d)h(t)o(uple,)d(whic)o(h)h(m)n(ust)g(h)o(a)o(v)o (e)g(b)q(een)h(ret)o(ur)q(n)o(e)q(d)h(b)o(y)e(a)0 452 y(previous)h(call)g(t)o(o)g Fi(GetFirstTuple)d Fj(or)j Fi(GetNextTuple)p Fj(.)k(A)c(m)o(axim)n(u)o(m)c(of)j Fi(TupleDataMax)f Fj(b)o(yt)o(e)q(s)i(will)f(b)q(e)h(co)o(pie)q(d)g(in) o(t)o(o)0 509 y(t)n(h)o(e)f Fi(TupleData)c Fj(bu\013er,)k(st)o(art)o (in)o(g)f(a)o(t)g(an)f(o\013s)q(et)i(of)e Fi(TupleOffset)f Fj(b)o(yt)o(e)q(s.)18 b(Th)o(e)13 b(n)n(u)o(m)n(b)q(er)g(of)f(b)o(yt)o (e)q(s)h(co)o(pie)q(d)g(i)q(s)f(ret)o(ur)q(n)o(e)q(d)i(in)0 565 y Fi(TupleDataLen)p Fj(.)0 644 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 752 y Fi(CS)p 47 752 14 2 v 15 w(BAD)p 128 752 V 15 w(HANDLE)104 824 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 913 y Fi(CS)p 47 913 V 15 w(OUT)p 128 913 V 15 w(OF)p 187 913 V 16 w(RESOURCE)104 985 y Fj(Card)h(Service)q(s)h(w)o(as)f(u)o (n)o(a)o(ble)f(t)o(o)i(s)q(et)f(up)g(a)g(m)o(emory)d(win)o(do)o(w)i(t)o (o)h(m)o(ap)e(t)n(h)o(e)j(card's)f(CIS.)0 1073 y Fi(CS)p 47 1073 V 15 w(NO)p 106 1073 V 16 w(MORE)p 210 1073 V 14 w(ITEMS)104 1146 y Fj(Th)o(e)g(t)o(uple)f(do)q(e)q(s)h(not)g(con)o (t)o(ain)f(an)o(y)g(more)g(d)o(a)o(t)o(a.)18 b Fi(TuppleOffset)11 b Fj(i)q(s)i(grea)o(t)o(er)i(t)n(h)o(an)f(or)g(equal)f(t)o(o)h(t)n(h)o (e)h(len)o(gt)n(h)f(of)f(t)n(h)o(e)104 1203 y(t)o(uple.)0 1338 y Ff(2.4.3)48 b(P)o(ars)q(eT)l(up)o(le)104 1433 y Fc(#include)16 b("cistpl.h")104 1537 y(int)i(CardServic)o(es\()o(Pa)o (rse)o(Tup)o(le)o(,)f(client_h)o(and)o(le_)o(t)f(client,)h(tuple_t)g (*tuple,)g(cisparse_t)f(*parse\))0 1653 y Fj(Th)o(e)e Fi(cisparse)p 263 1653 V 14 w(t)g Fj(d)o(a)o(t)o(a)g(stru)o(ct)o(ure)h (i)q(s)f(giv)o(en)f(b)o(y:)104 1756 y Fc(typedef)k(union)g(cisparse_t)f ({)261 1808 y(cistpl_de)o(vi)o(ce_)o(t)173 b(device;)261 1860 y(cistpl_ve)o(rs)o(_1_)o(t)g(version_1;)261 1912 y(cistpl_co)o(nf)o(ig_)o(t)g(config;)261 1964 y(cistpl_cf)o(ta)o(ble)o (_en)o(tr)o(y_t)35 b(cftable_ent)o(ry)o(;)104 2016 y(})19 b(cisparse_t)o(;)0 2124 y Fi(ParseTuple)e Fj(in)o(t)o(erpret)o(s)k(t)o (uple)e(d)o(a)o(t)o(a)g(ret)o(ur)q(n)o(e)q(d)h(b)o(y)f(a)f(previous)i (call)e(t)o(o)h Fi(GetTupleData)p Fj(.)31 b(Th)o(e)20 b(stru)o(ct)o(ure)h(ret)o(ur)q(n)o(e)q(d)0 2181 y(d)o(ep)q(en)o(ds)15 b(on)f(t)n(h)o(e)g(t)o(yp)q(e)g(of)f(t)n(h)o(e)i(pars)q(e)q(d)g(t)o (uple.)j(See)c(t)n(h)o(e)h Fi(cistpl.h)d Fj(\014le)i(for)g(t)n(h)o(e)q (s)q(e)h(stru)o(ct)o(ure)h(d)o(e\014nit)o(ions;)d(t)n(h)o(ey)i(are)f (quit)o(e)0 2238 y(complex.)i(Curren)o(t)n(ly)m(,)e Fi(ParseTuple)e Fj(can)i(pars)q(e)g Fi(DEVICE)p Fj(,)e Fi(VERS)p 1038 2238 V 15 w(1)p Fj(,)i Fi(CONFIG)p Fj(,)e(an)o(d)h Fi(CFTABLE)p 1490 2238 V 14 w(ENTRY)g Fj(t)o(uple)q(s.)0 2316 y(Ret)o(ur)q(n)h(co)q (d)o(e)q(s:)0 2424 y Fi(CS)p 47 2424 V 15 w(BAD)p 128 2424 V 15 w(TUPLE)104 2497 y Fj(An)d(error)h(w)o(as)e(encou)o(n)o(t)o (e)q(d)j(d)o(ur)q(in)o(g)d(pars)q(in)o(g)h(of)f(t)n(hi)q(s)g(t)o(uple.) 17 b(Th)o(e)11 b(t)o(uple)f(m)o(ay)f(b)q(e)i(incomplet)o(e,)e(or)i(m)o (ay)e(b)q(e)i(form)o(a)o(t)n(t)o(e)q(d)104 2554 y(incorrect)n(ly)m(.)p eop %%Page: 18 18 18 17 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n(bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1027 b Fj(18)0 81 y Fi(CS)p 47 81 14 2 v 15 w(UNSUPPORTED)p 304 81 V 14 w(FUNCTION)104 154 y(ParseTuple)12 b Fj(cannot)i(pars)q(e)g (t)n(h)o(e)h(sp)q(eci\014e)q(d)g(t)o(uple)e(t)o(yp)q(e.)0 291 y Ff(2.4.4)48 b(V)l(alid)o(a)o(t)o(eCIS)104 386 y Fc(int)18 b(CardServic)o(es\()o(Va)o(lid)o(ate)o(CI)o(S,)e(client_han)o (dle)o(_t)g(client,)h(cisinfo_t)f(*cisinfo\))0 506 y Fj(Th)o(e)e Fi(cisinfo)p 241 506 V 14 w(t)g Fj(stru)o(ct)o(ure)i(i)q(s) d(giv)o(en)h(b)o(y:)104 612 y Fc(typedef)j(struct)g(cisinfo_t)f({)261 665 y(u_long)194 b(Chains;)104 717 y(})19 b(cisinfo_t;)0 828 y Fi(ValidateCIS)c Fj(a)o(t)n(t)o(empt)o(s)k(t)o(o)f(v)o(er)q(ify)f (t)n(h)o(a)o(t)h(a)f(card)i(h)o(as)f(a)f(reason)o(a)o(ble)h(Card)g (Inform)o(a)o(t)o(ion)d(Stru)o(ct)o(ure.)32 b(It)17 b(ret)o(ur)q(ns)i (t)n(h)o(e)0 885 y(n)n(u)o(m)n(b)q(er)14 b(of)f(t)o(uple)q(s)h(fou)o(n) o(d)g(in)f Fi(Chains)p Fj(.)k(If)c(t)n(h)o(e)i(CIS)f(ap)o(p)q(ears)g(t) o(o)h(b)q(e)e(u)o(nin)o(t)o(erpret)o(a)o(ble,)h Fi(Chains)f Fj(will)f(b)q(e)i(s)q(et)h(t)o(o)f(0.)0 963 y(Ret)o(ur)q(n)g(co)q(d)o (e)q(s:)0 1075 y Fi(CS)p 47 1075 V 15 w(BAD)p 128 1075 V 15 w(HANDLE)104 1148 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g (in)o(v)n(alid.)0 1238 y Fi(CS)p 47 1238 V 15 w(OUT)p 128 1238 V 15 w(OF)p 187 1238 V 16 w(RESOURCE)104 1311 y Fj(Card)h(Service)q(s)h(w)o(as)f(u)o(n)o(a)o(ble)f(t)o(o)i(s)q(et)f (up)g(a)g(m)o(emory)d(win)o(do)o(w)i(t)o(o)h(m)o(ap)e(t)n(h)o(e)j (card's)f(CIS.)0 1457 y Fd(2.5)56 b(M)o(emory)16 b(win)n(do)n(w)21 b(con)n(tro)o(l)0 1562 y Fj(PCMCIA)c(cards)h(h)o(a)o(v)o(e)f(t)o(w)o(o) g(m)o(emory)d(space)q(s:)26 b(a)o(t)n(tr)q(ibu)o(t)o(e)18 b(m)o(emory)m(,)c(an)o(d)j(common)d(m)o(emory)m(.)25 b(A)o(t)n(tr)q(ibu)o(t)o(e)18 b(m)o(emory)d(i)q(s)0 1619 y(commonly)h(us)q(e)q(d)21 b(for)e(h)o(oldin)o(g)f(d)o(e)q(scr)q(ipt)o (iv)o(e)i(inform)o(a)o(t)o(ion)d(\(i.e.,)j(t)n(h)o(e)g(CIS\))g(an)o(d)f (con\014gura)o(t)o(ion)g(regi)q(st)o(ers.)36 b(Common)0 1676 y(m)o(emory)14 b(m)o(ay)h(con)o(t)o(ain)g(d)o(evice)j(bu\013ers)g (in)e(t)n(h)o(e)h(cas)q(e)h(of)d(IO)i(cards,)h(or)e(t)n(h)o(e)h(act)o (ual)f(bulk)g(st)o(orage)i(of)e(a)g(m)o(emory)e(card.)0 1732 y(Eac)o(h)j(so)q(c)o(k)o(et)g(can)f(h)o(a)o(v)o(e)g(up)g(t)o(o)h (four)f(act)o(iv)o(e)g(m)o(emory)d(win)o(do)o(ws,)j(m)o(ap)o(pin)o(g)e (p)q(ort)o(ions)j(of)e(PCMCIA)i(m)o(emory)c(in)o(t)o(o)j(t)n(h)o(e)0 1789 y(h)o(ost)h(syst)o(em)f(addre)q(ss)i(space.)27 b(A)16 b(PCMCIA)h(d)o(evice)g(can)f(addre)q(ss)i(a)o(t)f(most)e(16MB)h(of)g(b) q(ot)n(h)h(common)c(an)o(d)j(a)o(t)n(tr)q(ibu)o(t)o(e)0 1846 y(m)o(emory)m(.)h(Win)o(do)o(ws)d(sh)o(ould)g(t)o(ypically)f(b)q (e)i(align)o(e)q(d)f(t)o(o)h(a)o(t)f(least)h(4K)g(b)q(ou)o(n)o(d)o(ar)q (ie)q(s)h(in)e(b)q(ot)n(h)h(t)n(h)o(e)g(h)o(ost)h(an)o(d)e(card)h (addre)q(ss)0 1903 y(space)q(s.)0 1981 y(A)e(m)o(emory)d(win)o(do)o(w)i (i)q(s)g(init)o(ialize)q(d)g(b)o(y)g(a)h(call)f(t)o(o)h Fi(RequestWindow)p Fj(.)i(Som)o(e)d(win)o(do)o(w)f(a)o(t)n(tr)q(ibu)o (t)o(e)q(s)k(can)e(b)q(e)g(mo)q(di\014e)q(d)e(us)q(in)o(g)0 2038 y Fi(ModifyWindow)p Fj(.)25 b(Th)o(e)17 b(s)q(egm)o(en)o(t)f(of)h (card)g(m)o(emory)d(m)o(ap)o(p)q(e)q(d)i(t)o(o)h(t)n(h)o(e)h(win)o(do)o (w)e(can)h(b)q(e)g(mo)q(di\014e)q(d)f(us)q(in)o(g)h Fi(MapMemPage)p Fj(.)0 2095 y(An)o(d)h(win)o(do)o(ws)f(are)i(releas)q(e)q(d)h(wit)n(h)e Fi(ReleaseWindow)p Fj(.)27 b(Unlik)o(e)18 b(almost)e(all)h(ot)n(h)o(er) i(Card)f(Service)q(s)i(su)n(bfu)o(nct)o(ions,)f(t)n(h)o(e)0 2151 y(m)o(emory)10 b(win)o(do)o(w)h(fu)o(nct)o(ions)i(norm)o(ally)d (act)j(on)f Fi(window)p 913 2151 V 14 w(handle)p 1059 2151 V 15 w(t)g Fj(h)o(an)o(dle)q(s,)g(ra)o(t)n(h)o(er)i(t)n(h)o(an)e Fi(client)p 1611 2151 V 15 w(handle)p 1758 2151 V 14 w(t)g Fj(h)o(an)o(dle)q(s.)0 2288 y Ff(2.5.1)48 b(Reque)q(stWin)o(do)o (w)104 2383 y Fc(int)18 b(CardServic)o(es\()o(Re)o(que)o(stW)o(in)o (dow)o(,)e(client_hand)o(le)o(_t)g(*handle,)h(win_req_t)f(*req\);)0 2503 y Fj(Th)o(e)e Fi(win)p 153 2503 V 15 w(req)p 234 2503 V 15 w(t)g Fj(stru)o(ct)o(ure)i(i)q(s)d(giv)o(en)g(b)o(y:)p eop %%Page: 19 19 19 18 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n(bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1027 b Fj(19)104 81 y Fc(typedef)17 b(struct)g(win_req_t)f({)261 133 y(u_long)194 b(Attribut)o(es;)261 185 y(caddr_t)174 b(Base;)261 237 y(u_long)194 b(Size;)261 289 y(u_long)g(AccessSp)o(eed) o(;)104 341 y(})19 b(win_req_t;)0 453 y Fi(RequestWindow)8 b Fj(m)o(aps)i(a)h(win)o(do)o(w)f(of)g(card)h(m)o(emory)d(in)o(t)o(o)j (syst)o(em)f(m)o(emory)m(.)k(On)e(en)o(try)m(,)f(t)n(h)o(e)g Fi(handle)f Fj(param)o(et)o(er)g(sh)o(ould)0 509 y(p)q(oin)o(t)j(t)o(o) h(a)g(v)n(alid)e(clien)o(t)i(h)o(an)o(dle.)k(On)c(ret)o(ur)q(n,)g(t)n (hi)q(s)g(will)e(b)q(e)i(replace)q(d)h(b)o(y)f(a)f Fi(window)p 1366 509 14 2 v 15 w(handle)p 1513 509 V 14 w(t)h Fj(h)o(an)o(dle)f(t)n (h)o(a)o(t)h(sh)o(ould)g(b)q(e)0 566 y(us)q(e)q(d)h(in)e(su)n(bs)q (equen)o(t)j(calls)e(t)o(o)g Fi(ModifyWindow)p Fj(,)d Fi(MapMemPage)p Fj(,)g(an)o(d)j Fi(ReleaseWindow)p Fj(.)0 644 y(Th)o(e)g(follo)o(win)o(g)d(\015ags)j(can)g(b)q(e)g(sp)q(eci\014e) q(d)h(in)f Fi(Attributes)p Fj(:)0 756 y Fi(WIN)p 69 756 V 15 w(MEMORY)p 216 756 V 15 w(TYPE)104 829 y Fj(Thi)q(s)c(\014eld)i (can)f(b)q(e)g(e)q(it)n(h)o(er)i Fi(WIN)p 593 829 V 15 w(MEMORY)p 740 829 V 14 w(TYPE)p 842 829 V 15 w(CM)e Fj(for)g(common)d(m)o(emory)m(,)g(or)j Fi(WIN)p 1415 829 V 15 w(MEMORY)p 1562 829 V 15 w(TYPE)p 1665 829 V 15 w(AM)f Fj(for)h(a)o(t)n(tr)q(ibu)o(t)o(e)104 886 y(m)o(emory)m(.)0 976 y Fi(WIN)p 69 976 V 15 w(DATA)p 172 976 V 15 w(WIDTH)104 1049 y Fj(Eit)n(h)o(er)k Fi(WIN)p 298 1049 V 15 w(DATA)p 401 1049 V 15 w(WIDTH)p 526 1049 V 14 w(16)f Fj(for)f(16-bit)g(acce)q (ss)q(e)q(s,)k(or)d Fi(WIN)p 1071 1049 V 15 w(DATA)p 1174 1049 V 14 w(WIDTH)p 1298 1049 V 15 w(8)g Fj(for)f(8-bit)g(acce)q (ss.)0 1139 y Fi(WIN)p 69 1139 V 15 w(ENABLE)104 1213 y Fj(If)g(t)n(hi)q(s)h(i)q(s)f(s)q(et,)i(t)n(h)o(e)f(win)o(do)o(w)f(i)q (s)g(t)o(ur)q(n)o(e)q(d)i(on.)0 1324 y Fi(Base)d Fj(sp)q(eci\014e)q(s)j (t)n(h)o(e)f(bas)q(e)f(addre)q(ss)i(of)e(t)n(h)o(e)h(win)o(do)o(w)e(in) g(syst)o(em)h(m)o(emory)m(.)i(If)e Fi(NULL)p Fj(,)e(Card)i(Service)q(s) i(will)d(s)q(et)i Fi(Base)e Fj(t)o(o)h(t)n(h)o(e)0 1381 y(\014rst)j(a)o(v)n(aila)o(ble)c(win)o(do)o(w)i(addre)q(ss.)22 b Fi(Size)14 b Fj(sp)q(eci\014e)q(s)j(t)n(h)o(e)e(win)o(do)o(w)f(s)q (ize)h(in)g(b)o(yt)o(e)q(s.)21 b Fi(AccessSpeed)13 b Fj(sp)q(eci\014e)q(s)j(t)n(h)o(e)g(m)o(emory)0 1438 y(acce)q(ss)g(sp)q (ee)q(d,)f(in)e(n)o(anos)q(econ)o(ds.)0 1516 y(Ret)o(ur)q(n)h(co)q(d)o (e)q(s:)0 1627 y Fi(CS)p 47 1627 V 15 w(BAD)p 128 1627 V 15 w(HANDLE)104 1701 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g (in)o(v)n(alid.)0 1791 y Fi(CS)p 47 1791 V 15 w(NO)p 106 1791 V 16 w(CARD)104 1864 y Fj(Th)o(e)h(so)q(c)o(k)o(et)h(ass)q (ign)o(e)q(d)f(t)o(o)g(t)n(hi)q(s)g(clien)o(t)g(i)q(s)f(curren)o(t)n (ly)i(v)n(acan)o(t.)0 1954 y Fi(CS)p 47 1954 V 15 w(BAD)p 128 1954 V 15 w(ATTRIBUTE)104 2028 y Fj(An)f(u)o(nsup)o(p)q(ort)o(e)q (d)h(win)o(do)o(w)e(a)o(t)n(tr)q(ibu)o(t)o(e)i(w)o(as)f(reque)q(st)o(e) q(d.)0 2118 y Fi(CS)p 47 2118 V 15 w(OUT)p 128 2118 V 15 w(OF)p 187 2118 V 16 w(RESOURCE)104 2191 y Fj(Th)o(e)g(m)o(axim)m(u) o(m)d(n)n(u)o(m)n(b)q(er)i(of)g(m)o(emory)f(win)o(do)o(ws)h(for)g(t)n (hi)q(s)h(so)q(c)o(k)o(et)h(are)f(already)g(b)q(e)q(in)o(g)g(us)q(e)q (d.)0 2281 y Fi(CS)p 47 2281 V 15 w(IN)p 106 2281 V 16 w(USE)104 2354 y(RequestWindow)d Fj(w)o(as)j(u)o(n)o(a)o(ble)f(t)o(o)h (\014n)o(d)g(a)g(f)q(ree)g(win)o(do)o(w)f(of)g(syst)o(em)h(m)o(emory)m (.)p eop %%Page: 20 20 20 19 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(20)0 81 y Ff(2.5.2)48 b(Mo)q(difyWin)o(do)o(w)104 176 y Fc(int)18 b(CardServic)o(es\()o(Mo)o(dif)o(yWi)o(nd)o(ow,)e (window_ha)o(ndl)o(e_)o(t,)g(modwin_t)h(*\);)0 292 y Fj(Th)o(e)d Fi(modwin)p 219 292 14 2 v 15 w(t)f Fj(stru)o(ct)o(ure)j(i) q(s)d(giv)o(en)h(b)o(y:)104 396 y Fc(typedef)j(struct)g(modwin_t)g({) 261 448 y(u_long)194 b(Attribut)o(es;)261 500 y(u_long)g(AccessSp)o (eed)o(;)104 552 y(})19 b(modwin_t;)0 661 y Fi(ModifyWindow)14 b Fj(mo)q(di\014e)q(s)i(t)n(h)o(e)i(a)o(t)n(tr)q(ibu)o(t)o(e)q(s)g(of)f (a)f(win)o(do)o(w)g(h)o(an)o(dle)h(ret)o(ur)q(n)o(e)q(d)h(b)o(y)f(a)f (previous)i(call)e(t)o(o)h Fi(RequestWindow)p Fj(.)0 717 y(Th)o(e)d(follo)o(win)o(g)d(a)o(t)n(tr)q(ibu)o(t)o(e)q(s)16 b(can)e(b)q(e)g(c)o(h)o(an)o(ge)q(d:)0 826 y Fi(WIN)p 69 826 V 15 w(MEMORY)p 216 826 V 15 w(TYPE)104 899 y Fj(Thi)q(s)c(\014eld)i(can)f(b)q(e)g(e)q(it)n(h)o(er)i Fi(WIN)p 593 899 V 15 w(MEMORY)p 740 899 V 14 w(TYPE)p 842 899 V 15 w(CM)e Fj(for)g(common)d(m)o(emory)m(,)g(or)j Fi(WIN)p 1415 899 V 15 w(MEMORY)p 1562 899 V 15 w(TYPE)p 1665 899 V 15 w(AM)f Fj(for)h(a)o(t)n(tr)q(ibu)o(t)o(e)104 956 y(m)o(emory)m(.)0 1044 y Fi(WIN)p 69 1044 V 15 w(DATA)p 172 1044 V 15 w(WIDTH)104 1117 y Fj(Eit)n(h)o(er)k Fi(WIN)p 298 1117 V 15 w(DATA)p 401 1117 V 15 w(WIDTH)p 526 1117 V 14 w(16)f Fj(for)f(16-bit)g(acce)q(ss)q(e)q(s,)k(or)d Fi(WIN)p 1071 1117 V 15 w(DATA)p 1174 1117 V 14 w(WIDTH)p 1298 1117 V 15 w(8)g Fj(for)f(8-bit)g(acce)q(ss.)0 1205 y Fi(WIN)p 69 1205 V 15 w(ENABLE)104 1278 y Fj(If)g(t)n(hi)q(s)h(i)q(s) f(s)q(et,)i(t)n(h)o(e)f(win)o(do)o(w)f(i)q(s)g(t)o(ur)q(n)o(e)q(d)i (on.)0 1387 y Fi(AccessSpeed)d Fj(giv)o(e)q(s)h(t)n(h)o(e)i(n)o(ew)f(m) o(emory)d(acce)q(ss)17 b(sp)q(ee)q(d,)d(in)g(n)o(anos)q(econ)o(ds.)0 1465 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 1574 y Fi(CS)p 47 1574 V 15 w(BAD)p 128 1574 V 15 w(HANDLE)104 1646 y Fj(Th)o(e)g(win)o(do)o(w)f(h)o(an)o(dle)g(i)q(s)h(in)o(v)n(alid.)0 1782 y Ff(2.5.3)48 b(MapM)o(emP)o(age)104 1877 y Fc(int)18 b(CardServic)o(es\()o(Ma)o(pMe)o(mPa)o(ge)o(,)f(window_h)o(and)o(le_)o (t,)f(memreq_t)h(*\))0 1993 y Fj(Th)o(e)d Fi(memreq)p 219 1993 V 15 w(t)f Fj(stru)o(ct)o(ure)j(i)q(s)d(giv)o(en)h(b)o(y:)104 2097 y Fc(typedef)j(struct)g(memreq_t)g({)261 2149 y(u_long)194 b(CardOffs)o(et;)261 2201 y(page_t)g(Page;)104 2253 y(})19 b(memreq_t;)0 2362 y Fi(MapMemPage)9 b Fj(s)q(et)o(s)k(t)n(h)o(e)f (addre)q(ss)h(of)e(card)g(m)o(emory)e(t)n(h)o(a)o(t)i(i)q(s)g(m)o(ap)o (p)q(e)q(d)f(t)o(o)h(t)n(h)o(e)h(bas)q(e)g(of)e(a)h(m)o(emory)e(win)o (do)o(w)h(t)o(o)i Fi(CardOffset)p Fj(.)0 2419 y(Th)o(e)h(win)o(do)o(w)g (sh)o(ould)g(h)o(a)o(v)o(e)f(b)q(een)i(crea)o(t)o(e)q(d)h(b)o(y)e(a)g (call)f(t)o(o)i Fi(RequestWindow)p Fj(.)h(Th)o(e)e Fi(Page)g Fj(param)o(et)o(er)f(i)q(s)h(not)g(implem)n(en)o(t)o(e)q(d)0 2475 y(in)g(t)n(hi)q(s)h(v)o(ers)q(ion)g(an)o(d)g(sh)o(ould)f(b)q(e)h (s)q(et)h(t)o(o)f(0.)0 2554 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)p eop %%Page: 21 21 21 20 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n(bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1027 b Fj(21)0 81 y Fi(CS)p 47 81 14 2 v 15 w(BAD)p 128 81 V 15 w(HANDLE)104 154 y Fj(Th)o(e)14 b(win)o(do)o(w)f(h)o(an)o(dle)g(i) q(s)h(in)o(v)n(alid.)0 244 y Fi(CS)p 47 244 V 15 w(BAD)p 128 244 V 15 w(PAGE)104 318 y Fj(Th)o(e)g Fi(Page)f Fj(v)n(alue)g(w)o (as)h(non-zero.)0 454 y Ff(2.5.4)48 b(Rele)q(as)q(eWin)o(d)o(o)o(w)104 549 y Fc(int)18 b(CardServic)o(es\()o(Re)o(lea)o(seW)o(in)o(dow)o(,)e (window_hand)o(le)o(_t)g(handle\))0 669 y Fi(ReleaseWindow)11 b Fj(releas)q(e)q(s)16 b(a)e(m)o(emory)d(win)o(do)o(w)i(previously)g (allo)q(ca)o(t)o(e)q(d)h(wit)n(h)g Fi(RequestWindow)p Fj(.)0 747 y(Ret)o(ur)q(n)g(co)q(d)o(e)q(s:)0 859 y Fi(CS)p 47 859 V 15 w(BAD)p 128 859 V 15 w(HANDLE)104 932 y Fj(Th)o(e)g(win)o (do)o(w)f(h)o(an)o(dle)g(i)q(s)h(in)o(v)n(alid.)0 1078 y Fd(2.6)56 b(Mi)q(scellan)n(eous)17 b(calls)0 1183 y Ff(2.6.1)48 b(GetCardService)q(sInfo)104 1279 y Fc(int)18 b(CardServic)o(es\()o(Ge)o(tCa)o(rdS)o(er)o(vic)o(es)o(Inf)o(o,)e (servinfo_t)g(*info\))0 1398 y Fj(Th)o(e)e Fi(servinfo)p 263 1398 V 14 w(t)g Fj(stru)o(ct)o(ure)i(i)q(s)d(giv)o(en)g(b)o(y:)104 1505 y Fc(typedef)k(struct)g(servinfo_t)f({)261 1557 y(char)234 b(Signatur)o(e[2)o(];)261 1609 y(u_long)194 b(Count;)261 1661 y(u_long)g(Revision)o(;)261 1713 y(u_long)g(CSLevel;) 261 1765 y(char)234 b(*VendorS)o(tri)o(ng)o(;)104 1817 y(})19 b(servinfo_t)o(;)0 1929 y Fi(GetCardServicesIn)o(fo)10 b Fj(ret)o(ur)q(ns)j(revi)q(s)q(ion)e(inform)o(a)o(t)o(ion)f(a)o(b)q (ou)o(t)j(t)n(hi)q(s)f(v)o(ers)q(ion)g(of)g(Card)h(Service)q(s.)19 b Fi(Signature)11 b Fj(i)q(s)g(s)q(et)j(t)o(o)0 1986 y(\\CS".)e Fi(Count)g Fj(i)q(s)g(s)q(et)i(t)o(o)f(t)n(h)o(e)h(n)n(u)o (m)n(b)q(er)f(of)f(so)q(c)o(k)o(et)o(s)j(curren)o(t)n(ly)f(con\014gure) q(d.)19 b Fi(Revision)11 b Fj(i)q(s)h(s)q(et)i(t)o(o)f(t)n(h)o(e)h (revi)q(s)q(ion)e(lev)o(el)h(of)f(t)n(h)o(e)0 2042 y(Card)h(Service)q (s)h(pac)o(kage,)e(an)o(d)g Fi(CSLevel)f Fj(i)q(s)h(s)q(et)i(t)o(o)e(t) n(h)o(e)i(lev)o(el)e(of)g(compliance)f(wit)n(h)h(t)n(h)o(e)i(PCMCIA)f (st)o(an)o(d)o(ard.)18 b(Th)o(e)q(s)q(e)c(are)0 2099 y(enco)q(d)o(e)q(d)i(as)e(BCD)g(n)n(u)o(m)n(b)q(ers.)k Fi(VendorString)11 b Fj(i)q(s)j(s)q(et)g(t)o(o)g(p)q(oin)o(t)g(t)o(o)g (an)f(R)o(CS)h(id)o(en)o(t)o(i\014ca)o(t)o(ion)f(str)q(in)o(g.)0 2177 y(Thi)q(s)g(call)g(alw)o(ays)g(su)o(ccee)q(ds.)0 2314 y Ff(2.6.2)48 b(Acce)q(s)q(sCon\014gura)o(t)o(ion)o(Regis)o(t)o (er)104 2409 y Fc(#include)16 b("cisreg.h")104 2513 y(int)i(CardServic) o(es\()o(Ac)o(ces)o(sCo)o(nf)o(igu)o(ra)o(tio)o(nR)o(egi)o(ste)o(r,)e (conf_reg_t)g(*reg\);)p eop %%Page: 22 22 22 21 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n(bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1027 b Fj(22)0 81 y(Th)o(e)14 b Fi(conf)p 175 81 14 2 v 15 w(reg)p 256 81 V 15 w(t)g Fj(stru)o(ct)o(ure)i(i)q(s)d(giv)o(en)g(b)o (y:)104 181 y Fc(typedef)k(struct)g(conf_reg_t)f({)261 233 y(u_long)194 b(Action;)261 285 y(off_t)214 b(Offset;)261 337 y(u_long)194 b(Value;)104 389 y(})19 b(conf_reg_t)o(;)0 494 y Fj(Th)o(e)14 b Fi(Action)f Fj(param)o(et)o(er)g(can)h(b)q(e)g(on) o(e)g(of)f(t)n(h)o(e)i(follo)o(win)o(g:)0 598 y Fi(CS)p 47 598 V 15 w(READ)104 670 y Fj(Read)f(t)n(h)o(e)h(sp)q(eci\014e)q(d)g (con\014gura)o(t)o(ion)e(regi)q(st)o(er)i(an)o(d)e(ret)o(ur)q(n)i Fi(Value)p Fj(.)0 757 y Fi(CS)p 47 757 V 15 w(WRITE)104 828 y Fj(W)m(r)q(it)o(e)e Fi(Value)f Fj(t)o(o)j(t)n(h)o(e)f(sp)q (eci\014e)q(d)h(con\014gura)o(t)o(ion)f(regi)q(st)o(er.)0 933 y Fi(AccessConfigurati)o(onReg)o(ister)k Fj(e)q(it)n(h)o(er)23 b(reads)h(or)e(wr)q(it)o(e)q(s)g(t)n(h)o(e)h(on)o(e-b)o(yt)o(e)f(CIS)f (con\014gura)o(t)o(ion)h(regi)q(st)o(er)h(a)o(t)e(o\013s)q(et)0 990 y Fi(Offset)13 b Fj(f)q(rom)g(t)n(h)o(e)i(st)o(art)h(of)e(t)n(h)o (e)h(con\014g)g(regi)q(st)o(er)g(area.)21 b(It)15 b(can)g(only)f(b)q(e) g(us)q(e)q(d)i(for)e(a)h(so)q(c)o(k)o(et)g(t)n(h)o(a)o(t)g(h)o(as)g(b)q (een)g(con\014gure)q(d)0 1047 y(wit)n(h)f Fi(RequestConfigurat)o(ion)p Fj(.)0 1125 y(Th)o(e)g(follo)o(win)o(g)d(v)n(alue)q(s)j(for)g Fi(Offset)e Fj(are)j(d)o(e\014n)o(e)q(d)g(in)e Fi(cistpl.h)p Fj(:)0 1236 y Fi(CISREG)p 135 1236 V 14 w(COR)104 1308 y Fj(Th)o(e)h(Con\014gura)o(t)o(ion)f(Opt)o(ion)g(Regi)q(st)o(er.)0 1395 y Fi(CISREG)p 135 1395 V 14 w(CCSR)104 1466 y Fj(Th)o(e)h(Card)g (Con\014gura)o(t)o(ion)f(an)o(d)g(St)o(a)o(t)o(us)h(Regi)q(st)o(er.)0 1553 y Fi(CISREG)p 135 1553 V 14 w(PRR)104 1625 y Fj(Th)o(e)g(Pin)g (Replacem)o(en)o(t)e(Regi)q(st)o(er.)0 1711 y Fi(CISREG)p 135 1711 V 14 w(SCR)104 1783 y Fj(Th)o(e)i(So)q(c)o(k)o(et)g(an)o(d)g (Co)o(p)o(y)f(Regi)q(st)o(er.)0 1894 y(Ret)o(ur)q(n)h(co)q(d)o(e)q(s:)0 1999 y Fi(CS)p 47 1999 V 15 w(BAD)p 128 1999 V 15 w(HANDLE)104 2071 y Fj(Th)o(e)g(clien)o(t)g(h)o(an)o(dle)f(i)q(s)g(in)o(v)n(alid.)0 2157 y Fi(CS)p 47 2157 V 15 w(BAD)p 128 2157 V 15 w(ARGS)104 2229 y Fj(Th)o(e)h(sp)q(eci\014e)q(d)h Fi(Action)e Fj(i)q(s)g(not)h (sup)o(p)q(ort)o(e)q(d.)0 2315 y Fi(CS)p 47 2315 V 15 w(CONFIGURATION)p 348 2315 V 13 w(LOCKED)104 2387 y Fj(Thi)q(s)f(act)o (ually)g(m)o(eans)g(t)n(h)o(a)o(t)h(t)n(h)o(e)h(con\014gura)o(t)o(ion)e (h)o(as)h Ff(not)f Fj(b)q(een)h(lo)q(c)o(k)o(e)q(d.)0 2474 y Fi(CS)p 47 2474 V 15 w(OUT)p 128 2474 V 15 w(OF)p 187 2474 V 16 w(RESOURCE)104 2546 y Fj(Card)g(Service)q(s)h(w)o(as)f(u) o(n)o(a)o(ble)f(t)o(o)i(allo)q(ca)o(t)o(e)e(a)g(m)o(emory)f(win)o(do)o (w)g(t)o(o)j(acce)q(ss)h(t)n(h)o(e)f(card's)f(con\014gura)o(t)o(ion)f (regi)q(st)o(ers.)p eop %%Page: 23 23 23 22 bop 0 -84 1950 3 v 0 -100 a Ff(2.)37 b(Card)16 b(Service)q(s)f(su)n(bfu)o(nct)o(i)o(on)e(d)o(e)q(scr)q(ipt)o(i)o(on)o (s)1022 b Fj(23)0 81 y Ff(2.6.3)48 b(AdjustRe)q(sourceInf)o(o)104 176 y Fc(int)18 b(CardServic)o(es\()o(Ad)o(jus)o(tRe)o(so)o(urc)o(eI)o (nfo)o(,)e(client_hand)o(le)o(_t)g(handle,)h(adjust_t)g(*adj\);)0 296 y Fj(Th)o(e)d Fi(adjust)p 219 296 14 2 v 15 w(t)f Fj(stru)o(ct)o(ure)j(i)q(s)d(giv)o(en)h(b)o(y:)104 403 y Fc(typedef)j(struct)g(adjust_t)g({)261 455 y(u_long)194 b(Action;)261 507 y(u_long)g(Resource)o(;)261 559 y(u_long)g(Attribut)o (es;)261 611 y(union)17 b({)418 663 y(struct)g(memory)g({)575 715 y(caddr_t)173 b(Base;)575 767 y(u_long)193 b(Size;)418 819 y(})19 b(memory;)418 871 y(struct)e(io)i({)575 923 y(ioaddr_t)153 b(BasePort;)575 975 y(ioaddr_t)g(NumPorts;)575 1027 y(u_long)193 b(IOAddrLine)o(s;)418 1079 y(})19 b(io;)418 1132 y(struct)e(irq)h({)575 1184 y(u_long)193 b(IRQ;)418 1236 y(})19 b(irq;)261 1288 y(})g(resource;)104 1340 y(})g(adjust_t;)0 1451 y Fi(AdjustResourceInf)o(o)9 b Fj(i)q(s)j(us)q(e)q(d)h(t)o(o)g(t)o(ell)e(Card)h(Service)q(s)i(wh)o(a)o (t)e(re)q(source)q(s)j(m)o(ay)10 b(or)i(m)o(ay)f(not)h(b)q(e)g(allo)q (ca)o(t)o(e)q(d)g(b)o(y)g(PCMCIA)0 1508 y(d)o(evice)q(s.)18 b(Th)o(e)10 b(norm)o(al)e(Lin)n(ux)i(re)q(source)i(m)o(an)o(agem)o(en)o (t)7 b(syst)o(ems)j(\(t)n(h)o(e)g(*)p 1134 1508 13 2 v 15 w(region)g(calls)f(for)h(IO)g(p)q(ort)o(s,)h(in)o(t)o(errupt)g (allo)q(ca)o(t)o(ion\))0 1565 y(are)j(re)q(sp)q(ect)o(e)q(d)j(b)o(y)c (Card)h(Service)q(s,)h(bu)o(t)g(t)n(hi)q(s)e(call)g(giv)o(e)q(s)h(t)n (h)o(e)h(us)q(er)g(anot)n(h)o(er)f(lev)o(el)g(of)f(con)o(trol.)0 1643 y(Th)o(e)h Fi(Action)f Fj(param)o(et)o(er)g(can)h(h)o(a)o(v)o(e)g (t)n(h)o(e)g(follo)o(win)o(g)e(v)n(alue)q(s:)0 1754 y Fi(ADD)p 69 1754 14 2 v 15 w(MANAGED)p 238 1754 V 14 w(RESOURCE)104 1828 y Fj(Place)19 b(t)n(h)o(e)h(sp)q(eci\014e)q(d)g(re) q(source)h(u)o(n)o(d)o(er)f(Card)f(Service)q(s)h(con)o(trol,)f(so)g(t)n (h)o(a)o(t)g(it)g(m)o(ay)e(b)q(e)i(allo)q(ca)o(t)o(e)q(d)f(b)o(y)h (PCMCIA)104 1885 y(d)o(evice)q(s.)0 1975 y Fi(REMOVE)p 135 1975 V 14 w(MANAGED)p 303 1975 V 15 w(RESOURCE)104 2048 y Fj(Remo)o(v)o(e)12 b(t)n(h)o(e)j(sp)q(eci\014e)q(d)g(re)q (source)h(f)q(rom)11 b(Card)j(Service)q(s)i(con)o(trol.)0 2159 y(A)o(t)11 b(init)o(ializa)o(t)o(ion)d(t)o(im)o(e,)h(Card)i (Service)q(s)h(assu)o(m)o(e)q(s)g(t)n(h)o(a)o(t)f(it)g(can)g(us)q(e)g (all)f(a)o(v)n(aila)o(ble)e(in)o(t)o(errupt)o(s,)k(bu)o(t)g(IO)f(p)q (ort)o(s)h(an)o(d)f(m)o(emory)0 2216 y(regions)j(m)n(ust)f(b)q(e)h (explicit)n(ly)f(en)o(a)o(ble)q(d)h(wit)n(h)f Fi(ADD)p 789 2216 V 15 w(MANAGED)p 958 2216 V 15 w(RESOURCE)p Fj(.)0 2294 y(Th)o(e)h Fi(Resource)e Fj(param)o(et)o(er)i(can)g(h)o(a)o (v)o(e)f(t)n(h)o(e)i(follo)o(win)o(g)c(v)n(alue)q(s:)0 2406 y Fi(RES)p 69 2406 V 15 w(MEMORY)p 216 2406 V 15 w(RANGE)104 2479 y Fj(Sp)q(eci\014e)q(s)k(a)e(m)o(emory)f(ran)o(ge)i (re)q(source,)i(d)o(e)q(scr)q(ib)q(e)q(d)f(b)o(y)f Fi(adj->resource.me) o(mory)o Fj(.)p eop %%Page: 24 24 24 23 bop 0 -84 1950 3 v 0 -100 a Ff(2.)32 b(Card)16 b(Service)q(s)e(su)n(bfu)o(nct)o(ion)e(d)o(e)q(scr)q(ipt)o(ion)o(s)1027 b Fj(24)0 81 y Fi(RES)p 69 81 14 2 v 15 w(IO)p 128 81 V 15 w(RANGE)104 154 y Fj(Sp)q(eci\014e)q(s)15 b(an)e(IO)i(p)q(ort)f (re)q(source,)h(d)o(e)q(scr)q(ib)q(e)q(d)h(b)o(y)d Fi(adj->resource.io) p Fj(.)0 244 y Fi(RES)p 69 244 V 15 w(IRQ)104 318 y Fj(Sp)q(eci\014e)q (s)i(an)e(in)o(t)o(errupt)i(re)q(source,)h(d)o(e)q(scr)q(ib)q(e)q(d)f (b)o(y)e Fi(adj->resource.irq)p Fj(.)0 429 y(Th)o(e)h(follo)o(win)o(g)d (\015ags)j(m)o(ay)e(b)q(e)i(sp)q(eci\014e)q(d)h(in)f Fi(Attributes)p Fj(:)0 541 y Fi(RES)p 69 541 V 15 w(RESERVED)104 614 y Fj(In)o(dica)o(t)o(e)q(s)j(t)n(h)o(a)o(t)f(t)n(h)o(e)h(re)q (source)i(sh)o(ould)d(b)q(e)h(re)q(s)q(erv)o(e)q(d)h(for)f(PCMCIA)f(d)o (evice)q(s)i(t)n(h)o(a)o(t)f(sp)q(eci\014cally)f(reque)q(st)i(it.)26 b(Th)o(e)104 671 y(re)q(source)17 b(will)e(not)g(b)q(e)h(allo)q(ca)o(t) o(e)q(d)f(for)g(a)g(d)o(evice)h(t)n(h)o(a)o(t)g(asks)g(Card)g(Service)q (s)h(for)e(an)o(y)g(a)o(v)n(aila)o(ble)e(lo)q(ca)o(t)o(ion.)22 b(Thi)q(s)15 b(i)q(s)104 727 y(not)f(implem)n(en)o(t)o(e)q(d)d(y)o(et.) 0 839 y(Ret)o(ur)q(n)j(co)q(d)o(e)q(s:)0 950 y Fi(CS)p 47 950 V 15 w(UNSUPPORTED)p 304 950 V 14 w(FUNCTION)104 1024 y Fj(Th)o(e)g(sp)q(eci\014e)q(d)h Fi(Action)e Fj(or)g Fi(Resource)g Fj(i)q(s)g(not)h(sup)o(p)q(ort)o(e)q(d.)0 1114 y Fi(CS)p 47 1114 V 15 w(BAD)p 128 1114 V 15 w(BASE)104 1187 y Fj(Th)o(e)g(sp)q(eci\014e)q(d)h(IO)f(addre)q(ss)i(i)q(s)d(ou)o (t)h(of)g(ran)o(ge.)0 1277 y Fi(CS)p 47 1277 V 15 w(BAD)p 128 1277 V 15 w(SIZE)104 1351 y Fj(Th)o(e)g(sp)q(eci\014e)q(d)h(m)o (emory)c(or)j(IO)g(win)o(do)o(w)f(s)q(ize)h(i)q(s)g(ou)o(t)g(of)f(ran)o (ge.)0 1441 y Fi(CS)p 47 1441 V 15 w(IN)p 106 1441 V 16 w(USE)104 1514 y Fj(Th)o(e)h(sp)q(eci\014e)q(d)h(in)o(t)o(errupt)f (i)q(s)g(curren)o(t)n(ly)h(allo)q(ca)o(t)o(e)q(d)e(b)o(y)h(a)f(Card)h (Service)q(s)i(clien)o(t.)0 1650 y Ff(2.6.4)48 b(Rep)q(ortError)104 1746 y Fc(int)18 b(CardServic)o(es\()o(Re)o(por)o(tEr)o(ro)o(r,)e(char) i(*prefix,)f(int)h(func,)g(int)g(ret\);)0 1865 y Fi(ReportError)11 b Fj(gen)o(era)o(t)o(e)q(s)j(a)f(k)o(er)q(n)o(el)g(error)h(m)o(e)q (ssage)f(giv)o(en)g(a)g(Card)g(Service)q(s)h(fu)o(nct)o(ion)f(co)q(d)o (e)h(an)o(d)f(it)o(s)h(ret)o(ur)q(n)f(co)q(d)o(e,)h(wit)n(h)0 1922 y(an)g(o)o(pt)o(ion)o(al)e(pre\014x)i(str)q(in)o(g.)19 b(F)m(or)13 b(example:)104 2037 y Fc(CardServi)o(ces)o(\(R)o(epo)o(rt)o (Err)o(or,)j("serial_c)o(s")o(,)h(RequestIO)o(,)f(CS_BAD_HAND)o(LE)o (\);)0 2157 y Fj(w)o(ould)d(gen)o(era)o(t)o(e)i(t)n(h)o(e)g(follo)o (win)o(g)c(m)o(e)q(ssage:)104 2264 y Fc(serial_cs)o(:)17 b(RequestI)o(O:)f(Bad)j(handle)0 2375 y Fj(Thi)q(s)13 b(call)g(alw)o(ays)g(su)o(ccee)q(ds.)p eop %%Page: 25 25 25 24 bop 0 -84 1950 3 v 0 -100 a Ff(3.)32 b(Card)16 b(Inform)o(a)o(t)o(ion)c(Stru)o(ct)o(ure)g(De\014nit)o(io)o(ns)1019 b Fj(25)0 81 y Fg(3)66 b(Card)21 b(Inform)n(a)n(t)n(ion)h(Stru)n(ct)n (ure)e(De\014nit)n(ions)0 210 y Fd(3.1)56 b(CISTPL)p 334 210 17 2 v 20 w(DEVICE)0 315 y Fj(Th)o(e)14 b Fi(cistpl)p 219 315 14 2 v 15 w(device)p 366 315 V 14 w(t)g Fj(stru)o(ct)o(ure)i(i) q(s)d(giv)o(en)g(b)o(y:)104 421 y Fc(typedef)k(struct)g(cistpl_dev)o (ic)o(e_t)f({)261 473 y(u_char)194 b(type;)261 526 y(u_char)g(wp;)261 578 y(u_char)g(speed;)261 630 y(u_long)g(size;)104 682 y(})19 b(cistpl_dev)o(ic)o(e_t)o(;)0 827 y Fd(3.2)56 b(CISTPL)p 334 827 17 2 v 20 w(VERS)p 506 827 V 20 w(1)0 933 y Fj(Th)o(e)14 b Fi(cistpl)p 219 933 14 2 v 15 w(vers)p 322 933 V 14 w(1)p 358 933 V 16 w(t)g Fj(stru)o(ct)o(ure)h(i)q(s)f(giv) o(en)f(b)o(y:)104 1039 y Fc(typedef)k(struct)g(cistpl_ver)o(s_)o(1_t)f ({)261 1091 y(u_char)194 b(major;)261 1143 y(u_char)g(minor;)261 1195 y(int)254 b(ns;)261 1247 y(char)234 b(pi[CISTP)o(L_V)o(ER)o(S_1)o (_MA)o(X_)o(PRO)o(D_)o(STR)o(ING)o(S])o([CI)o(ST)o(PL_)o(VER)o(S_)o (1_S)o(TR)o(LEN)o(];)104 1299 y(})19 b(cistpl_ver)o(s_)o(1_t)o(;)0 1445 y Fd(3.3)56 b(CISTPL)p 334 1445 17 2 v 20 w(CONFIG)0 1550 y Fj(Th)o(e)14 b Fi(cistpl)p 219 1550 14 2 v 15 w(config)p 366 1550 V 14 w(t)g Fj(stru)o(ct)o(ure)i(i)q(s)d(giv)o(en)g (b)o(y:)104 1657 y Fc(typedef)k(struct)g(cistpl_con)o(fi)o(g_t)f({)261 1709 y(u_char)194 b(last_idx)o(;)261 1761 y(u_long)g(base;)261 1813 y(u_long)g(rmask[4])o(;)104 1865 y(})19 b(cistpl_con)o(fi)o(g_t)o (;)0 2011 y Fd(3.4)56 b(CISTPL)p 334 2011 17 2 v 20 w(CFT)-5 b(ABLE)p 616 2011 V 21 w(ENTR)g(Y)0 2116 y Fj(Th)o(e)14 b Fi(cistpl)p 219 2116 14 2 v 15 w(cftable)p 388 2116 V 14 w(entry)p 512 2116 V 15 w(t)f Fj(stru)o(ct)o(ure)j(i)q(s)d(giv)o (en)h(b)o(y:)104 2223 y Fc(typedef)j(struct)g(cistpl_cft)o(ab)o(le_)o (en)o(try)o(_t)f({)261 2275 y(u_char)194 b(index;)261 2327 y(u_char)g(Default;)261 2379 y(u_char)g(interfac)o(e;)261 2431 y(u_char)g(features)o(;)261 2483 y(cistpl_po)o(we)o(r_t)36 b(power[4])o(;)261 2535 y(cistpl_ti)o(mi)o(ng_)o(t)17 b(timing;)p eop %%Page: 26 26 26 25 bop 0 -84 1950 3 v 0 -100 a Ff(4.)37 b(Card)16 b(Service)q(s)f(Ev)o(en)o(t)f(Han)o(dlin)o(g)1201 b Fj(26)261 81 y Fc(cistpl_io)o(_t)95 b(io;)261 133 y(cistpl_ir)o(q_)o(t)76 b(irq;)261 185 y(cistpl_me)o(m_)o(t)g(mem;)104 237 y(})19 b(cistpl_cft)o(ab)o(le_)o(en)o(try)o(_t;)0 404 y Fg(4)66 b(Card)21 b(Service)r(s)g(Ev)n(en)n(t)g(Han)n(dlin)o(g)0 524 y Fj(Card)14 b(Service)q(s)h(ev)o(en)o(t)o(s)h(h)o(a)o(v)o(e)d(s)q (ev)o(eral)i(source)q(s:)62 632 y Fb(\017)21 b Fj(Card)14 b(st)o(a)o(t)o(us)g(c)o(h)o(an)o(ge)q(s)h(rep)q(ort)o(e)q(d)h(b)o(y)d (t)n(h)o(e)i(lo)o(w-lev)o(el)d(so)q(c)o(k)o(et)j(dr)q(iv)o(ers.)62 717 y Fb(\017)21 b Fj(Art)o(i\014cial)13 b(ev)o(en)o(t)o(s)i(gen)o(era) o(t)o(e)q(d)g(b)o(y)f(Card)g(Service)q(s)h(it)o(s)q(elf.)62 803 y Fb(\017)21 b Fj(Adv)n(ance)q(d)14 b(P)o(o)o(w)o(er)h(Man)o(agem)o (en)o(t)d(\(APM\))j(ev)o(en)o(t)o(s.)62 888 y Fb(\017)21 b Fj(Ev)o(en)o(t)o(s)15 b(gen)o(era)o(t)o(e)q(d)g(b)o(y)f(ot)n(h)o(er)g (Card)g(Service)q(s)i(clien)o(t)o(s.)0 996 y(So)q(c)o(k)o(et)e(dr)q(iv) o(er)g(ev)o(en)o(t)o(s)i(m)o(ay)c(b)q(e)i(e)q(it)n(h)o(er)h(in)o(t)o (errupt-dr)q(iv)o(en)f(or)g(p)q(olle)q(d.)0 1140 y Fd(4.1)56 b(Ev)n(en)n(t)18 b(h)n(an)n(dler)h(o)n(p)q(era)o(t)n(ions)0 1245 y Fj(Wh)o(en)10 b(Card)g(Service)q(s)h(recognize)q(s)g(t)n(h)o(a)o (t)f(an)g(ev)o(en)o(t)g(h)o(as)g(o)q(ccurre)q(d,)i(it)e(c)o(h)o(ec)o (ks)h(t)n(h)o(e)f(ev)o(en)o(t)h(m)o(ask)d(of)h(eac)o(h)i(clien)o(t)f(t) o(o)g(d)o(et)o(ermin)o(e)0 1302 y(whic)o(h)j(clien)o(t)o(s)h(sh)o(ould) f(rece)q(iv)o(e)i(an)e(ev)o(en)o(t)h(not)o(i\014ca)o(t)o(ion.)j(Wh)o (en)c(a)g(clien)o(t)h(regi)q(st)o(ers)g(wit)n(h)f(Card)h(Service)q(s,)g (it)f(sp)q(eci\014e)q(s)i(an)0 1359 y(ev)o(en)o(t)f(h)o(an)o(dler)g (call)o(bac)o(k)f(fu)o(nct)o(ion.)18 b(Thi)q(s)c(h)o(an)o(dler)g(sh)o (ould)f(h)o(a)o(v)o(e)h(t)n(h)o(e)g(form:)104 1462 y Fc(int)k(\(*event_ha)o(ndl)o(er)o(\)\(e)o(ven)o(t_)o(t)f(event,)g(int)h (priority,)e(event_callb)o(ac)o(k_a)o(rgs)o(_t)g(*args\);)0 1570 y Fj(Th)o(e)g Fi(priority)f Fj(param)o(et)o(er)g(i)q(s)h(s)q(et)h (t)o(o)f(e)q(it)n(h)o(er)i Fi(CS)p 806 1570 14 2 v 15 w(EVENT)p 931 1570 V 14 w(PRI)p 1011 1570 V 16 w(LOW)d Fj(for)h(ordin)o(ary)f(ev)o(en)o(t)o(s,)j(or)e Fi(CS)p 1579 1570 V 15 w(EVENT)p 1704 1570 V 15 w(PRI)p 1785 1570 V 15 w(HIGH)f Fj(for)0 1627 y(ev)o(en)o(t)o(s)f(t)n(h)o(a)o(t)e (require)h(an)f(imm)n(e)q(dia)o(t)o(e)e(re)q(sp)q(ons)q(e.)19 b(Th)o(e)12 b(only)g(high)f(pr)q(ior)q(it)o(y)g(ev)o(en)o(t)h(i)q(s)g Fi(CS)p 1393 1627 V 15 w(EVENT)p 1518 1627 V 15 w(CARD)p 1621 1627 V 15 w(REMOVAL)p Fj(.)e(A)i(clien)o(t)0 1684 y(ev)o(en)o(t)18 b(h)o(an)o(dler)g(sh)o(ould)f(pro)q(ce)q(ss)j(t)n(hi)q (s)d(ev)o(en)o(t)h(as)g(e\016cien)o(t)n(ly)g(as)f(p)q(oss)q(ible)h(so)g (t)n(h)o(a)o(t)f(Card)h(Service)q(s)h(can)f(quic)o(kly)e(not)o(ify)0 1741 y(ot)n(h)o(er)f(clien)o(t)o(s.)0 1819 y(Th)o(e)f Fi(event)p 197 1819 V 15 w(callback)p 388 1819 V 14 w(args)p 490 1819 V 15 w(t)f Fj(stru)o(ct)o(ure)j(i)q(s)e(giv)o(en)f(b)o(y:)104 1917 y Fc(typedef)k(struct)g(event_call)o(ba)o(ck_)o(ar)o(gs_)o(t)f({) 261 1969 y(client_ha)o(nd)o(le_)o(t)173 b(client_hand)o(le)o(;)261 2021 y(void)390 b(*info;)261 2073 y(void)g(*mtdrequest)o(;)261 2125 y(void)g(*buffer;)261 2177 y(void)g(*misc;)261 2229 y(void)g(*client_dat)o(a;)104 2281 y(})19 b(event_call)o(ba)o(ck_)o(ar) o(gs_)o(t;)0 2383 y Fj(Th)o(e)e Fi(client)p 222 2383 V 15 w(handle)e Fj(m)o(em)n(b)q(er)g(i)q(s)h(s)q(et)i(t)o(o)f(t)n(h)o (e)g(h)o(an)o(dle)g(of)f(t)n(h)o(e)i(clien)o(t)e(wh)o(os)q(e)i(so)q(c)o (k)o(et)g(w)o(as)f(re)q(sp)q(ons)q(ible)g(for)f(t)n(h)o(e)i(ev)o(en)o (t.)0 2440 y(Thi)q(s)13 b(i)q(s)h(us)q(eful)g(if)f(a)h(dr)q(iv)o(er)g (i)q(s)f(b)q(ou)o(n)o(d)i(t)o(o)f(s)q(ev)o(eral)g(so)q(c)o(k)o(et)o(s.) 20 b(Th)o(e)15 b Fi(info)e Fj(\014eld)h(i)q(s)f(curren)o(t)n(ly)i(only) f(us)q(e)q(d)g(t)o(o)h(ret)o(ur)q(n)f(an)g(exit)0 2497 y(st)o(a)o(t)o(us)j(f)q(rom)d(a)h(call)h(t)o(o)g Fi(ResetCard)p Fj(.)23 b(Th)o(e)16 b Fi(client)p 844 2497 V 15 w(data)f Fj(\014eld)h(m)o(ay)e(b)q(e)i(us)q(e)q(d)h(b)o(y)f(a)g(dr)q(iv)o(er)g (t)o(o)g(p)q(oin)o(t)g(t)o(o)g(a)g(lo)q(cal)f(d)o(a)o(t)o(a)0 2554 y(stru)o(ct)o(ure)h(asso)q(cia)o(t)o(e)q(d)f(wit)n(h)f(t)n(hi)q(s) f(d)o(evice.)19 b(Th)o(e)c(rem)o(ainin)o(g)d(\014elds)i(are)g(curren)o (t)n(ly)h(u)o(n)n(us)q(e)q(d.)p eop %%Page: 27 27 27 26 bop 0 -84 1950 3 v 0 -100 a Ff(4.)37 b(Card)16 b(Service)q(s)f(Ev)o(en)o(t)f(Han)o(dlin)o(g)1201 b Fj(27)0 81 y Fd(4.2)56 b(Ev)n(en)n(t)18 b(d)o(e)r(scr)q(ipt)n(ions)0 181 y Fi(CS)p 47 181 14 2 v 15 w(EVENT)p 172 181 V 15 w(CARD)p 275 181 V 15 w(INSERTION)104 254 y Fj(Thi)q(s)d(ev)o(en)o(t)h (s)q(ign)o(als)f(t)n(h)o(a)o(t)g(a)h(card)g(h)o(as)f(b)q(een)h(ins)q (ert)o(e)q(d.)25 b(If)15 b(a)g(dr)q(iv)o(er)h(i)q(s)f(b)q(ou)o(n)o(d)h (t)o(o)g(an)f(already)h(o)q(ccupie)q(d)h(so)q(c)o(k)o(et,)104 311 y(Card)d(Service)q(s)h(will)d(s)q(en)o(d)j(t)n(h)o(e)g(dr)q(iv)o (er)f(an)f(art)o(i\014cial)g(ins)q(ert)o(ion)h(ev)o(en)o(t.)0 401 y Fi(CS)p 47 401 V 15 w(EVENT)p 172 401 V 15 w(CARD)p 275 401 V 15 w(REMOVAL)104 475 y Fj(Thi)q(s)g(ev)o(en)o(t)i(s)q(ign)o (als)e(t)n(h)o(a)o(t)h(a)g(card)h(h)o(as)f(b)q(een)h(remo)o(v)o(e)q(d.) 21 b(Thi)q(s)14 b(ev)o(en)o(t)i(sh)o(ould)f(b)q(e)g(h)o(an)o(dle)q(d)g (wit)n(h)g(minim)n(u)o(m)c(d)o(elay)104 531 y(so)j(t)n(h)o(a)o(t)g (Card)g(Service)q(s)h(can)f(not)o(ify)f(all)g(clien)o(t)o(s)h(as)g (quic)o(kly)f(as)h(p)q(oss)q(ible.)0 621 y Fi(CS)p 47 621 V 15 w(EVENT)p 172 621 V 15 w(BATTERY)p 341 621 V 14 w(LOW)104 695 y Fj(Thi)q(s)f(ev)o(en)o(t)i(s)q(ign)o(als)d(a)i(c)o (h)o(an)o(ge)g(of)g(st)o(a)o(t)o(e)g(of)f(t)n(h)o(e)i(\\ba)o(t)n(t)o (ery)g(lo)o(w")d(s)q(ign)o(al.)0 785 y Fi(CS)p 47 785 V 15 w(EVENT)p 172 785 V 15 w(BATTERY)p 341 785 V 14 w(DEAD)104 858 y Fj(Thi)q(s)h(ev)o(en)o(t)i(s)q(ign)o(als)d(a)i(c)o(h)o (an)o(ge)g(of)g(st)o(a)o(t)o(e)g(of)f(t)n(h)o(e)i(\\ba)o(t)n(t)o(ery)g (d)o(ead")f(s)q(ign)o(al.)0 948 y Fi(CS)p 47 948 V 15 w(EVENT)p 172 948 V 15 w(READY)p 297 948 V 15 w(CHANGE)104 1022 y Fj(Thi)q(s)f(ev)o(en)o(t)i(s)q(ign)o(als)d(a)i(c)o(h)o(an)o(ge)g (of)g(st)o(a)o(t)o(e)g(of)f(t)n(h)o(e)i(\\ready")f(s)q(ign)o(al.)0 1112 y Fi(CS)p 47 1112 V 15 w(EVENT)p 172 1112 V 15 w(WRITE)p 297 1112 V 15 w(PROTECT)104 1185 y Fj(Thi)q(s)f(ev)o(en)o(t)i(s)q(ign)o (als)d(a)i(c)o(h)o(an)o(ge)g(of)g(st)o(a)o(t)o(e)g(of)f(t)n(h)o(e)i (\\wr)q(it)o(e)e(prot)o(ect")i(s)q(ign)o(al.)0 1275 y Fi(CS)p 47 1275 V 15 w(EVENT)p 172 1275 V 15 w(REGISTRATION)p 451 1275 V 13 w(COMPLETE)104 1348 y Fj(Thi)q(s)e(ev)o(en)o(t)i(i)q(s)e (s)q(en)o(t)h(t)o(o)g(a)g(dr)q(iv)o(er)g(aft)o(er)g(a)g(su)o(cce)q (ssful)i(call)d(t)o(o)h Fi(RegisterClient)p Fj(.)0 1438 y Fi(CS)p 47 1438 V 15 w(EVENT)p 172 1438 V 15 w(RESET)p 297 1438 V 15 w(REQUEST)104 1512 y Fj(Thi)q(s)i(ev)o(en)o(t)h(i)q(s)f (s)q(en)o(t)h(wh)o(en)g(a)g(clien)o(t)f(calls)h Fi(ResetCard)p Fj(.)24 b(An)17 b(ev)o(en)o(t)g(h)o(an)o(dler)g(can)g(v)o(et)o(o)g(t)n (h)o(e)g(re)q(s)q(et)h(o)o(p)q(era)o(t)o(ion)e(b)o(y)104 1569 y(ret)o(ur)q(nin)o(g)e(f)q(ailure.)0 1659 y Fi(CS)p 47 1659 V 15 w(EVENT)p 172 1659 V 15 w(RESET)p 297 1659 V 15 w(PHYSICAL)104 1732 y Fj(Thi)q(s)f(i)q(s)g(s)q(en)o(t)i(t)o(o)f (all)f(clien)o(t)o(s)h(just)g(b)q(efore)h(a)e(re)q(s)q(et)j(s)q(ign)o (al)c(i)q(s)h(s)q(en)o(t)i(t)o(o)f(a)g(card.)0 1822 y Fi(CS)p 47 1822 V 15 w(EVENT)p 172 1822 V 15 w(CARD)p 275 1822 V 15 w(RESET)104 1895 y Fj(Thi)q(s)9 b(ev)o(en)o(t)i(s)q(ign)o (als)e(t)n(h)o(a)o(t)i(a)e(re)q(s)q(et)j(o)o(p)q(era)o(t)o(ion)e(i)q(s) f(\014ni)q(sh)o(e)q(d.)17 b(Th)o(e)11 b(su)o(cce)q(ss)i(or)d(f)q (ailure)f(of)g(t)n(h)o(e)i(re)q(s)q(et)h(can)e(b)q(e)h(d)o(et)o(ermin)o (e)q(d)104 1952 y(us)q(in)o(g)i Fi(GetStatus)p Fj(.)0 2042 y Fi(CS)p 47 2042 V 15 w(EVENT)p 172 2042 V 15 w(RESET)p 297 2042 V 15 w(COMPLETE)104 2115 y Fj(Thi)q(s)g(ev)o(en)o(t)i(i)q(s)e (s)q(en)o(t)h(t)o(o)g(a)g(clien)o(t)g(t)n(h)o(a)o(t)g(h)o(as)g(calle)q (d)f Fi(ResetCard)f Fj(t)o(o)j(s)q(ign)o(al)d(t)n(h)o(e)j(en)o(d)f(of)f (re)q(s)q(et)j(pro)q(ce)q(ss)q(in)o(g.)0 2205 y Fi(CS)p 47 2205 V 15 w(EVENT)p 172 2205 V 15 w(PM)p 231 2205 V 15 w(SUSPEND)104 2279 y Fj(Thi)q(s)c(ev)o(en)o(t)i(s)q(ign)o(als)e(t) n(h)o(a)o(t)h(Card)g(Service)q(s)h(h)o(as)f(rece)q(iv)o(e)q(d)i(e)q(it) n(h)o(er)f(a)e(us)q(er)i(init)o(ia)o(t)o(e)q(d)e(or)h(APM)g(susp)q(en)o (d)h(reque)q(st.)20 b(An)104 2336 y(ev)o(en)o(t)14 b(h)o(an)o(dler)g (can)g(v)o(et)o(o)h(t)n(h)o(e)f(susp)q(en)o(d)h(b)o(y)f(ret)o(ur)q(nin) o(g)g(f)q(ailure.)0 2426 y Fi(CS)p 47 2426 V 15 w(EVENT)p 172 2426 V 15 w(PM)p 231 2426 V 15 w(RESUME)104 2499 y Fj(Thi)q(s)f(s)q(ign)o(als)g(t)n(h)o(a)o(t)h(t)n(h)o(e)h(syst)o(em)e (i)q(s)g(bac)o(k)h(on)g(lin)o(e)f(aft)o(er)h(a)g(susp)q(en)o(d/re)q(su) o(m)o(e)h(cycle.)p eop %%Page: 28 28 28 27 bop 0 -84 1950 3 v 0 -100 a Ff(5.)37 b(Dr)q(iv)o(er)14 b(Service)q(s)h(in)o(t)o(erface)1315 b Fj(28)0 81 y Fg(5)66 b(Dr)q(iv)n(er)21 b(Service)r(s)g(in)n(t)n(erf)q(ace)0 200 y Fj(Dr)q(iv)o(er)13 b(Service)q(s)h(pro)o(vid)o(e)q(s)f(a)g(link)f (b)q(et)o(w)o(een)h(Card)g(Service)q(s)h(clien)o(t)f(dr)q(iv)o(ers)g (an)o(d)g(us)q(er)h(mo)q(d)o(e)e(u)o(t)o(ilit)o(ie)q(s)g(lik)o(e)g(t)n (h)o(e)h Fi(cardmgr)0 257 y Fj(d)o(aemon.)21 b(It)15 b(i)q(s)f(a)h(sort)h(of)e(Card)h(Service)q(s)i(\\sup)q(er-clien)o(t".) 22 b(Dr)q(iv)o(er)15 b(Service)q(s)h(us)q(e)q(s)h(t)n(h)o(e)f Fi(BindDevice)d Fj(fu)o(nct)o(ion)i(t)o(o)g(link)0 314 y(ot)n(h)o(er)h(clien)o(t)g(dr)q(iv)o(ers)g(wit)n(h)f(t)n(h)o(e)q(ir)h (corre)q(sp)q(on)o(din)o(g)h(PCMCIA)e(cards.)24 b(Unlik)o(e)15 b(ot)n(h)o(er)h(clien)o(t)o(s,)g(Dr)q(iv)o(er)f(Service)q(s)i(rem)o (ains)0 371 y(p)q(erm)o(an)o(en)o(t)n(ly)c(b)q(ou)o(n)o(d)h(t)o(o)g (all)f(so)q(c)o(k)o(et)o(s)i(as)f(cards)h(are)f(ins)q(ert)o(e)q(d)i(an) o(d)d(remo)o(v)o(e)q(d.)0 516 y Fd(5.1)56 b(In)n(t)n(erf)q(ace)18 b(t)o(o)h(ot)n(h)n(er)f(clien)n(t)g(dr)q(iv)n(ers)0 621 y Fj(Dr)q(iv)o(er)f(Service)q(s)h(k)o(eeps)h(trac)o(k)e(of)g(all)f (clien)o(t)h(dr)q(iv)o(ers)g(t)n(h)o(a)o(t)h(are)f(inst)o(alle)q(d)g (an)o(d)f(ready)i(t)o(o)g(a)o(t)n(t)o(ac)o(h)f(t)o(o)g(a)g(so)q(c)o(k)o (et.)29 b(Clien)o(t)0 678 y(dr)q(iv)o(ers)16 b(n)o(ee)q(d)g(t)o(o)f(h)o (a)o(v)o(e)g(en)o(try)h(p)q(oin)o(t)o(s)f(for)g(crea)o(t)o(in)o(g)h(an) o(d)f(d)o(elet)o(in)o(g)g(d)o(evice)h(\\inst)o(ance)q(s",)g(wh)o(ere)g (on)o(e)g(d)o(evice)g(inst)o(ance)g(i)q(s)0 735 y(ev)o(eryt)n(hin)o(g)f (n)o(ee)q(d)o(e)q(d)h(t)o(o)e(m)o(an)o(age)e(on)o(e)i(PCMCIA)g(card.)0 813 y(Eac)o(h)g(clien)o(t)g(dr)q(iv)o(er)f(i)q(s)h(id)o(en)o(t)o (i\014e)q(d)g(b)o(y)f(a)h(u)o(nique)g(16-c)o(h)o(aract)o(er)g(t)o(ag)f (t)n(h)o(a)o(t)h(h)o(as)g(t)n(h)o(e)g(sp)q(ecial)g(t)o(yp)q(e)f Fi(dev)p 1611 813 14 2 v 15 w(info)p 1714 813 V 15 w(t)p Fj(,)g(d)o(e\014n)o(e)q(d)i(in)0 870 y Fi(cs)p 47 870 V 15 w(types.h)p Fj(.)i(Eac)o(h)d(d)o(evice)h(inst)o(ance)f(i)q(s)g(d)o (e)q(scr)q(ib)q(e)q(d)h(b)o(y)f(a)f Fi(dev)p 1019 870 V 15 w(link)p 1122 870 V 15 w(t)h Fj(stru)o(ct)o(ure.)0 1006 y Ff(5.1.1)48 b(Th)o(e)15 b Fi(dev)p 311 1006 V 15 w(link)p 414 1006 V 15 w(t)h Ff(stru)o(ct)o(ure)0 1111 y Fj(Th)o(e)e Fi(dev)p 153 1111 V 15 w(link)p 256 1111 V 15 w(t)g Fj(d)o(a)o(t)o(a)g(stru)o(ct)o(ure)h(i)q(s)f(giv)o(en)f (b)o(y:)104 1218 y Fc(#include)j("ds.h")104 1322 y(typedef)h(struct)g (dev_link_t)f({)261 1374 y(char)390 b(dev_name[8])o(;)261 1426 y(u_char)350 b(major,)18 b(minor;)261 1478 y(u_long)350 b(state;)261 1530 y(u_long)g(open;)261 1582 y(struct)17 b(wait_queue)133 b(*pending)261 1634 y(struct)17 b(timer_list)133 b(release)261 1687 y(client_ha)o(nd)o(le_)o(t)173 b(handle;)261 1739 y(io_req_t)310 b(io;)261 1791 y(irq_req_t)290 b(irq;)261 1843 y(config_re)o(q_)o(t)232 b(conf;)261 1895 y(window_ha)o(nd)o(le_)o (t)173 b(win;)261 1947 y(void)390 b(*priv;)261 1999 y(struct)17 b(dev_link_t)133 b(*next;)104 2051 y(})19 b(dev_link_t)o(;)0 2162 y Fj(Th)o(e)g Fi(dev)p 158 2162 V 15 w(name)f Fj(\014eld)h(sh)o (ould)g(b)q(e)g(\014lle)q(d)g(in)f(b)o(y)h(t)n(h)o(e)h(dr)q(iv)o(er)f (wit)n(h)g(a)f(d)o(evice)i(\014le)f(n)o(am)o(e)f(for)h(acce)q(ss)q(in)o (g)h(t)n(hi)q(s)f(d)o(evice,)i(if)0 2219 y(ap)o(pro)o(pr)q(ia)o(t)o(e.) i(F)m(or)15 b(example,)f(t)n(h)o(e)i Fi(serial)p 699 2219 V 14 w(cs)g Fj(dr)q(iv)o(er)f(us)q(e)q(s)i(n)o(am)o(e)q(s)e(lik)o (e)g(\\)p Fi(cua1)p Fj(".)22 b(Th)o(e)16 b Fi(major)f Fj(an)o(d)g Fi(minor)f Fj(\014elds)j(giv)o(e)0 2276 y(m)o(a)r(jor)c(an) o(d)i(minor)e(d)o(evice)j(n)n(u)o(m)n(b)q(ers)f(for)g(acce)q(ss)q(in)o (g)i(t)n(hi)q(s)e(d)o(evice.)22 b(Dr)q(iv)o(er)15 b(Service)q(s)h (relays)f(t)n(h)o(e)q(s)q(e)i(\014elds)e(t)o(o)h(us)q(er)g(mo)q(d)o(e)0 2333 y(programs)d(via)g(t)n(h)o(e)h Fi(DS)p 366 2333 V 16 w(GET)p 448 2333 V 15 w(DEVICE)p 595 2333 V 14 w(INFO)f Fj(io)q(ct)n(l.)0 2411 y(Th)o(e)h Fi(state)f Fj(\014eld)h(sh)o(ould)g (b)q(e)g(us)q(e)q(d)g(t)o(o)g(k)o(eep)h(trac)o(k)f(of)f(t)n(h)o(e)i (curren)o(t)g(d)o(evice)g(st)o(a)o(t)o(e.)k(Th)o(e)14 b(follo)o(win)o(g)d(\015ags)j(are)g(d)o(e\014n)o(e)q(d:)0 2531 y Fi(DEV)p 69 2531 V 15 w(PRESENT)p eop %%Page: 29 29 29 28 bop 0 -84 1950 3 v 0 -100 a Ff(5.)32 b(Dr)q(iv)o(er)14 b(Service)q(s)g(in)o(t)o(erf)q(ace)1320 b Fj(29)104 81 y(In)o(dica)o(t)o(e)q(s)15 b(t)n(h)o(a)o(t)g(t)n(h)o(e)g(card)h(i)q(s)e (pre)q(s)q(en)o(t.)22 b(Thi)q(s)15 b(bit)f(sh)o(ould)h(b)q(e)g(s)q(et)g (an)o(d)g(cleare)q(d)h(b)o(y)f(t)n(h)o(e)g(dr)q(iv)o(er's)g(ev)o(en)o (t)h(h)o(an)o(dler)e(in)104 138 y(re)q(sp)q(ons)q(e)i(t)o(o)e(card)g (ins)q(ert)o(ion)g(an)o(d)f(remo)o(v)n(al)f(ev)o(en)o(t)o(s.)0 224 y Fi(DEV)p 69 224 14 2 v 15 w(CONFIG)104 295 y Fj(In)o(dica)o(t)o (e)q(s)i(t)n(h)o(a)o(t)g(t)n(h)o(e)h(card)f(i)q(s)f(con\014gure)q(d)i (for)f(us)q(e.)0 382 y Fi(DEV)p 69 382 V 15 w(CONFIG)p 216 382 V 15 w(PENDING)104 453 y Fj(In)o(dica)o(t)o(e)q(s)g(t)n(h)o(a)o (t)g(con\014gura)o(t)o(ion)f(i)q(s)h(in)f(progre)q(ss.)0 539 y Fi(DEV)p 69 539 V 15 w(SUSPEND)104 611 y Fj(In)o(dica)o(t)o(e)q (s)h(t)n(h)o(a)o(t)g(t)n(h)o(e)h(card)f(i)q(s)f(susp)q(en)o(d)o(e)q(d.) 0 697 y Fi(DEV)p 69 697 V 15 w(BUSY)104 769 y Fj(In)o(dica)o(t)o(e)q(s) i(t)n(h)o(a)o(t)g(an)g(IO)h(o)o(p)q(era)o(t)o(ion)e(i)q(s)g(in)h (progre)q(ss.)24 b(Thi)q(s)14 b(bit)h(m)o(ay)e(b)q(e)i(us)q(e)q(d)h(as) f(an)g(in)o(t)o(erlo)q(c)o(k)g(t)o(o)h(prev)o(en)o(t)g(acce)q(ss)104 826 y(con\015ict)o(s.)0 912 y Fi(DEV)p 69 912 V 15 w(STALE)p 194 912 V 15 w(CONFIG)104 983 y Fj(F)m(or)9 b(som)o(e)g(dr)q(iv)o(ers,) i(wh)o(en)f(a)g(ru)o(nnin)o(g)h(card)f(i)q(s)f(eject)o(e)q(d,)j(t)n(h)o (e)f(so)q(c)o(k)o(et)g(sh)o(ould)e(not)h(b)q(e)g(u)o(ncon\014gure)q(d)i (u)o(n)o(t)o(il)d(an)o(y)h(d)o(evice)q(s)104 1040 y(corre)q(sp)q(on)o (din)o(g)15 b(t)o(o)f(t)n(hi)q(s)f(card)h(are)g(clos)q(e)q(d.)19 b(Thi)q(s)13 b(\015ag)g(in)o(dica)o(t)o(e)q(s)h(t)n(h)o(a)o(t)g(t)n(h)o (e)g(so)q(c)o(k)o(et)g(sh)o(ould)g(b)q(e)f(u)o(ncon\014gure)q(d)j(wh)o (en)104 1097 y(t)n(h)o(e)e(d)o(evice)h(i)q(s)e(clos)q(e)q(d.)0 1183 y Fi(DEV)p 69 1183 V 15 w(STALE)p 194 1183 V 15 w(LINK)104 1255 y Fj(A)e(dr)q(iv)o(er)h(inst)o(ance)g(sh)o(ould)g(not)f (b)q(e)g(d)o(elet)o(e)q(d)i(u)o(n)o(t)o(il)e(all)f(it)o(s)i(PCMCIA)g (re)q(source)q(s)i(are)e(releas)q(e)q(d.)19 b(Thi)q(s)11 b(\015ag)g(in)o(dica)o(t)o(e)q(s)104 1311 y(t)n(h)o(a)o(t)j(t)n(hi)q(s) g(dr)q(iv)o(er)g(inst)o(ance)g(sh)o(ould)g(b)q(e)g(f)q(ree)q(d)g(as)g (so)q(on)g(as)g(t)n(h)o(e)h(so)q(c)o(k)o(et)g(i)q(s)e(u)o(ncon\014gure) q(d.)0 1422 y(Th)o(e)g Fi(open)f Fj(\014eld)h(i)q(s)g(a)f(usage)h(cou)o (n)o(t)h(for)e(t)n(hi)q(s)h(d)o(evice.)19 b(Th)o(e)13 b(d)o(evice)h(sh)o(ould)e(only)h(b)q(e)f(f)q(ree)q(d)i(wh)o(en)f(t)n(h) o(e)h(o)o(p)q(en)f(cou)o(n)o(t)g(i)q(s)f(zero.)0 1479 y(Th)o(e)i Fi(pending)f Fj(\014eld)h(can)g(b)q(e)g(us)q(e)q(d)g(t)o(o)g (m)o(an)o(age)f(a)g(queue)i(of)e(pro)q(ce)q(ss)q(e)q(s)k(w)o(ait)o(in)o (g)c(t)o(o)h(us)q(e)h(t)n(h)o(e)f(d)o(evice.)0 1557 y(Th)o(e)i Fi(release)e Fj(\014eld)i(i)q(s)f(us)q(e)q(d)h(t)o(o)g(sc)o(h)o(e)q(d)o (ule)h(d)o(evice)g(sh)n(u)o(tdo)o(wn)f(pro)q(ce)q(ss)q(in)o(g)i(wh)o (en)e(a)f(card)h(i)q(s)f(eject)o(e)q(d.)25 b(A)16 b(card)g(remo)o(v)n (al)0 1614 y(ev)o(en)o(t)h(n)o(ee)q(ds)g(t)o(o)g(b)q(e)f(h)o(an)o(dle)q (d)g(a)o(t)g(high)g(pr)q(ior)q(it)o(y)m(,)e(so)i(a)g(dr)q(iv)o(er's)h (ev)o(en)o(t)f(h)o(an)o(dler)h(will)d(t)o(ypically)h(d)o(eal)i(wit)n(h) f(an)g(eject)h(b)o(y)0 1670 y(re)q(s)q(et)n(t)o(in)o(g)f(t)n(h)o(e)f Fi(DEV)p 308 1670 V 15 w(PRESENT)e Fj(bit)h(in)g(t)n(h)o(e)h(d)o(evice) h(st)o(a)o(t)o(e,)e(t)n(h)o(en)h(sc)o(h)o(e)q(d)o(ulin)o(g)g(t)n(h)o(e) g(sh)n(u)o(tdo)o(wn)h(pro)q(ce)q(ss)q(in)o(g)g(t)o(o)e(ru)o(n)i(a)o(t)e (a)g(la)o(t)o(er)0 1727 y(t)o(im)o(e.)0 1805 y(Th)o(e)19 b Fi(handle)p Fj(,)f Fi(io)p Fj(,)i Fi(irq)p Fj(,)f Fi(conf)p Fj(,)f(an)o(d)h Fi(win)f Fj(\014elds)h(compr)q(i)q(s)q(e)f(all)f(t)n(h) o(e)j(norm)o(al)d(PCMCIA)i(d)o(a)o(t)o(a)g(stru)o(ct)o(ure)q(s)i(n)o (ee)q(d)o(e)q(d)g(t)o(o)0 1862 y(con\014gure)15 b(on)o(e)f(PCMCIA)g(IO) g(card.)0 1940 y(Th)o(e)e Fi(priv)f Fj(\014eld)h(can)f(b)q(e)h(us)q(e)q (d)h(for)e(an)o(y)g(sort)i(of)e(pr)q(iv)n(a)o(t)o(e)g(d)o(a)o(t)o(a)g (stru)o(ct)o(ure)j(n)o(ee)q(d)o(e)q(d)f(t)o(o)f(m)o(an)o(age)e(t)n(h)o (e)j(d)o(evice.)18 b(Th)o(e)12 b Fi(next)f Fj(\014eld)0 1997 y(can)j(b)q(e)g(us)q(e)q(d)h(t)o(o)f(build)f(link)o(e)q(d)g(li)q (st)o(s)h(of)g Fi(dev)p 711 1997 V 15 w(link)p 814 1997 V 15 w(t)f Fj(stru)o(ct)o(ure)q(s,)j(for)e(dr)q(iv)o(ers)g(t)n(h)o(a)o (t)g(can)g(h)o(an)o(dle)g(m)n(ul)o(t)o(iple)e(inst)o(ance)q(s.)0 2132 y Ff(5.1.2)48 b(regi)q(st)o(er)p 309 2132 15 2 v 14 w(p)q(cmcia)p 470 2132 V 17 w(dr)q(iv)o(er)104 2226 y Fc(int)18 b(register_p)o(cmc)o(ia)o(_dr)o(ive)o(r\()o(dev)o(_i)o(nfo) o(_t)e(*dev_info,)633 2278 y(dev_link_t)g(*\(*attach\))o(\(v)o(oid)o (\),)633 2330 y(void)i(\(*detach\)\(d)o(ev)o(_li)o(nk)o(_t)e(*\)\);)0 2440 y Fi(register)p 179 2440 14 2 v 14 w(pcmcia)p 325 2440 V 14 w(driver)f Fj(informs)f(Dr)q(iv)o(er)h(Service)q(s)i(t)n(h)o (a)o(t)f(a)f(clien)o(t)h(dr)q(iv)o(er)f(i)q(s)g(pre)q(s)q(en)o(t)i(an)o (d)f(ready)g(t)o(o)g(b)q(e)g(b)q(ou)o(n)o(d)g(t)o(o)0 2497 y(so)q(c)o(k)o(et)o(s.)21 b(Wh)o(en)14 b(Dr)q(iv)o(er)g(Service)q (s)i(rece)q(iv)o(e)q(s)g(a)e Fi(DS)p 805 2497 V 15 w(BIND)p 908 2497 V 15 w(REQUEST)e Fj(io)q(ct)n(l)i(t)n(h)o(a)o(t)h(m)o(a)o(t)o (c)o(h)o(e)q(s)e(t)n(hi)q(s)i(dr)q(iv)o(er's)f Fi(dev)p 1721 2497 V 15 w(info)f Fj(str)q(in)o(g,)0 2554 y(it)f(will)f(call)h(t) n(h)o(e)h(dr)q(iv)o(er's)f Fi(attach\(\))f Fj(en)o(try)i(p)q(oin)o(t.)k (Wh)o(en)c(it)f(get)o(s)h(a)g Fi(DS)p 1147 2554 V 15 w(UNBIND)p 1294 2554 V 14 w(REQUEST)e Fj(io)q(ct)n(l,)h(it)g(will)f (call)h Fi(detach\(\))p Fj(.)p eop %%Page: 30 30 30 29 bop 0 -84 1950 3 v 0 -100 a Ff(5.)37 b(Dr)q(iv)o(er)14 b(Service)q(s)h(in)o(t)o(erface)1315 b Fj(30)0 81 y Ff(5.1.3)48 b(u)o(nregi)q(st)o(er)p 361 81 15 2 v 14 w(p)q(cmcia)p 523 81 V 16 w(dr)q(iv)o(er)104 176 y Fc(int)18 b(unregister)o(_pc)o(mc) o(ia_)o(dri)o(ve)o(r\(d)o(ev)o(_in)o(fo)o(_t)e(*dev_info\))o(;)0 296 y Fj(Thi)q(s)d(informs)f(Dr)q(iv)o(er)i(Service)q(s)i(t)n(h)o(a)o (t)e(it)f(sh)o(ould)h(no)f(lon)o(ger)i(bin)o(d)e(so)q(c)o(k)o(et)o(s)j (t)o(o)e(t)n(h)o(e)g(sp)q(eci\014e)q(d)h(clien)o(t)f(dr)q(iv)o(er.)0 442 y Fd(5.2)56 b(In)n(t)n(erf)q(ace)18 b(t)o(o)h(us)q(er)g(mo)r(d)o(e) d(PCMCIA)k(u)o(t)n(ilit)n(ie)r(s)0 547 y Fj(Dr)q(iv)o(er)c(Service)q(s) i(crea)o(t)o(e)q(s)h(a)e(ps)q(eudo-d)o(evice)h(for)e(comm)n(u)o(nica)o (t)o(in)o(g)e(wit)n(h)j(us)q(er)g(mo)q(d)o(e)f(PCMCIA)h(u)o(t)o(ilit)o (ie)q(s.)26 b(Th)o(e)17 b(m)o(a)r(jor)0 603 y(n)n(u)o(m)n(b)q(er)12 b(of)g(t)n(h)o(e)i(d)o(evice)f(i)q(s)g(c)o(h)o(os)q(en)g(dyn)o (amically)m(,)c(an)o(d)k(PCMCIA)g(u)o(t)o(ilit)o(ie)q(s)f(sh)o(ould)g (read)i Fi(/proc/devices)c Fj(t)o(o)j(d)o(et)o(ermin)o(e)0 660 y(it.)18 b(Minor)13 b(d)o(evice)i(n)n(u)o(m)n(b)q(ers)f(corre)q(sp) q(on)o(d)i(t)o(o)e(so)q(c)o(k)o(et)g(n)n(u)o(m)n(b)q(ers,)g(st)o(art)o (in)o(g)g(wit)n(h)g(0.)0 738 y(Only)g(on)o(e)h(pro)q(ce)q(ss)i(i)q(s)d (allo)o(w)o(e)q(d)g(t)o(o)g(o)o(p)q(en)h(a)f(so)q(c)o(k)o(et)i(for)e (read/wr)q(it)o(e)h(acce)q(ss.)23 b(Ot)n(h)o(er)16 b(pro)q(ce)q(ss)q(e) q(s)h(can)e(o)o(p)q(en)g(t)n(h)o(e)g(so)q(c)o(k)o(et)g(in)0 795 y(read-only)c(mo)q(d)o(e.)16 b(A)11 b(read-only)g(conn)o(ect)o(ion) g(t)o(o)h(Dr)q(iv)o(er)e(Service)q(s)j(can)e(p)q(erform)e(a)i(su)n(bs)q (et)i(of)d Fi(ioctl)g Fj(calls.)16 b(A)11 b(read/wr)q(it)o(e)0 852 y(conn)o(ect)o(ion)j(can)g(i)q(ssue)h(all)e Fi(ioctl)f Fj(calls,)h(an)o(d)h(can)g(also)f(rece)q(iv)o(e)j(Card)e(Service)q(s)h (ev)o(en)o(t)f(not)o(i\014ca)o(t)o(ions.)0 988 y Ff(5.2.1)48 b(Card)16 b(Service)q(s)e(ev)o(en)o(t)g(not)o(i\014ca)o(t)o(io)o(ns)0 1093 y Fj(Dr)q(iv)o(er)h(Service)q(s)i(implem)o(en)o(t)o(s)c Fi(read\(\))i Fj(an)o(d)g Fi(select\(\))f Fj(fu)o(nct)o(ions)i(for)f (ev)o(en)o(t)h(not)o(i\014ca)o(t)o(ion.)22 b(Readin)o(g)15 b(f)q(rom)f(a)h(p)q(cmcia)0 1150 y(d)o(evice)e(ret)o(ur)q(ns)g(an)f(u)o (ns)q(ign)o(e)q(d)h(lon)o(g)e(v)n(alue)h(con)o(t)o(ainin)o(g)f(all)g(t) n(h)o(e)i(ev)o(en)o(t)o(s)h(rece)q(iv)o(e)q(d)f(b)o(y)f(Dr)q(iv)o(er)g (Service)q(s)i(s)q(ince)f(t)n(h)o(e)g(previous)0 1207 y Fi(read\(\))p Fj(.)24 b(If)16 b(no)g(ev)o(en)o(t)o(s)i(h)o(a)o(v)o(e) e(b)q(een)h(rece)q(iv)o(e)q(d,)h(t)n(h)o(e)f(call)f(will)f(blo)q(c)o(k) g(u)o(n)o(t)o(il)h(t)n(h)o(e)h(n)o(ext)g(ev)o(en)o(t.)26 b(A)16 b Fi(select\(\))f Fj(call)g(can)i(b)q(e)0 1264 y(us)q(e)q(d)e(t)o(o)f(monit)o(or)e(s)q(ev)o(eral)j(so)q(c)o(k)o(et)o (s)g(for)f(n)o(ew)g(ev)o(en)o(t)o(s.)0 1342 y(Th)o(e)d(follo)o(win)o(g) e(ev)o(en)o(t)o(s)j(are)g(monit)o(ore)q(d)e(b)o(y)h(Dr)q(iv)o(er)g (Service)q(s:)18 b Fi(CS)p 1041 1342 14 2 v 15 w(EVENT)p 1166 1342 V 15 w(CARD)p 1269 1342 V 14 w(INSERTION)p Fj(,)9 b Fi(CS)p 1546 1342 V 15 w(EVENT)p 1671 1342 V 15 w(CARD)p 1774 1342 V 15 w(REMOVAL)p Fj(,)0 1399 y Fi(CS)p 47 1399 V 15 w(EVENT)p 172 1399 V 15 w(RESET)p 297 1399 V 15 w(PHYSICAL)p Fj(,)i Fi(CS)p 555 1399 V 16 w(EVENT)p 681 1399 V 14 w(CARD)p 783 1399 V 15 w(RESET)p Fj(,)h(an)o(d)i Fi(CS)p 1056 1399 V 15 w(EVENT)p 1181 1399 V 15 w(RESET)p 1306 1399 V 15 w(COMPLETE)p Fj(.)0 1535 y Ff(5.2.2)48 b Fi(ioctl)15 b Ff(d)o(e)q(scr)q(ipt)o(i)o(ons)0 1640 y Fj(Most)g(Dr)q(iv)o(er)e(Service)q(s)j Fi(ioctl)d Fj(o)o(p)q(era)o(t)o(ions)g(direct)n(ly)h(m)o(ap)f(t)o(o)h(Card)g (Service)q(s)h(fu)o(nct)o(ions.)k(An)14 b(io)q(ct)n(l)f(call)g(h)o(as)h (t)n(h)o(e)h(form:)104 1755 y Fc(int)j(ioctl\(int)e(fd,)j(int)f(cmd,)g (ds_ioctl_a)o(rg_)o(t)f(*arg\);)0 1874 y Fj(Th)o(e)d(ds)p 125 1874 13 2 v 16 w(io)q(ct)n(l)p 219 1874 V 14 w(arg)p 291 1874 V 15 w(t)g(stru)o(ct)o(ure)i(i)q(s)d(giv)o(en)h(b)o(y:)104 1981 y Fc(typedef)j(union)g(ds_ioctl_ar)o(g_)o(t)g({)261 2033 y(servinfo_)o(t)115 b(servinfo)o(;)261 2085 y(adjust_t)154 b(adjust;)261 2137 y(config_t)g(config;)261 2189 y(tuple_t)174 b(tuple;)261 2241 y(tuple_par)o(se)o(_t)56 b(tuple_pa)o(rse)o(;)261 2293 y(client_re)o(q_)o(t)76 b(client_r)o(eq;)261 2345 y(status_t)154 b(status;)261 2397 y(conf_reg_)o(t)115 b(conf_reg)o(;)261 2449 y(bind_info)o(_t)95 b(bind_inf)o(o;)261 2502 y(cisinfo_t)134 b(cisinfo;)104 2554 y(})19 b(ds_ioctl_a)o(rg)o (_t;)p eop %%Page: 31 31 31 30 bop 0 -84 1950 3 v 0 -100 a Ff(5.)32 b(Dr)q(iv)o(er)14 b(Service)q(s)g(in)o(t)o(erf)q(ace)1320 b Fj(31)0 81 y(Th)o(e)14 b(follo)o(win)o(g)d Fi(ioctl)i Fj(comm)o(an)o(ds)f(execu)o (t)o(e)k(t)n(h)o(e)e(corre)q(sp)q(on)o(din)o(g)h(Card)f(Service)q(s)i (fu)o(nct)o(ion:)0 187 y Fi(DS)p 47 187 14 2 v 15 w(GET)p 128 187 V 15 w(CARD)p 231 187 V 15 w(SERVICES)p 422 187 V 14 w(INFO)104 260 y Fj(Calls)d Fi(CardServices\(Get)o(CardS)o(ervic)o (esInf)o(o,)19 b(...,)i(&arg->servinfo\))p Fj(.)0 347 y Fi(DS)p 47 347 V 15 w(ADJUST)p 194 347 V 15 w(RESOURCE)p 385 347 V 14 w(INFO)104 419 y Fj(Calls)13 b Fi(CardServices\(Adj)o (ustRe)o(sourc)o(eInfo)o(,)19 b(...,)i(&arg->adjust\))p Fj(.)0 507 y Fi(DS)p 47 507 V 15 w(GET)p 128 507 V 15 w(CONFIGURATION)p 429 507 V 13 w(INFO)104 579 y Fj(Calls)13 b Fi(CardServices\(Get)o(Confi)o(gurat)o(ionIn)o(fo,)19 b(...,)i(&arg->config\))p Fj(.)0 667 y Fi(DS)p 47 667 V 15 w(GET)p 128 667 V 15 w(FIRST)p 253 667 V 15 w(TUPLE)104 739 y Fj(Calls)13 b Fi(CardServices\(Get)o(First)o(Tuple)o(,)19 b(...,)i(&arg->tuple\))p Fj(.)0 827 y Fi(DS)p 47 827 V 15 w(GET)p 128 827 V 15 w(NEXT)p 231 827 V 15 w(TUPLE)104 899 y Fj(Calls)13 b Fi(CardServices\(Get)o(NextT)o(uple,)18 b(...,)j(&arg->tuple\))p Fj(.)0 986 y Fi(DS)p 47 986 V 15 w(GET)p 128 986 V 15 w(TUPLE)p 253 986 V 15 w(DATA)104 1059 y Fj(Calls)15 b Fi(CardServices\(GetNex)o(tTupl)o(e,)k(...,)i (&arg->tuple)p 1153 1059 V 13 w(parse.tuple\))p Fj(.)j(Th)o(e)16 b(t)o(uple)g(d)o(a)o(t)o(a)h(i)q(s)f(ret)o(ur)q(n)o(e)q(d)104 1115 y(in)d Fi(arg->tuple)p 375 1115 V 14 w(parse.data)p Fj(.)0 1203 y Fi(DS)p 47 1203 V 15 w(PARSE)p 172 1203 V 15 w(TUPLE)104 1275 y Fj(Calls)g Fi(CardServices\(Par)o(seTup)o(le,) 19 b(...,)i(&arg->tuple)p 1107 1275 V 13 w(parse.tuple,)e(&arg->tuple)p 1645 1275 V 14 w(parse.parse\))p Fj(.)0 1363 y Fi(DS)p 47 1363 V 15 w(RESET)p 172 1363 V 15 w(CARD)104 1435 y Fj(Calls)13 b Fi(CardServices\(Res)o(etCar)o(d,)19 b(...\))p Fj(.)0 1523 y Fi(DS)p 47 1523 V 15 w(GET)p 128 1523 V 15 w(STATUS)104 1595 y Fj(Calls)13 b Fi(CardServices\(Get)o (Statu)o(s,)19 b(...,)i(&arg->status\))p Fj(.)0 1682 y Fi(DS)p 47 1682 V 15 w(ACCESS)p 194 1682 V 15 w(CONFIGURATION)p 495 1682 V 13 w(REGISTER)104 1755 y Fj(Calls)13 b Fi(CardServices\(Acc) o(essCo)o(nfigu)o(ratio)o(nRegi)o(ster,)18 b(...,)j(&arg->conf)p 1455 1755 V 14 w(reg\))p Fj(.)0 1842 y Fi(DS)p 47 1842 V 15 w(VALIDATE)p 238 1842 V 14 w(CIS)104 1914 y Fj(Calls)13 b Fi(CardServices\(Val)o(idate)o(CIS,)18 b(...,)j(&arg->cisinfo\))p Fj(.)0 2002 y Fi(DS)p 47 2002 V 15 w(SUSPEND)p 216 2002 V 15 w(CARD)104 2074 y Fj(Calls)13 b Fi(CardServices\(Sus)o(pendC)o (ard,)18 b(...\))p Fj(.)0 2162 y Fi(DS)p 47 2162 V 15 w(RESUME)p 194 2162 V 15 w(CARD)104 2234 y Fj(Calls)13 b Fi(CardServices\(Res)o(umeCa)o(rd,)19 b(...\))p Fj(.)0 2322 y Fi(DS)p 47 2322 V 15 w(EJECT)p 172 2322 V 15 w(CARD)104 2394 y Fj(Calls)13 b Fi(CardServices\(Eje)o(ctCar)o(d,)19 b(...\))p Fj(.)0 2481 y Fi(DS)p 47 2481 V 15 w(INSERT)p 194 2481 V 15 w(CARD)104 2554 y Fj(Calls)13 b Fi(CardServices\(Ins)o (ertCa)o(rd,)19 b(...\))p Fj(.)p eop %%Page: 32 32 32 31 bop 0 -84 1950 3 v 0 -100 a Ff(6.)32 b(Wh)o(ere)15 b(t)o(o)h(Go)f(for)g(More)h(Inform)o(a)o(t)o(io)o(n)1102 b Fj(32)0 81 y(Th)o(e)11 b(follo)o(win)o(g)c Fi(ioctl)i Fj(comm)o(an)o(ds)f(in)o(v)o(ok)o(e)h(sp)q(ecial)h(Dr)q(iv)o(er)g (Service)q(s)i(fu)o(nct)o(ions.)17 b(Th)o(ey)11 b(act)f(on)g Fi(bind)p 1612 81 14 2 v 15 w(info)p 1715 81 V 15 w(t)g Fj(stru)o(ct)o(ure)q(s:)104 188 y Fc(typedef)17 b(struct)g(bind_info_)o (t)f({)261 240 y(dev_info_)o(t)271 b(dev_info;)261 292 y(struct)17 b(dev_info_t)133 b(*instance;)261 344 y(char)390 b(name[8];)261 396 y(u_char)350 b(major,)18 b(minor;)261 448 y(void)390 b(*next;)104 500 y(})19 b(bind_info_)o(t;)0 620 y Fi(DS)p 47 620 V 15 w(BIND)p 150 620 V 15 w(REQUEST)104 693 y Fj(Thi)q(s)d(call)g(conn)o(ect)o(s)j(a)d(so)q(c)o(k)o(et)i(t)o(o) f(a)g(clien)o(t)f(dr)q(iv)o(er.)27 b(Th)o(e)17 b(sp)q(eci\014e)q(d)h(d) o(evice)g(ID)e Fi(dev)p 1485 693 V 15 w(info)g Fj(i)q(s)h(lo)q(ok)o(e)q (d)f(up)h(in)f(t)n(h)o(e)104 750 y(li)q(st)d(of)g(regi)q(st)o(ere)q(d)i (dr)q(iv)o(ers.)k(If)13 b(fou)o(n)o(d,)g(t)n(h)o(e)i(dr)q(iv)o(er)f(i)q (s)f(b)q(ou)o(n)o(d)h(t)o(o)g(t)n(hi)q(s)g(so)q(c)o(k)o(et)g(us)q(in)o (g)g(t)n(h)o(e)g Fi(BindDevice)e Fj(call.)17 b(Th)o(en,)104 807 y(Dr)q(iv)o(er)h(Service)q(s)h(calls)f(t)n(h)o(e)g(clien)o(t)g(dr)q (iv)o(er's)g Fi(attach\(\))e Fj(en)o(try)j(p)q(oin)o(t)e(t)o(o)h(crea)o (t)o(e)i(a)e(d)o(evice)g(inst)o(ance.)31 b(Th)o(e)19 b(n)o(ew)104 863 y Fi(dev)p 173 863 V 15 w(link)p 276 863 V 15 w(t)13 b Fj(p)q(oin)o(t)o(er)h(i)q(s)g(ret)o(ur)q(n)o(e)q(d)h (in)e Fi(instance)p Fj(.)0 953 y Fi(DS)p 47 953 V 15 w(GET)p 128 953 V 15 w(DEVICE)p 275 953 V 15 w(INFO)104 1027 y Fj(Thi)q(s)i(call)g(retr)q(iev)o(e)q(s)i(t)n(h)o(e)f Fi(dev)p 588 1027 V 15 w(name)p Fj(,)e Fi(major)p Fj(,)h(an)o(d)g Fi(minor)g Fj(en)o(tr)q(ie)q(s)h(f)q(rom)d(t)n(h)o(e)k Fi(dev)p 1433 1027 V 15 w(link)p 1536 1027 V 15 w(t)e Fj(stru)o(ct)o(ure)i(p)q(oin)o(t)o(e)q(d)f(t)o(o)104 1084 y(b)o(y)d Fi(instance)p Fj(.)0 1174 y Fi(DS)p 47 1174 V 15 w(UNBIND)p 194 1174 V 15 w(REQUEST)104 1247 y Fj(Thi)q(s)g(call)g(calls)h(t)n(h)o(e)g Fi(detach\(\))f Fj(fu)o(nct)o(ion)g(for)h(t)n(h)o(e)h(sp)q(eci\014e)q(d)g(dr)q(iv)o(er) f(an)o(d)f(inst)o(ance,)h(sh)n(u)o(t)n(t)o(in)o(g)i(do)o(wn)d(t)n(hi)q (s)h(d)o(evice.)0 1416 y Fg(6)66 b(Wh)n(ere)22 b(t)o(o)g(Go)g(for)g (More)f(Inform)n(a)n(t)n(ion)0 1535 y Fj(Th)o(e)11 b Fa(Linux)i(Kernel)f(Hackers')g(Guide)s Fj(,)f(wr)q(it)n(t)o(en)h(b)o(y) e(Mic)o(h)o(ael)h(Johnson,)g(i)q(s)g(a)f(go)q(o)q(d)h(source)h(of)f (gen)o(eral)g(inform)o(a)o(t)o(ion)d(a)o(b)q(ou)o(t)0 1592 y(wr)q(it)o(in)o(g)13 b(Lin)n(ux)h(d)o(evice)g(dr)q(iv)o(ers.)19 b(It)14 b(i)q(s)f(a)o(v)n(aila)o(ble)e(f)q(rom)h(t)n(h)o(e)j(usual)e (Lin)n(ux)h(FTP)g(s)q(it)o(e)q(s.)0 1670 y(Th)o(e)g(gen)n(uin)o(e)h (PCMCIA)f(st)o(an)o(d)o(ard)h(i)q(s)e(only)g(a)o(v)n(aila)o(ble)e(for)j (a)f(st)o(eep)j(pr)q(ice)e(f)q(rom)e(t)n(h)o(e)i(PCMCIA)h(asso)q(cia)o (t)o(ion)e(it)o(s)q(elf.)19 b(Th)o(e)0 1727 y(n)o(ew)g(PC)g(Card)f(St)o (an)o(d)o(ard)h(i)q(s)f(sup)o(p)q(os)q(e)q(d)i(t)o(o)f(cost)h($399,)e (bu)o(t)h(y)o(ou)g(m)o(ay)d(st)o(ill)i(b)q(e)h(a)o(ble)e(t)o(o)i(get)g (old)f(co)o(pie)q(s)h(of)f(t)n(h)o(e)h(2.1)0 1784 y(st)o(an)o(d)o(ard)c (a)o(t)e(a)h(d)o(eep)h(di)q(scou)o(n)o(t.)104 1899 y Fc(Personal)h(Computer)h(Memory)g(Card)h(Internatio)o(nal)e(Associati)o (on)104 1951 y(1030)i(East)g(Duane)g(Avenue,)f(Suite)g(G)104 2003 y(Sunnyvale)o(,)g(CA)h(94086)g(USA)104 2055 y(\(408\))f(720-0107,) g(\(408\))g(720-9416)g(FAX,)h(\(408\))g(720-9388)e(BBS)0 2175 y Fj(On)o(e)e(al)o(t)o(er)q(n)o(a)o(t)o(iv)o(e)f(i)q(s)f(t)n(h)o (e)i Fa(PCMCIA)g(Develop)n(er's)g(Guide)s Fj(,)g(wr)q(it)n(t)o(en)f(b)o (y)g(Mic)o(h)o(ael)g(Mor)q(i,)f(a)o(v)n(aila)o(ble)e(f)q(rom)h(Sycard)j (T)m(ec)o(hno-)0 2232 y(logy)f(for)g($89.95:)104 2347 y Fc(Sycard)k(Technology)104 2399 y(1180-F)g(Miraloma)g(Way)104 2451 y(Sunnyvale)o(,)g(CA)h(94086)g(USA)104 2503 y(\(408\))f(749-0130,) g(\(408\))g(749-1323)g(FAX)p eop %%Page: 33 33 33 32 bop 0 -84 1950 3 v 0 -100 a Ff(6.)37 b(Wh)o(ere)15 b(t)o(o)h(Go)f(for)g(More)h(Inform)o(a)o(t)o(ion)1096 b Fj(33)0 81 y(Programmin)o(g)10 b(inform)o(a)o(t)o(ion)g(for)j(v)n(ar) q(ious)f(PCMCIA)h(con)o(trollers)g(i)q(s)g(a)o(v)n(aila)o(bl)o(e)e(f)q (rom)g(t)n(h)o(e)i(corre)q(sp)q(on)o(din)o(g)i(c)o(hip)e(v)o(en)o (dors:)104 196 y Fc(Intel)k(Corporation)104 248 y(\(800\))g(628-8686) 104 352 y(Cirrus)g(Logic)104 404 y(\(510\))g(623-8300)104 508 y(Vadem)104 560 y(\(408\))g(943-9301)104 664 y(Databook)f(Inc.)104 716 y(\(716\))h(889-4204)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF