home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / KERNEL-S / V1.0 / LINUX-1.0 / LINUX-1 / linux / lib / open.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-01  |  441 b   |  27 lines

  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. }
  27.