Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Dec 2008 13:48:03 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 154046 for review
Message-ID:  <200812041348.mB4Dm3SN065978@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=154046

Change 154046 by zec@zec_tca51 on 2008/12/04 13:47:13

	IFC @ 154044

Affected files ...

.. //depot/projects/vimage/src/sys/boot/i386/boot0/Makefile#3 integrate
.. //depot/projects/vimage/src/sys/boot/i386/boot0/boot0.S#5 integrate
.. //depot/projects/vimage/src/sys/bsm/audit.h#7 integrate
.. //depot/projects/vimage/src/sys/bsm/audit_internal.h#7 integrate
.. //depot/projects/vimage/src/sys/bsm/audit_kevents.h#8 integrate
.. //depot/projects/vimage/src/sys/bsm/audit_record.h#7 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#16 integrate
.. //depot/projects/vimage/src/sys/conf/files#46 integrate
.. //depot/projects/vimage/src/sys/dev/ale/if_ale.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/bce/if_bce.c#18 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_core.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_intel.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/pmc_events.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/jme/if_jme.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/jme/if_jmereg.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/jme/if_jmevar.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/mfi/mfi_pci.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/xen/blkfront/blkfront.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/xen/blkfront/block.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/xen/netfront/netfront.c#6 integrate
.. //depot/projects/vimage/src/sys/i386/include/xen/xenbus.h#2 delete
.. //depot/projects/vimage/src/sys/i386/xen/xen_machdep.c#11 integrate
.. //depot/projects/vimage/src/sys/kern/kern_ktrace.c#9 integrate
.. //depot/projects/vimage/src/sys/nfsserver/nfs_serv.c#13 integrate
.. //depot/projects/vimage/src/sys/pci/if_rl.c#12 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_bsm_token.c#10 integrate
.. //depot/projects/vimage/src/sys/xen/gnttab.c#5 integrate
.. //depot/projects/vimage/src/sys/xen/gnttab.h#4 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_client.c#3 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_comms.c#3 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_comms.h#3 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_dev.c#3 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_if.m#1 branch
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_probe.c#4 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_probe_backend.c#3 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbus_xs.c#5 integrate
.. //depot/projects/vimage/src/sys/xen/xenbus/xenbusvar.h#1 branch

Differences ...

==== //depot/projects/vimage/src/sys/boot/i386/boot0/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/boot0/Makefile,v 1.33 2008/12/02 14:57:48 luigi Exp $
+# $FreeBSD: src/sys/boot/i386/boot0/Makefile,v 1.34 2008/12/03 14:53:59 luigi Exp $
 
 PROG?=	boot0
 STRIP=
@@ -9,12 +9,14 @@
 # Additional options that you can specify with make OPTS="..."
 # (these only apply to boot0.S)
 #
+#	-DVOLUME_SERIAL	support volume serial number (NT, XP, Vista)
 #	-DSIO		do I/O using COM1:
 #	-DPXE		fallback to INT18/PXE with F6
 #	-DCHECK_DRIVE	enable checking drive number
 #	-DONLY_F_KEYS	accept only Fx keys in console
 #	-DTEST		print drive number on entry
 #
+OPTS ?= -DVOLUME_SERIAL -DPXE
 CFLAGS += ${OPTS}
 
 # Flags used in the boot0.S code:

==== //depot/projects/vimage/src/sys/boot/i386/boot0/boot0.S#5 (text+ko) ====

@@ -14,7 +14,7 @@
  * warranties of merchantability and fitness for a particular
  * purpose.
  *
- * $FreeBSD: src/sys/boot/i386/boot0/boot0.S,v 1.19 2008/12/02 14:57:48 luigi Exp $
+ * $FreeBSD: src/sys/boot/i386/boot0/boot0.S,v 1.20 2008/12/03 14:53:59 luigi Exp $
  */
 
 /* build options: */
@@ -30,11 +30,17 @@
 #ifdef ONLY_F_KEYS	/* Only F1..F6, no digits on console */
 #endif
 
+#ifdef VOLUME_SERIAL	/* support Volume serial number */
+#define B0_BASE	0x1ae	/* move the internal data area */
+#define SAVE_MEMORY
+#else
+#define B0_BASE	0x1b2
+#endif
+
 #ifdef TEST		/* enable some test code */
-#ifndef ONLY_F_KEYS
-#define ONLY_F_KEYS	/* make room for the test code */
+#define SAVE_MEMORY
+#define SAVE_MORE_MEMORY
 #endif
-#endif
 
 /*
  * Note - this code uses many tricks to save space and fit in one sector.
@@ -118,7 +124,7 @@
  * 	to change the value passed to the linker in the Makefile
  * PRT_OFF is the location of the partition table (from the MBR standard).
  * B0_OFF is the location of the data area, known to boot0cfg so
- *	it cannot be changed.
+ *	it cannot be changed. Computed as a negative offset from 0x200
  * MAGIC is the signature of a boot block.
  */
 
@@ -127,7 +133,7 @@
 		.set LOAD,0x7c00		# Load address
 
 		.set PRT_OFF,0x1be		# Partition table
-		.set B0_OFF,0x1b2		# Offset of boot0 data
+		.set B0_OFF,(B0_BASE-0x200)	# Offset of boot0 data
 
 		.set MAGIC,0xaa55		# Magic: bootable
 
@@ -144,15 +150,16 @@
  * We need to define them as constant as the assembler cannot
  * compute them in its single pass.
  */
