Skip to content

rt_sigreturn

Implemented in Antinomie 0.7.0 · Syscall list

long rt_sigreturn(void);
Number (x86-64) 15
ABI 64
Kernel entry point sys_rt_sigreturn

This is the raw kernel prototype from the pinned Linux 6.12.94 schema, not the libc wrapper.

Entered by the signal trampoline to leave a signal handler and restore the interrupted context from the signal frame. It is never called directly by programs.

The call takes no arguments.

On success: the restored rax of the interrupted code.

In an Antinomie trace the Return column and the ret filter field show the raw kernel return value. On failure that is the negative errno, for example -2 for ENOENT, not the -1 plus errno that the libc wrapper gives. syscall.errno holds the positive errno and syscall.success is false.

sigreturn(2) on man7.org

Coverage mark: Implemented. All arguments are plain values, recorded as the raw argument words at entry. There is no pointee to copy and no known gap.

Every call is recorded as an Entry record (the six argument words and the pointees copied at entry) and an Exit record (the return value and the pointees copied at exit).

  • rt_sigreturn has no pointer argument. Its input is the signal frame on the user stack: context.rt_sigframe (440 bytes), context.fpstate (512 bytes) and, when the kernel would accept it, context.fpstate.xstate. These are recorded at entry.

context.rt_sigframe, context.fpstate, context.fpstate.xstate. When and how each is recorded: Not documented yet.

  • Result: ret, syscall.errno, syscall.success, syscall.duration_ns.
  • Argument words: none; args.0 to args.5 by position.

See Syscall Trace filter for the full syntax.

For what the capture statuses mean, see Capture statuses. For what is never recorded, see Known gaps.