Deleted Added
full compact
tuklib_cpucores.c (207842) tuklib_cpucores.c (213700)
1///////////////////////////////////////////////////////////////////////////////
2//
3/// \file tuklib_cpucores.c
4/// \brief Get the number of CPU cores online
5//
6// Author: Lasse Collin
7//
8// This file has been put into the public domain.

--- 6 unchanged lines hidden (view full) ---

15#if defined(TUKLIB_CPUCORES_SYSCTL)
16# ifdef HAVE_SYS_PARAM_H
17# include <sys/param.h>
18# endif
19# include <sys/sysctl.h>
20
21#elif defined(TUKLIB_CPUCORES_SYSCONF)
22# include <unistd.h>
1///////////////////////////////////////////////////////////////////////////////
2//
3/// \file tuklib_cpucores.c
4/// \brief Get the number of CPU cores online
5//
6// Author: Lasse Collin
7//
8// This file has been put into the public domain.

--- 6 unchanged lines hidden (view full) ---

15#if defined(TUKLIB_CPUCORES_SYSCTL)
16# ifdef HAVE_SYS_PARAM_H
17# include <sys/param.h>
18# endif
19# include <sys/sysctl.h>
20
21#elif defined(TUKLIB_CPUCORES_SYSCONF)
22# include <unistd.h>
23
24// HP-UX
25#elif defined(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC)
26# include <sys/param.h>
27# include <sys/pstat.h>
23#endif
24
25
26extern uint32_t
27tuklib_cpucores(void)
28{
29 uint32_t ret = 0;
30
31#if defined(TUKLIB_CPUCORES_SYSCTL)
32 int name[2] = { CTL_HW, HW_NCPU };
33 int cpus;
34 size_t cpus_size = sizeof(cpus);
35 if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
36 && cpus_size == sizeof(cpus) && cpus > 0)
28#endif
29
30
31extern uint32_t
32tuklib_cpucores(void)
33{
34 uint32_t ret = 0;
35
36#if defined(TUKLIB_CPUCORES_SYSCTL)
37 int name[2] = { CTL_HW, HW_NCPU };
38 int cpus;
39 size_t cpus_size = sizeof(cpus);
40 if (sysctl(name, 2, &cpus, &cpus_size, NULL, 0) != -1
41 && cpus_size == sizeof(cpus) && cpus > 0)
37 ret = (uint32_t)cpus;
42 ret = cpus;
38
39#elif defined(TUKLIB_CPUCORES_SYSCONF)
40# ifdef _SC_NPROCESSORS_ONLN
41 // Most systems
42 const long cpus = sysconf(_SC_NPROCESSORS_ONLN);
43# else
44 // IRIX
45 const long cpus = sysconf(_SC_NPROC_ONLN);
46# endif
47 if (cpus > 0)
43
44#elif defined(TUKLIB_CPUCORES_SYSCONF)
45# ifdef _SC_NPROCESSORS_ONLN
46 // Most systems
47 const long cpus = sysconf(_SC_NPROCESSORS_ONLN);
48# else
49 // IRIX
50 const long cpus = sysconf(_SC_NPROC_ONLN);
51# endif
52 if (cpus > 0)
48 ret = (uint32_t)cpus;
53 ret = cpus;
54
55#elif defined(TUKLIB_CPUCORES_PSTAT_GETDYNAMIC)
56 struct pst_dynamic pst;
57 if (pstat_getdynamic(&pst, sizeof(pst), 1, 0) != -1)
58 ret = pst.psd_proc_cnt;
49#endif
50
51 return ret;
52}
59#endif
60
61 return ret;
62}