signal.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <signal_numbers.h>
  8. #include <sys/types.h>
  9. __BEGIN_DECLS
  10. typedef void (*__sighandler_t)(int);
  11. typedef __sighandler_t sighandler_t;
  12. typedef uint32_t sigset_t;
  13. typedef uint32_t sig_atomic_t;
  14. union sigval {
  15. int sival_int;
  16. void* sival_ptr;
  17. };
  18. typedef struct siginfo {
  19. int si_signo;
  20. int si_code;
  21. pid_t si_pid;
  22. uid_t si_uid;
  23. void* si_addr;
  24. int si_status;
  25. union sigval si_value;
  26. } siginfo_t;
  27. struct sigaction {
  28. union {
  29. void (*sa_handler)(int);
  30. void (*sa_sigaction)(int, siginfo_t*, void*);
  31. };
  32. sigset_t sa_mask;
  33. int sa_flags;
  34. };
  35. int kill(pid_t, int sig);
  36. int killpg(int pgrp, int sig);
  37. sighandler_t signal(int sig, sighandler_t);
  38. int pthread_sigmask(int how, const sigset_t* set, sigset_t* old_set);
  39. int sigaction(int sig, const struct sigaction* act, struct sigaction* old_act);
  40. int sigemptyset(sigset_t*);
  41. int sigfillset(sigset_t*);
  42. int sigaddset(sigset_t*, int sig);
  43. int sigdelset(sigset_t*, int sig);
  44. int sigismember(const sigset_t*, int sig);
  45. int sigprocmask(int how, const sigset_t* set, sigset_t* old_set);
  46. int sigpending(sigset_t*);
  47. int sigsuspend(const sigset_t*);
  48. int raise(int sig);
  49. int getsignalbyname(const char*);
  50. const char* getsignalname(int);
  51. extern const char* sys_siglist[NSIG];
  52. #define SIG_DFL ((__sighandler_t)0)
  53. #define SIG_ERR ((__sighandler_t)-1)
  54. #define SIG_IGN ((__sighandler_t)1)
  55. #define SA_NOCLDSTOP 1
  56. #define SA_NOCLDWAIT 2
  57. #define SA_SIGINFO 4
  58. #define SA_ONSTACK 0x08000000
  59. #define SA_RESTART 0x10000000
  60. #define SA_NODEFER 0x40000000
  61. #define SA_RESETHAND 0x80000000
  62. #define SA_NOMASK SA_NODEFER
  63. #define SA_ONESHOT SA_RESETHAND
  64. #define SIG_BLOCK 0
  65. #define SIG_UNBLOCK 1
  66. #define SIG_SETMASK 2
  67. #define CLD_EXITED 0
  68. #define CLD_KILLED 1
  69. #define CLD_DUMPED 2
  70. #define CLD_TRAPPED 3
  71. #define CLD_STOPPED 4
  72. #define CLD_CONTINUED 5
  73. __END_DECLS