+\fBsigreturn\fP() はシグナルハンドラーを実装するためだけに存在している。 これらを直接呼び出すのは\fB決して\fP行うべきではない。
+\fBsigreturn\fP() に渡される引き数の詳細はアーキテクチャーにより異なる。
+
+.\" See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
+.\" sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
+かつて、 UNIX システムでは signal trampoline コードがユーザースタックに置かれていた。 今日では、
+ユーザースタックのページは保護され、 コードの実行は禁止されている。 したがって、 現代の Linux システムでは、 アーキテクチャー依存ではあるが、
+signal trampoline コードは \fBvdso\fP(7) 内もしくは C ライブラリ内に置かれる。 後者の場合、 C ライブラリは
+trampoline code の場所を \fBsigaction\fP(2) に渡される \fIsigaction\fP 構造体の \fIsa_restorer\fP
+フィールドを使って渡し、 \fIsa_flags\fP フィールドの \fBSA_RESTORER\fP フラグをセットする。
+
+保存されたプロセスコンテキスト情報は \fIucontext_t\fP構造体に置かれる (\fI<sys/ucontext.h>\fP 参照)。
+この構造体は、 \fBSA_SIGINFO\fP フラグを付けて設定されたシグナルハンドラーの第 3 引き数としてシングルハンドラー内で参照できる。
+
+他のいくつかの UNIX システムでは、 signal trampoline の扱いは少し異なる。 特に、 いくつかのシステムでは、
+ユーザーモードに戻る際に、 カーネルは制御を (シグナルハンドラーではなく) trampoline に渡し、 trampoline
+コードがシグナルハンドラーを呼び出す (その後ハンドラーが返ると \fBsigreturn\fP() を呼び出す)。