XenevaOS
Loading...
Searching...
No Matches
Macros | Functions | Variables
process.cpp File Reference
#include <process.h>
#include <aucon.h>
#include <Mm\vmmngr.h>
#include <Mm\mmap.h>
#include <Mm\kmalloc.h>
#include <pe.h>
#include <Mm\pmmngr.h>
#include <string.h>
#include <Hal\x86_64_gdt.h>
#include <Hal\x86_64_lowlevel.h>
#include <Hal\x86_64_cpu.h>
#include <Hal\serial.h>
#include <loader.h>
#include <_null.h>
#include <clean.h>
#include <Mm\shm.h>
#include <Sync\spinlock.h>
#include <Sound\sound.h>
#include <Hal\x86_64_signal.h>
#include <Ipc\postbox.h>
#include <autimer.h>
#include <Net/socket.h>
Include dependency graph for process.cpp:

Macros

#define USER_STACK   0x0000700000000000
 

Functions

int save_context (AuThread *t, void *tss)
 
void AuAddProcess (AuProcess *parent, AuProcess *proc)
 
void AuRemoveProcess (AuProcess *parent, AuProcess *proc)
 
AuProcessAuProcessFindByPID (AuProcess *proc, int pid)
 
AuProcessAuProcessFindByThread (AuProcess *proc, AuThread *thread)
 
AuProcessAuProcessFindPID (int pid)
 
AuProcessAuProcessFindThread (AuThread *thread)
 
AuProcessAuProcessFindSubThread (AuThread *thread)
 
uint64_tCreateUserStack (AuProcess *proc, uint64_t *cr3)
 
uint64_t CreateKernelStack (AuProcess *proc, uint64_t *cr3)
 
void KernelStackFree (AuProcess *proc, void *ptr, uint64_t *cr3)
 
int AuAllocateProcessID ()
 
AuProcessAuCreateRootProc ()
 
AuProcessAuCreateProcessSlot (AuProcess *parent, char *name)
 
void AuStartRootProc ()
 
AuProcessAuGetRootProcess ()
 
AuProcessAuGetKillableProcess ()
 
void AuProcessWaitForTermination (AuProcess *proc, int pid)
 
int AuProcessGetFileDesc (AuProcess *proc)
 
void AuProcessHeapMemDestroy (AuProcess *proc)
 
void AuProcessFreeKeResource (AuThread *thr)
 
void AuProcessExit (AuProcess *proc, bool schedulable)
 
AuMutexAuProcessGetMutex ()
 
int AuCreateUserthread (AuProcess *proc, void(*entry)(), char *name)
 

Variables

AuProcessproc_first
 
AuProcessproc_last
 
AuProcessroot_proc
 
AuMutexprocess_mutex
 

Macro Definition Documentation

◆ USER_STACK

#define USER_STACK   0x0000700000000000

Function Documentation

◆ AuAddProcess()

void AuAddProcess ( AuProcess parent,
AuProcess proc 
)

◆ AuAllocateProcessID()

int AuAllocateProcessID ( )

◆ AuCreateProcessSlot()

AuProcess * AuCreateProcessSlot ( AuProcess parent,
char *  name 
)

◆ AuCreateRootProc()

AuProcess * AuCreateRootProc ( )

◆ AuCreateUserthread()

int AuCreateUserthread ( AuProcess proc,
void(*)()  entry,
char *  name 
)

Creates a user mode thread

Parameters
entry– Entry point address
stack– Stack address
cr3– the top most page map level address
name– name of the thread
priority– (currently unused) thread's priority

◆ AuGetKillableProcess()

AuProcess * AuGetKillableProcess ( )

◆ AuGetRootProcess()

AuProcess * AuGetRootProcess ( )

◆ AuProcessExit()

void AuProcessExit ( AuProcess proc,
bool  schedulable 
)

◆ AuProcessFindByPID()

AuProcess * AuProcessFindByPID ( AuProcess proc,
int  pid 
)

◆ AuProcessFindByThread()

AuProcess * AuProcessFindByThread ( AuProcess proc,
AuThread thread 
)

◆ AuProcessFindPID()

AuProcess * AuProcessFindPID ( int  pid)

◆ AuProcessFindSubThread()

AuProcess * AuProcessFindSubThread ( AuThread thread)

◆ AuProcessFindThread()

AuProcess * AuProcessFindThread ( AuThread thread)

◆ AuProcessFreeKeResource()

void AuProcessFreeKeResource ( AuThread thr)

◆ AuProcessGetFileDesc()

int AuProcessGetFileDesc ( AuProcess proc)

◆ AuProcessGetMutex()

AuMutex * AuProcessGetMutex ( )

◆ AuProcessHeapMemDestroy()

void AuProcessHeapMemDestroy ( AuProcess proc)

◆ AuProcessWaitForTermination()

void AuProcessWaitForTermination ( AuProcess proc,
int  pid 
)

◆ AuRemoveProcess()

void AuRemoveProcess ( AuProcess parent,
AuProcess proc 
)

◆ AuStartRootProc()

void AuStartRootProc ( )

◆ CreateKernelStack()

uint64_t CreateKernelStack ( AuProcess proc,
uint64_t cr3 
)

◆ CreateUserStack()

uint64_t * CreateUserStack ( AuProcess proc,
uint64_t cr3 
)

◆ KernelStackFree()

void KernelStackFree ( AuProcess proc,
void *  ptr,
uint64_t cr3 
)

◆ save_context()

int save_context ( AuThread t,
void *  tss 
)

Variable Documentation

◆ proc_first

AuProcess* proc_first

◆ proc_last

AuProcess* proc_last

◆ process_mutex

AuMutex* process_mutex

◆ root_proc

AuProcess* root_proc