Date: Wed, 26 Apr 2006 21:41:44 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 96166 for review Message-ID: <200604262141.k3QLficD059452@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=96166 Change 96166 by marcel@marcel_nfs on 2006/04/26 21:41:38 IFC @96165 Affected files ... .. //depot/projects/uart/amd64/amd64/pmap.c#34 integrate .. //depot/projects/uart/dev/ath/if_ath.c#28 integrate .. //depot/projects/uart/dev/atkbdc/atkbd.c#2 integrate .. //depot/projects/uart/dev/atkbdc/atkbdc.c#3 integrate .. //depot/projects/uart/dev/atkbdc/atkbdc_isa.c#2 integrate .. //depot/projects/uart/dev/bce/if_bcereg.h#3 integrate .. //depot/projects/uart/dev/ppc/ppc_puc.c#6 integrate .. //depot/projects/uart/dev/sk/if_sk.c#1 branch .. //depot/projects/uart/dev/sk/if_skreg.h#1 branch .. //depot/projects/uart/dev/sk/xmaciireg.h#1 branch .. //depot/projects/uart/dev/sk/yukonreg.h#1 branch .. //depot/projects/uart/dev/uart/uart_bus_pci.c#17 integrate .. //depot/projects/uart/kern/sched_4bsd.c#10 integrate .. //depot/projects/uart/net80211/ieee80211.c#13 integrate .. //depot/projects/uart/sys/mac_policy.h#10 integrate Differences ... ==== //depot/projects/uart/amd64/amd64/pmap.c#34 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.549 2006/04/21 04:50:18 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.550 2006/04/26 21:34:07 peter Exp $"); /* * Manages physical address maps. @@ -1449,6 +1449,9 @@ static uint64_t pc_freemask[3] = { PC_FREE0, PC_FREE1, PC_FREE2 }; +SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, + "Current number of pv entries"); + #ifdef PV_STATS static int pc_chunk_count, pc_chunk_allocs, pc_chunk_frees, pc_chunk_tryfail; @@ -1464,8 +1467,6 @@ static long pv_entry_frees, pv_entry_allocs; static int pv_entry_spare; -SYSCTL_INT(_vm_pmap, OID_AUTO, pv_entry_count, CTLFLAG_RD, &pv_entry_count, 0, - "Current number of pv entries"); SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_frees, CTLFLAG_RD, &pv_entry_frees, 0, "Current number of pv entry frees"); SYSCTL_LONG(_vm_pmap, OID_AUTO, pv_entry_allocs, CTLFLAG_RD, &pv_entry_allocs, 0, ==== //depot/projects/uart/dev/ath/if_ath.c#28 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.141 2006/04/25 22:52:28 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.142 2006/04/26 16:02:36 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -4586,6 +4586,9 @@ HAL_BOOL outdoor, HAL_BOOL xchanmode) { #define COMPAT (CHANNEL_ALL_NOTURBO|CHANNEL_PASSIVE) +#define IS_CHAN_PUBLIC_SAFETY(_c) \ + (((_c)->channelFlags & CHANNEL_5GHZ) && \ + ((_c)->channel > 4940 && (_c)->channel < 4990)) struct ieee80211com *ic = &sc->sc_ic; struct ifnet *ifp = sc->sc_ifp; struct ath_hal *ah = sc->sc_ah; @@ -4618,7 +4621,16 @@ HAL_CHANNEL *c = &chans[i]; u_int16_t flags; - ix = ath_hal_mhz2ieee(ah, c->channel, c->channelFlags); + /* + * XXX we're not ready to handle the ieee number mapping + * for public safety channels as they overlap with any + * 2GHz channels; for now use the non-public safety + * numbering which is non-overlapping. + */ + if (IS_CHAN_PUBLIC_SAFETY(c)) + ix = (c->channel - 4000) / 5; + else + ix = ath_hal_mhz2ieee(ah, c->channel, c->channelFlags); if (ix > IEEE80211_CHAN_MAX) { if_printf(ifp, "bad hal channel %d (%u/%x) ignored\n", ix, c->channel, c->channelFlags); @@ -4651,6 +4663,7 @@ } free(chans, M_TEMP); return 0; +#undef IS_CHAN_PUBLIC_SAFETY #undef COMPAT } ==== //depot/projects/uart/dev/atkbdc/atkbd.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbd.c,v 1.47 2005/06/10 20:56:37 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbd.c,v 1.48 2006/04/26 06:05:16 sobomax Exp $"); #include "opt_kbd.h" #include "opt_atkbd.h" @@ -282,11 +282,12 @@ int arg[2]; int i; - /* probe the keyboard controller */ - atkbdc_configure(); - - /* if the driver is disabled, unregister the keyboard if any */ - if (resource_disabled("atkbd", ATKBD_DEFAULT)) { + /* + * Probe the keyboard controller, if not present or if the driver + * is disabled, unregister the keyboard if any. + */ + if (atkbdc_configure() != 0 || + resource_disabled("atkbd", ATKBD_DEFAULT)) { i = kbd_find_keyboard(ATKBD_DRIVER_NAME, ATKBD_DEFAULT); if (i >= 0) { kbd = kbd_get_keyboard(i); ==== //depot/projects/uart/dev/atkbdc/atkbdc.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbdc.c,v 1.22 2005/12/04 02:12:40 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbdc.c,v 1.23 2006/04/26 06:05:16 sobomax Exp $"); #include "opt_kbd.h" @@ -153,6 +153,10 @@ bus_space_tag_t tag; bus_space_handle_t h0; bus_space_handle_t h1; +#if defined(__i386__) + volatile int i; + register_t flags; +#endif #ifdef __sparc64__ char name[32]; phandle_t chosen, node; @@ -219,6 +223,26 @@ h1 = (bus_space_handle_t)port1; #endif #endif + +#if defined(__i386__) + /* + * Check if we really have AT keyboard controller. Poll status + * register until we get "all clear" indication. If no such + * indication comes, it probably means that there is no AT + * keyboard controller present. Give up in such case. Check relies + * on the fact that reading from non-existing in/out port returns + * 0xff on i386. May or may not be true on other platforms. + */ + flags = intr_disable(); + for (i = 0; i != 65535; i++) { + if ((bus_space_read_1(tag, h1, 0) & 0x2) == 0) + break; + } + intr_restore(flags); + if (i == 65535) + return ENXIO; +#endif + return atkbdc_setup(atkbdc_softc[0], tag, h0, h1); } ==== //depot/projects/uart/dev/atkbdc/atkbdc_isa.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbdc_isa.c,v 1.33 2005/06/10 20:56:37 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/atkbdc/atkbdc_isa.c,v 1.34 2006/04/26 06:05:16 sobomax Exp $"); #include "opt_kbd.h" @@ -93,6 +93,12 @@ u_long count; int error; int rid; +#if defined(__i386__) + bus_space_tag_t tag; + bus_space_handle_t ioh1; + volatile int i; + register_t flags; +#endif /* check PnP IDs */ if (ISA_PNP_PROBE(device_get_parent(dev), dev, atkbdc_ids) == ENXIO) @@ -127,6 +133,31 @@ bus_release_resource(dev, SYS_RES_IOPORT, 0, port0); return ENXIO; } + +#if defined(__i386__) + /* + * Check if we really have AT keyboard controller. Poll status + * register until we get "all clear" indication. If no such + * indication comes, it probably means that there is no AT + * keyboard controller present. Give up in such case. Check relies + * on the fact that reading from non-existing in/out port returns + * 0xff on i386. May or may not be true on other platforms. + */ + tag = rman_get_bustag(port0); + ioh1 = rman_get_bushandle(port1); + flags = intr_disable(); + for (i = 0; i != 65535; i++) { + if ((bus_space_read_1(tag, ioh1, 0) & 0x2) == 0) + break; + } + intr_restore(flags); + if (i == 65535) { + bus_release_resource(dev, SYS_RES_IOPORT, 0, port0); + bus_release_resource(dev, SYS_RES_IOPORT, 1, port1); + return ENXIO; + } +#endif + device_verbose(dev); error = atkbdc_probe_unit(device_get_unit(dev), port0, port1); ==== //depot/projects/uart/dev/bce/if_bcereg.h#3 (text) ==== @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/bce/if_bcereg.h,v 1.2 2006/04/25 19:18:48 jhb Exp $ + * $FreeBSD: src/sys/dev/bce/if_bcereg.h,v 1.3 2006/04/26 16:33:58 ps Exp $ */ #ifndef _BCE_H_DEFINED @@ -709,13 +709,11 @@ #define PCI_SETBIT(dev, reg, x, s) pci_write_config(dev, reg, (pci_read_config(dev, reg, s) | (x)), s) #define PCI_CLRBIT(dev, reg, x, s) pci_write_config(dev, reg, (pci_read_config(dev, reg, s) & ~(x)), s) +#define BCE_STATS(x) (u_long) stats->stat_ ## x ## _lo #if (BUS_SPACE_MAXADDR > 0xFFFFFFFF) -#define BCE_STATS(x) ((u_long) stats->stat_ ## x ## _hi << 32) + \ - (u_long) stats->stat_ ## x ## _lo #define BCE_ADDR_LO(y) ((u64) (y) & 0xFFFFFFFF) #define BCE_ADDR_HI(y) ((u64) (y) >> 32) #else -#define BCE_STATS(x) (u_long) stats->stat_ ## x ## _lo #define BCE_ADDR_LO(y) ((u32)y) #define BCE_ADDR_HI(y) (0) #endif ==== //depot/projects/uart/dev/ppc/ppc_puc.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc_puc.c,v 1.3 2006/04/24 23:31:51 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ppc/ppc_puc.c,v 1.4 2006/04/26 21:25:13 marcel Exp $"); #include <sys/param.h> #include <sys/kernel.h> ==== //depot/projects/uart/dev/uart/uart_bus_pci.c#17 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_pci.c,v 1.6 2005/10/26 01:49:11 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_bus_pci.c,v 1.7 2006/04/26 21:31:31 marcel Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -69,27 +69,27 @@ }; static struct pci_id pci_ns8250_ids[] = { -{ 0x1028, 0x0008, 0xffff, 0, "Dell - Remote Access Card III", 0x14, 128 * DEFAULT_RCLK }, -{ 0x1028, 0x0012, 0xffff, 0, "Dell - Remote Access Card 4 Daughter Card Virtual UART", 0x14, 128 * DEFAULT_RCLK }, -{ 0x1033, 0x0074, 0x1033, 0x8014, "NEC - RCV56ACF 56k Voice Modem", 0x10 }, -{ 0x1033, 0x007d, 0x1033, 0x8012, "NEC - RS232C", 0x10 }, -{ 0x11c1, 0x0480, 0xffff, 0, "Agere Systems - Venus Modem (V90, 56KFlex)", 0x14 }, -{ 0x115d, 0x0103, 0xffff, 0, "Xircom - Cardbus Ethernet + 56k Modem", 0x10 }, -{ 0x12b9, 0x1008, 0xffff, 0, "3Com - 56K FaxModem Model 5610", 0x10 }, -{ 0x131f, 0x1000, 0xffff, 0, "Siig - CyberSerial (1-port) 16550", 0x18 }, -{ 0x131f, 0x1001, 0xffff, 0, "Siig - CyberSerial (1-port) 16650", 0x18 }, -{ 0x131f, 0x1002, 0xffff, 0, "Siig - CyberSerial (1-port) 16850", 0x18 }, -{ 0x131f, 0x2000, 0xffff, 0, "Siig - CyberSerial (1-port) 16550", 0x10 }, -{ 0x131f, 0x2001, 0xffff, 0, "Siig - CyberSerial (1-port) 16650", 0x10 }, -{ 0x131f, 0x2002, 0xffff, 0, "Siig - CyberSerial (1-port) 16850", 0x10 }, -{ 0x135c, 0x0190, 0xffff, 0, "Quatech - SSCLP-100", 0x18 }, -{ 0x135c, 0x01c0, 0xffff, 0, "Quatech - SSCLP-200/300", 0x18 }, -{ 0x135e, 0x7101, 0xffff, 0, "Sealevel Systems - Single Port RS-232/422/485/530", 0x18 }, -{ 0x1407, 0x0110, 0xffff, 0, "Lava Computer mfg - DSerial-PCI Port A", 0x10 }, -{ 0x1407, 0x0111, 0xffff, 0, "Lava Computer mfg - DSerial-PCI Port B", 0x10 }, -{ 0x1415, 0x950b, 0xffff, 0, "Oxford Semiconductor - OXCB950 Cardbus 16950 UART", 0x10, 16384000 }, -{ 0x151f, 0x0000, 0xffff, 0, "TOPIC SEMICONDUCTOR - TP560 Data/Fax/Voice 56k modem", 0x10 }, -{ 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital - PC Weasel Serial Port", 0x10 }, +{ 0x1028, 0x0008, 0xffff, 0, "Dell Remote Access Card III", 0x14, 128 * DEFAULT_RCLK }, +{ 0x1028, 0x0012, 0xffff, 0, "Dell Remote Access Card 4 Daughter Card Virtual UART", 0x14, 128 * DEFAULT_RCLK }, +{ 0x1033, 0x0074, 0x1033, 0x8014, "NEC RCV56ACF 56k Voice Modem", 0x10 }, +{ 0x1033, 0x007d, 0x1033, 0x8012, "NEC RS232C", 0x10 }, +{ 0x11c1, 0x0480, 0xffff, 0, "Agere Systems Venus Modem (V90, 56KFlex)", 0x14 }, +{ 0x115d, 0x0103, 0xffff, 0, "Xircom Cardbus Ethernet + 56k Modem", 0x10 }, +{ 0x12b9, 0x1008, 0xffff, 0, "3Com 56K FaxModem Model 5610", 0x10 }, +{ 0x131f, 0x1000, 0xffff, 0, "Siig CyberSerial (1-port) 16550", 0x18 }, +{ 0x131f, 0x1001, 0xffff, 0, "Siig CyberSerial (1-port) 16650", 0x18 }, +{ 0x131f, 0x1002, 0xffff, 0, "Siig CyberSerial (1-port) 16850", 0x18 }, +{ 0x131f, 0x2000, 0xffff, 0, "Siig CyberSerial (1-port) 16550", 0x10 }, +{ 0x131f, 0x2001, 0xffff, 0, "Siig CyberSerial (1-port) 16650", 0x10 }, +{ 0x131f, 0x2002, 0xffff, 0, "Siig CyberSerial (1-port) 16850", 0x10 }, +{ 0x135c, 0x0190, 0xffff, 0, "Quatech SSCLP-100", 0x18 }, +{ 0x135c, 0x01c0, 0xffff, 0, "Quatech SSCLP-200/300", 0x18 }, +{ 0x135e, 0x7101, 0xffff, 0, "Sealevel Systems Single Port RS-232/422/485/530", 0x18 }, +{ 0x1407, 0x0110, 0xffff, 0, "Lava Computer mfg DSerial-PCI Port A", 0x10 }, +{ 0x1407, 0x0111, 0xffff, 0, "Lava Computer mfg DSerial-PCI Port B", 0x10 }, +{ 0x1415, 0x950b, 0xffff, 0, "Oxford Semiconductor OXCB950 Cardbus 16950 UART", 0x10, 16384000 }, +{ 0x151f, 0x0000, 0xffff, 0, "TOPIC Semiconductor TP560 Data/Fax/Voice 56k modem", 0x10 }, +{ 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital PC Weasel Serial Port", 0x10 }, { 0xffff, 0, 0xffff, 0, NULL, 0, 0} }; ==== //depot/projects/uart/kern/sched_4bsd.c#10 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.78 2006/04/17 18:20:37 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.79 2006/04/26 19:42:38 jmg Exp $"); #include "opt_hwpmc_hooks.h" @@ -406,7 +406,7 @@ /* decay 95% of `ke_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */ static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */ -SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, ""); +SYSCTL_INT(_kern_sched, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, ""); /* * If `ccpu' is not equal to `exp(-1/20)' and you still want to use the ==== //depot/projects/uart/net80211/ieee80211.c#13 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/net80211/ieee80211.c,v 1.28 2006/02/14 17:48:56 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/net80211/ieee80211.c,v 1.29 2006/04/26 16:00:37 sam Exp $"); /* * IEEE 802.11 generic handler @@ -236,7 +236,6 @@ int ieee80211_mhz2ieee(u_int freq, u_int flags) { -#define IS_CHAN_IN_PUBLIC_SAFETY_BAND(_c) ((_c) > 4940 && (_c) < 4990) if (flags & IEEE80211_CHAN_2GHZ) { /* 2GHz band */ if (freq == 2484) return 14; @@ -245,9 +244,6 @@ else return 15 + ((freq - 2512) / 20); } else if (flags & IEEE80211_CHAN_5GHZ) { /* 5Ghz band */ - if (IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) - return ((freq * 10) + - (((freq % 5) == 2) ? 5 : 0) - 49400) / 5; if (freq <= 5000) return (freq - 4000) / 5; else @@ -258,17 +254,13 @@ if (freq < 2484) return ((int) freq - 2407) / 5; if (freq < 5000) { - if (IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) - return ((freq * 10) + - (((freq % 5) == 2) ? 5 : 0) - 49400)/5; - else if (freq > 4900) + if (freq > 4900) return (freq - 4000) / 5; else return 15 + ((freq - 2512) / 20); } return (freq - 5000) / 5; } -#undef IS_CHAN_IN_PUBLIC_SAFETY_BAND } /* ==== //depot/projects/uart/sys/mac_policy.h#10 (text+ko) ==== @@ -1,7 +1,7 @@ /*- * Copyright (c) 1999-2002 Robert N. M. Watson * Copyright (c) 2001-2005 Networks Associates Technology, Inc. - * Copyright (c) 2005 SPARTA, Inc. + * Copyright (c) 2005-2006 SPARTA, Inc. * All rights reserved. * * This software was developed by Robert Watson for the TrustedBSD Project. @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/sys/mac_policy.h,v 1.71 2006/04/06 23:33:11 csjp Exp $ + * $FreeBSD: src/sys/sys/mac_policy.h,v 1.72 2006/04/26 14:18:55 rwatson Exp $ */ /* * Kernel interface for MAC policy modules. @@ -83,523 +83,802 @@ struct uio; struct vattr; struct vnode; -struct mac_policy_ops { - /* - * Policy module operations. - */ - void (*mpo_destroy)(struct mac_policy_conf *mpc); - void (*mpo_init)(struct mac_policy_conf *mpc); + +/* + * Policy module operations. + */ +typedef void (*mpo_destroy_t)(struct mac_policy_conf *mpc); +typedef void (*mpo_init_t)(struct mac_policy_conf *mpc); + +/* + * General policy-directed security system call so that policies may + * implement new services without reserving explicit system call + * numbers. + */ +typedef int (*mpo_syscall_t)(struct thread *td, int call, void *arg); - /* - * General policy-directed security system call so that policies may - * implement new services without reserving explicit system call - * numbers. - */ - int (*mpo_syscall)(struct thread *td, int call, void *arg); +/* + * Place-holder function pointers for ABI-compatibility purposes. + */ +typedef void (*mpo_placeholder_t)(void); - /* - * Label operations. Initialize label storage, destroy label - * storage, recycle for re-use without init/destroy, copy a label to - * initialized storage, and externalize/internalize from/to - * initialized storage. - */ - void (*mpo_init_bpfdesc_label)(struct label *label); - void (*mpo_init_cred_label)(struct label *label); - void (*mpo_init_devfsdirent_label)(struct label *label); - void (*_mpo_placeholder0)(void); - void (*mpo_init_ifnet_label)(struct label *label); - int (*mpo_init_inpcb_label)(struct label *label, int flag); - void (*mpo_init_sysv_msgmsg_label)(struct label *label); - void (*mpo_init_sysv_msgqueue_label)(struct label *label); - void (*mpo_init_sysv_sem_label)(struct label *label); - void (*mpo_init_sysv_shm_label)(struct label *label); - int (*mpo_init_ipq_label)(struct label *label, int flag); - int (*mpo_init_mbuf_label)(struct label *label, int flag); - void (*mpo_init_mount_label)(struct label *label); - void (*mpo_init_mount_fs_label)(struct label *label); - int (*mpo_init_socket_label)(struct label *label, int flag); - int (*mpo_init_socket_peer_label)(struct label *label, int flag); - void (*mpo_init_pipe_label)(struct label *label); - void (*mpo_init_posix_sem_label)(struct label *label); - void (*mpo_init_proc_label)(struct label *label); - void (*mpo_init_vnode_label)(struct label *label); - void (*mpo_destroy_bpfdesc_label)(struct label *label); - void (*mpo_destroy_cred_label)(struct label *label); - void (*mpo_destroy_devfsdirent_label)(struct label *label); - void (*_mpo_placeholder1)(void); - void (*mpo_destroy_ifnet_label)(struct label *label); - void (*mpo_destroy_inpcb_label)(struct label *label); - void (*mpo_destroy_sysv_msgmsg_label)(struct label *label); - void (*mpo_destroy_sysv_msgqueue_label)(struct label *label); - void (*mpo_destroy_sysv_sem_label)(struct label *label); - void (*mpo_destroy_sysv_shm_label)(struct label *label); - void (*mpo_destroy_ipq_label)(struct label *label); - void (*mpo_destroy_mbuf_label)(struct label *label); - void (*mpo_destroy_mount_label)(struct label *label); - void (*mpo_destroy_mount_fs_label)(struct label *label); - void (*mpo_destroy_socket_label)(struct label *label); - void (*mpo_destroy_socket_peer_label)(struct label *label); - void (*mpo_destroy_pipe_label)(struct label *label); - void (*mpo_destroy_posix_sem_label)(struct label *label); - void (*mpo_destroy_proc_label)(struct label *label); - void (*mpo_destroy_vnode_label)(struct label *label); - void (*mpo_cleanup_sysv_msgmsg)(struct label *msglabel); - void (*mpo_cleanup_sysv_msgqueue)(struct label *msqlabel); - void (*mpo_cleanup_sysv_sem)(struct label *semalabel); - void (*mpo_cleanup_sysv_shm)(struct label *shmlabel); - void (*mpo_copy_cred_label)(struct label *src, +/* + * Label operations. Initialize label storage, destroy label + * storage, recycle for re-use without init/destroy, copy a label to + * initialized storage, and externalize/internalize from/to + * initialized storage. + */ +typedef void (*mpo_init_bpfdesc_label_t)(struct label *label); +typedef void (*mpo_init_cred_label_t)(struct label *label); +typedef void (*mpo_init_devfsdirent_label_t)(struct label *label); +typedef void (*mpo_init_ifnet_label_t)(struct label *label); +typedef int (*mpo_init_inpcb_label_t)(struct label *label, int flag); +typedef void (*mpo_init_sysv_msgmsg_label_t)(struct label *label); +typedef void (*mpo_init_sysv_msgqueue_label_t)(struct label *label); +typedef void (*mpo_init_sysv_sem_label_t)(struct label *label); +typedef void (*mpo_init_sysv_shm_label_t)(struct label *label); +typedef int (*mpo_init_ipq_label_t)(struct label *label, int flag); +typedef int (*mpo_init_mbuf_label_t)(struct label *label, int flag); +typedef void (*mpo_init_mount_label_t)(struct label *label); +typedef void (*mpo_init_mount_fs_label_t)(struct label *label); +typedef int (*mpo_init_socket_label_t)(struct label *label, int flag); +typedef int (*mpo_init_socket_peer_label_t)(struct label *label, + int flag); +typedef void (*mpo_init_pipe_label_t)(struct label *label); +typedef void (*mpo_init_posix_sem_label_t)(struct label *label); +typedef void (*mpo_init_proc_label_t)(struct label *label); +typedef void (*mpo_init_vnode_label_t)(struct label *label); +typedef void (*mpo_destroy_bpfdesc_label_t)(struct label *label); +typedef void (*mpo_destroy_cred_label_t)(struct label *label); +typedef void (*mpo_destroy_devfsdirent_label_t)(struct label *label); +typedef void (*mpo_destroy_ifnet_label_t)(struct label *label); +typedef void (*mpo_destroy_inpcb_label_t)(struct label *label); +typedef void (*mpo_destroy_sysv_msgmsg_label_t)(struct label *label); +typedef void (*mpo_destroy_sysv_msgqueue_label_t)(struct label *label); +typedef void (*mpo_destroy_sysv_sem_label_t)(struct label *label); +typedef void (*mpo_destroy_sysv_shm_label_t)(struct label *label); +typedef void (*mpo_destroy_ipq_label_t)(struct label *label); +typedef void (*mpo_destroy_mbuf_label_t)(struct label *label); +typedef void (*mpo_destroy_mount_label_t)(struct label *label); +typedef void (*mpo_destroy_mount_fs_label_t)(struct label *label); +typedef void (*mpo_destroy_socket_label_t)(struct label *label); +typedef void (*mpo_destroy_socket_peer_label_t)(struct label *label); +typedef void (*mpo_destroy_pipe_label_t)(struct label *label); +typedef void (*mpo_destroy_posix_sem_label_t)(struct label *label); +typedef void (*mpo_destroy_proc_label_t)(struct label *label); +typedef void (*mpo_destroy_vnode_label_t)(struct label *label); +typedef void (*mpo_cleanup_sysv_msgmsg_t)(struct label *msglabel); +typedef void (*mpo_cleanup_sysv_msgqueue_t)(struct label *msqlabel); +typedef void (*mpo_cleanup_sysv_sem_t)(struct label *semalabel); +typedef void (*mpo_cleanup_sysv_shm_t)(struct label *shmlabel); +typedef void (*mpo_copy_cred_label_t)(struct label *src, struct label *dest); - void (*mpo_copy_ifnet_label)(struct label *src, +typedef void (*mpo_copy_ifnet_label_t)(struct label *src, struct label *dest); - void (*mpo_copy_mbuf_label)(struct label *src, +typedef void (*mpo_copy_mbuf_label_t)(struct label *src, struct label *dest); - void (*_mpo_placeholder2)(void); - void (*mpo_copy_pipe_label)(struct label *src, +typedef void (*mpo_copy_pipe_label_t)(struct label *src, struct label *dest); - void (*mpo_copy_socket_label)(struct label *src, +typedef void (*mpo_copy_socket_label_t)(struct label *src, struct label *dest); - void (*mpo_copy_vnode_label)(struct label *src, +typedef void (*mpo_copy_vnode_label_t)(struct label *src, struct label *dest); - int (*mpo_externalize_cred_label)(struct label *label, +typedef int (*mpo_externalize_cred_label_t)(struct label *label, char *element_name, struct sbuf *sb, int *claimed); - int (*mpo_externalize_ifnet_label)(struct label *label, +typedef int (*mpo_externalize_ifnet_label_t)(struct label *label, char *element_name, struct sbuf *sb, int *claimed); - void (*_mpo_placeholder3)(void); - int (*mpo_externalize_pipe_label)(struct label *label, +typedef int (*mpo_externalize_pipe_label_t)(struct label *label, char *element_name, struct sbuf *sb, int *claimed); - int (*mpo_externalize_socket_label)(struct label *label, +typedef int (*mpo_externalize_socket_label_t)(struct label *label, char *element_name, struct sbuf *sb, int *claimed); - int (*mpo_externalize_socket_peer_label)(struct label *label, +typedef int (*mpo_externalize_socket_peer_label_t)(struct label *label, char *element_name, struct sbuf *sb, int *claimed); - int (*mpo_externalize_vnode_label)(struct label *label, +typedef int (*mpo_externalize_vnode_label_t)(struct label *label, char *element_name, struct sbuf *sb, int *claimed); - int (*mpo_internalize_cred_label)(struct label *label, +typedef int (*mpo_internalize_cred_label_t)(struct label *label, char *element_name, char *element_data, int *claimed); - int (*mpo_internalize_ifnet_label)(struct label *label, +typedef int (*mpo_internalize_ifnet_label_t)(struct label *label, char *element_name, char *element_data, int *claimed); - void (*_mpo_placeholder4)(void); - int (*mpo_internalize_pipe_label)(struct label *label, +typedef int (*mpo_internalize_pipe_label_t)(struct label *label, char *element_name, char *element_data, int *claimed); - int (*mpo_internalize_socket_label)(struct label *label, +typedef int (*mpo_internalize_socket_label_t)(struct label *label, char *element_name, char *element_data, int *claimed); - int (*mpo_internalize_vnode_label)(struct label *label, +typedef int (*mpo_internalize_vnode_label_t)(struct label *label, char *element_name, char *element_data, int *claimed); - /* - * Labeling event operations: file system objects, and things that - * look a lot like file system objects. - */ - void (*mpo_associate_vnode_devfs)(struct mount *mp, +/* + * Labeling event operations: file system objects, and things that + * look a lot like file system objects. + */ +typedef void (*mpo_associate_vnode_devfs_t)(struct mount *mp, struct label *fslabel, struct devfs_dirent *de, struct label *delabel, struct vnode *vp, struct label *vlabel); - int (*mpo_associate_vnode_extattr)(struct mount *mp, +typedef int (*mpo_associate_vnode_extattr_t)(struct mount *mp, struct label *fslabel, struct vnode *vp, struct label *vlabel); - void (*mpo_associate_vnode_singlelabel)(struct mount *mp, +typedef void (*mpo_associate_vnode_singlelabel_t)(struct mount *mp, struct label *fslabel, struct vnode *vp, struct label *vlabel); - void (*mpo_create_devfs_device)(struct ucred *cred, +typedef void (*mpo_create_devfs_device_t)(struct ucred *cred, struct mount *mp, struct cdev *dev, struct devfs_dirent *de, struct label *label); - void (*mpo_create_devfs_directory)(struct mount *mp, char *dirname, - int dirnamelen, struct devfs_dirent *de, +typedef void (*mpo_create_devfs_directory_t)(struct mount *mp, + char *dirname, int dirnamelen, struct devfs_dirent *de, struct label *label); - void (*mpo_create_devfs_symlink)(struct ucred *cred, +typedef void (*mpo_create_devfs_symlink_t)(struct ucred *cred, struct mount *mp, struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de, struct label *delabel); - void (*_mpo_placeholder5)(void); - int (*mpo_create_vnode_extattr)(struct ucred *cred, +typedef int (*mpo_create_vnode_extattr_t)(struct ucred *cred, struct mount *mp, struct label *fslabel, struct vnode *dvp, struct label *dlabel, struct vnode *vp, struct label *vlabel, struct componentname *cnp); - void (*mpo_create_mount)(struct ucred *cred, struct mount *mp, +typedef void (*mpo_create_mount_t)(struct ucred *cred, struct mount *mp, struct label *mntlabel, struct label *fslabel); - void (*mpo_relabel_vnode)(struct ucred *cred, struct vnode *vp, +typedef void (*mpo_relabel_vnode_t)(struct ucred *cred, struct vnode *vp, struct label *vnodelabel, struct label *label); - int (*mpo_setlabel_vnode_extattr)(struct ucred *cred, +typedef int (*mpo_setlabel_vnode_extattr_t)(struct ucred *cred, struct vnode *vp, struct label *vlabel, struct label *intlabel); - void (*mpo_update_devfsdirent)(struct mount *mp, +typedef void (*mpo_update_devfsdirent_t)(struct mount *mp, struct devfs_dirent *devfs_dirent, struct label *direntlabel, struct vnode *vp, struct label *vnodelabel); - /* - * Labeling event operations: IPC objects. - */ - void (*mpo_create_mbuf_from_socket)(struct socket *so, +/* + * Labeling event operations: IPC objects. + */ +typedef void (*mpo_create_mbuf_from_socket_t)(struct socket *so, struct label *socketlabel, struct mbuf *m, struct label *mbuflabel); - void (*mpo_create_socket)(struct ucred *cred, struct socket *so, +typedef void (*mpo_create_socket_t)(struct ucred *cred, struct socket *so, struct label *socketlabel); - void (*mpo_create_socket_from_socket)(struct socket *oldsocket, +typedef void (*mpo_create_socket_from_socket_t)(struct socket *oldsocket, struct label *oldsocketlabel, struct socket *newsocket, struct label *newsocketlabel); - void (*mpo_relabel_socket)(struct ucred *cred, struct socket *so, +typedef void (*mpo_relabel_socket_t)(struct ucred *cred, struct socket *so, struct label *oldlabel, struct label *newlabel); - void (*mpo_relabel_pipe)(struct ucred *cred, struct pipepair *pp, +typedef void (*mpo_relabel_pipe_t)(struct ucred *cred, struct pipepair *pp, struct label *oldlabel, struct label *newlabel); - void (*mpo_set_socket_peer_from_mbuf)(struct mbuf *mbuf, +typedef void (*mpo_set_socket_peer_from_mbuf_t)(struct mbuf *mbuf, struct label *mbuflabel, struct socket *so, struct label *socketpeerlabel); - void (*mpo_set_socket_peer_from_socket)(struct socket *oldsocket, +typedef void (*mpo_set_socket_peer_from_socket_t)(struct socket *oldsocket, struct label *oldsocketlabel, struct socket *newsocket, struct label *newsocketpeerlabel); - void (*mpo_create_pipe)(struct ucred *cred, struct pipepair *pp, +typedef void (*mpo_create_pipe_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel); - /* - * Labeling event operations: System V IPC primitives. - */ - void (*mpo_create_sysv_msgmsg)(struct ucred *cred, +/* + * Labeling event operations: System V IPC primitives. + */ +typedef void (*mpo_create_sysv_msgmsg_t)(struct ucred *cred, struct msqid_kernel *msqkptr, struct label *msqlabel, struct msg *msgptr, struct label *msglabel); - void (*mpo_create_sysv_msgqueue)(struct ucred *cred, +typedef void (*mpo_create_sysv_msgqueue_t)(struct ucred *cred, struct msqid_kernel *msqkptr, struct label *msqlabel); - void (*mpo_create_sysv_sem)(struct ucred *cred, +typedef void (*mpo_create_sysv_sem_t)(struct ucred *cred, struct semid_kernel *semakptr, struct label *semalabel); - void (*mpo_create_sysv_shm)(struct ucred *cred, +typedef void (*mpo_create_sysv_shm_t)(struct ucred *cred, struct shmid_kernel *shmsegptr, struct label *shmlabel); - /* - * Labeling event operations: POSIX (global/inter-process) semaphores. - */ - void (*mpo_create_posix_sem)(struct ucred *cred, +/* + * Labeling event operations: POSIX (global/inter-process) semaphores. + */ +typedef void (*mpo_create_posix_sem_t)(struct ucred *cred, struct ksem *ksemptr, struct label *ks_label); - /* - * Labeling event operations: network objects. - */ - void (*mpo_create_bpfdesc)(struct ucred *cred, struct bpf_d *bpf_d, - struct label *bpflabel); - void (*mpo_create_ifnet)(struct ifnet *ifnet, +/* + * Labeling event operations: network objects. + */ +typedef void (*mpo_create_bpfdesc_t)(struct ucred *cred, + struct bpf_d *bpf_d, struct label *bpflabel); +typedef void (*mpo_create_ifnet_t)(struct ifnet *ifnet, struct label *ifnetlabel); - void (*mpo_create_inpcb_from_socket)(struct socket *so, +typedef void (*mpo_create_inpcb_from_socket_t)(struct socket *so, struct label *solabel, struct inpcb *inp, struct label *inplabel); - void (*mpo_create_ipq)(struct mbuf *fragment, +typedef void (*mpo_create_ipq_t)(struct mbuf *fragment, struct label *fragmentlabel, struct ipq *ipq, struct label *ipqlabel); - void (*mpo_create_datagram_from_ipq) +typedef void (*mpo_create_datagram_from_ipq) (struct ipq *ipq, struct label *ipqlabel, struct mbuf *datagram, struct label *datagramlabel); - void (*mpo_create_fragment)(struct mbuf *datagram, +typedef void (*mpo_create_fragment_t)(struct mbuf *datagram, struct label *datagramlabel, struct mbuf *fragment, struct label *fragmentlabel); - void (*mpo_create_mbuf_from_inpcb)(struct inpcb *inp, +typedef void (*mpo_create_mbuf_from_inpcb_t)(struct inpcb *inp, struct label *inplabel, struct mbuf *m, struct label *mlabel); - void (*mpo_create_mbuf_linklayer)(struct ifnet *ifnet, +typedef void (*mpo_create_mbuf_linklayer_t)(struct ifnet *ifnet, struct label *ifnetlabel, struct mbuf *mbuf, struct label *mbuflabel); - void (*mpo_create_mbuf_from_bpfdesc)(struct bpf_d *bpf_d, +typedef void (*mpo_create_mbuf_from_bpfdesc_t)(struct bpf_d *bpf_d, struct label *bpflabel, struct mbuf *mbuf, struct label *mbuflabel); - void (*mpo_create_mbuf_from_ifnet)(struct ifnet *ifnet, +typedef void (*mpo_create_mbuf_from_ifnet_t)(struct ifnet *ifnet, struct label *ifnetlabel, struct mbuf *mbuf, struct label *mbuflabel); - void (*mpo_create_mbuf_multicast_encap)(struct mbuf *oldmbuf, +typedef void (*mpo_create_mbuf_multicast_encap_t)(struct mbuf *oldmbuf, struct label *oldmbuflabel, struct ifnet *ifnet, struct label *ifnetlabel, struct mbuf *newmbuf, struct label *newmbuflabel); - void (*mpo_create_mbuf_netlayer)(struct mbuf *oldmbuf, +typedef void (*mpo_create_mbuf_netlayer_t)(struct mbuf *oldmbuf, struct label *oldmbuflabel, struct mbuf *newmbuf, struct label *newmbuflabel); - int (*mpo_fragment_match)(struct mbuf *fragment, +typedef int (*mpo_fragment_match_t)(struct mbuf *fragment, struct label *fragmentlabel, struct ipq *ipq, struct label *ipqlabel); - void (*mpo_reflect_mbuf_icmp)(struct mbuf *m, +typedef void (*mpo_reflect_mbuf_icmp_t)(struct mbuf *m, + struct label *mlabel); +typedef void (*mpo_reflect_mbuf_tcp_t)(struct mbuf *m, struct label *mlabel); - void (*mpo_reflect_mbuf_tcp)(struct mbuf *m, struct label *mlabel); - void (*mpo_relabel_ifnet)(struct ucred *cred, struct ifnet *ifnet, - struct label *ifnetlabel, struct label *newlabel); - void (*mpo_update_ipq)(struct mbuf *fragment, +typedef void (*mpo_relabel_ifnet_t)(struct ucred *cred, + struct ifnet *ifnet, struct label *ifnetlabel, + struct label *newlabel); +typedef void (*mpo_update_ipq_t)(struct mbuf *fragment, struct label *fragmentlabel, struct ipq *ipq, struct label *ipqlabel); - void (*mpo_inpcb_sosetlabel)(struct socket *so, +typedef void (*mpo_inpcb_sosetlabel_t)(struct socket *so, struct label *label, struct inpcb *inp, struct label *inplabel); - /* - * Labeling event operations: processes. - */ - void (*mpo_execve_transition)(struct ucred *old, struct ucred *new, - struct vnode *vp, struct label *vnodelabel, - struct label *interpvnodelabel, +/* + * Labeling event operations: processes. + */ +typedef void (*mpo_execve_transition_t)(struct ucred *old, + struct ucred *new, struct vnode *vp, + struct label *vnodelabel, struct label *interpvnodelabel, struct image_params *imgp, struct label *execlabel); - int (*mpo_execve_will_transition)(struct ucred *old, +typedef int (*mpo_execve_will_transition_t)(struct ucred *old, struct vnode *vp, struct label *vnodelabel, struct label *interpvnodelabel, struct image_params *imgp, struct label *execlabel); - void (*mpo_create_proc0)(struct ucred *cred); - void (*mpo_create_proc1)(struct ucred *cred); - void (*mpo_relabel_cred)(struct ucred *cred, +typedef void (*mpo_create_proc0_t)(struct ucred *cred); +typedef void (*mpo_create_proc1_t)(struct ucred *cred); +typedef void (*mpo_relabel_cred_t)(struct ucred *cred, struct label *newlabel); - void (*_mpo_placeholder6)(void); - void (*mpo_thread_userret)(struct thread *thread); +typedef void (*mpo_thread_userret_t)(struct thread *thread); - /* - * Access control checks. - */ - int (*mpo_check_bpfdesc_receive)(struct bpf_d *bpf_d, +/* + * Access control checks. + */ +typedef int (*mpo_check_bpfdesc_receive_t)(struct bpf_d *bpf_d, struct label *bpflabel, struct ifnet *ifnet, struct label *ifnetlabel); - void (*_mpo_placeholder7)(void); - int (*mpo_check_cred_relabel)(struct ucred *cred, +typedef int (*mpo_check_cred_relabel_t)(struct ucred *cred, struct label *newlabel); - int (*mpo_check_cred_visible)(struct ucred *u1, struct ucred *u2); - void (*_mpo_placeholder8)(void); - void (*_mpo_placeholder9)(void); - void (*_mpo_placeholder10)(void); - void (*_mpo_placeholder11)(void); - void (*_mpo_placeholder12)(void); - void (*_mpo_placeholder13)(void); - void (*_mpo_placeholder14)(void); - void (*_mpo_placeholder15)(void); - void (*_mpo_placeholder16)(void); - void (*_mpo_placeholder17)(void); - void (*_mpo_placeholder18)(void); - int (*mpo_check_ifnet_relabel)(struct ucred *cred, +typedef int (*mpo_check_cred_visible_t)(struct ucred *u1, + struct ucred *u2); +typedef int (*mpo_check_ifnet_relabel_t)(struct ucred *cred, struct ifnet *ifnet, struct label *ifnetlabel, struct label *newlabel); - int (*mpo_check_ifnet_transmit)(struct ifnet *ifnet, +typedef int (*mpo_check_ifnet_transmit_t)(struct ifnet *ifnet, struct label *ifnetlabel, struct mbuf *m, struct label *mbuflabel); - int (*mpo_check_inpcb_deliver)(struct inpcb *inp, +typedef int (*mpo_check_inpcb_deliver_t)(struct inpcb *inp, struct label *inplabel, struct mbuf *m, struct label *mlabel); - int (*mpo_check_sysv_msgmsq)(struct ucred *cred, +typedef int (*mpo_check_sysv_msgmsq_t)(struct ucred *cred, struct msg *msgptr, struct label *msglabel, struct msqid_kernel *msqkptr, struct label *msqklabel); - int (*mpo_check_sysv_msgrcv)(struct ucred *cred, +typedef int (*mpo_check_sysv_msgrcv_t)(struct ucred *cred, struct msg *msgptr, struct label *msglabel); - int (*mpo_check_sysv_msgrmid)(struct ucred *cred, +typedef int (*mpo_check_sysv_msgrmid_t)(struct ucred *cred, struct msg *msgptr, struct label *msglabel); - int (*mpo_check_sysv_msqget)(struct ucred *cred, +typedef int (*mpo_check_sysv_msqget_t)(struct ucred *cred, struct msqid_kernel *msqkptr, struct label *msqklabel); - int (*mpo_check_sysv_msqsnd)(struct ucred *cred, +typedef int (*mpo_check_sysv_msqsnd_t)(struct ucred *cred, struct msqid_kernel *msqkptr, struct label *msqklabel); - int (*mpo_check_sysv_msqrcv)(struct ucred *cred, +typedef int (*mpo_check_sysv_msqrcv_t)(struct ucred *cred, struct msqid_kernel *msqkptr, struct label *msqklabel); - int (*mpo_check_sysv_msqctl)(struct ucred *cred, +typedef int (*mpo_check_sysv_msqctl_t)(struct ucred *cred, struct msqid_kernel *msqkptr, struct label *msqklabel, int cmd); - int (*mpo_check_sysv_semctl)(struct ucred *cred, +typedef int (*mpo_check_sysv_semctl_t)(struct ucred *cred, struct semid_kernel *semakptr, struct label *semaklabel, int cmd); - int (*mpo_check_sysv_semget)(struct ucred *cred, +typedef int (*mpo_check_sysv_semget_t)(struct ucred *cred, struct semid_kernel *semakptr, struct label *semaklabel); - int (*mpo_check_sysv_semop)(struct ucred *cred, +typedef int (*mpo_check_sysv_semop_t)(struct ucred *cred, struct semid_kernel *semakptr, struct label *semaklabel, size_t accesstype); - int (*mpo_check_sysv_shmat)(struct ucred *cred, +typedef int (*mpo_check_sysv_shmat_t)(struct ucred *cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg); - int (*mpo_check_sysv_shmctl)(struct ucred *cred, +typedef int (*mpo_check_sysv_shmctl_t)(struct ucred *cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel, int cmd); - int (*mpo_check_sysv_shmdt)(struct ucred *cred, +typedef int (*mpo_check_sysv_shmdt_t)(struct ucred *cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel); - int (*mpo_check_sysv_shmget)(struct ucred *cred, +typedef int (*mpo_check_sysv_shmget_t)(struct ucred *cred, struct shmid_kernel *shmsegptr, struct label *shmseglabel, int shmflg); - int (*mpo_check_kenv_dump)(struct ucred *cred); - int (*mpo_check_kenv_get)(struct ucred *cred, char *name); - int (*mpo_check_kenv_set)(struct ucred *cred, char *name, +typedef int (*mpo_check_kenv_dump_t)(struct ucred *cred); +typedef int (*mpo_check_kenv_get_t)(struct ucred *cred, char *name); +typedef int (*mpo_check_kenv_set_t)(struct ucred *cred, char *name, char *value); - int (*mpo_check_kenv_unset)(struct ucred *cred, char *name); - int (*mpo_check_kld_load)(struct ucred *cred, struct vnode *vp, +typedef int (*mpo_check_kenv_unset_t)(struct ucred *cred, char *name); +typedef int (*mpo_check_kld_load_t)(struct ucred *cred, struct vnode *vp, struct label *vlabel); - int (*mpo_check_kld_stat)(struct ucred *cred); - int (*mpo_check_kld_unload)(struct ucred *cred); - void (*_mpo_placeholder19)(void); - void (*_mpo_placeholder20)(void); - int (*mpo_check_mount_stat)(struct ucred *cred, struct mount *mp, - struct label *mntlabel); - void (*_mpo_placeholder21)(void); - int (*mpo_check_pipe_ioctl)(struct ucred *cred, +typedef int (*mpo_check_kld_stat_t)(struct ucred *cred); +typedef int (*mpo_check_kld_unload_t)(struct ucred *cred); +typedef int (*mpo_mpo_placeholder19_t)(void); +typedef int (*mpo_mpo_placeholder20_t)(void); +typedef int (*mpo_check_mount_stat_t)(struct ucred *cred, + struct mount *mp, struct label *mntlabel); +typedef int (*mpo_mpo_placeholder21_t)(void); +typedef int (*mpo_check_pipe_ioctl_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel, unsigned long cmd, void *data); - int (*mpo_check_pipe_poll)(struct ucred *cred, +typedef int (*mpo_check_pipe_poll_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel); - int (*mpo_check_pipe_read)(struct ucred *cred, +typedef int (*mpo_check_pipe_read_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel); - int (*mpo_check_pipe_relabel)(struct ucred *cred, +typedef int (*mpo_check_pipe_relabel_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel, struct label *newlabel); - int (*mpo_check_pipe_stat)(struct ucred *cred, +typedef int (*mpo_check_pipe_stat_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel); - int (*mpo_check_pipe_write)(struct ucred *cred, +typedef int (*mpo_check_pipe_write_t)(struct ucred *cred, struct pipepair *pp, struct label *pipelabel); - int (*mpo_check_posix_sem_destroy)(struct ucred *cred, +typedef int (*mpo_check_posix_sem_destroy_t)(struct ucred *cred, struct ksem *ksemptr, struct label *ks_label); - int (*mpo_check_posix_sem_getvalue)(struct ucred *cred, +typedef int (*mpo_check_posix_sem_getvalue_t)(struct ucred *cred, struct ksem *ksemptr, struct label *ks_label); - int (*mpo_check_posix_sem_open)(struct ucred *cred, +typedef int (*mpo_check_posix_sem_open_t)(struct ucred *cred, struct ksem *ksemptr, struct label *ks_label); - int (*mpo_check_posix_sem_post)(struct ucred *cred, +typedef int (*mpo_check_posix_sem_post_t)(struct ucred *cred, struct ksem *ksemptr, struct label *ks_label); - int (*mpo_check_posix_sem_unlink)(struct ucred *cred, +typedef int (*mpo_check_posix_sem_unlink_t)(struct ucred *cred, struct ksem *ksemptr, struct label *ks_label); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604262141.k3QLficD059452>