1*062c5bc4SJason Schmidlapp /* 2*062c5bc4SJason Schmidlapp * pte_getprocessors.c 3*062c5bc4SJason Schmidlapp * 4*062c5bc4SJason Schmidlapp * Description: 5*062c5bc4SJason Schmidlapp * This translation unit implements routines which are private to 6*062c5bc4SJason Schmidlapp * the implementation and may be used throughout it. 7*062c5bc4SJason Schmidlapp * 8*062c5bc4SJason Schmidlapp * -------------------------------------------------------------------------- 9*062c5bc4SJason Schmidlapp * 10*062c5bc4SJason Schmidlapp * Pthreads-embedded (PTE) - POSIX Threads Library for embedded systems 11*062c5bc4SJason Schmidlapp * Copyright(C) 2008 Jason Schmidlapp 12*062c5bc4SJason Schmidlapp * 13*062c5bc4SJason Schmidlapp * Contact Email: jschmidlapp@users.sourceforge.net 14*062c5bc4SJason Schmidlapp * 15*062c5bc4SJason Schmidlapp * 16*062c5bc4SJason Schmidlapp * Based upon Pthreads-win32 - POSIX Threads Library for Win32 17*062c5bc4SJason Schmidlapp * Copyright(C) 1998 John E. Bossom 18*062c5bc4SJason Schmidlapp * Copyright(C) 1999,2005 Pthreads-win32 contributors 19*062c5bc4SJason Schmidlapp * 20*062c5bc4SJason Schmidlapp * Contact Email: rpj@callisto.canberra.edu.au 21*062c5bc4SJason Schmidlapp * 22*062c5bc4SJason Schmidlapp * The original list of contributors to the Pthreads-win32 project 23*062c5bc4SJason Schmidlapp * is contained in the file CONTRIBUTORS.ptw32 included with the 24*062c5bc4SJason Schmidlapp * source code distribution. The list can also be seen at the 25*062c5bc4SJason Schmidlapp * following World Wide Web location: 26*062c5bc4SJason Schmidlapp * http://sources.redhat.com/pthreads-win32/contributors.html 27*062c5bc4SJason Schmidlapp * 28*062c5bc4SJason Schmidlapp * This library is free software; you can redistribute it and/or 29*062c5bc4SJason Schmidlapp * modify it under the terms of the GNU Lesser General Public 30*062c5bc4SJason Schmidlapp * License as published by the Free Software Foundation; either 31*062c5bc4SJason Schmidlapp * version 2 of the License, or (at your option) any later version. 32*062c5bc4SJason Schmidlapp * 33*062c5bc4SJason Schmidlapp * This library is distributed in the hope that it will be useful, 34*062c5bc4SJason Schmidlapp * but WITHOUT ANY WARRANTY; without even the implied warranty of 35*062c5bc4SJason Schmidlapp * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 36*062c5bc4SJason Schmidlapp * Lesser General Public License for more details. 37*062c5bc4SJason Schmidlapp * 38*062c5bc4SJason Schmidlapp * You should have received a copy of the GNU Lesser General Public 39*062c5bc4SJason Schmidlapp * License along with this library in the file COPYING.LIB; 40*062c5bc4SJason Schmidlapp * if not, write to the Free Software Foundation, Inc., 41*062c5bc4SJason Schmidlapp * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 42*062c5bc4SJason Schmidlapp */ 43*062c5bc4SJason Schmidlapp 44*062c5bc4SJason Schmidlapp #include "pthread.h" 45*062c5bc4SJason Schmidlapp #include "implement.h" 46*062c5bc4SJason Schmidlapp 47*062c5bc4SJason Schmidlapp 48*062c5bc4SJason Schmidlapp /* 49*062c5bc4SJason Schmidlapp * pte_getprocessors() 50*062c5bc4SJason Schmidlapp * 51*062c5bc4SJason Schmidlapp * Get the number of CPUs available to the process. 52*062c5bc4SJason Schmidlapp * 53*062c5bc4SJason Schmidlapp * If the available number of CPUs is 1 then pthread_spin_lock() 54*062c5bc4SJason Schmidlapp * will block rather than spin if the lock is already owned. 55*062c5bc4SJason Schmidlapp * 56*062c5bc4SJason Schmidlapp * pthread_spin_init() calls this routine when initialising 57*062c5bc4SJason Schmidlapp * a spinlock. If the number of available processors changes 58*062c5bc4SJason Schmidlapp * (after a call to SetProcessAffinityMask()) then only 59*062c5bc4SJason Schmidlapp * newly initialised spinlocks will notice. 60*062c5bc4SJason Schmidlapp */ 61*062c5bc4SJason Schmidlapp int pte_getprocessors(int * count)62*062c5bc4SJason Schmidlapppte_getprocessors (int *count) 63*062c5bc4SJason Schmidlapp { 64*062c5bc4SJason Schmidlapp int result = 0; 65*062c5bc4SJason Schmidlapp 66*062c5bc4SJason Schmidlapp *count = 1; 67*062c5bc4SJason Schmidlapp 68*062c5bc4SJason Schmidlapp return (result); 69*062c5bc4SJason Schmidlapp } 70