-		.set _NXTDRV,	-0x48		# Next drive
-		.set _OPT,	-0x47 		# Default option
-		.set _SETDRV,	-0x46		# Drive to force
-		.set _FLAGS,	-0x45		# Flags
+		.set _NXTDRV,	B0_OFF+6	# Next drive
+		.set _OPT,	B0_OFF+7	# Default option
+		.set _SETDRV,	B0_OFF+8	# Drive to force
+		.set _FLAGS,	B0_OFF+9	# Flags
 		.set SETDRV,	0x20		# the 'setdrv' flag
 		.set NOUPDATE,	0x40		# the 'noupdate' flag
 		.set USEPACKET,	0x80		# the 'packet' flag
-		.set _TICKS,	-0x44		# Timeout ticks
-		.set _FAKE,0x0			# Fake partition table
+
+	/* ticks is at a fixed position */
+		.set _TICKS,	(PRT_OFF - 0x200 - 2)	# Timeout ticks
 		.set _MNUOPT, 0x10		# Saved menu entries
 
 		.set TLEN, (desc_ofs - bootable_ids)	# size of bootable ids
@@ -260,26 +267,16 @@
 read_entry:	movb %ch,-0x4(%bx)		# Zero active flag (ch == 0)
 		btw %dx,_FLAGS(%bp)		# Entry enabled?
 		jnc next_entry			# No
-	/*
-	 * Lookup type in the 'non_bootable_ids' table, skip matching entries.
-	 * This is implemented is by setting %di to the start of the
-	 * exclude table, and %cl to the length of the table itself. After the
-	 * 'repne scasb' the zero flag is set if we found a match.
-	 * If not, %di points to the beginning of the 'valid' types,
-	 * which is what we need for the next check.
-	 */
 		movb (%bx),%al			# Load type
-		movw $non_bootable_ids,%di	# Lookup tables
-		movb $(bootable_ids-non_bootable_ids),%cl	# length
-		repne				# Exclude
-		scasb				#  partition?
-		je next_entry			# Yes, ignore it
+		test %al, %al			# skip empty partition
+		jz next_entry
 	/*
-	 * Now scan the table of bootable ids, which starts at %di and has
+	 * Scan the table of bootable ids, which starts at %di and has
 	 * length TLEN. On a match, %di points to the element following the
 	 * match; the corresponding offset to the description is $(TLEN-1)
 	 * bytes ahead. If we don't find a match, we hit the 'unknown' entry.
 	 */
+		movw $bootable_ids,%di		# Lookup tables
 		movb $(TLEN),%cl		# Number of entries
 		repne				# Locate
 		scasb				#  type
@@ -500,19 +497,10 @@
  *		the string at %si
  * putx:	print the option in %dl followed by the string at %di
  *		also record the drive as valid.
- * puts:	print the string at %si followed by a crlf
  * putn:	print a crlf
  * putstr:	print the string at %si
  * putchr:	print the char in al
  */
-putkey:
-#ifndef SIO
-		movb $'F',%al			# Display
-		callw putchr			#  'F'
-#endif
-		movb $'1',%al			# Prepare
-		addb %dl,%al			#  digit
-		jmp putstr.1			# Display the rest
 
 /*
  * Display the option and record the drive as valid in the options.
@@ -523,17 +511,24 @@
 		movw $item,%si			# Display
 		callw putkey			#  key
 		movw %di,%si			# Display the rest
+		callw putstr			# Display string
 
-puts:		callw putstr			# Display string
+putn:		movw $crlf,%si			# To next line
+		jmp putstr
 
-putn:		movw $crlf,%si			# To next line
+putkey:
+#ifndef SIO
+		movb $'F',%al			# Display
+		callw putchr			#  'F'
+#endif
+		movb $'1',%al			# Prepare
+		addb %dl,%al			#  digit
 
+putstr.1:	callw putchr			# Display char
 putstr:		lodsb				# Get byte
 		testb $0x80,%al 		# End of string?
-		jnz putstr.2			# Yes
-putstr.1:	callw putchr			# Display char
-		jmp putstr			# Continue
-putstr.2:	andb $~0x80,%al 		# Clear MSB
+		jz putstr.1			# No
+		andb $~0x80,%al 		# Clear MSB then print last 
 
 putchr:
 #ifndef SIO
@@ -601,38 +596,45 @@
 
 /* Partition type tables */
 
-non_bootable_ids:
-	/*
-	 * These entries identify invalid or NON BOOT types and partitions.
-	 * 0: empty, 5: DOS3 ext. partition, 0xf: WIN95 ext partition
-	 */
-		.byte 0x0, 0x5, 0xf
 bootable_ids:
 	/*
-	 * These values indicate bootable types we know the names of.
-	 * 1: FAT12, 4: FAT16 <32M, 6: FAT16 > 32M, 7: NTFS
-	 * 0xb: FAT32, 0xc: FAT32-LBA, 0xe: FAT16-LBA, 
-	 * 0x83: linux, 0xa5: FreeBSD, 0xa6: netbsd, 0xa9:openbsd
+	 * These values indicate bootable types we know about.
+	 * Corresponding descriptions are at desc_ofs:
+	 * Entries don't need to be sorted.
 	 */
-		.byte 0x1, 0x6, 0x7, 0xb, 0xc, 0xe, 0x83
-		.byte 0xa5, 0xa6, 0xa9, 0x4
+		.byte 0x1, 0x6, 0x7, 0xb, 0xc
+#ifndef SAVE_MEMORY
+		.byte 0xe
+#endif
+		.byte 0x83, 0xa5, 0xa6, 0xa9, 0x4
+#ifndef SAVE_MORE_MEMORY
+		.byte 0x5, 0xf
+#endif
+
 desc_ofs:
 	/*
 	 * Offsets that match the known types above, used to point to the
 	 * actual partition name. The last entry must point to os_misc,
 	 * which is used for non-matching names.
 	 */
