]> The Tcpdump Group git mirrors - libpcap/blobdiff - gencode.h
Declare "install_bpf_program()" in "pcap-int.h", not "gencode.h"; it has
[libpcap] / gencode.h
index da340828e5b74fa68847ff7ee13d2323dce26cd8..a327a4fb31fe30167eacb5ac5bcb7a6a5d9c1da3 100644 (file)
--- a/gencode.h
+++ b/gencode.h
  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- * @(#) $Header: /tcpdump/master/libpcap/gencode.h,v 1.36 1999-10-07 23:46:40 mcr Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/libpcap/gencode.h,v 1.47 2000-11-04 10:09:55 guy Exp $ (LBL)
  */
 
-/*XXX*/
-#include "gnuc.h"
-
 /* Address qualifiers. */
 
 #define Q_HOST         1
@@ -31,6 +28,7 @@
 #define Q_PORT         3
 #define Q_GATEWAY      4
 #define Q_PROTO                5
+#define Q_PROTOCHAIN   6
 
 /* Protocol qualifiers. */
 
 #define        Q_MOPRC         14
 #define        Q_MOPDL         15
 
+
+#define Q_IPV6         16
+#define Q_ICMPV6       17
+#define Q_AH           18
+#define Q_ESP          19
+
+#define Q_PIM          20
+
+#define        Q_AARP          21
+
+#define Q_ISO          22
+#define Q_ESIS         23
+#define Q_ISIS         24
+#define Q_CLNP         25
+
 /* Directional qualifiers. */
 
 #define Q_SRC          1
 #define Q_DEFAULT      0
 #define Q_UNDEF                255
 
+struct slist;
+
 struct stmt {
        int code;
+       struct slist *jt;       /*only for relative jump in block*/
+       struct slist *jf;       /*only for relative jump in block*/
        bpf_int32 k;
 };
 
@@ -150,6 +167,9 @@ void gen_not(struct block *);
 struct block *gen_scode(const char *, struct qual);
 struct block *gen_ecode(const u_char *, struct qual);
 struct block *gen_mcode(const char *, const char *, int, struct qual);
+#ifdef INET6
+struct block *gen_mcode6(const char *, const char *, int, struct qual);
+#endif
 struct block *gen_ncode(const char *, bpf_u_int32, struct qual);
 struct block *gen_proto_abbrev(int);
 struct block *gen_relation(int, struct arth *, struct arth *, int);
@@ -160,11 +180,14 @@ struct block *gen_broadcast(int);
 struct block *gen_multicast(int);
 struct block *gen_inbound(int);
 
+struct block *gen_vlan(int);
+
 void bpf_optimize(struct block **);
-#if __STDC__
-__dead void bpf_error(const char *, ...)
-    __attribute__((volatile, format (printf, 1, 2)));
+void bpf_error(const char *, ...)
+#if HAVE___ATTRIBUTE__
+    __attribute__((noreturn, format (printf, 1, 2)))
 #endif
+;
 
 void finish_parse(struct block *);
 char *sdup(const char *);
@@ -172,8 +195,11 @@ char *sdup(const char *);
 struct bpf_insn *icode_to_fcode(struct block *, int *);
 int pcap_parse(void);
 void lex_init(char *);
+void lex_cleanup(void);
 void sappend(struct slist *, struct slist *);
 
 /* XXX */
 #define JT(b)  ((b)->et.succ)
 #define JF(b)  ((b)->ef.succ)
+
+extern int no_optimize;