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
