From d85ad0e58a068623a09a4a3463dce3bf411c8cb4 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Fri, 21 May 2021 15:09:43 -0300 Subject: support: Add xpthread_attr_setaffinity_np wrapper --- support/Makefile | 1 + support/xpthread_attr_setaffinity_np.c | 28 ++++++++++++++++++++++++++++ support/xthread.h | 3 +++ 3 files changed, 32 insertions(+) create mode 100644 support/xpthread_attr_setaffinity_np.c diff --git a/support/Makefile b/support/Makefile index da6dc58d37..0a4b057db5 100644 --- a/support/Makefile +++ b/support/Makefile @@ -128,6 +128,7 @@ libsupport-routines = \ xpthread_attr_init \ xpthread_attr_setdetachstate \ xpthread_attr_setguardsize \ + xpthread_attr_setaffinity_np \ xpthread_attr_setstack \ xpthread_attr_setstacksize \ xpthread_barrier_destroy \ diff --git a/support/xpthread_attr_setaffinity_np.c b/support/xpthread_attr_setaffinity_np.c new file mode 100644 index 0000000000..5bb5b419a5 --- /dev/null +++ b/support/xpthread_attr_setaffinity_np.c @@ -0,0 +1,28 @@ +/* pthread_attr_setaffinity_np with error checking. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include + +void +xpthread_attr_setaffinity_np (pthread_attr_t *attr, + size_t cpusetsize, const cpu_set_t *cpuset) +{ + xpthread_check_return ("pthread_attr_setaffinity_np", + pthread_attr_setaffinity_np (attr, cpusetsize, + cpuset)); +} diff --git a/support/xthread.h b/support/xthread.h index 1ba3f133ad..c0dbb6086e 100644 --- a/support/xthread.h +++ b/support/xthread.h @@ -66,6 +66,9 @@ void *xpthread_join (pthread_t thr); void xpthread_once (pthread_once_t *guard, void (*func) (void)); void xpthread_attr_destroy (pthread_attr_t *attr); void xpthread_attr_init (pthread_attr_t *attr); +void xpthread_attr_setaffinity_np (pthread_attr_t *attr, + size_t cpusetsize, + const cpu_set_t *cpuset); void xpthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate); void xpthread_attr_setstack (pthread_attr_t *attr, void *stackaddr, -- cgit v1.2.3