Aggiornamenti + alcune sockopt di IP
[gapil.git] / macro.tex
index c2ef967920a08819b51c1e1bc259ee8f642b65d5..de2fa060d078456cdb1eb9f84e82cbfbb9885e79 100644 (file)
--- a/macro.tex
+++ b/macro.tex
@@ -1,39 +1,34 @@
+%% macro.tex
+%%
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
+%% copy, distribute and/or modify this document under the terms of the GNU Free
+%% Documentation License, Version 1.1 or any later version published by the
+%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
+%% with no Front-Cover Texts, and with no Back-Cover Texts.  A copy of the
+%% license is included in the section entitled "GNU Free Documentation
+%% License".
+%%
 %
-% Defining some commands to manipulate counter to avoid ude of 
-% \label and \ref commands (and related problem to remeber the 
-% used labels) to refer nearest objects
-%
-%
-\newcounter{usercount}       % define a new counter for internal use
 %
-% Figure commands
+% Defining some special character for use inside typewriter 
+% text without using the verbatim environment
 %
-\newcommand{\curfig}{fig.~\thefigure}
+\def\tild{\char'176}
+\def\bslash{\char'134}
+\def\circonf{\char'136}
+\def\invap{\char'140}
 
-\newcommand{\nfig}{%
-\setcounter{usercount}{\value{figure}}%
-\addtocounter{usercount}{1}%
-fig.~\thechapter.\theusercount}
-
-\newcommand{\pfig}{%
-\setcounter{usercount}{\value{figure}}%
-\addtocounter{usercount}{-1}%
-fig.~\thechapter.\theusercount}
+\newcommand{\includecodesnip}[1]{\lstinputlisting[stepnumber=0,xleftmargin=\parindent,frame=]{#1}}{}
+\newcommand{\includestruct}[1]{\lstinputlisting[stepnumber=0]{#1}}{}
+\newcommand{\includecodesample}[1]{\lstinputlisting{#1}}{}
 
-\newcommand{\figref}[1]{fig.~\ref{#1}}
 %
-% Tables commands
+% Defining some commands to manipulate counter to avoid ude of 
+% \label and \ref commands (and related problem to remeber the 
+% used labels) to refer nearest objects
+%
 %
-\newcommand{\curtab}{tab.~\thetable}
-\newcommand{\ntab}{%
-\setcounter{usercount}{\value{table}}%
-\addtocounter{usercount}{1}%
-tab.~\thechapter.\theusercount}
-\newcommand{\ptab}{%
-\setcounter{usercount}{\value{table}}%
-\addtocounter{usercount}{-1}%
-tab.~\thechapter.\theusercount}
-\newcommand{\tabref}[1]{tab.~\ref{#1}}
+\newcounter{usercount}       % define a new counter for internal use
 %
 % equations commands
 %
@@ -56,69 +51,335 @@ tab.~\thechapter.\theusercount}
     \end{minipage}
 }
 %
-% Command for section and chapters
-%
-\newcommand{\capref}[1]{cap.~\ref{#1}}
-\newcommand{\secref}[1]{sez.~\ref{#1}}
-%
 % Macro to create a special environment for function prototypes
 % boxed description
 %
 \newenvironment{prototype}[2]
 {% defining what is done by \begin
+  \nobreak
   \center
+  \begin{boxedminipage}[c]{14cm}
   \footnotesize
-  \begin{minipage}[c]{14cm}
-    \par \texttt{\#include <#1>}
-%    \par \ 
-    \par \texttt{#2}
+    \begin{description*}{}{} 
+    \item \texttt{\#include <#1>}
+    \item \texttt{#2} \par
 %   \begin{lstlisting}{}
 % #1
 % #2
 %   \end{lstlisting}
-  \begin{list}{}{} 
-    \item 
 }
 {% defining what is done by \end
-  \end{list} 
-  \par 
-\par \texttt{ }
-\end{minipage} 
-\normalsize 
+%  \end{list} 
+%  \par 
+\end{description*}
+\end{boxedminipage}
+\vspace{6pt}
 \par
+\normalsize 
 }
-\newenvironment{errlist}{\begin{description}}{\end{description}}
-
+\newenvironment{errlist}{\begin{basedescript}{\desclabelwidth{1.0cm}}}
+{\end{basedescript}}
 %
-% Slighty different envirnoment to be used for multi-header, 
+% Slighty different environment 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
-   \footnotesize
-  \begin{minipage}[c]{14cm}
-  \begin{description}{}{} 
-
+    \begin{boxedminipage}[c]{14cm}
+      \footnotesize
+    \begin{description*}{}{} 
 }
 {% defining what is done by \end
-  \end{description} 
-  \par 
-\par \texttt{ }
-\end{minipage} 
-\normalsize 
-\par
+      \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}}
-\newcommand{\func}[1]{\texttt{#1}}
-\newcommand{\macro}[1]{\texttt{#1}}
-\newcommand{\var}[1]{\texttt{#1}}
-\newcommand{\file}[1]{\texttt{#1}}
-\newcommand{\link}[1]{\texttt{#1}}
+\newcommand{\cmd}[1]{\texttt{#1}}     % shell command
+\newcommand{\code}[1]{\texttt{#1}}    % for simple code
+
+\newcommand{\myfunc}[1]{\texttt{#1}}    % for my functions
+
+\newcommand{\func}[1]{%
+\texttt{#1}%
+%\index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (funzione)}}\texttt{#1}%
+}
+
+\newcommand{\funcd}[1]{%
+\index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{funzione!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (funzione)}!definizione di}\texttt{#1}%
+}
+\newcommand{\funcm}[1]{%
+\index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{funzione!{#1}@{{\tt {#1}}}!menzione di}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (funzione)}!definizione di}\texttt{#1}%
+}
+
+\newcommand{\macro}[1]{%
+\texttt{#1}%
+%\index{macro!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
+}
+
+\newcommand{\macrod}[1]{%
+\index{macro!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
+}
+
+\newcommand{\macrobeg}[1]{%
+\index{macro!{#1}@{{\tt {#1}}}|(}%
+%\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
+}
+\newcommand{\macroend}[1]{%
+\index{macro!{#1}@{{\tt {#1}}}|)}%
+%\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
+}
+
+\newcommand{\errcode}[1]{%
+\texttt{#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{\signal}[1]{%
+\texttt{#1}%
+%\index{segnale!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+}                                     % constant name
+
+\newcommand{\signald}[1]{%
+\index{segnale!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+}                                     % constant name
+
+\newcommand{\constd}[1]{%
+\index{costante!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+}                                     % constant name
+
+\newcommand{\constbeg}[1]{%
+\index{costante!{#1}@{{\tt {#1}}}|(}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+}                                     % constant name
+\newcommand{\constend}[1]{%
+\index{costante!{#1}@{{\tt {#1}}}|)}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+}                                     % constant name
+
+\newcommand{\const}[1]{%
+\texttt{#1}%
+%\index{costante!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
+}                                     % constant name
+
+\newcommand{\instruction}[1]{%
+\index{istruzione linguaggio C!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+}                                      % instruction name
+
+\newcommand{\instr}[1]{\texttt{#1}}    % instruction
+
+\newcommand{\direct}[1]{%
+\index{direttiva linguaggio C!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+}                                     % directive name
+
+\newcommand{\dirct}[1]{\texttt{#1}}   % directive
+
+
+\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]{%
+\texttt{#1}%
+}                                     % header file name
+\newcommand{\headfiled}[1]{%
+\index{file!include!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % header file name
+
+\newcommand{\procfile}[1]{%
+\index{file!filesystem~\texttt{/proc}!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % /proc file name
+\newcommand{\procfilem}[1]{%
+\texttt{#1}%
+%\index{file!filesystem~\texttt{/proc}!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
+}                                     % /proc file name
+
+\newcommand{\sysfile}[1]{%
+\texttt{#1}%
+%\index{file!di~sistema!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % system file name
+\newcommand{\sysfiled}[1]{%
+\index{file!di~sistema!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % system file name
+
+\newcommand{\conffile}[1]{%
+\texttt{#1}%
+%\index{file!di~configurazione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % configuration file name
+\newcommand{\conffiled}[1]{%
+\index{file!di~configurazione!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % configuration file name
+\newcommand{\conffilebeg}[1]{%
+\index{file!di~configurazione!{#1}@{{\tt {#1}}}}%
+}                                     % configuration file name
+\newcommand{\conffileend}[1]{%
+\index{file!di~configurazione!{#1}@{{\tt {#1}}}}%
+}                                     % configuration file name
+
+\newcommand{\procrelfile}[2]{%
+\index{file!filesystem~\texttt{/proc}!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
+}   
+
+\newcommand{\sysctlfiled}[1]{%
+\index{file!file di controllo (sotto \texttt{/proc/sys})!{#1}@{{\tt {#1}}}}\texttt{/proc/sys/#1}%
+}                                     % /proc/sys file 
+
+\newcommand{\sysctlfile}[1]{%
+\texttt{/proc/sys/#1}%
+%\index{file!file di controllo (sotto \texttt{/proc/sys})!{#1}@{{\tt {#1}}}}\texttt{/proc/sys/#1}%
+}                                     % /proc/sys file 
+
+\newcommand{\sysctlrelfile}[2]{%
+\texttt{#2}%
+%\index{file!file di controllo (sotto \texttt{/proc/sys})!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
+}                                     % /proc/sys file name
+
+\newcommand{\sysctlrelfiled}[2]{%
+\index{file!file di controllo (sotto \texttt{/proc/sys})!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
+}                                     % /proc/sys file name
+
+\newcommand{\kstruct}[1]{%
+\texttt{#1}%
+%\index{struttura dati del kernel!{#1}@{{\tt {#1}}}}\texttt{#1}%
+}                                     % struttura dati del kernel
+\newcommand{\kstructd}[1]{%
+\index{struttura dati del kernel!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{struttura dati del kernel!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
+}                                     % struttura dati
+
+\newcommand{\typed}[1]{%
+\index{tipo di dato!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (tipo)}}\texttt{#1}%
+}                                     % system type
+\newcommand{\type}[1]{%
+\texttt{#1}%
+%\index{tipo di dato!{#1}@{{\tt {#1}}}}\texttt{#1}%
+%\index{#1@{{\tt {#1}} (tipo)}}\texttt{#1}%
+}                                     % system type
+\newcommand{\struct}[1]{%
+\texttt{#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}}}}\texttt{#1}%
+%\index{struttura dati!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
+}                                     % struttura dati
+\newcommand{\param}[1]{\texttt{#1}}   % function parameter
+\newcommand{\acr}[1]{\textsl{#1}}     % acrostic (for glibc, ext2, ecc.)
+
+\newcommand{\ids}[1]{\textsl{#1}}     % Identifier (PID, GID, UID, TID, ecc.)
+\newcommand{\envvar}[1]{\texttt{#1}}   % environment variable
+\newcommand{\samplefunc}[1]{\texttt{#1}}   % funzione degli esempi
+
+\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}}%
+}
+\newcommand{\itindsubbeg}[2]{%
+\index{#1@{\textit{#1}}!\textit{#2}}%
+}
+\newcommand{\itindsubend}[2]{%
+\index{#1@{\textit{#1}}!\textit{#2}}%
+}
+
+% Aggiunte di Mirko per la gestione delle tabelle complicate come immagini
+% nella traslazione in HTML
+\newenvironment{usepicture}{}{}{}{}
+
+%
+% Macro di definizione di alcune lunghezze usate per le formattazioni
+%
+\newlength{\codesamplewidth}
+\setlength{\codesamplewidth}{0.95\textwidth}
+
+\newlength{\funcboxwidth}
+\setlength{\funcboxwidth}{0.85\textwidth}
+
+
+%
+% Nuove macro per diversa formattazione delle definizioni delle funzioni
+%
+\newcommand{\fhead}[1]{\texttt{\#include <#1>}\par}
+\newcommand{\fdecl}[1]{\texttt{#1}\par}
+\newcommand{\fdesc}[1]{\hfill{#1}\par}
+
+\newenvironment{funcproto}[2]
+{% defining what is done by \begin
+\centering
+\vspace{3pt}
+\begin{funcbox}
+#1
+\end{funcbox}
+\begin{funcbox}
+#2
+}
+{% defining what is done by \end
+\end{funcbox}
+%\vspace{6pt}
+%\break
+}
+
+\newenvironment{funcbox}
+{% defining what is done by \begin
+  \nobreak
+  \begin{boxedminipage}[c]{\funcboxwidth}
+    \footnotesize
+}
+{% defining what is done by \end
+\end{boxedminipage}
+\break
+\normalsize
+\par
+}
+
+
 
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: