2020-02-20 23:40:10 +00:00
|
|
|
|
/* Kernel ASM symbols.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
$LK,"KernelB",A="FF:::/Kernel/Kernel.PRJ,KernelB"$ Kernel.PRJ
|
|
|
|
|
$LK,"KernelB",A="FF:::/Compiler/Compiler.PRJ,KernelB"$ Compiler.PRJ
|
2021-12-11 11:21:22 +00:00
|
|
|
|
$LK,"KernelB",A="FF:::/StartOS.ZC,KernelB"$ StartOS.ZC
|
2020-02-15 20:01:48 +00:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#help_index "Bit"
|
|
|
|
|
#help_file "::/Doc/Bit"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _intern IC_BSF I64 Bsf(I64 bit_field_val); //Scan forward from lowest for 1st set. -1 if not found.
|
|
|
|
|
public _intern IC_BSR I64 Bsr(I64 bit_field_val); //Scan rev from highest for 1st set. -1 if not found.
|
|
|
|
|
public _intern IC_BT Bool Bt( U8 *bit_field, I64 bit); //Bit test.
|
|
|
|
|
public _intern IC_BTC Bool Btc( U8 *bit_field, I64 bit); //Bit test and complement (same as xor with 1).
|
|
|
|
|
public _intern IC_BTR Bool Btr( U8 *bit_field, I64 bit); //Bit test and reset to zero.
|
|
|
|
|
public _intern IC_BTS Bool Bts( U8 *bit_field, I64 bit); //Bit test and set to one.
|
|
|
|
|
public _intern IC_LBTC Bool LBtc( U8 *bit_field, I64 bit); //Locked bit test and complement (xor with 1).
|
|
|
|
|
public _intern IC_LBTR Bool LBtr( U8 *bit_field, I64 bit); //Locked bit test and reset to zero.
|
|
|
|
|
public _intern IC_LBTS Bool LBts( U8 *bit_field, I64 bit); //Locked bit test and set to one.
|
|
|
|
|
public _intern IC_POPCNT I64 PopCount(I64 bit_field_val); //Count number of set bits in number.
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern _BEQUAL Bool BEqual( U8 *bit_field, I64 bit, Bool val);//Set bit equal to value.
|
|
|
|
|
public _extern _LBEQUAL Bool LBEqual( U8 *bit_field, I64 bit, Bool val); //Locked Set bit equal to value.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _BIT_FIELD_EXT_U32 U32 BFieldExtU32(U8 *bit_field, I64 bit, I64 size); //Extract U32 from bit field.
|
|
|
|
|
public _extern _BIT_FIELD_OR_U32 U0 BFieldOrU32( U8 *bit_field, I64 bit, U32 pattern); //Or U32 into bit field.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Boot"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
_extern MEM_BOOT_BASE U32 mem_boot_base;
|
|
|
|
|
_extern SYS_BOOT_BLK U32 sys_boot_blk;
|
|
|
|
|
_extern SYS_BOOT_PATCH_TABLE_BASE U32 sys_boot_patch_table_base;
|
|
|
|
|
_extern SYS_BOOT_SRC U32 sys_boot_src;
|
|
|
|
|
_extern SYS_RUN_LEVEL U32 sys_run_level;
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Call"
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern _CALL I64 Call(U8 *machine_code); //Call address with no args.
|
|
|
|
|
public _extern _CALLEXTSTR I64 CallExtStr(/*argpop*/U8 *name, ...);//Search sym table for function and pass it args.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
//Can have any fixed number of arguments.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _CALL_IND I64 CallInd(/*argpop*/I64 (*fp_addr)(...), ...); //Call with fixed number of args.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Call/System Extern Num"
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern SYS_EXTERN_TABLE /*argpop*/ I64 (**ext)(...); //Array of function pointers. See $LK,"Extern Num Definitions",A="MN:EXT_EXTS_NUM"$
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _CALLEXTNUM I64 CallExtNum(I64 num, ...); //Call ext num with fixed number of args.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Char/Conversion"
|
2020-05-05 07:47:34 +01:00
|
|
|
|
public _intern IC_TOUPPER I64 ToUpper(U8 ch); //Convert char to upper case.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Char/Operations"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _intern IC_STRLEN I64 StrLen(U8 *st); //String length.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Data Types/Circular Queue"
|
2020-02-15 22:53:02 +00:00
|
|
|
|
#help_file "::/Doc/Queue"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _intern IC_QUEUE_INIT U0 QueueInit(CQueue *head); //Init queue head links.
|
|
|
|
|
public _intern IC_QUEUE_INSERT U0 QueueInsert( CQueue *entry, CQueue *pred);//Insert item into que after predecessor.
|
|
|
|
|
public _intern IC_QUEUE_INSERT_REV U0 QueueInsertRev(CQueue *entry, CQueue *succ); //Revd insert into que.
|
|
|
|
|
//Ins item into que before successor.
|
|
|
|
|
public _intern IC_QUEUE_REMOVE U0 QueueRemove( CQueue *entry); //Remove item from queue.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "I/O;Processor/IO Port"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _intern IC_IN_U16 U16 InU16( I64 port); //Read U16 from I/O port.
|
|
|
|
|
public _intern IC_IN_U32 U32 InU32( I64 port); //Read U32 from I/O port.
|
|
|
|
|
public _intern IC_IN_U8 U8 InU8( I64 port); //Read U8 from I/O port.
|
|
|
|
|
public _intern IC_OUT_U16 U0 OutU16(I64 port, I64 val); //Write U16 to I/O port.
|
|
|
|
|
public _intern IC_OUT_U32 U0 OutU32(I64 port, I64 val); //Write U32 to I/O port.
|
|
|
|
|
public _intern IC_OUT_U8 U0 OutU8( I64 port, I64 val); //Write U8 to I/O port.
|
|
|
|
|
public _extern _REP_IN_U16 U0 RepInU16( U8 *buf, I64 count, I64 port); //Repeated read U16 from I/O port.
|
|
|
|
|
public _extern _REP_IN_U32 U0 RepInU32( U8 *buf, I64 count, I64 port); //Repeated read U32 from I/O port.
|
|
|
|
|
public _extern _REP_IN_U8 U0 RepInU8( U8 *buf, I64 count, I64 port); //Repeated read U8 from I/O port.
|
|
|
|
|
public _extern _REP_OUT_U16 U0 RepOutU16(U8 *buf, I64 count, I64 port); //Repeated write U16 to I/O port.
|
|
|
|
|
public _extern _REP_OUT_U32 U0 RepOutU32(U8 *buf, I64 count, I64 port); //Repeated write U32 to I/O port.
|
|
|
|
|
public _extern _REP_OUT_U8 U0 RepOutU8( U8 *buf, I64 count, I64 port); //Repeated write U8 to I/O port.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Math"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _intern IC_ATAN F64 ATan(F64 d); //Arc Tan (Inverse Tan).
|
|
|
|
|
public _intern IC_ABS F64 Abs(F64 d); //Absolute F64.
|
|
|
|
|
public _intern IC_ABS_I64 I64 AbsI64(I64 i); //Absolute I64.
|
|
|
|
|
public _intern IC_COS F64 Cos(F64 d); //Cosine.
|
|
|
|
|
public _intern IC_MAX_I64 I64 MaxI64(I64 n1, I64 n2); //Max of two I64s.
|
|
|
|
|
public _intern IC_MAX_U64 U64 MaxU64(U64 n1, U64 n2); //Max of two U64s.
|
|
|
|
|
public _intern IC_MIN_I64 I64 MinI64(I64 n1, I64 n2); //Min of two I64s.
|
|
|
|
|
public _intern IC_MIN_U64 U64 MinU64(U64 n1, U64 n2); //Min of two U64s.
|
|
|
|
|
public _intern IC_MOD_U64 U64 ModU64(U64 *q, U64 d); //Div and return U64 Modulo.
|
|
|
|
|
public _intern IC_SIGN_I64 I64 SignI64(I64 i); //Sign of I64: -1,0,1.
|
|
|
|
|
public _intern IC_SIN F64 Sin(F64 d); //Sine.
|
|
|
|
|
public _intern IC_SQR F64 Sqr(F64 d); //Square of F64.
|
|
|
|
|
public _intern IC_SQR_I64 I64 SqrI64(I64 i); //Square of I64.
|
|
|
|
|
public _intern IC_SQR_U64 U64 SqrU64(U64 i); //Square of U64.
|
|
|
|
|
public _intern IC_SQRT F64 Sqrt(F64 d); //Square head of F64.
|
|
|
|
|
public _intern IC_SWAP_I64 U0 SwapI64(I64 *n1, I64 *n2); //Swap two I64s. Not atomic.
|
|
|
|
|
public _intern IC_SWAP_U16 U0 SwapU16(U16 *n1, U16 *n2); //Swap two U16s. Not atomic.
|
|
|
|
|
public _intern IC_SWAP_U32 U0 SwapU32(U32 *n1, U32 *n2); //Swap two U32s. Not atomic.
|
|
|
|
|
public _intern IC_SWAP_U8 U0 SwapU8(U8 *n1, U8 *n2); //Swap two U8s. Not atomic.
|
|
|
|
|
public _intern IC_TAN F64 Tan(F64 d); //Tangent.
|
|
|
|
|
public _intern IC_TO_BOOL Bool ToBool(I64 i); //Convert to Boolean.
|
|
|
|
|
public _intern IC_TO_F64 F64 ToF64(I64 i); //Convert to F64.
|
|
|
|
|
public _intern IC_TO_I64 I64 ToI64(F64 d); //Convert to I64. Truncates.
|
|
|
|
|
public _extern _ARG F64 Arg(F64 x, F64 y); //Polar coordinate angle.
|
|
|
|
|
public _extern _CEIL F64 Ceil(F64 d); //Ceiling of F64.
|
|
|
|
|
public _extern _CLAMP_I64 I64 ClampI64(I64 num, I64 lo, I64 hi); //Clamp to I64 [] range.
|
|
|
|
|
public _extern _CLAMP_U64 U64 ClampU64(U64 num, U64 lo, U64 hi); //Clamp to U64 [] range.
|
|
|
|
|
public _extern _EXP F64 Exp(F64 d); //Exponential function.
|
|
|
|
|
_extern _FCLEX U0 Fclex();
|
|
|
|
|
_extern _FLDCW U0 Fldcw(U16 w);
|
|
|
|
|
public _extern _FLOOR F64 Floor(F64 d); //Floor of F64.
|
|
|
|
|
_extern _FSTCW U16 Fstcw();
|
|
|
|
|
_extern _FSTSW U16 Fstsw();
|
|
|
|
|
public _extern _LN F64 Ln(F64 d); //Logarithm.
|
|
|
|
|
public _extern _LOG10 F64 Log10(F64 d); //Log base 10.
|
|
|
|
|
public _extern _LOG2 F64 Log2(F64 d); //Log base 2.
|
|
|
|
|
public _extern _POW F64 Pow(F64 base, F64 power); //F64 base to a power.
|
|
|
|
|
public _extern _POW10 F64 Pow10(F64 d); //Ten to the dth power.
|
|
|
|
|
public _extern _ROUND F64 Round(F64 d); //Round F64 to whole number.
|
|
|
|
|
public _extern _SIGN F64 Sign(F64 d); //Sign of F64: -1,0,1
|
|
|
|
|
public _extern _TRUNC F64 Trunc(F64 d); //Truncate F64.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Math/CD3;Data Types/CD3"
|
|
|
|
|
#help_file "::/Doc/D3"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _D3_ADD CD3 *D3Add( CD3 *sum, CD3 *d1, CD3 *d2); //sum=d1+d2
|
|
|
|
|
public _extern _D3_ADD_EQU CD3 *D3AddEqu(CD3 *sum, CD3 *d); //sum+=d
|
|
|
|
|
public _extern _D3_COPY CD3 *D3Copy(CD3 *dst, CD3 *src); //dst=src
|
|
|
|
|
public _extern _D3_CROSS CD3 *D3Cross(CD3 *prod, CD3 *d1, CD3 *d2); //prod=d1xd2
|
|
|
|
|
public _extern _D3_DIST F64 D3Dist( CD3 *d1, CD3 *d2); //Distance
|
|
|
|
|
public _extern _D3_DIST_SQR F64 D3DistSqr(CD3 *d1, CD3 *d2); //Distance Squared
|
|
|
|
|
public _extern _D3_DIV CD3 *D3Div( CD3 *quot, CD3 *d, F64 s); //quot=d/s
|
|
|
|
|
public _extern _D3_DIV_EQU CD3 *D3DivEqu(CD3 *quot, F64 s); //quot/=s
|
|
|
|
|
public _extern _D3_DOT F64 D3Dot(CD3 *d1, CD3 *d2); //d1 dot d2
|
|
|
|
|
public _extern _D3_EQU CD3 *D3Equ(CD3 *dst, F64 x=0, F64 y=0, F64 z=0); //dst=(x, y,z)
|
|
|
|
|
public _extern _D3_MUL CD3 *D3Mul( CD3 *prod, F64 s, CD3 *d); //prod=s*d
|
|
|
|
|
public _extern _D3_MUL_EQU CD3 *D3MulEqu(CD3 *prod, F64 s); //prod*=s
|
|
|
|
|
public _extern _D3_NORM F64 D3Norm(CD3 *d); //Norm
|
|
|
|
|
public _extern _D3_NORM_SQR F64 D3NormSqr(CD3 *d); //Norm Squared
|
|
|
|
|
public _extern _D3_SUB CD3 *D3Sub( CD3 *diff, CD3 *d1, CD3 *d2); //diff=d1-d2
|
|
|
|
|
public _extern _D3_SUB_EQU CD3 *D3SubEqu(CD3 *diff, CD3 *d); //diff-=d
|
|
|
|
|
public _extern _D3_UNIT CD3 *D3Unit(CD3 *d); //To unit vect
|
|
|
|
|
public _extern _D3_ZERO CD3 *D3Zero(CD3 *dst); //To zero
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Memory"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _MEMCOMPARE I64 MemCompare(U8 *ptr1, U8 *ptr2, I64 count); //Compare chunk of memory.
|
|
|
|
|
public _extern _MEMCOPY U8 *MemCopy(U8 *dst, U8 *src, I64 count); //Copy chunk of memory. Only goes forward.
|
|
|
|
|
public _extern _MEMSET U8 *MemSet( U8 *dst, I64 val, I64 count); //Set chunk of U8s to value.
|
|
|
|
|
public _extern _MEMSET_I64 I64 *MemSetI64(I64 *dst, I64 val, I64 I64count); //Set chunk of I64s to value.
|
|
|
|
|
public _extern _MEMSET_U16 U16 *MemSetU16(U16 *dst, I64 val, I64 U16count); //Set chunk of U16s to value.
|
|
|
|
|
public _extern _MEMSET_U32 U32 *MemSetU32(U32 *dst, I64 val, I64 U32count); //Set chunk of U32s to value.
|
|
|
|
|
_extern SYS_HEAP_DEBUG_FLAG U8 sys_heap_debug;
|
|
|
|
|
_extern SYS_HEAP_INIT_FLAG U8 sys_heap_init_flag;
|
|
|
|
|
_extern SYS_HEAP_INIT_VAL U8 sys_heap_init_val;
|
|
|
|
|
_extern SYS_MEM_INIT_FLAG U8 sys_mem_init_flag;
|
|
|
|
|
_extern SYS_MEM_INIT_VAL U8 sys_mem_init_val;
|
|
|
|
|
_extern SYS_VAR_INIT_FLAG U8 sys_var_init_flag;
|
|
|
|
|
_extern SYS_VAR_INIT_VAL U8 sys_var_init_val;
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Memory/BlkPool"
|
|
|
|
|
public _extern SYS_CODE_BP CBlkPool *sys_code_bp; //System's BlkPool for code.
|
|
|
|
|
public _extern SYS_DATA_BP CBlkPool *sys_data_bp; //System's BlkPool for data.
|
|
|
|
|
|
|
|
|
|
#help_index "Memory/Info"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
_extern MEM_HEAP_BASE U8 *mem_heap_base;
|
|
|
|
|
_extern MEM_HEAP_LIMIT U8 *mem_heap_limit;
|
|
|
|
|
_extern MEM_MAPPED_SPACE U8 *mem_mapped_space;
|
|
|
|
|
_extern MEM_PHYSICAL_SPACE U8 *mem_physical_space;
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Messages;Windows"
|
|
|
|
|
public _extern SYS_FOCUS_TASK CTask *sys_focus_task; //Current focus task.
|
|
|
|
|
|
|
|
|
|
#help_index "Misc"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_COMPILE_TIME CDate sys_compile_time; //Date and time kernel was compiled.
|
|
|
|
|
_extern SYS_CTRL_ALT_FLAGS I64 sys_ctrl_alt_flags[1]; //Should be semiphores?
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Misc/Progress Bars"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_PROGRESS1 I64 progress1; //Current progress 1.
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern SYS_PROGRESS1_DESC U8 progress1_desc[PROGRESS_DESC_LEN]; //Progress 1 description.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_PROGRESS1_MAX I64 progress1_max; //Progress 1 max.
|
|
|
|
|
public _extern SYS_PROGRESS1_T0 F64 progress1_t0; //Progress 1 start time.
|
|
|
|
|
public _extern SYS_PROGRESS1_TF F64 progress1_tf; //Progress 1 end time.
|
|
|
|
|
public _extern SYS_PROGRESS2 I64 progress2; //Current progress 2.
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern SYS_PROGRESS2_DESC U8 progress2_desc[PROGRESS_DESC_LEN]; //Progress 2 description.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_PROGRESS2_MAX I64 progress2_max; //Progress 2 max.
|
|
|
|
|
public _extern SYS_PROGRESS2_T0 F64 progress2_t0; //Progress 2 start time.
|
|
|
|
|
public _extern SYS_PROGRESS2_TF F64 progress2_tf; //Progress 2 end time.
|
|
|
|
|
public _extern SYS_PROGRESS3 I64 progress3; //Current progress 3.
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern SYS_PROGRESS3_DESC U8 progress3_desc[PROGRESS_DESC_LEN]; //Progress 3 description.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_PROGRESS3_MAX I64 progress3_max; //Progress 3 max.
|
|
|
|
|
public _extern SYS_PROGRESS3_T0 F64 progress3_t0; //Progress 3 start time.
|
|
|
|
|
public _extern SYS_PROGRESS3_TF F64 progress3_tf; //Progress 3 end time.
|
|
|
|
|
public _extern SYS_PROGRESS4 I64 progress4; //Current progress 4.
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _extern SYS_PROGRESS4_DESC U8 progress4_desc[PROGRESS_DESC_LEN]; //Progress 4 description.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_PROGRESS4_MAX I64 progress4_max; //Progress 4 max.
|
|
|
|
|
public _extern SYS_PROGRESS4_T0 F64 progress4_t0; //Progress 4 start time.
|
|
|
|
|
public _extern SYS_PROGRESS4_TF F64 progress4_tf; //Progress 4 end time.
|
|
|
|
|
public _extern SYS_PROGRESSES CProgress sys_progresses[PROGRESS_BARS_NUM]; //All progress bars.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "MultiCore"
|
|
|
|
|
#help_file "::/Doc/MultiCore"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_CPU_STRUCTS CCPU *cpu_structs; //$LK,"Gs",A="MN:Gs"$ points to cur $LK,"CCPU",A="MN:CCPU"$.
|
|
|
|
|
public _extern SYS_MP_COUNT I64 mp_count; //Count of cores
|
|
|
|
|
_extern SYS_MP_COUNT_INITIAL I64 mp_count_initial; //only used during $LK,"Core0StartMP",A="MN:Core0StartMP"$
|
|
|
|
|
_extern SYS_MP_COUNT_LOCK I64 mp_count_lock;
|
|
|
|
|
_extern SYS_SEMAS CSema sys_semas[SEMA_SEMAS_NUM];
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "MultiCore;Processor"
|
|
|
|
|
public _intern IC_GS CCPU *Gs(); //GS points to current $LK,"CCPU",A="MN:CCPU"$.
|
|
|
|
|
|
|
|
|
|
#help_index "PCI"
|
2020-02-18 04:14:07 +00:00
|
|
|
|
public _extern SYS_PCI_BUSES U16 sys_pci_buses; //Number of PCI buses.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Processor"
|
2021-12-11 11:21:22 +00:00
|
|
|
|
public _intern IC_CARRY I64 Carry(); //See $LK,"::/Demo/Carry.ZC"$
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _intern IC_RAX_GET I64 RAXGet(); //Get RAX register value.
|
|
|
|
|
public _intern IC_RBP_GET U8 *RBPGet(); //Get RBP register value.
|
|
|
|
|
public _intern IC_RFLAGS_GET I64 RFlagsGet(); //Get RFlags register value.
|
|
|
|
|
public _intern IC_RSP_GET U8 *RSPGet(); //Get RSP register value.
|
|
|
|
|
public _intern IC_POP I64 Pop(); //Pop value from stack.
|
|
|
|
|
public _intern IC_PUSH U0 Push(I64 d); //Push value on stack.
|
|
|
|
|
public _intern IC_RAX_SET U0 RAXSet(I64 d); //Set RAX register value.
|
|
|
|
|
public _intern IC_RBP_SET U0 RBPSet(U8 *d); //Set RBP register value.
|
|
|
|
|
public _intern IC_RFLAGS_SET U0 RFlagsSet(I64 d); //Set RFlags register value.
|
|
|
|
|
public _intern IC_RSP_SET U0 RSPSet(U8 *d); //Set RSP register value.
|
2021-07-06 03:57:12 +01:00
|
|
|
|
public _extern _CPUID U0 CPUId(U32 rax, CRAXRBXRCXRDX *res); //Do CPUID instruction.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _ENDIAN_U16 U16 EndianU16(U16 val); //Swap big<-->little endian U16.
|
|
|
|
|
public _extern _ENDIAN_U32 U32 EndianU32(U32 val); //Swap big<-->little endian U32.
|
|
|
|
|
public _extern _ENDIAN_U64 U64 EndianU64(U64 val); //Swap big<-->little endian U64.
|
|
|
|
|
public _extern _LXCHG_I64 I64 LXchgI64(I64 *dst, I64 d); //Locked eXchange I64s.
|
|
|
|
|
public _extern _LXCHG_U16 U16 LXchgU16(U16 *dst, U16 d); //Locked eXchange U16s.
|
|
|
|
|
public _extern _LXCHG_U32 U32 LXchgU32(U32 *dst, U32 d); //Locked eXchange U32s.
|
|
|
|
|
public _extern _LXCHG_U8 U8 LXchgU8( U8 *dst, U8 d); //Locked eXchange U8s.
|
2021-02-09 11:20:31 +00:00
|
|
|
|
public _extern _MSR_READ I64 MSRRead(I64 model_specific_reg); //Model Specific Reg See $LK,"MSRs",A="MN:IA32_EFER"$.
|
|
|
|
|
public _extern _MSR_WRITE U0 MSRWrite(I64 model_specific_reg, I64 val); //Model Specific Reg See $LK,"MSRs",A="MN:IA32_EFER"$.
|
2021-07-06 03:57:12 +01:00
|
|
|
|
public _extern _SYS_HLT U0 SysHlt(); //Loops doing HLT instruction.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern _XCHG_I64 I64 XchgI64(I64 *dst, I64 d); //eXchange I64s.
|
|
|
|
|
public _extern _XCHG_U16 U16 XchgU16(U16 *dst, U16 d); //eXchange U16s.
|
|
|
|
|
public _extern _XCHG_U32 U32 XchgU32(U32 *dst, U32 d); //eXchange U32s.
|
|
|
|
|
public _extern _XCHG_U8 U8 XchgU8( U8 *dst, U8 d); //eXchange U8s.
|
|
|
|
|
_extern SYS_GDT CGDT sys_gdt;
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Processor/Cache;Memory/Cache"
|
2021-07-06 03:57:12 +01:00
|
|
|
|
public _intern IC_CLFLUSH U0 CLFlush(U8 *a); //Flush cache line instruction.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_CACHE_LINE_WIDTH I64 sys_cache_line_width; //CPU's Cache line width.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Processor/Page Tables;Memory/Page Tables"
|
2021-07-06 03:57:12 +01:00
|
|
|
|
public _intern IC_INVLPG U0 InvalidatePage(U8 *a); //Invalidate page at addr instruction.
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern MEM_PAGE_SIZE U64 mem_page_size;
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Task;Processor"
|
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
|
|
|
|
public _intern IC_FS CTask *Fs(); //FS segment register points to the current $LK,"CTask",A="MN:CTask"$.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
|
|
|
|
#help_index "Time/CPU Cycles"
|
|
|
|
|
#help_file "::/Doc/TimeCycles"
|
2020-03-19 20:59:53 +00:00
|
|
|
|
public _intern IC_RDTSC I64 TSCGet(); //Get time stamp counter.
|
2020-02-15 20:01:48 +00:00
|
|
|
|
|
2022-08-20 17:29:04 +01:00
|
|
|
|
//#help_index "Graphics/Framebuffer"
|
|
|
|
|
//public _extern SYS_FRAMEBUFFER_ADDR U8 *sys_framebuffer_addr;
|
|
|
|
|
|
2020-02-19 06:17:33 +00:00
|
|
|
|
#help_index "Graphics/VBE"
|
Reformatted more Kernel files.
Reformatted KMathA.CC, KMathB.CC, KMisc.CC, KTask.CC, KUtils.CC, Kernel.PRJ, KernelA.HH, KernelB.HH, KernelC.HH, KeyDev.CC, MultiProc.CC, PCIBIOS.CC, QuickSort.CC, Sched.CC, StrA.CC, StrB.CC, StrPrint.CC, StrScan.CC.
All top-level Kernel files are now reformatted. Remaining are files in Kernel/ subdirectories.
2020-09-12 22:37:51 +01:00
|
|
|
|
public _extern SYS_VBE_INFO CVBEInfo sys_vbe_info;
|
|
|
|
|
public _extern SYS_VBE_FINAL_MODE CVBEMode sys_vbe_mode;
|
|
|
|
|
_extern SYS_VBE_FINAL_MODE_NUM U16 sys_vbe_mode_num;
|
|
|
|
|
_extern SYS_VBE_MODES CVBEModeShort sys_vbe_modes[VBE_MODES_NUM];
|
2020-02-19 06:17:33 +00:00
|
|
|
|
|
2020-02-15 20:01:48 +00:00
|
|
|
|
#help_index ""
|