forked from CosmosOS/Cosmos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCPUImpl.cs
51 lines (37 loc) · 2 KB
/
CPUImpl.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using Cosmos.Core;
using IL2CPU.API.Attribs;
namespace Cosmos.Core_Asm
{
[Plug(Target = typeof(CPU))]
public class CPUImpl
{
[PlugMethod(Assembler = typeof(CPUUpdateIDTAsm))]
public static void UpdateIDT(CPU aThis, bool aEnableInterruptsImmediately) => throw null;
[PlugMethod(Assembler = typeof(CPUGetAmountOfRAMAsm))]
public static uint GetAmountOfRAM() => throw null;
[PlugMethod(Assembler = typeof(CPUGetEndOfKernelAsm))]
public static uint GetEndOfKernel() => throw null;
[PlugMethod(Assembler = typeof(CPUZeroFillAsm))]
// TODO: implement this using REP STOSB and REPO STOSD
public static void ZeroFill(uint aStartAddress, uint aLength) => throw null;
[PlugMethod(Assembler = typeof(CPUInitFloatAsm))]
public static void InitFloat(CPU aThis) => throw null;
[PlugMethod(Assembler = typeof(CPUInitSSEAsm))]
public static void InitSSE(CPU aThis) => throw null;
[PlugMethod(Assembler = typeof(CPUHaltAsm))]
public static void Halt(CPU aThis) => throw null;
[PlugMethod(Assembler = typeof(CPUDisableINTsAsm))]
public static void DoDisableInterrupts() => throw null;
[PlugMethod(Assembler = typeof(CPUEnableINTsAsm))]
public static void DoEnableInterrupts() => throw null;
[PlugMethod(Assembler = typeof(CPUCanReadCPUIDAsm))]
public static int CanReadCPUID() => throw new NotImplementedException();
[PlugMethod(Assembler = typeof(CPUReadCPUIDAsm))]
public static void ReadCPUID(uint type, ref int eax, ref int ebx, ref int ecx, ref int edx) => throw new NotImplementedException();
[PlugMethod(Assembler = typeof(CPUReadTimestampCounterAsm))]
public static ulong ReadTimestampCounter() => throw new NotImplementedException();
[PlugMethod(Assembler = typeof(CPUReadModelSpecificRegisterAsm))]
public static int[] ReadFromModelSpecificRegister() => throw new NotImplementedException();
}
}