PERFORCE change 65274 for review

John Baldwin jhb at FreeBSD.org
Tue Nov 16 12:27:20 PST 2004


http://perforce.freebsd.org/chv.cgi?CH=65274

Change 65274 by jhb at jhb_slimer on 2004/11/16 20:26:37

	IFC @65271.

Affected files ...

.. //depot/projects/power/sys/dev/acpica/acpi_video.c#5 edit
.. //depot/user/jhb/no386/lib/libc/Makefile#3 integrate
.. //depot/user/jhb/no386/lib/libc/gen/getnetgrent.c#2 integrate
.. //depot/user/jhb/no386/lib/libc/net/rcmd.c#2 integrate
.. //depot/user/jhb/no386/lib/libc/rpc/netnamer.c#2 integrate
.. //depot/user/jhb/no386/lib/libc/sys/read.2#3 integrate
.. //depot/user/jhb/no386/lib/libc/sys/stat.2#2 integrate
.. //depot/user/jhb/no386/libexec/rtld-elf/Makefile#3 integrate
.. //depot/user/jhb/no386/share/mk/bsd.libnames.mk#2 integrate
.. //depot/user/jhb/no386/sys/arm/arm/busdma_machdep.c#3 integrate
.. //depot/user/jhb/no386/sys/arm/arm/genassym.c#2 integrate
.. //depot/user/jhb/no386/sys/arm/arm/intr.c#2 integrate
.. //depot/user/jhb/no386/sys/arm/arm/irq_dispatch.S#2 integrate
.. //depot/user/jhb/no386/sys/arm/arm/pmap.c#4 integrate
.. //depot/user/jhb/no386/sys/arm/xscale/i80321/i80321.c#2 integrate
.. //depot/user/jhb/no386/sys/boot/common/commands.c#3 integrate
.. //depot/user/jhb/no386/sys/coda/coda_vnops.c#2 integrate
.. //depot/user/jhb/no386/sys/compat/svr4/svr4_filio.c#3 integrate
.. //depot/user/jhb/no386/sys/compat/svr4/svr4_misc.c#2 integrate
.. //depot/user/jhb/no386/sys/conf/NOTES#3 integrate
.. //depot/user/jhb/no386/sys/conf/files#4 integrate
.. //depot/user/jhb/no386/sys/conf/files.i386#4 integrate
.. //depot/user/jhb/no386/sys/conf/kern.post.mk#3 integrate
.. //depot/user/jhb/no386/sys/conf/options#3 integrate
.. //depot/user/jhb/no386/sys/dev/acpi_support/acpi_asus.c#1 branch
.. //depot/user/jhb/no386/sys/dev/acpi_support/acpi_panasonic.c#1 branch
.. //depot/user/jhb/no386/sys/dev/acpi_support/acpi_sony.c#1 branch
.. //depot/user/jhb/no386/sys/dev/acpi_support/acpi_toshiba.c#1 branch
.. //depot/user/jhb/no386/sys/dev/acpica/acpi_cpu.c#2 integrate
.. //depot/user/jhb/no386/sys/dev/acpica/acpi_snc.c#2 delete
.. //depot/user/jhb/no386/sys/dev/em/if_em.c#5 integrate
.. //depot/user/jhb/no386/sys/dev/mc146818/mc146818reg.h#1 branch
.. //depot/user/jhb/no386/sys/dev/md/md.c#3 integrate
.. //depot/user/jhb/no386/sys/dev/puc/puc_sbus.c#2 integrate
.. //depot/user/jhb/no386/sys/dev/streams/streams.c#2 integrate
.. //depot/user/jhb/no386/sys/dev/uart/uart_bus.h#2 integrate
.. //depot/user/jhb/no386/sys/dev/uart/uart_core.c#2 integrate
.. //depot/user/jhb/no386/sys/dev/uart/uart_dev_ns8250.c#2 integrate
.. //depot/user/jhb/no386/sys/dev/uart/uart_subr.c#2 integrate
.. //depot/user/jhb/no386/sys/dev/usb/ehci.c#4 integrate
.. //depot/user/jhb/no386/sys/dev/usb/ohci.c#3 integrate
.. //depot/user/jhb/no386/sys/dev/usb/uhci.c#4 integrate
.. //depot/user/jhb/no386/sys/dev/vkbd/vkbd.c#1 branch
.. //depot/user/jhb/no386/sys/dev/vkbd/vkbd_var.h#1 branch
.. //depot/user/jhb/no386/sys/fs/deadfs/dead_vnops.c#2 integrate
.. //depot/user/jhb/no386/sys/fs/devfs/devfs_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/fdescfs/fdesc_vfsops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/fdescfs/fdesc_vnops.c#2 integrate
.. //depot/user/jhb/no386/sys/fs/fifofs/fifo_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/hpfs/hpfs_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/msdosfs/msdosfs_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/ntfs/ntfs_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/udf/udf_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/unionfs/union_subr.c#2 integrate
.. //depot/user/jhb/no386/sys/fs/unionfs/union_vfsops.c#3 integrate
.. //depot/user/jhb/no386/sys/fs/unionfs/union_vnops.c#3 integrate
.. //depot/user/jhb/no386/sys/geom/vinum/geom_vinum.h#2 integrate
.. //depot/user/jhb/no386/sys/geom/vinum/geom_vinum_raid5.c#2 integrate
.. //depot/user/jhb/no386/sys/geom/vinum/geom_vinum_share.c#2 integrate
.. //depot/user/jhb/no386/sys/geom/vinum/geom_vinum_share.h#2 integrate
.. //depot/user/jhb/no386/sys/geom/vinum/geom_vinum_subr.c#2 integrate
.. //depot/user/jhb/no386/sys/gnu/ext2fs/ext2_bmap.c#3 integrate
.. //depot/user/jhb/no386/sys/i386/acpica/acpi_asus.c#3 delete
.. //depot/user/jhb/no386/sys/i386/acpica/acpi_panasonic.c#3 delete
.. //depot/user/jhb/no386/sys/i386/acpica/acpi_toshiba.c#2 delete
.. //depot/user/jhb/no386/sys/i386/conf/NOTES#4 integrate
.. //depot/user/jhb/no386/sys/ia64/conf/GENERIC.hints#2 integrate
.. //depot/user/jhb/no386/sys/isofs/cd9660/cd9660_bmap.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/kern_descrip.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/kern_event.c#2 integrate
.. //depot/user/jhb/no386/sys/kern/kern_exec.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/kern_fork.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/kern_intr.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/kern_sig.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/sys_generic.c#2 integrate
.. //depot/user/jhb/no386/sys/kern/sys_pipe.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/sys_socket.c#2 integrate
.. //depot/user/jhb/no386/sys/kern/sysv_sem.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/tty.c#4 integrate
.. //depot/user/jhb/no386/sys/kern/uipc_syscalls.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/vfs_cluster.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/vfs_default.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/vfs_subr.c#4 integrate
.. //depot/user/jhb/no386/sys/kern/vfs_syscalls.c#3 integrate
.. //depot/user/jhb/no386/sys/kern/vfs_vnops.c#4 integrate
.. //depot/user/jhb/no386/sys/kern/vnode_if.src#3 integrate
.. //depot/user/jhb/no386/sys/modules/Makefile#4 integrate
.. //depot/user/jhb/no386/sys/modules/acpi/Makefile#3 integrate
.. //depot/user/jhb/no386/sys/modules/acpi/acpi_asus/Makefile#2 integrate
.. //depot/user/jhb/no386/sys/modules/acpi/acpi_panasonic/Makefile#2 integrate
.. //depot/user/jhb/no386/sys/modules/acpi/acpi_sony/Makefile#1 branch
.. //depot/user/jhb/no386/sys/modules/acpi/acpi_toshiba/Makefile#2 integrate
.. //depot/user/jhb/no386/sys/modules/vkbd/Makefile#1 branch
.. //depot/user/jhb/no386/sys/netinet/in.c#2 integrate
.. //depot/user/jhb/no386/sys/netinet/ip_divert.c#4 integrate
.. //depot/user/jhb/no386/sys/pci/if_sk.c#3 integrate
.. //depot/user/jhb/no386/sys/pci/if_skreg.h#3 integrate
.. //depot/user/jhb/no386/sys/sys/buf.h#3 integrate
.. //depot/user/jhb/no386/sys/sys/filedesc.h#3 integrate
.. //depot/user/jhb/no386/sys/sys/vnode.h#4 integrate
.. //depot/user/jhb/no386/sys/ufs/ffs/ffs_vfsops.c#4 integrate
.. //depot/user/jhb/no386/sys/ufs/ufs/ufs_bmap.c#3 integrate
.. //depot/user/jhb/no386/sys/vm/vm_pager.c#3 integrate
.. //depot/user/jhb/no386/sys/vm/vnode_pager.c#3 integrate