-		.byte os_dos-.			# 1, DOS
-		.byte os_dos-.			# 6, DOS/WIN
-		.byte os_win-.			# 7, Windows
-		.byte os_win-.			# 11, Windows
-		.byte os_win-.			# 12, Windows
-		.byte os_win-.			# 14, Windows
+		.byte os_dos-.			#   1, FAT12 DOS
+		.byte os_dos-.			#   6, FAT16 <32M, DOS/WIN
+		.byte os_win-.			#   7, FAT16 >=32M Windows
+		.byte os_win-.			#  11, FAT32
+		.byte os_win-.			#  12, FAT32-LBA
+#ifndef SAVE_MEMORY
+		.byte os_win-.			#  14, FAT16-LBA
+#endif
 		.byte os_linux-.		# 131, Linux
 		.byte os_freebsd-.		# 165, FreeBSD
 		.byte os_bsd-.			# 166, OpenBSD
 		.byte os_bsd-.			# 169, NetBSD
-		.byte os_dos-.			# 4, DOS
+		.byte os_dos-.			#   4, FAT16 < 32M
+#ifndef SAVE_MORE_MEMORY
+		.byte os_ext-.			#   5, DOS Ext
+		.byte os_ext-.			#  15, DOS Ext-LBA
+#endif
+
 		.byte os_misc-. 		# Unknown
 
 	/*
@@ -641,15 +643,18 @@
 	 */
 os_misc:	.byte '?'|0x80
 os_dos:
-#if !defined(TEST)	/* DOS string only if room */
+#ifndef SAVE_MEMORY	/* DOS string only if room */
 		.ascii "DO";   .byte 'S'|0x80
 #endif
 os_win:		.ascii "WI";   .byte 'N'|0x80
 os_linux:	.ascii "Linu"; .byte 'x'|0x80
 os_freebsd:	.ascii "Free"
 os_bsd:		.ascii "BS";   .byte 'D'|0x80
+#ifndef SAVE_MORE_MEMORY
+os_ext:		.ascii "EX";   .byte 'T'|0x80
+#endif
 
-		.org B0_OFF,0x90
+		.org (0x200 + B0_OFF),0x90
 /*
  * The boot0 version 1.0 parameter table.
  * Do not move it nor change the "Drive " string, boot0cfg
@@ -663,6 +668,9 @@
 opt:		.byte 0x0			# Option
 setdrv_num:	.byte 0x80			# Drive to force
 flags:		.byte FLAGS			# Flags
+#ifdef VOLUME_SERIAL
+		.byte 0xa8,0xa8,0xa8,0xa8       # Volume Serial Number
+#endif
 ticks:		.word TICKS			# Delay
 
 		.org PRT_OFF

==== //depot/projects/vimage/src/sys/bsm/audit.h#7 (text) ====

@@ -1,4 +1,4 @@
-/*
+/*-
  * Copyright (c) 2005 Apple Inc.
  * All rights reserved.
  *
@@ -26,8 +26,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#40
- * $FreeBSD: src/sys/bsm/audit.h,v 1.11 2008/07/31 09:54:35 rwatson Exp $
+ * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit.h#1
+ * $FreeBSD: src/sys/bsm/audit.h,v 1.12 2008/12/02 23:26:43 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_H

==== //depot/projects/vimage/src/sys/bsm/audit_internal.h#7 (text) ====

@@ -1,4 +1,4 @@
-/*
+/*-
  * Copyright (c) 2005 Apple Inc.
  * Copyright (c) 2005 SPARTA, Inc.
  * All rights reserved.
@@ -30,8 +30,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#18
- * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.10 2008/11/11 21:57:03 csjp Exp $
+ * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_internal.h#2
+ * $FreeBSD: src/sys/bsm/audit_internal.h,v 1.11 2008/12/02 23:26:43 rwatson Exp $
  */
 
 #ifndef _AUDIT_INTERNAL_H

==== //depot/projects/vimage/src/sys/bsm/audit_kevents.h#8 (text) ====

@@ -1,4 +1,4 @@
-/*
+/*-
  * Copyright (c) 2005 Apple Inc.
  * All rights reserved.
  *
@@ -26,8 +26,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#34
- * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.15 2008/08/24 21:20:35 rwatson Exp $
+ * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_kevents.h#3
+ * $FreeBSD: src/sys/bsm/audit_kevents.h,v 1.16 2008/12/02 23:26:43 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_KEVENTS_H_
@@ -308,6 +308,7 @@
 #define	AUE_PF_POLICY_FLIP	298	/* Solaris-specific. */
 #define	AUE_PF_POLICY_FLUSH	299	/* Solaris-specific. */
 #define	AUE_PF_POLICY_ALGS	300	/* Solaris-specific. */
+#define	AUE_PORTFS		301	/* Solaris-specific. */
 
 /*
  * Events added for Apple Darwin that potentially collide with future Solaris
@@ -516,17 +517,17 @@
 #define	AUE_READDIR		43118	/* Linux. */
 #define	AUE_IOPL		43119	/* Linux. */
 #define	AUE_VM86		43120	/* Linux. */
-#define	AUE_MAC_GET_PROC	43121	/* FreeBSD. */
-#define	AUE_MAC_SET_PROC	43122	/* FreeBSD. */
-#define	AUE_MAC_GET_FD		43123	/* FreeBSD. */
-#define	AUE_MAC_GET_FILE	43124	/* FreeBSD. */
-#define	AUE_MAC_SET_FD		43125	/* FreeBSD. */
-#define	AUE_MAC_SET_FILE	43126	/* FreeBSD. */
+#define	AUE_MAC_GET_PROC	43121	/* FreeBSD/Darwin. */
+#define	AUE_MAC_SET_PROC	43122	/* FreeBSD/Darwin. */
+#define	AUE_MAC_GET_FD		43123	/* FreeBSD/Darwin. */
+#define	AUE_MAC_GET_FILE	43124	/* FreeBSD/Darwin. */
+#define	AUE_MAC_SET_FD		43125	/* FreeBSD/Darwin. */
+#define	AUE_MAC_SET_FILE	43126	/* FreeBSD/Darwin. */
 #define	AUE_MAC_SYSCALL		43127	/* FreeBSD. */
