linux/drivers/watchdog/acquirewdt.c
<<
>>
Prefs
   1/*
   2 *      Acquire Single Board Computer Watchdog Timer driver
   3 *
   4 *      Based on wdt.c. Original copyright messages:
   5 *
   6 *      (c) Copyright 1996 Alan Cox <alan@lxorguk.ukuu.org.uk>,
   7 *                                              All Rights Reserved.
   8 *
   9 *      This program is free software; you can redistribute it and/or
  10 *      modify it under the terms of the GNU General Public License
  11 *      as published by the Free Software Foundation; either version
  12 *      2 of the License, or (at your option) any later version.
  13 *
  14 *      Neither Alan Cox nor CymruNet Ltd. admit liability nor provide
  15 *      warranty for any of this software. This material is provided
  16 *      "AS-IS" and at no charge.
  17 *
  18 *      (c) Copyright 1995    Alan Cox <alan@lxorguk.ukuu.org.uk>
  19 *
  20 *      14-Dec-2001 Matt Domsch <Matt_Domsch@dell.com>
  21 *          Added nowayout module option to override CONFIG_WATCHDOG_NOWAYOUT
  22 *          Can't add timeout - driver doesn't allow changing value
  23 */
  24
  25/*
  26 *      Theory of Operation:
  27 *              The Watch-Dog Timer is provided to ensure that standalone
  28 *              Systems can always recover from catastrophic conditions that
  29 *              caused the CPU to crash. This condition may have occurred by
  30 *              external EMI or a software bug. When the CPU stops working
  31 *              correctly, hardware on the board will either perform a hardware
  32 *              reset (cold boot) or a non-maskable interrupt (NMI) to bring the
  33 *              system back to a known state.
  34 *
  35 *              The Watch-Dog Timer is controlled by two I/O Ports.
  36 *                443 hex       - Read  - Enable or refresh the Watch-Dog Timer
  37 *                043 hex       - Read  - Disable the Watch-Dog Timer
  38 *
  39 *              To enable the Watch-Dog Timer, a read from I/O port 443h must
  40 *              be performed. This will enable and activate the countdown timer
  41 *              which will eventually time out and either reset the CPU or cause
  42 *              an NMI depending on the setting of a jumper. To ensure that this
  43 *              reset condition does not occur, the Watch-Dog Timer must be
  44 *              periodically refreshed by reading the same I/O port 443h.
  45 *              The Watch-Dog Timer is disabled by reading I/O port 043h.
  46 *
  47 *              The Watch-Dog Timer Time-Out Period is set via jumpers.
  48 *              It can be 1, 2, 10, 20, 110 or 220 seconds.
  49 */
  50
  51/*
  5tchdog/acquirewdt.c#L41" id="L41" cInclum.c#L3p325.6
  
   */
  24
