VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_linux.h File Reference
#include "kernel/vsf_kernel.h"
#include "./vsf_linux_cfg.h"
#include "./include/signal.h"
#include "./include/dirent.h"
#include "./include/termios.h"
#include "./include/sys/time.h"
#include "./kernel/fs/vsf_linux_fs.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

struct  vsf_linux_process_arg_t
 
struct  vsf_linux_thread_op_t
 
struct  vsf_linux_process_ctx_t
 
struct  vsf_linux_key_t
 
class  vsf_linux_trigger_t
 
class  vsf_linux_thread_t
 
struct  vsf_linux_sig_handler_t
 
struct  vsf_linux_stdio_stream_t
 
struct  vsf_linux_timer_t
 
struct  vsf_liunx_heap_node_t
 
struct  vsf_linux_heap_monitor_t
 
class  vsf_linux_process_t
 
struct  vsf_linux_fundmental_vplt_t
 

Macros

#define __VSF_CLASS_INHERIT__
 
#define VSF_LINUX_CFG_STACKSIZE   1024
 
#define vsf_linux_thread_get_priv(__thread)   (void *)(&(((vsf_linux_thread_t *)(__thread))[1]))
 
#define __malloc_ex(__process, __size)   ____malloc_ex((__process), (__size), __FILE__, __FUNCTION__, __LINE__)
 
#define __calloc_ex(__process, __n, __size)   ____calloc_ex((__process), (__n), (__size), __FILE__, __FUNCTION__, __LINE__)
 
#define __realloc_ex(__process, __ptr, __size)   ____realloc_ex((__process), (__ptr), (__size), __FILE__, __FUNCTION__, __LINE__)
 
#define __strdup_ex(__process, __str)   ____strdup_ex((__process), (char *)(__str), __FILE__, __FUNCTION__, __LINE__)
 
#define __vsf_linux_start_process_internal3(__entry, __argv, __stack_size, __prio)    __vsf_linux_start_process_internal((__entry), (__argv), (__stack_size), (__prio))
 
#define __vsf_linux_start_process_internal2(__entry, __argv, __stack_size)    __vsf_linux_start_process_internal3((__entry), (__argv), (__stack_size), VSF_LINUX_CFG_PRIO_LOWEST)
 
#define __vsf_linux_start_process_internal1(__entry, __argv)    __vsf_linux_start_process_internal2((__entry), (__argv), 0)
 
#define __vsf_linux_start_process_internal0(__entry)    __vsf_linux_start_process_internal1(__entry, NULL)
 
#define vsf_linux_start_process_internal(__entry, ...)    __PLOOC_EVAL(__vsf_linux_start_process_internal, __VA_ARGS__)((__entry), ##__VA_ARGS__)
 

Typedefs

typedef struct vsf_linux_process_arg_t vsf_linux_process_arg_t
 
typedef int(* vsf_linux_main_entry_t) (int, char **)
 
typedef int(* vsf_linux_process_arg_parser_t) (vsf_linux_process_arg_t *arg)
 
typedef struct vsf_linux_thread_op_t vsf_linux_thread_op_t
 
typedef struct vsf_linux_process_ctx_t vsf_linux_process_ctx_t
 
typedef struct vsf_linux_key_t vsf_linux_key_t
 
typedef struct vsf_linux_sig_handler_t vsf_linux_sig_handler_t
 
typedef struct vsf_linux_stdio_stream_t vsf_linux_stdio_stream_t
 
typedef struct vsf_linux_timer_t vsf_linux_timer_t
 
typedef struct vsf_liunx_heap_node_t vsf_liunx_heap_node_t
 
typedef struct vsf_linux_heap_monitor_t vsf_linux_heap_monitor_t
 
typedef struct vsf_linux_fundmental_vplt_t vsf_linux_fundmental_vplt_t
 

Enumerations

enum  {
  __VSF_EVT_LINUX_EVENTFD_INC = VSF_EVT_USER + 0 ,
  __VSF_EVT_LINUX_TERM_RX = VSF_EVT_USER + 1
}
 

