The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/bsd/net/bpfdesc.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_LICENSE_HEADER_START@
    5  * 
    6  * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
    7  * 
    8  * This file contains Original Code and/or Modifications of Original Code
    9  * as defined in and that are subject to the Apple Public Source License
   10  * Version 2.0 (the 'License'). You may not use this file except in
   11  * compliance with the License. Please obtain a copy of the License at
   12  * http://www.opensource.apple.com/apsl/ and read it before using this
   13  * file.
   14  * 
   15  * The Original Code and all software distributed under the License are
   16  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   17  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   18  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   19  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   20  * Please see the License for the specific language governing rights and
   21  * limitations under the License.
   22  * 
   23  * @APPLE_LICENSE_HEADER_END@
   24  */
   25 /*
   26  * Copyright (c) 1990, 1991, 1993
   27  *      The Regents of the University of California.  All rights reserved.
   28  *
   29  * This code is derived from the Stanford/CMU enet packet filter,
   30  * (net/enet.c) distributed as part of 4.3BSD, and code contributed
   31  * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
   32  * Berkeley Laboratory.
   33  *
   34  * Redistribution and use in source and binary forms, with or without
   35  * modification, are permitted provided that the following conditions
   36  * are met:
   37  * 1. Redistributions of source code must retain the above copyright
   38  *    notice, this list of conditions and the following disclaimer.
   39  * 2. Redistributions in binary form must reproduce the above copyright
   40  *    notice, this list of conditions and the following disclaimer in the
   41  *    documentation and/or other materials provided with the distribution.
   42  * 3. All advertising materials mentioning features or use of this software
   43  *    must display the following acknowledgement:
   44  *      This product includes software developed by the University of
   45  *      California, Berkeley and its contributors.
   46  * 4. Neither the name of the University nor the names of its contributors
   47  *    may be used to endorse or promote products derived from this software
   48  *    without specific prior written permission.
   49  *
   50  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   51  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   52  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   53  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   54  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   55  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   56  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   57  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   58  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   59  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   60  * SUCH DAMAGE.
   61  *
   62  *      @(#)bpfdesc.h   8.1 (Berkeley) 6/10/93
   63  *
   64  * $FreeBSD: src/sys/net/bpfdesc.h,v 1.14.2.1 2000/03/19 05:55:36 rwatson Exp $
   65  */
   66 
   67 #ifndef _NET_BPFDESC_H_
   68 #define _NET_BPFDESC_H_
   69 #include <sys/appleapiopts.h>
   70 #ifdef __APPLE_API_PRIVATE
   71 /*
   72  * The items in this header file should be wrapped in #ifdef KERNEL.
   73  */
   74 
   75 #include <sys/select.h>
   76 
   77 /*
   78  * Descriptor associated with each open bpf file.
   79  */
   80 struct bpf_d {
   81         struct bpf_d    *bd_next;       /* Linked list of descriptors */
   82         /*
   83          * Buffer slots: two mbuf clusters buffer the incoming packets.
   84          *   The model has three slots.  Sbuf is always occupied.
   85          *   sbuf (store) - Receive interrupt puts packets here.
   86          *   hbuf (hold) - When sbuf is full, put cluster here and
   87          *                 wakeup read (replace sbuf with fbuf).
   88          *   fbuf (free) - When read is done, put cluster here.
   89          * On receiving, if sbuf is full and fbuf is 0, packet is dropped.
   90          */
   91         caddr_t         bd_sbuf;        /* store slot */
   92         caddr_t         bd_hbuf;        /* hold slot */
   93         caddr_t         bd_fbuf;        /* free slot */
   94         int             bd_slen;        /* current length of store buffer */
   95         int             bd_hlen;        /* current length of hold buffer */
   96 
   97         int             bd_bufsize;     /* absolute length of buffers */
   98 
   99         struct bpf_if * bd_bif;         /* interface descriptor */
  100         u_long          bd_rtout;       /* Read timeout in 'ticks' */
  101         struct bpf_insn *bd_filter;     /* filter code */
  102         u_long          bd_rcount;      /* number of packets received */
  103         u_long          bd_dcount;      /* number of packets dropped */
  104 
  105         u_char          bd_promisc;     /* true if listening promiscuously */
  106         u_char          bd_state;       /* idle, waiting, or timed out */
  107         u_char          bd_immediate;   /* true to return on packet arrival */
  108         int             bd_async;       /* non-zero if packet reception should generate signal */
  109         int             bd_sig;         /* signal to send upon packet reception */
  110 #ifdef __APPLE__
  111         pid_t           bd_sigio;
  112 #else
  113         struct sigio *  bd_sigio;       /* information for async I/O */
  114 #endif
  115 
  116 #if BSD < 199103
  117         u_char          bd_selcoll;     /* true if selects collide */
  118         int             bd_timedout;
  119         struct proc *   bd_selproc;     /* process that last selected us */
  120 #else
  121         u_char          bd_pad;         /* explicit alignment */
  122         struct selinfo  bd_sel;         /* bsd select info */
  123 #endif
  124         int             bd_hdrcmplt;    /* false to fill in src lladdr automatically */
  125         int             bd_seesent;     /* true if bpf should see sent packets */
  126 
  127 };
  128 
  129 /*
  130  * Descriptor associated with each attached hardware interface.
  131  */
  132 struct bpf_if {
  133         struct bpf_if *bif_next;        /* list of all interfaces */
  134         struct bpf_d *bif_dlist;        /* descriptor list */
  135         u_int bif_dlt;                  /* link layer type */
  136         u_int bif_hdrlen;               /* length of header (with padding) */
  137         struct ifnet *bif_ifp;          /* corresponding interface */
  138 };
  139 
  140 #endif /* __APPLE_API_PRIVATE */
  141 #endif

Cache object: 80b360e805d49bcae4a1c21d60280983


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.