X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=signal.tex;fp=signal.tex;h=2ec17612edf3fb27c13db82e0df8957c3d3169b8;hp=174ca0b0eeb19106878fec34ff6af1f3ef29df3c;hb=4fd7e210cdb76c7e88deba4f2283dc6b8931a8d9;hpb=de86c958d5fa60ee258ac7516839d9a636f99160 diff --git a/signal.tex b/signal.tex index 174ca0b..2ec1761 100644 --- a/signal.tex +++ b/signal.tex @@ -2126,6 +2126,11 @@ tab.~\ref{tab:sig_sa_flag}. call} quando vengono interrotte dal suddetto segnale, riproduce cioè il comportamento standard di BSD.\\ + \constd{SA\_RESTORER} & Ad uso delle implementazioni delle liberie del C, + non deve essere usato nelle applicazioni, serve ad + indicare che il campo \var{sa\_restorer} contiene + l'indirizzo di un cosiddetto \textit{signal + trampoline}.\footnotemark \\ \constd{SA\_SIGINFO} & Deve essere specificato quando si vuole usare un gestore in forma estesa usando \var{sa\_sigaction} al posto di @@ -2136,6 +2141,13 @@ tab.~\ref{tab:sig_sa_flag}. \label{tab:sig_sa_flag} \end{table} +\footnotetext{il \itindex{signal~trampoline} \textit{signal trampoline} è il + codice usato per tornare da un gestore di segnali, che originariamente + veniva inserito nello \textit{stack}, ma i kernel recenti come misura di + sicurezza impediscono l'esecuzione di codice dallo stack, per cui questo + codice viene spostato altrove (ad esempio nella libreria del C) ed il suo + indirizzo viene indicato al kernel nel campo \var{sa\_restorer}.} + Come si può notare in fig.~\ref{fig:sig_sigaction} \func{sigaction} permette di utilizzare due forme diverse di gestore,\footnote{la possibilità è prevista dallo standard POSIX.1b, ed è stata aggiunta nei kernel della serie 2.1.x @@ -3834,10 +3846,10 @@ tipo \type{sigjmp\_buf}, è assolutamente identica a \func{longjmp}. \label{sec:sig_pid_fd} -% TODO: trattare (qui?) pidfd_send_signal() introdotta con il kernel 5.1 vedi +% TODO: trattare (qui? oppure sopra in "Ulteriori funzioni di gestione?) +% pidfd_send_signal() introdotta con il kernel 5.1 vedi % https://lwn.net/Articles/784831/, https://lwn.net/Articles/773459/ e -% https://lwn.net/Articles/801319/ -% oppure sopra in "Ulteriori funzioni di gestione" +% https://lwn.net/Articles/801319/ % TODO: Nuova subsection sui pidfd, e le funzioni correlate, in particolare: % trattare pidfd_send_signal, aggiunta con il kernel 5.1 (vedi @@ -3847,7 +3859,7 @@ tipo \type{sigjmp\_buf}, è assolutamente identica a \func{longjmp}. % trattare pure pidfd_open() (vedi https://lwn.net/Articles/789023/) per % ottere un pid fd pollabile aggiunta con il kernel 5.3 % man pidfd_send_signal su le versioni più recenti della man pages - +% trattare pidfd_getfd aggiunta con il kernel 5.6