Riforma delle macro per le funzioni, si riformatta un bel po' di roba.
[gapil.git] / process.tex
index f0bc1595db69c51a29690fc133d149599a05fd2b..42781334410eabf708cd15968f1355cd99a8419f 100644 (file)
@@ -601,21 +601,22 @@ avere con le variabili automatiche, su cui torneremo in
 L'uso di queste funzioni è necessario solo quando si voglia accedere alle
 analoghe system call a cui fanno da interfaccia (ad esempio per implementare
 una propria versione di \func{malloc}. Le funzioni sono:
-\begin{prototype}{unistd.h}{int *brk(void end\_data\_segment)}
+\begin{functions}
+  \headdecl{unistd.h}
+  \funcdecl{int *brk(void end\_data\_segment)}
   Sposta la fine del segmento dei dati all'indirizzo specificato da
   \var{end\_data\_segment}.
   
   La funzione restituisce 0 in caso di successo e -1 in caso di fallimento,
   nel qual caso \var{errno} viene settata a \macro{ENOMEM}.
-\end{prototype}
-\begin{prototype}{unistd.h}{int *sbrk(ptrdiff\_t increment)}
+  \funcdecl{int *sbrk(ptrdiff\_t increment)}
   Incrementa lo spazio dati di un programma di \var{increment}. Un valore
   zero restituisce l'attuale posizione della fine del segmento dati.
   
   La funzione restituisce il puntatore all'inizio della nuova zona di memoria
   allocata in caso di successo e \macro{NULL} in caso di fallimento, nel qual
   caso \macro{errno} viene settata a \macro{ENOMEM}.
-\end{prototype}
+\end{functions}
 
 Queste funzioni sono state deliberatamente escluse dallo standard POSIX.1 e
 per i programmi normali è opportuno usare le funzioni di allocazione standard
@@ -708,28 +709,23 @@ Le funzioni per bloccare e sbloccare singole sezioni di memoria sono
   \var{len} byte. Tutte le pagine che contengono una parte dell'intervallo
   sono mantenute in RAM per tutta la durata del blocco.
 
-  La funzione ritorna 0 in caso di successo e -1 in caso di errore, nel qual
-  caso \var{errno} è settata ad uno dei valori seguenti:
-  \begin{errlist}
-  \item \macro{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 \macro{EPERM} il processo non ha i privilegi richiesti per
-    l'operazione. 
-  \item \macro{EINVAL} \var{len} non è un valore positivo.
-  \end{errlist}
-  
   \funcdecl{int munlock(const void *addr, size\_t len)}
   Alloca \var{size} byte nello heap. La memoria non viene inizializzata.
 
-  Sblocca l'intervallo di memoria da \var{addr} per \var{len} byte.  La
-  funzione ritorna 0 in caso di successo e -1 in caso di errore, nel qual caso
-  \var{errno} è settata ad uno dei valori seguenti:
+  Sblocca l'intervallo di memoria da \var{addr} per \var{len} byte.  
+
+  
+  \bodydesc{Entrambe le funzioni ritornano 0 in caso di successo e -1 in
+    caso di errore, nel qual caso \var{errno} è settata ad uno dei
+    valori seguenti:
   \begin{errlist}
-  \item \macro{ENOMEM} alcuni indirizzi dell'intervallo specificato non
-    corrispondono allo spazio di indirizzi del processo.
-  \item \macro{EINVAL} \var{len} non è un valore positivo.
+  \item[\macro{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[\macro{EINVAL}] \var{len} non è un valore positivo.
   \end{errlist}
+  e, per \func{mlock}, anche \macro{EPERM} quando il processo non ha i
+  privilegi richiesti per l'operazione.}
 \end{functions}
 
 Altre due funzioni, \func{mlockall} e \func{munlockall}, consentono di
@@ -742,12 +738,11 @@ queste funzioni sono:
   \funcdecl{int mlockall(int flags)}
   Blocca la paginazione per lo spazio di indirizzi del processo corrente. 
   
-  Codici di ritorno ed errori sono gli stessi di \func{mlock}.
-
   \funcdecl{int munlockall(void)}
   Sblocca la paginazione per lo spazio di indirizzi del processo corrente. 
   
-  Codici di ritorno ed errori sono gli stessi di \func{munlock}.
+  \bodydesc{Codici di ritorno ed errori sono gli stessi di \func{mlock}
+    e \func{munlock}.}
 \end{functions}
 
 Il parametro \var{flags} di \func{mlockall} permette di controllarne il