/*

	pr_fmt
	fmt
	KBUILD_MODNAME  24
<ng">">  17:e" nameers/wat
	fmt/*
/*
d=ivers/watchdog/acquirewdt.c#L25" id="L25" class="l6ne" name6"L51">  51 *      warra6ty fo62rs/w#isecond="L21hdog/acquisecond	  51 *      warra7ty fo72/*
  24
DRV_NAME  24
<ng">">  17"L25" clas" nameers/watchdog/acquirewdt.c#L25" id="L25" class="l7wdt.c#L67" id="L6" class="line" 7/span7

	/a>  24
<ng">">  173" classWDT" nameers/watchdog/acquirewdt.c#L25" id="L25" class="l7n@lxorgu7k.ukuu.org.uk>,  47se 4#class=et.c#L32"ss="l-ne" p8">  48/a>/*
  50
  51  4#L25" idaplat" id devicl/ivers/watchdog/acquirewdt.c#L25" id="L25" class="l8rewdt.c#852" id="L52" class="lin8" nam81rs/wthod="sn ru2"s/a>
	plat" id_devicl
	"L2_plat" id_devicl *      warra8ty fo82rs/wthod="sunsigned longs/a>
	"L2_is_o cn
	expect_closl/*
  26  478  assi"lin4sane4#Lyprobe"L16"a>8
	las_span22" cl_par w
	las_span
	MODULE_PARM_DESC
	las_span  24
<ng">">  173" classWDT L23">dpanL23">sioan cla(/spault 0x43)" nameers/wat);chdog/acquirewdt.c#L25" id="L25" class="l9ne" name9"L51">  51/*
  5tchdog/acquirewdt.c0Youclass=428  assi"lin4sane4#Lyprobe"L16"a>8 *      warra9ty fo92rs/wthod="s"L3s/a>
	las_spart22" cl_par w
	las_spartMODULE_PARM_DESC
	las_spart  24
<ng">">  173" classWDT L23">dpartL23">sioan cla(/spault 0x443)" nameers/wat);chdog/acquirewdt.c#L25" id="L25" class="l9wdt.c#L69" id="L6" class="line" 9/span95ent">/*
bool
	22" id="
	/a>22" cl_par w
	22" id="
	boolMODULE_PARM_DESC
	22" id="">  17
srs/wcla "la fa>
	__MODULE_STRING
	/a>ng">">  17)" nameers/wat);chdog/acquirewdt.c#L25" id="L25" class="l10 Foundati0on; either version
1ent">/*

 any of this sof 10, 20, 11.c#L41" id="L41" cInclum.c#L3p325.6
  
  10rewdt.c#L014" id="L14" class="line03="c>
n>
 *              reset condition does not10. admit l0iability nor provide


5ent">/*

	"L2_keepala h/*

7rs/w{>/*

8rs/wcla "la f="drivers/wacquirewdt.c0Write a4#L25" idass="cacvers/watchdog/acquirewdt.c#L25" id="L25" class="l10rewdt.c#L020" id="L20" class="line09="c>
9rs/wcla "la fa>
	inb_n
	las_spart11ent">/*

	"L2_span/*

1a hrefcla "la f="drivers/wacquirewdt.c0Tclass=et.srd"offacvers/watchdog/acquirewdt.c#L25" id="L25" class="l1e. This maaterial is provided

	inb_n
	las_span
  
  1irewdt.c#LL20" id="L20" class="linee" na1e="L20">  20 *              correctly, hardware on t1_Domsch@d1ell.com>
 *     f="drivers/wac12e/s="com0rs/wad="s"L3s/a>
	 *      2 of the Licenrs/wa2chdog/acqu1tcla "la fa>
	
	s/wtw>an>

<ng">"> s="spacode=plat" id_deviws="/a>
<ng">"> s="spac,
s="c>
srs/wcl49" spacode=plat" id_devibuf id="="4f/02/0a	ufSC
	21ss="comme1nt"> */

	
	rewdtinb_n="4f/02/0arewdt w
	21sna1e="L14watchdog/acquirewdt.c#L215" id1"L25" /acqu1irewdt.c#LL14" id="L14" class="linee"ss="comme1nt">/*
  mags="l8ocacdt.c h,s4V h,s4"ers/reloay
 *      Theory of Op1erati1n:
	 *              The 1Watch1Dog Ti................if "!=MODULE_PARM_DESC="4f/02/0a	MODULE_PARM_DESC *              Syst1ems c128watcquisecond	
	
	irovided
ode=/a>/a> *              caus1ed th129watcquisecond	  13 *              exte1rnal 1MI or a software bug. When thhhhhhhhhhhhhhhhhhhhhhhhhhhf na months ago="L49" cla "la f="drivers/watchdog/ac/*0F> *              corr1ectly1 hardwquisecond	
	/a> *              rese1t (co1d bootquisecond	  cla "la f="drivers/watchdog/ac/*0F> *
 *

	
ode=s/a>/rs/wthod="s/a>
	irovided
ode= !h 4a>
	 *              The 1Watch135watcquisecond	/a> *                4413 hex136watcquisecond	
	
s="c>
srs/wgetL49" ref="cla "la fa>
	
	21ss="comme1nt"> *                0413 hex13og Ti........................................p" id="-s/wthod="s/a>
	EFAUL">__MODULE_STRINEFAUL"ode=/a>/a> *

	/a> *              To e1nable139watcquisecond	
	/a> *              be p1erfor140watcquisecond	 *              whic1h wil14hardwquisecond	 *              an N1MI de14 bootquisecond	  16 *              rese1t con1ition does not occur, the Wattttttttttttttttttttttttttttttttp" id="c#L43fav/wat9" cla "la f="drivers/watchdog/ac/*0F> *              peri1odica144bootquisecond	0

6rs/wthod="svoids/a>
	
	lasss="comme1nt"> *              The 1Watch145watcquiseconss="l1 e.>
 *
 *              The 1Watch1Dog Tiss="l1 e.>
 *              It c1an be14L25" class="l710 or 227 seconds.
 */
 *      warraoct" id="="4f/02/0awarraoct"ref="l8rewdt.c#852" id="L52ws="/a>
