1 /*
   2  * This file and its contents are supplied under the terms of the
   3  * Common Development and Distribution License ("CDDL"), version 1.0.
   4  * You may only use this file in accordance with the terms of version
   5  * 1.0 of the CDDL.
   6  *
   7  * A full copy of the text of the CDDL should have accompanied this
   8  * source.  A copy of the CDDL is also available via the Internet at
   9  * http://www.illumos.org/license/CDDL.
  10  */
  11 
  12 /*
  13  * Copyright 2016 Joyent, Inc.
  14  */
  15 
  16 #ifndef _INET_BPF_H
  17 #define _INET_BPF_H
  18 
  19 #ifdef  __cplusplus
  20 extern "C" {
  21 #endif
  22 
  23 
  24 #ifdef  _KERNEL
  25 
  26 #include <sys/types.h>
  27 
  28 /*
  29  * Clone bpf_insn definition so that consumers don't need net/bpf.h to reason
  30  * about struct sizing.
  31  */
  32 typedef struct ip_bpf_insn {
  33         uint16_t        code;
  34         uint8_t         jt;
  35         uint8_t         jf;
  36         uint32_t        k;
  37 } ip_bpf_insn_t;
  38 
  39 extern uint32_t ip_bpf_filter(ip_bpf_insn_t *, uchar_t *, uint_t, uint_t);
  40 extern boolean_t ip_bpf_validate(ip_bpf_insn_t *, uint_t);
  41 
  42 
  43 #endif  /* _KERNEL */
  44 
  45 #ifdef  __cplusplus
  46 }
  47 #endif
  48 
  49 #endif  /* _INET_BPF_H */