3939 lines
446 KiB
HTML
Executable File
3939 lines
446 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="generator" content="TempleOS V5.03">
|
|
<meta name="viewport" content="width=device-width">
|
|
<link rel="stylesheet" href="/style/templeos.css">
|
|
<script src="/script/templeos.js"></script>
|
|
<style type="text/css">
|
|
.cF0{color:#000000;background-color:#ffffff;}
|
|
.cF1{color:#0000aa;background-color:#ffffff;}
|
|
.cF2{color:#00aa00;background-color:#ffffff;}
|
|
.cF3{color:#00aaaa;background-color:#ffffff;}
|
|
.cF4{color:#aa0000;background-color:#ffffff;}
|
|
.cF5{color:#aa00aa;background-color:#ffffff;}
|
|
.cF6{color:#aa5500;background-color:#ffffff;}
|
|
.cF7{color:#aaaaaa;background-color:#ffffff;}
|
|
.cF8{color:#555555;background-color:#ffffff;}
|
|
.cF9{color:#5555ff;background-color:#ffffff;}
|
|
.cFA{color:#55ff55;background-color:#ffffff;}
|
|
.cFB{color:#55ffff;background-color:#ffffff;}
|
|
.cFC{color:#ff5555;background-color:#ffffff;}
|
|
.cFD{color:#ff55ff;background-color:#ffffff;}
|
|
.cFE{color:#ffff55;background-color:#ffffff;}
|
|
.cFF{color:#ffffff;background-color:#ffffff;}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<pre id="content">
|
|
<a name="l1"></a><span class=cF2>// Main TempleOS header</span><span class=cF0>
|
|
<a name="l2"></a>
|
|
<a name="l3"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>""</span><span class=cF0>
|
|
<a name="l4"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOT</span><span class=cF0>;
|
|
<a name="l5"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTHeapGlbl</span><span class=cF0>;
|
|
<a name="l6"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTImportExport</span><span class=cF0>;
|
|
<a name="l7"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0>;
|
|
<a name="l8"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDC</span><span class=cF0>;
|
|
<a name="l9"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDirContext</span><span class=cF0>;
|
|
<a name="l10"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDoc</span><span class=cF0>;
|
|
<a name="l11"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFile</span><span class=cF0>;
|
|
<a name="l12"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashClass</span><span class=cF0>;
|
|
<a name="l13"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashFun</span><span class=cF0>;
|
|
<a name="l14"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHeapCtrl</span><span class=cF0>;
|
|
<a name="l15"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CIntermediateCode</span><span class=cF0>;
|
|
<a name="l16"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CJobCtrl</span><span class=cF0>;
|
|
<a name="l17"></a></span><span class=cF1>extern</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0>;
|
|
<a name="l18"></a>
|
|
<a name="l19"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>NULL</span><span class=cF0> 0
|
|
<a name="l20"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TRUE</span><span class=cF0> 1
|
|
<a name="l21"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FALSE</span><span class=cF0> 0
|
|
<a name="l22"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ON</span><span class=cF0> 1
|
|
<a name="l23"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OFF</span><span class=cF0> 0
|
|
<a name="l24"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I8_MIN</span><span class=cF0> (-0x80)
|
|
<a name="l25"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I8_MAX</span><span class=cF0> 0x7F
|
|
<a name="l26"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U8_MIN</span><span class=cF0> 0
|
|
<a name="l27"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U8_MAX</span><span class=cF0> 0xFF
|
|
<a name="l28"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I16_MIN</span><span class=cF0> (-0x8000)
|
|
<a name="l29"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I16_MAX</span><span class=cF0> 0x7FFF
|
|
<a name="l30"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U16_MIN</span><span class=cF0> 0
|
|
<a name="l31"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U16_MAX</span><span class=cF0> 0xFFFF
|
|
<a name="l32"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I32_MIN</span><span class=cF0> (-0x80000000)
|
|
<a name="l33"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I32_MAX</span><span class=cF0> 0x7FFFFFFF
|
|
<a name="l34"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U32_MIN</span><span class=cF0> 0
|
|
<a name="l35"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U32_MAX</span><span class=cF0> 0xFFFFFFFF
|
|
<a name="l36"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I64_MIN</span><span class=cF0> (-0x8000000000000000)
|
|
<a name="l37"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I64_MAX</span><span class=cF0> 0x7FFFFFFFFFFFFFFF
|
|
<a name="l38"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U64_MIN</span><span class=cF0> 0
|
|
<a name="l39"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U64_MAX</span><span class=cF0> 0xFFFFFFFFFFFFFFFF
|
|
<a name="l40"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>INVALID_PTR</span><span class=cF0> </span><span class=cF3>I64_MAX</span><span class=cF0>
|
|
<a name="l41"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>STR_LEN</span><span class=cF0> 144
|
|
<a name="l42"></a>
|
|
<a name="l43"></a></span><span class=cF2>//(Int to F64 conversion is signed)</span><span class=cF0>
|
|
<a name="l44"></a></span><span class=cF2>//Turn off 80-bit float constants with </span><a href="/Wb/Kernel/KernelA.HH.HTML#l1557"><span class=cF4>OPTf_NO_BUILTIN_CONST</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l45"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>U64_F64_MAX</span><span class=cF0> (0x43F0000000000000</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l46"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>F64_MAX</span><span class=cF0> (0x7FEFFFFFFFFFFFFF</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l47"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>F64_MIN</span><span class=cF0> (0xFFEFFFFFFFFFFFFF</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l48"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>inf</span><span class=cF0> (0x7FF0000000000000</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l49"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>inf</span><span class=cF0> (0x7FF0000000000000</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l50"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>pi</span><span class=cF0> (0x400921FB54442D18</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l51"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>pi</span><span class=cF0> (0x400921FB54442D18</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l52"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>exp_1</span><span class=cF0> (0x4005BF0A8B145769</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>) </span><span class=cF2>//The number "e"</span><span class=cF0>
|
|
<a name="l53"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>log2_10</span><span class=cF0> (0x400A934F0979A371</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l54"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>log2_e</span><span class=cF0> (0x3FF71547652B82FE</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l55"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>log10_2</span><span class=cF0> (0x3FD34413509F79FF</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l56"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>loge_2</span><span class=cF0> (0x3FE62E42FEFA39EF</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l57"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>sqrt2</span><span class=cF0> (0x3FF6A09E667F3BCD</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l58"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>eps</span><span class=cF0> (0x3CB0000000000000</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l59"></a>
|
|
<a name="l60"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Data Types/Simple"</span><span class=cF0>
|
|
<a name="l61"></a></span><span class=cF2>/*HolyC union structure is treated as a</span><span class=cF0>
|
|
<a name="l62"></a></span><span class=cF2>whole if no member is specified,</span><span class=cF0>
|
|
<a name="l63"></a></span><span class=cF2>similar to bit fields.</span><span class=cF0>
|
|
<a name="l64"></a>
|
|
<a name="l65"></a></span><span class=cF2>See </span><a href="/Wb/Kernel/KMisc.HC.HTML#l25"><span class=cF4>EndianI64</span></a><span class=cF2>() and </span><a href="/Wb/Demo/SubIntAccess.HC.HTML#l1"><span class=cF4>::/Demo/SubIntAccess.HC</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l66"></a></span><span class=cF2>*/</span><span class=cF0>
|
|
<a name="l67"></a></span><span class=cF1>U16i</span><span class=cF0> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0>
|
|
<a name="l68"></a>{
|
|
<a name="l69"></a> </span><span class=cF1>I8i</span><span class=cF0> i8[2];
|
|
<a name="l70"></a> </span><span class=cF1>U8i</span><span class=cF0> u8[2];
|
|
<a name="l71"></a>};
|
|
<a name="l72"></a>
|
|
<a name="l73"></a></span><span class=cF1>I16i</span><span class=cF0> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF9>I16</span><span class=cF0>
|
|
<a name="l74"></a>{
|
|
<a name="l75"></a> </span><span class=cF1>I8i</span><span class=cF0> i8[2];
|
|
<a name="l76"></a> </span><span class=cF1>U8i</span><span class=cF0> u8[2];
|
|
<a name="l77"></a>};
|
|
<a name="l78"></a>
|
|
<a name="l79"></a></span><span class=cF1>U32i</span><span class=cF0> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0>
|
|
<a name="l80"></a>{
|
|
<a name="l81"></a> </span><span class=cF1>I8i</span><span class=cF0> i8[4];
|
|
<a name="l82"></a> </span><span class=cF1>U8i</span><span class=cF0> u8[4];
|
|
<a name="l83"></a> </span><span class=cF9>I16</span><span class=cF0> i16[2];
|
|
<a name="l84"></a> </span><span class=cF9>U16</span><span class=cF0> u16[2];
|
|
<a name="l85"></a>};
|
|
<a name="l86"></a>
|
|
<a name="l87"></a></span><span class=cF1>I32i</span><span class=cF0> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF9>I32</span><span class=cF0>
|
|
<a name="l88"></a>{
|
|
<a name="l89"></a> </span><span class=cF1>I8i</span><span class=cF0> i8[4];
|
|
<a name="l90"></a> </span><span class=cF1>U8i</span><span class=cF0> u8[4];
|
|
<a name="l91"></a> </span><span class=cF9>I16</span><span class=cF0> i16[2];
|
|
<a name="l92"></a> </span><span class=cF9>U16</span><span class=cF0> u16[2];
|
|
<a name="l93"></a>};
|
|
<a name="l94"></a>
|
|
<a name="l95"></a></span><span class=cF1>U64i</span><span class=cF0> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0>
|
|
<a name="l96"></a>{
|
|
<a name="l97"></a> </span><span class=cF1>I8i</span><span class=cF0> i8[8];
|
|
<a name="l98"></a> </span><span class=cF1>U8i</span><span class=cF0> u8[8];
|
|
<a name="l99"></a> </span><span class=cF9>I16</span><span class=cF0> i16[4];
|
|
<a name="l100"></a> </span><span class=cF9>U16</span><span class=cF0> u16[4];
|
|
<a name="l101"></a> </span><span class=cF9>I32</span><span class=cF0> i32[2];
|
|
<a name="l102"></a> </span><span class=cF9>U32</span><span class=cF0> u32[2];
|
|
<a name="l103"></a>};
|
|
<a name="l104"></a>
|
|
<a name="l105"></a></span><span class=cF1>I64i</span><span class=cF0> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0>
|
|
<a name="l106"></a>{
|
|
<a name="l107"></a> </span><span class=cF1>I8i</span><span class=cF0> i8[8];
|
|
<a name="l108"></a> </span><span class=cF1>U8i</span><span class=cF0> u8[8];
|
|
<a name="l109"></a> </span><span class=cF9>I16</span><span class=cF0> i16[4];
|
|
<a name="l110"></a> </span><span class=cF9>U16</span><span class=cF0> u16[4];
|
|
<a name="l111"></a> </span><span class=cF9>I32</span><span class=cF0> i32[2];
|
|
<a name="l112"></a> </span><span class=cF9>U32</span><span class=cF0> u32[2];
|
|
<a name="l113"></a>};
|
|
<a name="l114"></a>
|
|
<a name="l115"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Math/Complex;Data Types/Complex"</span><span class=cF0>
|
|
<a name="l116"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>Complex</span><span class=cF0>
|
|
<a name="l117"></a>{
|
|
<a name="l118"></a> </span><span class=cF1>F64</span><span class=cF0> x,y;
|
|
<a name="l119"></a>};
|
|
<a name="l120"></a>
|
|
<a name="l121"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Data Types/Circular Queue"</span><span class=cF0>
|
|
<a name="l122"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CQue</span><span class=cF0>
|
|
<a name="l123"></a>{
|
|
<a name="l124"></a> </span><span class=cF9>CQue</span><span class=cF0> *next,*last;
|
|
<a name="l125"></a>};
|
|
<a name="l126"></a>
|
|
<a name="l127"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Graphics/Data Types/D3I32;Math/Data Types/D3I32;Data Types/D3I32"</span><span class=cF0>
|
|
<a name="l128"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CD3I32</span><span class=cF0> </span><span class=cF2>//Three dimensional I32 pt</span><span class=cF0>
|
|
<a name="l129"></a>{
|
|
<a name="l130"></a> </span><span class=cF9>I32</span><span class=cF0> x,y,z;
|
|
<a name="l131"></a>};
|
|
<a name="l132"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CQueD3I32</span><span class=cF0> </span><span class=cF2>//Que of three dimensional I32 pts</span><span class=cF0>
|
|
<a name="l133"></a>{
|
|
<a name="l134"></a> </span><span class=cF9>CQueD3I32</span><span class=cF0> *next,*last;
|
|
<a name="l135"></a> </span><span class=cF9>CD3I32</span><span class=cF0> p;
|
|
<a name="l136"></a>};
|
|
<a name="l137"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Math/Data Types;Data Types"</span><span class=cF0>
|
|
<a name="l138"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CD2I32</span><span class=cF0> </span><span class=cF2>//Two dimensional I32 pt</span><span class=cF0>
|
|
<a name="l139"></a>{
|
|
<a name="l140"></a> </span><span class=cF9>I32</span><span class=cF0> x,y;
|
|
<a name="l141"></a>};
|
|
<a name="l142"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CD2I64</span><span class=cF0> </span><span class=cF2>//Two dimensional I64 pt</span><span class=cF0>
|
|
<a name="l143"></a>{
|
|
<a name="l144"></a> </span><span class=cF9>I64</span><span class=cF0> x,y;
|
|
<a name="l145"></a>};
|
|
<a name="l146"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CD3I64</span><span class=cF0> </span><span class=cF2>//Three dimensional I64 pt</span><span class=cF0>
|
|
<a name="l147"></a>{
|
|
<a name="l148"></a> </span><span class=cF9>I64</span><span class=cF0> x,y,z;
|
|
<a name="l149"></a>};
|
|
<a name="l150"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CD2</span><span class=cF0> </span><span class=cF2>//Two dimensional F64 pt</span><span class=cF0>
|
|
<a name="l151"></a>{
|
|
<a name="l152"></a> </span><span class=cF1>F64</span><span class=cF0> x,y;
|
|
<a name="l153"></a>};
|
|
<a name="l154"></a>
|
|
<a name="l155"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Math/CD3;Data Types/CD3"</span><span class=cF0>
|
|
<a name="l156"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> </span><span class=cF2>//Three dimensional F64 pt</span><span class=cF0>
|
|
<a name="l157"></a>{
|
|
<a name="l158"></a> </span><span class=cF1>F64</span><span class=cF0> x,y,z;
|
|
<a name="l159"></a>};
|
|
<a name="l160"></a>
|
|
<a name="l161"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Data Types/Queue Vector"</span><span class=cF0>
|
|
<a name="l162"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>QUE_VECT_U8_CNT</span><span class=cF0> 512
|
|
<a name="l163"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CQueVectU8</span><span class=cF0>
|
|
<a name="l164"></a>{
|
|
<a name="l165"></a> </span><span class=cF9>CQueVectU8</span><span class=cF0> *next,*last;
|
|
<a name="l166"></a> </span><span class=cF9>I64</span><span class=cF0> total_cnt,node_cnt,min_idx;
|
|
<a name="l167"></a> </span><span class=cF1>U8</span><span class=cF0> body[</span><span class=cF3>QUE_VECT_U8_CNT</span><span class=cF0>];
|
|
<a name="l168"></a>};
|
|
<a name="l169"></a>
|
|
<a name="l170"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Data Types/Fifo"</span><span class=cF0>
|
|
<a name="l171"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFifoU8</span><span class=cF0>
|
|
<a name="l172"></a>{
|
|
<a name="l173"></a> </span><span class=cF1>U8</span><span class=cF0> *buf;
|
|
<a name="l174"></a> </span><span class=cF9>I64</span><span class=cF0> mask,in_ptr,out_ptr;
|
|
<a name="l175"></a>};
|
|
<a name="l176"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFifoI64</span><span class=cF0>
|
|
<a name="l177"></a>{
|
|
<a name="l178"></a> </span><span class=cF9>I64</span><span class=cF0> *buf;
|
|
<a name="l179"></a> </span><span class=cF9>I64</span><span class=cF0> mask,in_ptr,out_ptr;
|
|
<a name="l180"></a>};
|
|
<a name="l181"></a>
|
|
<a name="l182"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Date/CDate"</span><span class=cF0>
|
|
<a name="l183"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDATE_YEAR_DAYS</span><span class=cF0> 365.24225
|
|
<a name="l184"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDATE_YEAR_DAYS_INT</span><span class=cF0> 36524225
|
|
<a name="l185"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDATE_BASE_DAY_OF_WEEK</span><span class=cF0> 0
|
|
<a name="l186"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDate</span><span class=cF0>
|
|
<a name="l187"></a>{
|
|
<a name="l188"></a> </span><span class=cF9>U32</span><span class=cF0> time;
|
|
<a name="l189"></a> </span><span class=cF9>I32</span><span class=cF0> date;
|
|
<a name="l190"></a>};
|
|
<a name="l191"></a>
|
|
<a name="l192"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Date;Date/CDate"</span><span class=cF0>
|
|
<a name="l193"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDateStruct</span><span class=cF0>
|
|
<a name="l194"></a>{
|
|
<a name="l195"></a> </span><span class=cF1>U8</span><span class=cF0> sec10000,sec100,sec,min,hour,
|
|
<a name="l196"></a> day_of_week,day_of_mon,mon;
|
|
<a name="l197"></a> </span><span class=cF9>I32</span><span class=cF0> year;
|
|
<a name="l198"></a>};
|
|
<a name="l199"></a>
|
|
<a name="l200"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Math/ODE"</span><span class=cF0>
|
|
<a name="l201"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>COrder2D3</span><span class=cF0>
|
|
<a name="l202"></a>{
|
|
<a name="l203"></a> </span><span class=cF1>F64</span><span class=cF0> x,y,z,
|
|
<a name="l204"></a> DxDt,DyDt,DzDt;
|
|
<a name="l205"></a>};
|
|
<a name="l206"></a>
|
|
<a name="l207"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSF_INACTIVE</span><span class=cF0> 1
|
|
<a name="l208"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSF_FIXED</span><span class=cF0> 2
|
|
<a name="l209"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMass</span><span class=cF0>
|
|
<a name="l210"></a>{
|
|
<a name="l211"></a> </span><span class=cF9>CMass</span><span class=cF0> *next,*last;
|
|
<a name="l212"></a> </span><span class=cF9>COrder2D3</span><span class=cF0> *state, </span><span class=cF2>//Point to entries in </span><a href="/Wb/Kernel/KernelA.HH.HTML#l251"><span class=cF4>CMathODE</span></a><span class=cF2>.state[]</span><span class=cF0>
|
|
<a name="l213"></a> *DstateDt; </span><span class=cF2>//Point to entries in </span><a href="/Wb/Kernel/KernelA.HH.HTML#l251"><span class=cF4>CMathODE</span></a><span class=cF2>.DstateDt[]</span><span class=cF0>
|
|
<a name="l214"></a>
|
|
<a name="l215"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l216"></a> </span><span class=cF9>U32</span><span class=cF0> flags,num;
|
|
<a name="l217"></a> </span><span class=cF1>F64</span><span class=cF0> mass,drag_profile_factor;
|
|
<a name="l218"></a> </span><span class=cF1>U0</span><span class=cF0> saved_state;
|
|
<a name="l219"></a> </span><span class=cF1>F64</span><span class=cF0> x,y,z,
|
|
<a name="l220"></a> DxDt,DyDt,DzDt;
|
|
<a name="l221"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>end</span><span class=cF0>;
|
|
<a name="l222"></a>};
|
|
<a name="l223"></a>
|
|
<a name="l224"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SSF_INACTIVE</span><span class=cF0> 1
|
|
<a name="l225"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SSF_NO_COMPRESSION</span><span class=cF0> 2
|
|
<a name="l226"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SSF_NO_TENSION</span><span class=cF0> 4
|
|
<a name="l227"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CSpring</span><span class=cF0>
|
|
<a name="l228"></a>{
|
|
<a name="l229"></a> </span><span class=cF9>CSpring</span><span class=cF0> *next,*last;
|
|
<a name="l230"></a> </span><span class=cF9>CMass</span><span class=cF0> *end1,*end2;
|
|
<a name="l231"></a> </span><span class=cF1>F64</span><span class=cF0> f,displacement; </span><span class=cF2>//set for you to check</span><span class=cF0>
|
|
<a name="l232"></a>
|
|
<a name="l233"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l234"></a> </span><span class=cF9>U32</span><span class=cF0> flags,num,
|
|
<a name="l235"></a> end1_num,end2_num;
|
|
<a name="l236"></a> </span><span class=cF1>F64</span><span class=cF0> const,rest_len;
|
|
<a name="l237"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>end</span><span class=cF0>;
|
|
<a name="l238"></a>};
|
|
<a name="l239"></a>
|
|
<a name="l240"></a></span><span class=cF2>//Ordinary Differential Equations</span><span class=cF0>
|
|
<a name="l241"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEF_HAS_MASSES</span><span class=cF0> 1
|
|
<a name="l242"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEF_PAUSED</span><span class=cF0> 2
|
|
<a name="l243"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEF_STARTED</span><span class=cF0> 4
|
|
<a name="l244"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEF_BUSY</span><span class=cF0> 8
|
|
<a name="l245"></a>
|
|
<a name="l246"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEf_HAS_MASSES</span><span class=cF0> 0
|
|
<a name="l247"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEf_PAUSED</span><span class=cF0> 1
|
|
<a name="l248"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEf_STARTED</span><span class=cF0> 2
|
|
<a name="l249"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ODEf_BUSY</span><span class=cF0> 3
|
|
<a name="l250"></a>
|
|
<a name="l251"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMathODE</span><span class=cF0>
|
|
<a name="l252"></a>{
|
|
<a name="l253"></a> </span><span class=cF9>CMathODE</span><span class=cF0> *next,*last;
|
|
<a name="l254"></a> </span><span class=cF9>I64</span><span class=cF0> flags,n,n_internal;
|
|
<a name="l255"></a> </span><span class=cF9>CMass</span><span class=cF0> *next_mass,*last_mass;
|
|
<a name="l256"></a> </span><span class=cF9>CSpring</span><span class=cF0> *next_spring,*last_spring;
|
|
<a name="l257"></a> </span><span class=cF1>F64</span><span class=cF0> drag_v, </span><span class=cF2>//drag proportional to velocity</span><span class=cF0>
|
|
<a name="l258"></a> drag_v2, </span><span class=cF2>//drag proportional to velocity squared</span><span class=cF0>
|
|
<a name="l259"></a> drag_v3, </span><span class=cF2>//drag proportional to velocity cubed</span><span class=cF0>
|
|
<a name="l260"></a> acceleration_limit, </span><span class=cF2>//This clips acceleration</span><span class=cF0>
|
|
<a name="l261"></a> base_t,
|
|
<a name="l262"></a> t,t_scale,
|
|
<a name="l263"></a> h,h_min,h_max;
|
|
<a name="l264"></a>
|
|
<a name="l265"></a> </span><span class=cF2>//This is not precise, just a ballpark.</span><span class=cF0>
|
|
<a name="l266"></a> </span><span class=cF2>//TempleOS CMathODE's are for video games</span><span class=cF0>
|
|
<a name="l267"></a> </span><span class=cF2>//not science. It bails if it takes</span><span class=cF0>
|
|
<a name="l268"></a> </span><span class=cF2>//too long.</span><span class=cF0>
|
|
<a name="l269"></a> </span><span class=cF1>F64</span><span class=cF0> min_tolerance,max_tolerance;
|
|
<a name="l270"></a>
|
|
<a name="l271"></a> </span><span class=cF1>F64</span><span class=cF0> tolerance_internal,
|
|
<a name="l272"></a> *array_base,
|
|
<a name="l273"></a> *state,
|
|
<a name="l274"></a> *state_internal,
|
|
<a name="l275"></a> *DstateDt,
|
|
<a name="l276"></a> *state_scale,
|
|
<a name="l277"></a> *initial_state,
|
|
<a name="l278"></a> *tmp0,*tmp1,*tmp2,*tmp3,
|
|
<a name="l279"></a> *tmp4,*tmp5,*tmp6,*tmp7;
|
|
<a name="l280"></a> </span><span class=cF9>CTask</span><span class=cF0> *mem_task,*win_task;
|
|
<a name="l281"></a> </span><span class=cF1>U0</span><span class=cF0> (*derive)(</span><span class=cF9>CMathODE</span><span class=cF0> *o,</span><span class=cF1>F64</span><span class=cF0> t,</span><span class=cF1>F64</span><span class=cF0> *state,</span><span class=cF1>F64</span><span class=cF0> *DstateDt);
|
|
<a name="l282"></a> </span><span class=cF1>U0</span><span class=cF0> (*mp_derive)(</span><span class=cF9>CMathODE</span><span class=cF0> *o,</span><span class=cF1>F64</span><span class=cF0> t, </span><span class=cF2>//If break into parallel pieces.</span><span class=cF0>
|
|
<a name="l283"></a> </span><span class=cF9>I64</span><span class=cF0> cpu_num,</span><span class=cF1>F64</span><span class=cF0> *state,</span><span class=cF1>F64</span><span class=cF0> *DstateDt);
|
|
<a name="l284"></a> </span><span class=cF9>CTask</span><span class=cF0> **slave_tasks;
|
|
<a name="l285"></a> </span><span class=cF9>I64</span><span class=cF0> mp_not_done_flags;
|
|
<a name="l286"></a> </span><span class=cF1>F64</span><span class=cF0> mp_t,*mp_state,*mp_DstateDt;
|
|
<a name="l287"></a>
|
|
<a name="l288"></a> </span><span class=cF9>I64</span><span class=cF0> user_data;
|
|
<a name="l289"></a>};
|
|
<a name="l290"></a>
|
|
<a name="l291"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Processor"</span><span class=cF0>
|
|
<a name="l292"></a></span><span class=cF2>//IDT entry types</span><span class=cF0>
|
|
<a name="l293"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IDTET_TASK</span><span class=cF0> 0x05
|
|
<a name="l294"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IDTET_IRQ</span><span class=cF0> 0x0E
|
|
<a name="l295"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IDTET_TRAP</span><span class=cF0> 0x0F </span><span class=cF2>//Same as IRQ but doesnt do CLI.</span><span class=cF0>
|
|
<a name="l296"></a>
|
|
<a name="l297"></a></span><span class=cF2>//Interrupts</span><span class=cF0>
|
|
<a name="l298"></a></span><span class=cF2>//0x00-0x1F are reserved by Intel</span><span class=cF0>
|
|
<a name="l299"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_DIV_ZERO</span><span class=cF0> 0x00
|
|
<a name="l300"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_SINGLE_STEP</span><span class=cF0> 0x01
|
|
<a name="l301"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_NMI</span><span class=cF0> 0x02
|
|
<a name="l302"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_BPT</span><span class=cF0> 0x03
|
|
<a name="l303"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_PAGE_FAULT</span><span class=cF0> 0x0E
|
|
<a name="l304"></a></span><span class=cF2>//0x20-0x2F are used for hardware</span><span class=cF0>
|
|
<a name="l305"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_TIMER</span><span class=cF0> 0x20
|
|
<a name="l306"></a></span><span class=cF2>//Software Interrupts</span><span class=cF0>
|
|
<a name="l307"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_MP_CRASH</span><span class=cF0> 0x30
|
|
<a name="l308"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_WAKE</span><span class=cF0> 0x31
|
|
<a name="l309"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_DBG</span><span class=cF0> 0x32
|
|
<a name="l310"></a></span><span class=cF2>//See </span><a href="/Wb/Kernel/KDefine.HC.HTML#l126"><span class=cF4>ST_INT_NAMES</span></a><span class=cF0>
|
|
<a name="l311"></a>
|
|
<a name="l312"></a></span><span class=cF2>//You might want to start bwd from</span><span class=cF0>
|
|
<a name="l313"></a></span><span class=cF2>//0xFF for your own interrupts.</span><span class=cF0>
|
|
<a name="l314"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>I_USER</span><span class=cF0> 0x40
|
|
<a name="l315"></a>
|
|
<a name="l316"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MP_PROCESSORS_NUM</span><span class=cF0> 128
|
|
<a name="l317"></a>
|
|
<a name="l318"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SYS_START_CR0</span><span class=cF0> 0x0031
|
|
<a name="l319"></a>
|
|
<a name="l320"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_CARRY</span><span class=cF0> 0
|
|
<a name="l321"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_PARITY</span><span class=cF0> 2
|
|
<a name="l322"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_AUX_CARRY</span><span class=cF0> 4
|
|
<a name="l323"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_ZERO</span><span class=cF0> 6
|
|
<a name="l324"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_SIGN</span><span class=cF0> 7
|
|
<a name="l325"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_TRAP</span><span class=cF0> 8 </span><span class=cF2>//Single Step</span><span class=cF0>
|
|
<a name="l326"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_INT</span><span class=cF0> 9
|
|
<a name="l327"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_DIR</span><span class=cF0> 10
|
|
<a name="l328"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_OVERFLOW</span><span class=cF0> 11
|
|
<a name="l329"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_IOPL0</span><span class=cF0> 12 </span><span class=cF2>// I/O Privilege Level</span><span class=cF0>
|
|
<a name="l330"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_IOPL1</span><span class=cF0> 13
|
|
<a name="l331"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_NESTED_TASK</span><span class=cF0> 14
|
|
<a name="l332"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_RESUME</span><span class=cF0> 16
|
|
<a name="l333"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_V8086</span><span class=cF0> 17
|
|
<a name="l334"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_ALIGN_CHECK</span><span class=cF0> 18
|
|
<a name="l335"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_VINT</span><span class=cF0> 19 </span><span class=cF2>//Virtual Interrupt</span><span class=cF0>
|
|
<a name="l336"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_VINT_PENDING</span><span class=cF0> 20
|
|
<a name="l337"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGf_ID</span><span class=cF0> 21
|
|
<a name="l338"></a>
|
|
<a name="l339"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGG_START</span><span class=cF0> 0x0000
|
|
<a name="l340"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RFLAGG_NORMAL</span><span class=cF0> (1<<</span><span class=cF3>RFLAGf_INT</span><span class=cF0>)
|
|
<a name="l341"></a>
|
|
<a name="l342"></a></span><span class=cF2>//Global Descriptor Table</span><span class=cF0>
|
|
<a name="l343"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CGDTEntry</span><span class=cF0>
|
|
<a name="l344"></a>{
|
|
<a name="l345"></a> </span><span class=cF9>U64</span><span class=cF0> lo,hi;
|
|
<a name="l346"></a>};
|
|
<a name="l347"></a>
|
|
<a name="l348"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CGDT</span><span class=cF0>
|
|
<a name="l349"></a>{
|
|
<a name="l350"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> null;
|
|
<a name="l351"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> boot_ds;
|
|
<a name="l352"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> boot_cs;
|
|
<a name="l353"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> cs32;
|
|
<a name="l354"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> cs64; </span><span class=cF2>//The </span><a href="/Wb/Doc/Charter.DD.HTML#l1"><span class=cF4>Charter</span></a><span class=cF2> says just ring-0.</span><span class=cF0>
|
|
<a name="l355"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> cs64_ring3; </span><span class=cF2>//</span><a href="/Wb/Demo/Lectures/Ring3.HC.HTML#l1"><span class=cF4>Ring3</span></a><span class=cF2>, in case you want to play around.</span><span class=cF0>
|
|
<a name="l356"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> ds;
|
|
<a name="l357"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> ds_ring3;
|
|
<a name="l358"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> tr[</span><span class=cF3>MP_PROCESSORS_NUM</span><span class=cF0>];
|
|
<a name="l359"></a> </span><span class=cF9>CGDTEntry</span><span class=cF0> tr_ring3[</span><span class=cF3>MP_PROCESSORS_NUM</span><span class=cF0>];
|
|
<a name="l360"></a>};
|
|
<a name="l361"></a>
|
|
<a name="l362"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CSysLimitBase</span><span class=cF0>
|
|
<a name="l363"></a>{
|
|
<a name="l364"></a> </span><span class=cF9>U16</span><span class=cF0> limit; </span><span class=cF2>//Offset of last byte, not size.</span><span class=cF0>
|
|
<a name="l365"></a> </span><span class=cF1>U8</span><span class=cF0> *base; </span><span class=cF2>//&GDT or &IDT</span><span class=cF0>
|
|
<a name="l366"></a>};
|
|
<a name="l367"></a>
|
|
<a name="l368"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Memory/Info"</span><span class=cF0>
|
|
<a name="l369"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_E820_ENTRIES_NUM</span><span class=cF0> 48
|
|
<a name="l370"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemE820</span><span class=cF0>
|
|
<a name="l371"></a>{
|
|
<a name="l372"></a> </span><span class=cF1>U8</span><span class=cF0> *base;
|
|
<a name="l373"></a> </span><span class=cF9>I64</span><span class=cF0> len;
|
|
<a name="l374"></a> </span><span class=cF1>U8</span><span class=cF0> type,pad[3];
|
|
<a name="l375"></a>};
|
|
<a name="l376"></a>
|
|
<a name="l377"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Internal"</span><span class=cF0>
|
|
<a name="l378"></a></span><span class=cF2>//Loader flags</span><span class=cF0>
|
|
<a name="l379"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LDF_NO_ABSS</span><span class=cF0> 1
|
|
<a name="l380"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LDF_JUST_LOAD</span><span class=cF0> 2
|
|
<a name="l381"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LDF_SILENT</span><span class=cF0> 4
|
|
<a name="l382"></a>
|
|
<a name="l383"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BIN_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'TOSB'</span><span class=cF0>
|
|
<a name="l384"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBinFile</span><span class=cF0>
|
|
<a name="l385"></a>{</span><span class=cF2>//</span><a href="/Wb/Compiler/CMain.HC.HTML#l537"><span class=cF4>Bin File Header Generation</span></a><span class=cF2> by compiler.</span><span class=cF0>
|
|
<a name="l386"></a> </span><span class=cF9>U16</span><span class=cF0> jmp;
|
|
<a name="l387"></a> </span><span class=cF1>U8</span><span class=cF0> module_align_bits,
|
|
<a name="l388"></a> reserved;
|
|
<a name="l389"></a> </span><span class=cF9>U32</span><span class=cF0> bin_signature;
|
|
<a name="l390"></a> </span><span class=cF9>I64</span><span class=cF0> org,
|
|
<a name="l391"></a> patch_table_offset, </span><span class=cF2>//</span><a href="/Wb/Compiler/CMain.HC.HTML#l448"><span class=cF4>Patch Table Generation</span></a><span class=cF0>
|
|
<a name="l392"></a> file_size;
|
|
<a name="l393"></a>};
|
|
<a name="l394"></a>
|
|
<a name="l395"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CPatchTableAbsAddr</span><span class=cF0>
|
|
<a name="l396"></a>{
|
|
<a name="l397"></a> </span><span class=cF1>U8</span><span class=cF0> eit_abs_addr; </span><span class=cF2>//</span><a href="/Wb/Kernel/KernelA.HH.HTML#l422"><span class=cF4>IET_ABS_ADDR</span></a><span class=cF0>
|
|
<a name="l398"></a> </span><span class=cF9>U32</span><span class=cF0> abs_addres_cnt;
|
|
<a name="l399"></a> </span><span class=cF1>U8</span><span class=cF0> zero;
|
|
<a name="l400"></a> </span><span class=cF9>U32</span><span class=cF0> abs_addres[1];
|
|
<a name="l401"></a>};
|
|
<a name="l402"></a>
|
|
<a name="l403"></a></span><span class=cF2>//</span><a href="/Wb/Kernel/KernelA.HH.HTML#l1969"><span class=cF4>CAOTImportExport</span></a><span class=cF2> Types. Used in PatchTable.</span><span class=cF0>
|
|
<a name="l404"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_END</span><span class=cF0> 0
|
|
<a name="l405"></a></span><span class=cF2>//reserved</span><span class=cF0>
|
|
<a name="l406"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL_I0</span><span class=cF0> 2 </span><span class=cF2>//Fictitious</span><span class=cF0>
|
|
<a name="l407"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM_U0</span><span class=cF0> 3 </span><span class=cF2>//Fictitious</span><span class=cF0>
|
|
<a name="l408"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL_I8</span><span class=cF0> 4
|
|
<a name="l409"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM_U8</span><span class=cF0> 5
|
|
<a name="l410"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL_I16</span><span class=cF0> 6
|
|
<a name="l411"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM_U16</span><span class=cF0> 7
|
|
<a name="l412"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL_I32</span><span class=cF0> 8
|
|
<a name="l413"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM_U32</span><span class=cF0> 9
|
|
<a name="l414"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL_I64</span><span class=cF0> 10
|
|
<a name="l415"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM_I64</span><span class=cF0> 11
|
|
<a name="l416"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_IMM_NOT_REL</span><span class=cF0> 1
|
|
<a name="l417"></a></span><span class=cF2>//reserved</span><span class=cF0>
|
|
<a name="l418"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL32_EXPORT</span><span class=cF0> 16
|
|
<a name="l419"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM32_EXPORT</span><span class=cF0> 17
|
|
<a name="l420"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_REL64_EXPORT</span><span class=cF0> 18 </span><span class=cF2>//Not implemented</span><span class=cF0>
|
|
<a name="l421"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_IMM64_EXPORT</span><span class=cF0> 19 </span><span class=cF2>//Not implemented</span><span class=cF0>
|
|
<a name="l422"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_ABS_ADDR</span><span class=cF0> 20
|
|
<a name="l423"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_CODE_HEAP</span><span class=cF0> 21 </span><span class=cF2>//Not really used</span><span class=cF0>
|
|
<a name="l424"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_ZEROED_CODE_HEAP</span><span class=cF0> 22 </span><span class=cF2>//Not really used</span><span class=cF0>
|
|
<a name="l425"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_DATA_HEAP</span><span class=cF0> 23
|
|
<a name="l426"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_ZEROED_DATA_HEAP</span><span class=cF0> 24 </span><span class=cF2>//Not really used</span><span class=cF0>
|
|
<a name="l427"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IET_MAIN</span><span class=cF0> 25
|
|
<a name="l428"></a>
|
|
<a name="l429"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Boot"</span><span class=cF0>
|
|
<a name="l430"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CKernel</span><span class=cF0>
|
|
<a name="l431"></a>{</span><span class=cF2>//Must match </span><a href="/Wb/Kernel/KStart16.HC.HTML#l30"><span class=cF4>OSStartUp</span></a><span class=cF0>
|
|
<a name="l432"></a> </span><span class=cF9>CBinFile</span><span class=cF0> h;
|
|
<a name="l433"></a> </span><span class=cF9>U32</span><span class=cF0> jmp,
|
|
<a name="l434"></a> boot_src,
|
|
<a name="l435"></a> boot_blk,
|
|
<a name="l436"></a> boot_patch_table_base,
|
|
<a name="l437"></a> </span><span class=cFB>sys_run_level</span><span class=cF0>;
|
|
<a name="l438"></a> </span><span class=cF9>CDate</span><span class=cF0> compile_time;
|
|
<a name="l439"></a>
|
|
<a name="l440"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l441"></a> </span><span class=cF9>U32</span><span class=cF0> boot_base;
|
|
<a name="l442"></a> </span><span class=cF9>U16</span><span class=cF0> mem_E801[2];
|
|
<a name="l443"></a> </span><span class=cF9>CMemE820</span><span class=cF0> mem_E820[</span><span class=cF3>MEM_E820_ENTRIES_NUM</span><span class=cF0>];
|
|
<a name="l444"></a> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cFB>mem_physical_space</span><span class=cF0>;
|
|
<a name="l445"></a> </span><span class=cF9>CSysLimitBase</span><span class=cF0> sys_gdt_ptr;
|
|
<a name="l446"></a> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cFB>sys_pci_busses</span><span class=cF0>;
|
|
<a name="l447"></a> ;$=($+15)&-16;
|
|
<a name="l448"></a> </span><span class=cF9>CGDT</span><span class=cF0> </span><span class=cFB>sys_gdt</span><span class=cF0>;
|
|
<a name="l449"></a>};
|
|
<a name="l450"></a>
|
|
<a name="l451"></a></span><span class=cF2>//Run-Levels</span><span class=cF0>
|
|
<a name="l452"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_16BIT</span><span class=cF0> 0
|
|
<a name="l453"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_VGA</span><span class=cF0> 1
|
|
<a name="l454"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_32BIT</span><span class=cF0> 2
|
|
<a name="l455"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_PATCHED</span><span class=cF0> 3
|
|
<a name="l456"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_16MEG_SYS_CODE_BP</span><span class=cF0> 4
|
|
<a name="l457"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_64BIT</span><span class=cF0> 5
|
|
<a name="l458"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_16MEG_ADAM_HEAP_CTRL</span><span class=cF0> 6
|
|
<a name="l459"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_FULL_HEAPS</span><span class=cF0> 7
|
|
<a name="l460"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_RAW</span><span class=cF0> 8
|
|
<a name="l461"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_INTERRUPTS</span><span class=cF0> 9
|
|
<a name="l462"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_BLKDEV</span><span class=cF0> 10
|
|
<a name="l463"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_MP</span><span class=cF0> 11
|
|
<a name="l464"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_COMPILER</span><span class=cF0> 12
|
|
<a name="l465"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_DOC</span><span class=cF0> 13
|
|
<a name="l466"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_WINMGR</span><span class=cF0> 14
|
|
<a name="l467"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_REGISTRY</span><span class=cF0> 15
|
|
<a name="l468"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_HOME</span><span class=cF0> 16
|
|
<a name="l469"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_AUTO_COMPLETE</span><span class=cF0> 17
|
|
<a name="l470"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_ADAM_SERVER</span><span class=cF0> 18
|
|
<a name="l471"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_ONCE_ADAM</span><span class=cF0> 19
|
|
<a name="l472"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLf_ONCE_USER</span><span class=cF0> 20
|
|
<a name="l473"></a>
|
|
<a name="l474"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_16BIT</span><span class=cF0> 0x000001
|
|
<a name="l475"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_VGA</span><span class=cF0> 0x000002
|
|
<a name="l476"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_32BIT</span><span class=cF0> 0x000004
|
|
<a name="l477"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_PATCHED</span><span class=cF0> 0x000008
|
|
<a name="l478"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_16MEG_SYS_CODE_BP</span><span class=cF0> 0x000010
|
|
<a name="l479"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_64BIT</span><span class=cF0> 0x000020
|
|
<a name="l480"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_16MEG_ADAM_HEAP_CTRL</span><span class=cF0> 0x000040
|
|
<a name="l481"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_FULL_HEAPS</span><span class=cF0> 0x000050
|
|
<a name="l482"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_RAW</span><span class=cF0> 0x000100
|
|
<a name="l483"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_INTERRUPTS</span><span class=cF0> 0x000200
|
|
<a name="l484"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_BLKDEV</span><span class=cF0> 0x000400
|
|
<a name="l485"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_MP</span><span class=cF0> 0x000800
|
|
<a name="l486"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_COMPILER</span><span class=cF0> 0x001000
|
|
<a name="l487"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_DOC</span><span class=cF0> 0x002000
|
|
<a name="l488"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_WINMGR</span><span class=cF0> 0x004000
|
|
<a name="l489"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_REGISTRY</span><span class=cF0> 0x008000
|
|
<a name="l490"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_HOME</span><span class=cF0> 0x010000
|
|
<a name="l491"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_AUTO_COMPLETE</span><span class=cF0> 0x020000
|
|
<a name="l492"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_ADAM_SERVER</span><span class=cF0> 0x040000
|
|
<a name="l493"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_ONCE_ADAM</span><span class=cF0> 0x080000
|
|
<a name="l494"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RLF_ONCE_USER</span><span class=cF0> 0x100000
|
|
<a name="l495"></a>
|
|
<a name="l496"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Processor"</span><span class=cF0>
|
|
<a name="l497"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_BASE</span><span class=cF0> 0xFEE00000
|
|
<a name="l498"></a>
|
|
<a name="l499"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_APIC_ID</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x020)
|
|
<a name="l500"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_APIC_VERSION</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x030)
|
|
<a name="l501"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_TASK_PRIORITY</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x080)
|
|
<a name="l502"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_ARIBITRATION_PRIORITY</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x090)
|
|
<a name="l503"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_PROCESSOR_PRIORITY</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x0A0)
|
|
<a name="l504"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_EOI</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x0B0)
|
|
<a name="l505"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LOG_DST</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x0D0)
|
|
<a name="l506"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_DFR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x0E0)
|
|
<a name="l507"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LDR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x0D0)
|
|
<a name="l508"></a>
|
|
<a name="l509"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPICF_APIC_ENABLED</span><span class=cF0> 0x100
|
|
<a name="l510"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_SVR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x0F0)
|
|
<a name="l511"></a>
|
|
<a name="l512"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_ISR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x100)
|
|
<a name="l513"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_TMR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x180)
|
|
<a name="l514"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_IRR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x200)
|
|
<a name="l515"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_ICR_LOW</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x300)
|
|
<a name="l516"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_ICR_HIGH</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x310)
|
|
<a name="l517"></a>
|
|
<a name="l518"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LVT_TIMER</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x320)
|
|
<a name="l519"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LVT_THERMAL</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x330)
|
|
<a name="l520"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LVT_PERF</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x340)
|
|
<a name="l521"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LVT_LINT0</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x350)
|
|
<a name="l522"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LVT_LINT1</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x360)
|
|
<a name="l523"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LAPIC_LVT_ERR</span><span class=cF0> (</span><span class=cF3>LAPIC_BASE</span><span class=cF0>+0x370)
|
|
<a name="l524"></a>
|
|
<a name="l525"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MPN_VECT</span><span class=cF0> 0x97
|
|
<a name="l526"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MP_VECT_ADDR</span><span class=cF0> (</span><span class=cF3>MPN_VECT</span><span class=cF0>*0x1000)
|
|
<a name="l527"></a>
|
|
<a name="l528"></a></span><span class=cF2>//I/O APIC Memory mapped window</span><span class=cF0>
|
|
<a name="l529"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IOAPIC_REG</span><span class=cF0> 0xFEC00000 </span><span class=cF2>//U8</span><span class=cF0>
|
|
<a name="l530"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IOAPIC_DATA</span><span class=cF0> 0xFEC00010 </span><span class=cF2>//U32</span><span class=cF0>
|
|
<a name="l531"></a></span><span class=cF2>//I/O APIC Regs</span><span class=cF0>
|
|
<a name="l532"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IOAPICID</span><span class=cF0> 0x00
|
|
<a name="l533"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IOAPICVER</span><span class=cF0> 0x01
|
|
<a name="l534"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IOAPICARB</span><span class=cF0> 0x02
|
|
<a name="l535"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IOREDTAB</span><span class=cF0> 0x10
|
|
<a name="l536"></a>
|
|
<a name="l537"></a></span><span class=cF2>//Model specific regs.</span><span class=cF0>
|
|
<a name="l538"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IA32F_SCE</span><span class=cF0> 0x001
|
|
<a name="l539"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IA32F_LME</span><span class=cF0> 0x100
|
|
<a name="l540"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IA32_LAPIC_BASE</span><span class=cF0> 0x01B
|
|
<a name="l541"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IA32_EFER</span><span class=cF0> 0xC0000080
|
|
<a name="l542"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IA32_FS_BASE</span><span class=cF0> 0xC0000100
|
|
<a name="l543"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IA32_GS_BASE</span><span class=cF0> 0xC0000101
|
|
<a name="l544"></a>
|
|
<a name="l545"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAP16BitInit</span><span class=cF0>
|
|
<a name="l546"></a>{</span><span class=cF2>//AP Multicore</span><span class=cF0>
|
|
<a name="l547"></a> </span><span class=cF9>U32</span><span class=cF0> jmp;
|
|
<a name="l548"></a> </span><span class=cF9>CSysLimitBase</span><span class=cF0> ap_gdt_ptr;
|
|
<a name="l549"></a>};
|
|
<a name="l550"></a>
|
|
<a name="l551"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Time/CPU Cycles;Time/HPET;Time/Jiffies"</span><span class=cF0>
|
|
<a name="l552"></a></span><span class=cF2>//High Performance Event Timer</span><span class=cF0>
|
|
<a name="l553"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HPET_GCAP_ID</span><span class=cF0> (0xFED00000+0x00)
|
|
<a name="l554"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HPET_GEN_CONF</span><span class=cF0> (0xFED00000+0x10)
|
|
<a name="l555"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HPET_MAIN_CNT</span><span class=cF0> (0xFED00000+0xF0)
|
|
<a name="l556"></a>
|
|
<a name="l557"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCntsGlbls</span><span class=cF0>
|
|
<a name="l558"></a>{
|
|
<a name="l559"></a> </span><span class=cF9>I64</span><span class=cF0> jiffies, </span><span class=cF2>//</span><a href="/Wb/Kernel/KernelA.HH.HTML#l570"><span class=cF4>JIFFY_FREQ</span></a><span class=cF0>
|
|
<a name="l560"></a> timer, </span><span class=cF2>//</span><a href="/Wb/Kernel/KernelA.HH.HTML#l572"><span class=cF4>SYS_TIMER_FREQ</span></a><span class=cF2>. Use </span><a href="/Wb/Kernel/KMisc.HC.HTML#l61"><span class=cF4>SysTimerRead</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l561"></a> time_stamp_freq,
|
|
<a name="l562"></a> time_stamp_kHz_freq,
|
|
<a name="l563"></a> time_stamp_freq_initial, </span><span class=cF2>//Initial freq, sampled once at boot time.</span><span class=cF0>
|
|
<a name="l564"></a> HPET_freq,
|
|
<a name="l565"></a> HPET_kHz_freq,
|
|
<a name="l566"></a> HPET_initial; </span><span class=cF2>//Initial count, sampled at boot time.</span><span class=cF0>
|
|
<a name="l567"></a> </span><span class=cF1>Bool</span><span class=cF0> time_stamp_calibrated;
|
|
<a name="l568"></a>};
|
|
<a name="l569"></a>
|
|
<a name="l570"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JIFFY_FREQ</span><span class=cF0> 1000 </span><span class=cF2>// Hz</span><span class=cF0>
|
|
<a name="l571"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDATE_FREQ</span><span class=cF0> 49710 </span><span class=cF2>// Hz</span><span class=cF0>
|
|
<a name="l572"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SYS_TIMER_FREQ</span><span class=cF0> (18333*65536/1000) </span><span class=cF2>//Hz</span><span class=cF0>
|
|
<a name="l573"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SYS_TIMER0_PERIOD</span><span class=cF0> (65536*182/10/</span><span class=cF3>JIFFY_FREQ</span><span class=cF0>)
|
|
<a name="l574"></a>
|
|
<a name="l575"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Call"</span><span class=cF0>
|
|
<a name="l576"></a></span><span class=cF2>//Function Stack Frame</span><span class=cF0>
|
|
<a name="l577"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_RBP</span><span class=cF0> 0x00
|
|
<a name="l578"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_RIP</span><span class=cF0> 0x08
|
|
<a name="l579"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG1</span><span class=cF0> 0x10
|
|
<a name="l580"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG2</span><span class=cF0> 0x18
|
|
<a name="l581"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG3</span><span class=cF0> 0x20
|
|
<a name="l582"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG4</span><span class=cF0> 0x28
|
|
<a name="l583"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG5</span><span class=cF0> 0x30
|
|
<a name="l584"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG6</span><span class=cF0> 0x38
|
|
<a name="l585"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG7</span><span class=cF0> 0x40
|
|
<a name="l586"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SF_ARG8</span><span class=cF0> 0x48
|
|
<a name="l587"></a>
|
|
<a name="l588"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CRAXRBCRCXRDX</span><span class=cF0>
|
|
<a name="l589"></a>{
|
|
<a name="l590"></a> </span><span class=cF9>I64</span><span class=cF0> rax,rbx,rcx,rdx;
|
|
<a name="l591"></a>};
|
|
<a name="l592"></a>
|
|
<a name="l593"></a></span><span class=cF2>//Asm callable function pointers.</span><span class=cF0>
|
|
<a name="l594"></a></span><span class=cF2>//They work with </span><a href="/Wb/Kernel/KernelB.HH.HTML#l55"><span class=cF4>CallExtNum</span></a><span class=cF2>() when calling from HolyC.</span><span class=cF0>
|
|
<a name="l595"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EXT_WIN_TO_TOP</span><span class=cF0> 0
|
|
<a name="l596"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EXT_WIN_FOCUS</span><span class=cF0> 1
|
|
<a name="l597"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EXT_HEAPLOG_MALLOC</span><span class=cF0> 2
|
|
<a name="l598"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EXT_HEAPLOG_FREE</span><span class=cF0> 3
|
|
<a name="l599"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EXT_DBG_RESUME</span><span class=cF0> 4
|
|
<a name="l600"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EXT_EXTS_NUM</span><span class=cF0> 5
|
|
<a name="l601"></a>
|
|
<a name="l602"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Processor"</span><span class=cF0>
|
|
<a name="l603"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DFT_CACHE_LINE_WIDTH</span><span class=cF0> 128
|
|
<a name="l604"></a>
|
|
<a name="l605"></a></span><span class=cF2>//Semaphores</span><span class=cF0>
|
|
<a name="l606"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CSema</span><span class=cF0>
|
|
<a name="l607"></a>{
|
|
<a name="l608"></a> </span><span class=cF1>Bool</span><span class=cF0> val,pad[</span><span class=cF3>DFT_CACHE_LINE_WIDTH</span><span class=cF0>-1];
|
|
<a name="l609"></a>};
|
|
<a name="l610"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_DEBUG</span><span class=cF0> 0
|
|
<a name="l611"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_RECORD_MACRO</span><span class=cF0> 1
|
|
<a name="l612"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_SYS_TIMER</span><span class=cF0> 2
|
|
<a name="l613"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_SYS_DATE</span><span class=cF0> 3
|
|
<a name="l614"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_DBG_MODE</span><span class=cF0> 4
|
|
<a name="l615"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_SND</span><span class=cF0> 5
|
|
<a name="l616"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_HEAPLOG_ACTIVE</span><span class=cF0> 6
|
|
<a name="l617"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_HEAPLOG_LOCK</span><span class=cF0> 7
|
|
<a name="l618"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_REFRESH_IN_PROGRESS</span><span class=cF0> 8
|
|
<a name="l619"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_FLUSH_VGA_IMAGE</span><span class=cF0> 9
|
|
<a name="l620"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_SINGLE_USER</span><span class=cF0> 10
|
|
<a name="l621"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_DSK_CACHE</span><span class=cF0> 11
|
|
<a name="l622"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_FAR_CALL32</span><span class=cF0> 12
|
|
<a name="l623"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_DEV_MEM</span><span class=cF0> 13
|
|
<a name="l624"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_VGA</span><span class=cF0> 14
|
|
<a name="l625"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_UPDATE_WIN_Z_BUF</span><span class=cF0> 15
|
|
<a name="l626"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_TT</span><span class=cF0> 16
|
|
<a name="l627"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_MUTE</span><span class=cF0> 17
|
|
<a name="l628"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_JUST_PUMP_MSGS</span><span class=cF0> 18
|
|
<a name="l629"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_TMBEAT</span><span class=cF0> 19
|
|
<a name="l630"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_FIX</span><span class=cF0> 20
|
|
<a name="l631"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SEMA_SEMAS_NUM</span><span class=cF0> 21
|
|
<a name="l632"></a>
|
|
<a name="l633"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRL_ALT_DEL</span><span class=cF0> 0
|
|
<a name="l634"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRL_ALT_C</span><span class=cF0> 1
|
|
<a name="l635"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRL_ALT_X</span><span class=cF0> 2
|
|
<a name="l636"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRL_ALT_TAB</span><span class=cF0> 3
|
|
<a name="l637"></a>
|
|
<a name="l638"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Hash"</span><span class=cF0>
|
|
<a name="l639"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHash</span><span class=cF0>
|
|
<a name="l640"></a>{</span><span class=cF2>//See </span><span class=cF4><u>Hash</span><span class=cF0>
|
|
<a name="l641"></a></u> </span><span class=cF9>CHash</span><span class=cF0> *next;
|
|
<a name="l642"></a> </span><span class=cF1>U8</span><span class=cF0> *str;
|
|
<a name="l643"></a> </span><span class=cF9>U32</span><span class=cF0> type,
|
|
<a name="l644"></a> use_cnt; </span><span class=cF2>// inc'ed every time search found, never dec'ed.</span><span class=cF0>
|
|
<a name="l645"></a>};
|
|
<a name="l646"></a>
|
|
<a name="l647"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashTable</span><span class=cF0>
|
|
<a name="l648"></a>{
|
|
<a name="l649"></a> </span><span class=cF9>CHashTable</span><span class=cF0> *next;
|
|
<a name="l650"></a> </span><span class=cF9>I64</span><span class=cF0> mask,locked_flags;
|
|
<a name="l651"></a> </span><span class=cF9>CHash</span><span class=cF0> **body;
|
|
<a name="l652"></a>};
|
|
<a name="l653"></a>
|
|
<a name="l654"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Hash/System"</span><span class=cF0>
|
|
<a name="l655"></a></span><span class=cF2>//Hash table types: </span><a href="/Wb/Kernel/KDefine.HC.HTML#l100"><span class=cF4>ST_HTT_TYPES</span></a><span class=cF0>
|
|
<a name="l656"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_EXPORT_SYS_SYM</span><span class=cF0> 0
|
|
<a name="l657"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_IMPORT_SYS_SYM</span><span class=cF0> 1
|
|
<a name="l658"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_DEFINE_STR</span><span class=cF0> 2
|
|
<a name="l659"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_GLBL_VAR</span><span class=cF0> 3
|
|
<a name="l660"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_CLASS</span><span class=cF0> 4
|
|
<a name="l661"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_INTERNAL_TYPE</span><span class=cF0> 5
|
|
<a name="l662"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_FUN</span><span class=cF0> 6
|
|
<a name="l663"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_WORD</span><span class=cF0> 7
|
|
<a name="l664"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_DICT_WORD</span><span class=cF0> 8
|
|
<a name="l665"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_KEYWORD</span><span class=cF0> 9
|
|
<a name="l666"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_ASM_KEYWORD</span><span class=cF0> 10
|
|
<a name="l667"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_OPCODE</span><span class=cF0> 11
|
|
<a name="l668"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_REG</span><span class=cF0> 12
|
|
<a name="l669"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_FILE</span><span class=cF0> 13
|
|
<a name="l670"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_MODULE</span><span class=cF0> 14
|
|
<a name="l671"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_HELP_FILE</span><span class=cF0> 15
|
|
<a name="l672"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_FRAME_PTR</span><span class=cF0> 16
|
|
<a name="l673"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTt_TYPES_NUM</span><span class=cF0> 17
|
|
<a name="l674"></a>
|
|
<a name="l675"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_PRIVATE</span><span class=cF0> 23
|
|
<a name="l676"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_PUBLIC</span><span class=cF0> 24
|
|
<a name="l677"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_EXPORT</span><span class=cF0> 25
|
|
<a name="l678"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_IMPORT</span><span class=cF0> 26
|
|
<a name="l679"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_IMM</span><span class=cF0> 27
|
|
<a name="l680"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_GOTO_LABEL</span><span class=cF0> 28
|
|
<a name="l681"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_RESOLVED</span><span class=cF0> 29
|
|
<a name="l682"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_UNRESOLVED</span><span class=cF0> 30
|
|
<a name="l683"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTf_LOCAL</span><span class=cF0> 31
|
|
<a name="l684"></a>
|
|
<a name="l685"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_INVALID</span><span class=cF0> 0
|
|
<a name="l686"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_EXPORT_SYS_SYM</span><span class=cF0> 0x00001 </span><span class=cF2>//CHashExport</span><span class=cF0>
|
|
<a name="l687"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_IMPORT_SYS_SYM</span><span class=cF0> 0x00002 </span><span class=cF2>//CHashImport</span><span class=cF0>
|
|
<a name="l688"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_DEFINE_STR</span><span class=cF0> 0x00004 </span><span class=cF2>//CHashDefineStr</span><span class=cF0>
|
|
<a name="l689"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_GLBL_VAR</span><span class=cF0> 0x00008 </span><span class=cF2>//CHashGlblVar</span><span class=cF0>
|
|
<a name="l690"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_CLASS</span><span class=cF0> 0x00010 </span><span class=cF2>//CHashClass</span><span class=cF0>
|
|
<a name="l691"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_INTERNAL_TYPE</span><span class=cF0> 0x00020 </span><span class=cF2>//CHashClass</span><span class=cF0>
|
|
<a name="l692"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_FUN</span><span class=cF0> 0x00040 </span><span class=cF2>//CHashFun</span><span class=cF0>
|
|
<a name="l693"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_WORD</span><span class=cF0> 0x00080 </span><span class=cF2>//CHashAC only in AutoComplete table</span><span class=cF0>
|
|
<a name="l694"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_DICT_WORD</span><span class=cF0> 0x00100 </span><span class=cF2>//CHashGeneric only in AutoComplete tbl</span><span class=cF0>
|
|
<a name="l695"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_KEYWORD</span><span class=cF0> 0x00200 </span><span class=cF2>//CHashGeneric </span><a href="/Wb/Compiler/OpCodes.DD.HTML#l140"><span class=cF4>KEYWORD</span></a><span class=cF0>
|
|
<a name="l696"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_ASM_KEYWORD</span><span class=cF0> 0x00400 </span><span class=cF2>//CHashGeneric </span><a href="/Wb/Compiler/OpCodes.DD.HTML#l189"><span class=cF4>ASM_KEYWORD</span></a><span class=cF0>
|
|
<a name="l697"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_OPCODE</span><span class=cF0> 0x00800 </span><span class=cF2>//CHashOpcode</span><span class=cF0>
|
|
<a name="l698"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_REG</span><span class=cF0> 0x01000 </span><span class=cF2>//CHashReg</span><span class=cF0>
|
|
<a name="l699"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_FILE</span><span class=cF0> 0x02000 </span><span class=cF2>//CHashGeneric</span><span class=cF0>
|
|
<a name="l700"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_MODULE</span><span class=cF0> 0x04000 </span><span class=cF2>//CHashGeneric</span><span class=cF0>
|
|
<a name="l701"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_HELP_FILE</span><span class=cF0> 0x08000 </span><span class=cF2>//CHashSrcSym</span><span class=cF0>
|
|
<a name="l702"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTT_FRAME_PTR</span><span class=cF0> 0x10000 </span><span class=cF2>//CHashGeneric</span><span class=cF0>
|
|
<a name="l703"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTG_TYPE_MASK</span><span class=cF0> 0x1FFFF
|
|
<a name="l704"></a>
|
|
<a name="l705"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_PRIVATE</span><span class=cF0> 0x00800000
|
|
<a name="l706"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_PUBLIC</span><span class=cF0> 0x01000000
|
|
<a name="l707"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_EXPORT</span><span class=cF0> 0x02000000
|
|
<a name="l708"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_IMPORT</span><span class=cF0> 0x04000000
|
|
<a name="l709"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_IMM</span><span class=cF0> 0x08000000
|
|
<a name="l710"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_GOTO_LABEL</span><span class=cF0> 0x10000000
|
|
<a name="l711"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_RESOLVE</span><span class=cF0> 0x20000000
|
|
<a name="l712"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_UNRESOLVED</span><span class=cF0> 0x40000000
|
|
<a name="l713"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTF_LOCAL</span><span class=cF0> 0x80000000
|
|
<a name="l714"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTG_FLAGS_MASK</span><span class=cF0> 0xFF000000
|
|
<a name="l715"></a>
|
|
<a name="l716"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTG_SRC_SYM</span><span class=cF0> (</span><span class=cF3>HTT_DEFINE_STR</span><span class=cF0>|</span><span class=cF3>HTT_GLBL_VAR</span><span class=cF0>|</span><span class=cF3>HTT_FUN</span><span class=cF0>|</span><span class=cF3>HTT_CLASS</span><span class=cF0>|\
|
|
<a name="l717"></a> </span><span class=cF3>HTT_EXPORT_SYS_SYM</span><span class=cF0>|</span><span class=cF3>HTT_HELP_FILE</span><span class=cF0>)
|
|
<a name="l718"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HTG_ALL</span><span class=cF0> -1
|
|
<a name="l719"></a>
|
|
<a name="l720"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>KERNEL_MODULE_NAME</span><span class=cF0> </span><span class=cF6>"/Kernel/Kernel"</span><span class=cF0>
|
|
<a name="l721"></a>
|
|
<a name="l722"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDbgInfo</span><span class=cF0>
|
|
<a name="l723"></a>{
|
|
<a name="l724"></a> </span><span class=cF9>U32</span><span class=cF0> min_line,max_line;
|
|
<a name="l725"></a> </span><span class=cF9>U32</span><span class=cF0> body[1]; </span><span class=cF2>//Code heap is 32-bit value</span><span class=cF0>
|
|
<a name="l726"></a>};
|
|
<a name="l727"></a>
|
|
<a name="l728"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashSrcSym</span><span class=cF0>:</span><span class=cF9>CHash</span><span class=cF0>
|
|
<a name="l729"></a>{
|
|
<a name="l730"></a> </span><span class=cF1>U8</span><span class=cF0> *src_link,
|
|
<a name="l731"></a> *idx;
|
|
<a name="l732"></a> </span><span class=cF9>CDbgInfo</span><span class=cF0> *dbg_info;
|
|
<a name="l733"></a> </span><span class=cF1>U8</span><span class=cF0> *import_name;
|
|
<a name="l734"></a> </span><span class=cF9>CAOTImportExport</span><span class=cF0> *ie_lst;
|
|
<a name="l735"></a>};
|
|
<a name="l736"></a>
|
|
<a name="l737"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashGeneric</span><span class=cF0>:</span><span class=cF9>CHash</span><span class=cF0>
|
|
<a name="l738"></a>{
|
|
<a name="l739"></a> </span><span class=cF9>I64</span><span class=cF0> user_data0,user_data1,user_data2;
|
|
<a name="l740"></a>};
|
|
<a name="l741"></a>
|
|
<a name="l742"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_NONE</span><span class=cF0> 0
|
|
<a name="l743"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_R8</span><span class=cF0> 1
|
|
<a name="l744"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_R16</span><span class=cF0> 2
|
|
<a name="l745"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_R32</span><span class=cF0> 3
|
|
<a name="l746"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_R64</span><span class=cF0> 4
|
|
<a name="l747"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_SEG</span><span class=cF0> 5
|
|
<a name="l748"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_FSTK</span><span class=cF0> 6
|
|
<a name="l749"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_MM</span><span class=cF0> 7
|
|
<a name="l750"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGT_XMM</span><span class=cF0> 8
|
|
<a name="l751"></a>
|
|
<a name="l752"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashReg</span><span class=cF0>:</span><span class=cF9>CHash</span><span class=cF0>
|
|
<a name="l753"></a>{
|
|
<a name="l754"></a> </span><span class=cF1>U8</span><span class=cF0> reg_num,reg_type;
|
|
<a name="l755"></a>};
|
|
<a name="l756"></a>
|
|
<a name="l757"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashAC</span><span class=cF0>:</span><span class=cF9>CHash</span><span class=cF0>
|
|
<a name="l758"></a>{
|
|
<a name="l759"></a> </span><span class=cF9>I32</span><span class=cF0> num;
|
|
<a name="l760"></a> </span><span class=cF9>U32</span><span class=cF0> hits;
|
|
<a name="l761"></a>};
|
|
<a name="l762"></a>
|
|
<a name="l763"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashExport</span><span class=cF0>:</span><span class=cF9>CHashSrcSym</span><span class=cF0>
|
|
<a name="l764"></a>{
|
|
<a name="l765"></a> </span><span class=cF9>I64</span><span class=cF0> val;
|
|
<a name="l766"></a>};
|
|
<a name="l767"></a>
|
|
<a name="l768"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashImport</span><span class=cF0>:</span><span class=cF9>CHashSrcSym</span><span class=cF0>
|
|
<a name="l769"></a>{
|
|
<a name="l770"></a> </span><span class=cF1>U8</span><span class=cF0> *module_base,
|
|
<a name="l771"></a> *module_header_entry;
|
|
<a name="l772"></a>};
|
|
<a name="l773"></a>
|
|
<a name="l774"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Internal"</span><span class=cF0>
|
|
<a name="l775"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PTR_STARS_NUM</span><span class=cF0> 4
|
|
<a name="l776"></a>
|
|
<a name="l777"></a></span><span class=cF2>//Member Lst Flags</span><span class=cF0>
|
|
<a name="l778"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_DFT_AVAILABLE</span><span class=cF0> 1
|
|
<a name="l779"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_LASTCLASS</span><span class=cF0> 2
|
|
<a name="l780"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_STR_DFT_AVAILABLE</span><span class=cF0> 4
|
|
<a name="l781"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_FUN</span><span class=cF0> 8
|
|
<a name="l782"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_DOT_DOT_DOT</span><span class=cF0> 16
|
|
<a name="l783"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_NO_UNUSED_WARN</span><span class=cF0> 32
|
|
<a name="l784"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLF_STATIC</span><span class=cF0> 64
|
|
<a name="l785"></a>
|
|
<a name="l786"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CArrayDim</span><span class=cF0>
|
|
<a name="l787"></a>{
|
|
<a name="l788"></a> </span><span class=cF9>CArrayDim</span><span class=cF0> *next;
|
|
<a name="l789"></a> </span><span class=cF9>I64</span><span class=cF0> cnt,total_cnt;
|
|
<a name="l790"></a>};
|
|
<a name="l791"></a>
|
|
<a name="l792"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MLMF_IS_STR</span><span class=cF0> 1
|
|
<a name="l793"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemberLstMeta</span><span class=cF0>
|
|
<a name="l794"></a>{
|
|
<a name="l795"></a> </span><span class=cF9>CMemberLstMeta</span><span class=cF0> *next;
|
|
<a name="l796"></a> </span><span class=cF1>U8</span><span class=cF0> *str;
|
|
<a name="l797"></a> </span><span class=cF9>I64</span><span class=cF0> flags,
|
|
<a name="l798"></a> user_data;
|
|
<a name="l799"></a>};
|
|
<a name="l800"></a>
|
|
<a name="l801"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemberLst</span><span class=cF0>
|
|
<a name="l802"></a>{
|
|
<a name="l803"></a> </span><span class=cF9>CMemberLst</span><span class=cF0> *next,*left,*right,
|
|
<a name="l804"></a> *left_class_base,*right_class_base; </span><span class=cF2>//For finding dup class local vars.</span><span class=cF0>
|
|
<a name="l805"></a> </span><span class=cF1>U8</span><span class=cF0> *str;
|
|
<a name="l806"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *member_class,*member_class_base;
|
|
<a name="l807"></a> </span><span class=cF9>CMemberLstMeta</span><span class=cF0> *meta;
|
|
<a name="l808"></a> </span><span class=cF9>U32</span><span class=cF0> use_cnt;
|
|
<a name="l809"></a> </span><span class=cF9>U16</span><span class=cF0> flags;
|
|
<a name="l810"></a> </span><span class=cF1>I8</span><span class=cF0> </span><span class=cF1>reg</span><span class=cF0>,pad;
|
|
<a name="l811"></a> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF1>offset</span><span class=cF0>,size;
|
|
<a name="l812"></a> </span><span class=cF9>CArrayDim</span><span class=cF0> dim;
|
|
<a name="l813"></a> </span><span class=cF1>U8</span><span class=cF0> *static_data;
|
|
<a name="l814"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l815"></a> </span><span class=cF9>I64</span><span class=cF0> static_data_rip;
|
|
<a name="l816"></a> </span><span class=cF9>I64</span><span class=cF0> dft_val;
|
|
<a name="l817"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l818"></a> </span><span class=cF9>CHashFun</span><span class=cF0> *fun_ptr;
|
|
<a name="l819"></a>};
|
|
<a name="l820"></a>
|
|
<a name="l821"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CExternUsage</span><span class=cF0>
|
|
<a name="l822"></a>{
|
|
<a name="l823"></a> </span><span class=cF9>CExternUsage</span><span class=cF0> *next;
|
|
<a name="l824"></a> </span><span class=cF9>I64</span><span class=cF0> rip;
|
|
<a name="l825"></a>};
|
|
<a name="l826"></a>
|
|
<a name="l827"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Hash/System;Compiler/Internal"</span><span class=cF0>
|
|
<a name="l828"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashDefineStr</span><span class=cF0>:</span><span class=cF9>CHashSrcSym</span><span class=cF0>
|
|
<a name="l829"></a>{
|
|
<a name="l830"></a> </span><span class=cF1>U8</span><span class=cF0> *data,**sub_idx;
|
|
<a name="l831"></a> </span><span class=cF9>I64</span><span class=cF0> cnt;
|
|
<a name="l832"></a>};
|
|
<a name="l833"></a>
|
|
<a name="l834"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Cf_EXTERN</span><span class=cF0> 0
|
|
<a name="l835"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Cf_INTERNAL_TYPE</span><span class=cF0> 1
|
|
<a name="l836"></a>
|
|
<a name="l837"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashClass</span><span class=cF0>:</span><span class=cF9>CHashSrcSym</span><span class=cF0>
|
|
<a name="l838"></a>{</span><span class=cF2>//See </span><a href="/Wb/Compiler/PrsLib.HC.HTML#l40"><span class=cF4>PrsClassNew</span></a><span class=cF2>(). base_class of </span><a href="/Wb/Kernel/KernelA.HH.HTML#l860"><span class=cF4>CHashFun</span></a><span class=cF0>
|
|
<a name="l839"></a> </span><span class=cF9>I64</span><span class=cF0> size,neg_offset;
|
|
<a name="l840"></a> </span><span class=cF9>U32</span><span class=cF0> member_cnt;
|
|
<a name="l841"></a> </span><span class=cF1>U8</span><span class=cF0> ptr_stars_cnt,raw_type;
|
|
<a name="l842"></a> </span><span class=cF9>U16</span><span class=cF0> flags;
|
|
<a name="l843"></a> </span><span class=cF9>CMemberLst</span><span class=cF0> *member_lst_and_root, </span><span class=cF2>//Head of linked list and head of tree.</span><span class=cF0>
|
|
<a name="l844"></a> *member_class_base_root, </span><span class=cF2>//For finding dup class local vars.</span><span class=cF0>
|
|
<a name="l845"></a> *last_in_member_lst;
|
|
<a name="l846"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *base_class,
|
|
<a name="l847"></a> *fwd_class;
|
|
<a name="l848"></a>};
|
|
<a name="l849"></a>
|
|
<a name="l850"></a></span><span class=cF2>//Function flags</span><span class=cF0>
|
|
<a name="l851"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_INTERRUPT</span><span class=cF0> 8
|
|
<a name="l852"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_HASERRCODE</span><span class=cF0> 9
|
|
<a name="l853"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_ARGPOP</span><span class=cF0> 10
|
|
<a name="l854"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_NOARGPOP</span><span class=cF0> 11
|
|
<a name="l855"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_INTERNAL</span><span class=cF0> 12
|
|
<a name="l856"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff__EXTERN</span><span class=cF0> 13
|
|
<a name="l857"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_DOT_DOT_DOT</span><span class=cF0> 14
|
|
<a name="l858"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>Ff_RET1</span><span class=cF0> 15
|
|
<a name="l859"></a>
|
|
<a name="l860"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashFun</span><span class=cF0>:</span><span class=cF9>CHashClass</span><span class=cF0>
|
|
<a name="l861"></a>{</span><span class=cF2>//See </span><a href="/Wb/Compiler/PrsLib.HC.HTML#l62"><span class=cF4>PrsFunNew</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l862"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *return_class;
|
|
<a name="l863"></a> </span><span class=cF9>U32</span><span class=cF0> arg_cnt,pad,
|
|
<a name="l864"></a> used_reg_mask,clobbered_reg_mask;
|
|
<a name="l865"></a> </span><span class=cF1>U8</span><span class=cF0> *exe_addr;
|
|
<a name="l866"></a> </span><span class=cF9>CExternUsage</span><span class=cF0> *ext_lst;
|
|
<a name="l867"></a>};
|
|
<a name="l868"></a>
|
|
<a name="l869"></a></span><span class=cF2>//Glbl Var Flags</span><span class=cF0>
|
|
<a name="l870"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GVF_FUN</span><span class=cF0> 1
|
|
<a name="l871"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GVF_IMPORT</span><span class=cF0> 2
|
|
<a name="l872"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GVF_EXTERN</span><span class=cF0> 4
|
|
<a name="l873"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GVF_DATA_HEAP</span><span class=cF0> 8
|
|
<a name="l874"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GVF_ALIAS</span><span class=cF0> 16
|
|
<a name="l875"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GVF_ARRAY</span><span class=cF0> 32
|
|
<a name="l876"></a>
|
|
<a name="l877"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashGlblVar</span><span class=cF0>:</span><span class=cF9>CHashSrcSym</span><span class=cF0>
|
|
<a name="l878"></a>{
|
|
<a name="l879"></a> </span><span class=cF9>I64</span><span class=cF0> size,flags;
|
|
<a name="l880"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *var_class;
|
|
<a name="l881"></a> </span><span class=cF9>CHashFun</span><span class=cF0> *fun_ptr;
|
|
<a name="l882"></a> </span><span class=cF9>CArrayDim</span><span class=cF0> dim;
|
|
<a name="l883"></a> </span><span class=cF1>U8</span><span class=cF0> *data_addr;
|
|
<a name="l884"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l885"></a> </span><span class=cF9>I64</span><span class=cF0> data_addr_rip;
|
|
<a name="l886"></a> </span><span class=cF9>CAOTHeapGlbl</span><span class=cF0> *heap_glbl;
|
|
<a name="l887"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l888"></a>};
|
|
<a name="l889"></a>#</span><span class=cF1>assert</span><span class=cF0> </span><span class=cF1>offset</span><span class=cF0>(</span><span class=cF9>CHashClass</span><span class=cF0>.size)==</span><span class=cF1>offset</span><span class=cF0>(</span><span class=cF9>CHashGlblVar</span><span class=cF0>.size)
|
|
<a name="l890"></a>
|
|
<a name="l891"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"DolDoc"</span><span class=cF0>
|
|
<a name="l892"></a></span><span class=cF2>//See </span><span class=cF4><u>TextBase Layer</u></span><span class=cF2>.</span><span class=cF0>
|
|
<a name="l893"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRF_BLINK</span><span class=cF0> 0x10000000
|
|
<a name="l894"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRF_INVERT</span><span class=cF0> 0x20000000
|
|
<a name="l895"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRF_SEL</span><span class=cF0> 0x40000000
|
|
<a name="l896"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRF_UNDERLINE</span><span class=cF0> 0x80000000
|
|
<a name="l897"></a>
|
|
<a name="l898"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRf_BLINK</span><span class=cF0> 28
|
|
<a name="l899"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRf_INVERT</span><span class=cF0> 29
|
|
<a name="l900"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRf_SEL</span><span class=cF0> 30
|
|
<a name="l901"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATTRf_UNDERLINE</span><span class=cF0> 31
|
|
<a name="l902"></a>
|
|
<a name="l903"></a></span><span class=cF2>//CDocEntry.type codes (Low 8 bits)</span><span class=cF0>
|
|
<a name="l904"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_TEXT</span><span class=cF0> 0
|
|
<a name="l905"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_NEW_LINE</span><span class=cF0> 1
|
|
<a name="l906"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_SOFT_NEW_LINE</span><span class=cF0> 2
|
|
<a name="l907"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_TAB</span><span class=cF0> 3
|
|
<a name="l908"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_PAGE_BREAK</span><span class=cF0> 4
|
|
<a name="l909"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_CURSOR</span><span class=cF0> 5
|
|
<a name="l910"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_MARKER</span><span class=cF0> 6
|
|
<a name="l911"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_PMT</span><span class=cF0> 7
|
|
<a name="l912"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_CLEAR</span><span class=cF0> 8
|
|
<a name="l913"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_PAGE_LEN</span><span class=cF0> 9
|
|
<a name="l914"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_LEFT_MARGIN</span><span class=cF0> 10
|
|
<a name="l915"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_RIGHT_MARGIN</span><span class=cF0> 11
|
|
<a name="l916"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_HEADER</span><span class=cF0> 12
|
|
<a name="l917"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_FOOTER</span><span class=cF0> 13
|
|
<a name="l918"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_INDENT</span><span class=cF0> 14
|
|
<a name="l919"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_FOREGROUND</span><span class=cF0> 15
|
|
<a name="l920"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_BACKGROUND</span><span class=cF0> 16
|
|
<a name="l921"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_DFT_FOREGROUND</span><span class=cF0> 17
|
|
<a name="l922"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_DFT_BACKGROUND</span><span class=cF0> 18
|
|
<a name="l923"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_WORD_WRAP</span><span class=cF0> 19
|
|
<a name="l924"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_HIGHLIGHT</span><span class=cF0> 20
|
|
<a name="l925"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_BLINK</span><span class=cF0> 21
|
|
<a name="l926"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_INVERT</span><span class=cF0> 22
|
|
<a name="l927"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_UNDERLINE</span><span class=cF0> 23
|
|
<a name="l928"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_SHIFTED_X</span><span class=cF0> 24
|
|
<a name="l929"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_SHIFTED_Y</span><span class=cF0> 25
|
|
<a name="l930"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_CURSOR_MOVEMENT</span><span class=cF0> 26
|
|
<a name="l931"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_ANCHOR</span><span class=cF0> 27
|
|
<a name="l932"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_LINK</span><span class=cF0> 28
|
|
<a name="l933"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_BTTN</span><span class=cF0> 29
|
|
<a name="l934"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_DATA</span><span class=cF0> 30
|
|
<a name="l935"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_CHECK_BOX</span><span class=cF0> 31
|
|
<a name="l936"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_LST</span><span class=cF0> 32
|
|
<a name="l937"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_MACRO</span><span class=cF0> 33
|
|
<a name="l938"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_MENU_VAL</span><span class=cF0> 34
|
|
<a name="l939"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_HEX_ED</span><span class=cF0> 35
|
|
<a name="l940"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_TREE</span><span class=cF0> 36
|
|
<a name="l941"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_SPRITE</span><span class=cF0> 37
|
|
<a name="l942"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_INS_BIN</span><span class=cF0> 38
|
|
<a name="l943"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_INS_BIN_SIZE</span><span class=cF0> 39
|
|
<a name="l944"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_SONG</span><span class=cF0> 40
|
|
<a name="l945"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_HTML_CODE</span><span class=cF0> 41
|
|
<a name="l946"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_ERROR</span><span class=cF0> 42
|
|
<a name="l947"></a>
|
|
<a name="l948"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCT_TYPES_NUM</span><span class=cF0> 43
|
|
<a name="l949"></a>
|
|
<a name="l950"></a></span><span class=cF2>//CDocEntry.type flags upper bits</span><span class=cF0>
|
|
<a name="l951"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCET_BLINK</span><span class=cF0> </span><span class=cF3>ATTRF_BLINK</span><span class=cF0>
|
|
<a name="l952"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCET_INVERT</span><span class=cF0> </span><span class=cF3>ATTRF_INVERT</span><span class=cF0>
|
|
<a name="l953"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCET_SEL</span><span class=cF0> </span><span class=cF3>ATTRF_SEL</span><span class=cF0>
|
|
<a name="l954"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCET_UNDERLINE</span><span class=cF0> </span><span class=cF3>ATTRF_UNDERLINE</span><span class=cF0>
|
|
<a name="l955"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCG_BL_IV_UL</span><span class=cF0> 0xB0000000
|
|
<a name="l956"></a>
|
|
<a name="l957"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEt_BLINK</span><span class=cF0> </span><span class=cF3>ATTRf_BLINK</span><span class=cF0>
|
|
<a name="l958"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEt_INVERT</span><span class=cF0> </span><span class=cF3>ATTRf_INVERT</span><span class=cF0>
|
|
<a name="l959"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEt_SEL</span><span class=cF0> </span><span class=cF3>ATTRf_SEL</span><span class=cF0>
|
|
<a name="l960"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEt_UNDERLINE</span><span class=cF0> </span><span class=cF3>ATTRf_UNDERLINE</span><span class=cF0>
|
|
<a name="l961"></a>
|
|
<a name="l962"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCG_DBL_BUF_FLAGS</span><span class=cF0> (</span><span class=cF3>DOCF_OVERSTRIKE</span><span class=cF0>|</span><span class=cF3>DOCF_PLAIN_TEXT</span><span class=cF0>|\
|
|
<a name="l963"></a> </span><span class=cF3>DOCF_PLAIN_TEXT_TABS</span><span class=cF0>|</span><span class=cF3>DOCF_SIZE_MIN</span><span class=cF0>|</span><span class=cF3>DOCF_NO_CURSOR</span><span class=cF0>|\
|
|
<a name="l964"></a> </span><span class=cF3>DOCF_FORM</span><span class=cF0>|</span><span class=cF3>DOCF_DBL_DOLLARS</span><span class=cF0>|</span><span class=cF3>DOCF_DONT_SWAP_OUT</span><span class=cF0>|\
|
|
<a name="l965"></a> </span><span class=cF3>DOCF_DO_FULL_REFRESH</span><span class=cF0>|</span><span class=cF3>DOCF_BORDER_DOC</span><span class=cF0>|</span><span class=cF3>DOCF_HIDE_CURSOR</span><span class=cF0>|\
|
|
<a name="l966"></a> </span><span class=cF3>DOCF_DONT_HIGHLIGHT_CURSOR</span><span class=cF0>|</span><span class=cF3>DOCF_CARRIAGE_RETURN</span><span class=cF0>)
|
|
<a name="l967"></a>
|
|
<a name="l968"></a></span><span class=cF2>//CDocEntry.de_flags. These first 16 are arg=</span><span class=cF0>
|
|
<a name="l969"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_TAG</span><span class=cF0> 1
|
|
<a name="l970"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LEN</span><span class=cF0> 2
|
|
<a name="l971"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_AUX_STR</span><span class=cF0> 4
|
|
<a name="l972"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_DEFINE</span><span class=cF0> 8
|
|
<a name="l973"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_HTML_LINK</span><span class=cF0> 0x10
|
|
<a name="l974"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LEFT_EXP</span><span class=cF0> 0x20
|
|
<a name="l975"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LEFT_MACRO</span><span class=cF0> 0x40
|
|
<a name="l976"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_RIGHT_EXP</span><span class=cF0> 0x80
|
|
<a name="l977"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_RIGHT_MACRO</span><span class=cF0> 0x100
|
|
<a name="l978"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_HAS_BIN</span><span class=cF0> 0x200
|
|
<a name="l979"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_BIN_PTR_LINK</span><span class=cF0> 0x400
|
|
<a name="l980"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_RAW_TYPE</span><span class=cF0> 0x800
|
|
<a name="l981"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SHIFTED_X</span><span class=cF0> 0x1000
|
|
<a name="l982"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SHIFTED_Y</span><span class=cF0> 0x2000
|
|
<a name="l983"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SCROLLING_X</span><span class=cF0> 0x4000
|
|
<a name="l984"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_USER_DATA</span><span class=cF0> 0x8000
|
|
<a name="l985"></a>
|
|
<a name="l986"></a></span><span class=cF2>//CDocEntry.de_flags. These are +/- flags</span><span class=cF0>
|
|
<a name="l987"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LEFT_CB</span><span class=cF0> 0x10000
|
|
<a name="l988"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LEFT_IN_STR</span><span class=cF0> 0x20000
|
|
<a name="l989"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_RIGHT_CB</span><span class=cF0> 0x40000
|
|
<a name="l990"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_RIGHT_IN_STR</span><span class=cF0> 0x80000
|
|
<a name="l991"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LEFT_X</span><span class=cF0> 0x100000
|
|
<a name="l992"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_CENTER_X</span><span class=cF0> 0x200000
|
|
<a name="l993"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_RIGHT_X</span><span class=cF0> 0x400000
|
|
<a name="l994"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_TOP_Y</span><span class=cF0> 0x800000
|
|
<a name="l995"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_CENTER_Y</span><span class=cF0> 0x1000000
|
|
<a name="l996"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_BOTTOM_Y</span><span class=cF0> 0x2000000
|
|
<a name="l997"></a></span><span class=cF2>//HL...UL</span><span class=cF0>
|
|
<a name="l998"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_TAG_CB</span><span class=cF0> 0x100000000
|
|
<a name="l999"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_PAGE_REL_Y</span><span class=cF0> 0x200000000
|
|
<a name="l1000"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_MARGIN_REL_X</span><span class=cF0> 0x400000000
|
|
<a name="l1001"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_WIN_REL</span><span class=cF0> 0x800000000
|
|
<a name="l1002"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LINK</span><span class=cF0> 0x1000000000
|
|
<a name="l1003"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_ESC</span><span class=cF0> 0x2000000000 </span><span class=cF2>//Send <ESC> (Exit and Save)</span><span class=cF0>
|
|
<a name="l1004"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_QUIT</span><span class=cF0> 0x4000000000 </span><span class=cF2>//Send <SHIFT-ESC> (Abort)</span><span class=cF0>
|
|
<a name="l1005"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_FROM_START</span><span class=cF0> 0x8000000000
|
|
<a name="l1006"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_HAS_BORDER</span><span class=cF0> 0x10000000000
|
|
<a name="l1007"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SOLID_BORDER</span><span class=cF0> 0x20000000000
|
|
<a name="l1008"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_BORDER_PLOT</span><span class=cF0> 0x40000000000
|
|
<a name="l1009"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_CHECKED_COLLAPSED</span><span class=cF0> 0x80000000000 </span><span class=cF2>//Checked or Collapsed</span><span class=cF0>
|
|
<a name="l1010"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_CHECK_COLLAPSABLE</span><span class=cF0> 0x100000000000
|
|
<a name="l1011"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_REFRESH_DATA</span><span class=cF0> 0x200000000000
|
|
<a name="l1012"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_UPDATE_DATA</span><span class=cF0> 0x400000000000
|
|
<a name="l1013"></a></span><span class=cF2>//</span><a href="/Wb/Kernel/KernelA.HH.HTML#l1015"><span class=cF4>DOCEF_DEREF_DATA</span></a><span class=cF2> is confusing. </span><a href="/Wb/Adam/DolDoc/DocForm.HC.HTML#l209"><span class=cF4>DocForm</span></a><span class=cF2>() makes doc_e->data point to members</span><span class=cF0>
|
|
<a name="l1014"></a></span><span class=cF2>//of class. For ints, it derefs doc_e->data as a ptr. For strings, it doesn't.</span><span class=cF0>
|
|
<a name="l1015"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_DEREF_DATA</span><span class=cF0> 0x800000000000
|
|
<a name="l1016"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_REMALLOC_DATA</span><span class=cF0> 0x1000000000000
|
|
<a name="l1017"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_HAS_TERMINATOR</span><span class=cF0> 0x2000000000000
|
|
<a name="l1018"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_ZERO_BASED</span><span class=cF0> 0x4000000000000
|
|
<a name="l1019"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_HOLD</span><span class=cF0> 0x8000000000000
|
|
<a name="l1020"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_TREE</span><span class=cF0> 0x10000000000000
|
|
<a name="l1021"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_LST</span><span class=cF0> 0x20000000000000
|
|
<a name="l1022"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SKIP</span><span class=cF0> 0x40000000000000
|
|
<a name="l1023"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_POPUP</span><span class=cF0> 0x80000000000000
|
|
<a name="l1024"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SKIP_IN_FORM</span><span class=cF0> 0x100000000000000
|
|
<a name="l1025"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_FILTER_SKIP</span><span class=cF0> 0x200000000000000
|
|
<a name="l1026"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_NO_CLICK_ON</span><span class=cF0> 0x400000000000000
|
|
<a name="l1027"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_DONT_DRAW</span><span class=cF0> 0x800000000000000 </span><span class=cF2>//only works on sprites</span><span class=cF0>
|
|
<a name="l1028"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_DFT_LEN</span><span class=cF0> 0x1000000000000000
|
|
<a name="l1029"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_DFT_RAW_TYPE</span><span class=cF0> 0x2000000000000000
|
|
<a name="l1030"></a>
|
|
<a name="l1031"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEG_HAS_ALLOC</span><span class=cF0> (</span><span class=cF3>DOCEF_TAG</span><span class=cF0>|</span><span class=cF3>DOCEF_AUX_STR</span><span class=cF0>|</span><span class=cF3>DOCEF_DEFINE</span><span class=cF0>|\
|
|
<a name="l1032"></a> </span><span class=cF3>DOCEF_HTML_LINK</span><span class=cF0>|</span><span class=cF3>DOCEF_LEFT_MACRO</span><span class=cF0>|</span><span class=cF3>DOCEF_RIGHT_MACRO</span><span class=cF0>|</span><span class=cF3>DOCEF_BIN_PTR_LINK</span><span class=cF0>|\
|
|
<a name="l1033"></a> </span><span class=cF3>DOCEF_REMALLOC_DATA</span><span class=cF0>)
|
|
<a name="l1034"></a>
|
|
<a name="l1035"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEG_HAS_ARG</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF3>DOCEG_HAS_ALLOC</span><span class=cF0>&~</span><span class=cF3>DOCEF_REMALLOC_DATA</span><span class=cF7>)</span><span class=cF0>|\
|
|
<a name="l1036"></a> </span><span class=cF3>DOCEF_LEN</span><span class=cF0>|</span><span class=cF3>DOCEF_LEFT_EXP</span><span class=cF0>|</span><span class=cF3>DOCEF_RIGHT_EXP</span><span class=cF0>|</span><span class=cF3>DOCEF_HAS_BIN</span><span class=cF0>|</span><span class=cF3>DOCEF_RAW_TYPE</span><span class=cF0>|\
|
|
<a name="l1037"></a> </span><span class=cF3>DOCEF_SHIFTED_X</span><span class=cF0>|</span><span class=cF3>DOCEF_SHIFTED_Y</span><span class=cF0>|</span><span class=cF3>DOCEF_SCROLLING_X</span><span class=cF0>|</span><span class=cF3>DOCEF_USER_DATA</span><span class=cF0>)
|
|
<a name="l1038"></a>
|
|
<a name="l1039"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEG_DONT_EDIT</span><span class=cF0> (</span><span class=cF3>DOCEF_DEFINE</span><span class=cF0>|</span><span class=cF3>DOCEF_HTML_LINK</span><span class=cF0>|\
|
|
<a name="l1040"></a> </span><span class=cF3>DOCEF_AUX_STR</span><span class=cF0>|</span><span class=cF3>DOCEF_BIN_PTR_LINK</span><span class=cF0>|</span><span class=cF3>DOCEF_SCROLLING_X</span><span class=cF0>|</span><span class=cF3>DOCEF_TAG_CB</span><span class=cF0>)
|
|
<a name="l1041"></a>
|
|
<a name="l1042"></a></span><span class=cF2>//These are ident to Doc flags</span><span class=cF0>
|
|
<a name="l1043"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_HIGHLIGHT</span><span class=cF0> 0x4000000
|
|
<a name="l1044"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_WORD_WRAP</span><span class=cF0> 0x8000000
|
|
<a name="l1045"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_BLINK</span><span class=cF0> </span><span class=cF3>ATTRF_BLINK</span><span class=cF0>
|
|
<a name="l1046"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_INVERT</span><span class=cF0> </span><span class=cF3>ATTRF_INVERT</span><span class=cF0>
|
|
<a name="l1047"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_SEL</span><span class=cF0> </span><span class=cF3>ATTRF_SEL</span><span class=cF0>
|
|
<a name="l1048"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEF_UNDERLINE</span><span class=cF0> </span><span class=cF3>ATTRF_UNDERLINE</span><span class=cF0>
|
|
<a name="l1049"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_HIGHLIGHT</span><span class=cF0> 26
|
|
<a name="l1050"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_WORD_WRAP</span><span class=cF0> 27
|
|
<a name="l1051"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_BLINK</span><span class=cF0> </span><span class=cF3>ATTRf_BLINK</span><span class=cF0>
|
|
<a name="l1052"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_INVERT</span><span class=cF0> </span><span class=cF3>ATTRf_INVERT</span><span class=cF0>
|
|
<a name="l1053"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SEL</span><span class=cF0> </span><span class=cF3>ATTRf_SEL</span><span class=cF0>
|
|
<a name="l1054"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_UNDERLINE</span><span class=cF0> </span><span class=cF3>ATTRf_UNDERLINE</span><span class=cF0>
|
|
<a name="l1055"></a>
|
|
<a name="l1056"></a></span><span class=cF2>//CDocEntry.de_flags. These first 16 are arg=</span><span class=cF0>
|
|
<a name="l1057"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_TAG</span><span class=cF0> 0
|
|
<a name="l1058"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LEN</span><span class=cF0> 1
|
|
<a name="l1059"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_AUX_STR</span><span class=cF0> 2
|
|
<a name="l1060"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_DEFINE</span><span class=cF0> 3
|
|
<a name="l1061"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_HTML_LINK</span><span class=cF0> 4
|
|
<a name="l1062"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LEFT_EXP</span><span class=cF0> 5
|
|
<a name="l1063"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LEFT_MACRO</span><span class=cF0> 6
|
|
<a name="l1064"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_RIGHT_EXP</span><span class=cF0> 7
|
|
<a name="l1065"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_RIGHT_MACRO</span><span class=cF0> 8
|
|
<a name="l1066"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_HAS_BIN</span><span class=cF0> 9
|
|
<a name="l1067"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_BIN_PTR_LINK</span><span class=cF0> 10
|
|
<a name="l1068"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_RAW_TYPE</span><span class=cF0> 11
|
|
<a name="l1069"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SHIFTED_X</span><span class=cF0> 12
|
|
<a name="l1070"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SHIFTED_Y</span><span class=cF0> 13
|
|
<a name="l1071"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SCROLLING_X</span><span class=cF0> 14
|
|
<a name="l1072"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_USER_DATA</span><span class=cF0> 15
|
|
<a name="l1073"></a>
|
|
<a name="l1074"></a></span><span class=cF2>//CDocEntry.de_flags. These are +/- flags</span><span class=cF0>
|
|
<a name="l1075"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LEFT_CB</span><span class=cF0> 16
|
|
<a name="l1076"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LEFT_IN_STR</span><span class=cF0> 17
|
|
<a name="l1077"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_RIGHT_CB</span><span class=cF0> 18
|
|
<a name="l1078"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_RIGHT_IN_STR</span><span class=cF0> 19
|
|
<a name="l1079"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LEFT_X</span><span class=cF0> 20
|
|
<a name="l1080"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_CENTER_X</span><span class=cF0> 21
|
|
<a name="l1081"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_RIGHT_X</span><span class=cF0> 22
|
|
<a name="l1082"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_TOP_Y</span><span class=cF0> 23
|
|
<a name="l1083"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_CENTER_Y</span><span class=cF0> 24
|
|
<a name="l1084"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_BOTTOM_Y</span><span class=cF0> 25
|
|
<a name="l1085"></a></span><span class=cF2>//HL...UL</span><span class=cF0>
|
|
<a name="l1086"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_TAG_CB</span><span class=cF0> 32
|
|
<a name="l1087"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_PAGE_REL_Y</span><span class=cF0> 33
|
|
<a name="l1088"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_MARGIN_REL_X</span><span class=cF0> 34
|
|
<a name="l1089"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_WIN_REL</span><span class=cF0> 35
|
|
<a name="l1090"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LINK</span><span class=cF0> 36
|
|
<a name="l1091"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_ESC</span><span class=cF0> 37 </span><span class=cF2>//Send <ESC> (Exit and Save)</span><span class=cF0>
|
|
<a name="l1092"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_QUIT</span><span class=cF0> 38 </span><span class=cF2>//Send <SHIFT-ESC> (Abort)</span><span class=cF0>
|
|
<a name="l1093"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_FROM_START</span><span class=cF0> 39
|
|
<a name="l1094"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_HAS_BORDER</span><span class=cF0> 40
|
|
<a name="l1095"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SOLID_BORDER</span><span class=cF0> 41
|
|
<a name="l1096"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_BORDER_PLOT</span><span class=cF0> 42
|
|
<a name="l1097"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_CHECKED_COLLAPSED</span><span class=cF0> 43 </span><span class=cF2>//Checked or Collapsed</span><span class=cF0>
|
|
<a name="l1098"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_CHECK_COLLAPSABLE</span><span class=cF0> 44
|
|
<a name="l1099"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_REFRESH_DATA</span><span class=cF0> 45
|
|
<a name="l1100"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_UPDATE_DATA</span><span class=cF0> 46
|
|
<a name="l1101"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_DEREF_DATA</span><span class=cF0> 47
|
|
<a name="l1102"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_REMALLOC_DATA</span><span class=cF0> 48
|
|
<a name="l1103"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_HAS_TERMINATOR</span><span class=cF0> 49
|
|
<a name="l1104"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_ZERO_BASED</span><span class=cF0> 50
|
|
<a name="l1105"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_HOLD</span><span class=cF0> 51
|
|
<a name="l1106"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_TREE</span><span class=cF0> 52
|
|
<a name="l1107"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_LST</span><span class=cF0> 53
|
|
<a name="l1108"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SKIP</span><span class=cF0> 54
|
|
<a name="l1109"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_POPUP</span><span class=cF0> 55
|
|
<a name="l1110"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_SKIP_IN_FORM</span><span class=cF0> 56
|
|
<a name="l1111"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_FILTER_SKIP</span><span class=cF0> 57
|
|
<a name="l1112"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_NO_CLICK_ON</span><span class=cF0> 58
|
|
<a name="l1113"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_DONT_DRAW</span><span class=cF0> 59 </span><span class=cF2>//only works on sprites</span><span class=cF0>
|
|
<a name="l1114"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_DFT_LEN</span><span class=cF0> 60
|
|
<a name="l1115"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_DFT_RAW_TYPE</span><span class=cF0> 61
|
|
<a name="l1116"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCEf_FLAGS_NUM</span><span class=cF0> 62
|
|
<a name="l1117"></a>
|
|
<a name="l1118"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDocBin</span><span class=cF0>
|
|
<a name="l1119"></a>{
|
|
<a name="l1120"></a> </span><span class=cF9>CDocBin</span><span class=cF0> *next,*last;
|
|
<a name="l1121"></a> </span><span class=cF9>I32</span><span class=cF0> tmp_use_cnt,renum_num;
|
|
<a name="l1122"></a> </span><span class=cF1>U8</span><span class=cF0> *tag;
|
|
<a name="l1123"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l1124"></a> </span><span class=cF9>U32</span><span class=cF0> num,flags,size,use_cnt;
|
|
<a name="l1125"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>end</span><span class=cF0>;
|
|
<a name="l1126"></a> </span><span class=cF1>U8</span><span class=cF0> *data;
|
|
<a name="l1127"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l1128"></a>};
|
|
<a name="l1129"></a>
|
|
<a name="l1130"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_SCROLL_SPEED</span><span class=cF0> 8
|
|
<a name="l1131"></a>
|
|
<a name="l1132"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCSS_NORMAL</span><span class=cF0> 0
|
|
<a name="l1133"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCSS_SINGLE_QUOTE</span><span class=cF0> 1
|
|
<a name="l1134"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCSS_DBL_QUOTE</span><span class=cF0> 2
|
|
<a name="l1135"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCSS_COMMENT</span><span class=cF0> 3
|
|
<a name="l1136"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCSS_CPP_Z_COMMENT</span><span class=cF0> 4
|
|
<a name="l1137"></a>
|
|
<a name="l1138"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_ATTR_DFT_TEXT</span><span class=cF0> </span><span class=cF3>WHITE</span><span class=cF0><<4+</span><span class=cF3>BLACK</span><span class=cF0>
|
|
<a name="l1139"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_ALT_TEXT</span><span class=cF0> </span><span class=cF3>LTGRAY</span><span class=cF0>
|
|
<a name="l1140"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_LINK</span><span class=cF0> </span><span class=cF3>RED</span><span class=cF0>
|
|
<a name="l1141"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_MACRO</span><span class=cF0> </span><span class=cF3>LTBLUE</span><span class=cF0>
|
|
<a name="l1142"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_ANCHOR</span><span class=cF0> </span><span class=cF3>DKGRAY</span><span class=cF0>
|
|
<a name="l1143"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_TREE</span><span class=cF0> </span><span class=cF3>PURPLE</span><span class=cF0>
|
|
<a name="l1144"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_PMT</span><span class=cF0> </span><span class=cF3>GREEN</span><span class=cF0>
|
|
<a name="l1145"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_COMMENT</span><span class=cF0> </span><span class=cF3>GREEN</span><span class=cF0>
|
|
<a name="l1146"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_BIN</span><span class=cF0> </span><span class=cF3>LTGREEN</span><span class=cF0>
|
|
<a name="l1147"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_STR</span><span class=cF0> </span><span class=cF3>BROWN</span><span class=cF0>
|
|
<a name="l1148"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_CHAR_CONST</span><span class=cF0> </span><span class=cF3>BROWN</span><span class=cF0>
|
|
<a name="l1149"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_EXPORT_SYS_SYM</span><span class=cF0> </span><span class=cF3>LTPURPLE</span><span class=cF0>
|
|
<a name="l1150"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_DEFINE_STR</span><span class=cF0> </span><span class=cF3>CYAN</span><span class=cF0>
|
|
<a name="l1151"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_GLBL_VAR</span><span class=cF0> </span><span class=cF3>LTCYAN</span><span class=cF0>
|
|
<a name="l1152"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_CLASS</span><span class=cF0> </span><span class=cF3>LTBLUE</span><span class=cF0>
|
|
<a name="l1153"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_FUN</span><span class=cF0> </span><span class=cF3>PURPLE</span><span class=cF0>
|
|
<a name="l1154"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_KEYWORD</span><span class=cF0> </span><span class=cF3>BLUE</span><span class=cF0>
|
|
<a name="l1155"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_COLOR_REG</span><span class=cF0> </span><span class=cF3>LTRED</span><span class=cF0>
|
|
<a name="l1156"></a>
|
|
<a name="l1157"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDocSettings</span><span class=cF0>
|
|
<a name="l1158"></a>{
|
|
<a name="l1159"></a> </span><span class=cF9>U32</span><span class=cF0> final_u32_attr;
|
|
<a name="l1160"></a> </span><span class=cF9>I16</span><span class=cF0> left_margin,right_margin,indent;
|
|
<a name="l1161"></a> </span><span class=cF9>U16</span><span class=cF0> page_len,header,footer;
|
|
<a name="l1162"></a> </span><span class=cF1>I8</span><span class=cF0> shifted_x,shifted_y;
|
|
<a name="l1163"></a> </span><span class=cF1>U8</span><span class=cF0> state,comment_depth,paren_depth,brace_depth,
|
|
<a name="l1164"></a> cur_text_attr,dft_text_attr;
|
|
<a name="l1165"></a>};
|
|
<a name="l1166"></a>
|
|
<a name="l1167"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_DFT</span><span class=cF0> </span><span class=cF3>I32_MIN</span><span class=cF0>
|
|
<a name="l1168"></a>
|
|
<a name="l1169"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDocEntryBase</span><span class=cF0>
|
|
<a name="l1170"></a>{
|
|
<a name="l1171"></a></span><span class=cF2>//This is a shortened structure for</span><span class=cF0>
|
|
<a name="l1172"></a> </span><span class=cF2>//cmds like the text cmd which</span><span class=cF0>
|
|
<a name="l1173"></a> </span><span class=cF2>//don't require the full CDocEntry structure.</span><span class=cF0>
|
|
<a name="l1174"></a> </span><span class=cF9>CDocEntryBase</span><span class=cF0> *next,*last;
|
|
<a name="l1175"></a> </span><span class=cF1>U8</span><span class=cF0> *tag;
|
|
<a name="l1176"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1177"></a> </span><span class=cF1>U8</span><span class=cF0> type_u8; </span><span class=cF2>//this stores the code</span><span class=cF0>
|
|
<a name="l1178"></a> </span><span class=cF9>U32</span><span class=cF0> type; </span><span class=cF2>//these store attr flags</span><span class=cF0>
|
|
<a name="l1179"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l1180"></a> </span><span class=cF9>I32</span><span class=cF0> page_line_num;
|
|
<a name="l1181"></a> </span><span class=cF9>I64</span><span class=cF0> de_flags;
|
|
<a name="l1182"></a> </span><span class=cF9>I32</span><span class=cF0> x,y;
|
|
<a name="l1183"></a> </span><span class=cF9>U32</span><span class=cF0> min_col,max_col;
|
|
<a name="l1184"></a> </span><span class=cF9>CDocSettings</span><span class=cF0> settings;
|
|
<a name="l1185"></a> </span><span class=cF9>I64</span><span class=cF0> user_data;
|
|
<a name="l1186"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l1187"></a>};
|
|
<a name="l1188"></a>
|
|
<a name="l1189"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCE_LEN_DFT</span><span class=cF0> 64
|
|
<a name="l1190"></a>
|
|
<a name="l1191"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDocEntry</span><span class=cF0>:</span><span class=cF9>CDocEntryBase</span><span class=cF0>
|
|
<a name="l1192"></a>{
|
|
<a name="l1193"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1194"></a> </span><span class=cF9>I64</span><span class=cF0> attr;
|
|
<a name="l1195"></a> </span><span class=cF9>I64</span><span class=cF0> cursor_x_offset;
|
|
<a name="l1196"></a> </span><span class=cF9>I64</span><span class=cF0> (*left_cb)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e);
|
|
<a name="l1197"></a> </span><span class=cF9>I64</span><span class=cF0> left_exp;
|
|
<a name="l1198"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l1199"></a> </span><span class=cF1>U8</span><span class=cF0> *left_macro;
|
|
<a name="l1200"></a>
|
|
<a name="l1201"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1202"></a> </span><span class=cF9>I64</span><span class=cF0> cursor_y_offset;
|
|
<a name="l1203"></a> </span><span class=cF9>I64</span><span class=cF0> (*right_cb)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e);
|
|
<a name="l1204"></a> </span><span class=cF9>I64</span><span class=cF0> right_exp;
|
|
<a name="l1205"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l1206"></a> </span><span class=cF1>U8</span><span class=cF0> *right_macro;
|
|
<a name="l1207"></a>
|
|
<a name="l1208"></a> </span><span class=cF1>U8</span><span class=cF0> *(*tag_cb)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e,</span><span class=cF9>CTask</span><span class=cF0> *mem_task);
|
|
<a name="l1209"></a> </span><span class=cF1>U8</span><span class=cF0> *define_str,
|
|
<a name="l1210"></a> *aux_str,
|
|
<a name="l1211"></a> *bin_ptr_link,
|
|
<a name="l1212"></a> *html_link,
|
|
<a name="l1213"></a> *my_fmt_data;
|
|
<a name="l1214"></a> </span><span class=cF9>I64</span><span class=cF0> hex_ed_width;
|
|
<a name="l1215"></a> </span><span class=cF9>I32</span><span class=cF0> scroll_len,
|
|
<a name="l1216"></a> len, </span><span class=cF2>//</span><a href="/Wb/Kernel/KernelA.HH.HTML#l1189"><span class=cF4>DOCE_LEN_DFT</span></a><span class=cF0>
|
|
<a name="l1217"></a> bin_num;
|
|
<a name="l1218"></a> </span><span class=cF1>U8</span><span class=cF0> raw_type,pad[3];
|
|
<a name="l1219"></a> </span><span class=cF9>CDocBin</span><span class=cF0> *bin_data;
|
|
<a name="l1220"></a> </span><span class=cF1>U8</span><span class=cF0> *data;
|
|
<a name="l1221"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l1222"></a>};
|
|
<a name="l1223"></a>
|
|
<a name="l1224"></a></span><span class=cF2>//</span><a href="/Wb/Adam/DolDoc/DocForm.HC.HTML#l209"><span class=cF4>DocForm</span></a><span class=cF2>() </span><a href="/Wb/Adam/DolDoc/DocForm.HC.HTML#l295"><span class=cF4>DocMenu</span></a><span class=cF2>() </span><a href="/Wb/Adam/DolDoc/DocEd.HC.HTML#l84"><span class=cF4>DocEd</span></a><span class=cF2>() </span><a href="/Wb/Adam/DolDoc/DocForm.HC.HTML#l333"><span class=cF4>PopUpMenu</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l1225"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_SIZE_MIN</span><span class=cF0> 0x01
|
|
<a name="l1226"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_INTERCEPT_TASK_END</span><span class=cF0> 0x02
|
|
<a name="l1227"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_DONT_HOME</span><span class=cF0> 0x04
|
|
<a name="l1228"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_WIN_MAX</span><span class=cF0> 0x08
|
|
<a name="l1229"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_DONT_TEXT_ATTR</span><span class=cF0> 0x10
|
|
<a name="l1230"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_DONT_WINMGR_SYNC</span><span class=cF0> 0x20
|
|
<a name="l1231"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOF_DONT_SHOW</span><span class=cF0> 0x40
|
|
<a name="l1232"></a></span><span class=cF2>//Combines with </span><a href="/Wb/Kernel/KernelA.HH.HTML#l1257"><span class=cF4>Editor Flags</span></a><span class=cF0>
|
|
<a name="l1233"></a>
|
|
<a name="l1234"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CEdFindText</span><span class=cF0>
|
|
<a name="l1235"></a>{
|
|
<a name="l1236"></a> </span><span class=cF1>U8</span><span class=cF0> find_text[</span><span class=cF3>STR_LEN</span><span class=cF0>] format </span><span class=cF6>"$DA-P,"</span><span class=cF0>
|
|
<a name="l1237"></a> </span><span class=cF6>"A=\"Find :%s\"$\n"</span><span class=cF0>,
|
|
<a name="l1238"></a> replace_text[</span><span class=cF3>STR_LEN</span><span class=cF0>] format </span><span class=cF6>"$DA-P,"</span><span class=cF0>
|
|
<a name="l1239"></a> </span><span class=cF6>"A=\"Replace :%s\"$\n"</span><span class=cF0>;
|
|
<a name="l1240"></a> </span><span class=cF1>Bool</span><span class=cF0> replace format </span><span class=cF6>"$CB,\"Replace\"$\n"</span><span class=cF0>,
|
|
<a name="l1241"></a> scan_fwd format </span><span class=cF6>"$CB,\"Fwd\"$\n"</span><span class=cF0>,
|
|
<a name="l1242"></a> scan_sel_text format </span><span class=cF6>"$CB,\"Selection\"$\n"</span><span class=cF0>,
|
|
<a name="l1243"></a> match_case format </span><span class=cF6>"$CB,\"Match Case\"$\n"</span><span class=cF0>,
|
|
<a name="l1244"></a> whole_labels format </span><span class=cF6>"$CB,\"Whole Labels\"$\n"</span><span class=cF0>,
|
|
<a name="l1245"></a> local_var format </span><span class=cF6>"$CB,\"Rename Local Var\"$\n"</span><span class=cF0>,
|
|
<a name="l1246"></a> pmt,pad;
|
|
<a name="l1247"></a> </span><span class=cF9>I64</span><span class=cF0> filter_lines format </span><span class=cF6>"$DA,A=\"Filter Lines:%d\"$\n"</span><span class=cF0>;
|
|
<a name="l1248"></a>};
|
|
<a name="l1249"></a>
|
|
<a name="l1250"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CEdFileName</span><span class=cF0>
|
|
<a name="l1251"></a>{
|
|
<a name="l1252"></a> </span><span class=cF9>CDirContext</span><span class=cF0> *dirc;
|
|
<a name="l1253"></a> </span><span class=cF1>U8</span><span class=cF0> name[256] format </span><span class=cF6>"$DA-P,LEN=255,A=\"FileName:%s\"$"</span><span class=cF0>;
|
|
<a name="l1254"></a>};
|
|
<a name="l1255"></a>
|
|
<a name="l1256"></a></span><span class=cF2>//</span><a href="/Wb/Adam/DolDoc/DocEd.HC.HTML#l204"><span class=cF4>Ed</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l1257"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDF_BAIL</span><span class=cF0> 0x100
|
|
<a name="l1258"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDF_COLLAPSE</span><span class=cF0> 0x200
|
|
<a name="l1259"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDF_UNCOLLAPSE</span><span class=cF0> 0x400
|
|
<a name="l1260"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDF_WAS_WRITE</span><span class=cF0> 0x800 </span><span class=cF2>//Was exit ESC or SHIFT_ESC?</span><span class=cF0>
|
|
<a name="l1261"></a></span><span class=cF2>//Combines with </span><a href="/Wb/Kernel/KernelA.HH.HTML#l1225"><span class=cF4>Document Flags</span></a><span class=cF0>
|
|
<a name="l1262"></a>
|
|
<a name="l1263"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDf_BAIL</span><span class=cF0> 8
|
|
<a name="l1264"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDf_COLLAPSE</span><span class=cF0> 9
|
|
<a name="l1265"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDf_UNCOLLAPSE</span><span class=cF0> 10
|
|
<a name="l1266"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>EDf_WAS_WRITE</span><span class=cF0> 11
|
|
<a name="l1267"></a>
|
|
<a name="l1268"></a></span><span class=cF2>// DOC header flags</span><span class=cF0>
|
|
<a name="l1269"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_PLAIN_TEXT</span><span class=cF0> 0x1
|
|
<a name="l1270"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_PLAIN_TEXT_TABS</span><span class=cF0> 0x2 </span><span class=cF2>//has '\t', not DOCT_TAB</span><span class=cF0>
|
|
<a name="l1271"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_AUTO_SAVE</span><span class=cF0> 0x4
|
|
<a name="l1272"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_NO_CURSOR</span><span class=cF0> 0x8
|
|
<a name="l1273"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_CARRIAGE_RETURN</span><span class=cF0> 0x10
|
|
<a name="l1274"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_DBL_DOLLARS</span><span class=cF0> 0x20
|
|
<a name="l1275"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_COLOR_NAMES</span><span class=cF0> 0x40
|
|
<a name="l1276"></a></span><span class=cF2>//Reserved x1</span><span class=cF0>
|
|
<a name="l1277"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_BORDER_DOC</span><span class=cF0> 0x100
|
|
<a name="l1278"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_FORM</span><span class=cF0> 0x200
|
|
<a name="l1279"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_SIZE_MIN</span><span class=cF0> 0x400
|
|
<a name="l1280"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_HIDE_CURSOR</span><span class=cF0> 0x800 </span><span class=cF2>//use </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l136"><span class=cF4>DocCursor</span></a><span class=cF0>
|
|
<a name="l1281"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_DONT_HIGHLIGHT_CURSOR</span><span class=cF0> 0x1000 </span><span class=cF2>//use </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l143"><span class=cF4>DocHighlightCursor</span></a><span class=cF0>
|
|
<a name="l1282"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_NO_SCROLL_BARS</span><span class=cF0> 0x2000 </span><span class=cF2>//use </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l150"><span class=cF4>DocScroll</span></a><span class=cF0>
|
|
<a name="l1283"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_ALLOW_UNDO</span><span class=cF0> 0x4000
|
|
<a name="l1284"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_DONT_SHOW</span><span class=cF0> 0x8000
|
|
<a name="l1285"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_HAS_SONG</span><span class=cF0> 0x10000
|
|
<a name="l1286"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_MORE</span><span class=cF0> 0x20000
|
|
<a name="l1287"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_BWD_MOVEMENT</span><span class=cF0> 0x40000
|
|
<a name="l1288"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_NULL_GRAB_SCROLL</span><span class=cF0> 0x80000
|
|
<a name="l1289"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_DONT_SWAP_OUT</span><span class=cF0> 0x100000
|
|
<a name="l1290"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_DO_FULL_REFRESH</span><span class=cF0> 0x200000
|
|
<a name="l1291"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_BREAK_UNLOCKED</span><span class=cF0> 0x400000
|
|
<a name="l1292"></a></span><span class=cF2>//Reserved x1</span><span class=cF0>
|
|
<a name="l1293"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_HIGHLIGHT</span><span class=cF0> </span><span class=cF3>DOCEF_HIGHLIGHT</span><span class=cF0>
|
|
<a name="l1294"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_WORD_WRAP</span><span class=cF0> </span><span class=cF3>DOCEF_WORD_WRAP</span><span class=cF0>
|
|
<a name="l1295"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_BLINK</span><span class=cF0> </span><span class=cF3>DOCEF_BLINK</span><span class=cF0>
|
|
<a name="l1296"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_INVERT</span><span class=cF0> </span><span class=cF3>DOCEF_INVERT</span><span class=cF0>
|
|
<a name="l1297"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_SEL</span><span class=cF0> </span><span class=cF3>DOCEF_SEL</span><span class=cF0>
|
|
<a name="l1298"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_UNDERLINE</span><span class=cF0> </span><span class=cF3>DOCEF_UNDERLINE</span><span class=cF0>
|
|
<a name="l1299"></a>
|
|
<a name="l1300"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_OVERSTRIKE</span><span class=cF0> 0x100000000
|
|
<a name="l1301"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_IN_DOLLAR</span><span class=cF0> 0x200000000
|
|
<a name="l1302"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_SUPERSCRIPT_MODE</span><span class=cF0> 0x400000000
|
|
<a name="l1303"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_SUBSCRIPT_MODE</span><span class=cF0> 0x800000000
|
|
<a name="l1304"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCF_UNDO_DIRTY</span><span class=cF0> 0x1000000000
|
|
<a name="l1305"></a>
|
|
<a name="l1306"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_PLAIN_TEXT</span><span class=cF0> 0
|
|
<a name="l1307"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_PLAIN_TEXT_TABS</span><span class=cF0> 1 </span><span class=cF2>//has '\t', not DOCT_TAB</span><span class=cF0>
|
|
<a name="l1308"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_AUTO_SAVE</span><span class=cF0> 2
|
|
<a name="l1309"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_NO_CURSOR</span><span class=cF0> 3
|
|
<a name="l1310"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_CARRIAGE_RETURN</span><span class=cF0> 4
|
|
<a name="l1311"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_DBL_DOLLARS</span><span class=cF0> 5
|
|
<a name="l1312"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_COLOR_NAMES</span><span class=cF0> 6
|
|
<a name="l1313"></a></span><span class=cF2>//Reserved x1</span><span class=cF0>
|
|
<a name="l1314"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_BORDER_DOC</span><span class=cF0> 8
|
|
<a name="l1315"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_FORM</span><span class=cF0> 9
|
|
<a name="l1316"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_SIZE_MIN</span><span class=cF0> 10
|
|
<a name="l1317"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_HIDE_CURSOR</span><span class=cF0> 11 </span><span class=cF2>//use </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l136"><span class=cF4>DocCursor</span></a><span class=cF0>
|
|
<a name="l1318"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_DONT_HIGHLIGHT_CURSOR</span><span class=cF0> 12 </span><span class=cF2>//use </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l143"><span class=cF4>DocHighlightCursor</span></a><span class=cF0>
|
|
<a name="l1319"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_NO_SCROLL_BARS</span><span class=cF0> 13 </span><span class=cF2>//use </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l150"><span class=cF4>DocScroll</span></a><span class=cF0>
|
|
<a name="l1320"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_ALLOW_UNDO</span><span class=cF0> 14
|
|
<a name="l1321"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_DONT_SHOW</span><span class=cF0> 15
|
|
<a name="l1322"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_HAS_SONG</span><span class=cF0> 16
|
|
<a name="l1323"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_MORE</span><span class=cF0> 17
|
|
<a name="l1324"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_BWD_MOVEMENT</span><span class=cF0> 18
|
|
<a name="l1325"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_NULL_GRAB_SCROLL</span><span class=cF0> 19
|
|
<a name="l1326"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_DONT_SWAP_OUT</span><span class=cF0> 20
|
|
<a name="l1327"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_DO_FULL_REFRESH</span><span class=cF0> 21
|
|
<a name="l1328"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_BREAK_UNLOCKED</span><span class=cF0> 22
|
|
<a name="l1329"></a></span><span class=cF2>//Reserved x1</span><span class=cF0>
|
|
<a name="l1330"></a>
|
|
<a name="l1331"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_HIGHLIGHT</span><span class=cF0> </span><span class=cF3>DOCEf_HIGHLIGHT</span><span class=cF0>
|
|
<a name="l1332"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_WORD_WRAP</span><span class=cF0> </span><span class=cF3>DOCEf_WORD_WRAP</span><span class=cF0>
|
|
<a name="l1333"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_BLINK</span><span class=cF0> </span><span class=cF3>DOCEf_BLINK</span><span class=cF0>
|
|
<a name="l1334"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_INVERT</span><span class=cF0> </span><span class=cF3>DOCEf_INVERT</span><span class=cF0>
|
|
<a name="l1335"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_SEL</span><span class=cF0> </span><span class=cF3>DOCEf_SEL</span><span class=cF0>
|
|
<a name="l1336"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_UNDERLINE</span><span class=cF0> </span><span class=cF3>DOCEf_UNDERLINE</span><span class=cF0>
|
|
<a name="l1337"></a>
|
|
<a name="l1338"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_OVERSTRIKE</span><span class=cF0> 32
|
|
<a name="l1339"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_IN_DOLLAR</span><span class=cF0> 33
|
|
<a name="l1340"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_SUPERSCRIPT_MODE</span><span class=cF0> 34
|
|
<a name="l1341"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_SUBSCRIPT_MODE</span><span class=cF0> 35
|
|
<a name="l1342"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCf_UNDO_DIRTY</span><span class=cF0> 36
|
|
<a name="l1343"></a>
|
|
<a name="l1344"></a></span><span class=cF2>//locked flags</span><span class=cF0>
|
|
<a name="l1345"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOClf_LOCKED</span><span class=cF0> 0
|
|
<a name="l1346"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDocUndo</span><span class=cF0>
|
|
<a name="l1347"></a>{
|
|
<a name="l1348"></a> </span><span class=cF9>CDocUndo</span><span class=cF0> *next,*last;
|
|
<a name="l1349"></a> </span><span class=cF9>I64</span><span class=cF0> size,doc_flags,time_stamp;
|
|
<a name="l1350"></a> </span><span class=cF1>U8</span><span class=cF0> *body;
|
|
<a name="l1351"></a>};
|
|
<a name="l1352"></a>
|
|
<a name="l1353"></a></span><span class=cF2>//See </span><a href="/Wb/Adam/DolDoc/DocForm.HC.HTML#l295"><span class=cF4>DocMenu</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l1354"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOCM_CANCEL</span><span class=cF0> (-1)
|
|
<a name="l1355"></a>
|
|
<a name="l1356"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DOC_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'DocS'</span><span class=cF0>
|
|
<a name="l1357"></a>
|
|
<a name="l1358"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCt_NORMAL</span><span class=cF0> 0x00
|
|
<a name="l1359"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCt_FIND_CURSOR</span><span class=cF0> 0x01
|
|
<a name="l1360"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCt_TO_SCRN</span><span class=cF0> 0x02
|
|
<a name="l1361"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCG_MASK</span><span class=cF0> 0xFF
|
|
<a name="l1362"></a>
|
|
<a name="l1363"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCF_HAS_CURSOR</span><span class=cF0> 0x100
|
|
<a name="l1364"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCF_ADD_CURSOR</span><span class=cF0> 0x200
|
|
<a name="l1365"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RECALCF_TO_HTML</span><span class=cF0> 0x400
|
|
<a name="l1366"></a>
|
|
<a name="l1367"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDoc</span><span class=cF0> </span><span class=cF2>//Linked Text File header</span><span class=cF0>
|
|
<a name="l1368"></a>{</span><span class=cF2>//See </span><span class=cF4><u>Doc</u></span><span class=cF2> for documentation.</span><span class=cF0>
|
|
<a name="l1369"></a> </span><span class=cF9>CDocEntryBase</span><span class=cF0> head;
|
|
<a name="l1370"></a> </span><span class=cF9>I64</span><span class=cF0> flags,locked_flags;
|
|
<a name="l1371"></a> </span><span class=cF9>CDocEntry</span><span class=cF0> *cur_entry,*old_cur_entry;
|
|
<a name="l1372"></a> </span><span class=cF9>I32</span><span class=cF0> cur_col,old_cur_col,
|
|
<a name="l1373"></a> line_start_col,top_line_num,
|
|
<a name="l1374"></a> dollar_buf_size,dollar_buf_ptr;
|
|
<a name="l1375"></a> </span><span class=cF1>U8</span><span class=cF0> *dollar_buf; </span><span class=cF2>//When entering $ cmds, it buffers them until the end $.</span><span class=cF0>
|
|
<a name="l1376"></a>
|
|
<a name="l1377"></a> </span><span class=cF9>CTask</span><span class=cF0> *win_task,*mem_task,*owning_task;
|
|
<a name="l1378"></a> </span><span class=cF9>I32</span><span class=cF0> page_line_num,undo_cnt,
|
|
<a name="l1379"></a> x,y,min_x,max_x,min_y,max_y;
|
|
<a name="l1380"></a> </span><span class=cF9>I64</span><span class=cF0> line,col,best_d,
|
|
<a name="l1381"></a> old_win_top,old_win_bottom,
|
|
<a name="l1382"></a> old_win_left,old_win_right,
|
|
<a name="l1383"></a> cmd_U8;
|
|
<a name="l1384"></a> </span><span class=cF9>U32</span><span class=cF0> doc_signature,cur_bin_num;
|
|
<a name="l1385"></a> </span><span class=cF9>I64</span><span class=cF0> max_entries,
|
|
<a name="l1386"></a> updates_cnt;
|
|
<a name="l1387"></a> </span><span class=cF9>CEdFindText</span><span class=cF0> *find_replace;
|
|
<a name="l1388"></a>
|
|
<a name="l1389"></a> </span><span class=cF9>CEdFileName</span><span class=cF0> filename;
|
|
<a name="l1390"></a> </span><span class=cF9>I64</span><span class=cF0> file_attr;
|
|
<a name="l1391"></a> </span><span class=cF9>I64</span><span class=cF0> (*left_click_link)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e);
|
|
<a name="l1392"></a> </span><span class=cF9>I64</span><span class=cF0> (*right_click_link)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF9>CDocEntry</span><span class=cF0> *doc_e);
|
|
<a name="l1393"></a>
|
|
<a name="l1394"></a> </span><span class=cF2>//See </span><a href="/Wb/Apps/Psalmody/JukeBox.HC.HTML#l1"><span class=cF4>::/Apps/Psalmody/JukeBox.HC</span></a><span class=cF0>
|
|
<a name="l1395"></a> </span><span class=cF1>U8</span><span class=cF0> *user_put_data; </span><span class=cF2>//Passed to user_put_key() and user_put_s()</span><span class=cF0>
|
|
<a name="l1396"></a> </span><span class=cF1>Bool</span><span class=cF0> (*user_put_key)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF1>U8</span><span class=cF0> *data,</span><span class=cF9>I64</span><span class=cF0> ch,</span><span class=cF9>I64</span><span class=cF0> sc);
|
|
<a name="l1397"></a> </span><span class=cF1>Bool</span><span class=cF0> (*user_put_s)(</span><span class=cF9>CDoc</span><span class=cF0> *doc,</span><span class=cF1>U8</span><span class=cF0> *data,</span><span class=cF1>U8</span><span class=cF0> *st);
|
|
<a name="l1398"></a>
|
|
<a name="l1399"></a> </span><span class=cF9>CDoc</span><span class=cF0> *parent_doc; </span><span class=cF2>//(When browsing deeper, opening deeper docs.)</span><span class=cF0>
|
|
<a name="l1400"></a> </span><span class=cF9>U64</span><span class=cF0> desc; </span><span class=cF2>//8 characters. See </span><a href="/Wb/Adam/DolDoc/DocRecalcLib.HC.HTML#l43"><span class=cF4>DocBorderLstDraw</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l1401"></a>
|
|
<a name="l1402"></a> </span><span class=cF9>CDocBin</span><span class=cF0> bin_head;
|
|
<a name="l1403"></a> </span><span class=cF9>CDocSettings</span><span class=cF0> settings_head;
|
|
<a name="l1404"></a> </span><span class=cF9>CDocUndo</span><span class=cF0> undo_head;
|
|
<a name="l1405"></a>
|
|
<a name="l1406"></a> </span><span class=cF9>I64</span><span class=cF0> user_data;
|
|
<a name="l1407"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l1408"></a>};
|
|
<a name="l1409"></a>
|
|
<a name="l1410"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Windows"</span><span class=cF0>
|
|
<a name="l1411"></a></span><span class=cF2>/*</span><span class=cF0>
|
|
<a name="l1412"></a></span><span class=cF2>Fs->win_inhibit mask</span><span class=cF0>
|
|
<a name="l1413"></a>
|
|
<a name="l1414"></a></span><span class=cF2>Some inhibit actions on the task itself.</span><span class=cF0>
|
|
<a name="l1415"></a></span><span class=cF2>Some inhibit actions if the focus task</span><span class=cF0>
|
|
<a name="l1416"></a></span><span class=cF2>tries to do something.</span><span class=cF0>
|
|
<a name="l1417"></a></span><span class=cF2>*/</span><span class=cF0>
|
|
<a name="l1418"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_FOCUS</span><span class=cF0> 0x0001 </span><span class=cF2>//If active this task cannot have focus</span><span class=cF0>
|
|
<a name="l1419"></a> </span><span class=cF2>//MENU</span><span class=cF0> </span><span class=cF2>0x0002</span><span class=cF0>
|
|
<a name="l1420"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_CTRLS</span><span class=cF0> 0x0004
|
|
<a name="l1421"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_MS_L</span><span class=cF0> 0x0008
|
|
<a name="l1422"></a> </span><span class=cF2>//MS_L_D</span><span class=cF0> </span><span class=cF2>0x0010</span><span class=cF0>
|
|
<a name="l1423"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_MS_R</span><span class=cF0> 0x0020
|
|
<a name="l1424"></a> </span><span class=cF2>//MS_R_D</span><span class=cF0> </span><span class=cF2>0x0040</span><span class=cF0>
|
|
<a name="l1425"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_MS_WHEEL</span><span class=cF0> 0x0080 </span><span class=cF2>//Does nothing, yet</span><span class=cF0>
|
|
<a name="l1426"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_BORDER</span><span class=cF0> 0x0100
|
|
<a name="l1427"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_GRAB_SCROLL</span><span class=cF0> 0x0200
|
|
<a name="l1428"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_DOC</span><span class=cF0> 0x0400
|
|
<a name="l1429"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_ODE</span><span class=cF0> 0x0800
|
|
<a name="l1430"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_SELF_KEY_DESC</span><span class=cF0> 0x1000
|
|
<a name="l1431"></a> </span><span class=cF2>//FOCUS</span><span class=cF0> </span><span class=cF2>0x00010000</span><span class=cF0>
|
|
<a name="l1432"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_MENU</span><span class=cF0> 0x00020000
|
|
<a name="l1433"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_CTRLS</span><span class=cF0> 0x00040000
|
|
<a name="l1434"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_MS_L</span><span class=cF0> 0x00080000
|
|
<a name="l1435"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_MS_L_D</span><span class=cF0> 0x00100000
|
|
<a name="l1436"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_MS_R</span><span class=cF0> 0x00200000
|
|
<a name="l1437"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_MS_R_D</span><span class=cF0> 0x00400000
|
|
<a name="l1438"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_MS_WHEEL</span><span class=cF0> 0x00800000 </span><span class=cF2>//Does nothing, yet</span><span class=cF0>
|
|
<a name="l1439"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_BORDER</span><span class=cF0> 0x01000000
|
|
<a name="l1440"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIF_FOCUS_TASK_GRAB_SCROLL</span><span class=cF0> 0x02000000
|
|
<a name="l1441"></a>
|
|
<a name="l1442"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIG_DBL_CLICK</span><span class=cF0> (</span><span class=cF3>WIF_FOCUS_TASK_MS_L_D</span><span class=cF0>|</span><span class=cF3>WIF_FOCUS_TASK_MS_R_D</span><span class=cF0>)
|
|
<a name="l1443"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIG_TASK_DFT</span><span class=cF0> (</span><span class=cF3>WIF_FOCUS_TASK_MENU</span><span class=cF0>|</span><span class=cF3>WIG_DBL_CLICK</span><span class=cF0>|\
|
|
<a name="l1444"></a> 0xFFFF-</span><span class=cF3>WIF_SELF_DOC</span><span class=cF0>-</span><span class=cF3>WIF_SELF_ODE</span><span class=cF0>)
|
|
<a name="l1445"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIG_NO_FOCUS_TASK_DFT</span><span class=cF0> (</span><span class=cF3>WIG_TASK_DFT</span><span class=cF0>-</span><span class=cF3>WIF_SELF_BORDER</span><span class=cF0>\
|
|
<a name="l1446"></a> -</span><span class=cF3>WIF_SELF_MS_L</span><span class=cF0>-</span><span class=cF3>WIF_SELF_MS_R</span><span class=cF0>-</span><span class=cF3>WIG_DBL_CLICK</span><span class=cF0>)
|
|
<a name="l1447"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIG_USER_TASK_DFT</span><span class=cF0> </span><span class=cF3>WIF_SELF_KEY_DESC</span><span class=cF0>
|
|
<a name="l1448"></a>
|
|
<a name="l1449"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_FOCUS</span><span class=cF0> 0
|
|
<a name="l1450"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_CTRLS</span><span class=cF0> 2
|
|
<a name="l1451"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_MS_L</span><span class=cF0> 3
|
|
<a name="l1452"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_MS_R</span><span class=cF0> 5
|
|
<a name="l1453"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_MS_WHEEL</span><span class=cF0> 7
|
|
<a name="l1454"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_BORDER</span><span class=cF0> 8
|
|
<a name="l1455"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_GRAB_SCROLL</span><span class=cF0> 9
|
|
<a name="l1456"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_DOC</span><span class=cF0> 10
|
|
<a name="l1457"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_ODE</span><span class=cF0> 11
|
|
<a name="l1458"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_SELF_KEY_DESC</span><span class=cF0> 12
|
|
<a name="l1459"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_MENU</span><span class=cF0> 17
|
|
<a name="l1460"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_CTRLS</span><span class=cF0> 18
|
|
<a name="l1461"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_MS_L</span><span class=cF0> 19
|
|
<a name="l1462"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_MS_L_D</span><span class=cF0> 20
|
|
<a name="l1463"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_MS_R</span><span class=cF0> 21
|
|
<a name="l1464"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_MS_R_D</span><span class=cF0> 22
|
|
<a name="l1465"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_MS_WHEEL</span><span class=cF0> 23
|
|
<a name="l1466"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_BORDER</span><span class=cF0> 24
|
|
<a name="l1467"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WIf_FOCUS_TASK_GRAB_SCROLL</span><span class=cF0> 25
|
|
<a name="l1468"></a>
|
|
<a name="l1469"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CWinMgrTimingGlbls</span><span class=cF0>
|
|
<a name="l1470"></a>{
|
|
<a name="l1471"></a> </span><span class=cF9>I64</span><span class=cF0> last_total_jiffies,
|
|
<a name="l1472"></a> last_idle_pt_hits[</span><span class=cF3>MP_PROCESSORS_NUM</span><span class=cF0>],
|
|
<a name="l1473"></a> last_swap_cnter[</span><span class=cF3>MP_PROCESSORS_NUM</span><span class=cF0>];
|
|
<a name="l1474"></a> </span><span class=cF1>F64</span><span class=cF0> last_calc_idle_time,calc_idle_delta_time;
|
|
<a name="l1475"></a> </span><span class=cF9>I64</span><span class=cF0> calc_idle_cnt;
|
|
<a name="l1476"></a>};
|
|
<a name="l1477"></a>
|
|
<a name="l1478"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WINMGR_FPS</span><span class=cF0> (30000.0/1001)
|
|
<a name="l1479"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WINMGR_PERIOD</span><span class=cF0> (1001/30000.0)
|
|
<a name="l1480"></a>
|
|
<a name="l1481"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CWinMgrGlbls</span><span class=cF0>
|
|
<a name="l1482"></a>{
|
|
<a name="l1483"></a> </span><span class=cF9>I64</span><span class=cF0> updates;
|
|
<a name="l1484"></a> </span><span class=cF1>F64</span><span class=cF0> ode_time,
|
|
<a name="l1485"></a> last_ode_time,
|
|
<a name="l1486"></a> fps, </span><span class=cF2>//You can read but not write this. You have no control.</span><span class=cF0>
|
|
<a name="l1487"></a> ideal_refresh_tS,
|
|
<a name="l1488"></a> last_refresh_tS;
|
|
<a name="l1489"></a> </span><span class=cF9>CWinMgrTimingGlbls</span><span class=cF0> *t;
|
|
<a name="l1490"></a> </span><span class=cF1>Bool</span><span class=cF0> show_menu,grab_scroll,grab_scroll_closed;
|
|
<a name="l1491"></a>};
|
|
<a name="l1492"></a>
|
|
<a name="l1493"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"AutoComplete"</span><span class=cF0>
|
|
<a name="l1494"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACf_INIT_IN_PROGRESS</span><span class=cF0> 0
|
|
<a name="l1495"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AC_FILLINS_NUM</span><span class=cF0> 10
|
|
<a name="l1496"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAutoCompleteGlbls</span><span class=cF0>
|
|
<a name="l1497"></a>{
|
|
<a name="l1498"></a> </span><span class=cF9>I64</span><span class=cF0> num_words;
|
|
<a name="l1499"></a> </span><span class=cF9>CHashTable</span><span class=cF0> *hash_table;
|
|
<a name="l1500"></a> </span><span class=cF1>U8</span><span class=cF0> *cur_word;
|
|
<a name="l1501"></a> </span><span class=cF9>I64</span><span class=cF0> flags;
|
|
<a name="l1502"></a> </span><span class=cF9>CTask</span><span class=cF0> *task;
|
|
<a name="l1503"></a> </span><span class=cF9>I64</span><span class=cF0> partial_len,num_fillins,
|
|
<a name="l1504"></a> fillin_hits [</span><span class=cF3>AC_FILLINS_NUM</span><span class=cF0>+1];
|
|
<a name="l1505"></a> </span><span class=cF9>CHashAC</span><span class=cF0> *fillin_matches[</span><span class=cF3>AC_FILLINS_NUM</span><span class=cF0>+1];
|
|
<a name="l1506"></a>};
|
|
<a name="l1507"></a>
|
|
<a name="l1508"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"AutoComplete/Dictionary"</span><span class=cF0>
|
|
<a name="l1509"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_WORD_FILENAME</span><span class=cF0> </span><span class=cF6>"/Adam/AutoComplete/ACWords.DATA.Z"</span><span class=cF0>
|
|
<a name="l1510"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_DEF_FILENAME</span><span class=cF0> </span><span class=cF6>"/Adam/AutoComplete/ACDefs.DATA"</span><span class=cF0>
|
|
<a name="l1511"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_DEF_FILENAME_Z</span><span class=cF0> </span><span class=cF6>"/Adam/AutoComplete/ACDefs.DATA.Z"</span><span class=cF0>
|
|
<a name="l1512"></a>
|
|
<a name="l1513"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_H1</span><span class=cF0> 0
|
|
<a name="l1514"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_H1_END</span><span class=cF0> 1
|
|
<a name="l1515"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_DEF</span><span class=cF0> 2
|
|
<a name="l1516"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_DEF_END</span><span class=cF0> 3
|
|
<a name="l1517"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_PRONUNCIATION</span><span class=cF0> 4
|
|
<a name="l1518"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_PRONUNCIATION_END</span><span class=cF0> 5
|
|
<a name="l1519"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_POS</span><span class=cF0> 6
|
|
<a name="l1520"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_POS_END</span><span class=cF0> 7
|
|
<a name="l1521"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_EXTRA</span><span class=cF0> 8
|
|
<a name="l1522"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_EXTRA_END</span><span class=cF0> 9
|
|
<a name="l1523"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_BLK_SIZE</span><span class=cF0> 0x4000
|
|
<a name="l1524"></a>
|
|
<a name="l1525"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_END_CHAR</span><span class=cF0> 0x00
|
|
<a name="l1526"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_WORD_CHAR</span><span class=cF0> 0x01
|
|
<a name="l1527"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_DEF_CHAR</span><span class=cF0> 0x02
|
|
<a name="l1528"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_PRONUNCIATION_CHAR</span><span class=cF0> 0x03
|
|
<a name="l1529"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_POS_CHAR</span><span class=cF0> 0x04
|
|
<a name="l1530"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_EXTRA_CHAR</span><span class=cF0> 0x05
|
|
<a name="l1531"></a>
|
|
<a name="l1532"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ACD_FILLINS_NUM</span><span class=cF0> 10
|
|
<a name="l1533"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAutoCompleteDictGlbls</span><span class=cF0>
|
|
<a name="l1534"></a>{
|
|
<a name="l1535"></a> </span><span class=cF1>U8</span><span class=cF0> *word_lst;
|
|
<a name="l1536"></a> </span><span class=cF9>I64</span><span class=cF0> word_lst_size,num_words,num_fillins;
|
|
<a name="l1537"></a> </span><span class=cF1>U8</span><span class=cF0> *fillins[</span><span class=cF3>ACD_FILLINS_NUM</span><span class=cF0>];
|
|
<a name="l1538"></a> </span><span class=cF1>Bool</span><span class=cF0> has_words,has_defs;
|
|
<a name="l1539"></a>};
|
|
<a name="l1540"></a>
|
|
<a name="l1541"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Directive"</span><span class=cF0>
|
|
<a name="l1542"></a></span><span class=cF2>//Compiler </span><a href="/Wb/Compiler/CMisc.HC.HTML#l1"><span class=cF4>Option</span></a><span class=cF2>()s</span><span class=cF0>
|
|
<a name="l1543"></a></span><span class=cF2>//You might need to do #exe {Option();}</span><span class=cF0>
|
|
<a name="l1544"></a></span><span class=cF2>//Note: The #exe stmt is lexed-ahead,</span><span class=cF0>
|
|
<a name="l1545"></a></span><span class=cF2>//so it takes effect earlier than you might expect.</span><span class=cF0>
|
|
<a name="l1546"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_ECHO</span><span class=cF0> 0x00
|
|
<a name="l1547"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_TRACE</span><span class=cF0> 0x01
|
|
<a name="l1548"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_WARN_UNUSED_VAR</span><span class=cF0> 0x10 </span><span class=cF2>//Applied to funs, not stmts</span><span class=cF0>
|
|
<a name="l1549"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_WARN_PAREN</span><span class=cF0> 0x11 </span><span class=cF2>//Warn unnecessary parens</span><span class=cF0>
|
|
<a name="l1550"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_WARN_DUP_TYPES</span><span class=cF0> 0x12 </span><span class=cF2>//Warn dup local var type stmts</span><span class=cF0>
|
|
<a name="l1551"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_WARN_HEADER_MISMATCH</span><span class=cF0> 0x13
|
|
<a name="l1552"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_EXTERNS_TO_IMPORTS</span><span class=cF0> 0x20
|
|
<a name="l1553"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_KEEP_PRIVATE</span><span class=cF0> 0x21
|
|
<a name="l1554"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_NO_REG_VAR</span><span class=cF0> 0x22 </span><span class=cF2>//Applied to funs, not stmts</span><span class=cF0>
|
|
<a name="l1555"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_GLBLS_ON_DATA_HEAP</span><span class=cF0> 0x23
|
|
<a name="l1556"></a></span><span class=cF2>//Disable 10-byte float consts for pi,log2_10,log10_2,loge_2</span><span class=cF0>
|
|
<a name="l1557"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_NO_BUILTIN_CONST</span><span class=cF0> 0x24 </span><span class=cF2>//Applied to funs, not stmts</span><span class=cF0>
|
|
<a name="l1558"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTf_USE_IMM64</span><span class=cF0> 0x25 </span><span class=cF2>//Not completely implemented</span><span class=cF0>
|
|
<a name="l1559"></a>
|
|
<a name="l1560"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OPTF_ECHO</span><span class=cF0> (1<<</span><span class=cF3>OPTf_ECHO</span><span class=cF0>)
|
|
<a name="l1561"></a>
|
|
<a name="l1562"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Intermediate Code"</span><span class=cF0>
|
|
<a name="l1563"></a></span><span class=cF2>//See </span><a href="/Wb/Compiler/CInit.HC.HTML#l209"><span class=cF4>ST_RAW_TYPES</span></a><span class=cF0>
|
|
<a name="l1564"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_I0</span><span class=cF0> 2
|
|
<a name="l1565"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_U0</span><span class=cF0> 3
|
|
<a name="l1566"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_I8</span><span class=cF0> 4
|
|
<a name="l1567"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_U8</span><span class=cF0> 5
|
|
<a name="l1568"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_I16</span><span class=cF0> 6
|
|
<a name="l1569"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_U16</span><span class=cF0> 7
|
|
<a name="l1570"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_I32</span><span class=cF0> 8
|
|
<a name="l1571"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_U32</span><span class=cF0> 9
|
|
<a name="l1572"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_I64</span><span class=cF0> 10
|
|
<a name="l1573"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_PTR</span><span class=cF0> 10 </span><span class=cF2>//Signed to allow negative err codes. </span><a href="/Wb/Kernel/KernelA.HH.HTML#l1354"><span class=cF4>DOCM_CANCEL</span></a><span class=cF0>
|
|
<a name="l1574"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_U64</span><span class=cF0> 11
|
|
<a name="l1575"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_F32</span><span class=cF0> 12 </span><span class=cF2>//Not implemented</span><span class=cF0>
|
|
<a name="l1576"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_UF32</span><span class=cF0> 13 </span><span class=cF2>//Not implemented, Fictitious</span><span class=cF0>
|
|
<a name="l1577"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_F64</span><span class=cF0> 14
|
|
<a name="l1578"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_UF64</span><span class=cF0> 15 </span><span class=cF2>//Fictitious</span><span class=cF0>
|
|
<a name="l1579"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RT_RTS_NUM</span><span class=cF0> 16
|
|
<a name="l1580"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RTF_UNSIGNED</span><span class=cF0> 1
|
|
<a name="l1581"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RTG_MASK</span><span class=cF0> 0xFF
|
|
<a name="l1582"></a>
|
|
<a name="l1583"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDf_STK</span><span class=cF0> 8
|
|
<a name="l1584"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDf_IMM</span><span class=cF0> 9
|
|
<a name="l1585"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDf_REG</span><span class=cF0> 10
|
|
<a name="l1586"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDf_DISP</span><span class=cF0> 11
|
|
<a name="l1587"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDf_SIB</span><span class=cF0> 12
|
|
<a name="l1588"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDf_RIP_DISP32</span><span class=cF0> 13
|
|
<a name="l1589"></a>
|
|
<a name="l1590"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_NULL</span><span class=cF0> 0x0000
|
|
<a name="l1591"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_STK</span><span class=cF0> 0x0100
|
|
<a name="l1592"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_IMM</span><span class=cF0> 0x0200
|
|
<a name="l1593"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_REG</span><span class=cF0> 0x0400
|
|
<a name="l1594"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_DISP</span><span class=cF0> 0x0800
|
|
<a name="l1595"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_SIB</span><span class=cF0> 0x1000
|
|
<a name="l1596"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDF_RIP_DISP32</span><span class=cF0> 0x2000
|
|
<a name="l1597"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDG_MASK</span><span class=cF0> 0xFF00
|
|
<a name="l1598"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDG_REG_DISP_SIB</span><span class=cF0> (</span><span class=cF3>MDF_REG</span><span class=cF0>|</span><span class=cF3>MDF_DISP</span><span class=cF0>|</span><span class=cF3>MDF_SIB</span><span class=cF0>)
|
|
<a name="l1599"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDG_DISP_SIB_RIP</span><span class=cF0> (</span><span class=cF3>MDF_DISP</span><span class=cF0>|</span><span class=cF3>MDF_SIB</span><span class=cF0>|</span><span class=cF3>MDF_RIP_DISP32</span><span class=cF0>)
|
|
<a name="l1600"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MDG_REG_DISP_SIB_RIP</span><span class=cF0> (</span><span class=cF3>MDF_REG</span><span class=cF0>|</span><span class=cF3>MDG_DISP_SIB_RIP</span><span class=cF0>)
|
|
<a name="l1601"></a>
|
|
<a name="l1602"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_RES_TO_F64</span><span class=cF0> 0x000000001
|
|
<a name="l1603"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_RES_TO_INT</span><span class=cF0> 0x000000002
|
|
<a name="l1604"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ARG1_TO_F64</span><span class=cF0> 0x000000004
|
|
<a name="l1605"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ARG1_TO_INT</span><span class=cF0> 0x000000008
|
|
<a name="l1606"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ARG2_TO_F64</span><span class=cF0> 0x000000010
|
|
<a name="l1607"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ARG2_TO_INT</span><span class=cF0> 0x000000020
|
|
<a name="l1608"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_USE_F64</span><span class=cF0> 0x000000040
|
|
<a name="l1609"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_USE_UNSIGNED</span><span class=cF0> 0x000000080
|
|
<a name="l1610"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_USE_INT</span><span class=cF0> 0x000000100 </span><span class=cF2>//highest priority</span><span class=cF0>
|
|
<a name="l1611"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_RES_NOT_USED</span><span class=cF0> 0x000000200
|
|
<a name="l1612"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_CODE_FINAL</span><span class=cF0> 0x000000400
|
|
<a name="l1613"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_BY_VAL</span><span class=cF0> 0x000000800 </span><span class=cF2>//By value, not ref.</span><span class=cF0>
|
|
<a name="l1614"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_SHORT_JMP</span><span class=cF0> 0x000001000
|
|
<a name="l1615"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_PUSH_RES</span><span class=cF0> 0x000002000
|
|
<a name="l1616"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_PASS_TRACE</span><span class=cF0> 0x000004000
|
|
<a name="l1617"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_RES_WAS_STK</span><span class=cF0> 0x000008000
|
|
<a name="l1618"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ARG1_WAS_STK</span><span class=cF0> 0x000010000
|
|
<a name="l1619"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ARG2_WAS_STK</span><span class=cF0> 0x000020000
|
|
<a name="l1620"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_PUSH_CMP</span><span class=cF0> 0x000040000 </span><span class=cF2>//for 50<i<j<=100 exps</span><span class=cF0>
|
|
<a name="l1621"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_POP_CMP</span><span class=cF0> 0x000080000 </span><span class=cF2>//for 50<i<j<=100 exps</span><span class=cF0>
|
|
<a name="l1622"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_SWAP</span><span class=cF0> 0x000100000
|
|
<a name="l1623"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICf_DONT_PUSH_FLOAT0</span><span class=cF0> 21 </span><span class=cF2>// 3bits</span><span class=cF0>
|
|
<a name="l1624"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICf_DONT_POP_FLOAT0</span><span class=cF0> 24 </span><span class=cF2>// 3bits</span><span class=cF0>
|
|
<a name="l1625"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_ALT_TEMPLATE</span><span class=cF0> 0x008000000
|
|
<a name="l1626"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_LOCK</span><span class=cF0> 0x010000000
|
|
<a name="l1627"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICf_LOCK</span><span class=cF0> 28
|
|
<a name="l1628"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_NO_RIP</span><span class=cF0> 0x020000000
|
|
<a name="l1629"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_DEL_PREV_INS</span><span class=cF0> 0x040000000
|
|
<a name="l1630"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_PREV_DELETED</span><span class=cF0> 0x080000000
|
|
<a name="l1631"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICF_DONT_RESTORE</span><span class=cF0> 0x100000000
|
|
<a name="l1632"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ICG_NO_CVT_MASK</span><span class=cF0> 0x1FFFFFF00
|
|
<a name="l1633"></a>
|
|
<a name="l1634"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IC_BODY_SIZE</span><span class=cF0> 0x83
|
|
<a name="l1635"></a>
|
|
<a name="l1636"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ECF_HAS_PUSH_CMP</span><span class=cF0> 0x01 </span><span class=cF2>//for 50<i<j<=100 exps</span><span class=cF0>
|
|
<a name="l1637"></a>
|
|
<a name="l1638"></a></span><span class=cF9>U16</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CICType</span><span class=cF0>
|
|
<a name="l1639"></a>{
|
|
<a name="l1640"></a> </span><span class=cF1>U8</span><span class=cF0> raw_type,mode;
|
|
<a name="l1641"></a>};
|
|
<a name="l1642"></a>
|
|
<a name="l1643"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CICArg</span><span class=cF0>
|
|
<a name="l1644"></a>{
|
|
<a name="l1645"></a> </span><span class=cF9>CICType</span><span class=cF0> type;
|
|
<a name="l1646"></a> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF1>reg</span><span class=cF0>; </span><span class=cF2>//low is reg, high is index_reg+scale<<6</span><span class=cF0>
|
|
<a name="l1647"></a> </span><span class=cF9>I64</span><span class=cF0> disp;
|
|
<a name="l1648"></a>};
|
|
<a name="l1649"></a>
|
|
<a name="l1650"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CICTreeLinks</span><span class=cF0>
|
|
<a name="l1651"></a>{
|
|
<a name="l1652"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *arg1_class,*arg2_class;
|
|
<a name="l1653"></a> </span><span class=cF9>CIntermediateCode</span><span class=cF0> *arg1_tree,*arg2_tree;
|
|
<a name="l1654"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *class2;
|
|
<a name="l1655"></a>};
|
|
<a name="l1656"></a>
|
|
<a name="l1657"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CIntermediateCodeBase</span><span class=cF0>
|
|
<a name="l1658"></a>{
|
|
<a name="l1659"></a> </span><span class=cF9>CIntermediateCode</span><span class=cF0> *next,*last;
|
|
<a name="l1660"></a> </span><span class=cF9>U16</span><span class=cF0> ic_code,
|
|
<a name="l1661"></a> ic_precedence;
|
|
<a name="l1662"></a> </span><span class=cF9>I16</span><span class=cF0> ic_cnt,
|
|
<a name="l1663"></a> ic_last_start;
|
|
<a name="l1664"></a>};
|
|
<a name="l1665"></a>
|
|
<a name="l1666"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CIntermediateCode</span><span class=cF0>:</span><span class=cF9>CIntermediateCodeBase</span><span class=cF0>
|
|
<a name="l1667"></a>{
|
|
<a name="l1668"></a> </span><span class=cF9>I64</span><span class=cF0> ic_flags,
|
|
<a name="l1669"></a> ic_data,
|
|
<a name="l1670"></a> ic_line;
|
|
<a name="l1671"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *ic_class,*ic_class2;
|
|
<a name="l1672"></a> </span><span class=cF9>CICArg</span><span class=cF0> arg1,arg2,res;
|
|
<a name="l1673"></a> </span><span class=cF1>U8</span><span class=cF0> arg1_type_pointed_to; </span><span class=cF2>//Used for </span><a href="/Wb/Compiler/CompilerA.HH.HTML#l10"><span class=cF4>IST_ASSIGN</span></a><span class=cF2> and </span><a href="/Wb/Compiler/CompilerA.HH.HTML#l9"><span class=cF4>IST_DEREF</span></a><span class=cF2> </span><a href="/Wb/Compiler/CInit.HC.HTML#l16"><span class=cF4>ic_codes</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l1674"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1675"></a> </span><span class=cF1>U8</span><span class=cF0> ic_body[</span><span class=cF3>IC_BODY_SIZE</span><span class=cF0>];
|
|
<a name="l1676"></a> </span><span class=cF2>//Tree Links are created in OptPass012. An ADD opcode, for example,</span><span class=cF0>
|
|
<a name="l1677"></a> </span><span class=cF2>//points back to its two earlier arg CIntermediateCode's.</span><span class=cF0>
|
|
<a name="l1678"></a>
|
|
<a name="l1679"></a> </span><span class=cF2>//Tree links get destroyed during Pass789A when they get overwrites</span><span class=cF0>
|
|
<a name="l1680"></a> </span><span class=cF2>//by machine code.</span><span class=cF0> </span><span class=cF2>(Saves room to union the output machine code buffer</span><span class=cF0>
|
|
<a name="l1681"></a> </span><span class=cF2>//with these links, since they are not needed after pass4.</span><span class=cF0>
|
|
<a name="l1682"></a>
|
|
<a name="l1683"></a> </span><span class=cF2>//Tree links are used during passes 012 and 3 for determining types.</span><span class=cF0>
|
|
<a name="l1684"></a> </span><span class=cF9>CICTreeLinks</span><span class=cF0> t;
|
|
<a name="l1685"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l1686"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l1687"></a>};
|
|
<a name="l1688"></a>
|
|
<a name="l1689"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CPrsStk</span><span class=cF0>
|
|
<a name="l1690"></a>{
|
|
<a name="l1691"></a> </span><span class=cF9>I64</span><span class=cF0> ptr,
|
|
<a name="l1692"></a> stk[255],
|
|
<a name="l1693"></a> ptr2,
|
|
<a name="l1694"></a> stk2[255];
|
|
<a name="l1695"></a>};
|
|
<a name="l1696"></a>
|
|
<a name="l1697"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_LABEL</span><span class=cF0> 0
|
|
<a name="l1698"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_ASM_LABEL</span><span class=cF0> 1
|
|
<a name="l1699"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_GOTO_LABEL</span><span class=cF0> 2
|
|
<a name="l1700"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_STR_CONST</span><span class=cF0> 3
|
|
<a name="l1701"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_JMP_TABLE</span><span class=cF0> 4
|
|
<a name="l1702"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_FLOAT_CONSTS</span><span class=cF0> 5
|
|
<a name="l1703"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_ARRAY_DIM</span><span class=cF0> 6
|
|
<a name="l1704"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMT_HASH_ENTRY</span><span class=cF0> 7
|
|
<a name="l1705"></a>
|
|
<a name="l1706"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMF_POP_CMP</span><span class=cF0> 0x01
|
|
<a name="l1707"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMF_DEFINED</span><span class=cF0> 0x02
|
|
<a name="l1708"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMF_I8_JMP_TABLE</span><span class=cF0> 0x04
|
|
<a name="l1709"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMF_U8_JMP_TABLE</span><span class=cF0> 0x08
|
|
<a name="l1710"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMF_I16_JMP_TABLE</span><span class=cF0> 0x10
|
|
<a name="l1711"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CMF_U16_JMP_TABLE</span><span class=cF0> 0x20
|
|
<a name="l1712"></a>
|
|
<a name="l1713"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CM_CONSTS_NUM</span><span class=cF0> 16
|
|
<a name="l1714"></a>
|
|
<a name="l1715"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCodeMisc</span><span class=cF0>
|
|
<a name="l1716"></a>{
|
|
<a name="l1717"></a> </span><span class=cF9>CCodeMisc</span><span class=cF0> *next,*last,*fwd,*dft,*begin;
|
|
<a name="l1718"></a> </span><span class=cF1>U8</span><span class=cF0> *str;
|
|
<a name="l1719"></a> </span><span class=cF9>U32</span><span class=cF0> type,flags;
|
|
<a name="l1720"></a> </span><span class=cF9>I64</span><span class=cF0> use_cnt;
|
|
<a name="l1721"></a> </span><span class=cF1>U8</span><span class=cF0> *addr;
|
|
<a name="l1722"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1723"></a> </span><span class=cF9>I64</span><span class=cF0> st_len; </span><span class=cF2>//STR_CONST</span><span class=cF0>
|
|
<a name="l1724"></a> </span><span class=cF9>I64</span><span class=cF0> num_consts; </span><span class=cF2>//FLOAT_CONSTS</span><span class=cF0>
|
|
<a name="l1725"></a> </span><span class=cF9>I64</span><span class=cF0> range;
|
|
<a name="l1726"></a> </span><span class=cF9>I64</span><span class=cF0> rip; </span><span class=cF2>//ASM_LABEL</span><span class=cF0>
|
|
<a name="l1727"></a> </span><span class=cF7>}</span><span class=cF0>
|
|
<a name="l1728"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l1729"></a> </span><span class=cF9>CCodeMisc</span><span class=cF0> **jmp_table;
|
|
<a name="l1730"></a> </span><span class=cF1>F64</span><span class=cF0> *float_consts;
|
|
<a name="l1731"></a> </span><span class=cF9>CArrayDim</span><span class=cF0> *dim;
|
|
<a name="l1732"></a> </span><span class=cF9>CHash</span><span class=cF0> *h;
|
|
<a name="l1733"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l1734"></a>};
|
|
<a name="l1735"></a>
|
|
<a name="l1736"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Assembler"</span><span class=cF0>
|
|
<a name="l1737"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_OP_SIZE16</span><span class=cF0> 0x001
|
|
<a name="l1738"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_OP_SIZE32</span><span class=cF0> 0x002
|
|
<a name="l1739"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_PLUS_OPCODE</span><span class=cF0> 0x004
|
|
<a name="l1740"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_DONT_SWITCH_MODES</span><span class=cF0> 0x008
|
|
<a name="l1741"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_DFT</span><span class=cF0> 0x010
|
|
<a name="l1742"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_NOT_IN_64_BIT</span><span class=cF0> 0x020
|
|
<a name="l1743"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_48_REX</span><span class=cF0> 0x040
|
|
<a name="l1744"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_REX_ONLY_R8_R15</span><span class=cF0> 0x080
|
|
<a name="l1745"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_REX_XOR_LIKE</span><span class=cF0> 0x100
|
|
<a name="l1746"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_STI_LIKE</span><span class=cF0> 0x200
|
|
<a name="l1747"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_ENDING_ZERO</span><span class=cF0> 0x400
|
|
<a name="l1748"></a>
|
|
<a name="l1749"></a></span><span class=cF2>//Slash value</span><span class=cF0>
|
|
<a name="l1750"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SV_R_REG</span><span class=cF0> 8
|
|
<a name="l1751"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SV_I_REG</span><span class=cF0> 9
|
|
<a name="l1752"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SV_STI_LIKE</span><span class=cF0> 10 </span><span class=cF2>//</span><a href="/Wb/Compiler/AsmInit.HC.HTML#l122"><span class=cF4>uasm_slash_val</span></a><span class=cF2> only.</span><span class=cF0>
|
|
<a name="l1753"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SV_NONE</span><span class=cF0> 11
|
|
<a name="l1754"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CInst</span><span class=cF0>
|
|
<a name="l1755"></a>{
|
|
<a name="l1756"></a> </span><span class=cF1>U8</span><span class=cF0> ins_entry_num, </span><span class=cF2>//This entry num in opcode hash entry</span><span class=cF0>
|
|
<a name="l1757"></a> opcode_cnt,
|
|
<a name="l1758"></a> opcode[4];
|
|
<a name="l1759"></a> </span><span class=cF9>U16</span><span class=cF0> flags;
|
|
<a name="l1760"></a> </span><span class=cF1>U8</span><span class=cF0> slash_val,uasm_slash_val,opcode_modifier,
|
|
<a name="l1761"></a> arg1,arg2,
|
|
<a name="l1762"></a> size1,size2,</span><span class=cF2>//Size in bits</span><span class=cF0>
|
|
<a name="l1763"></a> pad;
|
|
<a name="l1764"></a>};
|
|
<a name="l1765"></a>
|
|
<a name="l1766"></a></span><span class=cF2>//x86 opcodes</span><span class=cF0>
|
|
<a name="l1767"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_OP_SIZE_PREFIX</span><span class=cF0> 0x66
|
|
<a name="l1768"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_ADDR_SIZE_PREFIX</span><span class=cF0> 0x67
|
|
<a name="l1769"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_LOCK_PREFIX</span><span class=cF0> 0xF0
|
|
<a name="l1770"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_NOP</span><span class=cF0> 0x90
|
|
<a name="l1771"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_BPT</span><span class=cF0> 0xCC
|
|
<a name="l1772"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_CALL</span><span class=cF0> 0xE8
|
|
<a name="l1773"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_JMP_REL8</span><span class=cF0> 0xEB
|
|
<a name="l1774"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OC_NOP2</span><span class=cF0> (</span><span class=cF3>OC_NOP</span><span class=cF0><<8+</span><span class=cF3>OC_OP_SIZE_PREFIX</span><span class=cF0>)
|
|
<a name="l1775"></a>
|
|
<a name="l1776"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PUSH_C_REGS</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RCX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RDX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RBX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R8</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R9</span><span class=cF0>
|
|
<a name="l1777"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>POP_C_REGS</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R9</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R8</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RBX</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RDX</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RCX</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0>
|
|
<a name="l1778"></a>
|
|
<a name="l1779"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PUSH_REGS</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RCX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RDX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RBX</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RBP</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RSI</span><span class=cF0> \
|
|
<a name="l1780"></a></span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>RDI</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R8</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R9</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R10</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R11</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R12</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R13</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R14</span><span class=cF0> </span><span class=cF1>PUSH</span><span class=cF0> </span><span class=cFC>R15</span><span class=cF0>
|
|
<a name="l1781"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>POP_REGS</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R15</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R14</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R13</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R12</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R11</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R10</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R9</span><span class=cF0> \
|
|
<a name="l1782"></a></span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>R8</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RDI</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RSI</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RBP</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RBX</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RDX</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RCX</span><span class=cF0> </span><span class=cF1>POP</span><span class=cF0> </span><span class=cFC>RAX</span><span class=cF0>
|
|
<a name="l1783"></a>
|
|
<a name="l1784"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RAX</span><span class=cF0> 0
|
|
<a name="l1785"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RCX</span><span class=cF0> 1
|
|
<a name="l1786"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RDX</span><span class=cF0> 2
|
|
<a name="l1787"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RBX</span><span class=cF0> 3
|
|
<a name="l1788"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RSP</span><span class=cF0> 4
|
|
<a name="l1789"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RBP</span><span class=cF0> 5
|
|
<a name="l1790"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RSI</span><span class=cF0> 6
|
|
<a name="l1791"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RDI</span><span class=cF0> 7
|
|
<a name="l1792"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_R8</span><span class=cF0> 8
|
|
<a name="l1793"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_REGS_NUM</span><span class=cF0> 16
|
|
<a name="l1794"></a>
|
|
<a name="l1795"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_RIP</span><span class=cF0> 16 </span><span class=cF2>//Used by compiler, not really it's num</span><span class=cF0>
|
|
<a name="l1796"></a></span><span class=cF2>//Be careful: RBPu8, RSPu8, RSIu8, RDIu8 are 20-24</span><span class=cF0>
|
|
<a name="l1797"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_NONE</span><span class=cF0> 32 </span><span class=cF2>//noreg flag sets it to this</span><span class=cF0>
|
|
<a name="l1798"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_ALLOC</span><span class=cF0> 33 </span><span class=cF2>//reg flag sets it to this</span><span class=cF0>
|
|
<a name="l1799"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REG_UNDEF</span><span class=cF0> </span><span class=cF3>I8_MIN</span><span class=cF0>
|
|
<a name="l1800"></a>
|
|
<a name="l1801"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGG_CLOBBERED</span><span class=cF0> 0x013F </span><span class=cF2>//RAX,RCX,RDX,RBX,R8</span><span class=cF0>
|
|
<a name="l1802"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGG_SAVED</span><span class=cF0> 0x0030 </span><span class=cF2>//RBP,RSP</span><span class=cF0>
|
|
<a name="l1803"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGG_STK_TMP</span><span class=cF0> 0x0200 </span><span class=cF2>//R9</span><span class=cF0>
|
|
<a name="l1804"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGG_LOCAL_VARS</span><span class=cF0> 0xCCC0 </span><span class=cF2>//RSI,RDI,R10,R11,R14,R15</span><span class=cF0>
|
|
<a name="l1805"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>REGG_LOCAL_NON_PTR_VARS</span><span class=cF0> 0x3000 </span><span class=cF2>//R12,R13</span><span class=cF0>
|
|
<a name="l1806"></a>
|
|
<a name="l1807"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AOT_BIN_BLK_BITS</span><span class=cF0> 16
|
|
<a name="l1808"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AOT_BIN_BLK_SIZE</span><span class=cF0> (1<<</span><span class=cF3>AOT_BIN_BLK_BITS</span><span class=cF0>)
|
|
<a name="l1809"></a>
|
|
<a name="l1810"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTBinBlk</span><span class=cF0>
|
|
<a name="l1811"></a>{
|
|
<a name="l1812"></a> </span><span class=cF9>CAOTBinBlk</span><span class=cF0> *next;
|
|
<a name="l1813"></a> </span><span class=cF1>U8</span><span class=cF0> body[</span><span class=cF3>AOT_BIN_BLK_SIZE</span><span class=cF0>];
|
|
<a name="l1814"></a>};
|
|
<a name="l1815"></a>
|
|
<a name="l1816"></a></span><span class=cF9>I64</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAbsCntsI64</span><span class=cF0>
|
|
<a name="l1817"></a>{
|
|
<a name="l1818"></a> </span><span class=cF9>U16</span><span class=cF0> abs_addres, </span><span class=cF2>//Only odd/even matters. Cnt of absolute addres in an exp.</span><span class=cF0>
|
|
<a name="l1819"></a> c_addres; </span><span class=cF2>//Only odd/even matters. Cnt of C addres in an exp.</span><span class=cF0>
|
|
<a name="l1820"></a> </span><span class=cF9>U32</span><span class=cF0> externs; </span><span class=cF2>//Only nonzero matters. Some regions have externs banned.</span><span class=cF0>
|
|
<a name="l1821"></a>};
|
|
<a name="l1822"></a>
|
|
<a name="l1823"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAsmUndefHash</span><span class=cF0>
|
|
<a name="l1824"></a>{</span><span class=cF2>//Only place created is </span><a href="/Wb/Compiler/PrsExp.HC.HTML#l840"><span class=cF4>Exp Parser</span></a><span class=cF2> when an undef is found in an ASM exp.</span><span class=cF0>
|
|
<a name="l1825"></a> </span><span class=cF9>CAsmUndefHash</span><span class=cF0> *next;
|
|
<a name="l1826"></a> </span><span class=cF9>CHashExport</span><span class=cF0> *hash;
|
|
<a name="l1827"></a>};
|
|
<a name="l1828"></a>
|
|
<a name="l1829"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAsmNum</span><span class=cF0>
|
|
<a name="l1830"></a>{
|
|
<a name="l1831"></a> </span><span class=cF9>I64</span><span class=cF0> i;
|
|
<a name="l1832"></a> </span><span class=cF1>U8</span><span class=cF0> *machine_code;
|
|
<a name="l1833"></a> </span><span class=cF9>CAsmUndefHash</span><span class=cF0> *local_asm_undef_hash,*glbl_asm_undef_hash;
|
|
<a name="l1834"></a> </span><span class=cF9>CAbsCntsI64</span><span class=cF0> abs_cnts;
|
|
<a name="l1835"></a>};
|
|
<a name="l1836"></a>
|
|
<a name="l1837"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAsmNum2</span><span class=cF0>
|
|
<a name="l1838"></a>{
|
|
<a name="l1839"></a> </span><span class=cF9>CAsmNum</span><span class=cF0> num;
|
|
<a name="l1840"></a> </span><span class=cF9>I64</span><span class=cF0> U8_cnt,rel;
|
|
<a name="l1841"></a> </span><span class=cF1>Bool</span><span class=cF0> imm_flag;
|
|
<a name="l1842"></a>};
|
|
<a name="l1843"></a>
|
|
<a name="l1844"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAsmIns</span><span class=cF0>
|
|
<a name="l1845"></a>{
|
|
<a name="l1846"></a> </span><span class=cF9>CInst</span><span class=cF0> *tmpins;
|
|
<a name="l1847"></a> </span><span class=cF9>CAsmNum2</span><span class=cF0> imm,disp;
|
|
<a name="l1848"></a> </span><span class=cF9>I64</span><span class=cF0> U8_cnt,last_opcode_U8,
|
|
<a name="l1849"></a> </span><span class=cF1>REX</span><span class=cF0>,ModrM,SIB;
|
|
<a name="l1850"></a> </span><span class=cF1>Bool</span><span class=cF0> has_REX,has_ModrM,has_SIB,
|
|
<a name="l1851"></a> has_addr_prefix,
|
|
<a name="l1852"></a> has_operand_prefix,
|
|
<a name="l1853"></a> is_dft,pad[2];
|
|
<a name="l1854"></a>};
|
|
<a name="l1855"></a>
|
|
<a name="l1856"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAsmArg</span><span class=cF0>
|
|
<a name="l1857"></a>{
|
|
<a name="l1858"></a> </span><span class=cF9>CAsmNum</span><span class=cF0> num;
|
|
<a name="l1859"></a> </span><span class=cF9>I64</span><span class=cF0> seg,size, </span><span class=cF2>//Size in bytes</span><span class=cF0>
|
|
<a name="l1860"></a> reg1,reg2,
|
|
<a name="l1861"></a> reg1_type,reg2_type,
|
|
<a name="l1862"></a> scale;
|
|
<a name="l1863"></a> </span><span class=cF1>Bool</span><span class=cF0> indirect,imm_or_off_present,just_seg,pad[5];
|
|
<a name="l1864"></a>};
|
|
<a name="l1865"></a>
|
|
<a name="l1866"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAsmUnresolvedRef</span><span class=cF0>
|
|
<a name="l1867"></a>{
|
|
<a name="l1868"></a> </span><span class=cF9>CAsmUnresolvedRef</span><span class=cF0> *next;
|
|
<a name="l1869"></a> </span><span class=cF9>I64</span><span class=cF0> type,line_num;
|
|
<a name="l1870"></a> </span><span class=cF1>U8</span><span class=cF0> *machine_code;
|
|
<a name="l1871"></a> </span><span class=cF9>I64</span><span class=cF0> rip,rel_rip;
|
|
<a name="l1872"></a> </span><span class=cF9>CAOT</span><span class=cF0> *aot;
|
|
<a name="l1873"></a> </span><span class=cF1>U8</span><span class=cF0> *str; </span><span class=cF2>//Only for import glbls</span><span class=cF0>
|
|
<a name="l1874"></a> </span><span class=cF9>CAsmUndefHash</span><span class=cF0> *asm_undef_hash;
|
|
<a name="l1875"></a> </span><span class=cF1>Bool</span><span class=cF0> U8_avail,
|
|
<a name="l1876"></a> imm_flag;</span><span class=cF2>//Only for import glbls</span><span class=cF0>
|
|
<a name="l1877"></a>};
|
|
<a name="l1878"></a>
|
|
<a name="l1879"></a></span><span class=cF2>//Opcode Modifier</span><span class=cF0>
|
|
<a name="l1880"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_NO</span><span class=cF0> 0
|
|
<a name="l1881"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_CB</span><span class=cF0> 1
|
|
<a name="l1882"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_CW</span><span class=cF0> 2
|
|
<a name="l1883"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_CD</span><span class=cF0> 3
|
|
<a name="l1884"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_CP</span><span class=cF0> 4
|
|
<a name="l1885"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_IB</span><span class=cF0> 5
|
|
<a name="l1886"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_IW</span><span class=cF0> 6
|
|
<a name="l1887"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OM_ID</span><span class=cF0> 7
|
|
<a name="l1888"></a>
|
|
<a name="l1889"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_NONE</span><span class=cF0> 0
|
|
<a name="l1890"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_REL8</span><span class=cF0> 1
|
|
<a name="l1891"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_REL16</span><span class=cF0> 2
|
|
<a name="l1892"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_REL32</span><span class=cF0> 3
|
|
<a name="l1893"></a>
|
|
<a name="l1894"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_IMM8</span><span class=cF0> 4
|
|
<a name="l1895"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_IMM16</span><span class=cF0> 5
|
|
<a name="l1896"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_IMM32</span><span class=cF0> 6
|
|
<a name="l1897"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_IMM64</span><span class=cF0> 7
|
|
<a name="l1898"></a>
|
|
<a name="l1899"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_UIMM8</span><span class=cF0> 8
|
|
<a name="l1900"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_UIMM16</span><span class=cF0> 9
|
|
<a name="l1901"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_UIMM32</span><span class=cF0> 10
|
|
<a name="l1902"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_UIMM64</span><span class=cF0> 11
|
|
<a name="l1903"></a>
|
|
<a name="l1904"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_R8</span><span class=cF0> 12
|
|
<a name="l1905"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_R16</span><span class=cF0> 13
|
|
<a name="l1906"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_R32</span><span class=cF0> 14
|
|
<a name="l1907"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_R64</span><span class=cF0> 15
|
|
<a name="l1908"></a>
|
|
<a name="l1909"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_RM8</span><span class=cF0> 16
|
|
<a name="l1910"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_RM16</span><span class=cF0> 17
|
|
<a name="l1911"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_RM32</span><span class=cF0> 18
|
|
<a name="l1912"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_RM64</span><span class=cF0> 19
|
|
<a name="l1913"></a>
|
|
<a name="l1914"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M8</span><span class=cF0> 20
|
|
<a name="l1915"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M16</span><span class=cF0> 21
|
|
<a name="l1916"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M32</span><span class=cF0> 22
|
|
<a name="l1917"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M64</span><span class=cF0> 23
|
|
<a name="l1918"></a>
|
|
<a name="l1919"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M1632</span><span class=cF0> 24 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1920"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M16N32</span><span class=cF0> 25 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1921"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M16N16</span><span class=cF0> 26 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1922"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_M32N32</span><span class=cF0> 27 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1923"></a>
|
|
<a name="l1924"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MOFFS8</span><span class=cF0> 28
|
|
<a name="l1925"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MOFFS16</span><span class=cF0> 29
|
|
<a name="l1926"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MOFFS32</span><span class=cF0> 30
|
|
<a name="l1927"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MOFFS64</span><span class=cF0> 31
|
|
<a name="l1928"></a>
|
|
<a name="l1929"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_AL</span><span class=cF0> 32
|
|
<a name="l1930"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_AX</span><span class=cF0> 33
|
|
<a name="l1931"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_EAX</span><span class=cF0> 34
|
|
<a name="l1932"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_RAX</span><span class=cF0> 35
|
|
<a name="l1933"></a>
|
|
<a name="l1934"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_CL</span><span class=cF0> 36
|
|
<a name="l1935"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_DX</span><span class=cF0> 37
|
|
<a name="l1936"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_SREG</span><span class=cF0> 39
|
|
<a name="l1937"></a>
|
|
<a name="l1938"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_SS</span><span class=cF0> 40
|
|
<a name="l1939"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_DS</span><span class=cF0> 41
|
|
<a name="l1940"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_ES</span><span class=cF0> 42
|
|
<a name="l1941"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_FS</span><span class=cF0> 43
|
|
<a name="l1942"></a>
|
|
<a name="l1943"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_GS</span><span class=cF0> 44
|
|
<a name="l1944"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_CS</span><span class=cF0> 45
|
|
<a name="l1945"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_ST0</span><span class=cF0> 46
|
|
<a name="l1946"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_STI</span><span class=cF0> 47
|
|
<a name="l1947"></a>
|
|
<a name="l1948"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MM</span><span class=cF0> 48 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1949"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MM32</span><span class=cF0> 49 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1950"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_MM64</span><span class=cF0> 50 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1951"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_XMM</span><span class=cF0> 51 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1952"></a>
|
|
<a name="l1953"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_XMM32</span><span class=cF0> 52 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1954"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_XMM64</span><span class=cF0> 53 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1955"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_XMM128</span><span class=cF0> 54 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1956"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARGT_XMM0</span><span class=cF0> 55 </span><span class=cF2>// Not implemented</span><span class=cF0>
|
|
<a name="l1957"></a>
|
|
<a name="l1958"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Internal;Hash/System"</span><span class=cF0>
|
|
<a name="l1959"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OCF_ALIAS</span><span class=cF0> 1
|
|
<a name="l1960"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHashOpcode</span><span class=cF0>:</span><span class=cF9>CHash</span><span class=cF0>
|
|
<a name="l1961"></a>{
|
|
<a name="l1962"></a> </span><span class=cF9>U16</span><span class=cF0> inst_entry_cnt,
|
|
<a name="l1963"></a> oc_flags,pad[2];
|
|
<a name="l1964"></a> </span><span class=cF9>CInst</span><span class=cF0> ins[1];
|
|
<a name="l1965"></a>};
|
|
<a name="l1966"></a>
|
|
<a name="l1967"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Intermediate Code"</span><span class=cF0>
|
|
<a name="l1968"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>IEF_GOTO_LABEL</span><span class=cF0> 1
|
|
<a name="l1969"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTImportExport</span><span class=cF0>
|
|
<a name="l1970"></a>{
|
|
<a name="l1971"></a> </span><span class=cF9>CAOTImportExport</span><span class=cF0> *next,*last;
|
|
<a name="l1972"></a> </span><span class=cF9>I64</span><span class=cF0> rip,flags;
|
|
<a name="l1973"></a> </span><span class=cF9>CAOT</span><span class=cF0> *aot;
|
|
<a name="l1974"></a> </span><span class=cF1>U8</span><span class=cF0> *str,
|
|
<a name="l1975"></a> *src_link,
|
|
<a name="l1976"></a> type,pad[7];
|
|
<a name="l1977"></a>};
|
|
<a name="l1978"></a>
|
|
<a name="l1979"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_ADD_U8</span><span class=cF0> 0
|
|
<a name="l1980"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_SUB_U8</span><span class=cF0> 1
|
|
<a name="l1981"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_ADD_U16</span><span class=cF0> 2
|
|
<a name="l1982"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_SUB_U16</span><span class=cF0> 3
|
|
<a name="l1983"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_ADD_U32</span><span class=cF0> 4
|
|
<a name="l1984"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_SUB_U32</span><span class=cF0> 5
|
|
<a name="l1985"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_ADD_U64</span><span class=cF0> 6
|
|
<a name="l1986"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>AAT_SUB_U64</span><span class=cF0> 7
|
|
<a name="l1987"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTAbsAddr</span><span class=cF0>
|
|
<a name="l1988"></a>{
|
|
<a name="l1989"></a> </span><span class=cF9>CAOTAbsAddr</span><span class=cF0> *next;
|
|
<a name="l1990"></a> </span><span class=cF9>I64</span><span class=cF0> rip;
|
|
<a name="l1991"></a> </span><span class=cF1>U8</span><span class=cF0> type,pad[7];
|
|
<a name="l1992"></a>};
|
|
<a name="l1993"></a>
|
|
<a name="l1994"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTHeapGlblRef</span><span class=cF0>
|
|
<a name="l1995"></a>{
|
|
<a name="l1996"></a> </span><span class=cF9>CAOTHeapGlblRef</span><span class=cF0> *next;
|
|
<a name="l1997"></a> </span><span class=cF9>I64</span><span class=cF0> rip;
|
|
<a name="l1998"></a>};
|
|
<a name="l1999"></a>
|
|
<a name="l2000"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTHeapGlbl</span><span class=cF0>
|
|
<a name="l2001"></a>{
|
|
<a name="l2002"></a> </span><span class=cF9>CAOTHeapGlbl</span><span class=cF0> *next;
|
|
<a name="l2003"></a> </span><span class=cF1>U8</span><span class=cF0> *str;
|
|
<a name="l2004"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
|
<a name="l2005"></a> </span><span class=cF9>CAOTHeapGlblRef</span><span class=cF0> *references;
|
|
<a name="l2006"></a>};
|
|
<a name="l2007"></a>
|
|
<a name="l2008"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOT</span><span class=cF0>
|
|
<a name="l2009"></a>{
|
|
<a name="l2010"></a> </span><span class=cF9>CAOT</span><span class=cF0> *next,*last;
|
|
<a name="l2011"></a> </span><span class=cF1>U8</span><span class=cF0> *buf;
|
|
<a name="l2012"></a> </span><span class=cF9>I64</span><span class=cF0> rip,rip2,
|
|
<a name="l2013"></a> aot_U8s,
|
|
<a name="l2014"></a> max_align_bits,org;
|
|
<a name="l2015"></a> </span><span class=cF9>CAOT</span><span class=cF0> *parent_aot;
|
|
<a name="l2016"></a> </span><span class=cF9>CAOTImportExport</span><span class=cF0> *next_ie,*last_ie;
|
|
<a name="l2017"></a> </span><span class=cF9>CAOTAbsAddr</span><span class=cF0> *abss;
|
|
<a name="l2018"></a> </span><span class=cF9>CAOTHeapGlbl</span><span class=cF0> *heap_glbls;
|
|
<a name="l2019"></a>};
|
|
<a name="l2020"></a>
|
|
<a name="l2021"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CStreamBlk</span><span class=cF0>
|
|
<a name="l2022"></a>{
|
|
<a name="l2023"></a> </span><span class=cF9>CStreamBlk</span><span class=cF0> *next,*last;
|
|
<a name="l2024"></a> </span><span class=cF1>U8</span><span class=cF0> *body;
|
|
<a name="l2025"></a>};
|
|
<a name="l2026"></a>
|
|
<a name="l2027"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCodeCtrl</span><span class=cF0>
|
|
<a name="l2028"></a>{
|
|
<a name="l2029"></a> </span><span class=cF9>CCodeCtrl</span><span class=cF0> *coc_next;
|
|
<a name="l2030"></a> </span><span class=cF9>CCodeMisc</span><span class=cF0> *coc_next_misc,*coc_last_misc;
|
|
<a name="l2031"></a> </span><span class=cF9>CIntermediateCodeBase</span><span class=cF0> coc_head;
|
|
<a name="l2032"></a>};
|
|
<a name="l2033"></a>
|
|
<a name="l2034"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler/Lex"</span><span class=cF0>
|
|
<a name="l2035"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>__DATE__</span><span class=cF0> #</span><span class=cF1>exe</span><span class=cF0>{</span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"\"%D\""</span><span class=cF0>,</span><span class=cF5>Now</span><span class=cF0>);}
|
|
<a name="l2036"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>__TIME__</span><span class=cF0> #</span><span class=cF1>exe</span><span class=cF0>{</span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"\"%T\""</span><span class=cF0>,</span><span class=cF5>Now</span><span class=cF0>);}
|
|
<a name="l2037"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>__LINE__</span><span class=cF0> #</span><span class=cF1>exe</span><span class=cF0>{</span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"%d"</span><span class=cF0>,\
|
|
<a name="l2038"></a> </span><span class=cF5>Fs</span><span class=cF0>->last_cc->lex_include_stk->line_num);}
|
|
<a name="l2039"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>__CMD_LINE__</span><span class=cF0> #</span><span class=cF1>exe</span><span class=cF0>{</span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"%d"</span><span class=cF0>,</span><span class=cF5>Fs</span><span class=cF0>->last_cc->flags&</span><span class=cF3>CCF_CMD_LINE</span><span class=cF0> &&\
|
|
<a name="l2040"></a> </span><span class=cF5>Fs</span><span class=cF0>->last_cc->lex_include_stk->depth<1);}
|
|
<a name="l2041"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>__FILE__</span><span class=cF0> #</span><span class=cF1>exe</span><span class=cF0>{</span><span class=cF5>StreamPrint</span><span class=cF0>(</span><span class=cF6>"\"%s\""</span><span class=cF0>,\
|
|
<a name="l2042"></a> </span><span class=cF5>Fs</span><span class=cF0>->last_cc->lex_include_stk->full_name);}
|
|
<a name="l2043"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>__DIR__</span><span class=cF0> #</span><span class=cF1>exe</span><span class=cF0>{</span><span class=cF5>StreamDir</span><span class=cF0>;}
|
|
<a name="l2044"></a>
|
|
<a name="l2045"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LFSF_DOC</span><span class=cF0> 1
|
|
<a name="l2046"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LFSF_DEFINE</span><span class=cF0> 2
|
|
<a name="l2047"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CLexFile</span><span class=cF0>
|
|
<a name="l2048"></a>{
|
|
<a name="l2049"></a> </span><span class=cF9>CLexFile</span><span class=cF0> *next;
|
|
<a name="l2050"></a> </span><span class=cF1>U8</span><span class=cF0> *buf,
|
|
<a name="l2051"></a> *buf_ptr;
|
|
<a name="l2052"></a> </span><span class=cF9>I64</span><span class=cF0> line_num,flags;
|
|
<a name="l2053"></a> </span><span class=cF1>U8</span><span class=cF0> *full_name,
|
|
<a name="l2054"></a> *line_start;
|
|
<a name="l2055"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc;
|
|
<a name="l2056"></a> </span><span class=cF9>CDocEntry</span><span class=cF0> *cur_entry;
|
|
<a name="l2057"></a> </span><span class=cF9>I32</span><span class=cF0> depth;
|
|
<a name="l2058"></a> </span><span class=cF1>U8</span><span class=cF0> last_U16,pad[3];
|
|
<a name="l2059"></a>};
|
|
<a name="l2060"></a>
|
|
<a name="l2061"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAOTCtrl</span><span class=cF0>
|
|
<a name="l2062"></a>{
|
|
<a name="l2063"></a> </span><span class=cF9>I64</span><span class=cF0> rip; </span><span class=cF2>//Inst ptr</span><span class=cF0>
|
|
<a name="l2064"></a> </span><span class=cF9>CAsmArg</span><span class=cF0> arg1,arg2;
|
|
<a name="l2065"></a> </span><span class=cF9>CAOTBinBlk</span><span class=cF0> *bin;
|
|
<a name="l2066"></a> </span><span class=cF9>I64</span><span class=cF0> num_bin_U8s,
|
|
<a name="l2067"></a> max_align_bits,org;
|
|
<a name="l2068"></a> </span><span class=cF9>CAsmUnresolvedRef</span><span class=cF0> *local_unresolved,*glbl_unresolved;
|
|
<a name="l2069"></a> </span><span class=cF9>CAOTAbsAddr</span><span class=cF0> *abss;
|
|
<a name="l2070"></a> </span><span class=cF9>CAOTHeapGlbl</span><span class=cF0> *heap_glbls;
|
|
<a name="l2071"></a> </span><span class=cF9>I64</span><span class=cF0> lst_col,lst_last_rip;
|
|
<a name="l2072"></a> </span><span class=cF1>U8</span><span class=cF0> *last_label,*lst_last_line;
|
|
<a name="l2073"></a> </span><span class=cF9>CLexFile</span><span class=cF0> *lst_last_lfn;
|
|
<a name="l2074"></a> </span><span class=cF9>I64</span><span class=cF0> seg_size;
|
|
<a name="l2075"></a> </span><span class=cF1>Bool</span><span class=cF0> lst;
|
|
<a name="l2076"></a>};
|
|
<a name="l2077"></a>
|
|
<a name="l2078"></a></span><span class=cF2>//Tokens</span><span class=cF0>
|
|
<a name="l2079"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_EOF</span><span class=cF0> 0
|
|
<a name="l2080"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SUPERSCRIPT</span><span class=cF0> 0x001
|
|
<a name="l2081"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SUBSCRIPT</span><span class=cF0> 0x002
|
|
<a name="l2082"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_NORMALSCRIPT</span><span class=cF0> 0x003
|
|
<a name="l2083"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_IDENT</span><span class=cF0> 0x100
|
|
<a name="l2084"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_STR</span><span class=cF0> 0x101
|
|
<a name="l2085"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_I64</span><span class=cF0> 0x102
|
|
<a name="l2086"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_CHAR_CONST</span><span class=cF0> 0x103
|
|
<a name="l2087"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_F64</span><span class=cF0> 0x104
|
|
<a name="l2088"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_PLUS_PLUS</span><span class=cF0> 0x105
|
|
<a name="l2089"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_MINUS_MINUS</span><span class=cF0> 0x106
|
|
<a name="l2090"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_DEREFERENCE</span><span class=cF0> 0x107
|
|
<a name="l2091"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_DBL_COLON</span><span class=cF0> 0x108
|
|
<a name="l2092"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SHL</span><span class=cF0> 0x109
|
|
<a name="l2093"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SHR</span><span class=cF0> 0x10A
|
|
<a name="l2094"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_EQU_EQU</span><span class=cF0> 0x10B
|
|
<a name="l2095"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_NOT_EQU</span><span class=cF0> 0x10C
|
|
<a name="l2096"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_LESS_EQU</span><span class=cF0> 0x10D
|
|
<a name="l2097"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_GREATER_EQU</span><span class=cF0> 0x10E
|
|
<a name="l2098"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_AND_AND</span><span class=cF0> 0x10F
|
|
<a name="l2099"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_OR_OR</span><span class=cF0> 0x110
|
|
<a name="l2100"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_XOR_XOR</span><span class=cF0> 0x111
|
|
<a name="l2101"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SHL_EQU</span><span class=cF0> 0x112
|
|
<a name="l2102"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SHR_EQU</span><span class=cF0> 0x113
|
|
<a name="l2103"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_MUL_EQU</span><span class=cF0> 0x114
|
|
<a name="l2104"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_DIV_EQU</span><span class=cF0> 0x115
|
|
<a name="l2105"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_AND_EQU</span><span class=cF0> 0x116
|
|
<a name="l2106"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_OR_EQU</span><span class=cF0> 0x117
|
|
<a name="l2107"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_XOR_EQU</span><span class=cF0> 0x118
|
|
<a name="l2108"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_ADD_EQU</span><span class=cF0> 0x119
|
|
<a name="l2109"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_SUB_EQU</span><span class=cF0> 0x11A
|
|
<a name="l2110"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_IF</span><span class=cF0> 0x11B
|
|
<a name="l2111"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_IFDEF</span><span class=cF0> 0x11C
|
|
<a name="l2112"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_IFNDEF</span><span class=cF0> 0x11D
|
|
<a name="l2113"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_IFAOT</span><span class=cF0> 0x11E
|
|
<a name="l2114"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_IFJIT</span><span class=cF0> 0x11F
|
|
<a name="l2115"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_ENDIF</span><span class=cF0> 0x120
|
|
<a name="l2116"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_ELSE</span><span class=cF0> 0x121
|
|
<a name="l2117"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_MOD_EQU</span><span class=cF0> 0x122
|
|
<a name="l2118"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_DOT_DOT</span><span class=cF0> 0x123
|
|
<a name="l2119"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_ELLIPSIS</span><span class=cF0> 0x124
|
|
<a name="l2120"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_INS_BIN</span><span class=cF0> 0x125
|
|
<a name="l2121"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_INS_BIN_SIZE</span><span class=cF0> 0x126
|
|
<a name="l2122"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TK_TKS_NUM</span><span class=cF0> 0x127
|
|
<a name="l2123"></a>
|
|
<a name="l2124"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CLexHashTableContext</span><span class=cF0>
|
|
<a name="l2125"></a>{
|
|
<a name="l2126"></a> </span><span class=cF9>CLexHashTableContext</span><span class=cF0> *next;
|
|
<a name="l2127"></a> </span><span class=cF9>I64</span><span class=cF0> old_flags,hash_mask;
|
|
<a name="l2128"></a> </span><span class=cF9>CHashFun</span><span class=cF0> *local_var_lst,
|
|
<a name="l2129"></a> *fun;
|
|
<a name="l2130"></a> </span><span class=cF9>CHashTable</span><span class=cF0> *hash_table_lst,
|
|
<a name="l2131"></a> *define_hash_table,
|
|
<a name="l2132"></a> *local_hash_table,
|
|
<a name="l2133"></a> *glbl_hash_table;
|
|
<a name="l2134"></a>};
|
|
<a name="l2135"></a>
|
|
<a name="l2136"></a></span><span class=cF2>//CmpCtrl flags</span><span class=cF0>
|
|
<a name="l2137"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_CMD_LINE</span><span class=cF0> 0x001
|
|
<a name="l2138"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_PMT</span><span class=cF0> 0x002
|
|
<a name="l2139"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCf_PMT</span><span class=cF0> 1
|
|
<a name="l2140"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_QUESTION_HELP</span><span class=cF0> 0x004
|
|
<a name="l2141"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_DONT_FREE_BUF</span><span class=cF0> 0x008
|
|
<a name="l2142"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_NO_DEFINES</span><span class=cF0> 0x010
|
|
<a name="l2143"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_IN_IF</span><span class=cF0> 0x020
|
|
<a name="l2144"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_JUST_LOAD</span><span class=cF0> 0x040
|
|
<a name="l2145"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_KEEP_NEW_LINES</span><span class=cF0> 0x080
|
|
<a name="l2146"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_KEEP_DOT</span><span class=cF0> 0x100
|
|
<a name="l2147"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_KEEP_SIGN_NUM</span><span class=cF0> 0x200
|
|
<a name="l2148"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_KEEP_AT_SIGN</span><span class=cF0> 0x400
|
|
<a name="l2149"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_NO_CHAR_CONST</span><span class=cF0> 0x800
|
|
<a name="l2150"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCf_PASS_TRACE_PRESENT</span><span class=cF0> 12
|
|
<a name="l2151"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_NOT_CONST</span><span class=cF0> 0x0000020000
|
|
<a name="l2152"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_NO_REG_OPT</span><span class=cF0> 0x0000040000
|
|
<a name="l2153"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_IN_QUOTES</span><span class=cF0> 0x0000080000
|
|
<a name="l2154"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_EXE_BLK</span><span class=cF0> 0x0000100000
|
|
<a name="l2155"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_HAS_MISC_DATA</span><span class=cF0> 0x0000200000
|
|
<a name="l2156"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_HAS_RETURN</span><span class=cF0> 0x0000400000
|
|
<a name="l2157"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_ASM_EXPRESSIONS</span><span class=cF0> 0x0000800000
|
|
<a name="l2158"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_UNRESOLVED</span><span class=cF0> 0x0001000000
|
|
<a name="l2159"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_LOCAL</span><span class=cF0> 0x0002000000
|
|
<a name="l2160"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_FUN_EXP</span><span class=cF0> 0x0004000000
|
|
<a name="l2161"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCf_FUN_EXP</span><span class=cF0> 26
|
|
<a name="l2162"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_POSTINC</span><span class=cF0> 0x0008000000
|
|
<a name="l2163"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_POSTDEC</span><span class=cF0> 0x0010000000
|
|
<a name="l2164"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_PREINC</span><span class=cF0> 0x0020000000
|
|
<a name="l2165"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_PREDEC</span><span class=cF0> 0x0040000000
|
|
<a name="l2166"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_ARRAY</span><span class=cF0> 0x0080000000
|
|
<a name="l2167"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_RAX</span><span class=cF0> 0x0100000000
|
|
<a name="l2168"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_USE_LAST_U16</span><span class=cF0> 0x0200000000
|
|
<a name="l2169"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCf_USE_LAST_U16</span><span class=cF0> 33
|
|
<a name="l2170"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_LAST_WAS_DOT</span><span class=cF0> 0x0400000000
|
|
<a name="l2171"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_AOT_COMPILE</span><span class=cF0> 0x0800000000
|
|
<a name="l2172"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCf_AOT_COMPILE</span><span class=cF0> 35
|
|
<a name="l2173"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_NO_ABSS</span><span class=cF0> 0x1000000000
|
|
<a name="l2174"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_PAREN</span><span class=cF0> 0x2000000000
|
|
<a name="l2175"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCf_PAREN</span><span class=cF0> 37
|
|
<a name="l2176"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_CLASS_DOL_OFFSET</span><span class=cF0> 0x4000000000
|
|
<a name="l2177"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CCF_DONT_MAKE_RES</span><span class=cF0> 0x8000000000
|
|
<a name="l2178"></a>
|
|
<a name="l2179"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCmpCtrl</span><span class=cF0>
|
|
<a name="l2180"></a>{
|
|
<a name="l2181"></a> </span><span class=cF9>CCmpCtrl</span><span class=cF0> *next,*last;
|
|
<a name="l2182"></a> </span><span class=cF9>I64</span><span class=cF0> token,
|
|
<a name="l2183"></a> flags,
|
|
<a name="l2184"></a> cur_i64;
|
|
<a name="l2185"></a> </span><span class=cF1>F64</span><span class=cF0> cur_f64;
|
|
<a name="l2186"></a> </span><span class=cF1>U8</span><span class=cF0> *cur_str;
|
|
<a name="l2187"></a> </span><span class=cF9>I64</span><span class=cF0> cur_str_len,
|
|
<a name="l2188"></a> class_dol_offset;
|
|
<a name="l2189"></a> </span><span class=cF1>U8</span><span class=cF0> *dollar_buf;
|
|
<a name="l2190"></a> </span><span class=cF9>I64</span><span class=cF0> dollar_cnt;
|
|
<a name="l2191"></a> </span><span class=cF1>U8</span><span class=cF0> *cur_help_idx;
|
|
<a name="l2192"></a> </span><span class=cF9>I64</span><span class=cF0> last_U16,
|
|
<a name="l2193"></a> min_line,max_line,last_line_num,
|
|
<a name="l2194"></a> lock_cnt;
|
|
<a name="l2195"></a> </span><span class=cF9>U32</span><span class=cF0> *</span><span class=cFB>char_bmp_alpha_numeric</span><span class=cF0>;
|
|
<a name="l2196"></a> </span><span class=cF9>CLexHashTableContext</span><span class=cF0> htc;
|
|
<a name="l2197"></a> </span><span class=cF9>CHashGeneric</span><span class=cF0> *hash_entry;
|
|
<a name="l2198"></a> </span><span class=cF9>CAbsCntsI64</span><span class=cF0> abs_cnts;
|
|
<a name="l2199"></a> </span><span class=cF9>CAsmUndefHash</span><span class=cF0> *asm_undef_hash;
|
|
<a name="l2200"></a> </span><span class=cF9>CMemberLst</span><span class=cF0> *local_var_entry;
|
|
<a name="l2201"></a> </span><span class=cF9>CCodeMisc</span><span class=cF0> *lb_leave;
|
|
<a name="l2202"></a> </span><span class=cF1>U8</span><span class=cF0> *cur_buf_ptr;
|
|
<a name="l2203"></a> </span><span class=cF9>CLexFile</span><span class=cF0> *lex_include_stk,
|
|
<a name="l2204"></a> *lex_prs_stk,
|
|
<a name="l2205"></a> *fun_lex_file;
|
|
<a name="l2206"></a> </span><span class=cF9>CStreamBlk</span><span class=cF0> *next_stream_blk,*last_stream_blk;
|
|
<a name="l2207"></a> </span><span class=cF9>CAOT</span><span class=cF0> *aot;
|
|
<a name="l2208"></a>
|
|
<a name="l2209"></a> </span><span class=cF9>I64</span><span class=cF0> pass,opts,pass_trace,saved_pass_trace,
|
|
<a name="l2210"></a> error_cnt,warning_cnt;
|
|
<a name="l2211"></a>
|
|
<a name="l2212"></a> </span><span class=cF2>//For intermediate codes with multiple float ops (int<->float conversions)</span><span class=cF0>
|
|
<a name="l2213"></a> </span><span class=cF9>I64</span><span class=cF0> cur_ic_float_op_num,last_ic_float_op_num;
|
|
<a name="l2214"></a> </span><span class=cF9>CIntermediateCode</span><span class=cF0> *last_float_op_ic;
|
|
<a name="l2215"></a> </span><span class=cF1>Bool</span><span class=cF0> last_dont_pushable,last_dont_popable,last_float_op_pos,
|
|
<a name="l2216"></a> dont_push_float,pad[4];
|
|
<a name="l2217"></a>
|
|
<a name="l2218"></a> </span><span class=cF9>CCodeCtrl</span><span class=cF0> coc;
|
|
<a name="l2219"></a> </span><span class=cF9>CPrsStk</span><span class=cF0> *ps;
|
|
<a name="l2220"></a> </span><span class=cF9>CAOTCtrl</span><span class=cF0> *aotc;
|
|
<a name="l2221"></a> </span><span class=cF9>I64</span><span class=cF0> aot_depth,pmt_line;
|
|
<a name="l2222"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l2223"></a>};
|
|
<a name="l2224"></a>
|
|
<a name="l2225"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compiler"</span><span class=cF0>
|
|
<a name="l2226"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCmpGlbls</span><span class=cF0>
|
|
<a name="l2227"></a>{
|
|
<a name="l2228"></a> </span><span class=cF9>CHashTable</span><span class=cF0> *asm_hash;
|
|
<a name="l2229"></a> </span><span class=cF9>CHashClass</span><span class=cF0> *internal_types[</span><span class=cF3>RT_RTS_NUM</span><span class=cF0>];
|
|
<a name="l2230"></a> </span><span class=cF9>CIntermediateCode</span><span class=cF0> ic_nop;
|
|
<a name="l2231"></a> </span><span class=cF9>U32</span><span class=cF0> *dual_U16_tokens1,*dual_U16_tokens2,*dual_U16_tokens3,
|
|
<a name="l2232"></a> *binary_ops;
|
|
<a name="l2233"></a> </span><span class=cF9>I64</span><span class=cF0> num_reg_vars,num_non_ptr_vars,
|
|
<a name="l2234"></a> stk_tmps_mask,reg_vars_mask,non_ptr_vars_mask;
|
|
<a name="l2235"></a> </span><span class=cF1>U8</span><span class=cF0> *to_reg_vars_map,*non_ptr_vars_map;
|
|
<a name="l2236"></a> </span><span class=cF9>I64</span><span class=cF0> size_arg_mask[9],
|
|
<a name="l2237"></a> compiled_lines;
|
|
<a name="l2238"></a>};
|
|
<a name="l2239"></a>
|
|
<a name="l2240"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Debugging/Unassemble"</span><span class=cF0>
|
|
<a name="l2241"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CUAsmGlbls</span><span class=cF0>
|
|
<a name="l2242"></a>{
|
|
<a name="l2243"></a> </span><span class=cF9>CInst</span><span class=cF0> **table_16_32,**table_64;
|
|
<a name="l2244"></a> </span><span class=cF9>I64</span><span class=cF0> table_16_32_entries,
|
|
<a name="l2245"></a> table_64_entries,
|
|
<a name="l2246"></a> ins64_arg_mask,
|
|
<a name="l2247"></a> signed_arg_mask,
|
|
<a name="l2248"></a> mem_arg_mask;
|
|
<a name="l2249"></a>};
|
|
<a name="l2250"></a>
|
|
<a name="l2251"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Devices;PCI"</span><span class=cF0>
|
|
<a name="l2252"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CPCIDev</span><span class=cF0>
|
|
<a name="l2253"></a>{
|
|
<a name="l2254"></a> </span><span class=cF9>CPCIDev</span><span class=cF0> *next,*last;
|
|
<a name="l2255"></a> </span><span class=cF9>U16</span><span class=cF0> vendor,dev_id;
|
|
<a name="l2256"></a> </span><span class=cF1>U8</span><span class=cF0> bus,</span><span class=cFB>dev</span><span class=cF0>,fun,pad,
|
|
<a name="l2257"></a> sub_code,base_code,pad[6],
|
|
<a name="l2258"></a> *vendor_str,*dev_id_str;
|
|
<a name="l2259"></a>};
|
|
<a name="l2260"></a>
|
|
<a name="l2261"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Devices;File/System;PCI"</span><span class=cF0>
|
|
<a name="l2262"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CATARep</span><span class=cF0>
|
|
<a name="l2263"></a>{
|
|
<a name="l2264"></a> </span><span class=cF9>CATARep</span><span class=cF0> *next;
|
|
<a name="l2265"></a> </span><span class=cF9>I64</span><span class=cF0> num,type,base0,base1,unit,irq;
|
|
<a name="l2266"></a>};
|
|
<a name="l2267"></a>
|
|
<a name="l2268"></a></span><span class=cF2>//See </span><a href="/Wb/Doc/Credits.DD.HTML#l1"><span class=cF4>::/Doc/Credits.DD</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l2269"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_NOP</span><span class=cF0> 0x00
|
|
<a name="l2270"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_DEV_RST</span><span class=cF0> 0x08
|
|
<a name="l2271"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_PACKET</span><span class=cF0> 0xA0
|
|
<a name="l2272"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_READ_NATIVE_MAX</span><span class=cF0> 0xF8
|
|
<a name="l2273"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_READ_NATIVE_MAX_EXT</span><span class=cF0> 0x27
|
|
<a name="l2274"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_SET_MAX</span><span class=cF0> 0xF9
|
|
<a name="l2275"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_SET_MAX_EXT</span><span class=cF0> 0x37
|
|
<a name="l2276"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_READ_MULTI</span><span class=cF0> 0xC4
|
|
<a name="l2277"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_READ_MULTI_EXT</span><span class=cF0> 0x29
|
|
<a name="l2278"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_WRITE_MULTI</span><span class=cF0> 0xC5
|
|
<a name="l2279"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_WRITE_MULTI_EXT</span><span class=cF0> 0x39
|
|
<a name="l2280"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATA_ID_DEV</span><span class=cF0> 0xEC
|
|
<a name="l2281"></a>
|
|
<a name="l2282"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAS_ERR</span><span class=cF0> 0x01
|
|
<a name="l2283"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAS_DRQ</span><span class=cF0> 0x08
|
|
<a name="l2284"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAS_DF</span><span class=cF0> 0x20
|
|
<a name="l2285"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAS_DRDY</span><span class=cF0> 0x40
|
|
<a name="l2286"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAS_BSY</span><span class=cF0> 0x80
|
|
<a name="l2287"></a>
|
|
<a name="l2288"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_DATA</span><span class=cF0> 0
|
|
<a name="l2289"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_FEAT</span><span class=cF0> 1
|
|
<a name="l2290"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_NSECT</span><span class=cF0> 2
|
|
<a name="l2291"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_SECT</span><span class=cF0> 3
|
|
<a name="l2292"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_LCYL</span><span class=cF0> 4
|
|
<a name="l2293"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_HCYL</span><span class=cF0> 5
|
|
<a name="l2294"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_SEL</span><span class=cF0> 6
|
|
<a name="l2295"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_STAT</span><span class=cF0> 7
|
|
<a name="l2296"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR0_CMD</span><span class=cF0> 7
|
|
<a name="l2297"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ATAR1_CTRL</span><span class=cF0> 2
|
|
<a name="l2298"></a>
|
|
<a name="l2299"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/FileNames"</span><span class=cF0>
|
|
<a name="l2300"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FILEMASK_JIT</span><span class=cF0> </span><span class=cF6>"*.HC*;*.HH*"</span><span class=cF0>
|
|
<a name="l2301"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FILEMASK_AOT</span><span class=cF0> </span><span class=cF6>"*.HC*;*.HH*;*.PRJ*"</span><span class=cF0>
|
|
<a name="l2302"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FILEMASK_SRC</span><span class=cF0> </span><span class=cF6>"*.HC*;*.HH*;*.IN*;*.PRJ*"</span><span class=cF0>
|
|
<a name="l2303"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FILEMASK_DD</span><span class=cF0> </span><span class=cF3>FILEMASK_SRC</span><span class=cF0> </span><span class=cF6>";*.DD*"</span><span class=cF0>
|
|
<a name="l2304"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FILEMASK_TXT</span><span class=cF0> </span><span class=cF3>FILEMASK_DD</span><span class=cF0> </span><span class=cF6>";*.TXT*"</span><span class=cF0>
|
|
<a name="l2305"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FILEMASK_GR</span><span class=cF0> </span><span class=cF6>"*.GR*"</span><span class=cF0>
|
|
<a name="l2306"></a>
|
|
<a name="l2307"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/Low Level"</span><span class=cF0>
|
|
<a name="l2308"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLK_SIZE_BITS</span><span class=cF0> 9
|
|
<a name="l2309"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLK_SIZE</span><span class=cF0> (1<<</span><span class=cF3>BLK_SIZE_BITS</span><span class=cF0>)
|
|
<a name="l2310"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0> (4*</span><span class=cF3>BLK_SIZE</span><span class=cF0>)
|
|
<a name="l2311"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DVD_BOOT_LOADER_SIZE</span><span class=cF0> </span><span class=cF3>DVD_BLK_SIZE</span><span class=cF0>*1
|
|
<a name="l2312"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>INVALID_CLUS</span><span class=cF0> (-1)
|
|
<a name="l2313"></a>
|
|
<a name="l2314"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMBRPrt</span><span class=cF0>
|
|
<a name="l2315"></a>{
|
|
<a name="l2316"></a> </span><span class=cF1>U8</span><span class=cF0> active, </span><span class=cF2>//0x80=active 0x00=inactive</span><span class=cF0>
|
|
<a name="l2317"></a> start_head;
|
|
<a name="l2318"></a> </span><span class=cF9>U16</span><span class=cF0> start_cyl;
|
|
<a name="l2319"></a> </span><span class=cF1>U8</span><span class=cF0> type,
|
|
<a name="l2320"></a> end_head;
|
|
<a name="l2321"></a> </span><span class=cF9>U16</span><span class=cF0> end_cyl;
|
|
<a name="l2322"></a> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF1>offset</span><span class=cF0>, </span><span class=cF2>//Sects between MBR and first sect</span><span class=cF0>
|
|
<a name="l2323"></a> size; </span><span class=cF2>//Sects in drv</span><span class=cF0>
|
|
<a name="l2324"></a>};
|
|
<a name="l2325"></a>
|
|
<a name="l2326"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMasterBoot</span><span class=cF0>
|
|
<a name="l2327"></a>{
|
|
<a name="l2328"></a> </span><span class=cF1>U8</span><span class=cF0> code[440];
|
|
<a name="l2329"></a> </span><span class=cF9>U32</span><span class=cF0> media_id;
|
|
<a name="l2330"></a> </span><span class=cF9>U16</span><span class=cF0> zero;
|
|
<a name="l2331"></a> </span><span class=cF9>CMBRPrt</span><span class=cF0> p[4];
|
|
<a name="l2332"></a> </span><span class=cF9>U16</span><span class=cF0> signature; </span><span class=cF2>//AA55</span><span class=cF0>
|
|
<a name="l2333"></a>};
|
|
<a name="l2334"></a>
|
|
<a name="l2335"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CRedSeaBoot</span><span class=cF0>
|
|
<a name="l2336"></a>{
|
|
<a name="l2337"></a> </span><span class=cF1>U8</span><span class=cF0> jump_and_nop[3],
|
|
<a name="l2338"></a> signature,reserved[4]; </span><span class=cF2>//MBR_PT_REDSEA=0x88. Distinguish from real FAT32</span><span class=cF0>
|
|
<a name="l2339"></a> </span><span class=cF9>I64</span><span class=cF0> drv_offset, </span><span class=cF2>//For CD/DVD image copy.</span><span class=cF0>
|
|
<a name="l2340"></a> sects,
|
|
<a name="l2341"></a> root_clus,
|
|
<a name="l2342"></a> bitmap_sects,
|
|
<a name="l2343"></a> unique_id;
|
|
<a name="l2344"></a> </span><span class=cF1>U8</span><span class=cF0> code[462];
|
|
<a name="l2345"></a> </span><span class=cF9>U16</span><span class=cF0> signature2; </span><span class=cF2>//0xAA55</span><span class=cF0>
|
|
<a name="l2346"></a>};
|
|
<a name="l2347"></a>
|
|
<a name="l2348"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFAT32Boot</span><span class=cF0>
|
|
<a name="l2349"></a>{
|
|
<a name="l2350"></a> </span><span class=cF1>U8</span><span class=cF0> jump_and_nop[3],
|
|
<a name="l2351"></a> oem_name[8];
|
|
<a name="l2352"></a> </span><span class=cF9>U16</span><span class=cF0> bytes_per_sect;
|
|
<a name="l2353"></a> </span><span class=cF1>U8</span><span class=cF0> sects_per_clus;
|
|
<a name="l2354"></a> </span><span class=cF9>U16</span><span class=cF0> reserved_sects;
|
|
<a name="l2355"></a> </span><span class=cF1>U8</span><span class=cF0> copies_of_fat;
|
|
<a name="l2356"></a> </span><span class=cF9>U16</span><span class=cF0> max_root_dir_entries, </span><span class=cF2>//Not used</span><span class=cF0>
|
|
<a name="l2357"></a> old_sects_in_drv; </span><span class=cF2>//Not used</span><span class=cF0>
|
|
<a name="l2358"></a> </span><span class=cF1>U8</span><span class=cF0> media_desc; </span><span class=cF2>//F64 for hard disk</span><span class=cF0>
|
|
<a name="l2359"></a> </span><span class=cF9>U16</span><span class=cF0> old_sects_per_fat, </span><span class=cF2>//Not used</span><span class=cF0>
|
|
<a name="l2360"></a> sects_per_track,
|
|
<a name="l2361"></a> num_heads;
|
|
<a name="l2362"></a> </span><span class=cF9>U32</span><span class=cF0> hidden_sects,
|
|
<a name="l2363"></a> sects,
|
|
<a name="l2364"></a> sects_per_fat;
|
|
<a name="l2365"></a> </span><span class=cF9>U16</span><span class=cF0> flags,
|
|
<a name="l2366"></a> version;
|
|
<a name="l2367"></a> </span><span class=cF9>U32</span><span class=cF0> root_clus;
|
|
<a name="l2368"></a> </span><span class=cF9>U16</span><span class=cF0> file_system_info_sect,
|
|
<a name="l2369"></a> backup_boot_sect;
|
|
<a name="l2370"></a> </span><span class=cF1>U8</span><span class=cF0> reserved[12],
|
|
<a name="l2371"></a> log_drv_num,
|
|
<a name="l2372"></a> unused,
|
|
<a name="l2373"></a> ext_signature; </span><span class=cF2>//0x29</span><span class=cF0>
|
|
<a name="l2374"></a> </span><span class=cF9>U32</span><span class=cF0> serial_num;
|
|
<a name="l2375"></a> </span><span class=cF1>U8</span><span class=cF0> vol_name[11],
|
|
<a name="l2376"></a> fat_name[8],
|
|
<a name="l2377"></a> code[420];
|
|
<a name="l2378"></a> </span><span class=cF9>U16</span><span class=cF0> signature;
|
|
<a name="l2379"></a>};
|
|
<a name="l2380"></a>
|
|
<a name="l2381"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFAT32FileInfoSect</span><span class=cF0>
|
|
<a name="l2382"></a>{
|
|
<a name="l2383"></a> </span><span class=cF9>U32</span><span class=cF0> signature1;
|
|
<a name="l2384"></a> </span><span class=cF1>U8</span><span class=cF0> unknown[480];
|
|
<a name="l2385"></a> </span><span class=cF9>U32</span><span class=cF0> signature2,
|
|
<a name="l2386"></a> free_clus,
|
|
<a name="l2387"></a> most_recently_alloced;
|
|
<a name="l2388"></a> </span><span class=cF1>U8</span><span class=cF0> reserved[12];
|
|
<a name="l2389"></a> </span><span class=cF9>U32</span><span class=cF0> signature3;
|
|
<a name="l2390"></a>};
|
|
<a name="l2391"></a>
|
|
<a name="l2392"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFAT32DirEntry</span><span class=cF0>
|
|
<a name="l2393"></a>{
|
|
<a name="l2394"></a> </span><span class=cF1>U8</span><span class=cF0> name[11],
|
|
<a name="l2395"></a> attr,
|
|
<a name="l2396"></a> NTres,
|
|
<a name="l2397"></a> CrtTimeTenth;
|
|
<a name="l2398"></a> </span><span class=cF9>U16</span><span class=cF0> CrtTime,
|
|
<a name="l2399"></a> CrtDate,
|
|
<a name="l2400"></a> LstAccDate,
|
|
<a name="l2401"></a> clus_hi,
|
|
<a name="l2402"></a> WrtTime,
|
|
<a name="l2403"></a> WrtDate,
|
|
<a name="l2404"></a> clus_lo;
|
|
<a name="l2405"></a> </span><span class=cF9>U32</span><span class=cF0> size;
|
|
<a name="l2406"></a>};
|
|
<a name="l2407"></a>
|
|
<a name="l2408"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFAT32DirEntryLong</span><span class=cF0>
|
|
<a name="l2409"></a>{
|
|
<a name="l2410"></a> </span><span class=cF1>U8</span><span class=cF0> ord;
|
|
<a name="l2411"></a> </span><span class=cF9>U16</span><span class=cF0> name1[5];
|
|
<a name="l2412"></a> </span><span class=cF1>U8</span><span class=cF0> attr,
|
|
<a name="l2413"></a> type,
|
|
<a name="l2414"></a> xsum;
|
|
<a name="l2415"></a> </span><span class=cF9>U16</span><span class=cF0> name2[6],
|
|
<a name="l2416"></a> zero,
|
|
<a name="l2417"></a> name3[2];
|
|
<a name="l2418"></a>};
|
|
<a name="l2419"></a>
|
|
<a name="l2420"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FAT32_ENTRIES_PER_BLK</span><span class=cF0> (</span><span class=cF3>BLK_SIZE</span><span class=cF0>/</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CFAT32DirEntry</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l2421"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FAT32_ENTRIES_BITS</span><span class=cF0> </span><span class=cF5>Bsf</span><span class=cF0>(</span><span class=cF3>FAT32_ENTRIES_PER_BLK</span><span class=cF0>)
|
|
<a name="l2422"></a>
|
|
<a name="l2423"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CPalindromeU16</span><span class=cF0>
|
|
<a name="l2424"></a>{
|
|
<a name="l2425"></a> </span><span class=cF9>U16</span><span class=cF0> little,big;
|
|
<a name="l2426"></a>};
|
|
<a name="l2427"></a>
|
|
<a name="l2428"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CPalindromeU32</span><span class=cF0>
|
|
<a name="l2429"></a>{
|
|
<a name="l2430"></a> </span><span class=cF9>U32</span><span class=cF0> little,big;
|
|
<a name="l2431"></a>};
|
|
<a name="l2432"></a>
|
|
<a name="l2433"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CATAPITrack</span><span class=cF0>
|
|
<a name="l2434"></a>{
|
|
<a name="l2435"></a> </span><span class=cF9>U16</span><span class=cF0> track_info_len;
|
|
<a name="l2436"></a> </span><span class=cF1>U8</span><span class=cF0> track_lo,
|
|
<a name="l2437"></a> session_lo,
|
|
<a name="l2438"></a> reserved;
|
|
<a name="l2439"></a> </span><span class=cF9>U16</span><span class=cF0> misc1;
|
|
<a name="l2440"></a> </span><span class=cF1>U8</span><span class=cF0> misc2;
|
|
<a name="l2441"></a> </span><span class=cF9>U32</span><span class=cF0> track_start,
|
|
<a name="l2442"></a> next_writable,
|
|
<a name="l2443"></a> free_blks;
|
|
<a name="l2444"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l2445"></a> </span><span class=cF9>U32</span><span class=cF0> fixed_packet_size;
|
|
<a name="l2446"></a> </span><span class=cF9>U32</span><span class=cF0> blocking_factor;
|
|
<a name="l2447"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l2448"></a> </span><span class=cF1>union</span><span class=cF0> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l2449"></a> </span><span class=cF9>U32</span><span class=cF0> track_size;
|
|
<a name="l2450"></a> </span><span class=cF9>U32</span><span class=cF0> rzone_end;
|
|
<a name="l2451"></a> </span><span class=cF7>}</span><span class=cF0>;
|
|
<a name="l2452"></a> </span><span class=cF9>U32</span><span class=cF0> last_recorded;
|
|
<a name="l2453"></a> </span><span class=cF1>U8</span><span class=cF0> track_hi,
|
|
<a name="l2454"></a> session_hi;
|
|
<a name="l2455"></a> </span><span class=cF9>U16</span><span class=cF0> reserved;
|
|
<a name="l2456"></a> </span><span class=cF9>U32</span><span class=cF0> read_compatibility,
|
|
<a name="l2457"></a> next_layer_jmp,
|
|
<a name="l2458"></a> last_layer_jmp;
|
|
<a name="l2459"></a>};
|
|
<a name="l2460"></a>
|
|
<a name="l2461"></a></span><span class=cF2>//ISO9660</span><span class=cF0>
|
|
<a name="l2462"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ISOT_BOOT_RECORD</span><span class=cF0> 0
|
|
<a name="l2463"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ISOT_PRI_VOL_DESC</span><span class=cF0> 1
|
|
<a name="l2464"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ISOT_SUPPLEMENTARY_DESC</span><span class=cF0> 2
|
|
<a name="l2465"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ISOT_VOL_DRV_DESC</span><span class=cF0> 3
|
|
<a name="l2466"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ISOT_TERMINATOR</span><span class=cF0> 255
|
|
<a name="l2467"></a>
|
|
<a name="l2468"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CISODirEntry</span><span class=cF0>
|
|
<a name="l2469"></a>{
|
|
<a name="l2470"></a> </span><span class=cF1>U8</span><span class=cF0> pad[2];
|
|
<a name="l2471"></a> </span><span class=cF9>CPalindromeU32</span><span class=cF0> loc;
|
|
<a name="l2472"></a> </span><span class=cF1>U8</span><span class=cF0> pad[24];
|
|
<a name="l2473"></a>};
|
|
<a name="l2474"></a>
|
|
<a name="l2475"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CISOPriDesc</span><span class=cF0>
|
|
<a name="l2476"></a>{
|
|
<a name="l2477"></a> </span><span class=cF1>U8</span><span class=cF0> type,
|
|
<a name="l2478"></a> id[5],
|
|
<a name="l2479"></a> version,
|
|
<a name="l2480"></a> pad[73];
|
|
<a name="l2481"></a> </span><span class=cF9>CPalindromeU32</span><span class=cF0> vol_space_size;
|
|
<a name="l2482"></a> </span><span class=cF1>U8</span><span class=cF0> pad[32];
|
|
<a name="l2483"></a> </span><span class=cF9>CPalindromeU16</span><span class=cF0> vol_set_size;
|
|
<a name="l2484"></a> </span><span class=cF9>CPalindromeU16</span><span class=cF0> vol_seq_num;
|
|
<a name="l2485"></a> </span><span class=cF9>CPalindromeU16</span><span class=cF0> log_block_size;
|
|
<a name="l2486"></a> </span><span class=cF1>U8</span><span class=cF0> pad[20];
|
|
<a name="l2487"></a> </span><span class=cF9>CISODirEntry</span><span class=cF0> root_dir_record;
|
|
<a name="l2488"></a> </span><span class=cF1>U8</span><span class=cF0> pad[128],
|
|
<a name="l2489"></a> publisher_id[128],
|
|
<a name="l2490"></a> pad[435],
|
|
<a name="l2491"></a> file_structure_version,
|
|
<a name="l2492"></a> pad[1166];
|
|
<a name="l2493"></a>};
|
|
<a name="l2494"></a>
|
|
<a name="l2495"></a></span><span class=cF2>//Red Sea Attributes</span><span class=cF0>
|
|
<a name="l2496"></a></span><span class=cF2>//See </span><a href="/Wb/Kernel/KDefine.HC.HTML#l109"><span class=cF4>ST_FILE_ATTRS</span></a><span class=cF0>
|
|
<a name="l2497"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_READ_ONLY</span><span class=cF0> 0x01 </span><span class=cF2>//R</span><span class=cF0>
|
|
<a name="l2498"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_HIDDEN</span><span class=cF0> 0x02 </span><span class=cF2>//H</span><span class=cF0>
|
|
<a name="l2499"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_SYSTEM</span><span class=cF0> 0x04 </span><span class=cF2>//S</span><span class=cF0>
|
|
<a name="l2500"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_VOL_ID</span><span class=cF0> 0x08 </span><span class=cF2>//V</span><span class=cF0>
|
|
<a name="l2501"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_DIR</span><span class=cF0> 0x10 </span><span class=cF2>//D</span><span class=cF0>
|
|
<a name="l2502"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_ARCHIVE</span><span class=cF0> 0x20 </span><span class=cF2>//A</span><span class=cF0>
|
|
<a name="l2503"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_LONG_NAME</span><span class=cF0> (</span><span class=cF3>RS_ATTR_READ_ONLY</span><span class=cF0>|</span><span class=cF3>RS_ATTR_HIDDEN</span><span class=cF0>|\
|
|
<a name="l2504"></a> </span><span class=cF3>RS_ATTR_SYSTEM</span><span class=cF0>|</span><span class=cF3>RS_ATTR_VOL_ID</span><span class=cF0>)
|
|
<a name="l2505"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_LONG_NAME_MASK</span><span class=cF0> (</span><span class=cF3>RS_ATTR_LONG_NAME</span><span class=cF0>|</span><span class=cF3>RS_ATTR_DIR</span><span class=cF0>|</span><span class=cF3>RS_ATTR_ARCHIVE</span><span class=cF0>)
|
|
<a name="l2506"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_DELETED</span><span class=cF0> 0x100 </span><span class=cF2>//X</span><span class=cF0>
|
|
<a name="l2507"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_RESIDENT</span><span class=cF0> 0x200 </span><span class=cF2>//T</span><span class=cF0>
|
|
<a name="l2508"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_COMPRESSED</span><span class=cF0> 0x400 </span><span class=cF2>//Z</span><span class=cF0>
|
|
<a name="l2509"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_CONTIGUOUS</span><span class=cF0> 0x800 </span><span class=cF2>//C</span><span class=cF0>
|
|
<a name="l2510"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RS_ATTR_FIXED</span><span class=cF0> 0x1000 </span><span class=cF2>//F</span><span class=cF0>
|
|
<a name="l2511"></a>
|
|
<a name="l2512"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/CD DVD"</span><span class=cF0>
|
|
<a name="l2513"></a></span><span class=cF2>//Media types for </span><a href="/Wb/Kernel/BlkDev/DskCDDVD.HC.HTML#l143"><span class=cF4>DVDImageWrite</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l2514"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MT_CD</span><span class=cF0> 1
|
|
<a name="l2515"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MT_DVD</span><span class=cF0> 2
|
|
<a name="l2516"></a>
|
|
<a name="l2517"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/Low Level;File/Program Routines"</span><span class=cF0>
|
|
<a name="l2518"></a></span><span class=cF2>//CDirEntry flags (Used by </span><a href="/Wb/Adam/ABlkDev/FileMgr.HC.HTML#l579"><span class=cF4>FileMgr</span></a><span class=cF2>())</span><span class=cF0>
|
|
<a name="l2519"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDIR_FILENAME_LEN</span><span class=cF0> 38 </span><span class=cF2>//Must include terminator zero</span><span class=cF0>
|
|
<a name="l2520"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDirEntry</span><span class=cF0>
|
|
<a name="l2521"></a>{
|
|
<a name="l2522"></a> </span><span class=cF9>CDirEntry</span><span class=cF0> *next,*parent,*sub;
|
|
<a name="l2523"></a> </span><span class=cF1>U8</span><span class=cF0> *full_name;
|
|
<a name="l2524"></a> </span><span class=cF9>I64</span><span class=cF0> user_data,user_data2;
|
|
<a name="l2525"></a>
|
|
<a name="l2526"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l2527"></a> </span><span class=cF9>U16</span><span class=cF0> attr;
|
|
<a name="l2528"></a> </span><span class=cF1>U8</span><span class=cF0> name[</span><span class=cF3>CDIR_FILENAME_LEN</span><span class=cF0>];
|
|
<a name="l2529"></a> </span><span class=cF9>I64</span><span class=cF0> clus,size;
|
|
<a name="l2530"></a> </span><span class=cF9>CDate</span><span class=cF0> datetime;
|
|
<a name="l2531"></a>};
|
|
<a name="l2532"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDIR_SIZE</span><span class=cF0> (</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CDirEntry</span><span class=cF7>)</span><span class=cF0>-</span><span class=cF1>offset</span><span class=cF7>(</span><span class=cF9>CDirEntry</span><span class=cF0>.</span><span class=cF1>start</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l2533"></a>
|
|
<a name="l2534"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/Program Routines"</span><span class=cF0>
|
|
<a name="l2535"></a></span><span class=cF2>//File Util Flags</span><span class=cF0>
|
|
<a name="l2536"></a></span><span class=cF2>//See </span><a href="/Wb/Kernel/KDefine.HC.HTML#l111"><span class=cF4>ST_FILE_UTIL_FLAGS</span></a><span class=cF0>
|
|
<a name="l2537"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_RECURSE</span><span class=cF0> 0
|
|
<a name="l2538"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_DIFF</span><span class=cF0> 1
|
|
<a name="l2539"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_DEL</span><span class=cF0> 1
|
|
<a name="l2540"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_IGNORE</span><span class=cF0> 2
|
|
<a name="l2541"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_ALL</span><span class=cF0> 3
|
|
<a name="l2542"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_CANCEL</span><span class=cF0> 4
|
|
<a name="l2543"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_REPLACE</span><span class=cF0> 5
|
|
<a name="l2544"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_RISKY</span><span class=cF0> 5
|
|
<a name="l2545"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_PUBLIC</span><span class=cF0> 6
|
|
<a name="l2546"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_MAP</span><span class=cF0> 7
|
|
<a name="l2547"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_EXPAND</span><span class=cF0> 8
|
|
<a name="l2548"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_SINGLE</span><span class=cF0> 9
|
|
<a name="l2549"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_DIRS</span><span class=cF0> 10
|
|
<a name="l2550"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_FILES</span><span class=cF0> 11
|
|
<a name="l2551"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_TXT</span><span class=cF0> 12
|
|
<a name="l2552"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_DD</span><span class=cF0> 13
|
|
<a name="l2553"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_SRC</span><span class=cF0> 14
|
|
<a name="l2554"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_AOT</span><span class=cF0> 15
|
|
<a name="l2555"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_JIT</span><span class=cF0> 16
|
|
<a name="l2556"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_JUST_GR</span><span class=cF0> 17
|
|
<a name="l2557"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_Z_OR_NOT_Z</span><span class=cF0> 18
|
|
<a name="l2558"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_CLUS_ORDER</span><span class=cF0> 19
|
|
<a name="l2559"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_SCAN_PARENTS</span><span class=cF0> 20
|
|
<a name="l2560"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_FLATTEN_TREE</span><span class=cF0> 21
|
|
<a name="l2561"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_WHOLE_LABELS</span><span class=cF0> 22
|
|
<a name="l2562"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_WHOLE_LABELS_BEFORE</span><span class=cF0> 23
|
|
<a name="l2563"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUf_WHOLE_LABELS_AFTER</span><span class=cF0> 24
|
|
<a name="l2564"></a>
|
|
<a name="l2565"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_RECURSE</span><span class=cF0> 0x0000001 </span><span class=cF2>//r</span><span class=cF0>
|
|
<a name="l2566"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_DIFF</span><span class=cF0> 0x0000002 </span><span class=cF2>//d</span><span class=cF0>
|
|
<a name="l2567"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_DEL</span><span class=cF0> 0x0000002 </span><span class=cF2>//d</span><span class=cF0>
|
|
<a name="l2568"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_IGNORE</span><span class=cF0> 0x0000004 </span><span class=cF2>//i</span><span class=cF0>
|
|
<a name="l2569"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_ALL</span><span class=cF0> 0x0000008 </span><span class=cF2>//a</span><span class=cF0>
|
|
<a name="l2570"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_CANCEL</span><span class=cF0> 0x0000010 </span><span class=cF2>//c</span><span class=cF0>
|
|
<a name="l2571"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_REPLACE</span><span class=cF0> 0x0000020 </span><span class=cF2>//R</span><span class=cF0>
|
|
<a name="l2572"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_RISKY</span><span class=cF0> 0x0000020 </span><span class=cF2>//R</span><span class=cF0>
|
|
<a name="l2573"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_PUBLIC</span><span class=cF0> 0x0000040 </span><span class=cF2>//p</span><span class=cF0>
|
|
<a name="l2574"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_MAP</span><span class=cF0> 0x0000080 </span><span class=cF2>//m</span><span class=cF0>
|
|
<a name="l2575"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_EXPAND</span><span class=cF0> 0x0000100 </span><span class=cF2>//x</span><span class=cF0>
|
|
<a name="l2576"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_SINGLE</span><span class=cF0> 0x0000200 </span><span class=cF2>//s</span><span class=cF0>
|
|
<a name="l2577"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_DIRS</span><span class=cF0> 0x0000400 </span><span class=cF2>//D</span><span class=cF0>
|
|
<a name="l2578"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_FILES</span><span class=cF0> 0x0000800 </span><span class=cF2>//F</span><span class=cF0>
|
|
<a name="l2579"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_TXT</span><span class=cF0> 0x0001000 </span><span class=cF2>//T</span><span class=cF0>
|
|
<a name="l2580"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_DD</span><span class=cF0> 0x0002000 </span><span class=cF2>//$</span><span class=cF0>
|
|
<a name="l2581"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_SRC</span><span class=cF0> 0x0004000 </span><span class=cF2>//S</span><span class=cF0>
|
|
<a name="l2582"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_AOT</span><span class=cF0> 0x0008000 </span><span class=cF2>//A</span><span class=cF0>
|
|
<a name="l2583"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_JIT</span><span class=cF0> 0x0010000 </span><span class=cF2>//J</span><span class=cF0>
|
|
<a name="l2584"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_JUST_GR</span><span class=cF0> 0x0020000 </span><span class=cF2>//G</span><span class=cF0>
|
|
<a name="l2585"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_Z_OR_NOT_Z</span><span class=cF0> 0x0040000 </span><span class=cF2>//Z</span><span class=cF0>
|
|
<a name="l2586"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_CLUS_ORDER</span><span class=cF0> 0x0080000 </span><span class=cF2>//O Move disk head one direction</span><span class=cF0>
|
|
<a name="l2587"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_SCAN_PARENTS</span><span class=cF0> 0x0100000 </span><span class=cF2>//P</span><span class=cF0>
|
|
<a name="l2588"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_FLATTEN_TREE</span><span class=cF0> 0x0200000 </span><span class=cF2>//f</span><span class=cF0>
|
|
<a name="l2589"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_WHOLE_LABELS</span><span class=cF0> 0x0400000 </span><span class=cF2>//l</span><span class=cF0>
|
|
<a name="l2590"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_WHOLE_LABELS_BEFORE</span><span class=cF0> 0x0800000 </span><span class=cF2>//lb</span><span class=cF0>
|
|
<a name="l2591"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUF_WHOLE_LABELS_AFTER</span><span class=cF0> 0x1000000 </span><span class=cF2>//la</span><span class=cF0>
|
|
<a name="l2592"></a>
|
|
<a name="l2593"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUG_FILES_FIND</span><span class=cF0> (</span><span class=cF3>FUF_RECURSE</span><span class=cF0>|</span><span class=cF3>FUF_SINGLE</span><span class=cF0>|</span><span class=cF3>FUF_CLUS_ORDER</span><span class=cF0>|\
|
|
<a name="l2594"></a> </span><span class=cF3>FUF_JUST_DIRS</span><span class=cF0>|</span><span class=cF3>FUF_JUST_FILES</span><span class=cF0>|</span><span class=cF3>FUF_JUST_TXT</span><span class=cF0>|</span><span class=cF3>FUF_JUST_DD</span><span class=cF0>|\
|
|
<a name="l2595"></a> </span><span class=cF3>FUF_JUST_SRC</span><span class=cF0>|</span><span class=cF3>FUF_JUST_AOT</span><span class=cF0>|</span><span class=cF3>FUF_JUST_JIT</span><span class=cF0>|</span><span class=cF3>FUF_JUST_GR</span><span class=cF0>|</span><span class=cF3>FUF_FLATTEN_TREE</span><span class=cF0>)
|
|
<a name="l2596"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUG_FILE_FIND</span><span class=cF0> (</span><span class=cF3>FUF_JUST_DIRS</span><span class=cF0>|</span><span class=cF3>FUF_JUST_FILES</span><span class=cF0>|</span><span class=cF3>FUF_Z_OR_NOT_Z</span><span class=cF0>|\
|
|
<a name="l2597"></a> </span><span class=cF3>FUF_SCAN_PARENTS</span><span class=cF0>)
|
|
<a name="l2598"></a>
|
|
<a name="l2599"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/Low Level"</span><span class=cF0>
|
|
<a name="l2600"></a></span><span class=cF2>//See </span><a href="/Wb/Kernel/KDefine.HC.HTML#l113"><span class=cF4>ST_BLKDEV_TYPES</span></a><span class=cF0>
|
|
<a name="l2601"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_NULL</span><span class=cF0> 0
|
|
<a name="l2602"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_RAM</span><span class=cF0> 1
|
|
<a name="l2603"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_ATA</span><span class=cF0> 2
|
|
<a name="l2604"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_READ</span><span class=cF0> 3
|
|
<a name="l2605"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_ISO_FILE_WRITE</span><span class=cF0> 4
|
|
<a name="l2606"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_ATAPI</span><span class=cF0> 5
|
|
<a name="l2607"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDT_TYPES_NUM</span><span class=cF0> 6
|
|
<a name="l2608"></a>
|
|
<a name="l2609"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_REMOVABLE</span><span class=cF0> 0x001
|
|
<a name="l2610"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_INITIALIZED</span><span class=cF0> 0x002
|
|
<a name="l2611"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_READ_ONLY</span><span class=cF0> 0x004
|
|
<a name="l2612"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_READ_ONLY_OVERRIDE</span><span class=cF0> 0x008
|
|
<a name="l2613"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_LAST_WAS_WRITE</span><span class=cF0> 0x010
|
|
<a name="l2614"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_READ_CACHE</span><span class=cF0> 0x020
|
|
<a name="l2615"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_FMT</span><span class=cF0> 0x040
|
|
<a name="l2616"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_INIT_IN_PROGRESS</span><span class=cF0> 0x080
|
|
<a name="l2617"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDF_EXT_SIZE</span><span class=cF0> 0x100
|
|
<a name="l2618"></a>
|
|
<a name="l2619"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_REMOVABLE</span><span class=cF0> 0
|
|
<a name="l2620"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_INITIALIZED</span><span class=cF0> 1
|
|
<a name="l2621"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_READ_ONLY</span><span class=cF0> 2
|
|
<a name="l2622"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_READ_ONLY_OVERRIDE</span><span class=cF0> 3
|
|
<a name="l2623"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_LAST_WAS_WRITE</span><span class=cF0> 4
|
|
<a name="l2624"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_READ_CACHE</span><span class=cF0> 5
|
|
<a name="l2625"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_FMT</span><span class=cF0> 6
|
|
<a name="l2626"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_INIT_IN_PROGRESS</span><span class=cF0> 7
|
|
<a name="l2627"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDf_EXT_SIZE</span><span class=cF0> 8
|
|
<a name="l2628"></a>
|
|
<a name="l2629"></a></span><span class=cF2>//locked flags</span><span class=cF0>
|
|
<a name="l2630"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDlf_LOCKED</span><span class=cF0> 0
|
|
<a name="l2631"></a>
|
|
<a name="l2632"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLKDEVS_NUM</span><span class=cF0> 26
|
|
<a name="l2633"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BD_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'BDSV'</span><span class=cF0>
|
|
<a name="l2634"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBlkDev</span><span class=cF0>
|
|
<a name="l2635"></a>{
|
|
<a name="l2636"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *lock_fwding; </span><span class=cF2>//If two blkdevs on same controller, use just one lock</span><span class=cF0>
|
|
<a name="l2637"></a> </span><span class=cF9>I64</span><span class=cF0> locked_flags;
|
|
<a name="l2638"></a> </span><span class=cF9>U32</span><span class=cF0> bd_signature,
|
|
<a name="l2639"></a> type,flags;
|
|
<a name="l2640"></a> </span><span class=cF1>U8</span><span class=cF0> first_drv_let,unit,pad[2];
|
|
<a name="l2641"></a> </span><span class=cF9>U32</span><span class=cF0> base0,base1,
|
|
<a name="l2642"></a> blk_size;
|
|
<a name="l2643"></a> </span><span class=cF9>I64</span><span class=cF0> drv_offset,init_root_dir_blks,
|
|
<a name="l2644"></a> max_blk;
|
|
<a name="l2645"></a> </span><span class=cF9>U16</span><span class=cF0> *dev_id_record;
|
|
<a name="l2646"></a> </span><span class=cF1>U8</span><span class=cF0> *RAM_dsk,
|
|
<a name="l2647"></a> *file_dsk_name;
|
|
<a name="l2648"></a> </span><span class=cF9>CFile</span><span class=cF0> *file_dsk;
|
|
<a name="l2649"></a> </span><span class=cF9>CTask</span><span class=cF0> *owning_task;
|
|
<a name="l2650"></a> </span><span class=cF1>F64</span><span class=cF0> last_time;
|
|
<a name="l2651"></a> </span><span class=cF9>U32</span><span class=cF0> max_reads,max_writes;
|
|
<a name="l2652"></a>};
|
|
<a name="l2653"></a>
|
|
<a name="l2654"></a></span><span class=cF2>//Drive locked_flags</span><span class=cF0>
|
|
<a name="l2655"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DVlf_LOCKED</span><span class=cF0> 0
|
|
<a name="l2656"></a>
|
|
<a name="l2657"></a></span><span class=cF2>//See </span><a href="/Wb/Kernel/KDefine.HC.HTML#l115"><span class=cF4>ST_DRV_TYPES</span></a><span class=cF0>
|
|
<a name="l2658"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_NULL</span><span class=cF0> 0
|
|
<a name="l2659"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_REDSEA</span><span class=cF0> 1 </span><span class=cF2>//Supported</span><span class=cF0>
|
|
<a name="l2660"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_FAT32</span><span class=cF0> 2 </span><span class=cF2>//Supported except for short names, to some degree</span><span class=cF0>
|
|
<a name="l2661"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_ISO9660</span><span class=cF0> 3 </span><span class=cF2>//Not Supported</span><span class=cF0>
|
|
<a name="l2662"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_NTFS</span><span class=cF0> 4 </span><span class=cF2>//Not Supported</span><span class=cF0>
|
|
<a name="l2663"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_UNKNOWN</span><span class=cF0> 5
|
|
<a name="l2664"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSt_TYPES_NUM</span><span class=cF0> 6
|
|
<a name="l2665"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FSG_TYPE_MASK</span><span class=cF0> 0x7FFF
|
|
<a name="l2666"></a></span><span class=cF2>//File system type flags</span><span class=cF0>
|
|
<a name="l2667"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FStf_DISABLE</span><span class=cF0> 15
|
|
<a name="l2668"></a>
|
|
<a name="l2669"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT12</span><span class=cF0> 0x01
|
|
<a name="l2670"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT32a</span><span class=cF0> 0x0B
|
|
<a name="l2671"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT32b</span><span class=cF0> 0x0C
|
|
<a name="l2672"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT32c</span><span class=cF0> 0x1B
|
|
<a name="l2673"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT32d</span><span class=cF0> 0x1C
|
|
<a name="l2674"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT32e</span><span class=cF0> 0x8B
|
|
<a name="l2675"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_FAT32f</span><span class=cF0> 0x8C
|
|
<a name="l2676"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_NTFS</span><span class=cF0> 0x07
|
|
<a name="l2677"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBR_PT_REDSEA</span><span class=cF0> 0x88
|
|
<a name="l2678"></a>
|
|
<a name="l2679"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFreeLst</span><span class=cF0>
|
|
<a name="l2680"></a>{
|
|
<a name="l2681"></a> </span><span class=cF9>CFreeLst</span><span class=cF0> *next,*last;
|
|
<a name="l2682"></a> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>,size;
|
|
<a name="l2683"></a>};
|
|
<a name="l2684"></a>
|
|
<a name="l2685"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DRVS_NUM</span><span class=cF0> 26
|
|
<a name="l2686"></a>
|
|
<a name="l2687"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DRV_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'DVSV'</span><span class=cF0>
|
|
<a name="l2688"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDrv</span><span class=cF0>
|
|
<a name="l2689"></a>{
|
|
<a name="l2690"></a></span><span class=cF2>//Don't access ->drv_let directly in case a drive has been remapped.</span><span class=cF0>
|
|
<a name="l2691"></a> </span><span class=cF2>//Use </span><a href="/Wb/Kernel/BlkDev/DskDrv.HC.HTML#l153"><span class=cF4>Drv2Let</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l2692"></a> </span><span class=cF9>I64</span><span class=cF0> locked_flags;
|
|
<a name="l2693"></a> </span><span class=cF9>U32</span><span class=cF0> dv_signature;
|
|
<a name="l2694"></a> </span><span class=cF1>U8</span><span class=cF0> drv_let,pad;
|
|
<a name="l2695"></a> </span><span class=cF9>U16</span><span class=cF0> fs_type;
|
|
<a name="l2696"></a> </span><span class=cF9>I64</span><span class=cF0> drv_offset,
|
|
<a name="l2697"></a> size,
|
|
<a name="l2698"></a> prt_num,
|
|
<a name="l2699"></a> file_system_info_sect,
|
|
<a name="l2700"></a> fat1,fat2,
|
|
<a name="l2701"></a> root_clus,
|
|
<a name="l2702"></a> data_area,
|
|
<a name="l2703"></a> spc; </span><span class=cF2>//sectors per clus</span><span class=cF0>
|
|
<a name="l2704"></a> </span><span class=cF9>CDate</span><span class=cF0> fat32_local_time_offset;
|
|
<a name="l2705"></a> </span><span class=cF9>CTask</span><span class=cF0> *owning_task;
|
|
<a name="l2706"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *bd;
|
|
<a name="l2707"></a>
|
|
<a name="l2708"></a> </span><span class=cF9>CFAT32FileInfoSect</span><span class=cF0> *fis;
|
|
<a name="l2709"></a> </span><span class=cF9>I64</span><span class=cF0> fat_blk_dirty,
|
|
<a name="l2710"></a> cur_fat_blk_num;
|
|
<a name="l2711"></a> </span><span class=cF9>U32</span><span class=cF0> *cur_fat_blk;
|
|
<a name="l2712"></a> </span><span class=cF9>CFreeLst</span><span class=cF0> *next_free,*last_free;
|
|
<a name="l2713"></a>};
|
|
<a name="l2714"></a>
|
|
<a name="l2715"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DSK_CACHE_HASH_SIZE</span><span class=cF0> 0x2000
|
|
<a name="l2716"></a>
|
|
<a name="l2717"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCacheBlk</span><span class=cF0>
|
|
<a name="l2718"></a>{
|
|
<a name="l2719"></a> </span><span class=cF9>CCacheBlk</span><span class=cF0> *next_lru,*last_lru;
|
|
<a name="l2720"></a> </span><span class=cF9>CCacheBlk</span><span class=cF0> *next_hash,*last_hash;
|
|
<a name="l2721"></a> </span><span class=cF9>CDrv</span><span class=cF0> *dv;
|
|
<a name="l2722"></a> </span><span class=cF9>I64</span><span class=cF0> blk;
|
|
<a name="l2723"></a> </span><span class=cF1>U8</span><span class=cF0> body[</span><span class=cF3>BLK_SIZE</span><span class=cF0>];
|
|
<a name="l2724"></a>};
|
|
<a name="l2725"></a>
|
|
<a name="l2726"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/System"</span><span class=cF0>
|
|
<a name="l2727"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DFT_ISO_FILENAME</span><span class=cF0> </span><span class=cF6>"::/Tmp/CDDVD.ISO"</span><span class=cF0>
|
|
<a name="l2728"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DFT_ISO_C_FILENAME</span><span class=cF0> </span><span class=cF6>"::/Tmp/CDDVD.ISO.C"</span><span class=cF0>
|
|
<a name="l2729"></a>
|
|
<a name="l2730"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBlkDevGlbls</span><span class=cF0>
|
|
<a name="l2731"></a>{
|
|
<a name="l2732"></a> </span><span class=cF9>CBlkDev</span><span class=cF0> *blkdevs;
|
|
<a name="l2733"></a> </span><span class=cF1>U8</span><span class=cF0> *dft_iso_filename; </span><span class=cF2>//"::/Tmp/CDDVD.ISO"</span><span class=cF0>
|
|
<a name="l2734"></a> </span><span class=cF1>U8</span><span class=cF0> *dft_iso_c_filename; </span><span class=cF2>//"::/Tmp/CDDVD.ISO.C"</span><span class=cF0>
|
|
<a name="l2735"></a> </span><span class=cF1>U8</span><span class=cF0> *tmp_filename;
|
|
<a name="l2736"></a> </span><span class=cF1>U8</span><span class=cF0> *home_dir;
|
|
<a name="l2737"></a> </span><span class=cF9>CCacheBlk</span><span class=cF0> *cache_base,*cache_ctrl,**cache_hash_table;
|
|
<a name="l2738"></a> </span><span class=cF9>I64</span><span class=cF0> cache_size,read_cnt,write_cnt;
|
|
<a name="l2739"></a> </span><span class=cF9>CDrv</span><span class=cF0> *drvs,*let_to_drv[32];
|
|
<a name="l2740"></a> </span><span class=cF9>I64</span><span class=cF0> mount_ide_auto_cnt,
|
|
<a name="l2741"></a> ins_base0,ins_base1; </span><span class=cF2>//Install cd/dvd controller.</span><span class=cF0>
|
|
<a name="l2742"></a> </span><span class=cF1>U8</span><span class=cF0> boot_drv_let,first_hd_drv_let,first_dvd_drv_let;
|
|
<a name="l2743"></a> </span><span class=cF1>Bool</span><span class=cF0> dvd_boot_is_good,ins_unit,pad[3];
|
|
<a name="l2744"></a>};
|
|
<a name="l2745"></a>
|
|
<a name="l2746"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/Internal"</span><span class=cF0>
|
|
<a name="l2747"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDirContext</span><span class=cF0>
|
|
<a name="l2748"></a>{
|
|
<a name="l2749"></a> </span><span class=cF9>CDrv</span><span class=cF0> *old_dv,*dv;
|
|
<a name="l2750"></a> </span><span class=cF1>U8</span><span class=cF0> *old_dir,*mask;
|
|
<a name="l2751"></a>};
|
|
<a name="l2752"></a>
|
|
<a name="l2753"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"File/CFile"</span><span class=cF0>
|
|
<a name="l2754"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FFB_NEXT_BLK</span><span class=cF0> </span><span class=cF3>I64_MAX</span><span class=cF0>
|
|
<a name="l2755"></a>
|
|
<a name="l2756"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FF_WRITE</span><span class=cF0> 1
|
|
<a name="l2757"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FF_NEW_FILE</span><span class=cF0> 2
|
|
<a name="l2758"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FF_BUF_DIRTY</span><span class=cF0> 4
|
|
<a name="l2759"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FF_NEEDS_WRITE</span><span class=cF0> 8
|
|
<a name="l2760"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FF_CONTIGUOUS</span><span class=cF0> 16
|
|
<a name="l2761"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FF_USE_OLD_DATETIME</span><span class=cF0> 32
|
|
<a name="l2762"></a>
|
|
<a name="l2763"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFile</span><span class=cF0> </span><span class=cF2>//See </span><a href="/Wb/Demo/Dsk/DataBase.HC.HTML#l1"><span class=cF4>::/Demo/Dsk/DataBase.HC</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l2764"></a>{
|
|
<a name="l2765"></a> </span><span class=cF9>I64</span><span class=cF0> flags;
|
|
<a name="l2766"></a> </span><span class=cF9>CDirEntry</span><span class=cF0> de;
|
|
<a name="l2767"></a> </span><span class=cF9>CDrv</span><span class=cF0> *dv;
|
|
<a name="l2768"></a> </span><span class=cF9>I64</span><span class=cF0> fblk_num,clus,file_clus_num,max_blk;
|
|
<a name="l2769"></a> </span><span class=cF1>U8</span><span class=cF0> *clus_buf;
|
|
<a name="l2770"></a>};
|
|
<a name="l2771"></a>
|
|
<a name="l2772"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Memory/Heap"</span><span class=cF0>
|
|
<a name="l2773"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_CFG_HEAP_DBG</span><span class=cF0> </span><span class=cF3>FALSE</span><span class=cF0>
|
|
<a name="l2774"></a>
|
|
<a name="l2775"></a>#</span><span class=cF1>if</span><span class=cF0> </span><span class=cF3>_CFG_HEAP_DBG</span><span class=cF0>
|
|
<a name="l2776"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemUnused</span><span class=cF0>
|
|
<a name="l2777"></a>{
|
|
<a name="l2778"></a> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *hc;
|
|
<a name="l2779"></a> </span><span class=cF1>U8</span><span class=cF0> *caller1,*caller2;
|
|
<a name="l2780"></a> </span><span class=cF9>CMemUnused</span><span class=cF0> *next;
|
|
<a name="l2781"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
|
<a name="l2782"></a>};
|
|
<a name="l2783"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemUsed</span><span class=cF0>
|
|
<a name="l2784"></a>{
|
|
<a name="l2785"></a> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *hc;
|
|
<a name="l2786"></a> </span><span class=cF1>U8</span><span class=cF0> *caller1,*caller2;
|
|
<a name="l2787"></a> </span><span class=cF9>CMemUsed</span><span class=cF0> *next,*last;
|
|
<a name="l2788"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
|
<a name="l2789"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l2790"></a>};
|
|
<a name="l2791"></a>#</span><span class=cF1>else</span><span class=cF0>
|
|
<a name="l2792"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemUnused</span><span class=cF0>
|
|
<a name="l2793"></a>{
|
|
<a name="l2794"></a> </span><span class=cF1>U0</span><span class=cF0> hc;
|
|
<a name="l2795"></a> </span><span class=cF1>U0</span><span class=cF0> caller1,caller2;
|
|
<a name="l2796"></a> </span><span class=cF9>CMemUnused</span><span class=cF0> *next;
|
|
<a name="l2797"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
|
<a name="l2798"></a>};
|
|
<a name="l2799"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemUsed</span><span class=cF0>
|
|
<a name="l2800"></a>{
|
|
<a name="l2801"></a> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *hc;
|
|
<a name="l2802"></a> </span><span class=cF1>U0</span><span class=cF0> caller1,caller2;
|
|
<a name="l2803"></a> </span><span class=cF1>U0</span><span class=cF0> next,last;
|
|
<a name="l2804"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
|
<a name="l2805"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l2806"></a>};
|
|
<a name="l2807"></a>#</span><span class=cF1>endif</span><span class=cF0>
|
|
<a name="l2808"></a>
|
|
<a name="l2809"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Memory/BlkPool"</span><span class=cF0>
|
|
<a name="l2810"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>"::/Doc/Pags"</span><span class=cF0>
|
|
<a name="l2811"></a>
|
|
<a name="l2812"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBS_USED_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'MBUs'</span><span class=cF0>
|
|
<a name="l2813"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MBS_UNUSED_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'MBUn'</span><span class=cF0>
|
|
<a name="l2814"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemBlk</span><span class=cF0>
|
|
<a name="l2815"></a>{
|
|
<a name="l2816"></a> </span><span class=cF9>CMemBlk</span><span class=cF0> *next,*last;
|
|
<a name="l2817"></a> </span><span class=cF9>U32</span><span class=cF0> mb_signature,pags;
|
|
<a name="l2818"></a>};
|
|
<a name="l2819"></a>
|
|
<a name="l2820"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MRT_UNUSED</span><span class=cF0> 0
|
|
<a name="l2821"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MRT_RAM</span><span class=cF0> 1
|
|
<a name="l2822"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MRT_DEV</span><span class=cF0> 2
|
|
<a name="l2823"></a>
|
|
<a name="l2824"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMemRange</span><span class=cF0>
|
|
<a name="l2825"></a>{
|
|
<a name="l2826"></a> </span><span class=cF9>CMemRange</span><span class=cF0> *next,*last;
|
|
<a name="l2827"></a> </span><span class=cF9>U32</span><span class=cF0> type,flags;
|
|
<a name="l2828"></a> </span><span class=cF1>U8</span><span class=cF0> *base;
|
|
<a name="l2829"></a> </span><span class=cF9>I64</span><span class=cF0> size;
|
|
<a name="l2830"></a>};
|
|
<a name="l2831"></a>
|
|
<a name="l2832"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_PAG_BITS</span><span class=cF0> 9
|
|
<a name="l2833"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_PAG_SIZE</span><span class=cF0> (1<<</span><span class=cF3>MEM_PAG_BITS</span><span class=cF0>)
|
|
<a name="l2834"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_HEAP_HASH_SIZE</span><span class=cF0> 1024
|
|
<a name="l2835"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_FREE_PAG_HASH_SIZE</span><span class=cF0> 0x100
|
|
<a name="l2836"></a></span><span class=cF2>//It is common to </span><a href="/Wb/Kernel/Mem/MAllocFree.HC.HTML#l387"><span class=cF4>MAlloc</span></a><span class=cF2>() exact powers of two. There is some overhead.</span><span class=cF0>
|
|
<a name="l2837"></a></span><span class=cF2>//We add 2 pags, so a request is not rounded-up to next power of two.</span><span class=cF0>
|
|
<a name="l2838"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_EXTRA_HASH2_PAGS</span><span class=cF0> 2
|
|
<a name="l2839"></a>
|
|
<a name="l2840"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_ADAM_STK</span><span class=cF0> (</span><span class=cF3>MEM_PAG_SIZE</span><span class=cF0>*512) </span><span class=cF2>//Like 16384*MEM_PAG_SIZE</span><span class=cF0>
|
|
<a name="l2841"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_SETH_STK</span><span class=cF0> (</span><span class=cF3>MEM_PAG_SIZE</span><span class=cF0>*512)
|
|
<a name="l2842"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_INTERRUPT_STK</span><span class=cF0> (</span><span class=cF3>MEM_PAG_SIZE</span><span class=cF0>*512)
|
|
<a name="l2843"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_DFT_STK</span><span class=cF0> (</span><span class=cF3>MEM_PAG_SIZE</span><span class=cF0>*512)
|
|
<a name="l2844"></a>
|
|
<a name="l2845"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASK_HASH_TABLE_SIZE</span><span class=cF0> (1<<10)
|
|
<a name="l2846"></a>
|
|
<a name="l2847"></a></span><span class=cF2>//locked flags</span><span class=cF0>
|
|
<a name="l2848"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BPlf_LOCKED</span><span class=cF0> 0
|
|
<a name="l2849"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBlkPool</span><span class=cF0>
|
|
<a name="l2850"></a>{
|
|
<a name="l2851"></a> </span><span class=cF9>I64</span><span class=cF0> locked_flags,alloced_u8s,used_u8s;
|
|
<a name="l2852"></a> </span><span class=cF9>CMemBlk</span><span class=cF0> *mem_free_lst,
|
|
<a name="l2853"></a> *mem_free_2meg_lst, </span><span class=cF2>//This is for Sup1CodeScraps/Mem/Mem2Meg.HC.</span><span class=cF0>
|
|
<a name="l2854"></a> *free_pag_hash[</span><span class=cF3>MEM_FREE_PAG_HASH_SIZE</span><span class=cF0>],
|
|
<a name="l2855"></a> *free_pag_hash2[64-</span><span class=cF3>MEM_PAG_BITS</span><span class=cF0>];
|
|
<a name="l2856"></a>};
|
|
<a name="l2857"></a>
|
|
<a name="l2858"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Memory/HeapCtrl"</span><span class=cF0>
|
|
<a name="l2859"></a></span><span class=cF2>//locked flags</span><span class=cF0>
|
|
<a name="l2860"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HClf_LOCKED</span><span class=cF0> 0
|
|
<a name="l2861"></a>
|
|
<a name="l2862"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>HEAP_CTRL_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'HcSV'</span><span class=cF0>
|
|
<a name="l2863"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CHeapCtrl</span><span class=cF0>
|
|
<a name="l2864"></a>{
|
|
<a name="l2865"></a> </span><span class=cF9>CBlkPool</span><span class=cF0> *bp;
|
|
<a name="l2866"></a> </span><span class=cF9>U32</span><span class=cF0> hc_signature,pad;
|
|
<a name="l2867"></a> </span><span class=cF9>I64</span><span class=cF0> locked_flags,alloced_u8s,used_u8s;
|
|
<a name="l2868"></a> </span><span class=cF9>CTask</span><span class=cF0> *mem_task;
|
|
<a name="l2869"></a> </span><span class=cF9>CMemBlk</span><span class=cF0> *next_mem_blk,*last_mem_blk;
|
|
<a name="l2870"></a> </span><span class=cF9>CMemBlk</span><span class=cF0> *last_mergable;
|
|
<a name="l2871"></a> </span><span class=cF9>CMemUnused</span><span class=cF0> *malloc_free_lst;
|
|
<a name="l2872"></a> </span><span class=cF9>CMemUsed</span><span class=cF0> *next_um,*last_um;
|
|
<a name="l2873"></a> </span><span class=cF9>CMemUnused</span><span class=cF0> *heap_hash[</span><span class=cF3>MEM_HEAP_HASH_SIZE</span><span class=cF0>/</span><span class=cF1>sizeof</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *)];
|
|
<a name="l2874"></a>};
|
|
<a name="l2875"></a>
|
|
<a name="l2876"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Devices;Memory/Page Tables"</span><span class=cF0>
|
|
<a name="l2877"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDevGlbls</span><span class=cF0>
|
|
<a name="l2878"></a>{
|
|
<a name="l2879"></a> </span><span class=cF9>I64</span><span class=cF0> *idt;
|
|
<a name="l2880"></a> </span><span class=cF1>U8</span><span class=cF0> *mem64_ptr;
|
|
<a name="l2881"></a> </span><span class=cF1>U8</span><span class=cF0> *uncached_alias; </span><span class=cF2>//Alias of lowest 4Gig.</span><span class=cF0>
|
|
<a name="l2882"></a> </span><span class=cF1>U8</span><span class=cF0> mp_apic_ids[</span><span class=cF3>MP_PROCESSORS_NUM</span><span class=cF0>];
|
|
<a name="l2883"></a> </span><span class=cF9>CMemRange</span><span class=cF0> mem32_head;
|
|
<a name="l2884"></a> </span><span class=cF9>CPCIDev</span><span class=cF0> pci_head;
|
|
<a name="l2885"></a>};
|
|
<a name="l2886"></a>
|
|
<a name="l2887"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Graphics/Color;Graphics/Device Contexts"</span><span class=cF0>
|
|
<a name="l2888"></a></span><span class=cF2>//Raster operations</span><span class=cF0>
|
|
<a name="l2889"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPB_EQU</span><span class=cF0> 0x00
|
|
<a name="l2890"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPB_XOR</span><span class=cF0> 0x01
|
|
<a name="l2891"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPB_COLLISION</span><span class=cF0> 0x02
|
|
<a name="l2892"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPB_MONO</span><span class=cF0> 0x03
|
|
<a name="l2893"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPBF_HALF_RANGE_COLOR</span><span class=cF0> 0x10
|
|
<a name="l2894"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPBF_TWO_SIDED</span><span class=cF0> 0x20
|
|
<a name="l2895"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPBF_DITHER</span><span class=cF0> 0x40
|
|
<a name="l2896"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPBF_PROBABILITY_DITHER</span><span class=cF0> 0x80
|
|
<a name="l2897"></a>
|
|
<a name="l2898"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROP_EQU</span><span class=cF0> (</span><span class=cF3>ROPB_EQU</span><span class=cF0><<8)
|
|
<a name="l2899"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROP_XOR</span><span class=cF0> (</span><span class=cF3>ROPB_XOR</span><span class=cF0><<8)
|
|
<a name="l2900"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROP_COLLISION</span><span class=cF0> (</span><span class=cF3>ROPB_COLLISION</span><span class=cF0><<8)
|
|
<a name="l2901"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROP_MONO</span><span class=cF0> (</span><span class=cF3>ROPB_MONO</span><span class=cF0><<8)
|
|
<a name="l2902"></a>
|
|
<a name="l2903"></a></span><span class=cF2>//These are just for </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2910"><span class=cF4>ROPF_PROBABILITY_DITHER</span></a><span class=cF0>
|
|
<a name="l2904"></a></span><span class=cF2>//See </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l57"><span class=cF4>DCLighting</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l2905"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPF_HALF_RANGE_COLOR</span><span class=cF0> 0x1000
|
|
<a name="l2906"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPF_TWO_SIDED</span><span class=cF0> 0x2000
|
|
<a name="l2907"></a>
|
|
<a name="l2908"></a></span><span class=cF2>//These always go in the c1.rop of a CColorROPU32</span><span class=cF0>
|
|
<a name="l2909"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPF_DITHER</span><span class=cF0> 0x40000000
|
|
<a name="l2910"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ROPF_PROBABILITY_DITHER</span><span class=cF0> 0x80000000
|
|
<a name="l2911"></a>
|
|
<a name="l2912"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Graphics/Color"</span><span class=cF0>
|
|
<a name="l2913"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TRANSPARENT</span><span class=cF0> 0xFF
|
|
<a name="l2914"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLACK</span><span class=cF0> 0
|
|
<a name="l2915"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BLUE</span><span class=cF0> 1
|
|
<a name="l2916"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GREEN</span><span class=cF0> 2
|
|
<a name="l2917"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CYAN</span><span class=cF0> 3
|
|
<a name="l2918"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RED</span><span class=cF0> 4
|
|
<a name="l2919"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PURPLE</span><span class=cF0> 5
|
|
<a name="l2920"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BROWN</span><span class=cF0> 6
|
|
<a name="l2921"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTGRAY</span><span class=cF0> 7
|
|
<a name="l2922"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DKGRAY</span><span class=cF0> 8
|
|
<a name="l2923"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTBLUE</span><span class=cF0> 9
|
|
<a name="l2924"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTGREEN</span><span class=cF0> 10
|
|
<a name="l2925"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTCYAN</span><span class=cF0> 11
|
|
<a name="l2926"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTRED</span><span class=cF0> 12
|
|
<a name="l2927"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LTPURPLE</span><span class=cF0> 13
|
|
<a name="l2928"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>YELLOW</span><span class=cF0> 14
|
|
<a name="l2929"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WHITE</span><span class=cF0> 15
|
|
<a name="l2930"></a>
|
|
<a name="l2931"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>COLORS_NUM</span><span class=cF0> 16
|
|
<a name="l2932"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>COLOR_INVALID</span><span class=cF0> 16
|
|
<a name="l2933"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>COLOR_MONO</span><span class=cF0> 0xFF
|
|
<a name="l2934"></a>
|
|
<a name="l2935"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CColorROPU16</span><span class=cF0> </span><span class=cF2>//Don't use this, use CColorROPU32</span><span class=cF0>
|
|
<a name="l2936"></a>{
|
|
<a name="l2937"></a> </span><span class=cF1>U8</span><span class=cF0> color,rop;
|
|
<a name="l2938"></a>};
|
|
<a name="l2939"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CColorROPU32</span><span class=cF0>
|
|
<a name="l2940"></a>{
|
|
<a name="l2941"></a> </span><span class=cF9>CColorROPU16</span><span class=cF0> c0,c1;
|
|
<a name="l2942"></a>};
|
|
<a name="l2943"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>COLORROP_COLORS_MASK</span><span class=cF0> 0x00FF00FF
|
|
<a name="l2944"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>COLORROP_NO_ROP0_MASK</span><span class=cF0> 0xFFFF00FF
|
|
<a name="l2945"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>COLORROP_BITS</span><span class=cF0> 16
|
|
<a name="l2946"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBGR24</span><span class=cF0>
|
|
<a name="l2947"></a>{
|
|
<a name="l2948"></a> </span><span class=cF1>U8</span><span class=cF0> b,g,r,pad;
|
|
<a name="l2949"></a>};
|
|
<a name="l2950"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBGR48</span><span class=cF0>
|
|
<a name="l2951"></a>{
|
|
<a name="l2952"></a> </span><span class=cF9>U16</span><span class=cF0> b,g,r,pad;
|
|
<a name="l2953"></a>};
|
|
<a name="l2954"></a>
|
|
<a name="l2955"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Keyboard Devices;Char/Input;StdIn"</span><span class=cF0>
|
|
<a name="l2956"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>KBD_PORT</span><span class=cF0> 0x60
|
|
<a name="l2957"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>KBD_CTRL</span><span class=cF0> 0x64
|
|
<a name="l2958"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CKbdStateGlbls</span><span class=cF0>
|
|
<a name="l2959"></a>{
|
|
<a name="l2960"></a> </span><span class=cF9>I64</span><span class=cF0> scan_code, </span><span class=cF2>//See </span><a href="/Wb/Doc/CharOverview.DD.HTML#l1"><span class=cF4>scan codes</span></a><span class=cF0>
|
|
<a name="l2961"></a> last_down_scan_code,
|
|
<a name="l2962"></a> cnt, </span><span class=cF2>//Count of keys pressed since boot.</span><span class=cF0>
|
|
<a name="l2963"></a> timestamp, </span><span class=cF2>//Output: GetTSC when event.</span><span class=cF0>
|
|
<a name="l2964"></a> new_key_timestamp; </span><span class=cF2>//Output: GetTSC when new key event.</span><span class=cF0>
|
|
<a name="l2965"></a> </span><span class=cF9>CFifoU8</span><span class=cF0> *fifo,*fifo2; </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2966"></a> </span><span class=cF9>CFifoI64</span><span class=cF0> *scan_code_fifo;
|
|
<a name="l2967"></a>
|
|
<a name="l2968"></a> </span><span class=cF2>//BitTest, </span><a href="/Wb/Kernel/KernelB.HH.HTML#l14"><span class=cF4>Bt</span></a><span class=cF2>(), with a merged scan code.</span><span class=cF0>
|
|
<a name="l2969"></a> </span><span class=cF2>//(Left and right shift merged, for example.)</span><span class=cF0>
|
|
<a name="l2970"></a> </span><span class=cF9>U32</span><span class=cF0> down_bitmap[8],
|
|
<a name="l2971"></a></span><span class=cF2>//BitTest, </span><a href="/Wb/Kernel/KernelB.HH.HTML#l14"><span class=cF4>Bt</span></a><span class=cF2>(), with an unmerged scan code.</span><span class=cF0>
|
|
<a name="l2972"></a> down_bitmap2[8];
|
|
<a name="l2973"></a>
|
|
<a name="l2974"></a> </span><span class=cF1>Bool</span><span class=cF0> rst, </span><span class=cF2>//Private: Reset KbdMs</span><span class=cF0>
|
|
<a name="l2975"></a> irqs_working; </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2976"></a>};
|
|
<a name="l2977"></a>
|
|
<a name="l2978"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Mouse"</span><span class=cF0>
|
|
<a name="l2979"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMsHardStateGlbls</span><span class=cF0>
|
|
<a name="l2980"></a>{
|
|
<a name="l2981"></a> </span><span class=cF9>CD3I64</span><span class=cF0> pos, </span><span class=cF2>//Position in pixels</span><span class=cF0>
|
|
<a name="l2982"></a> prescale;
|
|
<a name="l2983"></a> </span><span class=cF9>CD3</span><span class=cF0> scale;
|
|
<a name="l2984"></a> </span><span class=cF1>F64</span><span class=cF0> speed; </span><span class=cF2>//Output: How fast the user is moving it.</span><span class=cF0>
|
|
<a name="l2985"></a> </span><span class=cF9>I64</span><span class=cF0> timestamp, </span><span class=cF2>//Output: GetTSC when event.</span><span class=cF0>
|
|
<a name="l2986"></a> install_attempts, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2987"></a> pkt_size; </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2988"></a> </span><span class=cF9>CFifoU8</span><span class=cF0> *fifo,*fifo2; </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2989"></a> </span><span class=cF1>Bool</span><span class=cF0> bttns[5],
|
|
<a name="l2990"></a> has_wheel,
|
|
<a name="l2991"></a> has_ext_bttns,
|
|
<a name="l2992"></a> evt, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2993"></a> installed, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2994"></a> install_in_progress, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2995"></a> irqs_working; </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l2996"></a>};
|
|
<a name="l2997"></a>
|
|
<a name="l2998"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMsStateGlbls</span><span class=cF0>
|
|
<a name="l2999"></a>{
|
|
<a name="l3000"></a> </span><span class=cF9>CD3I64</span><span class=cF0> pos, </span><span class=cF2>//Position in pixels</span><span class=cF0>
|
|
<a name="l3001"></a> pos_text, </span><span class=cF2>//Position in text rows,cols</span><span class=cF0>
|
|
<a name="l3002"></a> presnap,
|
|
<a name="l3003"></a> </span><span class=cF1>offset</span><span class=cF0>;
|
|
<a name="l3004"></a> </span><span class=cF9>CD3</span><span class=cF0> scale;
|
|
<a name="l3005"></a> </span><span class=cF1>F64</span><span class=cF0> speed; </span><span class=cF2>//Output: How fast the user is moving it.</span><span class=cF0>
|
|
<a name="l3006"></a> </span><span class=cF9>I64</span><span class=cF0> timestamp; </span><span class=cF2>//Output: GetTSC when event.</span><span class=cF0>
|
|
<a name="l3007"></a> </span><span class=cF1>F64</span><span class=cF0> dbl_time, </span><span class=cF2>//Input: Time threshold for calling it a double click.</span><span class=cF0>
|
|
<a name="l3008"></a> left_dbl_time, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l3009"></a> right_dbl_time; </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l3010"></a> </span><span class=cF1>Bool</span><span class=cF0> lb, </span><span class=cF2>//Left Bttn</span><span class=cF0>
|
|
<a name="l3011"></a> rb, </span><span class=cF2>//Right Bttn</span><span class=cF0>
|
|
<a name="l3012"></a> show,
|
|
<a name="l3013"></a> has_wheel,
|
|
<a name="l3014"></a> left_dbl, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l3015"></a> left_down_sent, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l3016"></a> right_dbl, </span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l3017"></a> right_down_sent;</span><span class=cF2>//Private</span><span class=cF0>
|
|
<a name="l3018"></a>};
|
|
<a name="l3019"></a>
|
|
<a name="l3020"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CGridGlbls</span><span class=cF0>
|
|
<a name="l3021"></a>{
|
|
<a name="l3022"></a> </span><span class=cF1>Bool</span><span class=cF0> snap format </span><span class=cF6>"$CB,\"Snap Grid\"$\n"</span><span class=cF0>,
|
|
<a name="l3023"></a> show format </span><span class=cF6>"$CB,\"Show Grid\"$\n"</span><span class=cF0>,
|
|
<a name="l3024"></a> coord format </span><span class=cF6>"$CB,\"Show Coordinates\"$\n"</span><span class=cF0>;
|
|
<a name="l3025"></a> </span><span class=cF1>U8</span><span class=cF0> pad[5];
|
|
<a name="l3026"></a> </span><span class=cF1>F64</span><span class=cF0> x format </span><span class=cF6>"$DA-TRM,A=\"X Spacing:%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3027"></a> y format </span><span class=cF6>"$DA-TRM,A=\"Y Spacing:%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3028"></a> z format </span><span class=cF6>"$DA-TRM,A=\"Z Spacing:%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3029"></a> x_offset format </span><span class=cF6>"$DA-TRM,A=\"X Offset :%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3030"></a> y_offset format </span><span class=cF6>"$DA-TRM,A=\"Y Offset :%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3031"></a> z_offset format </span><span class=cF6>"$DA-TRM,A=\"Z Offset :%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3032"></a> x_speed format </span><span class=cF6>"$DA-TRM,A=\"X Speed :%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3033"></a> y_speed format </span><span class=cF6>"$DA-TRM,A=\"Y Speed :%6.3f\"$\n"</span><span class=cF0>,
|
|
<a name="l3034"></a> z_speed format </span><span class=cF6>"$DA-TRM,A=\"Z Speed :%6.3f\"$\n"</span><span class=cF0>;
|
|
<a name="l3035"></a>};
|
|
<a name="l3036"></a>
|
|
<a name="l3037"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Ctrls"</span><span class=cF0>
|
|
<a name="l3038"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLT_GENERIC</span><span class=cF0> 0
|
|
<a name="l3039"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLT_WIN_HSCROLL</span><span class=cF0> 1 </span><span class=cF2>//unique</span><span class=cF0>
|
|
<a name="l3040"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLT_WIN_VSCROLL</span><span class=cF0> 2 </span><span class=cF2>//unique</span><span class=cF0>
|
|
<a name="l3041"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLT_VIEWING_ANGLES</span><span class=cF0> 3 </span><span class=cF2>//unique</span><span class=cF0>
|
|
<a name="l3042"></a>
|
|
<a name="l3043"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLF_SHOW</span><span class=cF0> 1
|
|
<a name="l3044"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLF_BORDER</span><span class=cF0> 2
|
|
<a name="l3045"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLF_CAPTURE_LEFT_MS</span><span class=cF0> 4
|
|
<a name="l3046"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLF_CAPTURE_RIGHT_MS</span><span class=cF0> 8
|
|
<a name="l3047"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CTRLF_CLICKED</span><span class=cF0> 16
|
|
<a name="l3048"></a>
|
|
<a name="l3049"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>WSSf_SET_TO_POS</span><span class=cF0> 0
|
|
<a name="l3050"></a>
|
|
<a name="l3051"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CWinScroll</span><span class=cF0>
|
|
<a name="l3052"></a>{
|
|
<a name="l3053"></a> </span><span class=cF9>I64</span><span class=cF0> min,pos,max;
|
|
<a name="l3054"></a> </span><span class=cF9>U32</span><span class=cF0> flags;
|
|
<a name="l3055"></a> </span><span class=cF1>U8</span><span class=cF0> color,pad[3];
|
|
<a name="l3056"></a>};
|
|
<a name="l3057"></a>
|
|
<a name="l3058"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CViewAngles</span><span class=cF0>
|
|
<a name="l3059"></a>{
|
|
<a name="l3060"></a> </span><span class=cF9>I64</span><span class=cF0> sx,sy,sz;
|
|
<a name="l3061"></a> </span><span class=cF1>F64</span><span class=cF0> ax,ay,az;
|
|
<a name="l3062"></a> </span><span class=cF9>CColorROPU32</span><span class=cF0> cx,cy,cz,cbd,cbg,cfg;
|
|
<a name="l3063"></a>};
|
|
<a name="l3064"></a>
|
|
<a name="l3065"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCtrl</span><span class=cF0>
|
|
<a name="l3066"></a>{
|
|
<a name="l3067"></a> </span><span class=cF9>CCtrl</span><span class=cF0> *next,*last;
|
|
<a name="l3068"></a> </span><span class=cF9>CTask</span><span class=cF0> *win_task;
|
|
<a name="l3069"></a> </span><span class=cF9>I64</span><span class=cF0> type,flags;
|
|
<a name="l3070"></a>
|
|
<a name="l3071"></a> </span><span class=cF2>//win pix coordinates</span><span class=cF0>
|
|
<a name="l3072"></a> </span><span class=cF9>I64</span><span class=cF0> left,right,top,bottom;
|
|
<a name="l3073"></a>
|
|
<a name="l3074"></a> </span><span class=cF2>//scrn pix coordinates (derived)</span><span class=cF0>
|
|
<a name="l3075"></a> </span><span class=cF9>I64</span><span class=cF0> scrn_left,scrn_right,scrn_top,scrn_bottom;
|
|
<a name="l3076"></a>
|
|
<a name="l3077"></a> </span><span class=cF1>U8</span><span class=cF0> *state;
|
|
<a name="l3078"></a>
|
|
<a name="l3079"></a> </span><span class=cF2>//called on resize</span><span class=cF0>
|
|
<a name="l3080"></a> </span><span class=cF1>U0</span><span class=cF0> (*update_derived_vals)(</span><span class=cF9>CCtrl</span><span class=cF0> *c);
|
|
<a name="l3081"></a> </span><span class=cF1>U0</span><span class=cF0> (*draw_it)(</span><span class=cF9>CDC</span><span class=cF0> *dc,</span><span class=cF9>CCtrl</span><span class=cF0> *c);
|
|
<a name="l3082"></a>
|
|
<a name="l3083"></a> </span><span class=cF1>Bool</span><span class=cF0> (*inside_ctrl)(</span><span class=cF9>CCtrl</span><span class=cF0> *c,</span><span class=cF9>I64</span><span class=cF0> x,</span><span class=cF9>I64</span><span class=cF0> y); </span><span class=cF2>//For nonbox shapes</span><span class=cF0>
|
|
<a name="l3084"></a> </span><span class=cF1>U0</span><span class=cF0> (*left_click)(</span><span class=cF9>CCtrl</span><span class=cF0> *c,</span><span class=cF9>I64</span><span class=cF0> x,</span><span class=cF9>I64</span><span class=cF0> y,</span><span class=cF1>Bool</span><span class=cF0> down);
|
|
<a name="l3085"></a> </span><span class=cF1>U0</span><span class=cF0> (*right_click)(</span><span class=cF9>CCtrl</span><span class=cF0> *c,</span><span class=cF9>I64</span><span class=cF0> x,</span><span class=cF9>I64</span><span class=cF0> y,</span><span class=cF1>Bool</span><span class=cF0> down);
|
|
<a name="l3086"></a> </span><span class=cF1>U0</span><span class=cF0> (*wheel_chg)(</span><span class=cF9>CCtrl</span><span class=cF0> *c,</span><span class=cF9>I64</span><span class=cF0> delta);
|
|
<a name="l3087"></a>};
|
|
<a name="l3088"></a>
|
|
<a name="l3089"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Menus"</span><span class=cF0>
|
|
<a name="l3090"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMenuEntry</span><span class=cF0>
|
|
<a name="l3091"></a>{
|
|
<a name="l3092"></a> </span><span class=cF9>CMenuEntry</span><span class=cF0> *next;
|
|
<a name="l3093"></a> </span><span class=cF9>CMenuEntry</span><span class=cF0> *sub;
|
|
<a name="l3094"></a> </span><span class=cF1>U8</span><span class=cF0> name[32];
|
|
<a name="l3095"></a> </span><span class=cF9>I64</span><span class=cF0> msg_code,arg1,arg2;
|
|
<a name="l3096"></a> </span><span class=cF1>Bool</span><span class=cF0> checked,dir,pad[6];
|
|
<a name="l3097"></a>};
|
|
<a name="l3098"></a>
|
|
<a name="l3099"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMenu</span><span class=cF0>
|
|
<a name="l3100"></a>{
|
|
<a name="l3101"></a> </span><span class=cF9>CMenu</span><span class=cF0> *next;
|
|
<a name="l3102"></a> </span><span class=cF9>CMenuEntry</span><span class=cF0> *sub;
|
|
<a name="l3103"></a> </span><span class=cF9>CTask</span><span class=cF0> *task;
|
|
<a name="l3104"></a> </span><span class=cF9>I64</span><span class=cF0> flags;
|
|
<a name="l3105"></a> </span><span class=cF1>U8</span><span class=cF0> attr,pad[7];
|
|
<a name="l3106"></a>};
|
|
<a name="l3107"></a>
|
|
<a name="l3108"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Task"</span><span class=cF0>
|
|
<a name="l3109"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CBpt</span><span class=cF0>
|
|
<a name="l3110"></a>{
|
|
<a name="l3111"></a> </span><span class=cF9>CBpt</span><span class=cF0> *next;
|
|
<a name="l3112"></a> </span><span class=cF1>U8</span><span class=cF0> *addr,
|
|
<a name="l3113"></a> val,pad[7];
|
|
<a name="l3114"></a>};
|
|
<a name="l3115"></a>
|
|
<a name="l3116"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CExcept</span><span class=cF0>
|
|
<a name="l3117"></a>{
|
|
<a name="l3118"></a> </span><span class=cF9>CExcept</span><span class=cF0> *next,*last;
|
|
<a name="l3119"></a> </span><span class=cF9>I64</span><span class=cF0> hndlr_catch,hndlr_untry,
|
|
<a name="l3120"></a> rsp,rbp,rflags,rsi,rdi,r10,r11,r12,r13,r14,r15;
|
|
<a name="l3121"></a>};
|
|
<a name="l3122"></a>
|
|
<a name="l3123"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFPU</span><span class=cF0>
|
|
<a name="l3124"></a>{
|
|
<a name="l3125"></a> </span><span class=cF1>U8</span><span class=cF0> body[512];
|
|
<a name="l3126"></a>};
|
|
<a name="l3127"></a>
|
|
<a name="l3128"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Job/Exe;Task/Job/Exe"</span><span class=cF0>
|
|
<a name="l3129"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_WAKE_MASTER</span><span class=cF0> 0
|
|
<a name="l3130"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_FOCUS_MASTER</span><span class=cF0> 1
|
|
<a name="l3131"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_EXIT_ON_COMPLETE</span><span class=cF0> 2
|
|
<a name="l3132"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_DONT_FILTER</span><span class=cF0> 3
|
|
<a name="l3133"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_HIGHEST_PRIORITY</span><span class=cF0> 4
|
|
<a name="l3134"></a></span><span class=cF2>//MP flags</span><span class=cF0>
|
|
<a name="l3135"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_DONE</span><span class=cF0> 5
|
|
<a name="l3136"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_DISPATCHED</span><span class=cF0> 6
|
|
<a name="l3137"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_FREE_ON_COMPLETE</span><span class=cF0> 7
|
|
<a name="l3138"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBf_ADD_TO_QUE</span><span class=cF0> 8
|
|
<a name="l3139"></a>
|
|
<a name="l3140"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBT_TEXT_INPUT</span><span class=cF0> 0 </span><span class=cF2>//</span><a href="/Wb/Kernel/Job.HC.HTML#l75"><span class=cF4>TaskText</span></a><span class=cF2>()</span><span class=cF0> </span><span class=cF2>Feed StdIn</span><span class=cF0>
|
|
<a name="l3141"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBT_MSG</span><span class=cF0> 1 </span><span class=cF2>//</span><a href="/Wb/Kernel/Job.HC.HTML#l119"><span class=cF4>TaskMsg</span></a><span class=cF2>()</span><span class=cF0> </span><span class=cF2>Post msg</span><span class=cF0>
|
|
<a name="l3142"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBT_EXE_STR</span><span class=cF0> 2 </span><span class=cF2>//</span><a href="/Wb/Kernel/Job.HC.HTML#l39"><span class=cF4>TaskExe</span></a><span class=cF2>()</span><span class=cF0> </span><span class=cF2>Compile & execute src code text</span><span class=cF0>
|
|
<a name="l3143"></a></span><span class=cF2>//MP cmds</span><span class=cF0>
|
|
<a name="l3144"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBT_CALL</span><span class=cF0> 3 </span><span class=cF2>//</span><a href="/Wb/Kernel/MultiProc.HC.HTML#l213"><span class=cF4>JobQue</span></a><span class=cF2>()</span><span class=cF0> </span><span class=cF2>Tell MP to call function</span><span class=cF0>
|
|
<a name="l3145"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBT_SPAWN_TASK</span><span class=cF0> 4 </span><span class=cF2>//</span><a href="/Wb/Kernel/KTask.HC.HTML#l242"><span class=cF4>Spawn</span></a><span class=cF2>()</span><span class=cF0> </span><span class=cF2>Tell MP to spawn task</span><span class=cF0>
|
|
<a name="l3146"></a>
|
|
<a name="l3147"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CJob</span><span class=cF0>
|
|
<a name="l3148"></a>{
|
|
<a name="l3149"></a> </span><span class=cF9>CJob</span><span class=cF0> *next,*last;
|
|
<a name="l3150"></a> </span><span class=cF9>CJobCtrl</span><span class=cF0> *ctrl;
|
|
<a name="l3151"></a> </span><span class=cF9>I64</span><span class=cF0> job_code,flags,msg_code;
|
|
<a name="l3152"></a>
|
|
<a name="l3153"></a> </span><span class=cF9>I64</span><span class=cF0> (*addr)(</span><span class=cF1>U8</span><span class=cF0> *fun_arg);
|
|
<a name="l3154"></a> </span><span class=cF1>U8</span><span class=cF0> *fun_arg;
|
|
<a name="l3155"></a>
|
|
<a name="l3156"></a> </span><span class=cF1>U8</span><span class=cF0> *aux_str;
|
|
<a name="l3157"></a> </span><span class=cF9>I64</span><span class=cF0> aux1,aux2, </span><span class=cF2>//Sometimes called arg1 and arg2. (Windows msg param1 param2)</span><span class=cF0>
|
|
<a name="l3158"></a> res;
|
|
<a name="l3159"></a>
|
|
<a name="l3160"></a> </span><span class=cF9>CTask</span><span class=cF0> *spawned_task,
|
|
<a name="l3161"></a> *master_task;
|
|
<a name="l3162"></a>};
|
|
<a name="l3163"></a>
|
|
<a name="l3164"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>JOBCf_LOCKED</span><span class=cF0> 0
|
|
<a name="l3165"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CJobCtrl</span><span class=cF0>
|
|
<a name="l3166"></a>{
|
|
<a name="l3167"></a> </span><span class=cF9>CJob</span><span class=cF0> *next_waiting,*last_waiting;
|
|
<a name="l3168"></a> </span><span class=cF9>CJob</span><span class=cF0> *next_done,*last_done;
|
|
<a name="l3169"></a> </span><span class=cF9>I64</span><span class=cF0> flags;
|
|
<a name="l3170"></a>};
|
|
<a name="l3171"></a>
|
|
<a name="l3172"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Messages"</span><span class=cF0>
|
|
<a name="l3173"></a></span><span class=cF2>//See </span><a href="/Wb/Demo/MsgLoop.HC.HTML#l1"><span class=cF4>::/Demo/MsgLoop.HC</span></a><span class=cF0>
|
|
<a name="l3174"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_NULL</span><span class=cF0> 0
|
|
<a name="l3175"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_CMD</span><span class=cF0> 1
|
|
<a name="l3176"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_KEY_DOWN</span><span class=cF0> 2 </span><span class=cF2>//(</span><a href="/Wb/Kernel/KernelA.HH.HTML#l3426"><span class=cF4>ASCII</span></a><span class=cF2>,</span><a href="/Wb/Doc/CharOverview.DD.HTML#l1"><span class=cF4>scan code</span></a><span class=cF2>) Press <CTRL-SHIFT-L></span><span class=cF0>
|
|
<a name="l3177"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_KEY_UP</span><span class=cF0> 3 </span><span class=cF2>//(</span><a href="/Wb/Kernel/KernelA.HH.HTML#l3426"><span class=cF4>ASCII</span></a><span class=cF2>,</span><a href="/Wb/Doc/CharOverview.DD.HTML#l1"><span class=cF4>scan code</span></a><span class=cF2>) Press <CTRL-SHIFT-L></span><span class=cF0>
|
|
<a name="l3178"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_MOVE</span><span class=cF0> 4 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3179"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_L_DOWN</span><span class=cF0> 5 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3180"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_L_UP</span><span class=cF0> 6 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3181"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_L_D_DOWN</span><span class=cF0> 7 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3182"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_L_D_UP</span><span class=cF0> 8 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3183"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_R_DOWN</span><span class=cF0> 9 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3184"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_R_UP</span><span class=cF0> 10 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3185"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_R_D_DOWN</span><span class=cF0> 11 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3186"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_R_D_UP</span><span class=cF0> 12 </span><span class=cF2>//(x,y)</span><span class=cF0>
|
|
<a name="l3187"></a>
|
|
<a name="l3188"></a></span><span class=cF2>//Fake messages used to send both an up and down.</span><span class=cF0>
|
|
<a name="l3189"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_KEY_DOWN_UP</span><span class=cF0> -2 </span><span class=cF2>//Down & UP</span><span class=cF0>
|
|
<a name="l3190"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_L_DOWN_UP</span><span class=cF0> -5 </span><span class=cF2>//Down & Up</span><span class=cF0>
|
|
<a name="l3191"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_L_D_DOWN_UP</span><span class=cF0> -7 </span><span class=cF2>//Down & Up</span><span class=cF0>
|
|
<a name="l3192"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_R_DOWN_UP</span><span class=cF0> -9 </span><span class=cF2>//Down & Up</span><span class=cF0>
|
|
<a name="l3193"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MSG_MS_R_D_DOWN_UP</span><span class=cF0> -11 </span><span class=cF2>//Down & Up</span><span class=cF0>
|
|
<a name="l3194"></a>
|
|
<a name="l3195"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Task/Settings"</span><span class=cF0>
|
|
<a name="l3196"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TSF_SAME_SONG</span><span class=cF0> 1
|
|
<a name="l3197"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTaskSettings</span><span class=cF0>
|
|
<a name="l3198"></a>{
|
|
<a name="l3199"></a> </span><span class=cF9>CTaskSettings</span><span class=cF0> *next;
|
|
<a name="l3200"></a> </span><span class=cF1>U8</span><span class=cF0> *cur_dir;
|
|
<a name="l3201"></a> </span><span class=cF9>I64</span><span class=cF0> left,right,top,bottom;
|
|
<a name="l3202"></a> </span><span class=cF1>U0</span><span class=cF0> (*draw_it)(</span><span class=cF9>CTask</span><span class=cF0> *task,</span><span class=cF9>CDC</span><span class=cF0> *dc);
|
|
<a name="l3203"></a> </span><span class=cF1>U0</span><span class=cF0> (*task_end_cb)();
|
|
<a name="l3204"></a> </span><span class=cF9>CTask</span><span class=cF0> *song_task,*animate_task;
|
|
<a name="l3205"></a> </span><span class=cF9>I64</span><span class=cF0> scroll_x,scroll_y,scroll_z;
|
|
<a name="l3206"></a> </span><span class=cF9>CBGR48</span><span class=cF0> palette[</span><span class=cF3>COLORS_NUM</span><span class=cF0>];
|
|
<a name="l3207"></a> </span><span class=cF9>U32</span><span class=cF0> win_inhibit;
|
|
<a name="l3208"></a> </span><span class=cF1>U8</span><span class=cF0> text_attr,title_src,
|
|
<a name="l3209"></a> border_attr,border_src,
|
|
<a name="l3210"></a> task_title[</span><span class=cF3>STR_LEN</span><span class=cF0>];
|
|
<a name="l3211"></a> </span><span class=cF1>Bool</span><span class=cF0> border,hide_cursor,highlight_cursor,scroll,autocomplete,pad[3];
|
|
<a name="l3212"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l3213"></a>};
|
|
<a name="l3214"></a>
|
|
<a name="l3215"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Task"</span><span class=cF0>
|
|
<a name="l3216"></a></span><span class=cF2>//CTask.border_src</span><span class=cF0>
|
|
<a name="l3217"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDS_CONST</span><span class=cF0> 0
|
|
<a name="l3218"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDS_CUR_DRV</span><span class=cF0> 1
|
|
<a name="l3219"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BDS_ED_FILENAME_DRV</span><span class=cF0> 2
|
|
<a name="l3220"></a>
|
|
<a name="l3221"></a></span><span class=cF2>//CTask.title_src</span><span class=cF0>
|
|
<a name="l3222"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TTS_CONST</span><span class=cF0> 0
|
|
<a name="l3223"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TTS_LOCKED_CONST</span><span class=cF0> 1 </span><span class=cF2>//This is not strictly enforced</span><span class=cF0>
|
|
<a name="l3224"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TTS_TASK_NAME</span><span class=cF0> 2
|
|
<a name="l3225"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TTS_ED_FILENAME</span><span class=cF0> 3
|
|
<a name="l3226"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TTS_CUR_LEX</span><span class=cF0> 4
|
|
<a name="l3227"></a>
|
|
<a name="l3228"></a></span><span class=cF2>//CTask.task_flags</span><span class=cF0>
|
|
<a name="l3229"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_TASK_LOCK</span><span class=cF0> 0
|
|
<a name="l3230"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_KILL_TASK</span><span class=cF0> 1
|
|
<a name="l3231"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_SUSPENDED</span><span class=cF0> 2
|
|
<a name="l3232"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_IDLE</span><span class=cF0> 3
|
|
<a name="l3233"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_CMD_LINE_PMT</span><span class=cF0> 4
|
|
<a name="l3234"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_INPUT_FILTER_TASK</span><span class=cF0> 5
|
|
<a name="l3235"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_FILTER_INPUT</span><span class=cF0> 6
|
|
<a name="l3236"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_HAS_SONG</span><span class=cF0> 7
|
|
<a name="l3237"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_DISABLE_BPTS</span><span class=cF0> 8
|
|
<a name="l3238"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_AWAITING_MSG</span><span class=cF0> 9
|
|
<a name="l3239"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_BREAK_LOCKED</span><span class=cF0> 10
|
|
<a name="l3240"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_PENDING_BREAK</span><span class=cF0> 11
|
|
<a name="l3241"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_BREAK_TO_SHIFT_ESC</span><span class=cF0> 12
|
|
<a name="l3242"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_KILL_AFTER_DBG</span><span class=cF0> 13
|
|
<a name="l3243"></a>
|
|
<a name="l3244"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASKf_NONTIMER_RAND</span><span class=cF0> 14
|
|
<a name="l3245"></a>
|
|
<a name="l3246"></a></span><span class=cF2>//CTask.display_flags</span><span class=cF0>
|
|
<a name="l3247"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DISPLAYf_SHOW</span><span class=cF0> 0
|
|
<a name="l3248"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DISPLAYf_NOT_RAW</span><span class=cF0> 1
|
|
<a name="l3249"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DISPLAYf_SILENT</span><span class=cF0> 2
|
|
<a name="l3250"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DISPLAYf_NO_BORDER</span><span class=cF0> 3
|
|
<a name="l3251"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DISPLAYf_WIN_ON_TOP</span><span class=cF0> 4
|
|
<a name="l3252"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DISPLAYf_CHILDREN_NOT_ON_TOP</span><span class=cF0> 5
|
|
<a name="l3253"></a>
|
|
<a name="l3254"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASK_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'TskS'</span><span class=cF0>
|
|
<a name="l3255"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASK_NAME_LEN</span><span class=cF0> 32
|
|
<a name="l3256"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>TASK_EXCEPT_CALLERS</span><span class=cF0> 8
|
|
<a name="l3257"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTaskStk</span><span class=cF0>
|
|
<a name="l3258"></a>{
|
|
<a name="l3259"></a> </span><span class=cF9>CTaskStk</span><span class=cF0> *next_stk;
|
|
<a name="l3260"></a> </span><span class=cF9>I64</span><span class=cF0> stk_size,stk_ptr;
|
|
<a name="l3261"></a> </span><span class=cF1>U0</span><span class=cF0> stk_base;
|
|
<a name="l3262"></a>};
|
|
<a name="l3263"></a>
|
|
<a name="l3264"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DYING_JIFFIES</span><span class=cF0> </span><span class=cF5>ToI64</span><span class=cF0>(</span><span class=cF3>JIFFY_FREQ</span><span class=cF0>/5)
|
|
<a name="l3265"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTaskDying</span><span class=cF0>
|
|
<a name="l3266"></a>{
|
|
<a name="l3267"></a> </span><span class=cF9>CTask</span><span class=cF0> *next,*last;
|
|
<a name="l3268"></a> </span><span class=cF9>I64</span><span class=cF0> wake_jiffy;
|
|
<a name="l3269"></a>};
|
|
<a name="l3270"></a>
|
|
<a name="l3271"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0> </span><span class=cF2>//The Fs segment reg points to current CTask.</span><span class=cF0>
|
|
<a name="l3272"></a>{
|
|
<a name="l3273"></a> </span><span class=cF9>CTask</span><span class=cF0> *addr; </span><span class=cF2>//Self-addressed ptr</span><span class=cF0>
|
|
<a name="l3274"></a> </span><span class=cF9>U32</span><span class=cF0> task_signature,win_inhibit;
|
|
<a name="l3275"></a>#</span><span class=cF1>assert</span><span class=cF0> $==</span><span class=cF1>offset</span><span class=cF0>(</span><span class=cF9>CTaskDying</span><span class=cF0>.wake_jiffy)
|
|
<a name="l3276"></a> </span><span class=cF9>I64</span><span class=cF0> wake_jiffy;
|
|
<a name="l3277"></a> </span><span class=cF9>U32</span><span class=cF0> task_flags,display_flags;
|
|
<a name="l3278"></a>
|
|
<a name="l3279"></a> </span><span class=cF9>CHeapCtrl</span><span class=cF0> *code_heap,*data_heap;
|
|
<a name="l3280"></a>
|
|
<a name="l3281"></a> </span><span class=cF9>CDoc</span><span class=cF0> *put_doc,*display_doc, </span><span class=cF2>//When double buffering, these two differ.</span><span class=cF0>
|
|
<a name="l3282"></a> *border_doc;
|
|
<a name="l3283"></a> </span><span class=cF9>I64</span><span class=cF0> win_left,win_right,win_top,win_bottom;
|
|
<a name="l3284"></a>
|
|
<a name="l3285"></a> </span><span class=cF9>CDrv</span><span class=cF0> *cur_dv;
|
|
<a name="l3286"></a> </span><span class=cF1>U8</span><span class=cF0> *cur_dir;
|
|
<a name="l3287"></a>
|
|
<a name="l3288"></a> </span><span class=cF9>CTask</span><span class=cF0> *parent_task,
|
|
<a name="l3289"></a> *next_task,*last_task,
|
|
<a name="l3290"></a> *next_input_filter_task,*last_input_filter_task,
|
|
<a name="l3291"></a> *next_sibling_task,*last_sibling_task,
|
|
<a name="l3292"></a> *next_child_task,*last_child_task;
|
|
<a name="l3293"></a>
|
|
<a name="l3294"></a> </span><span class=cF2>//These are derived from left,top,right,bottom</span><span class=cF0>
|
|
<a name="l3295"></a> </span><span class=cF9>I64</span><span class=cF0> win_width,win_height,
|
|
<a name="l3296"></a> pix_left,pix_right,pix_width, </span><span class=cF2>//These are in pixs, not characters</span><span class=cF0>
|
|
<a name="l3297"></a> pix_top,pix_bottom,pix_height,
|
|
<a name="l3298"></a> scroll_x,scroll_y,scroll_z;
|
|
<a name="l3299"></a>
|
|
<a name="l3300"></a> </span><span class=cF2>//These must be in this order</span><span class=cF0>
|
|
<a name="l3301"></a> </span><span class=cF2>//for </span><a href="/Wb/Kernel/Sched.HC.HTML#l55"><span class=cF4>TASK_CONTEXT_SAVE</span></a><span class=cF2> and </span><a href="/Wb/Kernel/Sched.HC.HTML#l99"><span class=cF4>_TASK_CONTEXT_RESTORE</span></a><span class=cF0>
|
|
<a name="l3302"></a> </span><span class=cF9>I64</span><span class=cF0> rip,rflags,rsp,rsi,rax,rcx,rdx,rbx,rbp,rdi,
|
|
<a name="l3303"></a> r8,r9,r10,r11,r12,r13,r14,r15;
|
|
<a name="l3304"></a> </span><span class=cF9>CCPU</span><span class=cF0> *gs;
|
|
<a name="l3305"></a> </span><span class=cF9>CFPU</span><span class=cF0> *fpu_mmx;
|
|
<a name="l3306"></a> </span><span class=cF9>I64</span><span class=cF0> swap_cnter;
|
|
<a name="l3307"></a>
|
|
<a name="l3308"></a> </span><span class=cF1>U0</span><span class=cF0> (*draw_it)(</span><span class=cF9>CTask</span><span class=cF0> *task,</span><span class=cF9>CDC</span><span class=cF0> *dc);
|
|
<a name="l3309"></a>
|
|
<a name="l3310"></a> </span><span class=cF1>U8</span><span class=cF0> task_title[</span><span class=cF3>STR_LEN</span><span class=cF0>],
|
|
<a name="l3311"></a> task_name[</span><span class=cF3>TASK_NAME_LEN</span><span class=cF0>],
|
|
<a name="l3312"></a> wallpaper_data[</span><span class=cF3>STR_LEN</span><span class=cF0>],
|
|
<a name="l3313"></a>
|
|
<a name="l3314"></a> title_src,border_src,
|
|
<a name="l3315"></a> text_attr,border_attr;
|
|
<a name="l3316"></a> </span><span class=cF9>U16</span><span class=cF0> win_z_num,pad;
|
|
<a name="l3317"></a>
|
|
<a name="l3318"></a> </span><span class=cF9>CTaskStk</span><span class=cF0> *stk;
|
|
<a name="l3319"></a>
|
|
<a name="l3320"></a> </span><span class=cF9>CExcept</span><span class=cF0> *next_except,*last_except;
|
|
<a name="l3321"></a> </span><span class=cF9>I64</span><span class=cF0> except_rbp, </span><span class=cF2>//throw routine's RBP</span><span class=cF0>
|
|
<a name="l3322"></a> except_ch; </span><span class=cF2>//throw(ch)</span><span class=cF0>
|
|
<a name="l3323"></a> </span><span class=cF1>U8</span><span class=cF0> *except_callers[</span><span class=cF3>TASK_EXCEPT_CALLERS</span><span class=cF0>];
|
|
<a name="l3324"></a>
|
|
<a name="l3325"></a> </span><span class=cF1>Bool</span><span class=cF0> catch_except;
|
|
<a name="l3326"></a> </span><span class=cF1>Bool</span><span class=cF0> new_answer;
|
|
<a name="l3327"></a> </span><span class=cF1>U8</span><span class=cF0> answer_type,pad[5];
|
|
<a name="l3328"></a> </span><span class=cF9>I64</span><span class=cF0> answer;
|
|
<a name="l3329"></a> </span><span class=cF1>F64</span><span class=cF0> answer_time;
|
|
<a name="l3330"></a> </span><span class=cF9>CBpt</span><span class=cF0> *bpt_lst;
|
|
<a name="l3331"></a> </span><span class=cF9>CCtrl</span><span class=cF0> *next_ctrl,*last_ctrl;
|
|
<a name="l3332"></a> </span><span class=cF9>CMenu</span><span class=cF0> *cur_menu;
|
|
<a name="l3333"></a> </span><span class=cF9>CTaskSettings</span><span class=cF0> *next_settings;
|
|
<a name="l3334"></a> </span><span class=cF9>CMathODE</span><span class=cF0> *next_ode,*last_ode;
|
|
<a name="l3335"></a> </span><span class=cF1>F64</span><span class=cF0> last_ode_time;
|
|
<a name="l3336"></a> </span><span class=cF9>CHashTable</span><span class=cF0> *hash_table;
|
|
<a name="l3337"></a>
|
|
<a name="l3338"></a> </span><span class=cF9>CJobCtrl</span><span class=cF0> srv_ctrl;
|
|
<a name="l3339"></a> </span><span class=cF9>CCmpCtrl</span><span class=cF0> *next_cc,*last_cc;
|
|
<a name="l3340"></a> </span><span class=cF9>CHashFun</span><span class=cF0> *last_fun;
|
|
<a name="l3341"></a>
|
|
<a name="l3342"></a> </span><span class=cF1>U0</span><span class=cF0> (*task_end_cb)();
|
|
<a name="l3343"></a> </span><span class=cF9>CTask</span><span class=cF0> *song_task,*animate_task;
|
|
<a name="l3344"></a> </span><span class=cF9>I64</span><span class=cF0> rand_seed,
|
|
<a name="l3345"></a> task_num,
|
|
<a name="l3346"></a> fault_num,fault_err_code;
|
|
<a name="l3347"></a> </span><span class=cF9>CTask</span><span class=cF0> *popup_task,
|
|
<a name="l3348"></a> *dbg_task;
|
|
<a name="l3349"></a> </span><span class=cF9>CWinScroll</span><span class=cF0> horz_scroll,vert_scroll;
|
|
<a name="l3350"></a>
|
|
<a name="l3351"></a> </span><span class=cF9>I64</span><span class=cF0> user_data;
|
|
<a name="l3352"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l3353"></a>};
|
|
<a name="l3354"></a>
|
|
<a name="l3355"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTSS</span><span class=cF0>
|
|
<a name="l3356"></a>{
|
|
<a name="l3357"></a> </span><span class=cF9>U32</span><span class=cF0> res1;
|
|
<a name="l3358"></a> </span><span class=cF9>I64</span><span class=cF0> rsp0,rsp1,rsp2,res2,
|
|
<a name="l3359"></a> ist1,ist2,ist3,ist4,ist5,ist6,ist7,res3;
|
|
<a name="l3360"></a> </span><span class=cF9>U16</span><span class=cF0> res4,io_map_offset;
|
|
<a name="l3361"></a> </span><span class=cF1>U8</span><span class=cF0> io_map[0x10000/8];
|
|
<a name="l3362"></a> </span><span class=cF9>I64</span><span class=cF0> *st0,*st1,*st2;
|
|
<a name="l3363"></a> </span><span class=cF9>U16</span><span class=cF0> tr,tr_ring3;
|
|
<a name="l3364"></a>};
|
|
<a name="l3365"></a>
|
|
<a name="l3366"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ans</span><span class=cF0> (</span><span class=cF5>Fs</span><span class=cF0>->answer)
|
|
<a name="l3367"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ansf</span><span class=cF0> (</span><span class=cF5>Fs</span><span class=cF0>->answer</span><span class=cF7>(</span><span class=cF1>F64</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l3368"></a>
|
|
<a name="l3369"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RAX</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rax
|
|
<a name="l3370"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RBX</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rbx
|
|
<a name="l3371"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RCX</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rcx
|
|
<a name="l3372"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RDX</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rdx
|
|
<a name="l3373"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RSI</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rsi
|
|
<a name="l3374"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RDI</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rdi
|
|
<a name="l3375"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RBP</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rbp
|
|
<a name="l3376"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RSP</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rsp
|
|
<a name="l3377"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_RIP</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->rip
|
|
<a name="l3378"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R8</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r8
|
|
<a name="l3379"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R9</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r9
|
|
<a name="l3380"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R10</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r10
|
|
<a name="l3381"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R11</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r11
|
|
<a name="l3382"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R12</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r12
|
|
<a name="l3383"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R13</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r13
|
|
<a name="l3384"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R14</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r14
|
|
<a name="l3385"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>_R15</span><span class=cF0> </span><span class=cF5>Fs</span><span class=cF0>->r15
|
|
<a name="l3386"></a>
|
|
<a name="l3387"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"MultiCore"</span><span class=cF0>
|
|
<a name="l3388"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CPUf_RAN_A_TASK</span><span class=cF0> 0
|
|
<a name="l3389"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CPUf_DYING_TASK_QUE</span><span class=cF0> 1
|
|
<a name="l3390"></a>
|
|
<a name="l3391"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> </span><span class=cF2>//The Gs segment reg points to current CCPU.</span><span class=cF0>
|
|
<a name="l3392"></a>{
|
|
<a name="l3393"></a> </span><span class=cF9>CCPU</span><span class=cF0> *addr; </span><span class=cF2>//Self-addressed ptr</span><span class=cF0>
|
|
<a name="l3394"></a> </span><span class=cF9>I64</span><span class=cF0> num,cpu_flags,
|
|
<a name="l3395"></a> startup_rip,
|
|
<a name="l3396"></a> idle_pt_hits;
|
|
<a name="l3397"></a> </span><span class=cF1>F64</span><span class=cF0> idle_factor;
|
|
<a name="l3398"></a> </span><span class=cF9>I64</span><span class=cF0> total_jiffies;
|
|
<a name="l3399"></a> </span><span class=cF9>CTask</span><span class=cF0> *seth_task,*idle_task;
|
|
<a name="l3400"></a> </span><span class=cF9>I64</span><span class=cF0> tr, </span><span class=cF2>//task reg</span><span class=cF0>
|
|
<a name="l3401"></a> swap_cnter;
|
|
<a name="l3402"></a> </span><span class=cF1>U0</span><span class=cF0> (*profiler_timer_irq)(</span><span class=cF9>CTask</span><span class=cF0> *task);
|
|
<a name="l3403"></a> </span><span class=cF9>CTaskDying</span><span class=cF0> *next_dying,*last_dying;
|
|
<a name="l3404"></a> </span><span class=cF9>I64</span><span class=cF0> kill_jiffy;
|
|
<a name="l3405"></a> </span><span class=cF9>CTSS</span><span class=cF0> *tss;
|
|
<a name="l3406"></a> </span><span class=cF9>I64</span><span class=cF0> start_stk[16];
|
|
<a name="l3407"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l3408"></a>};
|
|
<a name="l3409"></a>
|
|
<a name="l3410"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Memory/Page Tables"</span><span class=cF0>
|
|
<a name="l3411"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>MEM_MIN_MEG</span><span class=cF0> 512 </span><span class=cF2>//512 Meg minimum.</span><span class=cF0>
|
|
<a name="l3412"></a>
|
|
<a name="l3413"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SYS_FIXED_AREA</span><span class=cF0> 0x100000
|
|
<a name="l3414"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SYS_16MEG_AREA_LIMIT</span><span class=cF0> 0x1000000
|
|
<a name="l3415"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CSysFixedArea</span><span class=cF0>
|
|
<a name="l3416"></a>{
|
|
<a name="l3417"></a> </span><span class=cF9>CFPU</span><span class=cF0> init_fpu_mmx;
|
|
<a name="l3418"></a> </span><span class=cF9>CCPU</span><span class=cF0> boot_cpu;
|
|
<a name="l3419"></a> </span><span class=cF9>CTask</span><span class=cF0> adam;
|
|
<a name="l3420"></a> </span><span class=cF9>CBlkPool</span><span class=cF0> </span><span class=cFB>sys_code_bp</span><span class=cF0>;
|
|
<a name="l3421"></a> </span><span class=cF9>CHeapCtrl</span><span class=cF0> adam_hc;
|
|
<a name="l3422"></a> $=($+0x1000-1)&-0x1000;
|
|
<a name="l3423"></a>};
|
|
<a name="l3424"></a>
|
|
<a name="l3425"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Char"</span><span class=cF0>
|
|
<a name="l3426"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLA</span><span class=cF0> 0x01
|
|
<a name="l3427"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLB</span><span class=cF0> 0x02
|
|
<a name="l3428"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLC</span><span class=cF0> 0x03
|
|
<a name="l3429"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLD</span><span class=cF0> 0x04
|
|
<a name="l3430"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLE</span><span class=cF0> 0x05
|
|
<a name="l3431"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLF</span><span class=cF0> 0x06
|
|
<a name="l3432"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLG</span><span class=cF0> 0x07
|
|
<a name="l3433"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLH</span><span class=cF0> 0x08
|
|
<a name="l3434"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLI</span><span class=cF0> 0x09
|
|
<a name="l3435"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLJ</span><span class=cF0> 0x0A
|
|
<a name="l3436"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLK</span><span class=cF0> 0x0B
|
|
<a name="l3437"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLL</span><span class=cF0> 0x0C
|
|
<a name="l3438"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLM</span><span class=cF0> 0x0D
|
|
<a name="l3439"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLN</span><span class=cF0> 0x0E
|
|
<a name="l3440"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLO</span><span class=cF0> 0x0F
|
|
<a name="l3441"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLP</span><span class=cF0> 0x10
|
|
<a name="l3442"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLQ</span><span class=cF0> 0x11
|
|
<a name="l3443"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLR</span><span class=cF0> 0x12
|
|
<a name="l3444"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLS</span><span class=cF0> 0x13
|
|
<a name="l3445"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLT</span><span class=cF0> 0x14
|
|
<a name="l3446"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLU</span><span class=cF0> 0x15
|
|
<a name="l3447"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLV</span><span class=cF0> 0x16
|
|
<a name="l3448"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLW</span><span class=cF0> 0x17
|
|
<a name="l3449"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLX</span><span class=cF0> 0x18
|
|
<a name="l3450"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLY</span><span class=cF0> 0x19
|
|
<a name="l3451"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CTRLZ</span><span class=cF0> 0x1A
|
|
<a name="l3452"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_CURSOR</span><span class=cF0> 0x05
|
|
<a name="l3453"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_BACKSPACE</span><span class=cF0> 0x08
|
|
<a name="l3454"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_ESC</span><span class=cF0> 0x1B
|
|
<a name="l3455"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_SHIFT_ESC</span><span class=cF0> 0x1C
|
|
<a name="l3456"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_SHIFT_SPACE</span><span class=cF0> 0x1F
|
|
<a name="l3457"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CH_SPACE</span><span class=cF0> 0x20
|
|
<a name="l3458"></a>
|
|
<a name="l3459"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ST_ERR_ST</span><span class=cF0> </span><span class=cF6>"$LTRED$$BK,1$ERROR:$FG$$BK,0$ "</span><span class=cF0>
|
|
<a name="l3460"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ST_WARN_ST</span><span class=cF0> </span><span class=cF6>"$RED$$BK,1$WARNING:$FG$$BK,0$ "</span><span class=cF0>
|
|
<a name="l3461"></a>
|
|
<a name="l3462"></a></span><span class=cF2>//Scan code flags</span><span class=cF0>
|
|
<a name="l3463"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_E0_PREFIX</span><span class=cF0> 7
|
|
<a name="l3464"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_KEY_UP</span><span class=cF0> 8
|
|
<a name="l3465"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_SHIFT</span><span class=cF0> 9
|
|
<a name="l3466"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_CTRL</span><span class=cF0> 10
|
|
<a name="l3467"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_ALT</span><span class=cF0> 11
|
|
<a name="l3468"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_CAPS</span><span class=cF0> 12
|
|
<a name="l3469"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_NUM</span><span class=cF0> 13
|
|
<a name="l3470"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_SCROLL</span><span class=cF0> 14
|
|
<a name="l3471"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_NEW_KEY</span><span class=cF0> 15
|
|
<a name="l3472"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_MS_L_DOWN</span><span class=cF0> 16
|
|
<a name="l3473"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_MS_R_DOWN</span><span class=cF0> 17
|
|
<a name="l3474"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_DELETE</span><span class=cF0> 18
|
|
<a name="l3475"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_INS</span><span class=cF0> 19
|
|
<a name="l3476"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_NO_SHIFT</span><span class=cF0> 30
|
|
<a name="l3477"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCf_KEY_DESC</span><span class=cF0> 31
|
|
<a name="l3478"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_E0_PREFIX</span><span class=cF0> (1<<</span><span class=cF3>SCf_E0_PREFIX</span><span class=cF0>)
|
|
<a name="l3479"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_KEY_UP</span><span class=cF0> (1<<</span><span class=cF3>SCf_KEY_UP</span><span class=cF0>)
|
|
<a name="l3480"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_SHIFT</span><span class=cF0> (1<<</span><span class=cF3>SCf_SHIFT</span><span class=cF0>)
|
|
<a name="l3481"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_CTRL</span><span class=cF0> (1<<</span><span class=cF3>SCf_CTRL</span><span class=cF0>)
|
|
<a name="l3482"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_ALT</span><span class=cF0> (1<<</span><span class=cF3>SCf_ALT</span><span class=cF0>)
|
|
<a name="l3483"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_CAPS</span><span class=cF0> (1<<</span><span class=cF3>SCf_CAPS</span><span class=cF0>)
|
|
<a name="l3484"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_NUM</span><span class=cF0> (1<<</span><span class=cF3>SCf_NUM</span><span class=cF0>)
|
|
<a name="l3485"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_SCROLL</span><span class=cF0> (1<<</span><span class=cF3>SCf_SCROLL</span><span class=cF0>)
|
|
<a name="l3486"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_NEW_KEY</span><span class=cF0> (1<<</span><span class=cF3>SCf_NEW_KEY</span><span class=cF0>)
|
|
<a name="l3487"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_MS_L_DOWN</span><span class=cF0> (1<<</span><span class=cF3>SCf_MS_L_DOWN</span><span class=cF0>)
|
|
<a name="l3488"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_MS_R_DOWN</span><span class=cF0> (1<<</span><span class=cF3>SCf_MS_R_DOWN</span><span class=cF0>)
|
|
<a name="l3489"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_DELETE</span><span class=cF0> (1<<</span><span class=cF3>SCf_DELETE</span><span class=cF0>)
|
|
<a name="l3490"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_INS</span><span class=cF0> (1<<</span><span class=cF3>SCf_INS</span><span class=cF0>)
|
|
<a name="l3491"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_NO_SHIFT</span><span class=cF0> (1<<</span><span class=cF3>SCf_NO_SHIFT</span><span class=cF0>)
|
|
<a name="l3492"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SCF_KEY_DESC</span><span class=cF0> (1<<</span><span class=cF3>SCf_KEY_DESC</span><span class=cF0>)
|
|
<a name="l3493"></a>
|
|
<a name="l3494"></a></span><span class=cF2>//TempleOS places a 1 in bit 7 for</span><span class=cF0>
|
|
<a name="l3495"></a></span><span class=cF2>//keys with an E0 prefix.</span><span class=cF0>
|
|
<a name="l3496"></a></span><span class=cF2>//See </span><a href="/Wb/Doc/CharOverview.DD.HTML#l1"><span class=cF4>::/Doc/CharOverview.DD</span></a><span class=cF2> and </span><a href="/Wb/Kernel/SerialDev/Keyboard.HC.HTML#l441"><span class=cF4>KbdHndlr</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l3497"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_ESC</span><span class=cF0> 0x01
|
|
<a name="l3498"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_BACKSPACE</span><span class=cF0> 0x0E
|
|
<a name="l3499"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_TAB</span><span class=cF0> 0x0F
|
|
<a name="l3500"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_ENTER</span><span class=cF0> 0x1C
|
|
<a name="l3501"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_SHIFT</span><span class=cF0> 0x2A
|
|
<a name="l3502"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_CTRL</span><span class=cF0> 0x1D
|
|
<a name="l3503"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_ALT</span><span class=cF0> 0x38
|
|
<a name="l3504"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_CAPS</span><span class=cF0> 0x3A
|
|
<a name="l3505"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_NUM</span><span class=cF0> 0x45
|
|
<a name="l3506"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_SCROLL</span><span class=cF0> 0x46
|
|
<a name="l3507"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_CURSOR_UP</span><span class=cF0> 0x48
|
|
<a name="l3508"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_CURSOR_DOWN</span><span class=cF0> 0x50
|
|
<a name="l3509"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_CURSOR_LEFT</span><span class=cF0> 0x4B
|
|
<a name="l3510"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_CURSOR_RIGHT</span><span class=cF0> 0x4D
|
|
<a name="l3511"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_PAGE_UP</span><span class=cF0> 0x49
|
|
<a name="l3512"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_PAGE_DOWN</span><span class=cF0> 0x51
|
|
<a name="l3513"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_HOME</span><span class=cF0> 0x47
|
|
<a name="l3514"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_END</span><span class=cF0> 0x4F
|
|
<a name="l3515"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_INS</span><span class=cF0> 0x52
|
|
<a name="l3516"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_DELETE</span><span class=cF0> 0x53
|
|
<a name="l3517"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F1</span><span class=cF0> 0x3B
|
|
<a name="l3518"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F2</span><span class=cF0> 0x3C
|
|
<a name="l3519"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F3</span><span class=cF0> 0x3D
|
|
<a name="l3520"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F4</span><span class=cF0> 0x3E
|
|
<a name="l3521"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F5</span><span class=cF0> 0x3F
|
|
<a name="l3522"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F6</span><span class=cF0> 0x40
|
|
<a name="l3523"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F7</span><span class=cF0> 0x41
|
|
<a name="l3524"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F8</span><span class=cF0> 0x42
|
|
<a name="l3525"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F9</span><span class=cF0> 0x43
|
|
<a name="l3526"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F10</span><span class=cF0> 0x44
|
|
<a name="l3527"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F11</span><span class=cF0> 0x57
|
|
<a name="l3528"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_F12</span><span class=cF0> 0x58
|
|
<a name="l3529"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_PAUSE</span><span class=cF0> 0x61
|
|
<a name="l3530"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_GUI</span><span class=cF0> 0xDB
|
|
<a name="l3531"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_PRTSCRN1</span><span class=cF0> 0xAA
|
|
<a name="l3532"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SC_PRTSCRN2</span><span class=cF0> 0xB7
|
|
<a name="l3533"></a>
|
|
<a name="l3534"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Char;Debugging/Raw Output;TextBase Layer/Char"</span><span class=cF0>
|
|
<a name="l3535"></a></span><span class=cF2>//text.raw_flags</span><span class=cF0>
|
|
<a name="l3536"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RWF_IN_DOLLAR</span><span class=cF0> 1
|
|
<a name="l3537"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RWF_LAST_DOLLAR</span><span class=cF0> 2
|
|
<a name="l3538"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RWF_SHOW_DOLLAR</span><span class=cF0> 4
|
|
<a name="l3539"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>RWF_SCROLL</span><span class=cF0> 8
|
|
<a name="l3540"></a>
|
|
<a name="l3541"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CTextGlbls</span><span class=cF0>
|
|
<a name="l3542"></a>{
|
|
<a name="l3543"></a> </span><span class=cF9>I64</span><span class=cF0> raw_col,raw_flags;
|
|
<a name="l3544"></a> </span><span class=cF1>U8</span><span class=cF0> *raw_scrn_image;
|
|
<a name="l3545"></a> </span><span class=cF9>I64</span><span class=cF0> rows,cols; </span><span class=cF2>//Use TEXT_ROWS,TEXT_COLS</span><span class=cF0>
|
|
<a name="l3546"></a> </span><span class=cF9>U64</span><span class=cF0> *font,*aux_font;
|
|
<a name="l3547"></a> </span><span class=cF1>U8</span><span class=cF0> *vga_alias,*vga_text_alias;
|
|
<a name="l3548"></a> </span><span class=cF1>U8</span><span class=cF0> border_chars[16];
|
|
<a name="l3549"></a>};
|
|
<a name="l3550"></a>
|
|
<a name="l3551"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FONT_WIDTH</span><span class=cF0> 8
|
|
<a name="l3552"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FONT_HEIGHT</span><span class=cF0> 8
|
|
<a name="l3553"></a>
|
|
<a name="l3554"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Graphics"</span><span class=cF0>
|
|
<a name="l3555"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GR_WIDTH</span><span class=cF0> 640
|
|
<a name="l3556"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GR_HEIGHT</span><span class=cF0> 480
|
|
<a name="l3557"></a>
|
|
<a name="l3558"></a></span><span class=cF2>//z-vals less than zero are in front of scrn and not drawn.</span><span class=cF0>
|
|
<a name="l3559"></a></span><span class=cF2>//we want to shift all Z-vals into a drawable range.</span><span class=cF0>
|
|
<a name="l3560"></a></span><span class=cF2>//GR_Z_ALL is set to half of the Z-range which is an I32.</span><span class=cF0>
|
|
<a name="l3561"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GR_Z_ALL</span><span class=cF0> (</span><span class=cF3>I32_MAX</span><span class=cF0>/2)
|
|
<a name="l3562"></a>
|
|
<a name="l3563"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Graphics/Device Contexts"</span><span class=cF0>
|
|
<a name="l3564"></a></span><span class=cF2>//Low 8 bits reserved for flags that go into saved bitmaps</span><span class=cF0>
|
|
<a name="l3565"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_COMPRESSED</span><span class=cF0> 1
|
|
<a name="l3566"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_PALETTE</span><span class=cF0> 2
|
|
<a name="l3567"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_NO_TRANSPARENTS</span><span class=cF0> 4 </span><span class=cF2>//Can be used to optimized </span><a href="/Wb/Adam/Gr/GrBitMap.HC.HTML#l71"><span class=cF4>GrBlot</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l3568"></a>
|
|
<a name="l3569"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_TRANSFORMATION</span><span class=cF0> 0x100
|
|
<a name="l3570"></a>
|
|
<a name="l3571"></a></span><span class=cF2>//See </span><a href="/Wb/Adam/Gr/GrMath.HC.HTML#l194"><span class=cF4>DCSymmetrySet</span></a><span class=cF2>() or </span><a href="/Wb/Adam/Gr/GrMath.HC.HTML#l216"><span class=cF4>DCSymmetry3Set</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3572"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_SYMMETRY</span><span class=cF0> 0x200
|
|
<a name="l3573"></a>
|
|
<a name="l3574"></a></span><span class=cF2>//Must be used with DCF_SYMMETRY set also.</span><span class=cF0>
|
|
<a name="l3575"></a></span><span class=cF2>//See </span><a href="/Wb/Demo/Games/BigGuns.HC.HTML#l1"><span class=cF4>::/Demo/Games/BigGuns.HC</span></a><span class=cF0>
|
|
<a name="l3576"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_JUST_MIRROR</span><span class=cF0> 0x400
|
|
<a name="l3577"></a>
|
|
<a name="l3578"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_LOCATE_NEAREST</span><span class=cF0> 0x800
|
|
<a name="l3579"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_DONT_DRAW</span><span class=cF0> 0x1000
|
|
<a name="l3580"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_ALIAS</span><span class=cF0> 0x2000
|
|
<a name="l3581"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_SCRN_BITMAP</span><span class=cF0> 0x4000
|
|
<a name="l3582"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_FILL_NOT_COLOR</span><span class=cF0> 0x8000
|
|
<a name="l3583"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_RECORD_EXTENTS</span><span class=cF0> 0x10000
|
|
<a name="l3584"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_ON_TOP</span><span class=cF0> 0x20000
|
|
<a name="l3585"></a>
|
|
<a name="l3586"></a></span><span class=cF2>//</span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l286"><span class=cF4>DCSave</span></a><span class=cF2>() flags.</span><span class=cF0>
|
|
<a name="l3587"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCSF_COMPRESSED</span><span class=cF0> 1
|
|
<a name="l3588"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCSF_PALETTE_GET</span><span class=cF0> 2
|
|
<a name="l3589"></a>
|
|
<a name="l3590"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCS_SIGNATURE_VAL</span><span class=cF0> </span><span class=cF6>'DvCS'</span><span class=cF0>
|
|
<a name="l3591"></a>
|
|
<a name="l3592"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CGrSym</span><span class=cF0>
|
|
<a name="l3593"></a>{
|
|
<a name="l3594"></a> </span><span class=cF9>I32</span><span class=cF0> sx,sy,sz,pad;
|
|
<a name="l3595"></a></span><span class=cF2>//Normal of symmetry plane</span><span class=cF0>
|
|
<a name="l3596"></a> </span><span class=cF9>I64</span><span class=cF0> snx,sny,snz;
|
|
<a name="l3597"></a>};
|
|
<a name="l3598"></a>
|
|
<a name="l3599"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDC</span><span class=cF0>
|
|
<a name="l3600"></a>{
|
|
<a name="l3601"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>start</span><span class=cF0>;
|
|
<a name="l3602"></a> </span><span class=cF9>CDate</span><span class=cF0> cdt;
|
|
<a name="l3603"></a> </span><span class=cF9>I32</span><span class=cF0> x0,y0,
|
|
<a name="l3604"></a> width,width_internal,
|
|
<a name="l3605"></a> height,
|
|
<a name="l3606"></a> flags;
|
|
<a name="l3607"></a> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF1>end</span><span class=cF0>;
|
|
<a name="l3608"></a> </span><span class=cF9>CBGR48</span><span class=cF0> palette[</span><span class=cF3>COLORS_NUM</span><span class=cF0>];
|
|
<a name="l3609"></a>
|
|
<a name="l3610"></a> </span><span class=cF2>//public (Change directly)</span><span class=cF0>
|
|
<a name="l3611"></a> </span><span class=cF9>CColorROPU32</span><span class=cF0> color,
|
|
<a name="l3612"></a> bkcolor, </span><span class=cF2>//Set for use with </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2900"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>
|
|
<a name="l3613"></a> color2; </span><span class=cF2>//Internally used for </span><a href="/Wb/Adam/Gr/GrPrimatives.HC.HTML#l239"><span class=cF4>GrFloodFill</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3614"></a> </span><span class=cF9>CD3I32</span><span class=cF0> ls; </span><span class=cF2>//Light source (should be normalized to 65536).</span><span class=cF0>
|
|
<a name="l3615"></a>
|
|
<a name="l3616"></a> </span><span class=cF2>//dither_probability_u16 is basically a U16.</span><span class=cF0>
|
|
<a name="l3617"></a> </span><span class=cF2>//It is activated by </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2910"><span class=cF4>ROPF_PROBABILITY_DITHER</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l3618"></a> </span><span class=cF2>//0x0000 =100% color.c0</span><span class=cF0>
|
|
<a name="l3619"></a> </span><span class=cF2>//0x8000 =50% color.c0 50% color.c1</span><span class=cF0>
|
|
<a name="l3620"></a> </span><span class=cF2>//0x10000=100% color.c1</span><span class=cF0>
|
|
<a name="l3621"></a> </span><span class=cF2>//See </span><a href="/Wb/Demo/Graphics/SunMoon.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/SunMoon.HC</span></a><span class=cF2> and</span><span class=cF0> </span><a href="/Wb/Demo/Graphics/Shading.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/Shading.HC</span></a><span class=cF2>.</span><span class=cF0>
|
|
<a name="l3622"></a> </span><span class=cF9>U64</span><span class=cF0> dither_probability_u16;
|
|
<a name="l3623"></a>
|
|
<a name="l3624"></a> </span><span class=cF9>CDC</span><span class=cF0> *brush;
|
|
<a name="l3625"></a>
|
|
<a name="l3626"></a> </span><span class=cF2>//Set with </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l47"><span class=cF4>DCMat4x4Set</span></a><span class=cF2>(). </span><a href="/Wb/Kernel/Mem/MAllocFree.HC.HTML#l383"><span class=cF4>Free</span></a><span class=cF2>() before setting.</span><span class=cF0>
|
|
<a name="l3627"></a> </span><span class=cF9>I64</span><span class=cF0> *r, </span><span class=cF2>//rotation matrix of quads decimal in lo</span><span class=cF0>
|
|
<a name="l3628"></a> r_norm; </span><span class=cF2>//shifted 32 bits. Used for scaling thick</span><span class=cF0>
|
|
<a name="l3629"></a>
|
|
<a name="l3630"></a> </span><span class=cF2>//public (Change directly)</span><span class=cF0>
|
|
<a name="l3631"></a> </span><span class=cF9>I32</span><span class=cF0> x,y,z,
|
|
<a name="l3632"></a> thick;
|
|
<a name="l3633"></a>
|
|
<a name="l3634"></a> </span><span class=cF2>//Can be changed from the default </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l15"><span class=cF4>DCTransform</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3635"></a> </span><span class=cF1>U0</span><span class=cF0> (*transform)(</span><span class=cF9>CDC</span><span class=cF0> *dc,</span><span class=cF9>I64</span><span class=cF0> *x,</span><span class=cF9>I64</span><span class=cF0> *y,</span><span class=cF9>I64</span><span class=cF0> *z);
|
|
<a name="l3636"></a>
|
|
<a name="l3637"></a> </span><span class=cF2>//Can be changed from the default </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l57"><span class=cF4>DCLighting</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3638"></a> </span><span class=cF1>U0</span><span class=cF0> (*lighting)(</span><span class=cF9>CDC</span><span class=cF0> *dc,</span><span class=cF9>CD3I32</span><span class=cF0> *p1,</span><span class=cF9>CD3I32</span><span class=cF0> *p2,
|
|
<a name="l3639"></a> </span><span class=cF9>CD3I32</span><span class=cF0> *p3,</span><span class=cF9>CColorROPU32</span><span class=cF0> color);
|
|
<a name="l3640"></a>
|
|
<a name="l3641"></a> </span><span class=cF2>//Set by </span><a href="/Wb/Adam/Gr/GrMath.HC.HTML#l194"><span class=cF4>DCSymmetrySet</span></a><span class=cF2>() or </span><a href="/Wb/Adam/Gr/GrMath.HC.HTML#l216"><span class=cF4>DCSymmetry3Set</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3642"></a> </span><span class=cF9>CGrSym</span><span class=cF0> sym;
|
|
<a name="l3643"></a>
|
|
<a name="l3644"></a> </span><span class=cF9>I32</span><span class=cF0> cur_x,cur_y,cur_z,pad;
|
|
<a name="l3645"></a> </span><span class=cF9>I64</span><span class=cF0> collision_cnt;
|
|
<a name="l3646"></a>
|
|
<a name="l3647"></a> </span><span class=cF9>I64</span><span class=cF0> nearest_dist,
|
|
<a name="l3648"></a> min_x,max_x,min_y,max_y; </span><span class=cF2>//Set by </span><a href="/Wb/Kernel/KernelA.HH.HTML#l3583"><span class=cF4>DCF_RECORD_EXTENTS</span></a><span class=cF2> (scrn coordinates)</span><span class=cF0>
|
|
<a name="l3649"></a>
|
|
<a name="l3650"></a> </span><span class=cF9>U32</span><span class=cF0> dc_signature,pad;
|
|
<a name="l3651"></a> </span><span class=cF9>CTask</span><span class=cF0> *mem_task,*win_task;
|
|
<a name="l3652"></a> </span><span class=cF9>CDC</span><span class=cF0> *alias;
|
|
<a name="l3653"></a> </span><span class=cF1>U8</span><span class=cF0> *body;
|
|
<a name="l3654"></a>
|
|
<a name="l3655"></a> </span><span class=cF2>//Set by </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l236"><span class=cF4>DCDepthBufAlloc</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3656"></a> </span><span class=cF9>I32</span><span class=cF0> *depth_buf;
|
|
<a name="l3657"></a> </span><span class=cF9>I64</span><span class=cF0> db_z; </span><span class=cF2>//private</span><span class=cF0>
|
|
<a name="l3658"></a>#</span><span class=cF1>assert</span><span class=cF0> !($&7)
|
|
<a name="l3659"></a>};
|
|
<a name="l3660"></a>
|
|
<a name="l3661"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Devices"</span><span class=cF0>
|
|
<a name="l3662"></a></span><span class=cF2>//VGA Memory</span><span class=cF0>
|
|
<a name="l3663"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAM_GRAPHICS</span><span class=cF0> 0xA0000
|
|
<a name="l3664"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAM_TEXT</span><span class=cF0> 0xB8000
|
|
<a name="l3665"></a>
|
|
<a name="l3666"></a></span><span class=cF2>//VGA I/O ports</span><span class=cF0>
|
|
<a name="l3667"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_ATTR_INDEX</span><span class=cF0> 0x03C0
|
|
<a name="l3668"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_ATTR_DATA_WRITE</span><span class=cF0> 0x03C0 </span><span class=cF2>//alias</span><span class=cF0>
|
|
<a name="l3669"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_ATTR_DATA_READ</span><span class=cF0> 0x03C1
|
|
<a name="l3670"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_MISC_OUTPUT</span><span class=cF0> 0x03C2
|
|
<a name="l3671"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_IDX</span><span class=cF0> 0x03C4
|
|
<a name="l3672"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_DATA</span><span class=cF0> 0x03C5
|
|
<a name="l3673"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_PALETTE_MASK</span><span class=cF0> 0x03C6
|
|
<a name="l3674"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_REG_READ</span><span class=cF0> 0x03C7
|
|
<a name="l3675"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_REG_WRITE</span><span class=cF0> 0x03C8
|
|
<a name="l3676"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_PALETTE_DATA</span><span class=cF0> 0x03C9
|
|
<a name="l3677"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_CRTC_INDEX</span><span class=cF0> 0x03D4
|
|
<a name="l3678"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_CRTC_DATA</span><span class=cF0> 0x03D5
|
|
<a name="l3679"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAP_INPUT_STAT</span><span class=cF0> 0x03DA
|
|
<a name="l3680"></a>
|
|
<a name="l3681"></a></span><span class=cF2>//VGA Registers</span><span class=cF0>
|
|
<a name="l3682"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VGAR_MAP_MASK</span><span class=cF0> 0x02
|
|
<a name="l3683"></a>
|
|
<a name="l3684"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compression/Piece by Piece"</span><span class=cF0>
|
|
<a name="l3685"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARC_BITS_MAX</span><span class=cF0> 12
|
|
<a name="l3686"></a>
|
|
<a name="l3687"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CT_NONE</span><span class=cF0> 1
|
|
<a name="l3688"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CT_7_BIT</span><span class=cF0> 2
|
|
<a name="l3689"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CT_8_BIT</span><span class=cF0> 3
|
|
<a name="l3690"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CArcEntry</span><span class=cF0>
|
|
<a name="l3691"></a>{
|
|
<a name="l3692"></a> </span><span class=cF9>CArcEntry</span><span class=cF0> *next;
|
|
<a name="l3693"></a> </span><span class=cF9>U16</span><span class=cF0> basecode;
|
|
<a name="l3694"></a> </span><span class=cF1>U8</span><span class=cF0> ch,pad;
|
|
<a name="l3695"></a> </span><span class=cF9>U32</span><span class=cF0> pad;
|
|
<a name="l3696"></a>};
|
|
<a name="l3697"></a>
|
|
<a name="l3698"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CArcCtrl</span><span class=cF0>
|
|
<a name="l3699"></a>{
|
|
<a name="l3700"></a> </span><span class=cF9>I64</span><span class=cF0> src_pos,src_size,
|
|
<a name="l3701"></a> dst_pos,dst_size;
|
|
<a name="l3702"></a> </span><span class=cF1>U8</span><span class=cF0> *src_buf,*dst_buf;
|
|
<a name="l3703"></a> </span><span class=cF9>I64</span><span class=cF0> min_bits,min_table_entry;
|
|
<a name="l3704"></a> </span><span class=cF9>CArcEntry</span><span class=cF0> *cur_entry,*next_entry;
|
|
<a name="l3705"></a> </span><span class=cF9>I64</span><span class=cF0> cur_bits_in_use,next_bits_in_use;
|
|
<a name="l3706"></a> </span><span class=cF1>U8</span><span class=cF0> *stk_ptr,*stk_base;
|
|
<a name="l3707"></a> </span><span class=cF9>I64</span><span class=cF0> free_idx,free_limit,
|
|
<a name="l3708"></a> saved_basecode,
|
|
<a name="l3709"></a> entry_used,
|
|
<a name="l3710"></a> last_ch;
|
|
<a name="l3711"></a> </span><span class=cF9>CArcEntry</span><span class=cF0> compress[1<<</span><span class=cF3>ARC_BITS_MAX</span><span class=cF0>],
|
|
<a name="l3712"></a> *hash[1<<</span><span class=cF3>ARC_BITS_MAX</span><span class=cF0>];
|
|
<a name="l3713"></a>};
|
|
<a name="l3714"></a>
|
|
<a name="l3715"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Compression"</span><span class=cF0>
|
|
<a name="l3716"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CArcCompress</span><span class=cF0>
|
|
<a name="l3717"></a>{
|
|
<a name="l3718"></a> </span><span class=cF9>I64</span><span class=cF0> compressed_size,expanded_size;
|
|
<a name="l3719"></a> </span><span class=cF1>U8</span><span class=cF0> compression_type;
|
|
<a name="l3720"></a> </span><span class=cF1>U0</span><span class=cF0> body;
|
|
<a name="l3721"></a>};
|
|
<a name="l3722"></a>
|
|
<a name="l3723"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF6>"Char/Input;StdIn"</span><span class=cF0>
|
|
<a name="l3724"></a></span><span class=cF2>//GetStr flags</span><span class=cF0>
|
|
<a name="l3725"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GSF_SHIFT_ESC_EXIT</span><span class=cF0> 1 </span><span class=cF2>//This kills task on <SHIFT-ESC></span><span class=cF0>
|
|
<a name="l3726"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>GSF_WITH_NEW_LINE</span><span class=cF0> 2
|
|
<a name="l3727"></a>
|
|
<a name="l3728"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF6>"Char/Operations"</span><span class=cF0>
|
|
<a name="l3729"></a></span><span class=cF2>//Flags for StrUtil and MStrUtil</span><span class=cF0>
|
|
<a name="l3730"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_REM_CTRL_CHARS</span><span class=cF0> 0x001
|
|
<a name="l3731"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_REM_LEADING</span><span class=cF0> 0x002
|
|
<a name="l3732"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_REM_TRAILING</span><span class=cF0> 0x004
|
|
<a name="l3733"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_REM_SPACES</span><span class=cF0> 0x008
|
|
<a name="l3734"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_SINGLE_SPACE</span><span class=cF0> 0x010
|
|
<a name="l3735"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_TO_UPPER</span><span class=cF0> 0x020
|
|
<a name="l3736"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_TO_LOWER</span><span class=cF0> 0x040
|
|
<a name="l3737"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_S2T</span><span class=cF0> 0x080
|
|
<a name="l3738"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_T2S</span><span class=cF0> 0x100 </span><span class=cF2>// Only works with MStrUtil</span><span class=cF0>
|
|
<a name="l3739"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_SCALE_INDENT</span><span class=cF0> 0x200
|
|
<a name="l3740"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SUF_SAFE_DOLLAR</span><span class=cF0> 0x400
|
|
<a name="l3741"></a>
|
|
<a name="l3742"></a></span><span class=cF2>//Flags for StrFind</span><span class=cF0>
|
|
<a name="l3743"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SFF_IGNORE_CASE</span><span class=cF0> 1
|
|
<a name="l3744"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SFF_WHOLE_LABELS_BEFORE</span><span class=cF0> 2
|
|
<a name="l3745"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SFF_WHOLE_LABELS_AFTER</span><span class=cF0> 4
|
|
<a name="l3746"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>SFG_WHOLE_LABELS</span><span class=cF0> (</span><span class=cF3>SFF_WHOLE_LABELS_BEFORE</span><span class=cF0>|</span><span class=cF3>SFF_WHOLE_LABELS_AFTER</span><span class=cF0>)
|
|
<a name="l3747"></a>
|
|
<a name="l3748"></a></span><span class=cF2>//Flags for LstMatch</span><span class=cF0>
|
|
<a name="l3749"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LMF_IGNORE_CASE</span><span class=cF0> 1
|
|
<a name="l3750"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>LMF_EXACT</span><span class=cF0> 2
|
|
<a name="l3751"></a>
|
|
<a name="l3752"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Keyboard Devices/System"</span><span class=cF0>
|
|
<a name="l3753"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>KDF_HAS_DESCS</span><span class=cF0> 1
|
|
<a name="l3754"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CKeyDevEntry</span><span class=cF0>
|
|
<a name="l3755"></a>{
|
|
<a name="l3756"></a> </span><span class=cF9>CKeyDevEntry</span><span class=cF0> *next,*last;
|
|
<a name="l3757"></a> </span><span class=cF9>I64</span><span class=cF0> priority,flags;
|
|
<a name="l3758"></a> </span><span class=cF1>Bool</span><span class=cF0> (*put_key)(</span><span class=cF9>I64</span><span class=cF0> ch,</span><span class=cF9>I64</span><span class=cF0> sc);
|
|
<a name="l3759"></a> </span><span class=cF1>Bool</span><span class=cF0> (*put_s)(</span><span class=cF1>U8</span><span class=cF0> *st);
|
|
<a name="l3760"></a>};
|
|
<a name="l3761"></a>
|
|
<a name="l3762"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CKeyDevGlbls</span><span class=cF0>
|
|
<a name="l3763"></a>{
|
|
<a name="l3764"></a> </span><span class=cF9>CKeyDevEntry</span><span class=cF0> put_key_head;
|
|
<a name="l3765"></a> </span><span class=cF1>U0</span><span class=cF0> (**fp_ctrl_alt_cbs)(</span><span class=cF9>I64</span><span class=cF0> sc);
|
|
<a name="l3766"></a> </span><span class=cF9>I64</span><span class=cF0> ctrl_alt_in_irq_flags,
|
|
<a name="l3767"></a> **ctrl_alt_ret_addr; </span><span class=cF2>//addr of ret addr on stack in kbd irq</span><span class=cF0>
|
|
<a name="l3768"></a> </span><span class=cF1>U8</span><span class=cF0> **ctrl_alt_no_shift_descs,**ctrl_alt_shift_descs,
|
|
<a name="l3769"></a> desc[</span><span class=cF3>STR_LEN</span><span class=cF0>],
|
|
<a name="l3770"></a> *hndlr;
|
|
<a name="l3771"></a>};
|
|
<a name="l3772"></a>
|
|
<a name="l3773"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Snd"</span><span class=cF0>
|
|
<a name="l3774"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"ScrnCast;Snd/AU Files"</span><span class=cF0>
|
|
<a name="l3775"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CAUData</span><span class=cF0>
|
|
<a name="l3776"></a>{</span><span class=cF2>//Fmt of AU files</span><span class=cF0>
|
|
<a name="l3777"></a> </span><span class=cF9>CDate</span><span class=cF0> cdt;
|
|
<a name="l3778"></a> </span><span class=cF1>I8</span><span class=cF0> ona;
|
|
<a name="l3779"></a>};
|
|
<a name="l3780"></a>
|
|
<a name="l3781"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CSndData</span><span class=cF0>
|
|
<a name="l3782"></a>{</span><span class=cF2>//Fmt recorded in mem</span><span class=cF0>
|
|
<a name="l3783"></a> </span><span class=cF9>CSndData</span><span class=cF0> *next,*last;
|
|
<a name="l3784"></a> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>tS</span><span class=cF0>;
|
|
<a name="l3785"></a> </span><span class=cF1>I8</span><span class=cF0> ona;
|
|
<a name="l3786"></a>};
|
|
<a name="l3787"></a>
|
|
<a name="l3788"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CScrnCastGlbls</span><span class=cF0>
|
|
<a name="l3789"></a>{
|
|
<a name="l3790"></a> </span><span class=cF9>CSndData</span><span class=cF0> snd_head;
|
|
<a name="l3791"></a> </span><span class=cF9>CDate</span><span class=cF0> t0_now;
|
|
<a name="l3792"></a> </span><span class=cF1>F64</span><span class=cF0> t0_tS;
|
|
<a name="l3793"></a> </span><span class=cF1>U8</span><span class=cF0> *print_fmt;
|
|
<a name="l3794"></a> </span><span class=cF9>CDC</span><span class=cF0> *dc,*dc2_alias;
|
|
<a name="l3795"></a> </span><span class=cF1>Bool</span><span class=cF0> record,just_audio;
|
|
<a name="l3796"></a> </span><span class=cF1>I8</span><span class=cF0> ona;
|
|
<a name="l3797"></a>};
|
|
<a name="l3798"></a>
|
|
<a name="l3799"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Debugging/FunSeg"</span><span class=cF0>
|
|
<a name="l3800"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUN_SEG_CACHE_SIZE</span><span class=cF0> 256
|
|
<a name="l3801"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CFunSegCache</span><span class=cF0>
|
|
<a name="l3802"></a>{
|
|
<a name="l3803"></a> </span><span class=cF9>I64</span><span class=cF0> base,limit;
|
|
<a name="l3804"></a> </span><span class=cF1>F64</span><span class=cF0> time_stamp;
|
|
<a name="l3805"></a> </span><span class=cF1>U8</span><span class=cF0> str[1]; </span><span class=cF2>//FUN_SEG_CACHE_STR_LEN</span><span class=cF0>
|
|
<a name="l3806"></a>$=64;
|
|
<a name="l3807"></a>};
|
|
<a name="l3808"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>FUN_SEG_CACHE_STR_LEN</span><span class=cF0> (</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF9>CFunSegCache</span><span class=cF7>)</span><span class=cF0>-</span><span class=cF1>offset</span><span class=cF7>(</span><span class=cF9>CFunSegCache</span><span class=cF0>.str</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l3809"></a>
|
|
<a name="l3810"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Debugging"</span><span class=cF0>
|
|
<a name="l3811"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CMPCrash</span><span class=cF0>
|
|
<a name="l3812"></a>{
|
|
<a name="l3813"></a> </span><span class=cF9>I64</span><span class=cF0> cpu_num;
|
|
<a name="l3814"></a> </span><span class=cF9>CTask</span><span class=cF0> *task;
|
|
<a name="l3815"></a> </span><span class=cF9>I64</span><span class=cF0> rip;
|
|
<a name="l3816"></a> </span><span class=cF1>U8</span><span class=cF0> *msg;
|
|
<a name="l3817"></a> </span><span class=cF9>I64</span><span class=cF0> msg_num;
|
|
<a name="l3818"></a>};
|
|
<a name="l3819"></a>
|
|
<a name="l3820"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CDbgGlbls</span><span class=cF0>
|
|
<a name="l3821"></a>{
|
|
<a name="l3822"></a> </span><span class=cF9>CTask</span><span class=cF0> *focus_task;
|
|
<a name="l3823"></a> </span><span class=cF1>U8</span><span class=cF0> *msg;
|
|
<a name="l3824"></a> </span><span class=cF9>I64</span><span class=cF0> msg_num;
|
|
<a name="l3825"></a> </span><span class=cF9>CMPCrash</span><span class=cF0> *mp_crash;
|
|
<a name="l3826"></a> </span><span class=cF1>U8</span><span class=cF0> *int_fault_code,
|
|
<a name="l3827"></a> *fix_file_line;
|
|
<a name="l3828"></a> </span><span class=cF9>CFunSegCache</span><span class=cF0> *fun_seg_cache;
|
|
<a name="l3829"></a> </span><span class=cF9>I64</span><span class=cF0> fun_seg_cache_index;
|
|
<a name="l3830"></a> </span><span class=cF1>Bool</span><span class=cF0> panic;
|
|
<a name="l3831"></a>};
|
|
<a name="l3832"></a>
|
|
<a name="l3833"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Boot"</span><span class=cF0>
|
|
<a name="l3834"></a></span><span class=cF2>//Boot related</span><span class=cF0>
|
|
<a name="l3835"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_RAM_BASE</span><span class=cF0> 0x07C00
|
|
<a name="l3836"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_RAM_LIMIT</span><span class=cF0> 0x97000
|
|
<a name="l3837"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_STK_SIZE</span><span class=cF0> </span><span class=cF3>BLK_SIZE</span><span class=cF0>
|
|
<a name="l3838"></a>
|
|
<a name="l3839"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_SRC_NULL</span><span class=cF0> 0
|
|
<a name="l3840"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_SRC_ROM</span><span class=cF0> 1
|
|
<a name="l3841"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_SRC_RAM</span><span class=cF0> 2
|
|
<a name="l3842"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_SRC_HARDDRV</span><span class=cF0> 3
|
|
<a name="l3843"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>BOOT_SRC_DVD</span><span class=cF0> 4
|
|
<a name="l3844"></a>
|
|
<a name="l3845"></a></span><span class=cF2>// </span><a href="/Wb/Kernel/Job.HC.HTML#l482"><span class=cF4>In</span></a><span class=cF2>("") StdIn for call to </span><a href="/Wb/Adam/Opt/Boot/BootHDIns.HC.HTML#l18"><span class=cF4>BootHDIns</span></a><span class=cF2>().</span><span class=cF0>
|
|
<a name="l3846"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>STD_DISTRO_DVD_CFG</span><span class=cF0> </span><span class=cF6>"TB\nScale2Mem(2048,0x40000)\nT \n\n\n\n"</span><span class=cF0>
|
|
<a name="l3847"></a>
|
|
<a name="l3848"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Registry"</span><span class=cF0>
|
|
<a name="l3849"></a></span><span class=cF2>//Registry sys_msg_flags. </span><a href="/Wb/Adam/ARegistry.HC.HTML#l101"><span class=cF4>RegOneTimePopUp</span></a><span class=cF2>()</span><span class=cF0>
|
|
<a name="l3850"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_FLOODFILL</span><span class=cF0> 0
|
|
<a name="l3851"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_CSPRITE_INS_CLIP</span><span class=cF0> 1
|
|
<a name="l3852"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_PLANAR_SYMMETRY</span><span class=cF0> 2
|
|
<a name="l3853"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_PSALMODY_JUKEBOX</span><span class=cF0> 3
|
|
<a name="l3854"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_MESH_ED</span><span class=cF0> 4
|
|
<a name="l3855"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_CSPRITE_PTS_RECTANGLES</span><span class=cF0> 5
|
|
<a name="l3856"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>ARf_MANAGE_SLIDER</span><span class=cF0> 6
|
|
<a name="l3857"></a>
|
|
<a name="l3858"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Misc/Progress Bars"</span><span class=cF0>
|
|
<a name="l3859"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PROGRESS_BARS_NUM</span><span class=cF0> 4
|
|
<a name="l3860"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PROGRESS_DESC_LEN</span><span class=cF0> (64-8-8)
|
|
<a name="l3861"></a></span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CProgress</span><span class=cF0>
|
|
<a name="l3862"></a>{
|
|
<a name="l3863"></a> </span><span class=cF9>I64</span><span class=cF0> val,max;
|
|
<a name="l3864"></a> </span><span class=cF1>F64</span><span class=cF0> t0,tf;
|
|
<a name="l3865"></a> </span><span class=cF1>U8</span><span class=cF0> desc[</span><span class=cF3>PROGRESS_DESC_LEN</span><span class=cF0>];
|
|
<a name="l3866"></a>};
|
|
<a name="l3867"></a>
|
|
<a name="l3868"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Char/Operations"</span><span class=cF0>
|
|
<a name="l3869"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_PAD_ZERO</span><span class=cF0> 0x001
|
|
<a name="l3870"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_LEFT_JUSTIFY</span><span class=cF0> 0x002
|
|
<a name="l3871"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_TRUNCATE</span><span class=cF0> 0x004
|
|
<a name="l3872"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_COMMA</span><span class=cF0> 0x008
|
|
<a name="l3873"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_DOLLAR</span><span class=cF0> 0x010
|
|
<a name="l3874"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_SLASH</span><span class=cF0> 0x020
|
|
<a name="l3875"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_QUESTION</span><span class=cF0> 0x040
|
|
<a name="l3876"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_AUX_FMT_NUM</span><span class=cF0> 0x080
|
|
<a name="l3877"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_DECIMAL</span><span class=cF0> 0x100
|
|
<a name="l3878"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_NEG</span><span class=cF0> 0x200
|
|
<a name="l3879"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_NEG_E</span><span class=cF0> 0x400
|
|
<a name="l3880"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>PRTF_NEG_AUX_FMT_NUM</span><span class=cF0> 0x800
|
|
<a name="l3881"></a>
|
|
<a name="l3882"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Misc/Host"</span><span class=cF0>
|
|
<a name="l3883"></a></span><span class=cF2>//Host Operating System</span><span class=cF0>
|
|
<a name="l3884"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OS_OTHER</span><span class=cF0> 0
|
|
<a name="l3885"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OS_NATIVE</span><span class=cF0> 1
|
|
<a name="l3886"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OS_LINUX</span><span class=cF0> 2
|
|
<a name="l3887"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>OS_WINDOWS</span><span class=cF0> 3
|
|
<a name="l3888"></a></span><span class=cF2>//Virtual Machine</span><span class=cF0>
|
|
<a name="l3889"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VM_OTHER</span><span class=cF0> 0
|
|
<a name="l3890"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VM_NATIVE</span><span class=cF0> 1
|
|
<a name="l3891"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VM_VMWARE</span><span class=cF0> 2
|
|
<a name="l3892"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VM_QEMU</span><span class=cF0> 3
|
|
<a name="l3893"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>VM_VIRTUALBOX</span><span class=cF0> 4
|
|
<a name="l3894"></a>
|
|
<a name="l3895"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>"Registry/Install Registration"</span><span class=cF0>
|
|
<a name="l3896"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>class</span><span class=cF0> </span><span class=cF9>CInsReg</span><span class=cF0>
|
|
<a name="l3897"></a>{
|
|
<a name="l3898"></a> </span><span class=cF1>Bool</span><span class=cF0> registered;
|
|
<a name="l3899"></a> </span><span class=cF9>I64</span><span class=cF0> host_os format </span><span class=cF6>"$PURPLE$Install Registration$FG$\n\n"</span><span class=cF0>
|
|
<a name="l3900"></a> </span><span class=cF6>"Host OS:$LS,D=\"ST_HOST_OSES\"$\n"</span><span class=cF0>;
|
|
<a name="l3901"></a> </span><span class=cF9>I64</span><span class=cF0> host_vm format </span><span class=cF6>"Host VM:$LS,D=\"ST_HOST_VMS\"$\n"</span><span class=cF0>;
|
|
<a name="l3902"></a> </span><span class=cF1>U8</span><span class=cF0> initials[8] format </span><span class=cF6>"$DA-P,A=\"Your Initials:%s\"$\n"</span><span class=cF0>;
|
|
<a name="l3903"></a> </span><span class=cF9>I64</span><span class=cF0> machine_num format
|
|
<a name="l3904"></a> </span><span class=cF6>"$DA-TRM,A=\"This Machine Num (Choose Any):%d\"$\n"</span><span class=cF0>;
|
|
<a name="l3905"></a>};
|
|
<a name="l3906"></a>
|
|
<a name="l3907"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>""</span><span class=cF0>
|
|
</span></pre></body>
|
|
</html>
|