ZealOS/docs/Kernel/KernelB.HH.html
TomAwezome 01e5d408fd Add PopUp with OS Upgrade explanation.
Fix unused var warning in OSUpgrade.
Add Who() output to main generated HTML index file.
Rename all 'inst' to 'instruction'.
Change NetLog behaviour, remove window tiling.
Change network stack to throw if no applicable driver can be loaded.
Update line counts.
2021-07-05 22:57:17 -04:00

281 lines
85 KiB
HTML
Executable file

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">
<meta name="generator" content="ZealOS V0.06">
<style type="text/css">
body {background-color:#000000;}
.cF0{color:#ffffff;background-color:#000000;}
.cF1{color:#3465a4;background-color:#000000;}
.cF2{color:#4e9a06;background-color:#000000;}
.cF3{color:#06989a;background-color:#000000;}
.cF4{color:#a24444;background-color:#000000;}
.cF5{color:#75507b;background-color:#000000;}
.cF6{color:#ce982f;background-color:#000000;}
.cF7{color:#bcc0b9;background-color:#000000;}
.cF8{color:#555753;background-color:#000000;}
.cF9{color:#729fcf;background-color:#000000;}
.cFA{color:#82bc49;background-color:#000000;}
.cFB{color:#34e2e2;background-color:#000000;}
.cFC{color:#ac3535;background-color:#000000;}
.cFD{color:#ad7fa8;background-color:#000000;}
.cFE{color:#fce94f;background-color:#000000;}
.cFF{color:#000000;background-color:#000000;}
</style>
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF2>/*</span><span class=cF0> </span><span class=cF2>Kernel ASM symbols.</span><span class=cF4>
<a name="l2"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l25"><span class=cF4>KernelB</span></a><span class=cF2> Kernel.PRJ</span><span class=cF4>
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Compiler/Compiler.PRJ.html#l10"><span class=cF4>KernelB</span></a><span class=cF2> Compiler.PRJ</span><span class=cF4>
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l10"><span class=cF4>KernelB</span></a><span class=cF2> StartOS.CC</span><span class=cF0>
<a name="l5"></a></span><span class=cF2>*/</span><span class=cF0>
<a name="l6"></a>
<a name="l7"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Bit&quot;</span><span class=cF0>
<a name="l8"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/Bit&quot;</span><span class=cF0>
<a name="l9"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_BSF</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Bsf</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> bit_field_val); </span><span class=cF2>//Scan forward from lowest for 1st set. -1 if not found.</span><span class=cF0>
<a name="l10"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_BSR</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Bsr</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> bit_field_val); </span><span class=cF2>//Scan rev from highest for 1st set. -1 if not found.</span><span class=cF0>
<a name="l11"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_BT</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>Bt</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Bit test.</span><span class=cF0>
<a name="l12"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_BTC</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>Btc</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Bit test and complement (same as xor with 1).</span><span class=cF0>
<a name="l13"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_BTR</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>Btr</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Bit test and reset to zero.</span><span class=cF0>
<a name="l14"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_BTS</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>Bts</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Bit test and set to one.</span><span class=cF0>
<a name="l15"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_LBTC</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>LBtc</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Locked bit test and complement (xor with 1).</span><span class=cF0>
<a name="l16"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_LBTR</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>LBtr</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Locked bit test and reset to zero.</span><span class=cF0>
<a name="l17"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_LBTS</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>LBts</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit); </span><span class=cF2>//Locked bit test and set to one.</span><span class=cF0>
<a name="l18"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_POPCNT</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>PopCount</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> bit_field_val); </span><span class=cF2>//Count number of set bits in number.</span><span class=cF0>
<a name="l19"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_BEQUAL</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>BEqual</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit, </span><span class=cF1>Bool</span><span class=cF0> val);</span><span class=cF2>//Set bit equ to val.</span><span class=cF0>
<a name="l20"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LBEQUAL</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>LBEqual</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit, </span><span class=cF1>Bool</span><span class=cF0> val); </span><span class=cF2>//Locked Set bit equ to val.</span><span class=cF0>
<a name="l21"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_BIT_FIELD_EXT_U32</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF5>BFieldExtU32</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit, </span><span class=cF9>I64</span><span class=cF0> size); </span><span class=cF2>//Extract U32 from bit field.</span><span class=cF0>
<a name="l22"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_BIT_FIELD_OR_U32</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>BFieldOrU32</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *bit_field, </span><span class=cF9>I64</span><span class=cF0> bit, </span><span class=cF9>U32</span><span class=cF0> pattern); </span><span class=cF2>//Or U32 into bit field.</span><span class=cF0>
<a name="l23"></a>
<a name="l24"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Boot&quot;</span><span class=cF0>
<a name="l25"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_BOOT_BASE</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cFB>mem_boot_base</span><span class=cF0>;
<a name="l26"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_BOOT_BLK</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cFB>sys_boot_blk</span><span class=cF0>;
<a name="l27"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_BOOT_PATCH_TABLE_BASE</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cFB>sys_boot_patch_table_base</span><span class=cF0>;
<a name="l28"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_BOOT_SRC</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cFB>sys_boot_src</span><span class=cF0>;
<a name="l29"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_RUN_LEVEL</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cFB>sys_run_level</span><span class=cF0>;
<a name="l30"></a>
<a name="l31"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Call&quot;</span><span class=cF0>
<a name="l32"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CALL</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Call</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *machine_code); </span><span class=cF2>//Call addr with no args.</span><span class=cF0>
<a name="l33"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CALLEXTSTR</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>CallExtStr</span><span class=cF0>(</span><span class=cF2>/*argpop*/</span><span class=cF1>U8</span><span class=cF0> *name, ...);</span><span class=cF2>//Search sym table for fun and pass it args.</span><span class=cF0>
<a name="l34"></a></span><span class=cF2>//Can have any fixed number of arguments.</span><span class=cF0>
<a name="l35"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CALL_IND</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>CallInd</span><span class=cF0>(</span><span class=cF2>/*argpop*/</span><span class=cF9>I64</span><span class=cF0> </span><span class=cF7>(</span><span class=cF0>*fp_addr</span><span class=cF7>)(</span><span class=cF0>...</span><span class=cF7>)</span><span class=cF0>, ...); </span><span class=cF2>//Call with fixed number of args.</span><span class=cF0>
<a name="l36"></a>
<a name="l37"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Call/System Extern Num&quot;</span><span class=cF0>
<a name="l38"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_EXTERN_TABLE</span><span class=cF0> </span><span class=cF2>/*argpop*/</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> (**</span><span class=cFB>ext</span><span class=cF0>)(...); </span><span class=cF2>//Array of fun ptrs.</span><span class=cF0> </span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l735"><span class=cF4>Extern Num Definitions</span></a><span class=cF0>
<a name="l39"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CALLEXTNUM</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>CallExtNum</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> num, ...); </span><span class=cF2>//Call ext num with fixed number of args.</span><span class=cF0>
<a name="l40"></a>
<a name="l41"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Char/Conversion&quot;</span><span class=cF0>
<a name="l42"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_TOUPPER</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>ToUpper</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> ch); </span><span class=cF2>//Convert char to upper case.</span><span class=cF0>
<a name="l43"></a>
<a name="l44"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Char/Operations&quot;</span><span class=cF0>
<a name="l45"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_STRLEN</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>StrLen</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *st); </span><span class=cF2>//String length.</span><span class=cF0>
<a name="l46"></a>
<a name="l47"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Data Types/Circular Queue&quot;</span><span class=cF0>
<a name="l48"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/Queue&quot;</span><span class=cF0>
<a name="l49"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_QUEUE_INIT</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>QueueInit</span><span class=cF0>(</span><span class=cF9>CQueue</span><span class=cF0> *head); </span><span class=cF2>//Init queue head links.</span><span class=cF0>
<a name="l50"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_QUEUE_INSERT</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>QueueInsert</span><span class=cF0>( </span><span class=cF9>CQueue</span><span class=cF0> *entry, </span><span class=cF9>CQueue</span><span class=cF0> *pred);</span><span class=cF2>//Insert item into que after predecessor.</span><span class=cF0>
<a name="l51"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_QUEUE_INSERT_REV</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>QueueInsertRev</span><span class=cF0>(</span><span class=cF9>CQueue</span><span class=cF0> *entry, </span><span class=cF9>CQueue</span><span class=cF0> *succ); </span><span class=cF2>//Revd insert into que.</span><span class=cF0>
<a name="l52"></a> </span><span class=cF2>//Ins item into que before successor.</span><span class=cF0>
<a name="l53"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_QUEUE_REMOVE</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>QueueRemove</span><span class=cF0>( </span><span class=cF9>CQueue</span><span class=cF0> *entry); </span><span class=cF2>//Remove item from queue.</span><span class=cF0>
<a name="l54"></a>
<a name="l55"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;I/O;Processor/IO Port&quot;</span><span class=cF0>
<a name="l56"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_IN_U16</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF5>InU16</span><span class=cF0>( </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Read U16 from I/O port.</span><span class=cF0>
<a name="l57"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_IN_U32</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF5>InU32</span><span class=cF0>( </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Read U32 from I/O port.</span><span class=cF0>
<a name="l58"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_IN_U8</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>InU8</span><span class=cF0>( </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Read U8 from I/O port.</span><span class=cF0>
<a name="l59"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_OUT_U16</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>OutU16</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> port, </span><span class=cF9>I64</span><span class=cF0> val); </span><span class=cF2>//Write U16 to I/O port.</span><span class=cF0>
<a name="l60"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_OUT_U32</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>OutU32</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> port, </span><span class=cF9>I64</span><span class=cF0> val); </span><span class=cF2>//Write U32 to I/O port.</span><span class=cF0>
<a name="l61"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_OUT_U8</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>OutU8</span><span class=cF0>( </span><span class=cF9>I64</span><span class=cF0> port, </span><span class=cF9>I64</span><span class=cF0> val); </span><span class=cF2>//Write U8 to I/O port.</span><span class=cF0>
<a name="l62"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_REP_IN_U16</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RepInU16</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>I64</span><span class=cF0> count, </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Repeated read U16 from I/O port.</span><span class=cF0>
<a name="l63"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_REP_IN_U32</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RepInU32</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>I64</span><span class=cF0> count, </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Repeated read U32 from I/O port.</span><span class=cF0>
<a name="l64"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_REP_IN_U8</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RepInU8</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>I64</span><span class=cF0> count, </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Repeated read U8 from I/O port.</span><span class=cF0>
<a name="l65"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_REP_OUT_U16</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RepOutU16</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>I64</span><span class=cF0> count, </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Repeated write U16 to I/O port.</span><span class=cF0>
<a name="l66"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_REP_OUT_U32</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RepOutU32</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>I64</span><span class=cF0> count, </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Repeated write U32 to I/O port.</span><span class=cF0>
<a name="l67"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_REP_OUT_U8</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RepOutU8</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *buf, </span><span class=cF9>I64</span><span class=cF0> count, </span><span class=cF9>I64</span><span class=cF0> port); </span><span class=cF2>//Repeated write U8 to I/O port.</span><span class=cF0>
<a name="l68"></a>
<a name="l69"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Math&quot;</span><span class=cF0>
<a name="l70"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_ATAN</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>ATan</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Arc Tan (Inverse Tan).</span><span class=cF0>
<a name="l71"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_ABS</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Abs</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Absolute F64.</span><span class=cF0>
<a name="l72"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_ABS_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>AbsI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> i); </span><span class=cF2>//Absolute I64.</span><span class=cF0>
<a name="l73"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_COS</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Cos</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Cosine.</span><span class=cF0>
<a name="l74"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_MAX_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MaxI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> n1, </span><span class=cF9>I64</span><span class=cF0> n2); </span><span class=cF2>//Max of two I64s.</span><span class=cF0>
<a name="l75"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_MAX_U64</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF5>MaxU64</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> n1, </span><span class=cF9>U64</span><span class=cF0> n2); </span><span class=cF2>//Max of two U64s.</span><span class=cF0>
<a name="l76"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_MIN_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MinI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> n1, </span><span class=cF9>I64</span><span class=cF0> n2); </span><span class=cF2>//Min of two I64s.</span><span class=cF0>
<a name="l77"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_MIN_U64</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF5>MinU64</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> n1, </span><span class=cF9>U64</span><span class=cF0> n2); </span><span class=cF2>//Min of two U64s.</span><span class=cF0>
<a name="l78"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_MOD_U64</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF5>ModU64</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> *q, </span><span class=cF9>U64</span><span class=cF0> d); </span><span class=cF2>//Div and return U64 Modulo.</span><span class=cF0>
<a name="l79"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SIGN_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>SignI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> i); </span><span class=cF2>//Sign of I64: -1,0,1.</span><span class=cF0>
<a name="l80"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SIN</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Sin</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Sine.</span><span class=cF0>
<a name="l81"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SQR</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Sqr</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Square of F64.</span><span class=cF0>
<a name="l82"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SQR_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>SqrI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> i); </span><span class=cF2>//Square of I64.</span><span class=cF0>
<a name="l83"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SQR_U64</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF5>SqrU64</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> i); </span><span class=cF2>//Square of U64.</span><span class=cF0>
<a name="l84"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SQRT</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Sqrt</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Square head of F64.</span><span class=cF0>
<a name="l85"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SWAP_I64</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SwapI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *n1, </span><span class=cF9>I64</span><span class=cF0> *n2); </span><span class=cF2>//Swap two I64s. Not atomic.</span><span class=cF0>
<a name="l86"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SWAP_U16</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SwapU16</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> *n1, </span><span class=cF9>U16</span><span class=cF0> *n2); </span><span class=cF2>//Swap two U16s. Not atomic.</span><span class=cF0>
<a name="l87"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SWAP_U32</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SwapU32</span><span class=cF0>(</span><span class=cF9>U32</span><span class=cF0> *n1, </span><span class=cF9>U32</span><span class=cF0> *n2); </span><span class=cF2>//Swap two U32s. Not atomic.</span><span class=cF0>
<a name="l88"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_SWAP_U8</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SwapU8</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *n1, </span><span class=cF1>U8</span><span class=cF0> *n2); </span><span class=cF2>//Swap two U8s. Not atomic.</span><span class=cF0>
<a name="l89"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_TAN</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Tan</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Tangent.</span><span class=cF0>
<a name="l90"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_TO_BOOL</span><span class=cF0> </span><span class=cF1>Bool</span><span class=cF0> </span><span class=cF5>ToBool</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> i); </span><span class=cF2>//Convert to Boolean.</span><span class=cF0>
<a name="l91"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_TO_F64</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>ToF64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> i); </span><span class=cF2>//Convert to F64.</span><span class=cF0>
<a name="l92"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_TO_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>ToI64</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Convert to I64. Truncates.</span><span class=cF0>
<a name="l93"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_ARG</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Arg</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> x, </span><span class=cF1>F64</span><span class=cF0> y); </span><span class=cF2>//Polar coordinate angle.</span><span class=cF0>
<a name="l94"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CEIL</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Ceil</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Ceiling of F64.</span><span class=cF0>
<a name="l95"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CLAMP_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>ClampI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> num, </span><span class=cF9>I64</span><span class=cF0> lo, </span><span class=cF9>I64</span><span class=cF0> hi); </span><span class=cF2>//Clamp to I64 [] range.</span><span class=cF0>
<a name="l96"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CLAMP_U64</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF5>ClampU64</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> num, </span><span class=cF9>U64</span><span class=cF0> lo, </span><span class=cF9>U64</span><span class=cF0> hi); </span><span class=cF2>//Clamp to U64 [] range.</span><span class=cF0>
<a name="l97"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_EXP</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Exp</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Exponential function.</span><span class=cF0>
<a name="l98"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FCLEX</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Fclex</span><span class=cF0>();
<a name="l99"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FLDCW</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Fldcw</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> w);
<a name="l100"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FLOOR</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Floor</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Floor of F64.</span><span class=cF0>
<a name="l101"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FSTCW</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF5>Fstcw</span><span class=cF0>();
<a name="l102"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_FSTSW</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF5>Fstsw</span><span class=cF0>();
<a name="l103"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LN</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Ln</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Logarithm.</span><span class=cF0>
<a name="l104"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LOG10</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Log10</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Log base 10.</span><span class=cF0>
<a name="l105"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LOG2</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Log2</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Log base 2.</span><span class=cF0>
<a name="l106"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_POW</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Pow</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> base, </span><span class=cF1>F64</span><span class=cF0> power); </span><span class=cF2>//F64 base to a power.</span><span class=cF0>
<a name="l107"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_POW10</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Pow10</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Ten to the dth power.</span><span class=cF0>
<a name="l108"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_ROUND</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Round</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Round F64 to whole number.</span><span class=cF0>
<a name="l109"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_SIGN</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Sign</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Sign of F64: -1,0,1</span><span class=cF0>
<a name="l110"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_TRUNC</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>Trunc</span><span class=cF0>(</span><span class=cF1>F64</span><span class=cF0> d); </span><span class=cF2>//Truncate F64.</span><span class=cF0>
<a name="l111"></a>
<a name="l112"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Math/CD3;Data Types/CD3&quot;</span><span class=cF0>
<a name="l113"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/D3&quot;</span><span class=cF0>
<a name="l114"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_ADD</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Add</span><span class=cF0>( </span><span class=cF9>CD3</span><span class=cF0> *sum, </span><span class=cF9>CD3</span><span class=cF0> *d1, </span><span class=cF9>CD3</span><span class=cF0> *d2); </span><span class=cF2>//sum=d1+d2</span><span class=cF0>
<a name="l115"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_ADD_EQU</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3AddEqu</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *sum, </span><span class=cF9>CD3</span><span class=cF0> *d); </span><span class=cF2>//sum+=d</span><span class=cF0>
<a name="l116"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_COPY</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Copy</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *dst, </span><span class=cF9>CD3</span><span class=cF0> *src); </span><span class=cF2>//dst=src</span><span class=cF0>
<a name="l117"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_CROSS</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Cross</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *prod, </span><span class=cF9>CD3</span><span class=cF0> *d1, </span><span class=cF9>CD3</span><span class=cF0> *d2); </span><span class=cF2>//prod=d1xd2</span><span class=cF0>
<a name="l118"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_DIST</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>D3Dist</span><span class=cF0>( </span><span class=cF9>CD3</span><span class=cF0> *d1, </span><span class=cF9>CD3</span><span class=cF0> *d2); </span><span class=cF2>//Distance</span><span class=cF0>
<a name="l119"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_DIST_SQR</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>D3DistSqr</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *d1, </span><span class=cF9>CD3</span><span class=cF0> *d2); </span><span class=cF2>//Distance Squared</span><span class=cF0>
<a name="l120"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_DIV</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Div</span><span class=cF0>( </span><span class=cF9>CD3</span><span class=cF0> *quot, </span><span class=cF9>CD3</span><span class=cF0> *d, </span><span class=cF1>F64</span><span class=cF0> s); </span><span class=cF2>//quot=d/s</span><span class=cF0>
<a name="l121"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_DIV_EQU</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3DivEqu</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *quot, </span><span class=cF1>F64</span><span class=cF0> s); </span><span class=cF2>//quot/=s</span><span class=cF0>
<a name="l122"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_DOT</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>D3Dot</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *d1, </span><span class=cF9>CD3</span><span class=cF0> *d2); </span><span class=cF2>//d1 dot d2</span><span class=cF0>
<a name="l123"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_EQU</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Equ</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *dst, </span><span class=cF1>F64</span><span class=cF0> x=</span><span class=cFE>0</span><span class=cF0>, </span><span class=cF1>F64</span><span class=cF0> y=</span><span class=cFE>0</span><span class=cF0>, </span><span class=cF1>F64</span><span class=cF0> z=</span><span class=cFE>0</span><span class=cF0>); </span><span class=cF2>//dst=(x, y,z)</span><span class=cF0>
<a name="l124"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_MUL</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Mul</span><span class=cF0>( </span><span class=cF9>CD3</span><span class=cF0> *prod, </span><span class=cF1>F64</span><span class=cF0> s, </span><span class=cF9>CD3</span><span class=cF0> *d); </span><span class=cF2>//prod=s*d</span><span class=cF0>
<a name="l125"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_MUL_EQU</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3MulEqu</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *prod, </span><span class=cF1>F64</span><span class=cF0> s); </span><span class=cF2>//prod*=s</span><span class=cF0>
<a name="l126"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_NORM</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>D3Norm</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *d); </span><span class=cF2>//Norm</span><span class=cF0>
<a name="l127"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_NORM_SQR</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cF5>D3NormSqr</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *d); </span><span class=cF2>//Norm Squared</span><span class=cF0>
<a name="l128"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_SUB</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Sub</span><span class=cF0>( </span><span class=cF9>CD3</span><span class=cF0> *diff, </span><span class=cF9>CD3</span><span class=cF0> *d1, </span><span class=cF9>CD3</span><span class=cF0> *d2); </span><span class=cF2>//diff=d1-d2</span><span class=cF0>
<a name="l129"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_SUB_EQU</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3SubEqu</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *diff, </span><span class=cF9>CD3</span><span class=cF0> *d); </span><span class=cF2>//diff-=d</span><span class=cF0>
<a name="l130"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_UNIT</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Unit</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *d); </span><span class=cF2>//To unit vect</span><span class=cF0>
<a name="l131"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_D3_ZERO</span><span class=cF0> </span><span class=cF9>CD3</span><span class=cF0> *</span><span class=cF5>D3Zero</span><span class=cF0>(</span><span class=cF9>CD3</span><span class=cF0> *dst); </span><span class=cF2>//To zero</span><span class=cF0>
<a name="l132"></a>
<a name="l133"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Memory&quot;</span><span class=cF0>
<a name="l134"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MEMCOMPARE</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MemCompare</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *ptr1, </span><span class=cF1>U8</span><span class=cF0> *ptr2, </span><span class=cF9>I64</span><span class=cF0> count); </span><span class=cF2>//Compare chunk of memory.</span><span class=cF0>
<a name="l135"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MEMCOPY</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>MemCopy</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *dst, </span><span class=cF1>U8</span><span class=cF0> *src, </span><span class=cF9>I64</span><span class=cF0> count); </span><span class=cF2>//Copy chunk of memory. Only goes forward.</span><span class=cF0>
<a name="l136"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MEMSET</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>MemSet</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *dst, </span><span class=cF9>I64</span><span class=cF0> val, </span><span class=cF9>I64</span><span class=cF0> count); </span><span class=cF2>//Set chunk of U8s to value.</span><span class=cF0>
<a name="l137"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MEMSET_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> *</span><span class=cF5>MemSetI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *dst, </span><span class=cF9>I64</span><span class=cF0> val, </span><span class=cF9>I64</span><span class=cF0> I64count); </span><span class=cF2>//Set chunk of I64s to value.</span><span class=cF0>
<a name="l138"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MEMSET_U16</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> *</span><span class=cF5>MemSetU16</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> *dst, </span><span class=cF9>I64</span><span class=cF0> val, </span><span class=cF9>I64</span><span class=cF0> U16count); </span><span class=cF2>//Set chunk of U16s to value.</span><span class=cF0>
<a name="l139"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MEMSET_U32</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> *</span><span class=cF5>MemSetU32</span><span class=cF0>(</span><span class=cF9>U32</span><span class=cF0> *dst, </span><span class=cF9>I64</span><span class=cF0> val, </span><span class=cF9>I64</span><span class=cF0> U32count); </span><span class=cF2>//Set chunk of U32s to value.</span><span class=cF0>
<a name="l140"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_HEAP_DEBUG_FLAG</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_heap_debug</span><span class=cF0>;
<a name="l141"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_HEAP_INIT_FLAG</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_heap_init_flag</span><span class=cF0>;
<a name="l142"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_HEAP_INIT_VAL</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_heap_init_val</span><span class=cF0>;
<a name="l143"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MEM_INIT_FLAG</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_mem_init_flag</span><span class=cF0>;
<a name="l144"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MEM_INIT_VAL</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_mem_init_val</span><span class=cF0>;
<a name="l145"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_VAR_INIT_FLAG</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_var_init_flag</span><span class=cF0>;
<a name="l146"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_VAR_INIT_VAL</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>sys_var_init_val</span><span class=cF0>;
<a name="l147"></a>
<a name="l148"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Memory/BlkPool&quot;</span><span class=cF0>
<a name="l149"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_CODE_BP</span><span class=cF0> </span><span class=cF9>CBlkPool</span><span class=cF0> *</span><span class=cFB>sys_code_bp</span><span class=cF0>; </span><span class=cF2>//System's BlkPool for code.</span><span class=cF0>
<a name="l150"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_DATA_BP</span><span class=cF0> </span><span class=cF9>CBlkPool</span><span class=cF0> *</span><span class=cFB>sys_data_bp</span><span class=cF0>; </span><span class=cF2>//System's BlkPool for data.</span><span class=cF0>
<a name="l151"></a>
<a name="l152"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Memory/Info&quot;</span><span class=cF0>
<a name="l153"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_HEAP_BASE</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFB>mem_heap_base</span><span class=cF0>;
<a name="l154"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_HEAP_LIMIT</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFB>mem_heap_limit</span><span class=cF0>;
<a name="l155"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_MAPPED_SPACE</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFB>mem_mapped_space</span><span class=cF0>;
<a name="l156"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_PHYSICAL_SPACE</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cFB>mem_physical_space</span><span class=cF0>;
<a name="l157"></a>
<a name="l158"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Messages;Windows&quot;</span><span class=cF0>
<a name="l159"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_FOCUS_TASK</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0> *</span><span class=cFB>sys_focus_task</span><span class=cF0>; </span><span class=cF2>//Current focus task.</span><span class=cF0>
<a name="l160"></a>
<a name="l161"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Misc&quot;</span><span class=cF0>
<a name="l162"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_COMPILE_TIME</span><span class=cF0> </span><span class=cF9>CDate</span><span class=cF0> </span><span class=cFB>sys_compile_time</span><span class=cF0>; </span><span class=cF2>//Date and time kernel was compiled.</span><span class=cF0>
<a name="l163"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_CTRL_ALT_FLAGS</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>sys_ctrl_alt_flags</span><span class=cF0>[</span><span class=cFE>1</span><span class=cF0>]; </span><span class=cF2>//Should be semiphores?</span><span class=cF0>
<a name="l164"></a>
<a name="l165"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Misc/Progress Bars&quot;</span><span class=cF0>
<a name="l166"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS1</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress1</span><span class=cF0>; </span><span class=cF2>//Current progress 1.</span><span class=cF0>
<a name="l167"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS1_DESC</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>progress1_desc</span><span class=cF0>[</span><span class=cF3>PROGRESS_DESC_LEN</span><span class=cF0>]; </span><span class=cF2>//Progress 1 desc.</span><span class=cF0>
<a name="l168"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS1_MAX</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress1_max</span><span class=cF0>; </span><span class=cF2>//Progress 1 max.</span><span class=cF0>
<a name="l169"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS1_T0</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress1_t0</span><span class=cF0>; </span><span class=cF2>//Progress 1 start time.</span><span class=cF0>
<a name="l170"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS1_TF</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress1_tf</span><span class=cF0>; </span><span class=cF2>//Progress 1 end time.</span><span class=cF0>
<a name="l171"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS2</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress2</span><span class=cF0>; </span><span class=cF2>//Current progress 2.</span><span class=cF0>
<a name="l172"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS2_DESC</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>progress2_desc</span><span class=cF0>[</span><span class=cF3>PROGRESS_DESC_LEN</span><span class=cF0>]; </span><span class=cF2>//Progress 2 desc.</span><span class=cF0>
<a name="l173"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS2_MAX</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress2_max</span><span class=cF0>; </span><span class=cF2>//Progress 2 max.</span><span class=cF0>
<a name="l174"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS2_T0</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress2_t0</span><span class=cF0>; </span><span class=cF2>//Progress 2 start time.</span><span class=cF0>
<a name="l175"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS2_TF</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress2_tf</span><span class=cF0>; </span><span class=cF2>//Progress 2 end time.</span><span class=cF0>
<a name="l176"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS3</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress3</span><span class=cF0>; </span><span class=cF2>//Current progress 3.</span><span class=cF0>
<a name="l177"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS3_DESC</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>progress3_desc</span><span class=cF0>[</span><span class=cF3>PROGRESS_DESC_LEN</span><span class=cF0>]; </span><span class=cF2>//Progress 3 desc.</span><span class=cF0>
<a name="l178"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS3_MAX</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress3_max</span><span class=cF0>; </span><span class=cF2>//Progress 3 max.</span><span class=cF0>
<a name="l179"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS3_T0</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress3_t0</span><span class=cF0>; </span><span class=cF2>//Progress 3 start time.</span><span class=cF0>
<a name="l180"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS3_TF</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress3_tf</span><span class=cF0>; </span><span class=cF2>//Progress 3 end time.</span><span class=cF0>
<a name="l181"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS4</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress4</span><span class=cF0>; </span><span class=cF2>//Current progress 4.</span><span class=cF0>
<a name="l182"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS4_DESC</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cFB>progress4_desc</span><span class=cF0>[</span><span class=cF3>PROGRESS_DESC_LEN</span><span class=cF0>]; </span><span class=cF2>//Progress 4 desc.</span><span class=cF0>
<a name="l183"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS4_MAX</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>progress4_max</span><span class=cF0>; </span><span class=cF2>//Progress 4 max.</span><span class=cF0>
<a name="l184"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS4_T0</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress4_t0</span><span class=cF0>; </span><span class=cF2>//Progress 4 start time.</span><span class=cF0>
<a name="l185"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESS4_TF</span><span class=cF0> </span><span class=cF1>F64</span><span class=cF0> </span><span class=cFB>progress4_tf</span><span class=cF0>; </span><span class=cF2>//Progress 4 end time.</span><span class=cF0>
<a name="l186"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PROGRESSES</span><span class=cF0> </span><span class=cF9>CProgress</span><span class=cF0> </span><span class=cFB>sys_progresses</span><span class=cF0>[</span><span class=cF3>PROGRESS_BARS_NUM</span><span class=cF0>]; </span><span class=cF2>//All progress bars.</span><span class=cF0>
<a name="l187"></a>
<a name="l188"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;MultiCore&quot;</span><span class=cF0>
<a name="l189"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/MultiCore&quot;</span><span class=cF0>
<a name="l190"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_CPU_STRUCTS</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> *</span><span class=cFB>cpu_structs</span><span class=cF0>; </span><span class=cF2>//</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l197"><span class=cF4>Gs</span></a><span class=cF2> points to cur </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4058"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
<a name="l191"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MP_COUNT</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>mp_count</span><span class=cF0>; </span><span class=cF2>//Count of cores</span><span class=cF0>
<a name="l192"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MP_COUNT_INITIAL</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>mp_count_initial</span><span class=cF0>; </span><span class=cF2>//only used during </span><a href="https://tomawezome.github.io/ZealOS/Kernel/MultiProc.CC.html#l298"><span class=cF4>Core0StartMP</span></a><span class=cF0>
<a name="l193"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_MP_COUNT_LOCK</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>mp_count_lock</span><span class=cF0>;
<a name="l194"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_SEMAS</span><span class=cF0> </span><span class=cF9>CSema</span><span class=cF0> </span><span class=cFB>sys_semas</span><span class=cF0>[</span><span class=cF3>SEMA_SEMAS_NUM</span><span class=cF0>];
<a name="l195"></a>
<a name="l196"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;MultiCore;Processor&quot;</span><span class=cF0>
<a name="l197"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_GS</span><span class=cF0> </span><span class=cF9>CCPU</span><span class=cF0> *</span><span class=cF5>Gs</span><span class=cF0>(); </span><span class=cF2>//GS points to current </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4058"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
<a name="l198"></a>
<a name="l199"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;PCI&quot;</span><span class=cF0>
<a name="l200"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_PCI_BUSES</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cFB>sys_pci_buses</span><span class=cF0>; </span><span class=cF2>//Number of PCI buses.</span><span class=cF0>
<a name="l201"></a>
<a name="l202"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Processor&quot;</span><span class=cF0>
<a name="l203"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_CARRY</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Carry</span><span class=cF0>(); </span><span class=cF2>//See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Carry.CC.html#l1"><span class=cF4>::/Demo/Carry.CC</span></a><span class=cF0>
<a name="l204"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RAX_GET</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>RAXGet</span><span class=cF0>(); </span><span class=cF2>//Get RAX register value.</span><span class=cF0>
<a name="l205"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RBP_GET</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>RBPGet</span><span class=cF0>(); </span><span class=cF2>//Get RBP register value.</span><span class=cF0>
<a name="l206"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RFLAGS_GET</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>RFlagsGet</span><span class=cF0>(); </span><span class=cF2>//Get RFlags register value.</span><span class=cF0>
<a name="l207"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RSP_GET</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> *</span><span class=cF5>RSPGet</span><span class=cF0>(); </span><span class=cF2>//Get RSP register value.</span><span class=cF0>
<a name="l208"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_POP</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>Pop</span><span class=cF0>(); </span><span class=cF2>//Pop value from stack.</span><span class=cF0>
<a name="l209"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_PUSH</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>Push</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> d); </span><span class=cF2>//Push value on stack.</span><span class=cF0>
<a name="l210"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RAX_SET</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RAXSet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> d); </span><span class=cF2>//Set RAX register value.</span><span class=cF0>
<a name="l211"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RBP_SET</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RBPSet</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *d); </span><span class=cF2>//Set RBP register value.</span><span class=cF0>
<a name="l212"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RFLAGS_SET</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RFlagsSet</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> d); </span><span class=cF2>//Set RFlags register value.</span><span class=cF0>
<a name="l213"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RSP_SET</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>RSPSet</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *d); </span><span class=cF2>//Set RSP register value.</span><span class=cF0>
<a name="l214"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_CPUID</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>CPUId</span><span class=cF0>(</span><span class=cF9>U32</span><span class=cF0> rax, </span><span class=cF9>CRAXRBXRCXRDX</span><span class=cF0> *res); </span><span class=cF2>//Do CPUID instruction.</span><span class=cF0>
<a name="l215"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_ENDIAN_U16</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF5>EndianU16</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> val); </span><span class=cF2>//Swap big&lt;--&gt;little endian U16.</span><span class=cF0>
<a name="l216"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_ENDIAN_U32</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF5>EndianU32</span><span class=cF0>(</span><span class=cF9>U32</span><span class=cF0> val); </span><span class=cF2>//Swap big&lt;--&gt;little endian U32.</span><span class=cF0>
<a name="l217"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_ENDIAN_U64</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cF5>EndianU64</span><span class=cF0>(</span><span class=cF9>U64</span><span class=cF0> val); </span><span class=cF2>//Swap big&lt;--&gt;little endian U64.</span><span class=cF0>
<a name="l218"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LXCHG_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>LXchgI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *dst, </span><span class=cF9>I64</span><span class=cF0> d); </span><span class=cF2>//Locked eXchange I64s.</span><span class=cF0>
<a name="l219"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LXCHG_U16</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF5>LXchgU16</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> *dst, </span><span class=cF9>U16</span><span class=cF0> d); </span><span class=cF2>//Locked eXchange U16s.</span><span class=cF0>
<a name="l220"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LXCHG_U32</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF5>LXchgU32</span><span class=cF0>(</span><span class=cF9>U32</span><span class=cF0> *dst, </span><span class=cF9>U32</span><span class=cF0> d); </span><span class=cF2>//Locked eXchange U32s.</span><span class=cF0>
<a name="l221"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_LXCHG_U8</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>LXchgU8</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *dst, </span><span class=cF1>U8</span><span class=cF0> d); </span><span class=cF2>//Locked eXchange U8s.</span><span class=cF0>
<a name="l222"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MSR_READ</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>MSRRead</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> model_specific_reg); </span><span class=cF2>//Model Specific Reg See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l624"><span class=cF4>MSRs</span></a><span class=cF2>.</span><span class=cF0>
<a name="l223"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_MSR_WRITE</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>MSRWrite</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> model_specific_reg, </span><span class=cF9>I64</span><span class=cF0> val); </span><span class=cF2>//Model Specific Reg See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l624"><span class=cF4>MSRs</span></a><span class=cF2>.</span><span class=cF0>
<a name="l224"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_SYS_HLT</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>SysHlt</span><span class=cF0>(); </span><span class=cF2>//Loops doing HLT instruction.</span><span class=cF0>
<a name="l225"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_XCHG_I64</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>XchgI64</span><span class=cF0>(</span><span class=cF9>I64</span><span class=cF0> *dst, </span><span class=cF9>I64</span><span class=cF0> d); </span><span class=cF2>//eXchange I64s.</span><span class=cF0>
<a name="l226"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_XCHG_U16</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cF5>XchgU16</span><span class=cF0>(</span><span class=cF9>U16</span><span class=cF0> *dst, </span><span class=cF9>U16</span><span class=cF0> d); </span><span class=cF2>//eXchange U16s.</span><span class=cF0>
<a name="l227"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_XCHG_U32</span><span class=cF0> </span><span class=cF9>U32</span><span class=cF0> </span><span class=cF5>XchgU32</span><span class=cF0>(</span><span class=cF9>U32</span><span class=cF0> *dst, </span><span class=cF9>U32</span><span class=cF0> d); </span><span class=cF2>//eXchange U32s.</span><span class=cF0>
<a name="l228"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>_XCHG_U8</span><span class=cF0> </span><span class=cF1>U8</span><span class=cF0> </span><span class=cF5>XchgU8</span><span class=cF0>( </span><span class=cF1>U8</span><span class=cF0> *dst, </span><span class=cF1>U8</span><span class=cF0> d); </span><span class=cF2>//eXchange U8s.</span><span class=cF0>
<a name="l229"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_GDT</span><span class=cF0> </span><span class=cF9>CGDT</span><span class=cF0> </span><span class=cFB>sys_gdt</span><span class=cF0>;
<a name="l230"></a>
<a name="l231"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Processor/Cache;Memory/Cache&quot;</span><span class=cF0>
<a name="l232"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_CLFLUSH</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>CLFlush</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *a); </span><span class=cF2>//Flush cache line instruction.</span><span class=cF0>
<a name="l233"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_CACHE_LINE_WIDTH</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cFB>sys_cache_line_width</span><span class=cF0>; </span><span class=cF2>//CPU's Cache line width.</span><span class=cF0>
<a name="l234"></a>
<a name="l235"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Processor/Page Tables;Memory/Page Tables&quot;</span><span class=cF0>
<a name="l236"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_INVLPG</span><span class=cF0> </span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>InvalidatePage</span><span class=cF0>(</span><span class=cF1>U8</span><span class=cF0> *a); </span><span class=cF2>//Invalidate page at addr instruction.</span><span class=cF0>
<a name="l237"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>MEM_PAGE_SIZE</span><span class=cF0> </span><span class=cF9>U64</span><span class=cF0> </span><span class=cFB>mem_page_size</span><span class=cF0>;
<a name="l238"></a>
<a name="l239"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Task;Processor&quot;</span><span class=cF0>
<a name="l240"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_FS</span><span class=cF0> </span><span class=cF9>CTask</span><span class=cF0> *</span><span class=cF5>Fs</span><span class=cF0>(); </span><span class=cF2>//FS seg reg points to the current </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3939"><span class=cF4>CTask</span></a><span class=cF2>.</span><span class=cF0>
<a name="l241"></a>
<a name="l242"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Time/CPU Cycles&quot;</span><span class=cF0>
<a name="l243"></a>#</span><span class=cF1>help_file</span><span class=cF0> </span><span class=cF6>&quot;::/Doc/TimeCycles&quot;</span><span class=cF0>
<a name="l244"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_intern</span><span class=cF0> </span><span class=cF3>IC_RDTSC</span><span class=cF0> </span><span class=cF9>I64</span><span class=cF0> </span><span class=cF5>TSCGet</span><span class=cF0>(); </span><span class=cF2>//Get time stamp counter.</span><span class=cF0>
<a name="l245"></a>
<a name="l246"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;Graphics/VBE&quot;</span><span class=cF0>
<a name="l247"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_VBE_INFO</span><span class=cF0> </span><span class=cF9>CVBEInfo</span><span class=cF0> </span><span class=cFB>sys_vbe_info</span><span class=cF0>;
<a name="l248"></a></span><span class=cF1>public</span><span class=cF0> </span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_VBE_FINAL_MODE</span><span class=cF0> </span><span class=cF9>CVBEMode</span><span class=cF0> </span><span class=cFB>sys_vbe_mode</span><span class=cF0>;
<a name="l249"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_VBE_FINAL_MODE_NUM</span><span class=cF0> </span><span class=cF9>U16</span><span class=cF0> </span><span class=cFB>sys_vbe_mode_num</span><span class=cF0>;
<a name="l250"></a></span><span class=cF1>_extern</span><span class=cF0> </span><span class=cFD>SYS_VBE_MODES</span><span class=cF0> </span><span class=cF9>CVBEModeShort</span><span class=cF0> </span><span class=cFB>sys_vbe_modes</span><span class=cF0>[</span><span class=cF3>VBE_MODES_NUM</span><span class=cF0>];
<a name="l251"></a>
<a name="l252"></a>#</span><span class=cF1>help_index</span><span class=cF0> </span><span class=cF6>&quot;&quot;</span><span class=cF0>
</span></pre></body>
</html>