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 <[email protected]> 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 <kilobug\@freesurf.fr>\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 <kilobug\@freesurf.fr>\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], [[email protected]]) +AC_INIT([GNU Hurd], [0.9], [[email protected]]) 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
