
`man 3 signal`'s declaration has a face _only a mother could love_. sighandler_t and __sighandler_t are not defined in the C standard, or POSIX. They are helpful typedefs provided by glibc and the Linux kernel UAPI headers respectively since working with function pointers' syntax can be painful. But we should not rely on them; in C++ we have `auto*` and `using` statements. Remove the proxy header, and only include a typedef for sighandler_t when targeting Linux, for compatibility with glibc. Fixes: #125598
90 lines
1.9 KiB
YAML
90 lines
1.9 KiB
YAML
header: signal.h
|
|
header_template: signal.h.def
|
|
macros: []
|
|
types:
|
|
- type_name: pid_t
|
|
- type_name: sig_atomic_t
|
|
- type_name: sighandler_t
|
|
- type_name: siginfo_t
|
|
- type_name: sigset_t
|
|
- type_name: stack_t
|
|
- type_name: struct_sigaction
|
|
- type_name: union_sigval
|
|
enums: []
|
|
objects: []
|
|
functions:
|
|
- name: kill
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: pid_t
|
|
- type: int
|
|
- name: raise
|
|
standards:
|
|
- stdc
|
|
return_type: int
|
|
arguments:
|
|
- type: int
|
|
- name: sigaction
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: int
|
|
- type: const struct sigaction *__restrict
|
|
- type: struct sigaction *__restrict
|
|
- name: sigaddset
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: sigset_t *
|
|
- type: int
|
|
- name: sigaltstack
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: const stack_t *__restrict
|
|
- type: stack_t *__restrict
|
|
- name: sigdelset
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: sigset_t *
|
|
- type: int
|
|
- name: sigemptyset
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: sigset_t *
|
|
- name: sigfillset
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: sigset_t *
|
|
- name: signal
|
|
standards:
|
|
- stdc
|
|
# May the Geneva Convention have mercy on my soul... Why this insanity?
|
|
# Well: signal returns a function pointer to a function with no return
|
|
# value and which accepts an int. The parameter list appears on the far
|
|
# right of the declaration. i.e.
|
|
# void (*signal(int, void (*)(int)))(int);
|
|
return_type: void (*
|
|
arguments:
|
|
- type: int
|
|
- type: void (*)(int)))(int
|
|
- name: sigprocmask
|
|
standards:
|
|
- POSIX
|
|
return_type: int
|
|
arguments:
|
|
- type: int
|
|
- type: const sigset_t *__restrict
|
|
- type: sigset_t *__restrict
|