ref: 0f831d24c57a8770c1c45275d689b1703b52be1b
parent: 4ba62b6b2635f3acbd88a4ebd029ce83cac2aec7
author: Ori Bernstein <[email protected]>
date: Thu Aug 2 10:57:10 EDT 2012
'syscall', not 'sysenter'. Use the right instruciton.
--- a/sys-linux.myr
+++ b/sys-linux.myr
@@ -368,23 +368,23 @@
const Sysprocess_vm_readv : scno = 310
const Sysprocess_vm_writev : scno = 311
- extern const syscall : (sc:scno, args:... -> int)
+ extern const syscall : (sc:scno, args:... -> int64)
- const exit : (status:int -> int)
- const getpid : ( -> int)
- const kill : (pid:int, sig:int -> int)
- const open : (path:byte[,], opts:fdopt, mode:int -> int)
- const close : (fd:int -> int)
- const creat : (path:byte[,], mode:int -> int)
- const read : (fd:int, buf:byte[,] -> int)
- const write : (fd:int, buf:byte[,] -> int)
- const lseek : (fd:int, off:uint, whence:int -> int)
- const fstat : (fd:int, sb:statbuf* -> int)
- const munmap : (addr:byte*, len:size -> int)
- const mmap : (addr:byte*, len:size, prot:mprot, flags:mopt, fd:int, off:off -> byte*)
+ const exit : (status:int64 -> void)
+ const getpid : ( -> int64)
+ const kill : (pid:int64, sig:int64 -> int64)
+ const open : (path:byte[,], opts:fdopt, mode:int64 -> int64)
+ const close : (fd:int64 -> int64)
+ const creat : (path:byte[,], mode:int64 -> int64)
+ const read : (fd:int64, buf:byte[,] -> int64)
+ const write : (fd:int64, buf:byte[,] -> int64)
+ const lseek : (fd:int64, off:uint64, whence:int64 -> int64)
+ const fstat : (fd:int64, sb:statbuf* -> int64)
+ const munmap : (addr:byte*, len:size -> int64)
+ const mmap : (addr:byte*, len:size, prot:mprot, flags:mopt, fd:int64, off:off -> byte*)
;;
-const exit = {status; -> syscall(Sysexit, 1);}
+const exit = {status; syscall(Sysexit, 1);}
const getpid = {; -> syscall(Sysgetpid, 1);}
const kill = {pid, sig; -> syscall(Syskill, pid, sig);}
const open = {path, opts, mode; -> syscall(Sysopen, path castto(char*), opts);}
--- a/syscall-linux.s
+++ b/syscall-linux.s
@@ -16,7 +16,7 @@
movq 56(%rsp),%r8
movq 64(%rsp),%r9
- sysenter
+ syscall
popq %rbp
ret