• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ===-- fcntl.h - stub SDK header for compiler-rt --------------------------===
2  *
3  *                     The LLVM Compiler Infrastructure
4  *
5  * This file is dual licensed under the MIT and the University of Illinois Open
6  * Source Licenses. See LICENSE.TXT for details.
7  *
8  * ===-----------------------------------------------------------------------===
9  *
10  * This is a stub SDK header file. This file is not part of the interface of
11  * this library nor an official version of the appropriate SDK header. It is
12  * intended only to stub the features of this header required by compiler-rt.
13  *
14  * ===-----------------------------------------------------------------------===
15  */
16 
17 #ifndef _SYS_FCNTL_H_
18 #define _SYS_FCNTL_H_
19 
20 /* Determine the appropriate open function. */
21 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
22 #  if defined(__i386)
23 #    define __OPEN_NAME  "_open$UNIX2003"
24 #  elif defined(__x86_64__)
25 #    define __OPEN_NAME  "_open"
26 #  elif defined(__arm)
27 #    define __OPEN_NAME  "_open"
28 #  else
29 #    error "unrecognized architecture for targeting OS X"
30 #  endif
31 #elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
32 #  if defined(__i386) || defined (__x86_64)
33 #    define __OPEN_NAME  "_open"
34 #  elif defined(__arm)
35 #    define __OPEN_NAME  "_open"
36 #  else
37 #    error "unrecognized architecture for targeting iOS"
38 #  endif
39 #else
40 #  error "unrecognized architecture for targeting Darwin"
41 #endif
42 
43 #define O_RDONLY   0x0000    /* open for reading only */
44 #define O_WRONLY   0x0001    /* open for writing only */
45 #define O_RDWR     0x0002    /* open for reading and writing */
46 #define O_ACCMODE  0x0003    /* mask for above modes */
47 
48 #define O_CREAT    0x0200    /* create if nonexistent */
49 
50 int open(const char *, int, ...) __asm(__OPEN_NAME);
51 
52 #endif /* !_SYS_FCNTL_H_ */
53