From 3e39c56f356ca32b9f490f739304dde32161816a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 24 Jul 2017 17:09:33 +0200 Subject: [PATCH] mescc: Tinycc support: unlink. * mlibc/include/unistd.h (unlink): Declare. * stage0/x86.M1 (SYS_unlink): New define. * mlibc/libc-mes+tcc.c (unlink): New function. --- mlibc/include/unistd.h | 1 + mlibc/libc-mes+tcc.c | 12 ++++++++++++ stage0/x86.M1 | 1 + 3 files changed, 14 insertions(+) diff --git a/mlibc/include/unistd.h b/mlibc/include/unistd.h index 37d21fc3..a6b3ae3f 100644 --- a/mlibc/include/unistd.h +++ b/mlibc/include/unistd.h @@ -43,6 +43,7 @@ int access (char const *s, int mode); int close (int fd); char *getcwd (char *buf, size_t size); int read (int fd, void* buf, size_t n); +int unlink (char const *file_name); int write (int fd, char const* s, int n); #endif // ! (__GNUC__ && POSIX) diff --git a/mlibc/libc-mes+tcc.c b/mlibc/libc-mes+tcc.c index 9032ca06..cb889a6f 100644 --- a/mlibc/libc-mes+tcc.c +++ b/mlibc/libc-mes+tcc.c @@ -43,6 +43,18 @@ getcwd (char *buf, size_t size) asm ("int____$0x80"); } +int +unlink (char const *file_name) +{ + asm ("mov____0x8(%ebp),%ebx !8"); + + asm ("mov____$i32,%eax SYS_unlink"); + asm ("int____$0x80"); +} + + + + int fprintf (FILE *stream, char const *format, ...) { diff --git a/stage0/x86.M1 b/stage0/x86.M1 index 6c12f866..5db4febb 100644 --- a/stage0/x86.M1 +++ b/stage0/x86.M1 @@ -163,6 +163,7 @@ DEFINE SYS_read 03000000 DEFINE SYS_write 04000000 DEFINE SYS_open 05000000 DEFINE SYS_close 06000000 +DEFINE SYS_unlink 0a000000 DEFINE SYS_access 21000000 DEFINE SYS_brk 2d000000 DEFINE SYS_fsync 76000000