mescc: Add fsync.
* module/mes/libc-i386.mes (i386:fsync): New function. (i386:libc): Export it. * mlibc.c (fsync): New function.
This commit is contained in:
parent
b41e35cf6f
commit
8460c4ab52
18
mlibc.c
18
mlibc.c
|
@ -114,6 +114,24 @@ write (int fd, char const* s, int n)
|
|||
);
|
||||
}
|
||||
|
||||
int
|
||||
fsync (int fd)
|
||||
{
|
||||
int r;
|
||||
//syscall (SYS_fsync, fd));
|
||||
asm (
|
||||
"mov %1,%%ebx\n\t"
|
||||
|
||||
"mov $0x76, %%eax\n\t"
|
||||
"int $0x80\n\t"
|
||||
"mov %%eax,%0\n\t"
|
||||
: "=r" (r)
|
||||
: "" (fd)
|
||||
: "eax", "ebx"
|
||||
);
|
||||
return r;
|
||||
}
|
||||
|
||||
void *
|
||||
brk (void *p)
|
||||
{
|
||||
|
|
|
@ -92,6 +92,18 @@
|
|||
#xc3 ; ret
|
||||
))
|
||||
|
||||
(define (i386:fsync f g ta t d)
|
||||
'(
|
||||
#x55 ; push %ebp
|
||||
#x89 #xe5 ; mov %esp,%ebp
|
||||
|
||||
#x8b #x5d #x08 ; mov 0x8(%ebp),%ebx
|
||||
#xb8 #x76 #x00 #x00 #x00 ; mov $0x76,%eax
|
||||
#xcd #x80 ; int $0x80
|
||||
|
||||
#xc9 ; leave
|
||||
#xc3 ; ret
|
||||
))
|
||||
|
||||
(define (i386:_start)
|
||||
(string-append ".byte"
|
||||
|
@ -110,4 +122,5 @@
|
|||
(cons "open" (list i386:open))
|
||||
(cons "read" (list i386:read))
|
||||
(cons "write" (list i386:write))
|
||||
(cons "fsync" (list i386:fsync))
|
||||
(cons "brk" (list i386:brk))))
|
||||
|
|
Loading…
Reference in a new issue