<ng">"> s="spacode=plat" id_deviws="/a>
<ng">"> s="spac, *      wrg id="="4f/02/0awrg_n
	21"drivers/1watchdog/acquirewdt.c#L511" id1"L51" /acqu1irewdt.c#LL14" id="L14" class="linee"ss="comme1nt">/*

	s/a-s/wthod="s/a>
	EINVAL>__MODULE_STRINEINVAL w
s="c>
srs/wcl49" spacode=plat" id_deviwrgpan>

	s/a(ion) any  later vers_L49" an>
s="c>
srs/wcl49" spacod)="v2/"> *      wrg id="="4f/02/0awrg_n */

s="c>
srs/wcl49" spacode=plat" id_devipan>

	s/ae=plat" id_deviwrgpan>

	/s="l1 e.>

	s/a/acqu1irewdt.c#LL14" id="L14" class="linee"ss="comme1nt">/*

srs/w2DIOF_KEEPALIVEP/spode= | 4a>
	
	21	fmt<1a h>/*

<ng">"> srm" id_ode=f="ode= h 1 h(/a>
	21	s="comme1a h>/*

	
	21	 na1e="L1watchdog/acquirewdt.c#L215" id158watcquisecon}/s="l1 e.>
d=ivers/1watchdog/acquirewdt.c#L215" id160watcquiseconswihre "cla "la fa>
	
	__MODULE_STRINGDIOC_GETSUPPOR"ardw:acqu1irewdt.c#LL14" id="L14" class="linee"tdt.c#L411watchdog/acquirewdt.c#L215" id16 bootquisecond	
	

	, &s/wthod="s/a>
	idedtinb_n="4f/02/0aidedta>
	,la "fof"cla "la fa>
	
	)) ?"-s/wthod="s/a>
	EFAUL">__MODULE_STRINEFAUL"ode= :a>/a>/a>/a>
	__MODULE_STRINGDIOC_GETSTATUSardw:acqu1irewdt.c#LL14" id="L14" class="linee"ts="comme1watchdog/acquirewdt.c#L215" id165ardwquisecon asre4a>
	__MODULE_STRINGDIOC_GETBOOTSTATUSardw:acqu1irewdt.c#LL14" id="L14" class="linee"ts="commentt"> *      "AS-IS&quiver166watcquisecond	
las"d=ivers/1watchdog/acquirewdt.c#L215" id16" class="l1 rewdt.c#LL18" id="L18" class="lineesd=ivers/1watchdog/acquirewdt.c#L215" id168ardwquisecon asre4a>
	__MODULE_STRINGDIOC_SETOPTIONSardw:acqu1irewdt.c#LL14" id="L14" class="linee"ts="comme1watchdog/acquirewdt.c#L215" id169watcquisecon/acqu1irewdt.c#LL14" id="L14" class="linee".caivers/1watchdog/acquirewdt.c#L215" id170watcquisecond	
	
s="c>
srs/wgetL49" ref="cla "la fa>
	21.caivers/1watchdog/acquirewdt.c#L215" id17hardwquisecond	
	EFAUL">__MODULE_STRINEFAUL"ode=/a>/a>
	 *              peri1of="E_STRINEFAUL"odo72


	 h(/a>
	
5ent">/*

	__MODULENTRINGDIODIODIODIODIOD_8ss="coENTRINGDIO             peri1of="E_STRINEFAUL"odo72

	
	lasss="comme1nt"> *   cquirewdt1.c#L25" id="L25" class="1l710 17a/io......cla "la fa>
	
	

6rs/wthod="svoids/a>
	
	lasss="comme1nt"> *   cquirewdt1.c#L25" id="L25" class="1l8 re18ne" name2Of1	 na1e="Lde=d="L.c#L215" id158watcq_tch2y" id="L41" cInclum.an>

5ent"rewdt.c#L1.c#L25" id="L25" class="1l8n@l186>
	__MODULEcquTIME
	

	las"d=ivers/1watchdog/cquirewdt1.c#L25" id="L25" class="1l8wdt18 227 seconds.
 */
	__MODULE_STRINOTTYL"ode=/a>
/a> *      warra9ty h(/asigned longs/a>
	
<ng">">in">"ta>
	)) ?"-s/wthn">"vipan>
in">"ta>
	)) ?"-s/wthn">"vipa,"L52a href="_mer inb_n= s="spacode=plat" id_deviws="/a>
