diff options
author | Anton Kling <anton@kling.gg> | 2023-10-22 19:50:38 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-10-22 19:50:38 +0200 |
commit | 4e09bca9e34c226b6d7e34b4fa11248405fd988e (patch) | |
tree | 80f156b7940d9d19971395f335530170c69516c7 /userland/init |
Move everything into a new repo.
Diffstat (limited to 'userland/init')
-rw-r--r-- | userland/init/Makefile | 10 | ||||
-rw-r--r-- | userland/init/crt0_old.c | 12 | ||||
-rwxr-xr-x | userland/init/init | bin | 0 -> 31476 bytes | |||
-rw-r--r-- | userland/init/init.c | 15 |
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 Binary files differnew file mode 100755 index 0000000..3ae9020 --- /dev/null +++ b/userland/init/init 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; +} |