Tolto un TODO e inizio della risistemazione di timerfd.
authorSimone Piccardi <piccardi@gnulinux.it>
Thu, 24 Apr 2014 17:47:03 +0000 (17:47 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Thu, 24 Apr 2014 17:47:03 +0000 (17:47 +0000)
fileadv.tex
system.tex

index 48766b10a8116ca759c88440f88f4dccf14d1245..e37ae0e9357dcc82da4e153c455fbe5188020666 100644 (file)
@@ -2449,7 +2449,7 @@ prototipo è:
 \fhead{sys/timerfd.h}
 \fdecl{int timerfd\_create(int clockid, int flags)}
 
-\fdesc{Crea un timer associato ad un file descriptor per la notifica.}
+\fdesc{Crea un timer associato ad un file descriptor di notifica.}
 }
 
 {La funzione ritorna un numero di file descriptor in caso di successo e $-1$
@@ -2526,7 +2526,7 @@ di \func{timer\_settime} per la nuova interfaccia; questa è
                            const struct itimerspec *new\_value,\\
 \phantom{int timerfd\_settime(}struct itimerspec *old\_value)}
 
-\fdesc{Crea un timer associato ad un file descriptor per la notifica.}
+\fdesc{Arma un timer associato ad un file descriptor di notifica.}
 }
 
 {La funzione ritorna un numero di file descriptor in caso di successo e $-1$
@@ -2552,24 +2552,25 @@ argomenti sono del tutto analoghi a quelli della omologa funzione
 
 I valori ed il significato di questi argomenti sono gli stessi che sono già
 stati illustrati in dettaglio in sez.~\ref{sec:sig_timer_adv} e non staremo a
-ripetere quanto detto in quell'occasione;\footnote{per brevità si ricordi che
-  con \param{new\_value.it\_value} si indica la prima scadenza del timer e
-  con \param{new\_value.it\_interval} la sua periodicità.}  l'unica differenza
+ripetere quanto detto in quell'occasione; per brevità si ricordi che
+con \param{new\_value.it\_value} si indica la prima scadenza del timer e
+con \param{new\_value.it\_interval} la sua periodicità.  L'unica differenza
 riguarda l'argomento \param{flags} che serve sempre ad indicare se il tempo di
 scadenza del timer è da considerarsi relativo o assoluto rispetto al valore
 corrente dell'orologio associato al timer, ma che in questo caso ha come
-valori possibili rispettivamente soltanto $0$ e
-\const{TFD\_TIMER\_ABSTIME}.\footnote{anche questo valore, che è l'analogo di
-  \const{TIMER\_ABSTIME} è l'unico attualmente possibile per \param{flags}.}
+valori possibili rispettivamente soltanto $0$ e \const{TFD\_TIMER\_ABSTIME}
+(l'analogo di \const{TIMER\_ABSTIME}).
 
-L'ultima funzione prevista dalla nuova interfaccia è \funcd{timerfd\_gettime},
-che è l'analoga di \func{timer\_gettime}, il suo prototipo è:
+L'ultima funzione di sistema prevista dalla nuova interfaccia è
+\funcd{timerfd\_gettime}, che è l'analoga di \func{timer\_gettime}, il suo
+prototipo è:
 
 \begin{funcproto}{
 \fhead{sys/timerfd.h}
 \fdecl{int timerfd\_gettime(int fd, struct itimerspec *curr\_value)}
 
-\fdesc{Crea un timer associato ad un file descriptor per la notifica.}
+\fdesc{Legge l'impostazione di un timer associato ad un file descriptor di
+  notifica.} 
 }
 
 {La funzione ritorna un numero di file descriptor in caso di successo e $-1$
@@ -2581,19 +2582,33 @@ che è l'analoga di \func{timer\_gettime}, il suo prototipo è:
     con \func{timerfd\_create}.
   \item[\errcode{EFAULT}] o \param{curr\_value} non è un puntatore valido.
   \end{errlist}
-ed inoltre      nel suo significato generico.
-  
 }  
 \end{funcproto}
 
-Questo infatti diverrà pronto in lettura per tutte le varie funzioni dell'I/O
-multiplexing in presenza di una o più scadenze del timer ad esso associato.
+La funzione consente di rileggere le impostazioni del timer associato al file
+descriptor \param{fd} nella struttura \struct{itimerspec} puntata
+da \param{curr\_value}. Il campo \var{it\_value} riporta il tempo rimanente
+alla prossima scadenza, che viene sempre espresso in forma relativa
+(indipendentemente dal fatto che si sia specificato
+\const{TFD\_TIMER\_ABSTIME} quando lo si è armato). Un valore nullo (di
+entrambi i campi di \var{it\_value}) indica che il timer non è stato ancora
+armato. Il campo \var{it\_interval} riporta la durata dell'intervallo di
+ripetizione del timer, ed un valore nulle (di entrambi i campi) indica che il
+timer è stato impostato per scadere una sola volta.
+
+Il timer creato con \func{timerfd\_create} notificherà la sua scadenza
+rendendo pronto per la lettura il file descriptor ad esso associato, che
+pertanto potrà essere messo sotto controllo con una qualunque delle varie
+funzioni dell'I/O multiplexing. Esso infatti risulterà pronto soltanto in
+presenza di una o più scadenze del timer cui è associato. 
 
 Inoltre sarà possibile ottenere il numero di volte che il timer è scaduto
 dalla ultima impostazione che può essere usato per leggere le notifiche delle
 scadenze dei timer. Queste possono essere ottenute leggendo in maniera
 ordinaria il file descriptor con una \func{read},
 
+Una volta che 
+
 
 % TODO trattare qui eventfd, timerfd introdotte con il 2.6.22 
 % timerfd è stata tolta nel 2.6.23 e rifatta per bene nel 2.6.25
index 81315e647e90bc720623057f58297921187d46e1..1f0d65a00f826b408fa88aa1f59ea07a677708f1 100644 (file)
@@ -1783,11 +1783,6 @@ messaggi vuoti che comunque richiede delle risorse di gestione. Questa risorsa
   kernel 2.6.25 per impedire che un processo \textit{real-time} possa bloccare
   il sistema.
 
-% TODO trattare i seguenti...
-% aggiungere i limiti che mancano come RLIMIT_RTTIME introdotto con il 2.6.25
-% vedi file include/asm-generic/resource.h
-
-
 \item[\const{RLIMIT\_SIGPENDING}] Questa risorsa indica il numero massimo di
   segnali che possono essere mantenuti in coda per ciascun utente,
   identificato per \ids{UID} reale. Il limite comprende sia i segnali normali