Functions

 dcl_vsf_bitmap (vsf_linux_fd_bitmap, VSF_LINUX_CFG_FD_BITMAP_SIZE)
 
vsf_linux_process_tvsf_linux_get_cur_process (void)
 
void vsf_linux_loader_keep_ram (void)
 
vsf_err_t vsf_linux_init (vsf_linux_stdio_stream_t *stdio_stream)
 
vsf_systimer_tick_t vsf_linux_sleep (vsf_timeout_tick_t ticks)
 
vsf_linux_process_tvsf_linux_resources_process (void)
 
size_t vsf_linux_process_heap_size (vsf_linux_process_t *process, void *buffer)
 
void * vsf_linux_process_heap_realloc (vsf_linux_process_t *process, void *buffer, uint_fast32_t size)
 
void * vsf_linux_process_heap_malloc_aligned (vsf_linux_process_t *process, uint_fast32_t size, uint_fast32_t alignment)
 
void * vsf_linux_process_heap_malloc (vsf_linux_process_t *process, size_t size)
 
void * vsf_linux_process_heap_calloc (vsf_linux_process_t *process, size_t n, size_t size)
 
void vsf_linux_process_heap_free (vsf_linux_process_t *process, void *buffer)
 
char * vsf_linux_process_heap_strdup (vsf_linux_process_t *process, char *str)
 
void __free_ex (vsf_linux_process_t *process, void *ptr)
 
vsf_eda_tvsf_linux_get_kernel_task (void)
 
void * vsf_linux_malloc_res (size_t size)
 
void vsf_linux_free_res (void *ptr)
 
int vsf_linux_generate_path (char *path_out, int path_out_lenlen, char *dir, char *path_in)
 
int vsf_linux_chdir (vsf_linux_process_t *process, char *working_dir)
 
int vsf_linux_fd_bind_executable (int fd, vsf_linux_main_entry_t entry)
 
int vsf_linux_fs_bind_executable (char *path, vsf_linux_main_entry_t entry)
 
int vsf_linux_expandenv (const char *str, char *output, size_t bufflen)
 
bool vsf_linux_is_inited (void)
 
vsf_linux_process_tvsf_linux_get_real_process (vsf_linux_process_t *process)
 
vsf_linux_process_t__vsf_linux_start_process_internal (vsf_linux_main_entry_t entry, char *const *argv, int stack_size, vsf_prio_t prio)
 
vsf_linux_main_entry_tvsf_linux_fd_get_executable (int fd)
 
int vsf_linux_fs_get_executable (const char *pathname, vsf_linux_main_entry_t *entry)
 
vsf_linux_process_tvsf_linux_create_process (int stack_size, int heap_size, int priv_size)
 
void vsf_linux_delete_process (vsf_linux_process_t *process)
 
int vsf_linux_start_process (vsf_linux_process_t *process)
 
VSF_CAL_NO_RETURN void vsf_linux_exit_process (int status, bool _exit)
 
uintptr_t vsf_linux_set_process_reg (uintptr_t reg)
 
void vsf_linux_cleanup_process (vsf_linux_process_t *process)
 
void vsf_linux_detach_process (vsf_linux_process_t *process)
 
void vsf_linux_detach_thread (vsf_linux_thread_t *thread)
 
int vsf_linux_wait_thread (int tid, int *retval)
 
vsf_linux_thread_tvsf_linux_create_thread (vsf_linux_process_t *process, const vsf_linux_thread_op_t *op, int stack_size, void *stack)
 
int vsf_linux_start_thread (vsf_linux_thread_t *thread, vsf_prio_t priority)
 
void vsf_linux_thread_on_terminate (vsf_linux_thread_t *thread)
 
vsf_linux_thread_tvsf_linux_get_thread (pid_t pid, int tid)
 
vsf_linux_process_tvsf_linux_get_process (pid_t pid)
 
void __vsf_linux_process_free_arg (vsf_linux_process_t *process)
 
