hoshi-lang dev
Yet another programming language
Loading...
Searching...
No Matches
signal.h File Reference
#include <csignal>
#include <runtime/memory/memory.h>
#include <unistd.h>
#include <sys/types.h>
Include dependency graph for signal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  YoiVoidIntCallableInterface
 
struct  runtime_signal_handler_info
 

Macros

#define LIBSIG_INTERNAL_ALRM   SIGALRM
 
#define LIBSIG_INTERNAL_KILL   SIGKILL
 
#define LIBSIG_EXPORT   extern "C"
 
#define LIBSIG_SUCCESS   0
 
#define LIBSIG_ERR_REGISTER_FAIL   -1
 
#define LIBSIG_ERR_UNSUPPORTED   -2
 
#define LIBSIG_ERR_CANT_CATCH_KILL   -3
 
#define LIBSIG_ERR_RAISE_FAIL   -4
 
#define HS_SIGINT   SIGINT
 
#define HS_SIGTERM   SIGTERM
 
#define HS_SIGALRM   LIBSIG_INTERNAL_ALRM
 
#define HS_SIGKILL   LIBSIG_INTERNAL_KILL
 
#define HANDLER_TYPE_SIGINT   0
 
#define HANDLER_TYPE_SIGTERM   1
 
#define HANDLER_TYPE_SIGALRM   2
 

Typedefs

typedef void(* runtime_signal_handler_bare_t) (int signum)
 
typedef void(* runtime_signal_handler_t) (YoiObject *self, YoiIntegerObject *signum)
 

Functions

void runtime_signal_handler (int signum)
 
LIBSIG_EXPORT void runtime_signal_init ()
 
LIBSIG_EXPORT YoiIntegerObjectruntime_signal_register (YoiIntegerObject *signum, YoiVoidIntCallableInterface *handler)
 
LIBSIG_EXPORT int runtime_signal_alarm (unsigned int seconds)
 
LIBSIG_EXPORT int runtime_signal_raise (int signum)
 
LIBSIG_EXPORT int runtime_signal_default (int signum)
 
LIBSIG_EXPORT int runtime_signal_ignore (int signum)
 

Variables

runtime_signal_handler_inforuntime_signal_handlers [3]
 

Macro Definition Documentation

◆ HANDLER_TYPE_SIGALRM

#define HANDLER_TYPE_SIGALRM   2

Definition at line 39 of file signal.h.

◆ HANDLER_TYPE_SIGINT

#define HANDLER_TYPE_SIGINT   0

Definition at line 37 of file signal.h.

◆ HANDLER_TYPE_SIGTERM

#define HANDLER_TYPE_SIGTERM   1

Definition at line 38 of file signal.h.

◆ HS_SIGALRM

#define HS_SIGALRM   LIBSIG_INTERNAL_ALRM

Definition at line 34 of file signal.h.

◆ HS_SIGINT

#define HS_SIGINT   SIGINT

Definition at line 32 of file signal.h.

◆ HS_SIGKILL

#define HS_SIGKILL   LIBSIG_INTERNAL_KILL

Definition at line 35 of file signal.h.

◆ HS_SIGTERM

#define HS_SIGTERM   SIGTERM

Definition at line 33 of file signal.h.

◆ LIBSIG_ERR_CANT_CATCH_KILL

#define LIBSIG_ERR_CANT_CATCH_KILL   -3

Definition at line 29 of file signal.h.

◆ LIBSIG_ERR_RAISE_FAIL

#define LIBSIG_ERR_RAISE_FAIL   -4

Definition at line 30 of file signal.h.

◆ LIBSIG_ERR_REGISTER_FAIL

#define LIBSIG_ERR_REGISTER_FAIL   -1

Definition at line 27 of file signal.h.

◆ LIBSIG_ERR_UNSUPPORTED

#define LIBSIG_ERR_UNSUPPORTED   -2

Definition at line 28 of file signal.h.

◆ LIBSIG_EXPORT

#define LIBSIG_EXPORT   extern "C"

Definition at line 23 of file signal.h.

◆ LIBSIG_INTERNAL_ALRM

#define LIBSIG_INTERNAL_ALRM   SIGALRM

Definition at line 19 of file signal.h.

◆ LIBSIG_INTERNAL_KILL

#define LIBSIG_INTERNAL_KILL   SIGKILL

Definition at line 20 of file signal.h.

◆ LIBSIG_SUCCESS

#define LIBSIG_SUCCESS   0

Definition at line 26 of file signal.h.

Typedef Documentation

◆ runtime_signal_handler_bare_t

typedef void(* runtime_signal_handler_bare_t) (int signum)

Definition at line 41 of file signal.h.

◆ runtime_signal_handler_t

typedef void(* runtime_signal_handler_t) (YoiObject *self, YoiIntegerObject *signum)

Definition at line 42 of file signal.h.

Function Documentation

◆ runtime_signal_alarm()

LIBSIG_EXPORT int runtime_signal_alarm ( unsigned int  seconds)

Definition at line 79 of file signal.cpp.

References LIBSIG_ERR_UNSUPPORTED.

◆ runtime_signal_default()

◆ runtime_signal_handler()

void runtime_signal_handler ( int  signum)

◆ runtime_signal_ignore()

LIBSIG_EXPORT int runtime_signal_ignore ( int  signum)

◆ runtime_signal_init()

LIBSIG_EXPORT void runtime_signal_init ( )

Definition at line 220 of file signal.cpp.

References LIBSIG_INTERNAL_ALRM, LIBSIG_INTERNAL_KILL, and runtime_signal_handler().

Here is the call graph for this function:

◆ runtime_signal_raise()

LIBSIG_EXPORT int runtime_signal_raise ( int  signum)

Definition at line 113 of file signal.cpp.

References HS_SIGALRM, HS_SIGKILL, LIBSIG_ERR_RAISE_FAIL, and LIBSIG_SUCCESS.

◆ runtime_signal_register()

Variable Documentation

◆ runtime_signal_handlers

runtime_signal_handler_info* runtime_signal_handlers[3]
extern