Files
oldlinux-website/Book-Lite/code-list/html/P12-1.html
2024-03-17 11:58:05 +08:00

3770 lines
167 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name=Generator content="Microsoft Word 14 (filtered)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD>;}
@font-face
{font-family:"\@<40><><EFBFBD><EFBFBD>";
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:"\@<40><><EFBFBD><EFBFBD>";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@<40><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>μ<EFBFBD><CEBC><EFBFBD>";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
h1
{mso-style-link:"<22><><EFBFBD><EFBFBD> 1 Char";
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:7.2pt;
text-align:center;
text-indent:-7.2pt;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
h2
{mso-style-link:"<22><><EFBFBD><EFBFBD> 2 Char";
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
text-indent:0cm;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
h3
{mso-style-link:"<22><><EFBFBD><EFBFBD> 3 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:0cm;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
h4
{mso-style-link:"<22><><EFBFBD><EFBFBD> 4 Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:28.8pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-28.8pt;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
h5
{mso-style-link:"<22><><EFBFBD><EFBFBD> 5 Char";
margin-top:14.0pt;
margin-right:0cm;
margin-bottom:14.5pt;
margin-left:36.0pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-36.0pt;
line-height:156%;
page-break-after:avoid;
font-size:14.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
h6
{mso-style-link:"<22><><EFBFBD><EFBFBD> 6 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:43.2pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-43.2pt;
line-height:133%;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{mso-style-link:"<22><><EFBFBD><EFBFBD> 7 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:50.4pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-50.4pt;
line-height:133%;
page-break-after:avoid;
font-size:12.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{mso-style-link:"<22><><EFBFBD><EFBFBD> 8 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:57.6pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-72.0pt;
line-height:133%;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{mso-style-link:"<22><><EFBFBD><EFBFBD> 9 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:64.8pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-79.2pt;
line-height:133%;
page-break-after:avoid;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:31.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:52.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:63.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:73.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:84.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:94.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:31.5pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:52.5pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:63.0pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:73.5pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:84.0pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
{mso-style-link:"<22><>ע<EFBFBD>ı<EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{mso-style-link:"<22><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{mso-style-link:"ҳü Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
layout-grid-mode:char;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{mso-style-link:<><D2B3> Char";
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-name:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ\,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ1\,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ2";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.MsoTof, li.MsoTof, div.MsoTof
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.MsoFootnoteReference
{vertical-align:super;}
p.MsoList, li.MsoList, div.MsoList
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoList2, li.MsoList2, div.MsoList2
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoList4, li.MsoList4, div.MsoList4
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoDate, li.MsoDate, div.MsoDate
{mso-style-link:"<22><><EFBFBD><EFBFBD> Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:5.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
a:link, span.MsoHyperlink
{mso-style-name:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p
{mso-style-name:"<22><>ͨ\(<28><>վ\)\,<2C><>ͨ \(Web\)\,<2C><>ͨ \(Web\)1\,<2C><>ͨ \(Web\)2\,<2C><>ͨ \(Web\)3";
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
pre
{mso-style-name:"HTML Ԥ<><D4A4><EFBFBD>ʽ\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>1\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>2\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>3";
mso-style-link:"HTML Ԥ<><D4A4><EFBFBD>ʽ Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD> Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>1 Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>2 Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>3 Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
tt
{font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{mso-style-link:"<22><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-link:"<22><>ע<EFBFBD><D7A2><EFBFBD>ı<EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.1, li.1, div.1
{mso-style-name:<EFBFBD><EFBFBD>ʽ1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a, li.a, div.a
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char
{mso-style-name:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a0, li.a0, div.a0
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>;
mso-style-link:"ͼ˵<CDBC><CBB5> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char0
{mso-style-name:"ͼ˵<CDBC><CBB5> Char";
mso-style-link:ͼ˵<EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.0, li.0, div.0
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.10, li.10, div.10
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.11, li.11, div.11
{mso-style-name:<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>1;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.a1, li.a1, div.a1
{mso-style-name:<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3CharChar, li.3CharChar, div.3CharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharCharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.post, li.post, div.post
{mso-style-name:<EFBFBD>ʼ<EFBFBD>post;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3, li.3, div.3
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharChar1CharCharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char1 Char Char Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharChar1CharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char1 Char Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char, li.5Char, div.5Char
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.5CharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5CharChar0, li.5CharChar0, div.5CharChar0
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.5CharCharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char0, li.5Char0, div.5Char0
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5, li.5, div.5
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
layout-grid-mode:char;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.2, li.2, div.2
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.20, li.20, div.20
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.21, li.21, div.21
{mso-style-name:<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3CharCharCharCharChar, li.3CharCharCharCharChar, div.3CharCharCharCharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharCharCharCharCharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char Char Char Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char Char Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a2, li.a2, div.a2
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.110, li.110, div.110
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> 1 + <20><><EFBFBD><EFBFBD>1";
margin-right:0cm;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
span.1Char
{mso-style-name:"<22><><EFBFBD><EFBFBD> 1 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 1";
font-weight:bold;}
p.22, li.22, div.22
{mso-style-name:"<22><>ʽ <20>б<EFBFBD> 2 + <20><><EFBFBD><EFBFBD>";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.23, li.23, div.23
{mso-style-name:<EFBFBD>б<EFBFBD>2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.50, li.50, div.50
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.111, li.111, div.111
{mso-style-name:<EFBFBD><EFBFBD>ʽ11;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.12, li.12, div.12
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.13, li.13, div.13
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.01, li.01, div.01
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>01;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.112, li.112, div.112
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.113, li.113, div.113
{mso-style-name:<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>11;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.14, li.14, div.14
{mso-style-name:<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3Char1, li.3Char1, div.3Char1
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.post1, li.post1, div.post1
{mso-style-name:<EFBFBD>ʼ<EFBFBD>post1;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.31, li.31, div.31
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>31;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char1, li.5Char1, div.5Char1
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5CharChar1, li.5CharChar1, div.5CharChar1
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char10, li.5Char10, div.5Char10
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.51, li.51, div.51
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.120, li.120, div.120
{mso-style-name:<EFBFBD><EFBFBD>ʽ12;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.02, li.02, div.02
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>02;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.121, li.121, div.121
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>12;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.122, li.122, div.122
{mso-style-name:<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>12;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.3Char2, li.3Char2, div.3Char2
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.post2, li.post2, div.post2
{mso-style-name:<EFBFBD>ʼ<EFBFBD>post2;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.32, li.32, div.32
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char2, li.5Char2, div.5Char2
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.52, li.52, div.52
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD><EFBFBD>2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3CharCharCharChar, li.3CharCharCharChar, div.3CharCharCharChar
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.130, li.130, div.130
{mso-style-name:<EFBFBD><EFBFBD>ʽ13;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.30, li.30, div.30
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.03, li.03, div.03
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>03;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.131, li.131, div.131
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>13;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.132, li.132, div.132
{mso-style-name:<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>13;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.33, li.33, div.33
{mso-style-name:<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3Char3, li.3Char3, div.3Char3
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char3";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.post3, li.post3, div.post3
{mso-style-name:<EFBFBD>ʼ<EFBFBD>post3;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.330, li.330, div.330
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>33;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char20, li.5Char20, div.5Char20
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5CharChar2, li.5CharChar2, div.5CharChar2
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.5Char3, li.5Char3, div.5Char3
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<D0A1><35> Char3";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.53, li.53, div.53
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.3Char, li.3Char, div.3Char
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char5";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharChar5
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char5";
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.54, li.54, div.54
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
line-height:9.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.24, li.24, div.24
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>Ŵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.15, li.15, div.15
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> 1 + <20><><EFBFBD><EFBFBD>";
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.25, li.25, div.25
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> 2 + <20>о<EFBFBD>\: <20><><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD>";
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:28.9pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-28.9pt;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
span.2Char
{mso-style-name:"<22><><EFBFBD><EFBFBD> 2 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 2";
font-family:"Arial","sans-serif";
font-weight:bold;}
p.34, li.34, div.34
{mso-style-name:<EFBFBD>б<EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.35, li.35, div.35
{mso-style-name:<EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.4, li.4, div.4
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>4;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.40, li.40, div.40
{mso-style-name:<EFBFBD>б<EFBFBD>4;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.41, li.41, div.41
{mso-style-name:<EFBFBD><EFBFBD>4;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.55, li.55, div.55
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.56, li.56, div.56
{mso-style-name:<EFBFBD>б<EFBFBD>5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.57, li.57, div.57
{mso-style-name:<EFBFBD><EFBFBD>5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.6, li.6, div.6
{mso-style-name:<EFBFBD>б<EFBFBD>6;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.60, li.60, div.60
{mso-style-name:<EFBFBD><EFBFBD>6;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.61, li.61, div.61
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>6;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.7, li.7, div.7
{mso-style-name:<EFBFBD>б<EFBFBD>7;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.70, li.70, div.70
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>7;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.71, li.71, div.71
{mso-style-name:<EFBFBD><EFBFBD>7;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.8, li.8, div.8
{mso-style-name:<EFBFBD>б<EFBFBD>8;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.9, li.9, div.9
{mso-style-name:<EFBFBD>б<EFBFBD>9;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.90, li.90, div.90
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>9;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.100, li.100, div.100
{mso-style-name:<EFBFBD>б<EFBFBD>10;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.101, li.101, div.101
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>10;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.114, li.114, div.114
{mso-style-name:<EFBFBD>б<EFBFBD>11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.115, li.115, div.115
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.116, li.116, div.116
{mso-style-name:<EFBFBD><EFBFBD>11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.123, li.123, div.123
{mso-style-name:<EFBFBD>б<EFBFBD>12;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.124, li.124, div.124
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>12;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.133, li.133, div.133
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>13;
mso-style-link:"ͼ˵<CDBC><CBB5>13 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.13Char
{mso-style-name:"ͼ˵<CDBC><CBB5>13 Char";
mso-style-link:ͼ˵<EFBFBD><EFBFBD>13;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.134, li.134, div.134
{mso-style-name:<EFBFBD>б<EFBFBD>13;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.26, li.26, div.26
{mso-style-name:<EFBFBD><EFBFBD>¼2;
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.36, li.36, div.36
{mso-style-name:<EFBFBD><EFBFBD>¼3;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
span.3Char0
{mso-style-name:"<22><><EFBFBD><EFBFBD> 3 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 3";
font-family:"Arial","sans-serif";
font-weight:bold;}
p.16, li.16, div.16
{mso-style-name:<EFBFBD><EFBFBD>¼1;
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.17, li.17, div.17
{mso-style-name:<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.42, li.42, div.42
{mso-style-name:<EFBFBD><EFBFBD>¼4;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
span.4Char
{mso-style-name:"<22><><EFBFBD><EFBFBD> 4 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 4";
font-family:"Arial","sans-serif";
font-weight:bold;}
p.a3, li.a3, div.a3
{mso-style-name:<EFBFBD><EFBFBD>¼ͼ˵<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.27, li.27, div.27
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2;
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:28.8pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-28.8pt;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.a4, li.a4, div.a4
{mso-style-name:<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.18, li.18, div.18
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.19, li.19, div.19
{mso-style-name:<EFBFBD>б<EFBFBD>1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.1a, li.1a, div.1a
{mso-style-name:<EFBFBD><EFBFBD>1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.37, li.37, div.37
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.62, li.62, div.62
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
layout-grid-mode:char;
font-size:7.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a5, li.a5, div.a5
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char1
{mso-style-name:"<22><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.43, li.43, div.43
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> 4 +";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.140, li.140, div.140
{mso-style-name:<EFBFBD><EFBFBD>14;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.141, li.141, div.141
{mso-style-name:ͼ˵<EFBFBD><EFBFBD>14;
mso-style-link:"ͼ˵<CDBC><CBB5>14 Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.14Char
{mso-style-name:"ͼ˵<CDBC><CBB5>14 Char";
mso-style-link:ͼ˵<EFBFBD><EFBFBD>14;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a6, li.a6, div.a6
{mso-style-name:<EFBFBD>ļ<EFBFBD>Ŀ¼<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a7, li.a7, div.a7
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> +";
mso-style-link:"<22><>ʽ <20><><EFBFBD><EFBFBD> + Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char2
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> + Char";
mso-style-link:"<22><>ʽ <20><><EFBFBD><EFBFBD> +";
font-family:"Times New Roman","serif";}
p.a8, li.a8, div.a8
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.a9, li.a9, div.a9
{mso-style-name:<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>ע;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.aa, li.aa, div.aa
{mso-style-name:ͼ<EFBFBD><EFBFBD>ע;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.ab, li.ab, div.ab
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.ac, li.ac, div.ac
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin-top:0cm;
margin-right:21.0pt;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.125, li.125, div.125
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD> 1 + <20><><EFBFBD><EFBFBD>2";
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.ad, li.ad, div.ad
{mso-style-name:"<22><>ʽ <20><>ע + <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.1b, li.1b, div.1b
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1;
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
line-height:240%;
page-break-after:avoid;
font-size:16.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
p.38, li.38, div.38
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:12.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD>;}
p.63, li.63, div.63
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:7.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.64, li.64, div.64
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
layout-grid-mode:char;
font-size:7.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.65, li.65, div.65
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD>;
mso-style-link:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><36> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:10.0pt;
layout-grid-mode:char;
font-size:7.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.6Char
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><36> Char";
mso-style-link:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.ae, li.ae, div.ae
{mso-style-name:ͼ<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.28, li.28, div.28
{mso-style-name:ͼ<EFBFBD><EFBFBD>2;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af, li.af, div.af
{mso-style-name:ϰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:14.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.1c, li.1c, div.1c
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>1;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:16.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af0, li.af0, div.af0
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.af1, li.af1, div.af1
{mso-style-name:"<22><>ʽ <20><>ע + <20><><EFBFBD><EFBFBD>";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.ListTitle, li.ListTitle, div.ListTitle
{mso-style-name:ListTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.FigureTitle, li.FigureTitle, div.FigureTitle
{mso-style-name:FigureTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.TableTitle, li.TableTitle, div.TableTitle
{mso-style-name:TableTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.ProgramTitle, li.ProgramTitle, div.ProgramTitle
{mso-style-name:ProgramTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.RightText, li.RightText, div.RightText
{mso-style-name:RightText;
margin-top:0cm;
margin-right:21.0pt;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af2, li.af2, div.af2
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af3, li.af3, div.af3
{mso-style-name:<EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22>ؼ<EFBFBD><D8BC><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char3
{mso-style-name:"<22>ؼ<EFBFBD><D8BC><EFBFBD> Char";
mso-style-link:<EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af4, li.af4, div.af4
{mso-style-name:<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22>ļ<EFBFBD><C4BC><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char4
{mso-style-name:"<22>ļ<EFBFBD><C4BC><EFBFBD> Char";
mso-style-link:<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af5, li.af5, div.af5
{mso-style-name:ѡ<EFBFBD><EFBFBD>;
mso-style-link:"ѡ<><D1A1> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char5
{mso-style-name:"ѡ<><D1A1> Char";
mso-style-link:ѡ<EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af6, li.af6, div.af6
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char6
{mso-style-name:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af7, li.af7, div.af7
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char7
{mso-style-name:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.af8, li.af8, div.af8
{mso-style-name:<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char8
{mso-style-name:"<22>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:"Times New Roman","serif";}
p.af9, li.af9, div.af9
{mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-link:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Char9
{mso-style-name:"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.58, li.58, div.58
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.59, li.59, div.59
{mso-style-name:ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С5<EFBFBD>ſ<EFBFBD><EFBFBD><EFBFBD>;
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
p.926, li.926, div.926
{mso-style-name:"<22><>ʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD>\: 9\.26 <20><><EFBFBD><EFBFBD>";
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:10.0pt;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.5Char4
{mso-style-name:"<22><><EFBFBD><EFBFBD> 5 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 5";
font-weight:bold;}
span.6Char0
{mso-style-name:"<22><><EFBFBD><EFBFBD> 6 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 6";
font-family:"Arial","sans-serif";
font-weight:bold;}
span.7Char
{mso-style-name:"<22><><EFBFBD><EFBFBD> 7 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 7";
font-weight:bold;}
span.8Char
{mso-style-name:"<22><><EFBFBD><EFBFBD> 8 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 8";
font-family:"Arial","sans-serif";}
span.9Char
{mso-style-name:"<22><><EFBFBD><EFBFBD> 9 Char";
mso-style-link:"<22><><EFBFBD><EFBFBD> 9";
font-family:"Arial","sans-serif";}
span.Chara
{mso-style-name:"<22><>ע<EFBFBD>ı<EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD>ע<EFBFBD>ı<EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Charb
{mso-style-name:"<22><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Charc
{mso-style-name:"ҳü Char";
mso-style-link:ҳü;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Chard
{mso-style-name:<><D2B3> Char";
mso-style-link:ҳ<EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Chare
{mso-style-name:"<22><><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.HTMLChar
{mso-style-name:"HTML Ԥ<><D4A4><EFBFBD>ʽ Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD> Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>1 Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>2 Char\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>3 Char";
mso-style-link:"HTML Ԥ<><D4A4><EFBFBD>ʽ\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>1\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>2\,HTML Ԥ<>ȸ<EFBFBD>ʽ<EFBFBD><CABD>3";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.Charf
{mso-style-name:"<22><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
font-weight:bold;}
span.Charf0
{mso-style-name:"<22><>ע<EFBFBD><D7A2><EFBFBD>ı<EFBFBD> Char";
mso-style-link:<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>;
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharChar1
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char1";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
span.3CharChar3
{mso-style-name:<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char3";
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
.MsoChpDefault
{font-size:10.0pt;}
/* Page Definitions */
@page WordSection1
{size:595.3pt 841.9pt;
margin:72.0pt 54.0pt 72.0pt 54.0pt;
layout-grid:15.6pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
</head>
<body lang=ZH-CN link=blue vlink=purple style='text-justify-trim:punctuation'>
<div class=WordSection1 style='layout-grid:15.6pt'>
<p class=ab><a name="_Toc53320636"><span style='font-family:<3A><><EFBFBD><EFBFBD>'><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span
lang=EN-US>12-1 linux/fs/buffer.c</span></a></p>
<div class=a align=center style='text-align:center'><span lang=EN-US>
<hr size=4 width="100%" align=center>
</span></div>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>1</span></u> <b><i>/*</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>2</span></u> <b><i>&nbsp;*&nbsp;
linux/fs/buffer.c</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>3</span></u> <b><i>&nbsp;*</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>4</span></u> <b><i>&nbsp;*&nbsp;
(C) 1991&nbsp; Linus Torvalds</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>5</span></u> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>6</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>7</span></u> <b><i>/*</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>8</span></u> <b><i>&nbsp;*&nbsp;
'buffer.c' implements the buffer-cache functions. Race-conditions have</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>9</span></u> <b><i>&nbsp;*
been avoided by NEVER letting a interrupt change a buffer (except for the</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>10</span></u> <b><i>&nbsp;*
data, of course), but instead letting the caller do it. NOTE! As interrupts</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>11</span></u> <b><i>&nbsp;*
can wake up a caller, some cli-sti sequences are needed to check for</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>12</span></u> <b><i>&nbsp;*
sleep-on-calls. These should be extremely quick, though (I hope).</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>13</span></u> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * 'buffer.c'</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD>ܡ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϿ<EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ָ<EFBFBD><span
lang=EN-US>cli-sti</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD>ö<EFBFBD>˯<EFBFBD>ߡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>dz<EFBFBD><EFBFBD>ؿ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>14</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>15</span></u> <b><i>/*</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>16</span></u> <b><i>&nbsp;*
NOTE! There is one discordant note here: checking floppies for</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>17</span></u> <b><i>&nbsp;*
disk change. This is where it fits best, I think, as it should</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>18</span></u> <b><i>&nbsp;*
invalidate changed floppy-disk-caches.</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>19</span></u> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span>ע<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĵط<EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫʹ<EFBFBD>Ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD>ʧЧ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>20</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>21</span></u>
#include &lt;stdarg.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>-</span><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>(va_list)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>(va_start,
va_arg</span><EFBFBD><EFBFBD><span lang=EN-US>va_end)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// vsprintf</span><EFBFBD><EFBFBD><span lang=EN-US>vprintf</span><EFBFBD><EFBFBD><span lang=EN-US>vfprintf</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>22</span></u>&nbsp;
</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>23</span></u>
#include &lt;linux/config.h&gt; // </span><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><span lang=EN-US>HD_TYPE</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>24</span></u>
#include &lt;linux/sched.h&gt;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ȳ<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>task_struct</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>úͻ<EFBFBD>ȡ<EFBFBD><EFBFBD>Ƕ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>25</span></u>
#include &lt;linux/kernel.h&gt; // </span><EFBFBD>ں<EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD>ں˳<EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>ζ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>26</span></u> #include
&lt;asm/system.h&gt;&nbsp;&nbsp; // </span>ϵͳͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>/</span><EFBFBD>ж<EFBFBD><EFBFBD>ŵȵ<EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>27</span></u>
#include &lt;asm/io.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // io</span>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>/</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>28</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>end</span><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>ld</span><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ģ<EFBFBD><EFBFBD>ĩ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>λ<EFBFBD>ã<EFBFBD><EFBFBD>μ<EFBFBD><b><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>!</span>δ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD></b><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>Դӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD> <span lang=EN-US>System.map</span><EFBFBD>ļ<EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ں˴<EFBFBD><EFBFBD><EFBFBD>ĩ<EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>33</span><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><span
lang=EN-US>buffer_wait</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b_wait</span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD>л<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻᱻ<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><span
lang=EN-US>buffer_wait</span>˯<EFBFBD>ߵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b_wait</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD>Ź<EFBFBD><EFBFBD>ȴ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>b_wait</span><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õĵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>29</span></u>
extern int <u><span style='color:blue'>end</span></u>;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>30</span></u>
struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>start_buffer</span></u> = (struct <u><span style='color:
blue'>buffer_head</span></u> *) &amp;<u><span style='color:blue'>end</span></u>;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>31</span></u>
struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>hash_table</span></u>[<u><span style='color:blue'>NR_HASH</span></u>];&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// NR_HASH = 307</span><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>32</span></u>
static struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>free_list</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>33</span></u>
static struct <u><span style='color:blue'>task_struct</span></u> * <u><span
style='color:blue'>buffer_wait</span></u> = <u><span style='color:blue'>NULL</span></u>;&nbsp;
// </span><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><EFBFBD>еĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>NR_BUFFERS</span><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>linux/fs.h</span>ͷ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>48</span><EFBFBD>еĺ꣬<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>nr_buffers</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>fs.h</span><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>172</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊȫ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><span
lang=EN-US>Linus</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>ʾ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // nr_buffers</span><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں˳<EFBFBD>ʼ<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ٸı<EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>buffer_init()</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>371</span><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>34</span></u> int
<u><span style='color:blue'>NR_BUFFERS</span></u> =
0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//
</span>ϵͳ<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>35</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD>ȴ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>bh</span><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD>̲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϵ<EFBFBD>˯<EFBFBD><EFBFBD><EFBFBD>ڸû<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b_wait</span><EFBFBD>С<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ڻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD>ڹر<EFBFBD><EFBFBD>жϣ<EFBFBD><span
lang=EN-US>cli</span><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>ȥ˯</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ߵģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>жϡ<EFBFBD><EFBFBD><EFBFBD>Ϊÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>TSS</span><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD>־<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>EFLAGS</span><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>ʱ<span lang=EN-US>CPU</span><EFBFBD>е<EFBFBD>ǰ<span
lang=EN-US>EFLAGS</span><EFBFBD><EFBFBD>ֵҲ<EFBFBD><EFBFBD>֮<EFBFBD>ı</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ʹ<EFBFBD><EFBFBD><span lang=EN-US>sleep_on()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD>״̬<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><span
lang=EN-US>wake_up()</span><EFBFBD><EFBFBD>ȷ<EFBFBD>ػ<EFBFBD><EFBFBD>ѡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>36</span></u>
static inline void <u><span style='color:blue'>wait_on_buffer</span></u>(struct
<u><span style='color:blue'>buffer_head</span></u> * bh)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>37</span></u> {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>38</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>cli</span></u>();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD>жϡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>39</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
while (bh-&gt;b_lock)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>ߣ<EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>40</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sleep_on</span></u>(&amp;bh-&gt;b_wait);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>41</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sti</span></u>();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD>жϡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>42</span></u> }</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>43</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><span
lang=EN-US>sync_inodes()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>inode.c</span><EFBFBD><EFBFBD><span
lang=EN-US>59</span><EFBFBD>С<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>44</span></u> int
<u><span style='color:blue'>sys_sync</span></u>(void)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>45</span></u> {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>46</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
int i;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>47</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
struct <u><span style='color:blue'>buffer_head</span></u> * bh;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>48</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><span
lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸Ĺ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>Ȼ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD>޸ĵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣬽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>49</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sync_inodes</span></u>(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b><i>/*
write out inodes into buffers */</i></b> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>50</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh = <u><span style='color:blue'>start_buffer</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// bh</span>ָ<EFBFBD>򻺳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>51</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (i=0 ; i&lt;<u><span style='color:blue'>NR_BUFFERS</span></u> ; i++,bh++) {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>52</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>53</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dirt)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>54</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>WRITE</span></u>,bh);&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>55</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>56</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return 0;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>57</span></u> }</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>58</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>dev</span><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD>޸<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>dev</span>ִ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>д<EFBFBD>̲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>59</span></u> int
<u><span style='color:blue'>sync_dev</span></u>(int dev)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>60</span></u> {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>61</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
int i;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>62</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
struct <u><span style='color:blue'>buffer_head</span></u> * bh;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>63</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ȶԲ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp; &nbsp;&nbsp;// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>dev</span><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp; &nbsp;&nbsp;// </span><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>ߵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>һ<EFBFBD>θû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp; &nbsp;&nbsp;// </span><EFBFBD><EFBFBD><EFBFBD>޸Ĺ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b_dirt</span><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǾͶ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>д<EFBFBD>̲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp; &nbsp;&nbsp;// </span><EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD>ͷŻ<EFBFBD><EFBFBD>߱<EFBFBD>Ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>Ҫ<EFBFBD>ٴ<EFBFBD><EFBFBD>ж<EFBFBD>һ<EFBFBD>¸û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp; &nbsp;&nbsp;// </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>64</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh = <u><span style='color:blue'>start_buffer</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// bh</span>ָ<EFBFBD>򻺳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>65</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (i=0 ; i&lt;<u><span style='color:blue'>NR_BUFFERS</span></u> ; i++,bh++) {&nbsp;&nbsp;&nbsp;
</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>66</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev != dev)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>dev</span><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>67</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
continue;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>68</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>69</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev == dev &amp;&amp; bh-&gt;b_dirt)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>70</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>WRITE</span></u>,bh);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>71</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ٽ<EFBFBD><span lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD><EFBFBD><span lang=EN-US style='color:#333333'>inode_table</span><span
style='color:#333333'><EFBFBD>е<EFBFBD><span lang=EN-US>inode</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>Ϣͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>72</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sync_inodes</span></u>();</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>Ȼ<EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ٰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD>ִ<EFBFBD><EFBFBD>Ч<EFBFBD>ʡ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // i</span><EFBFBD>ڵ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD>Чִ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>73</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh = <u><span style='color:blue'>start_buffer</span></u>;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>74</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (i=0 ; i&lt;<u><span style='color:blue'>NR_BUFFERS</span></u> ; i++,bh++) {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>75</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev != dev)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>76</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
continue;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>77</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>78</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev == dev &amp;&amp; bh-&gt;b_dirt)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>79</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>WRITE</span></u>,bh);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>80</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>81</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return 0;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>82</span></u> }</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>83</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span>ʹָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD>鸴λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<span
lang=EN-US>(</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>)</span><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<EFBFBD>־<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>84</span></u>
void inline <u><span style='color:blue'>invalidate_buffers</span></u>(int dev)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>85</span></u> {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>86</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
int i;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>87</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
struct <u><span style='color:blue'>buffer_head</span></u> * bh;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>88</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>89</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh = <u><span style='color:blue'>start_buffer</span></u>;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>90</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
for (i=0 ; i&lt;<u><span style='color:blue'>NR_BUFFERS</span></u> ; i++,bh++) {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>91</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev !=
dev)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //
</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>92</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
continue;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>93</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ȴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>й<EFBFBD>˯<EFBFBD>ߵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>һ<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>94</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev == dev)</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>95</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_uptodate = bh-&gt;b_dirt = 0;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>96</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>97</span></u> }</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>98</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>99</span></u> <b><i>/*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>100</span></u><span
lang=EN-US> <b><i>&nbsp;* This routine checks whether a floppy has been
changed, and</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>101</span></u><span
lang=EN-US> <b><i>&nbsp;* invalidates all buffer-cache-entries in that case.
This</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>102</span></u><span
lang=EN-US> <b><i>&nbsp;* is a relatively slow routine, so we have to try to
minimize using</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>103</span></u><span
lang=EN-US> <b><i>&nbsp;* it. Thus it is called only upon a 'mount' or 'open'.
This</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>104</span></u><span
lang=EN-US> <b><i>&nbsp;* is the best way of combining speed and utility, I
think.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>105</span></u><span
lang=EN-US> <b><i>&nbsp;* People changing diskettes in the middle of an
operation deserve</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>106</span></u><span
lang=EN-US> <b><i>&nbsp;* to loose :-)</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>107</span></u><span
lang=EN-US> <b><i>&nbsp;*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>108</span></u><span
lang=EN-US> <b><i>&nbsp;* NOTE! Although currently this is only for floppies,
the idea is</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>109</span></u><span
lang=EN-US> <b><i>&nbsp;* that any additional removable block-device will use
this routine,</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>110</span></u><span
lang=EN-US> <b><i>&nbsp;* and that mount/open needn't know that
floppies/whatever are</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>111</span></u><span
lang=EN-US> <b><i>&nbsp;* special.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>112</span></u><span
lang=EN-US> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><span
lang=EN-US>'mount'</span><EFBFBD><EFBFBD><span lang=EN-US>'open'</span>ʱ<EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD>ٶȺ<EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD>ͻᵼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĶ<EFBFBD>ʧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<span
lang=EN-US style='font-family:Wingdings'>J</span><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; *</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD>Ժ<EFBFBD><EFBFBD>κο<EFBFBD><EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵĿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ø<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>mount/open</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>113</span></u><span
lang=EN-US> void <u><span style='color:blue'>check_disk_change</span></u>(int
dev)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>114</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>115</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>116</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD>֧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>Ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>floppy_change()</span><EFBFBD><EFBFBD><span lang=EN-US>blk_drv/floppy.c</span><EFBFBD><EFBFBD><span
lang=EN-US>139</span><EFBFBD>С<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>117</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (<u><span
style='color:blue'>MAJOR</span></u>(dev) != 2)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>118</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>119</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!<u><span
style='color:blue'>floppy_change</span></u>(dev &amp; 0x03))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>120</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷŶ<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD>λͼ<EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD>λͼ<EFBFBD><EFBFBD>ռ<EFBFBD>ĸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>i</span><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>121</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0 ; i&lt;<u><span
style='color:blue'>NR_SUPER</span></u> ; i++)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>122</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (<u><span style='color:blue'>super_block</span></u>[i].s_dev == dev)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>123</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>put_super</span></u>(<u><span style='color:blue'>super_block</span></u>[i].s_dev);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>124</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>invalidate_inodes</span></u>(dev);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>125</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<u><span
style='color:blue'>invalidate_buffers</span></u>(dev);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>126</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>127</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>hash</span><EFBFBD><EFBFBD>ɢ<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD>ұȽ<EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD>ʱ<EFBFBD>䡣ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>صĴ洢λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><span
lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǾͿ<EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD>ѯ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ɢ<EFBFBD>е<EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD>ʻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ж<EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>Linux 0.12</span><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹ؼ<EFBFBD><EFBFBD>ֳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>ҵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>dev</span><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>block</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ؼ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>Ǽ<EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>ֵ<EFBFBD><EFBFBD>һ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶԹؼ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>MOD</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><EFBFBD>Ա<EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD>ڡ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>128</span></u><span
lang=EN-US> #define <u><span style='color:blue'>_hashfn</span></u>(dev,block)
(((unsigned)(dev^block))%<u><span style='color:blue'>NR_HASH</span></u>)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>129</span></u><span
lang=EN-US> #define <u><span style='color:blue'>hash</span></u>(dev,block) <u><span
style='color:blue'>hash_table</span></u>[<u><span style='color:blue'>_hashfn</span></u>(dev,block)]</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>130</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD>кͿ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>131</span></u><span
lang=EN-US> static inline void <u><span style='color:blue'>remove_from_queues</span></u>(struct
<u><span style='color:blue'>buffer_head</span></u> * bh)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>132</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>133</span></u><span
lang=EN-US> <b><i>/* remove from hash-queue */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* </span><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US> */</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>134</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bh-&gt;b_next)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>135</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_next-&gt;b_prev = bh-&gt;b_prev;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>136</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bh-&gt;b_prev)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>137</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_prev-&gt;b_next = bh-&gt;b_next;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹö<EFBFBD><EFBFBD>е<EFBFBD>ͷһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>Ӧ<EFBFBD><EFBFBD>ָ<EFBFBD>򱾶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>138</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (<u><span
style='color:blue'>hash</span></u>(bh-&gt;b_dev,bh-&gt;b_blocknr) == bh)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>139</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<u><span
style='color:blue'>hash</span></u>(bh-&gt;b_dev,bh-&gt;b_blocknr) =
bh-&gt;b_next;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>140</span></u><span
lang=EN-US> <b><i>/* remove from free list */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* </span><EFBFBD>ӿ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US> */</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>141</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(!(bh-&gt;b_prev_free) || !(bh-&gt;b_next_free))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>142</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>panic</span></u>(<i>&quot;Free block list
corrupted&quot;</i>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>143</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_prev_free-&gt;b_next_free = bh-&gt;b_next_free;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>144</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_next_free-&gt;b_prev_free = bh-&gt;b_prev_free;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD>򱾻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>145</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (<u><span
style='color:blue'>free_list</span></u> == bh)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>146</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>free_list</span></u> = bh-&gt;b_next_free;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>147</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>148</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>149</span></u><span
lang=EN-US> static inline void <u><span style='color:blue'>insert_into_queues</span></u>(struct
<u><span style='color:blue'>buffer_head</span></u> * bh)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>150</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>151</span></u><span
lang=EN-US> <b><i>/* put at end of free list */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* </span><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩβ<EFBFBD><EFBFBD><span
lang=EN-US> */</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>152</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_next_free
= <u><span style='color:blue'>free_list</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>153</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_prev_free
= <u><span style='color:blue'>free_list</span></u>-&gt;b_prev_free;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>154</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>free_list</span></u>-&gt;b_prev_free-&gt;b_next_free = bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>155</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>free_list</span></u>-&gt;b_prev_free = bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>156</span></u><span
lang=EN-US> <b><i>/* put the buffer in new hash-queue if it has a device */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US> */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>ע<EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>1</span><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><span lang=EN-US>hash()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>϶<EFBFBD>Ϊ<span lang=EN-US>NULL</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD>ʱ<EFBFBD><EFBFBD><span
lang=EN-US>161</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>bh-&gt;b_next</span><EFBFBD>϶<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>NULL</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><span lang=EN-US>163</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>bh-&gt;b_next</span><EFBFBD><EFBFBD>Ϊ<span
lang=EN-US>NULL</span>ʱ<EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // b_prev</span><EFBFBD><EFBFBD><span
lang=EN-US>bh</span>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>163</span><EFBFBD><EFBFBD>ǰӦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϡ<EFBFBD><span lang=EN-US>if
(bh-&gt;b_next)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>0.96</span><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>157</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_prev = <u><span
style='color:blue'>NULL</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>158</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_next = <u><span
style='color:blue'>NULL</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>159</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!bh-&gt;b_dev)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>160</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>161</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_next = <u><span
style='color:blue'>hash</span></u>(bh-&gt;b_dev,bh-&gt;b_blocknr);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>162</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>hash</span></u>(bh-&gt;b_dev,bh-&gt;b_blocknr) = bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>163</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_next-&gt;b_prev = bh; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//
</span><EFBFBD>˾<EFBFBD>ǰӦ<EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><span lang=EN-US>if (bh-&gt;b_next)</span><EFBFBD><EFBFBD><EFBFBD>жϡ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>164</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>165</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>Ҹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>򷵻ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD><span
lang=EN-US>NULL</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>166</span></u><span
lang=EN-US> static struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>find_buffer</span></u>(int dev, int block)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>167</span></u><span
lang=EN-US>
{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>168</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * tmp;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>169</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>źͿ<EFBFBD>ŵĻ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>170</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (tmp = <u><span
style='color:blue'>hash</span></u>(dev,block) ; tmp != <u><span
style='color:blue'>NULL</span></u> ; tmp = tmp-&gt;b_next)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>171</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (tmp-&gt;b_dev==dev &amp;&amp; tmp-&gt;b_blocknr==block)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>172</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return tmp;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>173</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return <u><span
style='color:blue'>NULL</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>174</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>175</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>176</span></u><span
lang=EN-US> <b><i>/*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>177</span></u><span
lang=EN-US> <b><i>&nbsp;* Why like this, I hear you say... The reason is
race-conditions.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>178</span></u><span
lang=EN-US> <b><i>&nbsp;* As we don't lock buffers (unless we are readint them,
that is),</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>179</span></u><span
lang=EN-US> <b><i>&nbsp;* something might happen to it while we sleep (ie a
read-error</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>180</span></u><span
lang=EN-US> <b><i>&nbsp;* will force it bad). This shouldn't really happen
currently, but</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>181</span></u><span
lang=EN-US> <b><i>&nbsp;* the code is ready.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>182</span></u><span
lang=EN-US> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʲô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>... </span>ԭ<EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ж<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>˯<EFBFBD><EFBFBD>ʱ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻᷢ<EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󽫵<EFBFBD><EFBFBD>¸û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀǰ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>Ըû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD>ͷָ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>183</span></u><span
lang=EN-US> struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>get_hash_table</span></u>(int dev, int block)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>184</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>185</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>186</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>187</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (;;) {</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>Ҹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>򷵻<EFBFBD><span
lang=EN-US>NULL</span><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>188</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!(bh=<u><span style='color:blue'>find_buffer</span></u>(dev,block)))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>189</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return <u><span style='color:blue'>NULL</span></u>;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>Ըû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ԣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>190</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_count++;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>191</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>192</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_dev == dev &amp;&amp; bh-&gt;b_blocknr == block)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>193</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return bh;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD>ʱ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD>ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>ҡ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>194</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_count--;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>195</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;}</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>196</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>197</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>198</span></u><span
lang=EN-US> <b><i>/*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>199</span></u><span
lang=EN-US> <b><i>&nbsp;* Ok, this is getblk, and it isn't very clear, again to
hinder</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>200</span></u><span
lang=EN-US> <b><i>&nbsp;* race-conditions. Most of the code is seldom used, (ie
repeating),</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>201</span></u><span
lang=EN-US> <b><i>&nbsp;* so it should be much more efficient than it looks.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>202</span></u><span
lang=EN-US> <b><i>&nbsp;*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>203</span></u><span
lang=EN-US> <b><i>&nbsp;* The algoritm is changed: hopefully better, and an
elusive bug removed.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>204</span></u><span
lang=EN-US> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * OK</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>getblk</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪҪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д󲿷ִ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>(</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD>ȿ<EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>öࡣ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; *</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸ı䣺ϣ<EFBFBD><EFBFBD><EFBFBD>ܸ<EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĥ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>жϻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<EFBFBD>־<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>205</span></u><span
lang=EN-US> #define <u><span style='color:blue'>BADNESS</span></u>(bh)
(((bh)-&gt;b_dirt&lt;&lt;1)+(bh)-&gt;b_lock)</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span>ȡ<EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źͿ<EFBFBD>ţ<EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>򷵻ض<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD>źͿ<EFBFBD>ŵ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>206</span></u><span
lang=EN-US> struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>getblk</span></u>(int dev,int block)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>207</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>208</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * tmp, * bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>209</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>210</span></u><span
lang=EN-US> repeat:</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD>򷵻ض<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>211</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bh = <u><span
style='color:blue'>get_hash_table</span></u>(dev,block))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>212</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return bh;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>ҿ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>tmp</span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>213</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp = <u><span
style='color:blue'>free_list</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>214</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do {</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b_count=0</span><EFBFBD>Ŀ飬</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ǰû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĿ鲻һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹɾ<EFBFBD><EFBFBD>ģ<EFBFBD><span
lang=EN-US>b_dirt=0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><span lang=EN-US>b_lock=0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ˣ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>Ǹÿ<EFBFBD><span lang=EN-US>b_count
= 0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b_lock</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD> <span
lang=EN-US>breada()</span>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֻҪ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // ll_rw_block()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>ݼ<EFBFBD><span
lang=EN-US>b_count</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD>̷<EFBFBD><EFBFBD>ʲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD>У<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>˴<EFBFBD>ʱ<span lang=EN-US>b_lock=1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>b_count=0</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>215</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (tmp-&gt;b_count)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>216</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
continue;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD><span
lang=EN-US>bh</span>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>tmp</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ı<EFBFBD>־<span lang=EN-US>(</span><EFBFBD>޸ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>)</span>Ȩ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><span lang=EN-US>bh</span>ͷ<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>Ȩ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>bh</span>ָ<EFBFBD><EFBFBD><span
lang=EN-US>tmp</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>tmp</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>Ҳû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>־<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĿ<EFBFBD>ȡ<EFBFBD>ö<EFBFBD>Ӧ<EFBFBD>ĸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿͼ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ִ<EFBFBD>б<EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><EFBFBD><span
lang=EN-US>BADNESS()</span><EFBFBD><EFBFBD>С<EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>217</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!bh || <u><span style='color:blue'>BADNESS</span></u>(tmp)&lt;<u><span
style='color:blue'>BADNESS</span></u>(bh)) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>218</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh = tmp;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>219</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!<u><span style='color:blue'>BADNESS</span></u>(tmp))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>220</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
break;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>221</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>222</span></u><span
lang=EN-US> <b><i>/* and repeat until we find something good */</i></b>&nbsp;
/* </span><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>ʺϵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US> */</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>223</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } while ((tmp =
tmp-&gt;b_next_free) != <u><span style='color:blue'>free_list</span></u>);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>&gt;0</span><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ȴ<EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻ᱻ<EFBFBD><EFBFBD>ȷ<EFBFBD>ػ<EFBFBD><EFBFBD>ѡ<EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD>ҿ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>224</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!bh) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>225</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sleep_on</span></u>(&amp;<u><span style='color:
blue'>buffer_wait</span></u>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>226</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
goto repeat;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><span lang=EN-US>210</span><EFBFBD>С<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>227</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ִ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD>ʺϵĿ<EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵȴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>߽׶θû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õĻ<EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>Ѱ<EFBFBD>ҹ<EFBFBD><EFBFBD>̡<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>228</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>wait_on_buffer</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>229</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (bh-&gt;b_count)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ֱ<EFBFBD>ռ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>230</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
goto repeat;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD>޸ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴεȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õĻ<EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>ҹ<EFBFBD><EFBFBD>̡<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>231</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while
(bh-&gt;b_dirt) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>232</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sync_dev</span></u>(bh-&gt;b_dev);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>233</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>234</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh-&gt;b_count)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ֱ<EFBFBD>ռ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>235</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;goto repeat;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>236</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>237</span></u><span
lang=EN-US> <b><i>/* NOTE!! While we slept waiting for this block, somebody
else might */</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>238</span></u><span
lang=EN-US> <b><i>/* already have added &quot;this&quot; block to the cache.
check it */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* </span>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>˵ȴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US> */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҲҪ<EFBFBD>Դ˽<EFBFBD><EFBFBD>м<EFBFBD><span
lang=EN-US>*/</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ǵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>ҹ<EFBFBD><EFBFBD>̡<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>239</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (<u><span
style='color:blue'>find_buffer</span></u>(dev,block))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>240</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
goto repeat;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>241</span></u><span
lang=EN-US> <b><i>/* OK, FINALLY we know that this buffer is the only one of
it's kind, */</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>242</span></u><span
lang=EN-US> <b><i>/* and that it's unused (b_count=0), unlocked (b_lock=0), and
clean */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* OK</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀǰ<EFBFBD><EFBFBD>û<EFBFBD>б<EFBFBD>ռ<EFBFBD><EFBFBD><span
lang=EN-US> */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* (b_count=0)</span><EFBFBD><EFBFBD>Ҳδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>(b_lock=0)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹɾ<EFBFBD><EFBFBD>ģ<EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>޸ĵģ<EFBFBD><span lang=EN-US>*/</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ô˻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>Ϊ<span
lang=EN-US>1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>޸ı<EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<span lang=EN-US>(</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>)</span><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>243</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_count=1;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>244</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_dirt=0;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>245</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_uptodate=0;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD>кͿ<EFBFBD><EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>øû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>źͿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ͷָ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>246</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>remove_from_queues</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>247</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bh-&gt;b_dev=dev;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>248</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh-&gt;b_blocknr=block;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>249</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>insert_into_queues</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>250</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>251</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>252</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD>ͷ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ȴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><span
lang=EN-US>1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ػ<EFBFBD><EFBFBD>ѵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD>̡<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>253</span></u><span
lang=EN-US> void <u><span style='color:blue'>brelse</span></u>(struct <u><span
style='color:blue'>buffer_head</span></u> * <u><span style='color:blue'>buf</span></u>)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>254</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>255</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!<u><span
style='color:blue'>buf</span></u>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>򷵻ء<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>256</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>257</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>wait_on_buffer</span></u>(<u><span style='color:blue'>buf</span></u>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>258</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!(<u><span
style='color:blue'>buf</span></u>-&gt;b_count--))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>259</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>panic</span></u>(<i>&quot;Trying to free free
buffer&quot;</i>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>260</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>wake_up</span></u>(&amp;<u><span style='color:blue'>buffer_wait</span></u>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>261</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>262</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>263</span></u><span
lang=EN-US> <b><i>/*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>264</span></u><span
lang=EN-US> <b><i>&nbsp;* bread() reads a specified block and returns the
buffer that contains</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>265</span></u><span
lang=EN-US> <b><i>&nbsp;* it. It returns NULL if the block was unreadable.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>266</span></u><span
lang=EN-US> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ鲢<EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ŀ鲻<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD>򷵻<EFBFBD><span
lang=EN-US>NULL</span><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ݿ顣</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>dev</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><span lang=EN-US>block</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݾ<EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><EFBFBD>ظû<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ鵽<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>267</span></u><span
lang=EN-US> struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>bread</span></u>(int dev,int block)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>268</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>269</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>270</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ڸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><span
lang=EN-US>NULL</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ں˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD> <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ģ<EFBFBD><C4A3>Ѹ<EFBFBD><D1B8>µģ<C2B5><C4A3><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ʹ<EFBFBD>ã<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>򷵻ء<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>271</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!(bh=<u><span
style='color:blue'>getblk</span></u>(dev,block)))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>272</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>panic</span></u>(<i>&quot;bread: getblk returned
NULL\n&quot;</i>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>273</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(bh-&gt;b_uptodate)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>274</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return bh;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ͵<EFBFBD><EFBFBD>õײ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<span
lang=EN-US>ll_rw_block()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD>ȴ<EFBFBD>ָ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ݿ鱻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѹ<EFBFBD><EFBFBD>£<EFBFBD><EFBFBD>򷵻ػ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷŸû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>NULL</span><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>275</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>READ</span></u>,bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>276</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>wait_on_buffer</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>277</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(bh-&gt;b_uptodate)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>278</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>279</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>brelse</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>280</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return <u><span
style='color:blue'>NULL</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>281</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>282</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>from</span><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><span
lang=EN-US>1024</span><EFBFBD>ֽڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><span lang=EN-US>to</span>λ<EFBFBD>á<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>283</span></u><span
lang=EN-US> #define <u><span style='color:blue'>COPYBLK</span></u>(from,to) \</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>284</span></u><span
lang=EN-US> __asm__(<i>&quot;cld\n\t&quot;</i> \</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>285</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>&quot;rep\n\t&quot;</i>
\</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>286</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>&quot;movsl\n\t&quot;</i>
\</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>287</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ::<i>&quot;c&quot;</i>
(<u><span style='color:blue'>BLOCK_SIZE</span></u>/4),<i>&quot;S&quot;</i>
(from),<i>&quot;D&quot;</i> (to) \</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>288</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :<i>&quot;cx&quot;</i>,<i>&quot;di&quot;</i>,<i>&quot;si&quot;</i>)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>289</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>290</span></u><span
lang=EN-US> <b><i>/*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>291</span></u><span
lang=EN-US> <b><i>&nbsp;* bread_page reads four buffers into memory at the
desired address. It's</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>292</span></u><span
lang=EN-US> <b><i>&nbsp;* a function of its own, as there is some speed to be
got by reading them</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>293</span></u><span
lang=EN-US> <b><i>&nbsp;* all at the same time, not waiting for one to be read,
and then another</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>294</span></u><span
lang=EN-US> <b><i>&nbsp;* etc.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>295</span></u><span
lang=EN-US> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * bread_page</span>һ<EFBFBD>ζ<EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD>Ϊͬʱ<EFBFBD><EFBFBD>ȡ<EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><EFBFBD>ϵĺô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>Ŷ<EFBFBD>һ<EFBFBD><EFBFBD>ٶ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ҳ<EFBFBD><span
lang=EN-US>4</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>address</span><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<EFBFBD>ַ<EFBFBD><EFBFBD><span
lang=EN-US>dev</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><span lang=EN-US>b[4]</span><EFBFBD>Ǻ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>4</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>mm/memory.c</span><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>do_no_page()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>386</span><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>296</span></u><span
lang=EN-US> void <u><span style='color:blue'>bread_page</span></u>(unsigned
long address,int dev,int b[4])</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>297</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>298</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * bh[4];</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>299</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>300</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD><span
lang=EN-US>4</span><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b[]</span><EFBFBD>е<EFBFBD><span lang=EN-US>4</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><EFBFBD><span
lang=EN-US>dev</span><EFBFBD>ж<EFBFBD>ȡһҳ<EFBFBD><EFBFBD><EFBFBD>ݷŵ<EFBFBD>ָ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ڴ<EFBFBD>λ<EFBFBD><EFBFBD><span lang=EN-US>
address</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><span lang=EN-US>b[i]</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴӸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>Ϳ<EFBFBD>ŵĻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>ȡ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>ݿ顣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>b[i]</span><EFBFBD><EFBFBD>Ч<EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>b[]</span><EFBFBD>еĿ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<span lang=EN-US>1<EFBFBD><EFBFBD>4</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ顣</p>
<p class=a><u><span lang=EN-US style='color:blue'>301</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0 ; i&lt;4 ;
i++)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>302</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (b[i]) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>303</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh[i] = <u><span style='color:blue'>getblk</span></u>(dev,b[i]))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>304</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!bh[i]-&gt;b_uptodate)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>305</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>READ</span></u>,bh[i]);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>306</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
} else</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>307</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
bh[i] = <u><span style='color:blue'>NULL</span></u>;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>4</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD>и<EFBFBD><EFBFBD>ƣ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>Ҫ˯<EFBFBD>ߵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD>߹<EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD>Ҫ</p>
<p class=a><span lang=EN-US>&nbsp; &nbsp;&nbsp;// </span><EFBFBD>ڸ<EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD>ټ<EFBFBD><EFBFBD>һ<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ͷŻ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>308</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0 ; i&lt;4 ;
i++,address += <u><span style='color:blue'>BLOCK_SIZE</span></u>)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>309</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh[i]) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>310</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>wait_on_buffer</span></u>(bh[i]);&nbsp;&nbsp; // </span><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>(</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><span lang=EN-US>)</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>311</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (bh[i]-&gt;b_uptodate)&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>312</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>COPYBLK</span></u>((unsigned long)
bh[i]-&gt;b_data,address);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>313</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>brelse</span></u>(bh[i]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ͷŸû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>314</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>315</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>316</span></u><span
lang=EN-US> </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>317</span></u><span
lang=EN-US> <b><i>/*</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>318</span></u><span
lang=EN-US> <b><i>&nbsp;* Ok, breada can be used as bread, but additionally to
mark other</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>319</span></u><span
lang=EN-US> <b><i>&nbsp;* blocks for reading as well. End the argument list
with a negative</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>320</span></u><span
lang=EN-US> <b><i>&nbsp;* number.</i></b></span></p>
<p class=a><u><span lang=EN-US style='color:blue'>321</span></u><span
lang=EN-US> <b><i>&nbsp;*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /*</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * OK</span><EFBFBD><EFBFBD><span
lang=EN-US>breada</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>bread</span>һ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; * </span><EFBFBD><EFBFBD>Ҫʹ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp; */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ䣬<EFBFBD><EFBFBD>һϵ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>š<EFBFBD><EFBFBD>ɹ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><span
lang=EN-US>1</span><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // NULL</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>322</span></u><span
lang=EN-US> struct <u><span style='color:blue'>buffer_head</span></u> * <u><span
style='color:blue'>breada</span></u>(int dev,int first, ...)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>323</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>324</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>va_list</span></u> args;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>325</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * bh, *tmp;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>326</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><span
lang=EN-US>1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŴӸ<EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD>ŵĻ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־δ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷢳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>327</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>va_start</span></u>(args,first);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>328</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!(bh=<u><span
style='color:blue'>getblk</span></u>(dev,first)))</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>329</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>panic</span></u>(<i>&quot;bread: getblk returned
NULL\n&quot;</i>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>330</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(!bh-&gt;b_uptodate)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>331</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>READ</span></u>,bh);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>Ȼ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>ȡ<EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>ע<EFBFBD><span
lang=EN-US>336</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><span lang=EN-US>bug</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><span
lang=EN-US>bh</span>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>tmp</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>bug</span>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>0.96</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD>вű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ飬ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><span
lang=EN-US>337</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><EFBFBD>ͷŵ<EFBFBD><EFBFBD>ÿ飨<EFBFBD><EFBFBD>Ϊ<span
lang=EN-US>getblk()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>332</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ((first=<u><span
style='color:blue'>va_arg</span></u>(args,int))&gt;=0) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>333</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tmp=<u><span style='color:blue'>getblk</span></u>(dev,first);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>334</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (tmp) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>335</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (!tmp-&gt;b_uptodate)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>336</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>ll_rw_block</span></u>(<u><span style='color:blue'>READA</span></u>,bh);&nbsp;&nbsp;&nbsp;
// bh </span>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>tmp</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>337</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
tmp-&gt;b_count--;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// </span><EFBFBD><EFBFBD>ʱ<EFBFBD>ͷŵ<EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>338</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>339</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>ʱ<EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵȴ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD>򷵻ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷŸû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // NULL</span><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>340</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>va_end</span></u>(args);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>341</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>wait_on_buffer</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>342</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(bh-&gt;b_uptodate)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>343</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return bh;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>344</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>brelse</span></u>(bh);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>345</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (<u><span
style='color:blue'>NULL</span></u>);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>346</span></u><span
lang=EN-US> }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>347</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; //// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>buffer_end</span><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ĩ<EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>16MB</span><EFBFBD>ڴ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩ<EFBFBD>˱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<span lang=EN-US>4MB</span><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>8MB</span><EFBFBD>ڴ<EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩ<EFBFBD>˱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<span
lang=EN-US>2MB</span><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<EFBFBD><EFBFBD><span lang=EN-US>start_buffer</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩ<EFBFBD><EFBFBD><span
lang=EN-US>buffer_end</span><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>Ͷ<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ顣ֱ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ汻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>348</span></u><span
lang=EN-US> void <u><span style='color:blue'>buffer_init</span></u>(long
buffer_end)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>349</span></u><span
lang=EN-US> {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>350</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct <u><span
style='color:blue'>buffer_head</span></u> * h = <u><span style='color:blue'>start_buffer</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>351</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void * b;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>352</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>353</span></u><span
lang=EN-US> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ȸ<EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>λ<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ʵ<EFBFBD>ʻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>λ<EFBFBD><EFBFBD><span
lang=EN-US>b</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶˵<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>1Mb</span><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><span lang=EN-US>640KB
- 1MB</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڴ<EFBFBD><EFBFBD><span lang=EN-US> BIOS</span>ռ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʿ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>߶<EFBFBD>λ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // 640KB</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򻺳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>߶<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>1MB</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>354</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (buffer_end ==
1&lt;&lt;20)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>355</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
b = (void *) (640*1024);</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>356</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>357</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
b = (void *) buffer_end;</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡϵͳ<EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵӻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶˿<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>1KB</span><EFBFBD><EFBFBD>С<EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>ڻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD>Ľṹ<span lang=EN-US>buffer_head</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<span
lang=EN-US>buffer_head</span><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // h</span><EFBFBD><EFBFBD>ָ<EFBFBD>򻺳<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>h+1</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>ָ<EFBFBD><EFBFBD><span lang=EN-US>h</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ĩ<EFBFBD><EFBFBD><EFBFBD>⡣Ϊ<EFBFBD>˱<EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<span
lang=EN-US>b</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>ַ <span
lang=EN-US>&gt;= h</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ĩ<EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD> <span lang=EN-US>&gt;= h+1</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>358</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ( (b -= <u><span
style='color:blue'>BLOCK_SIZE</span></u>) &gt;= ((void *) (h+1)) ) {</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>359</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_dev = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>ʹ<EFBFBD>øû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>360</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_dirt = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ı<EFBFBD>־<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>361</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_count = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>362</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_lock = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>363</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_uptodate = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>364</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_wait = <u><span style='color:blue'>NULL</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>ָ<EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD>̡<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>365</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_next = <u><span style='color:blue'>NULL</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<span lang=EN-US>hash</span>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>366</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_prev = <u><span style='color:blue'>NULL</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<span lang=EN-US>hash</span>ֵ<EFBFBD><EFBFBD>ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>367</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_data = (char *) b;&nbsp;&nbsp;&nbsp;&nbsp; // </span>ָ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ飨<span
lang=EN-US>1024</span><EFBFBD>ֽڣ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>368</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_prev_free = h-1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰһ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>369</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h-&gt;b_next_free = h+1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>370</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
h++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// h</span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>»<EFBFBD><EFBFBD><EFBFBD>ͷλ<EFBFBD>á<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>371</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>NR_BUFFERS</span></u>++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼӡ<EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>372</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (b == (void *) 0x100000)&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>b</span><EFBFBD>ݼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
lang=EN-US>1MB</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>384KB</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>373</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
b = (void *) 0xA0000;&nbsp; // </span><EFBFBD><EFBFBD><span lang=EN-US>b</span>ָ<EFBFBD><EFBFBD><EFBFBD>ַ<span
lang=EN-US>0xA0000(640KB)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>374</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>375</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; h--;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD><EFBFBD><span lang=EN-US>h</span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>376</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>free_list</span></u> = <u><span style='color:blue'>start_buffer</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷָ<EFBFBD><EFBFBD>ͷһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>377</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u><span
style='color:blue'>free_list</span></u>-&gt;b_prev_free = h;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><span
lang=EN-US>b_prev_free</span>ָ<EFBFBD><EFBFBD>ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>378</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; h-&gt;b_next_free =
<u><span style='color:blue'>free_list</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// h</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>γ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><span lang=EN-US>hash</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢ<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>Ϊ<span
lang=EN-US>NULL</span><EFBFBD><EFBFBD></p>
<p class=a><u><span lang=EN-US style='color:blue'>379</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (i=0;i&lt;<u><span
style='color:blue'>NR_HASH</span></u>;i++)</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>380</span></u><span
lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>hash_table</span></u>[i]=<u><span style='color:
blue'>NULL</span></u>;</span></p>
<p class=a><u><span lang=EN-US style='color:blue'>381</span></u><span
lang=EN-US> }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p class=a><u><span lang=EN-US style='color:blue'>382</span></u><span
lang=EN-US> </span></p>
<div class=a align=center style='text-align:center'><span lang=EN-US>
<hr size=4 width="100%" align=center>
</span></div>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
</div>
</body>
</html>