XenevaOS
Loading...
Searching...
No Matches
sysserv.h
Go to the documentation of this file.
1
30#ifndef __SYSSERV_H__
31#define __SYSSERV_H__
32
33#include <stdint.h>
34#include <stdarg.h>
35#include <aurora.h>
36
37#ifdef ARCH_ARM64
38#include <Hal/AA64/aa64cpu.h>
39#endif
40
41#ifdef ARCH_X64
42#include <Hal\x86_64_signal.h>
43#endif
44#include <Net\socket.h>
45
46/* maximum supported system calls */
47#define AURORA_MAX_SYSCALL 58
48#define AURORA_SYSCALL_MAGIC 0x15062023
49
50/* ==========================================
51 * Threading
52 * ==========================================
53 */
54
59extern int PauseThread();
60
61#ifdef ARCH_X64
62/*
63* GetThreadID -- returns currently running thread id
64*/
65extern uint16_t GetThreadID();
66#elif ARCH_ARM64
67extern uint64_t GetThreadID();
68#endif
69
75extern int GetProcessID();
76
80extern int ProcessExit();
81
87extern int ProcessWaitForTermination(int pid);
88
94extern int CreateProcess(int parent_id, char *name);
95
104extern int ProcessLoadExec(int proc_id, char* filename, int argc, char** argv);
105
111extern int ProcessSleep(uint64_t ms);
112
116extern void SignalReturn(int num);
117
118#ifdef ARCH_X64
119/*
120* SetSignal -- register a signal handler
121* @param signo -- signal number
122* @param handler -- handler to register
123*/
124extern int SetSignal(int signo, AuSigHandler handler);
125#endif
132extern int CreateSharedMem(uint16_t key, size_t sz, uint8_t flags);
133
140extern void* ObtainSharedMem(uint16_t id, void* shmaddr, int shmflg);
141
146extern void UnmapSharedMem(uint16_t key);
147
152extern uint64_t GetProcessHeapMem(size_t sz);
153
159extern int OpenFile(char* filename, int mode);
160
167extern size_t ReadFile(int fd, void* buffer, size_t length);
168
175extern size_t WriteFile(int fd, void* buffer, size_t length);
176
181extern int CreateDir(char* filename);
182
187extern int RemoveFile(char* pathname);
188
193extern int CloseFile(int fd);
194
201extern int FileIoControl(int fd, int code, void* arg);
202
209extern int FileStat(int fd, void* buf);
210
211/*
212* GetSystemTimerTick -- returns the current system
213* tick
214*/
215extern size_t GetSystemTimerTick();
216
220extern int CreateUserThread(void(*entry) (), char *name);
221
222/*
223* SetFileToProcess -- copies a file from one process
224* to other
225* @param fileno -- file number of the current process
226* @param dest_fdidx -- destination process file index
227* @param proc_id -- destination process id
228*/
229extern int SetFileToProcess(int fileno, int dest_fdidx, int proc_id);
230
237extern int ProcessHeapUnmap(void* ptr, size_t sz);
238
245extern int SendSignal(int pid, int signo);
246
247/*
248* GetCurrentTime -- get current time
249* @param ptr -- pointer to time struct
250*/
251extern int GetCurrentTime(void* ptr);
252
257extern int KillProcess(int proc_id);
258
263extern int OpenDir(char* filename);
264
270extern int ReadDir(int dirfd, void* dirent);
271
272
278extern int CreateTimer(int threadID,int maxTickLimit, uint8_t updatemode);
279
283extern int StartTimer(int threadID);
284
288extern int StopTimer(int threadID);
289
293extern int DestroyTimer(int threadID);
294
300extern int ProcessGetFileDesc(const char* filename);
301
308extern int FileSetOffset(int fd, size_t offset);
309
316extern int GetTimeOfDay(void* ptr);
317
318extern int NetSend(int sockfd, msghdr* msg, int flags);
319
320extern int NetReceive(int sockfd, msghdr *msg, int flags);
321
322extern int NetConnect(int sockfd, sockaddr* addr, socklen_t addrlen);
323
324extern int NetBind(int sockfd, sockaddr *addr, socklen_t addrlen);
325
326extern int NetAccept(int sockfd, sockaddr *addr, socklen_t * addrlen);
327
328extern int NetListen(int sockfd, int backlog);
329
334extern size_t GetEnvironmenBlock();
335
336#ifdef ARCH_ARM64
338#endif
339#endif
size_t socklen_t
Definition socket.h:60
int threadID
Definition main.cpp:58
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
void(* entry)(void *)
Definition process.h:91
void(* AuSigHandler)(int signum)
Definition signal.h:75
Definition aa64cpu.h:49
Definition socket.h:84
Definition socket.h:63
int StartTimer(int threadID)
StartTimer – starts the timer.
Definition timerserv.cpp:52
void SignalReturn(int num)
SignalReturn – returns from a signal handler.
Definition thrserv.cpp:205
int CreateProcess(int parent_id, char *name)
CreateProcess – creates a new process slot.
Definition thrserv.cpp:116
int FileStat(int fd, void *buf)
FileStat – writes information related to file.
Definition fileserv.cpp:368
int CreateTimer(int threadID, int maxTickLimit, uint8_t updatemode)
CreateTimer – create timer service.
Definition timerserv.cpp:43
int ProcessGetFileDesc(const char *filename)
ProcessGetFileDesc – Searches all process file descriptor entries for specific filename fd.
Definition fileserv.cpp:473
int NetConnect(int sockfd, sockaddr *addr, socklen_t addrlen)
Definition netserv.cpp:81
int ProcessSleep(uint64_t ms)
ProcessSleep – put the current thread to sleep and process to busy wait state.
Definition thrserv.cpp:188
int ProcessHeapUnmap(void *ptr, size_t sz)
ProcessHeapUnmap – unmaps previosly allocated heap memory.
Definition mmserv.cpp:150
int CreateSharedMem(uint16_t key, size_t sz, uint8_t flags)
CreateSharedMem – create a shared memory chunk.
Definition mmserv.cpp:49
int RemoveFile(char *pathname)
RemoveFile – remove a directory or file.
Definition fileserv.cpp:279
int ProcessExit()
ProcessExit – marks a process as died.
Definition thrserv.cpp:88
int NetAccept(int sockfd, sockaddr *addr, socklen_t *addrlen)
Definition netserv.cpp:123
int NetReceive(int sockfd, msghdr *msg, int flags)
Definition netserv.cpp:59
int GetProcessID()
GetProcessID – returns currently running process id.
Definition thrserv.cpp:70
int NetListen(int sockfd, int backlog)
Definition netserv.cpp:127
int ProcessWaitForTermination(int pid)
ProcessWaitForTermination – wait for termination of a child process.
Definition thrserv.cpp:103
size_t GetSystemTimerTick()
Definition thrserv.cpp:227
int PauseThread()
PauseThread – pause the currently running thread.
Definition thrserv.cpp:48
int FileIoControl(int fd, int code, void *arg)
FileIoControl – controls the file through I/O code.
Definition fileserv.cpp:339
uint64_t GetProcessHeapMem(size_t sz)
GetProcessHeapMem – get a memory from process heap.
Definition mmserv.cpp:109
int KillProcess(int proc_id)
KillProcess – forcefully kills a process.
int OpenDir(char *filename)
OpenDir – opens a directory.
Definition fileserv.cpp:401
int ProcessLoadExec(int proc_id, char *filename, int argc, char **argv)
ProcessLoadExec – loads an executable to a process slot.
Definition thrserv.cpp:136
int SendSignal(int pid, int signo)
SendSignal – sends a signal to desired process note here pid means thread id.
Definition thrserv.cpp:329
size_t GetEnvironmenBlock()
GetEnvironmentBlock – returns environment block of this process.
Definition thrserv.cpp:356
size_t WriteFile(int fd, void *buffer, size_t length)
WriteFile – write system call.
Definition fileserv.cpp:189
int DestroyTimer(int threadID)
DestroyTimer – remove the timer.
Definition timerserv.cpp:72
int CloseFile(int fd)
CloseFile – closes a general file.
Definition fileserv.cpp:295
int GetTimeOfDay(void *ptr)
GetTimeOfDay – returns the time format in unix format.
Definition timerserv.cpp:84
int OpenFile(char *filename, int mode)
OpenFile – opens a file for user process.
Definition fileserv.cpp:48
size_t ReadFile(int fd, void *buffer, size_t length)
ReadFile – reads a file into given buffer.
Definition fileserv.cpp:131
int FileSetOffset(int fd, size_t offset)
FileSetOffset – set a offset inorder to read the specific position of the file.
Definition fileserv.cpp:97
void UnmapSharedMem(uint16_t key)
UnmapSharedMem – unmap shared memory segment.
Definition mmserv.cpp:89
int NetBind(int sockfd, sockaddr *addr, socklen_t addrlen)
Definition netserv.cpp:102
void * ObtainSharedMem(uint16_t id, void *shmaddr, int shmflg)
ObtainSharedMem – obtain a shared memory.
Definition mmserv.cpp:71
int CreateDir(char *filename)
CreateDir – creates a directory.
Definition fileserv.cpp:245
int StopTimer(int threadID)
StopTimer – stop the timer.
Definition timerserv.cpp:61
int CreateUserThread(void(*entry)(), char *name)
CreateUserThread – creates an user mode thread.
Definition thrserv.cpp:236
int NetSend(int sockfd, msghdr *msg, int flags)
Definition netserv.cpp:37
int GetCurrentTime(void *ptr)
Definition thrserv.cpp:346
int SetFileToProcess(int fileno, int dest_fdidx, int proc_id)
Definition thrserv.cpp:277
int ReadDir(int dirfd, void *dirent)
ReadDir – reads a directory entry.
Definition fileserv.cpp:438
AA64Registers * AA64GetCurrentRegCtx()
Definition systable.c:67
int SetSignal(int signo, AuSigHandler handler)
Definition thrserv.cpp:216
uint16_t GetThreadID()
Definition thrserv.cpp:59