Differences ...

==== //depot/projects/power/sys/dev/acpica/acpi_video.c#5 (text+ko) ====

@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2002-2003 Taku YAMAMOTO <taku at cent.saitama-u.ac.jp>
+ * Copyright (c) 2004 Benjamin Close <Benjamin.Close at clearchain.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -34,10 +35,33 @@
 #include <sys/power.h>
 #include <sys/queue.h>
 #include <sys/sysctl.h>
+#ifdef __i386__
+#include <machine/vm86.h>
+#endif
 
 #include "acpi.h"
 #include <dev/acpica/acpivar.h>
 
+#ifdef __i386__
+#define USE_DPMS
+
+/*
+ * VESA DPMS States 
+ */
+#define DPMS_ON		0x00
+#define DPMS_STANDBY	0x01
+#define DPMS_SUSPEND	0x02
+#define DPMS_OFF	0x04
+#define DPMS_REDUCEDON	0x08
+
+#define	VBE_DPMS_FUNCTION	0x4F10
+#define	VBE_DPMS_GET_SUPPORTED_STATES 0x00
+#define	VBE_DPMS_GET_STATE	0x02
+#define	VBE_DPMS_SET_STATE	0x01
+#define VBE_MAJORVERSION_MASK	0x0F
+#define VBE_MINORVERSION_MASK	0xF0
+#endif
+
 /* ACPI video extension driver. */
 struct acpi_video_output {
 	ACPI_HANDLE	handle;
@@ -63,6 +87,10 @@
 	ACPI_HANDLE		handle;
 	STAILQ_HEAD(, acpi_video_output) vid_outputs;
 	eventhandler_tag	vid_pwr_evh;
+#ifdef USE_DPMS
+	int			vid_dpms_supported_states;
+	int			vid_dpms_initial_state;
+#endif
 };
 
 /* interfaces */
