Core.asm
This file defines the entry point into the Core of PwnOS, and includes the rest of the Core.
See Also
Authors
Compiling
| Assemble | $MASM$\ML.EXE /Fl /c /Cp /nologo $this$ |
| Link | $JLOC$\JLOC.EXE BootCore.loc “..\Compiled\BootCore.bin” “..\Boot\BootCore.map” |
ThreadSchedulerTSS
| ThreadSchedulerTSS TSS32 <> |
This is the special <TSS32> of the ThreadScheduler task.
This must be first in the CoreData segment so that its address can be hardcoded in its TSS descriptor (see <GDT>). It doesn’t need an entire EXTENDEDTSS, because <ThreadScheuler> doesn’t request its own thread info or use FPU/SSE/MMX.
CallVectors
| CallVectors CALLVECTORLIST <> |
This is the CALLVECTORLIST structure containing the addresses to all Core functions acessible from Libraries, indexed by <Core Call Gate Constants>.
CoreAccessFlags
Bits used to lock access to certain areas of the Core (e.g. ThreadScheduler can only have one processor at a time).
See Also
- <Core Access Flag Constants>
CoreCallGate
Entry point into the Core from Libraries. eax contains one of the <Core Call Gate Constants>.
To call this from Libraries, use the CALL_CORE macro. This must be first in the CoreCode segment to ensure that its address can be hardcoded as a constant in the call gate descriptor and CALL_CORE (see <GDT>).