4106 lines
195 KiB
HTML
4106 lines
195 KiB
HTML
<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.5CharCharChar0
|
||
{mso-style-name:"ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35> Char Char Char";
|
||
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>;}
|
||
span.3CharChar1Char
|
||
{mso-style-name:"ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char1 Char";
|
||
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
|
||
span.3CharChar13
|
||
{mso-style-name:"ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char13";
|
||
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
|
||
span.3CharChar12
|
||
{mso-style-name:"ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char12";
|
||
font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;}
|
||
span.3CharChar11
|
||
{mso-style-name:"ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 Char Char11";
|
||
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="_Toc53320609"><span style='font-family:<3A><><EFBFBD><EFBFBD>'><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span
|
||
lang=EN-US>8-7 linux/kernel/exit.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> <u><span style='color:blue'>1</span></u> <b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>2</span></u> <b><i> *
|
||
linux/kernel/exit.c</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>3</span></u> <b><i> *</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>4</span></u> <b><i> *
|
||
(C) 1991 Linus Torvalds</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>5</span></u> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>6</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>7</span></u>
|
||
#define <u><span style='color:blue'>DEBUG_PROC_TREE</span></u> // </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> <u><span style='color:blue'>8</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>9</span></u>
|
||
#include <errno.h> // </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>(Linus</span><EFBFBD><EFBFBD><span lang=EN-US>minix</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>10</span></u>
|
||
#include <signal.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></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>11</span></u>
|
||
#include <sys/wait.h> // </span><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>wait()</span><EFBFBD><EFBFBD><span lang=EN-US>waitpid()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>12</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>13</span></u>
|
||
#include <linux/sched.h> // </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></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>14</span></u>
|
||
#include <linux/kernel.h> // </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> <u><span style='color:blue'>15</span></u>
|
||
#include <linux/tty.h> // tty</span>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><span
|
||
lang=EN-US>tty_io</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>ŷ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>16</span></u>
|
||
#include <asm/segment.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></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>17</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>18</span></u> int
|
||
<u><span style='color:blue'>sys_pause</span></u>(void);
|
||
// </span><EFBFBD>ѽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ˯<EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD>źţ<EFBFBD><span lang=EN-US>kernel/sched.c</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>164</span><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>19</span></u> int
|
||
<u><span style='color:blue'>sys_close</span></u>(int fd); // </span><EFBFBD>ر<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><span
|
||
lang=EN-US>fs/open.c</span><EFBFBD><EFBFBD><span lang=EN-US>219</span><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>20</span></u> </span></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD>ݽṹռ<EFBFBD>õ<EFBFBD><EFBFBD>ڴ<EFBFBD>ҳ<EFBFBD>档</p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽṹָ<EFBFBD>롣<EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
<span lang=EN-US>sys_kill() </span><EFBFBD><EFBFBD> <span lang=EN-US>sys_waitpid() </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <span
|
||
lang=EN-US>task[] </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> // </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> // </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>panic</span><span lang=EN-US style='font-family:Wingdings'>J</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>21</span></u> void
|
||
<u><span style='color:blue'>release</span></u>(struct <u><span
|
||
style='color:blue'>task_struct</span></u> * p)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>22</span></u> {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>23</span></u>
|
||
int i;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>24</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><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><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>25</span></u>
|
||
if (!p)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>26</span></u>
|
||
return;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>27</span></u>
|
||
if (p == <u><span style='color:blue'>current</span></u>) {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>28</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"task releasing
|
||
itself\n\r"</i>);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>29</span></u>
|
||
return;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>30</span></u>
|
||
}</span></p>
|
||
|
||
<p class=a><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><span
|
||
lang=EN-US>p</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> // </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>p</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> // </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>p</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> // </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>p</span><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>31</span></u>
|
||
for (i=1 ; i<<u><span style='color:blue'>NR_TASKS</span></u> ; i++)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>32</span></u>
|
||
if (<u><span style='color:blue'>task</span></u>[i]==p) {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>33</span></u>
|
||
<u><span style='color:blue'>task</span></u>[i]=<u><span style='color:blue'>NULL</span></u>;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>34</span></u>
|
||
<b><i>/* Update links */</i></b> /* </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US> */</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</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><span
|
||
lang=EN-US>p</span></p>
|
||
|
||
<p class=a><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><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD>Ͻ<EFBFBD><EFBFBD>̡<EFBFBD>
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD></p>
|
||
|
||
<p class=a><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>ӽ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>cptr</span>Ϊָ<EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ָ<EFBFBD><EFBFBD><span lang=EN-US>osptr</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>old sibling pointer</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵܽ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ָ<EFBFBD><EFBFBD><span lang=EN-US>ysptr</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>younger sibling pointer</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵܽ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ָ<EFBFBD><EFBFBD><span lang=EN-US>pptr</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>parent pointer</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ָ<EFBFBD><EFBFBD><span lang=EN-US>cptr</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>child pointer</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> <u><span style='color:blue'>35</span></u>
|
||
if (p->p_osptr)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>36</span></u>
|
||
p->p_osptr->p_ysptr = p->p_ysptr;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>37</span></u>
|
||
if (p->p_ysptr)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>38</span></u>
|
||
p->p_ysptr->p_osptr = p->p_osptr;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>39</span></u>
|
||
else</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>40</span></u>
|
||
p->p_pptr->p_cptr = p->p_osptr;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>41</span></u>
|
||
<u><span style='color:blue'>free_page</span></u>((long)p);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>42</span></u>
|
||
<u><span style='color:blue'>schedule</span></u>();</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>43</span></u>
|
||
return;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>44</span></u>
|
||
}</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>45</span></u>
|
||
<u><span style='color:blue'>panic</span></u>(<i>"trying to release
|
||
non-existent task"</i>);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>46</span></u> }</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>47</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>48</span></u>
|
||
#ifdef <u><span style='color:blue'>DEBUG_PROC_TREE</span></u></span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>DEBUG_PROC_TREE</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> <u><span style='color:blue'>49</span></u> <b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>50</span></u> <b><i> *
|
||
Check to see if a task_struct pointer is present in the task[] array</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>51</span></u> <b><i> *
|
||
Return 0 if found, and 1 if not found.</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>52</span></u> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> /*</span></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>task[]</span><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><span
|
||
lang=EN-US>p</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>1</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> */</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>p</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>53</span></u> int
|
||
<u><span style='color:blue'>bad_task_ptr</span></u>(struct <u><span
|
||
style='color:blue'>task_struct</span></u> *p)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>54</span></u> {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>55</span></u>
|
||
int i;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>56</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>57</span></u>
|
||
if (!p)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>58</span></u>
|
||
return 0;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>59</span></u>
|
||
for (i=0 ; i<<u><span style='color:blue'>NR_TASKS</span></u> ; i++)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>60</span></u>
|
||
if (<u><span
|
||
style='color:blue'>task</span></u>[i] == p)</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>61</span></u>
|
||
return 0;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>62</span></u>
|
||
return 1;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>63</span></u> }</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>64</span></u>
|
||
</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>65</span></u> <b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>66</span></u> <b><i> *
|
||
This routine scans the pid tree and make sure the rep invarient still</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>67</span></u> <b><i> *
|
||
holds. Used for debugging only, since it's very slow....</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>68</span></u> <b><i> *</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>69</span></u> <b><i> *
|
||
It looks a lot scarier than it really is.... we're doing nothing more</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>70</span></u> <b><i> *
|
||
than verifying the doubly-linked list found in p_ysptr and p_osptr, </i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>71</span></u> <b><i> *
|
||
and checking it corresponds with the process tree defined by p_cptr and </i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>72</span></u> <b><i> *
|
||
p_pptr;</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>73</span></u> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> /*</span></p>
|
||
|
||
<p class=a><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>ȷ<EFBFBD><EFBFBD><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> * </span><EFBFBD><EFBFBD>Ϊ<EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>....</span></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span><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><span lang=EN-US>p_ysptr</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> * p_osptr</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>p_cptr</span><EFBFBD><EFBFBD><span lang=EN-US>p_pptr</span><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>Ĺ<EFBFBD>ϵ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> */</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>74</span></u>
|
||
void <u><span style='color:blue'>audit_ptree</span></u>()</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>75</span></u> {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>76</span></u>
|
||
int i;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>77</span></u> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ɨ<EFBFBD><EFBFBD>ϵͳ<EFBFBD>еij<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><EFBFBD><EFBFBD><span lang=EN-US>4</span><EFBFBD><EFBFBD>ָ<EFBFBD>루<span lang=EN-US>pptr</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>cptr</span><EFBFBD><EFBFBD><span lang=EN-US>ysptr</span><EFBFBD><EFBFBD><span lang=EN-US>osptr</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>78</span></u>
|
||
for (i=1 ; i<<u><span style='color:blue'>NR_TASKS</span></u> ; i++) {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>79</span></u>
|
||
if (!<u><span style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>80</span></u>
|
||
continue;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>p_pptr</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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<span lang=EN-US>pid</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>N</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>cptr</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>ysptr</span><EFBFBD><EFBFBD><span lang=EN-US>osptr</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>81</span></u>
|
||
if (<u><span style='color:blue'>bad_task_ptr</span></u>(<u><span
|
||
style='color:blue'>task</span></u>[i]->p_pptr))</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>82</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d's parent
|
||
link is bad\n"</i>,</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>83</span></u>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>84</span></u>
|
||
if (<u><span style='color:blue'>bad_task_ptr</span></u>(<u><span
|
||
style='color:blue'>task</span></u>[i]->p_cptr))</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>85</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d's child
|
||
link is bad\n"</i>,</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>86</span></u>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>87</span></u>
|
||
if (<u><span style='color:blue'>bad_task_ptr</span></u>(<u><span
|
||
style='color:blue'>task</span></u>[i]->p_ysptr))</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>88</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d's ys
|
||
link is bad\n"</i>,</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>89</span></u>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>90</span></u>
|
||
if (<u><span style='color:blue'>bad_task_ptr</span></u>(<u><span
|
||
style='color:blue'>task</span></u>[i]->p_osptr))</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>91</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d's os
|
||
link is bad\n"</i>,</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>92</span></u>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>p_pptr</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>pid</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>N</span><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><span
|
||
lang=EN-US>cptr</span><EFBFBD><EFBFBD><span lang=EN-US>ysptr</span><EFBFBD><EFBFBD><span lang=EN-US>osptr</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>93</span></u>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_pptr == <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>94</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d parent
|
||
link points to self\n"</i>);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>95</span></u>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_cptr == <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>96</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d child
|
||
link points to self\n"</i>);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>97</span></u>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_ysptr == <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>98</span></u>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d ys link
|
||
points to self\n"</i>);</span></p>
|
||
|
||
<p class=a><span lang=EN-US> <u><span style='color:blue'>99</span></u>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_osptr == <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>100</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>printk</span></u>(<i>"Warning, pid %d os link
|
||
points to self\n"</i>);</span></p>
|
||
|
||
<p class=a><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>̣<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>ͼ<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> // </span><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD>̵<EFBFBD><span lang=EN-US>ysptr</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'>101</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_osptr) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>102</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_pptr != <u><span
|
||
style='color:blue'>task</span></u>[i]->p_osptr->p_pptr)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>103</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>printk</span></u>(</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>104</span></u><span
|
||
lang=EN-US>
|
||
<i>"Warning, pid %d older sibling %d parent is %d\n"</i>,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>105</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid, <u><span
|
||
style='color:blue'>task</span></u>[i]->p_osptr->pid,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>106</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->p_osptr->p_pptr->pid);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>107</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_osptr->p_ysptr != <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>108</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>printk</span></u>(</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>109</span></u><span
|
||
lang=EN-US>
|
||
<i>"Warning, pid %d older sibling %d has mismatched ys link\n"</i>,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>110</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid, <u><span
|
||
style='color:blue'>task</span></u>[i]->p_osptr->pid);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>111</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><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><EFBFBD>ô<EFBFBD>ͼ<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> // </span>С<EFBFBD>ܽ<EFBFBD><EFBFBD>̵<EFBFBD><span lang=EN-US>osptr</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'>112</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_ysptr) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>113</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_pptr != <u><span
|
||
style='color:blue'>task</span></u>[i]->p_ysptr->p_pptr)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>114</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>printk</span></u>(</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>115</span></u><span
|
||
lang=EN-US>
|
||
<i>"Warning, pid %d younger sibling %d parent is %d\n"</i>,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>116</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid, <u><span
|
||
style='color:blue'>task</span></u>[i]->p_osptr->pid,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>117</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->p_osptr->p_pptr->pid);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>118</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_ysptr->p_osptr != <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>119</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>printk</span></u>(</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>120</span></u><span
|
||
lang=EN-US>
|
||
<i>"Warning, pid %d younger sibling %d has mismatched os link\n"</i>,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>121</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid, <u><span
|
||
style='color:blue'>task</span></u>[i]->p_ysptr->pid);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>122</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>cptr</span><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><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD>ӽ<EFBFBD><EFBFBD>̵<EFBFBD>С<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>yspter</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'>123</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_cptr) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>124</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_cptr->p_pptr != <u><span
|
||
style='color:blue'>task</span></u>[i])</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>125</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>printk</span></u>(</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>126</span></u><span
|
||
lang=EN-US>
|
||
<i>"Warning, pid %d youngest child %d has mismatched parent link\n"</i>,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>127</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid, <u><span
|
||
style='color:blue'>task</span></u>[i]->p_cptr->pid);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>128</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>task</span></u>[i]->p_cptr->p_ysptr)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>129</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>printk</span></u>(</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>130</span></u><span
|
||
lang=EN-US>
|
||
<i>"Warning, pid %d youngest child %d has non-NULL ys link\n"</i>,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>131</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[i]->pid, <u><span
|
||
style='color:blue'>task</span></u>[i]->p_cptr->pid);</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> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>134</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>135</span></u><span
|
||
lang=EN-US> #endif <b><i>/* DEBUG_PROC_TREE */</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>136</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> //// </span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>sig</span><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>Ϊ<span lang=EN-US>priv</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>sig
|
||
- </span><EFBFBD>ź<EFBFBD>ֵ<EFBFBD><EFBFBD><span lang=EN-US>p - </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룻<span lang=EN-US>priv - </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> // </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> // </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>sig</span><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'>137</span></u><span
|
||
lang=EN-US> static inline int <u><span style='color:blue'>send_sig</span></u>(long
|
||
sig,struct <u><span style='color:blue'>task_struct</span></u> * p,int priv)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>138</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>Ȩ<EFBFBD>ޣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>û<EFBFBD><span
|
||
lang=EN-US>ID</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD>IJ<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŵ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>suser()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<span lang=EN-US>(current->euid==0)</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>139</span></u><span
|
||
lang=EN-US> if (!p)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>140</span></u><span
|
||
lang=EN-US>
|
||
return -<u><span style='color:blue'>EINVAL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>141</span></u><span
|
||
lang=EN-US> if (!priv
|
||
&& (<u><span style='color:blue'>current</span></u>->euid!=p->euid)
|
||
&& !<u><span style='color:blue'>suser</span></u>())</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>142</span></u><span
|
||
lang=EN-US>
|
||
return -<u><span style='color:blue'>EPERM</span></u>;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGKILL</span><EFBFBD><EFBFBD><span lang=EN-US> SIGCONT</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŵĽ<EFBFBD><EFBFBD><EFBFBD> <span
|
||
lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ״̬</p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>λͼ<span lang=EN-US>signal</span><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ᵼ<EFBFBD>½<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ֹͣ<EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>SIGSTOP</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGTSTP</span><EFBFBD><EFBFBD><span lang=EN-US>SIGTTIN</span><EFBFBD><EFBFBD><span lang=EN-US>SIGTTOU</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>143</span></u><span
|
||
lang=EN-US> if ((sig == <u><span
|
||
style='color:blue'>SIGKILL</span></u>) || (sig == <u><span style='color:blue'>SIGCONT</span></u>))
|
||
{</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>144</span></u><span
|
||
lang=EN-US>
|
||
if (p-><u><span style='color:blue'>state</span></u> == <u><span
|
||
style='color:blue'>TASK_STOPPED</span></u>)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>145</span></u><span
|
||
lang=EN-US>
|
||
p-><u><span style='color:blue'>state</span></u> = <u><span style='color:
|
||
blue'>TASK_RUNNING</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>146</span></u><span
|
||
lang=EN-US>
|
||
p->exit_code = 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>147</span></u><span
|
||
lang=EN-US>
|
||
p->signal &= ~( (1<<(<u><span style='color:blue'>SIGSTOP</span></u>-1))
|
||
| (1<<(<u><span style='color:blue'>SIGTSTP</span></u>-1)) |</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>148</span></u><span
|
||
lang=EN-US>
|
||
(1<<(<u><span style='color:blue'>SIGTTIN</span></u>-1)) | (1<<(<u><span
|
||
style='color:blue'>SIGTTOU</span></u>-1)) );</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>149</span></u><span
|
||
lang=EN-US> } </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>150</span></u><span
|
||
lang=EN-US> <b><i>/* If the
|
||
signal will be ignored, don't even post it */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
/* </span><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>sig</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><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><u><span lang=EN-US style='color:blue'>151</span></u><span
|
||
lang=EN-US> if ((int) p-><u><span
|
||
style='color:blue'>sigaction</span></u>[sig-1].sa_handler == 1)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>152</span></u><span
|
||
lang=EN-US>
|
||
return 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>153</span></u><span
|
||
lang=EN-US> <b><i>/* Depends on
|
||
order SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
/* </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>SIGSTOP</span><EFBFBD><EFBFBD><span lang=EN-US>SIGTSTP</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGTTIN</span><EFBFBD><EFBFBD><span lang=EN-US>SIGTTOU</span><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>
|
||
*/</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>SIGSTOP</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGTSTP</span><EFBFBD><EFBFBD><span lang=EN-US>SIGTTIN</span><EFBFBD><EFBFBD><span lang=EN-US>SIGTTOU</span>֮һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô˵<EFBFBD><EFBFBD>Ҫ<EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŵĽ<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ֹͣ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p </span><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>λͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US> SIGCONT </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> // SIGCONT</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>154</span></u><span
|
||
lang=EN-US> if ((sig >= <u><span
|
||
style='color:blue'>SIGSTOP</span></u>) && (sig <= <u><span
|
||
style='color:blue'>SIGTTOU</span></u>)) </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>155</span></u><span
|
||
lang=EN-US>
|
||
p->signal &= ~(1<<(<u><span style='color:blue'>SIGCONT</span></u>-1));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>156</span></u><span
|
||
lang=EN-US> <b><i>/* Actually
|
||
deliver the signal */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
/* </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>p */</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>157</span></u><span
|
||
lang=EN-US> p->signal |=
|
||
(1<<(sig-1));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>158</span></u><span
|
||
lang=EN-US> return 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>159</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>160</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pgrp</span>ȡ<EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĻỰ<EFBFBD>š<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬Ѱ<EFBFBD>ҽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<span
|
||
lang=EN-US>pgrp</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> // </span>Ϊ<span lang=EN-US>pgrp</span><EFBFBD><EFBFBD><EFBFBD>κν<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>-1</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>161</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>session_of_pgrp</span></u>(int
|
||
pgrp)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>162</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>163</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> **p;</span></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> for (p = &<u><span
|
||
style='color:blue'>LAST_TASK</span></u> ; p > &<u><span
|
||
style='color:blue'>FIRST_TASK</span></u> ; --p)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>166</span></u><span
|
||
lang=EN-US> if
|
||
((*p)->pgrp == pgrp)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>167</span></u><span
|
||
lang=EN-US>
|
||
return((*p)->session);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>168</span></u><span
|
||
lang=EN-US> return -1;</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><u><span lang=EN-US style='color:blue'>170</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pgrp
|
||
- </span>ָ<EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><span lang=EN-US>sig - </span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źţ<EFBFBD><span lang=EN-US>priv - </span>Ȩ<EFBFBD>ޡ<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pgrp</span><EFBFBD>е<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>sig</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> // </span><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pgrp</span><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>-ESRCH</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pgrp</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'>171</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>kill_pg</span></u>(int pgrp, int
|
||
sig, int priv)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>172</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>173</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> **p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>174</span></u><span
|
||
lang=EN-US> int err,retval = -<u><span
|
||
style='color:blue'>ESRCH</span></u>;
|
||
// -ESRCH</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'>175</span></u><span
|
||
lang=EN-US> int found = 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>176</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><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><EFBFBD>Ȼ<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> // pgrp</span><EFBFBD>Ľ<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䷢<EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span
|
||
lang=EN-US>sig</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>0</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>177</span></u><span
|
||
lang=EN-US> if (sig<1 ||
|
||
sig>32 || pgrp<=0)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>178</span></u><span
|
||
lang=EN-US>
|
||
return -<u><span style='color:blue'>EINVAL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>179</span></u><span
|
||
lang=EN-US> for (p = &<u><span
|
||
style='color:blue'>LAST_TASK</span></u> ; p > &<u><span
|
||
style='color:blue'>FIRST_TASK</span></u> ; --p)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>180</span></u><span
|
||
lang=EN-US>
|
||
if ((*p)->pgrp == pgrp) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>181</span></u><span
|
||
lang=EN-US>
|
||
if (sig && (err = <u><span style='color:blue'>send_sig</span></u>(sig,*p,priv)))</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>182</span></u><span
|
||
lang=EN-US>
|
||
retval = err;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>183</span></u><span
|
||
lang=EN-US>
|
||
else</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>184</span></u><span
|
||
lang=EN-US>
|
||
found++;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>185</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>186</span></u><span
|
||
lang=EN-US> return(found ? 0 :
|
||
retval);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>187</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>188</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid
|
||
- </span><EFBFBD><EFBFBD><EFBFBD>̺ţ<EFBFBD><span lang=EN-US>sig - </span>ָ<EFBFBD><EFBFBD><EFBFBD>źţ<EFBFBD><span lang=EN-US>priv - </span>Ȩ<EFBFBD>ޡ<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>Ϊ<span
|
||
lang=EN-US>pid</span><EFBFBD>Ľ<EFBFBD><EFBFBD>̷<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>sig</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>pid</span><EFBFBD>Ľ<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>źŷ<EFBFBD><EFBFBD>ͳɹ<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><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><EFBFBD><EFBFBD>ҵ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><span
|
||
lang=EN-US>pid</span><EFBFBD>Ľ<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD>س<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // -ESRCH</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'>189</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>kill_proc</span></u>(int pid, int
|
||
sig, int priv)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>190</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>191</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> **p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>192</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>193</span></u><span
|
||
lang=EN-US> if (sig<1 ||
|
||
sig>32)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>194</span></u><span
|
||
lang=EN-US>
|
||
return -<u><span style='color:blue'>EINVAL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>195</span></u><span
|
||
lang=EN-US> for (p = &<u><span
|
||
style='color:blue'>LAST_TASK</span></u> ; p > &<u><span
|
||
style='color:blue'>FIRST_TASK</span></u> ; --p)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>196</span></u><span
|
||
lang=EN-US>
|
||
if ((*p)->pid == pid)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>197</span></u><span
|
||
lang=EN-US>
|
||
return(sig ? <u><span style='color:blue'>send_sig</span></u>(sig,*p,priv) : 0);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>198</span></u><span
|
||
lang=EN-US> return(-<u><span
|
||
style='color:blue'>ESRCH</span></u>);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>199</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>200</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>201</span></u><span
|
||
lang=EN-US> <b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>202</span></u><span
|
||
lang=EN-US> <b><i> * POSIX specifies that kill(-1,sig) is unspecified, but
|
||
what we have</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>203</span></u><span
|
||
lang=EN-US> <b><i> * is probably wrong. Should make it like BSD or
|
||
SYSV.</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>204</span></u><span
|
||
lang=EN-US> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> /*</span></p>
|
||
|
||
<p class=a><span lang=EN-US> * POSIX</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>kill(-1,sig)</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> * </span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>BSD</span><EFBFBD><EFBFBD><span lang=EN-US>SYSV</span>ϵͳһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> */</span></p>
|
||
|
||
<p class=a><span lang=EN-US> //// </span>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>kill()</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
|
||
style='font-family:Wingdings'>J</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span><EFBFBD>ǽ<EFBFBD><EFBFBD>̺ţ<EFBFBD><span
|
||
lang=EN-US>sig</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>źš<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span>ֵ<span
|
||
lang=EN-US>>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span><EFBFBD>Ľ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid=0</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> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid=-1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span
|
||
lang=EN-US>sig</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> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid
|
||
< -1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>sig</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>-pid</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span lang=EN-US>sig</span>Ϊ<span
|
||
lang=EN-US>0</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>0</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD><span
|
||
lang=EN-US>pid</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>sig</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pid</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>0</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵĽ<EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><span
|
||
lang=EN-US>sig</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>205</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>sys_kill</span></u>(int pid,int
|
||
sig)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>206</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>207</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> **p = <u><span style='color:blue'>NR_TASKS</span></u>
|
||
+ <u><span style='color:blue'>task</span></u>; // p</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'>208</span></u><span
|
||
lang=EN-US> int err, retval =
|
||
0;</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> if (!pid)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>211</span></u><span
|
||
lang=EN-US>
|
||
return(<u><span style='color:blue'>kill_pg</span></u>(<u><span
|
||
style='color:blue'>current</span></u>->pid,sig,0));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>212</span></u><span
|
||
lang=EN-US> if (pid == -1) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>213</span></u><span
|
||
lang=EN-US>
|
||
while (--p > &<u><span style='color:blue'>FIRST_TASK</span></u>)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>214</span></u><span
|
||
lang=EN-US>
|
||
if (err = <u><span style='color:blue'>send_sig</span></u>(sig,*p,0))</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>215</span></u><span
|
||
lang=EN-US>
|
||
retval = err;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>216</span></u><span
|
||
lang=EN-US>
|
||
return(retval);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>217</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>218</span></u><span
|
||
lang=EN-US> if (pid < 0) </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>219</span></u><span
|
||
lang=EN-US>
|
||
return(<u><span style='color:blue'>kill_pg</span></u>(-pid,sig,0));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>220</span></u><span
|
||
lang=EN-US> <b><i>/* Normal
|
||
kill */</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>221</span></u><span
|
||
lang=EN-US> return(<u><span
|
||
style='color:blue'>kill_proc</span></u>(pid,sig,0));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>222</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>223</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>224</span></u><span
|
||
lang=EN-US> <b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>225</span></u><span
|
||
lang=EN-US> <b><i> * Determine if a process group is "orphaned",
|
||
according to the POSIX</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>226</span></u><span
|
||
lang=EN-US> <b><i> * definition in 2.2.2.52. Orphaned process groups are not to be affected</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>227</span></u><span
|
||
lang=EN-US> <b><i> * by terminal-generated stop signals. Newly
|
||
orphaned process groups are </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>228</span></u><span
|
||
lang=EN-US> <b><i> * to receive a SIGHUP and a SIGCONT.</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>229</span></u><span
|
||
lang=EN-US> <b><i> * </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>230</span></u><span
|
||
lang=EN-US> <b><i> * "I ask you, have you ever known what it is to be
|
||
an orphan?"</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>231</span></u><span
|
||
lang=EN-US> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US> /*</span></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>POSIX</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>2.2.2</span><span lang=EN-US>.52</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> * </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><span
|
||
lang=EN-US>SIGHUP</span></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span><EFBFBD>źź<EFBFBD>һ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGCONT</span><EFBFBD>źš<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> * </span></p>
|
||
|
||
<p class=a><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>¶<EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><EFBFBD>ʲô<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> */</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᵽ<EFBFBD><EFBFBD><span lang=EN-US>POSIX
|
||
P1003.1 2.2.2.52</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> // </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> </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> // </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> // </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> // </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><span
|
||
lang=EN-US>shell</span><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>shell</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> // </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> // SIGHUP</span><EFBFBD>źź<EFBFBD>һ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGCONT</span><EFBFBD>źţ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵĻỰ<EFBFBD><EFBFBD> <span lang=EN-US>session</span><EFBFBD><EFBFBD><EFBFBD>жϿ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // SIGHUP</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>Dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGHUP</span><EFBFBD>źš<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US> SIGCONT</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD>Ž<EFBFBD>ʹ<EFBFBD><EFBFBD>Щû<EFBFBD>б<EFBFBD><span
|
||
lang=EN-US>SIGHUP</span><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>Ľ<EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD> <20><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD>ֹͣ״̬<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> //</span></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>1</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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>߽<EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>IJ<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> // </span><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><EFBFBD>̵ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>init</span><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD>̲<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ij<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>丸<EFBFBD><E4B8B8><EFBFBD>̲<EFBFBD><CCB2><EFBFBD>
|
||
<span lang=EN-US>init</span><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><span
|
||
lang=EN-US>pgrp</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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ự<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pgrp</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>...</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>232</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>is_orphaned_pgrp</span></u>(int
|
||
pgrp)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>233</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>234</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> **p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>235</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>236</span></u><span
|
||
lang=EN-US> for (p = &<u><span
|
||
style='color:blue'>LAST_TASK</span></u> ; p > &<u><span
|
||
style='color:blue'>FIRST_TASK</span></u> ; --p) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>237</span></u><span
|
||
lang=EN-US>
|
||
if (!(*p) ||</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>238</span></u><span
|
||
lang=EN-US>
|
||
((*p)->pgrp != pgrp) || </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>239</span></u><span
|
||
lang=EN-US>
|
||
((*p)-><u><span style='color:blue'>state</span></u> == <u><span
|
||
style='color:blue'>TASK_ZOMBIE</span></u>) ||</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>240</span></u><span
|
||
lang=EN-US>
|
||
((*p)->p_pptr->pid == 1))</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>241</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>242</span></u><span
|
||
lang=EN-US>
|
||
if (((*p)->p_pptr->pgrp != pgrp) &&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>243</span></u><span
|
||
lang=EN-US>
|
||
((*p)->p_pptr->session == (*p)->session))</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>244</span></u><span
|
||
lang=EN-US>
|
||
return 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>245</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>246</span></u><span
|
||
lang=EN-US>
|
||
return(1); <b><i>/* (sighing) "Often!"
|
||
*/</i></b> /* </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'>247</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>248</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><EFBFBD>飩<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>0</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pgrp</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'>249</span></u><span
|
||
lang=EN-US> static int <u><span style='color:blue'>has_stopped_jobs</span></u>(int
|
||
pgrp)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>250</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>251</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> ** p;</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><u><span lang=EN-US style='color:blue'>253</span></u><span
|
||
lang=EN-US> for (p = &<u><span
|
||
style='color:blue'>LAST_TASK</span></u> ; p > &<u><span
|
||
style='color:blue'>FIRST_TASK</span></u> ; --p) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>254</span></u><span
|
||
lang=EN-US>
|
||
if ((*p)->pgrp != pgrp)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>255</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>256</span></u><span
|
||
lang=EN-US>
|
||
if ((*p)-><u><span style='color:blue'>state</span></u> == <u><span
|
||
style='color:blue'>TASK_STOPPED</span></u>)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>257</span></u><span
|
||
lang=EN-US>
|
||
return(1);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>258</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>259</span></u><span
|
||
lang=EN-US> return(0);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>260</span></u><span
|
||
lang=EN-US> }</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><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><span
|
||
lang=EN-US>365</span><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>sys_exit()</span><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD>Զ<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> // TASK_ZOMBIE</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>schedule()</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'>262</span></u><span
|
||
lang=EN-US> volatile void <u><span style='color:blue'>do_exit</span></u>(long
|
||
code)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>263</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>264</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> *p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>265</span></u><span
|
||
lang=EN-US> int i;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>266</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><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>ڴ<EFBFBD>ҳ<EFBFBD><EFBFBD>
|
||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>free_page_tables() </span><EFBFBD>ĵ<EFBFBD><span lang=EN-US>1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><span lang=EN-US>get_base()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>CPU</span><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ַ<EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>2</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>get_limit()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷŵ<EFBFBD><EFBFBD>ֽڳ<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>get_base()</span><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><span lang=EN-US>current->ldt[1]</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> // </span><EFBFBD><EFBFBD><span lang=EN-US>current->ldt[2]</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>get_limit()</span><EFBFBD>е<EFBFBD><span lang=EN-US>0x0f</span><EFBFBD>ǽ<EFBFBD><EFBFBD>̴<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>0x17</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> // </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>free_page_tables()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><span lang=EN-US>mm/memory.c</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD>ļ<EFBFBD><EFBFBD>ĵ<EFBFBD><span lang=EN-US>69</span><EFBFBD>п<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>get_base()</span><EFBFBD><EFBFBD><span lang=EN-US>get_limit()</span><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>include/linux/sched.h</span>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD>ĵ<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // 264</span><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> <u><span
|
||
style='color:blue'>free_page_tables</span></u>(<u><span style='color:blue'>get_base</span></u>(<u><span
|
||
style='color:blue'>current</span></u>->ldt[1]),<u><span style='color:blue'>get_limit</span></u>(0x0f));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>268</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>free_page_tables</span></u>(<u><span style='color:blue'>get_base</span></u>(<u><span
|
||
style='color:blue'>current</span></u>->ldt[2]),<u><span style='color:blue'>get_limit</span></u>(0x17));</span></p>
|
||
|
||
<p class=a><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>̵Ĺ<EFBFBD><EFBFBD><EFBFBD>Ŀ¼<span
|
||
lang=EN-US>pwd</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ¼<span lang=EN-US>root</span><EFBFBD><EFBFBD>ִ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><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>
|
||
<span lang=EN-US>i</span><EFBFBD>ڵ㲢<EFBFBD>ֱ<EFBFBD><EFBFBD>ÿգ<EFBFBD><EFBFBD>ͷţ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Űѵ<C5B0>ǰ</p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><span
|
||
lang=EN-US>TASK_ZOMBIE</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'>269</span></u><span
|
||
lang=EN-US> for (i=0 ; i<<u><span
|
||
style='color:blue'>NR_OPEN</span></u> ; i++)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>270</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>current</span></u>->filp[i])</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>271</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>sys_close</span></u>(i);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>272</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>iput</span></u>(<u><span style='color:blue'>current</span></u>->pwd);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>273</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>->pwd = <u><span style='color:blue'>NULL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>274</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>iput</span></u>(<u><span style='color:blue'>current</span></u>->root);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>275</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>->root = <u><span style='color:blue'>NULL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>276</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>iput</span></u>(<u><span style='color:blue'>current</span></u>->executable);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>277</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>->executable = <u><span
|
||
style='color:blue'>NULL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>278</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>iput</span></u>(<u><span style='color:blue'>current</span></u>->library);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>279</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>->library = <u><span style='color:blue'>NULL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>280</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>-><u><span style='color:blue'>state</span></u>
|
||
= <u><span style='color:blue'>TASK_ZOMBIE</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>281</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>->exit_code = code;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>282</span></u><span
|
||
lang=EN-US> <b><i>/* </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>283</span></u><span
|
||
lang=EN-US> <b><i> * Check
|
||
to see if any process groups have become orphaned</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>284</span></u><span
|
||
lang=EN-US> <b><i> * as a
|
||
result of our exiting, and if they have any stopped</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>285</span></u><span
|
||
lang=EN-US> <b><i> * jobs,
|
||
send them a SIGUP and then a SIGCONT. (POSIX 3.2.2.2)</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>286</span></u><span
|
||
lang=EN-US> <b><i> *</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>287</span></u><span
|
||
lang=EN-US> <b><i> * Case
|
||
i: Our father is in a different pgrp than we are</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>288</span></u><span
|
||
lang=EN-US> <b><i> * and
|
||
we were the only connection outside, so our pgrp</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>289</span></u><span
|
||
lang=EN-US> <b><i> * is
|
||
about to become orphaned.</i></b></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><span lang=EN-US> /*</span></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顣<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
* </span><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ֹͣ״̬<EFBFBD><EFBFBD><span lang=EN-US>TASK_STOPPED</span><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>
|
||
* </span>һ<EFBFBD><EFBFBD><span lang=EN-US>SIGHUP</span><EFBFBD>źź<EFBFBD>һ<EFBFBD><EFBFBD><span lang=EN-US>SIGCONT</span><EFBFBD>źš<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>POSIX 3.2.2.2</span><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
* </span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
* </span><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>Dz<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>
|
||
* </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>
|
||
*/</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // POSIX 3.2.2.2</span><EFBFBD><EFBFBD><span lang=EN-US>1991</span><EFBFBD>棩<EFBFBD>ǹ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>exit()</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> // </span><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD><EFBFBD>Ự<EFBFBD><EFBFBD><span
|
||
lang=EN-US>session</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> // </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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źţ<EFBFBD><span
|
||
lang=EN-US>SIGHUP</span><EFBFBD><EFBFBD><span lang=EN-US>SIGCONT</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>źŵ<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>232</span><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>291</span></u><span
|
||
lang=EN-US> if ((<u><span
|
||
style='color:blue'>current</span></u>->p_pptr->pgrp != <u><span
|
||
style='color:blue'>current</span></u>->pgrp) &&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>292</span></u><span
|
||
lang=EN-US>
|
||
(<u><span style='color:blue'>current</span></u>->p_pptr->session == <u><span
|
||
style='color:blue'>current</span></u>->session) &&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>293</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>is_orphaned_pgrp</span></u>(<u><span
|
||
style='color:blue'>current</span></u>->pgrp) &&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>294</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>has_stopped_jobs</span></u>(<u><span
|
||
style='color:blue'>current</span></u>->pgrp)) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>295</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>kill_pg</span></u>(<u><span style='color:blue'>current</span></u>->pgrp,<u><span
|
||
style='color:blue'>SIGHUP</span></u>,1);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>296</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>kill_pg</span></u>(<u><span style='color:blue'>current</span></u>->pgrp,<u><span
|
||
style='color:blue'>SIGCONT</span></u>,1);</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> <b><i>/* Let father
|
||
know we died */</i></b> /* </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'>299</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>current</span></u>->p_pptr->signal |= (1<<(<u><span
|
||
style='color:blue'>SIGCHLD</span></u>-1));</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><u><span lang=EN-US style='color:blue'>301</span></u><span
|
||
lang=EN-US> <b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>302</span></u><span
|
||
lang=EN-US> <b><i> * This
|
||
loop does two things:</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>303</span></u><span
|
||
lang=EN-US> <b><i> * </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>304</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
A. Make init inherit all the child processes</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>305</span></u><span
|
||
lang=EN-US> <b><i> * B.
|
||
Check to see if any process groups have become orphaned</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>306</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
as a result of our exiting, and if they have any stopped</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>307</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
jons, send them a SIGUP and then a SIGCONT. (POSIX 3.2.2.2)</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>308</span></u><span
|
||
lang=EN-US> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
/* </span></p>
|
||
|
||
<p class=a><span lang=EN-US> *
|
||
</span><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>
|
||
* </span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
* A. </span><EFBFBD><EFBFBD><span lang=EN-US>init</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>
|
||
* B. </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>
|
||
* </span><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD>ֹͣ״̬<EFBFBD><EFBFBD><span lang=EN-US>TASK_STOPPED</span><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>
|
||
* </span>һ<EFBFBD><EFBFBD><span lang=EN-US>SIGHUP</span><EFBFBD>źź<EFBFBD>һ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>SIGCONT</span><EFBFBD>źš<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>POSIX 3.2.2.2</span><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
*/</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p_cptr</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>1</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>init</span><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>init</span><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>ź<EFBFBD><span
|
||
lang=EN-US>SIGCHLD</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>309</span></u><span
|
||
lang=EN-US> if (p = <u><span
|
||
style='color:blue'>current</span></u>->p_cptr) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>310</span></u><span
|
||
lang=EN-US>
|
||
while (1) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>311</span></u><span
|
||
lang=EN-US>
|
||
p->p_pptr = <u><span style='color:blue'>task</span></u>[1];</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>312</span></u><span
|
||
lang=EN-US>
|
||
if (p-><u><span style='color:blue'>state</span></u> == <u><span
|
||
style='color:blue'>TASK_ZOMBIE</span></u>)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>313</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[1]->signal |= (1<<(<u><span
|
||
style='color:blue'>SIGCHLD</span></u>-1));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>314</span></u><span
|
||
lang=EN-US>
|
||
<b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>315</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
process group orphan check</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>316</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
Case ii: Our child is in a different pgrp </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>317</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
than we are, and it was the only connection</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>318</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
outside, so the child pgrp is now orphaned.</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>319</span></u><span
|
||
lang=EN-US> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
/* </span><EFBFBD>¶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣</p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
* </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>2</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>
|
||
* </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>
|
||
* </span><EFBFBD>齫<EFBFBD><EFBFBD>ɹ¶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
*/</span></p>
|
||
|
||
<p class=a><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><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>session</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> // </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> // </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>SIGHUP</span><EFBFBD><EFBFBD><span lang=EN-US>SIGCONT</span><EFBFBD><EFBFBD><span lang=EN-US>
|
||
</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵܽ<EFBFBD><EFBFBD>̣<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><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'>320</span></u><span
|
||
lang=EN-US>
|
||
if ((p->pgrp != <u><span style='color:blue'>current</span></u>->pgrp)
|
||
&&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>321</span></u><span
|
||
lang=EN-US>
|
||
(p->session == <u><span style='color:blue'>current</span></u>->session)
|
||
&&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>322</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>is_orphaned_pgrp</span></u>(p->pgrp) &&</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>323</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>has_stopped_jobs</span></u>(p->pgrp)) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>324</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>kill_pg</span></u>(p->pgrp,<u><span
|
||
style='color:blue'>SIGHUP</span></u>,1);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>325</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>kill_pg</span></u>(p->pgrp,<u><span
|
||
style='color:blue'>SIGCONT</span></u>,1);</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><u><span lang=EN-US style='color:blue'>327</span></u><span
|
||
lang=EN-US>
|
||
if (p->p_osptr) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>328</span></u><span
|
||
lang=EN-US>
|
||
p = p->p_osptr;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>329</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>330</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>331</span></u><span
|
||
lang=EN-US>
|
||
<b><i>/*</i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>332</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
This is it; link everything into init's children </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>333</span></u><span
|
||
lang=EN-US> <b><i> *
|
||
and leave </i></b></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>334</span></u><span
|
||
lang=EN-US> <b><i> */</i></b></span></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
/* </span></p>
|
||
|
||
<p class=a><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>Ϊ<span lang=EN-US>init</span><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̲<EFBFBD><EFBFBD>˳<EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US>
|
||
*/</span></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<span
|
||
lang=EN-US>p</span>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><span
|
||
lang=EN-US>init</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>init</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><span lang=EN-US>p_cptr
|
||
</span>ָ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><span lang=EN-US>the youngest</span><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>ϵģ<EFBFBD><span lang=EN-US>the
|
||
oldest</span><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US> p_osptr </span>ָ<EFBFBD><EFBFBD>ԭ<span lang=EN-US> init</span><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD>ԭ<span
|
||
lang=EN-US>init</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><span
|
||
lang=EN-US> p_ysptr</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>p_cptr</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </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'>335</span></u><span
|
||
lang=EN-US>
|
||
p->p_osptr = <u><span style='color:blue'>task</span></u>[1]->p_cptr;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>336</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[1]->p_cptr->p_ysptr = p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>337</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>task</span></u>[1]->p_cptr = <u><span
|
||
style='color:blue'>current</span></u>->p_cptr;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>338</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>current</span></u>->p_cptr = 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>339</span></u><span
|
||
lang=EN-US>
|
||
break;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>340</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>341</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻỰͷ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>(leader)</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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鷢<EFBFBD>Ҷ<EFBFBD><EFBFBD>ź<EFBFBD><span
|
||
lang=EN-US>SIGHUP</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> // </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'>342</span></u><span
|
||
lang=EN-US> if (<u><span
|
||
style='color:blue'>current</span></u>->leader) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>343</span></u><span
|
||
lang=EN-US>
|
||
struct <u><span style='color:blue'>task_struct</span></u> **p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>344</span></u><span
|
||
lang=EN-US>
|
||
struct <u><span style='color:blue'>tty_struct</span></u> *tty;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>345</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>346</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>current</span></u>->tty >= 0) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>347</span></u><span
|
||
lang=EN-US>
|
||
tty = <u><span style='color:blue'>TTY_TABLE</span></u>(<u><span
|
||
style='color:blue'>current</span></u>->tty);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>348</span></u><span
|
||
lang=EN-US>
|
||
if (tty->pgrp>0)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>349</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>kill_pg</span></u>(tty->pgrp, <u><span
|
||
style='color:blue'>SIGHUP</span></u>, 1);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>350</span></u><span
|
||
lang=EN-US>
|
||
tty->pgrp = 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>351</span></u><span
|
||
lang=EN-US>
|
||
tty->session = 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>352</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>353</span></u><span
|
||
lang=EN-US>
|
||
for (p = &<u><span style='color:blue'>LAST_TASK</span></u> ; p > &<u><span
|
||
style='color:blue'>FIRST_TASK</span></u> ; --p)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>354</span></u><span
|
||
lang=EN-US>
|
||
if
|
||
((*p)->session == <u><span style='color:blue'>current</span></u>->session)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>355</span></u><span
|
||
lang=EN-US>
|
||
(*p)->tty = -1;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>356</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><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><EFBFBD>Ѽ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<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> // </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><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </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'>357</span></u><span
|
||
lang=EN-US> if (<u><span
|
||
style='color:blue'>last_task_used_math</span></u> == <u><span style='color:
|
||
blue'>current</span></u>)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>358</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>last_task_used_math</span></u> = <u><span
|
||
style='color:blue'>NULL</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>359</span></u><span
|
||
lang=EN-US> #ifdef <u><span style='color:blue'>DEBUG_PROC_TREE</span></u></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>360</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>audit_ptree</span></u>();</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>361</span></u><span
|
||
lang=EN-US> #endif</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>362</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>schedule</span></u>();</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>363</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>364</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>exit()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>error_code</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>error_code</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>8</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>
|
||
wait() </span><EFBFBD><EFBFBD><span lang=EN-US> waitpid()</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>wait()</span><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>磬</p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ״̬<EFBFBD><EFBFBD><span
|
||
lang=EN-US>TASK_STOPPED</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽھ͵<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US> 0x7f</span><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><span
|
||
lang=EN-US> sys/wait.h</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>13--19</span><EFBFBD>С<EFBFBD>
|
||
<span lang=EN-US>wait() </span><EFBFBD><EFBFBD><span lang=EN-US>waitpid() </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> // </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'>365</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>sys_exit</span></u>(int error_code)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>366</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>367</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>do_exit</span></u>((error_code&0xff)<<8);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>368</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>369</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>waitpid()</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>ֱ<EFBFBD><EFBFBD><span
|
||
lang=EN-US>pid </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> // </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>pid</span><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><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> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid
|
||
> 0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺ŵ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid
|
||
= 0</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> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid
|
||
< -1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid
|
||
= -1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ȴ<EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̡<EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><span lang=EN-US>options
|
||
= WUNTRACED</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> // </span><EFBFBD><EFBFBD><span lang=EN-US>options
|
||
= WNOHANG</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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״ָ̬<EFBFBD><EFBFBD><span
|
||
lang=EN-US>stat_addr</span><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD>״̬<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>浽<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span><EFBFBD>ǽ<EFBFBD><EFBFBD>̺ţ<EFBFBD><span
|
||
lang=EN-US>*stat_addr</span><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>Ϣλ<EFBFBD>õ<EFBFBD>ָ<EFBFBD>룻<span lang=EN-US>options</span><EFBFBD><EFBFBD><span
|
||
lang=EN-US>waitpid</span>ѡ<EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>370</span></u><span
|
||
lang=EN-US> int <u><span style='color:blue'>sys_waitpid</span></u>(<u><span
|
||
style='color:blue'>pid_t</span></u> pid,unsigned long * stat_addr, int options)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>371</span></u><span
|
||
lang=EN-US> {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>372</span></u><span
|
||
lang=EN-US> int flag;
|
||
// </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'>373</span></u><span
|
||
lang=EN-US> struct <u><span
|
||
style='color:blue'>task_struct</span></u> *p;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>374</span></u><span
|
||
lang=EN-US> unsigned long
|
||
oldblocked;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>375</span></u><span
|
||
lang=EN-US> </span></p>
|
||
|
||
<p class=a><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><EFBFBD>Ȼ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>־<span
|
||
lang=EN-US>flag</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵӵ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><u><span lang=EN-US style='color:blue'>376</span></u><span
|
||
lang=EN-US> <u><span
|
||
style='color:blue'>verify_area</span></u>(stat_addr,4);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>377</span></u><span
|
||
lang=EN-US> repeat:</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>378</span></u><span
|
||
lang=EN-US> flag=0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>379</span></u><span
|
||
lang=EN-US> for (p = <u><span
|
||
style='color:blue'>current</span></u>->p_cptr ; p ; p = p->p_osptr) {</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̺<EFBFBD><span
|
||
lang=EN-US>pid>0</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뱻ɨ<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD><EFBFBD><span lang=EN-US>pid</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> // </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><u><span lang=EN-US style='color:blue'>380</span></u><span
|
||
lang=EN-US>
|
||
if (pid>0) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>381</span></u><span
|
||
lang=EN-US>
|
||
if (p->pid != pid)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>382</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><span
|
||
lang=EN-US>pid=0</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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p</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'>383</span></u><span
|
||
lang=EN-US>
|
||
} else if (!pid) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>384</span></u><span
|
||
lang=EN-US>
|
||
if (p->pgrp != <u><span style='color:blue'>current</span></u>->pgrp)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>385</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pid < -1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>ڵȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>pid</span><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> // </span><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pid</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'>386</span></u><span
|
||
lang=EN-US>
|
||
} else if (pid != -1) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>387</span></u><span
|
||
lang=EN-US>
|
||
if (p->pgrp != -pid)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>388</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>389</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>ǰ<span lang=EN-US>3</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>pid</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><span lang=EN-US>pid = -1</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ѡ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD> <span
|
||
lang=EN-US>p </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺ŵ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD> <span lang=EN-US>pid</span><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> // </span><EFBFBD>ӽ<EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><EFBFBD>̺ŵ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD> <span
|
||
lang=EN-US>pid </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>pid</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><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><span
|
||
lang=EN-US>p</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p
|
||
</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ״̬ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><span lang=EN-US>options</span><EFBFBD><EFBFBD><span lang=EN-US>WUNTRACED
|
||
</span><EFBFBD><EFBFBD>־û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ</p>
|
||
|
||
<p class=a><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>ʱ<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>̡<EFBFBD> <20><><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // WUNTRACED</span><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><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>Ϣ <span lang=EN-US>0x7f </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // *stat_addr</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>pid</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>0x7f </span><EFBFBD><EFBFBD>ʾ<EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>״̬ʹ</p>
|
||
|
||
<p class=a><span lang=EN-US> // WIFSTOPPED()</span><EFBFBD><EFBFBD>Ϊ<EFBFBD>档<EFBFBD>μ<EFBFBD><span
|
||
lang=EN-US>include/sys/wait.h</span><EFBFBD><EFBFBD><span lang=EN-US>14</span><EFBFBD>С<EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>390</span></u><span
|
||
lang=EN-US>
|
||
switch (p-><u><span style='color:blue'>state</span></u>) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>391</span></u><span
|
||
lang=EN-US>
|
||
case <u><span style='color:blue'>TASK_STOPPED</span></u>:</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>392</span></u><span
|
||
lang=EN-US>
|
||
if (!(options & <u><span style='color:blue'>WUNTRACED</span></u>) || </span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>393</span></u><span
|
||
lang=EN-US> !p->exit_code)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>394</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>395</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>put_fs_long</span></u>((p->exit_code << 8)
|
||
| 0x7f,</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>396</span></u><span
|
||
lang=EN-US>
|
||
stat_addr);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>397</span></u><span
|
||
lang=EN-US>
|
||
p->exit_code = 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>398</span></u><span
|
||
lang=EN-US>
|
||
return p->pid;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><span lang=EN-US>p</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> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD><EFBFBD>У<EFBFBD>Ȼ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>̵<EFBFBD><span
|
||
lang=EN-US>pid</span><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뷵<EFBFBD><EFBFBD>״̬λ<EFBFBD><EFBFBD><span lang=EN-US>stat_addr</span><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><span
|
||
lang=EN-US>pid</span><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><C3BD><EFBFBD></p>
|
||
|
||
<p class=a><span lang=EN-US> // </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'>399</span></u><span
|
||
lang=EN-US>
|
||
case <u><span style='color:blue'>TASK_ZOMBIE</span></u>:</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>400</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>current</span></u>->cutime += p-><u><span
|
||
style='color:blue'>utime</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>401</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>current</span></u>->cstime += p-><u><span
|
||
style='color:blue'>stime</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>402</span></u><span
|
||
lang=EN-US>
|
||
flag = p->pid;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>403</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>put_fs_long</span></u>(p->exit_code,
|
||
stat_addr);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>404</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>release</span></u>(p);</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>405</span></u><span
|
||
lang=EN-US> #ifdef <u><span style='color:blue'>DEBUG_PROC_TREE</span></u></span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>406</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>audit_ptree</span></u>();</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>407</span></u><span
|
||
lang=EN-US> #endif</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>408</span></u><span
|
||
lang=EN-US>
|
||
return flag;</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US>p</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>flag = 1</span><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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><EFBFBD>˯<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>409</span></u><span
|
||
lang=EN-US>
|
||
default:</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>410</span></u><span
|
||
lang=EN-US>
|
||
flag=1;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>411</span></u><span
|
||
lang=EN-US>
|
||
continue;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>412</span></u><span
|
||
lang=EN-US>
|
||
}</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>413</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><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><EFBFBD><EFBFBD><EFBFBD><span
|
||
lang=EN-US> flag</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> // </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>WNOHANG</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> // </span><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><EFBFBD><EFBFBD>жϵȴ<EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><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>յ<EFBFBD><span
|
||
lang=EN-US>SIGCHLD</span><EFBFBD>źš<EFBFBD>Ȼ<EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD><EFBFBD>ȳ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD>ֿ<EFBFBD>ʼ</p>
|
||
|
||
<p class=a><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><span
|
||
lang=EN-US>SIGCHLD</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> // </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>repeat</span><EFBFBD><EFBFBD>Ŵ<EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>414</span></u><span
|
||
lang=EN-US> if (flag) {</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>415</span></u><span
|
||
lang=EN-US>
|
||
if (options & <u><span style='color:blue'>WNOHANG</span></u>)</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>416</span></u><span
|
||
lang=EN-US>
|
||
return 0;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>417</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>current</span></u>-><u><span style='color:blue'>state</span></u>=<u><span
|
||
style='color:blue'>TASK_INTERRUPTIBLE</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>418</span></u><span
|
||
lang=EN-US>
|
||
oldblocked = <u><span style='color:blue'>current</span></u>->blocked;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>419</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>current</span></u>->blocked &= ~(1<<(<u><span
|
||
style='color:blue'>SIGCHLD</span></u>-1));</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>420</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>schedule</span></u>();</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>421</span></u><span
|
||
lang=EN-US>
|
||
<u><span style='color:blue'>current</span></u>->blocked = oldblocked;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>422</span></u><span
|
||
lang=EN-US>
|
||
if (<u><span style='color:blue'>current</span></u>->signal & ~(<u><span
|
||
style='color:blue'>current</span></u>->blocked | (1<<(<u><span
|
||
style='color:blue'>SIGCHLD</span></u>-1))))</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>423</span></u><span
|
||
lang=EN-US>
|
||
return -<u><span style='color:blue'>ERESTARTSYS</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>424</span></u><span
|
||
lang=EN-US>
|
||
else</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>425</span></u><span
|
||
lang=EN-US>
|
||
goto repeat;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>426</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><span lang=EN-US> // </span><EFBFBD><EFBFBD><span lang=EN-US>flag
|
||
= 0</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'>427</span></u><span
|
||
lang=EN-US> return -<u><span
|
||
style='color:blue'>ECHILD</span></u>;</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>428</span></u><span
|
||
lang=EN-US> }</span></p>
|
||
|
||
<p class=a><u><span lang=EN-US style='color:blue'>429</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> </span></p>
|
||
|
||
<p class=MsoNormal><span lang=EN-US> </span></p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|