lcrzo_print(3)

NAME
lcrzo_print - lcrzo library : display

CONTENTS
/*    Laurent Constantin's network library (lcrzo)
                 lcrzo_print module
  Functions herein allow to write headers, packets or datas.
*/
/*-------------------------------------------------------------*/
/*                            Print types                        */
/*-------------------------------------------------------------*/
/* a lcrzo_printtype defines how to write headers or data */
typedef lcrzo_uint16 lcrzo_printtype;
/*****************************************************************/
/* you should not use these defines */
#define LCRZO_PRINTTYPE_C_         0x8000
#define LCRZO_PRINTTYPE_S_         0x4000
#define LCRZO_PRINTTYPE_N_         0x2000
#define LCRZO_PRINTTYPE_I_         0x1000
#define LCRZO_PRINTTYPE_C          (LCRZO_PRINTTYPE_C_|LCRZO_PRINTTYPE_N_)
#define LCRZO_PRINTTYPE_S          (LCRZO_PRINTTYPE_S_|LCRZO_PRINTTYPE_I_)
#define LCRZO_PRINTTYPE_N          (LCRZO_PRINTTYPE_N_)
#define LCRZO_PRINTTYPE_I          (LCRZO_PRINTTYPE_I_)
#define LCRZO_PRINTTYPE_CS         (LCRZO_PRINTTYPE_C_|LCRZO_PRINTTYPE_S)
#define LCRZO_PRINTTYPE_START      0x0000
#define LCRZO_PRINTTYPE_NOTHING_   0x0001
#define LCRZO_PRINTTYPE_SYNTH_     0x0002
#define LCRZO_PRINTTYPE_TEXT_      0x0003
#define LCRZO_PRINTTYPE_PTEXT_     0x0004
#define LCRZO_PRINTTYPE_BASE64_    0x0005
#define LCRZO_PRINTTYPE_ARRAY_     0x0006
#define LCRZO_PRINTTYPE_DUMP_      0x0007
#define LCRZO_PRINTTYPE_HEXA_      0x0008
#define LCRZO_PRINTTYPE_MIXED_     0x0009
#define LCRZO_PRINTTYPE_CMH_       0x000A
#define LCRZO_PRINTTYPE_CHM_       0x000B
/* end of unusable defines */
/*****************************************************************/
/*-------------------------------------------------------------*/
/* here are the lcrzo_printtype you can use (defines ending
   with _entxt or _frtxt are explanations of these printypes)*/
