#include #include #include #include int __open(const char * filename, int flag, ...) { register int res asm ("d0") = SYS_open; va_list arg; va_start(arg,flag); __asm__("movel %2,d1\n\t" "movel %3,d2\n\t" "movel %4,d3\n\t" "trap #0\n\t" :"=g" (res) :"0" (SYS_open),"g" (filename),"g" (flag), "d" (va_arg(arg,int)) : "d0", "d1", "d2", "d3"); if (res>=0) return res; errno = -res; va_end(arg); return -1; }