From owner-p4-projects@FreeBSD.ORG Sun Oct 16 04:35:50 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 5395316A422; Sun, 16 Oct 2005 04:35: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 9F6C016A420 for ; Sun, 16 Oct 2005 04:35:48 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4E15443D46 for ; Sun, 16 Oct 2005 04:35:48 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9G4ZmVH019419 for ; Sun, 16 Oct 2005 04:35:48 GMT (envelope-from gnn@neville-neil.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9G4Zl4M019416 for perforce@freebsd.org; Sun, 16 Oct 2005 04:35:47 GMT (envelope-from gnn@neville-neil.com) Date: Sun, 16 Oct 2005 04:35:47 GMT Message-Id: <200510160435.j9G4Zl4M019416@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gnn@neville-neil.com using -f From: "George V. Neville-Neil" To: Perforce Change Reviews Cc: Subject: PERFORCE change 85357 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, 16 Oct 2005 04:35:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=85357 Change 85357 by gnn@gnn_laptop_fast_ipsec on 2005/10/16 04:35:01 Clean up my view wrt the HEAD and the fast_ipsec branch Affected files ... .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/i386/svr4/svr4_machdep.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/kern/subr_param.c#3 integrate Differences ... ==== //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#3 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.75 2005/09/22 11:20:33 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.76 2005/10/16 01:55:35 sobomax Exp $"); #include #include @@ -60,20 +60,22 @@ /* 0x12 is reserved for boot programs. */ /* 0x13 is reserved for boot programs. */ #define RBX_PAUSE 0x14 /* -p */ -#define RBX_NOINTR 0x1c /* -n */ /* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ #define RBX_DUAL 0x1d /* -D */ /* 0x1f is reserved for log2(RB_BOOTINFO). */ +/* group of internal options below */ +#define RBX_NOINTR 0x20 /* -n */ +#define RBX_QUIET 0x21 /* -q */ /* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ -#define RBX_MASK 0x2011ffff +#define RBX_MASK 0xffffffff #define PATH_CONFIG "/boot.config" #define PATH_BOOT3 "/boot/loader" #define PATH_KERNEL "/boot/kernel/kernel" #define ARGS 0x900 -#define NOPT 11 +#define NOPT 12 #define NDEV 3 #define MEM_BASE 0x12 #define MEM_EXT 0x15 @@ -88,9 +90,11 @@ #define TYPE_MAXHARD TYPE_DA #define TYPE_FD 2 +#define OPT_CHECK(opt) ((opts >> (opt)) & 0x1) + extern uint32_t _end; -static const char optstr[NOPT] = "DhaCgmnprsv"; /* Also 'P', 'S' */ +static const char optstr[NOPT] = "DhaCgmnpqrsv"; /* Also 'P', 'S' */ static const unsigned char flags[NOPT] = { RBX_DUAL, RBX_SERIAL, @@ -100,6 +104,7 @@ RBX_MUTE, RBX_NOINTR, RBX_PAUSE, + RBX_QUIET, RBX_DFLTROOT, RBX_SINGLE, RBX_VERBOSE @@ -119,7 +124,7 @@ } dsk; static char cmd[512]; static char kname[1024]; -static uint32_t opts; +static uint64_t opts; static int comspeed = SIOSPD; static struct bootinfo bootinfo; static uint8_t ioctrl = IO_KEYBOARD; @@ -158,7 +163,7 @@ #include "ufsread.c" -static int +static inline int xfsread(ino_t inode, void *buf, size_t nbyte) { if ((size_t)fsread(inode, buf, nbyte) != nbyte) { @@ -244,7 +249,8 @@ if (*cmd) { if (parse()) autoboot = 0; - printf("%s: %s", PATH_CONFIG, cmd); + if (!OPT_CHECK(RBX_QUIET)) + printf("%s: %s", PATH_CONFIG, cmd); /* Do not process this command twice */ *cmd = 0; } @@ -265,16 +271,17 @@ /* Present the user with the boot2 prompt. */ for (;;) { - printf("\nFreeBSD/i386 boot\n" - "Default: %u:%s(%u,%c)%s\n" - "boot: ", - dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit, - 'a' + dsk.part, kname); + if (!autoboot || !OPT_CHECK(RBX_QUIET)) + printf("\nFreeBSD/i386 boot\n" + "Default: %u:%s(%u,%c)%s\n" + "boot: ", + dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit, + 'a' + dsk.part, kname); if (ioctrl & IO_SERIAL) sio_flush(); if (!autoboot || keyhit(5*SECOND)) getstr(); - else + else if (!autoboot || !OPT_CHECK(RBX_QUIET)) putchar('\n'); autoboot = 0; if (parse()) @@ -293,12 +300,12 @@ static void load(void) { - union { + static union { struct exec ex; Elf32_Ehdr eh; } hdr; - Elf32_Phdr ep[2]; - Elf32_Shdr es[2]; + static Elf32_Phdr ep[2]; + static Elf32_Shdr es[2]; caddr_t p; ino_t ino; uint32_t addr, x; @@ -380,7 +387,7 @@ bootinfo.bi_esymtab = VTOP(p); bootinfo.bi_kernelname = VTOP(kname); bootinfo.bi_bios_dev = dsk.drive; - __exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK), + __exec((caddr_t)addr, RB_BOOTINFO | (uint32_t)(opts & RBX_MASK), MAKEBOOTDEV(dev_maj[dsk.type], 0, dsk.slice, dsk.unit, dsk.part), 0, 0, 0, VTOP(&bootinfo)); } @@ -407,7 +414,7 @@ if (*(uint8_t *)PTOV(0x496) & 0x10) { cp = "yes"; } else { - opts |= 1 << RBX_DUAL | 1 << RBX_SERIAL; + opts |= (uint64_t)1 << RBX_DUAL | (uint64_t)1 << RBX_SERIAL; cp = "no"; } printf("Keyboard: %s\n", cp); @@ -425,10 +432,10 @@ for (i = 0; c != optstr[i]; i++) if (i == NOPT - 1) return -1; - opts ^= 1 << flags[i]; + opts ^= (uint64_t)1 << flags[i]; } - ioctrl = opts & 1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) : - opts & 1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD; + ioctrl = opts & (uint64_t)1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) : + opts & (uint64_t)1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD; if (ioctrl & IO_SERIAL) sio_init(115200 / comspeed); } else { @@ -596,7 +603,8 @@ { static unsigned c = 0x2d5c7c2f; - printf("%c\b", c = c << 8 | c >> 24); + if (!OPT_CHECK(RBX_QUIET)) + printf("%c\b", c = c << 8 | c >> 24); v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS; v86.addr = XREADORG; /* call to xread in boot1 */ v86.es = VTOPSEG(buf); @@ -618,7 +626,7 @@ { uint32_t t0, t1; - if (opts & 1 << RBX_NOINTR) + if (OPT_CHECK(RBX_NOINTR)) return 0; t0 = 0; for (;;) { @@ -645,7 +653,7 @@ static int xgetc(int fn) { - if (opts & 1 << RBX_NOINTR) + if (OPT_CHECK(RBX_NOINTR)) return 0; for (;;) { if (ioctrl & IO_KEYBOARD && getc(1)) ==== //depot/projects/fast_ipsec/src/sys/dev/pccard/pccardvarp.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/pccard/pccardvarp.h,v 1.1 2005/09/20 06:47:33 imp Exp $ + * $FreeBSD: src/sys/dev/pccard/pccardvarp.h,v 1.2 2005/10/16 03:58:06 imp Exp $ */ #ifndef _PCCARD_PCCARDVARP_H @@ -32,7 +32,7 @@ /* pccard itself */ -#define PCCARD_MEM_PAGE_SIZE 4096 +#define PCCARD_MEM_PAGE_SIZE 1024 #define PCCARD_CFE_MWAIT_REQUIRED 0x0001 #define PCCARD_CFE_RDYBSY_ACTIVE 0x0002 ==== //depot/projects/fast_ipsec/src/sys/i386/svr4/svr4_machdep.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/svr4/svr4_machdep.c,v 1.36 2005/10/14 12:43:45 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/svr4/svr4_machdep.c,v 1.37 2005/10/15 22:57:39 davidxu Exp $"); #include #include @@ -413,7 +413,7 @@ void svr4_sendsig(catcher, ksi, mask) sig_t catcher; - ksiginfo_t ksi; + ksiginfo_t *ksi; sigset_t *mask; { register struct thread *td = curthread; ==== //depot/projects/fast_ipsec/src/sys/kern/subr_param.c#3 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_param.c,v 1.72 2005/10/14 19:15:10 kris Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_param.c,v 1.73 2005/10/16 03:58:10 kris Exp $"); #include "opt_param.h" #include "opt_maxusers.h" From owner-p4-projects@FreeBSD.ORG Sun Oct 16 13:17:31 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 7EFE316A423; Sun, 16 Oct 2005 13:17:30 +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 19D1016A41F for ; Sun, 16 Oct 2005 13:17:30 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1F43C43D67 for ; Sun, 16 Oct 2005 13:17:26 +0000 (GMT) (envelope-from soc-chenk@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 j9GDHPcZ062278 for ; Sun, 16 Oct 2005 13:17:25 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9GDHPJp062275 for perforce@freebsd.org; Sun, 16 Oct 2005 13:17:25 GMT (envelope-from soc-chenk@freebsd.org) Date: Sun, 16 Oct 2005 13:17:25 GMT Message-Id: <200510161317.j9GDHPJp062275@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85366 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, 16 Oct 2005 13:17:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=85366 Change 85366 by soc-chenk@soc-chenk_leavemealone on 2005/10/16 13:16:25 fix filehandle leak of readdir Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#19 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#19 (text+ko) ==== @@ -3601,9 +3601,9 @@ struct thread *td = curthread; int err = 0; struct fuse_iov cookediov; + struct fuse_filehandle *fufh; #if DIRECTIO_FOR_DIRS struct filedesc *fdp = td->td_proc->p_fd; - struct fuse_filehandle *fufh; struct file **fpp; struct file *fp = NULL; int found = -1; @@ -3653,6 +3653,12 @@ fufh = fp->f_data; #endif +#if ! DIRECTIO_FOR_DIRS + if ( ! (fufh = get_filehandle(vp, td, cred, FREAD))) { + DEBUG2G("fetching filehandle failed\n"); + return (EIO); + } +#endif /* * In "most cases" this will do and won't have to resize the buffer * (that is, if the daemon has a "tight" view of the dir entries, @@ -3662,20 +3668,18 @@ * (See fuse_dir_buffeater). */ fuse_iov_init(&cookediov, DIRCOOKEDSIZE); -#if DIRECTIO_FOR_DIRS - err = fuse_read_directbackend(vp, fufh, uio, cred, td, FUSE_READDIR, - fuse_dir_buffeater, &cookediov); -#else /* * We tried hard to use bio, but offsety readdir can't be handled * properly that way -- the offset field of fuse_dirents can't be * mapped to an offset of a bio buffer */ - err = fuse_read_directbackend(vp, get_filehandle(vp, td, cred, FREAD), - uio, cred, td, FUSE_READDIR, + err = fuse_read_directbackend(vp, fufh, uio, cred, td, FUSE_READDIR, fuse_dir_buffeater, &cookediov); + fuse_iov_teardown(&cookediov); +#if ! DIRECTIO_FOR_DIRS + fufh->useco--; #endif - fuse_iov_teardown(&cookediov); + return (err); } From owner-p4-projects@FreeBSD.ORG Sun Oct 16 13:18:29 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 13EA816A421; Sun, 16 Oct 2005 13:18:29 +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 CADD516A41F for ; Sun, 16 Oct 2005 13:18:28 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E63E043D5C for ; Sun, 16 Oct 2005 13:18:27 +0000 (GMT) (envelope-from soc-chenk@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 j9GDIRkh062338 for ; Sun, 16 Oct 2005 13:18:27 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9GDIR6m062335 for perforce@freebsd.org; Sun, 16 Oct 2005 13:18:27 GMT (envelope-from soc-chenk@freebsd.org) Date: Sun, 16 Oct 2005 13:18:27 GMT Message-Id: <200510161318.j9GDIR6m062335@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85367 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, 16 Oct 2005 13:18:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=85367 Change 85367 by soc-chenk@soc-chenk_leavemealone on 2005/10/16 13:17:34 add option for prefixing absolute symlinks with mount path Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#20 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#10 edit .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.8#3 edit .. //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#6 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#20 (text+ko) ==== @@ -1801,6 +1801,7 @@ vfs_flagopt(opts, "neglect_shares", &fmnt->mntopts, FUSEFS_NEGLECT_SHARES); vfs_flagopt(opts, "allow_other", &fmnt->mntopts, FUSEFS_DAEMON_CAN_SPY); + vfs_flagopt(opts, "push_symlinks_in", &fmnt->mntopts, FUSEFS_PUSH_SYMLINKS_IN); if (fdata_kick_get(data)) err = ENOTCONN; @@ -3855,8 +3856,19 @@ if ((err = fdisp_simple_putget(&fdi, FUSE_READLINK, vp, curthread, ap->a_cred))) return (err); - - err = uiomove(fdi.answ, fdi.iosize, uio); + + DEBUG("answ %s, push 0x%x, mnton %s\n", + (char *)fdi.answ, + ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_PUSH_SYMLINKS_IN, + vp->v_mount->mnt_stat.f_mntonname); + + if (((char *)fdi.answ)[0] == '/' && + ((struct fuse_mnt_data *)vp->v_mount->mnt_data)->mntopts & FUSEFS_PUSH_SYMLINKS_IN) + err = uiomove(vp->v_mount->mnt_stat.f_mntonname, + strlen(vp->v_mount->mnt_stat.f_mntonname), uio); + + if (! err) + err = uiomove(fdi.answ, fdi.iosize, uio); ticket_drop(fdi.tick); sx_sunlock(fdi.slock); ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#10 (text+ko) ==== @@ -142,13 +142,14 @@ /* (taken from Linux Fuse) */ #define FUSE_MAX_PAGES_PER_REQ 32 -#define FUSEFS_UNPRIVPROCDBG 0x01 -#define FUSEFH_DIRECTIO 0x02 -#define FUSEFS_DAEMON_CAN_SPY 0x04 -#define FUSEFS_NEGLECT_SHARES 0x08 -#define FUSEFS_PRIVATE 0x10 -#define FUSEFS_SECONDARY 0x20 -#define FUSEFS_BUSY 0x40 +#define FUSEFS_UNPRIVPROCDBG 0x01 +#define FUSEFH_DIRECTIO 0x02 +#define FUSEFS_DAEMON_CAN_SPY 0x04 +#define FUSEFS_NEGLECT_SHARES 0x08 +#define FUSEFS_PRIVATE 0x10 +#define FUSEFS_SECONDARY 0x20 +#define FUSEFS_BUSY 0x40 +#define FUSEFS_PUSH_SYMLINKS_IN 0x80 struct fuse_mnt_data { struct cdev *fdev; ==== //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.8#3 (text+ko) ==== @@ -99,6 +99,8 @@ Refuse shared mounting of the daemon. .It Cm neglect_shares Don't refuse unmounting if there are secondary mounts. +.It Cm push_symlinks_in +Prefix absolute symlinks with mountpoint. .El .Pp .El ==== //depot/projects/soc2005/fuse4bsd2/mount_fusefs/mount_fusefs.c#6 (text+ko) ==== @@ -75,7 +75,8 @@ strcmp(optarg, "from") && strcmp(optarg, "allow_other") && strcmp(optarg, "neglect_shares") && - strcmp(optarg, "private") /* && + strcmp(optarg, "private") && + strcmp(optarg, "push_symlinks_in") /* && strcmp(optarg, "kernel_cache") && strcmp(optarg, "direct_io") */) usage(); @@ -191,7 +192,7 @@ " [fuse_daemon args...]" #endif "\n" - "known options: allow_other private neglect_shares\n" + "known options: allow_other private neglect_shares push_symlinks_in\n" "(multiple options require separate \"-o\"-s)\n", progname); From owner-p4-projects@FreeBSD.ORG Sun Oct 16 13:19:30 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 35DD016A423; Sun, 16 Oct 2005 13:19:30 +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 D423116A41F for ; Sun, 16 Oct 2005 13:19:29 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 96A2443D46 for ; Sun, 16 Oct 2005 13:19:29 +0000 (GMT) (envelope-from soc-chenk@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 j9GDJTFb062359 for ; Sun, 16 Oct 2005 13:19:29 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9GDJTdp062356 for perforce@freebsd.org; Sun, 16 Oct 2005 13:19:29 GMT (envelope-from soc-chenk@freebsd.org) Date: Sun, 16 Oct 2005 13:19:29 GMT Message-Id: <200510161319.j9GDJTdp062356@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85368 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, 16 Oct 2005 13:19:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=85368 Change 85368 by soc-chenk@soc-chenk_leavemealone on 2005/10/16 13:18:28 Display version number 0.2.20pre4 in README.html tagged 0.2.20pre4 Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/README.html#13 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/README.html#13 (text+ko) ==== @@ -55,7 +55,7 @@
  • - The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre3, date of release: 15th Oct 2005). The current code is available via [WWW]Darcs, you can fetch it by + The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre4, date of release: 16th Oct 2005). The current code is available via [WWW]Darcs, you can fetch it by

     darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
    command, or via [WWW]Perforce (you can use this latter link for online source code browsing).

    From owner-p4-projects@FreeBSD.ORG Mon Oct 17 07:19:40 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 1BEEE16A421; Mon, 17 Oct 2005 07:19:40 +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 1422916A41F for ; Mon, 17 Oct 2005 07:19:38 +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 BD5BD43D46 for ; Mon, 17 Oct 2005 07:19:37 +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 j9H7JbEl036376 for ; Mon, 17 Oct 2005 07:19:37 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 j9H7JauI036371 for perforce@freebsd.org; Mon, 17 Oct 2005 07:19:36 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 07:19:36 GMT Message-Id: <200510170719.j9H7JauI036371@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 85412 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, 17 Oct 2005 07:19:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=85412 Change 85412 by rwatson@rwatson_peppercorn on 2005/10/17 07:18:55 Style tweak. Affected files ... .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#19 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#19 (text+ko) ==== @@ -214,7 +214,6 @@ { return (au_to_attr32(vni)); - } #endif /* !(defined(_KERNEL) || defined(KERNEL) */ From owner-p4-projects@FreeBSD.ORG Mon Oct 17 07:42:08 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 93E0516A421; Mon, 17 Oct 2005 07:42:07 +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 2AF5A16A41F for ; Mon, 17 Oct 2005 07:42:07 +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 E060943D49 for ; Mon, 17 Oct 2005 07:42:06 +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 j9H7g67b037231 for ; Mon, 17 Oct 2005 07:42:06 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 j9H7g6dB037228 for perforce@freebsd.org; Mon, 17 Oct 2005 07:42:06 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 07:42:06 GMT Message-Id: <200510170742.j9H7g6dB037228@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 85414 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, 17 Oct 2005 07:42:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=85414 Change 85414 by rwatson@rwatson_peppercorn on 2005/10/17 07:41:43 Minor whitespace and style tweaks for token code. Affected files ... .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#20 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_token.c#20 (text+ko) ==== @@ -164,7 +164,6 @@ return (NULL); } - GET_TOKEN_AREA(t, dptr, 29); if (t == NULL) return (NULL); @@ -237,7 +236,7 @@ } /* Determine the size of the basic unit. */ - switch(unit_type) { + switch (unit_type) { case AUR_BYTE: datasize = AUR_BYTE_SIZE; break; @@ -391,7 +390,8 @@ * token ID 1 byte * ip header 20 bytes */ -token_t *au_to_ip(struct ip *ip) +token_t * +au_to_ip(struct ip *ip) { token_t *t; u_char *dptr = NULL; @@ -544,11 +544,11 @@ } /* - * token ID 1 byte - * seconds of time 4 bytes - * milliseconds of time 4 bytes - * file name len 2 bytes - * file pathname N bytes + 1 terminating NULL byte + * token ID 1 byte + * seconds of time 4 bytes + * milliseconds of time 4 bytes + * file name len 2 bytes + * file pathname N bytes + 1 terminating NULL byte */ token_t * #if defined(KERNEL) || defined(_KERNEL) @@ -707,7 +707,8 @@ pid_t pid, au_asid_t sid, au_tid_t *tid) { - return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, tid)); + return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, + tid)); } /* @@ -768,8 +769,8 @@ } token_t * -au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, - pid_t pid, au_asid_t sid, au_tid_addr_t *tid) +au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, + gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { return (au_to_process32_ex(auid, euid, egid, ruid, rgid, pid, sid, @@ -870,7 +871,7 @@ */ token_t * au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, struct sockaddr *la, -struct sockaddr *ra) + struct sockaddr *ra) { errno = ENOTSUP; @@ -903,7 +904,7 @@ GET_TOKEN_AREA(t, dptr, 107); if (t == NULL) return (NULL); - + ADD_U_CHAR(dptr, AU_SOCK_UNIX_TOKEN); /* BSM token has two bytes for family */ ADD_U_CHAR(dptr, 0); @@ -985,7 +986,7 @@ au_to_sock_inet(struct sockaddr_in *so) { - return au_to_sock_inet32(so); + return (au_to_sock_inet32(so)); } /* @@ -1045,7 +1046,8 @@ pid_t pid, au_asid_t sid, au_tid_t *tid) { - return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid, tid)); + return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid, + tid)); } /* @@ -1109,6 +1111,7 @@ au_to_subject_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { + return (au_to_subject32_ex(auid, euid, egid, ruid, rgid, pid, sid, tid)); } @@ -1262,7 +1265,7 @@ timems = tm.tv_usec/1000; /* Add the timestamp */ ADD_U_INT32(dptr, tm.tv_sec); - ADD_U_INT32(dptr, timems); /* We need time in ms */ + ADD_U_INT32(dptr, timems); /* We need time in ms. */ return (t); } From owner-p4-projects@FreeBSD.ORG Mon Oct 17 07:50:21 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 B43F616A421; Mon, 17 Oct 2005 07:50:20 +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 3AF6B16A41F for ; Mon, 17 Oct 2005 07:50:20 +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 BF4CA43D53 for ; Mon, 17 Oct 2005 07:50:19 +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 j9H7oJim037571 for ; Mon, 17 Oct 2005 07:50:19 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 j9H7oJKL037567 for perforce@freebsd.org; Mon, 17 Oct 2005 07:50:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 07:50:19 GMT Message-Id: <200510170750.j9H7oJKL037567@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 85415 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, 17 Oct 2005 07:50:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=85415 Change 85415 by rwatson@rwatson_peppercorn on 2005/10/17 07:49:40 Synchronize kern_bsm_token.c to libbsm's bsm_token.c: update copyright and credits, white space, style, general cleanup, annotate some potential issues. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#10 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#10 (text+ko) ==== @@ -1,8 +1,11 @@ /* * Copyright (c) 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. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -54,28 +57,20 @@ #include #include -#define GET_TOKEN_AREA(t, dptr, length) \ - do {\ - t = (token_t *) malloc (sizeof(token_t), M_AUDIT, M_WAITOK);\ - if(t != NULL)\ - {\ - t->len = length;\ - t->t_data = (u_char *) malloc (length * sizeof(u_char),\ - M_AUDIT, M_WAITOK);\ - if((dptr = t->t_data) == NULL)\ - {\ - free(t, M_AUDIT);\ - t = NULL;\ - }\ - else\ - {\ - memset(dptr, 0, length);\ - }\ - }\ - }while(0) +#define GET_TOKEN_AREA(t, dptr, length) do { \ + t = malloc(sizeof(token_t), M_AUDIT, M_WAITOK); \ + if (t != NULL) { \ + t->len = length; \ + t->t_data = malloc(length * sizeof(u_char), \ + M_AUDIT, M_WAITOK); \ + if ((dptr = t->t_data) == NULL) { \ + free(t, M_AUDIT); \ + t = NULL; \ + } else \ + memset(dptr, 0, length); \ + } \ +} while (0) - - /* * token ID 1 byte * argument # 1 byte @@ -83,20 +78,20 @@ * text length 2 bytes * text N bytes + 1 terminating NULL byte */ -token_t *au_to_arg32(char n, char *text, u_int32_t v) +token_t * +au_to_arg32(char n, char *text, u_int32_t v) { token_t *t; u_char *dptr = NULL; u_int16_t textlen; - if(text == NULL) - return NULL; + if (text == NULL) + return (NULL); textlen = strlen(text); GET_TOKEN_AREA(t, dptr, 9 + textlen); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); textlen += 1; @@ -106,24 +101,24 @@ ADD_U_INT16(dptr, textlen); ADD_STRING(dptr, text, textlen); - return t; + return (t); } -token_t *au_to_arg64(char n, char *text, u_int64_t v) +token_t * +au_to_arg64(char n, char *text, u_int64_t v) { token_t *t; u_char *dptr = NULL; u_int16_t textlen; - if(text == NULL) - return NULL; + if (text == NULL) + return (NULL); textlen = strlen(text); GET_TOKEN_AREA(t, dptr, 13 + textlen); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); textlen += 1; @@ -133,13 +128,15 @@ ADD_U_INT16(dptr, textlen); ADD_STRING(dptr, text, textlen); - return t; + return (t); } -token_t *au_to_arg(char n, char *text, u_int32_t v) +token_t * +au_to_arg(char n, char *text, u_int32_t v) { - return au_to_arg32(n, text, v); + + return (au_to_arg32(n, text, v)); } #if defined(_KERNEL) || defined(KERNEL) @@ -152,20 +149,20 @@ * node ID 8 bytes * device 4 bytes/8 bytes (32-bit/64-bit) */ -token_t *au_to_attr32(struct vnode_au_info *vni) +token_t * +au_to_attr32(struct vnode_au_info *vni) { token_t *t; u_char *dptr = NULL; u_int16_t pad0_16 = 0; u_int16_t pad0_32 = 0; - if(vni == NULL) - return NULL; + if (vni == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 29); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_ATTR32); @@ -189,27 +186,28 @@ if (sizeof(vni->vn_fileid) == sizeof(uint32_t)) { ADD_U_INT32(dptr, pad0_32); ADD_U_INT32(dptr, vni->vn_fileid); - } else if (sizeof(vni->vn_fileid) == sizeof(uint64_t)) { + } else if (sizeof(vni->vn_fileid) == sizeof(uint64_t)) ADD_U_INT64(dptr, vni->vn_fileid); - } else { + else ADD_U_INT64(dptr, 0LL); - } ADD_U_INT32(dptr, vni->vn_dev); - return t; + return (t); } -token_t *au_to_attr64(struct vnode_au_info *vni) +token_t * +au_to_attr64(struct vnode_au_info *vni) { - return NULL; + return (NULL); } -token_t *au_to_attr(struct vnode_au_info *vni) +token_t * +au_to_attr(struct vnode_au_info *vni) { - return au_to_attr32(vni); + return (au_to_attr32(vni)); } #endif /* !(defined(_KERNEL) || defined(KERNEL) */ @@ -220,37 +218,39 @@ * unit count 1 byte * data items (depends on basic unit) */ -token_t *au_to_data(char unit_print, char unit_type, - char unit_count, char *p) +token_t * +au_to_data(char unit_print, char unit_type, char unit_count, char *p) { token_t *t; u_char *dptr = NULL; size_t datasize, totdata; - if(p == NULL) - return NULL; + if (p == NULL) + return (NULL); - /* Determine the size of the basic unit */ - switch(unit_type) { - case AUR_BYTE: datasize = AUR_BYTE_SIZE; - break; + /* Determine the size of the basic unit. */ + switch (unit_type) { + case AUR_BYTE: + datasize = AUR_BYTE_SIZE; + break; - case AUR_SHORT: datasize = AUR_SHORT_SIZE; - break; + case AUR_SHORT: + datasize = AUR_SHORT_SIZE; + break; - case AUR_LONG: datasize = AUR_LONG_SIZE; - break; + case AUR_LONG: + datasize = AUR_LONG_SIZE; + break; - default: - return NULL; + default: + return (NULL); } totdata = datasize * unit_count; GET_TOKEN_AREA(t, dptr, totdata + 4); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_DATA); ADD_U_CHAR(dptr, unit_print); @@ -258,7 +258,7 @@ ADD_U_CHAR(dptr, unit_count); ADD_MEM(dptr, p, totdata); - return t; + return (t); } @@ -267,28 +267,30 @@ * status 4 bytes * return value 4 bytes */ -token_t *au_to_exit(int retval, int err) +token_t * +au_to_exit(int retval, int err) { token_t *t; u_char *dptr = NULL; GET_TOKEN_AREA(t, dptr, 9); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_EXIT); ADD_U_INT32(dptr, err); ADD_U_INT32(dptr, retval); - return t; + return (t); } /* */ -token_t *au_to_groups(int *groups) +token_t * +au_to_groups(int *groups) { - return au_to_newgroups(BSM_MAX_GROUPS, groups); + + return (au_to_newgroups(BSM_MAX_GROUPS, groups)); } /* @@ -296,53 +298,49 @@ * number groups 2 bytes * group list count * 4 bytes */ -token_t *au_to_newgroups(u_int16_t n, gid_t *groups) +token_t * +au_to_newgroups(u_int16_t n, gid_t *groups) { token_t *t; u_char *dptr = NULL; int i; - if(groups == NULL) - return NULL; + if (groups == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, n * 4 + 3); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_NEWGROUPS); ADD_U_INT16(dptr, n); - for(i = 0; i < n; i++) { - ADD_U_INT32(dptr, groups[i]); - } + for (i = 0; i < n; i++) + ADD_U_INT32(dptr, groups[i]); - return t; + return (t); } - - - /* * token ID 1 byte * internet address 4 bytes */ -token_t *au_to_in_addr(struct in_addr *internet_addr) +token_t * +au_to_in_addr(struct in_addr *internet_addr) { token_t *t; u_char *dptr = NULL; - if(internet_addr == NULL) - return NULL; + if (internet_addr == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 5); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_IN_ADDR); ADD_U_INT32(dptr, internet_addr->s_addr); - return t; + return (t); } /* @@ -350,19 +348,19 @@ * address type/length 4 bytes * Address 16 bytes */ -token_t *au_to_in_addr_ex(struct in6_addr *internet_addr) +token_t * +au_to_in_addr_ex(struct in6_addr *internet_addr) { token_t *t; u_char *dptr = NULL; u_int32_t type = AF_INET6; - if(internet_addr == NULL) - return NULL; + if (internet_addr == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 21); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_IN_ADDR_EX); ADD_U_INT32(dptr, type); @@ -371,25 +369,25 @@ ADD_U_INT32(dptr, internet_addr->__u6_addr.__u6_addr32[2]); ADD_U_INT32(dptr, internet_addr->__u6_addr.__u6_addr32[3]); - return t; + return (t); } /* * token ID 1 byte * ip header 20 bytes */ -token_t *au_to_ip(struct ip *ip) +token_t * +au_to_ip(struct ip *ip) { token_t *t; u_char *dptr = NULL; - if(ip == NULL) - return NULL; + if (ip == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 21); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_IP); /* @@ -397,7 +395,7 @@ */ ADD_MEM(dptr, ip, sizeof(struct ip)); - return t; + return (t); } /* @@ -405,22 +403,22 @@ * object ID type 1 byte * object ID 4 bytes */ -token_t *au_to_ipc(char type, int id) +token_t * +au_to_ipc(char type, int id) { token_t *t; u_char *dptr = NULL; GET_TOKEN_AREA(t, dptr, 6); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_IPC); ADD_U_CHAR(dptr, type); ADD_U_INT32(dptr, id); - return t; + return (t); } /* @@ -433,24 +431,23 @@ * slot sequence # 4 bytes * key 4 bytes */ -token_t *au_to_ipc_perm(struct ipc_perm *perm) +token_t * +au_to_ipc_perm(struct ipc_perm *perm) { token_t *t; u_char *dptr = NULL; u_int16_t pad0 = 0; - if(perm == NULL) - return NULL; + if (perm == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 29); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_IPC_PERM); - /* * Darwin defines the sizes for ipc_perm members * as 2 bytes; BSM defines 4 so pad with 0 @@ -475,7 +472,7 @@ ADD_U_INT32(dptr, perm->key); - return t; + return (t); } @@ -483,60 +480,61 @@ * token ID 1 byte * port IP address 2 bytes */ -token_t *au_to_iport(u_int16_t iport) +token_t * +au_to_iport(u_int16_t iport) { token_t *t; u_char *dptr = NULL; GET_TOKEN_AREA(t, dptr, 3); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_IPORT); ADD_U_INT16(dptr, iport); - return t; + return (t); } /* * token ID 1 byte - * size 2 bytes + * size 2 bytes * data size bytes */ -token_t *au_to_opaque(char *data, u_int16_t bytes) +token_t * +au_to_opaque(char *data, u_int16_t bytes) { token_t *t; u_char *dptr = NULL; - if((data == NULL) || (bytes <= 0)) - return NULL; + if ((data == NULL) || (bytes <= 0)) + return (NULL); GET_TOKEN_AREA(t, dptr, bytes + 3); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_OPAQUE); ADD_U_INT16(dptr, bytes); ADD_MEM(dptr, data, bytes); - return t; + return (t); } /* - * token ID 1 byte - * seconds of time 4 bytes - * milliseconds of time 4 bytes - * file name len 2 bytes - * file pathname N bytes + 1 terminating NULL byte + * token ID 1 byte + * seconds of time 4 bytes + * milliseconds of time 4 bytes + * file name len 2 bytes + * file pathname N bytes + 1 terminating NULL byte */ +token_t * #if defined(KERNEL) || defined(_KERNEL) -token_t *au_to_file(char *file, struct timeval tm) +au_to_file(char *file, struct timeval tm) #else -token_t *au_to_file(char *file) +au_to_file(char *file) #endif { token_t *t; @@ -547,53 +545,50 @@ struct timeval tm; struct timezone tzp; - if(gettimeofday(&tm, &tzp) == -1) { - return NULL; - } + if (gettimeofday(&tm, &tzp) == -1) + return (NULL); #endif + /* XXXRW: else ...? */ - if(file == NULL) - return NULL; + if (file == NULL) + return (NULL); filelen = strlen(file); GET_TOKEN_AREA(t, dptr, filelen + 12); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); filelen += 1; timems = tm.tv_usec/1000; ADD_U_CHAR(dptr, AUT_OTHER_FILE32); ADD_U_INT32(dptr, tm.tv_sec); - ADD_U_INT32(dptr, timems); /* We need time in ms */ + ADD_U_INT32(dptr, timems); /* We need time in ms. */ ADD_U_INT16(dptr, filelen); ADD_STRING(dptr, file, filelen); - return t; - + return (t); } - /* * token ID 1 byte * text length 2 bytes * text N bytes + 1 terminating NULL byte */ -token_t *au_to_text(char *text) +token_t * +au_to_text(char *text) { token_t *t; u_char *dptr = NULL; u_int16_t textlen; - if(text == NULL) - return NULL; + if (text == NULL) + return (NULL); textlen = strlen(text); GET_TOKEN_AREA(t, dptr, textlen + 4); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); textlen += 1; @@ -601,7 +596,7 @@ ADD_U_INT16(dptr, textlen); ADD_STRING(dptr, text, textlen); - return t; + return (t); } /* @@ -609,20 +604,20 @@ * path length 2 bytes * path N bytes + 1 terminating NULL byte */ -token_t *au_to_path(char *text) +token_t * +au_to_path(char *text) { token_t *t; u_char *dptr = NULL; u_int16_t textlen; - if(text == NULL) - return NULL; + if (text == NULL) + return (NULL); textlen = strlen(text); GET_TOKEN_AREA(t, dptr, textlen + 4); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); textlen += 1; @@ -630,7 +625,7 @@ ADD_U_INT16(dptr, textlen); ADD_STRING(dptr, text, textlen); - return t; + return (t); } /* @@ -646,21 +641,19 @@ * port ID 4 bytes/8 bytes (32-bit/64-bit value) * machine address 4 bytes */ -token_t *au_to_process32(au_id_t auid, uid_t euid, gid_t egid, - uid_t ruid, gid_t rgid, pid_t pid, - au_asid_t sid, au_tid_t *tid) +token_t * +au_to_process32(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, + pid_t pid, au_asid_t sid, au_tid_t *tid) { token_t *t; u_char *dptr = NULL; - if(tid == NULL) - return NULL; - + if (tid == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 37); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_PROCESS32); ADD_U_INT32(dptr, auid); @@ -673,23 +666,24 @@ ADD_U_INT32(dptr, tid->port); ADD_U_INT32(dptr, tid->machine); - return t; + return (t); } -token_t *au_to_process64(au_id_t auid, uid_t euid, gid_t egid, - uid_t ruid, gid_t rgid, pid_t pid, - au_asid_t sid, au_tid_t *tid) +token_t * +au_to_process64(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, + pid_t pid, au_asid_t sid, au_tid_t *tid) { - return NULL; + return (NULL); } -token_t *au_to_process(au_id_t auid, uid_t euid, gid_t egid, - uid_t ruid, gid_t rgid, pid_t pid, - au_asid_t sid, au_tid_t *tid) +token_t * +au_to_process(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, + pid_t pid, au_asid_t sid, au_tid_t *tid) { - return au_to_process32(auid, euid, egid, ruid, rgid, pid, - sid, tid); + + return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, + tid)); } /* @@ -706,20 +700,19 @@ * address type-len 4 bytes * machine address 16 bytes */ -token_t *au_to_process32_ex(au_id_t auid, uid_t euid, gid_t egid, - uid_t ruid, gid_t rgid, pid_t pid, - au_asid_t sid, au_tid_addr_t *tid) +token_t * +au_to_process32_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, + gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { token_t *t; u_char *dptr = NULL; - if(tid == NULL) - return NULL; + if (tid == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 53); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_PROCESS32_EX); ADD_U_INT32(dptr, auid); @@ -736,23 +729,24 @@ ADD_U_INT32(dptr, tid->at_addr[2]); ADD_U_INT32(dptr, tid->at_addr[3]); - return t; + return (t); } -token_t *au_to_process64_ex(au_id_t auid, uid_t euid, gid_t egid, - uid_t ruid, gid_t rgid, pid_t pid, - au_asid_t sid, au_tid_addr_t *tid) +token_t * +au_to_process64_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, + gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { - return NULL; + return (NULL); } -token_t *au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, - uid_t ruid, gid_t rgid, pid_t pid, - au_asid_t sid, au_tid_addr_t *tid) +token_t * +au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, + gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { - return au_to_process32_ex(auid, euid, egid, ruid, rgid, - pid, sid, tid); + + return (au_to_process32_ex(auid, euid, egid, ruid, rgid, pid, sid, + tid)); } /* @@ -760,66 +754,65 @@ * error status 1 byte * return value 4 bytes/8 bytes (32-bit/64-bit value) */ -token_t *au_to_return32(char status, u_int32_t ret) +token_t * +au_to_return32(char status, u_int32_t ret) { token_t *t; u_char *dptr = NULL; - GET_TOKEN_AREA(t, dptr, 6); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_RETURN32); ADD_U_CHAR(dptr, status); ADD_U_INT32(dptr, ret); - return t; + return (t); } -token_t *au_to_return64(char status, u_int64_t ret) +token_t * +au_to_return64(char status, u_int64_t ret) { token_t *t; u_char *dptr = NULL; - GET_TOKEN_AREA(t, dptr, 10); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_RETURN64); ADD_U_CHAR(dptr, status); ADD_U_INT64(dptr, ret); - return t; + return (t); } -token_t *au_to_return(char status, u_int32_t ret) +token_t * +au_to_return(char status, u_int32_t ret) { - return au_to_return32(status, ret); + + return (au_to_return32(status, ret)); } /* * token ID 1 byte * sequence number 4 bytes */ -token_t *au_to_seq(long audit_count) +token_t * +au_to_seq(long audit_count) { token_t *t; u_char *dptr = NULL; - GET_TOKEN_AREA(t, dptr, 5); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AUT_SEQ); ADD_U_INT32(dptr, audit_count); - return t; + return (t); } /* @@ -830,29 +823,31 @@ * remote port 2 bytes * remote Internet address 4 bytes */ -token_t *au_to_socket(struct socket *so) { +token_t * +au_to_socket(struct socket *so) +{ - return NULL; + /* XXXRW ... */ + return (NULL); } /* * Kernel-specific version of the above function. */ #ifdef _KERNEL -token_t *kau_to_socket(struct socket_au_info *soi) +token_t * +kau_to_socket(struct socket_au_info *soi) { token_t *t; u_char *dptr; u_int16_t so_type; - if(soi == NULL) { - return NULL; - } + if (soi == NULL) + return (NULL); GET_TOKEN_AREA(t, dptr, 15); - if(t == NULL) { - return NULL; - } + if (t == NULL) + return (NULL); ADD_U_CHAR(dptr, AU_SOCK_TOKEN); /* Coerce the socket type into a short value */ @@ -863,7 +858,7 @@ ADD_U_INT16(dptr, soi->so_rport); ADD_U_INT32(dptr, soi->so_raddr); - return t; + return (t); } #endif @@ -877,18 +872,20 @@ * address type/length 4 bytes * remote Internet address 4 bytes/16 bytes (IPv4/IPv6 address) */ -token_t *au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, - struct sockaddr *la, struct sockaddr *ra) +token_t * +au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, struct sockaddr *la, + struct sockaddr *ra) { - return NULL; + return (NULL); } -token_t *au_to_socket_ex_128(u_int16_t lp, u_int16_t rp, - struct sockaddr *la, struct sockaddr *ra) +token_t * +au_to_socket_ex_128(u_int16_t lp, u_int16_t rp, struct sockaddr *la, + struct sockaddr *ra) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Oct 17 08:04: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 C35B216A421; Mon, 17 Oct 2005 08:04: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 5A4D816A41F for ; Mon, 17 Oct 2005 08:04: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 09C6343D48 for ; Mon, 17 Oct 2005 08:04:53 +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 j9H84qnA038151 for ; Mon, 17 Oct 2005 08:04:52 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 j9H84qm2038148 for perforce@freebsd.org; Mon, 17 Oct 2005 08:04:52 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 08:04:52 GMT Message-Id: <200510170804.j9H84qm2038148@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 85416 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, 17 Oct 2005 08:04:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=85416 Change 85416 by rwatson@rwatson_peppercorn on 2005/10/17 08:03:52 Remove bsm_rec_count, bsm_free_q, and bsm_audit_mutex: since we are sleeping M_WAITOK in the malloc, we are guaranteed to succeed, and don't need to provide our own local cache. Working from the malloc cache is actually faster than providing our own cache; if more caching is required for this memory type, a UMA type can be added. Style and white space cleanups. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#19 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#19 (text+ko) ==== @@ -43,23 +43,7 @@ #include #include -/* The number of BSM records allocated. */ -static int bsm_rec_count = 0; - /* - * Records that can be recycled are maintained in the list given below - * The maximum number of elements that can be present in this list is - * bounded by MAX_AUDIT_RECORDS. Memory allocated for these records are never - * freed - */ -static LIST_HEAD(, au_record) bsm_free_q; - -/* - * Lock for serializing access to the list of audit records. - */ -static struct mtx bsm_audit_mutex; - -/* * Forward declares. */ static void audit_sys_auditon(struct audit_record *ar, @@ -71,9 +55,8 @@ void kau_init(void) { + printf("BSM auditing present\n"); - LIST_INIT(&bsm_free_q); - mtx_init(&bsm_audit_mutex, "bsm_audit_mutex", NULL, MTX_DEF); au_evclassmap_init(); } @@ -88,72 +71,38 @@ static struct au_record * kau_open(void) { - struct au_record *rec = NULL; + struct au_record *rec; - /* - * Find an unused record, remove it from the free list, mark as used - */ - mtx_lock(&bsm_audit_mutex); - if (!LIST_EMPTY(&bsm_free_q)) { - rec = LIST_FIRST(&bsm_free_q); - LIST_REMOVE(rec, au_rec_q); - } - mtx_unlock(&bsm_audit_mutex); - - if (rec == NULL) { - mtx_lock(&bsm_audit_mutex); - if (bsm_rec_count >= MAX_AUDIT_RECORDS) { - /* XXX We need to increase size of MAX_AUDIT_RECORDS */ - mtx_unlock(&bsm_audit_mutex); - return NULL; - } - mtx_unlock(&bsm_audit_mutex); - - /* - * Create a new BSM kernel record. - */ - rec = malloc(sizeof(*rec), M_AUDIT, M_WAITOK); - rec->data = malloc(MAX_AUDIT_RECORD_SIZE * sizeof(u_char), - M_AUDIT, M_WAITOK); - mtx_lock(&bsm_audit_mutex); - bsm_rec_count++; - mtx_unlock(&bsm_audit_mutex); - } - memset(rec->data, 0, MAX_AUDIT_RECORD_SIZE); - + rec = malloc(sizeof(*rec), M_AUDIT, M_WAITOK); + rec->data = malloc(MAX_AUDIT_RECORD_SIZE * sizeof(u_char), M_AUDIT, + M_WAITOK | M_ZERO); TAILQ_INIT(&rec->token_q); rec->len = 0; rec->used = 1; - return rec; + return (rec); } /* - * Store the token with the record descriptor - * + * Store the token with the record descriptor. */ static int kau_write(struct au_record *rec, struct au_token *tok) { - if(tok == NULL) { + + /* XXXRW: KASSERT, void return instead? */ + if (tok == NULL) return -1; /* Invalid Token */ - } - /* Add the token to the tail */ - /* - * XXX Not locking here -- we should not be writing to - * XXX the same audit record from different threads - */ TAILQ_INSERT_TAIL(&rec->token_q, tok, tokens); - - rec->len += tok->len; /* grow record length by token size bytes */ + rec->len += tok->len; - return 0; + return (0); } /* - * Close out the audit record by adding the header token, identifying - * any missing tokens. Write out the tokens to the record memory. + * Close out the audit record by adding the header token, identifying any + * missing tokens. Write out the tokens to the record memory. */ static void kau_close(struct au_record *rec, struct timespec *ctime, short event) @@ -164,22 +113,22 @@ struct timeval tm; tot_rec_size = rec->len + BSM_HEADER_SIZE + BSM_TRAILER_SIZE; - if(tot_rec_size <= MAX_AUDIT_RECORD_SIZE) { + if (tot_rec_size <= MAX_AUDIT_RECORD_SIZE) { /* Create the header token */ tm.tv_usec = ctime->tv_nsec / 1000; tm.tv_sec = ctime->tv_sec; hdr = au_to_header32(tot_rec_size, event, 0, tm); - if(hdr != NULL) { + if (hdr != NULL) { /* Add to head of list */ TAILQ_INSERT_HEAD(&rec->token_q, hdr, tokens); trail = au_to_trailer(tot_rec_size); - if(trail != NULL) { - TAILQ_INSERT_TAIL(&rec->token_q, trail, tokens); - } + if (trail != NULL) + TAILQ_INSERT_TAIL(&rec->token_q, trail, + tokens); } - /* Serialize token data to the record */ + /* Serialize token data to the record. */ rec->len = tot_rec_size; dptr = rec->data; @@ -194,7 +143,8 @@ * Free a BSM audit record by releasing all the tokens and clearing the * audit record information. */ -void kau_free(struct au_record *rec) +void +kau_free(struct au_record *rec) { struct au_token *tok; @@ -207,108 +157,96 @@ rec->used = 0; rec->len = 0; - - mtx_lock(&bsm_audit_mutex); - - /* Add the record to the freelist */ - LIST_INSERT_HEAD(&bsm_free_q, rec, au_rec_q); - - mtx_unlock(&bsm_audit_mutex); - + free(tok, M_AUDIT); } /* * XXX May want turn some (or all) of these macros into functions in order * to reduce the generated code sized. */ -#define UPATH1_TOKENS \ - do { \ - if (ar->ar_valid_arg & ARG_UPATH1) { \ - tok = au_to_path(ar->ar_arg_upath1); \ - kau_write(rec, tok); \ - } \ - } while (0) +#define UPATH1_TOKENS do { \ + if (ar->ar_valid_arg & ARG_UPATH1) { \ + tok = au_to_path(ar->ar_arg_upath1); \ + kau_write(rec, tok); \ + } \ +} while (0) -#define UPATH2_TOKENS \ - do { \ - if (ar->ar_valid_arg & ARG_UPATH2) { \ - tok = au_to_path(ar->ar_arg_upath2); \ - kau_write(rec, tok); \ - } \ - } while (0) +#define UPATH2_TOKENS do { \ + if (ar->ar_valid_arg & ARG_UPATH2) { \ + tok = au_to_path(ar->ar_arg_upath2); \ + kau_write(rec, tok); \ + } \ +} while (0) -#define KPATH1_VNODE1_TOKENS \ - do { \ - if (ar->ar_valid_arg & ARG_KPATH1) { \ - tok = au_to_path(ar->ar_arg_kpath1); \ - kau_write(rec, tok); \ - } \ - if (ar->ar_valid_arg & ARG_VNODE1) { \ - tok = au_to_attr32(&ar->ar_arg_vnode1);\ - kau_write(rec, tok); \ - } \ - } while (0) +#define KPATH1_VNODE1_TOKENS do { \ + if (ar->ar_valid_arg & ARG_KPATH1) { \ + tok = au_to_path(ar->ar_arg_kpath1); \ + kau_write(rec, tok); \ + } \ + if (ar->ar_valid_arg & ARG_VNODE1) { \ + tok = au_to_attr32(&ar->ar_arg_vnode1); \ + kau_write(rec, tok); \ + } \ +} while (0) -#define KPATH1_VNODE1_OR_UPATH1_TOKENS \ - do { \ - if (ar->ar_valid_arg & ARG_KPATH1) { \ - tok = au_to_path(ar->ar_arg_kpath1); \ - kau_write(rec, tok); \ - } else { \ - UPATH1_TOKENS; \ - } \ - if (ar->ar_valid_arg & ARG_VNODE1) { \ - tok = au_to_attr32(&ar->ar_arg_vnode1);\ - kau_write(rec, tok); \ - } \ - } while (0) +#define KPATH1_VNODE1_OR_UPATH1_TOKENS do { \ + if (ar->ar_valid_arg & ARG_KPATH1) { \ + tok = au_to_path(ar->ar_arg_kpath1); \ + kau_write(rec, tok); \ + } else { \ + UPATH1_TOKENS; \ + } \ + if (ar->ar_valid_arg & ARG_VNODE1) { \ + tok = au_to_attr32(&ar->ar_arg_vnode1); \ + kau_write(rec, tok); \ + } \ +} while (0) -#define KPATH2_VNODE2_TOKENS \ - do { \ - if (ar->ar_valid_arg & ARG_KPATH2) { \ - tok = au_to_path(ar->ar_arg_kpath2); \ - kau_write(rec, tok); \ - } \ - if (ar->ar_valid_arg & ARG_VNODE2) { \ - tok = au_to_attr32(&ar->ar_arg_vnode2);\ - kau_write(rec, tok); \ - } \ - } while (0) +#define KPATH2_VNODE2_TOKENS do { \ + if (ar->ar_valid_arg & ARG_KPATH2) { \ + tok = au_to_path(ar->ar_arg_kpath2); \ + kau_write(rec, tok); \ + } \ + if (ar->ar_valid_arg & ARG_VNODE2) { \ + tok = au_to_attr32(&ar->ar_arg_vnode2); \ + kau_write(rec, tok); \ + } \ +} while (0) -#define FD_KPATH1_VNODE1_TOKENS \ - do { \ - if (ar->ar_valid_arg & ARG_KPATH1) { \ - tok = au_to_path(ar->ar_arg_kpath1); \ - kau_write(rec, tok); \ - if (ar->ar_valid_arg & ARG_VNODE1) { \ - tok = au_to_attr32(&ar->ar_arg_vnode1);\ - kau_write(rec, tok); \ - } \ - } else { \ - tok = au_to_arg32(1, "no path: fd", ar->ar_arg_fd); \ - kau_write(rec, tok); \ - } \ - } while (0) +#define FD_KPATH1_VNODE1_TOKENS do { \ + if (ar->ar_valid_arg & ARG_KPATH1) { \ + tok = au_to_path(ar->ar_arg_kpath1); \ + kau_write(rec, tok); \ + if (ar->ar_valid_arg & ARG_VNODE1) { \ + tok = au_to_attr32(&ar->ar_arg_vnode1); \ + kau_write(rec, tok); \ + } \ + } else { \ + tok = au_to_arg32(1, "no path: fd", ar->ar_arg_fd); \ + kau_write(rec, tok); \ + } \ +} while (0) -#define PROCESS_PID_TOKENS(argn) \ - do { \ +#define PROCESS_PID_TOKENS(argn) do { \ if ((ar->ar_arg_pid > 0) /* Kill a single process */ \ && (ar->ar_valid_arg & ARG_PROCESS)) { \ - tok = au_to_process(ar->ar_arg_auid, ar->ar_arg_euid, \ - ar->ar_arg_egid, ar->ar_arg_ruid, \ - ar->ar_arg_rgid, ar->ar_arg_pid, \ - ar->ar_arg_asid, &ar->ar_arg_termid); \ + tok = au_to_process(ar->ar_arg_auid, \ + ar->ar_arg_euid, ar->ar_arg_egid, \ + ar->ar_arg_ruid, ar->ar_arg_rgid, \ + ar->ar_arg_pid, ar->ar_arg_asid, \ + &ar->ar_arg_termid); \ kau_write(rec, tok); \ } else { \ - tok = au_to_arg32(argn, "process", ar->ar_arg_pid);\ + tok = au_to_arg32(argn, "process", \ + ar->ar_arg_pid); \ kau_write(rec, tok); \ } \ } while (0) \ /* - * Implement auditing for the auditon() system call. The audit tokens - * that are generated depend on the command that was sent into the - * auditon() system call. + * Implement auditing for the auditon() system call. The audit tokens that + * are generated depend on the command that was sent into the auditon() + * system call. */ static void audit_sys_auditon(struct audit_record *ar, struct au_record *rec) @@ -325,6 +263,7 @@ ar->ar_arg_auditon.au_flags); kau_write(rec, tok); break; + case A_SETKMASK: tok = au_to_arg32(2, "setkmask:as_success", ar->ar_arg_auditon.au_mask.am_success); @@ -333,6 +272,7 @@ ar->ar_arg_auditon.au_mask.am_failure); kau_write(rec, tok); break; + case A_SETQCTRL: tok = au_to_arg32(3, "setqctrl:aq_hiwater", ar->ar_arg_auditon.au_qctrl.aq_hiwater); @@ -350,6 +290,7 @@ ar->ar_arg_auditon.au_qctrl.aq_minfree); kau_write(rec, tok); break; + case A_SETUMASK: tok = au_to_arg32(3, "setumask:as_success", ar->ar_arg_auditon.au_auinfo.ai_mask.am_success); @@ -358,6 +299,7 @@ ar->ar_arg_auditon.au_auinfo.ai_mask.am_failure); kau_write(rec, tok); break; + case A_SETSMASK: tok = au_to_arg32(3, "setsmask:as_success", ar->ar_arg_auditon.au_auinfo.ai_mask.am_success); @@ -366,6 +308,7 @@ ar->ar_arg_auditon.au_auinfo.ai_mask.am_failure); kau_write(rec, tok); break; + case A_SETCOND: if (sizeof(ar->ar_arg_auditon.au_cond) > 4) tok = au_to_arg64(3, "setcond", @@ -375,6 +318,7 @@ ar->ar_arg_auditon.au_cond); kau_write(rec, tok); break; + case A_SETCLASS: tok = au_to_arg32(2, "setclass:ec_event", ar->ar_arg_auditon.au_evclass.ec_number); @@ -383,6 +327,7 @@ ar->ar_arg_auditon.au_evclass.ec_class); kau_write(rec, tok); break; + case A_SETPMASK: tok = au_to_arg32(2, "setpmask:as_success", ar->ar_arg_auditon.au_aupinfo.ap_mask.am_success); @@ -391,11 +336,13 @@ ar->ar_arg_auditon.au_aupinfo.ap_mask.am_failure); kau_write(rec, tok); break; + case A_SETFSIZE: tok = au_to_arg32(2, "setfsize:filesize", ar->ar_arg_auditon.au_fstat.af_filesz); kau_write(rec, tok); break; + default: break; } @@ -1083,7 +1030,7 @@ printf("BSM conversion requested for unknown event %d\n", ar->ar_event); kau_free(rec); - return BSM_NOAUDIT; + return (BSM_NOAUDIT); } kau_write(rec, subj_tok); @@ -1093,7 +1040,7 @@ kau_close(rec, &ar->ar_endtime, ar->ar_event); *pau = rec; - return BSM_SUCCESS; + return (BSM_SUCCESS); } /* From owner-p4-projects@FreeBSD.ORG Mon Oct 17 08:27:50 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 4976516A422; Mon, 17 Oct 2005 08:27: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 CCC5916A41F for ; Mon, 17 Oct 2005 08:27:49 +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 7C2C543D5D for ; Mon, 17 Oct 2005 08:27:49 +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 j9H8Rnsl039072 for ; Mon, 17 Oct 2005 08:27:49 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 j9H8RnOS039069 for perforce@freebsd.org; Mon, 17 Oct 2005 08:27:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 08:27:49 GMT Message-Id: <200510170827.j9H8RnOS039069@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 85419 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, 17 Oct 2005 08:27:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=85419 Change 85419 by rwatson@rwatson_peppercorn on 2005/10/17 08:27:38 Lock down the event->class mapping table using a mutex. Staticize the table and mutex. Further annotate functions. This code may well now be safe on SMP. Cleanups -- style, remove unused code, whitespace, etc. Assert copyright. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#15 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#15 (text+ko) ==== @@ -1,5 +1,7 @@ /* - * Copyright (c) 2004 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2004 Apple Computer, Inc. + * Copyright (c) 2005 Robert N. M. Watson + * All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -41,10 +43,7 @@ /* * Hash table functions for the audit event number to event class mask * mapping. - * - * XXXAUDIT: Locking? */ - #define EVCLASSMAP_HASH_TABLE_SIZE 251 struct evclass_elem { au_event_t event; @@ -55,22 +54,31 @@ LIST_HEAD(, evclass_elem) head; }; -struct evclass_list evclass_hash[EVCLASSMAP_HASH_TABLE_SIZE]; +static struct mtx evclass_mtx; +static struct evclass_list evclass_hash[EVCLASSMAP_HASH_TABLE_SIZE]; -au_class_t au_event_class(au_event_t event) +/* + * Look up the class for an audit event in the class mapping table. + */ +au_class_t +au_event_class(au_event_t event) { - struct evclass_list *evcl; struct evclass_elem *evc; + au_class_t class; + mtx_lock(&evclass_mtx); evcl = &evclass_hash[event % EVCLASSMAP_HASH_TABLE_SIZE]; - - /* If an entry at our hash location matches the event, just return */ + class = AU_NULL; LIST_FOREACH(evc, &evcl->head, entry) { - if (evc->event == event) - return (evc->class); + if (evc->event == event) { + class = evc->class; + goto out; + } } - return (AU_NULL); +out: + mtx_unlock(&evclass_mtx); + return (class); } /* @@ -79,71 +87,83 @@ * XXX There is currently no constraints placed on the number of mappings. * May want to either limit to a number, or in terms of memory usage. */ -void au_evclassmap_insert(au_event_t event, au_class_t class) +void +au_evclassmap_insert(au_event_t event, au_class_t class) { struct evclass_list *evcl; - struct evclass_elem *evc; + struct evclass_elem *evc, *evc_new; + + /* + * Pessimistically, always allocate storage before acquiring mutex. + * Free if there is already a mapping for this event. + */ + evc_new = malloc(sizeof(*evc), M_AUDIT, M_WAITOK); + mtx_lock(&evclass_mtx); evcl = &evclass_hash[event % EVCLASSMAP_HASH_TABLE_SIZE]; - LIST_FOREACH(evc, &evcl->head, entry) { if (evc->event == event) { evc->class = class; + mtx_unlock(&evclass_mtx); + free(evc_new, M_AUDIT); return; } } - evc = malloc(sizeof(*evc), M_AUDIT, M_WAITOK); - if (evc == NULL) { - return; - } + evc = evc_new; evc->event = event; evc->class = class; LIST_INSERT_HEAD(&evcl->head, evc, entry); - + mtx_unlock(&evclass_mtx); } -void au_evclassmap_init(void) +void +au_evclassmap_init(void) { int i; - for (i = 0; i < EVCLASSMAP_HASH_TABLE_SIZE; i++) { + + mtx_init(&evclass_mtx, "evclass_mtx", NULL, MTX_DEF); + for (i = 0; i < EVCLASSMAP_HASH_TABLE_SIZE; i++) LIST_INIT(&evclass_hash[i].head); - } - /* Set up the initial event to class mapping for system calls. */ + /* + * Set up the initial event to class mapping for system calls. + * + * XXXRW: Really, this should walk all possible audit events, not all + * native ABI system calls, as there may be audit events reachable + * only through non-native system calls. It also seems a shame to + * frob the mutex this early. + */ for (i = 0; i < SYS_MAXSYSCALL; i++) { - if (sysent[i].sy_auevent != AUE_NULL) { + if (sysent[i].sy_auevent != AUE_NULL) au_evclassmap_insert(sysent[i].sy_auevent, AU_NULL); - } } - } /* * Check whether an event is aditable by comparing the mask of classes this * event is part of against the given mask. - * */ -int au_preselect(au_event_t event, au_mask_t *mask_p, int sorf) +int +au_preselect(au_event_t event, au_mask_t *mask_p, int sorf) { au_class_t effmask = 0; au_class_t ae_class; - if(mask_p == NULL) + if (mask_p == NULL) return (-1); ae_class = au_event_class(event); + /* * Perform the actual check of the masks against the event. */ - if(sorf & AU_PRS_SUCCESS) { + if (sorf & AU_PRS_SUCCESS) effmask |= (mask_p->am_success & ae_class); - } - if(sorf & AU_PRS_FAILURE) { + if (sorf & AU_PRS_FAILURE) effmask |= (mask_p->am_failure & ae_class); - } - if(effmask) + if (effmask) return (1); else return (0); @@ -152,12 +172,14 @@ /* * Convert sysctl names and present arguments to events */ -au_event_t ctlname_to_sysctlevent(int name[], uint64_t valid_arg) { +au_event_t +ctlname_to_sysctlevent(int name[], uint64_t valid_arg) +{ /* can't parse it - so return the worst case */ if ((valid_arg & (ARG_CTLNAME | ARG_LEN)) != (ARG_CTLNAME | ARG_LEN)) - return AUE_SYSCTL; + return (AUE_SYSCTL); switch (name[0]) { /* non-admin "lookups" treat them special */ @@ -174,7 +196,7 @@ case KERN_SAVED_IDS: case KERN_OSRELDATE: case KERN_DUMMY: - return AUE_SYSCTL_NONADMIN; + return (AUE_SYSCTL_NONADMIN); /* only treat the changeable controls as admin */ case KERN_MAXVNODES: @@ -185,26 +207,26 @@ case KERN_HOSTID: case KERN_SECURELVL: case KERN_HOSTNAME: -case KERN_VNODE: -case KERN_PROC: -case KERN_FILE: -case KERN_PROF: -case KERN_NISDOMAINNAME: -case KERN_UPDATEINTERVAL: -case KERN_NTP_PLL: + case KERN_VNODE: + case KERN_PROC: + case KERN_FILE: + case KERN_PROF: + case KERN_NISDOMAINNAME: + case KERN_UPDATEINTERVAL: + case KERN_NTP_PLL: case KERN_BOOTFILE: case KERN_DUMPDEV: -case KERN_IPC: -case KERN_PS_STRINGS: -case KERN_USRSTACK: + case KERN_IPC: + case KERN_PS_STRINGS: + case KERN_USRSTACK: case KERN_LOGSIGEXIT: -case KERN_IOV_MAX: -case KERN_MAXID: - return (valid_arg & ARG_VALUE) ? - AUE_SYSCTL : AUE_SYSCTL_NONADMIN; + case KERN_IOV_MAX: + case KERN_MAXID: + return ((valid_arg & ARG_VALUE) ? + AUE_SYSCTL : AUE_SYSCTL_NONADMIN); default: - return AUE_SYSCTL; + return (AUE_SYSCTL); } /* NOTREACHED */ } @@ -213,52 +235,66 @@ * Convert an open flags specifier into a specific type of open event for * auditing purposes. */ -au_event_t flags_and_error_to_openevent(int oflags, int error) { +au_event_t +flags_and_error_to_openevent(int oflags, int error) { au_event_t aevent; /* Need to check only those flags we care about. */ oflags = oflags & (O_RDONLY | O_CREAT | O_TRUNC | O_RDWR | O_WRONLY); - /* These checks determine what flags are on with the condition - * that ONLY that combination is on, and no other flags are on. + /* + * These checks determine what flags are on with the condition that + * ONLY that combination is on, and no other flags are on. */ switch (oflags) { case O_RDONLY: aevent = AUE_OPEN_R; break; + case (O_RDONLY | O_CREAT): aevent = AUE_OPEN_RC; break; + case (O_RDONLY | O_CREAT | O_TRUNC): aevent = AUE_OPEN_RTC; break; + case (O_RDONLY | O_TRUNC): aevent = AUE_OPEN_RT; break; + case O_RDWR: aevent = AUE_OPEN_RW; break; + case (O_RDWR | O_CREAT): aevent = AUE_OPEN_RWC; break; + case (O_RDWR | O_CREAT | O_TRUNC): aevent = AUE_OPEN_RWTC; break; + case (O_RDWR | O_TRUNC): aevent = AUE_OPEN_RWT; break; + case O_WRONLY: aevent = AUE_OPEN_W; break; + case (O_WRONLY | O_CREAT): aevent = AUE_OPEN_WC; break; + case (O_WRONLY | O_CREAT | O_TRUNC): aevent = AUE_OPEN_WTC; break; + case (O_WRONLY | O_TRUNC): aevent = AUE_OPEN_WT; break; + default: aevent = AUE_OPEN; break; @@ -279,107 +315,132 @@ if (error == ENOENT) aevent = AUE_OPEN; } - return aevent; + return (aevent); } -/* Convert a MSGCTL command to a specific event. */ -int msgctl_to_event(int cmd) +/* + * Convert a MSGCTL command to a specific event. + */ +int +msgctl_to_event(int cmd) { + switch (cmd) { case IPC_RMID: - return AUE_MSGCTL_RMID; + return (AUE_MSGCTL_RMID); + case IPC_SET: - return AUE_MSGCTL_SET; + return (AUE_MSGCTL_SET); + case IPC_STAT: - return AUE_MSGCTL_STAT; + return (AUE_MSGCTL_STAT); + default: - return AUE_MSGCTL; - /* We will audit a bad command */ + /* We will audit a bad command */ + return (AUE_MSGCTL); } } -/* Convert a SEMCTL command to a specific event. */ -int semctl_to_event(int cmd) +/* + * Convert a SEMCTL command to a specific event. + */ +int +semctl_to_event(int cmd) { + switch (cmd) { case GETALL: - return AUE_SEMCTL_GETALL; + return (AUE_SEMCTL_GETALL); + case GETNCNT: - return AUE_SEMCTL_GETNCNT; + return (AUE_SEMCTL_GETNCNT); + case GETPID: - return AUE_SEMCTL_GETPID; + return (AUE_SEMCTL_GETPID); + case GETVAL: - return AUE_SEMCTL_GETVAL; + return (AUE_SEMCTL_GETVAL); + case GETZCNT: - return AUE_SEMCTL_GETZCNT; + return (AUE_SEMCTL_GETZCNT); + case IPC_RMID: - return AUE_SEMCTL_RMID; + return (AUE_SEMCTL_RMID); + case IPC_SET: - return AUE_SEMCTL_SET; + return (AUE_SEMCTL_SET); + case SETALL: - return AUE_SEMCTL_SETALL; + return (AUE_SEMCTL_SETALL); + case SETVAL: - return AUE_SEMCTL_SETVAL; + return (AUE_SEMCTL_SETVAL); + case IPC_STAT: - return AUE_SEMCTL_STAT; + return (AUE_SEMCTL_STAT); + default: - return AUE_SEMCTL; - /* We will audit a bad command */ + /* We will audit a bad command */ + return (AUE_SEMCTL); } } -/* Convert a command for the auditon() system call to a audit event. */ -int auditon_command_event(int cmd) +/* + * Convert a command for the auditon() system call to a audit event. + */ +int +auditon_command_event(int cmd) { + switch(cmd) { case A_GETPOLICY: - return AUE_AUDITON_GPOLICY; - break; + return (AUE_AUDITON_GPOLICY); + case A_SETPOLICY: - return AUE_AUDITON_SPOLICY; - break; + return (AUE_AUDITON_SPOLICY); + case A_GETKMASK: - return AUE_AUDITON_GETKMASK; - break; + return (AUE_AUDITON_GETKMASK); + case A_SETKMASK: - return AUE_AUDITON_SETKMASK; - break; + return (AUE_AUDITON_SETKMASK); + case A_GETQCTRL: - return AUE_AUDITON_GQCTRL; - break; + return (AUE_AUDITON_GQCTRL); + case A_SETQCTRL: - return AUE_AUDITON_SQCTRL; - break; + return (AUE_AUDITON_SQCTRL); + case A_GETCWD: - return AUE_AUDITON_GETCWD; - break; + return (AUE_AUDITON_GETCWD); + case A_GETCAR: - return AUE_AUDITON_GETCAR; - break; + return (AUE_AUDITON_GETCAR); + case A_GETSTAT: - return AUE_AUDITON_GETSTAT; - break; + return (AUE_AUDITON_GETSTAT); + case A_SETSTAT: - return AUE_AUDITON_SETSTAT; - break; + return (AUE_AUDITON_SETSTAT); + case A_SETUMASK: - return AUE_AUDITON_SETUMASK; - break; + return (AUE_AUDITON_SETUMASK); + case A_SETSMASK: - return AUE_AUDITON_SETSMASK; - break; + return (AUE_AUDITON_SETSMASK); + case A_GETCOND: - return AUE_AUDITON_GETCOND; - break; + return (AUE_AUDITON_GETCOND); + case A_SETCOND: - return AUE_AUDITON_SETCOND; - break; + return (AUE_AUDITON_SETCOND); + case A_GETCLASS: - return AUE_AUDITON_GETCLASS; - break; + return (AUE_AUDITON_GETCLASS); + case A_SETCLASS: - return AUE_AUDITON_SETCLASS; - break; + return (AUE_AUDITON_SETCLASS); + case A_GETPINFO: case A_SETPMASK: case A_SETFSIZE: @@ -388,8 +449,7 @@ case A_GETKAUDIT: case A_SETKAUDIT: default: - return AUE_AUDITON; /* No special record */ - break; + return (AUE_AUDITON); /* No special record */ } } @@ -407,12 +467,8 @@ void canon_path(struct thread *td, char *path, char *cpath) { - char *bufp; char *retbuf, *freebuf; -#if 0 - int len; -#endif struct vnode *vnp; struct filedesc *fdp; int error, vfslocked; From owner-p4-projects@FreeBSD.ORG Mon Oct 17 08:56:05 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 F2F5316A421; Mon, 17 Oct 2005 08:56:04 +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 9333416A41F for ; Mon, 17 Oct 2005 08:56:04 +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 7CEF543D75 for ; Mon, 17 Oct 2005 08:55:58 +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 j9H8twIK047429 for ; Mon, 17 Oct 2005 08:55:58 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 j9H8tv0E047426 for perforce@freebsd.org; Mon, 17 Oct 2005 08:55:57 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 08:55:57 GMT Message-Id: <200510170855.j9H8tv0E047426@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 85421 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, 17 Oct 2005 08:56:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=85421 Change 85421 by rwatson@rwatson_peppercorn on 2005/10/17 08:54:57 style(9). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#8 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#8 (text+ko) ==== @@ -27,7 +27,7 @@ */ #ifndef _BSM_AUDIT_PRIVATE_H -#define _BSM_AUDIT_PRIVATE_H +#define _BSM_AUDIT_PRIVATE_H #ifndef _KERNEL #error "no user-serviceable parts inside" @@ -45,25 +45,25 @@ * Audit control variables that are usually set/read via system calls * and used to control various aspects of auditing. */ -extern struct au_qctrl audit_qctrl; -extern struct audit_fstat audit_fstat; -extern struct au_mask audit_nae_mask; -extern int audit_panic_on_write_fail; -extern int audit_fail_stop; +extern struct au_qctrl audit_qctrl; +extern struct audit_fstat audit_fstat; +extern struct au_mask audit_nae_mask; +extern int audit_panic_on_write_fail; +extern int audit_fail_stop; /* * 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 +#define BSM_SUCCESS 0 +#define BSM_FAILURE 1 +#define BSM_NOAUDIT 2 /* * Defines for the kernel audit record k_ar_commit field. */ -#define AR_COMMIT_KERNEL 0x00000001U -#define AR_COMMIT_USER 0x00000010U +#define AR_COMMIT_KERNEL 0x00000001U +#define AR_COMMIT_USER 0x00000010U /* * Audit data is generated as a stream of struct audit_record structures, @@ -207,35 +207,35 @@ */ void audit_abort(struct kaudit_record *ar); void audit_commit(struct kaudit_record *ar, int error, - int retval); + 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, +int kaudit_to_bsm(struct kaudit_record *kar, struct au_record **pau); -int bsm_rec_verify(void *rec); +int bsm_rec_verify(void *rec); /* * Kernel versions of the libbsm audit record functions. */ -void kau_free(struct au_record *rec); -void kau_init(void); +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) +#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. */ -#define AUDIT_OPEN_FLAGS FWRITE | O_APPEND -#define AUDIT_CLOSE_FLAGS FWRITE | O_APPEND +#define AUDIT_OPEN_FLAGS (FWRITE | O_APPEND) +#define AUDIT_CLOSE_FLAGS (FWRITE | O_APPEND) #include #include @@ -247,34 +247,35 @@ * kernel implementations in order to save the copying of large kernel * data structures. The prototypes of these functions are declared here. */ -token_t *kau_to_socket(struct socket_au_info *soi); +token_t *kau_to_socket(struct socket_au_info *soi); /* * audit_klib prototypes */ -int au_preselect(au_event_t event, au_mask_t *mask_p, int sorf); -au_event_t flags_and_error_to_openevent(int oflags, int error); -void au_evclassmap_init(void); -void au_evclassmap_insert(au_event_t event, au_class_t class); -au_class_t au_event_class(au_event_t event); -au_event_t ctlname_to_sysctlevent(int name[], uint64_t valid_arg); -int auditon_command_event(int cmd); -int msgctl_to_event(int cmd); -int semctl_to_event(int cmr); -void canon_path(struct thread *td, char *path, char *cpath); +int au_preselect(au_event_t event, au_mask_t *mask_p, int sorf); +au_event_t flags_and_error_to_openevent(int oflags, int error); +void au_evclassmap_init(void); +void au_evclassmap_insert(au_event_t event, au_class_t class); +au_class_t au_event_class(au_event_t event); +au_event_t ctlname_to_sysctlevent(int name[], uint64_t valid_arg); +int auditon_command_event(int cmd); +int msgctl_to_event(int cmd); +int semctl_to_event(int cmr); +void canon_path(struct thread *td, char *path, char *cpath); /* * Audit trigger events notify user space of kernel audit conditions * asynchronously. */ -void audit_trigger_init(void); -void send_trigger(unsigned int trigger); +void audit_trigger_init(void); +void send_trigger(unsigned int trigger); /* * General audit related functions. */ -struct kaudit_record * currecord(void); -void audit_shutdown(void *arg, int howto); -void audit_rotate_vnode(struct ucred *cred, struct vnode *vp); +struct kaudit_record *currecord(void); +void audit_shutdown(void *arg, int howto); +void audit_rotate_vnode(struct ucred *cred, + struct vnode *vp); #endif /* ! _BSM_AUDIT_PRIVATE_H */ From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:31:10 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 E86BB16A421; Mon, 17 Oct 2005 11:31:09 +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 A71BB16A41F for ; Mon, 17 Oct 2005 11:31:09 +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 64D8C43D46 for ; Mon, 17 Oct 2005 11:31:09 +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 j9HBV9uN053585 for ; Mon, 17 Oct 2005 11:31:09 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 j9HBV7o9053582 for perforce@freebsd.org; Mon, 17 Oct 2005 11:31:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 11:31:07 GMT Message-Id: <200510171131.j9HBV7o9053582@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 85424 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, 17 Oct 2005 11:31:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=85424 Change 85424 by rwatson@rwatson_zoo on 2005/10/17 11:30:43 Minor white space tweaks. Annotate a minor multi-threading race, in which one thread can give up privilege while another thread modifies audit state, resulting in a possibly inconsistent condition. This may not be significant. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#4 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#4 (text+ko) ==== @@ -174,6 +174,7 @@ if (audit_panic_on_write_fail) udata.au_policy |= AUDIT_AHLT; break; + case A_SETPOLICY: if (udata.au_policy & ~(AUDIT_CNT|AUDIT_AHLT)) return (EINVAL); @@ -183,15 +184,19 @@ audit_fail_stop = ((udata.au_policy & AUDIT_CNT) == 0); audit_panic_on_write_fail = (udata.au_policy & AUDIT_AHLT); break; + case A_GETKMASK: udata.au_mask = audit_nae_mask; break; + case A_SETKMASK: audit_nae_mask = udata.au_mask; break; + case A_GETQCTRL: udata.au_qctrl = audit_qctrl; break; + case A_SETQCTRL: if ((udata.au_qctrl.aq_hiwater > AQ_MAXHIGH) || (udata.au_qctrl.aq_lowater >= udata.au_qctrl.aq_hiwater) || @@ -204,30 +209,38 @@ /* XXX The queue delay value isn't used with the kernel. */ audit_qctrl.aq_delay = -1; break; + case A_GETCWD: return (ENOSYS); break; + case A_GETCAR: return (ENOSYS); break; + case A_GETSTAT: return (ENOSYS); break; + case A_SETSTAT: return (ENOSYS); break; + case A_SETUMASK: return (ENOSYS); break; + case A_SETSMASK: return (ENOSYS); break; + case A_GETCOND: if (audit_enabled && !audit_suspended) udata.au_cond = AUC_AUDITING; else udata.au_cond = AUC_NOAUDIT; break; + case A_SETCOND: if (udata.au_cond == AUC_NOAUDIT) audit_suspended = 1; @@ -238,14 +251,17 @@ audit_shutdown(NULL, 0); } break; + case A_GETCLASS: udata.au_evclass.ec_class = au_event_class(udata.au_evclass.ec_number); break; + case A_SETCLASS: au_evclassmap_insert(udata.au_evclass.ec_number, udata.au_evclass.ec_class); break; + case A_GETPINFO: if (udata.au_aupinfo.ap_pid < 1) return (EINVAL); @@ -266,6 +282,7 @@ udata.au_aupinfo.ap_asid = tp->p_au->ai_asid; PROC_UNLOCK(tp); break; + case A_SETPMASK: if (udata.au_aupinfo.ap_pid < 1) return (EINVAL); @@ -280,25 +297,31 @@ udata.au_aupinfo.ap_mask.am_failure; PROC_UNLOCK(tp); break; + case A_SETFSIZE: if ((udata.au_fstat.af_filesz != 0) && (udata.au_fstat.af_filesz < MIN_AUDIT_FILE_SIZE)) return (EINVAL); audit_fstat.af_filesz = udata.au_fstat.af_filesz; break; + case A_GETFSIZE: udata.au_fstat.af_filesz = audit_fstat.af_filesz; udata.au_fstat.af_currsz = audit_fstat.af_currsz; break; + case A_GETPINFO_ADDR: return (ENOSYS); break; + case A_GETKAUDIT: return (ENOSYS); break; + case A_SETKAUDIT: return (ENOSYS); break; + case A_SENDTRIGGER: if ((udata.au_trigger < AUDIT_TRIGGER_MIN) || (udata.au_trigger > AUDIT_TRIGGER_MAX)) @@ -380,6 +403,8 @@ * XXXAUDIT: Might need locking to serialize audit events in the same * order as change events? Or maybe that's an under-solveable * problem. + * + * XXXRW: Test privilege while holding the proc lock? */ PROC_LOCK(td->td_proc); td->td_proc->p_au->ai_auid = id; @@ -428,6 +453,9 @@ audit_arg_auditinfo(&ai); + /* + * XXXRW: Test privilege while holding the proc lock? + */ PROC_LOCK(td->td_proc); *td->td_proc->p_au = ai; PROC_UNLOCK(td->td_proc); @@ -534,54 +562,63 @@ int audit(struct thread *td, struct audit_args *uap) { + return (ENOSYS); } int auditon(struct thread *td, struct auditon_args *uap) { + return (ENOSYS); } int getauid(struct thread *td, struct getauid_args *uap) { + return (ENOSYS); } int setauid(struct thread *td, struct setauid_args *uap) { + return (ENOSYS); } int getaudit(struct thread *td, struct getaudit_args *uap) { + return (ENOSYS); } int setaudit(struct thread *td, struct setaudit_args *uap) { + return (ENOSYS); } int getaudit_addr(struct thread *td, struct getaudit_addr_args *uap) { + return (ENOSYS); } int setaudit_addr(struct thread *td, struct setaudit_addr_args *uap) { + return (ENOSYS); } int auditctl(struct thread *td, struct auditctl_args *uap) { + return (ENOSYS); } From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:36:17 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 8CCCE16A421; Mon, 17 Oct 2005 11:36:16 +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 51D7016A41F for ; Mon, 17 Oct 2005 11:36:16 +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 0116D43D46 for ; Mon, 17 Oct 2005 11:36:16 +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 j9HBaFTQ053796 for ; Mon, 17 Oct 2005 11:36:15 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 j9HBaFfX053793 for perforce@freebsd.org; Mon, 17 Oct 2005 11:36:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 11:36:15 GMT Message-Id: <200510171136.j9HBaFfX053793@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 85425 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, 17 Oct 2005 11:36:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=85425 Change 85425 by rwatson@rwatson_zoo on 2005/10/17 11:35:46 Return EBUSY instead of EOPNOTSUPP if a second reader tries to open /dev/audit at the same time as an existing one. This is more consistent with other device nodes. Minor style tweaks. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#5 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#5 (text+ko) ==== @@ -61,12 +61,8 @@ if (!audit_isopen) { error = 0; audit_isopen = 1; - } else { - /* - * XXXRW: Why not EBUSY? - */ - error = EOPNOTSUPP; - } + } else + error = EBUSY; mtx_unlock(&audit_trigger_mtx); return (error); @@ -77,7 +73,7 @@ { struct trigger_info *ti; - /* Drain the queue of pending trigger events */ + /* Flush the queue of pending trigger events. */ mtx_lock(&audit_trigger_mtx); audit_isopen = 0; while (!TAILQ_EMPTY(&trigger_list)) { @@ -86,6 +82,7 @@ free(ti, M_AUDIT); } mtx_unlock(&audit_trigger_mtx); + return (0); } @@ -97,8 +94,8 @@ mtx_lock(&audit_trigger_mtx); while (TAILQ_EMPTY(&trigger_list)) { - error = msleep(&trigger_list, &audit_trigger_mtx, PSOCK | PCATCH, - "auditd", 0); + error = msleep(&trigger_list, &audit_trigger_mtx, + PSOCK | PCATCH, "auditd", 0); if (error) break; } @@ -111,15 +108,15 @@ error = uiomove(ti, sizeof *ti, uio); free(ti, M_AUDIT); } - return error; + return (error); } static int audit_write(struct cdev *dev, struct uio *uio, int ioflag) { - /* Communication is kernel->userspace only */ - return EOPNOTSUPP; + /* Communication is kernel->userspace only. */ + return (EOPNOTSUPP); } void @@ -127,7 +124,7 @@ { struct trigger_info *ti; - /* If nobody's listening, we ain't talking */ + /* If nobody's listening, we ain't talking. */ if (!audit_isopen) return; @@ -140,7 +137,6 @@ TAILQ_INSERT_TAIL(&trigger_list, ti, list); wakeup(&trigger_list); mtx_unlock(&audit_trigger_mtx); - return; } static struct cdevsw audit_cdevsw = { @@ -164,7 +160,7 @@ audit_trigger_cdev_init(void *unused) { - /* Create the special device file */ + /* Create the special device file. */ audit_dev = make_dev(&audit_cdevsw, 0, UID_ROOT, GID_KMEM, 0600, AUDITDEV_FILENAME); } From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:38:20 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 9689916A422; Mon, 17 Oct 2005 11:38:19 +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 6FD2F16A41F for ; Mon, 17 Oct 2005 11:38:19 +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 E8F1643D49 for ; Mon, 17 Oct 2005 11:38:18 +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 j9HBcIb3053890 for ; Mon, 17 Oct 2005 11:38:18 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 j9HBcI5I053887 for perforce@freebsd.org; Mon, 17 Oct 2005 11:38:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 11:38:18 GMT Message-Id: <200510171138.j9HBcI5I053887@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 85426 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, 17 Oct 2005 11:38:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=85426 Change 85426 by rwatson@rwatson_zoo on 2005/10/17 11:37:46 In FreeBSD, we use KASSERT(), so don't need a local assertion definition for the audit code (as was required in Darwin). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#47 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#47 (text+ko) ==== @@ -68,19 +68,6 @@ #define AUDIT_PRINTF(X) #endif -#if 0 -#if DIAGNOSTIC -#if defined(assert) -#undef assert() -#endif -#define assert(cond) \ - ((void) ((cond) ? 0 : panic("%s:%d (%s)", __FILE__, __LINE__, # cond))) -#else -#include -#endif /* DIAGNOSTIC */ -#endif -#define assert(x) KASSERT(x, x) - MALLOC_DEFINE(M_AUDIT, "audit", "Audit event records"); /* From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:44:28 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 CD57D16A422; Mon, 17 Oct 2005 11:44:27 +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 36C6C16A41F for ; Mon, 17 Oct 2005 11:44:27 +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 CA67A43D49 for ; Mon, 17 Oct 2005 11:44:26 +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 j9HBiQuX054255 for ; Mon, 17 Oct 2005 11:44:26 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 j9HBiQSF054252 for perforce@freebsd.org; Mon, 17 Oct 2005 11:44:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 11:44:26 GMT Message-Id: <200510171144.j9HBiQSF054252@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 85427 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, 17 Oct 2005 11:44:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=85427 Change 85427 by rwatson@rwatson_zoo on 2005/10/17 11:43:30 Since kau_write() can't fail, and none of the callers check the return value, change the function to return void rather than int. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#20 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#20 (text+ko) ==== @@ -86,18 +86,14 @@ /* * Store the token with the record descriptor. */ -static int +static void kau_write(struct au_record *rec, struct au_token *tok) { - /* XXXRW: KASSERT, void return instead? */ - if (tok == NULL) - return -1; /* Invalid Token */ + KASSERT(tok != NULL, ("kau_write: tok == NULL")); TAILQ_INSERT_TAIL(&rec->token_q, tok, tokens); rec->len += tok->len; - - return (0); } /* From owner-p4-projects@FreeBSD.ORG Mon Oct 17 11:51:37 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 8B7BB16A421; Mon, 17 Oct 2005 11:51:36 +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 4852D16A41F for ; Mon, 17 Oct 2005 11:51:36 +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 DA2C143D46 for ; Mon, 17 Oct 2005 11:51:35 +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 j9HBpZPn054660 for ; Mon, 17 Oct 2005 11:51:35 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 j9HBpZux054657 for perforce@freebsd.org; Mon, 17 Oct 2005 11:51:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 11:51:35 GMT Message-Id: <200510171151.j9HBpZux054657@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 85428 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, 17 Oct 2005 11:51:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=85428 Change 85428 by rwatson@rwatson_zoo on 2005/10/17 11:50:44 KASSERT non-NULL argument to kaudit_to_bsm() rather than returning an error. kau_open() doesn't fail. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#21 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#21 (text+ko) ==== @@ -362,15 +362,11 @@ struct audit_record *ar; int ctr; + KASSERT(kar != NULL, ("kaudit_to_bsm: kar == NULL")); + *pau = NULL; - if (kar == NULL) - return (BSM_FAILURE); - ar = &kar->k_ar; - rec = kau_open(); - if (rec == NULL) - return (BSM_FAILURE); /* Create the subject token */ tid.port = ar->ar_subj_term.port; From owner-p4-projects@FreeBSD.ORG Mon Oct 17 12:27:20 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 EE2D916A428; Mon, 17 Oct 2005 12:27:19 +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 5B03616A424 for ; Mon, 17 Oct 2005 12:27:19 +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 1D78C43D46 for ; Mon, 17 Oct 2005 12:27:19 +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 j9HCRJni056136 for ; Mon, 17 Oct 2005 12:27:19 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 j9HCRI8w056133 for perforce@freebsd.org; Mon, 17 Oct 2005 12:27:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 12:27:18 GMT Message-Id: <200510171227.j9HCRI8w056133@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 85429 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, 17 Oct 2005 12:27:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=85429 Change 85429 by rwatson@rwatson_zoo on 2005/10/17 12:26:38 Integrate bsm_token.c from OpenBSM to the TrustedBSD Audit3 contrib tree: White space and style cleanups. Affected files ... .. //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#4 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/libbsm/bsm_token.c#4 (text+ko) ==== @@ -164,7 +164,6 @@ return (NULL); } - GET_TOKEN_AREA(t, dptr, 29); if (t == NULL) return (NULL); @@ -214,7 +213,6 @@ { return (au_to_attr32(vni)); - } #endif /* !(defined(_KERNEL) || defined(KERNEL) */ @@ -238,7 +236,7 @@ } /* Determine the size of the basic unit. */ - switch(unit_type) { + switch (unit_type) { case AUR_BYTE: datasize = AUR_BYTE_SIZE; break; @@ -392,7 +390,8 @@ * token ID 1 byte * ip header 20 bytes */ -token_t *au_to_ip(struct ip *ip) +token_t * +au_to_ip(struct ip *ip) { token_t *t; u_char *dptr = NULL; @@ -545,11 +544,11 @@ } /* - * token ID 1 byte - * seconds of time 4 bytes - * milliseconds of time 4 bytes - * file name len 2 bytes - * file pathname N bytes + 1 terminating NULL byte + * token ID 1 byte + * seconds of time 4 bytes + * milliseconds of time 4 bytes + * file name len 2 bytes + * file pathname N bytes + 1 terminating NULL byte */ token_t * #if defined(KERNEL) || defined(_KERNEL) @@ -708,7 +707,8 @@ pid_t pid, au_asid_t sid, au_tid_t *tid) { - return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, tid)); + return (au_to_process32(auid, euid, egid, ruid, rgid, pid, sid, + tid)); } /* @@ -769,8 +769,8 @@ } token_t * -au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, - pid_t pid, au_asid_t sid, au_tid_addr_t *tid) +au_to_process_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, + gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { return (au_to_process32_ex(auid, euid, egid, ruid, rgid, pid, sid, @@ -871,7 +871,7 @@ */ token_t * au_to_socket_ex_32(u_int16_t lp, u_int16_t rp, struct sockaddr *la, -struct sockaddr *ra) + struct sockaddr *ra) { errno = ENOTSUP; @@ -904,7 +904,7 @@ GET_TOKEN_AREA(t, dptr, 107); if (t == NULL) return (NULL); - + ADD_U_CHAR(dptr, AU_SOCK_UNIX_TOKEN); /* BSM token has two bytes for family */ ADD_U_CHAR(dptr, 0); @@ -986,7 +986,7 @@ au_to_sock_inet(struct sockaddr_in *so) { - return au_to_sock_inet32(so); + return (au_to_sock_inet32(so)); } /* @@ -1046,7 +1046,8 @@ pid_t pid, au_asid_t sid, au_tid_t *tid) { - return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid, tid)); + return (au_to_subject32(auid, euid, egid, ruid, rgid, pid, sid, + tid)); } /* @@ -1110,6 +1111,7 @@ au_to_subject_ex(au_id_t auid, uid_t euid, gid_t egid, uid_t ruid, gid_t rgid, pid_t pid, au_asid_t sid, au_tid_addr_t *tid) { + return (au_to_subject32_ex(auid, euid, egid, ruid, rgid, pid, sid, tid)); } @@ -1263,7 +1265,7 @@ timems = tm.tv_usec/1000; /* Add the timestamp */ ADD_U_INT32(dptr, tm.tv_sec); - ADD_U_INT32(dptr, timems); /* We need time in ms */ + ADD_U_INT32(dptr, timems); /* We need time in ms. */ return (t); } From owner-p4-projects@FreeBSD.ORG Mon Oct 17 12:30:27 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 06F3D16A421; Mon, 17 Oct 2005 12:30:27 +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 A414316A420 for ; Mon, 17 Oct 2005 12:30:26 +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 361DF43D7D for ; Mon, 17 Oct 2005 12:30:23 +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 j9HCUN5L056313 for ; Mon, 17 Oct 2005 12:30:23 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 j9HCUMQe056310 for perforce@freebsd.org; Mon, 17 Oct 2005 12:30:22 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 12:30:22 GMT Message-Id: <200510171230.j9HCUMQe056310@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 85430 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, 17 Oct 2005 12:30:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=85430 Change 85430 by rwatson@rwatson_zoo on 2005/10/17 12:29:58 Flag ARG_EXIT when storing exit arguments in an audit record. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#3 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#3 (text+ko) ==== @@ -74,6 +74,7 @@ ar->k_ar.ar_arg_exitstatus = status; ar->k_ar.ar_arg_exitretval = retval; + ar->k_ar.ar_valid_arg |= ARG_EXIT; } void From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:00:01 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 E9C6016A421; Mon, 17 Oct 2005 13:00:00 +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 751CC16A41F for ; Mon, 17 Oct 2005 13:00:00 +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 2CA1543D46 for ; Mon, 17 Oct 2005 13:00:00 +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 j9HD00gg064627 for ; Mon, 17 Oct 2005 13:00:00 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 j9HCxxna064624 for perforce@freebsd.org; Mon, 17 Oct 2005 12:59:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 12:59:59 GMT Message-Id: <200510171259.j9HCxxna064624@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 85432 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, 17 Oct 2005 13:00:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=85432 Change 85432 by rwatson@rwatson_zoo on 2005/10/17 12:59:03 In comparing /etc/audit_event and audit_kevents.h, annotate some differences that will need to be resolved. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#22 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#22 (text+ko) ==== @@ -177,9 +177,12 @@ #define AUE_SOCKET 183 #define AUE_SENDTO 184 #define AUE_PIPE 185 + /* XXXRW: XXX Solaris socketpair()? */ + /* XXXRW: XXX Solaris send()? */ #define AUE_SENDMSG 188 #define AUE_O_SEND AUE_SENDMSG #define AUE_O_SENDMSG AUE_SENDMSG + /* XXXRW: XXX Solaris recv()? */ #define AUE_RECVMSG 190 #define AUE_O_RECV AUE_RECVMSG #define AUE_O_RECVMSG AUE_RECVMSG @@ -191,11 +194,15 @@ #define AUE_WRITE 195 #define AUE_WRITEV 196 #define AUE_READV 198 -#define AUE_SETUID 200 -#define AUE_STIME 201 -#define AUE_UTIME 202 -#define AUE_NICE 203 -#define AUE_SETGID 205 + /* XXXRW: XXX Solaris old stat()? */ +#define AUE_SETUID 200 /* XXXRW: Solaris old setuid? */ +#define AUE_STIME 201 /* XXXRW: Solaris old stime? */ +#define AUE_UTIME 202 /* XXXRW: Solaris old utime? */ +#define AUE_NICE 203 /* XXXRW: Solaris old nice? */ + /* XXXRW: Solaris old setpgrp? */ +#define AUE_SETGID 205 /* XXXRW: Solaris old setgid? */ + /* XXXRW: Solaris readl? */ + /* XXXRW: Solaris readvl()? */ #define AUE_DUP2 209 #define AUE_MMAP 210 #define AUE_O_MMAP AUE_MMAP @@ -208,6 +215,7 @@ #define AUE_GETMSG 217 #define AUE_PUTPMSG 218 #define AUE_GETPMSG 219 + /* XXXRW: Solaris sc placeholder? */ #define AUE_AUDITON_GETKMASK 221 #define AUE_AUDITON_SETKMASK 222 #define AUE_AUDITON_GETCWD 223 @@ -220,7 +228,7 @@ #define AUE_AUDITON_SETCOND 230 #define AUE_AUDITON_GETCLASS 231 #define AUE_AUDITON_SETCLASS 232 -#define AUE_UTSYS 233 +#define AUE_UTSSYS 233 #define AUE_STATVFS 234 #define AUE_XSTAT 235 #define AUE_LXSTAT 236 @@ -229,6 +237,7 @@ #define AUE_SYSINFO 239 #define AUE_XMKNOD 240 #define AUE_FORK1 241 + /* XXXRW: Solaris modctl()? */ #define AUE_MODLOAD 243 #define AUE_MODUNLOAD 244 #define AUE_MODCONFIG 245 @@ -250,8 +259,8 @@ #define AUE_P_ONLINE 262 #define AUE_PROCESSOR_BIND 263 #define AUE_INST_SYNC 264 -#define AUE_SETAUDIT_ADDR 266 -#define AUE_GETAUDIT_ADDR 267 +#define AUE_SETAUDIT_ADDR 266 /* XXXRW: Not in audit_event */ +#define AUE_GETAUDIT_ADDR 267 /* XXXRW: Not in audit_event */ #define AUE_GETFSSTAT 301 #define AUE_PTRACE 302 #define AUE_CHFLAGS 303 @@ -267,8 +276,8 @@ #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_POLL 316 /* XXXRW: Not in audit_event */ +#define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */ #define AUE_FUTIMES 318 #define AUE_SETSID 319 #define AUE_SETPRIVEXEC 320 @@ -309,8 +318,8 @@ #define AUE_PTHREADKILL 350 #define AUE_PTHREADSIGMASK 351 #define AUE_AUDITCTL 352 -#define AUE_RFORK 353 -#define AUE_LCHMOD 354 +#define AUE_RFORK 353 /* XXXRW: Not in audit_event */ +#define AUE_LCHMOD 354 /* XXXRW: Not in audit_event */ #define AUE_SWAPOFF 355 #define AUE_INITPROCESS 356 #define AUE_MAPFD 357 @@ -332,9 +341,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 */ +#define AUE_EACCESS 376 /* FreeBSD XXXRW: Not in audit_event */ +#define AUE_KQUEUE 377 /* FreeBSD XXXRW: Not in audit_event */ +#define AUE_KEVENT 378 /* FreeBSD XXXRW: Not in audit_event */ /* * XXXRW: Values not yet assigned. From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:26:34 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 6B32F16A421; Mon, 17 Oct 2005 13:26: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 1EFAC16A41F for ; Mon, 17 Oct 2005 13:26: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 DD80E43D5C for ; Mon, 17 Oct 2005 13:26: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 j9HDQWAF065659 for ; Mon, 17 Oct 2005 13:26:32 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 j9HDQWrg065656 for perforce@freebsd.org; Mon, 17 Oct 2005 13:26:32 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 13:26:32 GMT Message-Id: <200510171326.j9HDQWrg065656@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 85433 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, 17 Oct 2005 13:26:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=85433 Change 85433 by rwatson@rwatson_zoo on 2005/10/17 13:25:39 Move AUE_CHMOD from administrative to file modification class by default. Add AUE_{GET,SET}AUDIT_ADDR() events, administrative. Add AUE_POLL, file access. Add AUE_RFORK, process event. Add AUE_LCHMOD, file attribute modify. Add AUE_EACCESS, AUE_KQUEUE, AUE_KEVENT as file access. This may well be the wrong class for KQ events. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_event#4 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/etc/audit_event#4 (text+ko) ==== @@ -8,7 +8,7 @@ 7:AUE_EXEC:exec(2):pc,ex 8:AUE_CHDIR:chdir(2):pc 9:AUE_MKNOD:mknod(2):ad -10:AUE_CHMOD:chmod(2):ad +10:AUE_CHMOD:chmod(2):fm 11:AUE_CHOWN:chown(2):fm 12:AUE_UMOUNT:umount(2) - old version:ad 13:AUE_JUNK:junk:no @@ -225,6 +225,8 @@ 262:AUE_P_ONLINE:p_online(2):ad 263:AUE_PROCESSOR_BIND:processor_bind(2):ad 264:AUE_INST_SYNC:inst_sync(2):ad +266:AUE_SETAUDIT_ADDR:setaudit_addr(2):ad +267:AUE_GETAUDIT_ADDR:getaudit_addr(2):ad 301:AUE_GETFSSTAT:getfsstat(2):fa 302:AUE_PTRACE:ptrace(2):pc 303:AUE_CHFLAGS:chflags(2):fm @@ -240,6 +242,7 @@ 313:AUE_SETTIMEOFDAY:settimeofday(2):ad 314:AUE_FLOCK:flock(2):fm 315:AUE_MKFIFO:mkfifo(2):fc +316:AUE_POLL:poll(2):fa 317:AUE_SOCKETPAIR:socketpair(2):nt 318:AUE_FUTIMES:futimes(2):fm 319:AUE_SETSID:setsid(2):pc @@ -276,6 +279,8 @@ 350:AUE_PTHREADKILL:pthread_kill(2):pc 351:AUE_PTHREADSIGMASK:pthread_sigmask(2):pc 352:AUE_AUDITCTL:auditctl(2):ad +353:AUE_RFORK:rfork(2):pc +354:AUE_LCHMOD:lchmod(2):fm 355:AUE_SWAPOFF:swapoff():ad 356:AUE_INITPROCESS:init_process():pc 357:AUE_MAPFD:map_fd():fa @@ -297,6 +302,9 @@ 373:AUE_FHOPEN:fhopen(2):fa 374:AUE_FHSTAT:fhstat(2):fa 375:AUE_JAIL:jail(2):pc +376:AUE_EACCESS:eaccess(2):fa +377:AUE_KQUEUE:kqueue(2):fa +378:AUE_KEVENT:kevent(2):fa 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 17 13:28:36 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 7179216A421; Mon, 17 Oct 2005 13:28:36 +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 33CA416A420 for ; Mon, 17 Oct 2005 13:28:36 +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 AD6BB43D48 for ; Mon, 17 Oct 2005 13:28:35 +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 j9HDSZ2N065821 for ; Mon, 17 Oct 2005 13:28:35 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 j9HDSZgJ065818 for perforce@freebsd.org; Mon, 17 Oct 2005 13:28:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 13:28:35 GMT Message-Id: <200510171328.j9HDSZgJ065818@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 85434 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, 17 Oct 2005 13:28:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=85434 Change 85434 by rwatson@rwatson_zoo on 2005/10/17 13:28:18 Remove bogus AU_WAIT4 entry in events list. Re-annotate events list following update of audit_event. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#23 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/audit_kevents.h#23 (text+ko) ==== @@ -259,8 +259,8 @@ #define AUE_P_ONLINE 262 #define AUE_PROCESSOR_BIND 263 #define AUE_INST_SYNC 264 -#define AUE_SETAUDIT_ADDR 266 /* XXXRW: Not in audit_event */ -#define AUE_GETAUDIT_ADDR 267 /* XXXRW: Not in audit_event */ +#define AUE_SETAUDIT_ADDR 266 +#define AUE_GETAUDIT_ADDR 267 #define AUE_GETFSSTAT 301 #define AUE_PTRACE 302 #define AUE_CHFLAGS 303 @@ -276,7 +276,7 @@ #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 /* XXXRW: Not in audit_event */ +#define AUE_POLL 316 #define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */ #define AUE_FUTIMES 318 #define AUE_SETSID 319 @@ -318,8 +318,8 @@ #define AUE_PTHREADKILL 350 #define AUE_PTHREADSIGMASK 351 #define AUE_AUDITCTL 352 -#define AUE_RFORK 353 /* XXXRW: Not in audit_event */ -#define AUE_LCHMOD 354 /* XXXRW: Not in audit_event */ +#define AUE_RFORK 353 +#define AUE_LCHMOD 354 #define AUE_SWAPOFF 355 #define AUE_INITPROCESS 356 #define AUE_MAPFD 357 @@ -341,9 +341,9 @@ #define AUE_FHOPEN 373 /* FreeBSD */ #define AUE_FHSTAT 374 /* FreeBSD */ #define AUE_JAIL 375 /* FreeBSD */ -#define AUE_EACCESS 376 /* FreeBSD XXXRW: Not in audit_event */ -#define AUE_KQUEUE 377 /* FreeBSD XXXRW: Not in audit_event */ -#define AUE_KEVENT 378 /* FreeBSD XXXRW: Not in audit_event */ +#define AUE_EACCESS 376 /* FreeBSD */ +#define AUE_KQUEUE 377 /* FreeBSD */ +#define AUE_KEVENT 378 /* FreeBSD */ /* * XXXRW: Values not yet assigned. @@ -443,6 +443,5 @@ #define AUE_TABLE AUE_NULL #define AUE_WAITEVENT AUE_NULL #define AUE_WATCHEVENT AUE_NULL -#define AU_WAIT4 AUE_NULL #endif /* !_BSM_AUDIT_KEVENTS_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Oct 17 13:48:00 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 3366F16A422; Mon, 17 Oct 2005 13:48:00 +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 B783A16A41F for ; Mon, 17 Oct 2005 13:47:59 +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 7BDC643D46 for ; Mon, 17 Oct 2005 13:47:59 +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 j9HDlxnJ066728 for ; Mon, 17 Oct 2005 13:47:59 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 j9HDlx9a066725 for perforce@freebsd.org; Mon, 17 Oct 2005 13:47:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 13:47:59 GMT Message-Id: <200510171347.j9HDlx9a066725@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 85435 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, 17 Oct 2005 13:48:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=85435 Change 85435 by rwatson@rwatson_zoo on 2005/10/17 13:47:11 Annotations, comments, and updates for the audit kernel event list and audit_event class entries and mappings. Affected files ... .. //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#9 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#3 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/bsm/audit_kevents.h#9 (text+ko) ==== @@ -177,9 +177,12 @@ #define AUE_SOCKET 183 #define AUE_SENDTO 184 #define AUE_PIPE 185 + /* XXXRW: XXX Solaris socketpair()? */ + /* XXXRW: XXX Solaris send()? */ #define AUE_SENDMSG 188 #define AUE_O_SEND AUE_SENDMSG #define AUE_O_SENDMSG AUE_SENDMSG + /* XXXRW: XXX Solaris recv()? */ #define AUE_RECVMSG 190 #define AUE_O_RECV AUE_RECVMSG #define AUE_O_RECVMSG AUE_RECVMSG @@ -191,11 +194,15 @@ #define AUE_WRITE 195 #define AUE_WRITEV 196 #define AUE_READV 198 -#define AUE_SETUID 200 -#define AUE_STIME 201 -#define AUE_UTIME 202 -#define AUE_NICE 203 -#define AUE_SETGID 205 + /* XXXRW: XXX Solaris old stat()? */ +#define AUE_SETUID 200 /* XXXRW: Solaris old setuid? */ +#define AUE_STIME 201 /* XXXRW: Solaris old stime? */ +#define AUE_UTIME 202 /* XXXRW: Solaris old utime? */ +#define AUE_NICE 203 /* XXXRW: Solaris old nice? */ + /* XXXRW: Solaris old setpgrp? */ +#define AUE_SETGID 205 /* XXXRW: Solaris old setgid? */ + /* XXXRW: Solaris readl? */ + /* XXXRW: Solaris readvl()? */ #define AUE_DUP2 209 #define AUE_MMAP 210 #define AUE_O_MMAP AUE_MMAP @@ -208,6 +215,7 @@ #define AUE_GETMSG 217 #define AUE_PUTPMSG 218 #define AUE_GETPMSG 219 + /* XXXRW: Solaris sc placeholder? */ #define AUE_AUDITON_GETKMASK 221 #define AUE_AUDITON_SETKMASK 222 #define AUE_AUDITON_GETCWD 223 @@ -220,7 +228,7 @@ #define AUE_AUDITON_SETCOND 230 #define AUE_AUDITON_GETCLASS 231 #define AUE_AUDITON_SETCLASS 232 -#define AUE_UTSYS 233 +#define AUE_UTSSYS 233 #define AUE_STATVFS 234 #define AUE_XSTAT 235 #define AUE_LXSTAT 236 @@ -229,6 +237,7 @@ #define AUE_SYSINFO 239 #define AUE_XMKNOD 240 #define AUE_FORK1 241 + /* XXXRW: Solaris modctl()? */ #define AUE_MODLOAD 243 #define AUE_MODUNLOAD 244 #define AUE_MODCONFIG 245 @@ -268,7 +277,7 @@ #define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */ #define AUE_MKFIFO 315 #define AUE_POLL 316 -#define AUE_SOCKETPAIR 317 +#define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */ #define AUE_FUTIMES 318 #define AUE_SETSID 319 #define AUE_SETPRIVEXEC 320 @@ -434,6 +443,5 @@ #define AUE_TABLE AUE_NULL #define AUE_WAITEVENT AUE_NULL #define AUE_WATCHEVENT AUE_NULL -#define AU_WAIT4 AUE_NULL #endif /* !_BSM_AUDIT_KEVENTS_H_ */ ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#3 (text+ko) ==== @@ -8,7 +8,7 @@ 7:AUE_EXEC:exec(2):pc,ex 8:AUE_CHDIR:chdir(2):pc 9:AUE_MKNOD:mknod(2):ad -10:AUE_CHMOD:chmod(2):ad +10:AUE_CHMOD:chmod(2):fm 11:AUE_CHOWN:chown(2):fm 12:AUE_UMOUNT:umount(2) - old version:ad 13:AUE_JUNK:junk:no @@ -225,6 +225,8 @@ 262:AUE_P_ONLINE:p_online(2):ad 263:AUE_PROCESSOR_BIND:processor_bind(2):ad 264:AUE_INST_SYNC:inst_sync(2):ad +266:AUE_SETAUDIT_ADDR:setaudit_addr(2):ad +267:AUE_GETAUDIT_ADDR:getaudit_addr(2):ad 301:AUE_GETFSSTAT:getfsstat(2):fa 302:AUE_PTRACE:ptrace(2):pc 303:AUE_CHFLAGS:chflags(2):fm @@ -240,6 +242,7 @@ 313:AUE_SETTIMEOFDAY:settimeofday(2):ad 314:AUE_FLOCK:flock(2):fm 315:AUE_MKFIFO:mkfifo(2):fc +316:AUE_POLL:poll(2):fa 317:AUE_SOCKETPAIR:socketpair(2):nt 318:AUE_FUTIMES:futimes(2):fm 319:AUE_SETSID:setsid(2):pc @@ -276,6 +279,8 @@ 350:AUE_PTHREADKILL:pthread_kill(2):pc 351:AUE_PTHREADSIGMASK:pthread_sigmask(2):pc 352:AUE_AUDITCTL:auditctl(2):ad +353:AUE_RFORK:rfork(2):pc +354:AUE_LCHMOD:lchmod(2):fm 355:AUE_SWAPOFF:swapoff():ad 356:AUE_INITPROCESS:init_process():pc 357:AUE_MAPFD:map_fd():fa @@ -297,6 +302,9 @@ 373:AUE_FHOPEN:fhopen(2):fa 374:AUE_FHSTAT:fhstat(2):fa 375:AUE_JAIL:jail(2):pc +376:AUE_EACCESS:eaccess(2):fa +377:AUE_KQUEUE:kqueue(2):fa +378:AUE_KEVENT:kevent(2):fa 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 17 13:48:01 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 7958116A441; Mon, 17 Oct 2005 13:48:00 +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 235AD16A420 for ; Mon, 17 Oct 2005 13:48:00 +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 C78A743D48 for ; Mon, 17 Oct 2005 13:47:59 +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 j9HDlxIT066734 for ; Mon, 17 Oct 2005 13:47:59 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 j9HDlxfw066731 for perforce@freebsd.org; Mon, 17 Oct 2005 13:47:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 13:47:59 GMT Message-Id: <200510171347.j9HDlxfw066731@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 85436 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, 17 Oct 2005 13:48:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=85436 Change 85436 by rwatson@rwatson_zoo on 2005/10/17 13:47:44 Integrate OpenBSM audit event changes into audit3 kernel. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#10 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/sys/bsm/audit_kevents.h#10 (text+ko) ==== @@ -177,9 +177,12 @@ #define AUE_SOCKET 183 #define AUE_SENDTO 184 #define AUE_PIPE 185 + /* XXXRW: XXX Solaris socketpair()? */ + /* XXXRW: XXX Solaris send()? */ #define AUE_SENDMSG 188 #define AUE_O_SEND AUE_SENDMSG #define AUE_O_SENDMSG AUE_SENDMSG + /* XXXRW: XXX Solaris recv()? */ #define AUE_RECVMSG 190 #define AUE_O_RECV AUE_RECVMSG #define AUE_O_RECVMSG AUE_RECVMSG @@ -191,11 +194,15 @@ #define AUE_WRITE 195 #define AUE_WRITEV 196 #define AUE_READV 198 -#define AUE_SETUID 200 -#define AUE_STIME 201 -#define AUE_UTIME 202 -#define AUE_NICE 203 -#define AUE_SETGID 205 + /* XXXRW: XXX Solaris old stat()? */ +#define AUE_SETUID 200 /* XXXRW: Solaris old setuid? */ +#define AUE_STIME 201 /* XXXRW: Solaris old stime? */ +#define AUE_UTIME 202 /* XXXRW: Solaris old utime? */ +#define AUE_NICE 203 /* XXXRW: Solaris old nice? */ + /* XXXRW: Solaris old setpgrp? */ +#define AUE_SETGID 205 /* XXXRW: Solaris old setgid? */ + /* XXXRW: Solaris readl? */ + /* XXXRW: Solaris readvl()? */ #define AUE_DUP2 209 #define AUE_MMAP 210 #define AUE_O_MMAP AUE_MMAP @@ -208,6 +215,7 @@ #define AUE_GETMSG 217 #define AUE_PUTPMSG 218 #define AUE_GETPMSG 219 + /* XXXRW: Solaris sc placeholder? */ #define AUE_AUDITON_GETKMASK 221 #define AUE_AUDITON_SETKMASK 222 #define AUE_AUDITON_GETCWD 223 @@ -220,7 +228,7 @@ #define AUE_AUDITON_SETCOND 230 #define AUE_AUDITON_GETCLASS 231 #define AUE_AUDITON_SETCLASS 232 -#define AUE_UTSYS 233 +#define AUE_UTSSYS 233 #define AUE_STATVFS 234 #define AUE_XSTAT 235 #define AUE_LXSTAT 236 @@ -229,6 +237,7 @@ #define AUE_SYSINFO 239 #define AUE_XMKNOD 240 #define AUE_FORK1 241 + /* XXXRW: Solaris modctl()? */ #define AUE_MODLOAD 243 #define AUE_MODUNLOAD 244 #define AUE_MODCONFIG 245 @@ -268,7 +277,7 @@ #define AUE_FLOCK 314 /* XXX: See AUE_SOLARIS_FLOCK. */ #define AUE_MKFIFO 315 #define AUE_POLL 316 -#define AUE_SOCKETPAIR 317 +#define AUE_SOCKETPAIR 317 /* XXXRW: What about 186? */ #define AUE_FUTIMES 318 #define AUE_SETSID 319 #define AUE_SETPRIVEXEC 320 @@ -434,6 +443,5 @@ #define AUE_TABLE AUE_NULL #define AUE_WAITEVENT AUE_NULL #define AUE_WATCHEVENT AUE_NULL -#define AU_WAIT4 AUE_NULL #endif /* !_BSM_AUDIT_KEVENTS_H_ */ From owner-p4-projects@FreeBSD.ORG Mon Oct 17 14:05:23 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 143EC16A422; Mon, 17 Oct 2005 14:05:23 +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 B0CEC16A420 for ; Mon, 17 Oct 2005 14:05:22 +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 AF68643D49 for ; Mon, 17 Oct 2005 14:05:21 +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 j9HE5LEr067598 for ; Mon, 17 Oct 2005 14:05:21 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 j9HE5LI7067595 for perforce@freebsd.org; Mon, 17 Oct 2005 14:05:21 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 14:05:21 GMT Message-Id: <200510171405.j9HE5LI7067595@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 85438 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, 17 Oct 2005 14:05:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=85438 Change 85438 by rwatson@rwatson_zoo on 2005/10/17 14:04:51 Further tweaking of mapping of audit events to audit classes. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_event#5 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/etc/audit_event#5 (text+ko) ==== @@ -7,7 +7,7 @@ 6:AUE_UNLINK:unlink(2):fd 7:AUE_EXEC:exec(2):pc,ex 8:AUE_CHDIR:chdir(2):pc -9:AUE_MKNOD:mknod(2):ad +9:AUE_MKNOD:mknod(2):fc 10:AUE_CHMOD:chmod(2):fm 11:AUE_CHOWN:chown(2):fm 12:AUE_UMOUNT:umount(2) - old version:ad @@ -17,7 +17,7 @@ 16:AUE_STAT:stat(2):fa 17:AUE_LSTAT:lstat(2):fa 18:AUE_ACCT:acct(2):ad -19:AUE_MCTL:mctl(2):fm +19:AUE_MCTL:mctl(2):no 20:AUE_REBOOT:reboot(2):ad 21:AUE_SYMLINK:symlink(2):fc 22:AUE_READLINK:readlink(2):fr @@ -41,15 +41,15 @@ 40:AUE_SETREUID:setreuid(2):pc 41:AUE_SETREGID:setregid(2):pc 42:AUE_RENAME:rename(2):fc,fd -43:AUE_TRUNCATE:truncate(2):fd -44:AUE_FTRUNCATE:ftruncate(2):fd +43:AUE_TRUNCATE:truncate(2):fw +44:AUE_FTRUNCATE:ftruncate(2):fw 45:AUE_FLOCK:flock(2):fm 46:AUE_SHUTDOWN:shutdown(2):nt 47:AUE_MKDIR:mkdir(2):fc -48:AUE_RMDIR:rmdir(2):fc +48:AUE_RMDIR:rmdir(2):fd 49:AUE_UTIMES:utimes(2):fm 50:AUE_ADJTIME:adjtime(2):ad -51:AUE_SETRLIMIT:setrlimit(2):ad +51:AUE_SETRLIMIT:setrlimit(2):pc 52:AUE_KILLPG:killpg(2):pc 53:AUE_NFS_SVC:nfs_svc(2):ad 54:AUE_STATFS:statfs(2):fa @@ -61,14 +61,14 @@ 60:AUE_QUOTACTL:quotactl(2):ad 61:AUE_EXPORTFS:exportfs(2):ad 62:AUE_MOUNT:mount(2):ad -63:AUE_SEMSYS:semsys(2):fa -64:AUE_MSGSYS:msgsys(2):fa -65:AUE_SHMSYS:shmsys(2):fa -66:AUE_BSMSYS:bsmsys(2):fa -67:AUE_RFSSYS:rfssys(2):fa +63:AUE_SEMSYS:semsys(2):ip +64:AUE_MSGSYS:msgsys(2):ip +65:AUE_SHMSYS:shmsys(2):ip +66:AUE_BSMSYS:bsmsys(2):ad +67:AUE_RFSSYS:rfssys(2):ad 68:AUE_FCHDIR:fchdir(2):pc 69:AUE_FCHROOT:fchroot(2):pc -70:AUE_VPIXSYS:vpixsys(2):fa +70:AUE_VPIXSYS:vpixsys(2):no 71:AUE_PATHCONF:pathconf(2):fa 72:AUE_OPEN_R:open(2) - read:fr 73:AUE_OPEN_RC:open(2) - read,creat:fc,fr,fa,fm @@ -114,8 +114,8 @@ 113:AUE_SYSTEMBOOT:system booted:na 114:AUE_ASYNC_DAEMON_EXIT:async_daemon(2) exited:ad 115:AUE_NFSSVC_EXIT:nfssvc(2) exited:ad -128:AUE_WRITEL:writel(2):fm -129:AUE_WRITEVL:writevl(2):fm +128:AUE_WRITEL:writel(2):fw +129:AUE_WRITEVL:writevl(2):fw 130:AUE_GETAUID:getauid(2):ad 131:AUE_SETAUID:setauid(2):ad 132:AUE_GETAUDIT:getaudit(2):ad @@ -135,8 +135,8 @@ 148:AUE_SETKERNSTATE:setkernstate(2):ad 149:AUE_GETPORTAUDIT:getportaudit(2):ad 150:AUE_AUDITSTAT:auditstat(2):ad -153:AUE_ENTERPROM:enter prom:na -154:AUE_EXITPROM:exit prom:na +153:AUE_ENTERPROM:enter prom:ad +154:AUE_EXITPROM:exit prom:ad 158:AUE_IOCTL:ioctl(2):io 173:AUE_ONESIDE:one-sided session record:nt 174:AUE_MSGGETL:msggetl(2):ip @@ -146,11 +146,11 @@ 178:AUE_SHMGETL:shmgetl(2):ip 183:AUE_SOCKET:socket(2):nt 184:AUE_SENDTO:sendto(2):nt -185:AUE_PIPE:pipe(2):no -186:AUE_SOCKETPAIR:socketpair(2):no -187:AUE_SEND:send(2):no +185:AUE_PIPE:pipe(2):ip +186:AUE_SOCKETPAIR:socketpair(2):nt +187:AUE_SEND:send(2):nt 188:AUE_SENDMSG:sendmsg(2):nt -189:AUE_RECV:recv(2):no +189:AUE_RECV:recv(2):nt 190:AUE_RECVMSG:recvmsg(2):nt 191:AUE_RECVFROM:recvfrom(2):nt 192:AUE_READ:read(2):no @@ -158,7 +158,7 @@ 194:AUE_LSEEK:lseek(2):no 195:AUE_WRITE:write(2):no 196:AUE_WRITEV:writev(2):no -197:AUE_NFS:nfs server:no +197:AUE_NFS:nfs server:ad 198:AUE_READV:readv(2):no 199:AUE_OSTAT:old stat(2):fa 200:AUE_OSETUID:old setuid(2):pc @@ -170,7 +170,7 @@ 206:AUE_READL:readl(2):no 207:AUE_READVL:readvl(2):no 209:AUE_DUP2:dup2(2):no -210:AUE_MMAP:mmap(2):fa +210:AUE_MMAP:mmap(2):no 211:AUE_AUDIT:audit(2):ot 212:AUE_PRIOCNTLSYS:priocntlsys(2):pc 213:AUE_MUNMAP:munmap(2):cl @@ -180,7 +180,7 @@ 217:AUE_GETMSG:getmsg(2):nt 218:AUE_PUTPMSG:putpmsg(2):nt 219:AUE_GETPMSG:getpmsg(2):nt -220:AUE_AUDITSYS:audit system calls place holder:fa +220:AUE_AUDITSYS:audit system calls place holder:no 221:AUE_AUDITON_GETKMASK:auditon(2) - get kernel mask:ad 222:AUE_AUDITON_SETKMASK:auditon(2) - set kernel mask:ad 223:AUE_AUDITON_GETCWD:auditon(2) - get cwd:ad @@ -242,12 +242,12 @@ 313:AUE_SETTIMEOFDAY:settimeofday(2):ad 314:AUE_FLOCK:flock(2):fm 315:AUE_MKFIFO:mkfifo(2):fc -316:AUE_POLL:poll(2):fa +316:AUE_POLL:poll(2):no 317:AUE_SOCKETPAIR:socketpair(2):nt 318:AUE_FUTIMES:futimes(2):fm 319:AUE_SETSID:setsid(2):pc 320:AUE_SETPRIVEXEC:setprivexec(2):pc -321:AUE_NFSSVC:nfssvc(2):ot +321:AUE_NFSSVC:nfssvc(2):ad 322:AUE_GETFH:getfh(2):fa 323:AUE_QUOTACTL:quotactl(2):ad 324:AUE_ADDPROFILE:system call:pc @@ -255,8 +255,8 @@ 326:AUE_FSTAT:fstat(2):fa 327:AUE_FPATHCONF:fpathconf(2):fa 328:AUE_GETDIRENTRIES:getdirentries(2):fr -329:AUE_TRUNCATE:truncate(2):fm -330:AUE_FTRUNCATE:ftruncate(2):fm +329:AUE_TRUNCATE:truncate(2):fw +330:AUE_FTRUNCATE:ftruncate(2):fw 331:AUE_SYSCTL:sysctl(3):ad 332:AUE_MLOCK:mlock(2):pc 333:AUE_MUNLOCK:munlock(2):pc @@ -264,7 +264,7 @@ 335:AUE_GETATTRLIST:getattrlist():fa 336:AUE_SETATTRLIST:setattrlist():fm 337:AUE_GETDIRENTRIESATTR:getdirentriesattr():fa -338:AUE_EXCHANGEDATA:exchangedata():fm +338:AUE_EXCHANGEDATA:exchangedata():fw 339:AUE_SEARCHFS:searchfs():fa 340:AUE_MINHERIT:minherit(2):pc 341:AUE_SEMCONFIG:semconfig():ip @@ -303,8 +303,8 @@ 374:AUE_FHSTAT:fhstat(2):fa 375:AUE_JAIL:jail(2):pc 376:AUE_EACCESS:eaccess(2):fa -377:AUE_KQUEUE:kqueue(2):fa -378:AUE_KEVENT:kevent(2):fa +377:AUE_KQUEUE:kqueue(2):no +378:AUE_KEVENT:kevent(2):no 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 17 14:08:27 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 EBFFE16A421; Mon, 17 Oct 2005 14:08:26 +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 C532B16A41F for ; Mon, 17 Oct 2005 14:08:26 +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 8866243D46 for ; Mon, 17 Oct 2005 14:08:26 +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 j9HE8QOc067731 for ; Mon, 17 Oct 2005 14:08:26 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 j9HE8QB1067728 for perforce@freebsd.org; Mon, 17 Oct 2005 14:08:26 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 14:08:26 GMT Message-Id: <200510171408.j9HE8QB1067728@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 85440 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, 17 Oct 2005 14:08:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=85440 Change 85440 by rwatson@rwatson_zoo on 2005/10/17 14:07:47 Class mapping tweaks for audit events. Affected files ... .. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#4 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#4 (text+ko) ==== @@ -7,7 +7,7 @@ 6:AUE_UNLINK:unlink(2):fd 7:AUE_EXEC:exec(2):pc,ex 8:AUE_CHDIR:chdir(2):pc -9:AUE_MKNOD:mknod(2):ad +9:AUE_MKNOD:mknod(2):fc 10:AUE_CHMOD:chmod(2):fm 11:AUE_CHOWN:chown(2):fm 12:AUE_UMOUNT:umount(2) - old version:ad @@ -17,7 +17,7 @@ 16:AUE_STAT:stat(2):fa 17:AUE_LSTAT:lstat(2):fa 18:AUE_ACCT:acct(2):ad -19:AUE_MCTL:mctl(2):fm +19:AUE_MCTL:mctl(2):no 20:AUE_REBOOT:reboot(2):ad 21:AUE_SYMLINK:symlink(2):fc 22:AUE_READLINK:readlink(2):fr @@ -41,15 +41,15 @@ 40:AUE_SETREUID:setreuid(2):pc 41:AUE_SETREGID:setregid(2):pc 42:AUE_RENAME:rename(2):fc,fd -43:AUE_TRUNCATE:truncate(2):fd -44:AUE_FTRUNCATE:ftruncate(2):fd +43:AUE_TRUNCATE:truncate(2):fw +44:AUE_FTRUNCATE:ftruncate(2):fw 45:AUE_FLOCK:flock(2):fm 46:AUE_SHUTDOWN:shutdown(2):nt 47:AUE_MKDIR:mkdir(2):fc -48:AUE_RMDIR:rmdir(2):fc +48:AUE_RMDIR:rmdir(2):fd 49:AUE_UTIMES:utimes(2):fm 50:AUE_ADJTIME:adjtime(2):ad -51:AUE_SETRLIMIT:setrlimit(2):ad +51:AUE_SETRLIMIT:setrlimit(2):pc 52:AUE_KILLPG:killpg(2):pc 53:AUE_NFS_SVC:nfs_svc(2):ad 54:AUE_STATFS:statfs(2):fa @@ -61,14 +61,14 @@ 60:AUE_QUOTACTL:quotactl(2):ad 61:AUE_EXPORTFS:exportfs(2):ad 62:AUE_MOUNT:mount(2):ad -63:AUE_SEMSYS:semsys(2):fa -64:AUE_MSGSYS:msgsys(2):fa -65:AUE_SHMSYS:shmsys(2):fa -66:AUE_BSMSYS:bsmsys(2):fa -67:AUE_RFSSYS:rfssys(2):fa +63:AUE_SEMSYS:semsys(2):ip +64:AUE_MSGSYS:msgsys(2):ip +65:AUE_SHMSYS:shmsys(2):ip +66:AUE_BSMSYS:bsmsys(2):ad +67:AUE_RFSSYS:rfssys(2):ad 68:AUE_FCHDIR:fchdir(2):pc 69:AUE_FCHROOT:fchroot(2):pc -70:AUE_VPIXSYS:vpixsys(2):fa +70:AUE_VPIXSYS:vpixsys(2):no 71:AUE_PATHCONF:pathconf(2):fa 72:AUE_OPEN_R:open(2) - read:fr 73:AUE_OPEN_RC:open(2) - read,creat:fc,fr,fa,fm @@ -114,8 +114,8 @@ 113:AUE_SYSTEMBOOT:system booted:na 114:AUE_ASYNC_DAEMON_EXIT:async_daemon(2) exited:ad 115:AUE_NFSSVC_EXIT:nfssvc(2) exited:ad -128:AUE_WRITEL:writel(2):fm -129:AUE_WRITEVL:writevl(2):fm +128:AUE_WRITEL:writel(2):fw +129:AUE_WRITEVL:writevl(2):fw 130:AUE_GETAUID:getauid(2):ad 131:AUE_SETAUID:setauid(2):ad 132:AUE_GETAUDIT:getaudit(2):ad @@ -135,8 +135,8 @@ 148:AUE_SETKERNSTATE:setkernstate(2):ad 149:AUE_GETPORTAUDIT:getportaudit(2):ad 150:AUE_AUDITSTAT:auditstat(2):ad -153:AUE_ENTERPROM:enter prom:na -154:AUE_EXITPROM:exit prom:na +153:AUE_ENTERPROM:enter prom:ad +154:AUE_EXITPROM:exit prom:ad 158:AUE_IOCTL:ioctl(2):io 173:AUE_ONESIDE:one-sided session record:nt 174:AUE_MSGGETL:msggetl(2):ip @@ -146,11 +146,11 @@ 178:AUE_SHMGETL:shmgetl(2):ip 183:AUE_SOCKET:socket(2):nt 184:AUE_SENDTO:sendto(2):nt -185:AUE_PIPE:pipe(2):no -186:AUE_SOCKETPAIR:socketpair(2):no -187:AUE_SEND:send(2):no +185:AUE_PIPE:pipe(2):ip +186:AUE_SOCKETPAIR:socketpair(2):nt +187:AUE_SEND:send(2):nt 188:AUE_SENDMSG:sendmsg(2):nt -189:AUE_RECV:recv(2):no +189:AUE_RECV:recv(2):nt 190:AUE_RECVMSG:recvmsg(2):nt 191:AUE_RECVFROM:recvfrom(2):nt 192:AUE_READ:read(2):no @@ -158,7 +158,7 @@ 194:AUE_LSEEK:lseek(2):no 195:AUE_WRITE:write(2):no 196:AUE_WRITEV:writev(2):no -197:AUE_NFS:nfs server:no +197:AUE_NFS:nfs server:ad 198:AUE_READV:readv(2):no 199:AUE_OSTAT:old stat(2):fa 200:AUE_OSETUID:old setuid(2):pc @@ -170,7 +170,7 @@ 206:AUE_READL:readl(2):no 207:AUE_READVL:readvl(2):no 209:AUE_DUP2:dup2(2):no -210:AUE_MMAP:mmap(2):fa +210:AUE_MMAP:mmap(2):no 211:AUE_AUDIT:audit(2):ot 212:AUE_PRIOCNTLSYS:priocntlsys(2):pc 213:AUE_MUNMAP:munmap(2):cl @@ -180,7 +180,7 @@ 217:AUE_GETMSG:getmsg(2):nt 218:AUE_PUTPMSG:putpmsg(2):nt 219:AUE_GETPMSG:getpmsg(2):nt -220:AUE_AUDITSYS:audit system calls place holder:fa +220:AUE_AUDITSYS:audit system calls place holder:no 221:AUE_AUDITON_GETKMASK:auditon(2) - get kernel mask:ad 222:AUE_AUDITON_SETKMASK:auditon(2) - set kernel mask:ad 223:AUE_AUDITON_GETCWD:auditon(2) - get cwd:ad @@ -242,12 +242,12 @@ 313:AUE_SETTIMEOFDAY:settimeofday(2):ad 314:AUE_FLOCK:flock(2):fm 315:AUE_MKFIFO:mkfifo(2):fc -316:AUE_POLL:poll(2):fa +316:AUE_POLL:poll(2):no 317:AUE_SOCKETPAIR:socketpair(2):nt 318:AUE_FUTIMES:futimes(2):fm 319:AUE_SETSID:setsid(2):pc 320:AUE_SETPRIVEXEC:setprivexec(2):pc -321:AUE_NFSSVC:nfssvc(2):ot +321:AUE_NFSSVC:nfssvc(2):ad 322:AUE_GETFH:getfh(2):fa 323:AUE_QUOTACTL:quotactl(2):ad 324:AUE_ADDPROFILE:system call:pc @@ -255,8 +255,8 @@ 326:AUE_FSTAT:fstat(2):fa 327:AUE_FPATHCONF:fpathconf(2):fa 328:AUE_GETDIRENTRIES:getdirentries(2):fr -329:AUE_TRUNCATE:truncate(2):fm -330:AUE_FTRUNCATE:ftruncate(2):fm +329:AUE_TRUNCATE:truncate(2):fw +330:AUE_FTRUNCATE:ftruncate(2):fw 331:AUE_SYSCTL:sysctl(3):ad 332:AUE_MLOCK:mlock(2):pc 333:AUE_MUNLOCK:munlock(2):pc @@ -264,7 +264,7 @@ 335:AUE_GETATTRLIST:getattrlist():fa 336:AUE_SETATTRLIST:setattrlist():fm 337:AUE_GETDIRENTRIESATTR:getdirentriesattr():fa -338:AUE_EXCHANGEDATA:exchangedata():fm +338:AUE_EXCHANGEDATA:exchangedata():fw 339:AUE_SEARCHFS:searchfs():fa 340:AUE_MINHERIT:minherit(2):pc 341:AUE_SEMCONFIG:semconfig():ip @@ -303,8 +303,8 @@ 374:AUE_FHSTAT:fhstat(2):fa 375:AUE_JAIL:jail(2):pc 376:AUE_EACCESS:eaccess(2):fa -377:AUE_KQUEUE:kqueue(2):fa -378:AUE_KEVENT:kevent(2):fa +377:AUE_KQUEUE:kqueue(2):no +378:AUE_KEVENT:kevent(2):no 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 17 14:39: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 4611016A421; Mon, 17 Oct 2005 14:39: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 0345616A41F for ; Mon, 17 Oct 2005 14:39:11 +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 886FD43D64 for ; Mon, 17 Oct 2005 14:39:05 +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 j9HEd5c3071330 for ; Mon, 17 Oct 2005 14:39:05 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 j9HEd4tW071327 for perforce@freebsd.org; Mon, 17 Oct 2005 14:39:04 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 14:39:04 GMT Message-Id: <200510171439.j9HEd4tW071327@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 85443 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, 17 Oct 2005 14:39:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=85443 Change 85443 by rwatson@rwatson_zoo on 2005/10/17 14:38:23 Audit the pid being requested in wait4(). Solaris appears not to audit wait4(), so we don't currently model it on a standard BSM audit record. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_exit.c#9 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#22 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_exit.c#9 (text+ko) ==== @@ -594,6 +594,8 @@ struct proc *p, *q, *t; int error, nfound; + AUDIT_ARG(pid, pid); + q = td->td_proc; if (pid == 0) { PROC_LOCK(q); ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#22 (text+ko) ==== @@ -1018,6 +1018,11 @@ kau_write(rec, tok); break; + case AUE_WAIT4: + tok = au_to_arg32(0, "pid", ar->ar_arg_pid); + kau_write(rec, tok); + break; + default: /* We shouldn't fall through to here. */ printf("BSM conversion requested for unknown event %d\n", ar->ar_event); From owner-p4-projects@FreeBSD.ORG Mon Oct 17 14:44:12 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 545B116A422; Mon, 17 Oct 2005 14:44: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 01F1C16A41F for ; Mon, 17 Oct 2005 14:44:12 +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 C1EB543D48 for ; Mon, 17 Oct 2005 14:44:11 +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 j9HEiBdM071631 for ; Mon, 17 Oct 2005 14:44:11 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 j9HEiBKO071628 for perforce@freebsd.org; Mon, 17 Oct 2005 14:44:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 14:44:11 GMT Message-Id: <200510171444.j9HEiBKO071628@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 85444 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, 17 Oct 2005 14:44:13 -0000 http://perforce.freebsd.org/chv.cgi?CH=85444 Change 85444 by rwatson@rwatson_zoo on 2005/10/17 14:43:24 The 'ip' class is not just for System V IPC, but a broad range of IPC types; relabel to 'ipc' to reflect that. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_class#2 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/etc/audit_class#2 (text+ko) ==== @@ -11,7 +11,7 @@ 0x00000040:cl:file close 0x00000080:pc:process 0x00000100:nt:network -0x00000200:ip:Sys V ipc +0x00000200:ip:ipc 0x00000400:na:non attributable 0x00000800:ad:administrative 0x00001000:lo:login_logout From owner-p4-projects@FreeBSD.ORG Mon Oct 17 14:44: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 9BA0416A442; Mon, 17 Oct 2005 14:44: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 4EF9A16A420 for ; Mon, 17 Oct 2005 14:44:12 +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 1BFDE43D48 for ; Mon, 17 Oct 2005 14:44:12 +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 j9HEiCN6071637 for ; Mon, 17 Oct 2005 14:44:12 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 j9HEiBg7071634 for perforce@freebsd.org; Mon, 17 Oct 2005 14:44:11 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 14:44:11 GMT Message-Id: <200510171444.j9HEiBg7071634@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 85445 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, 17 Oct 2005 14:44:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=85445 Change 85445 by rwatson@rwatson_zoo on 2005/10/17 14:43:59 Treat AUE_SETLOGIN as a process state event, similar to setuid/etc, as the login/logout even will be reported by user space. Affected files ... .. //depot/projects/trustedbsd/openbsm/etc/audit_event#6 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/etc/audit_event#6 (text+ko) ==== @@ -233,7 +233,7 @@ 304:AUE_FCHFLAGS:fchflags(2):fm 305:AUE_PROFILE:profil(2):pc 306:AUE_KTRACE:ktrace(2):pc -307:AUE_SETLOGIN:setlogin(2):lo +307:AUE_SETLOGIN:setlogin(2):pc 308:AUE_REBOOT:reboot(2):ad 309:AUE_REVOKE:revoke(2):cl 310:AUE_UMASK:umask(2):pc From owner-p4-projects@FreeBSD.ORG Mon Oct 17 15:42:29 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 A78D716A421; Mon, 17 Oct 2005 15:42:28 +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 60DAD16A41F for ; Mon, 17 Oct 2005 15:42:28 +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 2A2D143D48 for ; Mon, 17 Oct 2005 15:42:28 +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 j9HFgSeN073997 for ; Mon, 17 Oct 2005 15:42:28 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 j9HFgRhI073994 for perforce@freebsd.org; Mon, 17 Oct 2005 15:42:27 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 15:42:27 GMT Message-Id: <200510171542.j9HFgRhI073994@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 85448 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, 17 Oct 2005 15:42:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=85448 Change 85448 by rwatson@rwatson_zoo on 2005/10/17 15:41:26 In execve(), audit the path name being executed. Annotate that it would also be good to audit the pathname of the interpreter, if any. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 (text+ko) ==== @@ -350,10 +350,13 @@ /* * Translate the file name. namei() returns a vnode pointer * in ni_vp amoung other things. + * + * XXXAUDIT: It would be desirable to also audit the name of the + * interpreter if this is an interpreted binary. */ ndp = &nd; - NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE, - UIO_SYSSPACE, args->fname, td); + NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE | + AUDITVNPATH1, UIO_SYSSPACE, args->fname, td); interpret: error = namei(ndp); From owner-p4-projects@FreeBSD.ORG Mon Oct 17 15:54:44 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 D402A16A421; Mon, 17 Oct 2005 15:54:43 +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 91FC316A41F for ; Mon, 17 Oct 2005 15:54:43 +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 5D3AC43D46 for ; Mon, 17 Oct 2005 15:54:43 +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 j9HFshOp074486 for ; Mon, 17 Oct 2005 15:54:43 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 j9HFshWx074483 for perforce@freebsd.org; Mon, 17 Oct 2005 15:54:43 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 15:54:43 GMT Message-Id: <200510171554.j9HFshWx074483@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 85449 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, 17 Oct 2005 15:54:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=85449 Change 85449 by rwatson@rwatson_zoo on 2005/10/17 15:53:48 Integrate additional OpenBSM /etc tweaks from the OpenBSM branch to the audit3 branch. Affected files ... .. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_class#2 integrate .. //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#5 integrate Differences ... ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_class#2 (text+ko) ==== @@ -11,7 +11,7 @@ 0x00000040:cl:file close 0x00000080:pc:process 0x00000100:nt:network -0x00000200:ip:Sys V ipc +0x00000200:ip:ipc 0x00000400:na:non attributable 0x00000800:ad:administrative 0x00001000:lo:login_logout ==== //depot/projects/trustedbsd/audit3/contrib/openbsm/etc/audit_event#5 (text+ko) ==== @@ -233,7 +233,7 @@ 304:AUE_FCHFLAGS:fchflags(2):fm 305:AUE_PROFILE:profil(2):pc 306:AUE_KTRACE:ktrace(2):pc -307:AUE_SETLOGIN:setlogin(2):lo +307:AUE_SETLOGIN:setlogin(2):pc 308:AUE_REBOOT:reboot(2):ad 309:AUE_REVOKE:revoke(2):cl 310:AUE_UMASK:umask(2):pc From owner-p4-projects@FreeBSD.ORG Mon Oct 17 18:19:23 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 0877516A423; Mon, 17 Oct 2005 18:19:23 +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 B7F2C16A41F for ; Mon, 17 Oct 2005 18:19:22 +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 4151343D45 for ; Mon, 17 Oct 2005 18:19:22 +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 j9HIJMd9094476 for ; Mon, 17 Oct 2005 18:19:22 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HIJLmW094473 for perforce@freebsd.org; Mon, 17 Oct 2005 18:19:21 GMT (envelope-from jhb@freebsd.org) Date: Mon, 17 Oct 2005 18:19:21 GMT Message-Id: <200510171819.j9HIJLmW094473@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 85454 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, 17 Oct 2005 18:19:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=85454 Change 85454 by jhb@jhb_slimer on 2005/10/17 18:18:30 IFC @85453. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/promcons.c#23 integrate .. //depot/projects/smpng/sys/alpha/tlsb/zs_tlsb.c#19 integrate .. //depot/projects/smpng/sys/amd64/amd64/identcpu.c#13 integrate .. //depot/projects/smpng/sys/amd64/amd64/initcpu.c#5 integrate .. //depot/projects/smpng/sys/amd64/include/md_var.h#11 integrate .. //depot/projects/smpng/sys/amd64/include/specialreg.h#8 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#10 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#6 integrate .. //depot/projects/smpng/sys/boot/i386/boot2/boot2.c#28 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#25 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#21 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#21 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#21 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#21 integrate .. //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#21 integrate .. //depot/projects/smpng/sys/dev/cx/if_cx.c#22 integrate .. //depot/projects/smpng/sys/dev/cy/cy.c#7 integrate .. //depot/projects/smpng/sys/dev/dcons/dcons_os.c#5 integrate .. //depot/projects/smpng/sys/dev/digi/digi.c#30 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_isa.c#13 integrate .. //depot/projects/smpng/sys/dev/exca/exca.c#17 integrate .. //depot/projects/smpng/sys/dev/mii/brgphy.c#26 integrate .. //depot/projects/smpng/sys/dev/ofw/ofw_console.c#23 integrate .. //depot/projects/smpng/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/smpng/sys/dev/rc/rc.c#16 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#31 integrate .. //depot/projects/smpng/sys/dev/rp/rp.c#20 integrate .. //depot/projects/smpng/sys/dev/sab/sab.c#26 integrate .. //depot/projects/smpng/sys/dev/si/si.c#20 integrate .. //depot/projects/smpng/sys/dev/sio/sio.c#56 integrate .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/ubser.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/ucom.c#25 integrate .. //depot/projects/smpng/sys/dev/usb/ucycom.c#3 integrate .. //depot/projects/smpng/sys/dev/zs/zs.c#20 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vfsops.c#20 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_vfsops.c#22 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_vnops.c#16 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_vfsops.c#30 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#24 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#30 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_lookup.c#2 integrate .. //depot/projects/smpng/sys/i386/i386/identcpu.c#37 integrate .. //depot/projects/smpng/sys/i386/i386/initcpu.c#26 integrate .. //depot/projects/smpng/sys/i386/include/md_var.h#30 integrate .. //depot/projects/smpng/sys/i386/include/specialreg.h#9 integrate .. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#46 integrate .. //depot/projects/smpng/sys/i386/svr4/svr4_machdep.c#17 integrate .. //depot/projects/smpng/sys/ia64/ia64/ssc.c#16 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_lookup.c#14 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vfsops.c#39 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#35 integrate .. //depot/projects/smpng/sys/kern/subr_param.c#21 integrate .. //depot/projects/smpng/sys/kern/tty.c#61 integrate .. //depot/projects/smpng/sys/kern/tty_compat.c#8 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#70 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#113 integrate .. //depot/projects/smpng/sys/modules/3dfx/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/aha/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/ahb/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/an/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/ar/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/arcnet/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/arl/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/awi/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/bktr/bktr/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/cam/Makefile#11 integrate .. //depot/projects/smpng/sys/modules/coda5/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/cp/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/ctau/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/cx/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/dcons/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/digi/digi/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/en/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/fatm/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/hatm/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/hifn/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/if_bridge/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/if_disc/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_ef/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/if_faith/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_gif/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/if_gre/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/if_ppp/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/if_sl/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_stf/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/if_tap/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/if_tun/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/if_vlan/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/ip_mroute_mod/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/ipfilter/Makefile#10 integrate .. //depot/projects/smpng/sys/modules/kbdmux/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/linux/Makefile#13 integrate .. //depot/projects/smpng/sys/modules/netgraph/gif/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/netgraph/iface/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/netgraph/mppc/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/netgraph/sync_ar/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/netgraph/sync_sr/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/nfs4client/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/nfsclient/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/nfsserver/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/nmdm/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/nwfs/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/osf1/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/patm/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/pf/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/rc/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/rp/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/safe/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/sio/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/smbfs/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/snc/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/sppp/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/sr/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/svr4/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/trm/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/ubsec/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/ukbd/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/vkbd/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/wi/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/wlan/Makefile#5 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#13 integrate .. //depot/projects/smpng/sys/net/if_sl.c#30 integrate .. //depot/projects/smpng/sys/net/ppp_tty.c#21 integrate .. //depot/projects/smpng/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#11 integrate .. //depot/projects/smpng/sys/netgraph/ng_mppc.c#12 integrate .. //depot/projects/smpng/sys/netgraph/ng_tty.c#18 integrate .. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#22 integrate .. //depot/projects/smpng/sys/netinet6/raw_ip6.c#36 integrate .. //depot/projects/smpng/sys/pc98/cbus/sio.c#4 integrate .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#6 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#27 integrate .. //depot/projects/smpng/sys/pci/if_sk.c#51 integrate .. //depot/projects/smpng/sys/pci/if_skreg.h#13 integrate .. //depot/projects/smpng/sys/sparc64/include/param.h#16 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/trap.c#63 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#23 integrate .. //depot/projects/smpng/sys/sys/tty.h#19 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_lookup.c#23 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/promcons.c#23 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.44 2005/01/05 20:05:49 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.45 2005/10/16 20:58:21 phk Exp $"); #include #include @@ -108,7 +108,6 @@ if ((tp->t_state & TS_ISOPEN) == 0) { tp->t_state |= TS_CARR_ON; ttyconsolemode(tp, 0); - ttsetwater(tp); setuptimeout = 1; } else if ((tp->t_state & TS_XCLUDE) && suser(td)) { ==== //depot/projects/smpng/sys/alpha/tlsb/zs_tlsb.c#19 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.49 2004/10/18 21:51:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.50 2005/10/16 20:58:21 phk Exp $"); #include #include @@ -284,7 +284,6 @@ if ((tp->t_state & TS_ISOPEN) == 0) { tp->t_state |= TS_CARR_ON; ttyconsolemode(tp, 0); - ttsetwater(tp); setuptimeout = 1; } else if ((tp->t_state & TS_XCLUDE) && suser(td)) { splx(s); ==== //depot/projects/smpng/sys/amd64/amd64/identcpu.c#13 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.136 2005/05/29 17:43:23 schweikh Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.139 2005/10/17 15:51:27 jkim Exp $"); #include "opt_cpu.h" @@ -165,6 +165,8 @@ strcmp(cpu_vendor, "AuthenticAMD") == 0) { printf(" Stepping = %u", cpu_id & 0xf); if (cpu_high > 0) { + u_int cmp = 1, htt = 1; + /* * Here we should probably set up flags indicating * whether or not various features are available. @@ -246,6 +248,16 @@ "\040" ); } + + /* + * AMD64 Architecture Programmer's Manual Volume 3: + * General-Purpose and System Instructions + * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf + * + * IA-32 Intel Architecture Software Developer's Manual, + * Volume 2A: Instruction Set Reference, A-M + * ftp://download.intel.com/design/Pentium4/manuals/25366617.pdf + */ if (amd_feature != 0) { printf("\n AMD Features=0x%b", amd_feature, "\020" /* in hex */ @@ -274,9 +286,9 @@ "\027MMX+" /* AMD MMX Extensions */ "\030" /* Same */ "\031" /* Same */ - "\032" /* Undefined */ + "\032FFXSR" /* Fast FXSAVE/FXRSTOR */ "\033" /* Undefined */ - "\034" /* Undefined */ + "\034RDTSCP" /* RDTSCP */ "\035" /* Undefined */ "\036LM" /* 64 bit long mode */ "\0373DNow+" /* AMD 3DNow! Extensions */ @@ -284,14 +296,71 @@ ); } + if (amd_feature2 != 0) { + printf("\n AMD Features2=0x%b", amd_feature2, + "\020" + "\001LAHF" /* LAHF/SAHF in long mode */ + "\002CMP" /* CMP legacy */ + "\003" + "\004" + "\005CR8" /* CR8 in legacy mode */ + "\006" + "\007" + "\010" + "\011" + "\012" + "\013" + "\014" + "\015" + "\016" + "\017" + "\020" + "\021" + "\022" + "\023" + "\024" + "\025" + "\026" + "\027" + "\030" + "\031" + "\032" + "\033" + "\034" + "\035" + "\036" + "\037" + "\040" + ); + } + + if (cpu_feature & CPUID_HTT && strcmp(cpu_vendor, + "AuthenticAMD") == 0) { + cpu_feature &= ~CPUID_HTT; + if (bootverbose) + printf("\nHTT bit cleared - FreeBSD" + " does not have licenseing issues" + " requiring it.\n"); + } + /* - * If this CPU supports hyperthreading then mention - * the number of logical CPU's it contains. + * If this CPU supports HTT or CMP then mention the + * number of physical/logical cores it contains. */ - if (cpu_feature & CPUID_HTT && - (cpu_procinfo & CPUID_HTT_CORES) >> 16 > 1) - printf("\n Hyperthreading: %d logical CPUs", - (cpu_procinfo & CPUID_HTT_CORES) >> 16); + if (cpu_feature & CPUID_HTT) + htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16; + if (strcmp(cpu_vendor, "AuthenticAMD") == 0 && + (amd_feature2 & AMDID2_CMP)) + cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; + else if (strcmp(cpu_vendor, "GenuineIntel") == 0 && + (cpu_high >= 4)) { + cpuid_count(4, 0, regs); + cmp = ((regs[0] & 0xfc000000) >> 26) + 1; + } + if (cmp > 1) + printf("\n Physical cores: %d", cmp); + if (htt > 1) + printf("\n Logical cores: %d", htt); } } /* Avoid ugly blank lines: only print newline when we have to. */ @@ -357,6 +426,11 @@ if (cpu_exthigh >= 0x80000001) { do_cpuid(0x80000001, regs); amd_feature = regs[3] & ~(cpu_feature & 0x0183f3ff); + amd_feature2 = regs[2]; + } + if (cpu_exthigh >= 0x80000008) { + do_cpuid(0x80000008, regs); + cpu_procinfo2 = regs[2]; } /* XXX */ ==== //depot/projects/smpng/sys/amd64/amd64/initcpu.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.48 2004/06/08 01:02:51 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.49 2005/10/14 22:52:00 jkim Exp $"); #include "opt_cpu.h" @@ -51,11 +51,13 @@ int cpu; /* Are we 386, 386sx, 486, etc? */ u_int cpu_feature; /* Feature flags */ u_int cpu_feature2; /* Feature flags */ -u_int amd_feature; /* Feature flags */ +u_int amd_feature; /* AMD feature flags */ +u_int amd_feature2; /* AMD feature flags */ u_int cpu_high; /* Highest arg to CPUID */ u_int cpu_exthigh; /* Highest arg to extended CPUID */ u_int cpu_id; /* Stepping ID */ u_int cpu_procinfo; /* HyperThreading Info / Brand Index / CLFUSH */ +u_int cpu_procinfo2; /* Multicore info */ char cpu_vendor[20]; /* CPU Origin code */ u_int cpu_fxsr; /* SSE enabled */ ==== //depot/projects/smpng/sys/amd64/include/md_var.h#11 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.75 2004/06/10 20:30:55 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.76 2005/10/14 22:52:00 jkim Exp $ */ #ifndef _MACHINE_MD_VAR_H_ @@ -43,10 +43,12 @@ extern u_int cpu_feature; extern u_int cpu_feature2; extern u_int amd_feature; +extern u_int amd_feature2; extern u_int cpu_fxsr; extern u_int cpu_high; extern u_int cpu_id; extern u_int cpu_procinfo; +extern u_int cpu_procinfo2; extern char cpu_vendor[]; extern char kstack[]; extern char sigcode[]; ==== //depot/projects/smpng/sys/amd64/include/specialreg.h#8 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * from: @(#)specialreg.h 7.1 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.30 2004/06/08 01:02:52 peter Exp $ + * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.32 2005/10/15 00:44:56 jkim Exp $ */ #ifndef _MACHINE_SPECIALREG_H_ @@ -126,7 +126,16 @@ #define AMDID_SYSCALL 0x00000800 #define AMDID_MP 0x00080000 #define AMDID_NX 0x00100000 +#define AMDID_EXT_MMX 0x00400000 +#define AMDID_FFXSR 0x01000000 +#define AMDID_RDTSCP 0x08000000 #define AMDID_LM 0x20000000 +#define AMDID_EXT_3DNOW 0x40000000 +#define AMDID_3DNOW 0x80000000 + +#define AMDID2_LAHF 0x00000001 +#define AMDID2_CMP 0x00000002 +#define AMDID2_CR8 0x00000010 /* * CPUID instruction 1 ebx info @@ -137,6 +146,11 @@ #define CPUID_LOCAL_APIC_ID 0xff000000 /* + * AMD extended function 8000_0008h ecx info + */ +#define AMDID_CMP_CORES 0x000000ff + +/* * Model-specific registers for the i386 family */ #define MSR_P5_MC_ADDR 0x000 @@ -198,14 +212,14 @@ #define MSR_MC2_STATUS 0x409 #define MSR_MC2_ADDR 0x40a #define MSR_MC2_MISC 0x40b -#define MSR_MC4_CTL 0x40c -#define MSR_MC4_STATUS 0x40d -#define MSR_MC4_ADDR 0x40e -#define MSR_MC4_MISC 0x40f -#define MSR_MC3_CTL 0x410 -#define MSR_MC3_STATUS 0x411 -#define MSR_MC3_ADDR 0x412 -#define MSR_MC3_MISC 0x413 +#define MSR_MC3_CTL 0x40c +#define MSR_MC3_STATUS 0x40d +#define MSR_MC3_ADDR 0x40e +#define MSR_MC3_MISC 0x40f +#define MSR_MC4_CTL 0x410 +#define MSR_MC4_STATUS 0x411 +#define MSR_MC4_ADDR 0x412 +#define MSR_MC4_MISC 0x413 /* * Constants related to MSR's. ==== //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.10 2005/10/14 12:43:43 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.11 2005/10/14 20:22:57 jhb Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -293,7 +293,7 @@ #ifdef DEBUG if (ldebug(rt_sendsig)) - printf(ARGS(rt_sendsig, "%p, %d, %p, %lu"), + printf(ARGS(rt_sendsig, "%p, %d, %p, %u"), catcher, sig, (void*)mask, code); #endif /* @@ -439,7 +439,7 @@ #ifdef DEBUG if (ldebug(sendsig)) - printf(ARGS(sendsig, "%p, %d, %p, %lu"), + printf(ARGS(sendsig, "%p, %d, %p, %u"), catcher, sig, (void*)mask, code); #endif ==== //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#6 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_timer.c,v 1.6 2005/10/03 14:19:55 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_timer.c,v 1.7 2005/10/17 14:51:01 cognet Exp $"); #include #include @@ -72,8 +72,6 @@ static uint32_t counts_per_hz; -static uint32_t offset = 0; -static uint32_t last = -1; static int ticked = 0; #define COUNTS_PER_SEC 200000000 /* 200MHz */ @@ -83,7 +81,7 @@ i80321_timer_get_timecount, /* get_timecount */ NULL, /* no poll_pps */ ~0u, /* counter_mask */ - COUNTS_PER_SEC, /* frequency */ + COUNTS_PER_SEC * 3, /* frequency */ "i80321 timer", /* name */ 1000 /* quality */ }; @@ -236,19 +234,11 @@ static unsigned i80321_timer_get_timecount(struct timecounter *tc) { - uint32_t cur = tcr0_read(); - - if (cur > last && last != -1) { - offset += counts_per_hz; - if (ticked > 0) - ticked--; - } - if (ticked) { - offset += ticked * counts_per_hz; - ticked = 0; - } - last = cur; - return (counts_per_hz - cur + offset); + uint32_t ret; + + __asm __volatile("mrc p14, 0, %0, c1, c0, 0\n" + : "=r" (ret)); + return (ret); } /* @@ -329,6 +319,13 @@ tc_init(&i80321_timer_timecounter); restore_interrupts(oldirqstate); + rid = 0; + /* Enable the clock count register. */ + __asm __volatile("mrc p14, 0, %0, c0, c0, 0\n" : "=r" (rid)); + rid &= ~(1 << 3); + rid |= (1 << 2) | 1; + __asm __volatile("mcr p14, 0, %0, c0, c0, 0\n" + : : "r" (rid)); } ==== //depot/projects/smpng/sys/boot/i386/boot2/boot2.c#28 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.75 2005/09/22 11:20:33 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.78 2005/10/16 20:22:36 sobomax Exp $"); #include #include @@ -60,6 +60,7 @@ /* 0x12 is reserved for boot programs. */ /* 0x13 is reserved for boot programs. */ #define RBX_PAUSE 0x14 /* -p */ +#define RBX_QUIET 0x15 /* -q */ #define RBX_NOINTR 0x1c /* -n */ /* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ #define RBX_DUAL 0x1d /* -D */ @@ -73,7 +74,7 @@ #define PATH_KERNEL "/boot/kernel/kernel" #define ARGS 0x900 -#define NOPT 11 +#define NOPT 12 #define NDEV 3 #define MEM_BASE 0x12 #define MEM_EXT 0x15 @@ -88,9 +89,11 @@ #define TYPE_MAXHARD TYPE_DA #define TYPE_FD 2 +#define OPT_CHECK(opt) ((opts >> (opt)) & 1) + extern uint32_t _end; -static const char optstr[NOPT] = "DhaCgmnprsv"; /* Also 'P', 'S' */ +static const char optstr[NOPT] = "DhaCgmnpqrsv"; /* Also 'P', 'S' */ static const unsigned char flags[NOPT] = { RBX_DUAL, RBX_SERIAL, @@ -100,6 +103,7 @@ RBX_MUTE, RBX_NOINTR, RBX_PAUSE, + RBX_QUIET, RBX_DFLTROOT, RBX_SINGLE, RBX_VERBOSE @@ -158,7 +162,7 @@ #include "ufsread.c" -static int +static inline int xfsread(ino_t inode, void *buf, size_t nbyte) { if ((size_t)fsread(inode, buf, nbyte) != nbyte) { @@ -244,7 +248,8 @@ if (*cmd) { if (parse()) autoboot = 0; - printf("%s: %s", PATH_CONFIG, cmd); + if (!OPT_CHECK(RBX_QUIET)) + printf("%s: %s", PATH_CONFIG, cmd); /* Do not process this command twice */ *cmd = 0; } @@ -265,16 +270,17 @@ /* Present the user with the boot2 prompt. */ for (;;) { - printf("\nFreeBSD/i386 boot\n" - "Default: %u:%s(%u,%c)%s\n" - "boot: ", - dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit, - 'a' + dsk.part, kname); + if (!autoboot || !OPT_CHECK(RBX_QUIET)) + printf("\nFreeBSD/i386 boot\n" + "Default: %u:%s(%u,%c)%s\n" + "boot: ", + dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit, + 'a' + dsk.part, kname); if (ioctrl & IO_SERIAL) sio_flush(); if (!autoboot || keyhit(5*SECOND)) getstr(); - else + else if (!autoboot || !OPT_CHECK(RBX_QUIET)) putchar('\n'); autoboot = 0; if (parse()) @@ -297,8 +303,8 @@ struct exec ex; Elf32_Ehdr eh; } hdr; - Elf32_Phdr ep[2]; - Elf32_Shdr es[2]; + static Elf32_Phdr ep[2]; + static Elf32_Shdr es[2]; caddr_t p; ino_t ino; uint32_t addr, x; @@ -596,7 +602,8 @@ { static unsigned c = 0x2d5c7c2f; - printf("%c\b", c = c << 8 | c >> 24); + if (!OPT_CHECK(RBX_QUIET)) + printf("%c\b", c = c << 8 | c >> 24); v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS; v86.addr = XREADORG; /* call to xread in boot1 */ v86.es = VTOPSEG(buf); @@ -618,7 +625,7 @@ { uint32_t t0, t1; - if (opts & 1 << RBX_NOINTR) + if (OPT_CHECK(RBX_NOINTR)) return 0; t0 = 0; for (;;) { @@ -645,7 +652,7 @@ static int xgetc(int fn) { - if (opts & 1 << RBX_NOINTR) + if (OPT_CHECK(RBX_NOINTR)) return 0; for (;;) { if (ioctrl & IO_KEYBOARD && getc(1)) ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#25 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.40 2005/10/03 18:34:17 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.43 2005/10/15 05:57:06 ps Exp $"); #include "opt_compat.h" @@ -797,6 +797,171 @@ return (error); } +static int +freebsd32_copyiniov(struct iovec32 *iovp, u_int iovcnt, struct iovec **iov, + int error) +{ + struct iovec32 iov32; + int i; + + u_int iovlen; + + *iov = NULL; + if (iovcnt > UIO_MAXIOV) + return (error); + iovlen = iovcnt * sizeof(struct iovec); + *iov = malloc(iovlen, M_IOV, M_WAITOK); + for (i = 0; i < iovcnt; i++) { + error = copyin(&iovp[i], &iov32, sizeof(struct iovec32)); + if (error) { + free(*iov, M_IOV); + *iov = NULL; + return (error); + } + iov[i]->iov_base = PTRIN(iov32.iov_base); + iov[i]->iov_len = iov32.iov_len; + } + return (0); +} + +struct msghdr32 { + u_int32_t msg_name; + socklen_t msg_namelen; + u_int32_t msg_iov; + int msg_iovlen; + u_int32_t msg_control; + socklen_t msg_controllen; + int msg_flags; +}; +CTASSERT(sizeof(struct msghdr32) == 28); + +static int +freebsd32_copyinmsghdr(struct msghdr32 *msg32, struct msghdr *msg) +{ + struct msghdr32 m32; + int error; + + error = copyin(msg32, &m32, sizeof(m32)); + if (error) + return (error); + msg->msg_name = PTRIN(m32.msg_name); + msg->msg_namelen = m32.msg_namelen; + msg->msg_iov = PTRIN(m32.msg_iov); + msg->msg_iovlen = m32.msg_iovlen; + msg->msg_control = PTRIN(m32.msg_control); + msg->msg_controllen = m32.msg_controllen; + msg->msg_flags = m32.msg_flags; + return (freebsd32_copyiniov((struct iovec32 *)(uintptr_t)m32.msg_iov, m32.msg_iovlen, &msg->msg_iov, + EMSGSIZE)); +} + +static int +freebsd32_copyoutmsghdr(struct msghdr *msg, struct msghdr32 *msg32) +{ + struct msghdr32 m32; + int error; + + m32.msg_name = PTROUT(msg->msg_name); + m32.msg_namelen = msg->msg_namelen; + m32.msg_iov = PTROUT(msg->msg_iov); + m32.msg_iovlen = msg->msg_iovlen; + m32.msg_control = PTROUT(msg->msg_control); + m32.msg_controllen = msg->msg_controllen; + m32.msg_flags = msg->msg_flags; + error = copyout(&m32, msg32, sizeof(m32)); + return (error); +} + +int +freebsd32_recvmsg(td, uap) + struct thread *td; + struct freebsd32_recvmsg_args /* { + int s; + struct msghdr32 *msg; + int flags; + } */ *uap; +{ + struct msghdr msg; + struct msghdr32 m32; + struct iovec *uiov, *iov; + int error; + + error = copyin(uap->msg, &m32, sizeof(m32)); + if (error) + return (error); + error = freebsd32_copyinmsghdr(uap->msg, &msg); + if (error) + return (error); + error = freebsd32_copyiniov((struct iovec32 *)(uintptr_t)m32.msg_iov, + m32.msg_iovlen, &iov, EMSGSIZE); + if (error) + return (error); + msg.msg_flags = uap->flags; + uiov = msg.msg_iov; + msg.msg_iov = iov; + error = kern_recvit(td, uap->s, &msg, NULL, UIO_SYSSPACE); + if (error == 0) { + msg.msg_iov = uiov; + error = freebsd32_copyoutmsghdr(&msg, uap->msg); + } + free(iov, M_IOV); + free(uiov, M_IOV); + return (error); +} + +int +freebsd32_sendmsg(struct thread *td, + struct freebsd32_sendmsg_args *uap) +{ + struct msghdr msg; + struct msghdr32 m32; + struct iovec *iov; + int error; + + error = copyin(uap->msg, &m32, sizeof(m32)); + if (error) + return (error); + error = freebsd32_copyinmsghdr(uap->msg, &msg); + if (error) + return (error); + error = freebsd32_copyiniov((struct iovec32 *)(uintptr_t)m32.msg_iov, + m32.msg_iovlen, &iov, EMSGSIZE); + if (error) + return (error); + msg.msg_iov = iov; + error = kern_sendit(td, uap->s, &msg, uap->flags, NULL, UIO_SYSSPACE); + free(iov, M_IOV); + return (error); +} + +int +freebsd32_recvfrom(struct thread *td, + struct freebsd32_recvfrom_args *uap) +{ + struct msghdr msg; + struct iovec aiov; + int error; + + if (uap->fromlenaddr) { + error = copyin((void *)(uintptr_t)uap->fromlenaddr, + &msg.msg_namelen, sizeof(msg.msg_namelen)); + if (error) + return (error); + } else { + msg.msg_namelen = 0; + } + + msg.msg_name = (void *)(uintptr_t)uap->from; + msg.msg_iov = &aiov; + msg.msg_iovlen = 1; + aiov.iov_base = (void *)(uintptr_t)uap->buf; + aiov.iov_len = uap->len; + msg.msg_control = 0; + msg.msg_flags = uap->flags; + error = kern_recvit(td, uap->s, &msg, (void *)(uintptr_t)uap->fromlenaddr, UIO_USERSPACE); + return (error); +} + int freebsd32_settimeofday(struct thread *td, struct freebsd32_settimeofday_args *uap) @@ -1236,7 +1401,7 @@ struct timespec rmt, rqt; int error; - error = copyin(uap->rqtp, &rqt32, sizeof(rqt)); + error = copyin(uap->rqtp, &rqt32, sizeof(rqt32)); if (error) return (error); @@ -1253,13 +1418,66 @@ CP(rmt, rmt32, tv_sec); CP(rmt, rmt32, tv_nsec); - error2 = copyout(&rmt32, uap->rmtp, sizeof(rmt)); + error2 = copyout(&rmt32, uap->rmtp, sizeof(rmt32)); if (error2) error = error2; } return (error); } +int +freebsd32_clock_gettime(struct thread *td, + struct freebsd32_clock_gettime_args *uap) +{ + struct timespec ats; + struct timespec32 ats32; + int error; + + error = kern_clock_gettime(td, uap->clock_id, &ats); + if (error == 0) { + CP(ats, ats32, tv_sec); + CP(ats, ats32, tv_nsec); + error = copyout(&ats32, uap->tp, sizeof(ats32)); + } + return (error); +} + +int +freebsd32_clock_settime(struct thread *td, + struct freebsd32_clock_settime_args *uap) +{ + struct timespec ats; + struct timespec32 ats32; + int error; + + error = copyin(uap->tp, &ats32, sizeof(ats32)); + if (error) + return (error); + CP(ats32, ats, tv_sec); + CP(ats32, ats, tv_nsec); + + return (kern_clock_settime(td, uap->clock_id, &ats)); +} + +int +freebsd32_clock_getres(struct thread *td, + struct freebsd32_clock_getres_args *uap) +{ + struct timespec ts; + struct timespec32 ts32; + int error; + + if (uap->tp == NULL) + return (0); + error = kern_clock_getres(td, uap->clock_id, &ts); + if (error == 0) { + CP(ts, ts32, tv_sec); + CP(ts, ts32, tv_nsec); + error = copyout(&ts32, uap->tp, sizeof(ts32)); + } + return (error); +} + #if 0 int ==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#21 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.40 2005/09/27 18:04:52 peter Exp $ - * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.52 2005/09/27 18:04:20 peter Exp + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.43 2005/10/15 05:57:34 ps Exp $ + * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.55 2005/10/15 05:57:06 ps Exp */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -38,6 +38,24 @@ char options_l_[PADL_(int)]; int options; char options_r_[PADR_(int)]; char rusage_l_[PADL_(struct rusage32 *)]; struct rusage32 * rusage; char rusage_r_[PADR_(struct rusage32 *)]; }; +struct freebsd32_recvmsg_args { + char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; + char msg_l_[PADL_(struct msghdr32 *)]; struct msghdr32 * msg; char msg_r_[PADR_(struct msghdr32 *)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; +struct freebsd32_sendmsg_args { + char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; + char msg_l_[PADL_(struct msghdr32 *)]; struct msghdr32 * msg; char msg_r_[PADR_(struct msghdr32 *)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; +struct freebsd32_recvfrom_args { + char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; + char buf_l_[PADL_(u_int32_t)]; u_int32_t buf; char buf_r_[PADR_(u_int32_t)]; + char len_l_[PADL_(u_int32_t)]; u_int32_t len; char len_r_[PADR_(u_int32_t)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; + char from_l_[PADL_(u_int32_t)]; u_int32_t from; char from_r_[PADR_(u_int32_t)]; + char fromlenaddr_l_[PADL_(u_int32_t)]; u_int32_t fromlenaddr; char fromlenaddr_r_[PADR_(u_int32_t)]; +}; struct freebsd32_sigaltstack_args { char ss_l_[PADL_(struct sigaltstack32 *)]; struct sigaltstack32 * ss; char ss_r_[PADR_(struct sigaltstack32 *)]; char oss_l_[PADL_(struct sigaltstack32 *)]; struct sigaltstack32 * oss; char oss_r_[PADR_(struct sigaltstack32 *)]; @@ -179,9 +197,21 @@ char new_l_[PADL_(void *)]; void * new; char new_r_[PADR_(void *)]; char newlen_l_[PADL_(u_int32_t)]; u_int32_t newlen; char newlen_r_[PADR_(u_int32_t)]; }; +struct freebsd32_clock_gettime_args { + char clock_id_l_[PADL_(clockid_t)]; clockid_t clock_id; char clock_id_r_[PADR_(clockid_t)]; + char tp_l_[PADL_(struct timespec32 *)]; struct timespec32 * tp; char tp_r_[PADR_(struct timespec32 *)]; +}; +struct freebsd32_clock_settime_args { + char clock_id_l_[PADL_(clockid_t)]; clockid_t clock_id; char clock_id_r_[PADR_(clockid_t)]; + char tp_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * tp; char tp_r_[PADR_(const struct timespec32 *)]; +}; +struct freebsd32_clock_getres_args { + char clock_id_l_[PADL_(clockid_t)]; clockid_t clock_id; char clock_id_r_[PADR_(clockid_t)]; + char tp_l_[PADL_(struct timespec32 *)]; struct timespec32 * tp; char tp_r_[PADR_(struct timespec32 *)]; +}; struct freebsd32_nanosleep_args { - char rqtp_l_[PADL_(const struct timespec *)]; const struct timespec * rqtp; char rqtp_r_[PADR_(const struct timespec *)]; - char rmtp_l_[PADL_(struct timespec *)]; struct timespec * rmtp; char rmtp_r_[PADR_(struct timespec *)]; + char rqtp_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * rqtp; char rqtp_r_[PADR_(const struct timespec32 *)]; + char rmtp_l_[PADL_(struct timespec32 *)]; struct timespec32 * rmtp; char rmtp_r_[PADR_(struct timespec32 *)]; }; struct freebsd32_preadv_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Oct 17 18:50:04 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 1CFEF16A422; Mon, 17 Oct 2005 18:50:04 +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 D033116A41F for ; Mon, 17 Oct 2005 18:50:03 +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 9B8E643D6E for ; Mon, 17 Oct 2005 18:50:00 +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 j9HIo013095879 for ; Mon, 17 Oct 2005 18:50:00 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 j9HIo0Oq095864 for perforce@freebsd.org; Mon, 17 Oct 2005 18:50:00 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 18:50:00 GMT Message-Id: <200510171850.j9HIo0Oq095864@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 85457 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, 17 Oct 2005 18:50:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=85457 Change 85457 by rwatson@rwatson_peppercorn on 2005/10/17 18:49:11 In kern_ptrace(), audit information on the target process once it has been identified, but before we perform access control checks. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/sys_process.c#5 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/sys_process.c#5 (text+ko) ==== @@ -49,6 +49,8 @@ #include +#include + #include #include #include @@ -552,6 +554,7 @@ pid = p->p_pid; } } + AUDIT_ARG(process, p); if ((error = p_cansee(td, p)) != 0) goto fail; From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:20:38 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 2A5E716A42F; Mon, 17 Oct 2005 19:20:38 +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 BF14E16A423 for ; Mon, 17 Oct 2005 19:20:37 +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 8552E43D55 for ; Mon, 17 Oct 2005 19:20:37 +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 j9HJKb0l097133 for ; Mon, 17 Oct 2005 19:20:37 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 j9HJKbPn097130 for perforce@freebsd.org; Mon, 17 Oct 2005 19:20:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 19:20:37 GMT Message-Id: <200510171920.j9HJKbPn097130@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 85458 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, 17 Oct 2005 19:20:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=85458 Change 85458 by rwatson@rwatson_peppercorn on 2005/10/17 19:20:18 Audit the path passed to the acct() system call. Annotate that we will need to add an argument token in the event that accounting is being disabled by the system call. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_acct.c#5 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_acct.c#5 (text+ko) ==== @@ -143,7 +143,8 @@ * appending and make sure it's a 'normal'. */ if (uap->path != NULL) { - NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_USERSPACE, uap->path, td); + NDINIT(&nd, LOOKUP, NOFOLLOW | AUDITVNPATH1, UIO_USERSPACE, + uap->path, td); flags = FWRITE | O_APPEND; error = vn_open(&nd, &flags, 0, -1); if (error) @@ -165,6 +166,9 @@ } #ifdef MAC } else { + /* + * XXXAUDIT: Need to audit that accounting is being disabled. + */ error = mac_check_system_acct(td->td_ucred, NULL); if (error) goto done2; From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:23:43 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 E9EF316A422; Mon, 17 Oct 2005 19:23:42 +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 A4C9016A421 for ; Mon, 17 Oct 2005 19:23:42 +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 B093A43D75 for ; Mon, 17 Oct 2005 19:23:41 +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 j9HJNfsU097276 for ; Mon, 17 Oct 2005 19:23:41 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 j9HJNfLO097273 for perforce@freebsd.org; Mon, 17 Oct 2005 19:23:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 19:23:41 GMT Message-Id: <200510171923.j9HJNfLO097273@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 85459 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, 17 Oct 2005 19:23:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=85459 Change 85459 by rwatson@rwatson_peppercorn on 2005/10/17 19:23:04 Comment no longer required, as audit_sysclose() now handles Giant acquisition as needed. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_descrip.c#11 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_descrip.c#11 (text+ko) ==== @@ -976,9 +976,6 @@ holdleaders = 0; fdp = td->td_proc->p_fd; - /* The call to AUDIT_SYSCLOSE must be made with Giant held, - * but without the fd lock. - */ AUDIT_SYSCLOSE(td, fd); FILEDESC_LOCK(fdp); From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:33:55 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 13E4216A422; Mon, 17 Oct 2005 19:33:55 +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 CA7DB16A420 for ; Mon, 17 Oct 2005 19:33:54 +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 7B6A943D53 for ; Mon, 17 Oct 2005 19:33:54 +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 j9HJXsAw097638 for ; Mon, 17 Oct 2005 19:33:54 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 j9HJXsA1097635 for perforce@freebsd.org; Mon, 17 Oct 2005 19:33:54 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 19:33:54 GMT Message-Id: <200510171933.j9HJXsA1097635@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 85460 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, 17 Oct 2005 19:33:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=85460 Change 85460 by rwatson@rwatson_peppercorn on 2005/10/17 19:32:52 Audit signal numbers for kill() and killpg() system calls. More auditing to do here in terms of target processes. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_sig.c#6 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_sig.c#6 (text+ko) ==== @@ -74,6 +74,8 @@ #include +#include + #if defined (__alpha__) && !defined(COMPAT_43) #error "You *really* need COMPAT_43 on the alpha for longjmp(3)" #endif @@ -1386,6 +1388,8 @@ register struct proc *p; int error; + AUDIT_ARG(signum, uap->signum); + if ((u_int)uap->signum > _SIG_MAXSIG) return (EINVAL); @@ -1429,6 +1433,8 @@ register struct okillpg_args *uap; { + AUDIT_ARG(signum, uap->signum); + if ((u_int)uap->signum > _SIG_MAXSIG) return (EINVAL); return (killpg1(td, uap->signum, uap->pgid, 0)); From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:38:04 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 0775916A422; Mon, 17 Oct 2005 19:38:04 +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 A958F16A41F for ; Mon, 17 Oct 2005 19:38:03 +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 712AA43D58 for ; Mon, 17 Oct 2005 19:38:03 +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 j9HJc350097859 for ; Mon, 17 Oct 2005 19:38:03 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 j9HJc3CV097856 for perforce@freebsd.org; Mon, 17 Oct 2005 19:38:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 19:38:03 GMT Message-Id: <200510171938.j9HJc3CV097856@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 85462 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, 17 Oct 2005 19:38:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=85462 Change 85462 by rwatson@rwatson_peppercorn on 2005/10/17 19:37:34 For kill() and okillpg(), audit the target process (if just one), or the pid if it's a broadcast. Note that we might want to audit okillpg() as AUE_KILL, and if so, we'll need to negate the argument. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_sig.c#7 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_sig.c#7 (text+ko) ==== @@ -1399,12 +1399,14 @@ if ((p = zpfind(uap->pid)) == NULL) return (ESRCH); } + AUDIT_ARG(process, p); error = p_cansignal(td, p, uap->signum); if (error == 0 && uap->signum) psignal(p, uap->signum); PROC_UNLOCK(p); return (error); } + AUDIT_ARG(pid, uap->pid); switch (uap->pid) { case -1: /* broadcast signal */ return (killpg1(td, uap->signum, 0, 1)); @@ -1433,7 +1435,13 @@ register struct okillpg_args *uap; { + /* + * XXXAUDIT: We might want to use AUE_KILL and -uap->pgid instead of + * this here. That would avoid using a non-BSM audit event type + * without losing much information. + */ AUDIT_ARG(signum, uap->signum); + AUDIT_ARG(pid, uap->pgid); if ((u_int)uap->signum > _SIG_MAXSIG) return (EINVAL); From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:41: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 C463116A421; Mon, 17 Oct 2005 19:41: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 8753316A41F for ; Mon, 17 Oct 2005 19:41:08 +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 ED7F743D46 for ; Mon, 17 Oct 2005 19:41:07 +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 j9HJf7Cj098039 for ; Mon, 17 Oct 2005 19:41:07 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 j9HJf7KH098036 for perforce@freebsd.org; Mon, 17 Oct 2005 19:41:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 17 Oct 2005 19:41:07 GMT Message-Id: <200510171941.j9HJf7KH098036@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 85464 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, 17 Oct 2005 19:41:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=85464 Change 85464 by rwatson@rwatson_peppercorn on 2005/10/17 19:40:43 Audit requested mode arguments to mkdir() and mknod(). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#17 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#17 (text+ko) ==== @@ -1185,6 +1185,8 @@ struct nameidata nd; int vfslocked; + AUDIT_ARG(mode, mode); + switch (mode & S_IFMT) { case S_IFCHR: case S_IFBLK: @@ -3371,6 +3373,8 @@ struct nameidata nd; int vfslocked; + AUDIT_ARG(mode, mode); + restart: bwillwrite(); NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNPATH1, From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:53:19 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 A0AF416A421; Mon, 17 Oct 2005 19:53:18 +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 3A20C16A41F; Mon, 17 Oct 2005 19:53:18 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id F1C4243D81; Mon, 17 Oct 2005 19:53:15 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.50.41.234] (Not Verified[10.50.41.234]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Mon, 17 Oct 2005 16:09:45 -0400 From: John Baldwin To: Robert Watson Date: Mon, 17 Oct 2005 15:38:30 -0400 User-Agent: KMail/1.8.2 References: <200510171542.j9HFgRhI073994@repoman.freebsd.org> In-Reply-To: <200510171542.j9HFgRhI073994@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200510171538.30876.jhb@freebsd.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 85448 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, 17 Oct 2005 19:53:19 -0000 On Monday 17 October 2005 11:42 am, Robert Watson wrote: > http://perforce.freebsd.org/chv.cgi?CH=85448 > > Change 85448 by rwatson@rwatson_zoo on 2005/10/17 15:41:26 > > In execve(), audit the path name being executed. Annotate that it > would also be good to audit the pathname of the interpreter, if > any. It's not a huge deal to do that you know, add the AUDITVNPATH1 flag to the various name lookups in imgact_foo.c > Affected files ... > > .. //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 edit > > Differences ... > > ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 (text+ko) > ==== > > @@ -350,10 +350,13 @@ > /* > * Translate the file name. namei() returns a vnode pointer > * in ni_vp amoung other things. > + * > + * XXXAUDIT: It would be desirable to also audit the name of the > + * interpreter if this is an interpreted binary. > */ > ndp = &nd; > - NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE, > - UIO_SYSSPACE, args->fname, td); > + NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE | > + AUDITVNPATH1, UIO_SYSSPACE, args->fname, td); > > interpret: > error = namei(ndp); -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-p4-projects@FreeBSD.ORG Mon Oct 17 19:53:22 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 A61F716A422; Mon, 17 Oct 2005 19:53:21 +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 31A1416A423; Mon, 17 Oct 2005 19:53:21 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1D4AD43D83; Mon, 17 Oct 2005 19:53:15 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.50.41.234] (Not Verified[10.50.41.234]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Mon, 17 Oct 2005 16:09:45 -0400 From: John Baldwin To: soc-chenk Date: Mon, 17 Oct 2005 15:15:37 -0400 User-Agent: KMail/1.8.2 References: <200510151546.j9FFk6X1063636@repoman.freebsd.org> In-Reply-To: <200510151546.j9FFk6X1063636@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200510171515.38647.jhb@freebsd.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 85342 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, 17 Oct 2005 19:53:22 -0000 On Saturday 15 October 2005 11:46 am, soc-chenk wrote: > http://perforce.freebsd.org/chv.cgi?CH=85342 > > Change 85342 by soc-chenk@soc-chenk_leavemealone on 2005/10/15 15:45:35 > > device read converted to use msleep instead of condvar > [this seems to prevent daemon-segfaults-in-readdir panics] > Submitted by: soc-chenk Considering that cv_foo and msleep are both just slim wrappers around sleepq_*(), I can't see how this diff would make any difference, unless adding the 'goto again;' is what fixed the bug, in which case you could have kept the cv(9) usage. > > Affected files ... > > .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#18 edit > .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#9 edit > > Differences ... > > ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#18 (text+ko) > ==== > > @@ -478,7 +478,6 @@ > > /* Setting up fields of mine */ > mtx_init(&data->msg_mtx, "mutex for fuse message list", NULL, MTX_DEF); > - cv_init(&data->msg_cv, "cv to wake up fusedev_read"); > STAILQ_INIT(&data->fmsg_head); > mtx_init(&data->ticket_mtx, "mutex for the fuse ticketer", NULL, > MTX_DEF); > @@ -503,7 +502,6 @@ > > /* Driving off stage all that stuff thrown at device... */ > mtx_destroy(&data->msg_mtx); > - cv_destroy(&data->msg_cv); > mtx_destroy(&data->callback_mtx); > mtx_destroy(&data->ticket_mtx); > > @@ -526,7 +524,7 @@ > DEBUG2G("banning daemon\n"); > mtx_lock(&data->msg_mtx); > data->dataflag |= FDAT_KICK; > - cv_signal(&data->msg_cv); > + wakeup_one(data); > mtx_unlock(&data->msg_mtx); > } > > @@ -693,7 +691,7 @@ > mtx_lock(&tick->data->msg_mtx); > fuse_msgn_push(&tick->msgn); > DEBUG("ring the bell\n"); > - cv_signal(&tick->data->msg_cv); > + wakeup_one(tick->data); > mtx_unlock(&tick->data->msg_mtx); > } > > @@ -1077,6 +1075,7 @@ > fuprintf("fuse device being read on thread %d\n", uio->uio_td->td_tid); > > mtx_lock(&data->msg_mtx); > +again: > if (fdata_kick_get(data)) { > DEBUG("we know early on that reader should be kicked so we don't wait > for news\n"); mtx_unlock(&data->msg_mtx); > @@ -1084,13 +1083,23 @@ > } > > if ( ! (fmsgn = fdata_pop_msg(data))) { > - err = cv_wait_sig(&data->msg_cv, &data->msg_mtx); > + err = msleep(data, &data->msg_mtx, PCATCH, "fu msg", 0); > if (err != 0) { > mtx_unlock(&data->msg_mtx); > return (fdata_kick_get(data) ? ENODEV : err); > } > fmsgn = fdata_pop_msg(data); > } > + if (! fmsgn) { > + /* > + * We can get here if fuse daemon suddenly terminates, > + * eg, by being hit by a SIGKILL > + * -- and some other cases, too, tho not totally clear, when > + * (cv_signal/wakeup_one signals the whole process ?) > + */ > + DEBUG("no message on thread #%d\n", uio->uio_td->td_tid); > + goto again; > + } > mtx_unlock(&data->msg_mtx); > > if (fdata_kick_get(data)) { > @@ -1105,16 +1114,6 @@ > } > return (ENODEV); /* This should make the daemon get off of us */ > } > - if (! fmsgn) { > - /* > - * We can get here if fuse daemon suddenly terminates, > - * eg, by being hit by a SIGKILL > - * -- and some other cases, too, tho not totally clear, when > - * (cv_signal signals the whole process ?) > - */ > - DEBUG("no message on thread #%d\n", uio->uio_td->td_tid); > - return (EINTR); > - } > DEBUG("message got on thread #%d\n", uio->uio_td->td_tid); > > KASSERT(fmsgn->msg_bufdata || fmsgn->msg_bufsize == 0, > > ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#9 (text+ko) ==== > > @@ -90,7 +90,6 @@ > > struct fuse_data { > struct mtx msg_mtx; > - struct cv msg_cv; > STAILQ_HEAD(, fuse_msg_node) fmsg_head; > > struct mtx callback_mtx; -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-p4-projects@FreeBSD.ORG Mon Oct 17 23:23:39 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 051F816A429; Mon, 17 Oct 2005 23:23:39 +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 B92F616A427 for ; Mon, 17 Oct 2005 23:23:38 +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 8684043D46 for ; Mon, 17 Oct 2005 23:23:38 +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 j9HNNc9x013742 for ; Mon, 17 Oct 2005 23:23:38 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9HNNcQR013739 for perforce@freebsd.org; Mon, 17 Oct 2005 23:23:38 GMT (envelope-from peter@freebsd.org) Date: Mon, 17 Oct 2005 23:23:38 GMT Message-Id: <200510172323.j9HNNcQR013739@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 85472 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, 17 Oct 2005 23:23:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=85472 Change 85472 by peter@peter_melody on 2005/10/17 23:23:20 Add a bugfix/workaround to binutils to enable -shared modules without -fpic. Affected files ... .. //depot/projects/hammer/contrib/binutils/bfd/elf64-x86-64.c#6 edit Differences ... ==== //depot/projects/hammer/contrib/binutils/bfd/elf64-x86-64.c#6 (text+ko) ==== @@ -784,7 +784,8 @@ non-constant sections. */ if (info->shared && (sec->flags & SEC_ALLOC) != 0 - && (sec->flags & SEC_READONLY) != 0) + && (sec->flags & SEC_READONLY) != 0 + && getenv("BFD_STFU") == NULL) { (*_bfd_error_handler) (_("%s: relocation %s can not be used when making a shared object; recompile with -fPIC"), @@ -1938,6 +1939,11 @@ unresolved_reloc = FALSE; break; + case R_X86_64_32S: + if (getenv("BFD_STFU") == NULL) { + break; + } + /* Fall Through */ case R_X86_64_PC8: case R_X86_64_PC16: case R_X86_64_PC32: @@ -2045,7 +2051,10 @@ } outrel.r_info = ELF64_R_INFO (sindx, r_type); - outrel.r_addend = relocation + rel->r_addend; + if (r_type == R_X86_64_32S && getenv("BFD_STFU") != NULL) + outrel.r_addend = rel->r_addend; + else + outrel.r_addend = relocation + rel->r_addend; } } From owner-p4-projects@FreeBSD.ORG Tue Oct 18 10:23:04 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 E6B8D16A421; Tue, 18 Oct 2005 10:23:03 +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 75B5116A41F; Tue, 18 Oct 2005 10:23:03 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 29EE743D48; Tue, 18 Oct 2005 10:23:03 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 1923946BC5; Tue, 18 Oct 2005 06:23:02 -0400 (EDT) Date: Tue, 18 Oct 2005 11:23:01 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: <200510171538.30876.jhb@freebsd.org> Message-ID: <20051018112150.S56080@fledge.watson.org> References: <200510171542.j9HFgRhI073994@repoman.freebsd.org> <200510171538.30876.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews Subject: Re: PERFORCE change 85448 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, 18 Oct 2005 10:23:04 -0000 On Mon, 17 Oct 2005, John Baldwin wrote: > On Monday 17 October 2005 11:42 am, Robert Watson wrote: >> http://perforce.freebsd.org/chv.cgi?CH=85448 >> >> Change 85448 by rwatson@rwatson_zoo on 2005/10/17 15:41:26 >> >> In execve(), audit the path name being executed. Annotate that it >> would also be good to audit the pathname of the interpreter, if >> any. > > It's not a huge deal to do that you know, add the AUDITVNPATH1 flag to > the various name lookups in imgact_foo.c I'm not sure I fully understand how the lookups are managed in execve() -- if you look at the do_execve() code, you'll see that it iterates around and re-executes the same namei() for the interpreter label -- however, when I instrument it so that a second invocation audits as the second audit path, no second path appears, suggesting that in fact it is in the image activator. I'll have to do some more reading. Robert N M Watson > >> Affected files ... >> >> .. //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 edit >> >> Differences ... >> >> ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 (text+ko) >> ==== >> >> @@ -350,10 +350,13 @@ >> /* >> * Translate the file name. namei() returns a vnode pointer >> * in ni_vp amoung other things. >> + * >> + * XXXAUDIT: It would be desirable to also audit the name of the >> + * interpreter if this is an interpreted binary. >> */ >> ndp = &nd; >> - NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE, >> - UIO_SYSSPACE, args->fname, td); >> + NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE | >> + AUDITVNPATH1, UIO_SYSSPACE, args->fname, td); >> >> interpret: >> error = namei(ndp); > > -- > John Baldwin <>< http://www.FreeBSD.org/~jhb/ > "Power Users Use the Power to Serve" = http://www.FreeBSD.org > To Unsubscribe: send mail to majordomo@trustedbsd.org > with "unsubscribe trustedbsd-cvs" in the body of the message > From owner-p4-projects@FreeBSD.ORG Tue Oct 18 10:58:48 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 B622016A421; Tue, 18 Oct 2005 10:58:47 +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 5CAD216A41F for ; Tue, 18 Oct 2005 10:58:47 +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 11F1B43D46 for ; Tue, 18 Oct 2005 10:58: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 j9IAwk01063605 for ; Tue, 18 Oct 2005 10:58:46 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 j9IAwkoA063602 for perforce@freebsd.org; Tue, 18 Oct 2005 10:58:46 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 10:58:46 GMT Message-Id: <200510181058.j9IAwkoA063602@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 85487 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, 18 Oct 2005 10:58:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=85487 Change 85487 by rwatson@rwatson_zoo on 2005/10/18 10:58:29 Break out audit_arg_uid() and audit_arg_gid(), which each accepted all possible *uid and *gid arguments, into separate arg methods for each of {uid,gid,euid,egid,ruid,rgid,suid,sgid}, and invoke them as needed for the various credential frobbing system calls in the base system call table. Record these entries, as appropriate, when converting the internal audit record to BSM for these system calls. Invoke audit_arg_groupset() for setgroups(). Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_prot.c#4 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#4 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#4 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#23 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_prot.c#4 (text+ko) ==== @@ -64,6 +64,8 @@ #include #include +#include + static MALLOC_DEFINE(M_CRED, "cred", "credentials"); SYSCTL_DECL(_security); @@ -495,6 +497,7 @@ int error; uid = uap->uid; + AUDIT_ARG(uid, uid); newcred = crget(); uip = uifind(uid); PROC_LOCK(p); @@ -608,6 +611,7 @@ int error; euid = uap->euid; + AUDIT_ARG(euid, euid); newcred = crget(); euip = uifind(euid); PROC_LOCK(p); @@ -664,6 +668,7 @@ int error; gid = uap->gid; + AUDIT_ARG(gid, gid); newcred = crget(); PROC_LOCK(p); oldcred = p->p_ucred; @@ -764,6 +769,7 @@ int error; egid = uap->egid; + AUDIT_ARG(egid, egid); newcred = crget(); PROC_LOCK(p); oldcred = p->p_ucred; @@ -822,6 +828,7 @@ crfree(tempcred); return (error); } + AUDIT_ARG(groupset, tempcred->cr_groups, ngrp); newcred = crget(); PROC_LOCK(p); oldcred = p->p_ucred; @@ -890,6 +897,8 @@ euid = uap->euid; ruid = uap->ruid; + AUDIT_ARG(euid, euid); + AUDIT_ARG(ruid, ruid); newcred = crget(); euip = uifind(euid); ruip = uifind(ruid); @@ -958,6 +967,8 @@ egid = uap->egid; rgid = uap->rgid; + AUDIT_ARG(egid, egid); + AUDIT_ARG(rgid, rgid); newcred = crget(); PROC_LOCK(p); oldcred = p->p_ucred; @@ -1028,6 +1039,9 @@ euid = uap->euid; ruid = uap->ruid; suid = uap->suid; + AUDIT_ARG(euid, euid); + AUDIT_ARG(ruid, ruid); + AUDIT_ARG(suid, suid); newcred = crget(); euip = uifind(euid); ruip = uifind(ruid); @@ -1108,6 +1122,9 @@ egid = uap->egid; rgid = uap->rgid; sgid = uap->sgid; + AUDIT_ARG(egid, egid); + AUDIT_ARG(rgid, rgid); + AUDIT_ARG(sgid, sgid); newcred = crget(); PROC_LOCK(p); oldcred = p->p_ucred; ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#4 (text+ko) ==== @@ -125,10 +125,14 @@ void audit_arg_len(int len); void audit_arg_fd(int fd); void audit_arg_fflags(int fflags); -void audit_arg_gid(gid_t gid, gid_t egid, gid_t rgid, - gid_t sgid); -void audit_arg_uid(uid_t uid, uid_t euid, uid_t ruid, - uid_t suid); +void audit_arg_gid(gid_t gid); +void audit_arg_uid(uid_t uid); +void audit_arg_egid(gid_t egid); +void audit_arg_euid(uid_t euid); +void audit_arg_rgid(gid_t rgid); +void audit_arg_ruid(uid_t ruid); +void audit_arg_sgid(gid_t sgid); +void audit_arg_suid(uid_t suid); void audit_arg_groupset(gid_t *gidset, u_int gidset_size); void audit_arg_login(char *login); void audit_arg_ctlname(int *name, int namelen); ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#4 (text+ko) ==== @@ -117,7 +117,7 @@ } void -audit_arg_gid(gid_t gid, gid_t egid, gid_t rgid, gid_t sgid) +audit_arg_gid(gid_t gid) { struct kaudit_record *ar; @@ -126,14 +126,89 @@ return; ar->k_ar.ar_arg_gid = gid; + ar->k_ar.ar_valid_arg |= ARG_GID; +} + +void +audit_arg_uid(uid_t uid) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + + ar->k_ar.ar_arg_uid = uid; + ar->k_ar.ar_valid_arg |= ARG_UID; +} + +void +audit_arg_egid(gid_t egid) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + ar->k_ar.ar_arg_egid = egid; + ar->k_ar.ar_valid_arg |= ARG_EGID; +} + +void +audit_arg_euid(uid_t euid) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + + ar->k_ar.ar_arg_euid = euid; + ar->k_ar.ar_valid_arg |= ARG_EUID; +} + +void +audit_arg_rgid(gid_t rgid) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + ar->k_ar.ar_arg_rgid = rgid; + ar->k_ar.ar_valid_arg |= ARG_RGID; +} + +void +audit_arg_ruid(uid_t ruid) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + + ar->k_ar.ar_arg_ruid = ruid; + ar->k_ar.ar_valid_arg |= ARG_RUID; +} + +void +audit_arg_sgid(gid_t sgid) +{ + struct kaudit_record *ar; + + ar = currecord(); + if (ar == NULL) + return; + ar->k_ar.ar_arg_sgid = sgid; - ar->k_ar.ar_valid_arg |= (ARG_GID | ARG_EGID | ARG_RGID | ARG_SGID); + ar->k_ar.ar_valid_arg |= ARG_SGID; } void -audit_arg_uid(uid_t uid, uid_t euid, uid_t ruid, uid_t suid) +audit_arg_suid(uid_t suid) { struct kaudit_record *ar; @@ -141,11 +216,8 @@ if (ar == NULL) return; - ar->k_ar.ar_arg_uid = uid; - ar->k_ar.ar_arg_euid = euid; - ar->k_ar.ar_arg_ruid = ruid; ar->k_ar.ar_arg_suid = suid; - ar->k_ar.ar_valid_arg |= (ARG_UID | ARG_EUID | ARG_RUID | ARG_SUID); + ar->k_ar.ar_valid_arg |= ARG_SUID; } void ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#23 (text+ko) ==== @@ -821,6 +821,34 @@ tok = au_to_arg32(1, "uid", ar->ar_arg_euid); kau_write(rec, tok); break; + case AUE_SETREGID: + tok = au_to_arg32(1, "rgid", ar->ar_arg_rgid); + kau_write(rec, tok); + tok = au_to_arg32(2, "egid", ar->ar_arg_egid); + kau_write(rec, tok); + break; + case AUE_SETREUID: + tok = au_to_arg32(1, "ruid", ar->ar_arg_ruid); + kau_write(rec, tok); + tok = au_to_arg32(2, "euid", ar->ar_arg_euid); + kau_write(rec, tok); + break; + case AUE_SETRESGID: + tok = au_to_arg32(1, "rgid", ar->ar_arg_rgid); + kau_write(rec, tok); + tok = au_to_arg32(2, "egid", ar->ar_arg_egid); + kau_write(rec, tok); + tok = au_to_arg32(3, "sgid", ar->ar_arg_sgid); + kau_write(rec, tok); + break; + case AUE_SETRESUID: + tok = au_to_arg32(1, "ruid", ar->ar_arg_ruid); + kau_write(rec, tok); + tok = au_to_arg32(2, "euid", ar->ar_arg_euid); + kau_write(rec, tok); + tok = au_to_arg32(3, "suid", ar->ar_arg_suid); + kau_write(rec, tok); + break; case AUE_SETGID: tok = au_to_arg32(1, "gid", ar->ar_arg_gid); kau_write(rec, tok); From owner-p4-projects@FreeBSD.ORG Tue Oct 18 12:34:43 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 448CB16A424; Tue, 18 Oct 2005 12:34:43 +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 F3A2616A41F for ; Tue, 18 Oct 2005 12:34:42 +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 8531643D45 for ; Tue, 18 Oct 2005 12:34:42 +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 j9ICYgYa067556 for ; Tue, 18 Oct 2005 12:34:42 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 j9ICYgnZ067553 for perforce@freebsd.org; Tue, 18 Oct 2005 12:34:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 12:34:42 GMT Message-Id: <200510181234.j9ICYgnZ067553@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 85491 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, 18 Oct 2005 12:34:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=85491 Change 85491 by rwatson@rwatson_zoo on 2005/10/18 12:33:41 Define ARG_SET_VALID() and ARG_IS_VALID(), which respectively set and test kernel record valid bits for various arguments. Use ARG_SET_VALID() when setting flags as a result of collecting an argument. Simplify or clarify some flag-related processing; annotate some additional places where simplification or clarification is called for but not yet present. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#5 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#9 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#5 (text+ko) ==== @@ -60,7 +60,7 @@ return; ar->k_ar.ar_arg_addr = addr; - ar->k_ar.ar_valid_arg |= ARG_ADDR; + ARG_SET_VALID(ar, ARG_ADDR); } void @@ -74,7 +74,7 @@ ar->k_ar.ar_arg_exitstatus = status; ar->k_ar.ar_arg_exitretval = retval; - ar->k_ar.ar_valid_arg |= ARG_EXIT; + ARG_SET_VALID(ar, ARG_EXIT); } void @@ -87,7 +87,7 @@ return; ar->k_ar.ar_arg_len = len; - ar->k_ar.ar_valid_arg |= ARG_LEN; + ARG_SET_VALID(ar, ARG_LEN); } void @@ -100,7 +100,7 @@ return; ar->k_ar.ar_arg_fd = fd; - ar->k_ar.ar_valid_arg |= ARG_FD; + ARG_SET_VALID(ar, ARG_FD); } void @@ -113,7 +113,7 @@ return; ar->k_ar.ar_arg_fflags = fflags; - ar->k_ar.ar_valid_arg |= ARG_FFLAGS; + ARG_SET_VALID(ar, ARG_FFLAGS); } void @@ -126,7 +126,7 @@ return; ar->k_ar.ar_arg_gid = gid; - ar->k_ar.ar_valid_arg |= ARG_GID; + ARG_SET_VALID(ar, ARG_GID); } void @@ -139,7 +139,7 @@ return; ar->k_ar.ar_arg_uid = uid; - ar->k_ar.ar_valid_arg |= ARG_UID; + ARG_SET_VALID(ar, ARG_UID); } void @@ -152,7 +152,7 @@ return; ar->k_ar.ar_arg_egid = egid; - ar->k_ar.ar_valid_arg |= ARG_EGID; + ARG_SET_VALID(ar, ARG_EGID); } void @@ -165,7 +165,7 @@ return; ar->k_ar.ar_arg_euid = euid; - ar->k_ar.ar_valid_arg |= ARG_EUID; + ARG_SET_VALID(ar, ARG_EUID); } void @@ -178,7 +178,7 @@ return; ar->k_ar.ar_arg_rgid = rgid; - ar->k_ar.ar_valid_arg |= ARG_RGID; + ARG_SET_VALID(ar, ARG_RGID); } void @@ -191,7 +191,7 @@ return; ar->k_ar.ar_arg_ruid = ruid; - ar->k_ar.ar_valid_arg |= ARG_RUID; + ARG_SET_VALID(ar, ARG_RUID); } void @@ -204,7 +204,7 @@ return; ar->k_ar.ar_arg_sgid = sgid; - ar->k_ar.ar_valid_arg |= ARG_SGID; + ARG_SET_VALID(ar, ARG_SGID); } void @@ -217,7 +217,7 @@ return; ar->k_ar.ar_arg_suid = suid; - ar->k_ar.ar_valid_arg |= ARG_SUID; + ARG_SET_VALID(ar, ARG_SUID); } void @@ -233,7 +233,7 @@ for (i = 0; i < gidset_size; i++) ar->k_ar.ar_arg_groups.gidset[i] = gidset[i]; ar->k_ar.ar_arg_groups.gidset_size = gidset_size; - ar->k_ar.ar_valid_arg |= ARG_GROUPSET; + ARG_SET_VALID(ar, ARG_GROUPSET); } void @@ -245,16 +245,8 @@ if (ar == NULL) return; -#if 0 - /* - * XXX: Add strlcpy() to Darwin for improved safety. - */ strlcpy(ar->k_ar.ar_arg_login, login, MAXLOGNAME); -#else - strcpy(ar->k_ar.ar_arg_login, login); -#endif - - ar->k_ar.ar_valid_arg |= ARG_LOGIN; + ARG_SET_VALID(ar, ARG_LOGIN); } void @@ -268,7 +260,7 @@ bcopy(name, &ar->k_ar.ar_arg_ctlname, namelen * sizeof(int)); ar->k_ar.ar_arg_len = namelen; - ar->k_ar.ar_valid_arg |= (ARG_CTLNAME | ARG_LEN); + ARG_SET_VALID(ar, ARG_CTLNAME | ARG_LEN); } void @@ -281,7 +273,7 @@ return; ar->k_ar.ar_arg_mask = mask; - ar->k_ar.ar_valid_arg |= ARG_MASK; + ARG_SET_VALID(ar, ARG_MASK); } void @@ -294,7 +286,7 @@ return; ar->k_ar.ar_arg_mode = mode; - ar->k_ar.ar_valid_arg |= ARG_MODE; + ARG_SET_VALID(ar, ARG_MODE); } void @@ -307,7 +299,7 @@ return; ar->k_ar.ar_arg_dev = dev; - ar->k_ar.ar_valid_arg |= ARG_DEV; + ARG_SET_VALID(ar, ARG_DEV); } void @@ -320,7 +312,7 @@ return; ar->k_ar.ar_arg_value = value; - ar->k_ar.ar_valid_arg |= ARG_VALUE; + ARG_SET_VALID(ar, ARG_VALUE); } void @@ -334,7 +326,7 @@ ar->k_ar.ar_arg_uid = uid; ar->k_ar.ar_arg_gid = gid; - ar->k_ar.ar_valid_arg |= (ARG_UID | ARG_GID); + ARG_SET_VALID(ar, ARG_UID | ARG_GID); } void @@ -347,8 +339,7 @@ return; ar->k_ar.ar_arg_pid = pid; - ar->k_ar.ar_valid_arg |= ARG_PID; - + ARG_SET_VALID(ar, ARG_PID); } void @@ -369,11 +360,9 @@ ar->k_ar.ar_arg_ruid = p->p_ucred->cr_ruid; ar->k_ar.ar_arg_rgid = p->p_ucred->cr_rgid; ar->k_ar.ar_arg_asid = p->p_au->ai_asid; - ar->k_ar.ar_arg_termid = p->p_au->ai_termid; - - ar->k_ar.ar_valid_arg |= ARG_AUID | ARG_EUID | ARG_EGID | ARG_RUID | - ARG_RGID | ARG_ASID | ARG_TERMID | ARG_PROCESS; + ARG_SET_VALID(ar, ARG_AUID | ARG_EUID | ARG_EGID | ARG_RUID | + ARG_RGID | ARG_ASID | ARG_TERMID | ARG_PROCESS); } void @@ -386,13 +375,12 @@ return; ar->k_ar.ar_arg_signum = signum; - ar->k_ar.ar_valid_arg |= ARG_SIGNUM; + ARG_SET_VALID(ar, ARG_SIGNUM); } void audit_arg_socket(int sodomain, int sotype, int soprotocol) { - struct kaudit_record *ar; ar = currecord(); @@ -402,7 +390,7 @@ ar->k_ar.ar_arg_sockinfo.so_domain = sodomain; ar->k_ar.ar_arg_sockinfo.so_type = sotype; ar->k_ar.ar_arg_sockinfo.so_protocol = soprotocol; - ar->k_ar.ar_valid_arg |= ARG_SOCKINFO; + ARG_SET_VALID(ar, ARG_SOCKINFO); } /* @@ -421,15 +409,17 @@ bcopy(so, &ar->k_ar.ar_arg_sockaddr, sizeof(ar->k_ar.ar_arg_sockaddr)); switch (so->sa_family) { case AF_INET: - ar->k_ar.ar_valid_arg |= ARG_SADDRINET; + ARG_SET_VALID(ar, ARG_SADDRINET); break; + case AF_INET6: - ar->k_ar.ar_valid_arg |= ARG_SADDRINET6; + ARG_SET_VALID(ar, ARG_SADDRINET6); break; + case AF_UNIX: audit_arg_upath(td, ((struct sockaddr_un *)so)->sun_path, ARG_UPATH1); - ar->k_ar.ar_valid_arg |= ARG_SADDRUNIX; + ARG_SET_VALID(ar, ARG_SADDRUNIX); break; /* XXXAUDIT: default:? */ } @@ -445,7 +435,7 @@ return; ar->k_ar.ar_arg_auid = auid; - ar->k_ar.ar_valid_arg |= ARG_AUID; + ARG_SET_VALID(ar, ARG_AUID); } void @@ -463,7 +453,7 @@ ar->k_ar.ar_arg_amask.am_failure = au_info->ai_mask.am_failure; ar->k_ar.ar_arg_termid.port = au_info->ai_termid.port; ar->k_ar.ar_arg_termid.machine = au_info->ai_termid.machine; - ar->k_ar.ar_valid_arg |= ARG_AUID | ARG_ASID | ARG_AMASK | ARG_TERMID; + ARG_SET_VALID(ar, ARG_AUID | ARG_ASID | ARG_AMASK | ARG_TERMID); } void @@ -475,6 +465,9 @@ if (ar == NULL) return; + /* + * XXXAUDIT: Why do we accept a possibly NULL string here? + */ /* Invalidate the text string */ ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_TEXT); if (text == NULL) @@ -484,7 +477,7 @@ ar->k_ar.ar_arg_text = malloc(MAXPATHLEN, M_AUDIT, M_WAITOK); strncpy(ar->k_ar.ar_arg_text, text, MAXPATHLEN); - ar->k_ar.ar_valid_arg |= ARG_TEXT; + ARG_SET_VALID(ar, ARG_TEXT); } void @@ -497,7 +490,7 @@ return; ar->k_ar.ar_arg_cmd = cmd; - ar->k_ar.ar_valid_arg |= ARG_CMD; + ARG_SET_VALID(ar, ARG_CMD); } void @@ -510,7 +503,7 @@ return; ar->k_ar.ar_arg_svipc_cmd = cmd; - ar->k_ar.ar_valid_arg |= ARG_SVIPC_CMD; + ARG_SET_VALID(ar, ARG_SVIPC_CMD); } void @@ -524,7 +517,7 @@ bcopy(perm, &ar->k_ar.ar_arg_svipc_perm, sizeof(ar->k_ar.ar_arg_svipc_perm)); - ar->k_ar.ar_valid_arg |= ARG_SVIPC_PERM; + ARG_SET_VALID(ar, ARG_SVIPC_PERM); } void @@ -537,7 +530,7 @@ return; ar->k_ar.ar_arg_svipc_id = id; - ar->k_ar.ar_valid_arg |= ARG_SVIPC_ID; + ARG_SET_VALID(ar, ARG_SVIPC_ID); } void @@ -550,7 +543,7 @@ return; ar->k_ar.ar_arg_svipc_addr = addr; - ar->k_ar.ar_valid_arg |= ARG_SVIPC_ADDR; + ARG_SET_VALID(ar, ARG_SVIPC_ADDR); } void @@ -565,7 +558,7 @@ ar->k_ar.ar_arg_pipc_perm.pipc_uid = uid; ar->k_ar.ar_arg_pipc_perm.pipc_gid = gid; ar->k_ar.ar_arg_pipc_perm.pipc_mode = mode; - ar->k_ar.ar_valid_arg |= ARG_POSIX_IPC_PERM; + ARG_SET_VALID(ar, ARG_POSIX_IPC_PERM); } void @@ -579,7 +572,7 @@ bcopy((void *)udata, &ar->k_ar.ar_arg_auditon, sizeof(ar->k_ar.ar_arg_auditon)); - ar->k_ar.ar_valid_arg |= ARG_AUDITON; + ARG_SET_VALID(ar, ARG_AUDITON); } /* @@ -601,6 +594,9 @@ switch (fp->f_type) { case DTYPE_VNODE: case DTYPE_FIFO: + /* + * XXXAUDIT: Only possibly to record as first vnode? + */ vp = fp->f_vnode; vfslocked = VFS_LOCK_GIANT(vp->v_mount); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, curthread); @@ -636,7 +632,7 @@ pcb->inp_fport; ar->k_ar.ar_arg_sockinfo.so_lport = pcb->inp_lport; - ar->k_ar.ar_valid_arg |= ARG_SOCKINFO; + ARG_SET_VALID(ar, ARG_SOCKINFO); } break; @@ -656,7 +652,7 @@ * XXXAUDIT: Possibly assert that the memory isn't already allocated? */ void -audit_arg_upath(struct thread *td, char *upath, u_int64_t flags) +audit_arg_upath(struct thread *td, char *upath, u_int64_t flag) { struct kaudit_record *ar; char **pathp; @@ -667,33 +663,26 @@ /* * XXXAUDIT: Witness warning for possible sleep here? */ + KASSERT((flag == ARG_UPATH1) || (flag == ARG_UPATH2), + ("audit_arg_upath: flag %llu", flag)); + KASSERT((flag != ARG_UPATH1) || (flag != ARG_UPATH2), + ("audit_arg_upath: flag %llu", flag)); - /* - * XXXAUDIT: KASSERT argument validity? - */ - if ((flags & (ARG_UPATH1 | ARG_UPATH2)) == 0) - return; - ar = currecord(); if (ar == NULL) return; - if (flags & ARG_UPATH1) { - ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_UPATH1); + if (flag == ARG_UPATH1) pathp = &ar->k_ar.ar_arg_upath1; - } else { - ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_UPATH2); + else pathp = &ar->k_ar.ar_arg_upath2; - } if (*pathp == NULL) *pathp = malloc(MAXPATHLEN, M_AUDIT, M_WAITOK); canon_path(td, upath, *pathp); - if (flags & ARG_UPATH1) - ar->k_ar.ar_valid_arg |= ARG_UPATH1; - else - ar->k_ar.ar_valid_arg |= ARG_UPATH2; + + ARG_SET_VALID(ar, flag); } /* @@ -741,6 +730,10 @@ /* * XXXAUDIT: KASSERT argument validity instead? + * + * XXXAUDIT: The below clears, and then resets the flags for valid + * arguments. Ideally, either the new path is used, or the old one + * would be. */ if ((flags & (ARG_VNODE1 | ARG_VNODE2)) == 0) return; @@ -796,10 +789,9 @@ vnp->vn_fileid = vattr.va_fileid; vnp->vn_gen = vattr.va_gen; if (flags & ARG_VNODE1) - ar->k_ar.ar_valid_arg |= ARG_VNODE1; + ARG_SET_VALID(ar, ARG_VNODE1); else - ar->k_ar.ar_valid_arg |= ARG_VNODE2; - + ARG_SET_VALID(ar, ARG_VNODE2); } /* ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#9 (text+ko) ==== @@ -188,6 +188,16 @@ }; /* + * Arguments in the audit record are initially not defined; flags are set to + * indicate if they are present so they can be included in the audit log + * stream only if defined. + */ +#define ARG_IS_VALID(kar, arg) ((kar)->k_ar.ar_valid_arg & (arg)) +#define ARG_SET_VALID(kar, arg) do { \ + (kar)->k_ar.ar_valid_arg |= (arg); \ +} while (0) + +/* * 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. From owner-p4-projects@FreeBSD.ORG Tue Oct 18 13:03:23 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 AE35A16A423; Tue, 18 Oct 2005 13:03:22 +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 69DEA16A41F for ; Tue, 18 Oct 2005 13:03:22 +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 CE50843D5A for ; Tue, 18 Oct 2005 13:03:17 +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 j9ID3Hmj075728 for ; Tue, 18 Oct 2005 13:03:17 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 j9ID3HLx075725 for perforce@freebsd.org; Tue, 18 Oct 2005 13:03:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 13:03:17 GMT Message-Id: <200510181303.j9ID3HLx075725@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 85492 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, 18 Oct 2005 13:03:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=85492 Change 85492 by rwatson@rwatson_zoo on 2005/10/18 13:02:25 Two more cases of ARG_SET_VALID(), and use ARG_IS_VALID() when testing for bits. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#6 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#24 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#6 (text+ko) ==== @@ -771,9 +771,9 @@ } if (flags & ARG_VNODE1) - ar->k_ar.ar_valid_arg |= ARG_KPATH1; + ARG_SET_VALID(ar, ARG_KPATH1); else - ar->k_ar.ar_valid_arg |= ARG_KPATH2; + ARG_SET_VALID(ar, ARG_KPATH2); error = VOP_GETATTR(vp, &vattr, td->td_ucred, td); if (error) { ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#24 (text+ko) ==== @@ -159,61 +159,64 @@ /* * XXX May want turn some (or all) of these macros into functions in order * to reduce the generated code sized. + * + * XXXAUDIT: These macros assume that 'kar', 'ar', 'rec', and 'tok' in the + * caller are OK with this. */ #define UPATH1_TOKENS do { \ - if (ar->ar_valid_arg & ARG_UPATH1) { \ + if (ARG_IS_VALID(kar, ARG_UPATH1)) { \ tok = au_to_path(ar->ar_arg_upath1); \ kau_write(rec, tok); \ } \ } while (0) #define UPATH2_TOKENS do { \ - if (ar->ar_valid_arg & ARG_UPATH2) { \ + if (ARG_IS_VALID(kar, ARG_UPATH2)) { \ tok = au_to_path(ar->ar_arg_upath2); \ kau_write(rec, tok); \ } \ } while (0) #define KPATH1_VNODE1_TOKENS do { \ - if (ar->ar_valid_arg & ARG_KPATH1) { \ + if (ARG_IS_VALID(kar, ARG_KPATH1)) { \ tok = au_to_path(ar->ar_arg_kpath1); \ kau_write(rec, tok); \ } \ - if (ar->ar_valid_arg & ARG_VNODE1) { \ + if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ tok = au_to_attr32(&ar->ar_arg_vnode1); \ kau_write(rec, tok); \ } \ } while (0) #define KPATH1_VNODE1_OR_UPATH1_TOKENS do { \ - if (ar->ar_valid_arg & ARG_KPATH1) { \ + if (ARG_IS_VALID(kar, ARG_KPATH1)) { \ tok = au_to_path(ar->ar_arg_kpath1); \ kau_write(rec, tok); \ } else { \ UPATH1_TOKENS; \ } \ - if (ar->ar_valid_arg & ARG_VNODE1) { \ + if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ tok = au_to_attr32(&ar->ar_arg_vnode1); \ kau_write(rec, tok); \ } \ } while (0) #define KPATH2_VNODE2_TOKENS do { \ - if (ar->ar_valid_arg & ARG_KPATH2) { \ + if (ARG_IS_VALID(kar, ARG_KPATH2)) { \ tok = au_to_path(ar->ar_arg_kpath2); \ kau_write(rec, tok); \ } \ - if (ar->ar_valid_arg & ARG_VNODE2) { \ + if (ARG_IS_VALID(kar, ARG_VNODE2)) { \ tok = au_to_attr32(&ar->ar_arg_vnode2); \ kau_write(rec, tok); \ } \ } while (0) #define FD_KPATH1_VNODE1_TOKENS do { \ - if (ar->ar_valid_arg & ARG_KPATH1) { \ + if (ARG_IS_VALID(kar, ARG_KPATH1)) { \ tok = au_to_path(ar->ar_arg_kpath1); \ kau_write(rec, tok); \ - if (ar->ar_valid_arg & ARG_VNODE1) { \ + if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ tok = au_to_attr32(&ar->ar_arg_vnode1); \ kau_write(rec, tok); \ } \ @@ -223,9 +226,12 @@ } \ } while (0) +/* + * XXXAUDIT: We read ar_arg_pid without testing that it is valid first. + */ #define PROCESS_PID_TOKENS(argn) do { \ if ((ar->ar_arg_pid > 0) /* Kill a single process */ \ - && (ar->ar_valid_arg & ARG_PROCESS)) { \ + && (ARG_IS_VALID(kar, ARG_PROCESS))) { \ tok = au_to_process(ar->ar_arg_auid, \ ar->ar_arg_euid, ar->ar_arg_egid, \ ar->ar_arg_ruid, ar->ar_arg_rgid, \ @@ -399,12 +405,12 @@ case AUE_SENDTO: tok = au_to_arg32(1, "fd", ar->ar_arg_fd); kau_write(rec, tok); - if (ar->ar_valid_arg & ARG_SADDRINET) { + if (ARG_IS_VALID(kar, ARG_SADDRINET)) { tok = au_to_sock_inet( (struct sockaddr_in *)&ar->ar_arg_sockaddr); kau_write(rec, tok); } - if (ar->ar_valid_arg & ARG_SADDRUNIX) { + if (ARG_IS_VALID(kar, ARG_SADDRUNIX)) { tok = au_to_sock_unix( (struct sockaddr_un *)&ar->ar_arg_sockaddr); kau_write(rec, tok); @@ -430,7 +436,7 @@ break; case AUE_ACCT: - if (ar->ar_valid_arg & (ARG_KPATH1 | ARG_UPATH1)) { + if (ARG_IS_VALID(kar, ARG_KPATH1 | ARG_UPATH1)) { KPATH1_VNODE1_OR_UPATH1_TOKENS; } else { tok = au_to_arg32(1, "accounting off", 0); @@ -444,7 +450,7 @@ break; case AUE_SETAUDIT: - if (ar->ar_valid_arg & ARG_AUID) { + if (ARG_IS_VALID(kar, ARG_AUID)) { tok = au_to_arg32(1, "setaudit:auid", ar->ar_arg_auid); kau_write(rec, tok); tok = au_to_arg32(1, "setaudit:port", @@ -489,7 +495,7 @@ case AUE_AUDITON_SETUMASK: case AUE_AUDITON_SPOLICY: case AUE_AUDITON_SQCTRL: - if (ar->ar_valid_arg & ARG_AUDITON) { + if (ARG_IS_VALID(kar, ARG_AUDITON)) { audit_sys_auditon(ar, rec); } break; @@ -636,10 +642,10 @@ kau_write(rec, tok); tok = au_to_arg32(1, "arg", (u_int32_t)ar->ar_arg_addr); kau_write(rec, tok); - if (ar->ar_valid_arg & ARG_VNODE1) { + if (ARG_IS_VALID(kar, ARG_VNODE1)) { FD_KPATH1_VNODE1_TOKENS; } else { - if (ar->ar_valid_arg & ARG_SOCKINFO) { + if (ARG_IS_VALID(kar, ARG_SOCKINFO)) { tok = kau_to_socket(&ar->ar_arg_sockinfo); kau_write(rec, tok); } else { @@ -716,7 +722,7 @@ /* XXX Need to handle NFS mounts */ tok = au_to_arg32(3, "flags", ar->ar_arg_fflags); kau_write(rec, tok); - if (ar->ar_valid_arg & ARG_TEXT) { + if (ARG_IS_VALID(kar, ARG_TEXT)) { tok = au_to_text(ar->ar_arg_text); kau_write(rec, tok); } @@ -858,7 +864,7 @@ kau_write(rec, tok); break; case AUE_SETGROUPS: - if (ar->ar_valid_arg & ARG_GROUPSET) { + if (ARG_IS_VALID(kar, ARG_GROUPSET)) { for(ctr = 0; ctr < ar->ar_arg_groups.gidset_size; ctr++) { tok = au_to_arg32(1, "setgroups", ar->ar_arg_groups.gidset[ctr]); @@ -868,7 +874,7 @@ break; case AUE_SETLOGIN: - if (ar->ar_valid_arg & ARG_TEXT) { + if (ARG_IS_VALID(kar, ARG_TEXT)) { tok = au_to_text(ar->ar_arg_text); kau_write(rec, tok); } @@ -894,7 +900,7 @@ kau_write(rec, tok); tok = au_to_arg32(2, "shmaddr", (int)ar->ar_arg_svipc_addr); kau_write(rec, tok); - if (ar->ar_valid_arg & ARG_SVIPC_PERM) { + if (ARG_IS_VALID(kar, ARG_SVIPC_PERM)) { tok = au_to_ipc(AT_IPC_SHM, ar->ar_arg_svipc_id); kau_write(rec, tok); tok = au_to_ipc_perm(&ar->ar_arg_svipc_perm); @@ -908,7 +914,7 @@ switch (ar->ar_arg_svipc_cmd) { case IPC_STAT: ar->ar_event = AUE_SHMCTL_STAT; - if (ar->ar_valid_arg & ARG_SVIPC_PERM) { + if (ARG_IS_VALID(kar, ARG_SVIPC_PERM)) { tok = au_to_ipc(AT_IPC_SHM, ar->ar_arg_svipc_id); kau_write(rec, tok); @@ -916,7 +922,7 @@ break; case IPC_RMID: ar->ar_event = AUE_SHMCTL_RMID; - if (ar->ar_valid_arg & ARG_SVIPC_PERM) { + if (ARG_IS_VALID(kar, ARG_SVIPC_PERM)) { tok = au_to_ipc(AT_IPC_SHM, ar->ar_arg_svipc_id); kau_write(rec, tok); @@ -924,7 +930,7 @@ break; case IPC_SET: ar->ar_event = AUE_SHMCTL_SET; - if (ar->ar_valid_arg & ARG_SVIPC_PERM) { + if (ARG_IS_VALID(kar, ARG_SVIPC_PERM)) { tok = au_to_ipc(AT_IPC_SHM, ar->ar_arg_svipc_id); kau_write(rec, tok); @@ -946,7 +952,7 @@ /* This is unusual; the return value is in an argument token */ tok = au_to_arg32(0, "shmid", ar->ar_arg_svipc_id); kau_write(rec, tok); - if (ar->ar_valid_arg & ARG_SVIPC_PERM) { + if (ARG_IS_VALID(kar, ARG_SVIPC_PERM)) { tok = au_to_ipc(AT_IPC_SHM, ar->ar_arg_svipc_id); kau_write(rec, tok); tok = au_to_ipc_perm(&ar->ar_arg_svipc_perm); @@ -962,11 +968,11 @@ tok = au_to_arg32(3, "mode", ar->ar_arg_mode); kau_write(rec, tok); case AUE_SHMUNLINK: - if (ar->ar_valid_arg & ARG_TEXT) { + if (ARG_IS_VALID(kar, ARG_TEXT)) { tok = au_to_text(ar->ar_arg_text); kau_write(rec, tok); } - if (ar->ar_valid_arg & ARG_POSIX_IPC_PERM) { + if (ARG_IS_VALID(kar, ARG_POSIX_IPC_PERM)) { /* Create an ipc_perm token */ struct ipc_perm perm; perm.uid = ar->ar_arg_pipc_perm.pipc_uid; @@ -990,11 +996,11 @@ kau_write(rec, tok); /* fall through */ case AUE_SEMUNLINK: - if (ar->ar_valid_arg & ARG_TEXT) { + if (ARG_IS_VALID(kar, ARG_TEXT)) { tok = au_to_text(ar->ar_arg_text); kau_write(rec, tok); } - if (ar->ar_valid_arg & ARG_POSIX_IPC_PERM) { + if (ARG_IS_VALID(kar, ARG_POSIX_IPC_PERM)) { /* Create an ipc_perm token */ struct ipc_perm perm; perm.uid = ar->ar_arg_pipc_perm.pipc_uid; @@ -1015,7 +1021,7 @@ break; case AUE_SYMLINK: - if (ar->ar_valid_arg & ARG_TEXT) { + if (ARG_IS_VALID(kar, ARG_TEXT)) { tok = au_to_text(ar->ar_arg_text); kau_write(rec, tok); } @@ -1023,17 +1029,17 @@ break; case AUE_SYSCTL: - if (ar->ar_valid_arg & (ARG_CTLNAME | ARG_LEN)) { + if (ARG_IS_VALID(kar, ARG_CTLNAME | ARG_LEN)) { for (ctr = 0; ctr < ar->ar_arg_len; ctr++) { tok = au_to_arg32(1, "name", ar->ar_arg_ctlname[ctr]); kau_write(rec, tok); } } - if (ar->ar_valid_arg & ARG_VALUE) { + if (ARG_IS_VALID(kar, ARG_VALUE)) { tok = au_to_arg32(5, "newval", ar->ar_arg_value); kau_write(rec, tok); } - if (ar->ar_valid_arg & ARG_TEXT) { + if (ARG_IS_VALID(kar, ARG_TEXT)) { tok = au_to_text(ar->ar_arg_text); kau_write(rec, tok); } From owner-p4-projects@FreeBSD.ORG Tue Oct 18 13:09:26 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 E466816A421; Tue, 18 Oct 2005 13:09:25 +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 9E51B16A41F for ; Tue, 18 Oct 2005 13:09:25 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6435B43D46 for ; Tue, 18 Oct 2005 13:09:25 +0000 (GMT) (envelope-from soc-chenk@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 j9ID9PQJ075980 for ; Tue, 18 Oct 2005 13:09:25 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9ID9Pjc075977 for perforce@freebsd.org; Tue, 18 Oct 2005 13:09:25 GMT (envelope-from soc-chenk@freebsd.org) Date: Tue, 18 Oct 2005 13:09:25 GMT Message-Id: <200510181309.j9ID9Pjc075977@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85493 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, 18 Oct 2005 13:09:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=85493 Change 85493 by soc-chenk@soc-chenk_leavemealone on 2005/10/18 13:09:00 Attempt to fix machine dependency issues Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#21 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#11 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#21 (text+ko) ==== @@ -728,7 +728,7 @@ DEBUG("op %s (#%d) was sent to us with a body of size %d\n", (0 <= opcode && opcode <= fuse_opnames_entries) ? fuse_opnames[opcode] : "???", - opcode, blen); + opcode, (int)blen); switch (opcode) { case FUSE_LOOKUP: @@ -1701,7 +1701,8 @@ fuse_mount(struct mount *mp, struct thread *td) { int err = 0; - int len; + int typelen = 0; + size_t len; char *fspec; struct vnode *devvp; struct vfsoptlist *opts; @@ -1742,9 +1743,9 @@ /* `from' contains the device name (eg. /dev/fuse0); REQUIRED */ fspec = NULL; - if ((err = vfs_getopt(opts, "from", (void **)&fspec, &len))) + if ((err = vfs_getopt(opts, "from", (void **)&fspec, &typelen))) return (err); - if (!fspec || fspec[len - 1] != '\0') + if (!fspec || fspec[typelen - 1] != '\0') return (EINVAL); mp->mnt_data = NULL; @@ -1923,6 +1924,7 @@ vfs_getnewfsid(mp); mp->mnt_flag |= MNT_LOCAL; + len = typelen; copystr(fspec, mp->mnt_stat.f_mntfromname, MNAMELEN - 1, &len); if (fmnt->mntopts & FUSEFS_SECONDARY && len >= 1) { /* @@ -3501,8 +3503,8 @@ if ((err = fdisp_wait_answ(&fdi))) goto out; - DEBUG2G("%d bytes asked for from offset %lld, passing on the %d we got\n", - uio->uio_resid, uio->uio_offset, fdi.iosize); + DEBUG2G("%d bytes asked for from offset %d, passing on the %d we got\n", + uio->uio_resid, (int)uio->uio_offset, (int)fdi.iosize); if ((err = buffe(uio, fri->size, fdi.answ, fdi.iosize, param))) break; @@ -3737,7 +3739,7 @@ cookediov = param; - DEBUG2G("entering loop with bufsize %d\n", bufsize); + DEBUG2G("entering loop with bufsize %d\n", (int)bufsize); /* * Can we avoid infite loops? An infinite loop could occur only if we @@ -3766,7 +3768,7 @@ fudge = (struct fuse_dirent *)buf; freclen = FUSE_DIRENT_SIZE(fudge); - DEBUG("bufsize %d, freclen %d\n", bufsize, freclen); + DEBUG("bufsize %d, freclen %d\n", (int)bufsize, (int)freclen); /* * Here is an exit condition: we terminate the whole reading @@ -4662,7 +4664,7 @@ int n, on, err = 0; int64_t fsize = vp->v_object->un_pager.vnp.vnp_size; - DEBUG2G("fsize %lld\n", fsize); + DEBUG2G("fsize %lld\n", (long long int)fsize); biosize = vp->v_mount->mnt_stat.f_iosize; /* @@ -5019,8 +5021,8 @@ bp->b_resid -= respsize; bufdat += respsize; - DEBUG2G("%d bytes asked for from offset %lld, passing on the %d we got\n", - chunksize, fri->offset, respsize); + DEBUG2G("%d bytes asked for from offset %llu, passing on the %d we got\n", + chunksize, (long long unsigned)fri->offset, respsize); if (respsize < chunksize) { #if ZERO_PAD_INCOMPLETE_BUFS ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.h#11 (text+ko) ==== @@ -136,7 +136,7 @@ #define FUSE_ROOT_INODE 1 /* Fuse convention: node id of root node is 1 */ #define VTOI(vp) ((struct fuse_vnode_data *)(vp)->v_data)->nid -#define VTOI32(vp) (uint64_t)(vp)->v_hash +#define VTOI32(vp) (unsigned long long)(vp)->v_hash /** Max number of pages that can be used in a single read request */ /* (taken from Linux Fuse) */ From owner-p4-projects@FreeBSD.ORG Tue Oct 18 13:17:37 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 88D1016A422; Tue, 18 Oct 2005 13:17:36 +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 42E1E16A41F for ; Tue, 18 Oct 2005 13:17:36 +0000 (GMT) (envelope-from wsalamon@computer.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E258143D48 for ; Tue, 18 Oct 2005 13:17:35 +0000 (GMT) (envelope-from wsalamon@computer.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9IDHZN4076344 for ; Tue, 18 Oct 2005 13:17:35 GMT (envelope-from wsalamon@computer.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9IDHZ5J076341 for perforce@freebsd.org; Tue, 18 Oct 2005 13:17:35 GMT (envelope-from wsalamon@computer.org) Date: Tue, 18 Oct 2005 13:17:35 GMT Message-Id: <200510181317.j9IDHZ5J076341@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to wsalamon@computer.org using -f From: Wayne Salamon To: Perforce Change Reviews Cc: Subject: PERFORCE change 85494 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, 18 Oct 2005 13:17:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=85494 Change 85494 by wsalamon@gretsch on 2005/10/18 13:17:03 Add more info on wait4(). Affected files ... .. //depot/projects/trustedbsd/audit3/notes/syscall_audit.tsv#2 edit Differences ... ==== //depot/projects/trustedbsd/audit3/notes/syscall_audit.tsv#2 (text+ko) ==== @@ -21,7 +21,7 @@ SYS_write 4 N N SYS_open 5 Y Y path, fflags, mode audited SYS_close 6 Y Y fd -SYS_wait4 7 ? N status, return PID +SYS_wait4 7 ? N pid, options, status?, return PID SYS_creat 8 Y Y Implemented via kern_open(), so audited as open() SYS_link 9 Y N From owner-p4-projects@FreeBSD.ORG Tue Oct 18 14:10:42 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 3029716A421; Tue, 18 Oct 2005 14:10:42 +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 CE2E716A41F for ; Tue, 18 Oct 2005 14:10:41 +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 896DF43D46 for ; Tue, 18 Oct 2005 14:10:41 +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 j9IEAf1H078665 for ; Tue, 18 Oct 2005 14:10:41 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 j9IEAfqA078662 for perforce@freebsd.org; Tue, 18 Oct 2005 14:10:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 14:10:41 GMT Message-Id: <200510181410.j9IEAfqA078662@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 85498 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, 18 Oct 2005 14:10:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=85498 Change 85498 by rwatson@rwatson_fledge on 2005/10/18 14:10:23 Teach OpenBSM about AUT_HEADER32_EX, which is required to parse Solaris 10 audit trails. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#2 edit .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#16 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#2 (text+ko) ==== @@ -332,6 +332,29 @@ } au_header32_t; +/* + * record byte count 4 bytes + * version # 1 byte [2] + * event type 2 bytes + * event modifier 2 bytes + * address type/length 1 byte + * machine address 4 bytes/16 bytes (IPv4/IPv6 address) + * seconds of time 4 bytes/8 bytes (32/64-bits) + * nanoseconds of time 4 bytes/8 bytes (32/64-bits) + */ +typedef struct { + + u_int32_t size; + u_char version; + u_int16_t e_type; + u_int16_t e_mod; + u_char ad_type; + u_int32_t addr[4]; + u_int32_t s; + u_int32_t ms; + +} au_header32_ex_t; + typedef struct { u_int32_t size; @@ -740,6 +763,7 @@ au_file_t file; au_groups_t grps; au_header32_t hdr32; + au_header32_ex_t hdr32_ex; au_header64_t hdr64; au_inaddr_t inaddr; au_inaddr_ex_t inaddr_ex; ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#16 (text+ko) ==== @@ -490,8 +490,106 @@ /* * record byte count 4 bytes + * version # 1 byte [2] * event type 2 bytes * event modifier 2 bytes + * address type/length 1 byte + * machine address 4 bytes/16 bytes (IPv4/IPv6 address) + * seconds of time 4 bytes/8 bytes (32/64-bits) + * nanoseconds of time 4 bytes/8 bytes (32/64-bits) + */ +static int +fetch_header32_ex_tok(tokenstr_t *tok, char *buf, int len) +{ + int err = 0; + + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.size, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_CHAR(buf, len, tok->tt.hdr32_ex.version, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT16(buf, len, tok->tt.hdr32_ex.e_type, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT16(buf, len, tok->tt.hdr32_ex.e_mod, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_CHAR(buf, len, tok->tt.hdr32_ex.ad_type, tok->len, err); + if (err) + return (-1); + + bzero(tok->tt.hdr32_ex.addr, sizeof(tok->tt.hdr32_ex.addr)); + switch (tok->tt.hdr32_ex.ad_type) { + case AF_INET: + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[0], + tok->len, err); + if (err) + return (-1); + break; + + case AF_INET6: + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[0], + tok->len, err); + if (err) + return (-1); + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[1], + tok->len, err); + if (err) + return (-1); + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[2], + tok->len, err); + if (err) + return (-1); + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[3], + tok->len, err); + if (err) + return (-1); + break; + } + + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.s, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.ms, tok->len, err); + if (err) + return (-1); + + return (0); +} + +static void +print_header32_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, + char sfrm) +{ + + print_tok_type(fp, tok->id, "header_ex", raw); + print_delim(fp, del); + print_4_bytes(fp, tok->tt.hdr32_ex.size, "%u"); + print_delim(fp, del); + print_1_byte(fp, tok->tt.hdr32_ex.version, "%u"); + print_delim(fp, del); + print_event(fp, tok->tt.hdr32_ex.e_type, raw, sfrm); + print_delim(fp, del); + print_evmod(fp, tok->tt.hdr32_ex.e_mod, raw); + print_delim(fp, del); + print_ip_ex_address(fp, tok->tt.hdr32_ex.ad_type, + tok->tt.hdr32_ex.addr); + print_delim(fp, del); + print_sec32(fp, tok->tt.hdr32_ex.s, raw); + print_delim(fp, del); + print_msec32(fp, tok->tt.hdr32_ex.ms, raw); +} + +/* + * record byte count 4 bytes + * event type 2 bytes + * event modifier 2 bytes * seconds of time 4 bytes/8 bytes (32-bit/64-bit value) * milliseconds of time 4 bytes/8 bytes (32-bit/64-bit value) * version # @@ -2211,7 +2309,8 @@ /* * Reads the token beginning at buf into tok. */ -int au_fetch_tok(tokenstr_t *tok, u_char *buf, int len) +int +au_fetch_tok(tokenstr_t *tok, u_char *buf, int len) { if (len <= 0) @@ -2225,6 +2324,9 @@ case AUT_HEADER32: return (fetch_header32_tok(tok, buf, len)); + case AUT_HEADER32_EX: + return (fetch_header32_ex_tok(tok, buf, len)); + case AUT_HEADER64: return (fetch_header64_tok(tok, buf, len)); @@ -2340,6 +2442,9 @@ case AUT_HEADER32: return (print_header32_tok(outfp, tok, del, raw, sfrm)); + case AUT_HEADER32_EX: + return (print_header32_ex_tok(outfp, tok, del, raw, sfrm)); + case AUT_HEADER64: return (print_header64_tok(outfp, tok, del, raw, sfrm)); From owner-p4-projects@FreeBSD.ORG Tue Oct 18 14:51:32 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 1EDEC16A421; Tue, 18 Oct 2005 14:51: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 B7B4416A41F for ; Tue, 18 Oct 2005 14:51:31 +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 826DC43D46 for ; Tue, 18 Oct 2005 14:51:31 +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 j9IEpVli080150 for ; Tue, 18 Oct 2005 14:51: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 j9IEpVEU080147 for perforce@freebsd.org; Tue, 18 Oct 2005 14:51:31 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 14:51:31 GMT Message-Id: <200510181451.j9IEpVEU080147@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 85500 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, 18 Oct 2005 14:51:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=85500 Change 85500 by rwatson@rwatson_fledge on 2005/10/18 14:51:07 Add Solaris-compatible definitions for address types, which are in fact their lengths in bytes. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/audit.h#10 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/audit.h#10 (text+ko) ==== @@ -157,6 +157,13 @@ #define AU_FS_MINFREE 20 /* default min filesystem freespace, in percent */ +/* + * Type definitions used indicating the length of variable length addresses + * in tokens containing addresses, such as header fields. + */ +#define AU_IPv4 4 +#define AU_IPv6 16 + __BEGIN_DECLS typedef uid_t au_id_t; From owner-p4-projects@FreeBSD.ORG Tue Oct 18 14:54:37 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 7C94516A421; Tue, 18 Oct 2005 14:54:36 +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 414F516A41F for ; Tue, 18 Oct 2005 14:54:36 +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 AD05943D48 for ; Tue, 18 Oct 2005 14:54:35 +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 j9IEsZI4080337 for ; Tue, 18 Oct 2005 14:54:35 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 j9IEsZf2080334 for perforce@freebsd.org; Tue, 18 Oct 2005 14:54:35 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 14:54:35 GMT Message-Id: <200510181454.j9IEsZf2080334@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 85501 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, 18 Oct 2005 14:54:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=85501 Change 85501 by rwatson@rwatson_fledge on 2005/10/18 14:53:45 Use AU_IP{v4,v6}, not AF_INET and AF_INET6, which will result in mis-handling of addresses (BSD/Darwin addresses will not be readable by Solaris and vice versa). Now we use the Solaris convention. The address type in AUT_HEADER32_EX is actually 4 bytes long, not 1 byte as documented in the BSM documentation. This corrects handling of the IP address and time fields in header32_ex. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#3 edit .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#17 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#3 (text+ko) ==== @@ -348,7 +348,7 @@ u_char version; u_int16_t e_type; u_int16_t e_mod; - u_char ad_type; + u_int32_t ad_type; u_int32_t addr[4]; u_int32_t s; u_int32_t ms; ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#17 (text+ko) ==== @@ -366,15 +366,19 @@ char dst[INET6_ADDRSTRLEN]; const char *ret = NULL; - if (type == AF_INET) { + switch (type) { + case AU_IPv4: ipv4.s_addr = (in_addr_t)(ipaddr[0]); - ret = inet_ntop(type, &ipv4, dst, INET6_ADDRSTRLEN); - } else if (type == AF_INET6) { + ret = inet_ntop(AF_INET, &ipv4, dst, INET6_ADDRSTRLEN); + break; + + case AU_IPv6: ipv6.__u6_addr.__u6_addr32[0] = ipaddr[0]; ipv6.__u6_addr.__u6_addr32[1] = ipaddr[1]; ipv6.__u6_addr.__u6_addr32[2] = ipaddr[2]; ipv6.__u6_addr.__u6_addr32[3] = ipaddr[3]; - ret = inet_ntop(type, &ipv6, dst, INET6_ADDRSTRLEN); + ret = inet_ntop(AF_INET6, &ipv6, dst, INET6_ADDRSTRLEN); + break; } if (ret != NULL) { @@ -489,11 +493,19 @@ } /* + * The Solaris specifications for AUE_HEADER32_EX seem to differ a bit + * depending on the bit of the specifications found. The OpenSolaris source + * code uses a 4-byte address length, followed by some number of bytes of + * address data. This contrasts with the Solaris audit.log.5 man page, which + * specifies a 1-byte length field. We use the Solaris 10 definition so that + * we can parse audit trails from that system. + * * record byte count 4 bytes * version # 1 byte [2] * event type 2 bytes * event modifier 2 bytes - * address type/length 1 byte + * address type/length 4 bytes + * [ Solaris man page: address type/length 1 byte] * machine address 4 bytes/16 bytes (IPv4/IPv6 address) * seconds of time 4 bytes/8 bytes (32/64-bits) * nanoseconds of time 4 bytes/8 bytes (32/64-bits) @@ -519,36 +531,22 @@ if (err) return (-1); - READ_TOKEN_U_CHAR(buf, len, tok->tt.hdr32_ex.ad_type, tok->len, err); + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.ad_type, tok->len, err); if (err) return (-1); bzero(tok->tt.hdr32_ex.addr, sizeof(tok->tt.hdr32_ex.addr)); switch (tok->tt.hdr32_ex.ad_type) { - case AF_INET: - READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[0], - tok->len, err); + case AU_IPv4: + READ_TOKEN_BYTES(buf, len, &tok->tt.hdr32_ex.addr[0], + sizeof(tok->tt.hdr32_ex.addr[0]), tok->len, err); if (err) return (-1); break; - case AF_INET6: - READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[0], - tok->len, err); - if (err) - return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[1], - tok->len, err); - if (err) - return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[2], - tok->len, err); - if (err) - return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.hdr32_ex.addr[3], - tok->len, err); - if (err) - return (-1); + case AU_IPv6: + READ_TOKEN_BYTES(buf, len, &tok->tt.hdr32_ex.addr, + sizeof(tok->tt.hdr32_ex.addr), tok->len, err); break; } @@ -1249,12 +1247,12 @@ if (err) return (-1); - if (tok->tt.inaddr_ex.type == AF_INET) { + if (tok->tt.inaddr_ex.type == AU_IPv4) { READ_TOKEN_BYTES(buf, len, &tok->tt.inaddr_ex.addr[0], sizeof(tok->tt.inaddr_ex.addr[0]), tok->len, err); if (err) return (-1); - } else if (tok->tt.inaddr_ex.type == AF_INET6) { + } else if (tok->tt.inaddr_ex.type == AU_IPv6) { READ_TOKEN_BYTES(buf, len, &tok->tt.inaddr_ex.addr, sizeof(tok->tt.inaddr_ex.addr), tok->len, err); if (err) @@ -1662,12 +1660,12 @@ if (err) return (-1); - if (tok->tt.proc32_ex.tid.type == AF_INET) { + if (tok->tt.proc32_ex.tid.type == AU_IPv4) { READ_TOKEN_BYTES(buf, len, &tok->tt.proc32_ex.tid.addr[0], sizeof(tok->tt.proc32_ex.tid.addr[0]), tok->len, err); if (err) return (-1); - } else if (tok->tt.proc32_ex.tid.type == AF_INET6) { + } else if (tok->tt.proc32_ex.tid.type == AU_IPv6) { READ_TOKEN_BYTES(buf, len, &tok->tt.proc32_ex.tid.addr, sizeof(tok->tt.proc32_ex.tid.addr), tok->len, err); if (err) @@ -2134,12 +2132,12 @@ if (err) return (-1); - if (tok->tt.subj32_ex.tid.type == AF_INET) { + if (tok->tt.subj32_ex.tid.type == AU_IPv4) { READ_TOKEN_BYTES(buf, len, &tok->tt.subj32_ex.tid.addr[0], sizeof(tok->tt.subj32_ex.tid.addr[0]), tok->len, err); if (err) return (-1); - } else if (tok->tt.subj32_ex.tid.type == AF_INET6) { + } else if (tok->tt.subj32_ex.tid.type == AU_IPv6) { READ_TOKEN_BYTES(buf, len, &tok->tt.subj32_ex.tid.addr, sizeof(tok->tt.subj32_ex.tid.addr), tok->len, err); if (err) From owner-p4-projects@FreeBSD.ORG Tue Oct 18 15:08: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 602AD16A421; Tue, 18 Oct 2005 15:08:54 +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 2268B16A41F for ; Tue, 18 Oct 2005 15:08:54 +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 CEFBB43D45 for ; Tue, 18 Oct 2005 15:08:53 +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 j9IF8rAa080934 for ; Tue, 18 Oct 2005 15:08:53 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9IF8rph080931 for perforce@freebsd.org; Tue, 18 Oct 2005 15:08:53 GMT (envelope-from jhb@freebsd.org) Date: Tue, 18 Oct 2005 15:08:53 GMT Message-Id: <200510181508.j9IF8rph080931@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 85503 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, 18 Oct 2005 15:08:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=85503 Change 85503 by jhb@jhb_slimer on 2005/10/18 15:08:37 Compile. Affected files ... .. //depot/projects/smpng/sys/kern/kern_mutex.c#106 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_mutex.c#106 (text+ko) ==== @@ -72,6 +72,8 @@ #include +#include + #include #include From owner-p4-projects@FreeBSD.ORG Tue Oct 18 15:13:00 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 7C69C16A421; Tue, 18 Oct 2005 15:13:00 +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 3FA6A16A41F for ; Tue, 18 Oct 2005 15:13:00 +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 E688F43D48 for ; Tue, 18 Oct 2005 15:12:59 +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 j9IFCxVA081188 for ; Tue, 18 Oct 2005 15:12:59 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 j9IFCxLx081185 for perforce@freebsd.org; Tue, 18 Oct 2005 15:12:59 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Tue, 18 Oct 2005 15:12:59 GMT Message-Id: <200510181512.j9IFCxLx081185@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 85505 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, 18 Oct 2005 15:13:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=85505 Change 85505 by rwatson@rwatson_fledge on 2005/10/18 15:12:32 Teach OpenBSM about AUT_HEADER64_EX. Same specification bug as AUT_HEADER32_EX in the Solaris man pages: 4 byte address type, not 1. Affected files ... .. //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#4 edit .. //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#18 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/bsm/libbsm.h#4 (text+ko) ==== @@ -337,7 +337,7 @@ * version # 1 byte [2] * event type 2 bytes * event modifier 2 bytes - * address type/length 1 byte + * address type/length 1 byte (XXX: actually, 4 bytes) * machine address 4 bytes/16 bytes (IPv4/IPv6 address) * seconds of time 4 bytes/8 bytes (32/64-bits) * nanoseconds of time 4 bytes/8 bytes (32/64-bits) @@ -366,6 +366,19 @@ } au_header64_t; +typedef struct { + + u_int32_t size; + u_char version; + u_int16_t e_type; + u_int16_t e_mod; + u_int32_t ad_type; + u_int32_t addr[4]; + u_int64_t s; + u_int64_t ms; + +} au_header64_ex_t; + /* * internet address 4 bytes @@ -765,6 +778,7 @@ au_header32_t hdr32; au_header32_ex_t hdr32_ex; au_header64_t hdr64; + au_header64_ex_t hdr64_ex; au_inaddr_t inaddr; au_inaddr_ex_t inaddr_ex; au_ip_t ip; ==== //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#18 (text+ko) ==== @@ -642,6 +642,92 @@ print_delim(fp, del); print_msec64(fp, tok->tt.hdr64.ms, raw); } +/* + * record byte count 4 bytes + * version # 1 byte [2] + * event type 2 bytes + * event modifier 2 bytes + * address type/length 4 bytes + * [ Solaris man page: address type/length 1 byte] + * machine address 4 bytes/16 bytes (IPv4/IPv6 address) + * seconds of time 4 bytes/8 bytes (32/64-bits) + * nanoseconds of time 4 bytes/8 bytes (32/64-bits) + * + * XXXAUDIT: See comment by fetch_header32_ex_tok() for details on the + * accuracy of the BSM spec. + */ +static int +fetch_header64_ex_tok(tokenstr_t *tok, char *buf, int len) +{ + int err = 0; + + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr64_ex.size, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_CHAR(buf, len, tok->tt.hdr64_ex.version, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT16(buf, len, tok->tt.hdr64_ex.e_type, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT16(buf, len, tok->tt.hdr64_ex.e_mod, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT32(buf, len, tok->tt.hdr64_ex.ad_type, tok->len, err); + if (err) + return (-1); + + bzero(tok->tt.hdr64_ex.addr, sizeof(tok->tt.hdr64_ex.addr)); + switch (tok->tt.hdr64_ex.ad_type) { + case AU_IPv4: + READ_TOKEN_BYTES(buf, len, &tok->tt.hdr64_ex.addr[0], + sizeof(tok->tt.hdr64_ex.addr[0]), tok->len, err); + if (err) + return (-1); + break; + + case AU_IPv6: + READ_TOKEN_BYTES(buf, len, &tok->tt.hdr64_ex.addr, + sizeof(tok->tt.hdr64_ex.addr), tok->len, err); + break; + } + + READ_TOKEN_U_INT64(buf, len, tok->tt.hdr64_ex.s, tok->len, err); + if (err) + return (-1); + + READ_TOKEN_U_INT64(buf, len, tok->tt.hdr64_ex.ms, tok->len, err); + if (err) + return (-1); + + return (0); +} + +static void +print_header64_ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, char sfrm) +{ + + print_tok_type(fp, tok->id, "header_ex", raw); + print_delim(fp, del); + print_4_bytes(fp, tok->tt.hdr64_ex.size, "%u"); + print_delim(fp, del); + print_1_byte(fp, tok->tt.hdr64_ex.version, "%u"); + print_delim(fp, del); + print_event(fp, tok->tt.hdr64_ex.e_type, raw, sfrm); + print_delim(fp, del); + print_evmod(fp, tok->tt.hdr64_ex.e_mod, raw); + print_delim(fp, del); + print_ip_ex_address(fp, tok->tt.hdr64_ex.ad_type, + tok->tt.hdr64_ex.addr); + print_delim(fp, del); + print_sec64(fp, tok->tt.hdr64_ex.s, raw); + print_delim(fp, del); + print_msec64(fp, tok->tt.hdr64_ex.ms, raw); +} /* * trailer magic 2 bytes @@ -2328,6 +2414,9 @@ case AUT_HEADER64: return (fetch_header64_tok(tok, buf, len)); + case AUT_HEADER64_EX: + return (fetch_header64_ex_tok(tok, buf, len)); + case AUT_TRAILER: return (fetch_trailer_tok(tok, buf, len)); @@ -2446,6 +2535,9 @@ case AUT_HEADER64: return (print_header64_tok(outfp, tok, del, raw, sfrm)); + case AUT_HEADER64_EX: + return (print_header64_ex_tok(outfp, tok, del, raw, sfrm)); + case AUT_TRAILER: return (print_trailer_tok(outfp, tok, del, raw, sfrm)); From owner-p4-projects@FreeBSD.ORG Tue Oct 18 16:32:26 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 B6D1016A44E; Tue, 18 Oct 2005 16:32:24 +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 1F08E16A422; Tue, 18 Oct 2005 16:32:24 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 61BAB43D48; Tue, 18 Oct 2005 16:32:22 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.50.41.234] (Not Verified[10.50.41.234]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Tue, 18 Oct 2005 12:48:53 -0400 From: John Baldwin To: Robert Watson Date: Tue, 18 Oct 2005 12:21:05 -0400 User-Agent: KMail/1.8.2 References: <200510171542.j9HFgRhI073994@repoman.freebsd.org> <200510171538.30876.jhb@freebsd.org> <20051018112150.S56080@fledge.watson.org> In-Reply-To: <20051018112150.S56080@fledge.watson.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200510181221.06529.jhb@freebsd.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 85448 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, 18 Oct 2005 16:32:26 -0000 On Tuesday 18 October 2005 06:23 am, Robert Watson wrote: > On Mon, 17 Oct 2005, John Baldwin wrote: > > On Monday 17 October 2005 11:42 am, Robert Watson wrote: > >> http://perforce.freebsd.org/chv.cgi?CH=85448 > >> > >> Change 85448 by rwatson@rwatson_zoo on 2005/10/17 15:41:26 > >> > >> In execve(), audit the path name being executed. Annotate that it > >> would also be good to audit the pathname of the interpreter, if > >> any. > > > > It's not a huge deal to do that you know, add the AUDITVNPATH1 flag to > > the various name lookups in imgact_foo.c > > I'm not sure I fully understand how the lookups are managed in execve() -- > if you look at the do_execve() code, you'll see that it iterates around > and re-executes the same namei() for the interpreter label -- however, > when I instrument it so that a second invocation audits as the second > audit path, no second path appears, suggesting that in fact it is in the > image activator. I'll have to do some more reading. I think it depends on the activator. I think that imgact_shell might depend on the second lookup in do_execve() for #!/bin/sh type files for example, but imgact_elf certainly does its own lookup to find the appopriate ELF interpreter (i.e. rtld) to use. > Robert N M Watson > > >> Affected files ... > >> > >> .. //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 edit > >> > >> Differences ... > >> > >> ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#5 (text+ko) > >> ==== > >> > >> @@ -350,10 +350,13 @@ > >> /* > >> * Translate the file name. namei() returns a vnode pointer > >> * in ni_vp amoung other things. > >> + * > >> + * XXXAUDIT: It would be desirable to also audit the name of the > >> + * interpreter if this is an interpreted binary. > >> */ > >> ndp = &nd; > >> - NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE, > >> - UIO_SYSSPACE, args->fname, td); > >> + NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE | > >> + AUDITVNPATH1, UIO_SYSSPACE, args->fname, td); > >> > >> interpret: > >> error = namei(ndp); -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-p4-projects@FreeBSD.ORG Tue Oct 18 18:42: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 85CFC16A421; Tue, 18 Oct 2005 18:42:13 +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 5FFF616A41F for ; Tue, 18 Oct 2005 18:42:13 +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 066FB43D53 for ; Tue, 18 Oct 2005 18:42:13 +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 j9IIgClR098038 for ; Tue, 18 Oct 2005 18:42:12 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9IIgC80098035 for perforce@freebsd.org; Tue, 18 Oct 2005 18:42:12 GMT (envelope-from jhb@freebsd.org) Date: Tue, 18 Oct 2005 18:42:12 GMT Message-Id: <200510181842.j9IIgC80098035@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 85510 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, 18 Oct 2005 18:42:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=85510 Change 85510 by jhb@jhb_slimer on 2005/10/18 18:41:27 Some cpu reset fixes. Affected files ... .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#89 edit .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#73 edit Differences ... ==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#89 (text+ko) ==== @@ -1285,6 +1285,7 @@ ipi_nmi_handler() { int cpu = PCPU_GET(cpuid); + void *restartfunc(void); if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) return 1; @@ -1304,8 +1305,9 @@ atomic_clear_int(&started_cpus,1 << cpu); atomic_clear_int(&stopped_cpus,1 << cpu); - if(cpu == 0 && cpustop_restartfunc != NULL) - cpustop_restartfunc(); + restartfunc = (void (*)(void)atomic_readandclear_int(&cpustop_restartfunc); + if (restartfunc != NULL) + restartfunc(); return 0; } ==== //depot/projects/smpng/sys/i386/i386/vm_machdep.c#73 (text+ko) ==== @@ -550,7 +550,10 @@ cpustop_restartfunc = cpu_reset_proxy; cpu_reset_proxy_active = 0; printf("cpu_reset: Restarting BSP\n"); - started_cpus = (1<<0); /* Restart CPU #0 */ + + /* Restart CPU #0. */ + /* XXX: restart_cpus(1 << 0); */ + atomic_store_rel_int(&started_cpus, (1 << 0)); cnt = 0; while (cpu_reset_proxy_active == 0 && cnt < 10000000) From owner-p4-projects@FreeBSD.ORG Tue Oct 18 18:54:29 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 6BA7316A421; Tue, 18 Oct 2005 18:54:29 +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 4644816A41F for ; Tue, 18 Oct 2005 18:54:29 +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 EDF6243D45 for ; Tue, 18 Oct 2005 18:54:28 +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 j9IIsSop099174 for ; Tue, 18 Oct 2005 18:54:28 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9IIsS1t099171 for perforce@freebsd.org; Tue, 18 Oct 2005 18:54:28 GMT (envelope-from jhb@freebsd.org) Date: Tue, 18 Oct 2005 18:54:28 GMT Message-Id: <200510181854.j9IIsS1t099171@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 85512 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, 18 Oct 2005 18:54:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=85512 Change 85512 by jhb@jhb_slimer on 2005/10/18 18:53:56 MFi386: cpu reset fixes. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#8 edit .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#25 edit .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#30 edit .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#90 edit Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#8 (text+ko) ==== @@ -297,10 +297,11 @@ test %eax, %eax jnz 2f - movq cpustop_restartfunc, %rax + xorq %rax, %rax + lock + xchgq cpustop_restartfunc, %rax testq %rax, %rax jz 2f - movq $0, cpustop_restartfunc /* One-shot */ call *%rax 2: ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#25 (text+ko) ==== @@ -1044,6 +1044,7 @@ ipi_nmi_handler() { int cpu = PCPU_GET(cpuid); + void *restartfunc(void); if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) return 1; @@ -1063,8 +1064,9 @@ atomic_clear_int(&started_cpus,1 << cpu); atomic_clear_int(&stopped_cpus,1 << cpu); - if(cpu == 0 && cpustop_restartfunc != NULL) - cpustop_restartfunc(); + restartfunc = (void (*)(void))atomic_readandclear_long(&cpustop_restartfunc); + if (restartfunc != NULL) + restartfunc(); return 0; } ==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#30 (text+ko) ==== @@ -389,7 +389,9 @@ cpustop_restartfunc = cpu_reset_proxy; cpu_reset_proxy_active = 0; printf("cpu_reset: Restarting BSP\n"); - started_cpus = (1<<0); /* Restart CPU #0 */ + + /* Restart CPU #0. */ + atomic_store_rel_int(&started_cpus, 1 << 0); cnt = 0; while (cpu_reset_proxy_active == 0 && cnt < 10000000) ==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#90 (text+ko) ==== @@ -1305,7 +1305,7 @@ atomic_clear_int(&started_cpus,1 << cpu); atomic_clear_int(&stopped_cpus,1 << cpu); - restartfunc = (void (*)(void)atomic_readandclear_int(&cpustop_restartfunc); + restartfunc = (void (*)(void))atomic_readandclear_int(&cpustop_restartfunc); if (restartfunc != NULL) restartfunc(); From owner-p4-projects@FreeBSD.ORG Tue Oct 18 20:03: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 0847C16A422; Tue, 18 Oct 2005 20:03:54 +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 B779B16A41F for ; Tue, 18 Oct 2005 20:03:53 +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 410EB43D48 for ; Tue, 18 Oct 2005 20:03:53 +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 j9IK3rxo002267 for ; Tue, 18 Oct 2005 20:03:53 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9IK3qp1002264 for perforce@freebsd.org; Tue, 18 Oct 2005 20:03:52 GMT (envelope-from jhb@freebsd.org) Date: Tue, 18 Oct 2005 20:03:52 GMT Message-Id: <200510182003.j9IK3qp1002264@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 85514 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, 18 Oct 2005 20:03:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=85514 Change 85514 by jhb@jhb_slimer on 2005/10/18 20:03:00 Rework KDB_STOP_NMI some to make it less KDB-specific. - Use stoppcbs[] on i386 and amd64 always, regardless of KDB_STOP_NMI. - Rename KDB_STOP_NMI to STOP_NMI and have it apply to any IPI_STOP ipi. - Fix ipi_all(), ipi_all_but_self(), and ipi_self() to correctly handle bitmapped IPIs and STOP_NMI. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#26 edit .. //depot/projects/smpng/sys/amd64/amd64/trap.c#36 edit .. //depot/projects/smpng/sys/amd64/conf/NOTES#22 edit .. //depot/projects/smpng/sys/amd64/include/smp.h#9 edit .. //depot/projects/smpng/sys/conf/options.amd64#14 edit .. //depot/projects/smpng/sys/conf/options.i386#50 edit .. //depot/projects/smpng/sys/conf/options.pc98#49 edit .. //depot/projects/smpng/sys/i386/conf/NOTES#108 edit .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#91 edit .. //depot/projects/smpng/sys/i386/i386/trap.c#86 edit .. //depot/projects/smpng/sys/i386/include/smp.h#17 edit .. //depot/projects/smpng/sys/kern/subr_kdb.c#12 edit .. //depot/projects/smpng/sys/kern/subr_smp.c#42 edit .. //depot/projects/smpng/sys/notes#61 edit .. //depot/projects/smpng/sys/pc98/conf/NOTES#45 edit .. //depot/projects/smpng/sys/sys/smp.h#15 edit Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#26 (text+ko) ==== @@ -28,7 +28,6 @@ __FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.262 2005/08/19 22:10:19 pjd Exp $"); #include "opt_cpu.h" -#include "opt_kdb.h" #include "opt_kstack_pages.h" #include "opt_mp_watchdog.h" #include "opt_sched.h" @@ -113,10 +112,30 @@ extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); +#ifdef STOP_NMI +volatile cpumask_t ipi_nmi_pending; + +static void ipi_nmi_selected(u_int32_t cpus); +#endif + /* * Local data and functions. */ +#ifdef STOP_NMI +/* + * Provide an alternate method of stopping other CPUs. If another CPU has + * disabled interrupts the conventional STOP IPI will be blocked. This + * NMI-based stop should get through in that case. + */ +static int stop_cpus_with_nmi = 1; +SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, + &stop_cpus_with_nmi, 0, ""); +TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); +#else +#define stop_cpus_with_nmi 0 +#endif + static u_int logical_cpus; /* used to hold the AP's until we are ready to release them */ @@ -199,11 +218,6 @@ smp_topology = &mp_top; } - -#ifdef KDB_STOP_NMI -volatile cpumask_t ipi_nmi_pending; -#endif - /* * Calculate usable address in base memory for AP trampoline code. */ @@ -945,6 +959,12 @@ ipi = IPI_BITMAP_VECTOR; } +#ifdef STOP_NMI + if (ipi == IPI_STOP && stop_cpus_with_nmi) { + ipi_nmi_selected(cpus); + return; + } +#endif CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); while ((cpu = ffs(cpus)) != 0) { cpu--; @@ -975,6 +995,10 @@ ipi_all(u_int ipi) { + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + ipi_selected(all_cpus, ipi); + return; + } CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); } @@ -986,6 +1010,10 @@ ipi_all_but_self(u_int ipi) { + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + ipi_selected(PCPU_GET(other_cpus), ipi); + return; + } CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); } @@ -997,11 +1025,15 @@ ipi_self(u_int ipi) { + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + ipi_selected(PCPU_GET(cpumask), ipi); + return; + } CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); } -#ifdef KDB_STOP_NMI +#ifdef STOP_NMI /* * send NMI IPI to selected CPUs */ @@ -1011,7 +1043,6 @@ void ipi_nmi_selected(u_int32_t cpus) { - int cpu; register_t icrlo; @@ -1020,10 +1051,8 @@ CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); - atomic_set_int(&ipi_nmi_pending, cpus); - while ((cpu = ffs(cpus)) != 0) { cpu--; cpus &= ~(1 << cpu); @@ -1035,43 +1064,43 @@ if (!lapic_ipi_wait(BEFORE_SPIN)) panic("ipi_nmi_selected: previous IPI has not cleared"); - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); } } - int ipi_nmi_handler() { - int cpu = PCPU_GET(cpuid); - void *restartfunc(void); + int cpu = PCPU_GET(cpuid); + int cpumask = PCPU_GET(cpumask); + void (*restartfunc)(void); - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) + if (!(ipi_nmi_pending & cpumask)) return 1; - atomic_clear_int(&ipi_nmi_pending,1 << cpu); + atomic_clear_int(&ipi_nmi_pending, cpumask); savectx(&stoppcbs[cpu]); /* Indicate that we are stopped */ - atomic_set_int(&stopped_cpus,1 << cpu); - + atomic_set_int(&stopped_cpus, cpumask); /* Wait for restart */ - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) + while (!(started_cpus & cpumask)) ia32_pause(); - atomic_clear_int(&started_cpus,1 << cpu); - atomic_clear_int(&stopped_cpus,1 << cpu); + atomic_clear_int(&started_cpus, cpumask); + atomic_clear_int(&stopped_cpus, cpumask); - restartfunc = (void (*)(void))atomic_readandclear_long(&cpustop_restartfunc); + restartfunc = (void (*)(void))atomic_readandclear_long( + (u_long *)&cpustop_restartfunc); if (restartfunc != NULL) restartfunc(); return 0; } -#endif /* KDB_STOP_NMI */ +#endif /* STOP_NMI */ /* * This is called once the rest of the system is up and running and we're ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#36 (text+ko) ==== @@ -167,13 +167,13 @@ PCPU_LAZY_INC(cnt.v_trap); type = frame.tf_trapno; -#ifdef KDB_STOP_NMI - /* Handler for NMI IPIs used for debugging */ +#ifdef STOP_NMI + /* Handler for NMI IPIs used for stopping CPUs. */ if (type == T_NMI) { if (ipi_nmi_handler() == 0) goto out; } -#endif /* KDB_STOP_NMI */ +#endif /* STOP_NMI */ #ifdef KDB if (kdb_active) { ==== //depot/projects/smpng/sys/amd64/conf/NOTES#22 (text+ko) ==== @@ -39,7 +39,7 @@ # # Debugging options. # -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI +options STOP_NMI # Stop CPUS using NMI instead of IPI ==== //depot/projects/smpng/sys/amd64/include/smp.h#9 (text+ko) ==== @@ -63,9 +63,8 @@ void smp_invltlb(void); void smp_masked_invltlb(u_int mask); -#ifdef KDB_STOP_NMI -int ipi_nmi_handler(void); -void ipi_nmi_selected(u_int32_t cpus); +#ifdef STOP_NMI +int ipi_nmi_handler(void); #endif #endif /* !LOCORE */ ==== //depot/projects/smpng/sys/conf/options.amd64#14 (text+ko) ==== @@ -57,4 +57,4 @@ DEV_ATPIC opt_atpic.h # Debugging -KDB_STOP_NMI opt_kdb.h +STOP_NMI opt_cpu.h ==== //depot/projects/smpng/sys/conf/options.i386#50 (text+ko) ==== @@ -161,5 +161,5 @@ ASR_COMPAT opt_asr.h # Debugging -KDB_STOP_NMI opt_kdb.h +STOP_NMI opt_cpu.h NPX_DEBUG opt_npx.h ==== //depot/projects/smpng/sys/conf/options.pc98#49 (text+ko) ==== @@ -103,5 +103,5 @@ DEV_NPX opt_npx.h # Debugging -KDB_STOP_NMI opt_kdb.h +STOP_NMI opt_cpu.h NPX_DEBUG opt_npx.h ==== //depot/projects/smpng/sys/i386/conf/NOTES#108 (text+ko) ==== @@ -56,7 +56,7 @@ # Debugging options. # -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI +options STOP_NMI # Stop CPUS using NMI instead of IPI ==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#91 (text+ko) ==== @@ -28,7 +28,6 @@ #include "opt_apic.h" #include "opt_cpu.h" -#include "opt_kdb.h" #include "opt_kstack_pages.h" #include "opt_mp_watchdog.h" #include "opt_sched.h" @@ -177,8 +176,10 @@ vm_offset_t smp_tlb_addr2; volatile int smp_tlb_wait; -#ifdef KDB_STOP_NMI +#ifdef STOP_NMI volatile cpumask_t ipi_nmi_pending; + +static void ipi_nmi_selected(u_int32_t cpus); #endif #ifdef COUNT_IPIS @@ -198,6 +199,20 @@ * Local data and functions. */ +#ifdef STOP_NMI +/* + * Provide an alternate method of stopping other CPUs. If another CPU has + * disabled interrupts the conventional STOP IPI will be blocked. This + * NMI-based stop should get through in that case. + */ +static int stop_cpus_with_nmi = 1; +SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, + &stop_cpus_with_nmi, 0, ""); +TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); +#else +#define stop_cpus_with_nmi 0 +#endif + static u_int logical_cpus; /* used to hold the AP's until we are ready to release them */ @@ -1186,6 +1201,12 @@ ipi = IPI_BITMAP_VECTOR; } +#ifdef STOP_NMI + if (ipi == IPI_STOP && stop_cpus_with_nmi) { + ipi_nmi_selected(cpus); + return; + } +#endif CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); while ((cpu = ffs(cpus)) != 0) { cpu--; @@ -1216,6 +1237,10 @@ ipi_all(u_int ipi) { + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + ipi_selected(all_cpus, ipi); + return; + } CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); } @@ -1227,6 +1252,10 @@ ipi_all_but_self(u_int ipi) { + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + ipi_selected(PCPU_GET(other_cpus), ipi); + return; + } CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); } @@ -1238,11 +1267,15 @@ ipi_self(u_int ipi) { + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + ipi_selected(PCPU_GET(cpumask), ipi); + return; + } CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); } -#ifdef KDB_STOP_NMI +#ifdef STOP_NMI /* * send NMI IPI to selected CPUs */ @@ -1252,7 +1285,6 @@ void ipi_nmi_selected(u_int32_t cpus) { - int cpu; register_t icrlo; @@ -1261,10 +1293,8 @@ CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); - atomic_set_int(&ipi_nmi_pending, cpus); - while ((cpu = ffs(cpus)) != 0) { cpu--; cpus &= ~(1 << cpu); @@ -1276,43 +1306,43 @@ if (!lapic_ipi_wait(BEFORE_SPIN)) panic("ipi_nmi_selected: previous IPI has not cleared"); - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); } } - int ipi_nmi_handler() { - int cpu = PCPU_GET(cpuid); - void *restartfunc(void); + int cpu = PCPU_GET(cpuid); + int cpumask = PCPU_GET(cpumask); + void (*restartfunc)(void); - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) + if (!(ipi_nmi_pending & cpumask)) return 1; - atomic_clear_int(&ipi_nmi_pending,1 << cpu); + atomic_clear_int(&ipi_nmi_pending, cpumask); savectx(&stoppcbs[cpu]); /* Indicate that we are stopped */ - atomic_set_int(&stopped_cpus,1 << cpu); + atomic_set_int(&stopped_cpus, cpumask); - /* Wait for restart */ - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) + while (!(started_cpus & cpumask)) ia32_pause(); - atomic_clear_int(&started_cpus,1 << cpu); - atomic_clear_int(&stopped_cpus,1 << cpu); + atomic_clear_int(&started_cpus, cpumask); + atomic_clear_int(&stopped_cpus, cpumask); - restartfunc = (void (*)(void))atomic_readandclear_int(&cpustop_restartfunc); + restartfunc = (void (*)(void))atomic_readandclear_int( + (u_int *)&cpustop_restartfunc); if (restartfunc != NULL) restartfunc(); return 0; } -#endif /* KDB_STOP_NMI */ +#endif /* STOP_NMI */ /* * This is called once the rest of the system is up and running and we're ==== //depot/projects/smpng/sys/i386/i386/trap.c#86 (text+ko) ==== @@ -185,13 +185,13 @@ PCPU_LAZY_INC(cnt.v_trap); type = frame.tf_trapno; -#ifdef KDB_STOP_NMI - /* Handler for NMI IPIs used for debugging */ +#ifdef STOP_NMI + /* Handler for NMI IPIs used for stopping CPUs. */ if (type == T_NMI) { if (ipi_nmi_handler() == 0) goto out; } -#endif /* KDB_STOP_NMI */ +#endif /* STOP_NMI */ #ifdef KDB if (kdb_active) { ==== //depot/projects/smpng/sys/i386/include/smp.h#17 (text+ko) ==== @@ -79,9 +79,8 @@ void smp_invltlb(void); void smp_masked_invltlb(u_int mask); -#ifdef KDB_STOP_NMI -int ipi_nmi_handler(void); -void ipi_nmi_selected(u_int32_t cpus); +#ifdef STOP_NMI +int ipi_nmi_handler(void); #endif #endif /* !LOCORE */ ==== //depot/projects/smpng/sys/kern/subr_kdb.c#12 (text+ko) ==== @@ -42,16 +42,11 @@ #include #include -#ifdef KDB_STOP_NMI +#ifdef SMP +#if defined (__i386__) || defined(__amd64__) +#define HAVE_STOPPEDPCBS #include #endif - -/* - * KDB_STOP_NMI requires SMP to pick up the right dependencies - * (And isn't useful on UP anyway) - */ -#if defined(KDB_STOP_NMI) && !defined(SMP) -#error "options KDB_STOP_NMI" requires "options SMP" #endif int kdb_active = 0; @@ -91,19 +86,6 @@ SYSCTL_INT(_debug_kdb, OID_AUTO, stop_cpus, CTLTYPE_INT | CTLFLAG_RW, &kdb_stop_cpus, 0, ""); TUNABLE_INT("debug.kdb.stop_cpus", &kdb_stop_cpus); - -#ifdef KDB_STOP_NMI -/* - * Provide an alternate method of stopping other CPUs. If another CPU has - * disabled interrupts the conventional STOP IPI will be blocked. This - * NMI-based stop should get through in that case. - */ -static int kdb_stop_cpus_with_nmi = 1; -SYSCTL_INT(_debug_kdb, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, - &kdb_stop_cpus_with_nmi, 0, ""); -TUNABLE_INT("debug.kdb.stop_cpus_with_nmi", &kdb_stop_cpus_with_nmi); -#endif /* KDB_STOP_NMI */ - #endif static int @@ -335,27 +317,24 @@ struct pcb * kdb_thr_ctx(struct thread *thr) -#ifdef KDB_STOP_NMI { - u_int cpuid; - struct pcpu *pc; +#ifdef HAVE_STOPPEDPCBS + struct pcpu *pc; + u_int cpuid; +#endif - if (thr == curthread) - return &kdb_pcb; + if (thr == curthread) + return &kdb_pcb; - SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { - cpuid = pc->pc_cpuid; - if (pc->pc_curthread == thr && (atomic_load_acq_int(&stopped_cpus) & (1 << cpuid))) - return &stoppcbs[cpuid]; - } - - return thr->td_pcb; -} -#else -{ - return ((thr == curthread) ? &kdb_pcb : thr->td_pcb); +#ifdef HAVE_STOPPEDPCBS + SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { + cpuid = pc->pc_cpuid; + if (pc->pc_curthread == thr && (stopped_cpus & (1 << cpuid))) + return &stoppcbs[cpuid]; + } +#endif + return thr->td_pcb; } -#endif /* KDB_STOP_NMI */ struct thread * kdb_thr_first(void) @@ -452,14 +431,7 @@ #ifdef SMP if ((did_stop_cpus = kdb_stop_cpus) != 0) - { -#ifdef KDB_STOP_NMI - if(kdb_stop_cpus_with_nmi) - stop_cpus_nmi(PCPU_GET(other_cpus)); - else -#endif /* KDB_STOP_NMI */ stop_cpus(PCPU_GET(other_cpus)); - } #endif kdb_frame = tf; ==== //depot/projects/smpng/sys/kern/subr_smp.c#42 (text+ko) ==== @@ -35,8 +35,6 @@ #include __FBSDID("$FreeBSD: src/sys/kern/subr_smp.c,v 1.196 2005/06/30 03:38:10 peter Exp $"); -#include "opt_kdb.h" - #include #include #include @@ -258,36 +256,6 @@ return 1; } -#ifdef KDB_STOP_NMI -int -stop_cpus_nmi(cpumask_t map) -{ - int i; - - if (!smp_started) - return 0; - - CTR1(KTR_SMP, "stop_cpus(%x)", map); - - /* send the stop IPI to all CPUs in map */ - ipi_nmi_selected(map); - - i = 0; - while ((atomic_load_acq_int(&stopped_cpus) & map) != map) { - /* spin */ - i++; -#ifdef DIAGNOSTIC - if (i == 100000) { - printf("timeout stopping cpus\n"); - break; - } -#endif - } - - return 1; -} -#endif /* KDB_STOP_NMI */ - /* * Called by a CPU to restart stopped CPUs. * ==== //depot/projects/smpng/sys/notes#61 (text+ko) ==== @@ -67,6 +67,12 @@ do this. That really needs to only be done in spinlock_*() (and maybe some frobbing in intr_execute_handlers()) and needs to happen after the spinlock_*() changes happen. +- Change KDB_STOP_NMI to STOP_NMI and make it non-kdb specific + - i386 + + compiles + - amd64 + - use stoppcbs[] on i386 and amd64 always + - untested - KTR change: include __func__ along with __FILE__ and __LINE__ and display it after cpu number by default - Cheapen global stats counters via PCPU_LAZY_INC ==== //depot/projects/smpng/sys/pc98/conf/NOTES#45 (text+ko) ==== @@ -39,7 +39,7 @@ # Debugging options. # -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI +options STOP_NMI # Stop CPUS using NMI instead of IPI ==== //depot/projects/smpng/sys/sys/smp.h#15 (text+ko) ==== @@ -102,9 +102,6 @@ void smp_rendezvous_action(void); extern struct mtx smp_ipi_mtx; -#ifdef KDB_STOP_NMI -int stop_cpus_nmi(cpumask_t); -#endif #endif /* SMP */ void smp_rendezvous(void (*)(void *), void (*)(void *), From owner-p4-projects@FreeBSD.ORG Wed Oct 19 08:19:06 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 247E516A422; Wed, 19 Oct 2005 08:19:06 +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 EA11E16A420 for ; Wed, 19 Oct 2005 08:19:05 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 634FE43D45 for ; Wed, 19 Oct 2005 08:19:05 +0000 (GMT) (envelope-from soc-chenk@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 j9J8J5Om052677 for ; Wed, 19 Oct 2005 08:19:05 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9J8J447052674 for perforce@freebsd.org; Wed, 19 Oct 2005 08:19:04 GMT (envelope-from soc-chenk@freebsd.org) Date: Wed, 19 Oct 2005 08:19:04 GMT Message-Id: <200510190819.j9J8J447052674@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85533 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: Wed, 19 Oct 2005 08:19:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=85533 Change 85533 by soc-chenk@soc-chenk_leavemealone on 2005/10/19 08:18:54 Apply Anish's further machine independecy patch Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fmaster.c#4 edit .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#22 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fmaster.c#4 (text+ko) ==== @@ -348,16 +348,16 @@ pp_fuse_entry_out(struct fuse_entry_out *stru) { fuprintf("fuse_entry_out -- nodeid: %llu, generation: %llu, entry_valid: %llu, attr_valid: %llu, entry_valid_nsec: %i, attr_valid_nsec: %i, struct attr...\n", - stru->nodeid, stru->generation, stru->entry_valid, stru->attr_valid, stru->entry_valid_nsec, stru->attr_valid_nsec); + (unsigned long long)stru->nodeid, (unsigned long long)stru->generation, (unsigned long long)stru->entry_valid, (unsigned long long)stru->attr_valid, stru->entry_valid_nsec, stru->attr_valid_nsec); fuprintf("\tattr -- ino: %llu, size: %llu, blocks: %llu, atime: %llu, mtime: %llu, ctime: %llu, atimensec: %i, mtimensec: %i, ctimensec: %i, mode: %i, nlink: %i, uid: %i, gid: %i, rdev: %i\n", - stru->attr.ino, stru->attr.size, stru->attr.blocks, stru->attr.atime, stru->attr.mtime, stru->attr.ctime, stru->attr.atimensec, stru->attr.mtimensec, stru->attr.ctimensec, stru->attr.mode, stru->attr.nlink, stru->attr.uid, stru->attr.gid, stru->attr.rdev); + (unsigned long long)stru->attr.ino, (unsigned long long)stru->attr.size, (unsigned long long)stru->attr.blocks, (unsigned long long)stru->attr.atime, (unsigned long long)stru->attr.mtime, (unsigned long long)stru->attr.ctime, stru->attr.atimensec, stru->attr.mtimensec, stru->attr.ctimensec, stru->attr.mode, stru->attr.nlink, stru->attr.uid, stru->attr.gid, stru->attr.rdev); } static void pp_fuse_open_out(struct fuse_open_out *stru) { - fuprintf("fuse_open_out -- fh: %llu, open_flags: %i, padding: %i\n", stru->fh, stru->open_flags, stru->padding); + fuprintf("fuse_open_out -- fh: %llu, open_flags: %i, padding: %i\n", (unsigned long long)stru->fh, stru->open_flags, stru->padding); } static void @@ -384,17 +384,17 @@ pp_fuse_attr_out(struct fuse_attr_out *stru) { fuprintf("fuse_entry_out -- attr_valid: %llu, attr_valid_nsec: %i, dummy: %i, struct attr...\n", - stru->attr_valid, stru->attr_valid_nsec, stru->dummy); + (unsigned long long)stru->attr_valid, stru->attr_valid_nsec, stru->dummy); fuprintf("\tattr -- ino: %llu, size: %llu, blocks: %llu, atime: %llu, mtime: %llu, ctime: %llu, atimensec: %i, mtimensec: %i, ctimensec: %i, mode: %i, nlink: %i, uid: %i, gid: %i, rdev: %i\n", - stru->attr.ino, stru->attr.size, stru->attr.blocks, stru->attr.atime, stru->attr.mtime, stru->attr.ctime, stru->attr.atimensec, stru->attr.mtimensec, stru->attr.ctimensec, stru->attr.mode, stru->attr.nlink, stru->attr.uid, stru->attr.gid, stru->attr.rdev); + (unsigned long long)stru->attr.ino, (unsigned long long)stru->attr.size, (unsigned long long)stru->attr.blocks, (unsigned long long)stru->attr.atime, (unsigned long long)stru->attr.mtime, (unsigned long long)stru->attr.ctime, stru->attr.atimensec, stru->attr.mtimensec, stru->attr.ctimensec, stru->attr.mode, stru->attr.nlink, stru->attr.uid, stru->attr.gid, stru->attr.rdev); } static void pp_fuse_statfs_out(struct fuse_statfs_out *stru) { fuprintf("fuse_statfs_out -- blocks: %llu, bfree: %llu, bavail: %llu, files: %llu, ffree: %llu, bsize: %i, namelen: %i\n", - stru->st.blocks, stru->st.bfree, stru->st.bavail, stru->st.files, stru->st.ffree, stru->st.bsize, stru->st.namelen); + (unsigned long long)stru->st.blocks, (unsigned long long)stru->st.bfree, (unsigned long long)stru->st.bavail, (unsigned long long)stru->st.files, (unsigned long long)stru->st.ffree, stru->st.bsize, stru->st.namelen); } static void ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#22 (text+ko) ==== @@ -700,7 +700,7 @@ fuse_ohead_audit(struct fuse_out_header *ohead, struct uio *uio) { fuprintf("\tOut header -- len: %i, error: %i, unique: %llu; iovecs: %d\n", - ohead->len, ohead->error, ohead->unique, uio->uio_iovcnt); + ohead->len, ohead->error, (unsigned long long)ohead->unique, uio->uio_iovcnt); if (uio->uio_resid + sizeof(struct fuse_out_header) != ohead->len) { fuprintf("Format error: body size differs from size claimed by header\n"); @@ -879,8 +879,8 @@ DEBUG2G("in header -- opcode: %2d (\"%s\"), unique: %llu, nodeid: %llu\n", ihead->opcode, fuse_opnames[ihead->opcode], - ihead->unique, - ihead->nodeid); + (unsigned long long)ihead->unique, + (unsigned long long)ihead->nodeid); } __static __inline struct fuse_data * @@ -1196,7 +1196,7 @@ TAILQ_FOREACH_SAFE(fcallbn, &data->fcallb_head, fcallb_link, fcallbn_temp) { fuprintf("bumped into callback #%llu\n", - fcallbn->ticket->unique); + (unsigned long long)fcallbn->ticket->unique); if (fcallbn->ticket->unique == ohead->unique) { found = 1; fuse_callbn_remove(fcallbn); @@ -1471,7 +1471,7 @@ struct fuse_forget_in *ffi; int err = 0; - DEBUG("sending FORGET with %llu lookups\n", nlookup); + DEBUG("sending FORGET with %llu lookups\n", (unsigned long long)nlookup); fdip->iosize = sizeof(*ffi); if (fdip->tick) { @@ -2137,7 +2137,7 @@ sbp->f_namemax = fsfo->st.namelen; DEBUG("fuse_statfs_out -- blocks: %llu, bfree: %llu, bavail: %llu, files: %llu, ffree: %llu, bsize: %i, namelen: %i\n", - fsfo->st.blocks, fsfo->st.bfree, fsfo->st.bavail, fsfo->st.files, fsfo->st.ffree, fsfo->st.bsize, fsfo->st.namelen); + (unsigned long long)fsfo->st.blocks, (unsigned long long)fsfo->st.bfree, (unsigned long long)fsfo->st.bavail, (unsigned long long)fsfo->st.files, (unsigned long long)fsfo->st.ffree, fsfo->st.bsize, fsfo->st.namelen); ticket_drop(fdi.tick); sx_sunlock(fdi.slock); @@ -2164,7 +2164,7 @@ int myflags = LK_EXCLUSIVE; DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname); - DEBUG("been asked for vno #%llu\n", nodeid); + DEBUG("been asked for vno #%llu\n", (unsigned long long)nodeid); fmnt = mp->mnt_data; if (nodeid == FUSE_ROOT_INODE) { @@ -2215,7 +2215,7 @@ } if (vp2) { - DEBUG("gee, vfs hash collision for node #%llu\n", nodeid); + DEBUG("gee, vfs hash collision for node #%llu\n", (unsigned long long)nodeid); vpp = &vp2; goto audit; } @@ -2393,7 +2393,7 @@ static __inline void fat2vat(struct mount *mp, struct fuse_attr *fat, struct vattr *vap) { - DEBUG("node #%llu, mode 0%o\n", fat->ino, fat->mode); + DEBUG("node #%llu, mode 0%o\n", (unsigned long long)fat->ino, fat->mode); vap->va_fsid = mp->mnt_stat.f_fsid.val[0]; vap->va_fileid = fat->ino; /* XXX cast from 64 bits to 32 */ @@ -3560,7 +3560,7 @@ if (fp->f_flag & O_DIRECT || fufh->flags & FUSEFH_DIRECTIO) { DEBUG2G("direct read of vnode %llu via file handle %llu\n", - VTOI32(fp->f_vnode), fufh->fh_id); + VTOI32(fp->f_vnode), (unsigned long long)fufh->fh_id); err = fuse_read_directbackend(fp->f_vnode, fufh, uio, cred, td, FUSE_READ, fuse_std_buffeater, NULL); @@ -3830,7 +3830,7 @@ ((char *)cookediov->base)[bytesavail] = '\0'; DEBUG("bytesavail %d, fudge->off %llu, fudge->namelen %d, uio->uio_offset %d, name %s\n", - bytesavail, fudge->off, fudge->namelen, (int)uio->uio_offset, + bytesavail, (unsigned long long)fudge->off, fudge->namelen, (int)uio->uio_offset, (char *)cookediov->base + sizeof(struct dirent) - MAXNAMLEN - 1); err = uiomove(cookediov->base, cookediov->len, uio); @@ -4901,7 +4901,7 @@ if (fp->f_flag & O_DIRECT || fufh->flags & FUSEFH_DIRECTIO) { DEBUG2G("direct write of vnode %llu via file handle %llu\n", - VTOI32(fp->f_vnode), fufh->fh_id); + VTOI32(fp->f_vnode), (unsigned long long)fufh->fh_id); err = fuse_write_directbackend(fp->f_vnode, fufh->fh_id, uio, cred, td); } else { @@ -4990,7 +4990,7 @@ if (err) goto out; - DEBUG2G("vp #%llu, fufh #%llu\n", VTOI32(vp), fufh->fh_id); + DEBUG2G("vp #%llu, fufh #%llu\n", VTOI32(vp), (unsigned long long)fufh->fh_id); if (bp->b_iocmd == BIO_READ) { struct fuse_read_in *fri; @@ -5143,7 +5143,7 @@ struct fuse_vnode_data *fvdat = ap->a_vp->v_data; printf("nodeid: %llu, fh_counter: %d, nlookup: %llu\n", - VTOI32(ap->a_vp), fvdat->fh_counter, fvdat->nlookup); + VTOI32(ap->a_vp), fvdat->fh_counter, (unsigned long long)fvdat->nlookup); return (0); } From owner-p4-projects@FreeBSD.ORG Wed Oct 19 08:21: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 D2D4816A421; Wed, 19 Oct 2005 08:21: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 A0F1616A41F for ; Wed, 19 Oct 2005 08:21:08 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 60E0543D45 for ; Wed, 19 Oct 2005 08:21:08 +0000 (GMT) (envelope-from soc-chenk@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 j9J8L8VS052894 for ; Wed, 19 Oct 2005 08:21:08 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9J8L8JS052891 for perforce@freebsd.org; Wed, 19 Oct 2005 08:21:08 GMT (envelope-from soc-chenk@freebsd.org) Date: Wed, 19 Oct 2005 08:21:08 GMT Message-Id: <200510190821.j9J8L8JS052891@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85534 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: Wed, 19 Oct 2005 08:21:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=85534 Change 85534 by soc-chenk@soc-chenk_leavemealone on 2005/10/19 08:20:13 Display version number 0.2.20pre5 in README.html Submitted by: sco-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/README.html#14 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/README.html#14 (text+ko) ==== @@ -55,7 +55,7 @@

  • - The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre4, date of release: 16th Oct 2005). The current code is available via [WWW]Darcs, you can fetch it by + The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre5, date of release: 18th Oct 2005). The current code is available via [WWW]Darcs, you can fetch it by

     darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
    command, or via [WWW]Perforce (you can use this latter link for online source code browsing).

    From owner-p4-projects@FreeBSD.ORG Wed Oct 19 08:36:28 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 2EE5B16A421; Wed, 19 Oct 2005 08:36:28 +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 AA79E16A41F for ; Wed, 19 Oct 2005 08:36:27 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7979343D45 for ; Wed, 19 Oct 2005 08:36:27 +0000 (GMT) (envelope-from soc-chenk@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 j9J8aR16053958 for ; Wed, 19 Oct 2005 08:36:27 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9J8aRWr053955 for perforce@freebsd.org; Wed, 19 Oct 2005 08:36:27 GMT (envelope-from soc-chenk@freebsd.org) Date: Wed, 19 Oct 2005 08:36:27 GMT Message-Id: <200510190836.j9J8aRWr053955@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85535 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: Wed, 19 Oct 2005 08:36:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=85535 Change 85535 by soc-chenk@soc-chenk_leavemealone on 2005/10/19 08:35:43 One more bit of Anish's portability patch Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#23 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/fuse_module/fuse.c#23 (text+ko) ==== @@ -3499,7 +3499,7 @@ PAGE_SIZE * FUSE_MAX_PAGES_PER_REQ); DEBUG2G("fri->fh %llu, fri->offset %d, fri->size %d\n", - fri->fh, (int)fri->offset, fri->size); + (unsigned long long)fri->fh, (int)fri->offset, fri->size); if ((err = fdisp_wait_answ(&fdi))) goto out; From owner-p4-projects@FreeBSD.ORG Wed Oct 19 08:37:30 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 A2B9E16A421; Wed, 19 Oct 2005 08:37:29 +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 7D7B916A41F for ; Wed, 19 Oct 2005 08:37:29 +0000 (GMT) (envelope-from soc-chenk@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3EDAF43D48 for ; Wed, 19 Oct 2005 08:37:29 +0000 (GMT) (envelope-from soc-chenk@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 j9J8bTLL054010 for ; Wed, 19 Oct 2005 08:37:29 GMT (envelope-from soc-chenk@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9J8bSh5054007 for perforce@freebsd.org; Wed, 19 Oct 2005 08:37:28 GMT (envelope-from soc-chenk@freebsd.org) Date: Wed, 19 Oct 2005 08:37:28 GMT Message-Id: <200510190837.j9J8bSh5054007@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-chenk@freebsd.org using -f From: soc-chenk To: Perforce Change Reviews Cc: Subject: PERFORCE change 85536 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: Wed, 19 Oct 2005 08:37:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=85536 Change 85536 by soc-chenk@soc-chenk_leavemealone on 2005/10/19 08:36:49 Display version number 0.2.20pre6 in README.html Submitted by: soc-chenk Affected files ... .. //depot/projects/soc2005/fuse4bsd2/README.html#15 edit Differences ... ==== //depot/projects/soc2005/fuse4bsd2/README.html#15 (text+ko) ==== @@ -55,7 +55,7 @@

  • - The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre5, date of release: 18th Oct 2005). The current code is available via [WWW]Darcs, you can fetch it by + The FreeBSD module. Source tarballs are provided at [WWW]http://creo.hu/~csaba/projects/fuse4bsd/downloads/ under the name fuse4bsd-<version>.tar.* (latest release is 0.2.20pre6, date of release: 18th Oct 2005). The current code is available via [WWW]Darcs, you can fetch it by

     darcs get http://creo.hu/~csaba/darcs-repos/fuse4bsd
    command, or via [WWW]Perforce (you can use this latter link for online source code browsing).

    From owner-p4-projects@FreeBSD.ORG Wed Oct 19 11:30: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 2938816A421; Wed, 19 Oct 2005 11:30:51 +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 AEA1816A41F; Wed, 19 Oct 2005 11:30:50 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0C27143D49; Wed, 19 Oct 2005 11:30:49 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 4004546BAD; Wed, 19 Oct 2005 07:30:49 -0400 (EDT) Date: Wed, 19 Oct 2005 12:30:49 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: <200510182003.j9IK3qp1002264@repoman.freebsd.org> Message-ID: <20051019122907.E2669@fledge.watson.org> References: <200510182003.j9IK3qp1002264@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Perforce Change Reviews Subject: Re: PERFORCE change 85514 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: Wed, 19 Oct 2005 11:30:52 -0000 On Tue, 18 Oct 2005, John Baldwin wrote: > http://perforce.freebsd.org/chv.cgi?CH=85514 > > Change 85514 by jhb@jhb_slimer on 2005/10/18 20:03:00 > > Rework KDB_STOP_NMI some to make it less KDB-specific. > - Use stoppcbs[] on i386 and amd64 always, regardless of KDB_STOP_NMI. > - Rename KDB_STOP_NMI to STOP_NMI and have it apply to any IPI_STOP > ipi. > - Fix ipi_all(), ipi_all_but_self(), and ipi_self() to correctly > handle bitmapped IPIs and STOP_NMI. Wouldn't it make sense to simply always use an NMI when entering the debugger on SMP? I guess there are some potential races in simultaneous or nearly simultaneous entry of the debugger from multiple CPUs at once, but it seems lately I've been bumping into a moderate number of cases where the CPUs stack up and wedge during SMP debugger entry, possibly due to the CPU entering the debugger holding a spinlock. Robert N M Watson > > Affected files ... > > .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#26 edit > .. //depot/projects/smpng/sys/amd64/amd64/trap.c#36 edit > .. //depot/projects/smpng/sys/amd64/conf/NOTES#22 edit > .. //depot/projects/smpng/sys/amd64/include/smp.h#9 edit > .. //depot/projects/smpng/sys/conf/options.amd64#14 edit > .. //depot/projects/smpng/sys/conf/options.i386#50 edit > .. //depot/projects/smpng/sys/conf/options.pc98#49 edit > .. //depot/projects/smpng/sys/i386/conf/NOTES#108 edit > .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#91 edit > .. //depot/projects/smpng/sys/i386/i386/trap.c#86 edit > .. //depot/projects/smpng/sys/i386/include/smp.h#17 edit > .. //depot/projects/smpng/sys/kern/subr_kdb.c#12 edit > .. //depot/projects/smpng/sys/kern/subr_smp.c#42 edit > .. //depot/projects/smpng/sys/notes#61 edit > .. //depot/projects/smpng/sys/pc98/conf/NOTES#45 edit > .. //depot/projects/smpng/sys/sys/smp.h#15 edit > > Differences ... > > ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#26 (text+ko) ==== > > @@ -28,7 +28,6 @@ > __FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.262 2005/08/19 22:10:19 pjd Exp $"); > > #include "opt_cpu.h" > -#include "opt_kdb.h" > #include "opt_kstack_pages.h" > #include "opt_mp_watchdog.h" > #include "opt_sched.h" > @@ -113,10 +112,30 @@ > > extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); > > +#ifdef STOP_NMI > +volatile cpumask_t ipi_nmi_pending; > + > +static void ipi_nmi_selected(u_int32_t cpus); > +#endif > + > /* > * Local data and functions. > */ > > +#ifdef STOP_NMI > +/* > + * Provide an alternate method of stopping other CPUs. If another CPU has > + * disabled interrupts the conventional STOP IPI will be blocked. This > + * NMI-based stop should get through in that case. > + */ > +static int stop_cpus_with_nmi = 1; > +SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, > + &stop_cpus_with_nmi, 0, ""); > +TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); > +#else > +#define stop_cpus_with_nmi 0 > +#endif > + > static u_int logical_cpus; > > /* used to hold the AP's until we are ready to release them */ > @@ -199,11 +218,6 @@ > smp_topology = &mp_top; > } > > - > -#ifdef KDB_STOP_NMI > -volatile cpumask_t ipi_nmi_pending; > -#endif > - > /* > * Calculate usable address in base memory for AP trampoline code. > */ > @@ -945,6 +959,12 @@ > ipi = IPI_BITMAP_VECTOR; > } > > +#ifdef STOP_NMI > + if (ipi == IPI_STOP && stop_cpus_with_nmi) { > + ipi_nmi_selected(cpus); > + return; > + } > +#endif > CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); > while ((cpu = ffs(cpus)) != 0) { > cpu--; > @@ -975,6 +995,10 @@ > ipi_all(u_int ipi) > { > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > + ipi_selected(all_cpus, ipi); > + return; > + } > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); > } > @@ -986,6 +1010,10 @@ > ipi_all_but_self(u_int ipi) > { > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > + ipi_selected(PCPU_GET(other_cpus), ipi); > + return; > + } > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); > } > @@ -997,11 +1025,15 @@ > ipi_self(u_int ipi) > { > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > + ipi_selected(PCPU_GET(cpumask), ipi); > + return; > + } > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); > } > > -#ifdef KDB_STOP_NMI > +#ifdef STOP_NMI > /* > * send NMI IPI to selected CPUs > */ > @@ -1011,7 +1043,6 @@ > void > ipi_nmi_selected(u_int32_t cpus) > { > - > int cpu; > register_t icrlo; > > @@ -1020,10 +1051,8 @@ > > CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); > > - > atomic_set_int(&ipi_nmi_pending, cpus); > > - > while ((cpu = ffs(cpus)) != 0) { > cpu--; > cpus &= ~(1 << cpu); > @@ -1035,43 +1064,43 @@ > if (!lapic_ipi_wait(BEFORE_SPIN)) > panic("ipi_nmi_selected: previous IPI has not cleared"); > > - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); > + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); > } > } > > - > int > ipi_nmi_handler() > { > - int cpu = PCPU_GET(cpuid); > - void *restartfunc(void); > + int cpu = PCPU_GET(cpuid); > + int cpumask = PCPU_GET(cpumask); > + void (*restartfunc)(void); > > - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) > + if (!(ipi_nmi_pending & cpumask)) > return 1; > > - atomic_clear_int(&ipi_nmi_pending,1 << cpu); > + atomic_clear_int(&ipi_nmi_pending, cpumask); > > savectx(&stoppcbs[cpu]); > > /* Indicate that we are stopped */ > - atomic_set_int(&stopped_cpus,1 << cpu); > - > + atomic_set_int(&stopped_cpus, cpumask); > > /* Wait for restart */ > - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) > + while (!(started_cpus & cpumask)) > ia32_pause(); > > - atomic_clear_int(&started_cpus,1 << cpu); > - atomic_clear_int(&stopped_cpus,1 << cpu); > + atomic_clear_int(&started_cpus, cpumask); > + atomic_clear_int(&stopped_cpus, cpumask); > > - restartfunc = (void (*)(void))atomic_readandclear_long(&cpustop_restartfunc); > + restartfunc = (void (*)(void))atomic_readandclear_long( > + (u_long *)&cpustop_restartfunc); > if (restartfunc != NULL) > restartfunc(); > > return 0; > } > > -#endif /* KDB_STOP_NMI */ > +#endif /* STOP_NMI */ > > /* > * This is called once the rest of the system is up and running and we're > > ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#36 (text+ko) ==== > > @@ -167,13 +167,13 @@ > PCPU_LAZY_INC(cnt.v_trap); > type = frame.tf_trapno; > > -#ifdef KDB_STOP_NMI > - /* Handler for NMI IPIs used for debugging */ > +#ifdef STOP_NMI > + /* Handler for NMI IPIs used for stopping CPUs. */ > if (type == T_NMI) { > if (ipi_nmi_handler() == 0) > goto out; > } > -#endif /* KDB_STOP_NMI */ > +#endif /* STOP_NMI */ > > #ifdef KDB > if (kdb_active) { > > ==== //depot/projects/smpng/sys/amd64/conf/NOTES#22 (text+ko) ==== > > @@ -39,7 +39,7 @@ > # > # Debugging options. > # > -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI > +options STOP_NMI # Stop CPUS using NMI instead of IPI > > > > > ==== //depot/projects/smpng/sys/amd64/include/smp.h#9 (text+ko) ==== > > @@ -63,9 +63,8 @@ > void smp_invltlb(void); > void smp_masked_invltlb(u_int mask); > > -#ifdef KDB_STOP_NMI > -int ipi_nmi_handler(void); > -void ipi_nmi_selected(u_int32_t cpus); > +#ifdef STOP_NMI > +int ipi_nmi_handler(void); > #endif > > #endif /* !LOCORE */ > > ==== //depot/projects/smpng/sys/conf/options.amd64#14 (text+ko) ==== > > @@ -57,4 +57,4 @@ > DEV_ATPIC opt_atpic.h > > # Debugging > -KDB_STOP_NMI opt_kdb.h > +STOP_NMI opt_cpu.h > > ==== //depot/projects/smpng/sys/conf/options.i386#50 (text+ko) ==== > > @@ -161,5 +161,5 @@ > ASR_COMPAT opt_asr.h > > # Debugging > -KDB_STOP_NMI opt_kdb.h > +STOP_NMI opt_cpu.h > NPX_DEBUG opt_npx.h > > ==== //depot/projects/smpng/sys/conf/options.pc98#49 (text+ko) ==== > > @@ -103,5 +103,5 @@ > DEV_NPX opt_npx.h > > # Debugging > -KDB_STOP_NMI opt_kdb.h > +STOP_NMI opt_cpu.h > NPX_DEBUG opt_npx.h > > ==== //depot/projects/smpng/sys/i386/conf/NOTES#108 (text+ko) ==== > > @@ -56,7 +56,7 @@ > > # Debugging options. > # > -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI > +options STOP_NMI # Stop CPUS using NMI instead of IPI > > > > > ==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#91 (text+ko) ==== > > @@ -28,7 +28,6 @@ > > #include "opt_apic.h" > #include "opt_cpu.h" > -#include "opt_kdb.h" > #include "opt_kstack_pages.h" > #include "opt_mp_watchdog.h" > #include "opt_sched.h" > @@ -177,8 +176,10 @@ > vm_offset_t smp_tlb_addr2; > volatile int smp_tlb_wait; > > -#ifdef KDB_STOP_NMI > +#ifdef STOP_NMI > volatile cpumask_t ipi_nmi_pending; > + > +static void ipi_nmi_selected(u_int32_t cpus); > #endif > > #ifdef COUNT_IPIS > @@ -198,6 +199,20 @@ > * Local data and functions. > */ > > +#ifdef STOP_NMI > +/* > + * Provide an alternate method of stopping other CPUs. If another CPU has > + * disabled interrupts the conventional STOP IPI will be blocked. This > + * NMI-based stop should get through in that case. > + */ > +static int stop_cpus_with_nmi = 1; > +SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, > + &stop_cpus_with_nmi, 0, ""); > +TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); > +#else > +#define stop_cpus_with_nmi 0 > +#endif > + > static u_int logical_cpus; > > /* used to hold the AP's until we are ready to release them */ > @@ -1186,6 +1201,12 @@ > ipi = IPI_BITMAP_VECTOR; > } > > +#ifdef STOP_NMI > + if (ipi == IPI_STOP && stop_cpus_with_nmi) { > + ipi_nmi_selected(cpus); > + return; > + } > +#endif > CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); > while ((cpu = ffs(cpus)) != 0) { > cpu--; > @@ -1216,6 +1237,10 @@ > ipi_all(u_int ipi) > { > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > + ipi_selected(all_cpus, ipi); > + return; > + } > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); > } > @@ -1227,6 +1252,10 @@ > ipi_all_but_self(u_int ipi) > { > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > + ipi_selected(PCPU_GET(other_cpus), ipi); > + return; > + } > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); > } > @@ -1238,11 +1267,15 @@ > ipi_self(u_int ipi) > { > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > + ipi_selected(PCPU_GET(cpumask), ipi); > + return; > + } > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); > } > > -#ifdef KDB_STOP_NMI > +#ifdef STOP_NMI > /* > * send NMI IPI to selected CPUs > */ > @@ -1252,7 +1285,6 @@ > void > ipi_nmi_selected(u_int32_t cpus) > { > - > int cpu; > register_t icrlo; > > @@ -1261,10 +1293,8 @@ > > CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); > > - > atomic_set_int(&ipi_nmi_pending, cpus); > > - > while ((cpu = ffs(cpus)) != 0) { > cpu--; > cpus &= ~(1 << cpu); > @@ -1276,43 +1306,43 @@ > if (!lapic_ipi_wait(BEFORE_SPIN)) > panic("ipi_nmi_selected: previous IPI has not cleared"); > > - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); > + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); > } > } > > - > int > ipi_nmi_handler() > { > - int cpu = PCPU_GET(cpuid); > - void *restartfunc(void); > + int cpu = PCPU_GET(cpuid); > + int cpumask = PCPU_GET(cpumask); > + void (*restartfunc)(void); > > - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) > + if (!(ipi_nmi_pending & cpumask)) > return 1; > > - atomic_clear_int(&ipi_nmi_pending,1 << cpu); > + atomic_clear_int(&ipi_nmi_pending, cpumask); > > savectx(&stoppcbs[cpu]); > > /* Indicate that we are stopped */ > - atomic_set_int(&stopped_cpus,1 << cpu); > + atomic_set_int(&stopped_cpus, cpumask); > > - > /* Wait for restart */ > - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) > + while (!(started_cpus & cpumask)) > ia32_pause(); > > - atomic_clear_int(&started_cpus,1 << cpu); > - atomic_clear_int(&stopped_cpus,1 << cpu); > + atomic_clear_int(&started_cpus, cpumask); > + atomic_clear_int(&stopped_cpus, cpumask); > > - restartfunc = (void (*)(void))atomic_readandclear_int(&cpustop_restartfunc); > + restartfunc = (void (*)(void))atomic_readandclear_int( > + (u_int *)&cpustop_restartfunc); > if (restartfunc != NULL) > restartfunc(); > > return 0; > } > > -#endif /* KDB_STOP_NMI */ > +#endif /* STOP_NMI */ > > /* > * This is called once the rest of the system is up and running and we're > > ==== //depot/projects/smpng/sys/i386/i386/trap.c#86 (text+ko) ==== > > @@ -185,13 +185,13 @@ > PCPU_LAZY_INC(cnt.v_trap); > type = frame.tf_trapno; > > -#ifdef KDB_STOP_NMI > - /* Handler for NMI IPIs used for debugging */ > +#ifdef STOP_NMI > + /* Handler for NMI IPIs used for stopping CPUs. */ > if (type == T_NMI) { > if (ipi_nmi_handler() == 0) > goto out; > } > -#endif /* KDB_STOP_NMI */ > +#endif /* STOP_NMI */ > > #ifdef KDB > if (kdb_active) { > > ==== //depot/projects/smpng/sys/i386/include/smp.h#17 (text+ko) ==== > > @@ -79,9 +79,8 @@ > void smp_invltlb(void); > void smp_masked_invltlb(u_int mask); > > -#ifdef KDB_STOP_NMI > -int ipi_nmi_handler(void); > -void ipi_nmi_selected(u_int32_t cpus); > +#ifdef STOP_NMI > +int ipi_nmi_handler(void); > #endif > > #endif /* !LOCORE */ > > ==== //depot/projects/smpng/sys/kern/subr_kdb.c#12 (text+ko) ==== > > @@ -42,16 +42,11 @@ > #include > #include > > -#ifdef KDB_STOP_NMI > +#ifdef SMP > +#if defined (__i386__) || defined(__amd64__) > +#define HAVE_STOPPEDPCBS > #include > #endif > - > -/* > - * KDB_STOP_NMI requires SMP to pick up the right dependencies > - * (And isn't useful on UP anyway) > - */ > -#if defined(KDB_STOP_NMI) && !defined(SMP) > -#error "options KDB_STOP_NMI" requires "options SMP" > #endif > > int kdb_active = 0; > @@ -91,19 +86,6 @@ > SYSCTL_INT(_debug_kdb, OID_AUTO, stop_cpus, CTLTYPE_INT | CTLFLAG_RW, > &kdb_stop_cpus, 0, ""); > TUNABLE_INT("debug.kdb.stop_cpus", &kdb_stop_cpus); > - > -#ifdef KDB_STOP_NMI > -/* > - * Provide an alternate method of stopping other CPUs. If another CPU has > - * disabled interrupts the conventional STOP IPI will be blocked. This > - * NMI-based stop should get through in that case. > - */ > -static int kdb_stop_cpus_with_nmi = 1; > -SYSCTL_INT(_debug_kdb, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, > - &kdb_stop_cpus_with_nmi, 0, ""); > -TUNABLE_INT("debug.kdb.stop_cpus_with_nmi", &kdb_stop_cpus_with_nmi); > -#endif /* KDB_STOP_NMI */ > - > #endif > > static int > @@ -335,27 +317,24 @@ > > struct pcb * > kdb_thr_ctx(struct thread *thr) > -#ifdef KDB_STOP_NMI > { > - u_int cpuid; > - struct pcpu *pc; > +#ifdef HAVE_STOPPEDPCBS > + struct pcpu *pc; > + u_int cpuid; > +#endif > > - if (thr == curthread) > - return &kdb_pcb; > + if (thr == curthread) > + return &kdb_pcb; > > - SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { > - cpuid = pc->pc_cpuid; > - if (pc->pc_curthread == thr && (atomic_load_acq_int(&stopped_cpus) & (1 << cpuid))) > - return &stoppcbs[cpuid]; > - } > - > - return thr->td_pcb; > -} > -#else > -{ > - return ((thr == curthread) ? &kdb_pcb : thr->td_pcb); > +#ifdef HAVE_STOPPEDPCBS > + SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { > + cpuid = pc->pc_cpuid; > + if (pc->pc_curthread == thr && (stopped_cpus & (1 << cpuid))) > + return &stoppcbs[cpuid]; > + } > +#endif > + return thr->td_pcb; > } > -#endif /* KDB_STOP_NMI */ > > struct thread * > kdb_thr_first(void) > @@ -452,14 +431,7 @@ > > #ifdef SMP > if ((did_stop_cpus = kdb_stop_cpus) != 0) > - { > -#ifdef KDB_STOP_NMI > - if(kdb_stop_cpus_with_nmi) > - stop_cpus_nmi(PCPU_GET(other_cpus)); > - else > -#endif /* KDB_STOP_NMI */ > stop_cpus(PCPU_GET(other_cpus)); > - } > #endif > > kdb_frame = tf; > > ==== //depot/projects/smpng/sys/kern/subr_smp.c#42 (text+ko) ==== > > @@ -35,8 +35,6 @@ > #include > __FBSDID("$FreeBSD: src/sys/kern/subr_smp.c,v 1.196 2005/06/30 03:38:10 peter Exp $"); > > -#include "opt_kdb.h" > - > #include > #include > #include > @@ -258,36 +256,6 @@ > return 1; > } > > -#ifdef KDB_STOP_NMI > -int > -stop_cpus_nmi(cpumask_t map) > -{ > - int i; > - > - if (!smp_started) > - return 0; > - > - CTR1(KTR_SMP, "stop_cpus(%x)", map); > - > - /* send the stop IPI to all CPUs in map */ > - ipi_nmi_selected(map); > - > - i = 0; > - while ((atomic_load_acq_int(&stopped_cpus) & map) != map) { > - /* spin */ > - i++; > -#ifdef DIAGNOSTIC > - if (i == 100000) { > - printf("timeout stopping cpus\n"); > - break; > - } > -#endif > - } > - > - return 1; > -} > -#endif /* KDB_STOP_NMI */ > - > /* > * Called by a CPU to restart stopped CPUs. > * > > ==== //depot/projects/smpng/sys/notes#61 (text+ko) ==== > > @@ -67,6 +67,12 @@ > do this. That really needs to only be done in spinlock_*() (and maybe some > frobbing in intr_execute_handlers()) and needs to happen after the > spinlock_*() changes happen. > +- Change KDB_STOP_NMI to STOP_NMI and make it non-kdb specific > + - i386 > + + compiles > + - amd64 > + - use stoppcbs[] on i386 and amd64 always > + - untested > - KTR change: include __func__ along with __FILE__ and __LINE__ and display > it after cpu number by default > - Cheapen global stats counters via PCPU_LAZY_INC > > ==== //depot/projects/smpng/sys/pc98/conf/NOTES#45 (text+ko) ==== > > @@ -39,7 +39,7 @@ > > # Debugging options. > # > -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI > +options STOP_NMI # Stop CPUS using NMI instead of IPI > > > > > ==== //depot/projects/smpng/sys/sys/smp.h#15 (text+ko) ==== > > @@ -102,9 +102,6 @@ > void smp_rendezvous_action(void); > extern struct mtx smp_ipi_mtx; > > -#ifdef KDB_STOP_NMI > -int stop_cpus_nmi(cpumask_t); > -#endif > #endif /* SMP */ > void smp_rendezvous(void (*)(void *), > void (*)(void *), > From owner-p4-projects@FreeBSD.ORG Wed Oct 19 15:35: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 2CB8E16A422; Wed, 19 Oct 2005 15:35: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 D3CC216A41F; Wed, 19 Oct 2005 15:35:48 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F37243D48; Wed, 19 Oct 2005 15:35:48 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.50.41.234] (Not Verified[10.50.41.234]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Wed, 19 Oct 2005 11:52:20 -0400 From: John Baldwin To: Robert Watson Date: Wed, 19 Oct 2005 11:17:14 -0400 User-Agent: KMail/1.8.2 References: <200510182003.j9IK3qp1002264@repoman.freebsd.org> <20051019122907.E2669@fledge.watson.org> In-Reply-To: <20051019122907.E2669@fledge.watson.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200510191117.15536.jhb@freebsd.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 85514 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: Wed, 19 Oct 2005 15:35:50 -0000 On Wednesday 19 October 2005 07:30 am, Robert Watson wrote: > On Tue, 18 Oct 2005, John Baldwin wrote: > > http://perforce.freebsd.org/chv.cgi?CH=85514 > > > > Change 85514 by jhb@jhb_slimer on 2005/10/18 20:03:00 > > > > Rework KDB_STOP_NMI some to make it less KDB-specific. > > - Use stoppcbs[] on i386 and amd64 always, regardless of KDB_STOP_NMI. > > - Rename KDB_STOP_NMI to STOP_NMI and have it apply to any IPI_STOP > > ipi. > > - Fix ipi_all(), ipi_all_but_self(), and ipi_self() to correctly > > handle bitmapped IPIs and STOP_NMI. > > Wouldn't it make sense to simply always use an NMI when entering the > debugger on SMP? I guess there are some potential races in simultaneous > or nearly simultaneous entry of the debugger from multiple CPUs at once, > but it seems lately I've been bumping into a moderate number of cases > where the CPUs stack up and wedge during SMP debugger entry, possibly due > to the CPU entering the debugger holding a spinlock. I don't disagree, but I think we should always use NMI's to stop CPUs for debugger, shutdown, etc. rather than just special casing KDB. I wouldn't mind eventually making STOP_NMI on by default, but for now was preserving the same status quo as with KDB_STOP_NMI. > Robert N M Watson > > > Affected files ... > > > > .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#26 edit > > .. //depot/projects/smpng/sys/amd64/amd64/trap.c#36 edit > > .. //depot/projects/smpng/sys/amd64/conf/NOTES#22 edit > > .. //depot/projects/smpng/sys/amd64/include/smp.h#9 edit > > .. //depot/projects/smpng/sys/conf/options.amd64#14 edit > > .. //depot/projects/smpng/sys/conf/options.i386#50 edit > > .. //depot/projects/smpng/sys/conf/options.pc98#49 edit > > .. //depot/projects/smpng/sys/i386/conf/NOTES#108 edit > > .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#91 edit > > .. //depot/projects/smpng/sys/i386/i386/trap.c#86 edit > > .. //depot/projects/smpng/sys/i386/include/smp.h#17 edit > > .. //depot/projects/smpng/sys/kern/subr_kdb.c#12 edit > > .. //depot/projects/smpng/sys/kern/subr_smp.c#42 edit > > .. //depot/projects/smpng/sys/notes#61 edit > > .. //depot/projects/smpng/sys/pc98/conf/NOTES#45 edit > > .. //depot/projects/smpng/sys/sys/smp.h#15 edit > > > > Differences ... > > > > ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#26 (text+ko) > > ==== > > > > @@ -28,7 +28,6 @@ > > __FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.262 2005/08/19 > > 22:10:19 pjd Exp $"); > > > > #include "opt_cpu.h" > > -#include "opt_kdb.h" > > #include "opt_kstack_pages.h" > > #include "opt_mp_watchdog.h" > > #include "opt_sched.h" > > @@ -113,10 +112,30 @@ > > > > extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); > > > > +#ifdef STOP_NMI > > +volatile cpumask_t ipi_nmi_pending; > > + > > +static void ipi_nmi_selected(u_int32_t cpus); > > +#endif > > + > > /* > > * Local data and functions. > > */ > > > > +#ifdef STOP_NMI > > +/* > > + * Provide an alternate method of stopping other CPUs. If another CPU > > has + * disabled interrupts the conventional STOP IPI will be blocked. > > This + * NMI-based stop should get through in that case. > > + */ > > +static int stop_cpus_with_nmi = 1; > > +SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | > > CTLFLAG_RW, + &stop_cpus_with_nmi, 0, ""); > > +TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); > > +#else > > +#define stop_cpus_with_nmi 0 > > +#endif > > + > > static u_int logical_cpus; > > > > /* used to hold the AP's until we are ready to release them */ > > @@ -199,11 +218,6 @@ > > smp_topology = &mp_top; > > } > > > > - > > -#ifdef KDB_STOP_NMI > > -volatile cpumask_t ipi_nmi_pending; > > -#endif > > - > > /* > > * Calculate usable address in base memory for AP trampoline code. > > */ > > @@ -945,6 +959,12 @@ > > ipi = IPI_BITMAP_VECTOR; > > } > > > > +#ifdef STOP_NMI > > + if (ipi == IPI_STOP && stop_cpus_with_nmi) { > > + ipi_nmi_selected(cpus); > > + return; > > + } > > +#endif > > CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); > > while ((cpu = ffs(cpus)) != 0) { > > cpu--; > > @@ -975,6 +995,10 @@ > > ipi_all(u_int ipi) > > { > > > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > > + ipi_selected(all_cpus, ipi); > > + return; > > + } > > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > > lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); > > } > > @@ -986,6 +1010,10 @@ > > ipi_all_but_self(u_int ipi) > > { > > > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > > + ipi_selected(PCPU_GET(other_cpus), ipi); > > + return; > > + } > > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > > lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); > > } > > @@ -997,11 +1025,15 @@ > > ipi_self(u_int ipi) > > { > > > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > > + ipi_selected(PCPU_GET(cpumask), ipi); > > + return; > > + } > > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > > lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); > > } > > > > -#ifdef KDB_STOP_NMI > > +#ifdef STOP_NMI > > /* > > * send NMI IPI to selected CPUs > > */ > > @@ -1011,7 +1043,6 @@ > > void > > ipi_nmi_selected(u_int32_t cpus) > > { > > - > > int cpu; > > register_t icrlo; > > > > @@ -1020,10 +1051,8 @@ > > > > CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); > > > > - > > atomic_set_int(&ipi_nmi_pending, cpus); > > > > - > > while ((cpu = ffs(cpus)) != 0) { > > cpu--; > > cpus &= ~(1 << cpu); > > @@ -1035,43 +1064,43 @@ > > if (!lapic_ipi_wait(BEFORE_SPIN)) > > panic("ipi_nmi_selected: previous IPI has not cleared"); > > > > - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); > > + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); > > } > > } > > > > - > > int > > ipi_nmi_handler() > > { > > - int cpu = PCPU_GET(cpuid); > > - void *restartfunc(void); > > + int cpu = PCPU_GET(cpuid); > > + int cpumask = PCPU_GET(cpumask); > > + void (*restartfunc)(void); > > > > - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) > > + if (!(ipi_nmi_pending & cpumask)) > > return 1; > > > > - atomic_clear_int(&ipi_nmi_pending,1 << cpu); > > + atomic_clear_int(&ipi_nmi_pending, cpumask); > > > > savectx(&stoppcbs[cpu]); > > > > /* Indicate that we are stopped */ > > - atomic_set_int(&stopped_cpus,1 << cpu); > > - > > + atomic_set_int(&stopped_cpus, cpumask); > > > > /* Wait for restart */ > > - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) > > + while (!(started_cpus & cpumask)) > > ia32_pause(); > > > > - atomic_clear_int(&started_cpus,1 << cpu); > > - atomic_clear_int(&stopped_cpus,1 << cpu); > > + atomic_clear_int(&started_cpus, cpumask); > > + atomic_clear_int(&stopped_cpus, cpumask); > > > > - restartfunc = (void > > (*)(void))atomic_readandclear_long(&cpustop_restartfunc); + restartfunc = > > (void (*)(void))atomic_readandclear_long( > > + (u_long *)&cpustop_restartfunc); > > if (restartfunc != NULL) > > restartfunc(); > > > > return 0; > > } > > > > -#endif /* KDB_STOP_NMI */ > > +#endif /* STOP_NMI */ > > > > /* > > * This is called once the rest of the system is up and running and we're > > > > ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#36 (text+ko) ==== > > > > @@ -167,13 +167,13 @@ > > PCPU_LAZY_INC(cnt.v_trap); > > type = frame.tf_trapno; > > > > -#ifdef KDB_STOP_NMI > > - /* Handler for NMI IPIs used for debugging */ > > +#ifdef STOP_NMI > > + /* Handler for NMI IPIs used for stopping CPUs. */ > > if (type == T_NMI) { > > if (ipi_nmi_handler() == 0) > > goto out; > > } > > -#endif /* KDB_STOP_NMI */ > > +#endif /* STOP_NMI */ > > > > #ifdef KDB > > if (kdb_active) { > > > > ==== //depot/projects/smpng/sys/amd64/conf/NOTES#22 (text+ko) ==== > > > > @@ -39,7 +39,7 @@ > > # > > # Debugging options. > > # > > -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI > > +options STOP_NMI # Stop CPUS using NMI instead of IPI > > > > > > > > > > ==== //depot/projects/smpng/sys/amd64/include/smp.h#9 (text+ko) ==== > > > > @@ -63,9 +63,8 @@ > > void smp_invltlb(void); > > void smp_masked_invltlb(u_int mask); > > > > -#ifdef KDB_STOP_NMI > > -int ipi_nmi_handler(void); > > -void ipi_nmi_selected(u_int32_t cpus); > > +#ifdef STOP_NMI > > +int ipi_nmi_handler(void); > > #endif > > > > #endif /* !LOCORE */ > > > > ==== //depot/projects/smpng/sys/conf/options.amd64#14 (text+ko) ==== > > > > @@ -57,4 +57,4 @@ > > DEV_ATPIC opt_atpic.h > > > > # Debugging > > -KDB_STOP_NMI opt_kdb.h > > +STOP_NMI opt_cpu.h > > > > ==== //depot/projects/smpng/sys/conf/options.i386#50 (text+ko) ==== > > > > @@ -161,5 +161,5 @@ > > ASR_COMPAT opt_asr.h > > > > # Debugging > > -KDB_STOP_NMI opt_kdb.h > > +STOP_NMI opt_cpu.h > > NPX_DEBUG opt_npx.h > > > > ==== //depot/projects/smpng/sys/conf/options.pc98#49 (text+ko) ==== > > > > @@ -103,5 +103,5 @@ > > DEV_NPX opt_npx.h > > > > # Debugging > > -KDB_STOP_NMI opt_kdb.h > > +STOP_NMI opt_cpu.h > > NPX_DEBUG opt_npx.h > > > > ==== //depot/projects/smpng/sys/i386/conf/NOTES#108 (text+ko) ==== > > > > @@ -56,7 +56,7 @@ > > > > # Debugging options. > > # > > -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI > > +options STOP_NMI # Stop CPUS using NMI instead of IPI > > > > > > > > > > ==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#91 (text+ko) ==== > > > > @@ -28,7 +28,6 @@ > > > > #include "opt_apic.h" > > #include "opt_cpu.h" > > -#include "opt_kdb.h" > > #include "opt_kstack_pages.h" > > #include "opt_mp_watchdog.h" > > #include "opt_sched.h" > > @@ -177,8 +176,10 @@ > > vm_offset_t smp_tlb_addr2; > > volatile int smp_tlb_wait; > > > > -#ifdef KDB_STOP_NMI > > +#ifdef STOP_NMI > > volatile cpumask_t ipi_nmi_pending; > > + > > +static void ipi_nmi_selected(u_int32_t cpus); > > #endif > > > > #ifdef COUNT_IPIS > > @@ -198,6 +199,20 @@ > > * Local data and functions. > > */ > > > > +#ifdef STOP_NMI > > +/* > > + * Provide an alternate method of stopping other CPUs. If another CPU > > has + * disabled interrupts the conventional STOP IPI will be blocked. > > This + * NMI-based stop should get through in that case. > > + */ > > +static int stop_cpus_with_nmi = 1; > > +SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | > > CTLFLAG_RW, + &stop_cpus_with_nmi, 0, ""); > > +TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); > > +#else > > +#define stop_cpus_with_nmi 0 > > +#endif > > + > > static u_int logical_cpus; > > > > /* used to hold the AP's until we are ready to release them */ > > @@ -1186,6 +1201,12 @@ > > ipi = IPI_BITMAP_VECTOR; > > } > > > > +#ifdef STOP_NMI > > + if (ipi == IPI_STOP && stop_cpus_with_nmi) { > > + ipi_nmi_selected(cpus); > > + return; > > + } > > +#endif > > CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); > > while ((cpu = ffs(cpus)) != 0) { > > cpu--; > > @@ -1216,6 +1237,10 @@ > > ipi_all(u_int ipi) > > { > > > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > > + ipi_selected(all_cpus, ipi); > > + return; > > + } > > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > > lapic_ipi_vectored(ipi, APIC_IPI_DEST_ALL); > > } > > @@ -1227,6 +1252,10 @@ > > ipi_all_but_self(u_int ipi) > > { > > > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > > + ipi_selected(PCPU_GET(other_cpus), ipi); > > + return; > > + } > > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > > lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); > > } > > @@ -1238,11 +1267,15 @@ > > ipi_self(u_int ipi) > > { > > > > + if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { > > + ipi_selected(PCPU_GET(cpumask), ipi); > > + return; > > + } > > CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); > > lapic_ipi_vectored(ipi, APIC_IPI_DEST_SELF); > > } > > > > -#ifdef KDB_STOP_NMI > > +#ifdef STOP_NMI > > /* > > * send NMI IPI to selected CPUs > > */ > > @@ -1252,7 +1285,6 @@ > > void > > ipi_nmi_selected(u_int32_t cpus) > > { > > - > > int cpu; > > register_t icrlo; > > > > @@ -1261,10 +1293,8 @@ > > > > CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); > > > > - > > atomic_set_int(&ipi_nmi_pending, cpus); > > > > - > > while ((cpu = ffs(cpus)) != 0) { > > cpu--; > > cpus &= ~(1 << cpu); > > @@ -1276,43 +1306,43 @@ > > if (!lapic_ipi_wait(BEFORE_SPIN)) > > panic("ipi_nmi_selected: previous IPI has not cleared"); > > > > - lapic_ipi_raw(icrlo,cpu_apic_ids[cpu]); > > + lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); > > } > > } > > > > - > > int > > ipi_nmi_handler() > > { > > - int cpu = PCPU_GET(cpuid); > > - void *restartfunc(void); > > + int cpu = PCPU_GET(cpuid); > > + int cpumask = PCPU_GET(cpumask); > > + void (*restartfunc)(void); > > > > - if(!(atomic_load_acq_int(&ipi_nmi_pending) & (1 << cpu))) > > + if (!(ipi_nmi_pending & cpumask)) > > return 1; > > > > - atomic_clear_int(&ipi_nmi_pending,1 << cpu); > > + atomic_clear_int(&ipi_nmi_pending, cpumask); > > > > savectx(&stoppcbs[cpu]); > > > > /* Indicate that we are stopped */ > > - atomic_set_int(&stopped_cpus,1 << cpu); > > + atomic_set_int(&stopped_cpus, cpumask); > > > > - > > /* Wait for restart */ > > - while(!(atomic_load_acq_int(&started_cpus) & (1 << cpu))) > > + while (!(started_cpus & cpumask)) > > ia32_pause(); > > > > - atomic_clear_int(&started_cpus,1 << cpu); > > - atomic_clear_int(&stopped_cpus,1 << cpu); > > + atomic_clear_int(&started_cpus, cpumask); > > + atomic_clear_int(&stopped_cpus, cpumask); > > > > - restartfunc = (void > > (*)(void))atomic_readandclear_int(&cpustop_restartfunc); + restartfunc = > > (void (*)(void))atomic_readandclear_int( > > + (u_int *)&cpustop_restartfunc); > > if (restartfunc != NULL) > > restartfunc(); > > > > return 0; > > } > > > > -#endif /* KDB_STOP_NMI */ > > +#endif /* STOP_NMI */ > > > > /* > > * This is called once the rest of the system is up and running and we're > > > > ==== //depot/projects/smpng/sys/i386/i386/trap.c#86 (text+ko) ==== > > > > @@ -185,13 +185,13 @@ > > PCPU_LAZY_INC(cnt.v_trap); > > type = frame.tf_trapno; > > > > -#ifdef KDB_STOP_NMI > > - /* Handler for NMI IPIs used for debugging */ > > +#ifdef STOP_NMI > > + /* Handler for NMI IPIs used for stopping CPUs. */ > > if (type == T_NMI) { > > if (ipi_nmi_handler() == 0) > > goto out; > > } > > -#endif /* KDB_STOP_NMI */ > > +#endif /* STOP_NMI */ > > > > #ifdef KDB > > if (kdb_active) { > > > > ==== //depot/projects/smpng/sys/i386/include/smp.h#17 (text+ko) ==== > > > > @@ -79,9 +79,8 @@ > > void smp_invltlb(void); > > void smp_masked_invltlb(u_int mask); > > > > -#ifdef KDB_STOP_NMI > > -int ipi_nmi_handler(void); > > -void ipi_nmi_selected(u_int32_t cpus); > > +#ifdef STOP_NMI > > +int ipi_nmi_handler(void); > > #endif > > > > #endif /* !LOCORE */ > > > > ==== //depot/projects/smpng/sys/kern/subr_kdb.c#12 (text+ko) ==== > > > > @@ -42,16 +42,11 @@ > > #include > > #include > > > > -#ifdef KDB_STOP_NMI > > +#ifdef SMP > > +#if defined (__i386__) || defined(__amd64__) > > +#define HAVE_STOPPEDPCBS > > #include > > #endif > > - > > -/* > > - * KDB_STOP_NMI requires SMP to pick up the right dependencies > > - * (And isn't useful on UP anyway) > > - */ > > -#if defined(KDB_STOP_NMI) && !defined(SMP) > > -#error "options KDB_STOP_NMI" requires "options SMP" > > #endif > > > > int kdb_active = 0; > > @@ -91,19 +86,6 @@ > > SYSCTL_INT(_debug_kdb, OID_AUTO, stop_cpus, CTLTYPE_INT | CTLFLAG_RW, > > &kdb_stop_cpus, 0, ""); > > TUNABLE_INT("debug.kdb.stop_cpus", &kdb_stop_cpus); > > - > > -#ifdef KDB_STOP_NMI > > -/* > > - * Provide an alternate method of stopping other CPUs. If another CPU > > has - * disabled interrupts the conventional STOP IPI will be blocked. > > This - * NMI-based stop should get through in that case. > > - */ > > -static int kdb_stop_cpus_with_nmi = 1; > > -SYSCTL_INT(_debug_kdb, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | > > CTLFLAG_RW, - &kdb_stop_cpus_with_nmi, 0, ""); > > -TUNABLE_INT("debug.kdb.stop_cpus_with_nmi", &kdb_stop_cpus_with_nmi); > > -#endif /* KDB_STOP_NMI */ > > - > > #endif > > > > static int > > @@ -335,27 +317,24 @@ > > > > struct pcb * > > kdb_thr_ctx(struct thread *thr) > > -#ifdef KDB_STOP_NMI > > { > > - u_int cpuid; > > - struct pcpu *pc; > > +#ifdef HAVE_STOPPEDPCBS > > + struct pcpu *pc; > > + u_int cpuid; > > +#endif > > > > - if (thr == curthread) > > - return &kdb_pcb; > > + if (thr == curthread) > > + return &kdb_pcb; > > > > - SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { > > - cpuid = pc->pc_cpuid; > > - if (pc->pc_curthread == thr && (atomic_load_acq_int(&stopped_cpus) & > > (1 << cpuid))) - return &stoppcbs[cpuid]; > > - } > > - > > - return thr->td_pcb; > > -} > > -#else > > -{ > > - return ((thr == curthread) ? &kdb_pcb : thr->td_pcb); > > +#ifdef HAVE_STOPPEDPCBS > > + SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { > > + cpuid = pc->pc_cpuid; > > + if (pc->pc_curthread == thr && (stopped_cpus & (1 << cpuid))) > > + return &stoppcbs[cpuid]; > > + } > > +#endif > > + return thr->td_pcb; > > } > > -#endif /* KDB_STOP_NMI */ > > > > struct thread * > > kdb_thr_first(void) > > @@ -452,14 +431,7 @@ > > > > #ifdef SMP > > if ((did_stop_cpus = kdb_stop_cpus) != 0) > > - { > > -#ifdef KDB_STOP_NMI > > - if(kdb_stop_cpus_with_nmi) > > - stop_cpus_nmi(PCPU_GET(other_cpus)); > > - else > > -#endif /* KDB_STOP_NMI */ > > stop_cpus(PCPU_GET(other_cpus)); > > - } > > #endif > > > > kdb_frame = tf; > > > > ==== //depot/projects/smpng/sys/kern/subr_smp.c#42 (text+ko) ==== > > > > @@ -35,8 +35,6 @@ > > #include > > __FBSDID("$FreeBSD: src/sys/kern/subr_smp.c,v 1.196 2005/06/30 03:38:10 > > peter Exp $"); > > > > -#include "opt_kdb.h" > > - > > #include > > #include > > #include > > @@ -258,36 +256,6 @@ > > return 1; > > } > > > > -#ifdef KDB_STOP_NMI > > -int > > -stop_cpus_nmi(cpumask_t map) > > -{ > > - int i; > > - > > - if (!smp_started) > > - return 0; > > - > > - CTR1(KTR_SMP, "stop_cpus(%x)", map); > > - > > - /* send the stop IPI to all CPUs in map */ > > - ipi_nmi_selected(map); > > - > > - i = 0; > > - while ((atomic_load_acq_int(&stopped_cpus) & map) != map) { > > - /* spin */ > > - i++; > > -#ifdef DIAGNOSTIC > > - if (i == 100000) { > > - printf("timeout stopping cpus\n"); > > - break; > > - } > > -#endif > > - } > > - > > - return 1; > > -} > > -#endif /* KDB_STOP_NMI */ > > - > > /* > > * Called by a CPU to restart stopped CPUs. > > * > > > > ==== //depot/projects/smpng/sys/notes#61 (text+ko) ==== > > > > @@ -67,6 +67,12 @@ > > do this. That really needs to only be done in spinlock_*() (and maybe > > some frobbing in intr_execute_handlers()) and needs to happen after the > > spinlock_*() changes happen. > > +- Change KDB_STOP_NMI to STOP_NMI and make it non-kdb specific > > + - i386 > > + + compiles > > + - amd64 > > + - use stoppcbs[] on i386 and amd64 always > > + - untested > > - KTR change: include __func__ along with __FILE__ and __LINE__ and > > display it after cpu number by default > > - Cheapen global stats counters via PCPU_LAZY_INC > > > > ==== //depot/projects/smpng/sys/pc98/conf/NOTES#45 (text+ko) ==== > > > > @@ -39,7 +39,7 @@ > > > > # Debugging options. > > # > > -options KDB_STOP_NMI # Stop CPUS using NMI instead of IPI > > +options STOP_NMI # Stop CPUS using NMI instead of IPI > > > > > > > > > > ==== //depot/projects/smpng/sys/sys/smp.h#15 (text+ko) ==== > > > > @@ -102,9 +102,6 @@ > > void smp_rendezvous_action(void); > > extern struct mtx smp_ipi_mtx; > > > > -#ifdef KDB_STOP_NMI > > -int stop_cpus_nmi(cpumask_t); > > -#endif > > #endif /* SMP */ > > void smp_rendezvous(void (*)(void *), > > void (*)(void *), -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-p4-projects@FreeBSD.ORG Wed Oct 19 17:04:04 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 B0B4716A421; Wed, 19 Oct 2005 17:04:03 +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 69C8E16A41F for ; Wed, 19 Oct 2005 17:04:03 +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 036B343D49 for ; Wed, 19 Oct 2005 17:04:03 +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 j9JH42cB005396 for ; Wed, 19 Oct 2005 17:04:02 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9JH42Yq005393 for perforce@freebsd.org; Wed, 19 Oct 2005 17:04:02 GMT (envelope-from jhb@freebsd.org) Date: Wed, 19 Oct 2005 17:04:02 GMT Message-Id: <200510191704.j9JH42Yq005393@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 85561 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: Wed, 19 Oct 2005 17:04:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=85561 Change 85561 by jhb@jhb_slimer on 2005/10/19 17:03:43 refcount API is committed now. Affected files ... .. //depot/projects/smpng/sys/notes#62 edit Differences ... ==== //depot/projects/smpng/sys/notes#62 (text+ko) ==== @@ -88,6 +88,6 @@ - jhb_lock - rwlocks - jhb_needresched - scheduler fun - jhb_preemption - preemption -- jhb_proc - proc locking, ABI stuff, refcount API +- jhb_proc - proc locking, ABI stuff Space reserved for child branches: From owner-p4-projects@FreeBSD.ORG Wed Oct 19 19:30:06 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 4642616A421; Wed, 19 Oct 2005 19:30:06 +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 093F816A41F for ; Wed, 19 Oct 2005 19:30:06 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BE26843D68 for ; Wed, 19 Oct 2005 19:30:05 +0000 (GMT) (envelope-from millert@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 j9JJU5h2014632 for ; Wed, 19 Oct 2005 19:30:05 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9JJU5QS014629 for perforce@freebsd.org; Wed, 19 Oct 2005 19:30:05 GMT (envelope-from millert@freebsd.org) Date: Wed, 19 Oct 2005 19:30:05 GMT Message-Id: <200510191930.j9JJU5QS014629@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85571 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: Wed, 19 Oct 2005 19:30:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=85571 Change 85571 by millert@millert_ibook on 2005/10/19 19:29:17 sebsd_destroy_label() is only used by #if 0'd code so #if it away as well. The old (#if 0'd) policy should be completely removed at some point. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#8 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#8 (text+ko) ==== @@ -517,6 +517,7 @@ SLOT(label) = NULL; } +#if 0 static void sebsd_destroy_label(struct label *label) { @@ -524,6 +525,7 @@ free(SLOT(label), M_SEBSD); SLOT(label) = NULL; } +#endif static void sebsd_destroy_sysv_label(struct label *label) From owner-p4-projects@FreeBSD.ORG Wed Oct 19 19:37:18 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 6B4C616A421; Wed, 19 Oct 2005 19:37:17 +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 41ADE16A41F for ; Wed, 19 Oct 2005 19:37:17 +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 6F6A143D62 for ; Wed, 19 Oct 2005 19:37:16 +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 j9JJbGpr014987 for ; Wed, 19 Oct 2005 19:37:16 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9JJbEiK014983 for perforce@freebsd.org; Wed, 19 Oct 2005 19:37:14 GMT (envelope-from peter@freebsd.org) Date: Wed, 19 Oct 2005 19:37:14 GMT Message-Id: <200510191937.j9JJbEiK014983@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 85573 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: Wed, 19 Oct 2005 19:37:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=85573 Change 85573 by peter@peter_daintree on 2005/10/19 19:36:53 IFC @85567 Affected files ... .. //depot/projects/hammer/ObsoleteFiles.inc#9 integrate .. //depot/projects/hammer/bin/sh/histedit.c#5 integrate .. //depot/projects/hammer/contrib/cpio/lib/argp.h#2 integrate .. //depot/projects/hammer/etc/bluetooth/Makefile#2 integrate .. //depot/projects/hammer/etc/rc.d/Makefile#40 integrate .. //depot/projects/hammer/etc/rc.d/ipsec#9 integrate .. //depot/projects/hammer/etc/rc.d/mountcritremote#10 integrate .. //depot/projects/hammer/etc/rc.subr#26 integrate .. //depot/projects/hammer/games/fortune/datfiles/fortunes#52 integrate .. //depot/projects/hammer/include/signal.h#6 integrate .. //depot/projects/hammer/lib/libarchive/COPYING#2 integrate .. //depot/projects/hammer/lib/libarchive/Makefile#28 integrate .. //depot/projects/hammer/lib/libarchive/Makefile.am#3 integrate .. //depot/projects/hammer/lib/libarchive/archive.h.in#7 integrate .. //depot/projects/hammer/lib/libarchive/archive_entry.c#21 integrate .. //depot/projects/hammer/lib/libarchive/archive_entry.h#15 integrate .. //depot/projects/hammer/lib/libarchive/archive_platform.h#12 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_support_format_tar.c#24 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_support_format_zip.c#6 integrate .. //depot/projects/hammer/lib/libarchive/archive_write_set_format_pax.c#23 integrate .. //depot/projects/hammer/lib/libarchive/configure.ac.in#7 integrate .. //depot/projects/hammer/lib/libc/gen/sem.c#4 integrate .. //depot/projects/hammer/lib/libstand/cd9660.c#2 integrate .. //depot/projects/hammer/libexec/tcpd/Makefile#5 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#109 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/Makefile#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/early-adopter/Makefile#2 delete .. //depot/projects/hammer/release/doc/zh_CN.GB2312/early-adopter/article.sgml#2 delete .. //depot/projects/hammer/release/doc/zh_CN.GB2312/errata/article.sgml#3 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/amd64/proc-amd64.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/common/artheader.sgml#3 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#5 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/common/intro.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/hardware/i386/proc-i386.sgml#3 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/artheader.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/trouble.sgml#3 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/installation/common/upgrade.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/readme/article.sgml#2 integrate .. //depot/projects/hammer/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#6 integrate .. //depot/projects/hammer/sbin/Makefile#39 integrate .. //depot/projects/hammer/sbin/devd/devd.cc#15 integrate .. //depot/projects/hammer/sbin/fsdb/fsdb.c#6 integrate .. //depot/projects/hammer/sbin/mdmfs/mdmfs.c#15 integrate .. //depot/projects/hammer/sbin/reboot/boot_i386.8#15 integrate .. //depot/projects/hammer/sbin/setkey/Makefile#2 integrate .. //depot/projects/hammer/sbin/setkey/parse.y#2 integrate .. //depot/projects/hammer/share/examples/etc/make.conf#41 integrate .. //depot/projects/hammer/share/examples/ses/Makefile#2 integrate .. //depot/projects/hammer/share/man/man3/queue.3#6 integrate .. //depot/projects/hammer/share/man/man4/ata.4#20 integrate .. //depot/projects/hammer/share/man/man4/hptmv.4#4 integrate .. //depot/projects/hammer/share/man/man4/vlan.4#14 integrate .. //depot/projects/hammer/share/man/man5/make.conf.5#39 integrate .. //depot/projects/hammer/share/man/man9/device_get_softc.9#6 integrate .. //depot/projects/hammer/share/man/man9/microtime.9#5 integrate .. //depot/projects/hammer/share/termcap/termcap.src#13 integrate .. //depot/projects/hammer/sys/alpha/alpha/machdep.c#35 integrate .. //depot/projects/hammer/sys/alpha/alpha/promcons.c#15 integrate .. //depot/projects/hammer/sys/alpha/alpha/trap.c#19 integrate .. //depot/projects/hammer/sys/alpha/linux/linux_sysvec.c#12 integrate .. //depot/projects/hammer/sys/alpha/osf1/osf1_signal.c#18 integrate .. //depot/projects/hammer/sys/alpha/osf1/osf1_signal.h#2 integrate .. //depot/projects/hammer/sys/alpha/tlsb/zs_tlsb.c#14 integrate .. //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#35 integrate .. //depot/projects/hammer/sys/amd64/amd64/identcpu.c#44 integrate .. //depot/projects/hammer/sys/amd64/amd64/initcpu.c#15 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#142 integrate .. //depot/projects/hammer/sys/amd64/amd64/trap.c#77 integrate .. //depot/projects/hammer/sys/amd64/conf/NOTES#82 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#16 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_syscall.c#12 integrate .. //depot/projects/hammer/sys/amd64/include/md_var.h#35 integrate .. //depot/projects/hammer/sys/amd64/include/specialreg.h#17 integrate .. //depot/projects/hammer/sys/amd64/linux32/linux32_sysvec.c#8 integrate .. //depot/projects/hammer/sys/arm/arm/machdep.c#14 integrate .. //depot/projects/hammer/sys/arm/arm/trap.c#14 integrate .. //depot/projects/hammer/sys/arm/arm/undefined.c#7 integrate .. //depot/projects/hammer/sys/arm/include/atomic.h#12 integrate .. //depot/projects/hammer/sys/arm/xscale/i80321/i80321_timer.c#6 integrate .. //depot/projects/hammer/sys/boot/i386/boot2/boot2.c#17 integrate .. //depot/projects/hammer/sys/boot/i386/libi386/smbios.c#3 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#33 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#33 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#31 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#31 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#31 integrate .. //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#35 integrate .. //depot/projects/hammer/sys/compat/ia32/ia32_signal.h#11 integrate .. //depot/projects/hammer/sys/compat/linux/linux_misc.c#31 integrate .. //depot/projects/hammer/sys/compat/ndis/kern_ndis.c#36 integrate .. //depot/projects/hammer/sys/compat/ndis/ndis_var.h#23 integrate .. //depot/projects/hammer/sys/compat/ndis/ntoskrnl_var.h#21 integrate .. //depot/projects/hammer/sys/compat/ndis/subr_ndis.c#34 integrate .. //depot/projects/hammer/sys/compat/ndis/subr_ntoskrnl.c#34 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_misc.c#23 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_siginfo.h#3 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_signal.h#4 integrate .. //depot/projects/hammer/sys/conf/Makefile.arm#12 integrate .. //depot/projects/hammer/sys/conf/files#127 integrate .. //depot/projects/hammer/sys/conf/kmod.mk#51 integrate .. //depot/projects/hammer/sys/conf/options#87 integrate .. //depot/projects/hammer/sys/contrib/dev/oltr/if_oltr_pci.c#3 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pflog.c#14 integrate .. //depot/projects/hammer/sys/contrib/pf/net/if_pfsync.c#19 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#33 integrate .. //depot/projects/hammer/sys/dev/aac/aacreg.h#11 integrate .. //depot/projects/hammer/sys/dev/ata/ata-chipset.c#62 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.c#33 integrate .. //depot/projects/hammer/sys/dev/ata/ata-pci.h#35 integrate .. //depot/projects/hammer/sys/dev/ata/ata-raid.c#28 integrate .. //depot/projects/hammer/sys/dev/cx/if_cx.c#29 integrate .. //depot/projects/hammer/sys/dev/cy/cy.c#13 integrate .. //depot/projects/hammer/sys/dev/dc/dcphy.c#2 integrate .. //depot/projects/hammer/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/hammer/sys/dev/dc/pnphy.c#2 integrate .. //depot/projects/hammer/sys/dev/dcons/dcons_os.c#6 integrate .. //depot/projects/hammer/sys/dev/digi/digi.c#22 integrate .. //depot/projects/hammer/sys/dev/ed/if_ed_isa.c#12 integrate .. //depot/projects/hammer/sys/dev/ed/if_ed_pci.c#14 integrate .. //depot/projects/hammer/sys/dev/ed/if_ed_rtl80x9.c#2 integrate .. //depot/projects/hammer/sys/dev/em/if_em.c#48 integrate .. //depot/projects/hammer/sys/dev/exca/exca.c#12 integrate .. //depot/projects/hammer/sys/dev/if_ndis/if_ndis.c#42 integrate .. //depot/projects/hammer/sys/dev/if_ndis/if_ndisvar.h#18 integrate .. //depot/projects/hammer/sys/dev/kbdmux/kbdmux.c#2 integrate .. //depot/projects/hammer/sys/dev/mii/brgphy.c#19 integrate .. //depot/projects/hammer/sys/dev/mii/dcphy.c#12 delete .. //depot/projects/hammer/sys/dev/mii/pnphy.c#10 delete .. //depot/projects/hammer/sys/dev/nge/if_nge.c#34 integrate .. //depot/projects/hammer/sys/dev/nge/if_ngereg.h#8 integrate .. //depot/projects/hammer/sys/dev/ofw/ofw_console.c#19 integrate .. //depot/projects/hammer/sys/dev/pccard/pccarddevs#43 integrate .. //depot/projects/hammer/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/hammer/sys/dev/pccbb/pccbb_isa.c#5 integrate .. //depot/projects/hammer/sys/dev/rc/rc.c#16 integrate .. //depot/projects/hammer/sys/dev/re/if_re.c#34 integrate .. //depot/projects/hammer/sys/dev/rp/rp.c#18 integrate .. //depot/projects/hammer/sys/dev/sab/sab.c#24 integrate .. //depot/projects/hammer/sys/dev/si/si.c#18 integrate .. //depot/projects/hammer/sys/dev/sio/sio.c#48 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/feeder_rate.c#6 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/vchan.c#9 integrate .. //depot/projects/hammer/sys/dev/sx/cd1865.h#3 delete .. //depot/projects/hammer/sys/dev/sx/sx.c#12 delete .. //depot/projects/hammer/sys/dev/sx/sx.h#6 delete .. //depot/projects/hammer/sys/dev/sx/sx_pci.c#6 delete .. //depot/projects/hammer/sys/dev/sx/sx_util.c#3 delete .. //depot/projects/hammer/sys/dev/sx/sx_util.h#3 delete .. //depot/projects/hammer/sys/dev/sx/sxvar.h#3 delete .. //depot/projects/hammer/sys/dev/uart/uart_tty.c#17 integrate .. //depot/projects/hammer/sys/dev/usb/ubser.c#12 integrate .. //depot/projects/hammer/sys/dev/usb/ucom.c#22 integrate .. //depot/projects/hammer/sys/dev/usb/ucycom.c#3 integrate .. //depot/projects/hammer/sys/dev/wi/if_wi_pccard.c#29 integrate .. //depot/projects/hammer/sys/dev/zs/zs.c#18 integrate .. //depot/projects/hammer/sys/fs/devfs/devfs_vnops.c#40 integrate .. //depot/projects/hammer/sys/fs/nullfs/null_vfsops.c#17 integrate .. //depot/projects/hammer/sys/fs/nwfs/nwfs_vfsops.c#16 integrate .. //depot/projects/hammer/sys/fs/nwfs/nwfs_vnops.c#15 integrate .. //depot/projects/hammer/sys/fs/procfs/procfs_ctl.c#10 integrate .. //depot/projects/hammer/sys/fs/smbfs/smbfs_vfsops.c#19 integrate .. //depot/projects/hammer/sys/fs/udf/udf_vfsops.c#23 integrate .. //depot/projects/hammer/sys/fs/unionfs/union_vnops.c#28 integrate .. //depot/projects/hammer/sys/gnu/fs/ext2fs/ext2_lookup.c#3 integrate .. //depot/projects/hammer/sys/i386/conf/NOTES#76 integrate .. //depot/projects/hammer/sys/i386/i386/identcpu.c#27 integrate .. //depot/projects/hammer/sys/i386/i386/initcpu.c#15 integrate .. //depot/projects/hammer/sys/i386/i386/machdep.c#64 integrate .. //depot/projects/hammer/sys/i386/i386/trap.c#41 integrate .. //depot/projects/hammer/sys/i386/i386/vm_machdep.c#48 integrate .. //depot/projects/hammer/sys/i386/include/md_var.h#17 integrate .. //depot/projects/hammer/sys/i386/include/specialreg.h#7 integrate .. //depot/projects/hammer/sys/i386/include/trap.h#3 integrate .. //depot/projects/hammer/sys/i386/linux/linux_sysvec.c#23 integrate .. //depot/projects/hammer/sys/i386/svr4/svr4_machdep.c#9 integrate .. //depot/projects/hammer/sys/ia64/ia32/ia32_signal.c#5 integrate .. //depot/projects/hammer/sys/ia64/ia32/ia32_trap.c#4 integrate .. //depot/projects/hammer/sys/ia64/ia64/machdep.c#53 integrate .. //depot/projects/hammer/sys/ia64/ia64/ssc.c#10 integrate .. //depot/projects/hammer/sys/ia64/ia64/trap.c#36 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_lookup.c#10 integrate .. //depot/projects/hammer/sys/isofs/cd9660/cd9660_vfsops.c#31 integrate .. //depot/projects/hammer/sys/isofs/cd9660/iso.h#8 integrate .. //depot/projects/hammer/sys/kern/init_sysent.c#48 integrate .. //depot/projects/hammer/sys/kern/kern_conf.c#37 integrate .. //depot/projects/hammer/sys/kern/kern_event.c#38 integrate .. //depot/projects/hammer/sys/kern/kern_exec.c#55 integrate .. //depot/projects/hammer/sys/kern/kern_exit.c#49 integrate .. //depot/projects/hammer/sys/kern/kern_kse.c#27 integrate .. //depot/projects/hammer/sys/kern/kern_mutex.c#33 integrate .. //depot/projects/hammer/sys/kern/kern_sig.c#60 integrate .. //depot/projects/hammer/sys/kern/kern_thr.c#29 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#80 integrate .. //depot/projects/hammer/sys/kern/kern_time.c#18 integrate .. //depot/projects/hammer/sys/kern/link_elf.c#22 integrate .. //depot/projects/hammer/sys/kern/subr_param.c#15 integrate .. //depot/projects/hammer/sys/kern/subr_trap.c#32 integrate .. //depot/projects/hammer/sys/kern/syscalls.c#46 integrate .. //depot/projects/hammer/sys/kern/syscalls.master#46 integrate .. //depot/projects/hammer/sys/kern/tty.c#47 integrate .. //depot/projects/hammer/sys/kern/tty_compat.c#7 integrate .. //depot/projects/hammer/sys/kern/uipc_sem.c#14 integrate .. //depot/projects/hammer/sys/kern/uipc_syscalls.c#51 integrate .. //depot/projects/hammer/sys/kern/vfs_aio.c#34 integrate .. //depot/projects/hammer/sys/kern/vfs_subr.c#94 integrate .. //depot/projects/hammer/sys/modules/3dfx/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/Makefile#88 integrate .. //depot/projects/hammer/sys/modules/acpi/acpi/Makefile#9 integrate .. //depot/projects/hammer/sys/modules/aha/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/ahb/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/an/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/ar/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/arcnet/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/arl/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/awi/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/bktr/bktr/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/cam/Makefile#10 integrate .. //depot/projects/hammer/sys/modules/coda5/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/cp/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/ctau/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/cx/Makefile#5 integrate .. //depot/projects/hammer/sys/modules/dc/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/dcons/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/digi/digi/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/en/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/fatm/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/hatm/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/hifn/Makefile#5 integrate .. //depot/projects/hammer/sys/modules/if_bridge/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/if_disc/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/if_ef/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/if_faith/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/if_gif/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/if_gre/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/if_ppp/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/if_sl/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/if_stf/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/if_tap/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/if_tun/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/if_vlan/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/ip_mroute_mod/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/ipfilter/Makefile#8 integrate .. //depot/projects/hammer/sys/modules/kbdmux/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/linux/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/mii/Makefile#7 integrate .. //depot/projects/hammer/sys/modules/netgraph/gif/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/netgraph/iface/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/netgraph/mppc/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/netgraph/sync_ar/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/netgraph/sync_sr/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/nfs4client/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/nfsclient/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/nfsserver/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/nmdm/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/nwfs/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/osf1/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/patm/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/pf/Makefile#8 integrate .. //depot/projects/hammer/sys/modules/rc/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/rp/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/safe/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/sio/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/smbfs/Makefile#6 integrate .. //depot/projects/hammer/sys/modules/snc/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/sppp/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/sr/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/svr4/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/trm/Makefile#2 integrate .. //depot/projects/hammer/sys/modules/ubsec/Makefile#5 integrate .. //depot/projects/hammer/sys/modules/ukbd/Makefile#7 integrate .. //depot/projects/hammer/sys/modules/vkbd/Makefile#3 integrate .. //depot/projects/hammer/sys/modules/wi/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/wlan/Makefile#5 integrate .. //depot/projects/hammer/sys/net/bridgestp.c#6 integrate .. //depot/projects/hammer/sys/net/if_bridge.c#14 integrate .. //depot/projects/hammer/sys/net/if_bridgevar.h#3 integrate .. //depot/projects/hammer/sys/net/if_clone.c#7 integrate .. //depot/projects/hammer/sys/net/if_disc.c#17 integrate .. //depot/projects/hammer/sys/net/if_ethersubr.c#49 integrate .. //depot/projects/hammer/sys/net/if_faith.c#21 integrate .. //depot/projects/hammer/sys/net/if_fwsubr.c#12 integrate .. //depot/projects/hammer/sys/net/if_gif.c#22 integrate .. //depot/projects/hammer/sys/net/if_gre.c#26 integrate .. //depot/projects/hammer/sys/net/if_ppp.c#23 integrate .. //depot/projects/hammer/sys/net/if_sl.c#24 integrate .. //depot/projects/hammer/sys/net/if_stf.c#22 integrate .. //depot/projects/hammer/sys/net/ppp_tty.c#15 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#12 integrate .. //depot/projects/hammer/sys/netgraph/ng_base.c#38 integrate .. //depot/projects/hammer/sys/netgraph/ng_ether.c#23 integrate .. //depot/projects/hammer/sys/netgraph/ng_mppc.c#7 integrate .. //depot/projects/hammer/sys/netgraph/ng_tty.c#13 integrate .. //depot/projects/hammer/sys/netinet/ip_carp.c#13 integrate .. //depot/projects/hammer/sys/netinet/raw_ip.c#38 integrate .. //depot/projects/hammer/sys/netinet/tcp_input.c#56 integrate .. //depot/projects/hammer/sys/netinet/tcp_subr.c#52 integrate .. //depot/projects/hammer/sys/netinet/udp_usrreq.c#35 integrate .. //depot/projects/hammer/sys/netinet6/esp_aesctr.c#3 integrate .. //depot/projects/hammer/sys/netinet6/icmp6.c#23 integrate .. //depot/projects/hammer/sys/netinet6/in6.c#19 integrate .. //depot/projects/hammer/sys/netinet6/in6.h#12 integrate .. //depot/projects/hammer/sys/netinet6/in6_ifattach.c#14 integrate .. //depot/projects/hammer/sys/netinet6/in6_ifattach.h#4 integrate .. //depot/projects/hammer/sys/netinet6/in6_src.c#16 integrate .. //depot/projects/hammer/sys/netinet6/in6_var.h#13 integrate .. //depot/projects/hammer/sys/netinet6/ip6_input.c#24 integrate .. //depot/projects/hammer/sys/netinet6/ip6_mroute.c#15 integrate .. //depot/projects/hammer/sys/netinet6/nd6.c#22 integrate .. //depot/projects/hammer/sys/netinet6/nd6.h#7 integrate .. //depot/projects/hammer/sys/netinet6/nd6_nbr.c#17 integrate .. //depot/projects/hammer/sys/netinet6/nd6_rtr.c#12 integrate .. //depot/projects/hammer/sys/netinet6/raw_ip6.c#22 integrate .. //depot/projects/hammer/sys/pc98/cbus/sio.c#4 integrate .. //depot/projects/hammer/sys/pc98/conf/NOTES#51 integrate .. //depot/projects/hammer/sys/pc98/pc98/machdep.c#6 integrate .. //depot/projects/hammer/sys/pci/if_dc.c#52 delete .. //depot/projects/hammer/sys/pci/if_dcreg.h#19 delete .. //depot/projects/hammer/sys/pci/if_pcn.c#33 integrate .. //depot/projects/hammer/sys/pci/if_rl.c#50 integrate .. //depot/projects/hammer/sys/pci/if_rlreg.h#20 integrate .. //depot/projects/hammer/sys/pci/if_sf.c#37 integrate .. //depot/projects/hammer/sys/pci/if_sis.c#43 integrate .. //depot/projects/hammer/sys/pci/if_sk.c#43 integrate .. //depot/projects/hammer/sys/pci/if_skreg.h#13 integrate .. //depot/projects/hammer/sys/pci/if_ste.c#41 integrate .. //depot/projects/hammer/sys/pci/if_ti.c#36 integrate .. //depot/projects/hammer/sys/pci/if_tl.c#26 integrate .. //depot/projects/hammer/sys/pci/if_vr.c#37 integrate .. //depot/projects/hammer/sys/pci/if_wb.c#31 integrate .. //depot/projects/hammer/sys/pci/if_xl.c#60 integrate .. //depot/projects/hammer/sys/posix4/_semaphore.h#4 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/machdep.c#38 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/trap.c#18 integrate .. //depot/projects/hammer/sys/sparc64/include/param.h#8 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/machdep.c#42 integrate .. //depot/projects/hammer/sys/sparc64/sparc64/trap.c#18 integrate .. //depot/projects/hammer/sys/sys/event.h#12 integrate .. //depot/projects/hammer/sys/sys/proc.h#87 integrate .. //depot/projects/hammer/sys/sys/signal.h#10 integrate .. //depot/projects/hammer/sys/sys/signalvar.h#14 integrate .. //depot/projects/hammer/sys/sys/syscall.h#45 integrate .. //depot/projects/hammer/sys/sys/syscall.mk#45 integrate .. //depot/projects/hammer/sys/sys/syscallsubr.h#23 integrate .. //depot/projects/hammer/sys/sys/sysent.h#7 integrate .. //depot/projects/hammer/sys/sys/sysproto.h#45 integrate .. //depot/projects/hammer/sys/sys/tty.h#20 integrate .. //depot/projects/hammer/sys/sys/vnode.h#60 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_extattr.c#19 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_lookup.c#14 integrate .. //depot/projects/hammer/sys/ufs/ufs/ufs_vnops.c#40 integrate .. //depot/projects/hammer/sys/vm/vm_mmap.c#35 integrate .. //depot/projects/hammer/tools/regression/aio/kqueue/lio/Makefile#2 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/Makefile#2 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.status.2#2 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.status.3#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.status.4#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.status.5#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stderr.2#2 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stderr.3#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stderr.4#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stderr.5#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stdout.2#2 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stdout.3#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stdout.4#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/expected.stdout.5#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/enl/test.t#2 integrate .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/Makefile#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/expected.status.1#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/expected.status.2#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/expected.stderr.1#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/expected.stderr.2#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/expected.stdout.1#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/expected.stdout.2#1 branch .. //depot/projects/hammer/tools/regression/usr.bin/make/syntax/semi/test.t#1 branch .. //depot/projects/hammer/usr.bin/compile_et/Makefile#2 integrate .. //depot/projects/hammer/usr.bin/make/make.1#27 integrate .. //depot/projects/hammer/usr.bin/make/parse.c#33 integrate .. //depot/projects/hammer/usr.bin/tftp/main.c#5 integrate .. //depot/projects/hammer/usr.bin/truss/syscalls.c#19 integrate .. //depot/projects/hammer/usr.bin/vmstat/vmstat.c#22 integrate .. //depot/projects/hammer/usr.bin/w/w.c#6 integrate .. //depot/projects/hammer/usr.sbin/Makefile#70 integrate .. //depot/projects/hammer/usr.sbin/cdcontrol/cdcontrol.c#10 integrate .. //depot/projects/hammer/usr.sbin/ipfwpcap/Makefile#1 branch .. //depot/projects/hammer/usr.sbin/ipfwpcap/ipfwpcap.c#1 branch .. //depot/projects/hammer/usr.sbin/lpr/lpc/lpc.c#6 integrate .. //depot/projects/hammer/usr.sbin/ndp/ndp.8#9 integrate .. //depot/projects/hammer/usr.sbin/ndp/ndp.c#8 integrate .. //depot/projects/hammer/usr.sbin/pccard/Makefile.inc#3 integrate .. //depot/projects/hammer/usr.sbin/pmcstat/pmcstat.8#6 integrate .. //depot/projects/hammer/usr.sbin/pmcstat/pmcstat_log.c#4 integrate .. //depot/projects/hammer/usr.sbin/powerd/Makefile#3 integrate .. //depot/projects/hammer/usr.sbin/powerd/powerd.c#7 integrate .. //depot/projects/hammer/usr.sbin/rtadvd/config.c#8 integrate .. //depot/projects/hammer/usr.sbin/rtadvd/rtadvd.c#5 integrate .. //depot/projects/hammer/usr.sbin/setkey/Makefile#3 delete .. //depot/projects/hammer/usr.sbin/setkey/parse.y#6 delete .. //depot/projects/hammer/usr.sbin/setkey/sample.cf#4 delete .. //depot/projects/hammer/usr.sbin/setkey/scriptdump.pl#2 delete .. //depot/projects/hammer/usr.sbin/setkey/setkey.8#11 delete .. //depot/projects/hammer/usr.sbin/setkey/setkey.c#5 delete .. //depot/projects/hammer/usr.sbin/setkey/test-pfkey.c#2 delete .. //depot/projects/hammer/usr.sbin/setkey/test-policy.c#2 delete .. //depot/projects/hammer/usr.sbin/setkey/token.l#6 delete .. //depot/projects/hammer/usr.sbin/setkey/vchar.h#2 delete .. //depot/projects/hammer/usr.sbin/syslogd/syslogd.c#25 integrate .. //depot/projects/hammer/usr.sbin/wpa/ndis_events/ndis_events.c#2 integrate Differences ... ==== //depot/projects/hammer/ObsoleteFiles.inc#9 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.18 2005/10/08 22:51:47 thompsa Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.20 2005/10/16 14:40:23 netchild 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,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20051012: setkey(8) moved to /sbin/ +OLD_FILES+=usr/sbin/setkey # 20050927: bridge(4) replaced by if_bridge(4) OLD_FILES+=usr/include/net/bridge.h # 20050831: not implemented @@ -637,6 +639,1868 @@ #OLD_FILES+=usr/lib/aout/gcrt0.o #OLD_FILES+=usr/lib/aout/scrt0.o #OLD_FILES+=usr/lib/aout/sgcrt0.o +OLD_FILES+=usr/bin/sperl5 +OLD_FILES+=usr/bin/perl5.6.0 +OLD_FILES+=usr/bin/sperl5.6.0 +OLD_FILES+=usr/bin/perlbc +OLD_FILES+=usr/bin/perl5.00503 +OLD_FILES+=usr/bin/sperl5.00503 +OLD_FILES+=usr/bin/perlbug +OLD_FILES+=usr/bin/perlcc +OLD_FILES+=usr/bin/perldoc +OLD_FILES+=usr/bin/suidperl +OLD_FILES+=usr/libdata/perl/5.00503/CGI/Apache.pm +OLD_FILES+=usr/libdata/perl/5.00503/CGI/Carp.pm +OLD_FILES+=usr/libdata/perl/5.00503/CGI/Cookie.pm +OLD_FILES+=usr/libdata/perl/5.00503/CGI/Fast.pm +OLD_FILES+=usr/libdata/perl/5.00503/CGI/Push.pm +OLD_FILES+=usr/libdata/perl/5.00503/CGI/Switch.pm +OLD_FILES+=usr/libdata/perl/5.00503/CPAN/FirstTime.pm +OLD_FILES+=usr/libdata/perl/5.00503/CPAN/Nox.pm +OLD_FILES+=usr/libdata/perl/5.00503/Class/Struct.pm +OLD_FILES+=usr/libdata/perl/5.00503/Devel/SelfStubber.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Command.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Embed.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Install.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Installed.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Liblist.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_OS2.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_Unix.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_VMS.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_Win32.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MakeMaker.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Manifest.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Mkbootstrap.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Mksymlists.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Packlist.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/inst +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/testlib.pm +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/typemap +OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/xsubpp +OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Mac.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/OS2.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Unix.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/VMS.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Win32.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Basename.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/CheckTree.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Compare.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Copy.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/DosGlob.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Find.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Path.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/Spec.pm +OLD_FILES+=usr/libdata/perl/5.00503/File/stat.pm +OLD_FILES+=usr/libdata/perl/5.00503/Getopt/Long.pm +OLD_FILES+=usr/libdata/perl/5.00503/Getopt/Std.pm +OLD_FILES+=usr/libdata/perl/5.00503/I18N/Collate.pm +OLD_FILES+=usr/libdata/perl/5.00503/IPC/Open2.pm +OLD_FILES+=usr/libdata/perl/5.00503/IPC/Open3.pm +OLD_FILES+=usr/libdata/perl/5.00503/Math/BigFloat.pm +OLD_FILES+=usr/libdata/perl/5.00503/Math/BigInt.pm +OLD_FILES+=usr/libdata/perl/5.00503/Math/Complex.pm +OLD_FILES+=usr/libdata/perl/5.00503/Math/Trig.pm +OLD_FILES+=usr/libdata/perl/5.00503/Net/Ping.pm +OLD_FILES+=usr/libdata/perl/5.00503/Net/hostent.pm +OLD_FILES+=usr/libdata/perl/5.00503/Net/netent.pm +OLD_FILES+=usr/libdata/perl/5.00503/Net/protoent.pm +OLD_FILES+=usr/libdata/perl/5.00503/Net/servent.pm +OLD_FILES+=usr/libdata/perl/5.00503/Pod/Functions.pm +OLD_FILES+=usr/libdata/perl/5.00503/Pod/Html.pm +OLD_FILES+=usr/libdata/perl/5.00503/Pod/Text.pm +OLD_FILES+=usr/libdata/perl/5.00503/Search/Dict.pm +OLD_FILES+=usr/libdata/perl/5.00503/Sys/Hostname.pm +OLD_FILES+=usr/libdata/perl/5.00503/Sys/Syslog.pm +OLD_FILES+=usr/libdata/perl/5.00503/Term/Cap.pm +OLD_FILES+=usr/libdata/perl/5.00503/Term/Complete.pm +OLD_FILES+=usr/libdata/perl/5.00503/Term/ReadLine.pm +OLD_FILES+=usr/libdata/perl/5.00503/Test/Harness.pm +OLD_FILES+=usr/libdata/perl/5.00503/Text/Abbrev.pm +OLD_FILES+=usr/libdata/perl/5.00503/Text/ParseWords.pm +OLD_FILES+=usr/libdata/perl/5.00503/Text/Soundex.pm +OLD_FILES+=usr/libdata/perl/5.00503/Text/Tabs.pm +OLD_FILES+=usr/libdata/perl/5.00503/Text/Wrap.pm +OLD_FILES+=usr/libdata/perl/5.00503/Tie/Array.pm +OLD_FILES+=usr/libdata/perl/5.00503/Tie/Handle.pm +OLD_FILES+=usr/libdata/perl/5.00503/Tie/Hash.pm +OLD_FILES+=usr/libdata/perl/5.00503/Tie/RefHash.pm +OLD_FILES+=usr/libdata/perl/5.00503/Tie/Scalar.pm +OLD_FILES+=usr/libdata/perl/5.00503/Tie/SubstrHash.pm +OLD_FILES+=usr/libdata/perl/5.00503/Time/Local.pm +OLD_FILES+=usr/libdata/perl/5.00503/Time/gmtime.pm +OLD_FILES+=usr/libdata/perl/5.00503/Time/localtime.pm +OLD_FILES+=usr/libdata/perl/5.00503/Time/tm.pm +OLD_FILES+=usr/libdata/perl/5.00503/User/grent.pm +OLD_FILES+=usr/libdata/perl/5.00503/User/pwent.pm +OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/GetOptions.al +OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/FindOption.al +OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/Configure.al +OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/config.al +OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/Croak.al +OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/autosplit.ix +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Deparse.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/CC.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Debug.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Showlex.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/makeliblinks +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Bblock.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/cc_harness +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Bytecode.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Stackobj.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Xref.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Lint.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Asmdata.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Assembler.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Disassembler.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/disassemble +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/assemble +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Terse.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B/C.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/EXTERN.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/INTERN.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/XSUB.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/XSlock.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/av.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/bytecode.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/byterun.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cc_runtime.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/config.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cop.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cv.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/dosish.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/embed.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/embedvar.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/fakethr.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/form.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/gv.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/handy.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/hv.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/intrpvar.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/iperlsys.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/keywords.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/mg.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/nostdio.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/objXSUB.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/objpp.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/op.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/opcode.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/patchlevel.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perl.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlio.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlsdio.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlsfio.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlvars.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perly.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/pp.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/pp_proto.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/proto.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regcomp.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regexp.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regnodes.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/scope.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/sv.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/thrdvar.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/thread.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/unixish.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/util.h +OLD_FILES+=usr/libdata/perl/5.00503/mach/Data/Dumper.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/File.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Select.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Socket.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Handle.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Seekable.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Pipe.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/SysV.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/Msg.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/Semaphore.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/B.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/B.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/autosplit.ix +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/DB_File.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/DB_File.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/Dumper.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/Dumper.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/.exists +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_findfile.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_expandspec.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_find_symbol_anywhere.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/autosplit.ix +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/DynaLoader.a +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/extralibs.ld +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/Fcntl.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/Fcntl.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/IO.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/IO.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/SysV.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/SysV.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/NDBM_File.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/NDBM_File.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/Opcode.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/Opcode.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/assert.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/tolower.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/toupper.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/closedir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/opendir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/readdir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rewinddir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/errno.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/creat.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fcntl.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgrgid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgrnam.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atan2.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/cos.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/exp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fabs.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/log.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/pow.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sin.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sqrt.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpwnam.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpwuid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/longjmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setjmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/kill.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/feof.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/siglongjmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sigsetjmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/raise.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/offsetof.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/clearerr.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fclose.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fdopen.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgetc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgets.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fileno.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fopen.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fprintf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fputc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fputs.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fread.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/freopen.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fscanf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fseek.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ferror.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fflush.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgetpos.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fsetpos.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ftell.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fwrite.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getchar.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/gets.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/perror.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/printf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/putc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/putchar.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/puts.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/remove.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rename.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rewind.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/scanf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sprintf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sscanf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/tmpfile.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ungetc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vfprintf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vprintf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vsprintf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/abs.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atexit.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atof.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atoi.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atol.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/bsearch.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/calloc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/div.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/exit.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/free.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getenv.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/labs.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ldiv.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/malloc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/qsort.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rand.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/realloc.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/srand.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/system.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memchr.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memcmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memcpy.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memmove.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memset.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcat.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strchr.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcpy.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcspn.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strerror.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strlen.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncat.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncmp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncpy.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strpbrk.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strrchr.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strspn.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strstr.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strtok.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chmod.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fstat.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/mkdir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/stat.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/umask.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/wait.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/waitpid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/gmtime.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/localtime.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/time.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/alarm.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chdir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chown.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execl.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execle.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execlp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execv.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execve.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execvp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fork.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getcwd.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getegid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/geteuid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgroups.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getlogin.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpgrp.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getppid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getuid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/isatty.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/link.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rmdir.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setbuf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setgid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setuid.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setvbuf.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sleep.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/unlink.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/utime.al +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/autosplit.ix +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/POSIX.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/POSIX.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/SDBM_File.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/SDBM_File.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/Socket.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/Socket.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/attrs.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/attrs.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/re.so +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/re.bs +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/sdbm/extralibs.ld +OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Errno/.packlist +OLD_FILES+=usr/libdata/perl/5.00503/mach/Config.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/B.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/O.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/perllocal.pod +OLD_FILES+=usr/libdata/perl/5.00503/mach/DB_File.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/Errno.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/Fcntl.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/IO.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/NDBM_File.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/Safe.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/Opcode.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/ops.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/POSIX.pod +OLD_FILES+=usr/libdata/perl/5.00503/mach/POSIX.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/SDBM_File.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/Socket.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/attrs.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/re.pm +OLD_FILES+=usr/libdata/perl/5.00503/mach/_h2ph_pre.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/a.out.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_ccb.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_debug.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_extend.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_periph.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_queue.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_sim.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt_periph.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt_sim.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/aio.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/alias.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ar.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/assert.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/bitstring.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/calendar.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/camlib.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/com_err.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/com_right.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ctype.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/curses.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/db.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/des.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/devstat.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/dialog.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/dirent.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/disktab.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/dlfcn.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/elf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/err.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/errno.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/eti.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/fcntl.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/fetch.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/float.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/floatingpoint.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/fnmatch.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/form.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/fstab.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ftpio.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/fts.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/glob.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/gmp.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/gnuregex.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/grp.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/histedit.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ieeefp.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ifaddrs.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/inttypes.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/iso646.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/kvm.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/libatm.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/libdisk.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/libgen.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/libusb.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/libutil.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/limits.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/link.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/linker_set.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/locale.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/login_cap.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/malloc.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/FlexLexer.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/PlotFile.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/SFile.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/_G_config.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/algo.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/algobase.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/alloc.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/builtinbuf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/bvector.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/complex.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/defalloc.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/deque.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/editbuf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/floatio.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/fstream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/function.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hash_map.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hash_set.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hashtable.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/heap.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/indstream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iolibio.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iomanip.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/list.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostdio.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostreamP.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/istream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iterator.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/libio.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/libioP.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/map.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/multimap.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/multiset.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/new.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/ostream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pair.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/parsestream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pfstream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/procbuf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pthread_alloc.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/rope.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/ropeimpl.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/set.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/slist.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stack.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stdiostream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_algo.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/tree.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_algobase.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_alloc.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_bvector.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_config.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_construct.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_deque.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_function.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_fun.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_map.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_set.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hashtable.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_heap.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_iterator.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_list.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_map.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_multimap.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_multiset.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_numeric.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_pair.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_queue.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_raw_storage_iter.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_relops.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_rope.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_set.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_slist.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_stack.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_tempbuf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_tree.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_uninitialized.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_vector.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/streambuf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/strfile.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/strstream.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/tempbuf.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/type_traits.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/vector.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/math.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/md2.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/md4.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/md5.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/memory.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/menu.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/mp.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/mpool.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/mqueue.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ncurses.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/ndbm.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/netdb.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/nl_types.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/nlist.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/objformat.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/opie.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/osreldate.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/panel.ph +OLD_FILES+=usr/libdata/perl/5.00503/mach/paths.ph >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Oct 19 20:02: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 1FECD16A422; Wed, 19 Oct 2005 20:02: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 E9C3B16A41F for ; Wed, 19 Oct 2005 20:02:48 +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 8CE5443D64 for ; Wed, 19 Oct 2005 20:02:48 +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 j9JK2m8K015909 for ; Wed, 19 Oct 2005 20:02:48 GMT (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9JK2mlE015906 for perforce@freebsd.org; Wed, 19 Oct 2005 20:02:48 GMT (envelope-from peter@freebsd.org) Date: Wed, 19 Oct 2005 20:02:48 GMT Message-Id: <200510192002.j9JK2mlE015906@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 85575 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: Wed, 19 Oct 2005 20:02:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=85575 Change 85575 by peter@peter_melody on 2005/10/19 20:02:07 IFC @85567 to pick up missing files Affected files ... .. //depot/projects/hammer/share/man/man4/lmc.4#3 branch .. //depot/projects/hammer/sys/dev/lmc/if_lmc.c#5 branch Differences ... From owner-p4-projects@FreeBSD.ORG Thu Oct 20 00:12:53 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 5DD8416A421; Thu, 20 Oct 2005 00:12:52 +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 107BD16A41F for ; Thu, 20 Oct 2005 00:12:52 +0000 (GMT) (envelope-from wsalamon@computer.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B24BE43D62 for ; Thu, 20 Oct 2005 00:12:51 +0000 (GMT) (envelope-from wsalamon@computer.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9K0CpdF032985 for ; Thu, 20 Oct 2005 00:12:51 GMT (envelope-from wsalamon@computer.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9K0CpU4032982 for perforce@freebsd.org; Thu, 20 Oct 2005 00:12:51 GMT (envelope-from wsalamon@computer.org) Date: Thu, 20 Oct 2005 00:12:51 GMT Message-Id: <200510200012.j9K0CpU4032982@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to wsalamon@computer.org using -f From: Wayne Salamon To: Perforce Change Reviews Cc: Subject: PERFORCE change 85581 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: Thu, 20 Oct 2005 00:12:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=85581 Change 85581 by wsalamon@gretsch on 2005/10/20 00:12:34 Remove the adding of a path when auditing a vnode. For system calls that use a path, that path is audited, along with the vnode, if found. For calls that use a file descriptor, only the vnode info is audited if appropriate (non-file ops have other auditing). The reason this path auditing was removed is that there is no simple method to associate a vnode to a path; what is in the name cache may not have any relation to the process activity that is being audited, leading to confusion. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_acct.c#6 edit .. //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#6 edit .. //depot/projects/trustedbsd/audit3/sys/kern/vfs_lookup.c#8 edit .. //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#18 edit .. //depot/projects/trustedbsd/audit3/sys/kern/vfs_vnops.c#7 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#5 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#7 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#10 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#48 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#25 edit .. //depot/projects/trustedbsd/audit3/sys/sys/namei.h#4 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_acct.c#6 (text+ko) ==== @@ -143,7 +143,7 @@ * appending and make sure it's a 'normal'. */ if (uap->path != NULL) { - NDINIT(&nd, LOOKUP, NOFOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, NOFOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); flags = FWRITE | O_APPEND; error = vn_open(&nd, &flags, 0, -1); ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_exec.c#6 (text+ko) ==== @@ -356,7 +356,7 @@ */ ndp = &nd; NDINIT(ndp, LOOKUP, ISOPEN | LOCKLEAF | FOLLOW | SAVENAME | MPSAFE | - AUDITVNPATH1, UIO_SYSSPACE, args->fname, td); + AUDITVNODE1, UIO_SYSSPACE, args->fname, td); interpret: error = namei(ndp); ==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_lookup.c#8 (text+ko) ==== @@ -148,9 +148,9 @@ MAXPATHLEN, (size_t *)&ndp->ni_pathlen); /* If we are auditing the kernel pathname, save the user pathname */ - if (cnp->cn_flags & AUDITVNPATH1) + if (cnp->cn_flags & AUDITVNODE1) AUDIT_ARG(upath, td, cnp->cn_pnbuf, ARG_UPATH1); - if (cnp->cn_flags & AUDITVNPATH2) + if (cnp->cn_flags & AUDITVNODE2) AUDIT_ARG(upath, td, cnp->cn_pnbuf, ARG_UPATH2); /* @@ -467,10 +467,10 @@ } ndp->ni_vp = dp; - if (cnp->cn_flags & AUDITVNPATH1) - AUDIT_ARG(vnpath, dp, ARG_VNODE1); - else if (cnp->cn_flags & AUDITVNPATH2) - AUDIT_ARG(vnpath, dp, ARG_VNODE2); + if (cnp->cn_flags & AUDITVNODE1) + AUDIT_ARG(vnode, dp, ARG_VNODE1); + else if (cnp->cn_flags & AUDITVNODE2) + AUDIT_ARG(vnode, dp, ARG_VNODE2); if (!(cnp->cn_flags & (LOCKPARENT | LOCKLEAF))) VOP_UNLOCK(dp, 0, td); @@ -716,10 +716,10 @@ } else if ((cnp->cn_flags & LOCKPARENT) == 0 && ndp->ni_dvp != dp) VOP_UNLOCK(ndp->ni_dvp, 0, td); - if (cnp->cn_flags & AUDITVNPATH1) - AUDIT_ARG(vnpath, dp, ARG_VNODE1); - else if (cnp->cn_flags & AUDITVNPATH2) - AUDIT_ARG(vnpath, dp, ARG_VNODE2); + if (cnp->cn_flags & AUDITVNODE1) + AUDIT_ARG(vnode, dp, ARG_VNODE1); + else if (cnp->cn_flags & AUDITVNODE2) + AUDIT_ARG(vnode, dp, ARG_VNODE2); if ((cnp->cn_flags & LOCKLEAF) == 0) VOP_UNLOCK(dp, 0, td); ==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_syscalls.c#18 (text+ko) ==== @@ -195,7 +195,7 @@ if (jailed(td->td_ucred) && !prison_quotas) return (EPERM); mtx_lock(&Giant); - NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNPATH1, UIO_USERSPACE, uap->path, + NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); if ((error = namei(&nd)) != 0) { mtx_unlock(&Giant); @@ -251,7 +251,7 @@ struct nameidata nd; mtx_lock(&Giant); - NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNPATH1, pathseg, path, td); + NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNODE1, pathseg, path, td); error = namei(&nd); if (error) { mtx_unlock(&Giant); @@ -332,7 +332,7 @@ #ifdef AUDIT vn_lock(fp->f_vnode, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, fp->f_vnode, ARG_VNODE1); + AUDIT_ARG(vnode, fp->f_vnode, ARG_VNODE1); VOP_UNLOCK(fp->f_vnode, 0, td); #endif @@ -696,7 +696,7 @@ fdrop(fp, td); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, vp, ARG_VNODE1); + AUDIT_ARG(vnode, vp, ARG_VNODE1); if (vp->v_type != VDIR) error = ENOTDIR; @@ -765,7 +765,7 @@ struct vnode *vp; int vfslocked; - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | AUDITVNPATH1 | MPSAFE, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | AUDITVNODE1 | MPSAFE, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -848,7 +848,7 @@ error = suser_cred(td->td_ucred, SUSER_ALLOWJAIL); if (error) return (error); - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -992,7 +992,7 @@ /* An extra reference on `nfp' has been held for us by falloc(). */ fp = nfp; cmode = ((mode &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT; - NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNPATH1, pathseg, path, td); + NDINIT(&nd, LOOKUP, FOLLOW | AUDITVNODE1, pathseg, path, td); td->td_dupfd = -1; /* XXX check for fdopen */ error = vn_open(&nd, &flags, cmode, indx); if (error) { @@ -1200,7 +1200,7 @@ return (error); restart: bwillwrite(); - NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -1305,7 +1305,7 @@ restart: bwillwrite(); - NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -1429,7 +1429,7 @@ int error; bwillwrite(); - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNPATH1, segflg, path, td); + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNODE1, segflg, path, td); if ((error = namei(&nd)) != 0) return (error); vfslocked = NDHASGIANT(&nd); @@ -1445,7 +1445,7 @@ VFS_UNLOCK_GIANT(vfslocked); return (error); } - NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNPATH2, + NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNODE2, segflg, link, td); if ((error = namei(&nd)) == 0) { lvfslocked = NDHASGIANT(&nd); @@ -1520,7 +1520,7 @@ } restart: bwillwrite(); - NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNODE1, segflg, link, td); if ((error = namei(&nd)) != 0) goto out; @@ -1589,7 +1589,7 @@ restart: bwillwrite(); - NDINIT(&nd, DELETE, LOCKPARENT | DOWHITEOUT | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, DELETE, LOCKPARENT | DOWHITEOUT | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -1656,7 +1656,7 @@ restart: bwillwrite(); - NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -1899,7 +1899,7 @@ tmpcred->cr_uid = cred->cr_ruid; tmpcred->cr_groups[0] = cred->cr_rgid; td->td_ucred = tmpcred; - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) goto out1; @@ -1938,7 +1938,7 @@ int vfslocked; int error; - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2074,7 +2074,7 @@ int error, vfslocked; NDINIT(&nd, LOOKUP, - FOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE | AUDITVNPATH1, + FOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2124,7 +2124,7 @@ int error, vfslocked; NDINIT(&nd, LOOKUP, - NOFOLLOW | LOCKLEAF | LOCKSHARED | MPSAFE | AUDITVNPATH1, + NOFOLLOW | LOCKLEAF | LOCKSHARED | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2249,7 +2249,7 @@ struct nameidata nd; int error, vfslocked; - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2301,7 +2301,7 @@ struct nameidata nd; int vfslocked; - NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2365,7 +2365,7 @@ return (error); VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, vp, ARG_VNODE1); + AUDIT_ARG(vnode, vp, ARG_VNODE1); VATTR_NULL(&vattr); vattr.va_flags = flags; #ifdef MAC @@ -2400,7 +2400,7 @@ int vfslocked; AUDIT_ARG(fflags, uap->flags); - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2428,7 +2428,7 @@ int vfslocked; AUDIT_ARG(fflags, uap->flags); - NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2531,7 +2531,7 @@ int vfslocked; AUDIT_ARG(mode, mode); - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNPATH1, pathseg, path, + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2565,7 +2565,7 @@ int vfslocked; AUDIT_ARG(mode, (mode_t)uap->mode); - NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2604,7 +2604,7 @@ return (error); vfslocked = VFS_LOCK_GIANT(fp->f_vnode->v_mount); - AUDIT_ARG(vnpath, fp->f_vnode, ARG_VNODE1); + AUDIT_ARG(vnode, fp->f_vnode, ARG_VNODE1); error = setfmode(td, fp->f_vnode, uap->mode); fdrop(fp, td); @@ -2630,7 +2630,7 @@ return (error); VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, vp, ARG_VNODE1); + AUDIT_ARG(vnode, vp, ARG_VNODE1); VATTR_NULL(&vattr); vattr.va_uid = uid; vattr.va_gid = gid; @@ -2677,7 +2677,7 @@ int vfslocked; AUDIT_ARG(owner, uid, gid); - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNPATH1, pathseg, path, + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2721,7 +2721,7 @@ int vfslocked; AUDIT_ARG(owner, uid, gid); - NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNPATH1, pathseg, path, + NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2818,7 +2818,7 @@ return (error); VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, vp, ARG_VNODE1); + AUDIT_ARG(vnode, vp, ARG_VNODE1); setbirthtime = 0; if (numtimes < 3 && VOP_GETATTR(vp, &vattr, td->td_ucred, td) == 0 && timespeccmp(&ts[1], &vattr.va_birthtime, < )) @@ -2876,7 +2876,7 @@ if ((error = getutimes(tptr, tptrseg, ts)) != 0) return (error); - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNPATH1, pathseg, path, + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -2921,7 +2921,7 @@ if ((error = getutimes(tptr, tptrseg, ts)) != 0) return (error); - NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNPATH1, pathseg, path, + NDINIT(&nd, LOOKUP, NOFOLLOW | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -3011,7 +3011,7 @@ if (length < 0) return(EINVAL); - NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNPATH1, pathseg, path, + NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -3085,7 +3085,7 @@ goto drop; VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, fp->f_vnode, ARG_VNODE1); + AUDIT_ARG(vnode, fp->f_vnode, ARG_VNODE1); if (vp->v_type == VDIR) error = EISDIR; #ifdef MAC @@ -3242,10 +3242,10 @@ bwillwrite(); #ifdef MAC NDINIT(&fromnd, DELETE, LOCKPARENT | LOCKLEAF | SAVESTART | MPSAFE | - AUDITVNPATH1, pathseg, from, td); + AUDITVNODE1, pathseg, from, td); #else NDINIT(&fromnd, DELETE, WANTPARENT | SAVESTART | MPSAFE | - AUDITVNPATH1, pathseg, from, td); + AUDITVNODE1, pathseg, from, td); #endif if ((error = namei(&fromnd)) != 0) return (error); @@ -3267,7 +3267,7 @@ goto out1; } NDINIT(&tond, RENAME, LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART | - MPSAFE | AUDITVNPATH2, pathseg, to, td); + MPSAFE | AUDITVNODE2, pathseg, to, td); if (fromnd.ni_vp->v_type == VDIR) tond.ni_cnd.cn_flags |= WILLBEDIR; if ((error = namei(&tond)) != 0) { @@ -3377,7 +3377,7 @@ restart: bwillwrite(); - NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, CREATE, LOCKPARENT | SAVENAME | MPSAFE | AUDITVNODE1, segflg, path, td); nd.ni_cnd.cn_flags |= WILLBEDIR; if ((error = namei(&nd)) != 0) @@ -3462,7 +3462,7 @@ restart: bwillwrite(); - NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, DELETE, LOCKPARENT | LOCKLEAF | MPSAFE | AUDITVNODE1, pathseg, path, td); if ((error = namei(&nd)) != 0) return (error); @@ -3728,7 +3728,7 @@ auio.uio_resid = uap->count; /* vn_lock(vp, LK_SHARED | LK_RETRY, td); */ vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - AUDIT_ARG(vnpath, fp->f_vnode, ARG_VNODE1); + AUDIT_ARG(vnode, fp->f_vnode, ARG_VNODE1); loff = auio.uio_offset = fp->f_offset; #ifdef MAC @@ -3852,7 +3852,7 @@ struct nameidata nd; int vfslocked; - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->path, td); if ((error = namei(&nd)) != 0) return (error); @@ -3941,7 +3941,7 @@ error = suser(td); if (error) return (error); - NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->fname, td); error = namei(&nd); if (error) @@ -3980,7 +3980,7 @@ error = suser(td); if (error) return (error); - NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNPATH1, + NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF | MPSAFE | AUDITVNODE1, UIO_USERSPACE, uap->fname, td); error = namei(&nd); if (error) @@ -4369,7 +4369,7 @@ filename_vp = NULL; if (uap->filename != NULL) { NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | LOCKLEAF | - AUDITVNPATH2, UIO_USERSPACE, uap->filename, td); + AUDITVNODE2, UIO_USERSPACE, uap->filename, td); error = namei(&nd); if (error) return (error); @@ -4379,7 +4379,7 @@ } /* uap->path is always defined. */ - NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) { @@ -4524,7 +4524,7 @@ if (error) return (error); - NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -4559,7 +4559,7 @@ if (error) return (error); - NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -4698,7 +4698,7 @@ if (error) return (error); - NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -4733,7 +4733,7 @@ if (error) return (error); - NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -4839,7 +4839,7 @@ if (error) return(error); - NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -4870,7 +4870,7 @@ if (error) return(error); - NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -4990,7 +4990,7 @@ struct nameidata nd; int vfslocked, error; - NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) @@ -5019,7 +5019,7 @@ struct nameidata nd; int vfslocked, error; - NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNPATH1, UIO_USERSPACE, + NDINIT(&nd, LOOKUP, MPSAFE | NOFOLLOW | AUDITVNODE1, UIO_USERSPACE, uap->path, td); error = namei(&nd); if (error) ==== //depot/projects/trustedbsd/audit3/sys/kern/vfs_vnops.c#7 (text+ko) ==== @@ -119,7 +119,7 @@ if (fmode & O_CREAT) { ndp->ni_cnd.cn_nameiop = CREATE; ndp->ni_cnd.cn_flags = ISOPEN | LOCKPARENT | LOCKLEAF | - MPSAFE | AUDITVNPATH1; + MPSAFE | AUDITVNODE1; if ((fmode & O_EXCL) == 0 && (fmode & O_NOFOLLOW) == 0) ndp->ni_cnd.cn_flags |= FOLLOW; bwillwrite(); @@ -179,7 +179,7 @@ ndp->ni_cnd.cn_nameiop = LOOKUP; ndp->ni_cnd.cn_flags = ISOPEN | ((fmode & O_NOFOLLOW) ? NOFOLLOW : FOLLOW) | - LOCKSHARED | LOCKLEAF | MPSAFE | AUDITVNPATH1; + LOCKSHARED | LOCKLEAF | MPSAFE | AUDITVNODE1; if ((error = namei(ndp)) != 0) return (error); ndp->ni_cnd.cn_flags &= ~MPSAFE; ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit.h#5 (text+ko) ==== @@ -80,8 +80,8 @@ #define ARG_SADDRINET 0x0000000000100000ULL #define ARG_SADDRINET6 0x0000000000200000ULL #define ARG_SADDRUNIX 0x0000000000400000ULL -#define ARG_KPATH1 0x0000000000800000ULL -#define ARG_KPATH2 0x0000000001000000ULL +#define ARG_UNUSED1 0x0000000000800000ULL +#define ARG_UNUSED2 0x0000000001000000ULL #define ARG_UPATH1 0x0000000002000000ULL #define ARG_UPATH2 0x0000000004000000ULL #define ARG_TEXT 0x0000000008000000ULL @@ -152,7 +152,7 @@ void audit_arg_auditinfo(struct auditinfo *au_info); void audit_arg_upath(struct thread *td, char *upath, u_int64_t flags); -void audit_arg_vnpath(struct vnode *vp, u_int64_t flags); +void audit_arg_vnode(struct vnode *vp, u_int64_t flags); void audit_arg_text(char *text); void audit_arg_cmd(int cmd); void audit_arg_svipc_cmd(int cmd); ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#7 (text+ko) ==== @@ -600,7 +600,7 @@ vp = fp->f_vnode; vfslocked = VFS_LOCK_GIANT(vp->v_mount); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, curthread); - audit_arg_vnpath(vp, ARG_VNODE1); + audit_arg_vnode(vp, ARG_VNODE1); VOP_UNLOCK(vp, 0, curthread); VFS_UNLOCK_GIANT(vfslocked); break; @@ -702,12 +702,11 @@ * XXXAUDIT: Possibly KASSERT the path pointer is NULL? */ void -audit_arg_vnpath(struct vnode *vp, u_int64_t flags) +audit_arg_vnode(struct vnode *vp, u_int64_t flags) { struct kaudit_record *ar; struct vattr vattr; int error; - char **pathp, *retbuf, *freebuf; struct vnode_au_info *vnp; struct thread *td; @@ -718,11 +717,11 @@ return; /* - * Assume that if the caller is calling audit_arg_vnpath() on a + * Assume that if the caller is calling audit_arg_vnode() on a * non-MPSAFE vnode, then it will have acquired Giant. */ VFS_ASSERT_GIANT(vp->v_mount); - ASSERT_VOP_LOCKED(vp, "audit_arg_vnpath"); + ASSERT_VOP_LOCKED(vp, "audit_arg_vnode"); ar = currecord(); if (ar == NULL) /* This will be the case for unaudited system calls */ @@ -732,7 +731,7 @@ * XXXAUDIT: KASSERT argument validity instead? * * XXXAUDIT: The below clears, and then resets the flags for valid - * arguments. Ideally, either the new path is used, or the old one + * arguments. Ideally, either the new vnode is used, or the old one * would be. */ if ((flags & (ARG_VNODE1 | ARG_VNODE2)) == 0) @@ -741,40 +740,13 @@ td = curthread; if (flags & ARG_VNODE1) { - ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_KPATH1); ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_VNODE1); - pathp = &ar->k_ar.ar_arg_kpath1; vnp = &ar->k_ar.ar_arg_vnode1; } else { - ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_KPATH2); ar->k_ar.ar_valid_arg &= (ARG_ALL ^ ARG_VNODE2); - pathp = &ar->k_ar.ar_arg_kpath2; vnp = &ar->k_ar.ar_arg_vnode2; } - if (*pathp == NULL) - *pathp = malloc(MAXPATHLEN, M_AUDIT, M_WAITOK); - - /* - * Copy the path looked up by the vn_fullpath() function. - * - * XXX: Note that in FreeBSD, vn_fullpath() is unreliable, so if - * it fails, we just have a zero-length string. Perhaps instead - * we should not include a path token...? - */ - if (vn_fullpath(td, vp, &retbuf, &freebuf) == 0) { - /* Copy and free buffer allocated by vn_fullpath() */ - strlcpy(*pathp, retbuf, MAXPATHLEN); - free(freebuf, M_TEMP); - } else { - (*pathp)[0] = '\0'; - } - - if (flags & ARG_VNODE1) - ARG_SET_VALID(ar, ARG_KPATH1); - else - ARG_SET_VALID(ar, ARG_KPATH2); - error = VOP_GETATTR(vp, &vattr, td->td_ucred, td); if (error) { /* XXX: How to handle this case? */ @@ -814,7 +786,7 @@ vp = fp->f_vnode; vfslocked = VFS_LOCK_GIANT(vp->v_mount); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - audit_arg_vnpath(vp, ARG_VNODE1); + audit_arg_vnode(vp, ARG_VNODE1); VOP_UNLOCK(vp, 0, td); VFS_UNLOCK_GIANT(vfslocked); fdrop(fp, td); ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#10 (text+ko) ==== @@ -170,8 +170,6 @@ 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; ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#48 (text+ko) ==== @@ -192,12 +192,6 @@ if (ar->k_ar.ar_arg_upath2 != NULL) { free(ar->k_ar.ar_arg_upath2, M_AUDIT); } - if (ar->k_ar.ar_arg_kpath1 != NULL) { - free(ar->k_ar.ar_arg_kpath1, M_AUDIT); - } - if (ar->k_ar.ar_arg_kpath2 != NULL) { - free(ar->k_ar.ar_arg_kpath2, M_AUDIT); - } if (ar->k_ar.ar_arg_text != NULL) { free(ar->k_ar.ar_arg_text, M_AUDIT); } ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#25 (text+ko) ==== @@ -177,22 +177,15 @@ } \ } while (0) -#define KPATH1_VNODE1_TOKENS do { \ - if (ARG_IS_VALID(kar, ARG_KPATH1)) { \ - tok = au_to_path(ar->ar_arg_kpath1); \ - kau_write(rec, tok); \ - } \ +#define VNODE1_TOKENS do { \ if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ tok = au_to_attr32(&ar->ar_arg_vnode1); \ kau_write(rec, tok); \ } \ } while (0) -#define KPATH1_VNODE1_OR_UPATH1_TOKENS do { \ - if (ARG_IS_VALID(kar, ARG_KPATH1)) { \ - tok = au_to_path(ar->ar_arg_kpath1); \ - kau_write(rec, tok); \ - } else { \ +#define UPATH1_VNODE1_TOKENS do { \ + if (ARG_IS_VALID(kar, ARG_UPATH1)) { \ UPATH1_TOKENS; \ } \ if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ @@ -201,28 +194,26 @@ } \ } while (0) -#define KPATH2_VNODE2_TOKENS do { \ - if (ARG_IS_VALID(kar, ARG_KPATH2)) { \ - tok = au_to_path(ar->ar_arg_kpath2); \ - kau_write(rec, tok); \ - } \ +#define VNODE2_TOKENS do { \ if (ARG_IS_VALID(kar, ARG_VNODE2)) { \ tok = au_to_attr32(&ar->ar_arg_vnode2); \ kau_write(rec, tok); \ } \ } while (0) -#define FD_KPATH1_VNODE1_TOKENS do { \ - if (ARG_IS_VALID(kar, ARG_KPATH1)) { \ - tok = au_to_path(ar->ar_arg_kpath1); \ +#define FD_VNODE1_TOKENS do { \ + if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ + tok = au_to_attr32(&ar->ar_arg_vnode1); \ kau_write(rec, tok); \ - if (ARG_IS_VALID(kar, ARG_VNODE1)) { \ - tok = au_to_attr32(&ar->ar_arg_vnode1); \ + if (ARG_IS_VALID(kar, ARG_FD)) { \ + tok = au_to_arg32(1, "fd", ar->ar_arg_fd); \ kau_write(rec, tok); \ } \ } else { \ - tok = au_to_arg32(1, "no path: fd", ar->ar_arg_fd); \ - kau_write(rec, tok); \ + if (ARG_IS_VALID(kar, ARG_FD)) { \ + tok = au_to_arg32(1, "non-file: fd", ar->ar_arg_fd);\ + kau_write(rec, tok); \ + } \ } \ } while (0) @@ -436,8 +427,8 @@ break; case AUE_ACCT: - if (ARG_IS_VALID(kar, ARG_KPATH1 | ARG_UPATH1)) { - KPATH1_VNODE1_OR_UPATH1_TOKENS; + if (ARG_IS_VALID(kar, ARG_UPATH1)) { + UPATH1_VNODE1_TOKENS; } else { tok = au_to_arg32(1, "accounting off", 0); kau_write(rec, tok); @@ -501,7 +492,7 @@ break; case AUE_AUDITCTL: - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_EXIT: @@ -544,21 +535,21 @@ case AUE_UNDELETE: case AUE_UNLINK: case AUE_UTIMES: - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_CHFLAGS: case AUE_LCHFLAGS: tok = au_to_arg32(2, "flags", ar->ar_arg_fflags); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_CHMOD: case AUE_LCHMOD: tok = au_to_arg32(2, "new file mode", ar->ar_arg_mode); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_CHOWN: @@ -567,24 +558,24 @@ kau_write(rec, tok); tok = au_to_arg32(3, "new file gid", ar->ar_arg_gid); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_EXCHANGEDATA: - KPATH1_VNODE1_OR_UPATH1_TOKENS; - KPATH2_VNODE2_TOKENS; + UPATH1_VNODE1_TOKENS; + UPATH2_TOKENS; break; case AUE_CLOSE: tok = au_to_arg32(2, "fd", ar->ar_arg_fd); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_FCHMOD: tok = au_to_arg32(2, "new file mode", ar->ar_arg_mode); kau_write(rec, tok); - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; break; case AUE_FCHDIR: @@ -595,7 +586,7 @@ case AUE_FUTIMES: case AUE_GETDIRENTRIES: case AUE_GETDIRENTRIESATTR: - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; break; case AUE_FCHOWN: @@ -603,7 +594,7 @@ kau_write(rec, tok); tok = au_to_arg32(3, "new file gid", ar->ar_arg_gid); kau_write(rec, tok); - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; break; case AUE_FCNTL: @@ -611,20 +602,20 @@ ar->ar_arg_cmd == F_SETLKW) { tok = au_to_arg32(2, "cmd", ar->ar_arg_cmd); kau_write(rec, tok); - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; } break; case AUE_FCHFLAGS: tok = au_to_arg32(2, "flags", ar->ar_arg_fflags); kau_write(rec, tok); - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; break; case AUE_FLOCK: tok = au_to_arg32(2, "operation", ar->ar_arg_cmd); kau_write(rec, tok); - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; break; case AUE_RFORK: @@ -643,7 +634,7 @@ tok = au_to_arg32(1, "arg", (u_int32_t)ar->ar_arg_addr); kau_write(rec, tok); if (ARG_IS_VALID(kar, ARG_VNODE1)) { - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; } else { if (ARG_IS_VALID(kar, ARG_SOCKINFO)) { tok = kau_to_socket(&ar->ar_arg_sockinfo); @@ -667,25 +658,25 @@ tok = au_to_arg32(3, "trpoints", ar->ar_arg_value); kau_write(rec, tok); PROCESS_PID_TOKENS(4); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_LINK: case AUE_RENAME: - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; UPATH2_TOKENS; break; case AUE_LOADSHFILE: tok = au_to_arg32(4, "base addr", (u_int32_t)ar->ar_arg_addr); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_MKDIR: tok = au_to_arg32(2, "mode", ar->ar_arg_mode); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_MKNOD: @@ -693,7 +684,7 @@ kau_write(rec, tok); tok = au_to_arg32(3, "dev", ar->ar_arg_dev); kau_write(rec, tok); - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_MMAP: @@ -707,7 +698,7 @@ tok = au_to_arg32(2, "len", ar->ar_arg_len); kau_write(rec, tok); if (ar->ar_event == AUE_MMAP) - FD_KPATH1_VNODE1_TOKENS; + FD_VNODE1_TOKENS; if (ar->ar_event == AUE_MPROTECT) { tok = au_to_arg32(3, "protection", ar->ar_arg_value); kau_write(rec, tok); @@ -728,7 +719,7 @@ } /* fall through */ case AUE_UMOUNT: - KPATH1_VNODE1_OR_UPATH1_TOKENS; + UPATH1_VNODE1_TOKENS; break; case AUE_MSGCTL: @@ -775,8 +766,7 @@ case AUE_OPEN_WT: tok = au_to_arg32(2, "flags", ar->ar_arg_fflags); kau_write(rec, tok); - UPATH1_TOKENS; /* Save the user space path */ - KPATH1_VNODE1_TOKENS; /* Audit the kernel path as well */ + UPATH1_VNODE1_TOKENS; break; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Oct 20 17:28:01 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 2E05416A421; Thu, 20 Oct 2005 17:28: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 E102C16A41F for ; Thu, 20 Oct 2005 17:28:00 +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 AAA2143D66 for ; Thu, 20 Oct 2005 17:28:00 +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 j9KHS0pk015920 for ; Thu, 20 Oct 2005 17:28:00 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 j9KHS0gu015917 for perforce@freebsd.org; Thu, 20 Oct 2005 17:28:00 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 20 Oct 2005 17:28:00 GMT Message-Id: <200510201728.j9KHS0gu015917@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 85601 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: Thu, 20 Oct 2005 17:28:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=85601 Change 85601 by rwatson@rwatson_zoo on 2005/10/20 17:27:15 Add DDB "show uma" command. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/vm/uma_core.c#6 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/vm/uma_core.c#6 (text+ko) ==== @@ -57,7 +57,9 @@ #define UMA_DEBUG_ALLOC_1 1 */ +#include "opt_ddb.h" #include "opt_param.h" + #include #include #include @@ -86,6 +88,8 @@ #include +#include + /* * This is the zone and keg from which all zones are spawned. The idea is that * even the zone & keg heads are allocated from the allocator, so we use the @@ -3039,3 +3043,35 @@ free(buffer, M_TEMP); return (error); } + +#ifdef DDB +DB_SHOW_COMMAND(uma, db_show_uma) +{ + u_int64_t allocs, frees; + uma_bucket_t bucket; + uma_keg_t kz; + uma_zone_t z; + int cachefree; + + db_printf("%18s %12s %12s %12s %8s\n", "Zone", "Allocs", "Frees", + "Used", "Cache"); + LIST_FOREACH(kz, &uma_kegs, uk_link) { + LIST_FOREACH(z, &kz->uk_zones, uz_link) { + if (kz->uk_flags & UMA_ZFLAG_INTERNAL) { + allocs = z->uz_allocs; + frees = z->uz_frees; + cachefree = 0; + } else + uma_zone_sumstat(z, &cachefree, &allocs, + &frees); + if (!((kz->uk_flags & UMA_ZONE_SECONDARY) && + (LIST_FIRST(&kz->uk_zones) != z))) + cachefree += kz->uk_free; + LIST_FOREACH(bucket, &z->uz_full_bucket, ub_link) + cachefree += bucket->ub_cnt; + db_printf("%18s %12llu %12llu %12llu %8d\n", z->uz_name, + allocs, frees, allocs - frees, cachefree); + } + } +} +#endif From owner-p4-projects@FreeBSD.ORG Thu Oct 20 17:42:19 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 7317016A422; Thu, 20 Oct 2005 17:42:19 +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 0E66E16A41F for ; Thu, 20 Oct 2005 17:42:19 +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 CA86143D5A for ; Thu, 20 Oct 2005 17:42:18 +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 j9KHgI6I016564 for ; Thu, 20 Oct 2005 17:42:18 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 j9KHgIMu016561 for perforce@freebsd.org; Thu, 20 Oct 2005 17:42:18 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 20 Oct 2005 17:42:18 GMT Message-Id: <200510201742.j9KHgIMu016561@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 85603 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: Thu, 20 Oct 2005 17:42:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=85603 Change 85603 by rwatson@rwatson_zoo on 2005/10/20 17:42:11 Add "show malloc" to DDB. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/kern/kern_malloc.c#5 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/kern/kern_malloc.c#5 (text+ko) ==== @@ -34,6 +34,7 @@ #include __FBSDID("$FreeBSD: src/sys/kern/kern_malloc.c,v 1.146 2005/08/02 20:03:23 ru Exp $"); +#include "opt_ddb.h" #include "opt_vm.h" #include @@ -69,6 +70,8 @@ #include #endif +#include + /* * When realloc() is called, if the new size is sufficiently smaller than * the old size, realloc() will allocate a new, smaller block to avoid @@ -813,6 +816,30 @@ SYSCTL_INT(_kern, OID_AUTO, malloc_count, CTLFLAG_RD, &kmemcount, 0, "Count of kernel malloc types"); +#ifdef DDB +DB_SHOW_COMMAND(malloc, db_show_malloc) +{ + struct malloc_type_internal *mtip; + struct malloc_type *mtp; + u_int64_t allocs, frees; + int i; + + db_printf("%18s %12s %12s %12s\n", "Type", "Allocs", "Frees", + "Used"); + for (mtp = kmemstatistics; mtp != NULL; mtp = mtp->ks_next) { + mtip = (struct malloc_type_internal *)mtp->ks_handle; + allocs = 0; + frees = 0; + for (i = 0; i < MAXCPU; i++) { + allocs += mtip->mti_stats[i].mts_numallocs; + frees += mtip->mti_stats[i].mts_numfrees; + } + db_printf("%18s %12llu %12llu %12llu\n", mtp->ks_shortdesc, + allocs, frees, allocs - frees); + } +} +#endif + #ifdef MALLOC_PROFILE static int From owner-p4-projects@FreeBSD.ORG Thu Oct 20 18:00:43 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 2B24A16A421; Thu, 20 Oct 2005 18:00:43 +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 C365416A41F for ; Thu, 20 Oct 2005 18:00:42 +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 747FC43D62 for ; Thu, 20 Oct 2005 18:00:42 +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 j9KI0g79017854 for ; Thu, 20 Oct 2005 18:00:42 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 j9KI0gWx017851 for perforce@freebsd.org; Thu, 20 Oct 2005 18:00:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 20 Oct 2005 18:00:42 GMT Message-Id: <200510201800.j9KI0gWx017851@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 85606 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: Thu, 20 Oct 2005 18:00:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=85606 Change 85606 by rwatson@rwatson_zoo on 2005/10/20 18:00:05 Break out M_AUDIT kernel malloc type into a number of different malloc types in order to better track memory use, and make it easier to identify the source of memory leaks. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#8 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#11 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#5 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#6 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#49 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#26 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#16 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#11 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_arg.c#8 (text+ko) ==== @@ -474,7 +474,8 @@ return; if (ar->k_ar.ar_arg_text == NULL) - ar->k_ar.ar_arg_text = malloc(MAXPATHLEN, M_AUDIT, M_WAITOK); + ar->k_ar.ar_arg_text = malloc(MAXPATHLEN, M_AUDITTEXT, + M_WAITOK); strncpy(ar->k_ar.ar_arg_text, text, MAXPATHLEN); ARG_SET_VALID(ar, ARG_TEXT); @@ -678,7 +679,7 @@ pathp = &ar->k_ar.ar_arg_upath2; if (*pathp == NULL) - *pathp = malloc(MAXPATHLEN, M_AUDIT, M_WAITOK); + *pathp = malloc(MAXPATHLEN, M_AUDITPATH, M_WAITOK); canon_path(td, upath, *pathp); ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_private.h#11 (text+ko) ==== @@ -38,7 +38,10 @@ #include #ifdef MALLOC_DECLARE -MALLOC_DECLARE(M_AUDIT); +MALLOC_DECLARE(M_AUDITBSM); +MALLOC_DECLARE(M_AUDITDATA); +MALLOC_DECLARE(M_AUDITPATH); +MALLOC_DECLARE(M_AUDITTEXT); #endif /* ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_syscalls.c#5 (text+ko) ==== @@ -83,7 +83,7 @@ if (uap->length > MAX_AUDIT_RECORD_SIZE) return (EINVAL); - rec = malloc(uap->length, M_AUDIT, M_WAITOK); + rec = malloc(uap->length, M_AUDITDATA, M_WAITOK); error = copyin(uap->record, rec, uap->length); if (error) @@ -111,7 +111,7 @@ /* audit_syscall_exit() will free the audit record on the thread * even if we allocated it above. */ - free(rec, M_AUDIT); + free(rec, M_AUDITDATA); return (error); } ==== //depot/projects/trustedbsd/audit3/sys/security/audit/audit_trigger.c#6 (text+ko) ==== @@ -46,6 +46,7 @@ unsigned int trigger; TAILQ_ENTRY(trigger_info) list; }; +static MALLOC_DEFINE(M_AUDITTRIGGER, "audit_trigger", "Audit trigger events"); static struct cdev *audit_dev; static int audit_isopen = 0; static TAILQ_HEAD(, trigger_info) trigger_list; @@ -79,7 +80,7 @@ while (!TAILQ_EMPTY(&trigger_list)) { ti = TAILQ_FIRST(&trigger_list); TAILQ_REMOVE(&trigger_list, ti, list); - free(ti, M_AUDIT); + free(ti, M_AUDITTRIGGER); } mtx_unlock(&audit_trigger_mtx); @@ -106,7 +107,7 @@ mtx_unlock(&audit_trigger_mtx); if (!error) { error = uiomove(ti, sizeof *ti, uio); - free(ti, M_AUDIT); + free(ti, M_AUDITTRIGGER); } return (error); } @@ -131,7 +132,7 @@ /* * XXXAUDIT: Use a condition variable instead of msleep/wakeup? */ - ti = malloc(sizeof *ti, M_AUDIT, M_WAITOK); + ti = malloc(sizeof *ti, M_AUDITTRIGGER, M_WAITOK); mtx_lock(&audit_trigger_mtx); ti->trigger = trigger; TAILQ_INSERT_TAIL(&trigger_list, ti, list); ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_audit.c#49 (text+ko) ==== @@ -68,7 +68,11 @@ #define AUDIT_PRINTF(X) #endif -MALLOC_DEFINE(M_AUDIT, "audit", "Audit event records"); +static MALLOC_DEFINE(M_AUDITPROC, "audit_proc", "Audit process storage"); +static MALLOC_DEFINE(M_AUDITREC, "audit_rec", "Audit event records"); +MALLOC_DEFINE(M_AUDITDATA, "audit_data", "Audit data storage"); +MALLOC_DEFINE(M_AUDITPATH, "audit_path", "Audit path storage"); +MALLOC_DEFINE(M_AUDITTEXT, "audit_text", "Audit text storage"); /* * Audit control settings that are set/read by system calls and are @@ -187,18 +191,18 @@ { if (ar->k_ar.ar_arg_upath1 != NULL) { - free(ar->k_ar.ar_arg_upath1, M_AUDIT); + free(ar->k_ar.ar_arg_upath1, M_AUDITPATH); } if (ar->k_ar.ar_arg_upath2 != NULL) { - free(ar->k_ar.ar_arg_upath2, M_AUDIT); + free(ar->k_ar.ar_arg_upath2, M_AUDITPATH); } if (ar->k_ar.ar_arg_text != NULL) { - free(ar->k_ar.ar_arg_text, M_AUDIT); + free(ar->k_ar.ar_arg_text, M_AUDITTEXT); } if (ar->k_udata != NULL) { - free(ar->k_udata, M_AUDIT); + free(ar->k_udata, M_AUDITDATA); } - free(ar, M_AUDIT); + free(ar, M_AUDITREC); } /* @@ -749,7 +753,7 @@ * calls in the kernel. */ - ar = malloc(sizeof(*ar), M_AUDIT, M_WAITOK); + ar = malloc(sizeof(*ar), M_AUDITREC, M_WAITOK); if (ar == NULL) return NULL; @@ -997,7 +1001,7 @@ KASSERT(p->p_au == NULL, ("audit_proc_alloc: p->p_au != NULL (%d)", p->p_pid)); - p->p_au = malloc(sizeof(*(p->p_au)), M_AUDIT, M_WAITOK); + p->p_au = malloc(sizeof(*(p->p_au)), M_AUDITPROC, M_WAITOK); /* XXXAUDIT: Zero? Slab allocate? */ //printf("audit_proc_alloc: pid %d p_au %p\n", p->p_pid, p->p_au); } @@ -1065,6 +1069,6 @@ /* * XXXAUDIT: Assert that external memory pointers are NULL? */ - free(p->p_au, M_AUDIT); + free(p->p_au, M_AUDITPROC); p->p_au = NULL; } ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#26 (text+ko) ==== @@ -43,6 +43,8 @@ #include #include +MALLOC_DEFINE(M_AUDITBSM, "audit_bsm", "Audit BSM data"); + /* * Forward declares. */ @@ -73,9 +75,9 @@ { struct au_record *rec; - rec = malloc(sizeof(*rec), M_AUDIT, M_WAITOK); - rec->data = malloc(MAX_AUDIT_RECORD_SIZE * sizeof(u_char), M_AUDIT, - M_WAITOK | M_ZERO); + rec = malloc(sizeof(*rec), M_AUDITBSM, M_WAITOK); + rec->data = malloc(MAX_AUDIT_RECORD_SIZE * sizeof(u_char), + M_AUDITBSM, M_WAITOK | M_ZERO); TAILQ_INIT(&rec->token_q); rec->len = 0; rec->used = 1; @@ -147,13 +149,13 @@ /* Free the token list */ while ((tok = TAILQ_FIRST(&rec->token_q))) { TAILQ_REMOVE(&rec->token_q, tok, tokens); - free(tok->t_data, M_AUDIT); - free(tok, M_AUDIT); + free(tok->t_data, M_AUDITBSM); + free(tok, M_AUDITBSM); } rec->used = 0; rec->len = 0; - free(tok, M_AUDIT); + free(tok, M_AUDITBSM); } /* ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#16 (text+ko) ==== @@ -54,6 +54,7 @@ LIST_HEAD(, evclass_elem) head; }; +static MALLOC_DEFINE(M_AUDITEVCLASS, "audit_evclass", "Audit event class"); static struct mtx evclass_mtx; static struct evclass_list evclass_hash[EVCLASSMAP_HASH_TABLE_SIZE]; @@ -97,7 +98,7 @@ * Pessimistically, always allocate storage before acquiring mutex. * Free if there is already a mapping for this event. */ - evc_new = malloc(sizeof(*evc), M_AUDIT, M_WAITOK); + evc_new = malloc(sizeof(*evc), M_AUDITEVCLASS, M_WAITOK); mtx_lock(&evclass_mtx); evcl = &evclass_hash[event % EVCLASSMAP_HASH_TABLE_SIZE]; @@ -105,7 +106,7 @@ if (evc->event == event) { evc->class = class; mtx_unlock(&evclass_mtx); - free(evc_new, M_AUDIT); + free(evc_new, M_AUDITEVCLASS); return; } } ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#11 (text+ko) ==== @@ -58,13 +58,13 @@ #include #define GET_TOKEN_AREA(t, dptr, length) do { \ - t = malloc(sizeof(token_t), M_AUDIT, M_WAITOK); \ + t = malloc(sizeof(token_t), M_AUDITBSM, M_WAITOK); \ if (t != NULL) { \ t->len = length; \ t->t_data = malloc(length * sizeof(u_char), \ - M_AUDIT, M_WAITOK); \ + M_AUDITBSM, M_WAITOK); \ if ((dptr = t->t_data) == NULL) { \ - free(t, M_AUDIT); \ + free(t, M_AUDITBSM); \ t = NULL; \ } else \ memset(dptr, 0, length); \ From owner-p4-projects@FreeBSD.ORG Thu Oct 20 18:44:39 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 9568E16A421; Thu, 20 Oct 2005 18:44:38 +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 575ED16A41F for ; Thu, 20 Oct 2005 18:44:38 +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 E6B9B43D69 for ; Thu, 20 Oct 2005 18:44:37 +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 j9KIibRT019755 for ; Thu, 20 Oct 2005 18:44:37 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 j9KIibhB019752 for perforce@freebsd.org; Thu, 20 Oct 2005 18:44:37 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 20 Oct 2005 18:44:37 GMT Message-Id: <200510201844.j9KIibhB019752@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 85610 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: Thu, 20 Oct 2005 18:44:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=85610 Change 85610 by rwatson@rwatson_zoo on 2005/10/20 18:44:37 Simplify token allocation code: because we allocate with M_WAITOK, failure isn't permitted. When we abandon an audit record because we don't know how to convert it to BSM, make sure that we free the BSM subject token allocated before this decision was made. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#27 edit .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#12 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#27 (text+ko) ==== @@ -116,16 +116,11 @@ tm.tv_usec = ctime->tv_nsec / 1000; tm.tv_sec = ctime->tv_sec; hdr = au_to_header32(tot_rec_size, event, 0, tm); - - if (hdr != NULL) { - /* Add to head of list */ - TAILQ_INSERT_HEAD(&rec->token_q, hdr, tokens); + TAILQ_INSERT_HEAD(&rec->token_q, hdr, tokens); + + trail = au_to_trailer(tot_rec_size); + TAILQ_INSERT_TAIL(&rec->token_q, trail, tokens); - trail = au_to_trailer(tot_rec_size); - if (trail != NULL) - TAILQ_INSERT_TAIL(&rec->token_q, trail, - tokens); - } /* Serialize token data to the record. */ rec->len = tot_rec_size; @@ -1052,6 +1047,8 @@ default: /* We shouldn't fall through to here. */ printf("BSM conversion requested for unknown event %d\n", ar->ar_event); + /* Write the subject token so it is properly freed here. */ + kau_write(rec, subj_tok); kau_free(rec); return (BSM_NOAUDIT); } ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_token.c#12 (text+ko) ==== @@ -59,16 +59,9 @@ #define GET_TOKEN_AREA(t, dptr, length) do { \ t = malloc(sizeof(token_t), M_AUDITBSM, M_WAITOK); \ - if (t != NULL) { \ - t->len = length; \ - t->t_data = malloc(length * sizeof(u_char), \ - M_AUDITBSM, M_WAITOK); \ - if ((dptr = t->t_data) == NULL) { \ - free(t, M_AUDITBSM); \ - t = NULL; \ - } else \ - memset(dptr, 0, length); \ - } \ + t->t_data = malloc(length, M_AUDITBSM, M_WAITOK | M_ZERO); \ + t->len = length; \ + dptr = t->t_data; \ } while (0) /* From owner-p4-projects@FreeBSD.ORG Thu Oct 20 18:59: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 2852D16A421; Thu, 20 Oct 2005 18:59:58 +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 DDB7116A41F for ; Thu, 20 Oct 2005 18:59:57 +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 DB24843D75 for ; Thu, 20 Oct 2005 18:59:56 +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 j9KIxuCx020299 for ; Thu, 20 Oct 2005 18:59:56 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 j9KIxuZt020296 for perforce@freebsd.org; Thu, 20 Oct 2005 18:59:56 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 20 Oct 2005 18:59:56 GMT Message-Id: <200510201859.j9KIxuZt020296@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 85611 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: Thu, 20 Oct 2005 18:59:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=85611 Change 85611 by rwatson@rwatson_zoo on 2005/10/20 18:59:28 #if 0 conversion of AUE_various to AUE_OPEN in the event ENOENT is returned. Comment on why. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#17 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_klib.c#17 (text+ko) ==== @@ -301,10 +301,16 @@ break; } +#if 0 /* * Convert chatty errors to better matching events. * Failures to find a file are really just attribute * events - so recast them as such. + * + * XXXAUDIT: Solaris defines that AUE_OPEN will never be returned, it + * is just a placeholder. However, in Darwin we return that in + * preference to other events. For now, comment this out as we don't + * have a BSM conversion routine for AUE_OPEN. */ switch (aevent) { case AUE_OPEN_R: @@ -316,6 +322,7 @@ if (error == ENOENT) aevent = AUE_OPEN; } +#endif return (aevent); } From owner-p4-projects@FreeBSD.ORG Thu Oct 20 19:30: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 91FB116A424; Thu, 20 Oct 2005 19:30: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 3840616A421 for ; Thu, 20 Oct 2005 19:30: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 058AA43D5A for ; Thu, 20 Oct 2005 19:30:34 +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 j9KJUX50021651 for ; Thu, 20 Oct 2005 19:30: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 j9KJUXRZ021648 for perforce@freebsd.org; Thu, 20 Oct 2005 19:30:33 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 20 Oct 2005 19:30:33 GMT Message-Id: <200510201930.j9KJUXRZ021648@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 85612 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: Thu, 20 Oct 2005 19:30:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=85612 Change 85612 by rwatson@rwatson_zoo on 2005/10/20 19:29:41 When freeing a BSM-converted audit record, free the record and its data pointer, not a NULL token pointer. Otherwise we leak BSM records like mad. Affected files ... .. //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#28 edit Differences ... ==== //depot/projects/trustedbsd/audit3/sys/security/audit/kern_bsm_audit.c#28 (text+ko) ==== @@ -150,7 +150,8 @@ rec->used = 0; rec->len = 0; - free(tok, M_AUDITBSM); + free(rec->data, M_AUDITBSM); + free(rec, M_AUDITBSM); } /* From owner-p4-projects@FreeBSD.ORG Thu Oct 20 20:28:46 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 AA06416A423; Thu, 20 Oct 2005 20:28:45 +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 652DB16A420 for ; Thu, 20 Oct 2005 20:28:45 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3588E43D5A for ; Thu, 20 Oct 2005 20:28:45 +0000 (GMT) (envelope-from millert@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 j9KKSjlj023915 for ; Thu, 20 Oct 2005 20:28:45 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9KKSiRo023912 for perforce@freebsd.org; Thu, 20 Oct 2005 20:28:44 GMT (envelope-from millert@freebsd.org) Date: Thu, 20 Oct 2005 20:28:44 GMT Message-Id: <200510202028.j9KKSiRo023912@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85615 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: Thu, 20 Oct 2005 20:28:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=85615 Change 85615 by millert@millert_ibook on 2005/10/20 20:27:58 use PAGE_SIZE macro since we have it instead of hard-coding 4096 Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#4 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#4 (text+ko) ==== @@ -84,7 +84,7 @@ #define kmalloc(size,flags) malloc(size) #define kfree(v) free(v) -#define __get_free_page(flags) malloc (4096) /* XXX need page size */ +#define __get_free_page(flags) malloc (PAGE_SIZE) #define GFP_ATOMIC 1 #define GFP_KERNEL 2 @@ -135,8 +135,7 @@ #define kmalloc(size,flags) sebsd_ss_malloc(size, flags) #define kfree(v) sebsd_ss_free(v) -/* XXX need page size */ -#define __get_free_page(flags) sebsd_ss_malloc(4096, flags) +#define __get_free_page(flags) sebsd_ss_malloc(PAGE_SIZE, flags) #define GFP_ATOMIC M_NOWAIT #define GFP_KERNEL M_NOWAIT From owner-p4-projects@FreeBSD.ORG Thu Oct 20 20:33:52 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 43C5D16A422; Thu, 20 Oct 2005 20:33:52 +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 05D9E16A420 for ; Thu, 20 Oct 2005 20:33:52 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CAAB443D5A for ; Thu, 20 Oct 2005 20:33:51 +0000 (GMT) (envelope-from millert@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 j9KKXper024174 for ; Thu, 20 Oct 2005 20:33:51 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9KKXpIs024171 for perforce@freebsd.org; Thu, 20 Oct 2005 20:33:51 GMT (envelope-from millert@freebsd.org) Date: Thu, 20 Oct 2005 20:33:51 GMT Message-Id: <200510202033.j9KKXpIs024171@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85616 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: Thu, 20 Oct 2005 20:33:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=85616 Change 85616 by millert@millert_ibook on 2005/10/20 20:33:28 Don't deref NULL pointer in sebsd_ss_malloc() if sebsd_malloc() returns NULL. Style nits in sebsd_ss_malloc() and sebsd_ss_free(). Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#9 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#9 (text+ko) ==== @@ -111,21 +111,27 @@ #ifdef __APPLE__ -void *sebsd_ss_malloc (size_t size, int flags) +void * +sebsd_ss_malloc(size_t size, int flags) { - size += sizeof(size_t); - size_t *v = sebsd_malloc (size, flags); - v[0] = size; - return v+1; + size_t *vs; + + size += sizeof(size_t); + if ((vs = sebsd_malloc(size, flags)) != NULL) + *vs++ = size; + return (vs); } -void sebsd_ss_free (void *v) +void +sebsd_ss_free(void *v) { - if (v == NULL) - return; + size_t *vs = (size_t *)v; + + if (vs == NULL) + return; - size_t *vs = (size_t *) v; - sebsd_free (vs-1, vs[-1]); + /* size of region is stored immediately before v */ + sebsd_free(vs - 1, vs[-1]); } #else From owner-p4-projects@FreeBSD.ORG Thu Oct 20 20:37: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 466B316A421; Thu, 20 Oct 2005 20:37:58 +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 E65DA16A41F for ; Thu, 20 Oct 2005 20:37:57 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A10C043D66 for ; Thu, 20 Oct 2005 20:37:57 +0000 (GMT) (envelope-from millert@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 j9KKbvcY024435 for ; Thu, 20 Oct 2005 20:37:57 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9KKbvGZ024432 for perforce@freebsd.org; Thu, 20 Oct 2005 20:37:57 GMT (envelope-from millert@freebsd.org) Date: Thu, 20 Oct 2005 20:37:57 GMT Message-Id: <200510202037.j9KKbvGZ024432@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85618 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: Thu, 20 Oct 2005 20:37:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=85618 Change 85618 by millert@millert_ibook on 2005/10/20 20:37:16 Honor M_NOWAIT in sebsd_malloc() by calling kalloc_noblock() instead of kalloc(). Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#10 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#10 (text+ko) ==== @@ -81,8 +81,9 @@ { void *v; - v = (void *)kalloc(size); - if (flags & M_ZERO) + v = (flags & M_NOWAIT) ? + (void *)kalloc_noblock(size) : (void *)kalloc(size); + if (v != NULL && (flags & M_ZERO)) bzero(v, size); return (v); } From owner-p4-projects@FreeBSD.ORG Thu Oct 20 20:41:08 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 9575316A422; Thu, 20 Oct 2005 20:41:06 +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 49A7716A420 for ; Thu, 20 Oct 2005 20:41:06 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CAD0D43D83 for ; Thu, 20 Oct 2005 20:41:01 +0000 (GMT) (envelope-from millert@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 j9KKf1Xs024663 for ; Thu, 20 Oct 2005 20:41:01 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9KKf1a0024660 for perforce@freebsd.org; Thu, 20 Oct 2005 20:41:01 GMT (envelope-from millert@freebsd.org) Date: Thu, 20 Oct 2005 20:41:01 GMT Message-Id: <200510202041.j9KKf1a0024660@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85619 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: Thu, 20 Oct 2005 20:41:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=85619 Change 85619 by millert@millert_ibook on 2005/10/20 20:40:53 GFP_ATOMIC should really be defined as M_NOWAIT but this causes a panic in the zone allocator from avc_init(). Make it M_WAITOK for now and document the problem. Since sebsd_malloc() didn't honor M_WAITOK before, this effectively changes things back to the way they were, but hopefully in a less confusing manner. We may need to investigate using a lower level allocator here. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#5 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#5 (text+ko) ==== @@ -136,8 +136,9 @@ #define kmalloc(size,flags) sebsd_ss_malloc(size, flags) #define kfree(v) sebsd_ss_free(v) #define __get_free_page(flags) sebsd_ss_malloc(PAGE_SIZE, flags) -#define GFP_ATOMIC M_NOWAIT -#define GFP_KERNEL M_NOWAIT +/* XXX - GFP_ATOMIC should be M_NOWAIT but zone alloc chokes in avc init */ +#define GFP_ATOMIC M_WAITOK +#define GFP_KERNEL M_WAITOK #ifdef __APPLE__ /* TBD: Skip this for now: */ From owner-p4-projects@FreeBSD.ORG Thu Oct 20 22:33:20 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 3745916A421; Thu, 20 Oct 2005 22:33:20 +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 0F5AF16A41F for ; Thu, 20 Oct 2005 22:33:20 +0000 (GMT) (envelope-from flz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BF13D43D5A for ; Thu, 20 Oct 2005 22:33:19 +0000 (GMT) (envelope-from flz@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 j9KMXJLu039595 for ; Thu, 20 Oct 2005 22:33:19 GMT (envelope-from flz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9KMXJve039592 for perforce@freebsd.org; Thu, 20 Oct 2005 22:33:19 GMT (envelope-from flz@freebsd.org) Date: Thu, 20 Oct 2005 22:33:19 GMT Message-Id: <200510202233.j9KMXJve039592@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to flz@freebsd.org using -f From: Florent Thoumie To: Perforce Change Reviews Cc: Subject: PERFORCE change 85626 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: Thu, 20 Oct 2005 22:33:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=85626 Change 85626 by flz@flz_freefall on 2005/10/20 22:33:03 Remove part of my workspace. Affected files ... .. //depot/doc/obliterate#3 edit Differences ... ==== //depot/doc/obliterate#3 (text+ko) ==== @@ -2,3 +2,4 @@ # purge unwanted stuff in one go. //depot/user/des/pam/... //depot/user/pjd/geom/... +//depot/user/flz/src/... From owner-p4-projects@FreeBSD.ORG Fri Oct 21 13:45:27 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 E241516A421; Fri, 21 Oct 2005 13:45:26 +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 B96DB16A41F for ; Fri, 21 Oct 2005 13:45:26 +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 8210A43D46 for ; Fri, 21 Oct 2005 13:45:26 +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 j9LDjQlf004561 for ; Fri, 21 Oct 2005 13:45:26 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9LDjQVm004558 for perforce@freebsd.org; Fri, 21 Oct 2005 13:45:26 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 21 Oct 2005 13:45:26 GMT Message-Id: <200510211345.j9LDjQVm004558@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 85642 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: Fri, 21 Oct 2005 13:45:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=85642 Change 85642 by soc-bushman@soc-bushman_stinger on 2005/10/21 13:44:47 resolve fixed Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/Makefile.inc#3 integrate .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/strlen.S#1 branch .. //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem.c#4 integrate Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/arm/string/Makefile.inc#3 (text+ko) ==== @@ -1,7 +1,7 @@ # @(#)Makefile.inc 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/libc/arm/string/Makefile.inc,v 1.1 2004/05/14 12:04:31 cognet Exp $ +# $FreeBSD: src/lib/libc/arm/string/Makefile.inc,v 1.2 2005/10/03 14:21:49 cognet Exp $ MDSRCS+=bcmp.c bcopy.S bzero.S ffs.S index.c memchr.c memcmp.S memcpy.S \ memmove.S memset.S rindex.c strcat.c strchr.c strcmp.S strcpy.c \ - strlen.c strncmp.S strrchr.c swab.c wcschr.c wcscmp.c wcslen.c \ + strlen.S strncmp.S strrchr.c swab.c wcschr.c wcscmp.c wcslen.c \ wmemchr.c ==== //depot/projects/soc2005/nsswitch_cached/src/lib/libc/gen/sem.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/gen/sem.c,v 1.14 2005/08/20 07:59:13 stefanf Exp $ + * $FreeBSD: src/lib/libc/gen/sem.c,v 1.15 2005/10/18 17:24:03 stefanf Exp $ */ /* @@ -322,7 +322,7 @@ int __sem_timedwait(sem_t * __restrict sem, - struct timespec * __restrict abs_timeout) + const struct timespec * __restrict abs_timeout) { if (sem_check_validity(sem) != 0) return (-1); From owner-p4-projects@FreeBSD.ORG Fri Oct 21 13:48:36 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 B41DC16A422; Fri, 21 Oct 2005 13:48: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 8E46516A41F for ; Fri, 21 Oct 2005 13:48:35 +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 C6FC443D55 for ; Fri, 21 Oct 2005 13:48:30 +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 j9LDmURd004850 for ; Fri, 21 Oct 2005 13:48:30 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9LDmUCu004847 for perforce@freebsd.org; Fri, 21 Oct 2005 13:48:30 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 21 Oct 2005 13:48:30 GMT Message-Id: <200510211348.j9LDmUCu004847@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 85643 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: Fri, 21 Oct 2005 13:48:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=85643 Change 85643 by soc-bushman@soc-bushman_stinger on 2005/10/21 13:47:54 branch integrated Affected files ... .. //depot/projects/soc2005/nsswitch_cached/src/include/Makefile#2 edit .. //depot/projects/soc2005/nsswitch_cached/src/include/histedit.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/include/netdb.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/include/pthread.h#2 integrate .. //depot/projects/soc2005/nsswitch_cached/src/include/wchar.h#2 integrate Differences ... ==== //depot/projects/soc2005/nsswitch_cached/src/include/Makefile#2 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/src/include/histedit.h#2 (text+ko) ==== @@ -13,11 +13,7 @@ * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -34,8 +30,8 @@ * SUCH DAMAGE. * * @(#)histedit.h 8.2 (Berkeley) 1/3/94 - * $NetBSD: histedit.h,v 1.15 2000/02/28 17:41:05 chopps Exp $ - * $FreeBSD: src/include/histedit.h,v 1.9 2003/07/14 16:31:20 imp Exp $ + * $NetBSD: histedit.h,v 1.28 2005/07/14 15:00:58 christos Exp $ + * $FreeBSD: src/include/histedit.h,v 1.10 2005/08/07 20:51:52 stefanf Exp $ */ /* @@ -52,6 +48,7 @@ /* * ==== Editing ==== */ + typedef struct editline EditLine; /* @@ -63,7 +60,6 @@ const char *lastchar; } LineInfo; - /* * EditLine editor function return codes. * For user-defined function interface @@ -83,16 +79,15 @@ * Initialization, cleanup, and resetting */ EditLine *el_init(const char *, FILE *, FILE *, FILE *); +void el_end(EditLine *); void el_reset(EditLine *); -void el_end(EditLine *); - /* * Get a line, a character or push a string back in the input queue */ const char *el_gets(EditLine *, int *); int el_getc(EditLine *, char *); -void el_push(EditLine *, const char *); +void el_push(EditLine *, char *); /* * Beep! @@ -103,13 +98,16 @@ * High level function internals control * Parses argc, argv array and executes builtin editline commands */ -int el_parse(EditLine *, int, char **); +int el_parse(EditLine *, int, const char **); /* * Low level editline access functions */ int el_set(EditLine *, int, ...); int el_get(EditLine *, int, void *); +#if 0 +unsigned char _el_fn_complete(EditLine *, int); +#endif /* * el_set/el_get parameters @@ -128,7 +126,13 @@ #define EL_HIST 10 /* , hist_fun_t, const char *); */ #define EL_EDITMODE 11 /* , int); */ #define EL_RPROMPT 12 /* , el_pfunc_t); */ +#define EL_GETCFN 13 /* , el_rfunc_t); */ +#define EL_CLIENTDATA 14 /* , void *); */ +#define EL_UNBUFFERED 15 /* , int); */ +#define EL_PREP_TERM 16 /* , int); */ +#define EL_BUILTIN_GETCFN (NULL) + /* * Source named file or $PWD/.editrc or $HOME/.editrc */ @@ -155,6 +159,7 @@ int el_insertstr(EditLine *, const char *); void el_deletestr(EditLine *, int); + /* * ==== History ==== */ @@ -183,7 +188,7 @@ #define H_PREV 5 /* , void); */ #define H_NEXT 6 /* , void); */ #define H_CURR 8 /* , const int); */ -#define H_SET 7 /* , void); */ +#define H_SET 7 /* , int); */ #define H_ADD 9 /* , const char *); */ #define H_ENTER 10 /* , const char *); */ #define H_APPEND 11 /* , const char *); */ @@ -195,6 +200,27 @@ #define H_LOAD 17 /* , const char *); */ #define H_SAVE 18 /* , const char *); */ #define H_CLEAR 19 /* , void); */ +#define H_SETUNIQUE 20 /* , int); */ +#define H_GETUNIQUE 21 /* , void); */ +#define H_DEL 22 /* , int); */ + + +/* + * ==== Tokenization ==== + */ + +typedef struct tokenizer Tokenizer; + +/* + * String tokenization functions, using simplified sh(1) quoting rules + */ +Tokenizer *tok_init(const char *); +void tok_end(Tokenizer *); +void tok_reset(Tokenizer *); +int tok_line(Tokenizer *, const LineInfo *, + int *, const char ***, int *, int *); +int tok_str(Tokenizer *, const char *, + int *, const char ***); __END_DECLS ==== //depot/projects/soc2005/nsswitch_cached/src/include/netdb.h#2 (text+ko) ==== @@ -55,7 +55,7 @@ /* * @(#)netdb.h 8.1 (Berkeley) 6/2/93 * From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $ - * $FreeBSD: src/include/netdb.h,v 1.38 2005/06/03 03:32:06 ume Exp $ + * $FreeBSD: src/include/netdb.h,v 1.39 2005/07/22 18:21:28 ume Exp $ */ #ifndef _NETDB_H_ @@ -63,8 +63,6 @@ #include #include -#include -#include #ifndef _SIZE_T_DECLARED typedef __size_t size_t; @@ -125,29 +123,12 @@ int p_proto; /* protocol # */ }; -/* - * Note: ai_addrlen used to be a size_t, per RFC 2553. - * In XNS5.2, and subsequently in POSIX-2001 and RFC 3493 it was - * changed to a socklen_t. - * To accomodate for this while preserving binary compatibility with the - * old interface, we prepend or append 32 bits of padding, depending on - * the (LP64) architecture's endianness. - * - * This should be deleted the next time the libc major number is - * incremented. - */ struct addrinfo { int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */ int ai_family; /* PF_xxx */ int ai_socktype; /* SOCK_xxx */ int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ -#if __LONG_BIT == 64 && _BYTE_ORDER == _BIG_ENDIAN - uint32_t __ai_pad0; /* ABI compatibility */ -#endif socklen_t ai_addrlen; /* length of ai_addr */ -#if __LONG_BIT == 64 && _BYTE_ORDER == _LITTLE_ENDIAN - uint32_t __ai_pad0; /* ABI compatibility */ -#endif char *ai_canonname; /* canonical name for hostname */ struct sockaddr *ai_addr; /* binary address */ struct addrinfo *ai_next; /* next structure in linked list */ ==== //depot/projects/soc2005/nsswitch_cached/src/include/pthread.h#2 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/include/pthread.h,v 1.36 2005/05/31 15:18:17 rodrigc Exp $ + * $FreeBSD: src/include/pthread.h,v 1.39 2005/09/01 15:33:22 stefanf Exp $ */ #ifndef _PTHREAD_H_ #define _PTHREAD_H_ @@ -39,20 +39,20 @@ * Header files. */ #include -#include #include -#include -#include -#include +#include +#include +#include #include +#include /* * Run-time invariant values: */ #define PTHREAD_DESTRUCTOR_ITERATIONS 4 #define PTHREAD_KEYS_MAX 256 -#define PTHREAD_STACK_MIN MINSIGSTKSZ -#define PTHREAD_THREADS_MAX ULONG_MAX +#define PTHREAD_STACK_MIN __MINSIGSTKSZ +#define PTHREAD_THREADS_MAX __ULONG_MAX #define PTHREAD_BARRIER_SERIAL_THREAD -1 /* @@ -121,8 +121,6 @@ * * PTHREAD_MUTEX_NORMAL * PTHREAD_MUTEX_RECURSIVE - * MUTEX_TYPE_FAST (deprecated) - * MUTEX_TYPE_COUNTING_FAST (deprecated) * * will deviate from POSIX specified semantics. */ @@ -130,23 +128,19 @@ PTHREAD_MUTEX_ERRORCHECK = 1, /* Default POSIX mutex */ PTHREAD_MUTEX_RECURSIVE = 2, /* Recursive mutex */ PTHREAD_MUTEX_NORMAL = 3, /* No error checking */ - MUTEX_TYPE_MAX + PTHREAD_MUTEX_TYPE_MAX }; #define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_ERRORCHECK -#define MUTEX_TYPE_FAST PTHREAD_MUTEX_NORMAL -#define MUTEX_TYPE_COUNTING_FAST PTHREAD_MUTEX_RECURSIVE /* * Thread function prototype definitions: */ __BEGIN_DECLS -int pthread_atfork(void (*prepare)(void), void (*parent)(void), - void (*child)(void)); +int pthread_atfork(void (*)(void), void (*)(void), void (*)(void)); int pthread_attr_destroy(pthread_attr_t *); int pthread_attr_getstack(const pthread_attr_t * __restrict, - void ** __restrict stackaddr, - size_t * __restrict stacksize); + void ** __restrict, size_t * __restrict); int pthread_attr_getstacksize(const pthread_attr_t *, size_t *); int pthread_attr_getguardsize(const pthread_attr_t *, size_t *); int pthread_attr_getstackaddr(const pthread_attr_t *, void **); @@ -167,7 +161,7 @@ int pthread_barrierattr_init(pthread_barrierattr_t *); int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int); void pthread_cleanup_pop(int); -void pthread_cleanup_push(void (*) (void *), void *routine_arg); +void pthread_cleanup_push(void (*) (void *), void *); int pthread_condattr_destroy(pthread_condattr_t *); int pthread_condattr_init(pthread_condattr_t *); int pthread_condattr_getclock(const pthread_condattr_t *, @@ -226,7 +220,7 @@ int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); pthread_t pthread_self(void); int pthread_setspecific(pthread_key_t, const void *); -int pthread_sigmask(int, const sigset_t *, sigset_t *); +int pthread_sigmask(int, const __sigset_t *, __sigset_t *); int pthread_spin_init(pthread_spinlock_t *, int); int pthread_spin_destroy(pthread_spinlock_t *); ==== //depot/projects/soc2005/nsswitch_cached/src/include/wchar.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/include/wchar.h,v 1.45 2004/08/12 12:19:10 tjr Exp $ + * $FreeBSD: src/include/wchar.h,v 1.46 2005/08/13 05:54:33 tjr Exp $ */ /*- @@ -214,6 +214,7 @@ wchar_t *fgetwln(struct __sFILE * __restrict, size_t * __restrict); size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, size_t, mbstate_t * __restrict); +wchar_t *wcsdup(const wchar_t *); size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t, size_t, mbstate_t * __restrict); size_t wcslcat(wchar_t *, const wchar_t *, size_t); From owner-p4-projects@FreeBSD.ORG Fri Oct 21 13:51:36 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 AD26E16A421; Fri, 21 Oct 2005 13:51: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 6A13E16A41F for ; Fri, 21 Oct 2005 13:51:35 +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 09E6643D45 for ; Fri, 21 Oct 2005 13:51:35 +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 j9LDpZOo005081 for ; Fri, 21 Oct 2005 13:51:35 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9LDpYvT005078 for perforce@freebsd.org; Fri, 21 Oct 2005 13:51:34 GMT (envelope-from soc-bushman@freebsd.org) Date: Fri, 21 Oct 2005 13:51:34 GMT Message-Id: <200510211351.j9LDpYvT005078@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 85644 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: Fri, 21 Oct 2005 13:51:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=85644 Change 85644 by soc-bushman@soc-bushman_stinger on 2005/10/21 13:51:21 man upgraded, serveral log issues fixed Affected files ... .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/Makefile#3 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/Makefile#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agent.c#1 add .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agent.h#1 add .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/Makefile.inc#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/group.c#1 add .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/group.h#1 add .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/hosts.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/hosts.h#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/passwd.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/passwd.h#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/services.c#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/services.h#4 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.8#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.conf#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.conf.5#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cachelib.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cachelib.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cacheplcs.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cacheplcs.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/config.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/config.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/debug.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/debug.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/hashtable.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/log.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/log.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_rs_query.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_rs_query.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_ws_query.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_ws_query.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/parser.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/parser.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/protocol.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/protocol.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/query.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/query.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/singletons.c#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/singletons.h#8 edit .. //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/startup/cached#3 edit Differences ... ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/Makefile#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/Makefile#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/Makefile.inc#4 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/hosts.c#4 (text+ko) ==== @@ -281,7 +281,6 @@ size = key + key_size - p; if (size != len) { - TRACE_POINT(); TRACE_OUT(hosts_lookup_func); return (NS_UNAVAIL); } @@ -347,13 +346,8 @@ case GETIPNODEBYXXX_LOOKUP: switch (lookup_type) { case nss_lt_name: - TRACE_STR(hostname); - TRACE_INT(type); ht_result = getipnodebyname(hostname, type, AI_ADDRCONFIG | AI_V4MAPPED, &res); - TRACE_INT(res); - TRACE_STR(hstrerror(res)); - TRACE_PTR(ht_result); break; case nss_lt_id: ht_result = getipnodebyaddr(addr, len, type, &res); ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/hosts.h#4 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/passwd.c#4 (text+ko) ==== @@ -136,16 +136,14 @@ assert(buffer != NULL); assert(buffer_size != NULL); - TRACE_INT(key_size); if (key_size < sizeof(enum nss_lookup_type)) { TRACE_OUT(passwd_lookup_func); return (NS_UNAVAIL); } memcpy(&lookup_type, key, sizeof(enum nss_lookup_type)); - TRACE_INT(lookup_type); + switch (lookup_type) { case nss_lt_name: - TRACE_POINT(); size = key_size - sizeof(enum nss_lookup_type) + 1; login = (char *)malloc(size); assert(login != NULL); @@ -153,30 +151,25 @@ memcpy(login, key + sizeof(enum nss_lookup_type), size - 1); break; case nss_lt_id: - TRACE_POINT(); if (key_size < sizeof(enum nss_lookup_type) + sizeof(uid_t)) { TRACE_OUT(passwd_lookup_func); return (NS_UNAVAIL); } - TRACE_POINT(); memcpy(&uid, key + sizeof(enum nss_lookup_type), sizeof(uid_t)); break; default: - TRACE_POINT(); TRACE_OUT(passwd_lookup_func); return (NS_UNAVAIL); } switch (lookup_type) { case nss_lt_name: - TRACE_STR(login); result = getpwnam(login); free(login); break; case nss_lt_id: - TRACE_INT(uid); result = getpwuid(uid); break; default: @@ -185,7 +178,6 @@ } if (result != NULL) { - TRACE_POINT(); passwd_marshal_func(result, NULL, buffer_size); *buffer = (char *)malloc(*buffer_size); assert(*buffer != NULL); ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/passwd.h#4 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/services.c#4 (text+ko) ==== @@ -133,16 +133,14 @@ assert(buffer != NULL); assert(buffer_size != NULL); - TRACE_INT(key_size); if (key_size < sizeof(enum nss_lookup_type)) { TRACE_OUT(passwd_lookup_func); return (NS_UNAVAIL); } memcpy(&lookup_type, key, sizeof(enum nss_lookup_type)); - TRACE_INT(lookup_type); + switch (lookup_type) { case nss_lt_name: - TRACE_POINT(); size = key_size - sizeof(enum nss_lookup_type) + 1; name = (char *)malloc(size); assert(name != NULL); @@ -159,14 +157,12 @@ } break; case nss_lt_id: - TRACE_POINT(); if (key_size < sizeof(enum nss_lookup_type) + sizeof(int)) { TRACE_OUT(passwd_lookup_func); return (NS_UNAVAIL); } - TRACE_POINT(); memcpy(&port, key + sizeof(enum nss_lookup_type), sizeof(int)); @@ -180,23 +176,16 @@ } break; default: - TRACE_POINT(); TRACE_OUT(passwd_lookup_func); return (NS_UNAVAIL); } switch (lookup_type) { case nss_lt_name: - TRACE_STR(name); - if (proto != NULL) - TRACE_STR(proto); result = getservbyname(name, proto); free(name); break; case nss_lt_id: - TRACE_INT(port); - if (proto != NULL) - TRACE_STR(proto); result = getservbyport(port, proto); free(proto); break; @@ -206,7 +195,6 @@ } if (result != NULL) { - TRACE_POINT(); services_marshal_func(result, NULL, buffer_size); *buffer = (char *)malloc(*buffer_size); assert(*buffer != NULL); ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/agents/services.h#4 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.8#8 (text+ko) ==== @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" -.Dd August 29, 2005 +.Dd October 20, 2005 .Dt CACHED 8 .Os .Sh NAME @@ -68,6 +68,13 @@ .El .Pp .Nm +is able not only to cache elements, but to perform the actual nsswitch +lookups by itself. To enable this feature use +.Pa perform-actual-lookups +parameter in the +.Xr cached.conf 5 +.Pp +.Nm recognizes the following runtime options: .Bl -tag -width indent .It Fl n ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.c#8 (text+ko) ==== @@ -147,7 +147,7 @@ print_version_info(void) { TRACE_IN(print_version_info); - printf("cached v0.2 (19 Aug 2005)\nwas developed during SoC 2005\n"); + printf("cached v0.2 (20 Oct 2005)\nwas developed during SoC 2005\n"); TRACE_OUT(print_version_info); } @@ -216,7 +216,6 @@ memset(retval, 0, sizeof(struct runtime_env)); retval->sockfd = socket(PF_LOCAL, SOCK_STREAM, 0); - TRACE_INT(retval->sockfd); if (config->force_unlink == 1) unlink(config->socket_path); @@ -230,7 +229,6 @@ if (bind(retval->sockfd, (struct sockaddr *)&serv_addr, serv_addr_len) == -1) { - TRACE_INT(errno); close(retval->sockfd); free(retval); @@ -288,20 +286,22 @@ addr_len = sizeof(struct sockaddr); fd = accept(event_data->ident, &addr, &addr_len); if (fd == -1) { - /* TODO: do something */ + LOG_ERR_2("accept_connection", "error %d during accept()", + errno); TRACE_OUT(accept_connection); return; } if (getpeereid(fd, &euid, &egid) != 0) { - /* TODO: do something */ + LOG_ERR_2("accept_connection", "error %d during getpeereid()", + errno); TRACE_OUT(accept_connection); return; } qstate = init_query_state(fd, sizeof(int), euid, egid); if (qstate == NULL) { - /* TODO: do something */ + LOG_ERR_2("accept_connection", "can't init query_state"); TRACE_OUT(accept_connection); return; } @@ -312,8 +312,6 @@ EV_SET(&eventlist[1], fd, EVFILT_READ, EV_ADD | EV_ONESHOT, NOTE_LOWAT, qstate->kevent_watermark, qstate); res = kevent(env->queue, eventlist, 2, NULL, 0, &timeout); - TRACE_INT(res); - TRACE_INT(fd); TRACE_OUT(accept_connection); } @@ -335,19 +333,16 @@ res = 0; memset(&kevent_timeout, 0, sizeof(struct timespec)); - TRACE_INT(event_data->ident); EV_SET(&eventlist[0], event_data->ident, EVFILT_TIMER, EV_DELETE, 0, 0, NULL); nevents = kevent(env->queue, eventlist, 1, NULL, 0, &kevent_timeout); if (nevents == -1) { if (errno == ENOENT) { /* the timer is already handling this event */ - TRACE_POINT(); TRACE_OUT(process_socket_event); return; } else { /* some other error happened */ - TRACE_POINT(); TRACE_OUT(process_socket_event); return; } @@ -359,7 +354,6 @@ ((qstate->use_alternate_io != 0) && (qstate->io_buffer_watermark <= event_data->data))) { if (qstate->use_alternate_io != 0) { - TRACE_INT(qstate->use_alternate_io); switch (qstate->io_buffer_filter) { case EVFILT_READ: io_res = query_socket_read(qstate, @@ -370,13 +364,6 @@ qstate->process_func = NULL; } else { qstate->io_buffer_p += io_res; - TRACE_INT(qstate->kevent_watermark); - TRACE_INT(qstate->io_buffer + - qstate->io_buffer_size - - qstate->io_buffer_p); - TRACE_INT(io_res); - TRACE_INT(event_data->data); - TRACE_INT(qstate->io_buffer_size); if (qstate->io_buffer_p == qstate->io_buffer + qstate->io_buffer_size) { @@ -402,10 +389,8 @@ qstate->process_func = NULL; } - TRACE_INT(qstate->use_alternate_io); if ((qstate->use_alternate_io != 0) && (qstate->io_buffer_filter == EVFILT_WRITE)) { - TRACE_POINT(); io_res = query_socket_write(qstate, qstate->io_buffer_p, qstate->io_buffer_watermark); if (io_res < 0) { @@ -420,15 +405,11 @@ qstate->use_alternate_io = 0; } - TRACE_INT(event_data->data); - TRACE_INT(qstate->kevent_watermark); - TRACE_PTR(qstate->process_func); if (((qstate->process_func == NULL) && (qstate->use_alternate_io == 0)) || (eof_res != 0) || (res != 0)) { destroy_query_state(qstate); close(event_data->ident); - TRACE_POINT(); TRACE_OUT(process_socket_event); return; } @@ -462,7 +443,7 @@ qstate->write_func = query_io_buffer_write; qstate->read_func = query_io_buffer_read; - TRACE_POINT(); + if (qstate->kevent_filter == EVFILT_READ) qstate->use_alternate_io = 1; @@ -476,7 +457,6 @@ NOTE_LOWAT, qstate->kevent_watermark, qstate); } } else { - TRACE_POINT(); if (qstate->io_buffer + qstate->io_buffer_size - qstate->io_buffer_p < MAX_SOCKET_IO_SIZE) { @@ -488,7 +468,6 @@ qstate->io_buffer_watermark, qstate); } else { - TRACE_POINT(); qstate->io_buffer_watermark = MAX_SOCKET_IO_SIZE; EV_SET(&eventlist[1], event_data->ident, qstate->io_buffer_filter, EV_ADD | EV_ONESHOT, @@ -687,16 +666,13 @@ error_str = NULL; error_line = 0; config_file = CONFIG_PATH; -// res = read_configuration(config_file, s_configuration, &error_str, -// &error_line); + res = parse_config_file(s_configuration, config_file, &error_str, &error_line); if ((res != 0) && (error_str == NULL)) { config_file = DEFAULT_CONFIG_PATH; res = parse_config_file(s_configuration, config_file, &error_str, &error_line); -// res = read_configuration(config_file, s_configuration, -// &error_str, &error_line); } if (res != 0) { ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.conf#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cached.conf.5#8 (text+ko) ==== @@ -31,160 +31,62 @@ .Nd "caching daemon configuration file manual page" .Sh "DESCRIPTION" .Nm -has 2 types of elements: -.Pa key=value pairs -and -.Pa groups of such pairs. -Groups are used to specify needed cache entries, and "global" key=value -pairs allow to change some global +is used by the .Xr cached 8 -parameters. -.Ss Gobal pairs -Global pairs are usually specified in the beginning of the -.Nm -file. -They have the following form: key=value. +daemon and is read on its startup. Its syntax is mostly similar to the +nscd.conf syntax in Linux and Solaris. It has some differences, though - +see them below. +.Pp +Each line specifies either an attribute and a value, or an attribute, +a cachename and a value. Valid cachenames are passwd, groups, hosts, +services, protocols and rpc. If you need to use some other cachename for +your own needs (for example, if some third-party application uses nsswitch), +you can simply use it without any restrictions. .Pp .Bl -tag -width Pair -.It Sy Pair -.Sy Description -.It socket_path = [string] -Defines the path to the unix socket, which +.It Sy threads [value] +Number of threads, which would listen for connections and process requests. The +minimum is 1. +.It Sy enable-cache [cachename] [yes|no] +Enables or disables the cache for specified cachename. +.It Sy positive-time-to-live [cachename] [value] +Sets the TTL (time-to-live) for the specified cache in seconds. Larger values +can increase system's performance, but they also can affect the cache +coherence. +.It Sy positive-policy [cachename] [fifo|lru|lfu] +The policy that is applied to erase some of the cache elements, when the +size limit of the given cachename is exceeded. Possible policies are: +fifo (first-in-first-out), lru (least-recently-used), +lfu (least-frequently-used). +.It Sy negative-time-to-live [cachename] [value] +The TTL of the negative cached elements in seconds. The larger values can +significantly increase system performance in some environments +(when dealing with files with UIDs, which are not in system databases, +for example). This number should be kept low to avoid the cache +coherence problems. +.It Sy negative-policy [cachename] [fifo|lru|lfu] +The same as the positive-policy, but this one is applied to the negative +elements of the given cachename. +.It Sy suggested-size [cachename] [value] +This is the internal hash table size. The value should be a prime number +for optimum performance. You should only change this value when the number +of cached elements is significantly (in 5-10 times) greater then the usual +hash table size (255). +.It Sy keep-hot-count [cachename] [value] +The size limit of the cache with the given cachename. When it is exceeded, +the policy will be applied. +.It Sy perform-actual-lookups [cachename] [yes|no] +If enabled, the .Xr cached 8 -will use to -communicate with client applications. -The default is -.Pa /var/run/cached . -.It pidfile_path= [string] -Defines the path to the pid file, which will be used by the startup script -to control +doesn't simply receive and cache the NSS-requests results, but performs +all the lookups by itself and only returns the responses. If this feature is +enabled, then for the given cachename .Xr cached 8 -execution. -The default is -.Pa /var/run/cached.pid . -.It query_timeout = [positive_integer] -Specifies the query timeout in seconds. -When this time is expired, the -.Xr cached 8 -will close the connection with the client. -This parameter can be overriden for each cache entry. -The default is -.Pa 8 . -.It threads = [positive_integer_between_1_and_32] -Defines the number of threads, which -.Xr cached 8 -will use to process the requests. -The default is -.Pa 8 . -.El -.Ss Groups -Each group describes one cache entry. -Groups are defined using the following form: +will act similarly to the NSCD. .Pp -entry "\fIentry_name\fP" { -.br - type = [\fIcommon\fP | \fImultipart\fP] -.br - ... -.br -} -.Pp -Entry names are unique entry identifiers. -Duplicate entries are allowed only if they have different -.Pa euid -parameters. -The first pair in the group is always a -.Pa type -pair. -It defines the entry type. -After the -.Pa type -pair you can specify other key=value pairs, -that describe the cache entry. -.Ss Pairs for 'common' entries -.Bl -tag -width Pair -.It Sy Pair -.Sy Description -.It policy = fifo | lru | lfu -Defines the policy, which will be applied to this entry's elements when -maximum entry size is exceeded. -.Pa fifo -- first in - first out. -.Pa lru -- least recently used. -.Pa lfu -- least frequently used. -The default is -.Pa fifo . -.It max_elemsize = [positive_integer] -Defines the maximums entry size in elements. -When this size is exceeded, the policy is applied and some elements are -eliminated. -.Pa 0 -means that entry size is infinite. -The default is -.Pa 0 . -.It max_lifetime = [positive_integer] -Defines the maximum entry element lifetime in seconds. -When this time is exceeded, the element is eliminated. -.Pa 0 -means infinite lifetime. -The default is -.Pa 0 . -.It timeout = [positive_integer] -Specified the entry's processing-timeout time in seconds. -If this parameter is specified, it overrides the global -.Pa query_timeout -value. -.It euid = [positive_integer] -Defines the allowed euid to use this entry. -If the euid is pecified then -.Pa only -users with this euid can work with -this entry. Other users won't be able to read or write to that entry. -If this parameter is omitted, than the entry is considered to -be -.Pa public -- any user, who doesn't have his own specified entry -will be able to use the public entry. -.El -.Ss Pairs for 'multipart' entries -.Bl -tag -width Pair -.It Sy Pair -.Sy Description -.It max_session = [positive_integer] -Defines the maximum number of write sessions, allowed to be synchronously -used with this entry. -As each session accumulates data, lowering the maximum allowed number of -sessions can reduce the memory usage. -.Pa 0 -means infinite number. -The default is -.Pa 0 . -.It max_elemsize = [positive_integer] -Defines the maximum capacity of the entry. -If one tries to write an element, when max_elemsize is exceeded, he'll get an -error. -.Pa 0 -means infinite number. -The default is -.Pa 0. -.It timeout = [positive_integer] -Specified the entry's processing-timeout time in seconds. -If this parameter is specified, it overrides the global -.Pa query_timeout -value. -.It euid = [positive_integer] -Defines the allowed euid to use this entry. -If the euid is specified then -.Pa only -users with this euid can work with this entry. -Other users won't be able to read or write to that entry. -If this parameter is omitted, than the entry is considered to be -.Pa public -- any user, who doesn't have his own specified entry will be able to use the -public entry. -.El +.Pa NOTE: +this feature is currently experimental - it supports only passwd, groups and +services cachenames. .Sh "NOTES" You can use .Sq # ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cachelib.c#8 (text+ko) ==== @@ -96,7 +96,6 @@ retval = (127 * retval + (unsigned char)hp->key[i]) % cache_entries_size; - TRACE_INT(retval); return retval; } @@ -511,13 +510,10 @@ params->entry_name, entry_name_size); new_common_entry->name = new_common_entry->common_params.entry_name; - TRACE_STR(new_common_entry->name); - TRACE_POINT(); HASHTABLE_INIT(&(new_common_entry->items), struct cache_ht_item_data_, data, new_common_entry->common_params.cache_entries_size); - TRACE_POINT(); if (new_common_entry->common_params.policy == CPT_FIFO) policies_size = 1; @@ -621,7 +617,6 @@ struct cache_entry_ **result; TRACE_IN(find_cache_entry); - TRACE_STR((char *)entry_name); result = find_cache_entry_p(the_cache, entry_name); if (result == NULL) { @@ -652,7 +647,7 @@ common_entry = (struct cache_common_entry_ *)entry; memset(&item_data, 0, sizeof(struct cache_ht_item_data_)); - /* TODO: can't avoid the cast here */ + /* can't avoid the cast here */ item_data.key = (char *)key; item_data.key_size = key_size; @@ -752,7 +747,7 @@ common_entry = (struct cache_common_entry_ *)entry; memset(&item_data, 0, sizeof(struct cache_ht_item_data_)); - /* TODO: can't avoid the cast here */ + /* can't avoid the cast here */ item_data.key = (char *)key; item_data.key_size = key_size; @@ -770,13 +765,10 @@ item_data.key = (char *)malloc(key_size); memcpy(item_data.key, key, key_size); -// memset(item_data.key, 0, strlen(key)+1); -// strncpy(item_data.key, key, strlen(key)); item_data.value = (char *)malloc(value_size); assert(item_data.value != NULL); - /* TODO: check types */ memcpy(item_data.value, value, value_size); item_data.value_size = value_size; @@ -786,7 +778,6 @@ common_entry->get_time_func(&policy_item->creation_time); if (common_entry->policies_size > 1) { - TRACE_POINT(); connected_policy_item = common_entry->policies[1]->create_item_func(); memcpy(&connected_policy_item->creation_time, @@ -801,14 +792,12 @@ item_data.fifo_policy_item = policy_item; - TRACE_POINT(); common_entry->policies[0]->add_item_func(common_entry->policies[0], policy_item); if (common_entry->policies_size > 1) common_entry->policies[1]->add_item_func( common_entry->policies[1], connected_policy_item); - TRACE_POINT(); HASHTABLE_ENTRY_STORE(cache_ht_, item, &item_data); ++common_entry->items_size; @@ -844,7 +833,6 @@ if ((mp_entry->mp_params.max_sessions > 0) && (mp_entry->ws_size == mp_entry->mp_params.max_sessions)) { - TRACE_POINT(); TRACE_OUT(open_cache_mp_write_session); return (NULL); } ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cachelib.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cacheplcs.c#8 (text+ko) ==== @@ -363,8 +363,6 @@ } else index = CACHELIB_MAX_FREQUENCY - 1; - TRACE_INT(lfu_item->frequency); - TRACE_INT(index); TAILQ_REMOVE(&(lfu_policy->groups[lfu_item->frequency]), lfu_item, entries); lfu_item->frequency = index; @@ -439,13 +437,10 @@ int i; TRACE_IN(cache_lfu_policy_get_next_item); - TRACE_PTR(&(lfu_policy->groups[ - ((struct cache_lfu_policy_item_ *)item)->frequency])); lfu_policy = (struct cache_lfu_policy_ *)policy; lfu_item = TAILQ_NEXT((struct cache_lfu_policy_item_ *)item, entries); if (lfu_item == NULL) { - TRACE_INT(((struct cache_lfu_policy_item_ *)item)->frequency); for (i = ((struct cache_lfu_policy_item_ *)item)->frequency + 1; i < CACHELIB_MAX_FREQUENCY; ++i) { if (!TAILQ_EMPTY(&(lfu_policy->groups[i]))) { ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/cacheplcs.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/config.c#8 (text+ko) ==== @@ -92,7 +92,6 @@ res = pthread_mutexattr_init(&attr); if (res != 0) { - TRACE_INT(res); TRACE_OUT(create_configuration_entry); return (NULL); } ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/config.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/debug.c#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/debug.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/hashtable.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/log.c#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/log.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_rs_query.c#8 (text+ko) ==== @@ -89,7 +89,6 @@ &c_mp_rs_request->entry_length, sizeof(size_t)); if (result != sizeof(size_t)) { - TRACE_INT(result); TRACE_OUT(on_mp_read_session_request_read1); return (-1); } @@ -125,7 +124,6 @@ c_mp_rs_request->entry_length); if (result != qstate->kevent_watermark) { - TRACE_INT(result); TRACE_OUT(on_mp_read_session_request_read2); return (-1); } @@ -162,14 +160,17 @@ qstate->config_entry = configuration_find_entry( s_configuration, c_mp_rs_request->entry); if (qstate->config_entry == NULL) { - TRACE_MSG("can't find corresponding configuration entry." - " aborting request"); + LOG_ERR_2("read_session_request", + "can't find configuration entry '%s'." + " aborting request", c_mp_rs_request->entry); TRACE_OUT(on_write_request_process); return (-1); } if (qstate->config_entry->enabled == 0) { - TRACE_MSG("corresponding configuration entry is disabled"); + LOG_ERR_2("read_session_request", + "configuration entry '%s' is disabled", + c_mp_rs_request->entry); TRACE_OUT(on_read_request_process); return (-1); } @@ -202,7 +203,6 @@ if ((rs == INVALID_CACHE_MP_READ_SESSION) && (qstate->config_entry->perform_actual_lookups != 0)) { - TRACE_STR(c_mp_rs_request->entry); lookup_agent = find_agent(s_agent_table, c_mp_rs_request->entry, MULTIPART_AGENT); @@ -256,7 +256,8 @@ (ws != NULL)); } - configuration_lock_entry(qstate->config_entry, CELT_MULTIPART); + configuration_lock_entry(qstate->config_entry, + CELT_MULTIPART); rs = open_cache_mp_read_session(c_entry); configuration_unlock_entry(qstate->config_entry, CELT_MULTIPART); @@ -329,12 +330,10 @@ } else { result = qstate->read_func(qstate, &elem_type, sizeof(int)); if (result != sizeof(int)) { - TRACE_INT(result); TRACE_OUT(on_mp_read_session_mapper); return (-1); } - TRACE_PTR(qstate->mdata); switch (elem_type) { case CET_MP_READ_SESSION_READ_REQUEST: qstate->kevent_watermark = 0; @@ -372,7 +371,6 @@ (cache_mp_read_session)qstate->mdata, NULL, &read_response->data_size); - TRACE_INT(read_response->error_code); if (read_response->error_code == 0) { read_response->data = (char *)malloc(read_response->data_size); assert(read_response != NULL); @@ -410,25 +408,20 @@ result += qstate->write_func(qstate, &read_response->data_size, sizeof(size_t)); if (result != qstate->kevent_watermark) { - TRACE_INT(result); - TRACE_INT(qstate->kevent_watermark); TRACE_OUT(on_mp_read_session_read_response_write1); return (-1); } qstate->kevent_watermark = read_response->data_size; qstate->process_func = on_mp_read_session_read_response_write2; - TRACE_POINT(); } else { if (result != qstate->kevent_watermark) { - TRACE_POINT(); TRACE_OUT(on_mp_read_session_read_response_write1); return (-1); } qstate->kevent_watermark = 0; qstate->process_func = NULL; - TRACE_POINT(); } TRACE_OUT(on_mp_read_session_read_response_write1); @@ -444,13 +437,9 @@ TRACE_IN(on_mp_read_session_read_response_write2); read_response = get_cache_mp_read_session_read_response( &qstate->response); - TRACE_PTR(read_response->data); - TRACE_INT(read_response->data_size); result = qstate->write_func(qstate, read_response->data, read_response->data_size); if (result != qstate->kevent_watermark) { - TRACE_INT(result); - TRACE_INT(qstate->kevent_watermark); TRACE_OUT(on_mp_read_session_read_response_write2); return (-1); } ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_rs_query.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_ws_query.c#8 (text+ko) ==== @@ -90,7 +90,6 @@ &c_mp_ws_request->entry_length, sizeof(size_t)); if (result != sizeof(size_t)) { - TRACE_INT(result); TRACE_OUT(on_mp_write_session_request_read1); return (-1); } @@ -126,7 +125,6 @@ c_mp_ws_request->entry_length); if (result != qstate->kevent_watermark) { - TRACE_INT(result); TRACE_OUT(on_mp_write_session_request_read2); return (-1); } @@ -156,21 +154,25 @@ qstate->config_entry = configuration_find_entry( s_configuration, c_mp_ws_request->entry); if (qstate->config_entry == NULL) { - TRACE_MSG("can't find corresponding configuration entry. " - "aborting request"); + LOG_ERR_2("write_session_request", + "can't find configuration entry '%s'. " + "aborting request", c_mp_ws_request->entry); TRACE_OUT(on_write_request_process); return (-1); } if (qstate->config_entry->enabled == 0) { - TRACE_MSG("corresponding configuration entry is disabled"); + LOG_ERR_2("write_session_request", + "configuration entry '%s' is disabled", + c_mp_ws_request->entry); TRACE_OUT(on_read_request_process); return (-1); } if (qstate->config_entry->perform_actual_lookups != 0) { - TRACE_MSG( - "entry performs lookups by itself: can't write to it"); + LOG_ERR_2("write_session_request", + "entry '%s' performs lookups by itself: " + "can't write to it", c_mp_ws_request->entry); TRACE_OUT(on_write_request_process); return (-1); } @@ -254,7 +256,6 @@ } else { result = qstate->read_func(qstate, &elem_type, sizeof(int)); if (result != sizeof(int)) { - TRACE_INT(result); TRACE_OUT(on_mp_write_session_mapper); return (-1); } @@ -302,7 +303,6 @@ sizeof(size_t)); if (result != sizeof(size_t)) { - TRACE_INT(result); TRACE_OUT(on_mp_write_session_write_request_read1); return (-1); } @@ -336,7 +336,6 @@ write_request->data_size); if (result != qstate->kevent_watermark) { - TRACE_INT(result); TRACE_OUT(on_mp_write_session_write_request_read2); return (-1); } ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/mp_ws_query.h#8 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/release/cached-0.2/cached/parser.c#8 (text+ko) ==== @@ -54,6 +54,7 @@ const char *, int); static void set_suggested_size(struct configuration *, const char *, >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Oct 21 15:32:39 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 2AEF316A421; Fri, 21 Oct 2005 15:32:39 +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 DFDE516A41F for ; Fri, 21 Oct 2005 15:32:38 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 94C6143D45 for ; Fri, 21 Oct 2005 15:32:38 +0000 (GMT) (envelope-from millert@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 j9LFWcMh009489 for ; Fri, 21 Oct 2005 15:32:38 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9LFWc6w009486 for perforce@freebsd.org; Fri, 21 Oct 2005 15:32:38 GMT (envelope-from millert@freebsd.org) Date: Fri, 21 Oct 2005 15:32:38 GMT Message-Id: <200510211532.j9LFWc6w009486@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85648 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: Fri, 21 Oct 2005 15:32:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=85648 Change 85648 by millert@millert_ibook on 2005/10/21 15:32:23 Collapse sebsd_ss_malloc() and sebsd_ss_free() into sebsd_malloc() and sebsd_free(). Having two different malloc/free implementations is confusing and error-prone. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#6 edit .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#11 edit .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd_syscall.c#6 edit .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/global.h#4 edit .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/mach_av.c#4 edit .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/queue.c#4 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#6 (text+ko) ==== @@ -84,7 +84,7 @@ #define kmalloc(size,flags) malloc(size) #define kfree(v) free(v) -#define __get_free_page(flags) malloc (PAGE_SIZE) +#define __get_free_page(flags) malloc(PAGE_SIZE) #define GFP_ATOMIC 1 #define GFP_KERNEL 2 @@ -119,11 +119,11 @@ #ifdef __APPLE__ -extern void *sebsd_ss_malloc (size_t size, int flags); -extern void sebsd_ss_free (void *); +extern void *sebsd_malloc(size_t size, int flags); +extern void sebsd_free(void *); -#define malloc(size,type,flags) sebsd_ss_malloc (size,flags) -#define free(addr,type) sebsd_ss_free (addr) +#define malloc(size, type, flags) sebsd_malloc(size, flags) +#define free(addr, type) sebsd_free(addr) #define M_SEBSD M_MACTEMP #else @@ -133,9 +133,9 @@ #endif #endif /* __APPLE__ */ -#define kmalloc(size,flags) sebsd_ss_malloc(size, flags) -#define kfree(v) sebsd_ss_free(v) -#define __get_free_page(flags) sebsd_ss_malloc(PAGE_SIZE, flags) +#define kmalloc(size, flags) sebsd_malloc(size, flags) +#define kfree(v) sebsd_free(v) +#define __get_free_page(flags) sebsd_malloc(PAGE_SIZE, flags) /* XXX - GFP_ATOMIC should be M_NOWAIT but zone alloc chokes in avc init */ #define GFP_ATOMIC M_WAITOK #define GFP_KERNEL M_WAITOK ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#11 (text+ko) ==== @@ -79,21 +79,27 @@ void * sebsd_malloc(size_t size, int flags) { - void *v; + size_t *vs; - v = (flags & M_NOWAIT) ? - (void *)kalloc_noblock(size) : (void *)kalloc(size); - if (v != NULL && (flags & M_ZERO)) - bzero(v, size); - return (v); + size += sizeof(size_t); + vs = (flags & M_NOWAIT) ? + (size_t *)kalloc_noblock(size) : (size_t *)kalloc(size); + if (vs != NULL) { + bzero(vs, size); + *vs++ = size; + } + return (vs); } static void -sebsd_free(void *v, size_t size) +sebsd_free(void *v) { + size_t *vs = v; - if (v) - kfree((vm_offset_t)v, size); + if (vs != NULL) { + vs--; + kfree((vm_offset_t)vs, *vs); + } } #include @@ -110,32 +116,7 @@ static int slot = 1; /* TBD, dynamic */ #define SLOT(l) ((void *)LABEL_TO_SLOT((l), slot).l_ptr) -#ifdef __APPLE__ - -void * -sebsd_ss_malloc(size_t size, int flags) -{ - size_t *vs; - - size += sizeof(size_t); - if ((vs = sebsd_malloc(size, flags)) != NULL) - *vs++ = size; - return (vs); -} - -void -sebsd_ss_free(void *v) -{ - size_t *vs = (size_t *)v; - - if (vs == NULL) - return; - - /* size of region is stored immediately before v */ - sebsd_free(vs - 1, vs[-1]); -} - -#else +#ifndef __APPLE__ MALLOC_DEFINE(M_SEBSD, "sebsd", "Security Enhanced BSD"); #endif ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd_syscall.c#6 (text+ko) ==== @@ -137,7 +137,7 @@ } error = copyout (&olen, outlen, sizeof(int)); out2: - sebsd_ss_free(sids); + sebsd_free(sids); out: return (error); } @@ -244,24 +244,24 @@ if (err) return err; size_t dummy; - char *ctx = sebsd_ss_malloc (MAX_UC, M_WAITOK); + char *ctx = sebsd_malloc (MAX_UC, M_WAITOK); err = copyinstr(uap.ctx, ctx, MAX_UC, &dummy); if (err) { - sebsd_ss_free (ctx); + sebsd_free (ctx); return err; } - char *usr = sebsd_ss_malloc (MAX_UC, M_WAITOK); + char *usr = sebsd_malloc (MAX_UC, M_WAITOK); err = copyinstr(uap.usr, usr, MAX_UC, &dummy); if (err) { - sebsd_ss_free (ctx); - sebsd_ss_free (usr); + sebsd_free (ctx); + sebsd_free (usr); return err; } ctx[MAX_UC-1] = 0; usr[MAX_UC-1] = 0; err = sys_get_sids (call, ctx, usr, uap.out, uap.outlen); - sebsd_ss_free (ctx); - sebsd_ss_free (usr); + sebsd_free (ctx); + sebsd_free (usr); } break; @@ -272,31 +272,31 @@ if (err) return err; size_t dummy; - char *doms = sebsd_ss_malloc (MAX_UC, M_WAITOK); + char *doms = sebsd_malloc (MAX_UC, M_WAITOK); err = copyinstr(uap.domain, doms, MAX_UC, &dummy); if (err) { - sebsd_ss_free (doms); + sebsd_free (doms); return err; } - char *srcs = sebsd_ss_malloc (MAX_UC, M_WAITOK); + char *srcs = sebsd_malloc (MAX_UC, M_WAITOK); err = copyinstr(uap.source, srcs, MAX_UC, &dummy); if (err) { - sebsd_ss_free (doms); - sebsd_ss_free (srcs); + sebsd_free (doms); + sebsd_free (srcs); return err; } - char *scs = sebsd_ss_malloc (MAX_UC, M_WAITOK); + char *scs = sebsd_malloc (MAX_UC, M_WAITOK); err = copyinstr(uap.sclass, scs, MAX_UC, &dummy); if (err) { - sebsd_ss_free (doms); - sebsd_ss_free (srcs); - sebsd_ss_free (scs); + sebsd_free (doms); + sebsd_free (srcs); + sebsd_free (scs); return err; } err = sys_change_sid (doms, srcs, scs, uap.out, uap.outlen); - sebsd_ss_free (doms); - sebsd_ss_free (srcs); - sebsd_ss_free (scs); + sebsd_free (doms); + sebsd_free (srcs); + sebsd_free (scs); return err; } break; ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/global.h#4 (text+ko) ==== @@ -23,17 +23,12 @@ */ #include -#if defined(_KERNEL) || defined(KERNEL) -/*#define sebsd_malloc(a,b,c) sebsd_malloc(a,c) - #define sebsd_free(a,b) free(a,b)*/ -#else /* _KERNEL */ +#if !defined(_KERNEL) && !defined(KERNEL) #include #include #define sebsd_malloc(a,b,c) (c&M_ZERO)?calloc(1,a):malloc(a) #define sebsd_free(a,b) free(a) -#define sebsd_ss_malloc(a,b) (b&M_ZERO)?calloc(1,a):malloc(a) -#define sebsd_ss_free(a) free(a) -#define kmalloc(l,f) sebsd_ss_malloc(l,f) +#define kmalloc(l,f) sebsd_malloc(l,f) #define mtx_lock(a) #define mtx_unlock(a) #endif /* _KERNEL */ ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/mach_av.c#4 (text+ko) ==== @@ -51,14 +51,14 @@ int size = *p++; int i; - struct msgid_classinfo *c = sebsd_ss_malloc + struct msgid_classinfo *c = sebsd_malloc (sizeof(int) * nclasses + sizeof(struct msgid_classinfo), M_WAITOK); c->baseid = msgid; c->nclasses = nclasses; for (i = 0; i < nclasses; i++) c->classes[i] = *p++; for (i = msgid; i < msgid + size; i++) { - int *ip = sebsd_ss_malloc(sizeof(int), M_WAITOK); + int *ip = sebsd_malloc(sizeof(int), M_WAITOK); *ip = i; hashtab_insert(msgid2class, ip, c); } ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/ss/queue.c#4 (text+ko) ==== @@ -22,7 +22,7 @@ { queue_t q; - q = (queue_t) sebsd_ss_malloc(sizeof(struct queue_info), + q = (queue_t) sebsd_malloc(sizeof(struct queue_info), M_WAITOK); if (q == NULL) return NULL; @@ -40,7 +40,7 @@ if (!q) return -1; - newnode = (queue_node_ptr_t) sebsd_ss_malloc(sizeof(struct queue_node), + newnode = (queue_node_ptr_t) sebsd_malloc(sizeof(struct queue_node), M_WAITOK); if (newnode == NULL) return -1; @@ -66,7 +66,7 @@ if (!q) return -1; - newnode = (queue_node_ptr_t) sebsd_ss_malloc(sizeof(struct queue_node), + newnode = (queue_node_ptr_t) sebsd_malloc(sizeof(struct queue_node), M_WAITOK); if (newnode == NULL) return -1; @@ -103,7 +103,7 @@ q->tail = NULL; e = node->element; - sebsd_ss_free(node); + sebsd_free(node); return e; } @@ -132,10 +132,10 @@ while (p != NULL) { temp = p; p = p->next; - sebsd_ss_free(temp); + sebsd_free(temp); } - sebsd_ss_free(q); + sebsd_free(q); } int queue_map(queue_t q, int (*f) (queue_element_t, void *), void *vp) @@ -188,7 +188,7 @@ temp = p; p = p->next; g(temp->element, vp); - sebsd_ss_free(temp); + sebsd_free(temp); } else { last = p; p = p->next; From owner-p4-projects@FreeBSD.ORG Fri Oct 21 15:53:05 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 7225716A421; Fri, 21 Oct 2005 15:53:05 +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 15D0C16A41F for ; Fri, 21 Oct 2005 15:53:05 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D40B343D45 for ; Fri, 21 Oct 2005 15:53:04 +0000 (GMT) (envelope-from millert@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 j9LFr4BM010438 for ; Fri, 21 Oct 2005 15:53:04 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9LFr4L2010435 for perforce@freebsd.org; Fri, 21 Oct 2005 15:53:04 GMT (envelope-from millert@freebsd.org) Date: Fri, 21 Oct 2005 15:53:04 GMT Message-Id: <200510211553.j9LFr4L2010435@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85651 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: Fri, 21 Oct 2005 15:53:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=85651 Change 85651 by millert@millert_ibook on 2005/10/21 15:52:47 Remove the 2nd arg to sebsd_free() calls now that the size is always stored in the memory region. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#12 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/sebsd.c#12 (text+ko) ==== @@ -480,28 +480,28 @@ static void sebsd_destroy_cred_label(struct label *label) { - sebsd_free (SLOT(label), sizeof (struct task_security_struct)); + sebsd_free (SLOT(label)); SLOT(label) = NULL; } static void sebsd_destroy_vnode_label(struct label *label) { - sebsd_free (SLOT(label), sizeof (struct vnode_security_struct)); + sebsd_free (SLOT(label)); SLOT(label) = NULL; } static void sebsd_destroy_mount_label(struct label *label) { - sebsd_free (SLOT(label), sizeof (struct mount_security_struct)); + sebsd_free (SLOT(label)); SLOT(label) = NULL; } static void sebsd_destroy_mount_fs_label(struct label *label) { - sebsd_free (SLOT(label), sizeof (struct mount_fs_security_struct)); + sebsd_free (SLOT(label)); SLOT(label) = NULL; } @@ -519,7 +519,7 @@ sebsd_destroy_sysv_label(struct label *label) { - sebsd_free(SLOT(label), sizeof(struct ipc_security_struct)); + sebsd_free(SLOT(label)); SLOT(label) = NULL; } @@ -853,7 +853,7 @@ "dirent=%d\n", path, rc, dirent->sclass, newsid, dirent->sid); } - sebsd_free (path, 2 + strlen(fullpath)); + sebsd_free (path); } #if 0 @@ -892,7 +892,7 @@ __func__, path, sbsec->sid, mp->mnt_stat.f_mntonname, rc, dirent->sclass, newsid, dirent->sid); } - sebsd_free(path, strlen (fullpath) + 2); + sebsd_free(path); } static void @@ -934,7 +934,7 @@ sbsec->sid, mp->mnt_stat.f_mntonname, rc, lnksec->sclass, newsid, lnksec->sid); } - sebsd_free(path, strlen (fullpath) + 2); + sebsd_free(path); } #endif /* HAS_DEVFS_DIRENT */ From owner-p4-projects@FreeBSD.ORG Fri Oct 21 17:37: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 B0C8316A424; Fri, 21 Oct 2005 17:37:13 +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 6D77016A420 for ; Fri, 21 Oct 2005 17:37:13 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C18A43D48 for ; Fri, 21 Oct 2005 17:37:13 +0000 (GMT) (envelope-from millert@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 j9LHbDgn023977 for ; Fri, 21 Oct 2005 17:37:13 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9LHbDFJ023974 for perforce@freebsd.org; Fri, 21 Oct 2005 17:37:13 GMT (envelope-from millert@freebsd.org) Date: Fri, 21 Oct 2005 17:37:13 GMT Message-Id: <200510211737.j9LHbDFJ023974@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 85658 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: Fri, 21 Oct 2005 17:37:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=85658 Change 85658 by millert@millert_ibook on 2005/10/21 17:36:53 With the recent sebsd_malloc changes defining GFP_ATOMIC as M_NOWAIT now works as it should. Affected files ... .. //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#7 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin7/src/sedarwin/sedarwin/linux-compat.h#7 (text+ko) ==== @@ -136,8 +136,7 @@ #define kmalloc(size, flags) sebsd_malloc(size, flags) #define kfree(v) sebsd_free(v) #define __get_free_page(flags) sebsd_malloc(PAGE_SIZE, flags) -/* XXX - GFP_ATOMIC should be M_NOWAIT but zone alloc chokes in avc init */ -#define GFP_ATOMIC M_WAITOK +#define GFP_ATOMIC M_NOWAIT #define GFP_KERNEL M_WAITOK #ifdef __APPLE__ From owner-p4-projects@FreeBSD.ORG Sat Oct 22 06:25:48 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 534DD16A421; Sat, 22 Oct 2005 06:25:48 +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 2F19116A41F for ; Sat, 22 Oct 2005 06:25:48 +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 005DE43D45 for ; Sat, 22 Oct 2005 06:25:47 +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 j9M6PlqH076401 for ; Sat, 22 Oct 2005 06:25:47 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9M6PlxK076398 for perforce@freebsd.org; Sat, 22 Oct 2005 06:25:47 GMT (envelope-from alc@freebsd.org) Date: Sat, 22 Oct 2005 06:25:47 GMT Message-Id: <200510220625.j9M6PlxK076398@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 85677 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: Sat, 22 Oct 2005 06:25:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=85677 Change 85677 by alc@alc_home on 2005/10/22 06:25:01 Use preempt_contig_alloc() instead of buddy_alloc(). Affected files ... .. //depot/projects/superpages/src/sys/vm/vm_page.c#4 edit Differences ... ==== //depot/projects/superpages/src/sys/vm/vm_page.c#4 (text+ko) ==== @@ -795,9 +795,7 @@ VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); top = reserve_lookup(&level, object, pindex); if (top == NULL && level > -1) { - mtx_lock_spin(&vm_page_queue_free_mtx); - m = buddy_alloc(SP_ORDER(level), FALSE); - mtx_unlock_spin(&vm_page_queue_free_mtx); + m = preempt_contig_alloc(&level, TRUE); if (m != NULL) { top = new_reserve(level, object); top->first_page = m; From owner-p4-projects@FreeBSD.ORG Sat Oct 22 06:33:59 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 BC0C216A421; Sat, 22 Oct 2005 06:33:58 +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 7F28516A41F for ; Sat, 22 Oct 2005 06:33:58 +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 49B4B43D48 for ; Sat, 22 Oct 2005 06:33:58 +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 j9M6XwFs076654 for ; Sat, 22 Oct 2005 06:33:58 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9M6XvOV076651 for perforce@freebsd.org; Sat, 22 Oct 2005 06:33:57 GMT (envelope-from alc@freebsd.org) Date: Sat, 22 Oct 2005 06:33:57 GMT Message-Id: <200510220633.j9M6XvOV076651@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 85678 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: Sat, 22 Oct 2005 06:33:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=85678 Change 85678 by alc@alc_home on 2005/10/22 06:33:22 Temporarily disable idle zeroing of physical pages. At present, it is a pessimization. Affected files ... .. //depot/projects/superpages/src/sys/vm/vm_zeroidle.c#3 edit Differences ... ==== //depot/projects/superpages/src/sys/vm/vm_zeroidle.c#3 (text+ko) ==== @@ -58,7 +58,7 @@ SYSCTL_INT(_vm_stats_misc, OID_AUTO, cnt_prezero, CTLFLAG_RD, &cnt_prezero, 0, ""); -static int idlezero_enable_default = 1; +static int idlezero_enable_default = 0; TUNABLE_INT("vm.idlezero_enable", &idlezero_enable_default); /* Defer setting the enable flag until the kthread is running. */ static int idlezero_enable = 0; From owner-p4-projects@FreeBSD.ORG Sat Oct 22 13:13:32 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 8799716A421; Sat, 22 Oct 2005 13:13:31 +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 5CE7116A41F for ; Sat, 22 Oct 2005 13:13:31 +0000 (GMT) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2A8C443D66 for ; Sat, 22 Oct 2005 13:13:17 +0000 (GMT) (envelope-from bz@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 j9MDDHJV006241 for ; Sat, 22 Oct 2005 13:13:17 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9MDDHAZ006238 for perforce@freebsd.org; Sat, 22 Oct 2005 13:13:17 GMT (envelope-from bz@freebsd.org) Date: Sat, 22 Oct 2005 13:13:17 GMT Message-Id: <200510221313.j9MDDHAZ006238@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 85698 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: Sat, 22 Oct 2005 13:13:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=85698 Change 85698 by bz@bz_y2k_i386 on 2005/10/22 13:13:00 IFC synch with KAME done by suz (netinet6/nd) Affected files ... .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/pmap.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/alpha/alpha/promcons.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/alpha/tlsb/zs_tlsb.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/cpu_switch.S#3 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/identcpu.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/machdep.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/amd64/conf/NOTES#4 integrate .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_space.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_timer.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/smbios.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/elf_freebsd.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/libofw.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_console.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_memory.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/openfirm.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/ndis/ndis_var.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/ndis/ntoskrnl_var.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/ndis/subr_hal.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/ndis/subr_ndis.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/ndis/subr_ntoskrnl.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/compat/svr4/svr4_siginfo.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/conf/Makefile.arm#3 integrate .. //depot/projects/fast_ipsec/src/sys/conf/files#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/bfe/if_bfe.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/bge/if_bge.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/cx/if_cx.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/cy/cy.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/dc/dcphy.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/dc/pnphy.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/dcons/dcons_os.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/digi/digi.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ed/if_ed_isa.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ed/if_ed_rtl80x9.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/em/if_em.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/em/if_em.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/em/if_em_hw.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/exca/exca.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/if_ndis/if_ndisvar.h#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/kbdmux/kbdmux.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/lge/if_lge.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/mii/brgphy.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/mii/dcphy.c#3 delete .. //depot/projects/fast_ipsec/src/sys/dev/mii/pnphy.c#3 delete .. //depot/projects/fast_ipsec/src/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/ofw/ofw_console.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/pccbb/pccbb_isa.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/rc/rc.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/re/if_re.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/dev/rp/rp.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/sab/sab.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/si/si.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/sio/sio.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/uart/uart_tty.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/if_aue.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/if_axe.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/if_rue.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/if_udav.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/ubser.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/ucom.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/usb/ucycom.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/dev/vge/if_vge.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/dev/zs/zs.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/fs/devfs/devfs_vnops.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/fs/nullfs/null_vfsops.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/fs/nwfs/nwfs_vnops.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/fs/udf/udf_vfsops.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/fs/unionfs/union_vnops.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/gnu/fs/ext2fs/ext2_lookup.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/gnu/fs/reiserfs/reiserfs_namei.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/i386/i386/identcpu.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/i386/i386/pmap.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/i386/svr4/svr4_machdep.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/pmap.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/ia64/ia64/ssc.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/isofs/cd9660/cd9660_lookup.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/isofs/cd9660/cd9660_vfsops.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/isofs/cd9660/iso.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_conf.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_linker.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_malloc.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/kern_mutex.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/link_elf.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/subr_witness.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/kern/syscalls.master#4 integrate .. //depot/projects/fast_ipsec/src/sys/kern/tty.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/tty_compat.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/uipc_cow.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/kern/uipc_sem.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/modules/dc/Makefile#3 integrate .. //depot/projects/fast_ipsec/src/sys/modules/if_gif/Makefile#3 integrate .. //depot/projects/fast_ipsec/src/sys/modules/mii/Makefile#3 integrate .. //depot/projects/fast_ipsec/src/sys/net/if_sl.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/net/ppp_tty.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netgraph/ng_tty.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/icmp6.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet/tcp_input.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/README#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/icmp6.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/in6.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/in6.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/in6_ifattach.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/in6_ifattach.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/in6_src.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/in6_var.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/ip6_input.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/ip6_mroute.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/ip6_output.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/ip6_var.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/mld6.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/mld6_var.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/nd6.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/nd6.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/nd6_nbr.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/nd6_rtr.c#2 integrate .. //depot/projects/fast_ipsec/src/sys/netinet6/raw_ip6.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pc98/cbus/sio.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pc98/pc98/machdep.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_dc.c#3 delete .. //depot/projects/fast_ipsec/src/sys/pci/if_dcreg.h#2 delete .. //depot/projects/fast_ipsec/src/sys/pci/if_rl.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_sf.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_sis.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_sk.c#4 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_ste.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_tl.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_vr.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/pci/if_wb.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/posix4/_semaphore.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/sys/sysproto.h#4 integrate .. //depot/projects/fast_ipsec/src/sys/sys/tty.h#2 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ffs/ffs_vfsops.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/ufs/ufs/ufs_lookup.c#3 integrate .. //depot/projects/fast_ipsec/src/sys/vm/uma_core.c#3 integrate Differences ... ==== //depot/projects/fast_ipsec/src/sys/alpha/alpha/pmap.c#2 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.179 2005/09/03 18:20:18 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.180 2005/10/21 19:42:42 ade Exp $"); #include #include @@ -1367,6 +1367,8 @@ pv_entry_t pv; pv = get_pv_entry(); + if (pv == NULL) + panic("no pv entries: increase vm.pmap.shpgperproc"); pv->pv_va = va; pv->pv_pmap = pmap; pv->pv_ptem = mpte; ==== //depot/projects/fast_ipsec/src/sys/alpha/alpha/promcons.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.44 2005/01/05 20:05:49 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/promcons.c,v 1.45 2005/10/16 20:58:21 phk Exp $"); #include #include @@ -108,7 +108,6 @@ if ((tp->t_state & TS_ISOPEN) == 0) { tp->t_state |= TS_CARR_ON; ttyconsolemode(tp, 0); - ttsetwater(tp); setuptimeout = 1; } else if ((tp->t_state & TS_XCLUDE) && suser(td)) { ==== //depot/projects/fast_ipsec/src/sys/alpha/tlsb/zs_tlsb.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.49 2004/10/18 21:51:24 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/tlsb/zs_tlsb.c,v 1.50 2005/10/16 20:58:21 phk Exp $"); #include #include @@ -284,7 +284,6 @@ if ((tp->t_state & TS_ISOPEN) == 0) { tp->t_state |= TS_CARR_ON; ttyconsolemode(tp, 0); - ttsetwater(tp); setuptimeout = 1; } else if ((tp->t_state & TS_XCLUDE) && suser(td)) { splx(s); ==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/cpu_switch.S#3 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.153 2005/09/27 21:10:10 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.154 2005/10/17 23:10:31 davidxu Exp $ */ #include @@ -109,22 +109,7 @@ movl %es,PCB_ES(%r8) movl %fs,PCB_FS(%r8) movl %gs,PCB_GS(%r8) - jmp 2f 1: - - /* Save userland %fs */ - movl $MSR_FSBASE,%ecx - rdmsr - movl %eax,PCB_FSBASE(%r8) - movl %edx,PCB_FSBASE+4(%r8) - - /* Save userland %gs */ - movl $MSR_KGSBASE,%ecx - rdmsr - movl %eax,PCB_GSBASE(%r8) - movl %edx,PCB_GSBASE+4(%r8) -2: - /* Test if debug registers should be saved. */ testl $PCB_DBREGS,PCB_FLAGS(%r8) jz 1f /* no, skip over */ ==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/identcpu.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.137 2005/10/14 22:52:00 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.140 2005/10/17 23:23:20 jkim Exp $"); #include "opt_cpu.h" @@ -334,6 +334,15 @@ ); } + if (cpu_feature & CPUID_HTT && strcmp(cpu_vendor, + "AuthenticAMD") == 0) { + cpu_feature &= ~CPUID_HTT; + if (bootverbose) + printf("\nHTT bit cleared - FreeBSD" + " does not have licenseing issues" + " requiring it.\n"); + } + /* * If this CPU supports HTT or CMP then mention the * number of physical/logical cores it contains. @@ -348,9 +357,11 @@ cpuid_count(4, 0, regs); cmp = ((regs[0] & 0xfc000000) >> 26) + 1; } - if (htt > 1) - printf("\n Physical/Logical cores: %d/%d", - cmp, htt); + if (cmp > 1) + printf("\n Cores per package: %d", cmp); + if ((htt / cmp) > 1) + printf("\n Logical CPUs per core: %d", + htt / cmp); } } /* Avoid ugly blank lines: only print newline when we have to. */ ==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/machdep.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.641 2005/10/14 12:43:43 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.642 2005/10/17 23:10:31 davidxu Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -560,10 +560,12 @@ struct trapframe *regs = td->td_frame; struct pcb *pcb = td->td_pcb; + critical_enter(); wrmsr(MSR_FSBASE, 0); wrmsr(MSR_KGSBASE, 0); /* User value while we're in the kernel */ pcb->pcb_fsbase = 0; pcb->pcb_gsbase = 0; + critical_exit(); load_ds(_udatasel); load_es(_udatasel); load_fs(_udatasel); ==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#2 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.528 2005/09/04 19:06:26 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.529 2005/10/21 19:42:42 ade Exp $"); /* * Manages physical address maps. @@ -1508,6 +1508,8 @@ pv_entry_t pv; pv = get_pv_entry(); + if (pv == NULL) + panic("no pv entries: increase vm.pmap.shpgperproc"); pv->pv_va = va; pv->pv_pmap = pmap; ==== //depot/projects/fast_ipsec/src/sys/amd64/conf/NOTES#4 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.44 2005/10/14 17:22:28 ru Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.45 2005/10/17 18:35:57 jhb Exp $ # # @@ -325,9 +325,6 @@ hint.pbio.0.port="0x360" device smbios device vpd -# sx device is i386 and pc98 only at the moment. -device sx -options SX_DEBUG # HOT1 Xilinx 6200 card (http://www.vcc.com/) device xrpu ==== //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_space.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_space.c,v 1.3 2005/02/13 18:20:39 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_space.c,v 1.4 2005/10/20 20:30:51 cognet Exp $"); #include #include @@ -257,23 +257,11 @@ i80321_mem_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int flags, bus_space_handle_t *bshp) { - - vm_offset_t va; - uint32_t busbase; - vm_paddr_t pa, endpa, physbase; + vm_paddr_t pa, endpa; - /* - * Found the window -- PCI MEM space is not mapped by allocating - * some kernel VA space and mapping the pages with pmap_enter(). - * pmap_enter() will map unmanaged pages as non-cacheable. - */ - pa = trunc_page((bpa - busbase) + physbase); - endpa = round_page(((bpa - busbase) + physbase) + size); pa = trunc_page(bpa); endpa = round_page(bpa + size); - *bshp = va + (bpa & PAGE_MASK); - *bshp = pa; *bshp = (vm_offset_t)pmap_mapdev(pa, endpa - pa); return (0); ==== //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/i80321_timer.c#3 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_timer.c,v 1.6 2005/10/03 14:19:55 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321_timer.c,v 1.7 2005/10/17 14:51:01 cognet Exp $"); #include #include @@ -72,8 +72,6 @@ static uint32_t counts_per_hz; -static uint32_t offset = 0; -static uint32_t last = -1; static int ticked = 0; #define COUNTS_PER_SEC 200000000 /* 200MHz */ @@ -83,7 +81,7 @@ i80321_timer_get_timecount, /* get_timecount */ NULL, /* no poll_pps */ ~0u, /* counter_mask */ - COUNTS_PER_SEC, /* frequency */ + COUNTS_PER_SEC * 3, /* frequency */ "i80321 timer", /* name */ 1000 /* quality */ }; @@ -236,19 +234,11 @@ static unsigned i80321_timer_get_timecount(struct timecounter *tc) { - uint32_t cur = tcr0_read(); - - if (cur > last && last != -1) { - offset += counts_per_hz; - if (ticked > 0) - ticked--; - } - if (ticked) { - offset += ticked * counts_per_hz; - ticked = 0; - } - last = cur; - return (counts_per_hz - cur + offset); + uint32_t ret; + + __asm __volatile("mrc p14, 0, %0, c1, c0, 0\n" + : "=r" (ret)); + return (ret); } /* @@ -329,6 +319,13 @@ tc_init(&i80321_timer_timecounter); restore_interrupts(oldirqstate); + rid = 0; + /* Enable the clock count register. */ + __asm __volatile("mrc p14, 0, %0, c0, c0, 0\n" : "=r" (rid)); + rid &= ~(1 << 3); + rid |= (1 << 2) | 1; + __asm __volatile("mcr p14, 0, %0, c0, c0, 0\n" + : : "r" (rid)); } ==== //depot/projects/fast_ipsec/src/sys/boot/i386/boot2/boot2.c#4 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.76 2005/10/16 01:55:35 sobomax Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.78 2005/10/16 20:22:36 sobomax Exp $"); #include #include @@ -60,15 +60,14 @@ /* 0x12 is reserved for boot programs. */ /* 0x13 is reserved for boot programs. */ #define RBX_PAUSE 0x14 /* -p */ +#define RBX_QUIET 0x15 /* -q */ +#define RBX_NOINTR 0x1c /* -n */ /* 0x1d is reserved for log2(RB_MULTIPLE) and is just misnamed here. */ #define RBX_DUAL 0x1d /* -D */ /* 0x1f is reserved for log2(RB_BOOTINFO). */ -/* group of internal options below */ -#define RBX_NOINTR 0x20 /* -n */ -#define RBX_QUIET 0x21 /* -q */ /* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */ -#define RBX_MASK 0xffffffff +#define RBX_MASK 0x2011ffff #define PATH_CONFIG "/boot.config" #define PATH_BOOT3 "/boot/loader" @@ -90,7 +89,7 @@ #define TYPE_MAXHARD TYPE_DA #define TYPE_FD 2 -#define OPT_CHECK(opt) ((opts >> (opt)) & 0x1) +#define OPT_CHECK(opt) ((opts >> (opt)) & 1) extern uint32_t _end; @@ -124,7 +123,7 @@ } dsk; static char cmd[512]; static char kname[1024]; -static uint64_t opts; +static uint32_t opts; static int comspeed = SIOSPD; static struct bootinfo bootinfo; static uint8_t ioctrl = IO_KEYBOARD; @@ -273,10 +272,10 @@ for (;;) { if (!autoboot || !OPT_CHECK(RBX_QUIET)) printf("\nFreeBSD/i386 boot\n" - "Default: %u:%s(%u,%c)%s\n" - "boot: ", - dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit, - 'a' + dsk.part, kname); + "Default: %u:%s(%u,%c)%s\n" + "boot: ", + dsk.drive & DRV_MASK, dev_nm[dsk.type], dsk.unit, + 'a' + dsk.part, kname); if (ioctrl & IO_SERIAL) sio_flush(); if (!autoboot || keyhit(5*SECOND)) @@ -300,7 +299,7 @@ static void load(void) { - static union { + union { struct exec ex; Elf32_Ehdr eh; } hdr; @@ -387,7 +386,7 @@ bootinfo.bi_esymtab = VTOP(p); bootinfo.bi_kernelname = VTOP(kname); bootinfo.bi_bios_dev = dsk.drive; - __exec((caddr_t)addr, RB_BOOTINFO | (uint32_t)(opts & RBX_MASK), + __exec((caddr_t)addr, RB_BOOTINFO | (opts & RBX_MASK), MAKEBOOTDEV(dev_maj[dsk.type], 0, dsk.slice, dsk.unit, dsk.part), 0, 0, 0, VTOP(&bootinfo)); } @@ -414,7 +413,7 @@ if (*(uint8_t *)PTOV(0x496) & 0x10) { cp = "yes"; } else { - opts |= (uint64_t)1 << RBX_DUAL | (uint64_t)1 << RBX_SERIAL; + opts |= 1 << RBX_DUAL | 1 << RBX_SERIAL; cp = "no"; } printf("Keyboard: %s\n", cp); @@ -432,10 +431,10 @@ for (i = 0; c != optstr[i]; i++) if (i == NOPT - 1) return -1; - opts ^= (uint64_t)1 << flags[i]; + opts ^= 1 << flags[i]; } - ioctrl = opts & (uint64_t)1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) : - opts & (uint64_t)1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD; + ioctrl = opts & 1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) : + opts & 1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD; if (ioctrl & IO_SERIAL) sio_init(115200 / comspeed); } else { ==== //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/smbios.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.2 2005/07/27 19:11:10 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.3 2005/10/18 20:03:31 jkim Exp $"); #include #include @@ -54,6 +54,9 @@ #define SMBIOS_SIG "_SM_" #define SMBIOS_DMI_SIG "_DMI_" +static u_int8_t smbios_enabled_sockets = 0; +static u_int8_t smbios_populated_sockets = 0; + static u_int8_t *smbios_parse_table(const u_int8_t *dmi); static void smbios_setenv(const char *env, const u_int8_t *dmi, const int offset); @@ -66,6 +69,7 @@ u_int8_t *smbios, *dmi, *addr; u_int16_t i, length, count; u_int32_t paddr; + char buf[4]; /* locate and validate the SMBIOS */ smbios = smbios_sigsearch(PTOV(SMBIOS_START), SMBIOS_LENGTH); @@ -79,6 +83,10 @@ for (dmi = addr = PTOV(paddr), i = 0; dmi - addr < length && i < count; i++) dmi = smbios_parse_table(dmi); + sprintf(buf, "%d", smbios_enabled_sockets); + setenv("smbios.socket.enabled", buf, 1); + sprintf(buf, "%d", smbios_populated_sockets); + setenv("smbios.socket.populated", buf, 1); } static u_int8_t * @@ -110,6 +118,30 @@ smbios_setenv("smbios.chassis.version", dmi, 0x06); break; + case 4: /* Type 4: Processor Information */ + /* + * Offset 18h: Processor Status + * + * Bit 7 Reserved, must be 0 + * Bit 6 CPU Socket Populated + * 1 - CPU Socket Populated + * 0 - CPU Socket Unpopulated + * Bit 5:3 Reserved, must be zero + * Bit 2:0 CPU Status + * 0h - Unknown + * 1h - CPU Enabled + * 2h - CPU Disabled by User via BIOS Setup + * 3h - CPU Disabled by BIOS (POST Error) + * 4h - CPU is Idle, waiting to be enabled + * 5-6h - Reserved + * 7h - Other + */ + if ((dmi[0x18] & 0x07) == 1) + smbios_enabled_sockets++; + if (dmi[0x18] & 0x40) + smbios_populated_sockets++; + break; + default: /* skip other types */ break; } ==== //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/elf_freebsd.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/elf_freebsd.c,v 1.9 2005/05/24 21:43:49 grehan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/elf_freebsd.c,v 1.10 2005/10/20 10:39:09 marius Exp $"); #include #include @@ -47,7 +47,6 @@ struct preloaded_file **result) { int r; - void *addr; r = __elfN(loadfile)(filename, dest, result); if (r != 0) ==== //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/libofw.h#2 (text+ko) ==== @@ -22,7 +22,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/ofw/libofw/libofw.h,v 1.10 2005/01/05 22:16:58 imp Exp $ + * $FreeBSD: src/sys/boot/ofw/libofw/libofw.h,v 1.11 2005/10/20 11:14:34 marius Exp $ */ #include "openfirm.h" @@ -31,7 +31,7 @@ struct ofw_devdesc { struct devsw *d_dev; int d_type; - phandle_t d_handle; + ihandle_t d_handle; char d_path[256]; }; ==== //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_console.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_console.c,v 1.10 2005/01/05 22:16:58 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_console.c,v 1.11 2005/10/20 10:39:09 marius Exp $"); #include @@ -112,7 +112,6 @@ ofw_cons_poll() { unsigned char ch; - int l; if (saved_char != -1) return 1; ==== //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/ofw_memory.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_memory.c,v 1.6 2005/01/05 22:16:58 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_memory.c,v 1.7 2005/10/20 10:39:09 marius Exp $"); #include #include @@ -120,7 +120,6 @@ { phandle_t memoryp; struct ofw_reg available; - void *base; memoryp = OF_instance_to_package(memory); OF_getprop(memoryp, "available", &available, sizeof(available)); ==== //depot/projects/fast_ipsec/src/sys/boot/ofw/libofw/openfirm.c#2 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/openfirm.c,v 1.11 2005/01/05 22:16:58 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/openfirm.c,v 1.12 2005/10/20 10:39:09 marius Exp $"); #include @@ -66,9 +66,6 @@ int (*openfirmware)(void *); -static ihandle_t stdin; -static ihandle_t stdout; - ihandle_t mmu; ihandle_t memory; @@ -396,7 +393,6 @@ phandle_t OF_finddevice(const char *device) { - int i; static struct { cell_t name; cell_t nargs; ==== //depot/projects/fast_ipsec/src/sys/compat/ndis/kern_ndis.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.87 2005/10/12 03:02:50 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.88 2005/10/18 19:52:15 wpaul Exp $"); #include #include @@ -84,7 +84,7 @@ static void ndis_sendrsrcavail_func(ndis_handle); static void ndis_intrsetup(kdpc *, device_object *, irp *, struct ndis_softc *); -static void ndis_return(kdpc *, void *, void *, void *); +static void ndis_return(device_object *, void *); static image_patch_table kernndis_functbl[] = { IMPORT_SFUNC(ndis_status_func, 4), @@ -106,6 +106,18 @@ * Note that we call ourselves 'ndisapi' to avoid a namespace * collision with if_ndis.ko, which internally calls itself * 'ndis.' + * + * Note: some of the subsystems depend on each other, so the + * order in which they're started is important. The order of + * importance is: + * + * HAL - spinlocks and IRQL manipulation + * ntoskrnl - DPC and workitem threads, object waiting + * windrv - driver/device registration + * + * The HAL should also be the last thing shut down, since + * the ntoskrnl subsystem will use spinlocks right up until + * the DPC and workitem threads are terminated. */ static int @@ -117,10 +129,10 @@ switch (cmd) { case MOD_LOAD: /* Initialize subsystems */ + hal_libinit(); + ntoskrnl_libinit(); windrv_libinit(); - hal_libinit(); ndis_libinit(); - ntoskrnl_libinit(); usbd_libinit(); patch = kernndis_functbl; @@ -137,11 +149,11 @@ case MOD_SHUTDOWN: if (TAILQ_FIRST(&ndis_devhead) == NULL) { /* Shut down subsystems */ - hal_libfini(); ndis_libfini(); - ntoskrnl_libfini(); usbd_libfini(); windrv_libfini(); + ntoskrnl_libfini(); + hal_libfini(); patch = kernndis_functbl; while (patch->ipt_func != NULL) { @@ -152,11 +164,11 @@ break; case MOD_UNLOAD: /* Shut down subsystems */ - hal_libfini(); ndis_libfini(); - ntoskrnl_libfini(); usbd_libfini(); windrv_libfini(); + ntoskrnl_libfini(); + hal_libfini(); patch = kernndis_functbl; while (patch->ipt_func != NULL) { @@ -441,32 +453,39 @@ } static void -ndis_return(dpc, arg, sysarg1, sysarg2) - kdpc *dpc; +ndis_return(dobj, arg) + device_object *dobj; void *arg; - void *sysarg1; - void *sysarg2; { - struct ndis_softc *sc; + ndis_miniport_block *block; + ndis_miniport_characteristics *ch; ndis_return_handler returnfunc; ndis_handle adapter; ndis_packet *p; uint8_t irql; + list_entry *l; + block = arg; + ch = IoGetDriverObjectExtension(dobj->do_drvobj, (void *)1); + p = arg; - sc = p->np_softc; - adapter = sc->ndis_block->nmb_miniportadapterctx; + adapter = block->nmb_miniportadapterctx; if (adapter == NULL) return; - returnfunc = sc->ndis_chars->nmc_return_packet_func; + returnfunc = ch->nmc_return_packet_func; - if (NDIS_SERIALIZED(sc->ndis_block)) - KeAcquireSpinLock(&sc->ndis_block->nmb_lock, &irql); - MSCALL2(returnfunc, adapter, p); - if (NDIS_SERIALIZED(sc->ndis_block)) - KeReleaseSpinLock(&sc->ndis_block->nmb_lock, irql); + KeAcquireSpinLock(&block->nmb_returnlock, &irql); + while (!IsListEmpty(&block->nmb_returnlist)) { + l = RemoveHeadList((&block->nmb_returnlist)); + p = CONTAINING_RECORD(l, ndis_packet, np_list); + InitializeListHead((&p->np_list)); + KeReleaseSpinLock(&block->nmb_returnlock, irql); + MSCALL2(returnfunc, adapter, p); + KeAcquireSpinLock(&block->nmb_returnlock, &irql); + } + KeReleaseSpinLock(&block->nmb_returnlock, irql); return; } @@ -477,6 +496,7 @@ void *arg; { ndis_packet *p; + ndis_miniport_block *block; if (arg == NULL) return; @@ -490,8 +510,16 @@ if (p->np_refcnt) return; - KeInitializeDpc(&p->np_dpc, kernndis_functbl[7].ipt_wrap, p); - KeInsertQueueDpc(&p->np_dpc, NULL, NULL); + block = ((struct ndis_softc *)p->np_softc)->ndis_block; + + KeAcquireSpinLockAtDpcLevel(&block->nmb_returnlock); + InitializeListHead((&p->np_list)); + InsertHeadList((&block->nmb_returnlist), (&p->np_list)); + KeReleaseSpinLockFromDpcLevel(&block->nmb_returnlock); + + IoQueueWorkItem(block->nmb_returnitem, + (io_workitem_func)kernndis_functbl[7].ipt_wrap, + WORKQUEUE_CRITICAL, block); return; } @@ -621,8 +649,13 @@ case SYS_RES_IRQ: prd->cprd_type = CmResourceTypeInterrupt; prd->cprd_flags = 0; + /* + * Always mark interrupt resources as + * shared, since in our implementation, + * they will be. + */ prd->cprd_sharedisp = - CmResourceShareDeviceExclusive; + CmResourceShareShared; prd->u.cprd_intr.cprd_level = brle->start; prd->u.cprd_intr.cprd_vector = brle->start; prd->u.cprd_intr.cprd_affinity = 0; @@ -1087,8 +1120,12 @@ #ifdef NDIS_REAP_TIMERS ndis_miniport_timer *t, *n; #endif + ndis_miniport_block *block; + int empty = 0; + uint8_t irql; sc = arg; + block = sc->ndis_block; #ifdef NDIS_REAP_TIMERS /* @@ -1111,6 +1148,19 @@ if (!cold) KeFlushQueuedDpcs(); + /* + * Wait for all packets to be returned. + */ + + while (1) { + KeAcquireSpinLock(&block->nmb_returnlock, &irql); + empty = IsListEmpty(&block->nmb_returnlist); + KeReleaseSpinLock(&block->nmb_returnlock, irql); + if (empty) + break; + NdisMSleep(1000); + } + NDIS_LOCK(sc); adapter = sc->ndis_block->nmb_miniportadapterctx; if (adapter == NULL) { @@ -1398,6 +1448,17 @@ ndis_miniport_block *block; struct ndis_softc *sc; uint32_t status; + int error; + + sc = device_get_softc(pdo->do_devext); + + if (sc->ndis_iftype == PCMCIABus || sc->ndis_iftype == PCIBus) { + error = bus_setup_intr(sc->ndis_dev, sc->ndis_irq, + INTR_TYPE_NET | INTR_MPSAFE, + ntoskrnl_intr, NULL, &sc->ndis_intrhand); + if (error) + return(NDIS_STATUS_FAILURE); + } status = IoCreateDevice(drv, sizeof(ndis_miniport_block), NULL, FILE_DEVICE_UNKNOWN, 0, FALSE, &fdo); @@ -1412,17 +1473,19 @@ block->nmb_physdeviceobj = pdo; block->nmb_nextdeviceobj = IoAttachDeviceToDeviceStack(fdo, pdo); KeInitializeSpinLock(&block->nmb_lock); - InitializeListHead(&block->nmb_parmlist); + KeInitializeSpinLock(&block->nmb_returnlock); KeInitializeEvent(&block->nmb_getevent, EVENT_TYPE_NOTIFY, TRUE); KeInitializeEvent(&block->nmb_setevent, EVENT_TYPE_NOTIFY, TRUE); KeInitializeEvent(&block->nmb_resetevent, EVENT_TYPE_NOTIFY, TRUE); + InitializeListHead(&block->nmb_parmlist); + InitializeListHead(&block->nmb_returnlist); + block->nmb_returnitem = IoAllocateWorkItem(fdo); /* * Stash pointers to the miniport block and miniport * characteristics info in the if_ndis softc so the * UNIX wrapper driver can get to them later. */ - sc = device_get_softc(pdo->do_devext); sc->ndis_block = block; sc->ndis_chars = IoGetDriverObjectExtension(drv, (void *)1); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Oct 22 19:05: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 59F2116A422; Sat, 22 Oct 2005 19:05: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 18FC616A41F for ; Sat, 22 Oct 2005 19:05:11 +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 CC6A143D45 for ; Sat, 22 Oct 2005 19:05:10 +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 j9MJ5AUG026129 for ; Sat, 22 Oct 2005 19:05:10 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9MJ5AC2026126 for perforce@freebsd.org; Sat, 22 Oct 2005 19:05:10 GMT (envelope-from alc@freebsd.org) Date: Sat, 22 Oct 2005 19:05:10 GMT Message-Id: <200510221905.j9MJ5AC2026126@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 85709 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: Sat, 22 Oct 2005 19:05:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=85709 Change 85709 by alc@alc_home on 2005/10/22 19:04:57 Rename buddy_alloc() to buddy_alloc_locked(). Introduce buddy_alloc(); buddy_alloc() acquires and releases the free page queues lock. Affected files ... .. //depot/projects/superpages/src/sys/vm/vm_buddy.c#2 edit .. //depot/projects/superpages/src/sys/vm/vm_buddy.h#2 edit .. //depot/projects/superpages/src/sys/vm/vm_page.c#5 edit .. //depot/projects/superpages/src/sys/vm/vm_reserve.c#2 edit Differences ... ==== //depot/projects/superpages/src/sys/vm/vm_buddy.c#2 (text+ko) ==== @@ -153,11 +153,25 @@ } /* + * + */ +vm_page_t +buddy_alloc(int Q, boolean_t prefer_zero) +{ + vm_page_t m; + + mtx_lock_spin(&vm_page_queue_free_mtx); + m = buddy_alloc_locked(Q, prefer_zero); + mtx_unlock_spin(&vm_page_queue_free_mtx); + return (m); +} + +/* * Attempts to allocate a contiguous chunk of magn pages. * Return starting phys_addr of chunk. */ vm_page_t -buddy_alloc(int Q, boolean_t prefer_zero) +buddy_alloc_locked(int Q, boolean_t prefer_zero) { int q; vm_page_t m; ==== //depot/projects/superpages/src/sys/vm/vm_buddy.h#2 (text+ko) ==== @@ -3,4 +3,5 @@ void buddy_invariants(char *, int); vm_page_t buddy_alloc(int magn, boolean_t prefer_zero); +vm_page_t buddy_alloc_locked(int magn, boolean_t prefer_zero); void buddy_free(vm_page_t m, int magn); ==== //depot/projects/superpages/src/sys/vm/vm_page.c#5 (text+ko) ==== @@ -829,7 +829,7 @@ * Allocate from the free queue if the number of free pages * exceeds the minimum for the request class. */ - m = buddy_alloc(0, (req & VM_ALLOC_ZERO) != 0); + m = buddy_alloc_locked(0, (req & VM_ALLOC_ZERO) != 0); } else if (page_req != VM_ALLOC_INTERRUPT) { mtx_unlock_spin(&vm_page_queue_free_mtx); /* ==== //depot/projects/superpages/src/sys/vm/vm_reserve.c#2 (text+ko) ==== @@ -509,9 +509,7 @@ retry: if (free_pool) { /* 1. try free pool at level level or higher */ - mtx_lock_spin(&vm_page_queue_free_mtx); m = buddy_alloc(SP_ORDER(lev), FALSE); - mtx_unlock_spin(&vm_page_queue_free_mtx); if (m != NULL) goto done; @@ -527,9 +525,7 @@ while ( (sp = TAILQ_FIRST(&rres[l])) ) { KASSERT(sp->rql==l && sp->rqllevel,("preempt_contig_alloc: rql invalid")); preempt(sp, lev, NULL); - mtx_lock_spin(&vm_page_queue_free_mtx); m = buddy_alloc(SP_ORDER(lev), FALSE); - mtx_unlock_spin(&vm_page_queue_free_mtx); if (m != NULL) goto done; } @@ -541,9 +537,7 @@ if (free_pool) { /* 4, 6, 8... */ - mtx_lock_spin(&vm_page_queue_free_mtx); m = buddy_alloc(SP_ORDER(lev), FALSE); - mtx_unlock_spin(&vm_page_queue_free_mtx); if (m != NULL) goto done; } @@ -552,9 +546,7 @@ while ( (sp = TAILQ_FIRST(&rres[lev])) ) { KASSERT(sp->rql==lev && sp->rqllevel,("preempt_alloc_contig")); preempt(sp, lev, NULL); - mtx_lock_spin(&vm_page_queue_free_mtx); m = buddy_alloc(SP_ORDER(lev), FALSE); - mtx_unlock_spin(&vm_page_queue_free_mtx); if (m != NULL) goto done; } From owner-p4-projects@FreeBSD.ORG Sat Oct 22 21:11:57 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 92E1E16A421; Sat, 22 Oct 2005 21:11:56 +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 506F316A41F for ; Sat, 22 Oct 2005 21:11:56 +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 CB5A743D46 for ; Sat, 22 Oct 2005 21:11:55 +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 j9MLBt1h039678 for ; Sat, 22 Oct 2005 21:11:55 GMT (envelope-from alc@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9MLBhmF039675 for perforce@freebsd.org; Sat, 22 Oct 2005 21:11:43 GMT (envelope-from alc@freebsd.org) Date: Sat, 22 Oct 2005 21:11:43 GMT Message-Id: <200510222111.j9MLBhmF039675@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 85711 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: Sat, 22 Oct 2005 21:11:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=85711 Change 85711 by alc@alc_home on 2005/10/22 21:10:54 IFC @85710 Affected files ... .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/Makefile#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributing-ports/Makefile#1 branch .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributing-ports/article.sgml#1 branch .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#5 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.committers.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.staff.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/contributors/contrib.who.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/articles/problem-reports/article.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/l10n/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml#3 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/handbook/users/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/books/porters-handbook/book.sgml#4 integrate .. //depot/projects/superpages/doc/en_US.ISO8859-1/share/sgml/authors.ent#4 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/desktop/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/fr_FR.ISO8859-1/books/handbook/introduction/chapter.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml#2 integrate .. //depot/projects/superpages/doc/ru_RU.KOI8-R/share/sgml/translators.ent#2 integrate .. //depot/projects/superpages/doc/share/pgpkeys/ariff.key#1 branch .. //depot/projects/superpages/doc/share/pgpkeys/pgpkeys.ent#3 integrate .. //depot/projects/superpages/doc/share/sgml/freebsd.ent#2 integrate .. //depot/projects/superpages/doc/share/sgml/mirrors.xml#3 integrate .. //depot/projects/superpages/src/Makefile.inc1#2 integrate .. //depot/projects/superpages/src/ObsoleteFiles.inc#3 integrate .. //depot/projects/superpages/src/bin/sh/histedit.c#2 integrate .. //depot/projects/superpages/src/contrib/cpio/lib/argp.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/COPYING#2 integrate .. //depot/projects/superpages/src/contrib/groff/ChangeLog#2 integrate .. //depot/projects/superpages/src/contrib/groff/ChangeLog.115#1 branch .. //depot/projects/superpages/src/contrib/groff/ChangeLog.116#1 branch .. //depot/projects/superpages/src/contrib/groff/ChangeLog.117#1 branch .. //depot/projects/superpages/src/contrib/groff/ChangeLog.118#1 branch .. //depot/projects/superpages/src/contrib/groff/FDL#2 integrate .. //depot/projects/superpages/src/contrib/groff/FREEBSD-upgrade#2 integrate .. //depot/projects/superpages/src/contrib/groff/INSTALL#2 integrate .. //depot/projects/superpages/src/contrib/groff/INSTALL.gen#2 integrate .. //depot/projects/superpages/src/contrib/groff/LICENSE#1 branch .. //depot/projects/superpages/src/contrib/groff/MANIFEST#2 integrate .. //depot/projects/superpages/src/contrib/groff/MORE.STUFF#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile.ccpg#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile.comm#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile.cpg#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile.in#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile.init#2 integrate .. //depot/projects/superpages/src/contrib/groff/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/NEWS#2 integrate .. //depot/projects/superpages/src/contrib/groff/PROBLEMS#2 integrate .. //depot/projects/superpages/src/contrib/groff/PROJECTS#2 integrate .. //depot/projects/superpages/src/contrib/groff/README#2 integrate .. //depot/projects/superpages/src/contrib/groff/README.MinGW#1 branch .. //depot/projects/superpages/src/contrib/groff/README.WIN32#2 delete .. //depot/projects/superpages/src/contrib/groff/REVISION#2 integrate .. //depot/projects/superpages/src/contrib/groff/TODO#2 integrate .. //depot/projects/superpages/src/contrib/groff/aclocal.m4#2 integrate .. //depot/projects/superpages/src/contrib/groff/configure#2 integrate .. //depot/projects/superpages/src/contrib/groff/configure.ac#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/eqn2graph/eqn2graph.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/eqn2graph/eqn2graph.sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/ChangeLog#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/Makefile.sub#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/README#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/gdiffmk.man#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/gdiffmk.sh#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/file1#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/file2#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/runtests.in#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/test_baseline#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/test_baseline10#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/test_baseline6#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/test_baseline7#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/test_baseline8#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/gdiffmk/tests/test_baseline9#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/grap2graph/Makefile.sub#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/grap2graph/grap2graph.man#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/grap2graph/grap2graph.sh#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/ChangeLog#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/README#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/README_SH#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/TODO#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/groffer.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/groffer.sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/groffer/groffer2.sh#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mm/ChangeLog#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mm/groff_mm.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mm/m.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mm/mmroff.pl#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/BUGS#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/ChangeLog#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/NEWS#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/TODO#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/copyright#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/README.mom#2 delete .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/README.txt#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/elvis_syntax#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/elvis_syntax.new#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/macros.mom#2 delete .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/sample_docs.mom#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/typeset.mom#2 delete .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/typesetting.mom#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/examples/typewrite.mom#2 delete .. //depot/projects/superpages/src/contrib/groff/contrib/mom/groff_mom.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/appendices.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/color.html#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/cover.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/definitions.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/docelement.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/docprocessing.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/goodies.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/headfootpage.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/inlines.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/intro.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/letters.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/macrolist.html#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/rectoverso.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/refer.html#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/reserved.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/toc.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/typemacdoc.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/typesetting.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/momdoc/using.html#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/mom/om.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/ChangeLog#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/Makefile.sub#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/PROBLEMS#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/README#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/TODO#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/cover.ms#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/pdfmark.ms#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/pdfmark.tmac#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/pdfroff.man#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/pdfroff.sh#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pdfmark/spdf.tmac#1 branch .. //depot/projects/superpages/src/contrib/groff/contrib/pic2graph/pic2graph.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/contrib/pic2graph/pic2graph.sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/Makefile.in#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/fdl.texi#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/fixinfo.sh#1 branch .. //depot/projects/superpages/src/contrib/groff/doc/groff#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/groff-1#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/groff-10#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-11#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-2#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/groff-3#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/groff-4#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-5#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-6#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-7#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-8#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff-9#2 delete .. //depot/projects/superpages/src/contrib/groff/doc/groff.css#1 branch .. //depot/projects/superpages/src/contrib/groff/doc/groff.texinfo#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/meref.me#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/pic.ms#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/texinfo.tex#2 integrate .. //depot/projects/superpages/src/contrib/groff/doc/webpage.ms#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devdvi/generate/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devhtml/DESC.proto#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devhtml/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devhtml/R.proto#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/AB#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/ABI#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/AI#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/ALBB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/ALBR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/AOB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/AOI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/AOR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/AR#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/CB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/CBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/CI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/CLARENDON#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/CORONET#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/CR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/GB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/GBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/GI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/GR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/LGB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/LGI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/LGR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/MARIGOLD#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/OB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/OBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/OI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/OR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/S#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/SYMBOL#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TNRB#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TNRBI#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TNRI#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TNRR#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/TR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UCB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UCBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UCI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UCR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/UR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/WINGDINGS#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/generate/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/generate/special.awk#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/generate/special.map#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/generate/symbol.map#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devlj4/generate/text.map#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devlj4/generate/wingdings.map#1 branch .. //depot/projects/superpages/src/contrib/groff/font/devps/AB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/ABI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/AI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/AR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HNB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HNBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HNI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HNR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/HR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/NB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/NBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/NI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/NR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/PB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/PBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/PI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/PR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/S#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/SS#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/TB#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/TBI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/TI#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/TR#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/generate/Makefile#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/generate/afmname#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/generate/textmap#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/prologue.ps#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devps/symbolmap#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devutf8/NOTES#2 integrate .. //depot/projects/superpages/src/contrib/groff/font/devutf8/R.proto#2 integrate .. //depot/projects/superpages/src/contrib/groff/install-sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/ditroff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/groff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/groff_char.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/groff_diff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/groff_font.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/groff_out.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/groff_tmac.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/man/roff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/mkinstalldirs#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grodvi/dvi.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grodvi/grodvi.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/grohtml.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/html-table.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/html-table.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/html-text.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/html-text.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/html.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/output.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grohtml/post-html.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grolbp/lbp.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grolbp/lbp.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grolj4/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grolj4/grolj4.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grolj4/lj4.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grolj4/lj4_font.man#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/grops/grops.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grops/ps.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grops/ps.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grops/psrm.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grotty/grotty.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/grotty/tty.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/ChangeLog#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/DESC.in#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/Dvi.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/Dvi.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/DviP.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/FontMap#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/GXditview.ad#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/Makefile.sub#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/Menu.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/README#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/TODO#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/ad2c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/device.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/device.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/draw.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/font.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray1.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray2.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray3.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray4.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray5.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray6.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray7.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gray8.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/gxditview.man#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/lex.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/page.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/parse.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/xdit.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/xdit_mask.bm#1 branch .. //depot/projects/superpages/src/contrib/groff/src/devices/xditview/xditview.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/DviChar.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/XFontName.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/assert.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/cmap.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/color.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/config.hin#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/cset.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/device.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/driver.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/errarg.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/error.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/font.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/geometry.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/getopt_int.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/gettext.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/groff-getopt.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/include/html-strings.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/htmlhint.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/index.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/lib.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/macropath.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/nonposix.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/paper.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/posix.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/printer.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/ptable.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/refid.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/relocate.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/search.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/searchpath.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/stringclass.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/include/symbol.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/include/unicode.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libbib/common.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libbib/index.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libbib/linear.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libbib/map.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libbib/search.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libdriver/input.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libdriver/printer.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/assert.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/change_lf.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/cmap.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/color.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/cset.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/device.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/errarg.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/error.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/fatal.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/fmod.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/font.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/fontfile.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/geometry.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/getcwd.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/glyphuni.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/htmlhint.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/hypot.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/iftoa.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/invalid.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/itoa.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/lf.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/macropath.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/matherr.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/maxfilename.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/maxpathname.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/mksdir.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/mkstemp.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/nametoindex.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/new.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/paper.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/progname.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/progname.cpp#2 delete .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/ptable.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/quotearg.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/relocate.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/searchpath.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/spawnvp.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/strcasecmp.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/strerror.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/string.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/strsave.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/strtol.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/symbol.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/tmpfile.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/tmpname.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/unicode.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/uniglyph.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libgroff/uniuni.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libxutil/DviChar.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libxutil/Makefile.sub#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libxutil/XFontName.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/libs/libxutil/xmalloc.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/box.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/box.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/delim.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/eqn.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/eqn.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/eqn.y#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/lex.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/limit.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/list.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/main.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/mark.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/neqn.sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/other.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/over.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/pbox.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/pile.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/script.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/special.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/sqrt.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/eqn/text.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/grn/gprint.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/grn/grn.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/grn/hdb.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/grn/hgraph.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/grn/hpoint.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/grn/main.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/html/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/html/pre-html.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/html/pre-html.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/html/pushback.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/html/pushback.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/TODO#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/common.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/common.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/lex.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/main.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/object.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/object.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/output.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/pic.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/pic.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/pic.y#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/position.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/tex.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/pic/troff.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/command.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/command.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/label.y#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/ref.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/ref.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/refer.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/refer.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/refer.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/token.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/refer/token.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/soelim/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/soelim/soelim.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/soelim/soelim.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/tbl/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/tbl/main.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/tbl/table.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/tbl/table.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/preproc/tbl/tbl.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/groff/groff.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/groff/groff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/groff/pipeline.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/groff/pipeline.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/grog/grog.pl#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/grog/grog.sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/nroff/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/nroff/nroff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/nroff/nroff.sh#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/charinfo.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/column.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/dictionary.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/dictionary.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/div.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/div.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/env.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/env.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/glyphuni.cpp#2 delete .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/hvunits.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/input.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/input.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/mtsm.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/mtsm.h#1 branch .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/node.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/node.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/number.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/reg.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/reg.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/request.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/symbol.cpp#2 delete .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/symbol.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/token.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/troff.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/troff.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/unicode.cpp#2 delete .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/unicode.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/uniglyph.cpp#2 delete .. //depot/projects/superpages/src/contrib/groff/src/roff/troff/uniuni.cpp#2 delete .. //depot/projects/superpages/src/contrib/groff/src/utils/addftinfo/addftinfo.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/addftinfo/guess.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/addftinfo/guess.h#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/afmtodit/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/afmtodit/afmtodit.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/afmtodit/afmtodit.pl#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/hpftodit/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/hpftodit/hpftodit.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/hpftodit/hpftodit.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/hpftodit/hpuni.cpp#1 branch .. //depot/projects/superpages/src/contrib/groff/src/utils/indxbib/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/indxbib/indxbib.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/indxbib/signal.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/lkbib/lkbib.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/lkbib/lkbib.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/lookbib/lookbib.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/lookbib/lookbib.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/pfbtops/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/pfbtops/pfbtops.c#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/pfbtops/pfbtops.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/tfmtodit/tfmtodit.cpp#2 integrate .. //depot/projects/superpages/src/contrib/groff/src/utils/xtotroff/Makefile.in#1 branch .. //depot/projects/superpages/src/contrib/groff/src/utils/xtotroff/Makefile.sub#1 branch .. //depot/projects/superpages/src/contrib/groff/src/utils/xtotroff/xtotroff.c#1 branch .. //depot/projects/superpages/src/contrib/groff/src/utils/xtotroff/xtotroff.man#1 branch .. //depot/projects/superpages/src/contrib/groff/src/xditview/ChangeLog#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/DESC#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/Dvi.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/Dvi.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/DviChar.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/DviChar.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/DviP.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/FontMap#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/GXditview-ad.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/GXditview.ad#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/INSTALL#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/Imakefile.in#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/Menu.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/README#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/TODO#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/XFontName.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/XFontName.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/ad2c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/device.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/device.h#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/draw.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/font.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray1.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray2.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray3.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray4.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray5.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray6.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray7.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gray8.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/gxditview.man#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/lex.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/page.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/parse.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/xdit.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/xdit_mask.bm#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/xditview.c#2 delete .. //depot/projects/superpages/src/contrib/groff/src/xditview/xtotroff.c#2 delete .. //depot/projects/superpages/src/contrib/groff/test-groff#2 delete .. //depot/projects/superpages/src/contrib/groff/test-groff.in#1 branch .. //depot/projects/superpages/src/contrib/groff/tmac/Makefile.sub#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/TODO#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/X.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/Xps.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/an-old.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/composite.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/devtag.tmac#1 branch .. //depot/projects/superpages/src/contrib/groff/tmac/doc-common#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/doc-ditroff#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/doc-nroff#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/doc-old.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/doc-syms#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/doc.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/dvi.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/e.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/groff_man.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/groff_mdoc.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/groff_ms.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/groff_trace.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/groff_www.man#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/html.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/latin5.tmac#1 branch .. //depot/projects/superpages/src/contrib/groff/tmac/lbp.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/papersize.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/ps.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/s.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/trace.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/troffrc#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/troffrc-end#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/tty-char.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/tty.tmac#2 integrate .. //depot/projects/superpages/src/contrib/groff/tmac/unicode.tmac#1 branch .. //depot/projects/superpages/src/contrib/groff/tmac/www.tmac#2 integrate .. //depot/projects/superpages/src/contrib/wpa_supplicant/driver_ndis.c#2 integrate .. //depot/projects/superpages/src/etc/bluetooth/Makefile#2 integrate .. //depot/projects/superpages/src/etc/rc.d/wpa_supplicant#2 integrate .. //depot/projects/superpages/src/etc/rc.subr#3 integrate .. //depot/projects/superpages/src/games/fortune/datfiles/fortunes#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/grep/grep.c#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/Makefile.inc#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/font/Makefile.tty#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/font/devhtml/Makefile#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/font/devlj4/Makefile#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/src/devices/grolj4/Makefile#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/src/devices/xditview/Makefile#1 branch .. //depot/projects/superpages/src/gnu/usr.bin/groff/src/include/config.h#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/src/libs/libgroff/Makefile#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/src/roff/troff/Makefile#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/src/utils/hpftodit/Makefile#2 integrate .. //depot/projects/superpages/src/gnu/usr.bin/groff/tmac/Makefile#2 integrate .. //depot/projects/superpages/src/include/signal.h#2 integrate .. //depot/projects/superpages/src/lib/libarchive/Makefile#3 integrate .. //depot/projects/superpages/src/lib/libc/gen/sem.c#2 integrate .. //depot/projects/superpages/src/lib/libedit/editline.3#3 integrate .. //depot/projects/superpages/src/lib/libkvm/kvm_amd64.c#2 integrate .. //depot/projects/superpages/src/lib/libkvm/kvm_i386.c#2 integrate .. //depot/projects/superpages/src/lib/libstand/cd9660.c#2 integrate .. //depot/projects/superpages/src/libexec/tcpd/Makefile#2 integrate .. //depot/projects/superpages/src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#4 integrate .. //depot/projects/superpages/src/release/doc/zh_CN.GB2312/readme/article.sgml#3 integrate .. //depot/projects/superpages/src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml#3 integrate .. //depot/projects/superpages/src/sbin/devd/Makefile#2 integrate .. //depot/projects/superpages/src/sbin/devd/devd.cc#3 integrate .. //depot/projects/superpages/src/sbin/fsdb/fsdb.c#2 integrate .. //depot/projects/superpages/src/sbin/mdmfs/mdmfs.c#2 integrate .. //depot/projects/superpages/src/sbin/reboot/boot_i386.8#3 integrate .. //depot/projects/superpages/src/sbin/restore/restore.8#2 integrate .. //depot/projects/superpages/src/share/doc/IPv6/IMPLEMENTATION#2 integrate .. //depot/projects/superpages/src/share/examples/etc/make.conf#2 integrate .. //depot/projects/superpages/src/share/examples/ses/Makefile#2 integrate .. //depot/projects/superpages/src/share/man/man3/queue.3#2 integrate .. //depot/projects/superpages/src/share/man/man4/polling.4#3 integrate .. //depot/projects/superpages/src/share/man/man5/make.conf.5#3 integrate .. //depot/projects/superpages/src/share/termcap/termcap.src#2 integrate .. //depot/projects/superpages/src/sys/alpha/alpha/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/alpha/alpha/pmap.c#2 integrate .. //depot/projects/superpages/src/sys/alpha/alpha/promcons.c#2 integrate .. //depot/projects/superpages/src/sys/alpha/alpha/trap.c#2 integrate .. //depot/projects/superpages/src/sys/alpha/linux/linux_sysvec.c#2 integrate .. //depot/projects/superpages/src/sys/alpha/osf1/osf1_signal.c#2 integrate .. //depot/projects/superpages/src/sys/alpha/osf1/osf1_signal.h#2 integrate .. //depot/projects/superpages/src/sys/alpha/tlsb/zs_tlsb.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/amd64/cpu_switch.S#2 integrate .. //depot/projects/superpages/src/sys/amd64/amd64/identcpu.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/amd64/initcpu.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/amd64/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/superpages/src/sys/amd64/amd64/trap.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/superpages/src/sys/amd64/ia32/ia32_signal.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/ia32/ia32_syscall.c#2 integrate .. //depot/projects/superpages/src/sys/amd64/include/md_var.h#2 integrate .. //depot/projects/superpages/src/sys/amd64/include/specialreg.h#2 integrate .. //depot/projects/superpages/src/sys/amd64/linux32/linux32_sysvec.c#2 integrate .. //depot/projects/superpages/src/sys/arm/arm/machdep.c#3 integrate .. //depot/projects/superpages/src/sys/arm/arm/trap.c#2 integrate .. //depot/projects/superpages/src/sys/arm/arm/undefined.c#2 integrate .. //depot/projects/superpages/src/sys/arm/include/atomic.h#2 integrate .. //depot/projects/superpages/src/sys/arm/xscale/i80321/i80321_space.c#2 integrate .. //depot/projects/superpages/src/sys/arm/xscale/i80321/i80321_timer.c#3 integrate .. //depot/projects/superpages/src/sys/boot/i386/boot2/boot2.c#2 integrate .. //depot/projects/superpages/src/sys/boot/i386/libi386/smbios.c#2 integrate .. //depot/projects/superpages/src/sys/boot/ofw/libofw/elf_freebsd.c#2 integrate .. //depot/projects/superpages/src/sys/boot/ofw/libofw/libofw.h#2 integrate .. //depot/projects/superpages/src/sys/boot/ofw/libofw/ofw_console.c#2 integrate .. //depot/projects/superpages/src/sys/boot/ofw/libofw/ofw_memory.c#2 integrate .. //depot/projects/superpages/src/sys/boot/ofw/libofw/openfirm.c#2 integrate .. //depot/projects/superpages/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate .. //depot/projects/superpages/src/sys/compat/freebsd32/freebsd32_proto.h#2 integrate .. //depot/projects/superpages/src/sys/compat/freebsd32/freebsd32_syscall.h#2 integrate .. //depot/projects/superpages/src/sys/compat/freebsd32/freebsd32_syscalls.c#2 integrate .. //depot/projects/superpages/src/sys/compat/freebsd32/freebsd32_sysent.c#2 integrate .. //depot/projects/superpages/src/sys/compat/freebsd32/syscalls.master#2 integrate .. //depot/projects/superpages/src/sys/compat/ia32/ia32_signal.h#2 integrate .. //depot/projects/superpages/src/sys/compat/linux/linux_misc.c#2 integrate .. //depot/projects/superpages/src/sys/compat/ndis/kern_ndis.c#3 integrate .. //depot/projects/superpages/src/sys/compat/ndis/ndis_var.h#3 integrate .. //depot/projects/superpages/src/sys/compat/ndis/ntoskrnl_var.h#3 integrate .. //depot/projects/superpages/src/sys/compat/ndis/subr_hal.c#3 integrate .. //depot/projects/superpages/src/sys/compat/ndis/subr_ndis.c#3 integrate .. //depot/projects/superpages/src/sys/compat/ndis/subr_ntoskrnl.c#3 integrate .. //depot/projects/superpages/src/sys/compat/svr4/svr4_misc.c#2 integrate .. //depot/projects/superpages/src/sys/compat/svr4/svr4_siginfo.h#2 integrate .. //depot/projects/superpages/src/sys/compat/svr4/svr4_signal.h#2 integrate .. //depot/projects/superpages/src/sys/conf/Makefile.arm#4 integrate .. //depot/projects/superpages/src/sys/conf/files#5 integrate .. //depot/projects/superpages/src/sys/conf/kmod.mk#3 integrate .. //depot/projects/superpages/src/sys/conf/options#4 integrate .. //depot/projects/superpages/src/sys/dev/aac/aac.c#3 integrate .. //depot/projects/superpages/src/sys/dev/aac/aacreg.h#3 integrate .. //depot/projects/superpages/src/sys/dev/bfe/if_bfe.c#2 integrate .. //depot/projects/superpages/src/sys/dev/bge/if_bge.c#2 integrate .. //depot/projects/superpages/src/sys/dev/bge/if_bgereg.h#2 integrate .. //depot/projects/superpages/src/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/superpages/src/sys/dev/cy/cy.c#2 integrate .. //depot/projects/superpages/src/sys/dev/dc/dcphy.c#2 integrate .. //depot/projects/superpages/src/sys/dev/dc/if_dc.c#2 integrate .. //depot/projects/superpages/src/sys/dev/dc/pnphy.c#2 integrate .. //depot/projects/superpages/src/sys/dev/dcons/dcons_os.c#2 integrate .. //depot/projects/superpages/src/sys/dev/digi/digi.c#2 integrate .. //depot/projects/superpages/src/sys/dev/ed/if_ed_isa.c#3 integrate .. //depot/projects/superpages/src/sys/dev/ed/if_ed_rtl80x9.c#2 integrate .. //depot/projects/superpages/src/sys/dev/em/if_em.c#3 integrate .. //depot/projects/superpages/src/sys/dev/em/if_em.h#2 integrate .. //depot/projects/superpages/src/sys/dev/em/if_em_hw.h#2 integrate .. //depot/projects/superpages/src/sys/dev/exca/exca.c#3 integrate .. //depot/projects/superpages/src/sys/dev/if_ndis/if_ndis.c#3 integrate .. //depot/projects/superpages/src/sys/dev/if_ndis/if_ndisvar.h#3 integrate .. //depot/projects/superpages/src/sys/dev/kbdmux/kbdmux.c#2 integrate .. //depot/projects/superpages/src/sys/dev/lge/if_lge.c#3 integrate .. //depot/projects/superpages/src/sys/dev/mii/brgphy.c#2 integrate .. //depot/projects/superpages/src/sys/dev/mii/dcphy.c#2 delete .. //depot/projects/superpages/src/sys/dev/mii/pnphy.c#2 delete .. //depot/projects/superpages/src/sys/dev/nge/if_nge.c#3 integrate .. //depot/projects/superpages/src/sys/dev/ofw/ofw_console.c#2 integrate .. //depot/projects/superpages/src/sys/dev/pccard/pccarddevs#3 integrate .. //depot/projects/superpages/src/sys/dev/pccard/pccardvarp.h#2 integrate .. //depot/projects/superpages/src/sys/dev/pccbb/pccbb_isa.c#3 integrate .. //depot/projects/superpages/src/sys/dev/rc/rc.c#2 integrate .. //depot/projects/superpages/src/sys/dev/re/if_re.c#3 integrate .. //depot/projects/superpages/src/sys/dev/rp/rp.c#2 integrate .. //depot/projects/superpages/src/sys/dev/sab/sab.c#2 integrate .. //depot/projects/superpages/src/sys/dev/si/si.c#2 integrate .. //depot/projects/superpages/src/sys/dev/sio/sio.c#2 integrate .. //depot/projects/superpages/src/sys/dev/sound/pcm/feeder_rate.c#2 integrate .. //depot/projects/superpages/src/sys/dev/sound/pcm/vchan.c#2 integrate .. //depot/projects/superpages/src/sys/dev/sx/cd1865.h#2 delete .. //depot/projects/superpages/src/sys/dev/sx/sx.c#2 delete .. //depot/projects/superpages/src/sys/dev/sx/sx.h#2 delete .. //depot/projects/superpages/src/sys/dev/sx/sx_pci.c#2 delete .. //depot/projects/superpages/src/sys/dev/sx/sx_util.c#2 delete .. //depot/projects/superpages/src/sys/dev/sx/sx_util.h#2 delete .. //depot/projects/superpages/src/sys/dev/sx/sxvar.h#2 delete .. //depot/projects/superpages/src/sys/dev/uart/uart_tty.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/if_aue.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/if_axe.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/if_rue.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/if_udav.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/ubser.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/ucom.c#2 integrate .. //depot/projects/superpages/src/sys/dev/usb/ucycom.c#2 integrate .. //depot/projects/superpages/src/sys/dev/vge/if_vge.c#3 integrate .. //depot/projects/superpages/src/sys/dev/wi/if_wi_pccard.c#2 integrate .. //depot/projects/superpages/src/sys/dev/zs/zs.c#2 integrate .. //depot/projects/superpages/src/sys/fs/devfs/devfs_vnops.c#2 integrate .. //depot/projects/superpages/src/sys/fs/nullfs/null_vfsops.c#2 integrate .. //depot/projects/superpages/src/sys/fs/nwfs/nwfs_vfsops.c#2 integrate .. //depot/projects/superpages/src/sys/fs/nwfs/nwfs_vnops.c#2 integrate .. //depot/projects/superpages/src/sys/fs/procfs/procfs_ctl.c#2 integrate .. //depot/projects/superpages/src/sys/fs/smbfs/smbfs_vfsops.c#2 integrate .. //depot/projects/superpages/src/sys/fs/udf/udf_vfsops.c#3 integrate .. //depot/projects/superpages/src/sys/fs/unionfs/union_vnops.c#2 integrate .. //depot/projects/superpages/src/sys/gnu/fs/ext2fs/ext2_lookup.c#2 integrate .. //depot/projects/superpages/src/sys/gnu/fs/reiserfs/reiserfs_namei.c#2 integrate .. //depot/projects/superpages/src/sys/i386/conf/NOTES#3 integrate .. //depot/projects/superpages/src/sys/i386/i386/identcpu.c#2 integrate .. //depot/projects/superpages/src/sys/i386/i386/initcpu.c#2 integrate .. //depot/projects/superpages/src/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/i386/i386/pmap.c#3 integrate .. //depot/projects/superpages/src/sys/i386/i386/trap.c#2 integrate .. //depot/projects/superpages/src/sys/i386/include/md_var.h#2 integrate .. //depot/projects/superpages/src/sys/i386/include/specialreg.h#2 integrate .. //depot/projects/superpages/src/sys/i386/linux/linux_sysvec.c#2 integrate .. //depot/projects/superpages/src/sys/i386/svr4/svr4_machdep.c#2 integrate .. //depot/projects/superpages/src/sys/ia64/ia32/ia32_signal.c#2 integrate .. //depot/projects/superpages/src/sys/ia64/ia32/ia32_trap.c#2 integrate .. //depot/projects/superpages/src/sys/ia64/ia64/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/ia64/ia64/pmap.c#2 integrate .. //depot/projects/superpages/src/sys/ia64/ia64/ssc.c#2 integrate .. //depot/projects/superpages/src/sys/ia64/ia64/trap.c#2 integrate .. //depot/projects/superpages/src/sys/isofs/cd9660/cd9660_lookup.c#2 integrate .. //depot/projects/superpages/src/sys/isofs/cd9660/cd9660_vfsops.c#2 integrate .. //depot/projects/superpages/src/sys/isofs/cd9660/iso.h#2 integrate .. //depot/projects/superpages/src/sys/kern/init_sysent.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_conf.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_exec.c#4 integrate .. //depot/projects/superpages/src/sys/kern/kern_exit.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_kse.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_linker.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_malloc.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_mutex.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_sig.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_thr.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_thread.c#2 integrate .. //depot/projects/superpages/src/sys/kern/kern_time.c#2 integrate .. //depot/projects/superpages/src/sys/kern/link_elf.c#2 integrate .. //depot/projects/superpages/src/sys/kern/subr_param.c#2 integrate .. //depot/projects/superpages/src/sys/kern/subr_trap.c#2 integrate .. //depot/projects/superpages/src/sys/kern/subr_witness.c#2 integrate .. //depot/projects/superpages/src/sys/kern/syscalls.c#2 integrate .. //depot/projects/superpages/src/sys/kern/syscalls.master#2 integrate .. //depot/projects/superpages/src/sys/kern/tty.c#2 integrate .. //depot/projects/superpages/src/sys/kern/tty_compat.c#2 integrate .. //depot/projects/superpages/src/sys/kern/uipc_cow.c#2 integrate .. //depot/projects/superpages/src/sys/kern/uipc_sem.c#2 integrate .. //depot/projects/superpages/src/sys/kern/uipc_syscalls.c#2 integrate .. //depot/projects/superpages/src/sys/kern/vfs_subr.c#3 integrate .. //depot/projects/superpages/src/sys/modules/3dfx/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/Makefile#3 integrate .. //depot/projects/superpages/src/sys/modules/acpi/acpi/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/aha/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ahb/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/an/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ar/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/arcnet/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/arl/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/awi/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/bktr/bktr/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/cam/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/coda5/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/cp/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ctau/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/cx/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/dc/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/dcons/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/digi/digi/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/en/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/fatm/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/firewire/fwip/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/hatm/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/hifn/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_bridge/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_disc/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_ef/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_faith/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_gif/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_gre/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_ppp/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_sl/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_stf/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_tap/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_tun/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/if_vlan/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ip_mroute_mod/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ipfilter/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/kbdmux/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/linux/Makefile#3 integrate .. //depot/projects/superpages/src/sys/modules/mii/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/netgraph/gif/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/netgraph/iface/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/netgraph/mppc/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/netgraph/sync_ar/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/netgraph/sync_sr/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/nfs4client/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/nfsclient/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/nfsserver/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/nmdm/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/nwfs/Makefile#3 integrate .. //depot/projects/superpages/src/sys/modules/osf1/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/patm/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/pf/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/rc/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/rp/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/safe/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/sio/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/smbfs/Makefile#3 integrate .. //depot/projects/superpages/src/sys/modules/snc/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/sppp/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/sr/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/svr4/Makefile#3 integrate .. //depot/projects/superpages/src/sys/modules/trm/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ubsec/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/ukbd/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/vkbd/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/wi/Makefile#2 integrate .. //depot/projects/superpages/src/sys/modules/wlan/Makefile#2 integrate .. //depot/projects/superpages/src/sys/net/bridgestp.c#3 integrate .. //depot/projects/superpages/src/sys/net/if_bridge.c#4 integrate .. //depot/projects/superpages/src/sys/net/if_sl.c#2 integrate .. //depot/projects/superpages/src/sys/net/ppp_tty.c#2 integrate .. //depot/projects/superpages/src/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#2 integrate .. //depot/projects/superpages/src/sys/netgraph/ng_mppc.c#2 integrate .. //depot/projects/superpages/src/sys/netgraph/ng_tty.c#3 integrate .. //depot/projects/superpages/src/sys/netinet/icmp6.h#2 integrate .. //depot/projects/superpages/src/sys/netinet/in.c#3 integrate .. //depot/projects/superpages/src/sys/netinet/ip_carp.c#3 integrate .. //depot/projects/superpages/src/sys/netinet/tcp_input.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/README#2 integrate .. //depot/projects/superpages/src/sys/netinet6/icmp6.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/in6.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/in6.h#2 integrate .. //depot/projects/superpages/src/sys/netinet6/in6_ifattach.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/in6_ifattach.h#2 integrate .. //depot/projects/superpages/src/sys/netinet6/in6_src.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/in6_var.h#2 integrate .. //depot/projects/superpages/src/sys/netinet6/ip6_input.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/ip6_mroute.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/ip6_output.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/ip6_var.h#2 integrate .. //depot/projects/superpages/src/sys/netinet6/mld6.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/mld6_var.h#2 integrate .. //depot/projects/superpages/src/sys/netinet6/nd6.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/nd6.h#2 integrate .. //depot/projects/superpages/src/sys/netinet6/nd6_nbr.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/nd6_rtr.c#2 integrate .. //depot/projects/superpages/src/sys/netinet6/raw_ip6.c#2 integrate .. //depot/projects/superpages/src/sys/pc98/cbus/sio.c#2 integrate .. //depot/projects/superpages/src/sys/pc98/conf/NOTES#3 integrate .. //depot/projects/superpages/src/sys/pc98/pc98/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/pci/if_dc.c#3 delete .. //depot/projects/superpages/src/sys/pci/if_dcreg.h#2 delete .. //depot/projects/superpages/src/sys/pci/if_rl.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_rlreg.h#2 integrate .. //depot/projects/superpages/src/sys/pci/if_sf.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_sis.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_sk.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_skreg.h#2 integrate .. //depot/projects/superpages/src/sys/pci/if_ste.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_tl.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_vr.c#3 integrate .. //depot/projects/superpages/src/sys/pci/if_wb.c#3 integrate .. //depot/projects/superpages/src/sys/posix4/_semaphore.h#2 integrate .. //depot/projects/superpages/src/sys/powerpc/powerpc/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/powerpc/powerpc/trap.c#2 integrate .. //depot/projects/superpages/src/sys/sparc64/include/param.h#2 integrate .. //depot/projects/superpages/src/sys/sparc64/sparc64/machdep.c#2 integrate .. //depot/projects/superpages/src/sys/sparc64/sparc64/trap.c#2 integrate .. //depot/projects/superpages/src/sys/sys/proc.h#2 integrate .. //depot/projects/superpages/src/sys/sys/signalvar.h#3 integrate .. //depot/projects/superpages/src/sys/sys/syscall.h#2 integrate .. //depot/projects/superpages/src/sys/sys/syscall.mk#2 integrate .. //depot/projects/superpages/src/sys/sys/syscallsubr.h#2 integrate .. //depot/projects/superpages/src/sys/sys/sysent.h#2 integrate .. //depot/projects/superpages/src/sys/sys/sysproto.h#2 integrate .. //depot/projects/superpages/src/sys/sys/tty.h#2 integrate .. //depot/projects/superpages/src/sys/ufs/ffs/ffs_vfsops.c#3 integrate .. //depot/projects/superpages/src/sys/ufs/ufs/ufs_lookup.c#2 integrate .. //depot/projects/superpages/src/sys/vm/uma_core.c#3 integrate .. //depot/projects/superpages/src/sys/vm/vm_object.c#3 integrate .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/Makefile#2 integrate .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.status.2#2 integrate .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.status.3#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.status.4#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.status.5#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stderr.2#2 integrate .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stderr.3#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stderr.4#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stderr.5#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stdout.2#2 integrate .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stdout.3#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stdout.4#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/expected.stdout.5#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/enl/test.t#2 integrate .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/Makefile#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/expected.status.1#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/expected.status.2#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/expected.stderr.1#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/expected.stderr.2#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/expected.stdout.1#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/expected.stdout.2#1 branch .. //depot/projects/superpages/src/tools/regression/usr.bin/make/syntax/semi/test.t#1 branch .. //depot/projects/superpages/src/usr.bin/compile_et/Makefile#2 integrate .. //depot/projects/superpages/src/usr.bin/make/make.1#3 integrate .. //depot/projects/superpages/src/usr.bin/make/parse.c#2 integrate .. //depot/projects/superpages/src/usr.bin/netstat/main.c#2 integrate .. //depot/projects/superpages/src/usr.bin/tftp/main.c#2 integrate .. //depot/projects/superpages/src/usr.bin/truss/syscalls.c#2 integrate .. //depot/projects/superpages/src/usr.bin/vmstat/vmstat.c#2 integrate .. //depot/projects/superpages/src/usr.bin/w/w.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/Makefile#4 integrate .. //depot/projects/superpages/src/usr.sbin/cdcontrol/cdcontrol.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/ipfwpcap/Makefile#1 branch .. //depot/projects/superpages/src/usr.sbin/ipfwpcap/ipfwpcap.c#1 branch .. //depot/projects/superpages/src/usr.sbin/lpr/lpc/lpc.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/ndp/ndp.8#2 integrate .. //depot/projects/superpages/src/usr.sbin/ndp/ndp.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/pccard/Makefile.inc#2 integrate .. //depot/projects/superpages/src/usr.sbin/pmcstat/pmcstat.8#2 integrate .. //depot/projects/superpages/src/usr.sbin/pmcstat/pmcstat.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/pmcstat/pmcstat_log.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/powerd/Makefile#2 integrate .. //depot/projects/superpages/src/usr.sbin/powerd/powerd.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/rtadvd/config.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/rtadvd/rtadvd.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/syslogd/syslogd.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/vipw/vipw.8#2 integrate .. //depot/projects/superpages/src/usr.sbin/wpa/ndis_events/ndis_events.8#2 integrate .. //depot/projects/superpages/src/usr.sbin/wpa/ndis_events/ndis_events.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/wpa/wpa_supplicant/Packet32.c#2 integrate .. //depot/projects/superpages/src/usr.sbin/wpa/wpa_supplicant/Packet32.h#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<<