+I primi quattro campi sono quattro flag che controllano il comportamento del
+terminale; essi sono realizzati come maschera binaria, pertanto il tipo
+\type{tcflag\_t} è di norma realizzato con un intero senza segno di lunghezza
+opportuna. I valori devono essere specificati bit per bit, avendo cura di non
+modificare i bit su cui non si interviene.
+
+Il primo flag, \var{c\_iflag}, o flag di input, controlla le modalità
+dell'ingresso dei dati sul terminale come il controllo di parità, il controllo
+di flusso, la gestione dei caratteri speciali; un elenco dei vari bit, del
+loro significato e delle costanti utilizzate per identificarli è riportato in
+\tabref{tab:sess_termios_iflag}.
+
+\begin{table}[htb]
+ \footnotesize
+ \centering
+ \begin{tabular}[c]{|l|p{10cm}|}
+ \hline
+ \textbf{Valore}& \textbf{Significato}\\
+ \hline
+ \hline
+ \macro{IGNBRK} & Ignora le condizioni di \textit{BREAK} sull'input. Una
+ \textit{condizione di BREAK} è definita nel contesto di
+ una trasmissione seriale asincrona come una sequenza di
+ bit nulli più lunga di un byte. \\
+ \macro{BRKINT} & Se si è impostato \macro{IGNBRK} un \textit{BREAK} viene
+ comunque ignorato. Altrimenti se \macro{BRKINT} è
+ impostato il \textit{BREAK} causa lo scarico delle code,
+ e se il terminale è il terminale di controllo per un
+ gruppo in foreground anche l'invio di \macro{SIGINT} ai
+ processi di quest'ultimo. Se invece \macro{BRKINT} è
+ impostato un \textit{BREAK} viene letto come un carattere
+ \textit{NUL}, a meno che non sia settato \macro{PARMRK}
+ nel qual caso viene letto come la sequenza di caratteri
+ \texttt{0xFF 0x00 0x00}.\\
+ \macro{INPCK} & Abilita il controllo di parità in ingresso. Se non viene
+ impostato non viene fatto nessun controllo ed i caratteri
+ vengono passati in input direttamente.\\
+ \macro{IGNPAR} & Ignora gli errori di parità. Ha senso solo se si è
+ impostato \macro{INPCK}.\\
+ \macro{PARMRK} & Controlla come vengono riportati gli errori di parità. Ha
+ senso solo se \macro{INPCK} è impostato e \macro{IGNPAR}
+ no. Se impostato inserisce una sequenza \texttt{0xFF
+ 0x00} prima di ogni carattere che presenta errori di
+ parità, se non impostato un carattere con errori di
+ parità viene letto come uno \texttt{0x00}. Se un
+ carattere ha il valore \texttt{0xFF} e \macro{ISTRIP}
+ non è settato, per evitare ambiguità esso viene \\
+ \macro{ISTRIP} & .\\
+ \macro{INLCR} & .\\
+ \macro{IGNCR} & .\\
+ \macro{ICRNL} & .\\
+ \macro{IUCLC} & .\\
+ \macro{IXON} & .\\
+ \macro{IXANY} & .\\
+ \macro{IXOFF} & .\\
+ \macro{IMAXBEL}& .\\
+ \hline
+ \end{tabular}
+ \caption{Costanti identificative dei vari bit del flag di controllo
+ \var{c\_iflag} delle modalità di input di un terminale.}
+ \label{tab:sess_termios_iflag}
+\end{table}
+
+
+Il secondo flag, \var{c\_oflag}, o flag di output, controlla le modalità di
+output, come l'impacchettamento dei caratteri sullo schermo, la traslazione
+degli a capo, la conversione dei caratteri speciali; un elenco dei vari bit,
+del loro significato e delle costanti utilizzate per identificarli è riportato
+in \tabref{tab:sess_termios_oflag}.
+
+\begin{table}[htb]
+ \footnotesize
+ \centering
+ \begin{tabular}[c]{|l|p{10cm}|}
+ \hline
+ \textbf{Valore}& \textbf{Significato}\\
+ \hline
+ \hline
+ \macro{OPOST} & . \\
+ \macro{OLCUC} & .\\
+ \macro{ONLCR} & .\\
+ \macro{OCRNL} & .\\
+ \macro{ONOCR} & .\\
+ \macro{ONLRET} & .\\
+ \macro{OFILL} & . \\
+ \macro{OFDEL} & .\\
+ \macro{NLDLY} & .\\
+ \macro{CRDLY} & .\\
+ \macro{TABDLY} & .\\
+ \macro{BSDLY} & .\\
+ \macro{VTDLY} & .\\
+ \macro{FFDLY} & .\\
+ \hline
+ \end{tabular}
+ \caption{Costanti identificative dei vari bit del flag di controllo
+ \var{c\_oflag} delle modalità di outputdi un terminale.}
+ \label{tab:sess_termios_oflag}
+\end{table}
+
+Il terzo flag, \var{c\_cflag}, o flag di controllo è legato al funzionamento
+delle linee seriali permette di impostarne varie caratteristiche, come il
+numero di bit di stop, i settaggi della parità, il funzionamento del controllo
+di flusso; un elenco dei vari bit, del loro significato e delle costanti
+utilizzate per identificarli è riportato in \tabref{tab:sess_termios_cflag}.
+
+\begin{table}[htb]
+ \footnotesize
+ \centering
+ \begin{tabular}[c]{|l|p{10cm}|}
+ \hline
+ \textbf{Valore}& \textbf{Significato}\\
+ \hline
+ \hline
+ \macro{CBAUD} & . \\
+ \macro{CBAUDEX} & .\\
+ \macro{CSIZE} & .\\
+ \macro{CSTOPB} & .\\
+ \macro{CREAD} & .\\
+ \macro{PARENB} & .\\
+ \macro{PARODD} & . \\
+ \macro{HUPCL} & .\\
+ \macro{CLOCAL} & .\\
+ \macro{LOBLK} & .\\
+ \macro{CIBAUD} & .\\
+ \macro{CRTSCTS} & .\\
+ \hline
+ \end{tabular}
+ \caption{Costanti identificative dei vari bit del flag di controllo
+ \var{c\_cflag} delle modalità di controllo di un terminale.}
+ \label{tab:sess_termios_cflag}
+\end{table}
+
+
+Il quarto flag, \var{c\_lflag}, o flag locale, serve per modificare il
+funzionamento dell'interfaccia fra il driver e l'utente, come abilitare l'eco,
+controllare l'emissione dei segnali generati dal terminale, attivare i
+caratteri per il job control; un elenco dei vari bit, del loro significato e
+delle costanti utilizzate per identificarli è riportato in
+\tabref{tab:sess_termios_lflag}.
+
+\begin{table}[htb]
+ \footnotesize
+ \centering
+ \begin{tabular}[c]{|l|p{10cm}|}
+ \hline
+ \textbf{Valore}& \textbf{Significato}\\
+ \hline
+ \hline
+ \macro{ISIG} & . \\
+ \macro{ICANON} & .\\
+ \macro{XCASE} & .\\
+ \macro{ECHO} & .\\
+ \macro{ECHOE} & .\\
+ \macro{ECHOK} & .\\
+ \macro{ECHONL} & . \\
+ \macro{ECHOPRT} & .\\
+ \macro{ECHOKE} & .\\
+ \macro{DEFECHO} & .\\
+ \macro{FLUSHO} & .\\
+ \macro{NOFLSH} & .\\
+ \macro{TOSTOP} & .\\
+ \macro{PENDIN} & .\\
+ \macro{IEXTEN} & .\\
+ \hline
+ \end{tabular}
+ \caption{Costanti identificative dei vari bit del flag di controllo
+ \var{c\_lflag} delle modalità locali di un terminale.}
+ \label{tab:sess_termios_lflag}
+\end{table}
+
+
+
+