#define LCRZO_PRINTTYPE_NOTHING_entxt   "print nothing"
#define LCRZO_PRINTTYPE_NOTHING_frtxt   "ne rien afficher"
#define LCRZO_PRINTTYPE_NOTHING    (lcrzo_printtype)LCRZO_PRINTTYPE_NOTHING_
#define LCRZO_PRINTTYPE_SYNTH_entxt     "synthetic presentation"
#define LCRZO_PRINTTYPE_SYNTH_frtxt     "forme synthetique"
#define LCRZO_PRINTTYPE_SYNTH      (lcrzo_printtype)LCRZO_PRINTTYPE_SYNTH_
#define LCRZO_PRINTTYPE_SYNTHN     (lcrzo_printtype)(LCRZO_PRINTTYPE_SYNTH|LCRZO_PRINTTYPE_N)
#define LCRZO_PRINTTYPE_SYNTHC     (lcrzo_printtype)(LCRZO_PRINTTYPE_SYNTH|LCRZO_PRINTTYPE_C)
#define LCRZO_PRINTTYPE_TEXT_entxt      "text"
#define LCRZO_PRINTTYPE_TEXT_frtxt      "texte"
#define LCRZO_PRINTTYPE_TEXT       (lcrzo_printtype)LCRZO_PRINTTYPE_TEXT_
#define LCRZO_PRINTTYPE_TEXTN      (lcrzo_printtype)(LCRZO_PRINTTYPE_TEXT|LCRZO_PRINTTYPE_N)
#define LCRZO_PRINTTYPE_TEXTC      (lcrzo_printtype)(LCRZO_PRINTTYPE_TEXT|LCRZO_PRINTTYPE_C)
#define LCRZO_PRINTTYPE_PTEXT_entxt     "printable text"
#define LCRZO_PRINTTYPE_PTEXT_frtxt     "texte affichable"
#define LCRZO_PRINTTYPE_PTEXT      (lcrzo_printtype)LCRZO_PRINTTYPE_PTEXT_
#define LCRZO_PRINTTYPE_PTEXTN     (lcrzo_printtype)(LCRZO_PRINTTYPE_PTEXT|LCRZO_PRINTTYPE_N)
#define LCRZO_PRINTTYPE_PTEXTC     (lcrzo_printtype)(LCRZO_PRINTTYPE_PTEXT|LCRZO_PRINTTYPE_C)
#define LCRZO_PRINTTYPE_BASE64_entxt    "base 64"
#define LCRZO_PRINTTYPE_BASE64_frtxt    "base 64"
#define LCRZO_PRINTTYPE_BASE64     (lcrzo_printtype)LCRZO_PRINTTYPE_BASE64_
#define LCRZO_PRINTTYPE_BASE64N    (lcrzo_printtype)(LCRZO_PRINTTYPE_BASE64|LCRZO_PRINTTYPE_N)
#define LCRZO_PRINTTYPE_BASE64C    (lcrzo_printtype)(LCRZO_PRINTTYPE_BASE64|LCRZO_PRINTTYPE_C)
#define LCRZO_PRINTTYPE_ARRAY_entxt     "array"
#define LCRZO_PRINTTYPE_ARRAY_frtxt     "tableau"
#define LCRZO_PRINTTYPE_ARRAY      (lcrzo_printtype)(LCRZO_PRINTTYPE_ARRAY_|LCRZO_PRINTTYPE_I)
#define LCRZO_PRINTTYPE_ARRAYC     (lcrzo_printtype)(LCRZO_PRINTTYPE_ARRAY|LCRZO_PRINTTYPE_C_)
#define LCRZO_PRINTTYPE_DUMP_entxt      "dump"
#define LCRZO_PRINTTYPE_DUMP_frtxt      "dump"
#define LCRZO_PRINTTYPE_DUMP       (lcrzo_printtype)(LCRZO_PRINTTYPE_DUMP_|LCRZO_PRINTTYPE_I)
#define LCRZO_PRINTTYPE_DUMPC      (lcrzo_printtype)(LCRZO_PRINTTYPE_DUMP|LCRZO_PRINTTYPE_C_)
#define LCRZO_PRINTTYPE_HEXA_entxt      "hexadecimal"
#define LCRZO_PRINTTYPE_HEXA_frtxt      "hexadecimal"
#define LCRZO_PRINTTYPE_HEXA       (lcrzo_printtype)LCRZO_PRINTTYPE_HEXA_
#define LCRZO_PRINTTYPE_HEXAN      (lcrzo_printtype)(LCRZO_PRINTTYPE_HEXA|LCRZO_PRINTTYPE_N)
#define LCRZO_PRINTTYPE_HEXAC      (lcrzo_printtype)(LCRZO_PRINTTYPE_HEXA|LCRZO_PRINTTYPE_C)
#define LCRZO_PRINTTYPE_HEXAS      (lcrzo_printtype)(LCRZO_PRINTTYPE_HEXA|LCRZO_PRINTTYPE_S)
#define LCRZO_PRINTTYPE_HEXACS     (lcrzo_printtype)(LCRZO_PRINTTYPE_HEXA|LCRZO_PRINTTYPE_CS)
#define LCRZO_PRINTTYPE_MIXED_entxt     "mixed (hexa+string)"
#define LCRZO_PRINTTYPE_MIXED_frtxt     "mixte (hexa+chaine)"
#define LCRZO_PRINTTYPE_MIXED      (lcrzo_printtype)LCRZO_PRINTTYPE_MIXED_
#define LCRZO_PRINTTYPE_MIXEDN     (lcrzo_printtype)(LCRZO_PRINTTYPE_MIXED|LCRZO_PRINTTYPE_N)
#define LCRZO_PRINTTYPE_MIXEDC     (lcrzo_printtype)(LCRZO_PRINTTYPE_MIXED|LCRZO_PRINTTYPE_C)
#define LCRZO_PRINTTYPE_MIXEDS     (lcrzo_printtype)(LCRZO_PRINTTYPE_MIXED|LCRZO_PRINTTYPE_S)
#define LCRZO_PRINTTYPE_MIXEDCS    (lcrzo_printtype)(LCRZO_PRINTTYPE_MIXED|LCRZO_PRINTTYPE_CS)
#define LCRZO_PRINTTYPE_CMH_entxt       "commented mixed then hexa"
#define LCRZO_PRINTTYPE_CMH_frtxt       "mixte commente puis hexa"
#define LCRZO_PRINTTYPE_CMH        (lcrzo_printtype)(LCRZO_PRINTTYPE_CMH_|LCRZO_PRINTTYPE_I)
#define LCRZO_PRINTTYPE_CMHC       (lcrzo_printtype)(LCRZO_PRINTTYPE_CMH|LCRZO_PRINTTYPE_C_)
#define LCRZO_PRINTTYPE_CMHS       (lcrzo_printtype)(LCRZO_PRINTTYPE_CMH|LCRZO_PRINTTYPE_S)
#define LCRZO_PRINTTYPE_CMHCS      (lcrzo_printtype)(LCRZO_PRINTTYPE_CMH|LCRZO_PRINTTYPE_CS)
#define LCRZO_PRINTTYPE_CHM_entxt       "commented hexa then mixed"
#define LCRZO_PRINTTYPE_CHM_frtxt       "hexa commente puis mixte"
#define LCRZO_PRINTTYPE_CHM        (lcrzo_printtype)(LCRZO_PRINTTYPE_CHM_|LCRZO_PRINTTYPE_I)
#define LCRZO_PRINTTYPE_CHMC       (lcrzo_printtype)(LCRZO_PRINTTYPE_CHM|LCRZO_PRINTTYPE_C_)
#define LCRZO_PRINTTYPE_CHMS       (lcrzo_printtype)(LCRZO_PRINTTYPE_CHM|LCRZO_PRINTTYPE_S)
#define LCRZO_PRINTTYPE_CHMCS      (lcrzo_printtype)(LCRZO_PRINTTYPE_CHM|LCRZO_PRINTTYPE_CS)
/*-------------------------------------------------------------*/
/* Name : lcrzo_printtype_fprint
   Description :
     Print a lcrzo_printtype.
   Input parameter(s) :
     *pf : FILE where the function prints
     printtype : lcrzo_printtype to print
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_fprint(LCRZOFILE *pf,
			   lcrzo_printtype printtype);
/* Name : lcrzo_printtype_init_stdin
   Description :
     Ask user to choose a lcrzo_printtype
   Input parameter(s) :
     message : message to print before
     defaultprinttype : default lcrzo_printtype to use if
                        user enters nothing
   Input/output parameter(s) :
   Output parameter(s) :
     *pprinttype : lcrzo_printype chosen
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_init_stdin(lcrzo_conststring message,
			       lcrzo_printtype defaultprinttype,
			       lcrzo_printtype *pprinttype);
/* Name : lcrzo_printtype_count
   Description :
     Count the number of printtype
   Input parameter(s) :
   Input/output parameter(s) :
   Output parameter(s) :
     *pcount : number of lcrzo_printtype
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_count(lcrzo_int32 *pcount);
/**********************************************
 * Note about positions :                     *
 * Warning : 0 is an invalid value            *
 * Here are possible values for a position :  *
 *  +1 : first item                           *
 *  +2 : second item                          *
 *  ...                                       *
 * Moreover, we can count from the end :      *
 *  -1 : last item                            *
 *  -2 : last but one item                    *
 *  ...                                       *
 **********************************************/
