From d0cf1dd7dd91e5a54ff0a31d31ee7a7734874a0a Mon Sep 17 00:00:00 2001 From: root <alexandru.bologan> Date: Thu, 26 Oct 2023 21:42:54 +0300 Subject: [PATCH] src.zip --- Makefile | 42 ++++++++++++++++++++++++++++++++++++++++++ errno.c | 5 +++++ src.zip | Bin 24635 -> 26850 bytes syscall.c | 21 +++++++++++++++++++++ tests/test_string.c | 3 +-- 5 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 Makefile create mode 100644 errno.c create mode 100644 syscall.c mode change 100644 => 100755 tests/test_string.c diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3c1a5ac --- /dev/null +++ b/Makefile @@ -0,0 +1,42 @@ +NASM = nasm +CPPFLAGS = -nostdinc -Iinclude +CFLAGS = -Wall -Wextra -fno-PIC -fno-stack-protector -fno-builtin +# Remove the line below to disable debugging support. +CFLAGS += -g -O0 + +.PHONY: all clean pack + +SRCS = syscall.c \ + process/exit.c \ + mm/malloc.c mm/mmap.c mm/mem_list.c \ + string/string.c \ + stat/fstatat.c stat/fstat.c stat/stat.c \ + io/open.c io/close.c io/read_write.c \ + io/lseek.c io/truncate.c io/ftruncate.c \ + errno.c \ + crt/__libc_start_main.c \ + io/puts.c \ + process/nanosleep.c \ + process/sleep.c \ + +# TODO: Add sleep.c and puts.c dependency. + +OBJS = $(patsubst %.c,%.o,$(SRCS)) + +all: libc.a + +libc.a: $(OBJS) crt/start.o + $(AR) -rc $@ $^ + +$(OBJS): %.o:%.c + +crt/start.o: crt/start.asm + $(NASM) -f elf64 -o $@ $< + +pack: clean + zip -r ../src.zip * + +clean: + -rm -f *~ + -rm -f $(OBJS) crt/start.o + -rm -f libc.a diff --git a/errno.c b/errno.c new file mode 100644 index 0000000..01a7d85 --- /dev/null +++ b/errno.c @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: BSD-3-Clause + +#include <errno.h> + +int errno; diff --git a/src.zip b/src.zip index 3ea3cf69720df006513da40c5cedb6857e9ad181..e9e7228bf0a86eb101fb736a3174d679a03d1c41 100644 GIT binary patch delta 8467 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 CLzIXB delta 6280 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 V1;;y3qZ+6KB@P0Z9vX;q^nd7pGra%+ diff --git a/syscall.c b/syscall.c new file mode 100644 index 0000000..23ab562 --- /dev/null +++ b/syscall.c @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: BSD-3-Clause + +#include <internal/arch/x86_64/syscall_arch.h> +#include <stdarg.h> + +long syscall(long num, ...) +{ + va_list valist; + long a, b, c, d, e, f; + + va_start(valist, num); + a = va_arg(valist, long); + b = va_arg(valist, long); + c = va_arg(valist, long); + d = va_arg(valist, long); + e = va_arg(valist, long); + f = va_arg(valist, long); + va_end(valist); + + return __syscall(num, a, b, c, d, e, f); +} diff --git a/tests/test_string.c b/tests/test_string.c old mode 100644 new mode 100755 index d0ea040..12d052c --- a/tests/test_string.c +++ b/tests/test_string.c @@ -2,8 +2,8 @@ #include <string.h> -#include "./graded_test.h" +#include "./graded_test.h" static int test_strcpy(void) { char src[] = "sticksandstones"; @@ -59,7 +59,6 @@ static int test_strncpy_cut(void) dst[10] = 'Z'; strncpy(dst, src, 10); len = strlen(dst); - return len == 11; } -- GitLab