The TOOLCHAIN_IGNORE_WSHADOW_BEGIN and TOOLCHAIN_IGNORE_WSHADOW_END macros can be replaced with the more generic TOOLCHAIN_DISABLE_WARNING(TOOLCHAIN_WARNING_SHADOW) and TOOLCHAIN_ENABLE_WARNING(TOOLCHAIN_WARNING_SHADOW) macros. Signed-off-by: Tom Hughes <tomhughes@chromium.org>
146 lines
3.8 KiB
C
146 lines
3.8 KiB
C
/*
|
|
* Copyright (c) 2018 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#ifndef ZEPHYR_INCLUDE_POSIX_SIGNAL_H_
|
|
#define ZEPHYR_INCLUDE_POSIX_SIGNAL_H_
|
|
|
|
/* include posix_types.h before posix_features.h (here) to avoid build errors against newlib */
|
|
#include <zephyr/posix/posix_types.h>
|
|
#include "posix_features.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define SIGHUP 1 /**< Hangup */
|
|
#define SIGINT 2 /**< Interrupt */
|
|
#define SIGQUIT 3 /**< Quit */
|
|
#define SIGILL 4 /**< Illegal instruction */
|
|
#define SIGTRAP 5 /**< Trace/breakpoint trap */
|
|
#define SIGABRT 6 /**< Aborted */
|
|
#define SIGBUS 7 /**< Bus error */
|
|
#define SIGFPE 8 /**< Arithmetic exception */
|
|
#define SIGKILL 9 /**< Killed */
|
|
#define SIGUSR1 10 /**< User-defined signal 1 */
|
|
#define SIGSEGV 11 /**< Invalid memory reference */
|
|
#define SIGUSR2 12 /**< User-defined signal 2 */
|
|
#define SIGPIPE 13 /**< Broken pipe */
|
|
#define SIGALRM 14 /**< Alarm clock */
|
|
#define SIGTERM 15 /**< Terminated */
|
|
/* 16 not used */
|
|
#define SIGCHLD 17 /**< Child status changed */
|
|
#define SIGCONT 18 /**< Continued */
|
|
#define SIGSTOP 19 /**< Stop executing */
|
|
#define SIGTSTP 20 /**< Stopped */
|
|
#define SIGTTIN 21 /**< Stopped (read) */
|
|
#define SIGTTOU 22 /**< Stopped (write) */
|
|
#define SIGURG 23 /**< Urgent I/O condition */
|
|
#define SIGXCPU 24 /**< CPU time limit exceeded */
|
|
#define SIGXFSZ 25 /**< File size limit exceeded */
|
|
#define SIGVTALRM 26 /**< Virtual timer expired */
|
|
#define SIGPROF 27 /**< Profiling timer expired */
|
|
/* 28 not used */
|
|
#define SIGPOLL 29 /**< Pollable event occurred */
|
|
/* 30 not used */
|
|
#define SIGSYS 31 /**< Bad system call */
|
|
|
|
#define SIGRTMIN 32
|
|
#define SIGRTMAX (SIGRTMIN + RTSIG_MAX)
|
|
#define _NSIG (SIGRTMAX + 1)
|
|
|
|
BUILD_ASSERT(RTSIG_MAX >= 0);
|
|
|
|
typedef struct {
|
|
unsigned long sig[DIV_ROUND_UP(_NSIG, BITS_PER_LONG)];
|
|
} sigset_t;
|
|
|
|
#ifndef SIGEV_NONE
|
|
#define SIGEV_NONE 1
|
|
#endif
|
|
|
|
#ifndef SIGEV_SIGNAL
|
|
#define SIGEV_SIGNAL 2
|
|
#endif
|
|
|
|
#ifndef SIGEV_THREAD
|
|
#define SIGEV_THREAD 3
|
|
#endif
|
|
|
|
#ifndef SIG_BLOCK
|
|
#define SIG_BLOCK 0
|
|
#endif
|
|
#ifndef SIG_SETMASK
|
|
#define SIG_SETMASK 1
|
|
#endif
|
|
#ifndef SIG_UNBLOCK
|
|
#define SIG_UNBLOCK 2
|
|
#endif
|
|
|
|
#define SIG_DFL ((void *)0)
|
|
#define SIG_IGN ((void *)1)
|
|
#define SIG_ERR ((void *)-1)
|
|
|
|
#define SI_USER 1
|
|
#define SI_QUEUE 2
|
|
#define SI_TIMER 3
|
|
#define SI_ASYNCIO 4
|
|
#define SI_MESGQ 5
|
|
|
|
typedef int sig_atomic_t; /* Atomic entity type (ANSI) */
|
|
|
|
union sigval {
|
|
void *sival_ptr;
|
|
int sival_int;
|
|
};
|
|
|
|
struct sigevent {
|
|
void (*sigev_notify_function)(union sigval val);
|
|
pthread_attr_t *sigev_notify_attributes;
|
|
union sigval sigev_value;
|
|
int sigev_notify;
|
|
int sigev_signo;
|
|
};
|
|
|
|
typedef struct {
|
|
int si_signo;
|
|
int si_code;
|
|
union sigval si_value;
|
|
} siginfo_t;
|
|
|
|
struct sigaction {
|
|
void (*sa_handler)(int signno);
|
|
sigset_t sa_mask;
|
|
int sa_flags;
|
|
void (*sa_sigaction)(int signo, siginfo_t *info, void *context);
|
|
};
|
|
|
|
typedef void (*sighandler_t)(int signo);
|
|
|
|
unsigned int alarm(unsigned int seconds);
|
|
int kill(pid_t pid, int sig);
|
|
int pause(void);
|
|
int raise(int signo);
|
|
TOOLCHAIN_DISABLE_WARNING(TOOLCHAIN_WARNING_SHADOW);
|
|
int sigaction(int sig, const struct sigaction *ZRESTRICT act, struct sigaction *ZRESTRICT oact);
|
|
TOOLCHAIN_ENABLE_WARNING(TOOLCHAIN_WARNING_SHADOW);
|
|
int sigpending(sigset_t *set);
|
|
int sigsuspend(const sigset_t *sigmask);
|
|
int sigwait(const sigset_t *ZRESTRICT set, int *ZRESTRICT signo);
|
|
char *strsignal(int signum);
|
|
int sigemptyset(sigset_t *set);
|
|
int sigfillset(sigset_t *set);
|
|
int sigaddset(sigset_t *set, int signo);
|
|
int sigdelset(sigset_t *set, int signo);
|
|
int sigismember(const sigset_t *set, int signo);
|
|
sighandler_t signal(int signo, sighandler_t handler);
|
|
int sigprocmask(int how, const sigset_t *ZRESTRICT set, sigset_t *ZRESTRICT oset);
|
|
|
|
int pthread_sigmask(int how, const sigset_t *ZRESTRICT set, sigset_t *ZRESTRICT oset);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ZEPHYR_INCLUDE_POSIX_SIGNAL_H_ */
|