-#define	AUE_MAC_GET_PID		43128	/* FreeBSD. */
-#define	AUE_MAC_GET_LINK	43129	/* FreeBSD. */
-#define	AUE_MAC_SET_LINK	43130	/* FreeBSD. */
-#define	AUE_MAC_EXECVE		43131	/* FreeBSD. */
+#define	AUE_MAC_GET_PID		43128	/* FreeBSD/Darwin. */
+#define	AUE_MAC_GET_LINK	43129	/* FreeBSD/Darwin. */
+#define	AUE_MAC_SET_LINK	43130	/* FreeBSD/Darwin. */
+#define	AUE_MAC_EXECVE		43131	/* FreeBSD/Darwin. */
 #define	AUE_GETPATH_FROMFD	43132	/* FreeBSD. */
 #define	AUE_GETPATH_FROMADDR	43133	/* FreeBSD. */
 #define	AUE_MQ_OPEN		43134	/* FreeBSD. */
@@ -548,7 +549,43 @@
 #define	AUE_MKNODAT		43150	/* FreeBSD. */
 #define	AUE_READLINKAT		43151	/* FreeBSD. */
 #define	AUE_SYMLINKAT		43152	/* FreeBSD. */
+#define	AUE_MAC_GETFSSTAT	43153	/* Darwin. */
+#define	AUE_MAC_GET_MOUNT	43154	/* Darwin. */
+#define	AUE_MAC_GET_LCID	43155	/* Darwin. */
+#define	AUE_MAC_GET_LCTX	43156	/* Darwin. */
+#define	AUE_MAC_SET_LCTX	43157	/* Darwin. */
+#define	AUE_MAC_MOUNT		43158	/* Darwin. */
+#define	AUE_GETLCID		43159	/* Darwin. */
+#define	AUE_SETLCID		43160	/* Darwin. */
+#define	AUE_TASKNAMEFORPID	43161	/* Darwin. */
+#define	AUE_ACCESS_EXTENDED	43162	/* Darwin. */
+#define	AUE_CHMOD_EXTENDED	43163	/* Darwin. */
+#define	AUE_FCHMOD_EXTENDED	43164	/* Darwin. */
+#define	AUE_FSTAT_EXTENDED	43165	/* Dariwn. */
+#define	AUE_LSTAT_EXTENDED	43166	/* Darwin. */
+#define	AUE_MKDIR_EXTENDED	43167	/* Darwin. */
+#define	AUE_MKFIFO_EXTENDED	43168	/* Darwin. */
+#define	AUE_OPEN_EXTENDED	43169	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_R	43170	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RC	43171	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RT	43172	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RTC	43173	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_W	43174	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_WC	43175	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_WT	43176	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_WTC	43177	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RW	43178	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RWC	43179	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RWT	43180	/* Darwin. */
+#define	AUE_OPEN_EXTENDED_RWTC	43181	/* Darwin. */
+#define	AUE_STAT_EXTENDED	43182	/* Darwin. */
+#define	AUE_UMASK_EXTENDED	43183	/* Darwin. */
+#define	AUE_OPENAT		43184	/* FreeBSD. */
 #define	AUE_POSIX_OPENPT	43185	/* FreeBSD. */
+#define	AUE_CAP_NEW		43186	/* TrustedBSD. */
+#define	AUE_CAP_GETRIGHTS	43187	/* TrustedBSD. */
+#define	AUE_CAP_ENTER		43188	/* TrustedBSD. */
+#define	AUE_CAP_GETMODE		43189	/* TrustedBSD. */
 
 /*
  * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the

==== //depot/projects/vimage/src/sys/bsm/audit_record.h#7 (text) ====

@@ -1,5 +1,5 @@
-/*
- * Copyright (c) 2005 Apple Inc.
+/*-
+ * Copyright (c) 2005-2008 Apple Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,8 +26,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * P4: //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#26
- * $FreeBSD: src/sys/bsm/audit_record.h,v 1.12 2008/11/11 21:57:03 csjp Exp $
+ * P4: //depot/projects/trustedbsd/openbsm/sys/bsm/audit_record.h#3
+ * $FreeBSD: src/sys/bsm/audit_record.h,v 1.13 2008/12/02 23:26:43 rwatson Exp $
  */
 
 #ifndef _BSM_AUDIT_RECORD_H_
@@ -48,7 +48,7 @@
 #define	AUT_IPC			0x22
 #define	AUT_PATH		0x23
 #define	AUT_SUBJECT32		0x24
-#define	AUT_SERVER32		0x25
+#define	AUT_XATPATH		0x25
 #define	AUT_PROCESS32		0x26
 #define	AUT_RETURN32		0x27
 #define	AUT_TEXT		0x28
@@ -64,9 +64,7 @@
 #define	AUT_IPC_PERM		0x32
 #define	AUT_LABEL		0x33
 #define	AUT_GROUPS		0x34
-#define	AUT_ILABEL		0x35
-#define	AUT_SLABEL		0x36
-#define	AUT_CLEAR		0x37
+#define	AUT_ACE			0x35
 #define	AUT_PRIV		0x38
 #define	AUT_UPRIV		0x39
 #define	AUT_LIAISON		0x3a
@@ -74,22 +72,28 @@
 #define	AUT_EXEC_ARGS		0x3c
 #define	AUT_EXEC_ENV		0x3d
 #define	AUT_ATTR32		0x3e
-/* #define	AUT_????	0x3f */
+#define	AUT_UNAUTH		0x3f
 #define	AUT_XATOM		0x40
 #define	AUT_XOBJ		0x41
 #define	AUT_XPROTO		0x42
 #define	AUT_XSELECT		0x43
