1*4c3eb207Smrg /* Copyright (C) 2006-2020 Free Software Foundation, Inc.
23ad841b2Smrg Contributed by Jakub Jelinek <jakub@redhat.com>.
33ad841b2Smrg
43ad841b2Smrg This file is part of the GNU Offloading and Multi Processing Library
53ad841b2Smrg (libgomp).
63ad841b2Smrg
73ad841b2Smrg Libgomp is free software; you can redistribute it and/or modify it
83ad841b2Smrg under the terms of the GNU General Public License as published by
93ad841b2Smrg the Free Software Foundation; either version 3, or (at your option)
103ad841b2Smrg any later version.
113ad841b2Smrg
123ad841b2Smrg Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
133ad841b2Smrg WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
143ad841b2Smrg FOR A PARTICULAR PURPOSE. See the GNU General Public License for
153ad841b2Smrg more details.
163ad841b2Smrg
173ad841b2Smrg Under Section 7 of GPL version 3, you are granted additional
183ad841b2Smrg permissions described in the GCC Runtime Library Exception, version
193ad841b2Smrg 3.1, as published by the Free Software Foundation.
203ad841b2Smrg
213ad841b2Smrg You should have received a copy of the GNU General Public License and
223ad841b2Smrg a copy of the GCC Runtime Library Exception along with this program;
233ad841b2Smrg see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
243ad841b2Smrg <http://www.gnu.org/licenses/>. */
253ad841b2Smrg
263ad841b2Smrg /* This is a generic stub implementation of a CPU affinity setting. */
273ad841b2Smrg
283ad841b2Smrg #include "libgomp.h"
29627f7eb2Smrg #include <string.h>
30627f7eb2Smrg #include <stdio.h>
313ad841b2Smrg
323ad841b2Smrg void
gomp_init_affinity(void)333ad841b2Smrg gomp_init_affinity (void)
343ad841b2Smrg {
353ad841b2Smrg }
363ad841b2Smrg
373ad841b2Smrg #ifdef LIBGOMP_USE_PTHREADS
383ad841b2Smrg void
gomp_init_thread_affinity(pthread_attr_t * attr,unsigned int place)393ad841b2Smrg gomp_init_thread_affinity (pthread_attr_t *attr, unsigned int place)
403ad841b2Smrg {
413ad841b2Smrg (void) attr;
423ad841b2Smrg (void) place;
433ad841b2Smrg }
443ad841b2Smrg #endif
453ad841b2Smrg
463ad841b2Smrg void **
gomp_affinity_alloc(unsigned long count,bool quiet)473ad841b2Smrg gomp_affinity_alloc (unsigned long count, bool quiet)
483ad841b2Smrg {
493ad841b2Smrg (void) count;
503ad841b2Smrg if (!quiet)
513ad841b2Smrg gomp_error ("Affinity not supported on this configuration");
523ad841b2Smrg return NULL;
533ad841b2Smrg }
543ad841b2Smrg
553ad841b2Smrg void
gomp_affinity_init_place(void * p)563ad841b2Smrg gomp_affinity_init_place (void *p)
573ad841b2Smrg {
583ad841b2Smrg (void) p;
593ad841b2Smrg }
603ad841b2Smrg
613ad841b2Smrg bool
gomp_affinity_add_cpus(void * p,unsigned long num,unsigned long len,long stride,bool quiet)623ad841b2Smrg gomp_affinity_add_cpus (void *p, unsigned long num,
633ad841b2Smrg unsigned long len, long stride, bool quiet)
643ad841b2Smrg {
653ad841b2Smrg (void) p;
663ad841b2Smrg (void) num;
673ad841b2Smrg (void) len;
683ad841b2Smrg (void) stride;
693ad841b2Smrg (void) quiet;
703ad841b2Smrg return false;
713ad841b2Smrg }
723ad841b2Smrg
733ad841b2Smrg bool
gomp_affinity_remove_cpu(void * p,unsigned long num)743ad841b2Smrg gomp_affinity_remove_cpu (void *p, unsigned long num)
753ad841b2Smrg {
763ad841b2Smrg (void) p;
773ad841b2Smrg (void) num;
783ad841b2Smrg return false;
793ad841b2Smrg }
803ad841b2Smrg
813ad841b2Smrg bool
gomp_affinity_copy_place(void * p,void * q,long stride)823ad841b2Smrg gomp_affinity_copy_place (void *p, void *q, long stride)
833ad841b2Smrg {
843ad841b2Smrg (void) p;
853ad841b2Smrg (void) q;
863ad841b2Smrg (void) stride;
873ad841b2Smrg return false;
883ad841b2Smrg }
893ad841b2Smrg
903ad841b2Smrg bool
gomp_affinity_same_place(void * p,void * q)913ad841b2Smrg gomp_affinity_same_place (void *p, void *q)
923ad841b2Smrg {
933ad841b2Smrg (void) p;
943ad841b2Smrg (void) q;
953ad841b2Smrg return false;
963ad841b2Smrg }
973ad841b2Smrg
983ad841b2Smrg bool
gomp_affinity_finalize_place_list(bool quiet)993ad841b2Smrg gomp_affinity_finalize_place_list (bool quiet)
1003ad841b2Smrg {
1013ad841b2Smrg (void) quiet;
1023ad841b2Smrg return false;
1033ad841b2Smrg }
1043ad841b2Smrg
1053ad841b2Smrg bool
gomp_affinity_init_level(int level,unsigned long count,bool quiet)1063ad841b2Smrg gomp_affinity_init_level (int level, unsigned long count, bool quiet)
1073ad841b2Smrg {
1083ad841b2Smrg (void) level;
1093ad841b2Smrg (void) count;
1103ad841b2Smrg (void) quiet;
1113ad841b2Smrg if (!quiet)
1123ad841b2Smrg gomp_error ("Affinity not supported on this configuration");
1133ad841b2Smrg return NULL;
1143ad841b2Smrg }
1153ad841b2Smrg
1163ad841b2Smrg void
gomp_affinity_print_place(void * p)1173ad841b2Smrg gomp_affinity_print_place (void *p)
1183ad841b2Smrg {
1193ad841b2Smrg (void) p;
1203ad841b2Smrg }
1213ad841b2Smrg
1223ad841b2Smrg int
omp_get_place_num_procs(int place_num)1233ad841b2Smrg omp_get_place_num_procs (int place_num)
1243ad841b2Smrg {
1253ad841b2Smrg (void) place_num;
1263ad841b2Smrg return 0;
1273ad841b2Smrg }
1283ad841b2Smrg
1293ad841b2Smrg void
omp_get_place_proc_ids(int place_num,int * ids)1303ad841b2Smrg omp_get_place_proc_ids (int place_num, int *ids)
1313ad841b2Smrg {
1323ad841b2Smrg (void) place_num;
1333ad841b2Smrg (void) ids;
1343ad841b2Smrg }
1353ad841b2Smrg
1363ad841b2Smrg void
gomp_get_place_proc_ids_8(int place_num,int64_t * ids)1373ad841b2Smrg gomp_get_place_proc_ids_8 (int place_num, int64_t *ids)
1383ad841b2Smrg {
1393ad841b2Smrg (void) place_num;
1403ad841b2Smrg (void) ids;
1413ad841b2Smrg }
1423ad841b2Smrg
143627f7eb2Smrg void
gomp_display_affinity_place(char * buffer,size_t size,size_t * ret,int place)144627f7eb2Smrg gomp_display_affinity_place (char *buffer, size_t size, size_t *ret,
145627f7eb2Smrg int place)
146627f7eb2Smrg {
147627f7eb2Smrg char buf[sizeof (long) * 3 + 4];
148627f7eb2Smrg if (gomp_available_cpus > 1)
149627f7eb2Smrg sprintf (buf, "0-%lu", gomp_available_cpus - 1);
150627f7eb2Smrg else
151627f7eb2Smrg strcpy (buf, "0");
152627f7eb2Smrg gomp_display_string (buffer, size, ret, buf, strlen (buf));
153627f7eb2Smrg }
154627f7eb2Smrg
1553ad841b2Smrg ialias(omp_get_place_num_procs)
1563ad841b2Smrg ialias(omp_get_place_proc_ids)
157