When writing an option in an IDB, also write an endofoption option.
[obnox/wireshark/wip.git] / wiretap / libpcap.h
index b7cbcb7c81240a730e5fb3d5791566d36c02767a..dca1b08581b33beb3dd6c5275621abcc2d154f44 100644 (file)
@@ -1,20 +1,20 @@
 /* libpcap.h
  *
- * $Id: libpcap.h,v 1.13 2002/07/16 07:15:08 guy Exp $
+ * $Id$
  *
  * Wiretap Library
  * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
- * 
+ *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * of the License, or (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
@@ -23,6 +23,9 @@
 #ifndef __W_LIBPCAP_H__
 #define __W_LIBPCAP_H__
 
+#include <glib.h>
+#include <wtap.h>
+
 /* Magic numbers in "libpcap" files.
 
    "libpcap" file records are written in the byte order of the host that
    PCAP_MODIFIED_MAGIC is for Alexey Kuznetsov's modified "libpcap"
    format, as generated on Linux systems that have a "libpcap" with
    his patches, at
-   
+
        http://ftp.sunet.se/pub/os/Linux/ip-routing/lbl-tools/
 
-   applied; PCAP_SWAPPED_MODIFIED_MAGIC is the byte-swapped version. */
+   applied; PCAP_SWAPPED_MODIFIED_MAGIC is the byte-swapped version. 
+
+   PCAP_NSEC_MAGIC is for Ulf Lamping's modified "libpcap" format,
+   which uses the same common file format as PCAP_MAGIC, but the 
+   timestamps are saved in nanosecond resolution instead of microseconds.
+   PCAP_SWAPPED_NSEC_MAGIC is a byte-swapped version of that. */
 #define        PCAP_MAGIC                      0xa1b2c3d4
 #define        PCAP_SWAPPED_MAGIC              0xd4c3b2a1
 #define        PCAP_MODIFIED_MAGIC             0xa1b2cd34
 #define        PCAP_SWAPPED_MODIFIED_MAGIC     0x34cdb2a1
+#define        PCAP_NSEC_MAGIC                 0xa1b23c4d
+#define        PCAP_SWAPPED_NSEC_MAGIC         0x4d3cb2a1
 
 /* "libpcap" file header (minus magic number). */
 struct pcap_hdr {
@@ -56,7 +66,7 @@ struct pcap_hdr {
 /* "libpcap" record header. */
 struct pcaprec_hdr {
        guint32 ts_sec;         /* timestamp seconds */
-       guint32 ts_usec;        /* timestamp microseconds */
+       guint32 ts_usec;        /* timestamp microseconds (nsecs for PCAP_NSEC_MAGIC) */
        guint32 incl_len;       /* number of octets of packet saved in file */
        guint32 orig_len;       /* actual length of packet */
 };
@@ -91,8 +101,8 @@ struct pcaprec_nokia_hdr {
        guint8 stuff[4];        /* mysterious stuff */
 };
 
-int libpcap_open(wtap *wth, int *err);
-gboolean libpcap_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+int libpcap_open(wtap *wth, int *err, gchar **err_info);
+gboolean libpcap_dump_open(wtap_dumper *wdh, int *err);
 int libpcap_dump_can_write_encap(int encap);
 
 #endif