-/* XXXRW: Additional X11 tokens not defined? */
+#define	AUT_XCOLORMAP		0x44
+#define	AUT_XCURSOR		0x45
+#define	AUT_XFONT		0x46
+#define	AUT_XGC			0x47
+#define	AUT_XPIXMAP		0x48
+#define	AUT_XPROPERTY		0x49
+#define	AUT_XWINDOW		0x4a
+#define	AUT_XCLIENT		0x4b
 #define	AUT_CMD			0x51
 #define	AUT_EXIT		0x52
 #define	AUT_ZONENAME		0x60
-/* XXXRW: OpenBSM AUT_HOST 0x70? */
+#define	AUT_HOST		0x70
 #define	AUT_ARG64		0x71
 #define	AUT_RETURN64		0x72
 #define	AUT_ATTR64		0x73
 #define	AUT_HEADER64		0x74
 #define	AUT_SUBJECT64		0x75
-#define	AUT_SERVER64		0x76
 #define	AUT_PROCESS64		0x77
 #define	AUT_OTHER_FILE64	0x78
 #define	AUT_HEADER64_EX		0x79
@@ -108,55 +112,10 @@
 #define	AUT_ARG			AUT_ARG32
 #define	AUT_RETURN		AUT_RETURN32
 #define	AUT_SUBJECT		AUT_SUBJECT32
-#define	AUT_SERVER		AUT_SERVER32
 #define	AUT_PROCESS		AUT_PROCESS32
 #define	AUT_OTHER_FILE		AUT_OTHER_FILE32
 
 /*
- * Darwin's bsm distribution uses the following non-BSM token name defines.
- * We provide them for a single OpenBSM release for compatibility reasons.
- */
-#define	AU_FILE_TOKEN		AUT_OTHER_FILE32
-#define	AU_TRAILER_TOKEN	AUT_TRAILER
-#define	AU_HEADER_32_TOKEN	AUT_HEADER32
-#define	AU_DATA_TOKEN		AUT_DATA
-#define	AU_ARB_TOKEN		AUT_DATA
-#define	AU_IPC_TOKEN		AUT_IPC
-#define	AU_PATH_TOKEN		AUT_PATH
-#define	AU_SUBJECT_32_TOKEN	AUT_SUBJECT32
-#define	AU_PROCESS_32_TOKEN	AUT_PROCESS32
-#define	AU_RETURN_32_TOKEN	AUT_RETURN32
-#define	AU_TEXT_TOKEN		AUT_TEXT
-#define	AU_OPAQUE_TOKEN		AUT_OPAQUE
-#define	AU_IN_ADDR_TOKEN	AUT_IN_ADDR
-#define	AU_IP_TOKEN		AUT_IP
-#define	AU_IPORT_TOKEN		AUT_IPORT
-#define	AU_ARG32_TOKEN		AUT_ARG32
-#define	AU_SOCK_TOKEN		AUT_SOCKET
-#define	AU_SEQ_TOKEN		AUT_SEQ
-#define	AU_ATTR_TOKEN		AUT_ATTR
-#define	AU_IPCPERM_TOKEN	AUT_IPC_PERM
-#define	AU_NEWGROUPS_TOKEN	AUT_NEWGROUPS
-#define	AU_EXEC_ARG_TOKEN	AUT_EXEC_ARGS
-#define	AU_EXEC_ENV_TOKEN	AUT_EXEC_ENV
-#define	AU_ATTR32_TOKEN		AUT_ATTR32
-#define	AU_CMD_TOKEN		AUT_CMD
-#define	AU_EXIT_TOKEN		AUT_EXIT
-#define	AU_ARG64_TOKEN		AUT_ARG64
-#define	AU_RETURN_64_TOKEN	AUT_RETURN64
-#define	AU_ATTR64_TOKEN		AUT_ATTR64
-#define	AU_HEADER_64_TOKEN	AUT_HEADER64
-#define	AU_SUBJECT_64_TOKEN	AUT_SUBJECT64
-#define	AU_PROCESS_64_TOKEN	AUT_PROCESS64
-#define	AU_HEADER_64_EX_TOKEN	AUT_HEADER64_EX
-#define	AU_SUBJECT_32_EX_TOKEN	AUT_SUBJECT32_EX
-#define	AU_PROCESS_32_EX_TOKEN	AUT_PROCESS32_EX
-#define	AU_SUBJECT_64_EX_TOKEN	AUT_SUBJECT64_EX
-#define	AU_PROCESS_64_EX_TOKEN	AUT_PROCESS64_EX
-#define	AU_IN_ADDR_EX_TOKEN	AUT_IN_ADDR_EX
-#define	AU_SOCK_32_EX_TOKEN	AUT_SOCKET_EX
-
-/*
  * The values for the following token ids are not defined by BSM.
  *
  * XXXRW: Not sure how to handle these in OpenBSM yet, but I'll give them
@@ -166,9 +125,6 @@
 #define	AUT_SOCKINET32		0x80		/* XXX */
 #define	AUT_SOCKINET128		0x81		/* XXX */
 #define	AUT_SOCKUNIX		0x82		/* XXX */
-#define	AU_SOCK_INET_32_TOKEN	AUT_SOCKINET32
-#define	AU_SOCK_INET_128_TOKEN	AUT_SOCKINET128
-#define	AU_SOCK_UNIX_TOKEN	AUT_SOCKUNIX
 
 /* print values for the arbitrary token */
 #define AUP_BINARY      0
@@ -240,7 +196,7 @@
 int	 au_close_buffer(int d, short event, u_char *buffer, size_t *buflen);
 int	 au_close_token(token_t *tok, u_char *buffer, size_t *buflen);
 
