Inizio della revisione del formato per la suddivisione in due parti,
[gapil.git] / process.tex
index d3fe9c504020b81433a0c5b6fd372e919a8d72cf..df94444f153016202640e3ac052cbac9c53ecb80 100644 (file)
@@ -851,27 +851,47 @@ però non è standardizzata da POSIX e pertanto non è disponibile su tutte le
 versioni di kernel unix-like;\footnote{nel caso di Linux devono essere
   comunque definite le macro \macro{\_BSD\_SOURCE} e \macro{\_SVID\_SOURCE}.}
 il suo prototipo è:
 versioni di kernel unix-like;\footnote{nel caso di Linux devono essere
   comunque definite le macro \macro{\_BSD\_SOURCE} e \macro{\_SVID\_SOURCE}.}
 il suo prototipo è:
-\begin{functions}
-  \headdecl{unistd.h} 
-  \headdecl{sys/mman.h} 
+\begin{functions}
+  \headdecl{unistd.h} 
+  \headdecl{sys/mman.h} 
 
 
-  \funcdecl{int mincore(void *addr, size\_t length, unsigned char *vec)}
-  Ritorna lo stato delle pagine di memoria occupate da un processo.
+  \funcdecl{int mincore(void *addr, size\_t length, unsigned char *vec)}
+  Ritorna lo stato delle pagine di memoria occupate da un processo.
   
   
-  \bodydesc{La funzione ritorna 0 in caso di successo e $-1$ in caso di
-    errore, nel qual caso \var{errno} assumerà uno dei valori seguenti:
-  \begin{errlist}
-  \item[\errcode{ENOMEM}] o \param{addr} + \param{length} eccede la dimensione
-    della memoria usata dal processo o l'intervallo di indirizzi specificato
-    non è mappato.
-  \item[\errcode{EINVAL}] \param{addr} non è un multiplo delle dimensioni di
-    una pagina.
-  \item[\errcode{EFAULT}] \param{vec} punta ad un indirizzo non valido.
-  \item[\errcode{EAGAIN}] il kernel è temporaneamente non in grado di fornire
-    una risposta.
-  \end{errlist}
+%   \bodydesc{La funzione ritorna 0 in caso di successo e $-1$ in caso di
+%     errore, nel qual caso \var{errno} assumerà uno dei valori seguenti:
+%   \begin{errlist}
+%   \item[\errcode{ENOMEM}] o \param{addr} + \param{length} eccede la dimensione
+%     della memoria usata dal processo o l'intervallo di indirizzi specificato
+%     non è mappato.
+%   \item[\errcode{EINVAL}] \param{addr} non è un multiplo delle dimensioni di
+%     una pagina.
+%   \item[\errcode{EFAULT}] \param{vec} punta ad un indirizzo non valido.
+%   \item[\errcode{EAGAIN}] il kernel è temporaneamente non in grado di fornire
+%     una risposta.
+%   \end{errlist}
+% }
+% \end{functions}
+
+\begin{funcproto}{
+\fhead{unistd.h}
+\fhead{sys/mman.h}
+\fdecl{int mincore(void *addr, size\_t length, unsigned char *vec)}
+\fdesc{Ritorna lo stato delle pagine di memoria occupate da un processo.}
 }
 }
-\end{functions}
+{La funzione ritorna 0 in caso di successo e $-1$ in caso di errore, nel qual
+caso \var{errno} assumerà uno dei valori seguenti:
+\begin{errlist}
+   \item[\errcode{ENOMEM}] o \param{addr} + \param{length} eccede la dimensione
+     della memoria usata dal processo o l'intervallo di indirizzi specificato
+     non è mappato.
+   \item[\errcode{EINVAL}] \param{addr} non è un multiplo delle dimensioni di
+     una pagina.
+   \item[\errcode{EFAULT}] \param{vec} punta ad un indirizzo non valido.
+   \item[\errcode{EAGAIN}] il kernel è temporaneamente non in grado di fornire
+     una risposta.
+\end{errlist}}
+\end{funcproto}
 
 La funzione permette di ottenere le informazioni sullo stato della mappatura
 della memoria per il processo chiamante, specificando l'intervallo da
 
 La funzione permette di ottenere le informazioni sullo stato della mappatura
 della memoria per il processo chiamante, specificando l'intervallo da
@@ -960,16 +980,39 @@ fintanto che ci sarà almeno un processo che la blocca.
 Le funzioni per bloccare e sbloccare la \index{paginazione} paginazione di
 singole sezioni di memoria sono \funcd{mlock} e \funcd{munlock}; i loro
 prototipi sono:
 Le funzioni per bloccare e sbloccare la \index{paginazione} paginazione di
 singole sezioni di memoria sono \funcd{mlock} e \funcd{munlock}; i loro
 prototipi sono:
-\begin{functions}
-  \headdecl{sys/mman.h} 
+\begin{functions}
+  \headdecl{sys/mman.h} 
 
 
-  \funcdecl{int mlock(const void *addr, size\_t len)}
-  Blocca la paginazione su un intervallo di memoria.
+  \funcdecl{int mlock(const void *addr, size\_t len)}
+  Blocca la paginazione su un intervallo di memoria.
 
 
-  \funcdecl{int munlock(const void *addr, size\_t len)}
-  Rimuove il blocco della paginazione su un intervallo di memoria.
+  \funcdecl{int munlock(const void *addr, size\_t len)}
+  Rimuove il blocco della paginazione su un intervallo di memoria.
   
   
-  \bodydesc{Entrambe le funzioni ritornano 0 in caso di successo e $-1$ in
+%   \bodydesc{Entrambe le funzioni ritornano 0 in caso di successo e $-1$ in
+%     caso di errore, nel qual caso \var{errno} assumerà uno dei
+%     valori seguenti:
+%   \begin{errlist}
+%   \item[\errcode{ENOMEM}] alcuni indirizzi dell'intervallo specificato non
+%     corrispondono allo spazio di indirizzi del processo o si è ecceduto
+%     il numero massimo consentito di pagine bloccate.
+%   \item[\errcode{EINVAL}] \param{len} non è un valore positivo.
+%   \item[\errcode{EPERM}] con un kernel successivo al 2.6.9 il processo non è
+%     privilegiato e si un limite nullo per \const{RLIMIT\_MEMLOCK}.
+%   \end{errlist}
+%   e, per \func{mlock}, anche \errval{EPERM} quando il processo non ha i
+%   privilegi richiesti per l'operazione.}
+% \end{functions}
+
+\begin{funcproto}{
+  \fhead{sys/mman.h} 
+  \fdecl{int mlock(const void *addr, size\_t len)}
+  \fdesc{Blocca la paginazione su un intervallo di memoria.}
+
+  \fdecl{int munlock(const void *addr, size\_t len)}
+  \fdesc{Rimuove il blocco della paginazione su un intervallo di memoria.}
+  }
+{Entrambe le funzioni ritornano 0 in caso di successo e $-1$ in
     caso di errore, nel qual caso \var{errno} assumerà uno dei
     valori seguenti:
   \begin{errlist}
     caso di errore, nel qual caso \var{errno} assumerà uno dei
     valori seguenti:
   \begin{errlist}
@@ -982,7 +1025,8 @@ prototipi sono:
   \end{errlist}
   e, per \func{mlock}, anche \errval{EPERM} quando il processo non ha i
   privilegi richiesti per l'operazione.}
   \end{errlist}
   e, per \func{mlock}, anche \errval{EPERM} quando il processo non ha i
   privilegi richiesti per l'operazione.}
-\end{functions}
+\end{funcproto}
+
 
 Le due funzioni permettono rispettivamente di bloccare e sbloccare la
 \index{paginazione} paginazione per l'intervallo di memoria specificato dagli
 
 Le due funzioni permettono rispettivamente di bloccare e sbloccare la
 \index{paginazione} paginazione per l'intervallo di memoria specificato dagli
@@ -1360,9 +1404,9 @@ ritornato il carattere \texttt{':'}, infine se viene incontrato il valore
 \texttt{'-{}-'} la scansione viene considerata conclusa, anche se vi sono altri
 elementi di \param{argv} che cominciano con il carattere \texttt{'-'}.
 
 \texttt{'-{}-'} la scansione viene considerata conclusa, anche se vi sono altri
 elementi di \param{argv} che cominciano con il carattere \texttt{'-'}.
 
-\begin{figure}[htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15.6cm}
+  \begin{minipage}[c]{\codesamplewidth}
   \includecodesample{listati/option_code.c}
   \end{minipage}
   \normalsize
   \includecodesample{listati/option_code.c}
   \end{minipage}
   \normalsize
@@ -2111,9 +2155,8 @@ seconda di come i singoli bit vengono aggregati per formare le variabili
 intere (ed in genere in diretta corrispondenza a come sono poi in realtà
 cablati sui bus interni del computer).
 
 intere (ed in genere in diretta corrispondenza a come sono poi in realtà
 cablati sui bus interni del computer).
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[height=3cm]{img/endianess}
+\begin{figure}[!htb]
+  \centering \includegraphics[height=3cm]{img/endianess}
   \caption{Schema della disposizione dei dati in memoria a seconda della
     \textit{endianess}.}
   \label{fig:sock_endianess}
   \caption{Schema della disposizione dei dati in memoria a seconda della
     \textit{endianess}.}
   \label{fig:sock_endianess}
@@ -2178,9 +2221,9 @@ in genere resta sempre lo stesso,\footnote{su architettura PowerPC è possibile
   cambiarlo, si veda sez.~\ref{sec:process_prctl}.} anche quando il processore
 permetterebbe di eseguire questi cambiamenti.
 
   cambiarlo, si veda sez.~\ref{sec:process_prctl}.} anche quando il processore
 permetterebbe di eseguire questi cambiamenti.
 
-\begin{figure}[htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
     \includecodesample{listati/endian.c}
   \end{minipage} 
   \normalsize
     \includecodesample{listati/endian.c}
   \end{minipage} 
   \normalsize