Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: // Specific definitions for Darwin -*- C++ -*- 2: 3: // Copyright (C) 2004 Free Software Foundation, Inc. 4: // 5: // This file is part of the GNU ISO C++ Library. This library is free 6: // software; you can redistribute it and/or modify it under the 7: // terms of the GNU General Public License as published by the 8: // Free Software Foundation; either version 2, or (at your option) 9: // any later version. 10: 11: // This library is distributed in the hope that it will be useful, 12: // but WITHOUT ANY WARRANTY; without even the implied warranty of 13: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14: // GNU General Public License for more details. 15: 16: // You should have received a copy of the GNU General Public License along 17: // with this library; see the file COPYING. If not, write to the Free 18: // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 19: // USA. 20: 21: // As a special exception, you may use this file as part of a free software 22: // library without restriction. Specifically, if other files instantiate 23: // templates or use macros or inline functions from this file, or you compile 24: // this file and link it with other files to produce an executable, this 25: // file does not by itself cause the resulting executable to be covered by 26: // the GNU General Public License. This exception does not however 27: // invalidate any other reasons why the executable file might be covered by 28: // the GNU General Public License. 29: 30: 31: #ifndef _GLIBCXX_OS_DEFINES 32: #define _GLIBCXX_OS_DEFINES 1 33: 34: // System-specific #define, typedefs, corrections, etc, go here. This 35: // file will come before all others. 36: 37: /* Darwin has the pthread routines in libSystem, which every program 38: links to, so there's no need for weak-ness for that. */ 39: #define _GLIBCXX_GTHREAD_USE_WEAK 0 40: 41: // On Darwin, in order to enable overriding of operator new and delete, 42: // GCC makes the definition of these functions weak, relies on the 43: // loader to implement weak semantics properly, and uses 44: // -flat_namespace to work around the way that it doesn't. 45: #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak)) 46: 47: #ifndef _GLIBCXX_VISIBILITY_DEFAULT 48: #define _GLIBCXX_VISIBILITY_DEFAULT /* _GLIBCXX_VISIBILITY(default) */ 49: #endif 50: 51: /* APPLE LOCAL begin dtrace 6144676 */ 52: /* Enable dtrace probes. */ 53: /* Inline copy of dtrace_cxa_runtime.h. */ 54: /* 55: * Generated by dtrace(1M). 56: */ 57: 58: #ifndef _DTRACE_CXA_RUNTIME_H 59: #define _DTRACE_CXA_RUNTIME_H 60: 61: #include <unistd.h> 62: /* APPLE LOCAL begin version */ 63: #include <Availability.h> 64: /* APPLE LOCAL end version */ 65: 66: #ifdef __cplusplus 67: extern "C" { 68: #endif 69: 70: #define CXA_RUNTIME_STABILITY "___dtrace_stability$cxa_runtime$v1$1_1_0_1_1_0_1_1_0_1_1_0_1_1_0" 71: 72: #define CXA_RUNTIME_TYPEDEFS "___dtrace_typedefs$cxa_runtime$v2" 73: 74: #define CXA_RUNTIME_CXA_EXCEPTION_RETHROW() \ 75: do { \ 76: __asm__ volatile(".reference " CXA_RUNTIME_TYPEDEFS); \ 77: __dtrace_probe$cxa_runtime$cxa_exception_rethrow$v1(); \ 78: __asm__ volatile(".reference " CXA_RUNTIME_STABILITY); \ 79: } while (0) 80: #define CXA_RUNTIME_CXA_EXCEPTION_RETHROW_ENABLED() \ 81: __dtrace_isenabled$cxa_runtime$cxa_exception_rethrow$v1() 82: #define CXA_RUNTIME_CXA_EXCEPTION_THROW(arg0) \ 83: do { \ 84: __asm__ volatile(".reference " CXA_RUNTIME_TYPEDEFS); \ 85: __dtrace_probe$cxa_runtime$cxa_exception_throw$v1$766f6964202a(arg0); \ 86: __asm__ volatile(".reference " CXA_RUNTIME_STABILITY); \ 87: } while (0) 88: #define CXA_RUNTIME_CXA_EXCEPTION_THROW_ENABLED() \ 89: __dtrace_isenabled$cxa_runtime$cxa_exception_throw$v1() 90: 91: 92: extern void __dtrace_probe$cxa_runtime$cxa_exception_rethrow$v1(void); 93: extern int __dtrace_isenabled$cxa_runtime$cxa_exception_rethrow$v1(void); 94: extern void __dtrace_probe$cxa_runtime$cxa_exception_throw$v1$766f6964202a(void *); 95: extern int __dtrace_isenabled$cxa_runtime$cxa_exception_throw$v1(void); 96: 97: #ifdef __cplusplus 98: } 99: #endif 100: 101: #endif /* _DTRACE_CXA_RUNTIME_H */ 102: /* APPLE LOCAL end dtrace 6144676 */ 103: 104: /* APPLE LOCAL begin version */ 105: 106: #ifndef __GNUC_LIBSTD__ 107: #define __GNUC_LIBSTD__ 4 108: #define __GNUC_LIBSTD_MINOR__ 2 109: #endif 110: 111: #if __IPHONE_OS_VERSION_MIN_REQUIRED 112: #define __TARGETING_4_0_DYLIB 0 113: #else 114: #define __TARGETING_4_0_DYLIB (__MAC_OS_X_VERSION_MIN_REQUIRED < 1060) 115: #endif 116: 117: /* APPLE LOCAL end version */ 118: 119: /* APPLE LOCAL begin keymgr */ 120: #if defined(__APPLE__) && defined(__ppc__) && defined(PIC) 121: /* Copyright (C) 1989, 92-97, 1998, Free Software Foundation, Inc. 122: 123: This file is part of GNU CC. 124: 125: GNU CC is free software; you can redistribute it and/or modify 126: it under the terms of the GNU General Public License as published by 127: the Free Software Foundation; either version 2, or (at your option) 128: any later version. 129: 130: GNU CC is distributed in the hope that it will be useful, 131: but WITHOUT ANY WARRANTY; without even the implied warranty of 132: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 133: GNU General Public License for more details. 134: 135: You should have received a copy of the GNU General Public License 136: along with GNU CC; see the file COPYING. If not, write to 137: the Free Software Foundation, 59 Temple Place - Suite 330, 138: Boston, MA 02111-1307, USA. */ 139: 140: 141: /* 142: * This file added by Apple Computer Inc. for its OS X 143: * environment. 144: */ 145: 146: #ifndef __KEYMGR_H 147: #define __KEYMGR_H 148: 149: #ifdef __cplusplus 150: extern "C" { 151: #endif 152: 153: 154: 155: /* 156: * keymgr - Create and maintain process-wide global data known to 157: * all threads across all dynamic libraries. 158: * 159: */ 160: 161: typedef enum node_kinds { 162: NODE_THREAD_SPECIFIC_DATA=1, 163: NODE_PROCESSWIDE_PTR=2, 164: NODE_LAST_KIND 165: } TnodeKind ; 166: 167: /* 168: * These enum members are bits or combination of bits. 169: */ 170: 171: typedef enum node_mode { 172: NM_ALLOW_RECURSION=1, 173: NM_RECURSION_ILLEGAL=2, 174: NM_ENHANCED_LOCKING=3, 175: NM_LOCKED=4 176: } TnodeMode ; 177: 178: /* WARNING: the return value of _keymgr_set_per_thread_data is 179: not meaningful on Tiger and above. Use the macro 180: KEYMGR_SET_PER_THREAD_DATA (below) to handle this properly. */ 181: extern void * _keymgr_get_per_thread_data(unsigned int key) ; 182: extern int _keymgr_set_per_thread_data(unsigned int key, void *keydata) ; 183: extern void *_keymgr_get_and_lock_processwide_ptr(unsigned int key) ; 184: extern void _keymgr_set_and_unlock_processwide_ptr(unsigned int key, void *ptr) ; 185: extern void _keymgr_unlock_processwide_ptr(unsigned int key) ; 186: extern void _keymgr_set_lockmode_processwide_ptr(unsigned int key, unsigned int mode) ; 187: extern unsigned int _keymgr_get_lockmode_processwide_ptr(unsigned int key) ; 188: extern int _keymgr_get_lock_count_processwide_ptr(unsigned int key) ; 189: 190: extern void *__keymgr_global[]; 191: typedef struct _Sinfo_Node { 192: unsigned int size ; /*size of this node*/ 193: unsigned short major_version ; /*API major version.*/ 194: unsigned short minor_version ; /*API minor version.*/ 195: } _Tinfo_Node ; 196: 197: #define KEYMGR_VERSION \ 198: (__keymgr_global[2] ? ((_Tinfo_Node *)__keymgr_global[2])->major_version : 0) 199: 200: #define KEYMGR_SET_PER_THREAD_DATA(key, keydata) \ 201: (KEYMGR_VERSION >= 4 \ 202: ? _keymgr_set_per_thread_data((key), (keydata)) \ 203: : (_keymgr_set_per_thread_data((key), (keydata)), 0)) 204: 205: #ifndef NULL 206: #ifdef __GNUG__ 207: #define NULL __null 208: #else 209: #define NULL 0 210: #endif 211: #endif 212: 213: /* 214: * Keys currently in use: 215: */ 216: 217: #define KEYMGR_EH_CONTEXT_KEY 1 /*stores handle for root pointer of exception context node.*/ 218: 219: #define KEYMGR_NEW_HANDLER_KEY 2 /*store handle for new handler pointer.*/ 220: 221: #define KEYMGR_UNEXPECTED_HANDLER_KEY 3 /*store handle for unexpected exception pointer.*/ 222: 223: #define KEYMGR_TERMINATE_HANDLER_KEY 4 /*store handle for terminate handler pointer. */ 224: 225: #define KEYMGR_MODE_BITS 5 /*stores handle for runtime mode bits.*/ 226: 227: #define KEYMGR_IO_LIST 6 /*Root pointer to the list of open streams.*/ 228: 229: #define KEYMGR_IO_STDIN 7 /*GNU stdin.*/ 230: 231: #define KEYMGR_IO_STDOUT 8 /*GNU stdout.*/ 232: 233: #define KEYMGR_IO_STDERR 9 /*GNU stderr.*/ 234: 235: #define KEYMGR_IO_REFCNT 10 /*How many plugins/main program currently using streams.*/ 236: 237: #define KEYMGR_IO_MODE_BITS 11 /*Flags controlling the behavior of C++ I/O.*/ 238: 239: #define KEYMGR_ZOE_IMAGE_LIST 12 /*Head pointer for list of per image dwarf2 unwind sections.*/ 240: 241: #define KEYMGR_EH_GLOBALS_KEY 13 /* Variable used in eh_globals.cc */ 242: 243: /* 244: * Other important data. 245: */ 246: 247: #define KEYMGR_API_REV_MAJOR 2 /*Major revision number of the keymgr API.*/ 248: #define KEYMGR_API_REV_MINOR 1 /*Minor revision number of the keymgr API.*/ 249: 250: 251: 252: #ifdef __cplusplus 253: } 254: #endif 255: 256: #endif /* __KEYMGR_H */ 257: #endif /* __APPLE__ etc. */ 258: /* APPLE LOCAL end keymgr */ 259: #endif 260: