Age | Commit message (Collapse) | Author |
|
* dir-lookup.c (netfs_S_dir_lookup): Use ports_get_send_right.
Deallocate DIRPORT after fshelp_fetch_root.
|
|
* io-reauthenticate.c (trivfs_S_io_reauthenticate): Use
ports_get_send_right.
|
|
* io-reauthenticate.c (diskfs_S_io_reauthenticate): Use
ports_get_send_right.
|
|
* boot-start.c (diskfs_start_bootstrap): Use ports_get_send_right.
(diskfs_execboot_fsys_startup): Use ports_get_send_right.
(diskfs_S_fsys_init): Use ports_get_send_right.
(start_execserver): Use ports_get_send_right.
|
|
* get-send-right.c: New file.
* ports.h: Declare ports_get_send_right.
* Makefile (SRCS): Add get-send-right.c.
|
|
|
|
* get-right.c (gdb_loses): Remove global variable.
(ports_get_right): Use a local instead.
|
|
|
|
* start-translator-long.c (service_fsys_startup): If mach_msg fails
with MACH_SEND_INTERRUPTED, clean up the send right in the
pseudo-received request message.
|
|
|
|
* mgt.c (S_proc_exception_raise): Check for
MACH_SEND_NOTIFY_IN_PROGRESS rather than MACH_SEND_INVALID_NOTIFY.
Don't deallocate THREAD and TASK ports before the switch, since the
successful case uses THREAD again and the failure case uses TASK
again. Instead, deallocate them at the end of the successful case.
At the end of the error case, use mach_port_destroy on THREAD only.
|
|
|
|
* stubs.c (send_signal): Don't use mach_msg_destroy, since it wants
the local/remote ports reversed. Destroy the rights by hand instead.
|
|
|
|
* stubs.c (send_signal): Make MESSAGE auto instead of static.
Take new argument TIMEOUT, passed to mach_msg instead of zero.
(send_signal): For MACH_SEND_TIMED_OUT failure, destroy the
pseudo-received message to avoid leaking send rights.
* init.c (process_signal): Pass new argument, timeout of 500 ms.
|
|
* stubs.c (struct msg_sig_post_request): New type, broken out of
send_signal, where it was anonymous.
(struct msg_spec): Type removed.
(blocking_message_send): Change type to any_t -> any_t.
Don't call cthread_wire; it's a no-op in GNU anyway.
Just return instead of calling cthread_exit.
Argument is now a pointer to struct msg_sig_post_request.
Check mach_msg return value for sanity assert.
(send_signal): Make MESSAGE auto instead of static, use new type name.
This problem tracked down by Mark Kettenis <kettenis@gnu.org>.
|
|
|
|
* exec.c [! EXECDATA_STREAM] (prepare_stream): Replace no-op with real
function to initialize map_* members to zero.
|
|
* priv.h (EXECDATA_STREAM): Define this only #ifdef BFD.
The non-BFD exec server is now completely independent of stdio magic;
it uses only those interfaces documented in the C library manual,
which are provided both by old GNU stdio and by GNU libio.
Resurrecting the BFD exec server will require using magic again,
for which libio-specific magic needs to be written.
|
|
|
|
* priv.h (EXECDATA_STREAM): New macro, always defined for now.
(struct execdata) [! EXECDATA_STREAM]: Add members
map_buffer, map_bsize, map_fsize, map_filepos in place of stream.
(map_buffer, map_filepos, map_set_fsize): New macros for accessing
those or stream.
[! EXECDATA_STREAM] (map_fsize, map_vsize): Define using new members.
* exec.c (map): Rewritten purely using those accessor macros.
(input_room): Set the __target, __bufp, __error, and __eof members,
which are no longer set by map.
[! EXECDATA_STREAM] (prepare_stream, prepare_in_memory): Make no-ops.
(input_room, close_exec_stream, fake_seek, prepare_stream,
prepare_in_memory): Conditionalize these defns on [EXECDATA_STREAM].
(load_section): Always use map instead of stdio.
Replace bcopy with memcpy.
(check_gzip: zipread): Rewrite using map instead of stdio.
(check_bzip2: zipread): Likewise.
|
|
|
|
* hashexec.c (check_hashbang): Fix up multiple fencepost brainos.
|
|
|
|
* hashexec.c (check_hashbang): Fix fencepost error in last change.
|
|
|
|
* exec.c (map): Made global.
* priv.h: Declare it.
(map_fsize, map_vsize): New macros for accessing state set up by map.
* hashexec.c (check_hashbang): Use map and copying operations rather
than stdio to extract the first line from the file. Move finish call
to immediately after reading the line.
|
|
* exec.c (map): Made global.
* priv.h: Declare it.
(map_fsize, map_vsize): New macros for accessing state set up by map.
* hashexec.c (check_hashbang): Use map and copying operations rather
than stdio to extract the first line from the file. Move finish call
to immediately after reading the line.
* exec.c (map): If E->file_data is set, diagnose EOF before going to
direct io_read.
(prepare_in_memory): New function, broken out of check_gzip before
last change.
(check_gzip, check_bzip2): Use it.
|
|
|
|
* exec.c (prepare_stream): New function, broken out of prepare.
(prepare): Call it.
[_STDIO_USES_IOSTREAM]: Do #error if this is defined.
(map, input_room, close_exec_stream, fake_seek, prepare_stream):
Conditionalize all these definitions on [! _STDIO_USES_IOSTREAM].
Only map and prepare_stream are called from elsewhere in the code.
(check_gzip): Don't reinitialize E->stream, since it will in fact not
be used again.
(check_bzip2): Likewise.
|
|
|
|
* mgt.c (allocate_proc): Don't do mach_port_request_notification here.
(proc_death_notify): New function, do it here instead.
(complete_proc): Call proc_death_notify.
* main.c (main): Call proc_death_notify on STARTUP_PROC after
we have set its task port.
* proc.h: Declare proc_death_notify.
|
|
|
|
* balloc.c (ext2_free_blocks, ext2_new_block): Fix formats to avoid
-Wformat warnings.
* getblk.c (ext2_alloc_block, inode_getblk, ext2_getblk): Likewise.
* ialloc.c (ext2_count_free_inodes): Likewise.
* truncate.c (trunc_direct): Likewise.
* pager.c (pending_blocks_write, diskfs_grow): Likewise.
|
|
|
|
* hostarch.c (elf_machine_matches_host): Don't recognize EM_486,
since newer <elf.h>'s don't define it any more.
|
|
|
|
|
|
|
|
* i386/csw.S: #undef __ELF__ before defining it, since
it is usually predefined.
|
|
* boot.c (ds_device_get_status): Accept *STATUSLEN greater than needed.
|
|
|
|
* dir.c (diskfs_get_directs): Don't allocate buffer for *DATA until
after scanning for ENTRY and possibly returning EOF.
|
|
|
|
* file-exec.c (diskfs_S_file_exec): Give the new peropen for the exec
server O_EXEC permission as well as O_READ.
|
|
* hashexec.c (check_hashbang: user_fd): Add a user ref to DTABLE[FD]
send right, because caller (hurd_file_name_lookup internals) will
consume one.
* hashexec.c (check_hashbang): When dealloc'ing DTABLE ports,
optimize out syscall for null ports.
|
|
|
|
* main.c (main): Call configure_device on loopback_dev.
* linux-src/net/ipv4/devinet.c (configure_device): Call
dev_change_flags with IFF_UP flag.
|
|
|
|
* context.c (ps_context_find_tty_by_cttyid): Use the ttys_by_cttyid
hash table, not the ttys hash table.
|