From Didier Gautheron:
[obnox/wireshark/wip.git] / epan / column_info.h
1 /* column_info.h
2  * Definitions for column structures and routines
3  *
4  * $Id$
5  *
6  * Wireshark - Network traffic analyzer
7  * By Gerald Combs <gerald@wireshark.org>
8  * Copyright 1998 Gerald Combs
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
23  */
24
25 #ifndef __COLUMN_INFO_H__
26 #define __COLUMN_INFO_H__
27
28 #include <glib.h>
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif /* __cplusplus */
33
34 #define COL_MAX_LEN 256
35 #define COL_MAX_INFO_LEN 4096
36
37 typedef struct {
38   const gchar **col_expr;     /* Filter expression */
39   gchar      **col_expr_val; /* Value for filter expression */
40 } col_expr_t;
41
42 typedef struct _column_info {
43   gint                num_cols;    /* Number of columns */
44   gint               *col_fmt;     /* Format of column */
45   gboolean          **fmt_matx;    /* Specifies which formats apply to a column */
46   gint               *col_first;   /* First column number with a given format */
47   gint               *col_last;    /* Last column number with a given format */
48   gchar             **col_title;   /* Column titles */
49   gchar             **col_custom_field;   /* Custom column field */
50   struct _dfilter_t **col_custom_dfilter; /* Compiled custom column field */
51   const gchar       **col_data;    /* Column data */
52   gchar             **col_buf;     /* Buffer into which to copy data for column */
53   int                *col_fence;    /* Stuff in column buffer before this index is immutable */
54   col_expr_t          col_expr;     /* Column expressions and values */
55   gboolean            writable;     /* Are we still writing to the columns? */
56   gboolean            columns_changed;  /* Have the columns been changed in the prefs? */
57 } column_info;
58
59 /*
60  * All of the possible columns in summary listing.
61  *
62  * NOTE1: The entries MUST remain in this order, or else you need to reorder
63  *        the slist[] and dlist[] arrays in column.c to match!
64  *
65  * NOTE2: Please add the COL_XYZ entry in the appropriate spot, such that the
66  *        dlist[] array remains in alphabetical order!
67  */
68 enum {
69   COL_8021Q_VLAN_ID,  /* 0) 802.1Q vlan ID */
70   COL_ABS_DATE_TIME,  /* 1) Absolute date and time */
71   COL_ABS_TIME,       /* 2) Absolute time */
72   COL_CIRCUIT_ID,     /* 3) Circuit ID */
73   COL_DSTIDX,         /* 4) Dst port idx - Cisco MDS-specific */
74   COL_SRCIDX,         /* 5) Src port idx - Cisco MDS-specific */
75   COL_VSAN,           /* 6) VSAN - Cisco MDS-specific */
76   COL_CUMULATIVE_BYTES, /* 7) Cumulative number of bytes */
77   COL_CUSTOM,         /* 8) Custom column (any filter name's contents) */
78   COL_DCE_CALL,       /* 9) DCE/RPC connection oriented call id OR datagram sequence number */
79   COL_DCE_CTX,        /* 10) DCE/RPC connection oriented context id */
80   COL_DELTA_TIME,     /* 11) Delta time */
81   COL_DELTA_CONV_TIME,/* 12) Delta time to last frame in conversation */
82   COL_DELTA_TIME_DIS, /* 13) Delta time displayed*/
83   COL_RES_DST,        /* 14) Resolved dest */
84   COL_UNRES_DST,      /* 15) Unresolved dest */
85   COL_RES_DST_PORT,   /* 16) Resolved dest port */
86   COL_UNRES_DST_PORT, /* 17) Unresolved dest port */
87   COL_DEF_DST,        /* 18) Destination address */
88   COL_DEF_DST_PORT,   /* 19) Destination port */
89   COL_EXPERT,         /* 20) Expert Info */
90   COL_IF_DIR,         /* 21) FW-1 monitor interface/direction */
91   COL_OXID,           /* 22) Fibre Channel OXID */
92   COL_RXID,           /* 23) Fibre Channel RXID */
93   COL_FR_DLCI,        /* 24) Frame Relay DLCI */
94   COL_FREQ_CHAN,      /* 25) IEEE 802.11 (and WiMax?) - Channel */
95   COL_BSSGP_TLLI,     /* 26) GPRS BSSGP IE TLLI */
96   COL_HPUX_DEVID,     /* 27) HP-UX Nettl Device ID */
97   COL_HPUX_SUBSYS,    /* 28) HP-UX Nettl Subsystem */
98   COL_DEF_DL_DST,     /* 29) Data link layer dest address */
99   COL_DEF_DL_SRC,     /* 30) Data link layer source address */
100   COL_RES_DL_DST,     /* 31) Resolved DL dest */
101   COL_UNRES_DL_DST,   /* 32) Unresolved DL dest */
102   COL_RES_DL_SRC,     /* 33) Resolved DL source */
103   COL_UNRES_DL_SRC,   /* 34) Unresolved DL source */
104   COL_RSSI,           /* 35) IEEE 802.11 - received signal strength */
105   COL_TX_RATE,        /* 36) IEEE 802.11 - TX rate in Mbps */
106   COL_DSCP_VALUE,     /* 37) IP DSCP Value */
107   COL_INFO,           /* 38) Description */
108   COL_COS_VALUE,      /* 39) L2 COS Value */
109   COL_RES_NET_DST,    /* 40) Resolved net dest */
110   COL_UNRES_NET_DST,  /* 41) Unresolved net dest */
111   COL_RES_NET_SRC,    /* 42) Resolved net source */
112   COL_UNRES_NET_SRC,  /* 43) Unresolved net source */
113   COL_DEF_NET_DST,    /* 44) Network layer dest address */
114   COL_DEF_NET_SRC,    /* 45) Network layer source address */
115   COL_NUMBER,         /* 46) Packet list item number */
116   COL_PACKET_LENGTH,  /* 47) Packet length in bytes */
117   COL_PROTOCOL,       /* 48) Protocol */
118   COL_REL_TIME,       /* 49) Relative time */
119   COL_REL_CONV_TIME,  /* 50) Relative time to beginning of conversation */
120   COL_DEF_SRC,        /* 51) Source address */
121   COL_DEF_SRC_PORT,   /* 52) Source port */
122   COL_RES_SRC,        /* 53) Resolved source */
123   COL_UNRES_SRC,      /* 54) Unresolved source */
124   COL_RES_SRC_PORT,   /* 55) Resolved source port */
125   COL_UNRES_SRC_PORT, /* 56) Unresolved source port */
126   COL_TEI,            /* 57) Q.921 TEI */
127   COL_CLS_TIME,       /* 58) Command line-specified time (default relative) */
128   NUM_COL_FMTS        /* 59) Should always be last */
129 };
130
131 #ifdef __cplusplus
132 }
133 #endif /* __cplusplus */
134
135 #endif /* __COLUMN_INFO_H__ */