Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
G
 GDT
 GDT Selector Constants
 GDT.inc
 GenerateRandom
 get
 GET_THREAD_SCHEDULER_ACCESS
 GetBoundedRandomNumber
 GetCurrentDirectory
 GetCurrentProcess
 GetCurrentProcessU
 GetCurrentThread
 GetCurrentThreadU
 GetFileSize
 GetFileSizeU
 getFirst
 GetGraphicsAccessU
 getLast
 GetLock
 GetLockU
 GetMillisecondCount
 GetNTFSFileRecord
 GetPhysAddr
 GetRandomNumber
 GetThreadScore
 Getting Started
 GetVirtAddr
H
 Handle Type Constants, CALLVECTORLIST
 HANDLE_TYPE_FILE
 HANDLE_TYPE_PROCESS
 HANDLE_TYPE_THREAD
 HEAP
 Heap Memory Node Flags, HEAP_MEMORY_NODE
 Heap.asm
 Heap.inc
 HEAP_MEMORY_FLAG_ALLOCATION
 HEAP_MEMORY_HEADER
 HEAP_MEMORY_NODE
 HeapDword_add
 HeapDword_heapify
 HeapDword_removeMin
 HeapMemory.asm
 HeapMemory.inc
 Helper Functions
I
 I/ O
 I/ O APIC Setup
 I/ O Device Numbers
 IDE Bus Master Setup(NEED PCI SPECIFICATIONS FOR THIS)
 Identify Device Constants
 Identify Packet Device Constants
 IDT
 indexOf
 Init.asm
 InitExtendedPartition
 InitFiles
 Initialize Data in&for Core
 InitializeHeapMemory
 InitializeRandom
 InitNTFSPartition
 insertionSort
 Instruction Macros
 INT_APIC_ERROR, CALLVECTORLIST
 INT_APIC_SPURIOUS, CALLVECTORLIST
 INT_APIC_TIMER, CALLVECTORLIST
 INT_CMOS_CLOCK, CALLVECTORLIST
 INT_COM1_COM3, CALLVECTORLIST
 INT_COM2_COM4, CALLVECTORLIST
 INT_FLOPPY, CALLVECTORLIST
 INT_HANG, CALLVECTORLIST
 INT_IDE0, CALLVECTORLIST
 INT_IDE1, CALLVECTORLIST
 INT_KEYBOARD, CALLVECTORLIST
 INT_MOUSE, CALLVECTORLIST
 INT_NETWORK, CALLVECTORLIST
 INT_PARALLEL, CALLVECTORLIST
 INT_PIT, CALLVECTORLIST
 INT_SOUND_CARD, CALLVECTORLIST
 INT_USB, CALLVECTORLIST
 Interface
 IntIDE0
 IntIDE1
J
 JMP_THREAD_SCHEDULER
L
 lastIndexOf
 Libraries
 Local APIC Setup&Multi-Processor Startup
 LOCKSTRUCT
 LogicalClusNumToSector
M
 Macros
 MAX_NUM_PROCESSORS, CALLVECTORLIST
 MBR
 MBR.inc
 MemAccessLock
 Memory
 Memory Function Constants
 Memory Map
 Memory Map Constants, PHYSPAGEINFO
 Memory Type Range Registers(MTRRs)and Page Attriubute Table Register(PAT MSR)
 Memory.asm
 Memory.inc
 Messages
 MillisecondCount
 Miscellaneous Constants, CALLVECTORLIST
 MiscMemory.asm
 MiscMemory.inc
 movaxoff(address)
 movboffimm(address,immediate)
 movcxoff(address)
 moveaxoff(address)
 movecxoff(address)
 movedxoff(address)
 movoffeax(address)
 movoffebx(address)
 movoffimm(address,immediate)
