Files

55 lines
1.8 KiB
C

// POSIX signal declarations for the nt-lite POSIX personality.
#pragma once
#include <stdint.h>
#include <sys/types.h>
#include <ntlite_posix_api.h>
#include <ntlite/posix_signal.h>
typedef uint64_t sigset_t;
typedef int sig_atomic_t;
typedef void (*sighandler_t)(int);
#define SIGHUP NTL_POSIX_SIGNAL_HUP
#define SIGINT NTL_POSIX_SIGNAL_INT
#define SIGQUIT NTL_POSIX_SIGNAL_QUIT
#define SIGILL NTL_POSIX_SIGNAL_ILL
#define SIGABRT NTL_POSIX_SIGNAL_ABRT
#define SIGFPE NTL_POSIX_SIGNAL_FPE
#define SIGKILL NTL_POSIX_SIGNAL_KILL
#define SIGSEGV NTL_POSIX_SIGNAL_SEGV
#define SIGPIPE NTL_POSIX_SIGNAL_PIPE
#define SIGALRM NTL_POSIX_SIGNAL_ALRM
#define SIGTERM NTL_POSIX_SIGNAL_TERM
#define SIGUSR1 NTL_POSIX_SIGNAL_USR1
#define SIGUSR2 NTL_POSIX_SIGNAL_USR2
#define SIGCHLD NTL_POSIX_SIGNAL_CHLD
#define SIG_DFL ((sighandler_t)0)
#define SIG_IGN ((sighandler_t)1)
#define SIG_ERR ((sighandler_t)-1)
#define SIG_BLOCK 1
#define SIG_UNBLOCK 2
#define SIG_SETMASK 3
struct sigaction {
sighandler_t sa_handler;
sigset_t sa_mask;
int sa_flags;
};
NTL_POSIX_API int sigemptyset(sigset_t* set);
NTL_POSIX_API int sigfillset(sigset_t* set);
NTL_POSIX_API int sigaddset(sigset_t* set, int signalNumber);
NTL_POSIX_API int sigdelset(sigset_t* set, int signalNumber);
NTL_POSIX_API int sigismember(const sigset_t* set, int signalNumber);
NTL_POSIX_API int sigaction(int signalNumber, const struct sigaction* action, struct sigaction* oldAction);
NTL_POSIX_API int sigprocmask(int how, const sigset_t* set, sigset_t* oldSet);
NTL_POSIX_API int sigpending(sigset_t* set);
NTL_POSIX_API int sigsuspend(const sigset_t* set);
NTL_POSIX_API int kill(pid_t pid, int signalNumber);
NTL_POSIX_API sighandler_t signal(int signalNumber, sighandler_t handler);
NTL_POSIX_API int raise(int signalNumber);