Age | Commit message (Collapse) | Author |
|
* init.c (process_rc_script): If malloc fails, return ENOMEM.
Reported by Igor Khavkine <i_khavki@alcor.concordia.ca>.
|
|
* init.c (launch_core_servers): Don't use MOVE_SEND in Hurd RPCs.
|
|
* 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.
|
|
* init.c (frob_kernel_process): Allocate the kernel's page in the
actual kernel task, not in our own. I wonder how this ever
worked. Also if we fail in that allocation, free the page we
allocated in our own space.
|
|
* init.c (notify_shutdown): Add const to argument type.
|
|
* init.c (frob_kernel_process): Use mmap instead of vm_allocate.
|
|
* init.c: Add #include <sys/mman.h> for munmap decl.
|
|
* init.c (reboot_system): Use munmap instead of vm_deallocate.
(frob_kernel_process): Likewise.
(kill_everyone): Likewise.
|
|
* init.c (open_console): Put this function inside [! SPLIT_INIT].
|
|
* init.c [SPLIT_INIT] (child_pid, child_task): New variables.
(process_signal, start_child, launch_something, launch_system): New
functions.
[! SPLIT_INIT] (system_state, shell_pid, rc_pid, launch_single_user,
process_rc_script, launch_multi_user, launch_system, kill_everyone,
kill_multi_user, process_signal): Variables and functions put inside
#ifndef SPLIT_INIT.
* stubs.c: New file, modified from ../proc/stubs.c.
* Makefile (SRCS): Remove ttys.c here.
[$(split-init) = yes] (SRCS): Add stubs.c
[$(split-init) = yes] (init-CPPFLAGS): New variable, -DSPLIT_INIT.
[$(split-init) = no] (SRCS): Add ttys.c only here.
[$(split-init) = no] (LDLIBS): Put defn (-lutil) under this test.
(split-init): New variable to turn on split-init, commented out.
|
|
* init.c (booted): New variable.
(open_console): Use that instead of system_state.
(S_startup_essential_task): Likewise.
(do_mach_notify_dead_name): Likewise.
(launch_system): New function.
(S_startup_essential_task): Call it.
* init.c (global_argv): Make static.
* init.c (startup_envz, startup_envz_len): New variables.
(run, run_for_real): Use those for child environment.
(main): Set them up from our ENVP argument.
1999-06-14 Roland McGrath <roland@baalperazim.frob.com>
* init.c (main): Barf if run in a normal Hurd environment (not boot).
* init.c (record_essential_task): Add missing return.
|
|
* init.c (kill_multi_user): Suggest `ps -AlM' in error message.
* init.c (record_essential_task): New function, broken out of
S_startup_essential_task.
(S_startup_essential_task): Call it.
(frob_kernel_process): Call it for kernel task port.
(kill_everyone): Remove special case for PID 2 (kernel task).
|
|
* init.c (run): Add const to SERVER arg, PROG local.
Don't trim directory name from PROG for argument.
|
|
Move all the /etc/ttys handling stuff into a separate source file.
* init.c (_PATH_LOGIN, WINDOW_DELAY, struct terminal,
nttys, ttyslen, setup_terminal, add_terminal,
init_ttys, free_ttys, startup_terminal, startup_ttys,
find_line, restart_terminal, shutdown_terminal, reread_ttys): Move to
* ttys.c: ... here, new file.
* ttys.h: New file, declare external functions in ttys.c.
* Makefile (SRCS): Add ttys.c.
(OBJS): Derive from $(SRCS).
(LCLHDRS): New variable, add ttys.h.
|
|
* init.c (request_dead_name): New function.
(S_startup_request_notification, S_startup_essential_task): Use it.
(run): Request dead-name notification for new task.
(main): Request dead-name notification for FSTASK.
(do_mach_notify_dead_name): If system_state is INITIAL, recognize
FSTASK, AUTHTASK, PROCTASK specifically and crash with appropriate msg.
1999-06-04 Roland McGrath <roland@baalperazim.frob.com>
* init.c (launch_core_servers): Use proc_child on the proc server task
to register it with itself as our child. Snarf its proc port and use
proc_mark_exec do remove that unsightly `f', as we do for the other
bootstrap processes.
|
|
* init.c (frob_kernel_process): If no --kernel-command-line option,
try `getenv ("MULTIBOOT_CMDLINE")' before defaulting to "(kernel)".
|
|
* init.c (CRASH_FLAGS): Macro removed.
(crash_flags): New variable replaces it.
(crash_mach, crash_system): Use crash_flags instead of CRASH_FLAGS.
(options, parse_opt): Add --crash-debug/-H, to set crash_flags to
RB_DEBUGGER.
|
|
* init.c (kernel_command_line): New variable.
(frob_kernel_process): New function.
(S_startup_essential_task): Call it after init_stdarrays.
(options): Add --kernel-command-line/-K option.
(parse_opt): Grok -K, set kernel_command_line.
|
|
* init.c (do_mach_notify_dead_name): Deallocate the extra
reference to NAME that the notification carries.
|
|
* init.c (shutdown_terminal): Revoke access to the terminal from
existing programs.
|
|
* init.c (main): Don't bogusly clear bootstrap_args.
Reported by OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>.
|
|
* init.c (setup_terminal): Free LINE after done using it.
(process_rc_script): Likewise free RCARGS.
Both reported by Katusya Tanaka (wyvern@pb3.so-net.ne.jp).
|
|
New function.
(bootstrap_args):
Initialize to 0.
(main):
Parse args using argp.
Include <argp.h>.
(options, doc):
New variables.
|
|
|
|
|
|
|
|
proc_setexecdata.
(open_console): Likewise, for file_set_translator.
|
|
for loop.
|
|
error; tolerate all errors silently.
|
|
|
|
Print an error messages for /dev/console not being a terminal.
Reduce the scope of some variables.
|
|
|
|
Pass correct length of argument vector when setting active translators.
<maptime.h>: New include.
|
|
|
|
|
|
|
|
(startup_terminal): Return non-zero if we don't actually start anything.
(startup_ttys): Return non-zero if we fail.
(launch_multi_user): If init_ttys fails, go back to single. If we go
multi, actually set system_state accordingly. If startup_ttys fails,
go back to single.
|
|
|
|
(startup_terminal): Deal properly if one of the run_for_real's fails.
(launch_single_user): If the shell can't be started, crash the system.
(process_rc_script): Return non-zero if run_for_real fails.
(process_signal) [SIGCHLD]: If process_rc_script fails, go back to
single-user.
(S_startup_essential_task): Likewise.
|
|
(add_terminal, init_ttys, free_ttys, startup_terminal, startup_ttys,
find_line, reread_ttys, restart_terminal): New functions.
(launch_multi_user): Use new functions to do things right.
(session_pid): Delete variable.
(kill_multi_user): Call free_ttys.
(process_signal) [SIGHUP]: Call reread_ttys.
[SIGCHLD/MULTI]: Call restart_terminal.
(run_for_real): New arg `setsid'; only do setsid if it's set. All
callers changed. Return the pid of the new program, not the task
port. All callers changed.
Include "mung_msg_S.h" instead of "msg_S.h".
(S_msg_sig_post, S_msg_sig_post_untraced): Include SIGCODE parm.
|
|
(S_msg_sig_post, S_msg_sig_post_untraced): Include SIGCODE parm.
|
|
(run_for_real, open_console, process_signal, reboot_mach,
run_for_real, run, reboot_system): Use error instead of fprintf.
(notify_shutdown): Always emit terminating newline.
(S_startup_essential_task): When all core servers have showed up, call
launch_single_user only if RB_SINGLE; otherwise call
process_rc_script. Call init_stdarrays here.
(open_console): New function; massaged guts taken from
launch_single_user. Be more verbose if we do something unusual.
(launch_single_user): Call open_console. Don't call init_stdarrays
here.
(system_state, default_ints): New variables.
(main): Initialize SYSTEM_STATE and DEFAULT_INTS.
(run_for_real): Pass default_ints.
(run): Likewise.
(S_startup_essential_task): Delete var INITDONE; use SYSTEM_STATE
instead.
(launch_single_user): Set SYSTEM_STATE to SINGLE.
(process_rc_script): New function.
(launch_multi_user): New function.
(kill_everyone): New function.
(kill_multi_user): New function.
(do_fastboot, rc_pid, session_pid): New variables.
(process_signal): New function; guts from S_msg_sig_post_untraced.
Handle state transitions here when programs exit. Process SIGTERM,
and SIGHUP appropriately.
(_PATH_RUNCOM, _PATH_LOGIN): New macros.
(S_msg_sig_post_untraced): Only validate signal here; use
process_signal to do the work, but reply first.
(S_msg_sig_post): Likewise.
(notify_shutdown): New function.
(reboot_system): Use notify_shutdown.
|
|
|
|
|
|
|
|
|
|
kernel so that the user has a chance to see any messages that may be
displayed.
|
|
|
|
S_msg_set_some_exec_flags, S_msg_clear_some_exec_flags): Delete
functions.
(S_msg_describe_ports): New function.
|
|
|