/* Name : lcrzo_printtype_value_pos
   Description :
     Get a printtype
   Input parameter(s) :
     pos : position of the wanted printtype (cf. the above frame to
           know possible values)
   Input/output parameter(s) :
   Output parameter(s) :
     *pprinttype : lcrzo_printtype number 'pos'
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_value_pos(lcrzo_int32 pos,
			      lcrzo_printtype *pprinttype);
/* Name : lcrzo_printtype_value_first
   Description :
     Get the first printtype
   Input parameter(s) :
   Input/output parameter(s) :
   Output parameter(s) :
     *pprinttype : first lcrzo_printtype
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_value_first(lcrzo_printtype *pprinttype);
/* Name : lcrzo_printtype_value_last
   Description :
     Get the last printtype
   Input parameter(s) :
   Input/output parameter(s) :
   Output parameter(s) :
     *pprinttype : last lcrzo_printtype
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_value_last(lcrzo_printtype *pprinttype);
/* Name : lcrzo_printtype_loop_range
   Description :
     Call a function for each lcrzo_printtype in a
     given position range.
   Input parameter(s) :
     startpos : start position for the loop (cf. the above frame to
                know possible values)
     endpos : end position for the loop (cf. the above frame to
              know possible values)
     pfunc : memory address of the function which will be called
             for each lcrzo_printtype in the range [startpos->endpos].
             For each call, the first parameter ('printtype') will
             be set with the printtype, and the second parameter
             ('pinfos') will be set with the optional parameter below.
   Input/output parameter(s) :
     pinfos : optional parameter (can be NULL) which will be
              used as the second parameter for *pfunc. This may be
              used to send information to *pfunc.
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_loop_range(lcrzo_int32 startpos,
			       lcrzo_int32 endpos,
			       int (*pfunc)(lcrzo_printtype printtype,
					    void *pinfos),
			       void *pinfos);
/* Name : lcrzo_printtype_loop_all
   Description :
     Call a function for every lcrzo_printtype.
   Input parameter(s) :
     pfunc : memory address of the function which will be called
             for every lcrzo_printtype.
             For each call, the first parameter ('printtype') will
             be set with the printtype, and the second parameter
             ('pinfos') will be set with the optional parameter below.
   Input/output parameter(s) :
     pinfos : optional parameter (can be NULL) which will be
              used as the second parameter for *pfunc. This may be
              used to send information to *pfunc.
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printtype_loop_all(int (*pfunc)(lcrzo_printtype printtype,
					  void *pinfos),
			     void *pinfos);
/*-------------------------------------------------------------*/
/*                           Print profile                       */
/*-------------------------------------------------------------*/
/* a lcrzo_printprofile defines how to print a packet */
/* the definition of a lcrzo_printprofile has to be public
   (because the compiler needs to know its size),
   but you should not use its fields directly. */
