[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnumach] 01/03: New upstream version 1.8
From: |
Samuel Thibault |
Subject: |
[gnumach] 01/03: New upstream version 1.8 |
Date: |
Mon, 19 Dec 2016 15:02:28 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch master-1.8
in repository gnumach.
commit ae7edf531dd2a673660dfc250e41f101ea068b16
Author: Samuel Thibault <address@hidden>
Date: Mon Dec 19 15:57:46 2016 +0100
New upstream version 1.8
---
ChangeLog | 24 +++++
NEWS | 27 +++++-
build-aux/config.guess | 28 +++---
build-aux/config.sub | 22 +++--
configure | 20 ++---
doc/mach.info | 240 ++++++++++++++++++++++++-------------------------
doc/mach.info-1 | 14 ++-
doc/mach.info-2 | 6 +-
doc/mach.texi | 6 +-
doc/stamp-vti | 8 +-
doc/version.texi | 8 +-
ipc/ipc_kmsg.c | 2 -
kern/rbtree.h | 2 +-
version.m4 | 2 +-
vm/vm_map.c | 27 +++---
15 files changed, 250 insertions(+), 186 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index f8397b0..5562331 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2016-12-18 Thomas Schwinge <address@hidden>
+
+ GNU Mach 1.8
+ * version.m4 (AC_PACKAGE_VERSION): Set to 1.8.
+ * NEWS: Finalize for 1.8.
+
+2016-12-11 Richard Braun <address@hidden>
+
+ VM: make vm_wire more POSIX-friendly
+ * doc/mach.texi: Update return codes.
+ * vm/vm_map.c (vm_map_pageable_common): Return KERN_NO_SPACE instead
+ of KERN_FAILURE if some of the specified address range does not
+ correspond to mapped pages. Skip unwired entries instead of failing
+ when unwiring.
+
+2016-12-09 Justus Winter <address@hidden>
+
+ Update the NEWS file
+
+2016-12-09 Richard Braun <address@hidden>
+
+ rbtree: minor change
+ * kern/rbtree.h (rbtree_for_each_remove): Remove trailing slash.
+
2032-05-12 Richard Braun <address@hidden>
VM: fix pageout throttling to external pagers
diff --git a/NEWS b/NEWS
index a14ac2b..8349550 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,29 @@
-Version 1.8 (2016-10-XX)
+Version 1.8 (2016-12-18)
+
+The memory management system was extensively reworked. A new type for
+physical addresses is now used where appropriate, and the system can
+make use of the high memory segment. Many paging issues have been
+addressed, and as a result the system handles low memory situations
+more gracefully now.
+
+The virtual memory system now uses a red-black tree for allocations,
+and as a result it now supports tasks with tens of thousands of
+mappings.
+
+Debugging and error reporting has been improved. Among other things
+the VM maps are now augmented with names that are used in error
+messages, panics and assertions point to their locations, the lock
+debugging mechanism has been fixed, and the kernel debugger can now
+inspect stack traces reaching into the machine-dependent bits
+implemented in assembler.
+
+As usual, bugs have been fixed throughout the code, including minor
+issues with the gsync synchronization mechanism which is now used for
+the internal locks in the GNU C Library (glibc).
The deprecated external memory management interface has been removed.
+
+The partial ACPI support has been removed.
Version 1.7 (2016-05-18)
@@ -63,7 +86,7 @@ The kernel debugger can now parse ELF symbol tables, can be
invoked
over serial lines, gained two new commands and has received usability
improvements.
-The vm pageout policy has been tuned to accommodate modern hardware.
+The VM pageout policy has been tuned to accommodate modern hardware.
The kernel gained partial ACPI support on x86, enough to power down
the system.
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 0967f2a..2e9ad7f 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2016-04-02'
+timestamp='2016-10-02'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -186,9 +186,12 @@ case
"${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
+ # to ELF recently (or will in the future) and ABI.
case "${UNAME_MACHINE_ARCH}" in
- arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
@@ -997,6 +1000,9 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
+ mips64el:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
openrisc*:Linux:*:*)
echo or1k-unknown-linux-${LIBC}
exit ;;
@@ -1029,6 +1035,9 @@ EOF
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-${LIBC}
exit ;;
+ riscv32:Linux:*:* | riscv64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
@@ -1408,18 +1417,17 @@ esac
cat >&2 <<EOF
$0: unable to guess system type
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
and
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <address@hidden> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to address@hidden to
+provide the necessary information to handle your system.
config.guess timestamp = $timestamp
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 8d39c4b..dd2ca93 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2016 Free Software Foundation, Inc.
-timestamp='2016-03-30'
+timestamp='2016-11-04'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -117,7 +117,7 @@ case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* |
kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
- kopensolaris*-gnu* | \
+ kopensolaris*-gnu* | cloudabi*-eabi* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -301,6 +301,7 @@ case $basic_machine in
| open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pru \
| pyramid \
| riscv32 | riscv64 \
| rl78 | rx \
@@ -428,6 +429,7 @@ case $basic_machine in
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pru-* \
| pyramid-* \
| riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
@@ -643,6 +645,14 @@ case $basic_machine in
basic_machine=m68k-bull
os=-sysv3
;;
+ e500v[12])
+ basic_machine=powerpc-unknown
+ os=$os"spe"
+ ;;
+ e500v[12]-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=$os"spe"
+ ;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
@@ -1022,7 +1032,7 @@ case $basic_machine in
ppc-* | ppcbe-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
+ ppcle | powerpclittle)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
@@ -1032,7 +1042,7 @@ case $basic_machine in
;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed
's/^[^-]*-//'`
;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
@@ -1389,7 +1399,7 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems*
\
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* |
-linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
@@ -1399,7 +1409,7 @@ case $os in
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos*)
+ | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
diff --git a/configure b/configure
index e7a4219..304890e 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GNU Mach 1.7+git20161202.
+# Generated by GNU Autoconf 2.69 for GNU Mach 1.8.
#
# Report bugs to <address@hidden>.
#
@@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU Mach'
PACKAGE_TARNAME='gnumach'
-PACKAGE_VERSION='1.7+git20161202'
-PACKAGE_STRING='GNU Mach 1.7+git20161202'
+PACKAGE_VERSION='1.8'
+PACKAGE_STRING='GNU Mach 1.8'
PACKAGE_BUGREPORT='address@hidden'
PACKAGE_URL=''
@@ -1599,7 +1599,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GNU Mach 1.7+git20161202 to adapt to many kinds of
systems.
+\`configure' configures GNU Mach 1.8 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1670,7 +1670,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU Mach 1.7+git20161202:";;
+ short | recursive ) echo "Configuration of GNU Mach 1.8:";;
esac
cat <<\_ACEOF
@@ -2026,7 +2026,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU Mach configure 1.7+git20161202
+GNU Mach configure 1.8
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2118,7 +2118,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GNU Mach $as_me 1.7+git20161202, which was
+It was created by GNU Mach $as_me 1.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2984,7 +2984,7 @@ fi
# Define the identity of the package.
PACKAGE='gnumach'
- VERSION='1.7+git20161202'
+ VERSION='1.8'
# Some tools Automake needs.
@@ -12189,7 +12189,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GNU Mach $as_me 1.7+git20161202, which was
+This file was extended by GNU Mach $as_me 1.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12260,7 +12260,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //;
s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GNU Mach config.status 1.7+git20161202
+GNU Mach config.status 1.8
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/doc/mach.info b/doc/mach.info
index cf13082..13efcef 100644
--- a/doc/mach.info
+++ b/doc/mach.info
@@ -2,8 +2,8 @@ This is mach.info, produced by makeinfo version 6.3 from
mach.texi.
This file documents the GNU Mach microkernel.
- This is edition 0.4, last updated on 16 October 2016, of 'The GNU
-Mach Reference Manual', for version 1.7+git20161202.
+ This is edition 0.4, last updated on 14 December 2016, of 'The GNU
+Mach Reference Manual', for version 1.8.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
@@ -39,126 +39,126 @@ END-INFO-DIR-ENTRY
Indirect:
-mach.info-1: 1641
-mach.info-2: 302874
+mach.info-1: 1630
+mach.info-2: 302732
Tag Table:
(Indirect)
-Node: Top1641
-Node: Introduction11280
-Node: Audience12111
-Node: Features13146
-Node: Overview14973
-Node: History16166
-Node: Installing16311
-Node: Binary Distributions17536
-Node: Compilation18344
-Node: Configuration19577
-Node: Cross-Compilation35988
-Node: Bootstrap36769
-Ref: Bootstrap-Footnote-137212
-Node: Bootloader37449
-Ref: Bootloader-Footnote-138729
-Node: Modules38815
-Node: Inter Process Communication39642
-Node: Major Concepts40265
-Node: Messaging Interface44070
-Node: Mach Message Call44800
-Node: Message Format48115
-Node: Exchanging Port Rights59307
-Ref: Exchanging Port Rights-Footnote-164869
-Node: Memory65041
-Ref: Memory-Footnote-168135
-Node: Message Send68477
-Ref: Message Send-Footnote-175499
-Node: Message Receive75782
-Ref: Message Receive-Footnote-185434
-Node: Atomicity85715
-Node: Port Manipulation Interface88489
-Node: Port Creation90044
-Node: Port Destruction94833
-Node: Port Names97976
-Node: Port Rights102223
-Node: Ports and other Tasks106012
-Node: Receive Rights110105
-Node: Port Sets117036
-Node: Request Notifications119439
-Node: Inherited Ports124243
-Node: Virtual Memory Interface127927
-Node: Memory Allocation129180
-Node: Memory Deallocation131705
-Node: Data Transfer133169
-Node: Memory Attributes136695
-Node: Mapping Memory Objects146134
-Node: Memory Statistics149426
-Node: External Memory Management151000
-Node: Memory Object Server151705
-Node: Memory Object Creation154386
-Node: Memory Object Termination158374
-Node: Memory Objects and Data161313
-Node: Memory Object Locking175218
-Node: Memory Object Attributes181082
-Node: Default Memory Manager184857
-Node: Threads and Tasks190539
-Node: Thread Interface190876
-Node: Thread Creation191872
-Node: Thread Termination192989
-Node: Thread Information193460
-Node: Thread Settings199559
-Node: Thread Execution200793
-Node: Scheduling208086
-Node: Thread Priority208441
-Node: Hand-Off Scheduling211075
-Node: Scheduling Policy216200
-Node: Thread Special Ports217532
-Node: Exceptions219978
-Node: Task Interface220848
-Node: Task Creation221860
-Node: Task Termination223195
-Node: Task Information223797
-Node: Task Execution230699
-Node: Task Special Ports235112
-Node: Syscall Emulation238966
-Node: Profiling240197
-Node: Host Interface243960
-Node: Host Ports244945
-Node: Host Information247018
-Node: Host Time252401
-Node: Host Reboot255068
-Node: Processors and Processor Sets255620
-Node: Processor Set Interface256598
-Node: Processor Set Ports257365
-Node: Processor Set Access258195
-Node: Processor Set Creation260455
-Node: Processor Set Destruction261482
-Node: Tasks and Threads on Sets262403
-Node: Processor Set Priority267570
-Node: Processor Set Policy268860
-Node: Processor Set Info270474
-Node: Processor Interface274287
-Node: Hosted Processors275012
-Node: Processor Control276003
-Node: Processors and Sets277469
-Node: Processor Info279347
-Node: Device Interface282089
-Node: Device Reply Server283704
-Node: Device Open284996
-Node: Device Close287119
-Node: Device Read287698
-Node: Device Write290617
-Node: Device Map293422
-Node: Device Status294313
-Node: Device Filter295486
-Node: Kernel Debugger302874
-Node: Operation303601
-Node: Commands306578
-Node: Variables320363
-Node: Expressions321751
-Node: Copying323100
-Node: Documentation License342329
-Node: GNU Free Documentation License342918
-Node: CMU License365317
-Node: Concept Index366552
-Node: Function and Data Index370398
+Node: Top1630
+Node: Introduction11258
+Node: Audience12089
+Node: Features13124
+Node: Overview14951
+Node: History16144
+Node: Installing16289
+Node: Binary Distributions17514
+Node: Compilation18322
+Node: Configuration19555
+Node: Cross-Compilation35966
+Node: Bootstrap36747
+Ref: Bootstrap-Footnote-137190
+Node: Bootloader37427
+Ref: Bootloader-Footnote-138707
+Node: Modules38793
+Node: Inter Process Communication39620
+Node: Major Concepts40243
+Node: Messaging Interface44048
+Node: Mach Message Call44778
+Node: Message Format48093
+Node: Exchanging Port Rights59285
+Ref: Exchanging Port Rights-Footnote-164847
+Node: Memory65019
+Ref: Memory-Footnote-168113
+Node: Message Send68455
+Ref: Message Send-Footnote-175477
+Node: Message Receive75760
+Ref: Message Receive-Footnote-185412
+Node: Atomicity85693
+Node: Port Manipulation Interface88467
+Node: Port Creation90022
+Node: Port Destruction94811
+Node: Port Names97954
+Node: Port Rights102201
+Node: Ports and other Tasks105990
+Node: Receive Rights110083
+Node: Port Sets117014
+Node: Request Notifications119417
+Node: Inherited Ports124221
+Node: Virtual Memory Interface127905
+Node: Memory Allocation129158
+Node: Memory Deallocation131683
+Node: Data Transfer133147
+Node: Memory Attributes136673
+Node: Mapping Memory Objects146003
+Node: Memory Statistics149295
+Node: External Memory Management150869
+Node: Memory Object Server151574
+Node: Memory Object Creation154255
+Node: Memory Object Termination158243
+Node: Memory Objects and Data161182
+Node: Memory Object Locking175087
+Node: Memory Object Attributes180951
+Node: Default Memory Manager184726
+Node: Threads and Tasks190408
+Node: Thread Interface190745
+Node: Thread Creation191741
+Node: Thread Termination192858
+Node: Thread Information193329
+Node: Thread Settings199428
+Node: Thread Execution200662
+Node: Scheduling207955
+Node: Thread Priority208310
+Node: Hand-Off Scheduling210944
+Node: Scheduling Policy216069
+Node: Thread Special Ports217401
+Node: Exceptions219847
+Node: Task Interface220717
+Node: Task Creation221729
+Node: Task Termination223064
+Node: Task Information223666
+Node: Task Execution230568
+Node: Task Special Ports234981
+Node: Syscall Emulation238835
+Node: Profiling240066
+Node: Host Interface243829
+Node: Host Ports244814
+Node: Host Information246887
+Node: Host Time252270
+Node: Host Reboot254937
+Node: Processors and Processor Sets255489
+Node: Processor Set Interface256467
+Node: Processor Set Ports257234
+Node: Processor Set Access258064
+Node: Processor Set Creation260324
+Node: Processor Set Destruction261351
+Node: Tasks and Threads on Sets262272
+Node: Processor Set Priority267439
+Node: Processor Set Policy268729
+Node: Processor Set Info270343
+Node: Processor Interface274156
+Node: Hosted Processors274881
+Node: Processor Control275872
+Node: Processors and Sets277338
+Node: Processor Info279216
+Node: Device Interface281958
+Node: Device Reply Server283573
+Node: Device Open284865
+Node: Device Close286988
+Node: Device Read287567
+Node: Device Write290486
+Node: Device Map293291
+Node: Device Status294182
+Node: Device Filter295355
+Node: Kernel Debugger302732
+Node: Operation303459
+Node: Commands306436
+Node: Variables320221
+Node: Expressions321609
+Node: Copying322958
+Node: Documentation License342187
+Node: GNU Free Documentation License342776
+Node: CMU License365175
+Node: Concept Index366410
+Node: Function and Data Index370256
End Tag Table
diff --git a/doc/mach.info-1 b/doc/mach.info-1
index 126d593..0c52f22 100644
--- a/doc/mach.info-1
+++ b/doc/mach.info-1
@@ -2,8 +2,8 @@ This is mach.info, produced by makeinfo version 6.3 from
mach.texi.
This file documents the GNU Mach microkernel.
- This is edition 0.4, last updated on 16 October 2016, of 'The GNU
-Mach Reference Manual', for version 1.7+git20161202.
+ This is edition 0.4, last updated on 14 December 2016, of 'The GNU
+Mach Reference Manual', for version 1.8.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
@@ -45,8 +45,8 @@ Main Menu
This file documents the GNU Mach microkernel.
- This is edition 0.4, last updated on 16 October 2016, of 'The GNU
-Mach Reference Manual', for version 1.7+git20161202.
+ This is edition 0.4, last updated on 14 December 2016, of 'The GNU
+Mach Reference Manual', for version 1.8.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
@@ -3237,10 +3237,8 @@ File: mach.info, Node: Memory Attributes, Next:
Mapping Memory Objects, Prev:
'KERN_INVALID_HOST' if HOST was not a valid host port,
'KERN_INVALID_TASK' if TASK was not a valid task,
'KERN_INVALID_VALUE' if ACCESS specified an invalid access mode,
- 'KERN_FAILURE' if some memory in the specified range is not present
- or has an inappropriate protection value, and
- 'KERN_INVALID_ARGUMENT' if unwiring (ACCESS is 'VM_PROT_NONE') and
- the memory is not already wired.
+ and 'KERN_NO_SPACE' if some memory in the specified range is not
+ present or has an inappropriate protection value.
The 'vm_wire' call is actually an RPC to HOST, normally a send
right for a privileged host port, but potentially any send right.
diff --git a/doc/mach.info-2 b/doc/mach.info-2
index 6163fd8..8af56ec 100644
--- a/doc/mach.info-2
+++ b/doc/mach.info-2
@@ -2,8 +2,8 @@ This is mach.info, produced by makeinfo version 6.3 from
mach.texi.
This file documents the GNU Mach microkernel.
- This is edition 0.4, last updated on 16 October 2016, of 'The GNU
-Mach Reference Manual', for version 1.7+git20161202.
+ This is edition 0.4, last updated on 14 December 2016, of 'The GNU
+Mach Reference Manual', for version 1.8.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
@@ -1771,7 +1771,7 @@ Function and Data Index
* vm_copy: Data Transfer. (line 50)
* vm_deallocate: Memory Deallocation. (line 6)
* vm_inherit: Memory Attributes. (line 68)
-* vm_machine_attribute: Memory Attributes. (line 132)
+* vm_machine_attribute: Memory Attributes. (line 130)
* vm_map: Mapping Memory Objects.
(line 6)
* vm_protect: Memory Attributes. (line 34)
diff --git a/doc/mach.texi b/doc/mach.texi
index 99ee854..d2b88d1 100644
--- a/doc/mach.texi
+++ b/doc/mach.texi
@@ -3261,10 +3261,8 @@ The function returns @code{KERN_SUCCESS} if the call
succeeded,
@code{KERN_INVALID_HOST} if @var{host} was not a valid host
port, @code{KERN_INVALID_TASK} if @var{task} was not a valid task,
@code{KERN_INVALID_VALUE} if @var{access} specified an invalid access
-mode, @code{KERN_FAILURE} if some memory in the specified range is not
-present or has an inappropriate protection value, and
address@hidden if unwiring (@var{access} is
address@hidden) and the memory is not already wired.
+mode, and @code{KERN_NO_SPACE} if some memory in the specified range
+is not present or has an inappropriate protection value.
The @code{vm_wire} call is actually an RPC to @var{host}, normally
a send right for a privileged host port, but potentially any send right.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 1d1d8d7..25a1c94 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
address@hidden UPDATED 16 October 2016
address@hidden UPDATED-MONTH October 2016
address@hidden EDITION 1.7+git20161202
address@hidden VERSION 1.7+git20161202
address@hidden UPDATED 14 December 2016
address@hidden UPDATED-MONTH December 2016
address@hidden EDITION 1.8
address@hidden VERSION 1.8
diff --git a/doc/version.texi b/doc/version.texi
index 1d1d8d7..25a1c94 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED 16 October 2016
address@hidden UPDATED-MONTH October 2016
address@hidden EDITION 1.7+git20161202
address@hidden VERSION 1.7+git20161202
address@hidden UPDATED 14 December 2016
address@hidden UPDATED-MONTH December 2016
address@hidden EDITION 1.8
address@hidden VERSION 1.8
diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c
index 527fbfc..28ed23c 100644
--- a/ipc/ipc_kmsg.c
+++ b/ipc/ipc_kmsg.c
@@ -1391,8 +1391,6 @@ ipc_kmsg_copyin_body(
if (length == 0)
data = 0;
else if (is_port) {
- if (length > 1<<20)
- printf("allocating %llu for message
%u\n", length, kmsg->ikm_header.msgh_id);
data = kalloc(length);
if (data == 0)
goto invalid_memory;
diff --git a/kern/rbtree.h b/kern/rbtree.h
index 16ef273..f885fe7 100644
--- a/kern/rbtree.h
+++ b/kern/rbtree.h
@@ -301,6 +301,6 @@ void rbtree_remove(struct rbtree *tree, struct rbtree_node
*node);
for (node = rbtree_postwalk_deepest(tree), \
tmp = rbtree_postwalk_unlink(node); \
node != NULL; \
- node = tmp, tmp = rbtree_postwalk_unlink(node)) \
+ node = tmp, tmp = rbtree_postwalk_unlink(node))
#endif /* _KERN_RBTREE_H */
diff --git a/version.m4 b/version.m4
index 2d1efff..d6696d6 100644
--- a/version.m4
+++ b/version.m4
@@ -1,4 +1,4 @@
m4_define([AC_PACKAGE_NAME],[GNU Mach])
-m4_define([AC_PACKAGE_VERSION],[1.7+git20161202])
+m4_define([AC_PACKAGE_VERSION],[1.8])
m4_define([AC_PACKAGE_BUGREPORT],address@hidden)
m4_define([AC_PACKAGE_TARNAME],[gnumach])
diff --git a/vm/vm_map.c b/vm/vm_map.c
index 604177e..7db9ced 100644
--- a/vm/vm_map.c
+++ b/vm/vm_map.c
@@ -744,7 +744,7 @@ restart:
return entry;
error:
- printf("no more room in %p (%s) for allocating %u\n", map, map->name,
size);
+ printf("no more room in %p (%s)\n", map, map->name);
return NULL;
}
@@ -1477,7 +1477,7 @@ kern_return_t vm_map_pageable_common(
* Start address is not in map; this is fatal.
*/
vm_map_unlock(map);
- return(KERN_FAILURE);
+ return(KERN_NO_SPACE);
}
/*
@@ -1490,19 +1490,17 @@ kern_return_t vm_map_pageable_common(
vm_map_clip_start(map, entry, start);
/*
- * Unwiring. First ensure that the range to be
- * unwired is really wired down.
+ * Unwiring. First ensure that there are no holes
+ * in the specified range.
*/
while ((entry != vm_map_to_entry(map)) &&
(entry->vme_start < end)) {
- if ((entry->wired_count == 0) ||
- ((entry->vme_end < end) &&
- ((entry->vme_next == vm_map_to_entry(map)) ||
- (entry->vme_next->vme_start > entry->vme_end))) ||
- (user_wire && (entry->user_wired_count == 0))) {
+ if ((entry->vme_end < end) &&
+ ((entry->vme_next == vm_map_to_entry(map)) ||
+ (entry->vme_next->vme_start > entry->vme_end))) {
vm_map_unlock(map);
- return(KERN_INVALID_ARGUMENT);
+ return(KERN_NO_SPACE);
}
entry = entry->vme_next;
}
@@ -1517,6 +1515,13 @@ kern_return_t vm_map_pageable_common(
(entry->vme_start < end)) {
vm_map_clip_end(map, entry, end);
+ /* Skip unwired entries */
+ if (entry->wired_count == 0) {
+ assert(entry->user_wired_count == 0);
+ entry = entry->vme_next;
+ continue;
+ }
+
if (user_wire) {
if (--(entry->user_wired_count) == 0)
{
@@ -1641,7 +1646,7 @@ kern_return_t vm_map_pageable_common(
}
vm_map_unlock(map);
- return(KERN_FAILURE);
+ return(KERN_NO_SPACE);
}
entry = entry->vme_next;
}
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/gnumach.git