% DKLIC $B$N<BAu(B

\chapter{ dklicio $B$N<BAu(B \Comment{(Implementation)} }
\label{impl}

$BA0>O$G$O!"(BDKLIC $B=hM}7O$N:G2<0L%5!<%P$G$"$k(B dklicio $B$N@_7W$r9T$C$?!#(B
%
$BK\>O$G$O!"(Bdklicio $B$N<BAu$K$D$$$F2r@b$9$k!#(B


\section{ $B<g$J3+H/4D6-(B }

$BK\8&5f$G<g$K3+H/$r9T$J$C$?4D6-$O<!$N$h$&$J$b$N$G$"$k!#(B

\begin{enumerate}
\item Intel Pentium III 800EB
\item PC--AT $B8_495!(B
\item Debian GNU/Linux 2.2
\item KLIC--3.003 with patch \cite{patch}
\end{enumerate}


\section{ $BJ,;6O@M}JQ?t%*%V%8%'%/%H(B }

$BJ,;6O@M}JQ?t$O!"%m!<%+%k%[%9%HFb$N;2>H$,(B
$B$J$/$J$C$?$3$H$r8!=P$G$-$kI,MW$,$"$k!#(B
%
$B$^$?!"L$Dj5AJQ?tF1;N$ND>7k$r8!=P$9$kI,MW$,$"$k!#(B

KLIC $B=hM}7O$GL$Dj5AJQ?t$rI=8=$9$k%*%V%8%'%/%H$O(B
$B=c?hL$Dj5AJQ?t$HCfCG860xJQ?t$,$"$k!#(B
%
$BCfCG860xJQ?t$O(B
$BCfCG%4!<%k$d%3%s%7%e!<%^%*%V%8%'%/%H$,%U%C%/$5$l$?CfCG9=B$$+(B
$B%8%'%M%l!<%?%*%V%8%'%/%H$KJ,N`$5$l$k!#(B
\begin{enumerate}
\item $B=c?hL$Dj5AJQ?t(B.
$B$^$@0lEY$b6qBNCM$rFI$_9~$^$l$?$3$H$,$J$$L$Dj5AJQ?t$G$"$k!#(B
KLIC $B=hM}7O$K$*$$$F$O<+J,<+?H$r;X$9%]%$%s%?$H$7$FI=8=$5$l$k(B

\item $BCfCG860xJQ?t(B (susp).
$B$3$NJQ?t$N6qBNCM$rFI$_9~$s$GCfCG$7$?(B
$B%*%V%8%'%/%H$,%U%C%/(B (hook) $B$5$l$F$$$kJQ?t$G$"$k(B
\begin{enumerate}
\item $BCfCG9=B$(B.
$B0l$D$NCfCG9=B$$K$OJ#?t$NCfCG%4!<%k$d(B
$B%3%s%7%e!<%^%*%V%8%'%/%H$r%U%C%/$9$k$3$H$,$G$-$k(B

\item $B%8%'%M%l!<%?%*%V%8%'%/%H(B.
$B%8%'%M%l!<%?%*%V%8%'%/%H$O>o$K<+J,<+?H$N$_$r%U%C%/$7$F$$$k!#(B
$BCfCG9=B$$HD>7k$5$l$k$H!"6qBNCM$dCfCG9=B$$r@8@.$9$k(B
% $B!J%8%'%M%l!<%?%*%V%8%'%/%H$O$=$N7k2L$K!VJQ?H!W$9$k!K(B
$B=hM}$,9T$o$l$?8e!"(BKLIC $B=hM}7O$,$=$N7k2L$r(B
$BD>7kAj<j$G$"$kCfCG9=B$$K=q$-9~$`(B
\end{enumerate}
\end{enumerate}

$B$3$N$&$A!"B>$NL$Dj5AJQ?t$H$ND>7k$r8!=P$G$-$k$N$O(B
$B%8%'%M%l!<%?%*%V%8%'%/%H$N$_$G$"$k!#(B
$BCfCG9=B$$,B>$NL$Dj5AJQ?t$HD>7k$5$l$k$H!"(B
KLIC $B=hM}7O$OCfCG860xJQ?t$N%U%C%/72$r%^!<%8$7!"(B
$BD>7k$rJs9p$7$J$$!#(B
$B=>$C$F!"J,;6O@M}JQ?t$O%8%'%M%l!<%?%*%V%8%'%/%H$H$7$F<BAu$9$kI,MW$,$"$k!#(B

$BJ,;6O@M}JQ?t$rI=8=$9$k%8%'%M%l!<%?%*%V%8%'%/%H(B fusesusp
$B$O<!$N;0$D$N%a%s%P$r;}$D!#(B
\begin{enumerate}
\item id.
$B$3$N(B fusesusp $B$N<1JL;R$G$"$k!#(B
$B<1JL;R$NFbMF$O(B fusesusp $B$N%b!<%I$K$h$C$F0[$J$k!#(B

\item repo.
$B$3$N(B fusesusp $B$,6qBN2=!"D>7k!"GQ4~$5$l$?$i!"(B
$B$=$N;]$r<1JL;R$H6&$KJs9p$9$k!#(B
$BJs9p@h$O(B fusesusp $B$N%b!<%I$K$h$C$F0[$J$k!#(B

\item susp.
$B$3$N(B fusesusp $B$N6qBNCM$rFI$_9~$s$GCfCG$7$?(B
$BCfCG%4!<%k$d%3%s%7%e!<%^%*%V%8%'%/%H$r%U%C%/$7$F$$$kCfCG860xJQ?t$G$"$k!#(B
\end{enumerate}

fusesusp $B$O%8%'%M%l!<%?%*%V%8%'%/%H$G$"$k$N$G!"(B
$B6qBN2=!"D>7k!":o=|$5$l$?$3$H$r8!=P$9$k$3$H$,$G$-$k!#(B
\begin{enumerate}
\item $B$3$N(B fusesusp $B$K6qBNCM(B \Term $B$,=q$-9~$^$l$k$H!"(B
fusesusp $B$O(B susp $B$K(B \Term $B$r=q$-9~$_!"(B
repo $B$K6qBN2=(B bound(id, \Term) $B$rJs9p$9$k!#(B

\item
\begin{enumerate}
\item fusesusp $B0J30$NJQ?t(B X $B$HD>7k$5$l$k$H!"(B
fusesusp $B$O(B susp $B$H(B X $B$rD>7k$9$k!#(B
%
$B$9$k$H(B KLIC $B=hM}7O$,(B susp $B$H(B X $B$N%U%C%/$r%^!<%8$9$k!#(B

\item $BB>$N(B fusesusp $B$HD>7k$5$l$k$H!"8_$$$N(B susp $B$rD>7k$9$k!#(B
%
$B$9$k$H(B KLIC $B=hM}7O$,APJ}$N%U%C%/$r%^!<%8$9$k!#(B
\end{enumerate}
\end{enumerate}

fusesusp $B$O(B in/out $B$$$:$l$+$N%b!<%I$r;}$D!#(B
\begin{enumerate}
\item fusesusp(in) $B$O(B in $B%b!<%I$NJ,;6O@M}JQ?t$rI=$9!#(B
fusesusp(in) $B$N%a%s%P$O<!$N$h$&$J0UL#$r;}$D!#(B

id. \ID@\Host $B$H$$$&7A$NBg0h<1JL;R$H$9$k$,!"(B
C $B8@8l$K$h$C$F5-=R$9$k(B fusesusp $B$KITMW$JCN<1$r;}$?$;$J$$$?$a!"(B
fusesusp $B$O(B id $B$NFbIt7A<0$K$D$$$F2?$i2>Dj$rCV$+$J$$$h$&$K$9$k!#(B

repo. $BJQ?tI=$X$NJs9p%9%H%j!<%`$G$"$k!#(B

fusesusp(in) $B$OB>$N(B fusesusp(in) $B$HD>7k$5$l$k$3$H$O$J$$!#(B
$B$J$<$J$i!"(BDKLIC $B=hM}7O$O%b!<%IIU$-$N(B
$B%"%W%j%1!<%7%g%s$rA0Ds$H$7$F$$$k$+$i$G$"$k!#(B

fusesusp(out) $B$HD>7k$5$l$k$H!"(B
fusesusp(in) $B$O(B fusesusp(out) $B$N(B repo $B$N%U%C%/(B
bindhook:ID@Host $BKh$K(B repo $B$K(B fused(id, ID@Host) $B$rJs9p$9$k!#(B
%
$B$=$N8e!"(Bfusesusp(out) $B$N(B repo $B$K(B id $B$r=q$-9~$`!#(B
$B$3$l$O(B fusesusp(out) $B$,(B id $B$HD>7k$5$l$?$3$H$NJs9p$G$"$k$,!"(B
$B%8%'%M%j%C%/%*%V%8%'%/%HFb$G%U%!%s%/%?$r9=C[$9$k$N$,LLE]$G$"$k$N$G(B
C $B8@8l$K$h$k5-=RItJ,$r8:$i$9$?$a$K4JN,2=$7$?!#(B
$B$3$N!VD>7kJs9p!W$r<u$1<h$k$N$O(B fusesusp(out) $B$N(B bindhook $B$G$"$k$N$G!"(B
bindhook $B$,$3$N%a%C%;!<%8$r@5$7$/2r<a$9$k8B$jLdBj$O5/$-$J$$!#(B

\item fusesusp(out) $B$O(B out $B%b!<%I$NJ,;6O@M}JQ?t$KBP1~IU$1$i$l$?(B
$B%m!<%+%k%[%9%HFb$NO@M}JQ?t$rI=$9!#(B
fusesusp(out) $B$N%a%s%P$O<!$N$h$&$J0UL#$r;}$D!#(B

id. id $B$OB>$N(B fusesusp $B$HD>7k$5$l$?;~$KMxMQ$9$k$b$N$G$"$k$,!"(B
fusesusp(out) $BF1;N$ND>7k$K$*$$$F$O<1JL$OITMW$G$"$k$N$G!"(B
$BA4$F$N(B fusesusp(out) $B$N<1JL;R$O(B out $B$H$9$k!#(B

repo. $B$3$N(B fusesusp $B$N6qBN2=$rBT$D(B bindhook $B$X$NJs9p%9%H%j!<%`$G$"$k!#(B

fusesusp(out) $B$O(B fusesusp(in) $B$HD>7k$5$l$k$H!"(B
$B<+J,$HD>7kAj<j$r5UE>$7$FA0=R$N(B in--out $BD>7k=hM}$r9T$J$&!#(B

$BB>$N(B fusesusp(out) $B$HD>7k$5$l$k$H!"(B
$BD>7kAj<j$N(B repo $B$N%U%C%/(B bindhook:ID@Host $BKh$K(B
$B<+J,$N(B repo $B$K(B fused(out, ID@Host) $B$rJs9p$9$k!#(B
%
$B$=$N8e!"APJ}$N(B repo $B$rD>7k$9$k!#(B
$B$9$k$H(B KLIC $B=hM}7O$,APJ}$N(B repo $B$r%^!<%8$9$k!#(B
\end{enumerate}

bindhook $B$O(B fusesusp(out) $B$N(B repo $B$K%U%C%/$5$l$kCfCG%4!<%k$G$"$k!#(B
fusesusp(out) $B$K6qBNCM$,=q$-9~$^$l$k$H!"(Bbindhook $B$O3F!9$NC4Ev$9$k(B
$B1s3V%[%9%H$X6qBN2=$rJs9p$9$k!#(B
$B$9$J$o$A!"(Bbindhook $B$O3F!9(B out $B%b!<%I$NJ,;6O@M}JQ?t$rI=$9!#(B

$B0l$D$NO@M}JQ?t$NFI$_<j$,J#?t$N1s3V%[%9%H$KJ,;6$7$F$$$k>l9g!"(B
$B$=$NO@M}JQ?t(B fusesusp(out) $B$N6qBN2=$OJ#?t$N1s3V%[%9%H$K(B
$B%^%k%A%-%c%9%H$9$kI,MW$,$"$k!#(B
%
$B$3$N$?$a!"0l$D$N(B fusesusp(out) $B$KJ#?t$N(B bindhook $B$r%U%C%/$9$k!#(B

bindhook $B$O<!$N;0$D$N%a%s%P$r;}$D!#(B
\begin{enumerate}
\item ID@Host. $B$3$N(B bindhook $B$N<1JL;R$G$"$k(B
\item X. $B$3$N(B bindhook $B$,%U%C%/$7$F$$$k(B fusesusp(out) $B$N(B repo $B$G$"$k(B
\item Repo. $B$3$N(B bindhook $B$N6qBN2=$rBT$DJQ?tI=$X$NJs9p%9%H%j!<%`$G$"$k(B
\end{enumerate}

bindhook $B$O%U%C%/$7$F$$$k(B fusesusp(out) $B$+$i(B
$B6qBN2=!"D>7k!":o=|Js9p$r<u$1$k!#(B
\begin{enumerate}
\item X $B$K(B bound(out, \Term) $B$,Js9p$5$l$?$i!"(B
bindhook $B$O(B Repo $B$K(B bound(ID, \Term) $B$rJs9p$7$F=*N;$9$k!#(B

\item X $B$K(B ID1@Host1 $B$,=q$-9~$^$l$?$i!"(B
$B$3$N(B bindhook $B$,%U%C%/$7$F$$$k(B fusesusp(out) $B$,(B
fusesusp(in):ID1@Host1 $B$HD>7k$5$l$?$3$H$r0UL#$7$F$$$k!#(B

\begin{enumerate}
\item Host $B$H(B Host1 $B$,F1$8$J$i$P!"(B
ID=ID1 $B$N6qBNCM$r=q$-<j$G$"$k1s3V%[%9%H$KJs9p$9$kI,MW$O$J$$$N$G!"(B
bindhook $B$OD>7k(B fused(ID, ID1) $B$rJs9p$7$F=*N;$9$k!#(B

\item Host $B$H(B Host1 $B$,0[$J$k>l9g!"(B
ID@Host $B$,4V@\M"=P$5$l$?$3$H$r<($7$F$$$k$N$G!"(B
bindhook $B$OJQ?tI=$K4V@\M"=P%a%C%;!<%8(B
exporting(ID) $B$rJs9p$7$F=*N;$9$k!#(B
\end{enumerate}

\item X $B$K(B fused(out, ID1@Host1) $B$,Js9p$5$l$?$i!"(B
$B$3$N(B bindhook:ID@Host $B$r%U%C%/$7$F$$$k(B fusesusp(out) $B$,(B
bindhook:ID1@Host1 $B$r%U%C%/$7$F$$$kB>$N(B
fusesusp(out) $B$HD>7k$5$l$?$3$H$r<($9!#(B

\begin{enumerate}
\item Host $B$H(B Host1 $B$,F1$8$J$i$P!"F1$81s3V%[%9%H$K(B
ID=ID1 $B$N6qBNCM$rFsEYJs9p$9$kI,MW$O$J$$$N$G!"(B
bindhook:ID@Host $B$OD>7k(B fused(ID, ID1) $B$rJs9p$7$F=*N;$9$k!#(B
%
$B$D$^$j!"0l$D$N(B fusesusp(out) $B$K(B bindhook:ID@Host $B$H(B
bindhook:ID1@Host $B$,%U%C%/$5$l$J$$$h$&$K$9$k!#(B

\item Host $B$H(B Host1 $B$,0[$J$k>l9g!"(BID@Host=ID1@Host1
$B$O%m!<%+%k%[%9%H$+$i$N%^%k%A%-%c%9%H$G$"$k$N$G!"(B
bindhook:ID@Host $B$O2?$b$9$kI,MW$O$J$$!#(B
\end{enumerate}
\end{enumerate}

\fig{fusesusp}


\section{ $BJQ?tI=%*%V%8%'%/%H(B }

\newcommand{\gcvt}{gc\_variable\_tables}

dklicio $B$O!"1s3V%[%9%H$K@\B3$5$l$?%=%1%C%HKh$K0l$D(B
$B$NJQ?tI=$r%m!<%+%k%[%9%HFb$K@8@.$9$k!#(B
%
$B%=%1%C%H$r@\B3$7$?%/%i%$%"%s%H%[%9%HB&$K$"$k$+(B
$B@\B3$5$l$?%5!<%P%[%9%HB&$K$"$k$+$K$h$C$F!"(B
$BJQ?tI=$O(B Side = client / server $B$N$$$:$l$+$NB0@-$r;}$D!#(B

$B%/%i%$%"%s%H%[%9%H$O(B open $B$9$kJ,;6JQ?t$K(B
$B6v?t$+$i@.$k(B ID $B$r3d$jEv$F$k!#(B
$B%5!<%P%[%9%H$O4q?t$K4p$E$$$F(B ID $B$r@8@.$9$k!#(B
$B$3$N$3$H$K$h$C$F!"%/%i%$%"%s%H%[%9%HB&!&%5!<%P%[%9%HB&$G(B
$B3d$jEv$F$i$l$k(B ID $B6u4V$OJ,N%$5$l$F$$$k!#(B

\Opener $B$,$I$A$iB&$G$"$k$+$K$h$C$F(B
\Closer $B$,$I$A$iB&$G$"$k$+$,7hDj$5$l$kLu$G$O$J$$$N$G!"(B
$B$?$H$(JQ?tI=$rM"=PI=$HM"F~I=$KJ,3d$7$F$b(B
$B$=$l$i$rFHN)$K07$&$3$H$O$G$-$J$$!#(B
%
$B$^$?!"(B\Closer $B$K$h$C$FJQ?tI=$rJ,3d$7$?$H$7$F$b(B
$B$d$O$j(B \Opener $B$N(B ID $B6u4V$OJ,N%$7$J$1$l$P$J$i$J$$!#(B
$B$$$:$l$K$;$h!"JQ?tI=$rFHN)$JItJ,I=$KJ,3d$9$k$3$H$O$G$-$J$$!#(B

KLIC $B$N(B GC $B%U%'%$%:$GJQ?tI=$+$iJ,;6JQ?t$X$N(B
$B;2>H$r$?$I$C$F@8B8@-$rH=CG$7$F$O$J$i$J$$!#(B
%
$B$3$N$?$a!"JQ?tI=$O(B KLIC $B$N(B GC $B%U%'%$%:$K$*$1$k%3%T!<=hM}$r(B
KLIC $B=hM}7O$KG$$;$:<+J,$G9T$&%G!<%?%*%V%8%'%/%H$H$7$F<BAu$9$k!#(B

$BJQ?tI=%*%V%8%'%/%H$N%I%i%$%P$G$"$kJQ?t%M!<%`%5!<%P$O!"(B
$B<!$N%a%=%C%I$K$h$C$FJQ?tI=%*%V%8%'%/%H$rA`:n$9$k!#(B
\begin{enumerate}
\item state. $B8=:_$N(B ID $B$N>uBV$r<hF@$9$k%a%=%C%I$G$"$k(B
\item set\_state. ID $B$N>uBV$rJQ99$7$??7$?$JCM$rJV$9%a%=%C%I$G$"$k(B
\item id. ID $B$r<hF@$9$k%a%=%C%I$G$"$k(B
\item var. ID $B$NCM$r<hF@$9$k%a%=%C%I$G$"$k(B
\item add. $B%(%s%H%j$rDI2C$7$??7$?$JI=$rJV$9%a%=%C%I$G$"$k(B
\item bind. ID $B$K6qBNCM$r=q$-9~$s$G?7$?$JI=$rJV$9%a%=%C%I$G$"$k(B
\item fuse. ID $B$HB>$N(B ID1 $B$rD>7k$7$F?7$?$JI=$rJV$9%a%=%C%I$G$"$k(B
\item remove. $B%(%s%H%j(B ID $B$r:o=|$7$??7$?$JI=$rJV$9%a%=%C%I$G$"$k(B
\end{enumerate}

KLIC $B$N(B GC $B%U%'%$%:$,5/$-!"(BKLIC $B=hM}7O$+$i(B
$BJQ?tI=%*%V%8%'%/%H$N(B gc $B%a%=%C%I$,8F$S=P$5$l$k$H!"(B
$BJQ?tI=$O<+J,<+?H$r?7NN0h$X%3%T!<$9$k$,!"(B
$B%(%s%H%j$N%3%T!<$O9T$o$J$$!#(B
$B$?$@$7!"6qBN2=!&D>7k$K$h$C$F(B \Closing $B>uBV$XA+0\$7$?%(%s%H%j$O!"(B
$B$?$H$(%m!<%+%k%[%9%HFb$GGQ4~$5$l$F$b(B \Closed $B>uBV$XA+0\$9$k$^$G$O(B
$B1s3V%[%9%H$GGQ4~$5$l$F$$$J$$2DG=@-$,$"$k$N$G!"%3%T!<$9$kI,MW$,$"$k!#(B

KLIC $B$N(B GC $B%U%'%$%:$N=*N;D>8e$K(B
$BJQ?tI=$N(B GC $B%U%'%$%:$,;O$^$k$h$&$K$9$k$?$a!"(B
$BJQ?tI=$N(B GC $B=hM}$r9T$&(B \gcvt $B4X?t$r(B
KLIC $B=hM}7O$N(B register\_after\_gc\_hook $B$K$h$C$F;vA0$KEPO?$7$F$*$/!#(B

\gcvt $B4X?t$O!"(B
$B%m!<%+%k%[%9%HFb$K$"$kA4$F$NJQ?tI=$N%(%s%H%j$r@5$7$/=q$-D>$9!#(B
%
$B6qBNE*$K$O!"%(%s%H%j$KEPO?$5$l$?JQ?t$,(B
$B?7NN0h$X%3%T!<$5$l$F$$$k$+H]$+$r8!::$9$k!#(B
%
$B?7NN0h$X%3%T!<$5$l$F$$$l$P!"!J(B\Closing $B>uBV$G$J$$!K(B
$B%(%s%H%j$+$iJQ?t$X$N%]%$%s%?$O5lNN0h$r;X$7$?$^$^$K$J$C$F$$$k$N$G!"(B
$B?7NN0h$N%3%T!<$rD>@\;X$9$h$&$K=q$-49$($k!#(B
%
$B%3%T!<$5$l$F$$$J$1$l$P!"(B
$B$=$NJ,;6O@M}JQ?t$OGQ4~$5$l$?$b$N$G$"$k!#(B

KLIC $B$N(B GC $B%U%'%$%:!J$N8e=hM}!K$+$i8F$S=P$5$l$k$?$a!"(B
\gcvt $B4X?t$O%$%s%9%?%s%9%a%=%C%I$G$J$/(B
$B%/%i%9%a%=%C%I$G$J$1$l$P$J$i$J$$!#(B
%
\gcvt $B4X?t$,%m!<%+%k%[%9%HFb$K$"$kA4$F$NJQ?tI=$r07$&$?$a!"(B
$BJQ?tI=$O%R!<%W>e$N%$%s%9%?%s%9JQ?t$G$J$/(B
$B@EE*$J%/%i%9JQ?t$rDL$7$F%j%9%H4IM}$7$F$*$/I,MW$,$"$k!#(B


\section{ $BJQ?t%M!<%`%5!<%P(B }

$BJQ?t%M!<%`%5!<%P$OJQ?tI=%*%V%8%'%/%H$N%I%i%$%P$G$"$j!"(B
$BBh(B\ref{design}$B>O$G=R$Y$?%M!<%`%5!<%P$KAjEv$9$k!#(B

C $B8@8l$K$h$k5-=RItJ,$r>.$5$/C1=c$K$9$k$?$a!"(B
$BJQ?tI=%*%V%8%'%/%H$OHs>o$KC1=c$J%G!<%?%*%V%8%'%/%H$H$7$?!#(B
%
$B$7$+$7!"JQ?tI=$OJQ2=$9$k>uBV$r;}$D%W%m%;%9$G$"$k!#(B
$B=>$C$F!"JQ?tI=$OITJQ$NCM$H$7$F$G$O$J$/(B
$B%W%m%;%9$H$7$F$N%$%s%?%U%'%$%9$r;}$D$Y$-$G$"$k!#(B
%
$BJQ?t%M!<%`%5!<%P$O!"(B
$BCM$H$7$F$N%$%s%?%U%'%$%9$7$+;}$?$J$$JQ?tI=%*%V%8%'%/%H$KBP$7$F(B
$B%W%m%;%9$H$7$F$N%$%s%?%U%'%$%9$r(B decorate $B$9$k!#(B

$BJQ?t%M!<%`%5!<%P$O(B vt, repo $B$NFs$D$NI{%W%m%;%9$+$i@.$k!#(B

vt $BI{%W%m%;%9$O<!$N$h$&$JDL?.O)$r;}$D!#(B
\begin{enumerate}
\item $B%/%i%$%"%s%H(B repo $B$+$i$N(B close $BMW5a%9%H%j!<%`(B
\item $B%/%i%$%"%s%H(B dklicio:varin $B$+$i$N(B
 var, bind, fuse, remove $BMW5a%9%H%j!<%`(B VTi
\item $B%/%i%$%"%s%H(B dklicio:varout $B$+$i$N(B id $BMW5a%9%H%j!<%`(B VTo
\item $BJQ?tI=$KEPO?$5$l$?(B fusesusp(in) / bindhook
$B$+$i$NJs9p%9%H%j!<%`$+$i@.$k%Y%/%?(B
% \item $BJQ?tI=%*%V%8%'%/%H(B
\end{enumerate}

repo $BI{%W%m%;%9$O<!$N$h$&$JDL?.O)$r;}$D!#(B
\begin{enumerate}
\item $BJQ?tI=$KEPO?$5$l$?(B fusesusp(in) / bindhook
$B$+$i$NJs9p%9%H%j!<%`$r0lK\$K%^!<%8$7$?%9%H%j!<%`(B Repo
\item vt $B$X$N(B close $BMW5a%9%H%j!<%`(B
\end{enumerate}


\section{ $B%b%8%e!<%k(B dklicio }

$B%b%8%e!<%k(B dklicio $B$O(B varin / varout $B$H$$$&(B
$BFs$D$NI{%W%m%;%9$+$i@.$k!#(B

varin / varout $B$O$=$l$>$l(B
unwrap / wrap $BItJ,=hM}$rMxMQ$7$F$$$k!#(B

varin $B$+$i(B vaout $B$X$O(B fflush $BMW5a%9%H%j!<%`$,DL$8$F$$$k!#(B

fflush/1 $B%a%C%;!<%8$K$h$C$F(B KLIC $B=hM}7O$,%P%C%U%!$N=q$-=P$7(B
$B$r9T$&$H$9$k$H!"(Bfflush/1 $B%a%C%;!<%8$rE,EY$KM^@)$9$k$3$H$G(B
$B%a%C%;!<%8DL?.$N%P%C%U%!%j%s%0$r9T$&$3$H$K$J$k!#(B

$B$7$+$7!"F~NO$+$i$NFI$_9~$_D>A0$K(B fflush $B$r9T$&$H$$$&5,Ls$O(B
$BDL?.CY1d$rL5;k$G$-$kI8=`F~=PNO$KBP$9$k$b$N$G$"$C$F!"(B
$BJ,;64D6-$K$*$$$F$3$N5,Ls$,E,@Z$G$"$k$+H]$+$O(B
$B<B:]$NDL?.>uBV$rDjNL2=$7$F9M;!$9$kI,MW$,$"$k!#(B

$B62$i$/$3$N5,Ls$O:GE,$G$O$J$$$,!"(B
$B9`$r=PNO$9$kEY$K(B fflush $B$r9T$&4{B8$N;n:n$b$d$O$j:GE,$G$O$J$$$G$"$m$&!#(B
%
$B$^$?!"(Bfflush/1 $B%a%C%;!<%8$K$h$C$F<B:]$K%P%C%U%!%j%s%0$,9T$o$l$k$+H]$+$O(B
$B2<0L%M%C%H%o!<%/$K$b0MB8$9$k$G$"$m$&!#(B

\fig{dklicio}

\vspace{1em}

$B0J>e$G!"(BDKLIC $B=hM}7O$N<BAu$r=*$($k!#(B
%
$B<!>O$G$O!"(BDKLIC $B=hM}7O$K$D$$$FI>2A$H9M;!$r9T$&!#(B

% end
