1/* 2 * Copyright (c) 2012 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24#ifndef __PTHREAD_PRIVATE_H__ 25#define __PTHREAD_PRIVATE_H__ 26 27#include <sys/cdefs.h> 28#include <Availability.h> 29#include <pthread/tsd_private.h> 30 31/* get the thread specific errno value */ 32__header_always_inline int 33_pthread_get_errno_direct(void) 34{ 35 return *(int*)_pthread_getspecific_direct(_PTHREAD_TSD_SLOT_ERRNO); 36} 37 38/* set the thread specific errno value */ 39__header_always_inline void 40_pthread_set_errno_direct(int value) 41{ 42 *((int*)_pthread_getspecific_direct(_PTHREAD_TSD_SLOT_ERRNO)) = value; 43} 44 45__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0) 46pthread_t pthread_main_thread_np(void); 47 48struct _libpthread_functions { 49 unsigned long version; 50 void (*exit)(int); // added with version=1 51 void *(*malloc)(size_t); // added with version=2 52 void (*free)(void *); // added with version=2 53}; 54 55#endif // __PTHREAD_PRIVATE_H__ 56