@@ -71,6 +99,8 @@
 static int	acpi_video_attach(device_t);
 static int	acpi_video_detach(device_t);
 static int	acpi_video_shutdown(device_t);
+static int	acpi_video_suspend(device_t);
+static int	acpi_video_resume(device_t);
 static void	acpi_video_notify_handler(ACPI_HANDLE, UINT32, void *);
 static void	acpi_video_power_profile(void *);
 static void	acpi_video_bind_outputs(struct acpi_video_softc *);
@@ -94,6 +124,11 @@
 static UINT32	vo_get_device_status(ACPI_HANDLE);
 static UINT32	vo_query_graphics_state(ACPI_HANDLE);
 static void	vo_set_device_state(ACPI_HANDLE, UINT32);
+#ifdef USE_DPMS
+static int	dpms_get_supported_states(int *);
+static int	dpms_get_current_state(int *);
+static int	dpms_set_state(int);
+#endif
 
 /* events */
 #define VID_NOTIFY_SWITCHED	0x80
@@ -141,6 +176,8 @@
 	DEVMETHOD(device_attach, acpi_video_attach),
 	DEVMETHOD(device_detach, acpi_video_detach),
 	DEVMETHOD(device_shutdown, acpi_video_shutdown),
+	DEVMETHOD(device_resume, acpi_video_resume),
+	DEVMETHOD(device_suspend, acpi_video_suspend),
 	{ 0, 0 }
 };
 
@@ -242,6 +279,13 @@
 	ACPI_UNLOCK;
 	acpi_video_power_profile(sc);
 
+#ifdef USE_DPMS
+	if (dpms_get_supported_states(&sc->vid_dpms_supported_states) == 0)
+		dpms_get_current_state(&sc->vid_dpms_initial_state);
+	else
+		sc->vid_dpms_supported_states = -1;
+#endif
+	
 	return (0);
 }
 
@@ -283,6 +327,32 @@
 	return (0);
 }
 
+static int
+acpi_video_suspend(device_t dev)
+{
+	struct acpi_video_softc *sc;
+
+	sc = device_get_softc(dev);
+#ifdef USE_DPMS
+	if (sc->vid_dpms_supported_states != -1)
+		dpms_set_state(DPMS_OFF);
+#endif
+	return (0);
+}
+
+static int
+acpi_video_resume(device_t dev)
+{
+	struct acpi_video_softc *sc;
+
+	sc = device_get_softc(dev);
+#ifdef USE_DPMS
+	if (sc->vid_dpms_supported_states != -1)
+		dpms_set_state(sc->vid_dpms_initial_state);
+#endif
+	return (0);
+}
+
 static void
 acpi_video_notify_handler(ACPI_HANDLE handle __unused, UINT32 notify, void *context)
 {
@@ -929,3 +999,48 @@
 		printf("can't evaluate %s._DSS - %s\n",
 		       acpi_name(handle), AcpiFormatException(status));
 }
+
+#ifdef USE_DPMS
+static int
+dpms_call_bios(int subfunction, int *bh)
+{
+	struct vm86frame vmf;
+	int error;
+
+	bzero(&vmf, sizeof(vmf));
+	vmf.vmf_ax = VBE_DPMS_FUNCTION;
+	vmf.vmf_bl = subfunction;
+	vmf.vmf_bh = *bh;
+	vmf.vmf_es = 0;
+	vmf.vmf_di = 0;
+	error = vm86_intcall(0x10, &vmf);
+	if (error == 0 && (vmf.vmf_eax & 0xffff) != 0x004f)
+		error = ENXIO;
+	if (error == 0)
+		*bh = vmf.vmf_bh;
+	return (error);
+}
+
+static int
+dpms_get_supported_states(int *states)
+{
+
+	*states = 0;
+	return (dpms_call_bios(VBE_DPMS_GET_SUPPORTED_STATES, states));
+}
+
+static int
+dpms_get_current_state(int *state)
+{
+
+	*state = 0;
+	return (dpms_call_bios(VBE_DPMS_GET_STATE, state));
+}
+
+static int
+dpms_set_state(int state)
+{
+
+	return (dpms_call_bios(VBE_DPMS_SET_STATE, &state));
+}
+#endif

