47#define PROCESS_USER_STACK_SZ 512*1024
49#define MAX_THREADS_PER_PROCESS 60
50#define FILE_DESC_PER_PROCESS 60
52#define PROCESS_STATE_NOT_READY (1<<0)
53#define PROCESS_STATE_READY (1<<1)
54#define PROCESS_STATE_SUSPENDED (1<<2)
58#define PROCESS_STATE_DIED (1<<3)
64#define PROCESS_STATE_ZOMBIE (1<<4)
65#define PROCESS_STATE_ORPHAN (1<<5)
70#define PROCESS_STATE_BUSY_WAIT (1<<6)
73#define PROCESS_EXIT_SUCCESS 0
74#define PROCESS_EXIT_FAILURE 1
77#define PROCESS_TYPE_GENERAL (0<<1)
78#define PROCESS_TYPE_SYSTEM (1<<1)
79#define PROCESS_TYPE_BACKGROUND (1<<2)
80#define PROCESS_TYPE_NON_KILLABLE (1<<3)
82#define PROCESS_BREAK_ADDRESS 0x0000003000000000
84#define PROCESS_MMAP_ADDRESS 0x00000000C0000000
85#define PROCESS_SHM_ADDRESS 0x0000000080000000
87#define PROCESS_MMAP_ADDRESS 0x0000000C00000000
88#define PROCESS_SHM_ADDRESS 0x0000000800000000
113 AA64Thread* main_thread;
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
AuMutex * AuProcessGetMutex()
Definition process.cpp:570
AuProcess * AuProcessFindThread(AuThread *thread)
Definition process.cpp:152
AuProcess * AuProcessFindSubThread(AuThread *thread)
Definition process.cpp:168
uint64_t CreateKernelStack(AuProcess *proc, uint64_t *cr3)
Definition process.cpp:203
void(* entry)(void *)
Definition process.h:91
AuProcess * AuGetRootProcess()
Definition process.cpp:360
void AuAddProcess(AuProcess *parent, AuProcess *proc)
Definition process.cpp:64
AuProcess * AuCreateProcessSlot(AuProcess *parent, char *name)
Definition process.cpp:294
#define FILE_DESC_PER_PROCESS
Definition process.h:50
int AuCreateUserthread(AuProcess *proc, void(*entry)(), char *name)
Definition process.cpp:585
void AuRemoveProcess(AuProcess *parent, AuProcess *proc)
Definition process.cpp:86
void AuStartRootProc()
Definition process.cpp:342
#define MAX_THREADS_PER_PROCESS
Definition process.h:49
void KernelStackFree(AuProcess *proc, void *ptr, uint64_t *cr3)
Definition process.cpp:222
int AuProcessGetFileDesc(AuProcess *proc)
Definition process.cpp:424
AuProcess * AuProcessFindPID(int pid)
Definition process.cpp:139
uint64_t * CreateUserStack(AuProcess *proc, uint64_t *cr3)
Definition process.cpp:179
AuProcess * AuProcessFork(AuProcess *parent)
struct _au_proc_ AuProcess
void AuProcessExit(AuProcess *proc, bool schedulable)
Definition process.cpp:484
void AuProcessWaitForTermination(AuProcess *proc, int pid)
Definition process.cpp:387
list_t * vmareas
Definition process.h:132
char name[16]
Definition process.h:95
list_t * shmmaps
Definition process.h:133
uint64_t _envp_block_
Definition process.h:107
size_t shm_break
Definition process.h:135
uint64_t _image_base_
Definition process.h:103
uint8_t type_flags
Definition process.h:98
size_t _kstack_index_
Definition process.h:106
int proc_id
Definition process.h:96
size_t proc_mmap_len
Definition process.h:138
uint8_t num_thread
Definition process.h:116
uint64_t * cr3
Definition process.h:101
AuVFSNode * fsys
Definition process.h:129
size_t _user_stack_index_
Definition process.h:105
entry entry_point
Definition process.h:117
struct _au_proc_ * next
Definition process.h:141
struct _au_proc_ * prev
Definition process.h:142
size_t proc_mem_heap
Definition process.h:136
uint64_t _main_stack_
Definition process.h:104
list_t * waitlist
Definition process.h:134
AuVFSNode * fds[FILE_DESC_PER_PROCESS]
Definition process.h:126
AuVFSNode * file
Definition process.h:128
uint8_t state
Definition process.h:97
uint64_t _image_size_
Definition process.h:102
size_t proc_heapmem_len
Definition process.h:137
Definition x86_64_sched.h:118