+Si sono riportati i possibili valori di \param{op}, con una breve spiegazione
+della relativa operazione e a come vengono usati gli altri due argomenti, in
+tab.~\ref{tab:klogctl_operation}. Come si può notare la funzione è una sorta
+di interfaccia comune usata per eseguire operazioni completamente diverse fra
+loro.
+
+L'operazione relativa al valore 2 \param{op} consente di leggere un messaggio
+dal cosiddetto \textit{log} del kernel. Eseguire questa operazione è
+equivalente ad eseguire una lettura dal file
+\procfile{/proc/kmsg}:\footnote{in realtà è vero l'opposto, è questa funzione
+ che viene eseguita quando si legge da questo file.} se non vi sono messaggi
+la funzione blocca in attesa di dati e ritorna soltanto quando questi
+diventino disponibili. In tal caso verranno letti \param{len} byte
+su \param{buffer} ed estratti dal log;\footnote{i dati del \textit{log} del
+ kernel cioè si possono leggere una volta sola, se più processi eseguono
+ l'operazione di lettura soltanto uno riceverà i dati, a meno che completata
+ la propria operazione di lettura non restino altri messaggi pendenti che a
+ questo punto potrebbero essere letti da un altro processo in attesa.} il
+valore di ritorno di \func{klogctl} corrisponderà al numero di byte ottenuti.
+
+Se invece si usa l'operazione 3 i dati vengono letti dal buffer circolare
+usato da \texttt{printk}, che mantiene tutti i messaggi stampati dal kernel
+fino al limite delle sue dimensioni, in questo caso i messaggi possono essere
+letti più volte. Usando invece l'operazione 4 si richiede, dopo aver fatto la
+lettura, di cancellare il buffer circolare, che risulterà vuoto ad una lettura
+successiva. Anche con queste operazioni \param{len} indica il numero di byte
+da leggere e \param{buffer} il buffer dover leggerli, e la funzione ritorna il
+numero di byte effettivamente letti.
+
+Le operazioni corrispondenti ai valori 6, 7 ed 8 fanno riferimento ai
+parametri del kernel gestiti con \procfile{/proc/sys/kernel/printk}