1 /* 2 * linux/lib/open.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 */ 6 7 #define __LIBRARY__ 8 #include <linux/unistd.h> 9 #include <stdarg.h> 10 11 int open(const char * filename, int flag, ...) /* */ 12 { 13 register int res; 14 va_list arg; 15 16 va_start(arg,flag); 17 __asm__("movl %2,%%ebx\n\t" 18 "int $0x80" 19 :"=a" (res) 20 :"0" (__NR_open),"g" ((long)(filename)),"c" (flag), 21 "d" (va_arg(arg,int))); 22 if (res>=0) 23 return res; 24 errno = -res; 25 return -1; 26 }