PERFORCE change 34033 for review
Marcel Moolenaar
marcel at FreeBSD.org
Thu Jul 3 13:39:05 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=34033
Change 34033 by marcel at marcel_nfs on 2003/07/03 13:38:24
IFC @34032
Affected files ...
.. //depot/projects/ia64/contrib/groff/tmac/doc-common#11 integrate
.. //depot/projects/ia64/contrib/groff/tmac/doc.tmac#6 integrate
.. //depot/projects/ia64/contrib/groff/tmac/groff_mdoc.man#8 integrate
.. //depot/projects/ia64/etc/motd#3 integrate
.. //depot/projects/ia64/lib/libc/gen/exec.3#6 integrate
.. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#23 integrate
.. //depot/projects/ia64/lib/libpthread/thread/thr_select.c#3 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#12 integrate
.. //depot/projects/ia64/share/man/man5/group.5#4 integrate
.. //depot/projects/ia64/share/man/man5/linprocfs.5#5 integrate
.. //depot/projects/ia64/share/man/man9/bus_dma.9#5 integrate
.. //depot/projects/ia64/share/mk/bsd.dep.mk#12 integrate
.. //depot/projects/ia64/sys/alpha/alpha/mp_machdep.c#11 integrate
.. //depot/projects/ia64/sys/alpha/alpha/pmap.c#34 integrate
.. //depot/projects/ia64/sys/amd64/amd64/pmap.c#9 integrate
.. //depot/projects/ia64/sys/dev/firewire/fwohci_pci.c#19 integrate
.. //depot/projects/ia64/sys/dev/fxp/if_fxp.c#37 integrate
.. //depot/projects/ia64/sys/dev/lge/if_lge.c#13 integrate
.. //depot/projects/ia64/sys/dev/nge/if_nge.c#21 integrate
.. //depot/projects/ia64/sys/dev/pccbb/pccbb.c#30 integrate
.. //depot/projects/ia64/sys/dev/txp/if_txp.c#12 integrate
.. //depot/projects/ia64/sys/dev/wi/if_wi.c#43 integrate
.. //depot/projects/ia64/sys/fs/msdosfs/msdosfs_vnops.c#20 integrate
.. //depot/projects/ia64/sys/i386/i386/pmap.c#47 integrate
.. //depot/projects/ia64/sys/i386/isa/pcvt/pcvt_drv.c#9 integrate
.. //depot/projects/ia64/sys/ia64/ia64/pmap.c#70 integrate
.. //depot/projects/ia64/sys/kern/kern_sig.c#56 integrate
.. //depot/projects/ia64/sys/kern/kern_thr.c#9 integrate
.. //depot/projects/ia64/sys/kern/kern_thread.c#56 integrate
.. //depot/projects/ia64/sys/powerpc/powerpc/pmap.c#26 integrate
.. //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#40 integrate
.. //depot/projects/ia64/sys/sys/param.h#37 integrate
.. //depot/projects/ia64/sys/sys/signalvar.h#14 integrate
.. //depot/projects/ia64/sys/vm/pmap.h#19 integrate
.. //depot/projects/ia64/sys/vm/vm_map.c#59 integrate
Differences ...
==== //depot/projects/ia64/contrib/groff/tmac/doc-common#11 (text+ko) ====
@@ -101,7 +101,7 @@
.nr Ft 8n\" ?
.nr Fx 1
.nr Ic 10n
-.nr In 12n\" ?
+.nr In 12n
.nr It 8n\" ?
.nr Lb 11n
.nr Li 16n
@@ -587,6 +587,25 @@
..
.
.
+.\" NS doc-check-depth macro
+.\" NS check paired macros
+.
+.de doc-check-depth
+. if \n[doc-list-depth] \{\
+. tm mdoc warning: A .Bl directive has no matching .El (#\n[.c])
+. nr doc-list-depth 0
+. \}
+. if \n[doc-display-depth] \{\
+. tm mdoc warning: A .Bd directive has no matching .Ed (#\n[.c])
+. nr doc-display-depth 0
+. \}
+. if \n[doc-fontmode-depth] \{\
+. tm mdoc warning: A .Bf directive has no matching .Ef (#\n[.c])
+. nr doc-fontmode-depth 0
+. \}
+..
+.
+.
.\" NS doc-end-macro macro
.\" NS finish output
.
@@ -603,8 +622,7 @@
. pl +3v
. fl
.
-. if \n[doc-list-depth] \
-. tm mdoc warning: list open at EOF! A .Bl directive has no matching .El
+. doc-check-depth
.
. if \n[cR] \{\
. sp
@@ -834,6 +852,8 @@
.
. in +\n[doc-subheader-indent]u
. ns
+.
+. doc-check-depth
. \}
..
.
@@ -898,6 +918,8 @@
. ne 2
. br
. ns
+.
+. doc-check-depth
. \}
..
.
==== //depot/projects/ia64/contrib/groff/tmac/doc.tmac#6 (text+ko) ====
@@ -683,7 +683,7 @@
. nr doc-curr-size \n[.ps]
.
. ie \n[doc-in-synopsis-section] \{\
-. if "\*[doc-macro-name]"Cd" \{\
+. ie "\*[doc-macro-name]"Cd" \{\
. br
. if !\n[doc-indent-synopsis] \
. nr doc-indent-synopsis \n[doc-display-indent]u
@@ -694,6 +694,10 @@
. doc-print-recursive
. if !\n[doc-indent-synopsis-active] \
. in -\n[doc-indent-synopsis]u
+. \}
+. el \{\
+. nop \*[doc-Nm-font]\c
+. doc-print-recursive
. \}\}
. el \{\
. nop \*[doc-Nm-font]\c
@@ -820,22 +824,64 @@
.
.
.\" NS In user macro
-.\" NS #include statement - not callable
+.\" NS #include statement in SYNOPSIS
+.\" NS <header.h> if not in SYNOPSIS
.\" NS
.\" NS this function causes a break; it uses the `Fd' font
.\" NS
+.\" NS modifies:
+.\" NS doc-arg-ptr
+.\" NS doc-curr-font
+.\" NS doc-curr-size
+.\" NS doc-indent-synopsis
+.\" NS doc-macro-name
+.\" NS
.\" NS width register `In' set in doc-common
.
.de In
-. ie ((\n[.$] == 1) & (\n[doc-arg-limit] == 0)) \{\
-. doc-do-func-decl
-. nop \*[doc-Fd-font]#include <\$1>
-. br
-. ft \n[doc-curr-font]
-. ps \n[doc-curr-size]u
+. if !\n[doc-arg-limit] \{\
+. ie \n[.$] \{\
+. ds doc-macro-name In
+. doc-parse-args \$@
+. \}
+. el \
+. tm Usage: .In include_file ... (#\n[.c])
. \}
+.
+. if !\n[doc-arg-limit] \
+. return
+.
+. nr doc-arg-ptr +1
+. doc-print-prefixes
+. ie ((\n[doc-arg-limit] >= \n[doc-arg-ptr]) & (\n[doc-type\n[doc-arg-ptr]] == 2)) \{\
+. nr doc-curr-font \n[.f]
+. nr doc-curr-size \n[.ps]
+.
+. ie \n[doc-in-synopsis-section] \{\
+. ie "\*[doc-macro-name]"In" \{\
+. doc-do-func-decl
+. nop \*[doc-Fd-font]#include <\*[doc-arg\n[doc-arg-ptr]]>
+. ft \n[doc-curr-font]
+. ps \n[doc-curr-size]u
+. br
+. nr doc-arg-ptr +1
+. ie (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \
+. doc-print-recursive
+. el \
+. doc-reset-args
+. \}
+. el \{\
+. ds doc-arg\n[doc-arg-ptr] "<\*[doc-Pa-font]\*[doc-arg\n[doc-arg-ptr]]
+. as doc-arg\n[doc-arg-ptr] \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]>
+. doc-print-recursive
+. \}\}
+. el \{\
+. ds doc-arg\n[doc-arg-ptr] "<\*[doc-Pa-font]\*[doc-arg\n[doc-arg-ptr]]
+. as doc-arg\n[doc-arg-ptr] \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]>
+. doc-print-recursive
+. \}\}
. el \{\
-. tm Usage: .In include_file -- In is not callable (#\n[.c])
+. tm Usage: .In include_file ... (#\n[.c])
. doc-reset-args
. \}
..
@@ -4676,13 +4722,16 @@
. ds doc-arg\n[doc-arg-ptr] "\*[doc-func-arg]
.
. if (\n[doc-func-arg-count] > 1) \{\
-. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\|,\)\c
+. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\|\c
+. if !"\*[doc-arg\n[doc-arg-ptr]]"/*" \
+. if !"\*[doc-arg\n[doc-arg-ptr]]"*/" \
+. nop ,\)\c
. nop \)\*[doc-space\n[doc-arg-ptr]]\*[doc-Fa-font]\c
. nop \)\*[doc-arg\n[doc-arg-ptr]]\f[]\s[0]\c
. \}
.
. if (\n[doc-func-arg-count] == 1) \{\
-. nop \|\*[doc-Fa-font]\*[doc-arg\n[doc-arg-ptr]]\c
+. nop \)\*[doc-Fa-font]\*[doc-arg\n[doc-arg-ptr]]\c
. nop \f[]\s[0]\c
. \}
. nr doc-func-arg-count +1
@@ -4755,7 +4804,7 @@
.
. br
. if !\n[doc-indent-synopsis] \
-. nr doc-indent-synopsis (8u * \n[doc-fixed-width]u)
+. nr doc-indent-synopsis (4u * \n[doc-fixed-width]u)
. if !\n[doc-indent-synopsis-active] \
. in +\n[doc-indent-synopsis]u
. ti -\n[doc-indent-synopsis]u
@@ -4833,7 +4882,10 @@
. if (\n[doc-arg-limit] >= \n[doc-arg-ptr]) \{\
. if (\n[doc-type\n[doc-arg-ptr]] == 2) \{\
. nr doc-reg-ddfa (\n[doc-arg-ptr] - 1)
-. nop \|\f[\n[doc-curr-font]]\s[\n[doc-curr-size]u],\)\c
+. nop \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u]\|\c
+. if !"\*[doc-arg\n[doc-arg-ptr]]"/*" \
+. if !"\*[doc-arg\n[doc-arg-ptr]]"*/" \
+. nop ,\)\c
. nop \)\*[doc-space\n[doc-reg-ddfa]]\f[]\s[0]\|\c
. doc-do-func-args
. \}\}
@@ -4917,7 +4969,7 @@
.
. br
. if !\n[doc-indent-synopsis] \
-. nr doc-indent-synopsis (8u * \n[doc-fixed-width]u)
+. nr doc-indent-synopsis (4u * \n[doc-fixed-width]u)
. \}
.
. \" start function box
@@ -6133,19 +6185,19 @@
.
.ds doc-str-Rv-std-prefix "The
.ds doc-str-Rv-std-suffix "function returns the value\~0 if successful;
-.as doc-str-Rv-std-suffix " otherwise the value\~-1 is returned and
+.as doc-str-Rv-std-suffix " otherwise the value\~\-1 is returned and
.as doc-str-Rv-std-suffix " the global variable \*[doc-Va-font]errno\f[]
.as doc-str-Rv-std-suffix " is set to indicate the error.
.
.ds doc-str-Rv-stds-prefix "The
.ds doc-str-Rv-stds-and "and
.ds doc-str-Rv-stds-suffix "functions return the value\~0 if successful;
-.as doc-str-Rv-stds-suffix " otherwise the value\~-1 is returned and
+.as doc-str-Rv-stds-suffix " otherwise the value\~\-1 is returned and
.as doc-str-Rv-stds-suffix " the global variable \*[doc-Va-font]errno\f[]
.as doc-str-Rv-stds-suffix " is set to indicate the error.
.
.ds doc-str-Rv-std0 "Upon successful completion, the value\~0 is returned;
-.as doc-str-Rv-std0 " otherwise the value\~-1 is returned and
+.as doc-str-Rv-std0 " otherwise the value\~\-1 is returned and
.as doc-str-Rv-std0 " the global variable \*[doc-Va-font]errno\f[]
.as doc-str-Rv-std0 " is set to indicate the error.
.
==== //depot/projects/ia64/contrib/groff/tmac/groff_mdoc.man#8 (text+ko) ====
@@ -1398,15 +1398,25 @@
.Pp
The
.Ql .In
-.Li ( #include
-statement)
-macro is the short form of the above example.
+macro, while in the
+.Sx SYNOPSIS
+section, represents the
+.Li #include
+statement, and is the short form of the above example.
It specifies the C\~header file as being included in a C\~program.
-It also causes a line break, and is neither callable nor parsed.
+It also causes a line break.
+.Pp
+While not in the
+.Sx SYNOPSIS
+section, it represents the header file enclosed in angle brackets.
.Pp
.Dl Usage: .In Ao header file Ac
.Pp
.Bl -tag -width ".Li .In\ stdio.h" -compact -offset 15n
+.nr in-synopsis-section 1
+.It Li ".In stdio.h"
+.In stdio.h
+.nr in-synopsis-section 0
.It Li ".In stdio.h"
.In stdio.h
.El
==== //depot/projects/ia64/etc/motd#3 (text+ko) ====
@@ -17,7 +17,7 @@
`uname -a', along with any relevant error messages, and email it
as a question to the questions at FreeBSD.org mailing list. If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
-man page. If you are not familiar with man pages, type `man man'.
+manual page. If you are not familiar with manual pages, type `man man'.
You may also use sysinstall(8) to re-enter the installation and
configuration utility. Edit /etc/motd to change this login announcement.
==== //depot/projects/ia64/lib/libc/gen/exec.3#6 (text+ko) ====
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)exec.3 8.3 (Berkeley) 1/24/94
-.\" $FreeBSD: src/lib/libc/gen/exec.3,v 1.21 2003/06/29 17:33:34 gordon Exp $
+.\" $FreeBSD: src/lib/libc/gen/exec.3,v 1.22 2003/07/03 18:14:39 ru Exp $
.\"
.Dd January 24, 1994
.Dt EXEC 3
@@ -50,11 +50,17 @@
.In unistd.h
.Vt extern char **environ ;
.Ft int
-.Fn execl "const char *path" "const char *arg" "... /*" "(char *)0*/"
+.Fn execl "const char *path" "const char *arg" ... /* "(char *)0" */
.Ft int
-.Fn execlp "const char *file" "const char *arg" "... /*" "(char *)0*/"
+.Fn execlp "const char *file" "const char *arg" ... /* "(char *)0" */
.Ft int
-.Fn execle "const char *path" "const char *arg" "... /*" "(char *)0" "char *const envp[]*/"
+.Fo execle
+.Fa "const char *path" "const char *arg" ...
+.Fa /*
+.Bk -words
+.Fa "(char *)0" "char *const envp[]" */
+.Ek
+.Fc
.Ft int
.Fn exect "const char *path" "char *const argv[]" "char *const envp[]"
.Ft int
==== //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#23 (text+ko) ====
@@ -33,7 +33,7 @@
*
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.74 2003/06/30 06:16:50 davidxu Exp $");
+__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.75 2003/07/03 10:12:21 davidxu Exp $");
#include <sys/types.h>
#include <sys/kse.h>
@@ -673,7 +673,8 @@
/*
* This thread is being resumed; check for cancellations.
*/
- if ((psf.psf_valid || curthread->check_pending)) {
+ if ((psf.psf_valid ||
+ (curthread->check_pending && !THR_IN_CRITICAL(curthread)))) {
resume_once = 0;
THR_GETCONTEXT(&uc);
if (resume_once == 0) {
==== //depot/projects/ia64/lib/libpthread/thread/thr_select.c#3 (text+ko) ====
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libpthread/thread/thr_select.c,v 1.24 2003/04/18 05:04:16 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_select.c,v 1.25 2003/07/03 13:36:29 davidxu Exp $
*/
#include <unistd.h>
#include <errno.h>
@@ -50,11 +50,16 @@
struct timeval *timeout)
{
struct pthread *curthread = _get_curthread();
+ struct timespec ts;
int ret;
- _thr_enter_cancellation_point(curthread);
- ret = __sys_select(numfds, readfds, writefds, exceptfds, timeout);
- _thr_leave_cancellation_point(curthread);
-
+ if (numfds == 0 && timeout != NULL) {
+ TIMEVAL_TO_TIMESPEC(timeout, &ts);
+ return nanosleep(&ts, NULL);
+ } else {
+ _thr_enter_cancellation_point(curthread);
+ ret = __sys_select(numfds, readfds, writefds, exceptfds, timeout);
+ _thr_leave_cancellation_point(curthread);
+ }
return ret;
}
==== //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#12 (text+ko) ====
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.15 2003/07/02 02:05:23 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.16 2003/07/03 13:28:53 mtm Exp $
*/
#include <stdlib.h>
#include <errno.h>
@@ -301,11 +301,16 @@
return (ret);
}
+/*
+ * Libc internal.
+ */
int
_pthread_mutex_trylock(pthread_mutex_t *mutex)
{
int ret = 0;
+ _thread_sigblock();
+
if (mutex == NULL)
ret = EINVAL;
@@ -317,6 +322,9 @@
(ret = mutex_init(mutex, 1)) == 0)
ret = mutex_lock_common(mutex, 1);
+ if (ret != 0)
+ _thread_sigunblock();
+
return (ret);
}
==== //depot/projects/ia64/share/man/man5/group.5#4 (text+ko) ====
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" From: @(#)group.5 8.3 (Berkeley) 4/19/94
-.\" $FreeBSD: src/share/man/man5/group.5,v 1.25 2003/02/20 17:32:26 ceri Exp $
+.\" $FreeBSD: src/share/man/man5/group.5,v 1.26 2003/07/03 06:03:12 jkoshy Exp $
.\"
.Dd September 29, 1994
.Dt GROUP 5
@@ -146,6 +146,7 @@
.Xr initgroups 3 ,
.Xr nsswitch.conf 5 ,
.Xr passwd 5 ,
+.Xr pw 8 ,
.Xr yp 8
.Sh BUGS
The
==== //depot/projects/ia64/share/man/man5/linprocfs.5#5 (text+ko) ====
@@ -1,4 +1,4 @@
-.\" $FreeBSD: src/share/man/man5/linprocfs.5,v 1.11 2002/12/12 17:25:57 ru Exp $
+.\" $FreeBSD: src/share/man/man5/linprocfs.5,v 1.12 2003/07/03 06:07:26 jkoshy Exp $
.\" Written by Garrett Wollman
.\" This file is in the public domain.
.\"
@@ -22,14 +22,12 @@
.Nm
provides a two-level view of process space.
At the highest level, processes themselves are named, according to
-their process ids in decimal, with no leading zeros. There is also a
-special node called
+their process ids in decimal, with no leading zeros.
+There is also a special node called
.Pa self
which always refers to the process making the lookup request.
.Pp
-Each node is a directory which contains the following entries:
-.Pp
-Each directory contains several files:
+Each node is a directory containing several files:
.Bl -tag -width status
.It Pa exe
A reference to the vnode from which the process text was read.
@@ -51,21 +49,21 @@
.Sh FILES
.Bl -tag -width /compat/linux/proc/self/XXXXXXX -compact
.It Pa /compat/linux/proc
-normal mount point for the
+The normal mount point for the
.Nm .
.It Pa /compat/linux/proc/cpuinfo
CPU vendor and model information in human-readable form.
.It Pa /compat/linux/proc/meminfo
System memory information in human-readable form.
.It Pa /compat/linux/proc/pid
-directory containing process information for process
+A directory containing process information for process
.Pa pid .
.It Pa /compat/linux/proc/self
-directory containing process information for the current process
+A directory containing process information for the current process.
.It Pa /compat/linux/proc/self/exe
-executable image
+The executable image for the current process.
.It Pa /compat/linux/proc/self/mem
-the complete virtual address space of the process
+The complete virtual address space of the current process.
.El
.Sh SEE ALSO
.Xr mount 2 ,
==== //depot/projects/ia64/share/man/man9/bus_dma.9#5 (text+ko) ====
@@ -57,7 +57,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/bus_dma.9,v 1.4 2003/06/30 20:20:51 jmg Exp $
+.\" $FreeBSD: src/share/man/man9/bus_dma.9,v 1.6 2003/07/03 09:07:03 scottl Exp $
.\" $NetBSD: bus_dma.9,v 1.25 2002/10/14 13:43:16 wiz Exp $
.\"
.Dd May 28, 2003
@@ -83,7 +83,8 @@
.Fn bus_dma_tag_create "bus_dma_tag_t parent" "bus_size_t alignment" \
"bus_size_t boundary" "bus_addr_t lowaddr" "bus_addr_t highaddr" \
"bus_dma_filter_t *filtfunc" "void *filtfuncarg" "bus_size_t maxsize" \
-"int nsegments" "bus_size_t maxsegsz" "int flags" "bus_dma_tag_t *dmat"
+"int nsegments" "bus_size_t maxsegsz" "int flags" "bus_dma_lock_t *lockfunc" \
+"void *lockfuncarg" "bus_dma_tag_t *dmat"
.Ft int
.Fn bus_dma_tag_destroy "bus_dma_tag_t dmat"
.Ft int
@@ -260,12 +261,45 @@
Perform any synchronization required after a combination of DMA read
and write operations.
.El
+.It Vt bus_dma_lock_t
+Client specified lock/mutex manipulation method. This will be called from
+within busdma whenever a client lock needs to be manipulated.
+This method is of the format:
+.Bl -tag -width compact
+.It Ft void
+.Fn "lockfunc" "void *lockfunc_arg" "bus_dma_lock_op_t op"
+.El
+.sp
+Two
+.Vt lockfunc
+implementations are provided for convenience.
+.Fn busdma_lock_mutex
+performs standard mutex operations on the sleep mutex provided via the
+.Fa lockfuncarg .
+passed into
+.Fn bus_dma_tag_create .
+.Fn dflt_lock
+will generate a system panic if it is called. It is substituted into
+the tag when
+.Fa lockfunc
+is passed as NULL to
+.Fn bus_dma_tag_create .
+.It Vt bus_dma_lock_op_t
+Operations to be performed by the client-specified
+.Fn lockfunc .
+.Bl -tag -width BUS_DMA_UNLOCK
+.It Dv BUS_DMA_LOCK
+Aquires and/or locks the client locking primitive.
+.It Dv BUS_DMA_UNLOCK
+Releases and/or unlocks the client locking primitive.
+.El
.El
+.sp
.Sh FUNCTIONS
.Bl -tag -width compact
.It Fn bus_dma_tag_create "parent" "alignment" "boundary" "lowaddr" \
"highaddr" "*filtfunc" "*filtfuncarg" "maxsize" "nsegments" "maxsegsz" \
-"flags" "*dmat"
+"flags" "lockfunc" "lockfuncarg" "*dmat"
Allocates a device specific DMA tag, and initializes it according to
the arguments provided:
.Bl -tag -width *filtfuncarg -compact
@@ -354,6 +388,14 @@
.Er ENOMEM
is returned.
.El
+.It Fa lockfunc
+Optional lock manipulation function (may be NULL) to be called when busdma
+needs to manipulate a lock on behalf of the client. If NULL is specified,
+.Fn dflt_lock
+is used.
+.It Fa lockfuncarg
+Optional argument to be passed to the function specified by
+.Fa lockfunc .
.It Fa dmat
Pointer to a bus_dma_tag_t where the resulting DMA tag will
be stored.
==== //depot/projects/ia64/share/mk/bsd.dep.mk#12 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/mk/bsd.dep.mk,v 1.40 2003/07/02 16:43:07 ru Exp $
+# $FreeBSD: src/share/mk/bsd.dep.mk,v 1.41 2003/07/03 11:43:57 bde Exp $
#
# The include file <bsd.dep.mk> handles Makefile dependencies.
#
@@ -166,14 +166,12 @@
.endif
.if !target(checkdpadd) && (defined(DPADD) || defined(LDADD))
+_LDADD_FROM_DPADD= ${DPADD:C;^/usr/lib/lib(.*)\.a$;-l\1;}
+_LDADD_CANONICALIZED= ${LDADD:S/$//}
checkdpadd:
- @ldadd=`echo \`for lib in ${DPADD} ; do \
- echo $$lib | sed 's;^/usr/lib/lib\(.*\)\.a;-l\1;' ; \
- done \`` ; \
- ldadd1=`echo ${LDADD}` ; \
- if [ "$$ldadd" != "$$ldadd1" ] ; then \
- echo ${.CURDIR} ; \
- echo "DPADD -> $$ldadd" ; \
- echo "LDADD -> $$ldadd1" ; \
- fi
+.if ${_LDADD_FROM_DPADD} != ${_LDADD_CANONICALIZED}
+ @echo ${.CURDIR}
+ @echo "DPADD -> ${_LDADD_FROM_DPADD}"
+ @echo "LDADD -> ${_LDADD_CANONICALIZED}"
+.endif
.endif
==== //depot/projects/ia64/sys/alpha/alpha/mp_machdep.c#11 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.43 2003/07/02 16:09:00 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.44 2003/07/03 14:33:17 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -379,7 +379,7 @@
}
continue;
}
- if (resource_disabled("cpu", i))
+ if (resource_disabled("cpu", i)) {
printf("CPU %d disabled by loader.\n", i);
continue;
}
==== //depot/projects/ia64/sys/alpha/alpha/pmap.c#34 (text+ko) ====
@@ -148,7 +148,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.128 2003/06/29 21:20:02 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.129 2003/07/03 20:18:00 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -2070,7 +2070,6 @@
return (void *) ALPHA_PHYS_TO_K0SEG(pa - (i * PAGE_SIZE));
}
-#define MAX_INIT_PT (96)
/*
* pmap_object_init_pt preloads the ptes for a given object
* into the specified pmap. This eliminates the blast of soft
@@ -2079,112 +2078,12 @@
void
pmap_object_init_pt(pmap_t pmap, vm_offset_t addr,
vm_object_t object, vm_pindex_t pindex,
- vm_size_t size, int limit)
+ vm_size_t size)
{
- vm_offset_t tmpidx;
- int psize;
- vm_page_t p, mpte;
- int objpgs;
- if (pmap == NULL || object == NULL)
- return;
- VM_OBJECT_LOCK(object);
- psize = alpha_btop(size);
-
- if ((object->type != OBJT_VNODE) ||
- ((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) &&
- (object->resident_page_count > MAX_INIT_PT))) {
- goto unlock_return;
- }
-
- if (psize + pindex > object->size) {
- if (object->size < pindex)
- goto unlock_return;
- psize = object->size - pindex;
- }
-
- mpte = NULL;
- /*
- * if we are processing a major portion of the object, then scan the
- * entire thing.
- */
- if (psize > (object->resident_page_count >> 2)) {
- objpgs = psize;
-
- for (p = TAILQ_FIRST(&object->memq);
- ((objpgs > 0) && (p != NULL));
- p = TAILQ_NEXT(p, listq)) {
-
- tmpidx = p->pindex;
- if (tmpidx < pindex) {
- continue;
- }
- tmpidx -= pindex;
- if (tmpidx >= psize) {
- continue;
- }
- /*
- * don't allow an madvise to blow away our really
- * free pages allocating pv entries.
- */
- if ((limit & MAP_PREFAULT_MADVISE) &&
- cnt.v_free_count < cnt.v_free_reserved) {
- break;
- }
- vm_page_lock_queues();
- if (((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) &&
- (p->busy == 0) &&
- (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) {
- if ((p->queue - p->pc) == PQ_CACHE)
- vm_page_deactivate(p);
- vm_page_busy(p);
- vm_page_unlock_queues();
- VM_OBJECT_UNLOCK(object);
- mpte = pmap_enter_quick(pmap,
- addr + alpha_ptob(tmpidx), p, mpte);
- VM_OBJECT_LOCK(object);
- vm_page_lock_queues();
- vm_page_wakeup(p);
- }
- vm_page_unlock_queues();
- objpgs -= 1;
- }
- } else {
- /*
- * else lookup the pages one-by-one.
- */
- for (tmpidx = 0; tmpidx < psize; tmpidx += 1) {
- /*
- * don't allow an madvise to blow away our really
- * free pages allocating pv entries.
- */
- if ((limit & MAP_PREFAULT_MADVISE) &&
- cnt.v_free_count < cnt.v_free_reserved) {
- break;
- }
- p = vm_page_lookup(object, tmpidx + pindex);
- if (p == NULL)
- continue;
- vm_page_lock_queues();
- if ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL &&
- (p->busy == 0) &&
- (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) {
- if ((p->queue - p->pc) == PQ_CACHE)
- vm_page_deactivate(p);
- vm_page_busy(p);
- vm_page_unlock_queues();
- VM_OBJECT_UNLOCK(object);
- mpte = pmap_enter_quick(pmap,
- addr + alpha_ptob(tmpidx), p, mpte);
- VM_OBJECT_LOCK(object);
- vm_page_lock_queues();
- vm_page_wakeup(p);
- }
- vm_page_unlock_queues();
- }
- }
-unlock_return:
- VM_OBJECT_UNLOCK(object);
+ VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ KASSERT(object->type == OBJT_DEVICE,
+ ("pmap_object_init_pt: non-device object"));
}
/*
==== //depot/projects/ia64/sys/amd64/amd64/pmap.c#9 (text+ko) ====
@@ -39,7 +39,7 @@
* SUCH DAMAGE.
*
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.418 2003/06/29 21:20:03 alc Exp $
+ * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.419 2003/07/03 20:18:01 alc Exp $
*/
/*-
* Copyright (c) 2003 Networks Associates Technology, Inc.
@@ -2057,31 +2057,22 @@
return ((void *)crashdumpmap);
}
-#define MAX_INIT_PT (96)
/*
- * pmap_object_init_pt preloads the ptes for a given object
- * into the specified pmap. This eliminates the blast of soft
- * faults on process startup and immediately after an mmap.
+ * This code maps large physical mmap regions into the
+ * processor address space. Note that some shortcuts
+ * are taken, but the code works.
*/
void
pmap_object_init_pt(pmap_t pmap, vm_offset_t addr,
vm_object_t object, vm_pindex_t pindex,
- vm_size_t size, int limit)
+ vm_size_t size)
{
- vm_pindex_t tmpidx;
- int psize;
- vm_page_t p, mpte;
+ vm_page_t p;
- if (pmap == NULL || object == NULL)
- return;
- VM_OBJECT_LOCK(object);
- /*
- * This code maps large physical mmap regions into the
- * processor address space. Note that some shortcuts
- * are taken, but the code works.
- */
- if ((object->type == OBJT_DEVICE) &&
- ((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) {
+ VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ KASSERT(object->type == OBJT_DEVICE,
+ ("pmap_object_init_pt: non-device object"));
+ if (((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) {
int i;
vm_page_t m[1];
int npdes;
@@ -2089,7 +2080,7 @@
pde = pmap_pde(pmap, addr);
if (pde != 0 && (*pde & PG_V) != 0)
- goto unlock_return;
+ return;
retry:
p = vm_page_lookup(object, pindex);
if (p != NULL) {
@@ -2099,14 +2090,14 @@
} else {
p = vm_page_alloc(object, pindex, VM_ALLOC_NORMAL);
if (p == NULL)
- goto unlock_return;
+ return;
m[0] = p;
if (vm_pager_get_pages(object, m, 1, 0) != VM_PAGER_OK) {
vm_page_lock_queues();
vm_page_free(p);
vm_page_unlock_queues();
- goto unlock_return;
+ return;
}
p = vm_page_lookup(object, pindex);
@@ -2116,9 +2107,8 @@
vm_page_unlock_queues();
ptepa = VM_PAGE_TO_PHYS(p);
- if (ptepa & (NBPDR - 1)) {
- goto unlock_return;
- }
+ if (ptepa & (NBPDR - 1))
+ return;
p->valid = VM_PAGE_BITS_ALL;
@@ -2130,65 +2120,7 @@
pde++;
}
pmap_invalidate_all(kernel_pmap);
- goto unlock_return;
- }
-
- psize = amd64_btop(size);
-
- if ((object->type != OBJT_VNODE) ||
- ((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) &&
- (object->resident_page_count > MAX_INIT_PT))) {
- goto unlock_return;
}
-
- if (psize + pindex > object->size) {
- if (object->size < pindex)
- goto unlock_return;
- psize = object->size - pindex;
- }
-
- mpte = NULL;
-
- if ((p = TAILQ_FIRST(&object->memq)) != NULL) {
- if (p->pindex < pindex) {
- p = vm_page_splay(pindex, object->root);
- if ((object->root = p)->pindex < pindex)
- p = TAILQ_NEXT(p, listq);
- }
- }
- /*
- * Assert: the variable p is either (1) the page with the
- * least pindex greater than or equal to the parameter pindex
- * or (2) NULL.
- */
- for (;
- p != NULL && (tmpidx = p->pindex - pindex) < psize;
- p = TAILQ_NEXT(p, listq)) {
- /*
- * don't allow an madvise to blow away our really
- * free pages allocating pv entries.
- */
- if ((limit & MAP_PREFAULT_MADVISE) &&
- cnt.v_free_count < cnt.v_free_reserved) {
- break;
- }
- vm_page_lock_queues();
- if ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL &&
- (p->busy == 0) &&
- (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) {
- if ((p->queue - p->pc) == PQ_CACHE)
- vm_page_deactivate(p);
- vm_page_busy(p);
- vm_page_unlock_queues();
- mpte = pmap_enter_quick(pmap,
- addr + amd64_ptob(tmpidx), p, mpte);
- vm_page_lock_queues();
- vm_page_wakeup(p);
- }
- vm_page_unlock_queues();
- }
-unlock_return:
- VM_OBJECT_UNLOCK(object);
}
/*
==== //depot/projects/ia64/sys/dev/firewire/fwohci_pci.c#19 (text+ko) ====
@@ -31,7 +31,7 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/firewire/fwohci_pci.c,v 1.27 2003/07/01 15:51:56 scottl Exp $
+ * $FreeBSD: src/sys/dev/firewire/fwohci_pci.c,v 1.28 2003/07/03 14:00:56 imp Exp $
*/
#define BOUNCE_BUFFER_TEST 0
@@ -403,9 +403,11 @@
{
fwohci_softc_t *sc = device_get_softc(dev);
+#ifndef BURN_BRIDGES
device_printf(dev, "fwohci_pci_resume: power_state = 0x%08x\n",
pci_get_powerstate(dev));
pci_set_powerstate(dev, PCI_POWERSTATE_D0);
+#endif
fwohci_pci_init(dev);
fwohci_resume(sc, dev);
return 0;
==== //depot/projects/ia64/sys/dev/fxp/if_fxp.c#37 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.185 2003/07/01 15:51:56 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/fxp/if_fxp.c,v 1.186 2003/07/03 14:00:56 imp Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -193,7 +193,9 @@
static void fxp_init(void *xsc);
static void fxp_init_body(struct fxp_softc *sc);
static void fxp_tick(void *xsc);
+#ifndef BURN_BRIDGES
static void fxp_powerstate_d0(device_t dev);
+#endif
static void fxp_start(struct ifnet *ifp);
static void fxp_start_body(struct ifnet *ifp);
static void fxp_stop(struct fxp_softc *sc);
@@ -335,6 +337,7 @@
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list