27 lines
441 B
C
27 lines
441 B
C
|
/*
|
||
|
* linux/lib/open.c
|
||
|
*
|
||
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||
|
*/
|
||
|
|
||
|
#define __LIBRARY__
|
||
|
#include <linux/unistd.h>
|
||
|
#include <stdarg.h>
|
||
|
|
||
|
int open(const char * filename, int flag, ...)
|
||
|
{
|
||
|
register int res;
|
||
|
va_list arg;
|
||
|
|
||
|
va_start(arg,flag);
|
||
|
__asm__("movl %2,%%ebx\n\t"
|
||
|
"int $0x80"
|
||
|
:"=a" (res)
|
||
|
:"0" (__NR_open),"g" ((long)(filename)),"c" (flag),
|
||
|
"d" (va_arg(arg,int)));
|
||
|
if (res>=0)
|
||
|
return res;
|
||
|
errno = -res;
|
||
|
return -1;
|
||
|
}
|