Age | Commit message (Collapse) | Author |
|
* libdiskfs/name-cache.c: Move the Murmur3 algorithm...
* libihash/murmur3.c: ... here, and properly attribute the code.
* libihash/ihash.h (hurd_ihash_hash32): New prototype.
* libihash/Makefile (SRCS): Add new file.
|
|
* libihash/ihash.c (find_index): Keep track and return the index where
we could insert the item.
(add_one): Use 'find_index'.
|
|
* libihash/ihash.c (hash, compare): New functions that are used
throughout libihash to hash and compare keys.
(hurd_ihash_set_gki): New function.
* libihash/ihash.h (hurd_ihash_fct_hash_t): New type for hash functions.
(hurd_ihash_fct_cmp_t): New type for comparison functions.
(struct hurd_ihash): New fields for hash and comparison functions.
(HURD_IHASH_INITIALIZER_GKI): New static initializer.
(hurd_ihash_set_gki): New prototype.
|
|
* libihash/ihash.c (hurd_ihash_locp_add): Fix insertion if the key
doesn't match.
|
|
* libihash/ihash.c (hurd_ihash_locp_find): Return both the item and the slot.
* libihash/ihash.h (hurd_ihash_locp_find): Adjust prototype.
(hurd_ihash_locp_value): Remove function.
|
|
The latter does not work for libpthread.a which passes -lihash, which would
find the installed libihash.a instead of the just-compiled one.
* Makeconf (rpath): Remove, replaced by...
(lpath): ... new variable.
(link-executable, $(libname).so.$(hurd-version)): Use $(lpath) instead of
$(rpath).
|
|
|
|
* doc/hurd.texi (devnode): Do not reference not-yet-existing eth-multiplexer
node.
|
|
* doc/hurd.texi (devnode): Add section.
|
|
* libhurd-slab: New directory
* Makefile (lib-subdirs): Add libhurd-slab.
|
|
* devnode: New directory
* Makefile (prog-subdirs): Add devnode.
|
|
* libihash/ihash.c (hurd_ihash_add): Add the item even though we are
above the load factor if resizing failed.
|
|
If libihash is used to implement a cache, a insertion is always
preceeded by a lookup. hurd_ihash_add has to do the lookup again.
Provide a new pair of functions, hurd_ihash_locp_add and
hurd_ihash_locp_find, that can be used in combination to avoid the
second lookup.
* libihash/ihash.c (hurd_ihash_locp_add): New function using a
location pointer...
(hurd_ihash_locp_find): ... that has been returned by this function.
* libihash/ihash.h (hurd_ihash_locp_add): New declaration.
(hurd_ihash_locp_find): Likewise.
(hurd_ihash_locp_value): New function.
|
|
* libihash/ihash.h (hurd_ihash_value_valid): New function.
* libihash/ihash.c (index_empty): Use hurd_ihash_value_valid.
|
|
* random/random.c (trivfs_S_io_read): Satisfy arbitrarily-sized reads.
|
|
* random/random.c (arrange_shutdown_notification): Use the new way to
contact the startup server.
|
|
* random/random.c (arrange_shutdown_notification): Improve error
handling.
(main): Display warning if arranging the shutdown notification failed.
|
|
* random/random.c (trivfs_append_args): Fix odd formatting.
|
|
* console/pager.c (user_pager_init): Remove unused variables.
* ext2fs/pager.c (create_disk_pager): Likewise.
* fatfs/pager.c (create_fat_pager): Likewise.
* storeio/pager.c (init_dev_paging): Likewise.
|
|
This API has been deprecated in Hurd 0.7.
* doc/hurd.texi (trivfs_protid_portclasses,
trivfs_protid_nportclasses, trivfs_cntl_portclasses,
trivfs_cntl_nportclasses): Remove.
* libtrivfs/trivfs.h: Likewise.
* libtrivfs/mig-decls.h: Adapt accordingly.
* libtrivfs/cntl-classes.c: Remove unused file.
* libtrivfs/protid-classes.c: Likewise.
* libtrivfs/Makefile (OTHERSRCS): Drop the two files.
|
|
* pfinet/main.c (main): Properly iterate over `pfinet_protid_portclasses'.
|
|
* configure.ac (AC_INIT): Set version to 0.7.
* NEWS: Finalize for 0.7.
|
|
* pflocal/io.c: Do not needlessly include `interrupt_S.h'.
|
|
* hurd/hurd_types.defs (interrupt_t): Fix type of in-translation
function.
|
|
Handle multiple request types as recommended by the Mach Server
Writer's Guide section 4, subsection "Handling Multiple Request
Types". This avoids initializing the reply message in every X_server
function.
* trans/proxy-defpager.c (proxy_defpager_demuxer): Improve the demuxer
function.
* trans/streamio.c (demuxer): Likewise.
|
|
Various realworld tests would otherwise think they can write to /, while
they actually can't.
* trans/fakeroot.c (netfs_report_access): Call file_check_access instead of
returning O_RDWR|O_EXEC when faking mode too.
|
|
So we will always be able to re-open them.
* trans/fakeroot.c (netfs_S_dir_lookup): Call real_from_fake_mode() on modes
before calling the underlying filesystem's dir_lookup.
|
|
* libnetfs/io-reauthenticate.c (netfs_S_io_reauthenticate): Loop when
netfs_make_protid fails with EINTR, return error when it fails otherwise.
|
|
Follow-up dbfa8a3
* libnetfs/io-reauthenticate.c (netfs_S_io_reauthenticate): Do not
deallocate parameter port `rend_port' when an error will be returned.
* libtrivfs/io-reauthenticate.c (trivfs_S_io_reauthenticate): Do not
deallocate parameter port `rend_port' when an error will be returned.
|
|
The getpwnam_r and similar functions only return non-zero on error, but not
finding the given name/UID/GID does not count as an error. When they return 0,
the value of the result (*result when looking at the arguments in the man pages)
still needs to be checked for null.
* libshouldbeinlibc/idvec-rep.c (lookup_uid): Check result for null.
(lookup_gid): Likewise.
* libshouldbeinlibc/idvec-verify.c (verify_passwd): Likewise.
(verify_id): Likewise.
|
|
|
|
* libdiskfs/boot-start.c (diskfs_start_bootstrap): fflush stdout when
pausing for /hurd/startup.
|
|
* .gitignore: Add generated doc/hurd.aux, doc/hurd.cp, doc/hurd.cps,
doc/hurd.fn, doc/hurd.ky, doc/hurd.log, doc/hurd.pdf, doc/hurd.pg,
doc/hurd.sc, doc/hurd.toc, doc/hurd.tp, doc/hurd.vr files.
* doc/hurd.texi: Fix typo, complete explanation about sharing Mach devices.
Complete documentation for shutdown. Replace cthreads with POSIX threads.
|
|
* libtrivfs/trivfs.h (trivfs_protid_portclasses): Deprecate, and
schedule for removal in Hurd 0.8.
(trivfs_protid_nportclasses): Likewise.
(trivfs_cntl_portclasses): Likewise.
(trivfs_cntl_nportclasses): Likewise.
|
|
* libtrivfs/mig-decls.h: Remove the specialized cases, they really
blow up these functions that are supposed to be inlined. Also, look
into the dynamically allocated vectors first, because this is the
preferred way of using libtrivfs since 1997.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a severe bug. As no classes are given to
`trivfs_startup', they are created and inserted into the dynamic
vector of classes. The helper function `allowed', however, used the
first item of the previously used static array, which is NULL. This
circumvented the typecheck, allowing the default pager protocol to be
spoken over control ports, likely resulting in a crash.
* trans/proxy-defpager.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* trans/password.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* trans/new-fifo.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a severe bug. As no classes are given to
`trivfs_startup', they are created and inserted into the dynamic
vector of classes. The server function `trivfs_S_fsys_forward',
however, used the first item of the previously used static array,
which is NULL. This circumvented the typecheck.
* trans/magic.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* trans/ifsock.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* trans/crash.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* pflocal/pflocal.c: Convert to dynamic classes and buckets.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* pfinet/main.c: Convert to dynamic classes and buckets.
* pfinet/options.c: Likewise.
* pfinet/pfinet.h: Likewise.
* pfinet/socket-ops.c: Likewise.
|
|
libtrivfs contains two ways of managing more than one port class and
bucket. There is the old way of using a statically allocated array
with explicit length, and the new way with dynamically allocated
vectors.
Converting all users to the new way of handling multiple classes
and/or buckets, we can simplify the code in libtrivfs. In many cases,
the code will be simpler and more expressive for the user.
This also fixes a mild bug. The classes and buckets given to
`trivfs_startup' end up in the dynamic vectors too, making the object
lookup code use the more complicated code path.
* exec/main.c: Convert to dynamic classes and buckets.
|
|
* libdiskfs/boot-start.c (start_execserver): fflush stdout when pausing.
|
|
* libdiskfs/boot-start.c (start_execserver): Improve error handling.
|
|
* exec/main.c: Include `argz.h'.
|
|
* libports/inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Remove unused
variable `bucket'.
* libports/inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Remove unused
variables `pi' and `rpc'.
|
|
* exec/elfcore.c (TIME_VALUE_TO_TIMESPEC) [TIME_VALUE_TO_TIMESPEC]: Do not
redefine macro.
|
|
Thanks Svante Signell for the investigation.
* pflocal/socket.c (S_socket_connect, S_socket_send): When addr_get_sock
returns EADDRNOTAVAIL, translate into ECONNREFUSED.
|