-token_t	*au_to_file(char *file, struct timeval tm);
+token_t	*au_to_file(const char *file, struct timeval tm);
 
 token_t	*au_to_header32_tm(int rec_size, au_event_t e_type, au_emod_t e_mod,
 	    struct timeval tm);
@@ -256,9 +212,9 @@
 #endif
 
 token_t	*au_to_me(void);
-token_t	*au_to_arg(char n, char *text, uint32_t v);
-token_t	*au_to_arg32(char n, char *text, uint32_t v);
-token_t	*au_to_arg64(char n, char *text, uint64_t v);
+token_t	*au_to_arg(char n, const char *text, uint32_t v);
+token_t	*au_to_arg32(char n, const char *text, uint32_t v);
+token_t	*au_to_arg64(char n, const char *text, uint64_t v);
 
 #if defined(_KERNEL) || defined(KERNEL)
 token_t	*au_to_attr(struct vnode_au_info *vni);
@@ -267,7 +223,7 @@
 #endif
 
 token_t	*au_to_data(char unit_print, char unit_type, char unit_count,
-	    char *p);
+	    const char *p);
 token_t	*au_to_exit(int retval, int err);
 token_t	*au_to_groups(int *groups);
 token_t	*au_to_newgroups(uint16_t n, gid_t *groups);
@@ -277,8 +233,8 @@
 token_t	*au_to_ipc(char type, int id);
 token_t	*au_to_ipc_perm(struct ipc_perm *perm);
 token_t	*au_to_iport(uint16_t iport);
-token_t	*au_to_opaque(char *data, uint16_t bytes);
-token_t	*au_to_path(char *path);
+token_t	*au_to_opaque(const char *data, uint16_t bytes);
+token_t	*au_to_path(const char *path);
 token_t	*au_to_process(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
 	    gid_t rgid, pid_t pid, au_asid_t sid, au_tid_t *tid);
 token_t	*au_to_process32(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid,
@@ -328,10 +284,10 @@
 token_t	*au_to_exec_args(char **argv);
 token_t	*au_to_exec_env(char **envp);
 #endif
-token_t	*au_to_text(char *text);
+token_t	*au_to_text(const char *text);
 token_t	*au_to_kevent(struct kevent *kev);
 token_t	*au_to_trailer(int rec_size);
-token_t	*au_to_zonename(char *zonename);
+token_t	*au_to_zonename(const char *zonename);
 
 __END_DECLS
 

==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#16 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.84 2008/11/29 14:32:14 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.85 2008/12/03 18:45:38 jhb Exp $");
 
 #include "opt_compat.h"
 
@@ -2774,7 +2774,7 @@
 			if (error)
 				return (error);
 		}
-		error = syscall_deregister(data->offset, &data->old_sysent);
+		error = syscall32_deregister(data->offset, &data->old_sysent);
 		return (error);
 	default:
 		error = EOPNOTSUPP;

==== //depot/projects/vimage/src/sys/conf/files#46 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1353 2008/12/01 16:53:01 sam Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1354 2008/12/04 07:59:05 kmacy Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -2766,10 +2766,14 @@
 xen/xenbus/xenbus_client.c     optional xen
 xen/xenbus/xenbus_comms.c      optional xen
 xen/xenbus/xenbus_dev.c                optional xen
+xen/xenbus/xenbus_if.m		optional xen
 xen/xenbus/xenbus_probe.c      optional xen
-xen/xenbus/xenbus_probe_backend.c      optional xen
+#xen/xenbus/xenbus_probe_backend.c      optional xen
 xen/xenbus/xenbus_xs.c         optional xen
 dev/xen/console/console.c      optional xen
 dev/xen/console/xencons_ring.c optional xen
 dev/xen/blkfront/blkfront.c    optional xen
 dev/xen/netfront/netfront.c    optional xen
+#dev/xen/xenpci/xenpci.c        optional xen
+#xen/xenbus/xenbus_newbus.c	optional xenhvm
+

==== //depot/projects/vimage/src/sys/dev/ale/if_ale.c#2 (text+ko) ====

@@ -28,7 +28,7 @@
 /* Driver for Atheros AR8121/AR8113/AR8114 PCIe Ethernet. */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ale/if_ale.c,v 1.1 2008/11/12 09:52:06 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ale/if_ale.c,v 1.3 2008/12/03 09:01:12 yongari Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -385,6 +385,39 @@
 	    GPHY_CTRL_EXT_RESET | GPHY_CTRL_HIB_EN | GPHY_CTRL_HIB_PULSE |
 	    GPHY_CTRL_SEL_ANA_RESET | GPHY_CTRL_PHY_PLL_ON);
 	DELAY(1000);
+
+#define	ATPHY_DBG_ADDR		0x1D
+#define	ATPHY_DBG_DATA		0x1E
+
+	/* Enable hibernation mode. */
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x0B);
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_DATA, 0xBC00);
+	/* Set Class A/B for all modes. */
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x00);
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_DATA, 0x02EF);
+	/* Enable 10BT power saving. */
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x12);
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_DATA, 0x4C04);
+	/* Adjust 1000T power. */
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x04);
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x8BBB);
+	/* 10BT center tap voltage. */
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x05);
+	ale_miibus_writereg(sc->ale_dev, sc->ale_phyaddr,
+	    ATPHY_DBG_ADDR, 0x2C46);
+
+#undef	ATPHY_DBG_ADDR
+#undef	ATPHY_DBG_DATA
+	DELAY(1000);
 }
 
 static int
@@ -2753,10 +2786,8 @@
 		    TX_JUMBO_THRESH_UNIT_SHIFT);
 	}
 	/* Configure TxQ. */
