summaryrefslogtreecommitdiff
path: root/userland/init
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-10-22 19:50:38 +0200
committerAnton Kling <anton@kling.gg>2023-10-22 19:50:38 +0200
commit4e09bca9e34c226b6d7e34b4fa11248405fd988e (patch)
tree80f156b7940d9d19971395f335530170c69516c7 /userland/init
Move everything into a new repo.
Diffstat (limited to 'userland/init')
-rw-r--r--userland/init/Makefile10
-rw-r--r--userland/init/crt0_old.c12
-rwxr-xr-xuserland/init/initbin0 -> 31476 bytes
-rw-r--r--userland/init/init.c15
4 files changed, 37 insertions, 0 deletions
diff --git a/userland/init/Makefile b/userland/init/Makefile
new file mode 100644
index 0000000..932fcd3
--- /dev/null
+++ b/userland/init/Makefile
@@ -0,0 +1,10 @@
+CC="/home/anton/opt/cross/bin/i686-elf-gcc"
+CFLAGS = -ggdb -ffreestanding -O0 -Wall -Wextra -pedantic -mgeneral-regs-only -Wimplicit-fallthrough
+BINS=init
+all: $(BINS)
+
+init.o: init.c
+ $(CC) $(CFLAGS) -I../libc/ -L../libc/ -lc -c init.c
+
+init: init.o
+ $(CC) -shared -o init -ffreestanding -nostdlib $(CFLAGS) init.o -L../libc/ -lc -lgcc #-L../libc/c.a
diff --git a/userland/init/crt0_old.c b/userland/init/crt0_old.c
new file mode 100644
index 0000000..7d1e977
--- /dev/null
+++ b/userland/init/crt0_old.c
@@ -0,0 +1,12 @@
+#include <stdint.h>
+int main(int argc, char **argv);
+//int main();
+
+void _start(int a, int b, int argc, char** argv)
+{
+ (void)a;
+ kprintf("argc : %x\n", &argc);
+ kprintf("argv : %x\n", &argv);
+ for(;;);
+// main(argc, t);
+}
diff --git a/userland/init/init b/userland/init/init
new file mode 100755
index 0000000..3ae9020
--- /dev/null
+++ b/userland/init/init
Binary files differ
diff --git a/userland/init/init.c b/userland/init/init.c
new file mode 100644
index 0000000..78c4420
--- /dev/null
+++ b/userland/init/init.c
@@ -0,0 +1,15 @@
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int main(void) {
+ if (fork())
+ for (;;)
+ wait(NULL);
+
+ char *a[] = {NULL};
+ execv("/term", a);
+ return 1;
+}