int __vsf_linux_process_parse_arg (vsf_linux_process_t *process, vsf_linux_process_arg_t *arg, char *const *argv)
 
int vsf_linux_merge_env (vsf_linux_process_t *process, char **env)
 
void vsf_linux_free_env (vsf_linux_process_t *process)
 
void vsf_linux_trigger_init (vsf_linux_trigger_t *trig)
 
int vsf_linux_trigger_pend (vsf_linux_trigger_t *trig, vsf_timeout_tick_t timeout)
 
int vsf_linux_trigger_signal (vsf_linux_trigger_t *trig, int sig)
 
vsf_linux_thread_tvsf_linux_get_cur_thread (void)
 
int vsf_linux_get_errno (void)
 
void vsf_linux_set_errno (int err)
 

Variables

__VSF_VPLT_DECORATOR__ vsf_linux_fundmental_vplt_t vsf_linux_fundmental_vplt
 

Macro Definition Documentation

◆ __VSF_CLASS_INHERIT__

#define __VSF_CLASS_INHERIT__

◆ VSF_LINUX_CFG_STACKSIZE

#define VSF_LINUX_CFG_STACKSIZE   1024

◆ vsf_linux_thread_get_priv

#define vsf_linux_thread_get_priv (   __thread)    (void *)(&(((vsf_linux_thread_t *)(__thread))[1]))

◆ __malloc_ex

#define __malloc_ex (   __process,
  __size 
)    ____malloc_ex((__process), (__size), __FILE__, __FUNCTION__, __LINE__)

◆ __calloc_ex

#define __calloc_ex (   __process,
  __n,
  __size 
)    ____calloc_ex((__process), (__n), (__size), __FILE__, __FUNCTION__, __LINE__)

◆ __realloc_ex

#define __realloc_ex (   __process,
  __ptr,
  __size 
)    ____realloc_ex((__process), (__ptr), (__size), __FILE__, __FUNCTION__, __LINE__)

◆ __strdup_ex

#define __strdup_ex (   __process,
  __str 
)    ____strdup_ex((__process), (char *)(__str), __FILE__, __FUNCTION__, __LINE__)

◆ __vsf_linux_start_process_internal3

#define __vsf_linux_start_process_internal3 (   __entry,
  __argv,
  __stack_size,
  __prio 
)     __vsf_linux_start_process_internal((__entry), (__argv), (__stack_size), (__prio))

◆ __vsf_linux_start_process_internal2

#define __vsf_linux_start_process_internal2 (   __entry,
  __argv,
  __stack_size 
)     __vsf_linux_start_process_internal3((__entry), (__argv), (__stack_size), VSF_LINUX_CFG_PRIO_LOWEST)

◆ __vsf_linux_start_process_internal1

#define __vsf_linux_start_process_internal1 (   __entry,
  __argv 
)     __vsf_linux_start_process_internal2((__entry), (__argv), 0)

◆ __vsf_linux_start_process_internal0

#define __vsf_linux_start_process_internal0 (   __entry)     __vsf_linux_start_process_internal1(__entry, NULL)

◆ vsf_linux_start_process_internal