==== //depot/user/jhb/no386/lib/libc/Makefile#3 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile	8.2 (Berkeley) 2/3/94
-# $FreeBSD: src/lib/libc/Makefile,v 1.54 2004/10/24 15:32:30 ru Exp $
+# $FreeBSD: src/lib/libc/Makefile,v 1.55 2004/11/13 20:40:28 bz Exp $
 #
 # All library objects contain FreeBSD revision strings by default; they may be
 # excluded as a space-saving measure.  To produce a library that does
@@ -60,7 +60,7 @@
 .if ${MACHINE_ARCH} == "arm"
 .include "${.CURDIR}/softfloat/Makefile.inc"
 .endif
-.if !defined(NO_YP_LIBC)
+.if !defined(NO_NIS)
 CFLAGS+= -DYP
 .include "${.CURDIR}/yp/Makefile.inc"
 .endif

==== //depot/user/jhb/no386/lib/libc/gen/getnetgrent.c#2 (text+ko) ====

@@ -38,7 +38,7 @@
 static char sccsid[] = "@(#)getnetgrent.c	8.2 (Berkeley) 4/27/95";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/gen/getnetgrent.c,v 1.31 2004/07/28 11:56:03 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/gen/getnetgrent.c,v 1.32 2004/11/13 20:40:28 bz Exp $");
 
 #include <ctype.h>
 #include <stdio.h>
@@ -202,7 +202,7 @@
 				return;
 			}
 #else
