XenevaOS
Loading...
Searching...
No Matches
Macros | Functions
sysserv.h File Reference
#include <stdint.h>
#include <stdarg.h>
#include <aurora.h>
#include <Net\socket.h>
Include dependency graph for sysserv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define AURORA_MAX_SYSCALL   58
 
#define AURORA_SYSCALL_MAGIC   0x15062023
 

Functions

int PauseThread ()
 PauseThread – pause the currently running thread.
 
int GetProcessID ()
 GetProcessID – returns currently running process id.
 
int ProcessExit ()
 ProcessExit – marks a process as died.
 
int ProcessWaitForTermination (int pid)
 ProcessWaitForTermination – wait for termination of a child process.
 
int CreateProcess (int parent_id, char *name)
 CreateProcess – creates a new process slot.
 
int ProcessLoadExec (int proc_id, char *filename, int argc, char **argv)
 ProcessLoadExec – loads an executable to a process slot.
 
int ProcessSleep (uint64_t ms)
 ProcessSleep – put the current thread to sleep and process to busy wait state.
 
void SignalReturn (int num)
 SignalReturn – returns from a signal handler.
 
int CreateSharedMem (uint16_t key, size_t sz, uint8_t flags)
 CreateSharedMem – create a shared memory chunk.
 
void * ObtainSharedMem (uint16_t id, void *shmaddr, int shmflg)
 ObtainSharedMem – obtain a shared memory.
 
void UnmapSharedMem (uint16_t key)
 UnmapSharedMem – unmap shared memory segment.
 
uint64_t GetProcessHeapMem (size_t sz)
 GetProcessHeapMem – get a memory from process heap.
 
int OpenFile (char *filename, int mode)
 OpenFile – opens a file for user process.
 
size_t ReadFile (int fd, void *buffer, size_t length)
 ReadFile – reads a file into given buffer.
 
size_t WriteFile (int fd, void *buffer, size_t length)
 WriteFile – write system call.
 
int CreateDir (char *filename)
 CreateDir – creates a directory.
 
int RemoveFile (char *pathname)
 RemoveFile – remove a directory or file.
 
int CloseFile (int fd)
 CloseFile – closes a general file.
 
int FileIoControl (int fd, int code, void *arg)
 FileIoControl – controls the file through I/O code.
 
int FileStat (int fd, void *buf)
 FileStat – writes information related to file.
 
size_t GetSystemTimerTick ()
 
int CreateUserThread (void(*entry)(), char *name)
 CreateUserThread – creates an user mode thread.
 
int SetFileToProcess (int fileno, int dest_fdidx, int proc_id)
 
int ProcessHeapUnmap (void *ptr, size_t sz)
 ProcessHeapUnmap – unmaps previosly allocated heap memory.
 
int SendSignal (int pid, int signo)
 SendSignal – sends a signal to desired process note here pid means thread id.
 
int GetCurrentTime (void *ptr)
 
int KillProcess (int proc_id)
 KillProcess – forcefully kills a process.
 
int OpenDir (char *filename)
 OpenDir – opens a directory.
 
int ReadDir (int dirfd, void *dirent)
 ReadDir – reads a directory entry.
 
int CreateTimer (int threadID, int maxTickLimit, uint8_t updatemode)
 CreateTimer – create timer service.
 
int StartTimer (int threadID)
 StartTimer – starts the timer.
 
int StopTimer (int threadID)
 StopTimer – stop the timer.
 
int DestroyTimer (int threadID)
 DestroyTimer – remove the timer.
 
int ProcessGetFileDesc (const char *filename)
 ProcessGetFileDesc – Searches all process file descriptor entries for specific filename fd.
 
int FileSetOffset (int fd, size_t offset)
 FileSetOffset – set a offset inorder to read the specific position of the file.
 
int GetTimeOfDay (void *ptr)
 GetTimeOfDay – returns the time format in unix format.
 
int NetSend (int sockfd, msghdr *msg, int flags)
 
int NetReceive (int sockfd, msghdr *msg, int flags)
 
int NetConnect (int sockfd, sockaddr *addr, socklen_t addrlen)
 