#define vsf_linux_start_process_internal (   __entry,
  ... 
)     __PLOOC_EVAL(__vsf_linux_start_process_internal, __VA_ARGS__)((__entry), ##__VA_ARGS__)

Typedef Documentation

◆ vsf_linux_process_arg_t

◆ vsf_linux_main_entry_t

typedef int(* vsf_linux_main_entry_t) (int, char **)

◆ vsf_linux_process_arg_parser_t

typedef int(* vsf_linux_process_arg_parser_t) (vsf_linux_process_arg_t *arg)

◆ vsf_linux_thread_op_t

◆ vsf_linux_process_ctx_t

◆ vsf_linux_key_t

◆ vsf_linux_sig_handler_t

◆ vsf_linux_stdio_stream_t

◆ vsf_linux_timer_t

◆ vsf_liunx_heap_node_t

◆ vsf_linux_heap_monitor_t

◆ vsf_linux_fundmental_vplt_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
__VSF_EVT_LINUX_EVENTFD_INC 
__VSF_EVT_LINUX_TERM_RX 

Function Documentation

◆ dcl_vsf_bitmap()

dcl_vsf_bitmap ( vsf_linux_fd_bitmap  ,
VSF_LINUX_CFG_FD_BITMAP_SIZE   
)

◆ vsf_linux_get_cur_process()

vsf_linux_process_t * vsf_linux_get_cur_process ( void  )
extern

◆ vsf_linux_loader_keep_ram()

void vsf_linux_loader_keep_ram ( void  )
extern

◆ vsf_linux_init()

vsf_err_t vsf_linux_init ( vsf_linux_stdio_stream_t stdio_stream)
extern

◆ vsf_linux_sleep()

vsf_systimer_tick_t vsf_linux_sleep ( vsf_timeout_tick_t  ticks)
extern

◆ vsf_linux_resources_process()

vsf_linux_process_t * vsf_linux_resources_process ( void  )
extern

◆ vsf_linux_process_heap_size()

size_t vsf_linux_process_heap_size ( vsf_linux_process_t process,
void *  buffer 
)
extern

◆ vsf_linux_process_heap_realloc()

void * vsf_linux_process_heap_realloc ( vsf_linux_process_t process,
void *  buffer,
uint_fast32_t  size 
)
extern

◆ vsf_linux_process_heap_malloc_aligned()

void * vsf_linux_process_heap_malloc_aligned ( vsf_linux_process_t process,
uint_fast32_t  size,
uint_fast32_t  alignment 
)
extern

◆ vsf_linux_process_heap_malloc()

void * vsf_linux_process_heap_malloc ( vsf_linux_process_t process,
size_t  size 
)
extern

◆ vsf_linux_process_heap_calloc()

void * vsf_linux_process_heap_calloc ( vsf_linux_process_t process,
size_t  n,
size_t  size 
)
extern

◆ vsf_linux_process_heap_free()

void vsf_linux_process_heap_free ( vsf_linux_process_t process,
void *  buffer 
)
extern

◆ vsf_linux_process_heap_strdup()

char * vsf_linux_process_heap_strdup ( vsf_linux_process_t process,
char *  str 
)
extern

◆ __free_ex()

void __free_ex ( vsf_linux_process_t process,
void *  ptr 
)
extern

◆ vsf_linux_get_kernel_task()

vsf_eda_t * vsf_linux_get_kernel_task ( void  )
extern

◆ vsf_linux_malloc_res()

void * vsf_linux_malloc_res ( size_t  size)
extern

◆ vsf_linux_free_res()

void vsf_linux_free_res ( void *  ptr)
extern

◆ vsf_linux_generate_path()

int vsf_linux_generate_path ( char *  path_out,
int  path_out_lenlen,
char *  dir,
char *  path_in 
)
extern

◆ vsf_linux_chdir()

int vsf_linux_chdir ( vsf_linux_process_t process,
char *  working_dir 
)
extern

◆ vsf_linux_fd_bind_executable()

int vsf_linux_fd_bind_executable ( int  fd,
vsf_linux_main_entry_t  entry 
)
extern

◆ vsf_linux_fs_bind_executable()

int vsf_linux_fs_bind_executable ( char *  path,
vsf_linux_main_entry_t  entry 
)
extern

◆ vsf_linux_expandenv()

int vsf_linux_expandenv ( const char *  str,
char *  output,
size_t  bufflen 
)
extern

◆ vsf_linux_is_inited()

bool vsf_linux_is_inited ( void  )
extern

◆ vsf_linux_get_real_process()

vsf_linux_process_t * vsf_linux_get_real_process ( vsf_linux_process_t process)
extern

◆ __vsf_linux_start_process_internal()

vsf_linux_process_t * __vsf_linux_start_process_internal ( vsf_linux_main_entry_t  entry,
char *const *  argv,
int  stack_size,
vsf_prio_t  prio 
)
extern

◆ vsf_linux_fd_get_executable()

vsf_linux_main_entry_t * vsf_linux_fd_get_executable ( int  fd)
extern

◆ vsf_linux_fs_get_executable()

int vsf_linux_fs_get_executable ( const char *  pathname,
vsf_linux_main_entry_t entry 
)
extern

◆ vsf_linux_create_process()

vsf_linux_process_t * vsf_linux_create_process ( int  stack_size,
int  heap_size,
int  priv_size 
)
extern

◆ vsf_linux_delete_process()

void vsf_linux_delete_process ( vsf_linux_process_t process)
extern

◆ vsf_linux_start_process()

int vsf_linux_start_process ( vsf_linux_process_t process)
extern

◆ vsf_linux_exit_process()

VSF_CAL_NO_RETURN void vsf_linux_exit_process ( int  status,
bool  _exit 
)
extern

◆ vsf_linux_set_process_reg()

uintptr_t vsf_linux_set_process_reg ( uintptr_t  reg)
extern

◆ vsf_linux_cleanup_process()

void vsf_linux_cleanup_process ( vsf_linux_process_t process)
extern

◆ vsf_linux_detach_process()

void vsf_linux_detach_process ( vsf_linux_process_t process)
extern

◆ vsf_linux_detach_thread()

void vsf_linux_detach_thread ( vsf_linux_thread_t thread)
extern

◆ vsf_linux_wait_thread()

int vsf_linux_wait_thread ( int  tid,
int *  retval 
)
extern

◆ vsf_linux_create_thread()

vsf_linux_thread_t * vsf_linux_create_thread ( vsf_linux_process_t process,
const vsf_linux_thread_op_t op,
int  stack_size,
void *  stack 
)
extern

◆ vsf_linux_start_thread()

int vsf_linux_start_thread ( vsf_linux_thread_t thread,
vsf_prio_t  priority 
)
extern

◆ vsf_linux_thread_on_terminate()

void vsf_linux_thread_on_terminate ( vsf_linux_thread_t thread)
extern

◆ vsf_linux_get_thread()

vsf_linux_thread_t * vsf_linux_get_thread ( pid_t  pid,
int  tid 
)
extern

◆ vsf_linux_get_process()

vsf_linux_process_t * vsf_linux_get_process ( pid_t  pid)
extern

◆ __vsf_linux_process_free_arg()

void __vsf_linux_process_free_arg ( vsf_linux_process_t process)
extern

◆ __vsf_linux_process_parse_arg()

int __vsf_linux_process_parse_arg ( vsf_linux_process_t process,
vsf_linux_process_arg_t arg,
char *const *  argv 
)
extern

◆ vsf_linux_merge_env()

int vsf_linux_merge_env ( vsf_linux_process_t process,
char **  env 
)
extern

◆ vsf_linux_free_env()

void vsf_linux_free_env ( vsf_linux_process_t process)
extern

◆ vsf_linux_trigger_init()

void vsf_linux_trigger_init ( vsf_linux_trigger_t trig)
extern

◆ vsf_linux_trigger_pend()

int vsf_linux_trigger_pend ( vsf_linux_trigger_t trig,
vsf_timeout_tick_t  timeout 
)
extern

◆ vsf_linux_trigger_signal()

int vsf_linux_trigger_signal ( vsf_linux_trigger_t trig,
int  sig 
)
extern

◆ vsf_linux_get_cur_thread()

vsf_linux_thread_t * vsf_linux_get_cur_thread ( void  )
extern

◆ vsf_linux_get_errno()

int vsf_linux_get_errno ( void  )
extern

◆ vsf_linux_set_errno()

void vsf_linux_set_errno ( int  err)
extern

Variable Documentation

◆ vsf_linux_fundmental_vplt

__VSF_VPLT_DECORATOR__ vsf_linux_fundmental_vplt_t vsf_linux_fundmental_vplt
extern