-	reg = 0;
-	if ((sc->ale_flags & ALE_FLAG_JUMBO) != 0)
-		reg = (128 << (sc->ale_dma_rd_burst >> DMA_CFG_RD_BURST_SHIFT))
-		    << TXQ_CFG_TX_FIFO_BURST_SHIFT;
+	reg = (128 << (sc->ale_dma_rd_burst >> DMA_CFG_RD_BURST_SHIFT))
+	    << TXQ_CFG_TX_FIFO_BURST_SHIFT;
 	reg |= (TXQ_CFG_TPD_BURST_DEFAULT << TXQ_CFG_TPD_BURST_SHIFT) &
 	    TXQ_CFG_TPD_BURST_MASK;
 	CSR_WRITE_4(sc, ALE_TXQ_CFG, reg | TXQ_CFG_ENHANCED_MODE | TXQ_CFG_ENB);

==== //depot/projects/vimage/src/sys/dev/bce/if_bce.c#18 (text) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.44 2008/11/19 03:24:35 delphij Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.45 2008/12/03 23:00:00 delphij Exp $");
 
 /*
  * The following controllers are supported by this driver:
@@ -7030,13 +7030,14 @@
 
 		/* Was it a link change interrupt? */
 		if ((status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) !=
-			(sc->status_block->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE))
+			(sc->status_block->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE)) {
 			bce_phy_intr(sc);
 
-		/* Clear any transient status updates during link state change. */
-		REG_WR(sc, BCE_HC_COMMAND,
-			sc->hc_command | BCE_HC_COMMAND_COAL_NOW_WO_INT);
-		REG_RD(sc, BCE_HC_COMMAND);
+			/* Clear any transient status updates during link state change. */
+			REG_WR(sc, BCE_HC_COMMAND,
+				sc->hc_command | BCE_HC_COMMAND_COAL_NOW_WO_INT);
+			REG_RD(sc, BCE_HC_COMMAND);
+		}
 
 		/* If any other attention is asserted then the chip is toast. */
 		if (((status_attn_bits & ~STATUS_ATTN_BITS_LINK_STATE) !=

==== //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_core.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_core.c,v 1.1 2008/11/27 09:00:47 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_core.c,v 1.2 2008/12/03 17:30:36 jkoshy Exp $");
 
 #include <sys/param.h>
 #include <sys/pmc.h>
@@ -527,8 +527,8 @@
 };
 
 #define	IAP_F_CC	(1 << 0)	/* CPU: Core */
-#define	IAP_F_CC2	(1 << 1)	/* CPU: Core2 */
-#define	IAP_F_CC2E	(1 << 2)	/* CPU: Core2 Extreme */
+#define	IAP_F_CC2	(1 << 1)	/* CPU: Core2 family */
+#define	IAP_F_CC2E	(1 << 2)	/* CPU: Core2 Extreme only */
 #define	IAP_F_CA	(1 << 3)	/* CPU: Atom */
 #define	IAP_F_FM	(1 << 4)	/* Fixed mask */
 
@@ -1111,7 +1111,7 @@
 		cpuflag = IAP_F_CC2;
 		break;
 	case PMC_CPU_INTEL_CORE2EXTREME:
-		cpuflag = IAP_F_CC2E;
+		cpuflag = IAP_F_CC2 | IAP_F_CC2E;
 		break;
 	}
 

==== //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_intel.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_intel.c,v 1.9 2008/11/27 09:00:47 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_intel.c,v 1.10 2008/12/03 17:30:36 jkoshy Exp $");
 
 #include <sys/param.h>
 #include <sys/pmc.h>
@@ -168,6 +168,7 @@
 	case PMC_CPU_INTEL_ATOM:
 	case PMC_CPU_INTEL_CORE:
 	case PMC_CPU_INTEL_CORE2:
+	case PMC_CPU_INTEL_CORE2EXTREME:
 		error = pmc_core_initialize(pmc_mdep, ncpus);
 		break;
 
@@ -238,6 +239,7 @@
 	case PMC_CPU_INTEL_ATOM:
 	case PMC_CPU_INTEL_CORE:
 	case PMC_CPU_INTEL_CORE2:
+	case PMC_CPU_INTEL_CORE2EXTREME:
 		pmc_core_finalize(md);
 		break;
 

==== //depot/projects/vimage/src/sys/dev/hwpmc/pmc_events.h#7 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/hwpmc/pmc_events.h,v 1.7 2008/11/27 09:00:47 jkoshy Exp $
+ * $FreeBSD: src/sys/dev/hwpmc/pmc_events.h,v 1.8 2008/12/03 15:23:08 jkoshy Exp $
  */
 
 #ifndef _DEV_HWPMC_PMC_EVENTS_H_
@@ -426,6 +426,11 @@
 #define	PMC_EV_IAF_FIRST	PMC_EV_IAF_INSTR_RETIRED_ANY
 #define	PMC_EV_IAF_LAST		PMC_EV_IAF_CPU_CLK_UNHALTED_REF
 
