From owner-p4-projects@FreeBSD.ORG Sun Oct 2 04:34:33 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id A4B2E16A422; Sun, 2 Oct 2005 04:34:32 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 7453F16A420
for ; Sun, 2 Oct 2005 04:34:32 +0000 (GMT)
(envelope-from alc@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 1F70543D45
for ; Sun, 2 Oct 2005 04:34:32 +0000 (GMT)
(envelope-from alc@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j924YW2q021293
for ; Sun, 2 Oct 2005 04:34:32 GMT
(envelope-from alc@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j924YVXA021290
for perforce@freebsd.org; Sun, 2 Oct 2005 04:34:31 GMT
(envelope-from alc@freebsd.org)
Date: Sun, 2 Oct 2005 04:34:31 GMT
Message-Id: <200510020434.j924YVXA021290@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
alc@freebsd.org using -f
From: Alan Cox
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84640 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Sun, 02 Oct 2005 04:34:33 -0000
http://perforce.freebsd.org/chv.cgi?CH=84640
Change 84640 by alc@alc_home on 2005/10/02 04:34:26
IFC @84637
Affected files ...
.. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#2 integrate
.. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/boot/chapter.sgml#2 integrate
.. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml#2 integrate
.. //depot/projects/superpages/src/UPDATING#2 integrate
.. //depot/projects/superpages/src/etc/rc.subr#2 integrate
.. //depot/projects/superpages/src/sys/dev/wi/if_wi.c#2 integrate
Differences ...
==== //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#2 (text+ko) ====
@@ -1,4 +1,4 @@
-
+
@@ -71,32 +71,47 @@
load the operating system, which has become shortened to
booting.
+ BIOS
+
+ Basic Input/Output SystemBIOS
+
On x86 hardware the Basic Input/Output System (BIOS) is responsible
for loading the operating system. To do this, the BIOS looks on the
hard disk for the Master Boot Record (MBR), which must be located on a
specific place on the disk. The BIOS has enough knowledge to load and
run the MBR, and assumes that the MBR can then carry out the rest of the
- tasks involved in loading the operating system.
+ tasks involved in loading the operating system,
+ possibly with the help of the BIOS.
+
+ Master Boot Record (MBR)
+
+ Boot Manager
-
- BIOS
-
+ Boot Loader
-
- Basic Input/Output System
- BIOS
-
+ The code within the MBR is usually referred to as a boot
+ manager, especially when it interacts with the user. In this case
+ the boot manager usually has more code in the first
+ track of the disk or within some OS's file system. (A
+ boot manager is sometimes also called a boot loader,
+ but FreeBSD uses that term for a later stage of booting.) Popular boot
+ managers include boot0 (a.k.a. Boot
+ Easy, the standard &os; boot manager),
+ Grub, GAG, and
+ LILO.
+ (Only boot0 fits within the MBR.)
- If you only have one operating system installed on your disks then
- the standard MBR will suffice. This MBR searches for the first bootable
- slice on the disk, and then runs the code on that slice to load the
- remainder of the operating system.
+ If you have only one operating system installed on your disks then
+ a standard PC MBR will suffice. This MBR searches for the first bootable
+ (a.k.a. active) slice on the disk, and then runs the code on that slice to
+ load the remainder of the operating system. The MBR installed by
+ &man.fdisk.8;, by default, is such an MBR. It is based on
+ /boot/mbr.If you have installed multiple operating systems on your disks then
- you can install a different MBR, one that can display a list of
+ you can install a different boot manager, one that can display a list of
different operating systems, and allows you to choose the one to boot
- from. FreeBSD comes with one such MBR which can be installed, and other
- operating system vendors also provide alternative MBRs.
+ from. Two of these are discussed in the next subsection.
The remainder of the FreeBSD bootstrap system is divided into three
stages. The first stage is run by the MBR, which knows just enough to
@@ -122,28 +137,28 @@
- The MBR, and Boot Stages One, Two, and Three
+ The Boot Manager and Boot Stages
+
+ Boot Manager
- MBR, /boot/boot0
+ The Boot ManagerMaster Boot Record (MBR)
- The MBR installed by FreeBSD's installer and by boot0cfg(8)
- are based on /boot/boot0. The MBR is the first
- sector of a disk, outside slices. (The MBR installed by fdisk(8),
- by default, is based on /boot/mbr; it is
- similar to the PC-DOS MBR and it boots the slice marked
- active without prompting the user as the
- FreeBSD MBR does.)
+ The code in the MBR or boot manager is sometimes referred to as
+ stage zero of the boot process. This subsection
+ discusses two of the boot managers previously mentioned:
+ boot0 and LILO.
- boot0 is very simple, since the
- program in the MBR can only be 512 bytes in
- size.
- (Actually, it can only be 446 bytes because of the slice
- table and the 0x55AA identifier at the end of the MBR).
- If you have installed the FreeBSD MBR and have installed
- multiple operating systems on your hard disks then you will see a
- display similar to this one at boot time:
+ The boot0 Boot Manager:
+ The MBR installed by FreeBSD's installer or &man.boot0cfg.8;, by
+ default, is based on /boot/boot0.
+ (The boot0 program is very simple, since the
+ program in the MBR can only be 446 bytes long because of the slice
+ table and 0x55AA identifier at the end of the MBR.)
+ If you have installed boot0 and
+ multiple operating systems on your hard disks, then you will see a
+ display similar to this one at boot time:boot0 Screenshot
@@ -164,38 +179,34 @@
&prompt.root; fdisk -B -b /boot/boot0 device
- Where device is the device that you
+ where device is the device that you
boot from, such as ad0 for the first IDE
disk, ad2 for the first IDE disk on a second
IDE controller, da0 for the first SCSI disk,
- and so on.
+ and so on. Or, if you want a custom configuration of the MBR,
+ use &man.boot0cfg.8;.
+
+ The LILO Boot Manager:
- If you are a Linux user, however, and prefer that
- LILO control the boot process, you can
- edit the /etc/lilo.conf file for FreeBSD, or
- select
- during the FreeBSD installation process. If you have installed the
- FreeBSD boot manager, you can boot back into Linux and modify the
- LILO configuration file
- /etc/lilo.conf and add the following
- option:
+ To install this boot manager so it will also boot FreeBSD, first
+ start Linux and add the following to your existing
+ /etc/lilo.conf configuration file:other=/dev/hdXY
-table=/dev/hdb
+table=/dev/hdX
loader=/boot/chain.b
label=FreeBSD
- which will permit the booting of FreeBSD and Linux via
- LILO. In our example, we use
- XY to determine drive number and
- partition. If you are using a SCSI drive, you
- will want to change /dev/hdXY to read
- something similar to /dev/sdXY, which
- again uses the XY syntax. The
- can be omitted if you have
- both operating systems on the same drive. You can now run
- /sbin/lilo -v to commit your new changes to the
- system, this should be verified with screen messages.
+ In the above, specify FreeBSD's primary partition and drive using
+ Linux specifiers, replacing X with the Linux
+ drive letter and Y with the Linux primary
+ partition number. If you are using a SCSI drive, you
+ will need to change /dev/hd to read something
+ similar to /dev/sd. The
+ line can be omitted if you have
+ both operating systems on the same drive. Now run
+ /sbin/lilo -v to commit your new changes to the
+ system; this should be verified by checking its screen messages.
@@ -205,17 +216,18 @@
Conceptually the first and second stages are part of the same
program, on the same area of the disk. Because of space constraints
they have been split into two, but you would always install them
- together.
+ together. They are copied from the combined file
+ /boot/boot by the installer or
+ disklabel (see below).
- They are found on the boot sector of
- the boot slice, which is where boot0, or any other program on the
- MBR expects to find the program to run to
- continue the boot process. The files in the
- /boot directory are copies of the real files,
- which are stored outside of the FreeBSD file system.
+ They are located outside file systems, in the first track of
+ the boot slice, starting with the first sector. This is where boot0, or any other boot manager,
+ expects to find a program to run which will
+ continue the boot process. The number of sectors used is easily
+ determined from the size of /boot/boot.
- boot1 is very simple, since it too
+ boot1 is very simple, since it
can only be 512 bytes
in size, and knows just enough about the FreeBSD
disklabel, which stores information
==== //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/security/chapter.sgml#2 (text+ko) ====
@@ -1,7 +1,7 @@
@@ -863,8 +863,6 @@
(except for certain specific Internet-accessible ports, of
course).
- ICMP_BANDLIM
-
Another common DoS attack is called a springboard attack
— to attack a server in a manner that causes the server to
generate responses which overloads the server, the local
@@ -885,10 +883,13 @@
server to saturate its outgoing network with ICMP responses. This
type of attack can also crash the server by running it out of
mbuf's, especially if the server cannot drain the ICMP responses
- it generates fast enough. The &os; kernel has a new kernel
+ it generates fast enough. &os; 4.X kernels have a kernel
compile option called
which limits the effectiveness
- of these sorts of attacks. The last major class of springboard
+ of these sorts of attacks.
+ Later kernels use the sysctl
+ variable net.inet.icmp.icmplim.
+ The last major class of springboard
attacks is related to certain internal
inetd services such as the
udp echo service. An attacker simply spoofs a UDP packet with the
==== //depot/projects/superpages/src/UPDATING#2 (text+ko) ====
@@ -21,6 +21,10 @@
developers choose to disable these features on build machines
to maximize performance.
+20051001:
+ kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
+ to turn polling(4) on your interfaces.
+
20050927:
The old bridge(4) implementation was retired. The new
if_bridge(4) serves as a full functional replacement.
@@ -415,4 +419,4 @@
Contact Warner Losh if you have any questions about your use of
this document.
-$FreeBSD: src/UPDATING,v 1.421 2005/09/27 18:10:29 mlaier Exp $
+$FreeBSD: src/UPDATING,v 1.422 2005/10/01 20:53:51 glebius Exp $
==== //depot/projects/superpages/src/etc/rc.subr#2 (text+ko) ====
@@ -1,5 +1,5 @@
# $NetBSD: rc.subr,v 1.60 2003/07/26 05:13:47 lukem Exp $
-# $FreeBSD: src/etc/rc.subr,v 1.37 2005/08/24 16:25:47 yar Exp $
+# $FreeBSD: src/etc/rc.subr,v 1.38 2005/10/01 20:58:03 yar Exp $
#
# Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -515,7 +515,7 @@
fi
if [ -z "$rc_arg" ]; then
- rc_usage "$_keywords"
+ rc_usage $_keywords
fi
if [ -n "$flags" ]; then # allow override from environment
@@ -797,7 +797,7 @@
;;
*)
- rc_usage "$_keywords"
+ rc_usage $_keywords
;;
esac
@@ -805,7 +805,7 @@
done
echo 1>&2 "$0: unknown directive '$rc_arg'."
- rc_usage "$_keywords"
+ rc_usage $_keywords
exit 1
}
==== //depot/projects/superpages/src/sys/dev/wi/if_wi.c#2 (text+ko) ====
@@ -62,7 +62,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.191 2005/09/28 09:27:46 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.192 2005/10/02 03:55:07 avatar Exp $");
#define WI_HERMES_AUTOINC_WAR /* Work around data write autoinc bug. */
#define WI_HERMES_STATS_WAR /* Work around stats counter bug. */
@@ -742,7 +742,7 @@
wi_write_val(sc, WI_RID_OWN_BEACON_INT, ic->ic_bintval);
wi_write_val(sc, WI_RID_BASIC_RATE, 0x03); /* 1, 2 */
wi_write_val(sc, WI_RID_SUPPORT_RATE, 0x0f); /* 1, 2, 5.5, 11 */
- wi_write_val(sc, WI_RID_DTIM_PERIOD, 1);
+ wi_write_val(sc, WI_RID_DTIM_PERIOD, ic->ic_dtim_period);
}
/*
From owner-p4-projects@FreeBSD.ORG Sun Oct 2 04:54:58 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 0154516A421; Sun, 2 Oct 2005 04:54:57 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id B718716A41F
for ; Sun, 2 Oct 2005 04:54:57 +0000 (GMT)
(envelope-from alc@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 653E543D46
for ; Sun, 2 Oct 2005 04:54:57 +0000 (GMT)
(envelope-from alc@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j924svi2029221
for ; Sun, 2 Oct 2005 04:54:57 GMT
(envelope-from alc@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j924suAU029218
for perforce@freebsd.org; Sun, 2 Oct 2005 04:54:56 GMT
(envelope-from alc@freebsd.org)
Date: Sun, 2 Oct 2005 04:54:56 GMT
Message-Id: <200510020454.j924suAU029218@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
alc@freebsd.org using -f
From: Alan Cox
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84641 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Sun, 02 Oct 2005 04:54:59 -0000
http://perforce.freebsd.org/chv.cgi?CH=84641
Change 84641 by alc@alc_home on 2005/10/02 04:54:30
Integrate changes from my private branch.
Affected files ...
.. //depot/projects/superpages/src/sys/alpha/include/param.h#2 integrate
.. //depot/projects/superpages/src/sys/amd64/amd64/pmap.c#2 integrate
.. //depot/projects/superpages/src/sys/amd64/include/param.h#2 integrate
.. //depot/projects/superpages/src/sys/arm/include/param.h#2 integrate
.. //depot/projects/superpages/src/sys/conf/NOTES#2 integrate
.. //depot/projects/superpages/src/sys/conf/files#2 integrate
.. //depot/projects/superpages/src/sys/conf/options#2 integrate
.. //depot/projects/superpages/src/sys/i386/i386/pmap.c#2 integrate
.. //depot/projects/superpages/src/sys/i386/include/param.h#2 integrate
.. //depot/projects/superpages/src/sys/ia64/include/param.h#2 integrate
.. //depot/projects/superpages/src/sys/kern/vfs_bio.c#2 integrate
.. //depot/projects/superpages/src/sys/modules/linux/Makefile#2 integrate
.. //depot/projects/superpages/src/sys/modules/nwfs/Makefile#2 integrate
.. //depot/projects/superpages/src/sys/modules/smbfs/Makefile#2 integrate
.. //depot/projects/superpages/src/sys/modules/svr4/Makefile#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm.h#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_buddy.c#1 branch
.. //depot/projects/superpages/src/sys/vm/vm_buddy.h#1 branch
.. //depot/projects/superpages/src/sys/vm/vm_contig.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_fault.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_map.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_object.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_object.h#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_page.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_page.h#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_pageout.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_pageq.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vm_reserve.c#1 branch
.. //depot/projects/superpages/src/sys/vm/vm_reserve.h#1 branch
.. //depot/projects/superpages/src/sys/vm/vm_zeroidle.c#2 integrate
.. //depot/projects/superpages/src/sys/vm/vnode_pager.c#2 integrate
Differences ...
==== //depot/projects/superpages/src/sys/alpha/include/param.h#2 (text+ko) ====
@@ -103,6 +103,23 @@
#define PAGE_MASK (PAGE_SIZE-1)
#define NPTEPG (PAGE_SIZE/(sizeof (pt_entry_t)))
+#define BUDDY_QUEUES 10 /* Number of queues in the buddy allocator */
+
+/*
+ * SP_LEVELS is the number of superpage sizes.
+ */
+#define SP_LEVELS 3
+
+/*
+ * SP_SMALL_SHIFT is LOG2("The Smallest Superpage Size" / PAGE_SIZE).
+ */
+#define SP_SMALL_SHIFT 3
+
+/*
+ * XXX
+ */
+#define SP_FACTOR_SHIFT 3
+
#define KERNBASE 0xfffffc0000300000LL /* start of kernel virtual */
#define BTOPKERNBASE ((u_long)KERNBASE >> PGSHIFT)
==== //depot/projects/superpages/src/sys/amd64/amd64/pmap.c#2 (text+ko) ====
@@ -133,6 +133,7 @@
#include
#include
#include
+#include
#include
#include
@@ -205,6 +206,8 @@
static pv_entry_t get_pv_entry(void);
static void pmap_clear_ptes(vm_page_t m, long bit);
+static boolean_t pmap_protect_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t sva);
+static int pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offset_t sva);
static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq,
vm_offset_t sva, pd_entry_t ptepde);
static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde);
@@ -220,6 +223,9 @@
static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t);
static vm_offset_t pmap_kmem_choose(vm_offset_t addr);
+static void mach_promote(pmap_t pmap, pd_entry_t *pde, reservation_t reserv);
+static boolean_t pmap_demote(pmap_t pmap, pd_entry_t *pde, vm_offset_t va);
+
CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t));
CTASSERT(1 << PTESHIFT == sizeof(pt_entry_t));
@@ -358,21 +364,6 @@
}
-static __inline pt_entry_t *
-pmap_pte_pde(pmap_t pmap, vm_offset_t va, pd_entry_t *ptepde)
-{
- pd_entry_t *pde;
-
- pde = pmap_pde(pmap, va);
- if (pde == NULL || (*pde & PG_V) == 0)
- return NULL;
- *ptepde = *pde;
- if ((*pde & PG_PS) != 0) /* compat with i386 pmap_pte() */
- return ((pt_entry_t *)pde);
- return (pmap_pde_to_pte(pde, va));
-}
-
-
PMAP_INLINE pt_entry_t *
vtopte(vm_offset_t va)
{
@@ -1297,11 +1288,13 @@
* normal 4K page.
*/
if (pd != 0 && (*pd & (PG_PS | PG_V)) == (PG_PS | PG_V)) {
- *pd = 0;
- pd = 0;
- pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
- pmap_unuse_pt(pmap, va, *pmap_pdpe(pmap, va));
- pmap_invalidate_all(kernel_pmap);
+ if (!pmap_demote(pmap, pd, va)) {
+ /*
+ * Invalidation of the 2MB page mapping may have caused
+ * the deallocation of the underlying PD page.
+ */
+ pd = NULL;
+ }
}
/*
@@ -1519,6 +1512,53 @@
}
/*
+ * pmap_remove_pde: do the things to unmap a superpage in a process
+ */
+static int
+pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offset_t sva)
+{
+ pd_entry_t oldpde;
+ vm_offset_t eva, va;
+ vm_page_t m;
+
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
+ KASSERT((sva & PDRMASK) == 0,
+ ("pmap_remove_pde: sva is not 2mpage aligned"));
+ oldpde = pte_load_clear(pdq);
+ if (oldpde & PG_W)
+ pmap->pm_stats.wired_count -= NBPDR / PAGE_SIZE;
+
+ /*
+ * Machines that don't support invlpg, also don't support
+ * PG_G.
+ */
+ if (oldpde & PG_G)
+ pmap_invalidate_page(kernel_pmap, sva);
+ pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
+ if (oldpde & PG_MANAGED) {
+ eva = sva + NBPDR;
+ for (va = sva, m = PHYS_TO_VM_PAGE(oldpde & PG_FRAME);
+ va < eva; va += PAGE_SIZE, m++) {
+ if (oldpde & PG_M) {
+#if defined(PMAP_DIAGNOSTIC)
+ if (pmap_nw_modified((pt_entry_t) oldpde)) {
+ printf(
+ "pmap_remove_pde: modified 2mpage not writable: va: 0x%lx, pde: 0x%lx\n",
+ va, oldpde);
+ }
+#endif
+ if (pmap_track_modified(va))
+ vm_page_dirty(m);
+ }
+ if (oldpde & PG_A)
+ vm_page_flag_set(m, PG_REFERENCED);
+ pmap_remove_entry(pmap, m, va);
+ }
+ }
+ return (pmap_unuse_pt(pmap, sva, *pmap_pdpe(pmap, sva)));
+}
+
+/*
* pmap_remove_pte: do the things to unmap a page in a process
*/
static int
@@ -1651,11 +1691,25 @@
* Check for large page.
*/
if ((ptpaddr & PG_PS) != 0) {
- *pde = 0;
- pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
- pmap_unuse_pt(pmap, sva, *pdpe);
- anyvalid = 1;
- continue;
+ if (sva + NBPDR == va_next && eva >= va_next) {
+#ifdef INVARIANTS
+ printf("pmap_remove: superpage at %lx to destroy.\n",
+ sva);
+#endif
+ pmap_remove_pde(pmap, pde, sva);
+ anyvalid = 1;
+ continue;
+ } else {
+#ifdef INVARIANTS
+ printf("pmap_remove: superpage at %lx to demote !!!\n",
+ sva);
+#endif
+ if (!pmap_demote(pmap, pde, sva)) {
+ anyvalid = 1; /* XXX */
+ continue;
+ }
+ ptpaddr = *pde;
+ }
}
/*
@@ -1698,9 +1752,10 @@
void
pmap_remove_all(vm_page_t m)
{
+ pmap_t pmap;
register pv_entry_t pv;
pt_entry_t *pte, tpte;
- pd_entry_t ptepde;
+ pd_entry_t *pde;
#if defined(PMAP_DIAGNOSTIC)
/*
@@ -1713,12 +1768,25 @@
#endif
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
- PMAP_LOCK(pv->pv_pmap);
- pv->pv_pmap->pm_stats.resident_count--;
- pte = pmap_pte_pde(pv->pv_pmap, pv->pv_va, &ptepde);
+ pmap = pv->pv_pmap;
+ PMAP_LOCK(pmap);
+ pmap->pm_stats.resident_count--;
+ pde = pmap_pde(pmap, pv->pv_va);
+ if (*pde & PG_PS) {
+ printf("pmap_remove_all: superpage to demote !!!\n");
+ if (!pmap_demote(pmap, pde, pv->pv_va)) {
+ /*
+ * All mappings within the same 2mpage were
+ * destroyed and pv was freed.
+ */
+ PMAP_UNLOCK(pmap);
+ continue;
+ }
+ }
+ pte = pmap_pde_to_pte(pde, pv->pv_va);
tpte = pte_load_clear(pte);
if (tpte & PG_W)
- pv->pv_pmap->pm_stats.wired_count--;
+ pmap->pm_stats.wired_count--;
if (tpte & PG_A)
vm_page_flag_set(m, PG_REFERENCED);
@@ -1736,18 +1804,60 @@
if (pmap_track_modified(pv->pv_va))
vm_page_dirty(m);
}
- pmap_invalidate_page(pv->pv_pmap, pv->pv_va);
- TAILQ_REMOVE(&pv->pv_pmap->pm_pvlist, pv, pv_plist);
+ pmap_invalidate_page(pmap, pv->pv_va);
+ TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist);
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
m->md.pv_list_count--;
- pmap_unuse_pt(pv->pv_pmap, pv->pv_va, ptepde);
- PMAP_UNLOCK(pv->pv_pmap);
+ pmap_unuse_pt(pmap, pv->pv_va, *pde);
+ PMAP_UNLOCK(pmap);
free_pv_entry(pv);
}
vm_page_flag_clear(m, PG_WRITEABLE);
}
/*
+ * pmap_protect_pde: do the things to protect a 2mpage in a process
+ */
+static boolean_t
+pmap_protect_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t sva)
+{
+ pd_entry_t newpde, oldpde;
+ vm_offset_t eva, va;
+ vm_page_t m;
+ boolean_t anychanged;
+
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
+ KASSERT((sva & PDRMASK) == 0,
+ ("pmap_protect_pde: sva is not 2mpage aligned"));
+ anychanged = FALSE;
+retry:
+ oldpde = newpde = *pde;
+ if (oldpde & PG_MANAGED) {
+ eva = sva + NBPDR;
+ for (va = sva, m = PHYS_TO_VM_PAGE(oldpde & PG_FRAME);
+ va < eva; va += PAGE_SIZE, m++) {
+ if (oldpde & PG_A) {
+ vm_page_flag_set(m, PG_REFERENCED);
+ newpde &= ~PG_A;
+ }
+ if ((oldpde & PG_M) != 0 &&
+ pmap_track_modified(va))
+ vm_page_dirty(m);
+ }
+ }
+ newpde &= ~(PG_RW | PG_M);
+ if (newpde != oldpde) {
+ if (!atomic_cmpset_long(pde, oldpde, newpde))
+ goto retry;
+ if (oldpde & PG_G)
+ pmap_invalidate_page(pmap, sva);
+ else
+ anychanged = TRUE;
+ }
+ return (anychanged);
+}
+
+/*
* Set the physical protection on the
* specified range of this map as requested.
*/
@@ -1802,9 +1912,16 @@
* Check for large page.
*/
if ((ptpaddr & PG_PS) != 0) {
- *pde &= ~(PG_M|PG_RW);
- anychanged = 1;
- continue;
+ if (sva + NBPDR == va_next && eva >= va_next) {
+ if (pmap_protect_pde(pmap, pde, sva))
+ anychanged = 1;
+ continue;
+ } else {
+ if (!pmap_demote(pmap, pde, sva)) {
+ anychanged = 1; /* XXX */
+ continue;
+ }
+ }
}
if (va_next > eva)
@@ -2032,6 +2149,24 @@
} else
pte_store(pte, newpte | PG_A);
}
+
+ /*
+ * Promotion condition:
+ * 1) Page has to be part of a fully populated reservation
+ * 2) Virtual adress corresponding to the reservation has to
+ * be superpage aligned
+ */
+ if (((mpte != NULL && mpte->wire_count == NPTEPG) ||
+ m->object == kernel_object || (m->object == kmem_object && FALSE)) &&
+ m->reserv != NULL &&
+ m->reserv->refcnt == NBPDR / PAGE_SIZE) {
+#ifdef INVARIANTS
+ printf("%s: pmap %p va %lx XXX\n", __func__, pmap, va);
+#endif
+ KASSERT(m->object->flags & OBJ_SUPERPAGES, ("pmap_enter: xxx"));
+ mach_promote(pmap, pmap_pde(pmap, va), m->reserv);
+ }
+
vm_page_unlock_queues();
PMAP_UNLOCK(pmap);
}
@@ -2146,6 +2281,23 @@
pte_store(pte, pa | PG_V | PG_U);
else
pte_store(pte, pa | PG_V | PG_U | PG_MANAGED);
+
+ /*
+ * Promotion condition:
+ * 1) Page has to be part of a fully populated reservation
+ * 2) Virtual adress corresponding to the reservation has to
+ * be superpage aligned
+ */
+ if (m->reserv != NULL &&
+ m->reserv->refcnt == NBPDR / PAGE_SIZE &&
+ mpte->wire_count == NPTEPG) {
+#ifdef INVARIANTS
+ printf("%s: pmap %p va %lx XXX\n", __func__, pmap, va);
+#endif
+ KASSERT(m->object->flags & OBJ_SUPERPAGES,
+ ("pmap_enter_quick: xxx"));
+ mach_promote(pmap, pmap_pde(pmap, va), m->reserv);
+ }
out:
PMAP_UNLOCK(pmap);
return mpte;
@@ -2372,6 +2524,13 @@
*pde = srcptepaddr;
dst_pmap->pm_stats.resident_count +=
NBPDR / PAGE_SIZE;
+ if (srcptepaddr & PG_MANAGED) {
+ m = PHYS_TO_VM_PAGE(srcptepaddr & PG_FRAME);
+ for (; addr < va_next; addr += PAGE_SIZE) {
+ pmap_insert_entry(dst_pmap, addr, m);
+ m++;
+ }
+ }
} else
pmap_unwire_pte_hold(dst_pmap, addr, dstmpde);
continue;
@@ -2530,6 +2689,7 @@
pmap_t pmap;
vm_offset_t sva, eva;
{
+ pd_entry_t *pde;
pt_entry_t *pte, tpte;
vm_page_t m;
pv_entry_t pv, npv;
@@ -2550,9 +2710,43 @@
}
#ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY
+ pde = vtopde(pv->pv_va);
+#else
+ pde = pmap_pde(pmap, pv->pv_va);
+#endif
+ if (*pde & PG_PS) {
+ if (*pde & PG_W) {
+ npv = TAILQ_NEXT(pv, pv_plist);
+ continue;
+ }
+ if (sva <= trunc_2mpage(pv->pv_va) &&
+ eva >= round_2mpage(pv->pv_va + 1)) {
+#ifdef INVARIANTS
+ printf("pmap_remove_pages: superpage at %lx to destroy.\n",
+ trunc_2mpage(pv->pv_va));
+#endif
+ pmap_remove_pde(pmap, pde, trunc_2mpage(pv->pv_va));
+ npv = TAILQ_FIRST(&pmap->pm_pvlist);
+ continue;
+ }
+#ifdef INVARIANTS
+ printf("pmap_remove_pages: superpage at %lx to demote !!!\n",
+ pv->pv_va);
+#endif
+ if (!pmap_demote(pmap, pde, pv->pv_va)) {
+ /*
+ * All mappings within the same 2mpage were
+ * destroyed and pv was freed.
+ */
+ npv = TAILQ_FIRST(&pmap->pm_pvlist);
+ continue;
+ }
+ }
+
+#ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY
pte = vtopte(pv->pv_va);
#else
- pte = pmap_pte(pmap, pv->pv_va);
+ pte = pmap_pde_to_pte(pde, pv->pv_va);
#endif
tpte = *pte;
@@ -2597,7 +2791,7 @@
if (TAILQ_EMPTY(&m->md.pv_list))
vm_page_flag_clear(m, PG_WRITEABLE);
- pmap_unuse_pt(pmap, pv->pv_va, *vtopde(pv->pv_va));
+ pmap_unuse_pt(pmap, pv->pv_va, *pde);
free_pv_entry(pv);
}
pmap_invalidate_all(pmap);
@@ -2657,7 +2851,7 @@
rv = FALSE;
PMAP_LOCK(pmap);
pde = pmap_pde(pmap, addr);
- if (pde != NULL && (*pde & PG_V)) {
+ if (pde != NULL && (*pde & (PG_PS | PG_V)) == PG_V) {
pte = vtopte(addr);
rv = (*pte & PG_V) == 0;
}
@@ -2671,7 +2865,9 @@
static __inline void
pmap_clear_ptes(vm_page_t m, long bit)
{
- register pv_entry_t pv;
+ pmap_t pmap;
+ pv_entry_t npv, pv;
+ pd_entry_t *pde;
pt_entry_t pbits, *pte;
if ((m->flags & PG_FICTITIOUS) ||
@@ -2683,7 +2879,7 @@
* Loop over all current mappings setting/clearing as appropos If
* setting RO do we need to clear the VAC?
*/
- TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
+ TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, npv) {
/*
* don't write protect pager mappings
*/
@@ -2692,8 +2888,22 @@
continue;
}
- PMAP_LOCK(pv->pv_pmap);
- pte = pmap_pte(pv->pv_pmap, pv->pv_va);
+ pmap = pv->pv_pmap;
+ PMAP_LOCK(pmap);
+ pde = pmap_pde(pmap, pv->pv_va);
+ if (*pde & PG_PS) {
+ printf("pmap_clear_ptes: superpage to demote !!!\n");
+ if ((*pde & bit) == 0 ||
+ !pmap_demote(pmap, pde, pv->pv_va)) {
+ /*
+ * All mappings within the same 2mpage were
+ * destroyed and pv was freed.
+ */
+ PMAP_UNLOCK(pmap);
+ continue;
+ }
+ }
+ pte = pmap_pde_to_pte(pde, pv->pv_va);
retry:
pbits = *pte;
if (pbits & bit) {
@@ -2707,9 +2917,9 @@
} else {
atomic_clear_long(pte, bit);
}
- pmap_invalidate_page(pv->pv_pmap, pv->pv_va);
+ pmap_invalidate_page(pmap, pv->pv_va);
}
- PMAP_UNLOCK(pv->pv_pmap);
+ PMAP_UNLOCK(pmap);
}
if (bit == PG_RW)
vm_page_flag_clear(m, PG_WRITEABLE);
@@ -2747,6 +2957,7 @@
int
pmap_ts_referenced(vm_page_t m)
{
+ pmap_t pmap;
register pv_entry_t pv, pvf, pvn;
pt_entry_t *pte;
pt_entry_t v;
@@ -2770,20 +2981,21 @@
if (!pmap_track_modified(pv->pv_va))
continue;
- PMAP_LOCK(pv->pv_pmap);
- pte = pmap_pte(pv->pv_pmap, pv->pv_va);
+ pmap = pv->pv_pmap;
+ PMAP_LOCK(pmap);
+ pte = pmap_pte(pmap, pv->pv_va);
if (pte && ((v = pte_load(pte)) & PG_A) != 0) {
atomic_clear_long(pte, PG_A);
- pmap_invalidate_page(pv->pv_pmap, pv->pv_va);
+ pmap_invalidate_page(pmap, pv->pv_va);
rtval++;
if (rtval > 4) {
- PMAP_UNLOCK(pv->pv_pmap);
+ PMAP_UNLOCK(pmap);
break;
}
}
- PMAP_UNLOCK(pv->pv_pmap);
+ PMAP_UNLOCK(pmap);
} while ((pv = pvn) != NULL && pv != pvf);
}
@@ -2873,24 +3085,35 @@
pmap_t pmap;
vm_offset_t addr;
{
- pt_entry_t *ptep, pte;
+ pd_entry_t *pdep;
+ pt_entry_t pte;
+ vm_paddr_t pa;
vm_page_t m;
int val = 0;
PMAP_LOCK(pmap);
- ptep = pmap_pte(pmap, addr);
- pte = (ptep != NULL) ? *ptep : 0;
+ pdep = pmap_pde(pmap, addr);
+ if (pdep != NULL && (*pdep & PG_V)) {
+ if (*pdep & PG_PS) {
+ KASSERT((*pdep & PG_FRAME & PDRMASK) == 0,
+ ("pmap_mincore: bad pde"));
+ pte = *pdep;
+ pa = (*pdep & PG_FRAME) | (addr & PDRMASK);
+ } else {
+ pte = *pmap_pde_to_pte(pdep, addr);
+ pa = pte & PG_FRAME;
+ }
+ } else {
+ pte = 0;
+ pa = 0;
+ }
PMAP_UNLOCK(pmap);
if (pte != 0) {
- vm_paddr_t pa;
-
val = MINCORE_INCORE;
if ((pte & PG_MANAGED) == 0)
return val;
- pa = pte & PG_FRAME;
-
m = PHYS_TO_VM_PAGE(pa);
/*
@@ -2975,3 +3198,131 @@
addr = (addr + (NBPDR - 1)) & ~(NBPDR - 1);
return addr;
}
+
+#define COMPATIBLE_PTE_MASK (PG_NX | PG_U | PG_RW)
+#define COMPATIBLE_PTE(a,b) ((a & COMPATIBLE_PTE_MASK) == (b & COMPATIBLE_PTE_MASK))
+
+static void
+mach_promote(pmap_t pmap, pd_entry_t *pde, reservation_t reserv)
+{
+ vm_paddr_t pa;
+ pt_entry_t *pte, *first_pte, flags;
+ vm_page_t page_pa;
+ vm_page_t tofree = PHYS_TO_VM_PAGE(*pde & PG_FRAME); /*pte page to free after promotion*/
+
+ first_pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME);
+ flags = *first_pte;
+ pa = VM_PAGE_TO_PHYS(reserv->first_page);
+
+ /*
+ * Check all the ptes before promotion
+ */
+ for (pte = first_pte; pte < first_pte + NPTEPG; pte++) {
+ if (pa != (*pte & PG_FRAME))
+ return;
+ pa += PAGE_SIZE;
+
+ page_pa = PHYS_TO_VM_PAGE(*pte & PG_FRAME);
+ KASSERT(page_pa->reserv,("mach_promote: page has no reservation"));
+ KASSERT(page_pa->reserv == reserv,("mach_promote: reservation mismatch"));
+
+ if ((*pte & PG_V) == 0 || !COMPATIBLE_PTE(*pte, flags))
+ return;
+
+ /* Add dirty bit and accsd bit to the flags, if necessary */
+ flags |= *pte & (PG_A | PG_M);
+ }
+
+ /* Create a superpage: add PG_PS bit to the pde */
+ *pde = PG_PS | flags;
+
+ if (pmap != kernel_pmap)
+ pmap->pm_stats.resident_count--;
+
+ /* Invalidate old TLB entries */
+ pmap_invalidate_all(pmap);
+
+ /*
+ * XXX
+ *
+ * File system corruption occurs if pte pages belonging to the
+ * kernel pmap are freed.
+ */
+ if (pmap != kernel_pmap) {
+ KASSERT(tofree->wire_count == NPTEPG,
+ ("pmap_promote: pte page wire count error"));
+ tofree->wire_count = 0;
+ vm_page_free(tofree);
+ atomic_subtract_int(&cnt.v_wire_count, 1);
+ }
+
+#ifdef INVARIANTS
+ printf("Promotion successful XXX\n");
+#endif
+}
+
+static boolean_t
+pmap_demote(pmap_t pmap, pd_entry_t *pde0, vm_offset_t va)
+{
+ pd_entry_t save_pde_value, new_pte_value ;
+ pt_entry_t *pte_page_va, *new_pte_va;
+ vm_paddr_t pte_page_pa;
+ vm_page_t pte_page;
+
+ KASSERT((*pde0 & PG_PS) != 0,
+ ("pmap_demote: not a superpage, impossible to demote"));
+
+ /* STEP 1
+ * Allocate the PTE page
+ */
+ if ((pte_page = vm_page_alloc(NULL, pmap_pde_pindex(va),
+ VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED)) == NULL) {
+ pmap_remove_pde(pmap, pde0, trunc_2mpage(va));
+ pmap_invalidate_all(pmap);
+ return (FALSE);
+ }
+ pte_page->wire_count += NPTEPG - 1;
+ KASSERT(pte_page->wire_count == NPTEPG,
+ ("pmap_demote: page table page %p has wire count %d",
+ pte_page, pte_page->wire_count));
+ if (pmap != kernel_pmap)
+ pmap->pm_stats.resident_count++;
+
+ pte_page_pa = VM_PAGE_TO_PHYS(pte_page);
+ pte_page_va = (vm_offset_t *) PHYS_TO_DMAP(pte_page_pa);
+ pte_page_pa |= PG_U | PG_RW | PG_V | PG_A | PG_M;
+
+repeat:
+
+ /* STEP 2
+ * Save the value of the pde entry
+ * Define the value of the first pte entry
+ */
+ save_pde_value = *pde0;
+
+ /* STEP 3
+ * Fill the PTE page with the physical address of the base pages
+ */
+ for ( new_pte_va = pte_page_va, new_pte_value = save_pde_value & ~PG_PS;
+ new_pte_va < pte_page_va + NPTEPG;
+ new_pte_va++ , new_pte_value += PAGE_SIZE) {
+
+ *new_pte_va = new_pte_value ;
+
+ }
+
+ /* STEP 4:
+ * Check if pde value has changed
+ * If not, assign the new pde value.
+ * If yes, repeat the pte assignment loop.
+ */
+ if (!atomic_cmpset_long(pde0, save_pde_value, pte_page_pa))
+ goto repeat;
+
+ /*
+ * Some implementations of the amd64 architecture prefetch TLB
+ * entries.
+ */
+ pmap_invalidate_page(pmap, (vm_offset_t)vtopte(va));
+ return (TRUE);
+}
==== //depot/projects/superpages/src/sys/amd64/include/param.h#2 (text+ko) ====
@@ -119,6 +119,23 @@
#define NBPML4 (1ul< MYKERNEL
==== //depot/projects/superpages/src/sys/conf/files#2 (text+ko) ====
@@ -1890,6 +1890,7 @@
vm/swap_pager.c standard
vm/uma_core.c standard
vm/uma_dbg.c standard
+vm/vm_buddy.c standard
vm/vm_contig.c standard
vm/memguard.c optional DEBUG_MEMGUARD
vm/vm_fault.c standard
@@ -1904,6 +1905,7 @@
vm/vm_pageout.c standard
vm/vm_pageq.c standard
vm/vm_pager.c standard
+vm/vm_reserve.c standard
vm/vm_unix.c standard
vm/vm_zeroidle.c standard
vm/vnode_pager.c standard
==== //depot/projects/superpages/src/sys/conf/options#2 (text+ko) ====
@@ -515,12 +515,6 @@
NO_SWAPPING opt_vm.h
MALLOC_MAKE_FAILURES opt_vm.h
MALLOC_PROFILE opt_vm.h
-PQ_NOOPT opt_vmpage.h
-PQ_NORMALCACHE opt_vmpage.h
-PQ_MEDIUMCACHE opt_vmpage.h
-PQ_LARGECACHE opt_vmpage.h
-PQ_HUGECACHE opt_vmpage.h
-PQ_CACHESIZE opt_vmpage.h
# The MemGuard replacement allocator used for tamper-after-free detection
DEBUG_MEMGUARD opt_vm.h
==== //depot/projects/superpages/src/sys/i386/i386/pmap.c#2 (text+ko) ====
@@ -133,6 +133,7 @@
#include
#include
#include
+#include
#include
#include
@@ -255,6 +256,8 @@
static pv_entry_t get_pv_entry(void);
static void pmap_clear_ptes(vm_page_t m, int bit);
+static boolean_t pmap_protect_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t sva);
+static void pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offset_t sva);
static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva);
static void pmap_remove_page(struct pmap *pmap, vm_offset_t va);
static void pmap_remove_entry(struct pmap *pmap, vm_page_t m,
@@ -273,6 +276,9 @@
static void *pmap_pdpt_allocf(uma_zone_t zone, int bytes, u_int8_t *flags, int wait);
#endif
+static void mach_promote(pmap_t pmap, vm_offset_t va, reservation_t reserv);
+static boolean_t pmap_demote(pmap_t pmap, pd_entry_t *pde, vm_offset_t va);
+
CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t));
CTASSERT(1 << PTESHIFT == sizeof(pt_entry_t));
@@ -1199,10 +1205,8 @@
* normal 4K page.
*/
if (ptepa & PG_PS) {
- pmap->pm_pdir[ptepindex] = 0;
- ptepa = 0;
- pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
- pmap_invalidate_all(kernel_pmap);
+ pmap_demote(pmap, &pmap->pm_pdir[ptepindex], va);
+ ptepa = pmap->pm_pdir[ptepindex];
}
/*
@@ -1521,6 +1525,52 @@
}
/*
+ * pmap_remove_pde: do the things to unmap a superpage in a process
+ */
+static void
+pmap_remove_pde(pmap_t pmap, pd_entry_t *pdq, vm_offset_t sva)
+{
+ pd_entry_t oldpde;
+ vm_offset_t eva, va;
+ vm_page_t m;
+
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
+ KASSERT((sva & PDRMASK) == 0,
+ ("pmap_remove_pde: sva is not 4mpage aligned"));
+ oldpde = pte_load_clear(pdq);
+ if (oldpde & PG_W)
+ pmap->pm_stats.wired_count -= NBPDR / PAGE_SIZE;
+
+ /*
+ * Machines that don't support invlpg, also don't support
+ * PG_G.
+ */
+ if (oldpde & PG_G)
+ pmap_invalidate_page(kernel_pmap, sva);
+ pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
+ if (oldpde & PG_MANAGED) {
+ eva = sva + NBPDR;
+ for (va = sva, m = PHYS_TO_VM_PAGE(oldpde & PG_FRAME);
+ va < eva; va += PAGE_SIZE, m++) {
+ if (oldpde & PG_M) {
+#if defined(PMAP_DIAGNOSTIC)
+ if (pmap_nw_modified((pt_entry_t) oldpde)) {
+ printf(
+ "pmap_remove_pde: modified 4mpage not writable: va: 0x%x, pde: 0x%x\n",
+ va, oldpde);
+ }
+#endif
+ if (pmap_track_modified(va))
+ vm_page_dirty(m);
+ }
+ if (oldpde & PG_A)
+ vm_page_flag_set(m, PG_REFERENCED);
+ pmap_remove_entry(pmap, m, va);
+ }
+ }
+}
+
+/*
* pmap_remove_pte: do the things to unmap a page in a process
*/
static int
@@ -1639,10 +1689,24 @@
* Check for large page.
*/
if ((ptpaddr & PG_PS) != 0) {
- pmap->pm_pdir[pdirindex] = 0;
- pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
- anyvalid = 1;
- continue;
+ if (sva + NBPDR == pdnxt && eva >= pdnxt) {
+#ifdef INVARIANTS
+ printf("pmap_remove: superpage at %x to destroy.\n",
+ sva);
+#endif
+ pmap_remove_pde(pmap, pmap_pde(pmap, sva), sva);
+ anyvalid = 1;
+ continue;
+ } else {
+#ifdef INVARIANTS
+ printf("pmap_remove: superpage at %x to demote !!!\n",
+ sva);
+#endif
+ if (!pmap_demote(pmap, pmap_pde(pmap, sva), sva)) {
+ anyvalid = 1; /* XXX */
+ continue;
+ }
+ }
}
/*
@@ -1686,8 +1750,10 @@
void
pmap_remove_all(vm_page_t m)
{
+ pmap_t pmap;
register pv_entry_t pv;
pt_entry_t *pte, tpte;
+ pd_entry_t *pde;
#if defined(PMAP_DIAGNOSTIC)
/*
@@ -1701,12 +1767,25 @@
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
sched_pin();
while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
- PMAP_LOCK(pv->pv_pmap);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 07:34:02 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 9FBCF16A421; Mon, 3 Oct 2005 07:34:01 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 731ED16A41F
for ; Mon, 3 Oct 2005 07:34:01 +0000 (GMT)
(envelope-from soc-emily@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 44D2243D48
for ; Mon, 3 Oct 2005 07:34:01 +0000 (GMT)
(envelope-from soc-emily@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j937Y1Ya046386
for ; Mon, 3 Oct 2005 07:34:01 GMT
(envelope-from soc-emily@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j937Y0dw046381
for perforce@freebsd.org; Mon, 3 Oct 2005 07:34:00 GMT
(envelope-from soc-emily@freebsd.org)
Date: Mon, 3 Oct 2005 07:34:00 GMT
Message-Id: <200510030734.j937Y0dw046381@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-emily@freebsd.org using -f
From: soc-emily
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84702 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 07:34:02 -0000
http://perforce.freebsd.org/chv.cgi?CH=84702
Change 84702 by soc-emily@soc-emily_beastie on 2005/10/03 07:33:00
Small SGML fix.
Affected files ...
.. //depot/projects/soc2005/www/freebsd/fr/platforms/sparc.sgml#4 edit
Differences ...
==== //depot/projects/soc2005/www/freebsd/fr/platforms/sparc.sgml#4 (text+ko) ====
@@ -78,6 +78,8 @@
href="http://docs.FreeBSD.org/cgi/mid.cgi?200301190023.h0J0Nx0N068255">
maintenant supporté dans -CURRENT.
+
10 Décembre 2002: Des instantanés
+ quotidiens de 5.0-CURRENT sont maintenant disponibles sur
ftp2.FreeBSD.org.
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 09:16:11 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id CCFF116A421; Mon, 3 Oct 2005 09:16:10 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 8338816A41F
for ; Mon, 3 Oct 2005 09:16:10 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 4182243D48
for ; Mon, 3 Oct 2005 09:16:10 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j939G9Uj057319
for ; Mon, 3 Oct 2005 09:16:10 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j939G8RF057316
for perforce@freebsd.org; Mon, 3 Oct 2005 09:16:09 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 3 Oct 2005 09:16:09 GMT
Message-Id: <200510030916.j939G8RF057316@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84703 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 09:16:11 -0000
http://perforce.freebsd.org/chv.cgi?CH=84703
Change 84703 by rwatson@rwatson_zoo on 2005/10/03 09:15:46
Rearrange, clean up, add to, and remove from the BSM kernel audit
events list based on inspection of Solaris, Darwin, and FreeBSD:
- Add Solaris AUE_CREAT event, and assign AUE_O_CREAT to AUE_CREAT
instead of AUE_OPEN_RWTC.
- Add Solaris AUE_VTRACE.
- Annotate presence and possible conflict of AUE_SYSINFO.
- Add Solaris AUE_KILLPG and alias AUE_O_KILLPG to it rather than
AUE_NULL.
- Add Solaris AUE_SEMSYS and use that instead of AUE_NULL.
- Add AUE_SOLARIS_REBOOT, AUE_SOLARIS_SETHOSTNAME,
AUE_SOLARIS_SETPRIORITY, AUE_SOLARIS_SETTIMEOFDAY,
AUE_SOLARIS_TRUNCATE, AUE_SOLARIS_FTRUNCATE, AUE_SOLARIS_FLOCK,
AUE_SOLARIS_NFS_SVC, AUE_SOLARIS_UNMOUNT,
AUE_SOLARIS_SETDOMAINNAME, AUE_SOLARIS_QUOTACTL, which are
defines for events from Solaris which conflict with Darwin events
of similar names. These conflicts will need to be resolved,
almost certainly by changing Darwin. Annotate Darwin event
entries as in conflict also.
- Where events exist for AUE_O_whatever, move the definitions to
beside whatever it is they alias.
- Add misc other Solaris events: AUE_VTRACE, AUE_ASYNC_DAAEMON,
NFS_EXPORTFS, AUE_SEMSYS, AUE_O_EXPORTFS, AUE_BSMSYS, AUE_RFSSYS,
AUE_VPIXSYS, AUE_ASYNC_DAEMON_EXIT, AUE_NFSSVC_EXIT, AUE_WRITEL,
AUE_WRITEVL.
- Add new events AUE_EACCESS, AUE_KQUEUE, AUE_KEVENT.
Affected files ...
.. //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#21 edit
Differences ...
==== //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#21 (text+ko) ====
@@ -33,7 +33,8 @@
#define AUE_EXIT 1
#define AUE_FORK 2
#define AUE_OPEN 3
-#define AUE_O_CREAT AUE_OPEN_RWTC
+#define AUE_CREAT 4
+#define AUE_O_CREAT AUE_CREAT
#define AUE_LINK 5
#define AUE_UNLINK 6
#define AUE_DELETE AUE_UNLINK
@@ -47,12 +48,12 @@
#define AUE_ACCESS 14
#define AUE_CHECKUSERACCESS AUE_ACCESS
#define AUE_KILL 15
-#define AUE_O_KILLPG AUE_KILL
#define AUE_STAT 16
#define AUE_O_STAT AUE_STAT
#define AUE_LSTAT 17
#define AUE_O_LSTAT AUE_LSTAT
#define AUE_ACCT 18
+#define AUE_SOLARIS_REBOOT 20 /* XXX: Darwin conflict. */
#define AUE_SYMLINK 21
#define AUE_READLINK 22
#define AUE_EXECVE 23
@@ -61,17 +62,27 @@
#define AUE_SETGROUPS 26
#define AUE_SETPGRP 27
#define AUE_SWAPON 28
+#define AUE_SOLARIS_SETHOSTNAME 29 /* XXX: Darwin conflict. */
#define AUE_FCNTL 30
+#define AUE_SOLARIS_SETPRIORITY 31 /* XXX: Darwin conflict. */
#define AUE_CONNECT 32
#define AUE_ACCEPT 33
#define AUE_O_ACCEPT AUE_ACCEPT
#define AUE_BIND 34
#define AUE_SETSOCKOPT 35
+#define AUE_VTRACE 36 /* Solaris-specific. */
+#define AUE_SOLARIS_SETTIMEOFDAY 37 /* XXX: Darwin conflict. */
#define AUE_FCHOWN 38
#define AUE_FCHMOD 39
+/* XXX: #define AUE_SYSINFO 39 */
#define AUE_SETREUID 40
+#define AUE_O_SETREUID AUE_SETREUID
#define AUE_SETREGID 41
+#define AUE_O_SETREGID AUE_SETREGID
#define AUE_RENAME 42
+#define AUE_SOLARIS_TRUNCATE 43 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_FTRUNCATE 44 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_FLOCK 45 /* XXX: Darwin conflict. */
#define AUE_SHUTDOWN 46
#define AUE_MKDIR 47
#define AUE_RMDIR 48
@@ -79,14 +90,29 @@
#define AUE_ADJTIME 50
#define AUE_SETRLIMIT 51
#define AUE_O_SETRLIMIT AUE_SETRLIMIT
+#define AUE_KILLPG 52
+#define AUE_O_KILLPG AUE_KILLPG
+#define AUE_SOLARIS_NFS_SVC 53 /* XXX: Darwin conflict. */
#define AUE_STATFS 54
#define AUE_FSTATFS 55
+#define AUE_SOLARIS_UNMOUNT 56 /* XXX: Darwin conflict. */
+#define AUE_ASYNC_DAEMON 57
+#define AUE_NFS_GETFH 58 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_SETDOMAINNAME 59 /* XXX: Darwin conflict. */
+#define AUE_O_SETDOMAINNAME AUE_SYSCTL
+#define AUE_SOLARIS_QUOTACTL 60 /* XXX: Darwin conflict. */
+#define AUE_EXPORTFS 61
+#define AUE_O_EXPORTFS AUE_EXPORTFS
#define AUE_MOUNT 62
#define AUE_O_MOUNT AUE_MOUNT
+#define AUE_SEMSYS 63
#define AUE_MSGSYS 64
#define AUE_SHMSYS 65
+#define AUE_BSMSYS 66 /* Solaris-specific. */
+#define AUE_RFSSYS 67 /* Solaris-specific. */
#define AUE_FCHDIR 68
#define AUE_FCHROOT 69
+#define AUE_VPIXSYS 70 /* Solaris-specific. */
#define AUE_PATHCONF 71
#define AUE_OPEN_R 72
#define AUE_OPEN_RC 73
@@ -130,6 +156,10 @@
#define AUE_CORE 111
#define AUE_CLOSE 112
#define AUE_SYSTEMBOOT 113
+#define AUE_ASYNC_DAEMON_EXIT 114 /* Solaris-only. */
+#define AUE_NFSSVC_EXIT 115 /* Solaris-only. */
+#define AUE_WRITEL 128 /* Solaris-only. */
+#define AUE_WRITEVL 129 /* Solaris-only. */
#define AUE_GETAUID 130
#define AUE_SETAUID 131
#define AUE_GETAUDIT 132
@@ -229,22 +259,22 @@
#define AUE_PROFILE 305
#define AUE_KTRACE 306
#define AUE_SETLOGIN 307
-#define AUE_REBOOT 308
+#define AUE_REBOOT 308 /* XXX: See AUE_SOLARIS_REBOOT. */
#define AUE_REVOKE 309
#define AUE_UMASK 310
#define AUE_MPROTECT 311
-#define AUE_SETPRIORITY 312
-#define AUE_SETTIMEOFDAY 313
-#define AUE_FLOCK 314
+#define AUE_SETPRIORITY 312 /* XXX: See AUE_SOLARIS_SETPRIORITY. */
+#define AUE_SETTIMEOFDAY 313 /* XXX: See AUE_SOLARIS_SETTIMEOFDAY. */
+#define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */
#define AUE_MKFIFO 315
#define AUE_POLL 316
#define AUE_SOCKETPAIR 317
#define AUE_FUTIMES 318
#define AUE_SETSID 319
#define AUE_SETPRIVEXEC 320
-#define AUE_NFSSVC 321
-#define AUE_GETFH 322
-#define AUE_QUOTACTL 323
+#define AUE_NFSSVC 321 /* XXX: See AUE_SOLARIS_NFS_SVC. */
+#define AUE_GETFH 322 /* XXX: See AUE_SOLARIS_NFS_GETFH. */
+#define AUE_QUOTACTL 323 /* XXX: See AUE_SOLARIS_QUOTACTL. */
#define AUE_ADDPROFILE 324
#define AUE_KDBUGTRACE 325
#define AUE_FSTAT 326
@@ -252,13 +282,12 @@
#define AUE_FPATHCONF 327
#define AUE_GETDIRENTRIES 328
#define AUE_O_GETDIRENTRIES AUE_GETDIRENTRIES
-#define AUE_TRUNCATE 329
+#define AUE_TRUNCATE 329 /* XXX: See AUE_SOLARIS_TRUNCATE. */
#define AUE_O_TRUNCATE AUE_TRUNCATE
-#define AUE_FTRUNCATE 330
+#define AUE_FTRUNCATE 330 /* XXX: See AUE_SOLARIS_FTRUNCATE. */
#define AUE_O_FTRUNCATE AUE_FTRUNCATE
#define AUE_SYSCTL 331
-#define AUE_O_SETDOMAINNAME AUE_SYSCTL
-#define AUE_O_SETHOSTNAME AUE_SYSCTL
+#define AUE_O_SETHOSTNAME AUE_SYSCTL /* XXX: See AUE_SOLARIS_SET.. */
#define AUE_MLOCK 332
#define AUE_MUNLOCK 333
#define AUE_UNDELETE 334
@@ -303,6 +332,9 @@
#define AUE_FHOPEN 373 /* FreeBSD */
#define AUE_FHSTAT 374 /* FreeBSD */
#define AUE_JAIL 375 /* FreeBSD */
+#define AUE_EACCESS 376 /* FreeBSD */
+#define AUE_KQUEUE 377 /* FreeBSD */
+#define AUE_KEVENT 378 /* FreeBSD */
/*
* XXXRW: Values not yet assigned.
@@ -349,7 +381,6 @@
#define AUE_MUNLOCKALL AUE_NULL
#define AUE_O_ASYNCDAEMON AUE_NULL
#define AUE_O_EXECV AUE_NULL
-#define AUE_O_EXPORTFS AUE_NULL
#define AUE_O_GETDENTS AUE_NULL
#define AUE_O_GETDOMAINNAME AUE_NULL
#define AUE_O_GETDOPT AUE_NULL
@@ -364,8 +395,6 @@
#define AUE_O_SETDOPT AUE_NULL
#define AUE_O_SETHOSTID AUE_NULL
#define AUE_O_SETQUOTA AUE_NULL
-#define AUE_O_SETREGID AUE_NULL
-#define AUE_O_SETREUID AUE_NULL
#define AUE_O_SIGBLOCK AUE_NULL
#define AUE_O_SIGSETMASK AUE_NULL
#define AUE_O_SIGSTACK AUE_NULL
@@ -388,7 +417,6 @@
#define AUE_SEMGETVALUE AUE_NULL
#define AUE_SEMINIT AUE_NULL
#define AUE_SEMPOST AUE_NULL
-#define AUE_SEMSYS AUE_NULL
#define AUE_SEMTRYWAIT AUE_NULL
#define AUE_SEMWAIT AUE_NULL
#define AUE_SETITIMER AUE_NULL
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 09:18:14 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 3A80F16A421; Mon, 3 Oct 2005 09:18:14 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id E81CC16A41F
for ; Mon, 3 Oct 2005 09:18:13 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id A52FD43D48
for ; Mon, 3 Oct 2005 09:18:13 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j939IDkZ057428
for ; Mon, 3 Oct 2005 09:18:13 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j939IDNZ057425
for perforce@freebsd.org; Mon, 3 Oct 2005 09:18:13 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 3 Oct 2005 09:18:13 GMT
Message-Id: <200510030918.j939IDNZ057425@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84704 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 09:18:15 -0000
http://perforce.freebsd.org/chv.cgi?CH=84704
Change 84704 by rwatson@rwatson_zoo on 2005/10/03 09:17:48
Integrate OpenBSM branch into TrustedBSD audit3 branch:
- Style fixes.
- New events, event cleanup.
- More event descriptions.
Affected files ...
.. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit.h#3 integrate
.. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#8 integrate
.. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#2 integrate
Differences ...
==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit.h#3 (text+ko) ====
@@ -289,16 +289,15 @@
typedef struct au_evclass_map au_evclass_map_t;
#if !defined(_KERNEL) && !defined(KERNEL)
-
-int audit (const void *, int);
-int auditon (int, void *, int);
-int auditctl (const char *);
-int getauid (au_id_t *);
-int setauid (const au_id_t *);
-int getaudit (struct auditinfo *);
-int setaudit (const struct auditinfo *);
-int getaudit_addr (struct auditinfo_addr *, int);
-int setaudit_addr (const struct auditinfo_addr *, int);
+int audit(const void *, int);
+int auditon(int, void *, int);
+int auditctl(const char *);
+int getauid(au_id_t *);
+int setauid(const au_id_t *);
+int getaudit(struct auditinfo *);
+int setaudit(const struct auditinfo *);
+int getaudit_addr(struct auditinfo_addr *, int);
+int setaudit_addr(const struct auditinfo_addr *, int);
#endif /* defined(_KERNEL) || defined(KERNEL) */
__END_DECLS
==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#8 (text+ko) ====
@@ -33,7 +33,8 @@
#define AUE_EXIT 1
#define AUE_FORK 2
#define AUE_OPEN 3
-#define AUE_O_CREAT AUE_OPEN_RWTC
+#define AUE_CREAT 4
+#define AUE_O_CREAT AUE_CREAT
#define AUE_LINK 5
#define AUE_UNLINK 6
#define AUE_DELETE AUE_UNLINK
@@ -47,12 +48,12 @@
#define AUE_ACCESS 14
#define AUE_CHECKUSERACCESS AUE_ACCESS
#define AUE_KILL 15
-#define AUE_O_KILLPG AUE_KILL
#define AUE_STAT 16
#define AUE_O_STAT AUE_STAT
#define AUE_LSTAT 17
#define AUE_O_LSTAT AUE_LSTAT
#define AUE_ACCT 18
+#define AUE_SOLARIS_REBOOT 20 /* XXX: Darwin conflict. */
#define AUE_SYMLINK 21
#define AUE_READLINK 22
#define AUE_EXECVE 23
@@ -61,17 +62,27 @@
#define AUE_SETGROUPS 26
#define AUE_SETPGRP 27
#define AUE_SWAPON 28
+#define AUE_SOLARIS_SETHOSTNAME 29 /* XXX: Darwin conflict. */
#define AUE_FCNTL 30
+#define AUE_SOLARIS_SETPRIORITY 31 /* XXX: Darwin conflict. */
#define AUE_CONNECT 32
#define AUE_ACCEPT 33
#define AUE_O_ACCEPT AUE_ACCEPT
#define AUE_BIND 34
#define AUE_SETSOCKOPT 35
+#define AUE_VTRACE 36 /* Solaris-specific. */
+#define AUE_SOLARIS_SETTIMEOFDAY 37 /* XXX: Darwin conflict. */
#define AUE_FCHOWN 38
#define AUE_FCHMOD 39
+/* XXX: #define AUE_SYSINFO 39 */
#define AUE_SETREUID 40
+#define AUE_O_SETREUID AUE_SETREUID
#define AUE_SETREGID 41
+#define AUE_O_SETREGID AUE_SETREGID
#define AUE_RENAME 42
+#define AUE_SOLARIS_TRUNCATE 43 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_FTRUNCATE 44 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_FLOCK 45 /* XXX: Darwin conflict. */
#define AUE_SHUTDOWN 46
#define AUE_MKDIR 47
#define AUE_RMDIR 48
@@ -79,14 +90,29 @@
#define AUE_ADJTIME 50
#define AUE_SETRLIMIT 51
#define AUE_O_SETRLIMIT AUE_SETRLIMIT
+#define AUE_KILLPG 52
+#define AUE_O_KILLPG AUE_KILLPG
+#define AUE_SOLARIS_NFS_SVC 53 /* XXX: Darwin conflict. */
#define AUE_STATFS 54
#define AUE_FSTATFS 55
+#define AUE_SOLARIS_UNMOUNT 56 /* XXX: Darwin conflict. */
+#define AUE_ASYNC_DAEMON 57
+#define AUE_NFS_GETFH 58 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_SETDOMAINNAME 59 /* XXX: Darwin conflict. */
+#define AUE_O_SETDOMAINNAME AUE_SYSCTL
+#define AUE_SOLARIS_QUOTACTL 60 /* XXX: Darwin conflict. */
+#define AUE_EXPORTFS 61
+#define AUE_O_EXPORTFS AUE_EXPORTFS
#define AUE_MOUNT 62
#define AUE_O_MOUNT AUE_MOUNT
+#define AUE_SEMSYS 63
#define AUE_MSGSYS 64
#define AUE_SHMSYS 65
+#define AUE_BSMSYS 66 /* Solaris-specific. */
+#define AUE_RFSSYS 67 /* Solaris-specific. */
#define AUE_FCHDIR 68
#define AUE_FCHROOT 69
+#define AUE_VPIXSYS 70 /* Solaris-specific. */
#define AUE_PATHCONF 71
#define AUE_OPEN_R 72
#define AUE_OPEN_RC 73
@@ -130,6 +156,10 @@
#define AUE_CORE 111
#define AUE_CLOSE 112
#define AUE_SYSTEMBOOT 113
+#define AUE_ASYNC_DAEMON_EXIT 114 /* Solaris-only. */
+#define AUE_NFSSVC_EXIT 115 /* Solaris-only. */
+#define AUE_WRITEL 128 /* Solaris-only. */
+#define AUE_WRITEVL 129 /* Solaris-only. */
#define AUE_GETAUID 130
#define AUE_SETAUID 131
#define AUE_GETAUDIT 132
@@ -229,22 +259,22 @@
#define AUE_PROFILE 305
#define AUE_KTRACE 306
#define AUE_SETLOGIN 307
-#define AUE_REBOOT 308
+#define AUE_REBOOT 308 /* XXX: See AUE_SOLARIS_REBOOT. */
#define AUE_REVOKE 309
#define AUE_UMASK 310
#define AUE_MPROTECT 311
-#define AUE_SETPRIORITY 312
-#define AUE_SETTIMEOFDAY 313
-#define AUE_FLOCK 314
+#define AUE_SETPRIORITY 312 /* XXX: See AUE_SOLARIS_SETPRIORITY. */
+#define AUE_SETTIMEOFDAY 313 /* XXX: See AUE_SOLARIS_SETTIMEOFDAY. */
+#define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */
#define AUE_MKFIFO 315
#define AUE_POLL 316
#define AUE_SOCKETPAIR 317
#define AUE_FUTIMES 318
#define AUE_SETSID 319
#define AUE_SETPRIVEXEC 320
-#define AUE_NFSSVC 321
-#define AUE_GETFH 322
-#define AUE_QUOTACTL 323
+#define AUE_NFSSVC 321 /* XXX: See AUE_SOLARIS_NFS_SVC. */
+#define AUE_GETFH 322 /* XXX: See AUE_SOLARIS_NFS_GETFH. */
+#define AUE_QUOTACTL 323 /* XXX: See AUE_SOLARIS_QUOTACTL. */
#define AUE_ADDPROFILE 324
#define AUE_KDBUGTRACE 325
#define AUE_FSTAT 326
@@ -252,13 +282,12 @@
#define AUE_FPATHCONF 327
#define AUE_GETDIRENTRIES 328
#define AUE_O_GETDIRENTRIES AUE_GETDIRENTRIES
-#define AUE_TRUNCATE 329
+#define AUE_TRUNCATE 329 /* XXX: See AUE_SOLARIS_TRUNCATE. */
#define AUE_O_TRUNCATE AUE_TRUNCATE
-#define AUE_FTRUNCATE 330
+#define AUE_FTRUNCATE 330 /* XXX: See AUE_SOLARIS_FTRUNCATE. */
#define AUE_O_FTRUNCATE AUE_FTRUNCATE
#define AUE_SYSCTL 331
-#define AUE_O_SETDOMAINNAME AUE_SYSCTL
-#define AUE_O_SETHOSTNAME AUE_SYSCTL
+#define AUE_O_SETHOSTNAME AUE_SYSCTL /* XXX: See AUE_SOLARIS_SET.. */
#define AUE_MLOCK 332
#define AUE_MUNLOCK 333
#define AUE_UNDELETE 334
@@ -303,6 +332,9 @@
#define AUE_FHOPEN 373 /* FreeBSD */
#define AUE_FHSTAT 374 /* FreeBSD */
#define AUE_JAIL 375 /* FreeBSD */
+#define AUE_EACCESS 376 /* FreeBSD */
+#define AUE_KQUEUE 377 /* FreeBSD */
+#define AUE_KEVENT 378 /* FreeBSD */
/*
* XXXRW: Values not yet assigned.
@@ -349,7 +381,6 @@
#define AUE_MUNLOCKALL AUE_NULL
#define AUE_O_ASYNCDAEMON AUE_NULL
#define AUE_O_EXECV AUE_NULL
-#define AUE_O_EXPORTFS AUE_NULL
#define AUE_O_GETDENTS AUE_NULL
#define AUE_O_GETDOMAINNAME AUE_NULL
#define AUE_O_GETDOPT AUE_NULL
@@ -364,8 +395,6 @@
#define AUE_O_SETDOPT AUE_NULL
#define AUE_O_SETHOSTID AUE_NULL
#define AUE_O_SETQUOTA AUE_NULL
-#define AUE_O_SETREGID AUE_NULL
-#define AUE_O_SETREUID AUE_NULL
#define AUE_O_SIGBLOCK AUE_NULL
#define AUE_O_SIGSETMASK AUE_NULL
#define AUE_O_SIGSTACK AUE_NULL
@@ -388,7 +417,6 @@
#define AUE_SEMGETVALUE AUE_NULL
#define AUE_SEMINIT AUE_NULL
#define AUE_SEMPOST AUE_NULL
-#define AUE_SEMSYS AUE_NULL
#define AUE_SEMTRYWAIT AUE_NULL
#define AUE_SEMWAIT AUE_NULL
#define AUE_SETITIMER AUE_NULL
==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#2 (text+ko) ====
@@ -169,7 +169,6 @@
205:AUE_SETGID:old setgid(2):pc
206:AUE_READL:readl(2):no
207:AUE_READVL:readvl(2):no
-208:AUE_FSTAT:fstat(2):fa
209:AUE_DUP2:dup2(2):no
210:AUE_MMAP:mmap(2):fa
211:AUE_AUDIT:audit(2):ot
@@ -284,6 +283,20 @@
359:AUE_PIDFORTASK:pid_for_task():pc
360:AUE_SYSCTL_NONADMIN:sysctl() - non-admin:ot
361:AUE_COPYFILE:copyfile():fr,fw
+362:AUE_LUTIMES:lutimes(2):fm
+363:AUE_LCHFLAGS:lchflags(2):fm
+364:AUE_SENDFILE:sendfile(2):nt
+365:AUE_USELIB:uselib(2):fa
+366:AUE_GETRESUID:getresuid(2):pc
+367:AUE_SETRESUID:setresuid(2):pc
+368:AUE_GETRESGID:getresgid(2):pc
+369:AUE_SETRESGID:setresgid(2):pc
+370:AUE_WAIT4:wait4(2):pc
+371:AUE_LGETFH:lgetfh(2):fa
+372:AUE_FHSTATFS:fhstatfs(2):fa
+373:AUE_FHOPEN:fhopen(2):fa
+374:AUE_FHSTAT:fhstat(2):fa
+375:AUE_JAIL:jail(2):pc
6152:AUE_login:login - local:lo
6153:AUE_logout:logout - local:lo
6159:AUE_su:su(1):lo
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 10:21:33 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 8816F16A421; Mon, 3 Oct 2005 10:21:32 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 480A516A41F
for ; Mon, 3 Oct 2005 10:21:32 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 032E343D45
for ; Mon, 3 Oct 2005 10:21:32 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93ALVDt060426
for ; Mon, 3 Oct 2005 10:21:31 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93ALV1f060423
for perforce@freebsd.org; Mon, 3 Oct 2005 10:21:31 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 3 Oct 2005 10:21:31 GMT
Message-Id: <200510031021.j93ALV1f060423@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84705 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 10:21:33 -0000
http://perforce.freebsd.org/chv.cgi?CH=84705
Change 84705 by rwatson@rwatson_zoo on 2005/10/03 10:21:31
Move declarations of many audit internal data structures and defines
from sys/security/audit/audit.h, which contains kernel-public
definitions, to audit_private.h. This includes kernel BSM
definitions, the internal structure of the kernel audit record,
memory types, etc.
Annotate that the ARG_* mask values remain exposed to the rest of
the kernel audit the path1/path2 and vnode1/vnode2 mask entries
which are arguments to audit_arg_*() calls, but largely could be
private.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#2 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#4 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#4 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#2 (text+ko) ====
@@ -42,12 +42,13 @@
extern int audit_enabled;
extern int audit_suspended;
-#define BSM_SUCCESS 0
-#define BSM_FAILURE 1
-#define BSM_NOAUDIT 2
-
/*
* Define the masks for the audited arguments.
+ *
+ * XXXRW: These need to remain in audit.h for now because our vnode and name
+ * lookup audit calls rely on passing in flags to indicate which name or
+ * vnode is being logged. These should move to audit_private.h when that is
+ * fixed.
*/
#define ARG_EUID 0x0000000000000001ULL
#define ARG_RUID 0x0000000000000002ULL
@@ -99,177 +100,19 @@
#define ARG_NONE 0x0000000000000000ULL
#define ARG_ALL 0xFFFFFFFFFFFFFFFFULL
-#ifdef MALLOC_DECLARE
-MALLOC_DECLARE(M_AUDIT);
-#endif
-
-/* Defines for the kernel audit record k_ar_commit field */
-#define AR_COMMIT_KERNEL 0x00000001U
-#define AR_COMMIT_USER 0x00000010U
-
-struct vnode_au_info {
- mode_t vn_mode;
- uid_t vn_uid;
- gid_t vn_gid;
- dev_t vn_dev;
- long vn_fsid;
- long vn_fileid;
- long vn_gen;
-};
-
-struct groupset {
- gid_t gidset[NGROUPS];
- u_int gidset_size;
-};
-
-struct socket_au_info {
- int so_domain;
- int so_type;
- int so_protocol;
- in_addr_t so_raddr; /* remote address if INET socket */
- in_addr_t so_laddr; /* local address if INET socket */
- u_short so_rport; /* remote port */
- u_short so_lport; /* local port */
-};
-
-union auditon_udata {
- char *au_path;
- long au_cond;
- long au_flags;
- long au_policy;
- int au_trigger;
- au_evclass_map_t au_evclass;
- au_mask_t au_mask;
- auditinfo_t au_auinfo;
- auditpinfo_t au_aupinfo;
- auditpinfo_addr_t au_aupinfo_addr;
- au_qctrl_t au_qctrl;
- au_stat_t au_stat;
- au_fstat_t au_fstat;
-};
-
-struct posix_ipc_perm {
- uid_t pipc_uid;
- gid_t pipc_gid;
- mode_t pipc_mode;
-};
-
-struct audit_record {
- /* Audit record header. */
- u_int32_t ar_magic;
- int ar_event;
- int ar_retval; /* value returned to the process */
- int ar_errno; /* return status of system call */
- struct timespec ar_starttime;
- struct timespec ar_endtime;
- u_int64_t ar_valid_arg; /* Bitmask of valid arguments */
-
- /* Audit subject information. */
- struct xucred ar_subj_cred;
- uid_t ar_subj_ruid;
- gid_t ar_subj_rgid;
- gid_t ar_subj_egid;
- uid_t ar_subj_auid; /* Audit user ID */
- pid_t ar_subj_asid; /* Audit session ID */
- pid_t ar_subj_pid;
- struct au_tid ar_subj_term;
- char ar_subj_comm[MAXCOMLEN + 1];
- struct au_mask ar_subj_amask;
-
- /* Operation arguments. */
- uid_t ar_arg_euid;
- uid_t ar_arg_ruid;
- uid_t ar_arg_suid;
- gid_t ar_arg_egid;
- gid_t ar_arg_rgid;
- gid_t ar_arg_sgid;
- pid_t ar_arg_pid;
- pid_t ar_arg_asid;
- struct au_tid ar_arg_termid;
- uid_t ar_arg_uid;
- uid_t ar_arg_auid;
- gid_t ar_arg_gid;
- struct groupset ar_arg_groups;
- int ar_arg_fd;
- int ar_arg_fflags;
- mode_t ar_arg_mode;
- int ar_arg_dev;
- long ar_arg_value;
- void * ar_arg_addr;
- int ar_arg_len;
- int ar_arg_mask;
- u_int ar_arg_signum;
- char ar_arg_login[MAXLOGNAME];
- int ar_arg_ctlname[CTL_MAXNAME];
- struct sockaddr ar_arg_sockaddr;
- struct socket_au_info ar_arg_sockinfo;
- char *ar_arg_upath1;
- char *ar_arg_upath2;
- char *ar_arg_kpath1;
- char *ar_arg_kpath2;
- char *ar_arg_text;
- struct au_mask ar_arg_amask;
- struct vnode_au_info ar_arg_vnode1;
- struct vnode_au_info ar_arg_vnode2;
- int ar_arg_cmd;
- int ar_arg_svipc_cmd;
- struct ipc_perm ar_arg_svipc_perm;
- int ar_arg_svipc_id;
- void * ar_arg_svipc_addr;
- struct posix_ipc_perm ar_arg_pipc_perm;
- union auditon_udata ar_arg_auditon;
- int ar_arg_exitstatus;
- int ar_arg_exitretval;
-};
-
-/*
- * In-kernel version of audit record; the basic record plus queue meta-data.
- * This record can also have a pointer set to some opaque data that will
- * be passed through to the audit writing mechanism.
- */
-struct kaudit_record {
- struct audit_record k_ar;
- u_int32_t k_ar_commit;
- void *k_udata; /* user data */
- u_int k_ulen; /* user data length */
- struct uthread *k_uthread; /* thread we are auditing */
- TAILQ_ENTRY(kaudit_record) k_q;
-};
-
-struct proc;
-struct vnode;
-struct componentname;
-
-void audit_abort(struct kaudit_record *ar);
-void audit_commit(struct kaudit_record *ar, int error,
- int retval);
-
-struct kaudit_record *audit_new(int event, struct thread *td);
-
void audit_syscall_enter(unsigned short code,
struct thread *td);
void audit_syscall_exit(int error, struct thread *td);
-int kaudit_to_bsm(struct kaudit_record *kar,
- struct au_record **pau);
-
-int bsm_rec_verify(void *rec);
-
/*
- * Kernel versions of the BSM audit record functions.
- */
-struct au_record *kau_open(void);
-int kau_write(struct au_record *rec, token_t *m);
-void kau_close(struct au_record *rec,
- struct timespec *endtime, short event);
-void kau_free(struct au_record *rec);
-void kau_init(void);
-/*
* The remaining kernel functions are conditionally compiled in as they
* are wrapped by a macro, and the macro should be the only place in
* the source tree where these functions are referenced.
*/
#ifdef AUDIT
+struct ipc_perm;
+struct sockaddr;
+union auditon_udata;
void audit_arg_addr(void * addr);
void audit_arg_exit(int status, int retval);
void audit_arg_len(int len);
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#4 (text+ko) ====
@@ -24,9 +24,177 @@
#ifndef _BSM_AUDIT_PRIVATE_H
#define _BSM_AUDIT_PRIVATE_H
+#include
+#include
+#include
+
+#define BSM_SUCCESS 0
+#define BSM_FAILURE 1
+#define BSM_NOAUDIT 2
+
+#ifdef MALLOC_DECLARE
+MALLOC_DECLARE(M_AUDIT);
+#endif
+
+/* Defines for the kernel audit record k_ar_commit field */
+#define AR_COMMIT_KERNEL 0x00000001U
+#define AR_COMMIT_USER 0x00000010U
+
+struct vnode_au_info {
+ mode_t vn_mode;
+ uid_t vn_uid;
+ gid_t vn_gid;
+ dev_t vn_dev;
+ long vn_fsid;
+ long vn_fileid;
+ long vn_gen;
+};
+
+struct groupset {
+ gid_t gidset[NGROUPS];
+ u_int gidset_size;
+};
+
+struct socket_au_info {
+ int so_domain;
+ int so_type;
+ int so_protocol;
+ in_addr_t so_raddr; /* remote address if INET socket */
+ in_addr_t so_laddr; /* local address if INET socket */
+ u_short so_rport; /* remote port */
+ u_short so_lport; /* local port */
+};
+
+union auditon_udata {
+ char *au_path;
+ long au_cond;
+ long au_flags;
+ long au_policy;
+ int au_trigger;
+ au_evclass_map_t au_evclass;
+ au_mask_t au_mask;
+ auditinfo_t au_auinfo;
+ auditpinfo_t au_aupinfo;
+ auditpinfo_addr_t au_aupinfo_addr;
+ au_qctrl_t au_qctrl;
+ au_stat_t au_stat;
+ au_fstat_t au_fstat;
+};
+
+struct posix_ipc_perm {
+ uid_t pipc_uid;
+ gid_t pipc_gid;
+ mode_t pipc_mode;
+};
+
+struct audit_record {
+ /* Audit record header. */
+ u_int32_t ar_magic;
+ int ar_event;
+ int ar_retval; /* value returned to the process */
+ int ar_errno; /* return status of system call */
+ struct timespec ar_starttime;
+ struct timespec ar_endtime;
+ u_int64_t ar_valid_arg; /* Bitmask of valid arguments */
+
+ /* Audit subject information. */
+ struct xucred ar_subj_cred;
+ uid_t ar_subj_ruid;
+ gid_t ar_subj_rgid;
+ gid_t ar_subj_egid;
+ uid_t ar_subj_auid; /* Audit user ID */
+ pid_t ar_subj_asid; /* Audit session ID */
+ pid_t ar_subj_pid;
+ struct au_tid ar_subj_term;
+ char ar_subj_comm[MAXCOMLEN + 1];
+ struct au_mask ar_subj_amask;
+
+ /* Operation arguments. */
+ uid_t ar_arg_euid;
+ uid_t ar_arg_ruid;
+ uid_t ar_arg_suid;
+ gid_t ar_arg_egid;
+ gid_t ar_arg_rgid;
+ gid_t ar_arg_sgid;
+ pid_t ar_arg_pid;
+ pid_t ar_arg_asid;
+ struct au_tid ar_arg_termid;
+ uid_t ar_arg_uid;
+ uid_t ar_arg_auid;
+ gid_t ar_arg_gid;
+ struct groupset ar_arg_groups;
+ int ar_arg_fd;
+ int ar_arg_fflags;
+ mode_t ar_arg_mode;
+ int ar_arg_dev;
+ long ar_arg_value;
+ void * ar_arg_addr;
+ int ar_arg_len;
+ int ar_arg_mask;
+ u_int ar_arg_signum;
+ char ar_arg_login[MAXLOGNAME];
+ int ar_arg_ctlname[CTL_MAXNAME];
+ struct sockaddr ar_arg_sockaddr;
+ struct socket_au_info ar_arg_sockinfo;
+ char *ar_arg_upath1;
+ char *ar_arg_upath2;
+ char *ar_arg_kpath1;
+ char *ar_arg_kpath2;
+ char *ar_arg_text;
+ struct au_mask ar_arg_amask;
+ struct vnode_au_info ar_arg_vnode1;
+ struct vnode_au_info ar_arg_vnode2;
+ int ar_arg_cmd;
+ int ar_arg_svipc_cmd;
+ struct ipc_perm ar_arg_svipc_perm;
+ int ar_arg_svipc_id;
+ void * ar_arg_svipc_addr;
+ struct posix_ipc_perm ar_arg_pipc_perm;
+ union auditon_udata ar_arg_auditon;
+ int ar_arg_exitstatus;
+ int ar_arg_exitretval;
+};
+
+/*
+ * In-kernel version of audit record; the basic record plus queue meta-data.
+ * This record can also have a pointer set to some opaque data that will
+ * be passed through to the audit writing mechanism.
+ */
+struct kaudit_record {
+ struct audit_record k_ar;
+ u_int32_t k_ar_commit;
+ void *k_udata; /* user data */
+ u_int k_ulen; /* user data length */
+ struct uthread *k_uthread; /* thread we are auditing */
+ TAILQ_ENTRY(kaudit_record) k_q;
+};
+
+void audit_abort(struct kaudit_record *ar);
+void audit_commit(struct kaudit_record *ar, int error,
+ int retval);
+
+struct kaudit_record *audit_new(int event, struct thread *td);
+
+int kaudit_to_bsm(struct kaudit_record *kar,
+ struct au_record **pau);
+
+int bsm_rec_verify(void *rec);
+
+/*
+ * Kernel versions of the BSM audit record functions.
+ */
+struct au_record *kau_open(void);
+int kau_write(struct au_record *rec, token_t *m);
+void kau_close(struct au_record *rec,
+ struct timespec *endtime, short event);
+void kau_free(struct au_record *rec);
+void kau_init(void);
+
+
#define AU_PRS_SUCCESS 1
#define AU_PRS_FAILURE 2
#define AU_PRS_BOTH (AU_PRS_SUCCESS|AU_PRS_FAILURE)
+
/*
* Flags to use on audit files when opening and closing.
*/
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#4 (text+ko) ====
@@ -35,6 +35,7 @@
#include
#include
+#include
#include
/*
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 10:22:35 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id C802B16A421; Mon, 3 Oct 2005 10:22:34 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 9ECD316A41F
for ; Mon, 3 Oct 2005 10:22:34 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id E801F43D4C
for ; Mon, 3 Oct 2005 10:22:33 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93AMXrf060533
for ; Mon, 3 Oct 2005 10:22:33 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93AMXp7060530
for perforce@freebsd.org; Mon, 3 Oct 2005 10:22:33 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 3 Oct 2005 10:22:33 GMT
Message-Id: <200510031022.j93AMXp7060530@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84706 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 10:22:35 -0000
http://perforce.freebsd.org/chv.cgi?CH=84706
Change 84706 by rwatson@rwatson_zoo on 2005/10/03 10:22:32
Integrate contrib/openbsm include files into the kernel tree in
the audit3 branch.
- Style fixes.
- New events, event cleanup.
- More event descriptions.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#16 integrate
.. //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#2 integrate
.. //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#9 integrate
.. //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#5 integrate
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/bsm/audit.h#16 (text+ko) ====
@@ -25,11 +25,8 @@
#define _BSM_AUDIT_H
#include
+#include
#include
-#include
-#include
-#include
-#include
#define AUDIT_RECORD_MAGIC 0x828a0f1b
#define MAX_AUDIT_RECORDS 20
@@ -63,6 +60,11 @@
#define AUDIT_TRIGGER_MAX 5
/*
+ * File that will be read for trigger events from the kernel
+ */
+#define AUDIT_TRIGGER_FILE "/dev/audit"
+
+/*
* Pre-defined audit IDs
*/
#define AU_DEFAUDITID -1
@@ -307,15 +309,16 @@
#ifndef _KERNEL
-int audit (const void *, int);
-int auditon (int, void *, int);
-int auditctl (const char *);
-int getauid (au_id_t *);
-int setauid (const au_id_t *);
-int getaudit (struct auditinfo *);
-int setaudit (const struct auditinfo *);
-int getaudit_addr (struct auditinfo_addr *, int);
-int setaudit_addr (const struct auditinfo_addr *, int);
+int audit(const void *, int);
+int auditon(int, void *, int);
+int auditctl(const char *);
+int getauid(au_id_t *);
+int setauid(const au_id_t *);
+int getaudit(struct auditinfo *);
+int setaudit(const struct auditinfo *);
+int getaudit_addr(struct auditinfo_addr *, int);
+int setaudit_addr(const struct auditinfo_addr *, int);
+
#endif /* !_KERNEL */
__END_DECLS
==== //depot/projects/trustedbsd/audit3/sys/bsm/audit_internal.h#2 (text+ko) ====
@@ -2,9 +2,12 @@
* @APPLE_LICENSE_HEADER_START@
*
* Copyright (c) 1999-2004 Apple Computer, Inc.
- * Copyright (c) 2005 Robert N. M. Watson
+ * Copyright (c) 2005 SPARTA, Inc.
* All Rights Reserved.
*
+ * This code was developed in part by Robert N. M. Watson, Senior Principal
+ * Scientist, SPARTA, Inc.
+ *
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Version 2.0 (the 'License'). You may not use this file except in
==== //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#9 (text+ko) ====
@@ -33,7 +33,8 @@
#define AUE_EXIT 1
#define AUE_FORK 2
#define AUE_OPEN 3
-#define AUE_O_CREAT AUE_OPEN_RWTC
+#define AUE_CREAT 4
+#define AUE_O_CREAT AUE_CREAT
#define AUE_LINK 5
#define AUE_UNLINK 6
#define AUE_DELETE AUE_UNLINK
@@ -47,12 +48,12 @@
#define AUE_ACCESS 14
#define AUE_CHECKUSERACCESS AUE_ACCESS
#define AUE_KILL 15
-#define AUE_O_KILLPG AUE_KILL
#define AUE_STAT 16
#define AUE_O_STAT AUE_STAT
#define AUE_LSTAT 17
#define AUE_O_LSTAT AUE_LSTAT
#define AUE_ACCT 18
+#define AUE_SOLARIS_REBOOT 20 /* XXX: Darwin conflict. */
#define AUE_SYMLINK 21
#define AUE_READLINK 22
#define AUE_EXECVE 23
@@ -61,17 +62,27 @@
#define AUE_SETGROUPS 26
#define AUE_SETPGRP 27
#define AUE_SWAPON 28
+#define AUE_SOLARIS_SETHOSTNAME 29 /* XXX: Darwin conflict. */
#define AUE_FCNTL 30
+#define AUE_SOLARIS_SETPRIORITY 31 /* XXX: Darwin conflict. */
#define AUE_CONNECT 32
#define AUE_ACCEPT 33
#define AUE_O_ACCEPT AUE_ACCEPT
#define AUE_BIND 34
#define AUE_SETSOCKOPT 35
+#define AUE_VTRACE 36 /* Solaris-specific. */
+#define AUE_SOLARIS_SETTIMEOFDAY 37 /* XXX: Darwin conflict. */
#define AUE_FCHOWN 38
#define AUE_FCHMOD 39
+/* XXX: #define AUE_SYSINFO 39 */
#define AUE_SETREUID 40
+#define AUE_O_SETREUID AUE_SETREUID
#define AUE_SETREGID 41
+#define AUE_O_SETREGID AUE_SETREGID
#define AUE_RENAME 42
+#define AUE_SOLARIS_TRUNCATE 43 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_FTRUNCATE 44 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_FLOCK 45 /* XXX: Darwin conflict. */
#define AUE_SHUTDOWN 46
#define AUE_MKDIR 47
#define AUE_RMDIR 48
@@ -79,14 +90,29 @@
#define AUE_ADJTIME 50
#define AUE_SETRLIMIT 51
#define AUE_O_SETRLIMIT AUE_SETRLIMIT
+#define AUE_KILLPG 52
+#define AUE_O_KILLPG AUE_KILLPG
+#define AUE_SOLARIS_NFS_SVC 53 /* XXX: Darwin conflict. */
#define AUE_STATFS 54
#define AUE_FSTATFS 55
+#define AUE_SOLARIS_UNMOUNT 56 /* XXX: Darwin conflict. */
+#define AUE_ASYNC_DAEMON 57
+#define AUE_NFS_GETFH 58 /* XXX: Darwin conflict. */
+#define AUE_SOLARIS_SETDOMAINNAME 59 /* XXX: Darwin conflict. */
+#define AUE_O_SETDOMAINNAME AUE_SYSCTL
+#define AUE_SOLARIS_QUOTACTL 60 /* XXX: Darwin conflict. */
+#define AUE_EXPORTFS 61
+#define AUE_O_EXPORTFS AUE_EXPORTFS
#define AUE_MOUNT 62
#define AUE_O_MOUNT AUE_MOUNT
+#define AUE_SEMSYS 63
#define AUE_MSGSYS 64
#define AUE_SHMSYS 65
+#define AUE_BSMSYS 66 /* Solaris-specific. */
+#define AUE_RFSSYS 67 /* Solaris-specific. */
#define AUE_FCHDIR 68
#define AUE_FCHROOT 69
+#define AUE_VPIXSYS 70 /* Solaris-specific. */
#define AUE_PATHCONF 71
#define AUE_OPEN_R 72
#define AUE_OPEN_RC 73
@@ -130,6 +156,10 @@
#define AUE_CORE 111
#define AUE_CLOSE 112
#define AUE_SYSTEMBOOT 113
+#define AUE_ASYNC_DAEMON_EXIT 114 /* Solaris-only. */
+#define AUE_NFSSVC_EXIT 115 /* Solaris-only. */
+#define AUE_WRITEL 128 /* Solaris-only. */
+#define AUE_WRITEVL 129 /* Solaris-only. */
#define AUE_GETAUID 130
#define AUE_SETAUID 131
#define AUE_GETAUDIT 132
@@ -229,22 +259,22 @@
#define AUE_PROFILE 305
#define AUE_KTRACE 306
#define AUE_SETLOGIN 307
-#define AUE_REBOOT 308
+#define AUE_REBOOT 308 /* XXX: See AUE_SOLARIS_REBOOT. */
#define AUE_REVOKE 309
#define AUE_UMASK 310
#define AUE_MPROTECT 311
-#define AUE_SETPRIORITY 312
-#define AUE_SETTIMEOFDAY 313
-#define AUE_FLOCK 314
+#define AUE_SETPRIORITY 312 /* XXX: See AUE_SOLARIS_SETPRIORITY. */
+#define AUE_SETTIMEOFDAY 313 /* XXX: See AUE_SOLARIS_SETTIMEOFDAY. */
+#define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */
#define AUE_MKFIFO 315
#define AUE_POLL 316
#define AUE_SOCKETPAIR 317
#define AUE_FUTIMES 318
#define AUE_SETSID 319
#define AUE_SETPRIVEXEC 320
-#define AUE_NFSSVC 321
-#define AUE_GETFH 322
-#define AUE_QUOTACTL 323
+#define AUE_NFSSVC 321 /* XXX: See AUE_SOLARIS_NFS_SVC. */
+#define AUE_GETFH 322 /* XXX: See AUE_SOLARIS_NFS_GETFH. */
+#define AUE_QUOTACTL 323 /* XXX: See AUE_SOLARIS_QUOTACTL. */
#define AUE_ADDPROFILE 324
#define AUE_KDBUGTRACE 325
#define AUE_FSTAT 326
@@ -252,13 +282,12 @@
#define AUE_FPATHCONF 327
#define AUE_GETDIRENTRIES 328
#define AUE_O_GETDIRENTRIES AUE_GETDIRENTRIES
-#define AUE_TRUNCATE 329
+#define AUE_TRUNCATE 329 /* XXX: See AUE_SOLARIS_TRUNCATE. */
#define AUE_O_TRUNCATE AUE_TRUNCATE
-#define AUE_FTRUNCATE 330
+#define AUE_FTRUNCATE 330 /* XXX: See AUE_SOLARIS_FTRUNCATE. */
#define AUE_O_FTRUNCATE AUE_FTRUNCATE
#define AUE_SYSCTL 331
-#define AUE_O_SETDOMAINNAME AUE_SYSCTL
-#define AUE_O_SETHOSTNAME AUE_SYSCTL
+#define AUE_O_SETHOSTNAME AUE_SYSCTL /* XXX: See AUE_SOLARIS_SET.. */
#define AUE_MLOCK 332
#define AUE_MUNLOCK 333
#define AUE_UNDELETE 334
@@ -303,6 +332,9 @@
#define AUE_FHOPEN 373 /* FreeBSD */
#define AUE_FHSTAT 374 /* FreeBSD */
#define AUE_JAIL 375 /* FreeBSD */
+#define AUE_EACCESS 376 /* FreeBSD */
+#define AUE_KQUEUE 377 /* FreeBSD */
+#define AUE_KEVENT 378 /* FreeBSD */
/*
* XXXRW: Values not yet assigned.
@@ -349,7 +381,6 @@
#define AUE_MUNLOCKALL AUE_NULL
#define AUE_O_ASYNCDAEMON AUE_NULL
#define AUE_O_EXECV AUE_NULL
-#define AUE_O_EXPORTFS AUE_NULL
#define AUE_O_GETDENTS AUE_NULL
#define AUE_O_GETDOMAINNAME AUE_NULL
#define AUE_O_GETDOPT AUE_NULL
@@ -364,8 +395,6 @@
#define AUE_O_SETDOPT AUE_NULL
#define AUE_O_SETHOSTID AUE_NULL
#define AUE_O_SETQUOTA AUE_NULL
-#define AUE_O_SETREGID AUE_NULL
-#define AUE_O_SETREUID AUE_NULL
#define AUE_O_SIGBLOCK AUE_NULL
#define AUE_O_SIGSETMASK AUE_NULL
#define AUE_O_SIGSTACK AUE_NULL
@@ -388,7 +417,6 @@
#define AUE_SEMGETVALUE AUE_NULL
#define AUE_SEMINIT AUE_NULL
#define AUE_SEMPOST AUE_NULL
-#define AUE_SEMSYS AUE_NULL
#define AUE_SEMTRYWAIT AUE_NULL
#define AUE_SEMWAIT AUE_NULL
#define AUE_SETITIMER AUE_NULL
==== //depot/projects/trustedbsd/audit3/sys/bsm/audit_record.h#5 (text+ko) ====
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 10:52:11 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 2146316A422; Mon, 3 Oct 2005 10:52:11 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id EA6F616A41F
for ; Mon, 3 Oct 2005 10:52:10 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 825E943D53
for ; Mon, 3 Oct 2005 10:52:10 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93AqAHm061797
for ; Mon, 3 Oct 2005 10:52:10 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93AqA1b061794
for perforce@freebsd.org; Mon, 3 Oct 2005 10:52:10 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Mon, 3 Oct 2005 10:52:10 GMT
Message-Id: <200510031052.j93AqA1b061794@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84708 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 10:52:12 -0000
http://perforce.freebsd.org/chv.cgi?CH=84708
Change 84708 by rwatson@rwatson_zoo on 2005/10/03 10:51:26
Add AUE event numbers for additional system calls.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/kern/init_sysent.c#21 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.c#12 edit
.. //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#24 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/syscall.h#12 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/syscall.mk#13 edit
.. //depot/projects/trustedbsd/audit3/sys/sys/sysproto.h#16 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/kern/init_sysent.c#21 (text+ko) ====
@@ -2,7 +2,7 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/init_sysent.c,v 1.196 2005/09/24 23:47:04 csjp Exp $
+ * $FreeBSD$
* created from FreeBSD: src/sys/kern/syscalls.master,v 1.198 2005/07/08 15:01:13 jhb Exp
*/
@@ -36,7 +36,7 @@
{ SYF_MPSAFE | AS(write_args), (sy_call_t *)write, AUE_NULL }, /* 4 = write */
{ SYF_MPSAFE | AS(open_args), (sy_call_t *)open, AUE_OPEN_RWTC }, /* 5 = open */
{ SYF_MPSAFE | AS(close_args), (sy_call_t *)close, AUE_CLOSE }, /* 6 = close */
- { SYF_MPSAFE | AS(wait_args), (sy_call_t *)wait4, AUE_NULL }, /* 7 = wait4 */
+ { SYF_MPSAFE | AS(wait_args), (sy_call_t *)wait4, AUE_WAIT4 }, /* 7 = wait4 */
{ compat(SYF_MPSAFE | AS(ocreat_args),creat), AUE_O_CREAT }, /* 8 = old creat */
{ SYF_MPSAFE | AS(link_args), (sy_call_t *)link, AUE_LINK }, /* 9 = link */
{ SYF_MPSAFE | AS(unlink_args), (sy_call_t *)unlink, AUE_UNLINK }, /* 10 = unlink */
@@ -53,8 +53,8 @@
{ AS(mount_args), (sy_call_t *)mount, AUE_MOUNT }, /* 21 = mount */
{ AS(unmount_args), (sy_call_t *)unmount, AUE_UMOUNT }, /* 22 = unmount */
{ SYF_MPSAFE | AS(setuid_args), (sy_call_t *)setuid, AUE_SETUID }, /* 23 = setuid */
- { SYF_MPSAFE | 0, (sy_call_t *)getuid, AUE_NULL }, /* 24 = getuid */
- { SYF_MPSAFE | 0, (sy_call_t *)geteuid, AUE_NULL }, /* 25 = geteuid */
+ { SYF_MPSAFE | 0, (sy_call_t *)getuid, AUE_GETUID }, /* 24 = getuid */
+ { SYF_MPSAFE | 0, (sy_call_t *)geteuid, AUE_GETEUID }, /* 25 = geteuid */
{ SYF_MPSAFE | AS(ptrace_args), (sy_call_t *)ptrace, AUE_PTRACE }, /* 26 = ptrace */
{ SYF_MPSAFE | AS(recvmsg_args), (sy_call_t *)recvmsg, AUE_RECVMSG }, /* 27 = recvmsg */
{ SYF_MPSAFE | AS(sendmsg_args), (sy_call_t *)sendmsg, AUE_SENDMSG }, /* 28 = sendmsg */
@@ -155,8 +155,8 @@
{ SYF_MPSAFE | AS(fchown_args), (sy_call_t *)fchown, AUE_FCHOWN }, /* 123 = fchown */
{ SYF_MPSAFE | AS(fchmod_args), (sy_call_t *)fchmod, AUE_FCHMOD }, /* 124 = fchmod */
{ compat(SYF_MPSAFE | AS(recvfrom_args),recvfrom), AUE_RECVFROM }, /* 125 = old recvfrom */
- { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_O_SETREUID }, /* 126 = setreuid */
- { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_O_SETREGID }, /* 127 = setregid */
+ { SYF_MPSAFE | AS(setreuid_args), (sy_call_t *)setreuid, AUE_SETREUID }, /* 126 = setreuid */
+ { SYF_MPSAFE | AS(setregid_args), (sy_call_t *)setregid, AUE_SETREGID }, /* 127 = setregid */
{ SYF_MPSAFE | AS(rename_args), (sy_call_t *)rename, AUE_RENAME }, /* 128 = rename */
{ compat(SYF_MPSAFE | AS(otruncate_args),truncate), AUE_O_TRUNCATE }, /* 129 = old truncate */
{ compat(SYF_MPSAFE | AS(oftruncate_args),ftruncate), AUE_O_FTRUNCATE }, /* 130 = old ftruncate */
@@ -189,7 +189,7 @@
{ compat4(SYF_MPSAFE | AS(freebsd4_statfs_args),statfs), AUE_STATFS }, /* 157 = old statfs */
{ compat4(SYF_MPSAFE | AS(freebsd4_fstatfs_args),fstatfs), AUE_FSTATFS }, /* 158 = old fstatfs */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 159 = nosys */
- { SYF_MPSAFE | AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_NULL }, /* 160 = lgetfh */
+ { SYF_MPSAFE | AS(lgetfh_args), (sy_call_t *)lgetfh, AUE_LGETFH }, /* 160 = lgetfh */
{ SYF_MPSAFE | AS(getfh_args), (sy_call_t *)getfh, AUE_GETFH }, /* 161 = getfh */
{ SYF_MPSAFE | AS(getdomainname_args), (sy_call_t *)getdomainname, AUE_O_GETDOMAINNAME }, /* 162 = getdomainname */
{ SYF_MPSAFE | AS(setdomainname_args), (sy_call_t *)setdomainname, AUE_O_SETDOMAINNAME }, /* 163 = setdomainname */
@@ -326,9 +326,9 @@
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 294 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 295 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 296 = nosys */
- { compat4(SYF_MPSAFE | AS(freebsd4_fhstatfs_args),fhstatfs), AUE_NULL }, /* 297 = old fhstatfs */
- { SYF_MPSAFE | AS(fhopen_args), (sy_call_t *)fhopen, AUE_NULL }, /* 298 = fhopen */
- { SYF_MPSAFE | AS(fhstat_args), (sy_call_t *)fhstat, AUE_NULL }, /* 299 = fhstat */
+ { compat4(SYF_MPSAFE | AS(freebsd4_fhstatfs_args),fhstatfs), AUE_FHSTATFS }, /* 297 = old fhstatfs */
+ { SYF_MPSAFE | AS(fhopen_args), (sy_call_t *)fhopen, AUE_FHOPEN }, /* 298 = fhopen */
+ { SYF_MPSAFE | AS(fhstat_args), (sy_call_t *)fhstat, AUE_FHSTAT }, /* 299 = fhstat */
{ SYF_MPSAFE | AS(modnext_args), (sy_call_t *)modnext, AUE_NULL }, /* 300 = modnext */
{ SYF_MPSAFE | AS(modstat_args), (sy_call_t *)modstat, AUE_NULL }, /* 301 = modstat */
{ SYF_MPSAFE | AS(modfnext_args), (sy_call_t *)modfnext, AUE_NULL }, /* 302 = modfnext */
@@ -367,14 +367,14 @@
{ SYF_MPSAFE | AS(utrace_args), (sy_call_t *)utrace, AUE_NULL }, /* 335 = utrace */
{ compat4(SYF_MPSAFE | AS(freebsd4_sendfile_args),sendfile), AUE_SENDFILE }, /* 336 = old sendfile */
{ SYF_MPSAFE | AS(kldsym_args), (sy_call_t *)kldsym, AUE_NULL }, /* 337 = kldsym */
- { SYF_MPSAFE | AS(jail_args), (sy_call_t *)jail, AUE_NULL }, /* 338 = jail */
+ { SYF_MPSAFE | AS(jail_args), (sy_call_t *)jail, AUE_JAIL }, /* 338 = jail */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 339 = pioctl */
{ SYF_MPSAFE | AS(sigprocmask_args), (sy_call_t *)sigprocmask, AUE_SIGPROCMASK }, /* 340 = sigprocmask */
{ SYF_MPSAFE | AS(sigsuspend_args), (sy_call_t *)sigsuspend, AUE_SIGSUSPEND }, /* 341 = sigsuspend */
{ compat4(SYF_MPSAFE | AS(freebsd4_sigaction_args),sigaction), AUE_SIGACTION }, /* 342 = old sigaction */
{ SYF_MPSAFE | AS(sigpending_args), (sy_call_t *)sigpending, AUE_SIGPENDING }, /* 343 = sigpending */
{ compat4(SYF_MPSAFE | AS(freebsd4_sigreturn_args),sigreturn), AUE_SIGRETURN }, /* 344 = old sigreturn */
- { SYF_MPSAFE | AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_NULL }, /* 345 = sigtimedwait */
+ { SYF_MPSAFE | AS(sigtimedwait_args), (sy_call_t *)sigtimedwait, AUE_SIGWAIT }, /* 345 = sigtimedwait */
{ SYF_MPSAFE | AS(sigwaitinfo_args), (sy_call_t *)sigwaitinfo, AUE_NULL }, /* 346 = sigwaitinfo */
{ SYF_MPSAFE | AS(__acl_get_file_args), (sy_call_t *)__acl_get_file, AUE_NULL }, /* 347 = __acl_get_file */
{ SYF_MPSAFE | AS(__acl_set_file_args), (sy_call_t *)__acl_set_file, AUE_NULL }, /* 348 = __acl_set_file */
@@ -384,13 +384,13 @@
{ SYF_MPSAFE | AS(__acl_delete_fd_args), (sy_call_t *)__acl_delete_fd, AUE_NULL }, /* 352 = __acl_delete_fd */
{ SYF_MPSAFE | AS(__acl_aclcheck_file_args), (sy_call_t *)__acl_aclcheck_file, AUE_NULL }, /* 353 = __acl_aclcheck_file */
{ SYF_MPSAFE | AS(__acl_aclcheck_fd_args), (sy_call_t *)__acl_aclcheck_fd, AUE_NULL }, /* 354 = __acl_aclcheck_fd */
- { SYF_MPSAFE | AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_NULL }, /* 355 = extattrctl */
- { SYF_MPSAFE | AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_NULL }, /* 356 = extattr_set_file */
- { SYF_MPSAFE | AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_NULL }, /* 357 = extattr_get_file */
- { SYF_MPSAFE | AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_NULL }, /* 358 = extattr_delete_file */
+ { AS(extattrctl_args), (sy_call_t *)extattrctl, AUE_NULL }, /* 355 = extattrctl */
+ { AS(extattr_set_file_args), (sy_call_t *)extattr_set_file, AUE_NULL }, /* 356 = extattr_set_file */
+ { AS(extattr_get_file_args), (sy_call_t *)extattr_get_file, AUE_NULL }, /* 357 = extattr_get_file */
+ { AS(extattr_delete_file_args), (sy_call_t *)extattr_delete_file, AUE_NULL }, /* 358 = extattr_delete_file */
{ AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 359 = aio_waitcomplete */
- { SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid, AUE_NULL }, /* 360 = getresuid */
- { SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid, AUE_NULL }, /* 361 = getresgid */
+ { SYF_MPSAFE | AS(getresuid_args), (sy_call_t *)getresuid, AUE_GETRESUID }, /* 360 = getresuid */
+ { SYF_MPSAFE | AS(getresgid_args), (sy_call_t *)getresgid, AUE_GETRESGID }, /* 361 = getresgid */
{ SYF_MPSAFE | 0, (sy_call_t *)kqueue, AUE_NULL }, /* 362 = kqueue */
{ SYF_MPSAFE | AS(kevent_args), (sy_call_t *)kevent, AUE_NULL }, /* 363 = kevent */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 364 = __cap_get_proc */
@@ -400,12 +400,12 @@
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 368 = __cap_set_fd */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 369 = __cap_set_file */
{ AS(nosys_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 370 = lkmressys */
- { SYF_MPSAFE | AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_NULL }, /* 371 = extattr_set_fd */
- { SYF_MPSAFE | AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_NULL }, /* 372 = extattr_get_fd */
- { SYF_MPSAFE | AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_NULL }, /* 373 = extattr_delete_fd */
+ { AS(extattr_set_fd_args), (sy_call_t *)extattr_set_fd, AUE_NULL }, /* 371 = extattr_set_fd */
+ { AS(extattr_get_fd_args), (sy_call_t *)extattr_get_fd, AUE_NULL }, /* 372 = extattr_get_fd */
+ { AS(extattr_delete_fd_args), (sy_call_t *)extattr_delete_fd, AUE_NULL }, /* 373 = extattr_delete_fd */
{ SYF_MPSAFE | AS(__setugid_args), (sy_call_t *)__setugid, AUE_NULL }, /* 374 = __setugid */
{ AS(nfsclnt_args), (sy_call_t *)nosys, AUE_NULL }, /* 375 = nfsclnt */
- { SYF_MPSAFE | AS(eaccess_args), (sy_call_t *)eaccess, AUE_NULL }, /* 376 = eaccess */
+ { SYF_MPSAFE | AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS }, /* 376 = eaccess */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 377 = afs_syscall */
{ AS(nmount_args), (sy_call_t *)nmount, AUE_NULL }, /* 378 = nmount */
{ SYF_MPSAFE | 0, (sy_call_t *)kse_exit, AUE_NULL }, /* 379 = kse_exit */
@@ -441,9 +441,9 @@
{ SYF_MPSAFE | AS(__mac_get_pid_args), (sy_call_t *)__mac_get_pid, AUE_NULL }, /* 409 = __mac_get_pid */
{ SYF_MPSAFE | AS(__mac_get_link_args), (sy_call_t *)__mac_get_link, AUE_NULL }, /* 410 = __mac_get_link */
{ SYF_MPSAFE | AS(__mac_set_link_args), (sy_call_t *)__mac_set_link, AUE_NULL }, /* 411 = __mac_set_link */
- { SYF_MPSAFE | AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_NULL }, /* 412 = extattr_set_link */
- { SYF_MPSAFE | AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_NULL }, /* 413 = extattr_get_link */
- { SYF_MPSAFE | AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_NULL }, /* 414 = extattr_delete_link */
+ { AS(extattr_set_link_args), (sy_call_t *)extattr_set_link, AUE_NULL }, /* 412 = extattr_set_link */
+ { AS(extattr_get_link_args), (sy_call_t *)extattr_get_link, AUE_NULL }, /* 413 = extattr_get_link */
+ { AS(extattr_delete_link_args), (sy_call_t *)extattr_delete_link, AUE_NULL }, /* 414 = extattr_delete_link */
{ SYF_MPSAFE | AS(__mac_execve_args), (sy_call_t *)__mac_execve, AUE_NULL }, /* 415 = __mac_execve */
{ SYF_MPSAFE | AS(sigaction_args), (sy_call_t *)sigaction, AUE_SIGACTION }, /* 416 = sigaction */
{ SYF_MPSAFE | AS(sigreturn_args), (sy_call_t *)sigreturn, AUE_SIGRETURN }, /* 417 = sigreturn */
@@ -466,9 +466,9 @@
{ SYF_MPSAFE | AS(_umtx_lock_args), (sy_call_t *)_umtx_lock, AUE_NULL }, /* 434 = _umtx_lock */
{ SYF_MPSAFE | AS(_umtx_unlock_args), (sy_call_t *)_umtx_unlock, AUE_NULL }, /* 435 = _umtx_unlock */
{ SYF_MPSAFE | AS(jail_attach_args), (sy_call_t *)jail_attach, AUE_NULL }, /* 436 = jail_attach */
- { SYF_MPSAFE | AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_NULL }, /* 437 = extattr_list_fd */
- { SYF_MPSAFE | AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_NULL }, /* 438 = extattr_list_file */
- { SYF_MPSAFE | AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_NULL }, /* 439 = extattr_list_link */
+ { AS(extattr_list_fd_args), (sy_call_t *)extattr_list_fd, AUE_NULL }, /* 437 = extattr_list_fd */
+ { AS(extattr_list_file_args), (sy_call_t *)extattr_list_file, AUE_NULL }, /* 438 = extattr_list_file */
+ { AS(extattr_list_link_args), (sy_call_t *)extattr_list_link, AUE_NULL }, /* 439 = extattr_list_link */
{ SYF_MPSAFE | AS(kse_switchin_args), (sy_call_t *)kse_switchin, AUE_NULL }, /* 440 = kse_switchin */
{ SYF_MPSAFE | AS(ksem_timedwait_args), (sy_call_t *)lkmressys, AUE_NULL }, /* 441 = ksem_timedwait */
{ SYF_MPSAFE | AS(thr_suspend_args), (sy_call_t *)thr_suspend, AUE_NULL }, /* 442 = thr_suspend */
==== //depot/projects/trustedbsd/audit3/sys/kern/syscalls.c#12 (text+ko) ====
==== //depot/projects/trustedbsd/audit3/sys/kern/syscalls.master#24 (text+ko) ====
@@ -63,7 +63,7 @@
; but we're not ready for `const' or varargs.
; XXX man page says `mode_t mode'.
6 AUE_CLOSE MSTD { int close(int fd); }
-7 AUE_NULL MSTD { int wait4(int pid, int *status, \
+7 AUE_WAIT4 MSTD { int wait4(int pid, int *status, \
int options, struct rusage *rusage); } \
wait4 wait_args int
8 AUE_O_CREAT MCOMPAT { int creat(char *path, int mode); }
@@ -87,8 +87,8 @@
; XXX `path' should have type `const char *' but we're not ready for that.
22 AUE_UMOUNT STD { int unmount(char *path, int flags); }
23 AUE_SETUID MSTD { int setuid(uid_t uid); }
-24 AUE_NULL MSTD { uid_t getuid(void); }
-25 AUE_NULL MSTD { uid_t geteuid(void); }
+24 AUE_GETUID MSTD { uid_t getuid(void); }
+25 AUE_GETEUID MSTD { uid_t geteuid(void); }
26 AUE_PTRACE MSTD { int ptrace(int req, pid_t pid, \
caddr_t addr, int data); }
27 AUE_RECVMSG MSTD { int recvmsg(int s, struct msghdr *msg, \
@@ -258,8 +258,8 @@
size_t len, int flags, caddr_t from, int \
*fromlenaddr); } recvfrom recvfrom_args \
int
-126 AUE_O_SETREUID MSTD { int setreuid(int ruid, int euid); }
-127 AUE_O_SETREGID MSTD { int setregid(int rgid, int egid); }
+126 AUE_SETREUID MSTD { int setreuid(int ruid, int euid); }
+127 AUE_SETREGID MSTD { int setregid(int rgid, int egid); }
128 AUE_RENAME MSTD { int rename(char *from, char *to); }
129 AUE_O_TRUNCATE MCOMPAT { int truncate(char *path, long length); }
130 AUE_O_FTRUNCATE MCOMPAT { int ftruncate(int fd, long length); }
@@ -311,7 +311,7 @@
158 AUE_FSTATFS MCOMPAT4 { int fstatfs(int fd, \
struct ostatfs *buf); }
159 AUE_NULL UNIMPL nosys
-160 AUE_NULL MSTD { int lgetfh(char *fname, \
+160 AUE_LGETFH MSTD { int lgetfh(char *fname, \
struct fhandle *fhp); }
161 AUE_GETFH MSTD { int getfh(char *fname, \
struct fhandle *fhp); }
@@ -513,12 +513,12 @@
295 AUE_NULL UNIMPL nosys
296 AUE_NULL UNIMPL nosys
; XXX 297 is 300 in NetBSD
-297 AUE_NULL MCOMPAT4 { int fhstatfs( \
+297 AUE_FHSTATFS MCOMPAT4 { int fhstatfs( \
const struct fhandle *u_fhp, \
struct ostatfs *buf); }
-298 AUE_NULL MSTD { int fhopen(const struct fhandle *u_fhp, \
+298 AUE_FHOPEN MSTD { int fhopen(const struct fhandle *u_fhp, \
int flags); }
-299 AUE_NULL MSTD { int fhstat(const struct fhandle *u_fhp, \
+299 AUE_FHSTAT MSTD { int fhstat(const struct fhandle *u_fhp, \
struct stat *sb); }
; syscall numbers for FreeBSD
300 AUE_NULL MSTD { int modnext(int modid); }
@@ -580,7 +580,7 @@
int flags); }
337 AUE_NULL MSTD { int kldsym(int fileid, int cmd, \
void *data); }
-338 AUE_NULL MSTD { int jail(struct jail *jail); }
+338 AUE_JAIL MSTD { int jail(struct jail *jail); }
339 AUE_NULL UNIMPL pioctl
340 AUE_SIGPROCMASK MSTD { int sigprocmask(int how, \
const sigset_t *set, sigset_t *oset); }
@@ -591,7 +591,7 @@
343 AUE_SIGPENDING MSTD { int sigpending(sigset_t *set); }
344 AUE_SIGRETURN MCOMPAT4 { int sigreturn( \
const struct ucontext4 *sigcntxp); }
-345 AUE_NULL MSTD { int sigtimedwait(const sigset_t *set, \
+345 AUE_SIGWAIT MSTD { int sigtimedwait(const sigset_t *set, \
siginfo_t *info, \
const struct timespec *timeout); }
346 AUE_NULL MSTD { int sigwaitinfo(const sigset_t *set, \
@@ -627,9 +627,9 @@
359 AUE_NULL NOSTD { int aio_waitcomplete( \
struct aiocb **aiocbp, \
struct timespec *timeout); }
-360 AUE_NULL MSTD { int getresuid(uid_t *ruid, uid_t *euid, \
+360 AUE_GETRESUID MSTD { int getresuid(uid_t *ruid, uid_t *euid, \
uid_t *suid); }
-361 AUE_NULL MSTD { int getresgid(gid_t *rgid, gid_t *egid, \
+361 AUE_GETRESGID MSTD { int getresgid(gid_t *rgid, gid_t *egid, \
gid_t *sgid); }
362 AUE_NULL MSTD { int kqueue(void); }
363 AUE_NULL MSTD { int kevent(int fd, \
@@ -654,7 +654,7 @@
const char *attrname); }
374 AUE_NULL MSTD { int __setugid(int flag); }
375 AUE_NULL NOIMPL { int nfsclnt(int flag, caddr_t argp); }
-376 AUE_NULL MSTD { int eaccess(char *path, int flags); }
+376 AUE_EACCESS MSTD { int eaccess(char *path, int flags); }
377 AUE_NULL UNIMPL afs_syscall
378 AUE_NULL STD { int nmount(struct iovec *iovp, \
unsigned int iovcnt, int flags); }
==== //depot/projects/trustedbsd/audit3/sys/sys/syscall.h#12 (text+ko) ====
==== //depot/projects/trustedbsd/audit3/sys/sys/syscall.mk#13 (text+ko) ====
==== //depot/projects/trustedbsd/audit3/sys/sys/sysproto.h#16 (text+ko) ====
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 17:14:09 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 32D2C16A462; Mon, 3 Oct 2005 17:14:08 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id C528E16A45E
for ; Mon, 3 Oct 2005 17:14:07 +0000 (GMT)
(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 5DD4043D49
for ; Mon, 3 Oct 2005 17:14:07 +0000 (GMT)
(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93HE72h002789
for ; Mon, 3 Oct 2005 17:14:07 GMT
(envelope-from jhb@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93HE6nM002786
for perforce@freebsd.org; Mon, 3 Oct 2005 17:14:06 GMT
(envelope-from jhb@freebsd.org)
Date: Mon, 3 Oct 2005 17:14:06 GMT
Message-Id: <200510031714.j93HE6nM002786@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
jhb@freebsd.org using -f
From: John Baldwin
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84730 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 17:14:09 -0000
http://perforce.freebsd.org/chv.cgi?CH=84730
Change 84730 by jhb@jhb_slimer on 2005/10/03 17:13:14
IFC @84729.
Affected files ...
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#34 integrate
.. //depot/projects/smpng/sys/arm/arm/bcopyinout.S#7 integrate
.. //depot/projects/smpng/sys/arm/arm/bcopyinout_xscale.S#5 integrate
.. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#14 integrate
.. //depot/projects/smpng/sys/arm/arm/dump_machdep.c#2 integrate
.. //depot/projects/smpng/sys/arm/arm/elf_trampoline.c#1 branch
.. //depot/projects/smpng/sys/arm/arm/in_cksum.c#5 integrate
.. //depot/projects/smpng/sys/arm/arm/in_cksum_arm.S#6 integrate
.. //depot/projects/smpng/sys/arm/arm/inckern.S#1 branch
.. //depot/projects/smpng/sys/arm/arm/intr.c#10 integrate
.. //depot/projects/smpng/sys/arm/arm/locore.S#10 integrate
.. //depot/projects/smpng/sys/arm/arm/machdep.c#13 integrate
.. //depot/projects/smpng/sys/arm/arm/mem.c#2 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#20 integrate
.. //depot/projects/smpng/sys/arm/arm/support.S#9 integrate
.. //depot/projects/smpng/sys/arm/arm/swtch.S#12 integrate
.. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#15 integrate
.. //depot/projects/smpng/sys/arm/conf/IQ31244#8 integrate
.. //depot/projects/smpng/sys/arm/include/in_cksum.h#3 integrate
.. //depot/projects/smpng/sys/arm/include/md_var.h#3 integrate
.. //depot/projects/smpng/sys/arm/include/pmap.h#11 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#9 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/files.i80321#3 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_aau.c#1 branch
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_dma.c#1 branch
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#5 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#13 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#8 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#10 integrate
.. //depot/projects/smpng/sys/conf/NOTES#106 integrate
.. //depot/projects/smpng/sys/conf/files#151 integrate
.. //depot/projects/smpng/sys/ddb/db_command.c#24 integrate
.. //depot/projects/smpng/sys/ddb/db_output.c#16 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.c#53 integrate
.. //depot/projects/smpng/sys/dev/firewire/00README#2 integrate
.. //depot/projects/smpng/sys/dev/firewire/if_fwe.c#28 integrate
.. //depot/projects/smpng/sys/dev/firewire/if_fwip.c#7 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#67 integrate
.. //depot/projects/smpng/sys/dev/ixgb/README#2 integrate
.. //depot/projects/smpng/sys/dev/ixgb/if_ixgb.c#12 integrate
.. //depot/projects/smpng/sys/dev/lge/if_lge.c#30 integrate
.. //depot/projects/smpng/sys/dev/lge/if_lgereg.h#5 integrate
.. //depot/projects/smpng/sys/dev/lmc/if_lmc.h#1 branch
.. //depot/projects/smpng/sys/dev/mii/acphy.c#13 integrate
.. //depot/projects/smpng/sys/dev/mii/amphy.c#12 integrate
.. //depot/projects/smpng/sys/dev/mii/brgphy.c#25 integrate
.. //depot/projects/smpng/sys/dev/mii/ciphy.c#3 integrate
.. //depot/projects/smpng/sys/dev/mii/dcphy.c#15 integrate
.. //depot/projects/smpng/sys/dev/mii/exphy.c#12 integrate
.. //depot/projects/smpng/sys/dev/mii/lxtphy.c#13 integrate
.. //depot/projects/smpng/sys/dev/mii/nsphy.c#12 integrate
.. //depot/projects/smpng/sys/dev/mii/pnaphy.c#13 integrate
.. //depot/projects/smpng/sys/dev/mii/pnphy.c#12 integrate
.. //depot/projects/smpng/sys/dev/mii/qsphy.c#13 integrate
.. //depot/projects/smpng/sys/dev/mii/rgephy.c#5 integrate
.. //depot/projects/smpng/sys/dev/mii/rlphy.c#16 integrate
.. //depot/projects/smpng/sys/dev/mii/tdkphy.c#14 integrate
.. //depot/projects/smpng/sys/dev/mii/tlphy.c#14 integrate
.. //depot/projects/smpng/sys/dev/mii/ukphy.c#11 integrate
.. //depot/projects/smpng/sys/dev/mii/xmphy.c#14 integrate
.. //depot/projects/smpng/sys/dev/nge/if_nge.c#43 integrate
.. //depot/projects/smpng/sys/dev/re/if_re.c#29 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#18 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#28 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.h#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97_patch.c#4 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97_patch.h#4 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#32 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#28 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/feeder_volume.c#1 branch
.. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#21 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sndstat.c#18 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#28 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#23 integrate
.. //depot/projects/smpng/sys/dev/sound/usb/uaudio_pcm.c#12 integrate
.. //depot/projects/smpng/sys/dev/txp/if_txpreg.h#4 integrate
.. //depot/projects/smpng/sys/dev/vge/if_vge.c#10 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi.c#78 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wivar.h#23 integrate
.. //depot/projects/smpng/sys/fs/fifofs/fifo_vnops.c#38 integrate
.. //depot/projects/smpng/sys/fs/nwfs/nwfs_vfsops.c#21 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#84 integrate
.. //depot/projects/smpng/sys/kern/kern_conf.c#44 integrate
.. //depot/projects/smpng/sys/kern/kern_cpu.c#7 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#88 integrate
.. //depot/projects/smpng/sys/kern/kern_lock.c#45 integrate
.. //depot/projects/smpng/sys/kern/kern_poll.c#18 integrate
.. //depot/projects/smpng/sys/kern/kern_proc.c#77 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#83 integrate
.. //depot/projects/smpng/sys/modules/Makefile#107 integrate
.. //depot/projects/smpng/sys/modules/lmc/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/sound/sound/Makefile#3 integrate
.. //depot/projects/smpng/sys/net/if.c#75 integrate
.. //depot/projects/smpng/sys/net/if.h#27 integrate
.. //depot/projects/smpng/sys/net/if_bridge.c#11 integrate
.. //depot/projects/smpng/sys/net/if_var.h#41 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#40 integrate
.. //depot/projects/smpng/sys/netinet/in.c#29 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#73 integrate
.. //depot/projects/smpng/sys/netsmb/netbios.h#6 integrate
.. //depot/projects/smpng/sys/pci/if_dc.c#71 integrate
.. //depot/projects/smpng/sys/pci/if_rl.c#60 integrate
.. //depot/projects/smpng/sys/pci/if_sf.c#39 integrate
.. //depot/projects/smpng/sys/pci/if_sis.c#55 integrate
.. //depot/projects/smpng/sys/pci/if_ste.c#40 integrate
.. //depot/projects/smpng/sys/pci/if_vr.c#38 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#63 integrate
.. //depot/projects/smpng/sys/security/mac_seeotheruids/mac_seeotheruids.c#7 integrate
.. //depot/projects/smpng/sys/sys/buf.h#41 integrate
.. //depot/projects/smpng/sys/sys/kerneldump.h#7 integrate
.. //depot/projects/smpng/sys/sys/mac.h#34 integrate
.. //depot/projects/smpng/sys/sys/mac_policy.h#34 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#51 integrate
Differences ...
==== //depot/projects/smpng/sys/amd64/amd64/trap.c#34 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.293 2005/09/28 07:03:02 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.294 2005/10/01 18:56:16 glebius Exp $");
/*
* AMD64 Trap and System call handling
@@ -146,11 +146,6 @@
extern char *syscallnames[];
#endif
-#ifdef DEVICE_POLLING
-extern u_int32_t poll_in_trap;
-extern int ether_poll(int count);
-#endif /* DEVICE_POLLING */
-
/*
* Exception, fault, and trap interface to the FreeBSD kernel.
* This common code is called from assembly language IDT gate entry
@@ -241,11 +236,6 @@
trap_fatal(&frame, frame.tf_addr);
}
-#ifdef DEVICE_POLLING
- if (poll_in_trap)
- ether_poll(poll_in_trap);
-#endif /* DEVICE_POLLING */
-
if (ISPL(frame.tf_cs) == SEL_UPL) {
/* user trap */
==== //depot/projects/smpng/sys/arm/arm/bcopyinout.S#7 (text+ko) ====
@@ -40,7 +40,12 @@
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/bcopyinout.S,v 1.6 2005/05/24 23:55:09 cognet Exp $");
+.L_arm_memcpy:
+ .word _C_LABEL(_arm_memcpy)
+.L_min_memcpy_size:
+ .word _C_LABEL(_min_memcpy_size)
+
+__FBSDID("$FreeBSD: src/sys/arm/arm/bcopyinout.S,v 1.7 2005/10/03 14:12:10 cognet Exp $");
#ifdef __XSCALE__
#include
#else
@@ -82,6 +87,27 @@
moveq r0, #0
RETeq
+ ldr r3, .L_arm_memcpy
+ ldr r3, [r3]
+ cmp r3, #0
+ beq .Lnormal
+ ldr r3, .L_min_memcpy_size
+ ldr r3, [r3]
+ cmp r2, r3
+ blt .Lnormal
+ stmfd sp!, {r0-r2, r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r3
+ mov r3, #2 /* SRC_IS_USER */
+ ldr r4, .L_arm_memcpy
+ mov lr, pc
+ ldr pc, [r4]
+ cmp r0, #0
+ ldmfd sp!, {r0-r2, r4, lr}
+ moveq r0, #0
+ RETeq
+
SAVE_REGS
#ifdef MULTIPROCESSOR
/* XXX Probably not appropriate for non-Hydra SMPs */
@@ -306,6 +332,27 @@
moveq r0, #0
RETeq
+ ldr r3, .L_arm_memcpy
+ ldr r3, [r3]
+ cmp r3, #0
+ beq .Lnormale
+ ldr r3, .L_min_memcpy_size
+ ldr r3, [r3]
+ cmp r2, r3
+ blt .Lnormale
+ stmfd sp!, {r0-r2, r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r3
+ mov r3, #1 /* DST_IS_USER */
+ ldr r4, .L_arm_memcpy
+ mov lr, pc
+ ldr pc, [r4]
+ cmp r0, #0
+ ldmfd sp!, {r0-r2, r4, lr}
+ moveq r0, #0
+ RETeq
+
SAVE_REGS
#ifdef MULTIPROCESSOR
/* XXX Probably not appropriate for non-Hydra SMPs */
==== //depot/projects/smpng/sys/arm/arm/bcopyinout_xscale.S#5 (text+ko) ====
@@ -36,7 +36,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/bcopyinout_xscale.S,v 1.4 2005/05/24 23:55:09 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/bcopyinout_xscale.S,v 1.5 2005/10/03 14:12:10 cognet Exp $");
.text
.align 0
@@ -61,6 +61,28 @@
movle r0, #0x00
movle pc, lr /* Bail early if length is <= 0 */
+ ldr r3, .L_arm_memcpy
+ ldr r3, [r3]
+ cmp r3, #0
+ beq .Lnormal
+ ldr r3, .L_min_memcpy_size
+ ldr r3, [r3]
+ cmp r2, r3
+ blt .Lnormal
+ stmfd sp!, {r0-r2, r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r3
+ mov r3, #2 /* SRC_IS_USER */
+ ldr r4, .L_arm_memcpy
+ mov lr, pc
+ ldr pc, [r4]
+ cmp r0, #0
+ ldmfd sp!, {r0-r2, r4, lr}
+ moveq r0, #0
+ RETeq
+
+.Lnormal:
stmfd sp!, {r10-r11, lr}
#ifdef MULTIPROCESSOR
@@ -491,6 +513,28 @@
movle r0, #0x00
movle pc, lr /* Bail early if length is <= 0 */
+ ldr r3, .L_arm_memcpy
+ ldr r3, [r3]
+ cmp r3, #0
+ beq .Lnormale
+ ldr r3, .L_min_memcpy_size
+ ldr r3, [r3]
+ cmp r2, r3
+ blt .Lnormale
+ stmfd sp!, {r0-r2, r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r3
+ mov r3, #1 /* DST_IS_USER */
+ ldr r4, .L_arm_memcpy
+ mov lr, pc
+ ldr pc, [r4]
+ cmp r0, #0
+ ldmfd sp!, {r0-r2, r4, lr}
+ moveq r0, #0
+ RETeq
+
+.Lnormale:
stmfd sp!, {r10-r11, lr}
#ifdef MULTIPROCESSOR
==== //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#14 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.22 2005/06/24 23:57:27 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.23 2005/10/03 14:07:57 cognet Exp $");
/*
* MacPPC bus dma support routines
@@ -189,7 +189,8 @@
mtx_lock(&busdma_mtx);
map = TAILQ_FIRST(&dmamap_freelist);
- TAILQ_REMOVE(&dmamap_freelist, map, freelist);
+ if (map)
+ TAILQ_REMOVE(&dmamap_freelist, map, freelist);
mtx_unlock(&busdma_mtx);
if (!map) {
map = malloc(sizeof(*map), M_DEVBUF, M_NOWAIT);
@@ -493,10 +494,14 @@
} else {
curaddr = (pte & L2_S_FRAME) |
(vaddr & L2_S_OFFSET);
+ pmap_uncache(ptep);
+ map->flags |= DMAMAP_UNCACHED;
+#if 0
if (pte & L2_S_CACHE_MASK) {
map->flags &=
~DMAMAP_COHERENT;
}
+#endif
}
}
} else {
@@ -769,7 +774,43 @@
*/
void
_bus_dmamap_unload(bus_dma_tag_t dmat, bus_dmamap_t map)
-{
+{
+ struct mbuf *m;
+ struct uio *uio;
+ int resid;
+ struct iovec *iov;
+
+ if (map->flags & DMAMAP_UNCACHED) {
+ switch(map->flags & DMAMAP_TYPE_MASK) {
+ case DMAMAP_LINEAR:
+ pmap_recache(map->buffer, len);
+ break;
+ case DMAMAP_MBUF:
+ m = map->buffer;
+ while (m) {
+ if (m->m_len > 0)
+ pmap_recache(m->m_data, len);
+ m = m->m_next;
+ }
+ break;
+ case DMAMAP_UIO:
+ uio = map->buffer;
+ iov = uio->uio_iov;
+ resid = uio->uio_resid;
+ for (int i = 0; i < uio->uio_iovcnt && resid != 0; i++) {
+ bus_size_t minlen = resid < iov[i].iov_len ? resid :
+ iov[i].iov_len;
+ if (minlen > 0) {
+ pmap_recache(iov[i].iov_base, minlen);
+ resid -= minlen;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ }
map->flags &= ~DMAMAP_TYPE_MASK;
return;
}
@@ -799,9 +840,11 @@
if (!(op & (BUS_DMASYNC_PREWRITE | BUS_DMASYNC_POSTREAD)))
return;
- if (map->flags & DMAMAP_COHERENT)
+ if (map->flags & DMAMAP_COHERENT) {
+ printf("COHERENT\n");
return;
- if ((op && BUS_DMASYNC_POSTREAD) && (map->len > PAGE_SIZE)) {
+ }
+ if ((op && BUS_DMASYNC_POSTREAD) && (map->len >= 2 * PAGE_SIZE)) {
cpu_dcache_wbinv_all();
return;
}
==== //depot/projects/smpng/sys/arm/arm/dump_machdep.c#2 (text+ko) ====
@@ -1,45 +1,383 @@
/*-
- * Copyright (c) 2004 Olivier Houchard
+ * Copyright (c) 2002 Marcel Moolenaar
* All rights reserved.
*
+ * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
+ *
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. The names of the authors may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
*
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.1 2004/05/14 11:46:42 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.2 2005/10/03 14:05:03 cognet Exp $");
#include
#include
#include
#include
#include
+#include
#include
#include
#include
+#include
#include
+#include
+#include
+
+CTASSERT(sizeof(struct kerneldumpheader) == 512);
+
+/*
+ * Don't touch the first SIZEOF_METADATA bytes on the dump device. This
+ * is to protect us from metadata and to protect metadata from us.
+ */
+#define SIZEOF_METADATA (64*1024)
+
+#define MD_ALIGN(x) (((off_t)(x) + PAGE_MASK) & ~PAGE_MASK)
+#define DEV_ALIGN(x) (((off_t)(x) + (DEV_BSIZE-1)) & ~(DEV_BSIZE-1))
+extern struct pcb dumppcb;
+
+struct md_pa {
+ vm_paddr_t md_start;
+ vm_paddr_t md_size;
+};
+
+typedef int callback_t(struct md_pa *, int, void *);
+
+static struct kerneldumpheader kdh;
+static off_t dumplo, fileofs;
+
+/* Handle buffered writes. */
+static char buffer[DEV_BSIZE];
+static size_t fragsz;
+
+/* XXX: I suppose 20 should be enough. */
+static struct md_pa dump_map[20];
+
+static void
+md_pa_init(void)
+{
+ int n, idx;
+
+ bzero(dump_map, sizeof(dump_map));
+ for (n = 0; n < sizeof(dump_map) / sizeof(dump_map[0]); n++) {
+ idx = n * 2;
+ if (dump_avail[idx] == 0 && dump_avail[idx + 1] == 0)
+ break;
+ dump_map[n].md_start = dump_avail[idx];
+ dump_map[n].md_size = dump_avail[idx + 1] - dump_avail[idx];
+ }
+}
+
+static struct md_pa *
+md_pa_first(void)
+{
+
+ return (&dump_map[0]);
+}
+
+static struct md_pa *
+md_pa_next(struct md_pa *mdp)
+{
+
+ mdp++;
+ if (mdp->md_size == 0)
+ mdp = NULL;
+ return (mdp);
+}
+
+/* XXX should be MI */
+static void
+mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen,
+ uint32_t blksz)
+{
+
+ bzero(kdh, sizeof(*kdh));
+ strncpy(kdh->magic, KERNELDUMPMAGIC, sizeof(kdh->magic));
+ strncpy(kdh->architecture, MACHINE_ARCH, sizeof(kdh->architecture));
+ kdh->version = htod32(KERNELDUMPVERSION);
+ kdh->architectureversion = htod32(archver);
+ kdh->dumplength = htod64(dumplen);
+ kdh->dumptime = htod64(time_second);
+ kdh->blocksize = htod32(blksz);
+ strncpy(kdh->hostname, hostname, sizeof(kdh->hostname));
+ strncpy(kdh->versionstring, version, sizeof(kdh->versionstring));
+ if (panicstr != NULL)
+ strncpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring));
+ kdh->parity = kerneldump_parity(kdh);
+}
+
+static int
+buf_write(struct dumperinfo *di, char *ptr, size_t sz)
+{
+ size_t len;
+ int error;
+
+ while (sz) {
+ len = DEV_BSIZE - fragsz;
+ if (len > sz)
+ len = sz;
+ bcopy(ptr, buffer + fragsz, len);
+ fragsz += len;
+ ptr += len;
+ sz -= len;
+ if (fragsz == DEV_BSIZE) {
+ error = di->dumper(di->priv, buffer, 0, dumplo,
+ DEV_BSIZE);
+ if (error)
+ return error;
+ dumplo += DEV_BSIZE;
+ fragsz = 0;
+ }
+ }
+
+ return (0);
+}
+
+static int
+buf_flush(struct dumperinfo *di)
+{
+ int error;
+
+ if (fragsz == 0)
+ return (0);
+
+ error = di->dumper(di->priv, buffer, 0, dumplo, DEV_BSIZE);
+ dumplo += DEV_BSIZE;
+ fragsz = 0;
+ return (error);
+}
+
+extern vm_offset_t kernel_l1kva;
+extern char *pouet2;
+
+static int
+cb_dumpdata(struct md_pa *mdp, int seqnr, void *arg)
+{
+ struct dumperinfo *di = (struct dumperinfo*)arg;
+ vm_paddr_t pa;
+ vm_offset_t va;
+ uint32_t pgs;
+ size_t counter, sz, chunk;
+ int c, error, twiddle;
+
+ error = 0; /* catch case in which chunk size is 0 */
+ counter = 0; /* Update twiddle every 16MB */
+ twiddle = 0;
+ va = 0;
+ pgs = mdp->md_size / PAGE_SIZE;
+ pa = mdp->md_start;
+
+ printf(" chunk %d: %dMB (%d pages)", seqnr, pgs * PAGE_SIZE / (
+ 1024*1024), pgs);
+
+ /* Make sure we write coherent datas. */
+ cpu_idcache_wbinv_all();
+#ifdef __XSCALE__
+ xscale_cache_clean_minidata();
+#endif
+ while (pgs) {
+ chunk = pgs;
+ if (chunk > MAXDUMPPGS)
+ chunk = MAXDUMPPGS;
+ sz = chunk << PAGE_SHIFT;
+ counter += sz;
+ if (counter >> 24) {
+ printf(" %d", pgs * PAGE_SIZE);
+ counter &= (1<<24) - 1;
+ }
+ if (pa == (pa & L1_ADDR_BITS)) {
+ pmap_kenter_section(0, pa & L1_ADDR_BITS, 0);
+ cpu_tlb_flushID_SE(0);
+ cpu_cpwait();
+ }
+ error = di->dumper(di->priv,
+ (void *)(pa - (pa & L1_ADDR_BITS)),0, dumplo, sz);
+ if (error)
+ break;
+ dumplo += sz;
+ pgs -= chunk;
+ pa += sz;
+ /* Check for user abort. */
+ c = cncheckc();
+ if (c == 0x03)
+ return (ECANCELED);
+ if (c != -1)
+ printf(" (CTRL-C to abort) ");
+ }
+ printf(" ... %s\n", (error) ? "fail" : "ok");
+ return (error);
+}
+
+static int
+cb_dumphdr(struct md_pa *mdp, int seqnr, void *arg)
+{
+ struct dumperinfo *di = (struct dumperinfo*)arg;
+ Elf_Phdr phdr;
+ uint64_t size;
+ int error;
+
+ size = mdp->md_size;
+ bzero(&phdr, sizeof(phdr));
+ phdr.p_type = PT_LOAD;
+ phdr.p_flags = PF_R; /* XXX */
+ phdr.p_offset = fileofs;
+ phdr.p_vaddr = mdp->md_start;
+ phdr.p_paddr = mdp->md_start;
+ phdr.p_filesz = size;
+ phdr.p_memsz = size;
+ phdr.p_align = PAGE_SIZE;
+
+ error = buf_write(di, (char*)&phdr, sizeof(phdr));
+ fileofs += phdr.p_filesz;
+ return (error);
+}
+
+static int
+cb_size(struct md_pa *mdp, int seqnr, void *arg)
+{
+ uint32_t *sz = (uint32_t*)arg;
+
+ *sz += (uint32_t)mdp->md_size;
+ return (0);
+}
+
+static int
+foreach_chunk(callback_t cb, void *arg)
+{
+ struct md_pa *mdp;
+ int error, seqnr;
+
+ seqnr = 0;
+ mdp = md_pa_first();
+ while (mdp != NULL) {
+ error = (*cb)(mdp, seqnr++, arg);
+ if (error)
+ return (-error);
+ mdp = md_pa_next(mdp);
+ }
+ return (seqnr);
+}
+
void
dumpsys(struct dumperinfo *di)
{
+ Elf_Ehdr ehdr;
+ uint32_t dumpsize;
+ off_t hdrgap;
+ size_t hdrsz;
+ int error;
+
+ bzero(&ehdr, sizeof(ehdr));
+ ehdr.e_ident[EI_MAG0] = ELFMAG0;
+ ehdr.e_ident[EI_MAG1] = ELFMAG1;
+ ehdr.e_ident[EI_MAG2] = ELFMAG2;
+ ehdr.e_ident[EI_MAG3] = ELFMAG3;
+ ehdr.e_ident[EI_CLASS] = ELF_CLASS;
+#if BYTE_ORDER == LITTLE_ENDIAN
+ ehdr.e_ident[EI_DATA] = ELFDATA2LSB;
+#else
+ ehdr.e_ident[EI_DATA] = ELFDATA2MSB;
+#endif
+ ehdr.e_ident[EI_VERSION] = EV_CURRENT;
+ ehdr.e_ident[EI_OSABI] = ELFOSABI_STANDALONE; /* XXX big picture? */
+ ehdr.e_type = ET_CORE;
+ ehdr.e_machine = EM_ARM;
+ ehdr.e_phoff = sizeof(ehdr);
+ ehdr.e_flags = 0;
+ ehdr.e_ehsize = sizeof(ehdr);
+ ehdr.e_phentsize = sizeof(Elf_Phdr);
+ ehdr.e_shentsize = sizeof(Elf_Shdr);
+
+ md_pa_init();
+
+ /* Calculate dump size. */
+ dumpsize = 0L;
+ ehdr.e_phnum = foreach_chunk(cb_size, &dumpsize);
+ hdrsz = ehdr.e_phoff + ehdr.e_phnum * ehdr.e_phentsize;
+ fileofs = MD_ALIGN(hdrsz);
+ dumpsize += fileofs;
+ hdrgap = fileofs - DEV_ALIGN(hdrsz);
+
+ /* Determine dump offset on device. */
+ if (di->mediasize < SIZEOF_METADATA + dumpsize + sizeof(kdh) * 2) {
+ error = ENOSPC;
+ goto fail;
+ }
+ dumplo = di->mediaoffset + di->mediasize - dumpsize;
+ dumplo -= sizeof(kdh) * 2;
+
+ mkdumpheader(&kdh, KERNELDUMP_ARM_VERSION, dumpsize, di->blocksize);
+
+ printf("Dumping %llu MB (%d chunks)\n", (long long)dumpsize >> 20,
+ ehdr.e_phnum);
+
+ /* Dump leader */
+ error = di->dumper(di->priv, &kdh, 0, dumplo, sizeof(kdh));
+ if (error)
+ goto fail;
+ dumplo += sizeof(kdh);
+
+ /* Dump ELF header */
+ error = buf_write(di, (char*)&ehdr, sizeof(ehdr));
+ if (error)
+ goto fail;
+
+ /* Dump program headers */
+ error = foreach_chunk(cb_dumphdr, di);
+ if (error < 0)
+ goto fail;
+ buf_flush(di);
+
+ /*
+ * All headers are written using blocked I/O, so we know the
+ * current offset is (still) block aligned. Skip the alignement
+ * in the file to have the segment contents aligned at page
+ * boundary. We cannot use MD_ALIGN on dumplo, because we don't
+ * care and may very well be unaligned within the dump device.
+ */
+ dumplo += hdrgap;
+
+ /* Dump memory chunks (updates dumplo) */
+ error = foreach_chunk(cb_dumpdata, di);
+ if (error < 0)
+ goto fail;
+
+ /* Dump trailer */
+ error = di->dumper(di->priv, &kdh, 0, dumplo, sizeof(kdh));
+ if (error)
+ goto fail;
+
+ /* Signal completion, signoff and exit stage left. */
+ di->dumper(di->priv, NULL, 0, 0, 0);
+ printf("\nDump complete\n");
+ return;
+
+ fail:
+ if (error < 0)
+ error = -error;
+
+ if (error == ECANCELED)
+ printf("\nDump aborted\n");
+ else if (error == ENOSPC)
+ printf("\nDump failed. Partition too small.\n");
+ else
+ printf("\n** DUMP FAILED (ERROR %d) **\n", error);
}
==== //depot/projects/smpng/sys/arm/arm/in_cksum.c#5 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include /* RCS ID & Copyright macro defns */
-__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.4 2005/05/24 21:44:34 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum.c,v 1.5 2005/10/03 14:06:44 cognet Exp $");
#include
#include
@@ -90,18 +90,6 @@
}
u_short
-in_pseudo(u_int32_t a, u_int32_t b, u_int32_t c)
-{
- u_int64_t sum;
- union q_util q_util;
- union l_util l_util;
-
- sum = (u_int64_t) a + b + c;
- REDUCE16;
- return (sum);
-}
-
-u_short
in_cksum_skip(struct mbuf *m, int len, int skip)
{
u_int64_t sum = 0;
==== //depot/projects/smpng/sys/arm/arm/in_cksum_arm.S#6 (text+ko) ====
@@ -44,7 +44,7 @@
#include
#include "assym.s"
-__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum_arm.S,v 1.5 2005/05/24 21:44:34 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/in_cksum_arm.S,v 1.6 2005/10/03 14:07:09 cognet Exp $");
/*
* int in_cksum(struct mbuf *m, int len)
@@ -93,10 +93,10 @@
ENTRY(do_cksum)
- stmfd sp!, {r4-r11, lr}
+ stmfd sp!, {r4-r7, lr}
bl L_cksumdata
mov r0, r2
- ldmfd sp!, {r4-r11, pc}
+ ldmfd sp!, {r4-r7, pc}
/*
* The main in*_cksum() workhorse...
*
==== //depot/projects/smpng/sys/arm/arm/intr.c#10 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.9 2005/06/09 12:26:19 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.10 2005/10/03 14:17:16 cognet Exp $");
#include
#include
#include
@@ -108,6 +108,7 @@
td->td_intr_nesting_level++;
while ((i = arm_get_next_irq()) != -1) {
+ arm_mask_irq(i);
intrcnt[intrcnt_tab[i]]++;
ithd = ithreads[i];
if (!ithd)
@@ -119,10 +120,9 @@
ih->ih_handler(ih->ih_argument ?
ih->ih_argument : frame);
}
- } else if (ih) {
- arm_mask_irq(i);
+ arm_unmask_irq(i);
+ } else if (ih)
ithread_schedule(ithd);
- }
}
td->td_intr_nesting_level--;
}
==== //depot/projects/smpng/sys/arm/arm/locore.S#10 (text+ko) ====
@@ -37,7 +37,7 @@
#include
#include
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.10 2005/03/16 07:53:02 jmg Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.11 2005/10/03 14:10:55 cognet Exp $");
/* What size should this really be ? It is only used by init_arm() */
#define INIT_ARM_STACK_SIZE 2048
@@ -60,6 +60,8 @@
.align 0
.globl kernbase
.set kernbase,KERNBASE
+.globl physaddr
+.set physaddr,PHYSADDR
ENTRY_NP(btext)
@@ -157,7 +159,7 @@
mov r3, #0
.L1:
- str r3, [r1], #0x0004 /* Zero the bss */
+ str r3, [r1], #0x0004 /* get zero init data */
subs r2, r2, #4
bgt .L1
@@ -177,7 +179,8 @@
sub pc, pc, r4
#endif
virt_done:
- ldr fp, =KERNVIRTADDR /* trace back starts here */
+ nop
+ mov fp, #0 /* trace back starts here */
bl _C_LABEL(initarm) /* Off we go */
/* init arm will return the new stack pointer. */
@@ -194,6 +197,10 @@
.word 4*((va)>>L1_S_SHIFT) ; \
.word (pa)|(attr) ;
+Lvirtaddr:
+ .word KERNVIRTADDR
+Lphysaddr:
+ .word KERNPHYSADDR
Lstartup_pagetable:
.word STARTUP_PAGETABLE_ADDR
mmu_init_table:
==== //depot/projects/smpng/sys/arm/arm/machdep.c#13 (text+ko) ====
@@ -44,7 +44,7 @@
#include "opt_compat.h"
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.16 2005/04/04 21:53:52 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.17 2005/10/03 14:17:45 cognet Exp $");
#include
#include
@@ -95,6 +95,11 @@
long realmem = 0;
+int (*_arm_memcpy)(void *, void *, int, int) = NULL;
+int (*_arm_bzero)(void *, int, int) = NULL;
+int _min_memcpy_size = 0;
+int _min_bzero_size = 0;
+
void
sendsig(catcher, sig, mask, code)
sig_t catcher;
==== //depot/projects/smpng/sys/arm/arm/mem.c#2 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/arm/arm/mem.c,v 1.1 2004/11/07 23:01:36 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/mem.c,v 1.2 2005/10/03 14:18:21 cognet Exp $");
/*
* Memory special file
@@ -64,6 +64,13 @@
#include
+#include "opt_global.h"
+
+#ifdef ARM_USE_SMALL_ALLOC
+extern vm_offset_t alloc_curaddr;
+extern vm_offset_t alloc_firstaddr;
+#endif
+
/*
* Used in /dev/mem drivers and elsewhere
*/
@@ -116,11 +123,14 @@
for (; addr < eaddr; addr += PAGE_SIZE)
if (pmap_extract(kernel_pmap, addr) == 0)
return (EFAULT);
-
if (!kernacc((caddr_t)(int)uio->uio_offset, c,
uio->uio_rw == UIO_READ ?
VM_PROT_READ : VM_PROT_WRITE))
- return (EFAULT);
+#ifdef ARM_USE_SMALL_ALLOC
+ if (addr < alloc_firstaddr || addr >
>>> TRUNCATED FOR MAIL (1000 lines) <<<
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 18:22:35 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 1B23816A421; Mon, 3 Oct 2005 18:22:35 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id E52F816A41F
for ; Mon, 3 Oct 2005 18:22:34 +0000 (GMT)
(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id B09A143D46
for ; Mon, 3 Oct 2005 18:22:34 +0000 (GMT)
(envelope-from soc-saturnero@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93IMYUx006116
for ; Mon, 3 Oct 2005 18:22:34 GMT
(envelope-from soc-saturnero@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93IMY1T006113
for perforce@freebsd.org; Mon, 3 Oct 2005 18:22:34 GMT
(envelope-from soc-saturnero@freebsd.org)
Date: Mon, 3 Oct 2005 18:22:34 GMT
Message-Id: <200510031822.j93IMY1T006113@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-saturnero@freebsd.org using -f
From: soc-saturnero
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84736 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 18:22:35 -0000
http://perforce.freebsd.org/chv.cgi?CH=84736
Change 84736 by soc-saturnero@soc-saturnero_sberta on 2005/10/03 18:22:08
Added rootmfs plugin. It is almost identical to etcmfs.
Requested by: Scott Ullrich freesbie.org>
Affected files ...
.. //depot/projects/soc2005/freesbie/conf/freesbie.defaults.conf#13 edit
.. //depot/projects/soc2005/freesbie/extra/rootmfs.sh#1 add
.. //depot/projects/soc2005/freesbie/extra/rootmfs/rootmfs.rc#1 add
Differences ...
==== //depot/projects/soc2005/freesbie/conf/freesbie.defaults.conf#13 (text+ko) ====
@@ -69,9 +69,10 @@
#PKGFILE=/my/own/pkg_info_output.txt
# Set EXTRA variable to the additional plugins you want to run in your
-# system
+# system. Please note that plugins are executed in the same order as
+# listed in this variable
#
-#EXTRA="customroot etcmfs"
+#EXTRA="customroot rootmfs etcmfs"
# Knobs
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 18:33:49 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 0C06316A421; Mon, 3 Oct 2005 18:33:49 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id D69D316A41F
for ; Mon, 3 Oct 2005 18:33:48 +0000 (GMT)
(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id A423843D45
for ; Mon, 3 Oct 2005 18:33:48 +0000 (GMT)
(envelope-from jhb@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93IXmcM006758
for ; Mon, 3 Oct 2005 18:33:48 GMT
(envelope-from jhb@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93IXmOj006755
for perforce@freebsd.org; Mon, 3 Oct 2005 18:33:48 GMT
(envelope-from jhb@freebsd.org)
Date: Mon, 3 Oct 2005 18:33:48 GMT
Message-Id: <200510031833.j93IXmOj006755@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
jhb@freebsd.org using -f
From: John Baldwin
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84737 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 18:33:49 -0000
http://perforce.freebsd.org/chv.cgi?CH=84737
Change 84737 by jhb@jhb_slimer on 2005/10/03 18:33:14
Pullup the refcount test from jhb_proc.
Affected files ...
.. //depot/projects/smpng/sys/modules/crash/crash.c#20 integrate
Differences ...
==== //depot/projects/smpng/sys/modules/crash/crash.c#20 (text+ko) ====
@@ -48,6 +48,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -82,6 +83,28 @@
/* Events. */
+static void
+refcount_test(void)
+{
+ int count;
+
+ printf("Creating and bumping refcount\n");
+ refcount_init(&count, 1);
+ refcount_acquire(&count);
+ printf("Dropping refcount first time: ");
+ if (refcount_release(&count))
+ printf("true, (uh oh!)\n");
+ else
+ printf("false\n");
+ printf("Dropping refcount second time: ");
+ if (refcount_release(&count))
+ printf("true\n");
+ else
+ printf("false, (uh oh!)\n");
+ printf("Ending count: %d\n", count);
+}
+CRASH_EVENT("refcount", refcount_test);
+
#ifdef WITNESS
static void
foo_then_bar(void)
From owner-p4-projects@FreeBSD.ORG Mon Oct 3 21:19:14 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 5855616A421; Mon, 3 Oct 2005 21:19:14 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 2C9DF16A41F
for ; Mon, 3 Oct 2005 21:19:14 +0000 (GMT)
(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id E7F6643D46
for ; Mon, 3 Oct 2005 21:19:12 +0000 (GMT)
(envelope-from soc-andrew@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j93LJCK0020729
for ; Mon, 3 Oct 2005 21:19:12 GMT
(envelope-from soc-andrew@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j93LJCch020726
for perforce@freebsd.org; Mon, 3 Oct 2005 21:19:12 GMT
(envelope-from soc-andrew@freebsd.org)
Date: Mon, 3 Oct 2005 21:19:12 GMT
Message-Id: <200510032119.j93LJCch020726@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-andrew@freebsd.org using -f
From: soc-andrew
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84746 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Mon, 03 Oct 2005 21:19:15 -0000
http://perforce.freebsd.org/chv.cgi?CH=84746
Change 84746 by soc-andrew@soc-andrew_serv on 2005/10/03 21:18:56
IFC
Affected files ...
.. //depot/projects/soc2005/bsdinstaller/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#6 integrate
.. //depot/projects/soc2005/bsdinstaller/src/usr.sbin/Makefile#8 integrate
Differences ...
==== //depot/projects/soc2005/bsdinstaller/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#6 (text+ko) ====
@@ -3,7 +3,7 @@
The &os; Project
- $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.890 2005/09/14 05:50:09 brueffer Exp $
+ $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.893 2005/10/03 17:24:20 hrs Exp $2000
@@ -130,7 +130,20 @@
Boot Loader Changes
-
+ A new option ,
+ which allows setting the boot2
+ serial console speed in the /boot.config
+ file or on the boot: prompt line,
+ has been added.
+
+ A new loader tunable
+ comconsole_speed to change
+ the serial console speed has been added.
+ If the previous stage boot loader requested a serial console
+ then the default speed is determined from the current serial port
+ speed, and otherwise it is set to 9600 or the value of
+ the kernel option BOOT_COMCONSOLE_SPEED
+ at compile time.
@@ -139,14 +152,46 @@
Hardware Support
+ The &man.acpi.thermal.4; driver now supports
+ passive cooling.
+
Support for the PadLock Security Co-processor in VIA C3
processors has been added to the &man.crypto.9; subsystem.
&merged;
+ A bug which prevents the &man.ichsmb.4; kernel module
+ from unloading has been fixed.
+
+ The loader tunable debug.mpsafevfs
+ is set to 1 by default.
+
+ The smbios(4) driver support for amd64 has been
+ added.
+
+ A new loader tunable
+ hw.apic.enable_extint has been added.
+ This tunable can be used not to mask the ExtINT pin on the first
+ I/O APIC. At least one chipset for Intel Pentium III seems
+ to need this even though all of the pins in the 8259A's are masked.
+ The default is still to mask the ExtINT pin.
+
Multimedia Support
-
+ The &man.sound.4; driver now supports
+ wider range sampling rate, multiple precisions choice,
+ and 24/32 bit PCM format conversion.
+
+ The &man.snd.als4000.4; driver is now MPSAFE.
+
+ The &man.snd.cmi.4; driver is now MPSAFE.
+
+ The &man.snd.via8233.4; driver is now MPSAFE.
+
+ The &man.snd.via8233.4; driver is now supported
+ on &os;/amd64.
+
+ The &man.snd.via82c686.4; driver is now MPSAFE.
@@ -174,12 +219,79 @@
Network Protocols
-
+ The &man.gre.4; driver, which is for GRE encapsulation
+ found in RFC 1701 and RFC 1702 now supports IPv6 over GRE.
+
+ The path MTU discovery for multicast packets in the &os;
+ &man.ip6.4; stack has been disabled by default because
+ notifying path MTU by a lot of routers in multicast
+ can be a kind of distributed Denial-of-Service attack to a router.
+ This feature can be enabled by using a new sysctl variable
+ net.inet6.ip6.mcast_pmtu.
+
+ The &man.ipfw.4;, IP packet filter now supports IPv6.
+ The &man.ip6fw.8; is deprecated and will be removed
+ in the future releases.
+
+ The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE.
+
+ A new sysctl variable net.inet.icmp.reply_from_interface
+ has been added. This allows the &man.icmp.4;
+ reply to non-local packets generated with
+ the IP address the packet came through in.
+ This is useful for routers to show in &man.traceroute.8;
+ the actual path a packet has taken instead of
+ the possibly different return path.
+
+ A new sysctl variable net.inet.icmp.quotelen
+ has been added. This allows to change length of
+ the quotation of the original packet in an ICMP reply.
+ The minimum of 8 bytes is internally enforced.
+ The maximum quotation is the remaining space in the
+ reply mbuf. This option is added in response to the
+ issues raised in I-D
+ draft-gont-icmp-payload-00.txt.
+
+ The &man.icmp.4; now always quotes the entire TCP header
+ when responding and allocate an mbuf cluster if needed.
+ This change fixes the TCP issues raised in I-D
+ draft-gont-icmp-payload-00.txt.
+
+ A new socket option IP_MINTTL has been added.
+ This may be used to set the minimum acceptable
+ TTL a packet must have when received on a socket.
+ All packets with a lower TTL are silently dropped,
+ and this works on already connected/connecting and
+ listening sockets for RAW, UDP, and TCP. This option
+ is only really useful when set to 255 preventing packets
+ from outside the directly connected networks reaching
+ local listeners on sockets. Also, this option allows
+ userland implementation of The Generalized TTL
+ Security Mechanism (GTSM) found in RFC 3682.
+
+ The stealth forwarding now supports IPv6 as well as IPv4.
+ This behavior can be controlled by using a new sysctl variable
+ net.inet6.ip6.stealth.Disks and Storage
+ The &man.ata.4; driver now supports a workaround
+ for some controllers whose DMA does not work properly
+ in 48bit mode. For the suspicious controllers
+ the PIO mode will be used for access to over 137GB areas.
+
+ A new GEOM class GEOM_ZERO has been added.
+ It creates very huge provider (41PB) /dev/gzero
+ and mainly for performance testing.
+ On BIO_READ request it zero-fills
+ bio_data and on BIO_WRITE
+ it does nothing.
+
+ The GEOM_LABEL class now supports
+ Ext2FS and ReiserFS.
+
The &man.mpt.4; driver has been updated to support
various new features such as RAID volume and RAID member
state/settings reporting, periodic volume re-synchronization
@@ -191,12 +303,21 @@
added. It uses the &man.crypto.9; framework for hardware acceleration
and supports different cryptographic algorithms. See &man.geli.8; for
more information. &merged;
+
+ The &man.umass.4; driver now supports
+ PLAY_MSF,
+ PLAY_TRACK,
+ PLAY_TRACK_REL,
+ PAUSE,
+ PLAY_12 commands so that
+ the &man.cdcontrol.1; utility can handle USB CD drive.File Systems
-
+ A part of the FreeBSD NFS subsystem (the interface with
+ the protocol stack and callouts) is now MPSAFE.
@@ -209,6 +330,21 @@
Userland Changes
+ Padding of ai_addrlen
+ in struct addrinfo has been removed,
+ which was originally for the ABI compatibility.
+ For example, this change break the ABI compatibility of
+ &man.getaddrinfo.3; function on 64-bit architecture including
+ &os;/alpha, &os;/amd64, &os;/ia64, and &os;/sparc64.
+
+ The &man.bsdiff.1; and &man.bspatch.1; utilities
+ have been added. These are tools for constructing and
+ applying binary patches.
+
+ The &man.cmp.1; utility now supports an
+ flag to compare the symbolic link itself rather than the
+ file that the link points to.
+
The &man.ifconfig.8; utility now supports
a flag to allow printing
potentially sensitive keying material to standard output.
@@ -221,10 +357,74 @@
statistics, wrapped around the binary stream sysctl variables
for the allocators. &merged;
+ A new function &man.memmem.3; has been implemented in
+ libc. This is the binary equivalent to
+ &man.strstr.3; and found in glibc.
+
+ The &man.moused.8; now supports an flag
+ to enable horizontal virtual scrolling similar to a
+ flag for vertical virtual scrolling.
+
+ The &man.netstat.1; utility now supports an
+ flag for interface stats mode,
+ which prints all interface statistics in human readable form.
+
+ A new functions, &man.pidfile.3;, which allow reliable
+ pidfiles handling have been implemented in
+ libutil.
+
+ The &man.ping.8; utility now supports a sweeping
+ ping in which &man.icmp.4; payload of
+ packets being sent is increased with given step.
+ This is useful for testing problematic channels, MTU issues
+ or traffic policing functions in networks.
+
+ The &man.pkill.1; utility now supports a
+ option which allows to
+ restrict matches to a process whose PID is stored in the
+ pidfile file. When another new option
+ is also specified, the pidfile file must be locked with the
+ &man.flock.2; syscall or created with &man.pidfile.3;.
+
+ The &man.powerd.8; program now supports a
+ option which allows to specify pidfile.
+
+ The shared library version number of all libraries have
+ been updated due to some possible ABI changes. The libraries
+ include: snmp_*, libdialog, libg2c, libobjc,
+ libreadline, libregex, libstdc++, libkrb5, libalias, libarchive,
+ libbegemot, libbluetooth, libbsnmp, libbz2, libc_r, libcrypt,
+ libdevstat, libedit, libexpat, libfetch, libftpio, libgpib,
+ libipsec, libkiconv, libmagic, libmp, libncp, libncurses,
+ libnetgraph, libngatm, libopie, libpam, libpthread, libradius,
+ libsdp, libsmb, libtacplus, libthr, libthread_db, libugidfw,
+ libusbhid, libutil, libvgl, libwrap, libypclnt, libm, libcrypto,
+ libssh, and libssl.
+
+ The wcsdup() function has been
+ implemented. This function is popular in Microsoft and GNU
+ systems.
+
/etc/rc.d Scripts
-
+ The gbde_swap script has
+ been removed in favor a new encswap
+ script which also supports &man.geli.8; for swap
+ encryption.
+
+ The geli and geli2
+ scripts has been added for &man.geli.8; device
+ configuration on boot.
+
+ The removable_interfaces variable
+ has been removed.
+
+ A new variable ifconfig_ifn
+ has been added. This allows
+ /etc/rc.d/netif
+ to be used to start and stop an interface
+ on a purely manual basis.
@@ -244,13 +444,83 @@
Ports/Packages Collection Infrastructure
-
+ The &man.pkg.version.1; now supports an
+ flag to show the origin recorded on package generation
+ instead of the package name, and an flag
+ to list packages whose registered origin is origin only.
+
+ The &man.portsnap.8; utility (sysutils/portsnap)
+ has been added into the &os; base system. This is a secure,
+ easy to use, fast, lightweight, and generally good way for
+ users to keep their ports trees up to date.Release Engineering and Integration
-
+ The default partition sizing algorithm of the
+ &man.sysinstall.8; utility has been changed.
+
+
+
+ On systems where the disk capacity is larger than (3 * RAMsize + 10GB),
+ the default sizes will now be as follows:
+
+
+
+
+
+
+
+ Partition
+ Size
+
+
+
+
+ swapRAMsize * 2
+ /512 MB
+ /tmp512 MB
+ /var1024 MB + RAMsize
+ /usrthe rest (8GB or more)
+
+
+
+
+
+
+ On systems where the disk capacity is larger than
+ (RAMsize / 8 + 2 GB), the default sizes will be
+ in the following ranges, with space allocated
+ proportionally:
+
+
+
+
+
+
+
+ Partition
+ Size
+
+
+
+
+ swapfrom RAMsize / 8 to RAMsize * 2
+ /from 256MB to 512MB
+ /tmpfrom 128MB to 512MB
+ /varfrom 128MB to 1024MB
+ /usrfrom 1536MB to 8192MB
+
+
+
+
+
+
+ On systems with even less disk space, the existing behavior is not
+ changed.
+
+
==== //depot/projects/soc2005/bsdinstaller/src/usr.sbin/Makefile#8 (text+ko) ====
@@ -1,5 +1,5 @@
# From: @(#)Makefile 5.20 (Berkeley) 6/12/93
-# $FreeBSD: src/usr.sbin/Makefile,v 1.337 2005/09/28 07:20:46 ru Exp $
+# $FreeBSD: src/usr.sbin/Makefile,v 1.338 2005/10/03 07:09:41 scottl Exp $
# XXX MISSING: mkproto
SUBDIR= ac \
@@ -73,6 +73,7 @@
lastlogin \
${_lpr} \
${_lptcontrol} \
+ lmcconfig \
${_mailstats} \
mailwrapper \
${_makemap} \
From owner-p4-projects@FreeBSD.ORG Tue Oct 4 00:15:51 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id BC84F16A421; Tue, 4 Oct 2005 00:15:50 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 90AB616A41F
for ; Tue, 4 Oct 2005 00:15:50 +0000 (GMT)
(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 23C3343D46
for ; Tue, 4 Oct 2005 00:15:50 +0000 (GMT)
(envelope-from peter@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j940Fog2028519
for ; Tue, 4 Oct 2005 00:15:50 GMT
(envelope-from peter@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j940Fme6028516
for perforce@freebsd.org; Tue, 4 Oct 2005 00:15:48 GMT
(envelope-from peter@freebsd.org)
Date: Tue, 4 Oct 2005 00:15:48 GMT
Message-Id: <200510040015.j940Fme6028516@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
peter@freebsd.org using -f
From: Peter Wemm
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84755 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Tue, 04 Oct 2005 00:15:51 -0000
http://perforce.freebsd.org/chv.cgi?CH=84755
Change 84755 by peter@peter_daintree on 2005/10/04 00:14:51
IFC @84753
Affected files ...
.. //depot/projects/hammer/ObsoleteFiles.inc#7 integrate
.. //depot/projects/hammer/UPDATING#84 integrate
.. //depot/projects/hammer/bin/rm/rm.1#12 integrate
.. //depot/projects/hammer/bin/rm/rm.c#11 integrate
.. //depot/projects/hammer/contrib/bc/bc/main.c#3 integrate
.. //depot/projects/hammer/contrib/cpio/ABOUT-NLS#1 branch
.. //depot/projects/hammer/contrib/cpio/AUTHORS#1 branch
.. //depot/projects/hammer/contrib/cpio/COPYING#2 integrate
.. //depot/projects/hammer/contrib/cpio/COPYING.LIB#2 delete
.. //depot/projects/hammer/contrib/cpio/ChangeLog#2 integrate
.. //depot/projects/hammer/contrib/cpio/FREEBSD-upgrade#3 integrate
.. //depot/projects/hammer/contrib/cpio/INSTALL#1 branch
.. //depot/projects/hammer/contrib/cpio/NEWS#2 integrate
.. //depot/projects/hammer/contrib/cpio/README#2 integrate
.. //depot/projects/hammer/contrib/cpio/THANKS#1 branch
.. //depot/projects/hammer/contrib/cpio/TODO#1 branch
.. //depot/projects/hammer/contrib/cpio/alloca.c#2 delete
.. //depot/projects/hammer/contrib/cpio/copyin.c#2 delete
.. //depot/projects/hammer/contrib/cpio/copyout.c#2 delete
.. //depot/projects/hammer/contrib/cpio/copypass.c#3 delete
.. //depot/projects/hammer/contrib/cpio/cpio.1#2 delete
.. //depot/projects/hammer/contrib/cpio/cpio.h#2 delete
.. //depot/projects/hammer/contrib/cpio/cpio.texi#2 delete
.. //depot/projects/hammer/contrib/cpio/cpiohdr.h#2 delete
.. //depot/projects/hammer/contrib/cpio/defer.c#2 delete
.. //depot/projects/hammer/contrib/cpio/defer.h#2 delete
.. //depot/projects/hammer/contrib/cpio/dirname.c#2 delete
.. //depot/projects/hammer/contrib/cpio/doc/cpio.1#1 branch
.. //depot/projects/hammer/contrib/cpio/doc/cpio.texi#1 branch
.. //depot/projects/hammer/contrib/cpio/dstring.c#2 delete
.. //depot/projects/hammer/contrib/cpio/dstring.h#2 delete
.. //depot/projects/hammer/contrib/cpio/error.c#2 delete
.. //depot/projects/hammer/contrib/cpio/extern.h#2 delete
.. //depot/projects/hammer/contrib/cpio/filemode.c#2 delete
.. //depot/projects/hammer/contrib/cpio/filetypes.h#2 delete
.. //depot/projects/hammer/contrib/cpio/global.c#2 delete
.. //depot/projects/hammer/contrib/cpio/idcache.c#2 delete
.. //depot/projects/hammer/contrib/cpio/lib/alloca_.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-ba.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-eexst.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-fmtstream.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-fmtstream.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-fs-xinl.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-help.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-namefrob.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-parse.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-pv.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-pvh.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp-xinl.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/argp.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/basename.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/dirname.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/dirname.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/error.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/error.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/exit.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/exitfail.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/exitfail.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/full-write.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/full-write.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/getopt.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/getopt1.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/getopt_.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/getopt_int.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/gettext.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/localedir.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/mempcpy.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/mempcpy.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/rmt.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/rtapelib.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/safe-read.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/safe-read.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/safe-write.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/safe-write.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/savedir.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/savedir.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/strcase.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/strchrnul.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/strchrnul.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/stripslash.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/strndup.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/strndup.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/strnlen.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/system.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/unlocked-io.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/xalloc-die.c#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/xalloc.h#1 branch
.. //depot/projects/hammer/contrib/cpio/lib/xmalloc.c#1 branch
.. //depot/projects/hammer/contrib/cpio/main.c#2 delete
.. //depot/projects/hammer/contrib/cpio/makepath.c#2 delete
.. //depot/projects/hammer/contrib/cpio/rmt.h#2 delete
.. //depot/projects/hammer/contrib/cpio/rtapelib.c#2 delete
.. //depot/projects/hammer/contrib/cpio/safe-stat.h#2 delete
.. //depot/projects/hammer/contrib/cpio/src/copyin.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/copyout.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/copypass.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/cpio.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/cpiohdr.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/defer.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/defer.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/dstring.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/dstring.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/extern.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/filemode.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/filetypes.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/global.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/idcache.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/main.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/makepath.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/safe-stat.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/tar.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/tar.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/tarhdr.h#1 branch
.. //depot/projects/hammer/contrib/cpio/src/userspec.c#1 branch
.. //depot/projects/hammer/contrib/cpio/src/util.c#1 branch
.. //depot/projects/hammer/contrib/cpio/stripslash.c#2 delete
.. //depot/projects/hammer/contrib/cpio/system.h#2 delete
.. //depot/projects/hammer/contrib/cpio/tar.c#3 delete
.. //depot/projects/hammer/contrib/cpio/tar.h#2 delete
.. //depot/projects/hammer/contrib/cpio/tarhdr.h#2 delete
.. //depot/projects/hammer/contrib/cpio/userspec.c#2 delete
.. //depot/projects/hammer/contrib/cpio/util.c#2 delete
.. //depot/projects/hammer/contrib/cpio/version.c#2 delete
.. //depot/projects/hammer/contrib/cpio/xmalloc.c#2 delete
.. //depot/projects/hammer/contrib/cpio/xstrdup.c#2 delete
.. //depot/projects/hammer/contrib/pf/man/pf.4#7 integrate
.. //depot/projects/hammer/contrib/pf/man/pf.conf.5#9 integrate
.. //depot/projects/hammer/contrib/pf/man/pfsync.4#8 integrate
.. //depot/projects/hammer/contrib/smbfs/include/netsmb/nb_lib.h#2 integrate
.. //depot/projects/hammer/contrib/smbfs/include/netsmb/smb_lib.h#3 integrate
.. //depot/projects/hammer/contrib/smbfs/lib/smb/ctx.c#7 integrate
.. //depot/projects/hammer/contrib/smbfs/lib/smb/nb.c#2 integrate
.. //depot/projects/hammer/contrib/smbfs/lib/smb/nb_net.c#4 integrate
.. //depot/projects/hammer/contrib/smbfs/lib/smb/nbns_rq.c#2 integrate
.. //depot/projects/hammer/contrib/smbfs/mount_smbfs/mount_smbfs.8#3 integrate
.. //depot/projects/hammer/etc/defaults/rc.conf#61 integrate
.. //depot/projects/hammer/etc/mtree/BSD.include.dist#35 integrate
.. //depot/projects/hammer/etc/pccard_ether#16 integrate
.. //depot/projects/hammer/etc/rc.d/Makefile#39 integrate
.. //depot/projects/hammer/etc/rc.d/archdep#8 integrate
.. //depot/projects/hammer/etc/rc.d/pf#9 integrate
.. //depot/projects/hammer/etc/rc.d/pflog#7 integrate
.. //depot/projects/hammer/etc/rc.d/pfsync#1 branch
.. //depot/projects/hammer/etc/rc.d/ugidfw#4 integrate
.. //depot/projects/hammer/etc/rc.subr#25 integrate
.. //depot/projects/hammer/games/fortune/datfiles/limerick#5 integrate
.. //depot/projects/hammer/gnu/usr.bin/cpio/Makefile#3 integrate
.. //depot/projects/hammer/gnu/usr.bin/cpio/config.h#1 branch
.. //depot/projects/hammer/gnu/usr.bin/cpio/doc/Makefile#2 integrate
.. //depot/projects/hammer/gnu/usr.bin/gdb/kgdb/trgt_amd64.c#4 integrate
.. //depot/projects/hammer/include/Makefile#48 integrate
.. //depot/projects/hammer/lib/libc/arm/string/Makefile.inc#2 integrate
.. //depot/projects/hammer/lib/libc/arm/string/strlen.S#1 branch
.. //depot/projects/hammer/lib/libkvm/kvm_arm.c#5 integrate
.. //depot/projects/hammer/lib/libpam/modules/pam_ssh/Makefile#7 integrate
.. //depot/projects/hammer/release/Makefile#76 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#108 integrate
.. //depot/projects/hammer/release/picobsd/bridge/PICOBSD#4 integrate
.. //depot/projects/hammer/release/picobsd/tinyware/ns/ns.c#2 integrate
.. //depot/projects/hammer/sbin/Makefile#38 integrate
.. //depot/projects/hammer/sbin/geom/class/mirror/gmirror.8#11 integrate
.. //depot/projects/hammer/sbin/ifconfig/ifconfig.8#30 integrate
.. //depot/projects/hammer/sbin/ifconfig/ifconfig.c#27 integrate
.. //depot/projects/hammer/sbin/ifconfig/ifieee80211.c#17 integrate
.. //depot/projects/hammer/sbin/ifconfig/ifvlan.c#4 integrate
.. //depot/projects/hammer/sbin/ipfw/ipfw.8#46 integrate
.. //depot/projects/hammer/sbin/mount_cd9660/mount_cd9660.8#10 integrate
.. //depot/projects/hammer/sbin/reboot/boot_i386.8#13 integrate
.. //depot/projects/hammer/sbin/route/keywords#2 integrate
.. //depot/projects/hammer/sbin/route/route.8#11 integrate
.. //depot/projects/hammer/sbin/route/route.c#12 integrate
.. //depot/projects/hammer/sbin/savecore/savecore.c#13 integrate
.. //depot/projects/hammer/share/man/man4/Makefile#76 integrate
.. //depot/projects/hammer/share/man/man4/ath.4#27 integrate
.. //depot/projects/hammer/share/man/man4/bridge.4#5 delete
.. //depot/projects/hammer/share/man/man4/cardbus.4#3 integrate
.. //depot/projects/hammer/share/man/man4/dummynet.4#5 integrate
.. //depot/projects/hammer/share/man/man4/hwpmc.4#9 integrate
.. //depot/projects/hammer/share/man/man4/ng_bridge.4#4 integrate
.. //depot/projects/hammer/share/man/man4/pccard.4#4 integrate
.. //depot/projects/hammer/share/man/man4/pccbb.4#7 integrate
.. //depot/projects/hammer/share/man/man4/polling.4#16 integrate
.. //depot/projects/hammer/share/man/man4/txp.4#8 integrate
.. //depot/projects/hammer/share/man/man4/wi.4#23 integrate
.. //depot/projects/hammer/share/man/man5/Makefile#13 integrate
.. //depot/projects/hammer/share/man/man5/rc.conf.5#63 integrate
.. //depot/projects/hammer/share/man/man9/Makefile#57 integrate
.. //depot/projects/hammer/share/man/man9/atomic.9#3 integrate
.. //depot/projects/hammer/share/man/man9/pfil.9#12 integrate
.. //depot/projects/hammer/share/mk/sys.mk#20 integrate
.. //depot/projects/hammer/share/msgdef/Makefile#18 integrate
.. //depot/projects/hammer/sys/alpha/alpha/interrupt.c#20 integrate
.. //depot/projects/hammer/sys/alpha/alpha/trap.c#18 integrate
.. //depot/projects/hammer/sys/alpha/osf1/osf1_ioctl.c#7 integrate
.. //depot/projects/hammer/sys/alpha/osf1/osf1_misc.c#19 integrate
.. //depot/projects/hammer/sys/alpha/osf1/osf1_signal.c#17 integrate
.. //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#34 integrate
.. //depot/projects/hammer/sys/amd64/amd64/elf_machdep.c#32 integrate
.. //depot/projects/hammer/sys/amd64/amd64/gdb_machdep.c#12 integrate
.. //depot/projects/hammer/sys/amd64/amd64/genassym.c#41 integrate
.. //depot/projects/hammer/sys/amd64/amd64/machdep.c#141 integrate
.. //depot/projects/hammer/sys/amd64/amd64/support.S#33 integrate
.. //depot/projects/hammer/sys/amd64/amd64/trap.c#75 integrate
.. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#81 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#15 integrate
.. //depot/projects/hammer/sys/amd64/include/pcb.h#24 integrate
.. //depot/projects/hammer/sys/arm/arm/bcopyinout.S#7 integrate
.. //depot/projects/hammer/sys/arm/arm/bcopyinout_xscale.S#5 integrate
.. //depot/projects/hammer/sys/arm/arm/busdma_machdep.c#16 integrate
.. //depot/projects/hammer/sys/arm/arm/dump_machdep.c#2 integrate
.. //depot/projects/hammer/sys/arm/arm/elf_trampoline.c#1 branch
.. //depot/projects/hammer/sys/arm/arm/in_cksum.c#5 integrate
.. //depot/projects/hammer/sys/arm/arm/in_cksum_arm.S#6 integrate
.. //depot/projects/hammer/sys/arm/arm/inckern.S#1 branch
.. //depot/projects/hammer/sys/arm/arm/intr.c#10 integrate
.. //depot/projects/hammer/sys/arm/arm/locore.S#11 integrate
.. //depot/projects/hammer/sys/arm/arm/machdep.c#13 integrate
.. //depot/projects/hammer/sys/arm/arm/mem.c#2 integrate
.. //depot/projects/hammer/sys/arm/arm/pmap.c#25 integrate
.. //depot/projects/hammer/sys/arm/arm/support.S#8 integrate
.. //depot/projects/hammer/sys/arm/arm/swtch.S#15 integrate
.. //depot/projects/hammer/sys/arm/arm/vm_machdep.c#17 integrate
.. //depot/projects/hammer/sys/arm/conf/IQ31244#9 integrate
.. //depot/projects/hammer/sys/arm/include/in_cksum.h#3 integrate
.. //depot/projects/hammer/sys/arm/include/md_var.h#3 integrate
.. //depot/projects/hammer/sys/arm/include/pmap.h#11 integrate
.. //depot/projects/hammer/sys/arm/sa11x0/assabet_machdep.c#9 integrate
.. //depot/projects/hammer/sys/arm/xscale/i80321/files.i80321#3 integrate
.. //depot/projects/hammer/sys/arm/xscale/i80321/i80321_aau.c#1 branch
.. //depot/projects/hammer/sys/arm/xscale/i80321/i80321_dma.c#1 branch
.. //depot/projects/hammer/sys/arm/xscale/i80321/i80321_timer.c#5 integrate
.. //depot/projects/hammer/sys/arm/xscale/i80321/iq31244_machdep.c#13 integrate
.. //depot/projects/hammer/sys/arm/xscale/i80321/iq80321.c#8 integrate
.. //depot/projects/hammer/sys/boot/pc98/loader/main.c#7 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#32 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#32 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#30 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#30 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#30 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#34 integrate
.. //depot/projects/hammer/sys/compat/linux/linux_socket.c#21 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_fcntl.c#9 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_ioctl.c#7 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_ipc.c#9 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_misc.c#22 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_signal.c#12 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_stat.c#9 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_stream.c#18 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_termios.c#6 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_ttold.c#7 integrate
.. //depot/projects/hammer/sys/compat/svr4/svr4_util.h#6 integrate
.. //depot/projects/hammer/sys/conf/Makefile.arm#10 integrate
.. //depot/projects/hammer/sys/conf/NOTES#99 integrate
.. //depot/projects/hammer/sys/conf/files#125 integrate
.. //depot/projects/hammer/sys/conf/options#85 integrate
.. //depot/projects/hammer/sys/ddb/db_command.c#15 integrate
.. //depot/projects/hammer/sys/ddb/db_output.c#8 integrate
.. //depot/projects/hammer/sys/dev/bge/if_bge.c#53 integrate
.. //depot/projects/hammer/sys/dev/em/if_em.c#46 integrate
.. //depot/projects/hammer/sys/dev/em/if_em.h#23 integrate
.. //depot/projects/hammer/sys/dev/en/if_en_pci.c#11 integrate
.. //depot/projects/hammer/sys/dev/fb/creator.c#9 integrate
.. //depot/projects/hammer/sys/dev/fb/fbreg.h#12 integrate
.. //depot/projects/hammer/sys/dev/fb/gfb.c#6 integrate
.. //depot/projects/hammer/sys/dev/fb/machfb.c#4 integrate
.. //depot/projects/hammer/sys/dev/fb/s3_pci.c#7 integrate
.. //depot/projects/hammer/sys/dev/fb/tga.c#6 integrate
.. //depot/projects/hammer/sys/dev/fb/vga.c#21 integrate
.. //depot/projects/hammer/sys/dev/firewire/00README#2 integrate
.. //depot/projects/hammer/sys/dev/firewire/if_fwe.c#24 integrate
.. //depot/projects/hammer/sys/dev/firewire/if_fwip.c#8 integrate
.. //depot/projects/hammer/sys/dev/fxp/if_fxp.c#52 integrate
.. //depot/projects/hammer/sys/dev/if_ndis/if_ndis.c#40 integrate
.. //depot/projects/hammer/sys/dev/ixgb/README#2 integrate
.. //depot/projects/hammer/sys/dev/ixgb/if_ixgb.c#13 integrate
.. //depot/projects/hammer/sys/dev/ixgb/if_ixgb.h#8 integrate
.. //depot/projects/hammer/sys/dev/lge/if_lge.c#27 integrate
.. //depot/projects/hammer/sys/dev/lge/if_lgereg.h#5 integrate
.. //depot/projects/hammer/sys/dev/lmc/if_lmc.h#1 branch
.. //depot/projects/hammer/sys/dev/mii/acphy.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/amphy.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/brgphy.c#18 integrate
.. //depot/projects/hammer/sys/dev/mii/ciphy.c#3 integrate
.. //depot/projects/hammer/sys/dev/mii/dcphy.c#11 integrate
.. //depot/projects/hammer/sys/dev/mii/exphy.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/lxtphy.c#9 integrate
.. //depot/projects/hammer/sys/dev/mii/mii_physubr.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/miivar.h#2 integrate
.. //depot/projects/hammer/sys/dev/mii/nsgphy.c#10 integrate
.. //depot/projects/hammer/sys/dev/mii/nsphy.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/pnaphy.c#10 integrate
.. //depot/projects/hammer/sys/dev/mii/pnphy.c#9 integrate
.. //depot/projects/hammer/sys/dev/mii/qsphy.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/rgephy.c#5 integrate
.. //depot/projects/hammer/sys/dev/mii/rlphy.c#9 integrate
.. //depot/projects/hammer/sys/dev/mii/tdkphy.c#9 integrate
.. //depot/projects/hammer/sys/dev/mii/tlphy.c#9 integrate
.. //depot/projects/hammer/sys/dev/mii/ukphy.c#8 integrate
.. //depot/projects/hammer/sys/dev/mii/xmphy.c#10 integrate
.. //depot/projects/hammer/sys/dev/nge/if_nge.c#32 integrate
.. //depot/projects/hammer/sys/dev/pccbb/pccbb_pci.c#11 integrate
.. //depot/projects/hammer/sys/dev/pccbb/pccbbdevid.h#11 integrate
.. //depot/projects/hammer/sys/dev/pci/isa_pci.c#7 integrate
.. //depot/projects/hammer/sys/dev/pci/pci.c#47 integrate
.. //depot/projects/hammer/sys/dev/puc/puc.c#17 integrate
.. //depot/projects/hammer/sys/dev/re/if_re.c#32 integrate
.. //depot/projects/hammer/sys/dev/sound/pci/es137x.c#13 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/ac97.c#16 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/ac97.h#7 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/ac97_patch.c#4 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/ac97_patch.h#4 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/channel.c#14 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/dsp.c#21 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/feeder_volume.c#1 branch
.. //depot/projects/hammer/sys/dev/sound/pcm/mixer.c#17 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/sndstat.c#11 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/sound.c#15 integrate
.. //depot/projects/hammer/sys/dev/sound/pcm/sound.h#17 integrate
.. //depot/projects/hammer/sys/dev/sound/usb/uaudio_pcm.c#13 integrate
.. //depot/projects/hammer/sys/dev/syscons/scgfbrndr.c#8 integrate
.. //depot/projects/hammer/sys/dev/syscons/scmouse.c#10 integrate
.. //depot/projects/hammer/sys/dev/syscons/scvgarndr.c#8 integrate
.. //depot/projects/hammer/sys/dev/syscons/scvidctl.c#8 integrate
.. //depot/projects/hammer/sys/dev/syscons/syscons.c#34 integrate
.. //depot/projects/hammer/sys/dev/syscons/syscons.h#10 integrate
.. //depot/projects/hammer/sys/dev/txp/if_txpreg.h#4 integrate
.. //depot/projects/hammer/sys/dev/usb/if_cdce.c#6 integrate
.. //depot/projects/hammer/sys/dev/usb/usbdevs#63 integrate
.. //depot/projects/hammer/sys/dev/vge/if_vge.c#11 integrate
.. //depot/projects/hammer/sys/dev/watchdog/watchdog.c#3 integrate
.. //depot/projects/hammer/sys/dev/wi/if_wi.c#44 integrate
.. //depot/projects/hammer/sys/dev/wi/if_wivar.h#15 integrate
.. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#33 integrate
.. //depot/projects/hammer/sys/fs/msdosfs/bootsect.h#5 integrate
.. //depot/projects/hammer/sys/fs/msdosfs/msdosfs_vfsops.c#35 integrate
.. //depot/projects/hammer/sys/fs/nwfs/nwfs_vfsops.c#15 integrate
.. //depot/projects/hammer/sys/geom/geom_disk.c#33 integrate
.. //depot/projects/hammer/sys/geom/uzip/g_uzip.c#5 integrate
.. //depot/projects/hammer/sys/gnu/fs/ext2fs/ext2_alloc.c#4 integrate
.. //depot/projects/hammer/sys/i386/i386/apic_vector.s#13 integrate
.. //depot/projects/hammer/sys/i386/i386/local_apic.c#19 integrate
.. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#49 integrate
.. //depot/projects/hammer/sys/i386/i386/trap.c#40 integrate
.. //depot/projects/hammer/sys/i386/i386/vm86.c#9 integrate
.. //depot/projects/hammer/sys/i386/include/smptests.h#6 integrate
.. //depot/projects/hammer/sys/i386/isa/vesa.c#12 integrate
.. //depot/projects/hammer/sys/ia64/ia32/ia32_signal.c#4 integrate
.. //depot/projects/hammer/sys/ia64/ia64/unaligned.c#11 integrate
.. //depot/projects/hammer/sys/isa/pnp.c#7 integrate
.. //depot/projects/hammer/sys/kern/imgact_elf.c#33 integrate
.. //depot/projects/hammer/sys/kern/kern_conf.c#36 integrate
.. //depot/projects/hammer/sys/kern/kern_cpu.c#11 integrate
.. //depot/projects/hammer/sys/kern/kern_exec.c#53 integrate
.. //depot/projects/hammer/sys/kern/kern_jail.c#19 integrate
.. //depot/projects/hammer/sys/kern/kern_kse.c#26 integrate
.. //depot/projects/hammer/sys/kern/kern_lock.c#23 integrate
.. //depot/projects/hammer/sys/kern/kern_mbuf.c#9 integrate
.. //depot/projects/hammer/sys/kern/kern_poll.c#13 integrate
.. //depot/projects/hammer/sys/kern/kern_proc.c#47 integrate
.. //depot/projects/hammer/sys/kern/kern_prot.c#25 integrate
.. //depot/projects/hammer/sys/kern/kern_resource.c#25 integrate
.. //depot/projects/hammer/sys/kern/kern_thread.c#79 integrate
.. //depot/projects/hammer/sys/kern/subr_kdb.c#13 integrate
.. //depot/projects/hammer/sys/kern/subr_rman.c#17 integrate
.. //depot/projects/hammer/sys/kern/subr_turnstile.c#17 integrate
.. //depot/projects/hammer/sys/kern/vfs_bio.c#59 integrate
.. //depot/projects/hammer/sys/kern/vfs_export.c#13 integrate
.. //depot/projects/hammer/sys/kern/vfs_subr.c#93 integrate
.. //depot/projects/hammer/sys/modules/Makefile#87 integrate
.. //depot/projects/hammer/sys/modules/agp/Makefile#9 integrate
.. //depot/projects/hammer/sys/modules/ath/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/ath_rate_amrr/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/ath_rate_onoe/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/ath_rate_sample/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/aue/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/axe/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/bfe/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/bge/Makefile#4 integrate
.. //depot/projects/hammer/sys/modules/bridge/Makefile#4 delete
.. //depot/projects/hammer/sys/modules/cdce/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/cue/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/dc/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/de/Makefile#5 integrate
.. //depot/projects/hammer/sys/modules/dummynet/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/em/Makefile#4 integrate
.. //depot/projects/hammer/sys/modules/fxp/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/geom/geom_uzip/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/hifn/Makefile#4 integrate
.. //depot/projects/hammer/sys/modules/if_ndis/Makefile#5 integrate
.. //depot/projects/hammer/sys/modules/ipw/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/iwi/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/ixgb/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/kue/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/lge/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/lmc/Makefile#1 branch
.. //depot/projects/hammer/sys/modules/mii/Makefile#6 integrate
.. //depot/projects/hammer/sys/modules/ncv/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/ndis/Makefile#9 integrate
.. //depot/projects/hammer/sys/modules/nge/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/nsp/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/pcn/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/ral/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/re/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/rl/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/rue/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/safe/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/sf/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/sis/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/sk/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/snc/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/sound/sound/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/ste/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/stg/Makefile#4 integrate
.. //depot/projects/hammer/sys/modules/ti/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/tl/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/tx/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/txp/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/ubsec/Makefile#4 integrate
.. //depot/projects/hammer/sys/modules/udav/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/ural/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/vge/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/vr/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/vx/Makefile#3 integrate
.. //depot/projects/hammer/sys/modules/wb/Makefile#2 integrate
.. //depot/projects/hammer/sys/modules/xl/Makefile#2 integrate
.. //depot/projects/hammer/sys/net/bridge.c#28 delete
.. //depot/projects/hammer/sys/net/bridge.h#6 delete
.. //depot/projects/hammer/sys/net/if.c#57 integrate
.. //depot/projects/hammer/sys/net/if.h#21 integrate
.. //depot/projects/hammer/sys/net/if_bridge.c#13 integrate
.. //depot/projects/hammer/sys/net/if_ethersubr.c#47 integrate
.. //depot/projects/hammer/sys/net/if_var.h#35 integrate
.. //depot/projects/hammer/sys/net/if_vlan.c#30 integrate
.. //depot/projects/hammer/sys/netgraph/ng_ether.c#21 integrate
.. //depot/projects/hammer/sys/netinet/if_ether.c#26 integrate
.. //depot/projects/hammer/sys/netinet/in.c#19 integrate
.. //depot/projects/hammer/sys/netinet/ip_dummynet.c#34 integrate
.. //depot/projects/hammer/sys/netinet/ip_dummynet.h#13 integrate
.. //depot/projects/hammer/sys/netinet/ip_fw2.c#65 integrate
.. //depot/projects/hammer/sys/netinet/tcp_subr.c#51 integrate
.. //depot/projects/hammer/sys/netsmb/netbios.h#4 integrate
.. //depot/projects/hammer/sys/nfsserver/nfs_srvsock.c#14 integrate
.. //depot/projects/hammer/sys/nfsserver/nfs_srvsubs.c#19 integrate
.. //depot/projects/hammer/sys/pc98/cbus/sio.c#3 integrate
.. //depot/projects/hammer/sys/pci/agp_amd64.c#8 integrate
.. //depot/projects/hammer/sys/pci/agpreg.h#11 integrate
.. //depot/projects/hammer/sys/pci/if_dc.c#50 integrate
.. //depot/projects/hammer/sys/pci/if_rl.c#48 integrate
.. //depot/projects/hammer/sys/pci/if_rlreg.h#19 integrate
.. //depot/projects/hammer/sys/pci/if_sf.c#35 integrate
.. //depot/projects/hammer/sys/pci/if_sis.c#41 integrate
.. //depot/projects/hammer/sys/pci/if_ste.c#39 integrate
.. //depot/projects/hammer/sys/pci/if_ti.c#35 integrate
.. //depot/projects/hammer/sys/pci/if_tireg.h#8 integrate
.. //depot/projects/hammer/sys/pci/if_vr.c#35 integrate
.. //depot/projects/hammer/sys/pci/if_wb.c#30 integrate
.. //depot/projects/hammer/sys/pci/if_xl.c#58 integrate
.. //depot/projects/hammer/sys/powerpc/ofw/ofw_syscons.c#9 integrate
.. //depot/projects/hammer/sys/security/mac_seeotheruids/mac_seeotheruids.c#7 integrate
.. //depot/projects/hammer/sys/sys/buf.h#26 integrate
.. //depot/projects/hammer/sys/sys/kerneldump.h#6 integrate
.. //depot/projects/hammer/sys/sys/mac.h#28 integrate
.. //depot/projects/hammer/sys/sys/mac_policy.h#31 integrate
.. //depot/projects/hammer/sys/sys/proc.h#86 integrate
.. //depot/projects/hammer/sys/sys/refcount.h#1 branch
.. //depot/projects/hammer/sys/sys/resourcevar.h#15 integrate
.. //depot/projects/hammer/sys/sys/rman.h#11 integrate
.. //depot/projects/hammer/sys/sys/ucred.h#9 integrate
.. //depot/projects/hammer/sys/ufs/ffs/ffs_alloc.c#23 integrate
.. //depot/projects/hammer/sys/ufs/ffs/ffs_snapshot.c#37 integrate
.. //depot/projects/hammer/sys/ufs/ffs/ffs_softdep.c#32 integrate
.. //depot/projects/hammer/sys/ufs/ufs/ufs_vnops.c#39 integrate
.. //depot/projects/hammer/sys/vm/vm_zeroidle.c#20 integrate
.. //depot/projects/hammer/tools/regression/geom_uzip/Makefile#2 integrate
.. //depot/projects/hammer/tools/regression/geom_uzip/test-1.img.gz.uue#2 delete
.. //depot/projects/hammer/tools/regression/geom_uzip/test-1.img.uzip.uue#1 branch
.. //depot/projects/hammer/tools/regression/geom_uzip/test-1.sh#2 integrate
.. //depot/projects/hammer/tools/regression/geom_uzip/test-2.sh#2 integrate
.. //depot/projects/hammer/tools/tools/nanobsd/nanobsd.sh#7 integrate
.. //depot/projects/hammer/usr.bin/lorder/Makefile#2 integrate
.. //depot/projects/hammer/usr.bin/mt/mt.1#9 integrate
.. //depot/projects/hammer/usr.bin/netstat/if.c#11 integrate
.. //depot/projects/hammer/usr.bin/netstat/main.c#17 integrate
.. //depot/projects/hammer/usr.bin/netstat/netstat.1#12 integrate
.. //depot/projects/hammer/usr.bin/netstat/netstat.h#12 integrate
.. //depot/projects/hammer/usr.sbin/Makefile#69 integrate
.. //depot/projects/hammer/usr.sbin/lmcconfig/Makefile#1 branch
.. //depot/projects/hammer/usr.sbin/lmcconfig/lmcconfig.8#1 branch
.. //depot/projects/hammer/usr.sbin/lmcconfig/lmcconfig.c#1 branch
.. //depot/projects/hammer/usr.sbin/ntp/ntptrace/Makefile#5 integrate
.. //depot/projects/hammer/usr.sbin/pccard/Makefile#2 integrate
.. //depot/projects/hammer/usr.sbin/pmccontrol/pmccontrol.c#5 integrate
.. //depot/projects/hammer/usr.sbin/syslogd/syslogd.c#24 integrate
.. //depot/projects/hammer/usr.sbin/watchdogd/watchdogd.c#9 integrate
Differences ...
==== //depot/projects/hammer/ObsoleteFiles.inc#7 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.15 2005/09/11 18:19:42 netchild Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.17 2005/09/28 09:19:17 mlaier Exp $
#
# This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
# directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,9 @@
# The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
#
+# 20050927: bridge(4) replaced by if_bridge(4)
+OLD_FILES+=usr/include/net/bridge.h
+OLD_FILES+=usr/share/man/man4/bridge.4.gz
# 20050831: not implemented
OLD_FILES+=usr/share/man/man3/getino.3.gz
OLD_FILES+=usr/share/man/man3/putino.3.gz
==== //depot/projects/hammer/UPDATING#84 (text+ko) ====
@@ -21,6 +21,14 @@
developers choose to disable these features on build machines
to maximize performance.
+20051001:
+ kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
+ to turn polling(4) on your interfaces.
+
+20050927:
+ The old bridge(4) implementation was retired. The new
+ if_bridge(4) serves as a full functional replacement.
+
20050722:
The ai_addrlen of a struct addrinfo was changed to a socklen_t
to conform to POSIX-2001. This change broke an ABI
@@ -411,4 +419,4 @@
Contact Warner Losh if you have any questions about your use of
this document.
-$FreeBSD: src/UPDATING,v 1.420 2005/09/09 15:59:17 obrien Exp $
+$FreeBSD: src/UPDATING,v 1.422 2005/10/01 20:53:51 glebius Exp $
==== //depot/projects/hammer/bin/rm/rm.1#12 (text+ko) ====
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)rm.1 8.5 (Berkeley) 12/5/94
-.\" $FreeBSD: src/bin/rm/rm.1,v 1.36 2005/02/09 17:37:39 ru Exp $
+.\" $FreeBSD: src/bin/rm/rm.1,v 1.38 2005/09/30 02:12:15 dougb Exp $
.\"
-.Dd October 28, 2004
+.Dd September 29, 2005
.Dt RM 1
.Os
.Sh NAME
@@ -88,6 +88,10 @@
Overwrite regular files before deleting them.
Files are overwritten three times, first with the byte pattern 0xff,
then 0x00, and then 0xff again, before they are deleted.
+Specifying this flag for a read only file will cause
+.Nm
+to generate an error message and exit.
+The file wil not be removed or overwritten.
.It Fl R
Attempt to remove the file hierarchy rooted in each file argument.
The
==== //depot/projects/hammer/bin/rm/rm.c#11 (text+ko) ====
@@ -39,7 +39,7 @@
#endif /* not lint */
#endif
#include
-__FBSDID("$FreeBSD: src/bin/rm/rm.c,v 1.52 2004/11/13 04:07:01 jkh Exp $");
+__FBSDID("$FreeBSD: src/bin/rm/rm.c,v 1.53 2005/09/29 20:40:29 dougb Exp $");
#include
#include
@@ -452,11 +452,8 @@
* talking to a terminal, ask. Symbolic links are excluded
* because their permissions are meaningless. Check stdin_ok
* first because we may not have stat'ed the file.
- * Also skip this check if the -P option was specified because
- * we will not be able to overwrite file contents and will
- * barf later.
*/
- if (!stdin_ok || S_ISLNK(sp->st_mode) || Pflag ||
+ if (!stdin_ok || S_ISLNK(sp->st_mode) ||
(!access(name, W_OK) &&
!(sp->st_flags & (SF_APPEND|SF_IMMUTABLE)) &&
(!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid)))
@@ -464,6 +461,10 @@
strmode(sp->st_mode, modep);
if ((flagsp = fflagstostr(sp->st_flags)) == NULL)
err(1, "fflagstostr");
+ if (Pflag)
+ errx(1,
+ "%s: -P was specified, but file is not writable",
+ path);
(void)fprintf(stderr, "override %s%s%s/%s %s%sfor %s? ",
modep + 1, modep[9] == ' ' ? "" : " ",
user_from_uid(sp->st_uid, 0),
==== //depot/projects/hammer/contrib/bc/bc/main.c#3 (text+ko) ====
@@ -26,7 +26,7 @@
Western Washington University
Bellingham, WA 98226-9062
-$FreeBSD: src/contrib/bc/bc/main.c,v 1.6 2004/02/17 00:53:50 ache Exp $
+$FreeBSD: src/contrib/bc/bc/main.c,v 1.7 2005/09/27 18:52:17 brooks Exp $
*************************************************************************/
@@ -65,7 +65,7 @@
printf ("usage: %s [options] [file ...]\n%s%s%s%s%s%s%s", progname,
" -h --help print this usage and exit\n",
" -i --interactive force interactive mode\n",
- " -l --mathlib use the predefine math routnes\n",
+ " -l --mathlib use the predefine math routines\n",
" -q --quiet don't print initial banner\n",
" -s --standard non-standard bc constructs are errors\n",
" -w --warn warn about non-standard bc constructs\n",
==== //depot/projects/hammer/contrib/cpio/COPYING#2 (text+ko) ====
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -279,7 +279,7 @@
END OF TERMS AND CONDITIONS
- Appendix: How to Apply These Terms to Your New Programs
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -291,7 +291,7 @@
the "copyright" line and a pointer to where the full notice is found.
- Copyright (C) 19yy
+ Copyright (C)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -305,14 +305,15 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
==== //depot/projects/hammer/contrib/cpio/ChangeLog#2 (text+ko) ====
@@ -1,3 +1,433 @@
+2004-12-20 Sergey Poznyakoff
+
+ Released version 2.6. Sources up to this point are tagged
+ release_2_6.
+
+ * configure.ac: Raised version number to 2.6
+ * NEWS: Likewise
+ * bootstrap (update_po): Give -r to wget. Always remove index.html
+ Ignore alloca-opt module (it duplicates alloca)
+
+2004-11-23 Sergey Poznyakoff
+
+ * src/main.c (enum cpio_options): Bugfix: Initialize first enum
+ value to 256.
+ * bootstrap: Add unlocked-io
+ * headers/argp.h: Removed
+ * headers/getopt.h: Removed
+ * headers/Makefile.am: Updated
+
+2004-10-14 Sergey Poznyakoff
+
+ * src/copyout.c: Add trailing slash to directory names in
+ ustar format.
+ * src/makepath.c: Removed redeclaration of error().
+ * src/tar.c: Fixed deviations from POSIX.1-1988:
+ Properly split long file names. Fill in octal fields with zeros,
+ not spaces. Save only protection modes, not the whole mode.
+
+ * NEWS: Updated
+
+2004-09-08 Sergey Poznyakoff
+
+ * NEWS: Updated
+ * TODO: Updated
+ * bootstrap: Install po files by default
+ * po/LINGUAS: Removed. File is generated automatically
+ * po/.cvsignore: Updated
+ * src/copyin.c: Implemented --to-stdout option
+ * src/copyout.c: Display the annoying 'truncating inode number'
+ message only if the user wishes it.
+ * src/extern.h: Added new globals.
+ * src/global.c: Likewise.
+
+ * src/main.c: Added support for --to-stdout and --warning options
+ * src/tar.c (read_in_tar_header): Use warn_junk_bytes()
+ * src/util.c (create_all_directories): Use dir_name.
+
+ * configure.ac: Added support for the test suite
+ * Makefile.am: Likewise
+
+ * tests: New directory
+ * tests/.cvsignore: New file
+ * tests/Makefile.am: New file
+ * tests/testsuite.at: New file
+ * tests/inout.at: New file
+ * tests/version.at: New file
+ * tests/atlocal.in: New file
+
+2004-09-07 Sergey Poznyakoff
+
+ * src/main.c (process_args): Bugfix. Allow extra arguments
+ in copy_in mode.
+ * src/util.c (write_nuls_to_file): Use buffered I/O. All
+ callers changed. Thanks Matthew Braithwaite
+ for noticing.
+ Bugfix: extra_bytes was mistakenly used instead of blocks.
+ * THANKS: Added Matthew Braithwaite.
+
+2004-09-06 Sergey Poznyakoff
+
+ Started merging with tar into paxutils. Sources before
+ this point are tagged alpha-2_50_90.
+
+ * bootstrap: New file
+ * autogen.sh: Removed
+ * Makefile.am: Updated
+ * NEWS: Updated
+ * README-alpha: Updated
+ * configure.ac: Updated
+ * doc/cpio.1: Updated
+ * po/POTFILES.in: Updated
+
+ * src/Makefile.am: Updated
+ * src/error.c: Removed
+ * src/dirname.c: Likewise
+ * src/xmalloc.c: Likewise
+ * src/stripslash.c: Likewise
+ * src/xstrdup.c
+ * src/gettext.h: Likewise
+ * src/system.h: Likewise
+ * src/rmt.h: Likewise
+ * src/getopt.c: Likewise
+ * src/getopt1.c: Likewise
+ * src/bcopy.c: Likewise
+ * src/fnmatch.c: Likewise
+ * src/mkdir.c: Likewise
+ * src/strdup.c: Likewise
+ * src/argp-ba.c: Likewise
+ * src/argp-eexst.c: Likewise
+ * src/argp-fmtstream.c: Likewise
+ * src/argp-fs-xinl.c: Likewise
+ * src/argp-help.c: Likewise
+ * src/argp-parse.c: Likewise
+ * src/argp-pv.c: Likewise
+ * src/argp-pvh.c: Likewise
+ * src/argp-xinl.c: Likewise
+ * src/pin.c: Likewise
+ * src/alloca.c: Likewise
+ * src/argmatch.c: Likewise
+ * src/rmt.c: Likewise
+ * src/rtapelib.c: Likewise
+ * src/strerror.c: Likewise
+
+ * src/copyin.c: Switched to ANSI C (sigh)
+ * src/copyout.c: Likewise
+ * src/copypass.c: Likewise
+ * src/defer.c: Likewise
+ * src/defer.h: Likewise
+ * src/dstring.c: Likewise
+ * src/dstring.h: Likewise
+ * src/extern.h: Likewise
+ * src/filemode.c: Likewise
+ * src/global.c: Likewise
+ * src/idcache.c: Likewise
+ * src/main.c: Likewise
+ * src/makepath.c: Likewise
+ * src/mt.c: Likewise
+ * src/tar.c: Likewise
+ * src/userspec.c: Likewise
+ * src/util.c: Likewise
+
+ * lib: New directory
+ * lib/Makefile.tmpl: New file
+ * lib/bcopy.c: Moved from ../src
+ * lib/mkdir.c: Likewise.
+ * lib/strdup.c: Likewise.
+ * lib/strerror.c: Likewise.
+
+2004-08-30 Sergey Poznyakoff
+
+ * Makefile.am: Added headers to SUBDIRS.
+ * configure.ac: Check for AC_SYS_LARGEFILE.
+ Use AC_CONFIG_LINKS to provide for fnmatch.h and getopt.h on
+ the systems where these are missing
+ Check for argp and replace it if necessary.
+ * src/Makefile.am: Updated
+ * src/fnmatch.h: Moved to headers/
+ * src/getopt.h: Likewise.
+ * src/main.c: Option parsing rewritten using argp. Improved
+ option consistency checking.
+ * src/rmt.c: Include getopt.h
+
+ * src/argp-ba.c: New file
+ * src/argp-eexst.c: New file
+ * src/argp-fmtstream.c: New file
+ * src/argp-fs-xinl.c: New file
+ * src/argp-help.c: New file
+ * src/argp-parse.c: New file
+ * src/argp-pv.c: New file
+ * src/argp-pvh.c: New file
+ * src/argp-xinl.c: New file
+ * src/pin.c: New file
+
+ * headers: New directory
+ * headers/Makefile.am: New file
+ * headers/getopt.h: New file
+ * headers/argp.h: New file
+ * headers/fnmatch.h: New file
+ * headers/.cvsignore: New file
+
+2004-03-02 Sergey Poznyakoff
+
+ * src/util.c (copy_files_disk_to_disk): Bugfix. If a file
+ grew n bytes in copy-pass mode, these n bytes got prepended
+ to the contents of all subsequent files. Fix provided by
+ Holger Fleischmann
+ * THANKS: Added Holger Fleischmann.
+
+2004-02-27 Sergey Poznyakoff
+
+ * src/makepath.c: Remove unneded typedefs
+
+ * src/copyin.c: Remove __MSDOS__ conditionals
+ * src/copyout.c: Likewise
+ * src/copypass.c: Likewise
+ * src/main.c: Likewise
+ * src/tar.c: Likewise
+ * src/util.c: Likewise
+
+2004-02-27 Sergey Poznyakoff
+
+ Changed from flat to deep package layout. Added the framework
+ for NLS support.
+
+ * .cvsignore: Updated
+ * Makefile.am: Updated
+ * configure.ac: Updated
+ * NEWS: Updated
+ * README-alpha: Updated
+ * THANKS: Updated
+
+ * autogen.sh: New file
+
+ * alloca.c: Moved to src
+ * argmatch.c: Likewise
+ * bcopy.c: Likewise
+ * dstring.h: Likewise
+ * copyin.c: Likewise
+ * copyout.c: Likewise
+ * copypass.c: Likewise
+ * cpio.h: Likewise
+ * cpiohdr.h: Likewise
+ * defer.c: Likewise
+ * defer.h: Likewise
+ * dirname.c: Likewise
+ * dstring.c: Likewise
+ * dstring.h: Likewise
+ * error.c: Likewise
+ * extern.h: Likewise
+ * filemode.c: Likewise
+ * filetypes.h: Likewise
+ * fnmatch.c: Likewise
+ * fnmatch.h: Likewise
+ * getopt.c: Likewise
+ * getopt.h: Likewise
+ * getopt1.c: Likewise
+ * global.c: Likewise
+ * idcache.c: Likewise
+ * main.c: Likewise
+ * makepath.c: Likewise
+ * mkdir.c: Likewise
+ * mt.c: Likewise
+ * rmt.c: Likewise
+ * rmt.h: Likewise
+ * rtapelib.c: Likewise
+ * safe-stat.h: Likewise
+ * strdup.c: Likewise
+ * strerror.c: Likewise
+ * stripslash.c: Likewise
+ * system.h: Likewise
+ * tar.c: Likewise
+ * tar.h: Likewise
+ * tarhdr.h: Likewise
+ * userspec.c: Likewise
+ * util.c: Likewise
+ * xmalloc.c: Likewise
+ * xstrdup.c: Likewise
+
+ * cpio.1: Moved to doc
+ * cpio.texi: Likewise
+ * mt.1: Likewise
+
+ * src: New directory
+ * src/.cvsignore: New file
+ * src/Makefile.am: Likewise
+ * src/alloca.c: Likewise
+ * src/argmatch.c: Likewise
+ * src/bcopy.c: Likewise
+ * src/copyin.c: Likewise
+ * src/copyout.c: Likewise
+ * src/copypass.c: Likewise
+ * src/cpio.h: Likewise
+ * src/cpiohdr.h: Likewise
+ * src/defer.c: Likewise
+ * src/defer.h: Likewise
+ * src/dirname.c: Likewise
+ * src/dstring.c: Likewise
+ * src/dstring.h: Likewise
+ * src/error.c: Likewise
+ * src/extern.h: Likewise
+ * src/filemode.c: Likewise
+ * src/filetypes.h: Likewise
+ * src/fnmatch.c: Likewise
+ * src/fnmatch.h: Likewise
+ * src/getopt.c: Likewise
+ * src/getopt.h: Likewise
+ * src/getopt1.c: Likewise
+ * src/gettext.h: Likewise
+ * src/global.c: Likewise
+ * src/idcache.c: Likewise
+ * src/main.c: Likewise
+ * src/makepath.c: Likewise
+ * src/mkdir.c: Likewise
+ * src/mt.c: Likewise
+ * src/rmt.c: Likewise
+ * src/rmt.h: Likewise
+ * src/rtapelib.c: Likewise
+ * src/safe-stat.h: Likewise
+ * src/strdup.c: Likewise
+ * src/strerror.c: Likewise
+ * src/stripslash.c: Likewise
+ * src/system.h: Likewise
+ * src/tar.c: Likewise
+ * src/tar.h: Likewise
+ * src/tarhdr.h: Likewise
+ * src/userspec.c: Likewise
+ * src/util.c: Likewise
+ * src/xmalloc.c: Likewise
+ * src/xstrdup.c: Likewise
+
+ * doc: New directory
+ * doc/.cvsignore: New file
+ * doc/Makefile.am: New file
+ * doc/cpio.1: New file
+ * doc/cpio.info: New file
+ * doc/cpio.texi: New file
+ * doc/mt.1: New file
+
+ * po: New directory
+ * po/.cvsignore: New file
+ * po/LINGUAS: New file
+ * po/Makevars: New file
+ * po/POTFILES.in: New file
+
+2003-11-28 Sergey Poznyakoff
+
+ * configure.ac: Added various checks
+ * Makefile.am (rmt_LDADD): Added.
+ * error.c: Updated
>>> TRUNCATED FOR MAIL (1000 lines) <<<
From owner-p4-projects@FreeBSD.ORG Tue Oct 4 11:51:54 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id B49A316A421; Tue, 4 Oct 2005 11:51:53 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id 8781F16A41F
for ; Tue, 4 Oct 2005 11:51:53 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 6407F43D75
for ; Tue, 4 Oct 2005 11:51:47 +0000 (GMT)
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j94BplQ2090183
for ; Tue, 4 Oct 2005 11:51:47 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j94BplJt090180
for perforce@freebsd.org; Tue, 4 Oct 2005 11:51:47 GMT
(envelope-from bb+lists.freebsd.perforce@cyrus.watson.org)
Date: Tue, 4 Oct 2005 11:51:47 GMT
Message-Id: <200510041151.j94BplJt090180@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
bb+lists.freebsd.perforce@cyrus.watson.org using -f
From: Robert Watson
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84779 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Tue, 04 Oct 2005 11:51:54 -0000
http://perforce.freebsd.org/chv.cgi?CH=84779
Change 84779 by rwatson@rwatson_peppercorn on 2005/10/04 11:51:17
A number of changes to audit.h and audit_private.h:
- Annotate each to indicate what goes in them and why.
- #error out if they are included in non-kernel code, and remove
#ifdef _KERNEL sections.
- Additional comments relating to types, defines, data structures,
functions, etc, in audit_private.h.
- Minor style tweaks.
Affected files ...
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#3 edit
.. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#5 edit
Differences ...
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#3 (text+ko) ====
@@ -21,10 +21,17 @@
* @APPLE_LICENSE_HEADER_END@
*/
+/*
+ * This header includes function prototypes and type definitions that are
+ * necessary for the kernel as a whole to interact with the audit subsystem.
+ */
+
#ifndef _BSM_AUDIT_KERNEL_H
#define _BSM_AUDIT_KERNEL_H
-#ifdef _KERNEL
+#ifndef _KERNEL
+#error "no user-serviceable parts inside"
+#endif
#include
@@ -183,9 +190,8 @@
* possible that an audit record was begun before auditing was turned off.
*/
#define AUDIT_SYSCALL_EXIT(error, td) do { \
- if (audit_enabled | (td->td_ar != NULL)) { \
+ if (audit_enabled | (td->td_ar != NULL)) \
audit_syscall_exit(error, td); \
- } \
} while (0)
/*
@@ -217,6 +223,4 @@
#endif /* AUDIT */
-#endif /* _KERNEL */
-
#endif /* !_BSM_AUDIT_KERNEL_H */
==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#5 (text+ko) ====
@@ -21,25 +21,47 @@
* @APPLE_LICENSE_HEADER_END@
*/
+/*
+ * This include file contains function prototypes and type definitions used
+ * within the audit implementation.
+ */
+
#ifndef _BSM_AUDIT_PRIVATE_H
#define _BSM_AUDIT_PRIVATE_H
+#ifndef _KERNEL
+#error "no user-serviceable parts inside"
+#endif
+
#include
#include
#include
+#ifdef MALLOC_DECLARE
+MALLOC_DECLARE(M_AUDIT);
+#endif
+
+/*
+ * Success/failure conditions for the conversion of a kernel audit record to
+ * BSM format.
+ */
#define BSM_SUCCESS 0
#define BSM_FAILURE 1
#define BSM_NOAUDIT 2
-#ifdef MALLOC_DECLARE
-MALLOC_DECLARE(M_AUDIT);
-#endif
-
-/* Defines for the kernel audit record k_ar_commit field */
+/*
+ * Defines for the kernel audit record k_ar_commit field.
+ */
#define AR_COMMIT_KERNEL 0x00000001U
#define AR_COMMIT_USER 0x00000010U
+/*
+ * Audit data is generated as a stream of struct audit_record structures,
+ * linked by struct kaudit_record, and contain storage for possible audit so
+ * that it will not need to be allocated during the processing of a system
+ * call, both improving efficiency and avoiding sleeping at untimely moments.
+ * This structure is converted to BSM format before being written to disk.
+ */
struct vnode_au_info {
mode_t vn_mode;
uid_t vn_uid;
@@ -169,19 +191,25 @@
TAILQ_ENTRY(kaudit_record) k_q;
};
+/*
+ * Functions to manage the allocation, release, and commit of kernel audit
+ * records.
+ */
void audit_abort(struct kaudit_record *ar);
void audit_commit(struct kaudit_record *ar, int error,
int retval);
-
struct kaudit_record *audit_new(int event, struct thread *td);
+/*
+ * Functions relating to the conversion of internal kernel audit records to
+ * the BSM file format.
+ */
int kaudit_to_bsm(struct kaudit_record *kar,
- struct au_record **pau);
-
+ struct au_record **pau);
int bsm_rec_verify(void *rec);
/*
- * Kernel versions of the BSM audit record functions.
+ * Kernel versions of the libbsm audit record functions.
*/
struct au_record *kau_open(void);
int kau_write(struct au_record *rec, token_t *m);
@@ -190,7 +218,9 @@
void kau_free(struct au_record *rec);
void kau_init(void);
-
+/*
+ * Return values for pre-selection and post-selection decisions.
+ */
#define AU_PRS_SUCCESS 1
#define AU_PRS_FAILURE 2
#define AU_PRS_BOTH (AU_PRS_SUCCESS|AU_PRS_FAILURE)
@@ -201,7 +231,6 @@
#define AUDIT_OPEN_FLAGS FWRITE | O_APPEND
#define AUDIT_CLOSE_FLAGS FWRITE | O_APPEND
-#ifdef _KERNEL
#include
#include
#include
@@ -242,6 +271,4 @@
void audit_shutdown(void *arg, int howto);
void audit_rotate_vnode(struct ucred *cred, struct vnode *vp);
-#endif /* _KERNEL */
-
#endif /* ! _BSM_AUDIT_PRIVATE_H */
From owner-p4-projects@FreeBSD.ORG Tue Oct 4 12:03:13 2005
Return-Path:
X-Original-To: p4-projects@freebsd.org
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 2FE8D16A421; Tue, 4 Oct 2005 12:03:12 +0000 (GMT)
X-Original-To: perforce@freebsd.org
Delivered-To: perforce@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
by hub.freebsd.org (Postfix) with ESMTP id DD6BB16A41F
for ; Tue, 4 Oct 2005 12:03:11 +0000 (GMT)
(envelope-from soc-bushman@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115])
by mx1.FreeBSD.org (Postfix) with ESMTP id 42C7643D55
for ; Tue, 4 Oct 2005 12:03:02 +0000 (GMT)
(envelope-from soc-bushman@freebsd.org)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j94C32Gk090642
for ; Tue, 4 Oct 2005 12:03:02 GMT
(envelope-from soc-bushman@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j94C31fm090639
for perforce@freebsd.org; Tue, 4 Oct 2005 12:03:01 GMT
(envelope-from soc-bushman@freebsd.org)
Date: Tue, 4 Oct 2005 12:03:01 GMT
Message-Id: <200510041203.j94C31fm090639@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
soc-bushman@freebsd.org using -f
From: soc-bushman
To: Perforce Change Reviews
Cc:
Subject: PERFORCE change 84780 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help: