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