GDT dq 0 ;NULL descriptor
INITIAL GLOBAL DESCRIPTOR TABLE
These constants define segment selectors into the GDT.
This file defines the structures, constants, and macros for the Global Descriptor Table, or GDT, and its selectors.
Regenerates the RandomNumbers array after a pass though.
Functions for getting from any point within a VECTOR
Acquire access to the thread scheduler task.
Returns a uniformly-distributed random integer between 0 (inclusive) and eax (exclusive)
Gets the current directory of the current thread.
This procedure returns the current process handle.
Gateway function for GetCurrentProcess
This procedure returns the current thread handle.
Gateway function for GetCurrentThread
This procedure gets the size of an open file.
Gateway function for GetFileSize
Functions for getting the first element of a VECTOR
Gateway function for GetGraphicsAccess
Functions for getting the last element of a VECTOR
This procedure gets a lock’s access for the current thread.
Gateway function for GetLock
This procedure returns the number of milliseconds since boot as a qword in edx:eax.
This procedure reads in the NTFS file record of the file with the specified file record number.
This procedure gets the physcial address of a virtual address in the current process, or 0 if it is not in physical space.
Returns a uniformly-distributed random integer between 0 and 0FFFFFFFFh
Gets a score of the specified thread based on priority, time waiting, and status (e.g.
So how to set up the project? 
This procedure gets the virtual address of a physical address (whatever process it’s for).
These constants allow distinguishing of different types of handle structures.
identifies a FILESTRUCT
identifies a PROCESSSTRUCT
identifies a THREADSTRUCT
This structure is identical to a VECTOR.
These are constants for the Flags member of HEAP_MEMORY_NODE.
This file defines the library for HEAP data types and algorithms thereof.
This file defines structures and constants for the library of HEAP data types and algorithms.
indicates that the memory range is allocated if set (and free range if clear)
This structure defines the heap memory header.
This structure defines a heap memory range node.
Adds a dword to a HEAP
Adjusts a HEAP downward starting from the specified index
Removes the minimum from a HEAP
This file defines heap memory management functions of PwnOS.
This file defines constants, structures, and macros for heap memory management functions of PwnOS.
The I/O section of Core provides device management functions.
These constants define numbers identifying each device location.
IDT: INT_DESC offset IntDivError ;00 Divide Error
INTERRUPT DESCRIPTOR TABLE
Functions for finding the index of a value in an array
This file defines initialization code for the Core data of PwnOS.
This procedure initializes the data for an extended partition.
This procedure initializes the Core file management data.
This procedure allocates the heap memory, and initializes the header and first free range node.
Initializes the RandomNumbers array based on the provided seed.
This procedure initializes the data for an NTFS partition.
Functions for sorting an array with insertion sort
Each one defines an instruction that MASM doesn’t assemble properly.
Error in APIC operation
Spurious interrupt; its number (in hex) ends in F because that’s required on all before Pentium 4
APIC Timer completion
CMOS clock
Serial ports
Serial ports
Floppy drives
Miscellaneous interrupt used during Boot
Drives on IDE0
Drives on IDE1
PS/2 Keyboard
PS/2 Mouse
Network cards
Parallel ports
Programmable Interval Timer
Sound card
USB devices
The Interface section of PwnOS is where the user-end excitement happens.
This interrupt handles completed ATA operations on IDE0.
This interrupt handles completed ATA operations on IDE1.
Leave the current thread to allow another to run.
Functions for finding the last index of a value in an array
The Libraries section of PwnOS provides common, useful functions and functionality, and a gateway to the Core.
This structure is the centre of synchronization data in PwnOS, defining the state of an access lock.
This procedure determines the starting sector number of the specified logical cluster.
maximum number of processors chosen to be allowed (only 15 supported by Pentium 4 anyway)
This segment contains the master boot record of PwnOS
This file contains constants and structures related to the Master Boot Record.
MemAccessLock LOCKSTRUCT <0,NULL,NULL,NULL>
This is the LOCKSTRUCT for locking access to memory management data.
The Memory section of Core provides memory management functions.
These define the sizes and addresses of fixed-location data and data blocks.
This file defines page-level memory management functions of PwnOS.
This file defines constants, structures, and macros for memory management functions of PwnOS.
The Messages section of Core provides functions for sending and receiving messages to and from message queues.
MillisecondCount QWORD 0
This holds the number of milliseconds since boot.
These constants are miscellaneous things that don’t really fit anywhere else at the moment.
This file defines miscellaneous memory functions of PwnOS.
This file defines constants, structures, and macros for miscellaneous memory functions of PwnOS.
mov ax,[address]
mov byte ptr [address],immediate
mov cx,[address]
mov eax,[address]
mov ecx,[address]
mov edx,[address]
mov [address],eax
mov [address],ebx
mov dword ptr [address],immediate