PatchworkOS  da8a090
A non-POSIX operating system.
Loading...
Searching...
No Matches
proc.h File Reference
#include <stdatomic.h>
#include <stdint.h>
#include "_internal/ERR.h"
#include "_internal/NULL.h"
#include "_internal/clock_t.h"
#include "_internal/config.h"
#include "_internal/fd_t.h"
#include "_internal/pid_t.h"
#include "_internal/tid_t.h"
Include dependency graph for proc.h:

Go to the source code of this file.

Data Structures

struct  sync_t
 Synchronization object. More...
 

Macros

#define PRIORITY_MAX   63
 The maximum priority value, inclusive.
 
#define PRIORITY_MAX_USER   31
 The maximum priority user space is allowed to specify, inclusive.
 
#define PRIORITY_MIN   0
 The minimum priority value.
 
#define PAGE_SIZE   0x1000
 The size of a memory page in bytes.
 
#define BYTES_TO_PAGES(amount)   (((amount) + PAGE_SIZE - 1) / PAGE_SIZE)
 Convert a size in bytes to pages.
 
#define PAGE_SIZE_OF(object)   BYTES_TO_PAGES(sizeof(object))
 Size of an object in pages.
 
#define FUTEX_ALL   UINT64_MAX
 Futex wake all constant.
 

Typedefs

typedef uint8_t priority_t
 Priority type.
 

Enumerations

enum  spawn_flags_t {
  SPAWN_DEFAULT = 0 , SPAWN_SUSPEND = 1 << 0 , SPAWN_EMPTY_FDS = 1 << 1 , SPAWN_STDIO_FDS = 1 << 2 ,
  SPAWN_EMPTY_NS = 1 << 3 , SPAWN_EMPTY_ENV = 1 << 4 , SPAWN_EMPTY_CWD = 1 << 5
}
 Spawn behaviour flags. More...
 
enum  prot_t { PROT_NONE = 0 , PROT_READ = (1 << 0) , PROT_WRITE = (1 << 1) , PROT_EXECUTE = (1 << 2) }
 Memory protection flags. More...
 
enum  futex_op_t { FUTEX_WAIT , FUTEX_WAKE }
 Futex operation enum. More...
 

Functions

pid_t spawn (const char **argv, spawn_flags_t flags)
 System call for spawning new processes.
 
pid_t getpid (void)
 System call to retrieve the current pid.
 
tid_t gettid (void)
 System call to retrieve the current tid.
 
void * mmap (fd_t fd, void *address, uint64_t length, prot_t prot)
 System call to map memory from a file.
 
void * munmap (void *address, uint64_t length)
 System call to unmap mapped memory.
 
void * mprotect (void *address, uint64_t length, prot_t prot)
 System call to change the protection flags of memory.
 
uint64_t futex (atomic_uint64_t *addr, uint64_t val, futex_op_t op, clock_t timeout)
 System call for fast user space mutual exclusion.
 
clock_t uptime (void)
 System call for retreving the time since boot.
 
uint64_t nanosleep (clock_t timeout)
 System call for sleeping.
 

Variables

char ** environ
 The environment variables of the current process.