typedef struct {
  lcrzo_printtype hdr;
  lcrzo_printtype hdreth;
  lcrzo_printtype hdrip;
  lcrzo_printtype hdrudp;
  lcrzo_printtype hdrtcp;
  lcrzo_printtype hdricmp;
  lcrzo_printtype hdrarp;
  lcrzo_printtype data;
  lcrzo_printtype dataeth;
  lcrzo_printtype dataip;
  lcrzo_printtype dataudp;
  lcrzo_printtype datatcp;
  lcrzo_printtype dataicmp;
  lcrzo_printtype lastused;
} lcrzo_printprofile;
/* this function is useful for the following defines, but you
   should not use it (use lcrzo_printprofile_init instead) */
lcrzo_printprofile lcrzo_printprofile_returnstruct(lcrzo_printtype hdr, lcrzo_printtype hdreth, lcrzo_printtype hdrip, lcrzo_printtype hdrudp, lcrzo_printtype hdrtcp, lcrzo_printtype hdricmp, lcrzo_printtype hdrarp, lcrzo_printtype data, lcrzo_printtype dataeth, lcrzo_printtype dataip, lcrzo_printtype dataudp, lcrzo_printtype datatcp, lcrzo_printtype dataicmp);
/* here are some lcrzo_printprofile you can use (defines ending
   with _entxt or _frtxt are explanations of these printprofile).
   You can create your own lcrzo_printprofile with lcrzo_printprofile_init */
#define LCRZO_PRINTPROFILE_SYNTHSYNTH lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH)
#define LCRZO_PRINTPROFILE_SYNTHSYNTH_entxt "header and data in synthetic aspect"
#define LCRZO_PRINTPROFILE_SYNTHSYNTH_frtxt "entetes et donnees sous forme synthetique"
#define LCRZO_PRINTPROFILE_SYNTHESYNTH lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_NOTHING, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH, LCRZO_PRINTTYPE_SYNTH)
#define LCRZO_PRINTPROFILE_SYNTHESYNTH_entxt "header (without ethernet) and data in synthetic aspect"
#define LCRZO_PRINTPROFILE_SYNTHESYNTH_frtxt "entetes (sauf ethernet) et donnees sous forme synthetique"
#define LCRZO_PRINTPROFILE_ARRAYARRAY lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY)
#define LCRZO_PRINTPROFILE_ARRAYARRAY_entxt "header and data in array aspect"
#define LCRZO_PRINTPROFILE_ARRAYARRAY_frtxt "entetes et donnees sous forme de tableau"
#define LCRZO_PRINTPROFILE_ARRAYDUMP lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP)
#define LCRZO_PRINTPROFILE_ARRAYDUMP_entxt "header in array aspect and data in dump"
#define LCRZO_PRINTPROFILE_ARRAYDUMP_frtxt "entetes sous forme de tableau et donnees en dump"
#define LCRZO_PRINTPROFILE_ARRAYCHMS lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_ARRAY, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS)
#define LCRZO_PRINTPROFILE_ARRAYCHMS_entxt "header in array aspect and data in mixed"
#define LCRZO_PRINTPROFILE_ARRAYCHMS_frtxt "entetes sous forme de tableau et donnees en mixte"
#define LCRZO_PRINTPROFILE_HEXANHEXAS lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAS, LCRZO_PRINTTYPE_HEXAS, LCRZO_PRINTTYPE_HEXAS, LCRZO_PRINTTYPE_HEXAS, LCRZO_PRINTTYPE_HEXAS, LCRZO_PRINTTYPE_HEXAS)
#define LCRZO_PRINTPROFILE_HEXANHEXAS_entxt "header and data in hexa aspect"
#define LCRZO_PRINTPROFILE_HEXANHEXAS_frtxt "entetes et donnees sous forme hexa"
#define LCRZO_PRINTPROFILE_HEXANDUMP lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP, LCRZO_PRINTTYPE_DUMP)
#define LCRZO_PRINTPROFILE_HEXANDUMP_entxt "header in hexa aspect and data in dump"
#define LCRZO_PRINTPROFILE_HEXANDUMP_frtxt "entetes sous forme d'hexa et donnees en dump"
#define LCRZO_PRINTPROFILE_HEXANCHMS lcrzo_printprofile_returnstruct(LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_HEXAN, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS, LCRZO_PRINTTYPE_CHMS)
#define LCRZO_PRINTPROFILE_HEXANCHMS_entxt "header in hexa aspect and data in mixed"
#define LCRZO_PRINTPROFILE_HEXANCHMS_frtxt "entetes sous forme d'hexa et donnees en mixte"
/* Name : lcrzo_printprofile_init
   Description :
     Create a custom lcrzo_printprofile.
   Input parameter(s) :
     hdr : default lcrzo_printtype for headers
     hdreth : lcrzo_printtype for Ethernet headers
     hdrip : lcrzo_printtype for IP headers
     hdrudp : lcrzo_printtype for UDP headers
     hdrtcp : lcrzo_printtype for TCP headers
     hdricmp : lcrzo_printtype for ICMP headers
     hdrarp : lcrzo_printtype for ARP/RARP headers
     data : default lcrzo_printtype for data
     dataeth : lcrzo_printtype for Ethernet data
     dataip : lcrzo_printtype for IP data
     dataudp : lcrzo_printtype for UDP data
     datatcp : lcrzo_printtype for TCP data
     dataicmp : lcrzo_printtype for ICMP data
   Input/output parameter(s) :
   Output parameter(s) :
     *pprintprofile : lcrzo_printprofile created
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_init(lcrzo_printtype hdr,
			    lcrzo_printtype hdreth,
			    lcrzo_printtype hdrip,
			    lcrzo_printtype hdrudp,
			    lcrzo_printtype hdrtcp,
			    lcrzo_printtype hdricmp,
			    lcrzo_printtype hdrarp,
			    lcrzo_printtype data,
			    lcrzo_printtype dataeth,
			    lcrzo_printtype dataip,
			    lcrzo_printtype dataudp,
			    lcrzo_printtype datatcp,
			    lcrzo_printtype dataicmp,
			    lcrzo_printprofile *pprintprofile);
/* Name : lcrzo_printprofile_fprint
   Description :
     Print a lcrzo_printprofile.
   Input parameter(s) :
     *pf : FILE where the function prints
     printprofile : lcrzo_printprofile to print
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_fprint(LCRZOFILE *pf,
			      lcrzo_printprofile printprofile);
/* Name : lcrzo_printprofile_init_stdin
   Description :
     Ask user to choose a lcrzo_printprofile
   Input parameter(s) :
     message : message to print before
     defaultprintprofile : default lcrzo_printprofile to use if
                        user enters nothing
   Input/output parameter(s) :
   Output parameter(s) :
     *pprintprofile : lcrzo_printype chosen
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_init_stdin(lcrzo_conststring message,
				  lcrzo_printprofile defaultprintprofile,
				  lcrzo_printprofile *pprintprofile);
/* Name : lcrzo_printprofile_count
   Description :
     Count the number of printprofile
   Input parameter(s) :
   Input/output parameter(s) :
   Output parameter(s) :
     *pcount : number of lcrzo_printprofile
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_count(lcrzo_int32 *pcount);
/**********************************************
 * Note about positions :                     *
 * Warning : 0 is an invalid value            *
 * Here are possible values for a position :  *
 *  +1 : first item                           *
 *  +2 : second item                          *
 *  ...                                       *
 * Moreover, we can count from the end :      *
 *  -1 : last item                            *
 *  -2 : last but one item                    *
 *  ...                                       *
 **********************************************/