int NetBind (int sockfd, sockaddr *addr, socklen_t addrlen)
 
int NetAccept (int sockfd, sockaddr *addr, socklen_t *addrlen)
 
int NetListen (int sockfd, int backlog)
 
size_t GetEnvironmenBlock ()
 GetEnvironmentBlock – returns environment block of this process.
 

Macro Definition Documentation

◆ AURORA_MAX_SYSCALL

#define AURORA_MAX_SYSCALL   58

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ AURORA_SYSCALL_MAGIC

#define AURORA_SYSCALL_MAGIC   0x15062023

Function Documentation

◆ CloseFile()

int CloseFile ( int  fd)
extern

CloseFile – closes a general file.

Parameters
fd– file descriptor to close

◆ CreateDir()

int CreateDir ( char *  filename)
extern

CreateDir – creates a directory.

Parameters
filename– name of the directory

◆ CreateProcess()

int CreateProcess ( int  parent_id,
char *  name 
)
extern

CreateProcess – creates a new process slot.

Parameters
parent_id– parent process id
name– name of the current process slot

◆ CreateSharedMem()

int CreateSharedMem ( uint16_t  key,
size_t  sz,
uint8_t  flags 
)
extern

CreateSharedMem – create a shared memory chunk.

Parameters
key– key to use
sz– memory size
flags– shared memory flags

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ CreateTimer()

int CreateTimer ( int  threadID,
int  maxTickLimit,
uint8_t  updatemode 
)
extern

CreateTimer – create timer service.

Parameters
maxTickLimit– maximum tick limit
updatemode– Timer update mode

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ CreateUserThread()

int CreateUserThread ( void(*)()  entry,
char *  name 
)
extern

CreateUserThread – creates an user mode thread.

◆ DestroyTimer()

int DestroyTimer ( int  threadID)
extern

DestroyTimer – remove the timer.

◆ FileIoControl()

int FileIoControl ( int  fd,
int  code,
void *  arg 
)
extern

FileIoControl – controls the file through I/O code.

Parameters
fd– file descriptor
code– code to pass
arg– argument to pass

◆ FileSetOffset()

int FileSetOffset ( int  fd,
size_t  offset 
)
extern

FileSetOffset – set a offset inorder to read the specific position of the file.

Parameters
fd– File descriptor
offset– offset in bytes

◆ FileStat()

int FileStat ( int  fd,
void *  buf 
)
extern

FileStat – writes information related to file.

Parameters
fd– file descriptor
buf– Pointer to file structure

◆ GetCurrentTime()

int GetCurrentTime ( void *  ptr)
extern

◆ GetEnvironmenBlock()

size_t GetEnvironmenBlock ( )
extern

GetEnvironmentBlock – returns environment block of this process.

◆ GetProcessHeapMem()

uint64_t GetProcessHeapMem ( size_t  sz)
extern

GetProcessHeapMem – get a memory from process heap.

Parameters
sz– size in bytes

◆ GetProcessID()

int GetProcessID ( )
extern

GetProcessID – returns currently running process id.

Returns
current process's ID

◆ GetSystemTimerTick()

size_t GetSystemTimerTick ( )
extern

◆ GetTimeOfDay()

int GetTimeOfDay ( void *  ptr)
extern

GetTimeOfDay – returns the time format in unix format.

Parameters
ptr– Pointer to timeval structure

◆ KillProcess()

int KillProcess ( int  proc_id)
extern

KillProcess – forcefully kills a process.

Parameters
proc_id– process id

◆ NetAccept()

int NetAccept ( int  sockfd,
sockaddr addr,
socklen_t addrlen 
)
extern

◆ NetBind()

int NetBind ( int  sockfd,
sockaddr addr,
socklen_t  addrlen 
)
extern

◆ NetConnect()

int NetConnect ( int  sockfd,
sockaddr addr,
socklen_t  addrlen 
)
extern

◆ NetListen()

int NetListen ( int  sockfd,
int  backlog 
)
extern

◆ NetReceive()

int NetReceive ( int  sockfd,
msghdr msg,
int  flags 
)
extern

