Age | Commit message (Collapse) | Author |
|
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.
* mach-defpager/default_pager.c (default_pager_demux_object): Improve
the demuxer function.
|
|
Currently, mig_reply_setup is not provided by libmachuser or the
glibc. Provide it locally.
* mach-defpager/default_pager.c (mig_reply_setup): New function.
|
|
* mach-defpager/default_pager.c (seqnos_memory_object_data_unlock):
Fix function arguments.
|
|
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. The reply message has already been properly initialized in
libports, so there is no need to call mig_reply_setup.
* libpager/demuxer.c (pager_demuxer): Improve the demuxer function.
|
|
Passive translator records are a Hurd concept. Therefore, the umount
compatibility program should not remove them.
* utils/umount.c (passive_flags): Unset FS_TRANS_SET.
(doc): Adjust accordingly.
|
|
Fix case when $PWD contains spaces.
Pass directly arguments to command, to directly avoid escaping issues.
Based on suggestion by Ivan Shmakov <oneingray@gmail.com>
* utils/fakeroot.sh (TARGET): Do not define.
(sh): Rather pass PWD and commandline as parameters.
* utils/remap.sh: Likewise.
|
|
The name will be used in error messages printed by the kernel. This
makes attributing the errors to processes possible.
* exec/exec.c (do_exec): Set the name of the new task.
|
|
* pfinet/main.c (main): Call ports_manage_port_operations_multithread
with non-zero timeouts.
|
|
Most servers use ports_manage_port_operations_multithread to process
requests and terminate when it returns. Since many of them don't detach
before shutting down, a client may receive an error if its request
arrived while the server is shutting down. Prevent those spurious errors
by forcing ports_manage_port_operations_multithread not to return.
* libports/manage-multithread.c
(ports_manage_port_operations_multithread): Force global_timeout to 0.
|
|
libstore/do-bunzip2.c: fixed type modifier, avoiding cast
|
|
|
|
Note: dropped .zip support
configure.ac: added check for libz
ext2fs/Makefile: linked libz
fatfs/Makefile: linked libz
isofs/Makefile: linked libz
libstore/Makefile: linked libz
libstore/do-gunzip.c: new decompression function using libz calls.
libstore/gunzip.c: removed no longer needed code replaced by do_gunzip()
libstore/gzip.h: deleted, no longer needed
libstore/inflate.c: deleted: no longer needed
libstore/tailor.h: deleted: no longer needed
libstore/unzip.c: deleted: no longer needed
libstore/util.c: removed no longer needed code.
|
|
|
|
|
|
* libdiskfs/boot-start.c (diskfs_S_fsys_init): Fix typo.
|
|
This permits to choose between 720x400 or 640x400 textmode without
changing the font.
* console-client/vga-hw.h (VGA_ATTR_MODE_ADDR, VGA_ATTR_MODE_LGE,
VGA_ATTR_ENABLE_ADDR): New macros.
* console-client/vga-support.c (vga_state): Add `attr_mode' field.
(vga_init): Save attribute mode subregister content. Re-enable the
screen after that.
(vga_fini): Restore attribute mode subregister content. Re-enable the
screen after that.
(vga_set_font_width): When the font width is set to 9, enable VGA LGE to
properly handle box-drawing unicode characters. Re-nable the screen
after that.
(vga_exchange_palette_attributes): Use VGA_ATTR_ENABLE_ADDR macro
instead of harcoded 0x20.
* console-client/vga-dynafont.h (dynafont_new): Add `width' parameter.
* console-client/vga-dynafont.c (dynafont): Add `width' field.
(dynafont_new): Add `width' parameter, stored in `width' field of `df',
but using the font bbox as default value. Use it to decide whether to
use VGA LGE or not.
(dynafont_activate): Use `width' field of `df' instead of the font bbox
to configure the VGA glyph width.
* console-client/vga.c (vga_display_font_width): New variable.
(vga_display): New `df_width' field.
(argp_option): New `font-width' option.
(parse_opt): Handle `font-width' option.
(vga_display_init): Copy `vga_display_font_width' to `disp'.
(vga_display_start): Pass `df_width' to `dynafont_new'.
|
|
|
|
|
|
* fatfs/Makefile (OTHERLIBS): Add bz2.
|
|
* isofs/Makefile (OTHERLIBS): Add bz2.
|
|
|
|
configure.ac: added check for libbz2
libstore/Makefile: linked libbz2
ext2fs/Makefile: linked libbz2
do-bunzip2.c: rewritten do_bunzip2 using libbz2 calls. Removed no longer needed functions.
|
|
When a client finds a node from the hash table, it could happen that
another thread is still holding one reference on it before the current
thread has acquired its own. Simply checking for a non zero refcount isn't
enough, the new client must atomically acquire its own reference.
* trans/fakeroot.c (netfs_S_dir_lookup): Find and acquire node reference
while holding netfs_node_refcnt_lock.
|
|
* trans/fakeroot.c (netfs_S_dir_lookup): Fix node dereference.
|
|
Instead of the FAKE_REFERENCE flag, rework node caching so that nodes are
retained only if their attributes are actually changed. In addition, don't
remove unreferenced nodes from the hash table at protid release, since
their reference counter is unstable. Do it on node destruction, once the
reference counter has reached 0. This means lookups can return nodes not
referenced (other than by the hash table), a condition for which a check
is added. By never acquiring a reference on such nodes, their counter is
guaranteed to remain stable once unreferenced.
* trans/fakeroot.c (FAKE_REFERENCE): Remove macro.
(FAKE_DEFAULT): New macro.
(set_default_attributes): New function.
(set_faked_attribute): Likewise.
(netfs_node_norefs): Remove node from hash table, properly taking care
of all the locks involved.
(fakeroot_netfs_release_protid): Remove node handling code, merely call
netfs_release_protid.
(netfs_S_dir_lookup): Handle unreferenced nodes, call set_default_attributes
on node creation, remove call to netfs_attempt_chown.
(netfs_attempt_chown): Call set_faked_attribute instead of accessing faked
flags directly.
(netfs_attempt_chauthor): Likewise.
(netfs_attempt_chmod): Likewise.
(main): Likewise.
|
|
Unconditionally relay chmod requests instead of filtering those that
don't change the executable bit.
* trans/fakeroot.c (netfs_attempt_chmod): Unconditionally call file_chmod
with an unaltered mode.
|
|
This reverts commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4.
That change is apparently not needed and introduced a deadlock.
* trans/fakeroot.c (netfs_attempt_mkfile): Unlock directory node before
creating new node.
|
|
* trans/fakeroot.c (netfs_S_dir_lookup): Deallocate rights to intermediate
file systems.
|
|
* daemons/getty.c (load_banner): Drop first newline from default banner.
(print_banner): Print a newline.
|
|
* exec/main.c (S_exec_init): Get the device master port and connect
std{in,out,err} to the mach console.
|
|
Previously, a banner was hardcoded in Hurds getty. Load /etc/issue
instead. Fall back to a hardcoded version if that fails. Expand
common \char sequences. If no /etc/issue is provided, the old
behavior is retained.
* daemons/getty.c (load_banner): New function.
(print_banner): Expand \char sequences.
|
|
* pfinet/options.c (add_dev_opts): Use a for loop over `idev->addr_list'
instead of a while loop which assumes that it is not empty.
|
|
* pfinet/ethernet.c (ethernet_close): Call mach_port_deallocate on
device port.
|
|
* pfinet/ethernet.c (ethernet_xmit): Also call ethernet_close then
ethernet_open on EMIG_SERVER_DIED error.
|
|
|
|
* pfinet/ethernet.c (ethernet_close): New function.
(ethernet_xmit): On EMACH_SEND_INVALID_DEST error, call ethernet_close
and ethernet_open again to re-open ethernet device.
|
|
* libnetfs/release-peropen.c (netfs_release_peropen): Release the lock on
the underlying node if the peropen status indicates it's not unlocked.
|
|
* proc/mgt.c (S_proc_exception_raise): Update accordingly.
* proc/mig-decls.h: New file.
* proc/proc_exc.defs: Add translation functions.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* utils/fakeauth.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* auth/auth.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* pflocal/demuxer.c: Include the mig-generated server headers.
* pflocal/sserver.c: Likewise.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* pfinet/main.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* proc/main.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* exec/main.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* libtrivfs/demuxer.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* libnetfs/demuxer.c: Include the mig-generated server headers.
|
|
GNU MIG recently gained support for emitting x_server_routine
declarations in the generated server header file. Using this
declaration, the x_server_routine functions can be inlined into the
demuxer function.
* libdiskfs/demuxer.c: Include the mig-generated server headers.
|
|
Use translation functions instead of doing the lookup manually.
* trans/Makefile (password-MIGSFLAGS): Add mutators.
* trans/password.c (S_password_check_user): Update accordingly.
(S_password_check_group): Likewise.
|
|
The canonical name for variables of the type error_t is err. There
are, however, places where the variable is called error instead. This
is unfortunate, as this shadows the error function. Rename such
variables to err.
For reference, this is accomplished using the following semantic
patch:
@@
expression E;
@@
-error_t error = E;
+error_t err = E;
<...
-error
+err
...>
@@
@@
-error_t error;
+error_t err;
<...
-error
+err
...>
* libdiskfs/dir-link.c: Rename error to err.
* libdiskfs/dir-unlink.c: Likewise.
* libdiskfs/file-get-trans.c: Likewise.
* libdiskfs/file-get-transcntl.c: Likewise.
* libdiskfs/file-set-trans.c: Likewise.
* libdiskfs/fsys-getroot.c: Likewise.
* libshouldbeinlibc/wire.c: Likewise.
|
|
Introduce PSTAT_TIMES to force the retrieval of both PSTAT_TASK_BASIC
and PSTAT_THREAD_BASIC. Task basic info contain the user and system
times of terminated threads which the code wrongly assumes is always
present along with process info.
* libps/procstat.c (add_preconditions): Set both PSTAT_TASK_BASIC and
PSTAT_THREAD_BASIC as preconditions for PSTAT_TIMES.
(summarize_thread_basic_info): Add terminated threads times only if
task basic info are available.
(set_procinfo_flags): Provide summarize_thread_basic_info with flags of
available info.
(proc_stat_set_flags): Set PSTAT_TIMES as available if it was needed and
any of PSTAT_TASK_BASIC or PSTAT_THREAD_BASIC could be fetched.
* libps/ps.h (PSTAT_TIMES): New macro.
* libps/spec.c (ps_get_usr_time): Indicate the getter needs PSTAT_TIMES
instead of PSTAT_THREAD_BASIC.
(ps_sys_time_getter): Likewise.
(ps_tot_time_getter): Likewise.
|