3 %% Copyright (C) 2000-2015 Simone Piccardi. Permission is granted to
4 %% copy, distribute and/or modify this document under the terms of the GNU Free
5 %% Documentation License, Version 1.1 or any later version published by the
6 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
7 %% with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the
8 %% license is included in the section entitled "GNU Free Documentation
13 % Defining some special character for use inside typewriter
14 % text without using the verbatim environment
17 \def\bslash{\char'134}
18 \def\circonf{\char'136}
21 \newcommand{\includecodesnip}[1]{\lstinputlisting[stepnumber=0,xleftmargin=\parindent,frame=]{#1}}{}
22 \newcommand{\includestruct}[1]{\lstinputlisting[stepnumber=0]{#1}}{}
23 \newcommand{\includecodesample}[1]{\lstinputlisting{#1}}{}
26 % Defining some commands to manipulate counter to avoid ude of
27 % \label and \ref commands (and related problem to remeber the
28 % used labels) to refer nearest objects
31 \newcounter{usercount} % define a new counter for internal use
35 \newcommand{\cureq}{(\theequation)}
37 \setcounter{usercount}{\value{equation}}%
38 \addtocounter{usercount}{1}%
39 (\thechapter.\theusercount)}
41 \setcounter{usercount}{\value{equation}}%
42 \addtocounter{usercount}{-1}%
43 (\thechapter.\theusercount)}
45 % Macro to put picture (in format PICT) inside a figure
47 \newcommand{\pictfig}[3]{
48 \begin{minipage}[t][#1][b]{#2}
49 \mbox{\special{pict=#3}}
54 % Macro to create a special environment for function prototypes
57 \newenvironment{prototype}[2]
58 {% defining what is done by \begin
61 \begin{boxedminipage}[c]{14cm}
63 \begin{description*}{}{}
64 \item \texttt{\#include <#1>}
65 \item \texttt{#2} \par
66 % \begin{lstlisting}{}
71 {% defining what is done by \end
80 \newenvironment{errlist}{\begin{basedescript}{\desclabelwidth{1.0cm}}}
83 % Slighty different environment to be used for multi-header,
84 % multi-functions boxed description
86 \newcommand{\headdecl}[1]{\item\texttt{\#include <#1>}}
87 \newcommand{\funcdecl}[1]{\item\texttt{#1}\par}
88 \newcommand{\bodydesc}[1]{\par \end{description*} #1
89 \begin{description*}{}{} \baselineskip=0pt
93 \newenvironment{functions}
94 {% defining what is done by \begin
97 \begin{boxedminipage}[c]{14cm}
99 \begin{description*}{}{}
101 {% defining what is done by \end
111 % Wrapper for shell command, functions, filenames, links,
112 % variables, macros, and everything can be useul,
114 \newcommand{\cmd}[1]{\texttt{#1}} % shell command
115 \newcommand{\code}[1]{\texttt{#1}} % for simple code
117 \newcommand{\myfunc}[1]{\texttt{#1}} % for my functions
119 \newcommand{\func}[1]{%
121 %\index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
122 %\index{#1@{{\tt {#1}} (funzione)}}\texttt{#1}%
125 \newcommand{\funcd}[1]{%
126 \index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
127 %\index{funzione!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
128 %\index{#1@{{\tt {#1}} (funzione)}!definizione di}\texttt{#1}%
130 \newcommand{\funcm}[1]{%
131 \index{funzione!{#1}@{{\tt {#1}}}}\texttt{#1}%
132 %\index{funzione!{#1}@{{\tt {#1}}}!menzione di}\texttt{#1}%
133 %\index{#1@{{\tt {#1}} (funzione)}!definizione di}\texttt{#1}%
136 \newcommand{\macro}[1]{%
138 %\index{macro!{#1}@{{\tt {#1}}}}\texttt{#1}%
139 %\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
142 \newcommand{\macrod}[1]{%
143 \index{macro!{#1}@{{\tt {#1}}}}\texttt{#1}%
144 %\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
147 \newcommand{\macrobeg}[1]{%
148 \index{macro!{#1}@{{\tt {#1}}}|(}%
149 %\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
151 \newcommand{\macroend}[1]{%
152 \index{macro!{#1}@{{\tt {#1}}}|)}%
153 %\index{#1@{{\tt {#1}} (macro)}}\texttt{#1}%
156 \newcommand{\errcode}[1]{%
158 %\index{errore!{#1}@{{\tt {#1}}}}\texttt{#1}%
159 %\index{#1@{{\tt {#1}} (errore)}}\texttt{#1}%
162 \newcommand{\errval}[1]{\texttt{#1}} % value
163 \newcommand{\var}[1]{\texttt{#1}} % variable
164 \newcommand{\val}[1]{\texttt{#1}} % value
166 \newcommand{\signal}[1]{%
168 %\index{segnale!{#1}@{{\tt {#1}}}}\texttt{#1}%
169 %\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
172 \newcommand{\signald}[1]{%
173 \index{segnale!{#1}@{{\tt {#1}}}}\texttt{#1}%
174 %\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
177 \newcommand{\constd}[1]{%
178 \index{costante!{#1}@{{\tt {#1}}}}\texttt{#1}%
179 %\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
182 \newcommand{\constbeg}[1]{%
183 \index{costante!{#1}@{{\tt {#1}}}|(}%
184 %\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
186 \newcommand{\constend}[1]{%
187 \index{costante!{#1}@{{\tt {#1}}}|)}%
188 %\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
191 \newcommand{\const}[1]{%
193 %\index{costante!{#1}@{{\tt {#1}}}}\texttt{#1}%
194 %\index{#1@{{\tt {#1}} (costante)}}\texttt{#1}%
197 \newcommand{\instruction}[1]{%
198 \index{istruzione linguaggio C!{#1}@{{\tt {#1}}}}\texttt{#1}%
199 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
202 \newcommand{\instr}[1]{\texttt{#1}} % instruction
204 \newcommand{\direct}[1]{%
205 \index{direttiva linguaggio C!{#1}@{{\tt {#1}}}}\texttt{#1}%
206 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
209 \newcommand{\dirct}[1]{\texttt{#1}} % directive
212 \newcommand{\file}[1]{\texttt{#1}} % file name
213 \newcommand{\link}[1]{\texttt{#1}} % html link
214 \newcommand{\ctyp}[1]{\texttt{#1}} % C standard type
216 \newcommand{\headfile}[1]{%
217 %\index{file!include!menzione{#1}@{{\tt {#1}}}}\texttt{#1}%
221 \newcommand{\headfiled}[1]{%
222 \index{file!include!{#1}@{{\tt {#1}}}}\texttt{#1}%
225 \newcommand{\procfile}[1]{%
226 \index{file!filesystem~\texttt{/proc}!{#1}@{{\tt {#1}}}}\texttt{#1}%
227 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
229 \newcommand{\procfilem}[1]{%
231 %\index{file!filesystem~\texttt{/proc}!{#1}@{{\tt {#1}}}}\texttt{#1}%
232 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
234 \newcommand{\sysfile}[1]{%
235 \index{file!di~sistema!{#1}@{{\tt {#1}}}}\texttt{#1}%
236 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
238 \newcommand{\conffile}[1]{%
240 %\index{file!di~configurazione!{#1}@{{\tt {#1}}}}\texttt{#1}%
241 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
242 } % configuration file name
243 \newcommand{\conffiled}[1]{%
244 \index{file!di~configurazione!{#1}@{{\tt {#1}}}}\texttt{#1}%
245 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
246 } % configuration file name
247 \newcommand{\conffilebeg}[1]{%
248 \index{file!di~configurazione!{#1}@{{\tt {#1}}}}%
249 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
250 } % configuration file name
251 \newcommand{\conffileend}[1]{%
252 \index{file!di~configurazione!{#1}@{{\tt {#1}}}}%
253 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
254 } % configuration file name
255 \newcommand{\procrelfile}[2]{%
256 \index{file!filesystem~\texttt{/proc}!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
257 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
260 \newcommand{\sysctlfile}[1]{%
261 \index{file!file di controllo (sotto \texttt{/proc/sys})!{#1}@{{\tt {#1}}}}\texttt{/proc/sys/#1}%
262 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
263 } % /proc/sys file name
265 \newcommand{\sysctlrelfile}[2]{%
266 \index{file!file di controllo (sotto \texttt{/proc/sys})!{#1/#2}@{{\tt {#1/#2}}}}\texttt{#2}%
267 %\index{#1@{{\tt {#1}} (direttiva)}}\texttt{#1}%
268 } % /proc/sys file name
271 \newcommand{\kstruct}[1]{%
273 %\index{struttura dati del kernel!{#1}@{{\tt {#1}}}}\texttt{#1}%
274 %\index{#1@{{\tt {#1}} (struttura dati)}}\texttt{#1}%
276 \newcommand{\kstructd}[1]{%
277 \index{struttura dati del kernel!{#1}@{{\tt {#1}}}}\texttt{#1}%
278 %\index{struttura dati del kernel!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
279 %\index{#1@{{\tt {#1}} (struttura dati)}!definizione di}\texttt{#1}%
281 \newcommand{\type}[1]{%
282 \index{tipo di dato!{#1}@{{\tt {#1}}}}\texttt{#1}%
283 %\index{#1@{{\tt {#1}} (tipo)}}\texttt{#1}%
285 \newcommand{\struct}[1]{%
287 %\index{struttura dati!{#1}@{{\tt {#1}}}}\texttt{#1}%
288 %\index{#1@{{\tt {#1}} (struttura dati)}}\texttt{#1}%
290 \newcommand{\structd}[1]{%
291 \index{struttura dati!{#1}@{{\tt {#1}}}}\texttt{#1}%
292 %\index{struttura dati!{#1}@{{\tt {#1}}}!definizione di}\texttt{#1}%
294 \newcommand{\param}[1]{\texttt{#1}} % function parameter
295 \newcommand{\acr}[1]{\textsl{#1}} % acrostic (for glibc, ext2, ecc.)
297 \newcommand{\ids}[1]{\textsl{#1}} % Identifier (PID, GID, UID, TID, ecc.)
298 \newcommand{\envvar}[1]{\texttt{#1}} % environment variable
299 \newcommand{\samplefunc}[1]{\texttt{#1}} % funzione degli esempi
301 \newcommand{\itindex}[1]{%
302 \index{#1@{\textit{#1}}}%
305 \newcommand{\itindbeg}[1]{%
306 \index{#1@{\textit{#1}}|(}%
308 \newcommand{\itindend}[1]{%
309 \index{#1@{\textit{#1}}|)}%
311 \newcommand{\itindsub}[2]{%
312 \index{#1@{\textit{#1}}!\textit{#2}}%
314 \newcommand{\itindsubbeg}[2]{%
315 \index{#1@{\textit{#1}}!\textit{#2}}%
317 \newcommand{\itindsubend}[2]{%
318 \index{#1@{\textit{#1}}!\textit{#2}}%
321 % Aggiunte di Mirko per la gestione delle tabelle complicate come immagini
322 % nella traslazione in HTML
323 \newenvironment{usepicture}{}{}{}{}
326 % Macro di definizione di alcune lunghezze usate per le formattazioni
328 \newlength{\codesamplewidth}
329 \setlength{\codesamplewidth}{0.95\textwidth}
331 \newlength{\funcboxwidth}
332 \setlength{\funcboxwidth}{0.85\textwidth}
336 % Nuove macro per diversa formattazione delle definizioni delle funzioni
338 \newcommand{\fhead}[1]{\texttt{\#include <#1>}\par}
339 \newcommand{\fdecl}[1]{\texttt{#1}\par}
340 \newcommand{\fdesc}[1]{\hfill{#1}\par}
342 \newenvironment{funcproto}[2]
343 {% defining what is done by \begin
352 {% defining what is done by \end
358 \newenvironment{funcbox}
359 {% defining what is done by \begin
361 \begin{boxedminipage}[c]{\funcboxwidth}
364 {% defining what is done by \end
375 %%% TeX-master: "gapil"