1132718Skan/* POSIX threads dummy routines for systems without weak definitions. */ 2132718Skan/* Compile this one with gcc. */ 3171825Skan/* Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. 4132718Skan 5132718SkanThis file is part of GCC. 6132718Skan 7132718SkanGCC is free software; you can redistribute it and/or modify it under 8132718Skanthe terms of the GNU General Public License as published by the Free 9132718SkanSoftware Foundation; either version 2, or (at your option) any later 10132718Skanversion. 11132718Skan 12132718SkanGCC is distributed in the hope that it will be useful, but WITHOUT ANY 13132718SkanWARRANTY; without even the implied warranty of MERCHANTABILITY or 14132718SkanFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15132718Skanfor more details. 16132718Skan 17132718SkanYou should have received a copy of the GNU General Public License 18132718Skanalong with GCC; see the file COPYING. If not, write to the Free 19169689SkanSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 20169689Skan02110-1301, USA. */ 21132718Skan 22132718Skan/* As a special exception, if you link this library with other files, 23132718Skan some of which are compiled with GCC, to produce an executable, 24132718Skan this library does not by itself cause the resulting executable 25132718Skan to be covered by the GNU General Public License. 26132718Skan This exception does not however invalidate any other reasons why 27132718Skan the executable file might be covered by the GNU General Public License. */ 28132718Skan 29132718Skan#include "tconfig.h" 30132718Skan#include "tm.h" 31171825Skan# define __gthrw_pragma(pragma) _Pragma (#pragma) 32132718Skan/* Define so we provide weak definitions of functions used by libobjc only. */ 33132718Skan#define _LIBOBJC_WEAK 34132718Skan#include "gthr.h" 35132718Skan 36132718Skanint 37132718Skanpthread_once (pthread_once_t *once ATTRIBUTE_UNUSED, 38132718Skan void (*func) (void) ATTRIBUTE_UNUSED) 39132718Skan{ 40132718Skan return -1; 41132718Skan} 42132718Skan 43132718Skanint 44132718Skanpthread_key_create (pthread_key_t *key ATTRIBUTE_UNUSED, 45132718Skan void (*dtor) (void *) ATTRIBUTE_UNUSED) 46132718Skan{ 47132718Skan return -1; 48132718Skan} 49132718Skan 50132718Skanint 51132718Skanpthread_key_delete (pthread_key_t key ATTRIBUTE_UNUSED) 52132718Skan{ 53132718Skan return 0; 54132718Skan} 55132718Skan 56132718Skanvoid * 57132718Skanpthread_getspecific (pthread_key_t key ATTRIBUTE_UNUSED) 58132718Skan{ 59132718Skan return 0; 60132718Skan} 61132718Skan 62132718Skanint 63132718Skanpthread_setspecific (pthread_key_t key ATTRIBUTE_UNUSED, 64132718Skan const void *ptr ATTRIBUTE_UNUSED) 65132718Skan{ 66132718Skan return 0; 67132718Skan} 68132718Skan 69132718Skanint 70132718Skanpthread_create (pthread_t *thread ATTRIBUTE_UNUSED, 71132718Skan const pthread_attr_t *attr ATTRIBUTE_UNUSED, 72132718Skan void *(*start_routine) (void *) ATTRIBUTE_UNUSED, 73132718Skan void *arg ATTRIBUTE_UNUSED) 74132718Skan{ 75132718Skan return 0; 76132718Skan} 77132718Skan 78132718Skanint 79171825Skanpthread_cancel (pthread_t thread ATTRIBUTE_UNUSED) 80169689Skan{ 81169689Skan return 0; 82169689Skan} 83169689Skan 84169689Skanint 85132718Skanpthread_mutex_lock (pthread_mutex_t *mutex ATTRIBUTE_UNUSED) 86132718Skan{ 87132718Skan return 0; 88132718Skan} 89132718Skan 90132718Skanint 91132718Skanpthread_mutex_trylock (pthread_mutex_t *mutex ATTRIBUTE_UNUSED) 92132718Skan{ 93132718Skan return 0; 94132718Skan} 95132718Skan 96132718Skanint 97132718Skanpthread_mutex_unlock (pthread_mutex_t *mutex ATTRIBUTE_UNUSED) 98132718Skan{ 99132718Skan return 0; 100132718Skan} 101132718Skan 102132718Skanint 103169689Skanpthread_mutexattr_init (pthread_mutexattr_t *attr ATTRIBUTE_UNUSED) 104169689Skan{ 105169689Skan return 0; 106169689Skan} 107169689Skan 108169689Skanint 109169689Skanpthread_mutexattr_settype (pthread_mutexattr_t *attr ATTRIBUTE_UNUSED, 110169689Skan int type ATTRIBUTE_UNUSED) 111169689Skan{ 112169689Skan return 0; 113169689Skan} 114169689Skan 115169689Skanint 116169689Skanpthread_mutexattr_destroy (pthread_mutexattr_t *attr ATTRIBUTE_UNUSED) 117169689Skan{ 118169689Skan return 0; 119169689Skan} 120169689Skan 121169689Skanint 122132718Skanpthread_cond_broadcast (pthread_cond_t *cond ATTRIBUTE_UNUSED) 123132718Skan{ 124132718Skan return 0; 125132718Skan} 126132718Skan 127132718Skanint 128132718Skanpthread_cond_destroy (pthread_cond_t *cond ATTRIBUTE_UNUSED) 129132718Skan{ 130132718Skan return 0; 131132718Skan} 132132718Skan 133132718Skanint 134132718Skanpthread_cond_init (pthread_cond_t *cond ATTRIBUTE_UNUSED, 135132718Skan const pthread_condattr_t *attr ATTRIBUTE_UNUSED) 136132718Skan{ 137132718Skan return 0; 138132718Skan} 139132718Skan 140132718Skanint 141132718Skanpthread_cond_signal (pthread_cond_t *cond ATTRIBUTE_UNUSED) 142132718Skan{ 143132718Skan return 0; 144132718Skan} 145132718Skan 146132718Skanint 147132718Skanpthread_cond_wait (pthread_cond_t *cond ATTRIBUTE_UNUSED, 148132718Skan pthread_mutex_t *mutex ATTRIBUTE_UNUSED) 149132718Skan{ 150132718Skan return 0; 151132718Skan} 152132718Skan 153132718Skanvoid 154132718Skanpthread_exit (void *value_ptr ATTRIBUTE_UNUSED) 155132718Skan{ 156132718Skan} 157132718Skan 158132718Skanint 159132718Skanpthread_mutex_init (pthread_mutex_t *mutex ATTRIBUTE_UNUSED, 160132718Skan const pthread_mutexattr_t *attr ATTRIBUTE_UNUSED) 161132718Skan{ 162132718Skan return 0; 163132718Skan} 164132718Skan 165132718Skanint 166132718Skanpthread_mutex_destroy (pthread_mutex_t *mutex ATTRIBUTE_UNUSED) 167132718Skan{ 168132718Skan return 0; 169132718Skan} 170132718Skan 171132718Skanpthread_t 172132718Skanpthread_self (void) 173132718Skan{ 174132718Skan return (pthread_t) 0; 175132718Skan} 176169689Skan#ifdef _POSIX_PRIORITY_SCHEDULING 177132718Skan#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING 178132718Skanint 179132718Skansched_get_priority_max (int policy ATTRIBUTE_UNUSED) 180132718Skan{ 181132718Skan return 0; 182132718Skan} 183132718Skan 184132718Skanint 185132718Skansched_get_priority_min (int policy ATTRIBUTE_UNUSED) 186132718Skan{ 187132718Skan return 0; 188132718Skan} 189132718Skan#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ 190169689Skan#endif /* _POSIX_PRIORITY_SCHEDULING */ 191132718Skan 192132718Skanint 193132718Skansched_yield (void) 194132718Skan{ 195132718Skan return 0; 196132718Skan} 197132718Skan 198132718Skanint 199132718Skanpthread_attr_destroy (pthread_attr_t *attr ATTRIBUTE_UNUSED) 200132718Skan{ 201132718Skan return 0; 202132718Skan} 203132718Skan 204132718Skanint 205132718Skanpthread_attr_init (pthread_attr_t *attr ATTRIBUTE_UNUSED) 206132718Skan{ 207132718Skan return 0; 208132718Skan} 209132718Skan 210132718Skanint 211132718Skanpthread_attr_setdetachstate (pthread_attr_t *attr ATTRIBUTE_UNUSED, 212132718Skan int detachstate ATTRIBUTE_UNUSED) 213132718Skan{ 214132718Skan return 0; 215132718Skan} 216132718Skan 217132718Skan#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING 218132718Skanint 219132718Skanpthread_getschedparam (pthread_t thread ATTRIBUTE_UNUSED, 220132718Skan int *policy ATTRIBUTE_UNUSED, 221132718Skan struct sched_param *param ATTRIBUTE_UNUSED) 222132718Skan{ 223132718Skan return 0; 224132718Skan} 225132718Skan 226132718Skanint 227132718Skanpthread_setschedparam (pthread_t thread ATTRIBUTE_UNUSED, 228132718Skan int policy ATTRIBUTE_UNUSED, 229132718Skan const struct sched_param *param ATTRIBUTE_UNUSED) 230132718Skan{ 231132718Skan return 0; 232132718Skan} 233132718Skan#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ 234132718Skan 235