1 /* 2 * pthread_attr_setaffinity_np.c 3 * 4 * Description: 5 * POSIX thread functions that deal with thread CPU affinity. 6 * 7 * -------------------------------------------------------------------------- 8 * 9 * Pthreads4w - POSIX Threads for Windows 10 * Copyright 1998 John E. Bossom 11 * Copyright 1999-2018, Pthreads4w contributors 12 * 13 * Homepage: https://sourceforge.net/projects/pthreads4w/ 14 * 15 * The current list of contributors is contained 16 * in the file CONTRIBUTORS included with the source 17 * code distribution. The list can also be seen at the 18 * following World Wide Web location: 19 * 20 * https://sourceforge.net/p/pthreads4w/wiki/Contributors/ 21 * 22 * Licensed under the Apache License, Version 2.0 (the "License"); 23 * you may not use this file except in compliance with the License. 24 * You may obtain a copy of the License at 25 * 26 * http://www.apache.org/licenses/LICENSE-2.0 27 * 28 * Unless required by applicable law or agreed to in writing, software 29 * distributed under the License is distributed on an "AS IS" BASIS, 30 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 31 * See the License for the specific language governing permissions and 32 * limitations under the License. 33 */ 34 35 #ifdef HAVE_CONFIG_H 36 # include <config.h> 37 #endif 38 39 #include "pthread.h" 40 #include "implement.h" 41 #include "sched.h" 42 43 int pthread_attr_setaffinity_np(pthread_attr_t * attr,size_t cpusetsize,const cpu_set_t * cpuset)44pthread_attr_setaffinity_np (pthread_attr_t * attr, size_t cpusetsize, const cpu_set_t * cpuset) 45 { 46 if (__ptw32_is_attr (attr) != 0 || cpuset == NULL) 47 { 48 return EINVAL; 49 } 50 51 (*attr)->cpuset = ((_sched_cpu_set_vector_*)cpuset)->_cpuset; 52 53 return 0; 54 } 55