+#define	__PMC_EV_ALIAS_IAF()						\
+__PMC_EV_ALIAS("instruction-retired",	IAF_INSTR_RETIRED_ANY)		\
+__PMC_EV_ALIAS("unhalted-core-cycles",	IAF_CPU_CLK_UNHALTED_CORE)	\
+__PMC_EV_ALIAS("unhalted-reference-cycles", IAF_CPU_CLK_UNHALTED_REF)
+
 /*
  * Events supported by programmable function counters present in
  * Intel Atom, Core and Core2 CPUs, from the "Intel 64 and IA-32

==== //depot/projects/vimage/src/sys/dev/jme/if_jme.c#7 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/jme/if_jme.c,v 1.8 2008/10/14 00:54:15 yongari Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/jme/if_jme.c,v 1.10 2008/12/04 02:16:53 yongari Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -150,6 +150,9 @@
 static int jme_newbuf(struct jme_softc *, struct jme_rxdesc *);
 static void jme_set_vlan(struct jme_softc *);
 static void jme_set_filter(struct jme_softc *);
+static void jme_stats_clear(struct jme_softc *);
+static void jme_stats_save(struct jme_softc *);
+static void jme_stats_update(struct jme_softc *);
 static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int, int);
 static int sysctl_hw_jme_tx_coal_to(SYSCTL_HANDLER_ARGS);
 static int sysctl_hw_jme_tx_coal_pkt(SYSCTL_HANDLER_ARGS);
@@ -651,6 +654,14 @@
 		goto fail;
 	}
 
+	if (CHIPMODE_REVFM(sc->jme_chip_rev) >= 2) {
+		if ((sc->jme_rev & DEVICEID_JMC2XX_MASK) == DEVICEID_JMC260 &&
+		    CHIPMODE_REVFM(sc->jme_chip_rev) == 2)
+			sc->jme_flags |= JME_FLAG_DMA32BIT;
+		sc->jme_flags |= JME_FLAG_TXCLK;
+		sc->jme_flags |= JME_FLAG_HWMIB;
+	}
+
 	/* Reset the ethernet controller. */
 	jme_reset(sc);
 
@@ -880,35 +891,41 @@
 	return (0);
 }
 
+#define	JME_SYSCTL_STAT_ADD32(c, h, n, p, d)	\
+	    SYSCTL_ADD_UINT(c, h, OID_AUTO, n, CTLFLAG_RD, p, 0, d)
+
 static void
 jme_sysctl_node(struct jme_softc *sc)
 {
+	struct sysctl_ctx_list *ctx;
+	struct sysctl_oid_list *child, *parent;
+	struct sysctl_oid *tree;
+	struct jme_hw_stats *stats;
 	int error;
 
-	SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->jme_dev),
-	    SYSCTL_CHILDREN(device_get_sysctl_tree(sc->jme_dev)), OID_AUTO,
-	    "tx_coal_to", CTLTYPE_INT | CTLFLAG_RW, &sc->jme_tx_coal_to,
-	    0, sysctl_hw_jme_tx_coal_to, "I", "jme tx coalescing timeout");
+	stats = &sc->jme_stats;
+	ctx = device_get_sysctl_ctx(sc->jme_dev);
+	child = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->jme_dev));
+
+	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "tx_coal_to",
+	    CTLTYPE_INT | CTLFLAG_RW, &sc->jme_tx_coal_to, 0,
+	    sysctl_hw_jme_tx_coal_to, "I", "jme tx coalescing timeout");
 
-	SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->jme_dev),
-	    SYSCTL_CHILDREN(device_get_sysctl_tree(sc->jme_dev)), OID_AUTO,
-	    "tx_coal_pkt", CTLTYPE_INT | CTLFLAG_RW, &sc->jme_tx_coal_pkt,
-	    0, sysctl_hw_jme_tx_coal_pkt, "I", "jme tx coalescing packet");
+	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "tx_coal_pkt",
+	    CTLTYPE_INT | CTLFLAG_RW, &sc->jme_tx_coal_pkt, 0,
+	    sysctl_hw_jme_tx_coal_pkt, "I", "jme tx coalescing packet");
 
-	SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->jme_dev),
-	    SYSCTL_CHILDREN(device_get_sysctl_tree(sc->jme_dev)), OID_AUTO,
-	    "rx_coal_to", CTLTYPE_INT | CTLFLAG_RW, &sc->jme_rx_coal_to,
-	    0, sysctl_hw_jme_rx_coal_to, "I", "jme rx coalescing timeout");
+	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "rx_coal_to",
+	    CTLTYPE_INT | CTLFLAG_RW, &sc->jme_rx_coal_to, 0,
+	    sysctl_hw_jme_rx_coal_to, "I", "jme rx coalescing timeout");
 
-	SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->jme_dev),
-	    SYSCTL_CHILDREN(device_get_sysctl_tree(sc->jme_dev)), OID_AUTO,
-	    "rx_coal_pkt", CTLTYPE_INT | CTLFLAG_RW, &sc->jme_rx_coal_pkt,
-	    0, sysctl_hw_jme_rx_coal_pkt, "I", "jme rx coalescing packet");
+	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "rx_coal_pkt",
+	    CTLTYPE_INT | CTLFLAG_RW, &sc->jme_rx_coal_pkt, 0,
+	    sysctl_hw_jme_rx_coal_pkt, "I", "jme rx coalescing packet");
 
-	SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->jme_dev),
-	    SYSCTL_CHILDREN(device_get_sysctl_tree(sc->jme_dev)), OID_AUTO,
-	    "process_limit", CTLTYPE_INT | CTLFLAG_RW, &sc->jme_process_limit,
-	    0, sysctl_hw_jme_proc_limit, "I",
+	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "process_limit",
+	    CTLTYPE_INT | CTLFLAG_RW, &sc->jme_process_limit, 0,
+	    sysctl_hw_jme_proc_limit, "I",
 	    "max number of Rx events to process");
 
 	/* Pull in device tunables. */
@@ -977,8 +994,43 @@
 			sc->jme_rx_coal_pkt = PCCRX_COAL_PKT_DEFAULT;
 		}
 	}
+
+	if ((sc->jme_flags & JME_FLAG_HWMIB) == 0)
+		return;
+
+	tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD,
+	    NULL, "JME statistics");
+	parent = SYSCTL_CHILDREN(tree);
+
+	/* Rx statistics. */
+	tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx", CTLFLAG_RD,
+	    NULL, "Rx MAC statistics");
+	child = SYSCTL_CHILDREN(tree);
+	JME_SYSCTL_STAT_ADD32(ctx, child, "good_frames",

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812041348.mB4Dm3SN065978>