PERFORCE change 96166 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed Apr 26 21:41:46 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=96166
Change 96166 by marcel at 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) <<<
More information about the p4-projects
mailing list