[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 01/03: New upstream snapshot
From: |
Samuel Thibault |
Subject: |
[hurd] 01/03: New upstream snapshot |
Date: |
Mon, 19 Dec 2016 16:36:01 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch master
in repository hurd.
commit 25a6a220c99a6084cfe6d1cea94baa521da3b22b
Author: Samuel Thibault <address@hidden>
Date: Mon Dec 19 15:50:10 2016 +0000
New upstream snapshot
---
ChangeLog | 33 +++++++++
Makefile | 163 ++++++++++++++++++++++++++----------------
NEWS | 18 +++--
configure.ac | 2 +-
libpager/stubs.c | 11 ---
libports/ports.h | 28 ++++----
libshouldbeinlibc/refcount.h | 18 +++--
mach-defpager/default_pager.c | 39 +++-------
procfs/ChangeLog | 6 --
9 files changed, 187 insertions(+), 131 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8ecce54..28b6740 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+For all but procfs and random (see below),
2772f5c6a6a51cf946fd95bf6ffe254273157a21 is the last commit imported from CVS.
All commits after that one have valid author and committer information.
@@ -55,3 +56,35 @@ Use this to examine the change log for earlier changes:
$ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:trans/ChangeLog
$ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:usermux/ChangeLog
$ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:utils/ChangeLog
+
+random:
+
+random has been merged in 707f6cc4dbad734325881c5b275138522188754c. Before
+1ba2ed95690396bf081d0af043d878b26b8563c2, it lived in the top-level directory.
+
+Use this to examine the change log, rewriting paths to where they live now:
+
+ $ ./gitlog-to-changelog --strip-tab
ac38884dc9ad32a11d09f55ba9fe399cd0a48e2f..1ba2ed95690396bf081d0af043d878b26b8563c2~1
| sed -e 's%\* [ ]*%* random/%'
+
+ac38884dc9ad32a11d09f55ba9fe399cd0a48e2f is the commit where it was imported.
+All commits after that one have valid author and committer information.
+
+Use this to examine the change log for earlier changes:
+
+ $ git ls-tree --name-only ac38884dc9ad32a11d09f55ba9fe399cd0a48e2f | perl
-e 'print "2011-08-18 Gaël Le Mignot <address@hidden>\n\n"; while(<>){s%^%\t*
random/%;s%$%: New file.%;print;}'
+
+procfs:
+
+procfs has been merged in 7877d064a4318fb550b3cbcf64f0ec605e4a53e2. Before
+aac4aaf42372f61c78061711916c81a9d5bcb42d, it lived in the top-level directory.
+
+Use this to examine the change log, rewriting paths to where they live now:
+
+ $ ./gitlog-to-changelog --strip-tab
edb4593c38d421b5d538b221a991b50c36fdba15..aac4aaf42372f61c78061711916c81a9d5bcb42d~1
| sed -e 's%\* [ ]*%* procfs/%' -e s%procfs/procfs/%procfs/%
+
+edb4593c38d421b5d538b221a991b50c36fdba15 is the last commit imported from CVS.
+All commits after that one have valid author and committer information.
+
+Use this to examine the change log for earlier changes:
+
+ $ git show edb4593c38d421b5d538b221a991b50c36fdba15:ChangeLog | sed -e
's%\* [ ]*%* procfs/%'
diff --git a/Makefile b/Makefile
index a9ad3f6..9de4fa8 100644
--- a/Makefile
+++ b/Makefile
@@ -98,75 +98,116 @@ ChangeLog.tar: gen-ChangeLog
tar -c -f $@ --owner=0 --group=0 \
--transform='s%^%$(dist-version)/%' $(ChangeLog_files)
-gen_start_commit = 2772f5c6a6a51cf946fd95bf6ffe254273157a21
+# See the ChangeLog file.
+gitlog-to-changelog_rev = \
+ 2772f5c6a6a51cf946fd95bf6ffe254273157a21..
ChangeLog_files = \
- ChangeLog \
- auth/ChangeLog \
- benchmarks/ChangeLog \
- boot/ChangeLog \
- config/ChangeLog \
- console-client/ChangeLog \
- console/ChangeLog \
- daemons/ChangeLog \
- defpager/ChangeLog \
- doc/ChangeLog \
- exec/ChangeLog \
- ext2fs/ChangeLog \
- fatfs/ChangeLog \
- fstests/ChangeLog \
- ftpfs/ChangeLog \
- hostmux/ChangeLog \
- hurd/ChangeLog \
- include/ChangeLog \
- init/ChangeLog \
- isofs/ChangeLog \
- libcons/ChangeLog \
- libdirmgt/ChangeLog \
- libdiskfs/ChangeLog \
- libfshelp/ChangeLog \
- libftpconn/ChangeLog \
- libhurdbugaddr/ChangeLog \
- libihash/ChangeLog \
- libiohelp/ChangeLog \
- libnetfs/ChangeLog \
- libpager/ChangeLog \
- libpipe/ChangeLog \
- libports/ChangeLog \
- libps/ChangeLog \
- libshouldbeinlibc/ChangeLog \
- libstore/ChangeLog \
- libthreads/ChangeLog \
- libtrivfs/ChangeLog \
- login/ChangeLog \
- mach-defpager/ChangeLog \
- nfs/ChangeLog \
- nfsd/ChangeLog \
- pfinet/ChangeLog \
- pflocal/ChangeLog \
- proc/ChangeLog \
- release/ChangeLog \
- storeio/ChangeLog \
- sutils/ChangeLog \
- term/ChangeLog \
- tmpfs/ChangeLog \
- trans/ChangeLog \
- usermux/ChangeLog \
- utils/ChangeLog
-distdir = .
+ $(filter-out :%,$(subst :, :,$(ChangeLog_specs)))
+ChangeLog_specs = \
+ ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ auth/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ benchmarks/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ boot/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ config/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ console-client/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ console/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ daemons/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ defpager/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ doc/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ exec/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ ext2fs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ fatfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ fstests/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ ftpfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ hostmux/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ hurd/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ include/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ init/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ isofs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libcons/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libdirmgt/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libdiskfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libfshelp/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libftpconn/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libhurdbugaddr/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libihash/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libiohelp/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libnetfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libpager/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libpipe/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libports/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libps/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libshouldbeinlibc/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libstore/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libthreads/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ libtrivfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ login/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ mach-defpager/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ nfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ nfsd/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ pfinet/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ pflocal/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ proc/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ release/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ storeio/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ sutils/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ term/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ tmpfs/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ trans/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ usermux/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21 \
+ utils/ChangeLog:2772f5c6a6a51cf946fd95bf6ffe254273157a21
+# procfs
+gitlog-to-changelog_rev += \
+ ^aac4aaf42372f61c78061711916c81a9d5bcb42d~1
+ChangeLog_specs += \
+ procfs/ChangeLog:edb4593c38d421b5d538b221a991b50c36fdba15:ChangeLog
+# random
+gitlog-to-changelog_rev += \
+ ^1ba2ed95690396bf081d0af043d878b26b8563c2~1
+# Specify dummy ChangeLog file, will get overwritten.
+ChangeLog_specs += \
+ random/ChangeLog:HEAD:ChangeLog
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d $(top_srcdir)/.git; then \
+ rm -f $(ChangeLog_files) && \
(cd $(top_srcdir)/ && \
./gitlog-to-changelog --strip-tab \
- $(gen_start_commit).. && \
- echo) >> $(distdir)/cl-t && \
- for f in $(ChangeLog_files); do \
+ $(gitlog-to-changelog_rev) && \
+ echo) >> ChangeLog && \
+ (cd $(top_srcdir)/ && \
+ ./gitlog-to-changelog --strip-tab \
+
edb4593c38d421b5d538b221a991b50c36fdba15..aac4aaf42372f61c78061711916c81a9d5bcb42d~1
&& \
+ echo) >> procfs/ChangeLog && \
+ rm -f random/ChangeLog-1 && \
+ (cd $(top_srcdir)/ && \
+ ./gitlog-to-changelog --strip-tab \
+
ac38884dc9ad32a11d09f55ba9fe399cd0a48e2f..1ba2ed95690396bf081d0af043d878b26b8563c2~1
&& \
+ echo) >> random/ChangeLog-1 && \
+ for cs in $(ChangeLog_specs); do \
+ f=$${cs%%:*} && \
+ s=$${cs#$$f:} && s_f=$$s:$$f && s=$${s_f/*:*:*/$$s} && \
(cd $(top_srcdir)/ && \
- git show $(gen_start_commit):$$f) >> $(distdir)/cl-t && \
- rm -f $(distdir)/$$f && \
- mv $(distdir)/cl-t $(distdir)/$$f \
+ git show $$s) >> $$f \
|| exit $$?; \
- done; \
+ done && \
+ rm -f random/ChangeLog_ && \
+ (cd $(top_srcdir)/ && \
+ git ls-tree --name-only \
+ ac38884dc9ad32a11d09f55ba9fe399cd0a48e2f) >> random/ChangeLog_ && \
+ rm -f random/ChangeLog-2 && \
+ perl \
+ -e 'print "2011-08-18 Gaël Le Mignot <address@hidden>\n\n";
while(<>){s%^%\t* %;s%$$%: New file.%;print;}' \
+ < random/ChangeLog_ > random/ChangeLog-2 && \
+ cat random/ChangeLog-* > random/ChangeLog && \
+ rm random/ChangeLog?* && \
+ sed \
+ -e 's%\* [ ]*%* procfs/%' \
+ -e s%procfs/procfs/%procfs/% \
+ -i procfs/ChangeLog && \
+ sed \
+ -e 's%\* [ ]*%* random/%' \
+ -i random/ChangeLog; \
fi
$(dist-version).tar: HEAD.tar $(addsuffix /dist-hook,hurd/.. $(subdirs))
ChangeLog.tar
diff --git a/NEWS b/NEWS
index d84ae33..05e04d5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,21 @@
-Version 0.9 (2016-11-XX)
+Version 0.9 (2016-12-18)
The 'boot' program can now be run as unprivileged user, allowing any
user to create unprivileged Subhurds.
-The Berkeley Packet Filter library and the ethernet multiplexer have
-been merged into this repository.
-
+An ethernet multiplexer (eth-multiplexer translator) has been merged
+into this repository. This is a network multiplexer that makes
+available virtual interfaces, and routes traffic between these and a
+real ethernet interface. It uses the Berkeley Packet Filter library
+(libbpf), which has also been merged. The ethernet multiplexer now
+generates and uses stable pseudo-random ethernet addresses for the
+virtual interfaces.
+
+As usual, bugs have been fixed throughout the code, notably in
+libpager and ext2fs which now gracefully handles running out of space.
+Further compatibility fixes have been applied (for compliance to
+standards such as POSIX).
+
Version 0.8 (2016-05-18)
The netfs library is using the lockless reference-counting primitives
diff --git a/configure.ac b/configure.ac
index 365fc85..5cbbea8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.54) dnl Minimum Autoconf version required.
-AC_INIT([GNU Hurd], [0.8], address@hidden)
+AC_INIT([GNU Hurd], [0.9], address@hidden)
AC_CONFIG_SRCDIR([hurd/hurd_types.h]) dnl File to look for in srcdir.
AC_PREFIX_DEFAULT() dnl Default to empty prefix, not /usr/local.
diff --git a/libpager/stubs.c b/libpager/stubs.c
index 964985b..e061783 100644
--- a/libpager/stubs.c
+++ b/libpager/stubs.c
@@ -32,17 +32,6 @@ _pager_S_memory_object_copy (struct pager *p,
}
kern_return_t __attribute__((weak))
-_pager_S_memory_object_data_write (struct pager *p,
- mach_port_t ctl,
- vm_offset_t off,
- pointer_t data,
- vm_size_t data_cnt)
-{
- printf ("m_o_data_write called\n");
- return EOPNOTSUPP;
-}
-
-kern_return_t __attribute__((weak))
_pager_S_memory_object_supply_completed (struct pager *p,
mach_port_t ctl,
vm_offset_t off,
diff --git a/libports/ports.h b/libports/ports.h
index 9299bc4..7295093 100644
--- a/libports/ports.h
+++ b/libports/ports.h
@@ -47,7 +47,11 @@
struct port_info
{
+#ifdef __cplusplus
+ struct port_class *port_class;
+#else
struct port_class *class;
+#endif
refcounts_t refcounts;
mach_port_mscount_t mscount;
mach_msg_seqno_t cancel_threshold; /* needs atomic operations */
@@ -172,7 +176,7 @@ struct port_class *ports_create_class (void
(*clean_routine)(void *),
/* Create and return in RESULT a new port in CLASS and BUCKET; SIZE bytes
will be allocated to hold the port structure and whatever private data the
user desires. */
-error_t ports_create_port (struct port_class *class,
+error_t ports_create_port (struct port_class *port_class,
struct port_bucket *bucket,
size_t size,
void *result);
@@ -184,14 +188,14 @@ error_t ports_create_port (struct port_class *class,
service will occur on the port until you have finished initializing
it and installed it into the portset yourself. */
error_t
-ports_create_port_noinstall (struct port_class *class,
+ports_create_port_noinstall (struct port_class *port_class,
struct port_bucket *bucket,
size_t size,
void *result);
/* For an existing RECEIVE right, create and return in RESULT a new port
structure; BUCKET, SIZE, and CLASS args are as for ports_create_port. */
-error_t ports_import_port (struct port_class *class,
+error_t ports_import_port (struct port_class *port_class,
struct port_bucket *bucket,
mach_port_t port, size_t size,
void *result);
@@ -241,14 +245,14 @@ mach_port_t ports_get_send_right (void *port);
searched. If CLASS is nonzero, then the lookup will fail if PORT
is not in CLASS. */
void *ports_lookup_port (struct port_bucket *bucket,
- mach_port_t port, struct port_class *class);
+ mach_port_t port, struct port_class *port_class);
/* Like ports_lookup_port, but uses PAYLOAD to look up the object. If
this function is used, PAYLOAD must be a pointer to the port
structure. */
extern void *ports_lookup_payload (struct port_bucket *bucket,
unsigned long payload,
- struct port_class *class);
+ struct port_class *port_class);
/* This returns the ports name. This function can be used as
intranpayload function turning payloads back into port names. If
@@ -256,7 +260,7 @@ extern void *ports_lookup_payload (struct port_bucket
*bucket,
structure. */
extern mach_port_t ports_payload_get_name (unsigned int payload);
-#if defined(__USE_EXTERN_INLINES) || defined(PORTS_DEFINE_EI)
+#if (defined(__USE_EXTERN_INLINES) || defined(PORTS_DEFINE_EI)) &&
!defined(__cplusplus)
PORTS_EI void *
ports_lookup_payload (struct port_bucket *bucket,
@@ -313,7 +317,7 @@ void ports_dead_name (void *notify, mach_port_t dead_name);
/* Block port creation of new ports in CLASS. Return the number
of ports currently in CLASS. */
-int ports_count_class (struct port_class *class);
+int ports_count_class (struct port_class *port_class);
/* Block port creation of new ports in BUCKET. Return the number
of ports currently in BUCKET. */
@@ -321,7 +325,7 @@ int ports_count_bucket (struct port_bucket *bucket);
/* Permit suspended port creation (blocked by ports_count_class)
to continue. */
-void ports_enable_class (struct port_class *class);
+void ports_enable_class (struct port_class *port_class);
/* Permit suspend port creation (blocked by ports_count_bucket)
to continue. */
@@ -332,12 +336,12 @@ error_t ports_bucket_iterate (struct port_bucket *bucket,
error_t (*fun)(void *port));
/* Call FUN once for each port in CLASS. */
-error_t ports_class_iterate (struct port_class *class,
+error_t ports_class_iterate (struct port_class *port_class,
error_t (*fun)(void *port));
/* Internal entrypoint for above two. */
error_t _ports_bucket_class_iterate (struct hurd_ihash *ht,
- struct port_class *class,
+ struct port_class *port_class,
error_t (*fun)(void *port));
/* RPC management */
@@ -385,7 +389,7 @@ void ports_manage_port_operations_multithread (struct
port_bucket *bucket,
error_t ports_inhibit_port_rpcs (void *port);
/* Similar to ports_inhibit_port_rpcs, but affects all ports in CLASS. */
-error_t ports_inhibit_class_rpcs (struct port_class *class);
+error_t ports_inhibit_class_rpcs (struct port_class *port_class);
/* Similar to ports_inhibit_port_rpcs, but affects all ports in BUCKET. */
error_t ports_inhibit_bucket_rpcs (struct port_bucket *bucket);
@@ -398,7 +402,7 @@ error_t ports_inhibit_all_rpcs (void);
void ports_resume_port_rpcs (void *port);
/* Reverse the effect of a previous ports_inhibit_class_rpcs for CLASS. */
-void ports_resume_class_rpcs (struct port_class *class);
+void ports_resume_class_rpcs (struct port_class *port_class);
/* Reverse the effect of a previous ports_inhibit_bucket_rpcs for BUCKET. */
void ports_resume_bucket_rpcs (struct port_bucket *bucket);
diff --git a/libshouldbeinlibc/refcount.h b/libshouldbeinlibc/refcount.h
index 0d1fa28..49457cd 100644
--- a/libshouldbeinlibc/refcount.h
+++ b/libshouldbeinlibc/refcount.h
@@ -107,9 +107,13 @@ struct references {
and demotion of references. See refcounts_promote and
refcounts_demote for details. */
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define REFCOUNT_REFERENCES(_hard, _weak) \
+ (struct references) { .hard = (_hard), .weak = (_weak) }
uint32_t hard;
uint32_t weak;
#else
+#define REFCOUNT_REFERENCES(_hard, _weak) \
+ (struct references) { .weak = (_weak), .hard = (_hard) }
uint32_t weak;
uint32_t hard;
#endif
@@ -131,7 +135,7 @@ refcounts_init (refcounts_t *ref, uint32_t hard, uint32_t
weak)
{
assert_backtrace ((hard != 0 || weak != 0)
|| !"references must not both be zero!");
- ref->references = (struct references) { .hard = hard, .weak = weak };
+ ref->references = REFCOUNT_REFERENCES (hard, weak);
}
/* Increment the hard reference count of REF. If RESULT is not NULL,
@@ -145,7 +149,7 @@ refcounts_init (refcounts_t *ref, uint32_t hard, uint32_t
weak)
REFCOUNT_EI void
refcounts_unsafe_ref (refcounts_t *ref, struct references *result)
{
- const union _references op = { .references = { .hard = 1 } };
+ const union _references op = { .references = REFCOUNT_REFERENCES (1, 0) };
union _references r;
r.value = __atomic_add_fetch (&ref->value, op.value, __ATOMIC_RELAXED);
assert_backtrace (r.references.hard != UINT32_MAX
@@ -176,7 +180,7 @@ refcounts_ref (refcounts_t *ref, struct references *result)
REFCOUNT_EI void
refcounts_deref (refcounts_t *ref, struct references *result)
{
- const union _references op = { .references = { .hard = 1 } };
+ const union _references op = { .references = REFCOUNT_REFERENCES (1, 0) };
union _references r;
r.value = __atomic_sub_fetch (&ref->value, op.value, __ATOMIC_RELAXED);
assert_backtrace (r.references.hard != UINT32_MAX
@@ -207,7 +211,7 @@ refcounts_promote (refcounts_t *ref, struct references
*result)
So we just add a hard reference. In combination, this is the
desired operation. */
const union _references op =
- { .references = { .weak = ~0U, .hard = 1} };
+ { .references = REFCOUNT_REFERENCES (1, ~0U) };
union _references r;
r.value = __atomic_add_fetch (&ref->value, op.value, __ATOMIC_RELAXED);
assert_backtrace (r.references.hard != UINT32_MAX
@@ -237,7 +241,7 @@ refcounts_demote (refcounts_t *ref, struct references
*result)
significant bits. When we add ~0 to the hard references, it will
overflow into the weak references. This is the desired
operation. */
- const union _references op = { .references = { .hard = ~0U } };
+ const union _references op = { .references = REFCOUNT_REFERENCES (~0U, 0) };
union _references r;
r.value = __atomic_add_fetch (&ref->value, op.value, __ATOMIC_RELAXED);
assert_backtrace (r.references.hard != UINT32_MAX
@@ -259,7 +263,7 @@ refcounts_demote (refcounts_t *ref, struct references
*result)
REFCOUNT_EI void
refcounts_unsafe_ref_weak (refcounts_t *ref, struct references *result)
{
- const union _references op = { .references = { .weak = 1 } };
+ const union _references op = { .references = REFCOUNT_REFERENCES (0, 1) };
union _references r;
r.value = __atomic_add_fetch (&ref->value, op.value, __ATOMIC_RELAXED);
assert_backtrace (r.references.weak != UINT32_MAX
@@ -290,7 +294,7 @@ refcounts_ref_weak (refcounts_t *ref, struct references
*result)
REFCOUNT_EI void
refcounts_deref_weak (refcounts_t *ref, struct references *result)
{
- const union _references op = { .references = { .weak = 1 } };
+ const union _references op = { .references = REFCOUNT_REFERENCES (0, 1) };
union _references r;
r.value = __atomic_sub_fetch (&ref->value, op.value, __ATOMIC_RELAXED);
assert_backtrace (r.references.weak != UINT32_MAX
diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
index d7bc75b..787ba5b 100644
--- a/mach-defpager/default_pager.c
+++ b/mach-defpager/default_pager.c
@@ -2623,27 +2623,31 @@ ddprintf ("seqnos_memory_object_data_initialize <%p>:
pager_port_unlock: <%p>[s:
}
/*
- * memory_object_data_write: split up the stuff coming in from
+ * memory_object_data_return: split up the stuff coming in from
* a memory_object_data_write call
* into individual pages and pass them off to default_write.
*/
kern_return_t
-seqnos_memory_object_data_write(ds, seqno, pager_request,
- offset, addr, data_cnt)
+seqnos_memory_object_data_return(ds, seqno, pager_request,
+ offset, addr, data_cnt,
+ dirty, kernel_copy)
default_pager_t ds;
mach_port_seqno_t seqno;
mach_port_t pager_request;
- register
vm_offset_t offset;
- register
pointer_t addr;
vm_size_t data_cnt;
+ boolean_t dirty;
+ boolean_t kernel_copy;
{
register
vm_size_t amount_sent;
- static char here[] = "%sdata_write";
+ static char here[] = "%sdata_return";
int err;
+ (void) dirty;
+ (void) kernel_copy;
+
#ifdef lint
pager_request++;
#endif /* lint */
@@ -2765,29 +2769,6 @@ seqnos_memory_object_supply_completed(ds, seqno,
pager_request,
return(KERN_FAILURE);
}
-/*
- * memory_object_data_return: split up the stuff coming in from
- * a memory_object_data_write call
- * into individual pages and pass them off to default_write.
- */
-kern_return_t
-seqnos_memory_object_data_return(ds, seqno, pager_request,
- offset, addr, data_cnt,
- dirty, kernel_copy)
- default_pager_t ds;
- mach_port_seqno_t seqno;
- mach_port_t pager_request;
- vm_offset_t offset;
- pointer_t addr;
- vm_size_t data_cnt;
- boolean_t dirty;
- boolean_t kernel_copy;
-{
-
- return seqnos_memory_object_data_write (ds, seqno, pager_request,
- offset, addr, data_cnt);
-}
-
kern_return_t
seqnos_memory_object_change_completed(ds, seqno, may_cache, copy_strategy)
default_pager_t ds;
diff --git a/procfs/ChangeLog b/procfs/ChangeLog
deleted file mode 100644
index 0cd74d0..0000000
--- a/procfs/ChangeLog
+++ /dev/null
@@ -1,6 +0,0 @@
-edb4593c38d421b5d538b221a991b50c36fdba15 is the last commit imported from CVS.
-All commits after that one have valid author and committer information.
-
-Use this to examine the change log for earlier changes:
-
- $ git show edb4593c38d421b5d538b221a991b50c36fdba15:ChangeLog
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/hurd.git