<ng">"> s="spac,21.caivers/1watchdog/cquirewdt1.c#L25" id="L25" class="1l9wdt1c#L69"       peri1of="E_STRINEFAUL"odo72

	
	)) ?"-s/wttest_and_s fabidcodepan>	idedtinb_n="4f/02/0ad="sunsigned longs/a>
	21.caivers/1watchdog/cquirewdt1.c#L25" id="L25" class="1l9   19.....................de=d="LUL">__MODULE_STRIBUSYL"ode=/a> */
 */<2quirewdt.2#L25" id="L25" class="l12GNU G20a/if "cla "la fa>
	
s="c>
srs/wpacode=geRM_DESClas"d=ivers/1watchdog2quirewdt.2#L25" id="L25" class="l12 Foun2ati0on; either version
1ent">/*
  24

6rs/wthod="svoids/a>
	
	lasss="comme1nt"> *  2         2eset condition does not12. adm20ne" name2Of1	de=d="L49" an>

	"ta>
	)) ?"-s/wthn">"vipa,"/a>
<ng">"> s="spac,lasss="comme1nt"> *  2 5       2ec#L25" id="L25" class="2. Thi2 ma0te
/*

	s/ah(/athod=_is_"L52ws="/a>
<ng">">in">"ta>
	)) ?"-s/wthn">"vipan>
in">"ta>
	)) ?"-s/wthn">"vipa,"L52a href="_mer inb_n= s="spacode=plat" id_deviws="/a>
<ng">"> s="spac,21.caivers/1watchdog2n>

	
s="c>
srs

	 h(/a>
	
5e2quirewdt.2#L25" id="L25" class="l12 Foun21a/io......p" < elDIO       peri1of="E_STRINEFAUL"odo72
/a>"L46TRINEFAU!\nom h) f="drivers/wang">">  17)" nameers/wat);chdog/a2n>

6rs/wthod="svoids/a>
	
	lasss="comme1nt"> *  2n>
	idedtinb_n="4f/02/0ad="sunsigned longs/a>
	lasss="comme1nt"> *  2n>

	s/a>/a>/a> *  2quirewdt.2#L25" id="L25" class="l12rewdt217e" name2Of1	de=d="L"4f/02/0a	/a> *  2q>

  
  12rewdt21>>
 *    2   2 of t2e Licenrs/wa2chdog/acqu12cla "22n value="v2/"> *      warrant" name="L24">  24
/a>
21	 na1e="L1watchdog2   Theory2of Op1erati1n:
	21	 na1e="L1watchdog2 uirewdt.2 The 1Watch1Dog Ti......2.....2...if "!=MODULf="sinb_n="4f/02rs/wtw>ref="l8rew#852" id=ion) any  " id="="="line" 7a112rs/wtw>ref="l8rewdt.c#852" id=2" id="="4f/02/0a	21	 na1e="L1watchdog2 >
21	 na1e="L1watchdog2 uirewdt.2 caus1ed th129watcquisec2nd	
	
	21	 na1e="L1watchdog2         2 exte1rnal 1MI or a soft2are b230/io......cadf="sinb_n="4f/02relead="slasss/a>
	s/arelead=/io......cad" id="="="line" 7a112thod="slasss/a>
	s/ah(/athod=_is_2" id="="4f/02/0a	21	 na1e="L1watchdog2     f="d2 corr1ectly1 hardwquisec2nd	 *      warra7ty fo72/*

	s/a/2iscdevice" natinb_n="4f/02/0ad="/2iscde"slasss/a>
	s/ah(/a/2iscdeass="c=       peri1of="E_STRINEFAUL"odo72

	21	 na1e="L1watchdog2 an>
21	 nom h) f="driv2" id="="4f/02/0a	21	 na1e="L1watchdog2   Theory2   4413 hex136watcquisec2nd	
	21	 na1e="L1watchdog2 uirewdt.2   0413 hex13og Ti......2.....2......
 */<2         2 To e1nable139watcquisec2nd	  24
 *    2         2 whic1h wil14hardwquisec2nd	  24
 *      warra7ty fo72/*
s="c>
srs/wcdevnidta>
	)) ?"-s/wt/wcdevnide" natinb_n="4f/02/0ad="2spac,">1rs/wthod="sn ru2"s/a>
	plcde"slasss/a>
	s/acdeass=2" id="="4f/02/0a	21.caivers/1watchdog2         2 peri1odica144bootquisec2nd	/*>
<_L49" an>
s="c>
srsreRM_DESC>
 *  2pan>
/*
	inb_n
	ESC="4f/02/0a	MOrequest_regsrm" id_ode=f="oderequest_regsrmcodepid="="="line" 7w
87rs/wthod="s"L3s/a>
	
<ng">">/span7

	
	/a>
<ng">">w
87rs/wthod="s"L3s/a>
	lasss="comme1nt"> *  2acquirewd2.c#L511" id1"L51" /acqu12rewdt25a/io......ss="l1 e.>
<" an>
s="c>
srsreRM_DESC>
__MODULE_STRINOL"ode=/a>>
 *  2pan>
 *  2p        2c#L3p1325.615 bootquisec2nion)25a/;alan@lx0orguk.ukuu
/*
MOrequest_regsrm" id_ode=f="oderequest_regsrmcodepid="="="line" 7w
87rsARM_DESC
	
<ng">">/span7

	
	

r_erL49" ref="0 h(/a>r_erLcodepi02/0a	/a>
<ng">">w
87rs/">inb_n
	las_spart

s="c>
srsreRM_DESC>
__MODULE_STRINOL"ode=/a>>
 *  2p        2.c#L215" id158watcquisec2n}/s=25a/io......cla "la fa>gotof="sinb_n="4f/02unreg7rs/wthod="s"L3s/a>
unreg7rs/w>>
 *  2p        2.c#L215" id1"L25" s="l1 2." an>
s="c>
srsreRM_DESC>

	s/ah(/a/2iscdeass=_spart="4f/02/0a	las_spart
	>
/a>

	" an>
s="c>
srsreRM_DESC>
<_spart="4f/02/0a	las_spart *  2acquirewd2.c#L215" id165ardwquisec2n asr24a>
	
r_	 href="_mer am96rs>r_	 hrcodepi02/0a	/a>bool
	las_spart

	/a> *  2acquirewd2.c#L215" id169watcquisec2n/acq26t.c8L50" id="L50" clunreg7regsrmsspac,>
<" id="L14" class="linee"ts="comme1watchdog2acquirewd2.c#L215" id170watcquisec2nd	" an>
s="c>
srsrelead=_regsrm" id_ode=f="oderelead=_regsrmcodepid="="="line" 7w
87rsARM_DESC
	las_spart
unreg7rs/w>>
<" id="L14" class="linee"ts="comme1watchdog2acquirewd2.c#L215" id17 bootquisec2nd	
	inb_n
	
s="c>
srsrelead=_regsrm" id_ode=f="oderelead=_regsrmcodepid="="="line" 7w
87rs/wthod="s"L3s/a>
	las_spart

>
 *  2acquirewd2.c#L25" id="L25" class="2l7n@l27n>>

s="c>
srs/wcderiveta>
	)) ?"-s/wt/wcderivee" natinb_n="4f/02/0ad="remo="svoids/a>
	">1rs/wthod="sn ru2"s/a>
	plcde"slasss/a>
	s/acdeass=2" id="="4f/02/0a	21.caivers/1watchdog2ccquirewd2ef="drivers/watchdog/acq2u7ire27a/io.       peri1of="E_STRINEFAUL"odo72" an>
s="c>
srs/2is_deregssttL49" ref="0 h(/a/2is_deregssttLcodep	idedtinb_n="4f/02/0ad="/2iscde"slasss/a>
	s/ah(/a/2iscdeass=_spart="4f/02/0a	las_spart
s="c>
srsrelead=_regsrm" id_ode=f="oderelead=_regsrmcodepid="="="line" 7w
87rsARM_DESC
	las_spart
	inb_n
	
	las_spart/*
/a> *  2rewdt.c#L2.c#L25" id="L25" class="2l8n@l28n>>
">1rs/wthod="sn ru2"s/a>
	plcde"slasss/a>
	s/acdeass=2" id="="4f/02/0a	21.caivers/1watchdog2cquirewdt2.c#L25" id="L25" class="2l8ire28a/io.       peri1of="E_STRINEFAUL"odo72
1a hrefcla "la ">  iver"l8ocahav "lasoft shutdownr " name="L24">  24

s="c>
srs

	 h(/a>
	
5e2cquirewdt2.c#L25" id="L25" class="2l9opt2on v9l/a>">1rs/wthod=>/a>
	/a>
	/a>spac,

	
	

	
	
	/a>21	 na1e="L1watchdog3quirewdt.3#L25" id="L25" class="l13GNU G30a/if "cla "la fa>
	21	 na1e="L1watchdog3q1irewdt.3#f="drivers/watchdog/acq3 Foun30a/io......p" <2" id="="4f/02/0a	21	 na1e="L1watchdog3q2irewdt.3#c#L25" id="L25" class="3ion) 302>
	<
  
  13rewdt30"c="4f/02/0a	/a> *      warra9ty __vnidta>
	)) ?"-s/wt/wvnide" natinb_n="4f/02/0ad="vnidta>
	)) ?"-s/wtad="vnidcodep2_span="4f/02/0a	"L2_span/*

	 *      warra9ty erL49" ref="0 h(/aerLcodea href="drivers/watchddows="comme1watchdog3c7
r_	 href="_mer am96rs>r_	 hrcodepi02/0a	/a>   classng">">  17)" nameers/wat);chdog/a3quirewdt.3#L25" id="L25" class="l13rewdt30>>
" an>
s="c>
srserL49" ref="0 h(/aerLcodel4f/"sinb_n="4f/02ode=plat" >/a><_regssttL49" ref="0 h(/aode=plat" >/a><_regssttLcodep	idedtinb_n="4f/02/0ad=me1watcd=>/a>
	/a>ng">">  17)" nameers/wat);chdog/a3quirewdt.3#L25" id="L25" class="l13 Foun31a>
	"L2_span/*

/a>
	
	21	 na1e="L1watchdog3quirewdt.3#L25" id="L25" class="l13. Thi3 maaterial is                                                         -1,"/a>
<ng">">NULVAL w">  17)" nameers/wat);chdog/a3q>

	
	
	
s="c>
srserL49" ref="0 h(/aerLcodel4f/"sinb_n="4f/02PTRdERa
	
	">  17)" nameers/wat);chdog/a3q>
gotof="sinb_n="4f/02unreg71rs/wthod=>/a>
	/a>
  
  13rewdt319n v9lue="v2/de=d="L"4f/02/0a	/a> *  3     f="d3ivers/wac12e/s="com0rs/w3d="s"32ti0on; either version
1ent">/*
	/a>/a><_unregssttL49" ref="0 h(/aode=plat" >/a><_unregssttLcodep	idedtinb_n="4f/02/0ad=me1watcd=>/a>
	/a>ng">">  17)" nameers/wat);chdog/a3acquirewd3.c#L215" id1"L25" /acqu13rewdt32ne" name2Of1	de=d="L49" an>
/*
s="c>
srs/wriveta>
	)) ?"-s/wt/wrivee" natinb_n="4f/02/0ad="riveta>
	)) ?"-s/wtad="rivecodep2_span="4f/02/0a	"L2_span/*

	">  17)" nameers/wat);chdog/a3         3 exte1rnal 1MI or a soft3are b33 "cla "la fa>" an>
s="c>
srsode=plat" >/a><_unregssttL49" ref="0 h(/aode=plat" >/a><_unregssttLcodep	idedtinb_n="4f/02/0ad=me1watcd=>/a>
	/a>ng">">  17)" nameers/wat);chdog/a3     f="d3 corr1ectly1 hardwquisec3nd	
s="c>
srs>r_	 href="_mer am96rs>r_	 hrcodepi02/0a	/a>">  17)" nameers/wat);chdog/a3         3 rese1t (co1d bootquisec3nd	
/a>
	)) ?"-s/wtpacode=vnidcodepid="="="line" 7ad="vnidta>
	)) ?"-s/wtad="vnidcodeers/wang">">  17)" nameers/wat);chdog/a3 an>

	)) ?"-s/wtpacode=rivecodepid="="="line" 7ad="riveta>
	)) ?"-s/wtad="rivecodeers/wang">">  17)" nameers/wat);chdog/a3   Theory3   4413 hex136watcquisec3nd	/*
	/a>ng">">  17)" nameers/wat);chdog/a3 >

	/a>">  om h) f="drivers/wang">">  17)" nameers/wat);chdog/a3 uirewdt.3 To e1nable139watcquisec3nd	/a>ng">">  17)" nameers/wat);chdog/a3         3 be p1erfor140watcquisec3nd	
	
	" an>
s="c>
srspacode=las_spart="4f/02/0a	las_spart
The original LXR"L24"id=" by"lasoa	lashttp://sourceodege.net0urojects/lxt">LXR"  ivun 7/span,"lais 02/0river"al artlasmailto:lxt@atcux.no">lxt@atcux.nospan.
p0div>

lxt.atcux.no kindly hos6TRIby"a	lashttp://www.redpill-atcuro.no">Redpill Ltcuro ASspan,"urorivrs/of Ltcuxinb_nult"driand 4f/02/0ad= ser>  1svnidceb_n=5.
p0div>