-		if (netf = fopen(_PATH_NETGROUP, "r")) {
+		if ((netf = fopen(_PATH_NETGROUP, "r"))) {
 #endif
 			if (parse_netgrp(group))
 				endnetgrent();

==== //depot/user/jhb/no386/lib/libc/net/rcmd.c#2 (text+ko) ====

@@ -35,7 +35,7 @@
 static char sccsid[] = "@(#)rcmd.c	8.3 (Berkeley) 3/26/94";
 #endif /* LIBC_SCCS and not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/net/rcmd.c,v 1.38 2003/02/18 13:39:52 nectar Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/net/rcmd.c,v 1.39 2004/11/13 20:40:28 bz Exp $");
 
 #include "namespace.h"
 #include <sys/param.h>
@@ -55,8 +55,8 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <string.h>
+#include <rpc/rpc.h>
 #ifdef YP
-#include <rpc/rpc.h>
 #include <rpcsvc/yp_prot.h>
 #include <rpcsvc/ypclnt.h>
 #endif

==== //depot/user/jhb/no386/lib/libc/rpc/netnamer.c#2 (text+ko) ====

@@ -32,7 +32,7 @@
 static char sccsid[] = "@(#)netnamer.c 1.13 91/03/11 Copyr 1986 Sun Micro";
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/rpc/netnamer.c,v 1.10 2004/10/16 06:11:35 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/rpc/netnamer.c,v 1.11 2004/11/13 20:40:28 bz Exp $");
 
 /*
  * netname utility routines convert from unix names to network names and
@@ -58,7 +58,9 @@
 #include "un-namespace.h"
 
 static char    *OPSYS = "unix";
+#ifdef YP
 static char    *NETID = "netid.byname";
+#endif
 static char    *NETIDFILE = "/etc/netid";
 
 static int getnetid( char *, char * );

==== //depot/user/jhb/no386/lib/libc/sys/read.2#3 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)read.2	8.4 (Berkeley) 2/26/94
-.\" $FreeBSD: src/lib/libc/sys/read.2,v 1.27 2004/10/25 13:35:03 yar Exp $
+.\" $FreeBSD: src/lib/libc/sys/read.2,v 1.28 2004/11/15 13:55:33 yar Exp $
 .\"
 .Dd October 16, 2004
 .Dt READ 2
@@ -207,7 +207,7 @@
 .It Bq Er EFAULT
 Part of the
 .Fa iov
-points outside the process's allocated address space.
+array points outside the process's allocated address space.
 .El
 .Pp
 The

==== //depot/user/jhb/no386/lib/libc/sys/stat.2#2 (text+ko) ====

@@ -30,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)stat.2	8.4 (Berkeley) 5/1/95
-.\" $FreeBSD: src/lib/libc/sys/stat.2,v 1.36 2003/12/10 15:08:41 dds Exp $
+.\" $FreeBSD: src/lib/libc/sys/stat.2,v 1.40 2004/11/15 14:16:31 yar Exp $
 .\"
-.Dd February 15, 2002
+.Dd November 15, 2004
 .Dt STAT 2
 .Os
 .Sh NAME
@@ -87,8 +87,26 @@
 .In sys/stat.h
 and into which information is placed concerning the file.
 .Pp
+The fields of
+.Vt "struct stat"
+related to the file system are as follows:
+.Bl -tag -width ".Va st_nlink"
+.It Va st_dev
+The numeric ID of the device containing the file.
+.It Va st_ino
+The file's inode number.
+.It Va st_nlink
+The number of hard links to the file.
+.El
+.Pp
+The
+.Va st_dev
+and
+.Va st_ino
+fields together identify the file uniquely within the system.
+.Pp
 The time-related fields of
-.Fa struct stat
+.Vt "struct stat"
 are as follows:
 .Bl -tag -width ".Va st_birthtime"
 .It Va st_atime
@@ -150,15 +168,29 @@
 The size-related fields of the
 .Vt "struct stat"
 are as follows:
-.Bl -tag -width XXXst_blksize
-.It st_blksize
+.Bl -tag -width ".Va st_blksize"
+.It Va st_size
+The file size in bytes.
+.It Va st_blksize
 The optimal I/O block size for the file.
-.It st_blocks
+.It Va st_blocks
 The actual number of blocks allocated for the file in 512-byte units.
 As short symbolic links are stored in the inode, this number may
 be zero.
 .El
 .Pp
+The access-related fields of
+.Vt "struct stat"
+are as follows:
+.Bl -tag -width ".Va st_mode"
+.It Va st_uid
+The user ID of the file's owner.
+.It Va st_gid
+The group ID of the file.
+.It Va st_mode
+Status of the file (see below).
+.El
+.Pp
 The status information word
 .Fa st_mode
 has the following bits:
@@ -185,18 +217,44 @@
 .Xr access 2
 and
 .Xr chmod 2 .
+The following macros are available to test whether a
+.Va st_mode
+value passed in the
+.Ar m
+argument corresponds to a file of the specified type:
+.Bl -tag -width ".Fn S_ISFIFO m"
+.It Fn S_ISBLK m
+Test for a block special file.
+.It Fn S_ISCHR m
+Test for a character special file.
+.It Fn S_ISDIR m
+Test for a directory.
+.It Fn S_ISFIFO m
+Test for a pipe or FIFO special file.
+.It Fn S_ISLNK m
+Test for a symbolic link.
+.It Fn S_ISREG m
+Test for a regular file.
+.It Fn S_ISSOCK m
+Test for a socket.
+.It Fn S_ISWHT m
+Test for a whiteout.
+.El
+.Pp
+The macros evaluate to a non-zero value if the test is true
+or to the value 0 if the test is false.
 .Sh RETURN VALUES
 .Rv -std
 .Sh COMPATIBILITY
 Previous versions of the system used different types for the
-.Li st_dev ,
-.Li st_uid ,
-.Li st_gid ,
-.Li st_rdev ,
-.Li st_size ,
-.Li st_blksize
+.Va st_dev ,
+.Va st_uid ,
+.Va st_gid ,
+.Va st_rdev ,
+.Va st_size ,
+.Va st_blksize
 and
-.Li st_blocks
+.Va st_blocks
 fields.
 .Sh ERRORS
 The

==== //depot/user/jhb/no386/libexec/rtld-elf/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.33 2004/11/03 18:01:19 ru Exp $
+# $FreeBSD: src/libexec/rtld-elf/Makefile,v 1.36 2004/11/14 22:18:31 ru Exp $
 
 PROG?=		ld-elf.so.1
 SRCS=		rtld_start.S \
@@ -48,7 +48,9 @@
 # Since moving rtld-elf to /libexec, we need to create a symlink.
 # Fixup the existing binary that's there so we can symlink over it.
 beforeinstall:
+.if exists(${DESTDIR}/usr/libexec/${PROG})
 	-chflags noschg ${DESTDIR}/usr/libexec/${PROG}
+.endif
 
 .PATH: ${.CURDIR}/${MACHINE_ARCH}
 

==== //depot/user/jhb/no386/share/mk/bsd.libnames.mk#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.90 2004/09/24 22:10:34 trhodes Exp $
+# $FreeBSD: src/share/mk/bsd.libnames.mk,v 1.91 2004/11/13 20:40:32 bz Exp $
 
 # The include file <bsd.libnames.mk> define library names. 
 # Other include files (e.g. bsd.prog.mk, bsd.lib.mk) include this 
@@ -97,13 +97,17 @@
 MINUSLPAM+=	-lkrb5 -lasn1 -lcrypto -lcrypt -lroken -lcom_err
 .endif
 LIBPAM+=	${LIBRADIUS} ${LIBTACPLUS} ${LIBCRYPT} \
-		${LIBUTIL} ${LIBOPIE} ${LIBMD} ${LIBYPCLNT}
+		${LIBUTIL} ${LIBOPIE} ${LIBMD}
 MINUSLPAM+=	-lradius -ltacplus -lcrypt \
-		-lutil -lopie -lmd -lypclnt
+		-lutil -lopie -lmd
 .if !defined(NO_OPENSSH) && !defined(NOCRYPT) && !defined(NO_OPENSSL)
 LIBPAM+=	${LIBSSH} ${LIBCRYPTO} ${LIBCRYPT}
 MINUSLPAM+=	-lssh -lcrypto -lcrypt
 .endif
+.if !defined(NO_NIS)
+LIBPAM+=	${LIBYPCLNT}
+MINUSLPAM+=	-lypclnt
+.endif
 .endif
 
 LIBPANEL?=	${DESTDIR}${LIBDIR}/libpanel.a

==== //depot/user/jhb/no386/sys/arm/arm/busdma_machdep.c#3 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.5 2004/10/21 11:59:33 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.7 2004/11/16 00:57:44 cognet Exp $");
 
 /*
  * MacPPC bus dma support routines
@@ -97,11 +97,10 @@
  * Check to see if the specified page is in an allowed DMA range.
  */
 
-static int
+static __inline int
 bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t segs[],
-    bus_dmamap_t map, void *buf, bus_size_t buflen, struct thread *td,
-    int flags, vm_offset_t *lastaddrp, int *segp,
-    int first);
+    bus_dmamap_t map, void *buf, bus_size_t buflen, struct pmap *pmap,
+    int flags, vm_offset_t *lastaddrp, int *segp);
 
 static __inline struct arm32_dma_range *
 _bus_dma_inrange(struct arm32_dma_range *ranges, int nranges,
@@ -367,7 +366,7 @@
                 void *callback_arg, int flags)
 {
      	vm_offset_t	lastaddr = 0;
-	int		error, nsegs = 0;
+	int		error, nsegs = -1;
 #ifdef __GNUC__
 	bus_dma_segment_t dm_segments[dmat->nsegments];
 #else
@@ -379,8 +378,8 @@
 	map->buffer = buf;
 	map->len = buflen;
 	error = bus_dmamap_load_buffer(dmat,
-	    dm_segments, map, buf, buflen, NULL,
-	    flags, &lastaddr, &nsegs, 1);
+	    dm_segments, map, buf, buflen, kernel_pmap,
+	    flags, &lastaddr, &nsegs);
 	if (error)
 		(*callback)(callback_arg, NULL, 0, error);
 	else