/* Name : lcrzo_printprofile_value_pos
   Description :
     Get a printprofile
   Input parameter(s) :
     pos : position of the wanted printprofile (cf. the above frame to
           know possible values)
   Input/output parameter(s) :
   Output parameter(s) :
     *pprintprofile : lcrzo_printprofile number 'pos'
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_value_pos(lcrzo_int32 pos,
				 lcrzo_printprofile *pprintprofile);
/* Name : lcrzo_printprofile_value_first
   Description :
     Get the first printprofile
   Input parameter(s) :
   Input/output parameter(s) :
   Output parameter(s) :
     *pprintprofile : first lcrzo_printprofile
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_value_first(lcrzo_printprofile *pprintprofile);
/* Name : lcrzo_printprofile_value_last
   Description :
     Get the last printprofile
   Input parameter(s) :
   Input/output parameter(s) :
   Output parameter(s) :
     *pprintprofile : last lcrzo_printprofile
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_value_last(lcrzo_printprofile *pprintprofile);
/* Name : lcrzo_printprofile_loop_range
   Description :
     Call a function for each lcrzo_printprofile in a
     given position range.
   Input parameter(s) :
     startpos : start position for the loop (cf. the above frame to
                know possible values)
     endpos : end position for the loop (cf. the above frame to
              know possible values)
     pfunc : memory address of the function which will be called
             for each lcrzo_printprofile in the range [startpos->endpos].
             For each call, the first parameter ('printprofile') will
             be set with the printprofile, and the second parameter
             ('pinfos') will be set with the optional parameter below.
   Input/output parameter(s) :
     pinfos : optional parameter (can be NULL) which will be
              used as the second parameter for *pfunc. This may be
              used to send information to *pfunc.
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_loop_range(lcrzo_int32 startpos,
				  lcrzo_int32 endpos,
				  int (*pfunc)(lcrzo_printprofile printprofile,
					       void *pinfos),
				  void *pinfos);
/* Name : lcrzo_printprofile_loop_all
   Description :
     Call a function for every lcrzo_printprofile.
   Input parameter(s) :
     pfunc : memory address of the function which will be called
             for every lcrzo_printprofile.
             For each call, the first parameter ('printprofile') will
             be set with the printprofile, and the second parameter
             ('pinfos') will be set with the optional parameter below.
   Input/output parameter(s) :
     pinfos : optional parameter (can be NULL) which will be
              used as the second parameter for *pfunc. This may be
              used to send information to *pfunc.
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_printprofile_loop_all(int (*pfunc)(lcrzo_printprofile printprofile,
					     void *pinfos),
				void *pinfos);
/*-------------------------------------------------------------*/
/*                       Printing functions                      */
/*-------------------------------------------------------------*/
/*-------------------------------------------------------------*/
/* Name : lcrzo_hs_fprint
   Description :
     Print a lcrzo_hs.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_hs
     hs : lcrzo_hs to print
     endstring : string to print after the lcrzo_hs
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hs_fprint(LCRZOFILE *pf,
		    lcrzo_conststring startstring,
		    lcrzo_consths hs,
		    lcrzo_conststring endstring);
/* Name : lcrzo_ips_fprint
   Description :
     Print a lcrzo_ips.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_ips
     ips : lcrzo_ips to print
     endstring : string to print after the lcrzo_ips
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ips_fprint(LCRZOFILE *pf,
		     lcrzo_conststring startstring,
		     lcrzo_constips ips,
		     lcrzo_conststring endstring);
/* Name : lcrzo_ipa_fprint
   Description :
     Print a lcrzo_ipa.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_ipa
     ipa : lcrzo_ipa to print
     endstring : string to print after the lcrzo_ipa
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipa_fprint(LCRZOFILE *pf,
		     lcrzo_conststring startstring,
		     lcrzo_constipa ipa,
		     lcrzo_conststring endstring);
/* Name : lcrzo_ipl_fprint
   Description :
     Print a lcrzo_ipl.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_ipl
     ipl : lcrzo_ipl to print
     endstring : string to print after the lcrzo_ipl
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_fprint(LCRZOFILE *pf,
		     lcrzo_conststring startstring,
		     lcrzo_ipl ipl,
		     lcrzo_conststring endstring);
/* Name : lcrzo_eths_fprint
   Description :
     Print a lcrzo_eths.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_eths
     eths : lcrzo_eths to print
     endstring : string to print after the lcrzo_eths
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_eths_fprint(LCRZOFILE *pf,
		      lcrzo_conststring startstring,
		      lcrzo_consteths eths,
		      lcrzo_conststring endstring);
/* Name : lcrzo_etha_fprint
   Description :
     Print a lcrzo_etha.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_etha
     etha : lcrzo_etha to print
     endstring : string to print after the lcrzo_etha
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_fprint(LCRZOFILE *pf,
		      lcrzo_conststring startstring,
		      lcrzo_constetha teth,
		      lcrzo_conststring endstring);
/* Name : lcrzo_device_fprint
   Description :
     Print a lcrzo_device.
   Input parameter(s) :
     *pf : FILE where the function prints
     startstring : string to print before the lcrzo_device
     device : lcrzo_device to print
     endstring : string to print after the lcrzo_device
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_fprint(LCRZOFILE *pf,
			lcrzo_conststring startstring,
			lcrzo_constdevice device,
			lcrzo_conststring endstring);
/*-------------------------------------------------------------*/
/* Name : lcrzo_hs_fprint_infos
   Description :
     Print a lot of information about a lcrzo_hs.
   Input parameter(s) :
     *pf : FILE where the function prints
     hs : lcrzo_hs whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hs_fprint_infos(LCRZOFILE *pf,
			  lcrzo_consths hs);
/* Name : lcrzo_ips_fprint_infos
   Description :
     Print a lot of information about a lcrzo_ips.
   Input parameter(s) :
     *pf : FILE where the function prints
     ips : lcrzo_ips whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ips_fprint_infos(LCRZOFILE *pf,
			   lcrzo_constips ips);
/* Name : lcrzo_ipa_fprint_infos
   Description :
     Print a lot of information about a lcrzo_ipa.
   Input parameter(s) :
     *pf : FILE where the function prints
     ipa : lcrzo_ipa whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipa_fprint_infos(LCRZOFILE *pf,
			   lcrzo_constipa ipa);
/* Name : lcrzo_ipl_fprint_infos
   Description :
     Print a lot of information about a lcrzo_ipl.
   Input parameter(s) :
     *pf : FILE where the function prints
     ipl : lcrzo_ipl whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipl_fprint_infos(LCRZOFILE *pf,
			   lcrzo_ipl ipl);
/* Name : lcrzo_eths_fprint_infos
   Description :
     Print a lot of information about a lcrzo_eths.
   Input parameter(s) :
     *pf : FILE where the function prints
     eths : lcrzo_eths whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_eths_fprint_infos(LCRZOFILE *pf,
			    lcrzo_consteths eths);
/* Name : lcrzo_etha_fprint_infos
   Description :
     Print a lot of information about a lcrzo_etha.
   Input parameter(s) :
     *pf : FILE where the function prints
     etha : lcrzo_etha whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_etha_fprint_infos(LCRZOFILE *pf,
			    lcrzo_constetha etha);
/* Name : lcrzo_device_fprint_infos
   Description :
     Print a lot of information about a lcrzo_device.
   Input parameter(s) :
     *pf : FILE where the function prints
     device : lcrzo_device whose information are printed
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_device_fprint_infos(LCRZOFILE *pf,
			      lcrzo_constdevice device);
/*-------------------------------------------------------------*/
/* Name : lcrzo_data_fprint
   Description :
     Print data.
   Input parameter(s) :
     *pf : FILE where the function prints
     data : data to print
     datasize : size of data
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_data_fprint(LCRZOFILE *pf,
		      lcrzo_constdata data,
		      lcrzo_int32 datasize,
		      lcrzo_printtype printtype);
/*-------------------------------------------------------------*/
/* Name : lcrzo_hdrleth_fprint
   Description :
     Print a lcrzo_hdrleth.
   Input parameter(s) :
     *pf : FILE where the function prints
     hdrleth : lcrzo_hdrleth to print
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hdrleth_fprint(LCRZOFILE *pf,
			 lcrzo_hdrleth hdrleth,
			 lcrzo_printtype printtype);
/* Name : lcrzo_hdrlip_fprint
   Description :
     Print a lcrzo_hdrlip.
   Input parameter(s) :
     *pf : FILE where the function prints
     hdrlip : lcrzo_hdrlip to print
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hdrlip_fprint(LCRZOFILE *pf,
			lcrzo_hdrlip hdrlip,
			lcrzo_printtype printtype);
/* Name : lcrzo_hdrludp_fprint
   Description :
     Print a lcrzo_hdrludp.
   Input parameter(s) :
     *pf : FILE where the function prints
     hdrludp : lcrzo_hdrludp to print
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hdrludp_fprint(LCRZOFILE *pf,
			 lcrzo_hdrludp hdrludp,
			 lcrzo_printtype printtype);
/* Name : lcrzo_hdrltcp_fprint
   Description :
     Print a lcrzo_hdrltcp.
   Input parameter(s) :
     *pf : FILE where the function prints
     hdrltcp : lcrzo_hdrltcp to print
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hdrltcp_fprint(LCRZOFILE *pf,
			 lcrzo_hdrltcp hdrltcp,
			 lcrzo_printtype printtype);
/* Name : lcrzo_hdrlicmp_fprint
   Description :
     Print a lcrzo_hdrlicmp.
   Input parameter(s) :
     *pf : FILE where the function prints
     hdrlicmp : lcrzo_hdrlicmp to print
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hdrlicmp_fprint(LCRZOFILE *pf,
			  lcrzo_hdrlicmp hdrlicmp,
			  lcrzo_printtype printtype);
/* Name : lcrzo_hdrlarp_fprint
   Description :
     Print a lcrzo_hdrlarp.
   Input parameter(s) :
     *pf : FILE where the function prints
     hdrlarp : lcrzo_hdrlarp to print
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_hdrlarp_fprint(LCRZOFILE *pf,
			 lcrzo_hdrlarp hdrlarp,
			 lcrzo_printtype printtype);
/*-------------------------------------------------------------*/
/* Name : lcrzo_ipopt_fprint
   Description :
     Print a lcrzo_ipopt.
   Input parameter(s) :
     *pf : FILE where the function prints
     ipopt : lcrzo_ipopt to print
     ipoptsize : size of ipopt
     printtype : lcrzo_printtype to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_ipopt_fprint(LCRZOFILE *pf,
		       lcrzo_constipopt ipopt,
		       lcrzo_uint8 ipoptsize,
		       lcrzo_printtype printtype);
/*-------------------------------------------------------------*/
/* Name : lcrzo_packet_fprint_eth
   Description :
     Print a packet containing Ethernet.
   Input parameter(s) :
     *pf : FILE where the function prints
     packet : packet to print
     packetsize : size of packet
     printprofile : lcrzo_printprofile to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_packet_fprint_eth(LCRZOFILE *pf,
			    lcrzo_constdata packet,
			    lcrzo_int32 packetsize,
			    lcrzo_printprofile printprofile);
/* Name : lcrzo_packet_fprint_ip
   Description :
     Print a packet containing IP.
   Input parameter(s) :
     *pf : FILE where the function prints
     packet : packet to print
     packetsize : size of packet
     printprofile : lcrzo_printprofile to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_packet_fprint_ip(LCRZOFILE *pf,
			   lcrzo_constdata packet,
			   lcrzo_int32 packetsize,
			   lcrzo_printprofile printprofile);
/* Name : lcrzo_packet_fprint_udp
   Description :
     Print a packet containing UDP.
   Input parameter(s) :
     *pf : FILE where the function prints
     packet : packet to print
     packetsize : size of packet
     printprofile : lcrzo_printprofile to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_packet_fprint_udp(LCRZOFILE *pf,
			    lcrzo_constdata packet,
			    lcrzo_int32 packetsize,
			    lcrzo_printprofile printprofile);
/* Name : lcrzo_packet_fprint_tcp
   Description :
     Print a packet containing TCP.
   Input parameter(s) :
     *pf : FILE where the function prints
     packet : packet to print
     packetsize : size of packet
     printprofile : lcrzo_printprofile to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_packet_fprint_tcp(LCRZOFILE *pf,
			    lcrzo_constdata packet,
			    lcrzo_int32 packetsize,
			    lcrzo_printprofile printprofile);
/* Name : lcrzo_packet_fprint_icmp
   Description :
     Print a packet containing ICMP.
   Input parameter(s) :
     *pf : FILE where the function prints
     packet : packet to print
     packetsize : size of packet
     printprofile : lcrzo_printprofile to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_packet_fprint_icmp(LCRZOFILE *pf,
			     lcrzo_constdata packet,
			      lcrzo_int32 packetsize,
			      lcrzo_printprofile printprofile);
/* Name : lcrzo_packet_fprint_arp
   Description :
     Print a packet containing ARP.
   Input parameter(s) :
     *pf : FILE where the function prints
     packet : packet to print
     packetsize : size of packet
     printprofile : lcrzo_printprofile to use
   Input/output parameter(s) :
   Output parameter(s) :
   Normal return values :
     LCRZO_ERR_OK : ok
*/
int lcrzo_packet_fprint_arp(LCRZOFILE *pf,
			    lcrzo_constdata packet,
			    lcrzo_int32 packetsize,
			    lcrzo_printprofile printprofile);
