+\newenvironment{prototype}[2]
+{% defining what is done by \begin
+ \nobreak
+ \center
+ \begin{boxedminipage}[c]{14cm}
+ \footnotesize
+ \begin{description*}{}{}
+ \item \texttt{\#include <#1>}
+ \item \texttt{#2} \par
+% \begin{lstlisting}{}
+% #1
+% #2
+% \end{lstlisting}
+}
+{% defining what is done by \end
+% \end{list}
+% \par
+\end{description*}
+\end{boxedminipage}
+\vspace{6pt}
+\par
+\normalsize
+}
+\newenvironment{errlist}{\begin{basedescript}{\desclabelwidth{1.5cm}}}
+{\end{basedescript}}
+%
+% Slighty different envirnoment to be used for multi-header,
+% multi-functions boxed description
+%
+\newcommand{\headdecl}[1]{\item\texttt{\#include <#1>}}
+\newcommand{\funcdecl}[1]{\item\texttt{#1}\par}
+\newcommand{\bodydesc}[1]{\par \end{description*} #1
+ \begin{description*}{}{} \baselineskip=0pt
+ \item \vspace{-4pt}
+}
+%
+\newenvironment{functions}
+{% defining what is done by \begin
+ \nobreak
+ \center
+ \begin{boxedminipage}[c]{14cm}
+ \footnotesize
+ \begin{description*}{}{}
+}
+{% defining what is done by \end
+ \end{description*}
+ \end{boxedminipage}
+ \vspace{6pt}
+ \par
+ \normalsize
+%\break
+}
+
+%
+% Wrapper for shell command, functions, filenames, links,
+% variables, macros, and everything can be useul,
+%
+\newcommand{\cmd}[1]{\texttt{#1}} % shell command
+\newcommand{\code}[1]{\texttt{#1}} % for simple code
+
+\newcommand{\func}[1]{%
+\index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (funzione)}}\texttt{#1}%
+}
+
+\newcommand{\funcd}[1]{%
+\index{funzione!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (funzione)}!definizione di}\texttt{#1}%
+}
+
+\newcommand{\macro}[1]{%
+\index{macro!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
+}
+
+\newcommand{\errcode}[1]{%
+\index{errore!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (errore)}}\texttt{#1}%
+}
+
+\newcommand{\errval}[1]{\texttt{#1}} % value
+\newcommand{\var}[1]{\texttt{#1}} % variable
+\newcommand{\val}[1]{\texttt{#1}} % value
+
+\newcommand{\const}[1]{%
+\index{costante!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+} % constant name
+
+\newcommand{\direct}[1]{%
+\index{direttiva!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+} % constant name
+
+\newcommand{\file}[1]{\texttt{#1}} % file name
+\newcommand{\link}[1]{\texttt{#1}} % html link
+\newcommand{\ctyp}[1]{\texttt{#1}} % C standard type
+
+\newcommand{\headfile}[1]{%
+\index{file!include!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+} % header file name
+\newcommand{\procfile}[1]{%
+\index{file!filesystem~\texttt{/proc}!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+} % /proc file name
+\newcommand{\sysfile}[1]{%
+\index{file!di~sistema!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+} % system file name
+\newcommand{\conffile}[1]{%
+\index{file!di~configurazione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+} % configuration file name
+\newcommand{\procrelfile}[2]{%
+\index{file!filesystem~\texttt{/proc}!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+}
+
+
+\newcommand{\type}[1]{%
+\index{tipo!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (tipo)}}\texttt{#1}%
+} % system type
+\newcommand{\struct}[1]{%
+\index{struttura dati!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (struttura dati)}}\texttt{#1}%
+} % struttura dati
+\newcommand{\structd}[1]{%
+\index{struttura dati!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (struttura dati)}!definizione di}\texttt{#1}%
+} % struttura dati
+\newcommand{\param}[1]{\texttt{#1}} % function parameter
+\newcommand{\acr}[1]{\textsl{#1}} % acrostic (for pid, suid, ecc.)
+
+\newcommand{\itindex}[1]{%
+\index{#1@{\textit{#1}}}%
+}
+
+\newcommand{\itindbeg}[1]{%
+\index{#1@{\textit{#1}}|(}%
+}
+\newcommand{\itindend}[1]{%
+\index{#1@{\textit{#1}}|)}%
+}
+\newcommand{\itindsub}[2]{%
+\index{#1@{\textit{#1}}!\textit{#2}}%
+}