@@ -395,27 +394,20 @@
  * the starting segment on entrance, and the ending segment on exit.
  * first indicates if this is the first invocation of this function.
  */
-static int
+static int __inline
 bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dma_segment_t segs[],
-    bus_dmamap_t map, void *buf, bus_size_t buflen, struct thread *td,
-    int flags, vm_offset_t *lastaddrp, int *segp,
-    int first)
+    bus_dmamap_t map, void *buf, bus_size_t buflen, struct pmap *pmap,
+    int flags, vm_offset_t *lastaddrp, int *segp)
 {
 	bus_size_t sgsize;
 	bus_addr_t curaddr, lastaddr, baddr, bmask;
 	vm_offset_t vaddr = (vm_offset_t)buf;
 	int seg;
 	int error = 0;
-	pmap_t pmap;
 	pd_entry_t *pde;
 	pt_entry_t pte;
 	pt_entry_t *ptep;
 
-	if (td != NULL)
-		pmap = vmspace_pmap(td->td_proc->p_vmspace);
-	else
-		pmap = pmap_kernel();
-
 	lastaddr = *lastaddrp;
 	bmask = ~(dmat->boundary - 1);
 
@@ -496,27 +488,19 @@
 		 * Insert chunk into a segment, coalescing with
 		 * the previous segment if possible.
 		 */
-		if (first) {
+		if (seg >= 0 && curaddr == lastaddr &&
+		    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
+		    (dmat->boundary == 0 ||
+		     (segs[seg].ds_addr & bmask) == 
+		     (curaddr & bmask))) {
+			segs[seg].ds_len += sgsize;
+				goto segdone;
+		} else {
+			if (++seg >= dmat->nsegments)
+				break;
 			segs[seg].ds_addr = curaddr;
 			segs[seg].ds_len = sgsize;
-			first = 0;
-		} else {
-			if (curaddr == lastaddr &&
-			    (segs[seg].ds_len + sgsize) <= dmat->maxsegsz &&
-			    (dmat->boundary == 0 ||
-			     (segs[seg].ds_addr & bmask) == 
-			     (curaddr & bmask))) {
-				segs[seg].ds_len += sgsize;
-				goto segdone;
-			}
-			else {
-				if (++seg >= dmat->nsegments)
-					break;
-				segs[seg].ds_addr = curaddr;
-				segs[seg].ds_len = sgsize;
-			}
 		}
-
 		if (error)
 			break;
 segdone:
@@ -549,7 +533,7 @@
 #else
 	bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS];
 #endif
-	int nsegs = 0, error = 0;
+	int nsegs = -1, error = 0;
 
 	M_ASSERTPKTHDR(m0);
 
@@ -557,17 +541,14 @@
 	map->flags |= DMAMAP_MBUF | DMAMAP_COHERENT;
 	map->buffer = m0;
 	if (m0->m_pkthdr.len <= dmat->maxsize) {
-		int first = 1;
 		vm_offset_t lastaddr = 0;
 		struct mbuf *m;
 
 		for (m = m0; m != NULL && error == 0; m = m->m_next) {
-			if (m->m_len > 0) {
+			if (m->m_len > 0)
 				error = bus_dmamap_load_buffer(dmat,
-				    dm_segments, map, m->m_data, m->m_len, NULL,
-				    flags, &lastaddr, &nsegs, first);
-				first = 0;
-			}
+				    dm_segments, map, m->m_data, m->m_len, 
+				    pmap_kernel(), flags, &lastaddr, &nsegs);
 		}
 	} else {
 		error = EINVAL;
@@ -599,10 +580,10 @@
 #else
 	bus_dma_segment_t dm_segments[BUS_DMAMAP_NSEGS];
 #endif
-	int nsegs, i, error, first;
+	int nsegs, i, error;
 	bus_size_t resid;
 	struct iovec *iov;
-	struct thread *td = NULL;
+	struct pmap *pmap;
 
 	resid = uio->uio_resid;
 	iov = uio->uio_iov;
@@ -611,13 +592,14 @@
 	map->buffer = uio;
 
 	if (uio->uio_segflg == UIO_USERSPACE) {
-		td = uio->uio_td;
+		pmap = vmspace_pmap(uio->uio_td->td_proc->p_vmspace);
 		KASSERT(td != NULL,
 		    ("bus_dmamap_load_uio: USERSPACE but no proc"));
-	}
+	} else
+		pmap = kernel_pmap;
 
