ZealOS/docs/Kernel/KernelB.HH.html

282 lines
85 KiB
HTML
Raw Normal View History

2021-07-03 05:07:57 +01:00
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">
<meta name="generator" content="ZealOS V0.11">
2021-07-03 05:07:57 +01:00
<style type="text/css">
body {background-color:#fef1f0;}
.cF0{color:#000000;background-color:#fef1f0;}
.cF1{color:#0148a4;background-color:#fef1f0;}
.cF2{color:#3b7901;background-color:#fef1f0;}
.cF3{color:#057c7e;background-color:#fef1f0;}
.cF4{color:#bb2020;background-color:#fef1f0;}
.cF5{color:#9e42ae;background-color:#fef1f0;}
.cF6{color:#b57901;background-color:#fef1f0;}
.cF7{color:#b2b6af;background-color:#fef1f0;}
.cF8{color:#555753;background-color:#fef1f0;}
.cF9{color:#678fbb;background-color:#fef1f0;}
.cFA{color:#82bc49;background-color:#fef1f0;}
.cFB{color:#0097a2;background-color:#fef1f0;}
.cFC{color:#e26a6a;background-color:#fef1f0;}
.cFD{color:#c671bc;background-color:#fef1f0;}
.cFE{color:#c7ab00;background-color:#fef1f0;}
.cFF{color:#fef1f0;background-color:#fef1f0;}
2021-07-03 05:07:57 +01:00
</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://zeal-operating-system.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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/StartOS.CC.html#l10"><span class=cF4>KernelB</span></a><span class=cF2> StartOS.CC</span><span class=cF0>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>;
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l736"><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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>;
2021-07-03 05:07:57 +01:00
<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>;
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelB.HH.html#l197"><span class=cF4>Gs</span></a><span class=cF2> points to cur </span><a href="https://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4083"><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://zeal-operating-system.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>];
2021-07-03 05:07:57 +01:00
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l4083"><span class=cF4>CCPU</span></a><span class=cF2>.</span><span class=cF0>
2021-07-03 05:07:57 +01:00
<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://zeal-operating-system.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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l625"><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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l625"><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>;
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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>
2021-07-03 05:07:57 +01:00
<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://zeal-operating-system.github.io/ZealOS/Kernel/KernelA.HH.html#l3964"><span class=cF4>CTask</span></a><span class=cF2>.</span><span class=cF0>
2021-07-03 05:07:57 +01:00
<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>];
2021-07-03 05:07:57 +01:00
<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>