summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-06-24 02:43:13 -0400
committerIan Moffett <ian@osmora.org>2025-06-24 02:43:13 -0400
commit8ce4282e92455e9da19c9fc1f7d6bc313567717f (patch)
tree29bcf2d4d66010201a1dc795cf4eaeea9e92180f
parent5d96b8559c0f506fe730afdd21c716787b4a1d1e (diff)
usr: Add init.rc for userspace startup flexibility
Signed-off-by: Ian Moffett <ian@osmora.org>
-rwxr-xr-xhyra-build.sh3
-rw-r--r--rc/init.rc1
-rw-r--r--sys/kern/init_main.c4
3 files changed, 7 insertions, 1 deletions
diff --git a/hyra-build.sh b/hyra-build.sh
index caa6e45..28ceb10 100755
--- a/hyra-build.sh
+++ b/hyra-build.sh
@@ -44,6 +44,9 @@ sysroot_skel() {
mkdir -p base/usr/bin/
mkdir -p base/boot/
mkdir -p base/usr/include/sys/
+ mkdir -p base/usr/rc
+
+ cp -r rc/* base/usr/rc
cp -f sys/include/sys/*.h base/usr/include/sys
# Populate ESP
diff --git a/rc/init.rc b/rc/init.rc
new file mode 100644
index 0000000..88b5a2d
--- /dev/null
+++ b/rc/init.rc
@@ -0,0 +1 @@
+osh
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index cd05af7..43142ec 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -46,8 +46,10 @@
#if defined(_INSTALL_MEDIA)
#define _START_PATH "/usr/sbin/install"
+#define _START_ARG NULL
#else
#define _START_PATH "/usr/bin/osh"
+#define _START_ARG "/usr/rc/init.rc"
#endif /* _INSTALL_MEDIA */
struct proc g_proc0;
@@ -64,7 +66,7 @@ start_init(void)
{
struct proc *td = this_td();
struct execve_args execve_args;
- char *argv[] = { _START_PATH, NULL };
+ char *argv[] = { _START_PATH, _START_ARG, NULL };
char *envp[] = { NULL };
execve_args.pathname = argv[0];