-	first = 1;
-	nsegs = error = 0;
+	error = 0;
+	nsegs = -1;
 	for (i = 0; i < uio->uio_iovcnt && resid != 0 && !error; i++) {
 		/*
 		 * Now at the first iovec to load.  Load each iovec
@@ -629,9 +611,7 @@
 
 		if (minlen > 0) {
 			error = bus_dmamap_load_buffer(dmat, dm_segments, map,
-			    addr, minlen, td, flags, &lastaddr, &nsegs, first);
-
-			first = 0;
+			    addr, minlen, pmap, flags, &lastaddr, &nsegs);
 
 			resid -= minlen;
 		}

==== //depot/user/jhb/no386/sys/arm/arm/genassym.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.2 2004/09/23 22:11:06 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.3 2004/11/12 21:49:05 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -43,6 +43,7 @@
 #include <machine/proc.h>
 #include <machine/cpufunc.h>
 #include <machine/pte.h>
+#include <machine/intr.h>
 #include <netinet/in.h>
 #include <netinet/in_systm.h>
 #include <netinet/ip.h>
@@ -109,3 +110,6 @@
 ASSYM(P_SIGEVENT, P_SIGEVENT);
 ASSYM(P_PROFIL, P_PROFIL);
 ASSYM(TRAPFRAMESIZE, sizeof(struct trapframe));
+
+ASSYM(MAXCOMLEN, MAXCOMLEN);
+ASSYM(NIRQ, NIRQ);

==== //depot/user/jhb/no386/sys/arm/arm/intr.c#2 (text+ko) ====

@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.3 2004/09/23 22:09:57 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.4 2004/11/12 21:49:05 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/syslog.h> 
@@ -50,7 +50,10 @@
 #include <machine/intr.h>
 #include <machine/cpu.h>
 
-struct ithd *ithreads[NIRQ];
+static struct ithd *ithreads[NIRQ];
+static int intrcnt_tab[NIRQ];
+static int intrcnt_index = 0;
+static int last_printed = 0;
 struct arm_intr {
 	driver_intr_t *handler;
 	void *arg;
@@ -69,7 +72,8 @@
 
 void	arm_handler_execute(void *, int);
 
-void arm_setup_irqhandler(const char *name, void (*hand)(void*), void *arg, 
+void
+arm_setup_irqhandler(const char *name, void (*hand)(void*), void *arg, 
     int irq, int flags, void **cookiep)
 {
 	struct ithd *cur_ith;
@@ -87,6 +91,14 @@
 		if (error)
 			return;
 		ithreads[irq] = cur_ith;
+		last_printed += 
+		    snprintf(intrnames + last_printed,
+		    MAXCOMLEN + 1,
+		    "irq%d: %s", irq, name);
+		last_printed++;
+		intrcnt_tab[irq] = intrcnt_index;
+		intrcnt_index++;
+		
 	}
 	if (!(flags & INTR_FAST)) {
 		intr->handler = hand;
@@ -120,6 +132,7 @@
 	arm_mask_irqs(irqnb);
 	while (irqnb != 0) {
 		i = ffs(irqnb) - 1;
+		intrcnt[intrcnt_tab[i]]++;
 		irqnb &= ~(1U << i);
 		ithd = ithreads[i];
 		if (!ithd)

==== //depot/user/jhb/no386/sys/arm/arm/irq_dispatch.S#2 (text+ko) ====

@@ -72,7 +72,7 @@
 #include <machine/asm.h>
 #include <machine/asmacros.h>
 #include <machine/armreg.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/irq_dispatch.S,v 1.2 2004/09/23 22:09:57 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/irq_dispatch.S,v 1.3 2004/11/12 21:49:05 cognet Exp $");
 
 /*
  * irq_entry:
@@ -102,18 +102,13 @@
 	.align	0
 
 
-	/*
-	 * XXX Provide intrnames/intrcnt for legacy code, but
-	 * don't actually use them.
-	 */
-
 	.global _C_LABEL(intrnames), _C_LABEL(eintrnames)
 	.global _C_LABEL(intrcnt), _C_LABEL(eintrcnt)
 _C_LABEL(intrnames): 
+	.space NIRQ * (MAXCOMLEN + 1)
 _C_LABEL(eintrnames):
-
-	.global _C_LABEL(intrcnt), _C_LABEL(sintrcnt), _C_LABEL(eintrcnt)
 _C_LABEL(intrcnt):
+	.space NIRQ * 4
 _C_LABEL(eintrcnt):
 
 	.global _C_LABEL(current_intr_depth)

==== //depot/user/jhb/no386/sys/arm/arm/pmap.c#4 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.17 2004/11/10 22:11:08 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.19 2004/11/13 14:54:31 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -1668,6 +1668,8 @@
 	simple_unlock(&pg->mdpage.pvh_slock);
 	PMAP_HEAD_TO_MAP_UNLOCK();
 #endif
+	if (maskbits & PVF_WRITE)
+		vm_page_flag_clear(pg, PG_WRITEABLE);
 	return (count);
 }
 