◆ NetSend()

int NetSend ( int  sockfd,
msghdr msg,
int  flags 
)
extern

BSD 2-Clause License

Copyright (c) 2022-2024, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ ObtainSharedMem()

void * ObtainSharedMem ( uint16_t  id,
void *  shmaddr,
int  shmflg 
)
extern

ObtainSharedMem – obtain a shared memory.

Parameters
id– segment id
shmaddr– user specified address
shmflg– flags to use for protection

◆ OpenDir()

int OpenDir ( char *  filename)
extern

OpenDir – opens a directory.

Parameters
filename– name of the directory

◆ OpenFile()

int OpenFile ( char *  filename,
int  mode 
)
extern

OpenFile – opens a file for user process.

Parameters
file– file path
mode– mode of the file

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ PauseThread()

int PauseThread ( )
extern

PauseThread – pause the currently running thread.

BSD 2-Clause License

Copyright (c) 2022-2023, Manas Kamal Choudhury All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

◆ ProcessExit()

int ProcessExit ( )
extern

ProcessExit – marks a process as died.

ProcessExit – marks a process as died.

◆ ProcessGetFileDesc()

int ProcessGetFileDesc ( const char *  filename)
extern

ProcessGetFileDesc – Searches all process file descriptor entries for specific filename fd.

◆ ProcessHeapUnmap()

int ProcessHeapUnmap ( void *  ptr,
size_t  sz 
)
extern

ProcessHeapUnmap – unmaps previosly allocated heap memory.

Parameters
ptr– Pointer to freeable address
sz– size in bytes to unallocate

@briefProcessHeapUnmap – unmaps previosly allocated heap memory

Parameters
ptr– Pointer to freeable address
sz– size in bytes to unallocate

◆ ProcessLoadExec()

int ProcessLoadExec ( int  proc_id,
char *  filename,
int  argc,
char **  argv 
)
extern

ProcessLoadExec – loads an executable to a process slot.

Parameters
proc_id– newly created process slot
filename– path of the executable
argc– argument count
argv– pointer to argument list

◆ ProcessSleep()

int ProcessSleep ( uint64_t  ms)
extern

ProcessSleep – put the current thread to sleep and process to busy wait state.

Parameters
ms– millisecond

◆ ProcessWaitForTermination()

int ProcessWaitForTermination ( int  pid)
extern

ProcessWaitForTermination – wait for termination of a child process.

Parameters
pid– child process id, if -1 then any process

◆ ReadDir()

int ReadDir ( int  dirfd,
void *  dirent 
)
extern

ReadDir – reads a directory entry.

Parameters
dirfd– directory file descriptor
dirent– aurora directory entry struct

◆ ReadFile()

size_t ReadFile ( int  fd,
void *  buffer,
size_t  length 
)
extern

ReadFile – reads a file into given buffer.

Parameters
fd– file descriptor
buffer– buffer where to put the data
length– length in bytes

◆ RemoveFile()

int RemoveFile ( char *  pathname)
extern

RemoveFile – remove a directory or file.

Parameters
dirname– directory name

◆ SendSignal()

int SendSignal ( int  pid,
int  signo 
)
extern

SendSignal – sends a signal to desired process note here pid means thread id.

Parameters
pid– thread id
signo– signal number

◆ SetFileToProcess()

int SetFileToProcess ( int  fileno,
int  dest_fdidx,
int  proc_id 
)
extern

◆ SignalReturn()

void SignalReturn ( int  num)
extern

SignalReturn – returns from a signal handler.

◆ StartTimer()

int StartTimer ( int  threadID)
extern

StartTimer – starts the timer.

◆ StopTimer()

int StopTimer ( int  threadID)
extern

StopTimer – stop the timer.

◆ UnmapSharedMem()

void UnmapSharedMem ( uint16_t  key)
extern

UnmapSharedMem – unmap shared memory segment.

Parameters
key– key to search

◆ WriteFile()

size_t WriteFile ( int  fd,
void *  buffer,
size_t  length 
)
extern

WriteFile – write system call.

Parameters
fd– file descriptor
buffer– buffer to write
length– length in bytes