/*-------------------------------------------------------------*/
/* idem, but on stdout */
#define lcrzo_printtype_print(a) lcrzo_printtype_fprint(stdout,a)
#define lcrzo_printprofile_print(a) lcrzo_printprofile_fprint(stdout,a)
#define lcrzo_hs_print(a, b, c) lcrzo_hs_fprint(stdout, a, b, c)
#define lcrzo_ips_print(a, b, c) lcrzo_ips_fprint(stdout, a, b, c)
#define lcrzo_ipa_print(a, b, c) lcrzo_ipa_fprint(stdout, a, b, c)
#define lcrzo_ipl_print(a, b, c) lcrzo_ipl_fprint(stdout, a, b, c)
#define lcrzo_eths_print(a, b, c) lcrzo_eths_fprint(stdout, a, b, c)
#define lcrzo_etha_print(a, b, c) lcrzo_etha_fprint(stdout, a, b, c)
#define lcrzo_device_print(a, b, c) lcrzo_device_fprint(stdout, a, b, c)
#define lcrzo_hs_print_infos(a) lcrzo_hs_fprint_infos(stdout, a)
#define lcrzo_ips_print_infos(a) lcrzo_ips_fprint_infos(stdout, a)
#define lcrzo_ipa_print_infos(a) lcrzo_ipa_fprint_infos(stdout, a)
#define lcrzo_ipl_print_infos(a) lcrzo_ipl_fprint_infos(stdout, a)
#define lcrzo_eths_print_infos(a) lcrzo_eths_fprint_infos(stdout, a)
#define lcrzo_etha_print_infos(a) lcrzo_etha_fprint_infos(stdout, a)
#define lcrzo_device_print_infos(a) lcrzo_device_fprint_infos(stdout, a)
#define lcrzo_data_print(p,t,a) lcrzo_data_fprint(stdout,p,t,a)
#define lcrzo_hdrleth_print(a,b) lcrzo_hdrleth_fprint(stdout,a,b)
#define lcrzo_hdrlip_print(a,b) lcrzo_hdrlip_fprint(stdout,a,b)
#define lcrzo_hdrludp_print(a,b) lcrzo_hdrludp_fprint(stdout,a,b)
#define lcrzo_hdrltcp_print(a,b) lcrzo_hdrltcp_fprint(stdout,a,b)
#define lcrzo_hdrlicmp_print(a,b) lcrzo_hdrlicmp_fprint(stdout,a,b)
#define lcrzo_hdrlarp_print(a,b) lcrzo_hdrlarp_fprint(stdout,a,b)
#define lcrzo_ipopt_print(p,t,a) lcrzo_ipopt_fprint(stdout,p,t,a)
#define lcrzo_packet_print_eth(p,t,a) lcrzo_packet_fprint_eth(stdout,p,t,a)
#define lcrzo_packet_print_ip(p,t,a) lcrzo_packet_fprint_ip(stdout,p,t,a)
#define lcrzo_packet_print_udp(p,t,a) lcrzo_packet_fprint_udp(stdout,p,t,a)
#define lcrzo_packet_print_tcp(p,t,a) lcrzo_packet_fprint_tcp(stdout,p,t,a)
#define lcrzo_packet_print_icmp(p,t,a) lcrzo_packet_fprint_icmp(stdout,p,t,a)
#define lcrzo_packet_print_arp(p,t,a) lcrzo_packet_fprint_arp(stdout,p,t,a)

SEE ALSO
lcrzo(3), lcrzo_types(3), lcrzo_data(3), lcrzo_string(3), lcrzo_time(3), lcrzo_file(3), lcrzo_address(3), lcrzo_device(3), lcrzo_list(3), lcrzo_process(3), lcrzo_ipc(3), lcrzo_header(3), lcrzo_ipopt(3), lcrzo_tcpopt(3), lcrzo_packet(3), lcrzo_icmp(3), lcrzo_print(3), lcrzo_record(3), lcrzo_conf(3), lcrzo_spoof(3), lcrzo_sniff(3), lcrzo_sock(3), lcrzo_wait(3), lcrzo_global(3), lcrzo_error(3) lcrzo_misc(3), lcrzo_obso(3),