@@ -1789,6 +1791,8 @@
 			pg->md.urw_mappings--;
 		else
 			pg->md.uro_mappings--;
+	if (TAILQ_FIRST(&pg->md.pv_list) == NULL)
+		vm_page_flag_clear(pg, PG_WRITEABLE);
 }
 
 static struct pv_entry *
@@ -1921,9 +1925,6 @@
 	pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, 
 	    NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
 	uma_prealloc(pvzone, MINPV);
-	l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
-	    UMA_ZONE_VM | UMA_ZONE_NOFREE);
 	/*
 	 * Now it is safe to enable pv_table recording.
 	 */
@@ -2173,6 +2174,11 @@
 	l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
 	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
 	uma_prealloc(l2zone, 4096);
+	l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable),
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
+	    UMA_ZONE_VM | UMA_ZONE_NOFREE);
+	uma_prealloc(l2table_zone, 1024);
+
 	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
 	uma_zone_set_obj(l2zone, &l2zone_obj, pv_entry_max);
 
@@ -3689,6 +3695,7 @@
 	pmap_acquire_pmap_lock(pm);
 #endif
 
+	vm_page_lock_queues();
 	pmap_update(pm);
 	if (!pmap_is_current(pm)) {
 		cleanlist_idx = PMAP_REMOVE_CLEAN_LIST_SIZE + 1;
@@ -3845,6 +3852,7 @@
 		pmap_free_l2_bucket(pm, l2b, mappings);
 	}
 
+	vm_page_unlock_queues();
 	if (flushall)
 		cpu_tlb_flushID();
 #if 0

==== //depot/user/jhb/no386/sys/arm/xscale/i80321/i80321.c#2 (text+ko) ====

@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.1 2004/09/23 22:45:36 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/i80321.c,v 1.2 2004/11/13 15:12:26 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -146,7 +146,6 @@
 
 	bus_space_write_4(sc->sc_st, sc->sc_atu_sh, ATU_IALR2,
 	    (0xffffffff - (sc->sc_iwin[2].iwin_size - 1)) & 0xffffffc0);
-	printf("size : %d\n", (sc->sc_iwin[2].iwin_size - 1) / (1024 * 1024));
 	bus_space_write_4(sc->sc_st, sc->sc_atu_sh, ATU_IATVR2,
 	    sc->sc_iwin[2].iwin_xlate);
 

==== //depot/user/jhb/no386/sys/boot/common/commands.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.21 2004/11/12 13:27:49 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.22 2004/11/13 17:04:55 ru Exp $");
 
 #include <stand.h>
 #include <string.h>
@@ -312,7 +312,7 @@
     return(CMD_OK);
 }
 
-COMMAND_SET(echo, "echo", NULL, command_echo);
+COMMAND_SET(echo, "echo", "echo arguments", command_echo);
 
 static int
 command_echo(int argc, char *argv[])
@@ -351,7 +351,7 @@
  * A passable emulation of the sh(1) command of the same name.
  */
 
-COMMAND_SET(read, "read", NULL, command_read);
+COMMAND_SET(read, "read", "read input from the terminal", command_read);
 
 static int
 command_read(int argc, char *argv[])

==== //depot/user/jhb/no386/sys/coda/coda_vnops.c#2 (text+ko) ====

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


More information about the p4-projects mailing list