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)
 
AuProcess * AuProcessFindByPID (AuProcess *proc, int pid)
 
AuProcess * AuProcessFindByThread (AuProcess *proc, AuThread *thread)
 
AuProcess * AuProcessFindPID (int pid)
 
AuProcess * AuProcessFindThread (AuThread *thread)
 
AuProcess * AuProcessFindSubThread (AuThread *thread)
 
uint64_t * CreateUserStack (AuProcess *proc, uint64_t *cr3)
 
uint64_t CreateKernelStack (AuProcess *proc, uint64_t *cr3)
 
void KernelStackFree (AuProcess *proc, void *ptr, uint64_t *cr3)
 
int AuAllocateProcessID ()
 
AuProcess * AuCreateRootProc ()
 
AuProcess * AuCreateProcessSlot (AuProcess *parent, char *name)
 
void AuStartRootProc ()
 
AuProcess * AuGetRootProcess ()
 
AuProcess * AuGetKillableProcess ()
 
int AuProcessWaitForTermination (AuProcess *proc, int pid)
 
int AuProcessGetFileDesc (AuProcess *proc)
 
void AuProcessHeapMemDestroy (AuProcess *proc)
 
void AuProcessFreeKeResource (AuThread *thr)
 
void AuProcessExit (AuProcess *proc, bool schedulable)
 
AuMutex * AuProcessGetMutex ()
 
int AuCreateUserthread (AuProcess *proc, void(*entry)(), char *name)
 

Variables

AuProcess * proc_first
 
AuProcess * proc_last
 
AuProcess * root_proc
 
AuMutex * process_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 ( void  )

◆ 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()

int 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