[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnumach] 01/03: Imported Upstream version 1.6+git20160114
From: |
Samuel Thibault |
Subject: |
[gnumach] 01/03: Imported Upstream version 1.6+git20160114 |
Date: |
Wed, 13 Jan 2016 23:52:24 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch master
in repository gnumach.
commit 527984fdec81b5c720eccbf887057fa46ec389e0
Author: Samuel Thibault <address@hidden>
Date: Wed Jan 13 23:20:48 2016 +0000
Imported Upstream version 1.6+git20160114
---
ChangeLog | 69 +++++++++++++++++++
Makefile.am | 5 ++
Makefile.in | 10 +--
configure | 20 +++---
doc/mach.info | 2 +-
doc/mach.info-1 | 4 +-
doc/mach.info-2 | 2 +-
doc/stamp-vti | 4 +-
doc/version.texi | 4 +-
i386/Makefrag.am | 1 -
i386/i386/phys.c | 3 +-
i386/i386/vm_param.h | 4 +-
i386/i386at/disk.h | 101 ----------------------------
i386/i386at/lpr.c | 26 ++++----
i386/include/mach/i386/disk.h | 124 -----------------------------------
i386/intel/pmap.c | 1 +
kern/mach_clock.c | 2 +-
kern/slab.c | 2 +-
linux/dev/glue/block.c | 37 +----------
linux/dev/include/linux/fs.h | 4 +-
linux/dev/include/linux/locks.h | 10 +--
linux/dev/include/linux/mm.h | 2 +-
linux/dev/init/main.c | 4 +-
linux/src/drivers/net/e2100.c | 4 +-
linux/src/include/asm-i386/termios.h | 4 +-
linux/src/include/linux/interrupt.h | 12 ++--
linux/src/include/net/route.h | 16 ++---
linux/src/include/net/sock.h | 6 +-
version.m4 | 2 +-
vm/vm_map.c | 27 +++++---
vm/vm_object.c | 15 +++--
vm/vm_object.h | 2 +-
vm/vm_print.h | 3 +-
33 files changed, 180 insertions(+), 352 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index e51b563..3d8d038 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,72 @@
+2016-01-13 Samuel Thibault <address@hidden>
+
+ Increase kernel map size
+ To avoid running out of memory due to the increased consumption by radix
+ trees which replaced arrays.
+
+ * kern/slab.c (KMEM_MAP_SIZE): Bump from 96MiB to 128MiB.
+ * i386/i386/vm_param.h (VM_KERNEL_MAP_SIZE): Add 32MiB accordingly.
+
+2016-01-02 Richard Braun <address@hidden>
+
+ Completely disable strict aliasing
+ * Makefile.am (AM_CFLAGS): Add -fno-strict-aliasing.
+
+ Fix object page list type
+ * vm/vm_object.h (struct vm_object): Use queue_head_t instead of
+ queue_chain_t as the page list type.
+
+2016-01-02 Flavio Cruz <address@hidden>
+
+ replace extern with static in some linux code
+ * linux/dev/include/linux/fs.h: Replace extern with static.
+ * linux/dev/include/linux/locks.h: Likewise.
+ * linux/dev/include/linux/mm.h: Likewise.
+ * linux/src/drivers/net/e2100.c: Likewise
+ * linux/src/include/asm-i386/termios.h: Likewise.
+ * linux/src/include/linux/interrupt.h: Likewise.
+ * linux/src/include/net/route.h: Likewise.
+ * linux/src/include/net/sock.h: Likewise.
+
+ fix t_addr assignment in lpropen
+ * i386/i386at/lpr.c (lpropen): Fix assignment to t_addr.
+
+2016-01-01 Flavio Cruz <address@hidden>
+
+ remove unnused disk code and headers
+ * i386/Makefrag.am: Remove disk.h.
+ * i386/i386at/disk.h: Remove unnused definitions.
+ * i386/include/mach/i386/disk.h: Remove.
+ * linux/dev/glue/block.c (device_get_status): Remove V_GETPARMS case.
+
+ fix some compiler warnings in gnumach
+ * linux/dev/glue/block.c (out): Cast to device_t.
+ * linux/dev/init/main.c (alloc_contig_mem): Initialize addr and cast
return value to void *.
+ * i386/i386/phys.c (pmap_copy_page): Initialize src_map.
+ * i386/intel/pmap.c: Include i386at/model_dep.h.
+ * kern/mach_clock.c (mapable_time_init): Cast to void *.
+
+2016-01-01 Richard Braun <address@hidden>
+
+ Slightly improve map debugging readability
+ * vm/vm_object.c (vm_object_print): Break line so all debugging output
fits
+ in a page.
+
+2015-12-29 Richard Braun <address@hidden>
+
+ Improve map debugging readability
+ * vm/vm_map.c (vm_map_print): Reduce indentation, break lines earlier.
+ (vm_map_copy_print): Likewise.
+ * vm/vm_object.c (vm_object_print): Likewise.
+
+ Improve VM map debugging
+ * vm/vm_map.c (vm_map_print): Update arguments to conform to ddb
+ protocol.
+ * vm/vm_print.h (vm_map_print): Likewise for prototype.
+
+ Fix vm_map_copyout
+ * vm/vm_map.c (vm_map_copyout): Reinitialize copy map red-black tree.
+
2015-12-11 Samuel Thibault <address@hidden>
Fix boot under kvm in linux 4.3
diff --git a/Makefile.am b/Makefile.am
index 76a192b..1c1bfff 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -63,6 +63,11 @@ AM_CFLAGS += \
AM_CFLAGS += \
-fgnu89-inline
+# Much of the Mach code predates C99 and makes invalid assumptions about
+# type punning.
+AM_CFLAGS += \
+ -fno-strict-aliasing
+
# The smashing stack protector might be enabled by default, but might emit
# unsuitable code.
if disable_smashing_stack_protector
diff --git a/Makefile.in b/Makefile.in
index 552ee63..90b4555 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2032,7 +2032,7 @@ am__uninstall_files_from_dir = { \
}
DATA = $(exec_msgids_DATA)
am__include_mach_i386_HEADERS_DIST = i386/include/mach/i386/asm.h \
- i386/include/mach/i386/boolean.h i386/include/mach/i386/disk.h \
+ i386/include/mach/i386/boolean.h \
i386/include/mach/i386/eflags.h \
i386/include/mach/i386/exception.h \
i386/include/mach/i386/fp_reg.h \
@@ -2504,8 +2504,11 @@ AM_CCASFLAGS =
# all that scruffy Mach code... Also see <http://savannah.gnu.org/task/?5726>.
# We need the GNU-style inline
-AM_CFLAGS = -fno-builtin-log -Wall -fgnu89-inline $(am__append_1) \
- $(am__append_3) $(am__append_124)
+
+# Much of the Mach code predates C99 and makes invalid assumptions about
+# type punning.
+AM_CFLAGS = -fno-builtin-log -Wall -fgnu89-inline -fno-strict-aliasing \
+ $(am__append_1) $(am__append_3) $(am__append_124)
AM_LDFLAGS =
#
@@ -2886,7 +2889,6 @@ liblinux_pcmcia_cs_wireless_a_SOURCES = $(am__append_110)
@address@hidden = \
@HOST_ix86_TRUE@ i386/include/mach/i386/asm.h \
@HOST_ix86_TRUE@ i386/include/mach/i386/boolean.h \
address@hidden@ i386/include/mach/i386/disk.h \
@HOST_ix86_TRUE@ i386/include/mach/i386/eflags.h \
@HOST_ix86_TRUE@ i386/include/mach/i386/exception.h \
@HOST_ix86_TRUE@ i386/include/mach/i386/fp_reg.h \
diff --git a/configure b/configure
index 9963749..5f29c10 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.6+git20151211.
+# Generated by GNU Autoconf 2.69 for GNU Mach 1.6+git20160114.
#
# Report bugs to <address@hidden>.
#
@@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU Mach'
PACKAGE_TARNAME='gnumach'
-PACKAGE_VERSION='1.6+git20151211'
-PACKAGE_STRING='GNU Mach 1.6+git20151211'
+PACKAGE_VERSION='1.6+git20160114'
+PACKAGE_STRING='GNU Mach 1.6+git20160114'
PACKAGE_BUGREPORT='address@hidden'
PACKAGE_URL=''
@@ -1595,7 +1595,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.6+git20151211 to adapt to many kinds of
systems.
+\`configure' configures GNU Mach 1.6+git20160114 to adapt to many kinds of
systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1666,7 +1666,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU Mach 1.6+git20151211:";;
+ short | recursive ) echo "Configuration of GNU Mach 1.6+git20160114:";;
esac
cat <<\_ACEOF
@@ -2014,7 +2014,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU Mach configure 1.6+git20151211
+GNU Mach configure 1.6+git20160114
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2106,7 +2106,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.6+git20151211, which was
+It was created by GNU Mach $as_me 1.6+git20160114, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2972,7 +2972,7 @@ fi
# Define the identity of the package.
PACKAGE='gnumach'
- VERSION='1.6+git20151211'
+ VERSION='1.6+git20160114'
# Some tools Automake needs.
@@ -12128,7 +12128,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.6+git20151211, which was
+This file was extended by GNU Mach $as_me 1.6+git20160114, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12199,7 +12199,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.6+git20151211
+GNU Mach config.status 1.6+git20160114
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 f031e8c..995b99a 100644
--- a/doc/mach.info
+++ b/doc/mach.info
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 6.0 from
mach.texi.
This file documents the GNU Mach microkernel.
This is edition 0.4, last updated on 12 September 2015, of 'The GNU
-Mach Reference Manual', for version 1.6+git20151211.
+Mach Reference Manual', for version 1.6+git20160114.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
diff --git a/doc/mach.info-1 b/doc/mach.info-1
index 7a9fc50..b95106f 100644
--- a/doc/mach.info-1
+++ b/doc/mach.info-1
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 6.0 from
mach.texi.
This file documents the GNU Mach microkernel.
This is edition 0.4, last updated on 12 September 2015, of 'The GNU
-Mach Reference Manual', for version 1.6+git20151211.
+Mach Reference Manual', for version 1.6+git20160114.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
@@ -46,7 +46,7 @@ Main Menu
This file documents the GNU Mach microkernel.
This is edition 0.4, last updated on 12 September 2015, of 'The GNU
-Mach Reference Manual', for version 1.6+git20151211.
+Mach Reference Manual', for version 1.6+git20160114.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
diff --git a/doc/mach.info-2 b/doc/mach.info-2
index 0f3a6f8..4e8ee4a 100644
--- a/doc/mach.info-2
+++ b/doc/mach.info-2
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 6.0 from
mach.texi.
This file documents the GNU Mach microkernel.
This is edition 0.4, last updated on 12 September 2015, of 'The GNU
-Mach Reference Manual', for version 1.6+git20151211.
+Mach Reference Manual', for version 1.6+git20160114.
Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
Inc.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 9c241d5..69dbe4d 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
@set UPDATED 12 September 2015
@set UPDATED-MONTH September 2015
address@hidden EDITION 1.6+git20151211
address@hidden VERSION 1.6+git20151211
address@hidden EDITION 1.6+git20160114
address@hidden VERSION 1.6+git20160114
diff --git a/doc/version.texi b/doc/version.texi
index 9c241d5..69dbe4d 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
@set UPDATED 12 September 2015
@set UPDATED-MONTH September 2015
address@hidden EDITION 1.6+git20151211
address@hidden VERSION 1.6+git20151211
address@hidden EDITION 1.6+git20160114
address@hidden VERSION 1.6+git20160114
diff --git a/i386/Makefrag.am b/i386/Makefrag.am
index 4dd6a9f..ef393d5 100644
--- a/i386/Makefrag.am
+++ b/i386/Makefrag.am
@@ -240,7 +240,6 @@ include_mach_i386dir = $(includedir)/mach/i386
include_mach_i386_HEADERS = \
i386/include/mach/i386/asm.h \
i386/include/mach/i386/boolean.h \
- i386/include/mach/i386/disk.h \
i386/include/mach/i386/eflags.h \
i386/include/mach/i386/exception.h \
i386/include/mach/i386/fp_reg.h \
diff --git a/i386/i386/phys.c b/i386/i386/phys.c
index d55bdd9..8681fba 100644
--- a/i386/i386/phys.c
+++ b/i386/i386/phys.c
@@ -77,7 +77,8 @@ pmap_copy_page(
vm_offset_t dst)
{
vm_offset_t src_addr_v, dst_addr_v;
- pmap_mapwindow_t *src_map, *dst_map;
+ pmap_mapwindow_t *src_map = NULL;
+ pmap_mapwindow_t *dst_map;
boolean_t src_mapped = src >= phys_last_addr;
boolean_t dst_mapped = dst >= phys_last_addr;
assert(src != vm_page_fictitious_addr);
diff --git a/i386/i386/vm_param.h b/i386/i386/vm_param.h
index ffd91d6..6292ca2 100644
--- a/i386/i386/vm_param.h
+++ b/i386/i386/vm_param.h
@@ -56,9 +56,9 @@
/* Reserve mapping room for kmem. */
#ifdef MACH_XEN
-#define VM_KERNEL_MAP_SIZE (224 * 1024 * 1024)
+#define VM_KERNEL_MAP_SIZE (256 * 1024 * 1024)
#else
-#define VM_KERNEL_MAP_SIZE (192 * 1024 * 1024)
+#define VM_KERNEL_MAP_SIZE (224 * 1024 * 1024)
#endif
/* The kernel virtual address space is actually located
diff --git a/i386/i386at/disk.h b/i386/i386at/disk.h
index 63d033f..c558375 100644
--- a/i386/i386at/disk.h
+++ b/i386/i386at/disk.h
@@ -52,53 +52,13 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifndef _DISK_H_
#define _DISK_H_
-/* Grab the public part. */
-#include <mach/machine/disk.h>
-
-
-
-#define MAX_ALTENTS 253 /* Maximum # of slots for alts */
- /* allowed for in the table. */
-
-#define ALT_SANITY 0xdeadbeef /* magic # to validate alt table */
-
-struct alt_table {
- u_short alt_used; /* # of alternates already assigned */
- u_short alt_reserved; /* # of alternates reserved on disk */
- long alt_base; /* 1st sector (abs) of the alt area */
- long alt_bad[MAX_ALTENTS]; /* list of bad sectors/tracks */
-};
-
-struct alt_info { /* table length should be multiple of
512 */
- long alt_sanity; /* to validate correctness */
- u_short alt_version; /* to corroborate vintage */
- u_short alt_pad; /* padding for alignment */
- struct alt_table alt_trk; /* bad track table */
- struct alt_table alt_sec; /* bad sector table */
-};
-typedef struct alt_info altinfo_t;
-
#define V_NUMPAR 16 /* maximum number of partitions */
#define VTOC_SANE 0x600DDEEE /* Indicates a sane VTOC */
#define PDLOCATION 29 /* location of VTOC */
-#define BAD_BLK 0x80 /* needed for V_VERIFY */
-/* BAD_BLK moved from old hdreg.h */
-
-
-#define HDPDLOC 29 /* location of pdinfo/vtoc */
#define LBLLOC 1 /* label block for xxxbsd */
-/* Partition permission flags */
-#define V_OPEN 0x100 /* Partition open (for driver use) */
-#define V_VALID 0x200 /* Partition is valid to use */
-
-
-
-/* Sanity word for the physical description area */
-#define VALID_PD 0xCA5E600D
-
struct localpartition {
u_int p_flag; /*permision flags*/
long p_start; /*physical start sector no of
partition*/
@@ -126,65 +86,4 @@ struct evtoc {
char fill[512-352];
};
-union io_arg {
- struct {
- u_short ncyl; /* number of cylinders on drive */
- u_char nhead; /* number of heads/cyl */
- u_char nsec; /* number of sectors/track */
- u_short secsiz; /* number of bytes/sector */
- } ia_cd; /* used for Configure Drive cmd */
- struct {
- u_short flags; /* flags (see below) */
- long bad_sector; /* absolute sector number */
- long new_sector; /* RETURNED alternate sect assigned */
- } ia_abs; /* used for Add Bad Sector cmd */
- struct {
- u_short start_trk; /* first track # */
- u_short num_trks; /* number of tracks to format */
- u_short intlv; /* interleave factor */
- } ia_fmt; /* used for Format Tracks cmd */
- struct {
- u_short start_trk; /* first track */
- char *intlv_tbl; /* interleave table */
- } ia_xfmt; /* used for the V_XFORMAT ioctl */
-};
-
-
-#define BOOTSZ 446 /* size of boot code in master boot
block */
-#define FD_NUMPART 4 /* number of 'partitions' in fdisk
table */
-#define ACTIVE 128 /* indicator of active partition */
-#define BOOT_MAGIC 0xAA55 /* signature of the boot record
*/
-#define UNIXOS 99 /* UNIX partition */
-#define BSDOS 165
-#define LINUXSWAP 130
-#define LINUXOS 131
-extern int OS; /* what partition we came from */
-
-/*
- * structure to hold the fdisk partition table
- */
-struct ipart {
- u_char bootid; /* bootable or not */
- u_char beghead; /* beginning head, sector, cylinder */
- u_char begsect; /* begcyl is a 10-bit number. High 2
bits */
- u_char begcyl; /* are in begsect. */
- u_char systid; /* OS type */
- u_char endhead; /* ending head, sector, cylinder */
- u_char endsect; /* endcyl is a 10-bit number. High 2
bits */
- u_char endcyl; /* are in endsect. */
- long relsect; /* first sector relative to start of
disk */
- long numsect; /* number of sectors in partition */
-};
-
-/*
- * structure to hold master boot block in physical sector 0 of the disk.
- * Note that partitions stuff can't be directly included in the structure
- * because of lameo '386 compiler alignment design.
- */
-struct mboot { /* master boot block */
- char bootinst[BOOTSZ];
- char parts[FD_NUMPART * sizeof(struct ipart)];
- u_short signature;
-};
-
#endif /* _DISK_H_ */
diff --git a/i386/i386at/lpr.c b/i386/i386at/lpr.c
index edeef9f..73c4261 100644
--- a/i386/i386at/lpr.c
+++ b/i386/i386at/lpr.c
@@ -105,22 +105,24 @@ void lprattach(struct bus_device *dev)
}
int
-lpropen(dev, flag, ior)
-dev_t dev;
-int flag;
-io_req_t ior;
+lpropen(dev_t dev, int flag, io_req_t ior)
{
-int unit = minor(dev);
-struct bus_device *isai;
-struct tty *tp;
-u_short addr;
-
- if (unit >= NLPR || (isai = lprinfo[unit]) == 0 || isai->alive == 0)
- return (D_NO_SUCH_DEVICE);
+ int unit = minor(dev);
+ struct bus_device *isai;
+ struct tty *tp;
+ u_short addr;
+
+ if (unit >= NLPR)
+ return D_NO_SUCH_DEVICE;
+
+ isai = lprinfo[unit];
+ if (isai == NULL || !isai->alive)
+ return D_NO_SUCH_DEVICE;
+
tp = &lpr_tty[unit];
addr = (u_short) isai->address;
tp->t_dev = dev;
- tp->t_addr = *(caddr_t *)&addr;
+ tp->t_addr = addr;
tp->t_oproc = lprstart;
tp->t_state |= TS_WOPEN;
tp->t_stop = lprstop;
diff --git a/i386/include/mach/i386/disk.h b/i386/include/mach/i386/disk.h
deleted file mode 100644
index 1bbbbdf..0000000
--- a/i386/include/mach/i386/disk.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or address@hidden
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- Copyright 1988, 1989 by Intel Corporation, Santa Clara, California.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/*
- * disk.h
- */
-
-#ifndef _MACH_I386_DISK_H_
-#define _MACH_I386_DISK_H_
-
-#if defined(__linux__) || defined(__masix__)
-#define PART_DISK 4 /* partition number for entire disk */
-#else
-#define PART_DISK 2 /* partition number for entire disk */
-#endif
-
-
-/* driver ioctl() commands */
-
-#define V_CONFIG _IOW('v',1,union io_arg)/* Configure Drive */
-#define V_REMOUNT _IO('v',2) /* Remount Drive */
-#define V_ADDBAD _IOW('v',3,union io_arg)/* Add Bad Sector */
-#define V_GETPARMS _IOR('v',4,struct disk_parms) /* Get drive/partition
parameters */
-#define V_FORMAT _IOW('v',5,union io_arg)/* Format track(s) */
-#define V_PDLOC _IOR('v',6,int) /* Ask driver where
pdinfo is on disk */
-
-#define V_ABS _IOW('v',9,int) /* set a sector for an absolute
addr */
-#define V_RDABS _IOW('v',10,struct absio)/* Read a sector at an
absolute addr */
-#define V_WRABS _IOW('v',11,struct absio)/* Write a sector to
absolute addr */
-#define V_VERIFY _IOWR('v',12,union vfy_io)/* Read verify sector(s) */
-#define V_XFORMAT _IO('v',13) /* Selectively mark sectors as
bad */
-#define V_SETPARMS _IOW('v',14,int) /* Set drivers parameters */
-
-
-/*
- * Data structure for the V_VERIFY ioctl
- */
-union vfy_io {
- struct {
- long abs_sec; /* absolute sector number */
- u_short num_sec; /* number of sectors to verify */
- u_short time_flg; /* flag to indicate time the ops */
- }vfy_in;
- struct {
- long deltatime; /* duration of operation */
- u_short err_code; /* reason for failure */
- }vfy_out;
-};
-
-
-/* data structure returned by the Get Parameters ioctl: */
-struct disk_parms {
-/*00*/ char dp_type; /* Disk type (see below) */
- u_char dp_heads; /* Number of heads */
- u_short dp_cyls; /* Number of cylinders */
-/*04*/ u_char dp_sectors; /* Number of sectors/track */
- u_short dp_secsiz; /* Number of bytes/sector */
- /* for this partition: */
-/*08*/ u_short dp_ptag; /* Partition tag */
- u_short dp_pflag; /* Partition flag */
-/*0c*/ long dp_pstartsec; /* Starting absolute sector number */
-/*10*/ long dp_pnumsec; /* Number of sectors */
-/*14*/ u_char dp_dosheads; /* Number of heads */
- u_short dp_doscyls; /* Number of cylinders */
-/*18*/ u_char dp_dossectors; /* Number of sectors/track */
-};
-
-/* Disk types for disk_parms.dp_type: */
-#define DPT_WINI 1 /* Winchester disk */
-#define DPT_FLOPPY 2 /* Floppy */
-#define DPT_OTHER 3 /* Other type of disk */
-#define DPT_NOTDISK 0 /* Not a disk device */
-
-/* Data structure for V_RDABS/V_WRABS ioctl's */
-struct absio {
- long abs_sec; /* Absolute sector number (from 0) */
- char *abs_buf; /* Sector buffer */
-};
-
-#endif /* _MACH_I386_DISK_H_ */
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index cf7a736..22e20c9 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -83,6 +83,7 @@
#include <i386/proc_reg.h>
#include <i386/locore.h>
#include <i386/model_dep.h>
+#include <i386at/model_dep.h>
#ifdef MACH_PSEUDO_PHYS
#define WRITE_PTE(pte_p, pte_entry) *(pte_p) =
pte_entry?pa_to_ma(pte_entry):0;
diff --git a/kern/mach_clock.c b/kern/mach_clock.c
index c6e2d9d..1817ce2 100644
--- a/kern/mach_clock.c
+++ b/kern/mach_clock.c
@@ -539,7 +539,7 @@ void mapable_time_init(void)
if (kmem_alloc_wired(kernel_map, (vm_offset_t *) &mtime, PAGE_SIZE)
!= KERN_SUCCESS)
panic("mapable_time_init");
- memset(mtime, 0, PAGE_SIZE);
+ memset((void *) mtime, 0, PAGE_SIZE);
update_mapped_time(&time);
}
diff --git a/kern/slab.c b/kern/slab.c
index 4f32c8e..8bc1b06 100644
--- a/kern/slab.c
+++ b/kern/slab.c
@@ -165,7 +165,7 @@
/*
* Size of the VM submap from which default backend functions allocate.
*/
-#define KMEM_MAP_SIZE (96 * 1024 * 1024)
+#define KMEM_MAP_SIZE (128 * 1024 * 1024)
/*
* Shift for the first kalloc cache size.
diff --git a/linux/dev/glue/block.c b/linux/dev/glue/block.c
index da4ef38..74126eb 100644
--- a/linux/dev/glue/block.c
+++ b/linux/dev/glue/block.c
@@ -1157,7 +1157,7 @@ out:
{
ipc_kobject_set (bd->port, IKO_NULL, IKOT_NONE);
ipc_port_dealloc_kernel (bd->port);
- *devp = IP_NULL;
+ *devp = (device_t) IP_NULL;
}
kfree ((vm_offset_t) bd, sizeof (struct block_data));
bd = NULL;
@@ -1661,41 +1661,6 @@ device_get_status (void *d, dev_flavor_t flavor,
dev_status_t status,
*status_count = DEV_GET_RECORDS_COUNT;
break;
- case V_GETPARMS:
- if (*status_count < (sizeof (struct disk_parms) / sizeof (int)))
- return D_INVALID_OPERATION;
- else
- {
- struct disk_parms *dp = status;
- struct hd_geometry hg;
- DECL_DATA;
-
- INIT_DATA();
-
- if ((*bd->ds->fops->ioctl) (&td.inode, &td.file,
- HDIO_GETGEO, (unsigned long)&hg))
- return D_INVALID_OPERATION;
-
- dp->dp_type = DPT_WINI; /* XXX: It may be a floppy... */
- dp->dp_heads = hg.heads;
- dp->dp_cyls = hg.cylinders;
- dp->dp_sectors = hg.sectors;
- dp->dp_dosheads = hg.heads;
- dp->dp_doscyls = hg.cylinders;
- dp->dp_dossectors = hg.sectors;
- dp->dp_secsiz = 512; /* XXX */
- dp->dp_ptag = 0;
- dp->dp_pflag = 0;
-
- /* XXX */
- dp->dp_pstartsec = -1;
- dp->dp_pnumsec = -1;
-
- *status_count = sizeof (struct disk_parms) / sizeof (int);
- }
-
- break;
-
default:
return D_INVALID_OPERATION;
}
diff --git a/linux/dev/include/linux/fs.h b/linux/dev/include/linux/fs.h
index a2f9383..def2bc9 100644
--- a/linux/dev/include/linux/fs.h
+++ b/linux/dev/include/linux/fs.h
@@ -650,7 +650,7 @@ mark_buffer_uptodate (struct buffer_head *bh, int on)
void mark_buffer_uptodate(struct buffer_head * bh, int on);
#endif
-extern inline void mark_buffer_clean(struct buffer_head * bh)
+static inline void mark_buffer_clean(struct buffer_head * bh)
{
#ifdef MACH
clear_bit (BH_Dirty, &bh->b_state);
@@ -662,7 +662,7 @@ extern inline void mark_buffer_clean(struct buffer_head *
bh)
#endif
}
-extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
+static inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
{
#ifdef MACH
set_bit (BH_Dirty, &bh->b_state);
diff --git a/linux/dev/include/linux/locks.h b/linux/dev/include/linux/locks.h
index 72cf108..ae063fb 100644
--- a/linux/dev/include/linux/locks.h
+++ b/linux/dev/include/linux/locks.h
@@ -20,13 +20,13 @@ extern struct buffer_head *reuse_list;
*/
extern void __wait_on_buffer(struct buffer_head *);
-extern inline void wait_on_buffer(struct buffer_head * bh)
+static inline void wait_on_buffer(struct buffer_head * bh)
{
if (test_bit(BH_Lock, &bh->b_state))
__wait_on_buffer(bh);
}
-extern inline void lock_buffer(struct buffer_head * bh)
+static inline void lock_buffer(struct buffer_head * bh)
{
while (set_bit(BH_Lock, &bh->b_state))
__wait_on_buffer(bh);
@@ -42,20 +42,20 @@ void unlock_buffer(struct buffer_head *);
*/
extern void __wait_on_super(struct super_block *);
-extern inline void wait_on_super(struct super_block * sb)
+static inline void wait_on_super(struct super_block * sb)
{
if (sb->s_lock)
__wait_on_super(sb);
}
-extern inline void lock_super(struct super_block * sb)
+static inline void lock_super(struct super_block * sb)
{
if (sb->s_lock)
__wait_on_super(sb);
sb->s_lock = 1;
}
-extern inline void unlock_super(struct super_block * sb)
+static inline void unlock_super(struct super_block * sb)
{
sb->s_lock = 0;
wake_up(&sb->s_wait);
diff --git a/linux/dev/include/linux/mm.h b/linux/dev/include/linux/mm.h
index cd06137..b0c3ab0 100644
--- a/linux/dev/include/linux/mm.h
+++ b/linux/dev/include/linux/mm.h
@@ -234,7 +234,7 @@ extern mem_map_t * mem_map;
#define __get_dma_pages(priority, order) __get_free_pages((priority),(order),1)
extern unsigned long __get_free_pages(int priority, unsigned long gfporder,
int dma);
-extern inline unsigned long get_free_page(int priority)
+static inline unsigned long get_free_page(int priority)
{
unsigned long page;
diff --git a/linux/dev/init/main.c b/linux/dev/init/main.c
index ecbd0b6..8737b62 100644
--- a/linux/dev/init/main.c
+++ b/linux/dev/init/main.c
@@ -193,7 +193,7 @@ alloc_contig_mem (unsigned size, unsigned limit,
unsigned *bits, len;
void *m;
vm_page_t p, page_list, tail, prev;
- vm_offset_t addr, max_addr;
+ vm_offset_t addr = 0, max_addr;
if (size == 0)
return (NULL);
@@ -296,7 +296,7 @@ alloc_contig_mem (unsigned size, unsigned limit,
kfree ((vm_offset_t) bits, bits_len);
if (pages)
*pages = page_list;
- return phystokv(m);
+ return (void *) phystokv(m);
}
/*
diff --git a/linux/src/drivers/net/e2100.c b/linux/src/drivers/net/e2100.c
index 537295a..be4185a 100644
--- a/linux/src/drivers/net/e2100.c
+++ b/linux/src/drivers/net/e2100.c
@@ -68,7 +68,7 @@ static int e21_probe_list[] = {0x300, 0x280, 0x380, 0x220, 0};
#define E21_SAPROM 0x10 /* Offset to station address data. */
#define E21_IO_EXTENT 0x20
-extern inline void mem_on(short port, volatile char *mem_base,
+static inline void mem_on(short port, volatile char *mem_base,
unsigned char start_page )
{
/* This is a little weird: set the shared memory window by doing a
@@ -78,7 +78,7 @@ extern inline void mem_on(short port, volatile char *mem_base,
outb(E21_MEM_ON, port + E21_MEM_ENABLE + E21_MEM_ON);
}
-extern inline void mem_off(short port)
+static inline void mem_off(short port)
{
inb(port + E21_MEM_ENABLE);
outb(0x00, port + E21_MEM_ENABLE);
diff --git a/linux/src/include/asm-i386/termios.h
b/linux/src/include/asm-i386/termios.h
index 76551de..9f65b4d 100644
--- a/linux/src/include/asm-i386/termios.h
+++ b/linux/src/include/asm-i386/termios.h
@@ -61,7 +61,7 @@ struct termio {
/*
* Translate a "termio" structure into a "termios". Ugh.
*/
-extern inline void trans_from_termio(struct termio * termio,
+static inline void trans_from_termio(struct termio * termio,
struct termios * termios)
{
#define SET_LOW_BITS(x,y) (*(unsigned short *)(&x) = (y))
@@ -76,7 +76,7 @@ extern inline void trans_from_termio(struct termio * termio,
/*
* Translate a "termios" structure into a "termio". Ugh.
*/
-extern inline void trans_to_termio(struct termios * termios,
+static inline void trans_to_termio(struct termios * termios,
struct termio * termio)
{
termio->c_iflag = termios->c_iflag;
diff --git a/linux/src/include/linux/interrupt.h
b/linux/src/include/linux/interrupt.h
index 5765260..0224475 100644
--- a/linux/src/include/linux/interrupt.h
+++ b/linux/src/include/linux/interrupt.h
@@ -43,14 +43,14 @@ enum {
ISICOM_BH
};
-extern inline void init_bh(int nr, void (*routine)(void))
+static inline void init_bh(int nr, void (*routine)(void))
{
bh_base[nr] = routine;
bh_mask_count[nr] = 0;
bh_mask |= 1 << nr;
}
-extern inline void mark_bh(int nr)
+static inline void mark_bh(int nr)
{
set_bit(nr, &bh_active);
}
@@ -59,13 +59,13 @@ extern inline void mark_bh(int nr)
* These use a mask count to correctly handle
* nested disable/enable calls
*/
-extern inline void disable_bh(int nr)
+static inline void disable_bh(int nr)
{
bh_mask &= ~(1 << nr);
bh_mask_count[nr]++;
}
-extern inline void enable_bh(int nr)
+static inline void enable_bh(int nr)
{
if (!--bh_mask_count[nr])
bh_mask |= 1 << nr;
@@ -75,13 +75,13 @@ extern inline void enable_bh(int nr)
* start_bh_atomic/end_bh_atomic also nest
* naturally by using a counter
*/
-extern inline void start_bh_atomic(void)
+static inline void start_bh_atomic(void)
{
intr_count++;
barrier();
}
-extern inline void end_bh_atomic(void)
+static inline void end_bh_atomic(void)
{
barrier();
intr_count--;
diff --git a/linux/src/include/net/route.h b/linux/src/include/net/route.h
index 7bf32d0..2af1a41 100644
--- a/linux/src/include/net/route.h
+++ b/linux/src/include/net/route.h
@@ -105,30 +105,30 @@ extern unsigned ip_rt_bh_mask;
extern struct rtable *ip_rt_hash_table[RT_HASH_DIVISOR];
extern void rt_free(struct rtable * rt);
-extern __inline__ void ip_rt_fast_lock(void)
+static __inline__ void ip_rt_fast_lock(void)
{
atomic_inc(&ip_rt_lock);
}
-extern __inline__ void ip_rt_fast_unlock(void)
+static __inline__ void ip_rt_fast_unlock(void)
{
atomic_dec(&ip_rt_lock);
}
-extern __inline__ void ip_rt_unlock(void)
+static __inline__ void ip_rt_unlock(void)
{
if (atomic_dec_and_test(&ip_rt_lock) && ip_rt_bh_mask)
ip_rt_run_bh();
}
-extern __inline__ unsigned ip_rt_hash_code(__u32 addr)
+static __inline__ unsigned ip_rt_hash_code(__u32 addr)
{
unsigned tmp = addr + (addr>>16);
return (tmp + (tmp>>8)) & 0xFF;
}
-extern __inline__ void ip_rt_put(struct rtable * rt)
+static __inline__ void ip_rt_put(struct rtable * rt)
#ifndef MODULE
{
/* If this rtable entry is not in the cache, we'd better free
@@ -142,9 +142,9 @@ extern __inline__ void ip_rt_put(struct rtable * rt)
#endif
#ifdef CONFIG_KERNELD
-extern struct rtable * ip_rt_route(__u32 daddr, int local, struct device *dev);
+static struct rtable * ip_rt_route(__u32 daddr, int local, struct device *dev);
#else
-extern __inline__ struct rtable * ip_rt_route(__u32 daddr, int local, struct
device *dev)
+static __inline__ struct rtable * ip_rt_route(__u32 daddr, int local, struct
device *dev)
#ifndef MODULE
{
struct rtable * rth;
@@ -170,7 +170,7 @@ extern __inline__ struct rtable * ip_rt_route(__u32 daddr,
int local, struct dev
#endif
#endif
-extern __inline__ struct rtable * ip_check_route(struct rtable ** rp, __u32
daddr,
+static __inline__ struct rtable * ip_check_route(struct rtable ** rp, __u32
daddr,
int local, struct device *dev)
{
struct rtable * rt = *rp;
diff --git a/linux/src/include/net/sock.h b/linux/src/include/net/sock.h
index 7a3ec03..25a9044 100644
--- a/linux/src/include/net/sock.h
+++ b/linux/src/include/net/sock.h
@@ -559,7 +559,7 @@ extern struct sk_buff
*sock_alloc_send_skb(struct sock *skb,
* packet ever received.
*/
-extern __inline__ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
+static __inline__ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
{
if (sk->rmem_alloc + skb->truesize >= sk->rcvbuf)
return -ENOMEM;
@@ -571,7 +571,7 @@ extern __inline__ int sock_queue_rcv_skb(struct sock *sk,
struct sk_buff *skb)
return 0;
}
-extern __inline__ int __sock_queue_rcv_skb(struct sock *sk, struct sk_buff
*skb)
+static __inline__ int __sock_queue_rcv_skb(struct sock *sk, struct sk_buff
*skb)
{
if (sk->rmem_alloc + skb->truesize >= sk->rcvbuf)
return -ENOMEM;
@@ -587,7 +587,7 @@ extern __inline__ int __sock_queue_rcv_skb(struct sock *sk,
struct sk_buff *skb)
* Recover an error report and clear atomically
*/
-extern __inline__ int sock_error(struct sock *sk)
+static __inline__ int sock_error(struct sock *sk)
{
int err=xchg(&sk->err,0);
return -err;
diff --git a/version.m4 b/version.m4
index 277c530..5d14353 100644
--- a/version.m4
+++ b/version.m4
@@ -1,4 +1,4 @@
m4_define([AC_PACKAGE_NAME],[GNU Mach])
-m4_define([AC_PACKAGE_VERSION],[1.6+git20151211])
+m4_define([AC_PACKAGE_VERSION],[1.6+git20160114])
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 cded22d..3a231de 100644
--- a/vm/vm_map.c
+++ b/vm/vm_map.c
@@ -2556,6 +2556,7 @@ kern_return_t vm_map_copyout(
*/
copy->cpy_hdr.nentries = 0;
copy->cpy_hdr.entries_pageable = dst_map->hdr.entries_pageable;
+ rbtree_init(©->cpy_hdr.tree);
vm_map_copy_first_entry(copy) =
vm_map_copy_last_entry(copy) =
vm_map_copy_to_entry(copy);
@@ -4718,24 +4719,30 @@ kern_return_t vm_map_machine_attribute(
/*
* vm_map_print: [ debug ]
*/
-void vm_map_print(vm_map_t map)
+void vm_map_print(db_expr_t addr, boolean_t have_addr, db_expr_t count, const
char *modif)
{
+ vm_map_t map;
vm_map_entry_t entry;
- iprintf("Task map 0x%X: pmap=0x%X,",
+ if (!have_addr)
+ map = current_thread()->task->map;
+ else
+ map = (vm_map_t)addr;
+
+ iprintf("Map 0x%X: pmap=0x%X,",
(vm_offset_t) map, (vm_offset_t) (map->pmap));
printf("ref=%d,nentries=%d,", map->ref_count, map->hdr.nentries);
printf("version=%d\n", map->timestamp);
- indent += 2;
+ indent += 1;
for (entry = vm_map_first_entry(map);
entry != vm_map_to_entry(map);
entry = entry->vme_next) {
static char *inheritance_name[3] = { "share", "copy", "none"};
iprintf("map entry 0x%X: ", (vm_offset_t) entry);
- printf("start=0x%X, end=0x%X, ",
+ printf("start=0x%X, end=0x%X\n",
(vm_offset_t) entry->vme_start, (vm_offset_t)
entry->vme_end);
- printf("prot=%X/%X/%s, ",
+ iprintf("prot=%X/%X/%s, ",
entry->protection,
entry->max_protection,
inheritance_name[entry->inheritance]);
@@ -4770,13 +4777,13 @@ void vm_map_print(vm_map_t map)
if ((entry->vme_prev == vm_map_to_entry(map)) ||
(entry->vme_prev->object.vm_object !=
entry->object.vm_object)) {
- indent += 2;
+ indent += 1;
vm_object_print(entry->object.vm_object);
- indent -= 2;
+ indent -= 1;
}
}
}
- indent -= 2;
+ indent -= 1;
}
/*
@@ -4792,7 +4799,7 @@ void vm_map_copy_print(copy)
printf("copy object 0x%x\n", copy);
- indent += 2;
+ indent += 1;
iprintf("type=%d", copy->type);
switch (copy->type) {
@@ -4846,6 +4853,6 @@ void vm_map_copy_print(copy)
break;
}
- indent -= 2;
+ indent -= 1;
}
#endif /* MACH_KDB */
diff --git a/vm/vm_object.c b/vm/vm_object.c
index dd63481..6666fcb 100644
--- a/vm/vm_object.c
+++ b/vm/vm_object.c
@@ -2923,13 +2923,14 @@ void vm_object_print(
if (object == VM_OBJECT_NULL)
return;
- iprintf("Object 0x%X: size=0x%X",
- (vm_offset_t) object, (vm_offset_t) object->size);
- printf(", %d references, %d resident pages,", object->ref_count,
- object->resident_page_count);
+ iprintf("Object 0x%X: size=0x%X, %d references",
+ (vm_offset_t) object, (vm_offset_t) object->size,
+ object->ref_count);
+ printf("\n");
+ iprintf("%d resident pages,", object->resident_page_count);
printf(" %d absent pages,", object->absent_count);
printf(" %d paging ops\n", object->paging_in_progress);
- indent += 2;
+ indent += 1;
iprintf("memory object=0x%X (offset=0x%X),",
(vm_offset_t) object->pager, (vm_offset_t)
object->paging_offset);
printf("control=0x%X, name=0x%X\n",
@@ -2948,7 +2949,7 @@ void vm_object_print(
(vm_offset_t) object->shadow, (vm_offset_t)
object->shadow_offset);
printf("copy=0x%X\n", (vm_offset_t) object->copy);
- indent += 2;
+ indent += 1;
if (vm_object_print_pages) {
count = 0;
@@ -2965,7 +2966,7 @@ void vm_object_print(
if (count != 0)
printf("\n");
}
- indent -= 4;
+ indent -= 2;
}
#endif /* MACH_KDB */
diff --git a/vm/vm_object.h b/vm/vm_object.h
index 3bfc67a..71c8545 100644
--- a/vm/vm_object.h
+++ b/vm/vm_object.h
@@ -62,7 +62,7 @@ typedef struct ipc_port * pager_request_t;
*/
struct vm_object {
- queue_chain_t memq; /* Resident memory */
+ queue_head_t memq; /* Resident memory */
decl_simple_lock_data(, Lock) /* Synchronization */
#if VM_OBJECT_DEBUG
thread_t LockHolder; /* Thread holding Lock */
diff --git a/vm/vm_print.h b/vm/vm_print.h
index eab534e..8a36d75 100644
--- a/vm/vm_print.h
+++ b/vm/vm_print.h
@@ -23,7 +23,8 @@
#include <machine/db_machdep.h>
/* Debugging: print a map */
-extern void vm_map_print(vm_map_t);
+extern void vm_map_print(db_expr_t addr, boolean_t have_addr,
+ db_expr_t count, const char *modif);
/* Pretty-print a copy object for ddb. */
extern void vm_map_copy_print(const vm_map_copy_t);
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/gnumach.git