003 File Manager
Current Path:
/usr/include/net
usr
/
include
/
net
/
📁
..
📁
altq
📄
bpf.h
(14.6 KB)
📄
bpf_buffer.h
(2.04 KB)
📄
bpf_jitter.h
(3.3 KB)
📄
bpf_zerocopy.h
(2.36 KB)
📄
bpfdesc.h
(6.04 KB)
📄
bridgestp.h
(13.06 KB)
📄
debugnet.h
(8.54 KB)
📄
debugnet_int.h
(3.11 KB)
📄
dlt.h
(44.23 KB)
📄
ethernet.h
(22.17 KB)
📄
firewire.h
(3.95 KB)
📄
ieee8023ad_lacp.h
(9.22 KB)
📄
ieee_oui.h
(3.64 KB)
📄
if.h
(22.3 KB)
📄
if_arp.h
(5.41 KB)
📄
if_bridgevar.h
(11.54 KB)
📄
if_clone.h
(3.38 KB)
📄
if_dl.h
(3.56 KB)
📄
if_enc.h
(1.65 KB)
📄
if_gif.h
(4.16 KB)
📄
if_gre.h
(5.69 KB)
📄
if_ipsec.h
(1.62 KB)
📄
if_lagg.h
(8.94 KB)
📄
if_llatbl.h
(9.52 KB)
📄
if_llc.h
(4.53 KB)
📄
if_media.h
(36.45 KB)
📄
if_mib.h
(5.58 KB)
📄
if_pflog.h
(2.24 KB)
📄
if_pfsync.h
(6.85 KB)
📄
if_sppp.h
(8.37 KB)
📄
if_tap.h
(2.54 KB)
📄
if_tun.h
(1.43 KB)
📄
if_types.h
(12.2 KB)
📄
if_var.h
(29.92 KB)
📄
if_vlan_var.h
(6.1 KB)
📄
if_vxlan.h
(4.71 KB)
📄
iflib.h
(14.41 KB)
📄
iflib_private.h
(2.31 KB)
📄
ifq.h
(12.2 KB)
📄
infiniband.h
(2.64 KB)
📄
mp_ring.h
(2.77 KB)
📄
mppc.h
(2.37 KB)
📄
netisr.h
(9.31 KB)
📄
netisr_internal.h
(4.77 KB)
📄
netmap.h
(32.93 KB)
📄
netmap_legacy.h
(9.49 KB)
📄
netmap_user.h
(30.33 KB)
📄
netmap_virt.h
(3.89 KB)
📄
paravirt.h
(6.91 KB)
📄
pfil.h
(5.86 KB)
📄
pfkeyv2.h
(14.54 KB)
📄
pfvar.h
(48.83 KB)
📄
ppp_defs.h
(5.41 KB)
📄
radix.h
(6.83 KB)
📄
raw_cb.h
(3.04 KB)
📄
rndis.h
(10.74 KB)
📁
route
📄
route.h
(16.54 KB)
📄
rss_config.h
(4.69 KB)
📄
sff8436.h
(8.3 KB)
📄
sff8472.h
(18.95 KB)
📄
slcompress.h
(6.4 KB)
📄
toeplitz.h
(1.72 KB)
📄
vnet.h
(14.62 KB)
Editing: mp_ring.h
/*- * Copyright (c) 2014 Chelsio Communications, Inc. * All rights reserved. * Written by: Navdeep Parhar <np@FreeBSD.org> * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD$ * */ #ifndef __NET_MP_RING_H #define __NET_MP_RING_H #ifndef _KERNEL #error "no user-serviceable parts inside" #endif struct ifmp_ring; typedef u_int (*mp_ring_drain_t)(struct ifmp_ring *, u_int, u_int); typedef u_int (*mp_ring_can_drain_t)(struct ifmp_ring *); typedef void (*mp_ring_serial_t)(struct ifmp_ring *); #if defined(__powerpc__) || defined(__mips__) || defined(__i386__) #define MP_RING_NO_64BIT_ATOMICS #endif struct ifmp_ring { volatile uint64_t state __aligned(CACHE_LINE_SIZE); int size __aligned(CACHE_LINE_SIZE); void * cookie; struct malloc_type * mt; mp_ring_drain_t drain; mp_ring_can_drain_t can_drain; /* cheap, may be unreliable */ counter_u64_t enqueues; counter_u64_t drops; counter_u64_t starts; counter_u64_t stalls; counter_u64_t restarts; /* recovered after stalling */ counter_u64_t abdications; #ifdef MP_RING_NO_64BIT_ATOMICS struct mtx lock; #endif void * volatile items[] __aligned(CACHE_LINE_SIZE); }; int ifmp_ring_alloc(struct ifmp_ring **, int, void *, mp_ring_drain_t, mp_ring_can_drain_t, struct malloc_type *, int); void ifmp_ring_free(struct ifmp_ring *); int ifmp_ring_enqueue(struct ifmp_ring *, void **, int, int, int); void ifmp_ring_check_drainage(struct ifmp_ring *, int); void ifmp_ring_reset_stats(struct ifmp_ring *); int ifmp_ring_is_idle(struct ifmp_ring *); int ifmp_ring_is_stalled(struct ifmp_ring *r); #endif
Upload File
Create Folder