| #if defined(__cplusplus) |
| extern "C" { |
| #endif |
| |
| extern int open_real(const char* name, int flags, ...) __asm__("open"); |
| |
| #define O_CREAT 00000100 |
| |
| typedef unsigned int mode_t; |
| |
| static inline __attribute__((always_inline)) |
| int open(const char* name, int flags) |
| __attribute__((annotate("versioner_fortify_inline"))) |
| __attribute__((overloadable)) |
| __attribute__((enable_if(!(flags & O_CREAT), ""))) { |
| return open_real(name, flags); |
| } |
| |
| static inline __attribute__((always_inline)) |
| int open(const char* name, int flags, mode_t mode) |
| __attribute__((annotate("versioner_fortify_inline"))) |
| __attribute__((overloadable)) |
| __attribute__((enable_if(flags & O_CREAT, ""))) { |
| return open_real(name, flags, mode); |
| } |
| |
| #if defined(__cplusplus) |
| } |
| #endif |