1/*
2 * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that: (1) source code distributions
7 * retain the above copyright notice and this paragraph in its entirety, (2)
8 * distributions including binary code include the above copyright notice and
--- 226 unchanged lines hidden (view full) ---
235 struct edge *next; /* link list of incoming edges for a node */
236};
237
238struct block {
239 int id;
240 struct slist *stmts; /* side effect stmts */
241 struct stmt s; /* branch stmt */
242 int mark;
243 u_int longjt; /* jt branch requires long jump */
244 u_int longjf; /* jf branch requires long jump */
245 int level;
246 int offset;
247 int sense;
248 struct edge et;
249 struct edge ef;
250 struct block *head;
251 struct block *link; /* link field used by optimizer */
252 uset dom;
--- 72 unchanged lines hidden (view full) ---
325
326void bpf_optimize(struct block **);
327void bpf_error(const char *, ...)
328 __attribute__((noreturn, format (printf, 1, 2)));
329
330void finish_parse(struct block *);
331char *sdup(const char *);
332
333struct bpf_insn *icode_to_fcode(struct block *, u_int *);
334int pcap_parse(void);
335void lex_init(const char *);
336void lex_cleanup(void);
337void sappend(struct slist *, struct slist *);
338
339/* XXX */
340#define JT(b) ((b)->et.succ)
341#define JF(b) ((b)->ef.succ)
342
343extern int no_optimize;
2 * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that: (1) source code distributions
7 * retain the above copyright notice and this paragraph in its entirety, (2)
8 * distributions including binary code include the above copyright notice and
--- 226 unchanged lines hidden (view full) ---
235 struct edge *next; /* link list of incoming edges for a node */
236};
237
238struct block {
239 int id;
240 struct slist *stmts; /* side effect stmts */
241 struct stmt s; /* branch stmt */
242 int mark;
243 u_int longjt; /* jt branch requires long jump */
244 u_int longjf; /* jf branch requires long jump */
245 int level;
246 int offset;
247 int sense;
248 struct edge et;
249 struct edge ef;
250 struct block *head;
251 struct block *link; /* link field used by optimizer */
252 uset dom;
--- 72 unchanged lines hidden (view full) ---
325
326void bpf_optimize(struct block **);
327void bpf_error(const char *, ...)
328 __attribute__((noreturn, format (printf, 1, 2)));
329
330void finish_parse(struct block *);
331char *sdup(const char *);
332
333struct bpf_insn *icode_to_fcode(struct block *, u_int *);
334int pcap_parse(void);
335void lex_init(const char *);
336void lex_cleanup(void);
337void sappend(struct slist *, struct slist *);
338
339/* XXX */
340#define JT(b) ((b)->et.succ)
341#define JF(b) ((b)->ef.succ)
342
343extern int no_optimize;