libspe2  0.9a
Macros | Functions
info.h File Reference
#include "spebase.h"
Include dependency graph for info.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define THREADS_PER_BE   2
 

Functions

int _base_spe_count_physical_cpus (int cpu_node)
 
int _base_spe_count_physical_spes (int cpu_node)
 
int _base_spe_count_usable_spes (int cpu_node)
 

Macro Definition Documentation

#define THREADS_PER_BE   2

Definition at line 25 of file info.h.

Referenced by _base_spe_count_physical_cpus().

Function Documentation

int _base_spe_count_physical_cpus ( int  cpu_node)

Definition at line 30 of file info.c.

References DEBUG_PRINTF, and THREADS_PER_BE.

Referenced by _base_spe_count_physical_spes(), and _base_spe_cpu_info_get().

31 {
32  const char *buff = "/sys/devices/system/cpu";
33  DIR *dirp;
34  int ret = -2;
35  struct dirent *dptr;
36 
37  DEBUG_PRINTF ("spe_count_physical_cpus()\n");
38 
39  // make sure, cpu_node is in the correct range
40  if (cpu_node != -1) {
41  errno = EINVAL;
42  return -1;
43  }
44 
45  // Count number of CPUs in /sys/devices/system/cpu
46  if((dirp=opendir(buff))==NULL) {
47  fprintf(stderr,"Error opening %s ",buff);
48  perror("dirlist");
49  errno = EINVAL;
50  return -1;
51  }
52  while((dptr=readdir(dirp))) {
53  ret++;
54  }
55  closedir(dirp);
56  return ret/THREADS_PER_BE;
57 }
#define THREADS_PER_BE
Definition: info.h:25
#define DEBUG_PRINTF(fmt, args...)
Definition: elf_loader.c:45
int _base_spe_count_physical_spes ( int  cpu_node)

Definition at line 71 of file info.c.

References _base_spe_count_physical_cpus(), and DEBUG_PRINTF.

Referenced by _base_spe_count_usable_spes(), and _base_spe_cpu_info_get().

72 {
73  const char *buff = "/sys/devices/system/spu";
74  DIR *dirp;
75  int ret = -2;
76  struct dirent *dptr;
77  int no_of_bes;
78 
79  DEBUG_PRINTF ("spe_count_physical_spes()\n");
80 
81  // make sure, cpu_node is in the correct range
82  no_of_bes = _base_spe_count_physical_cpus(-1);
83  if (cpu_node < -1 || cpu_node >= no_of_bes ) {
84  errno = EINVAL;
85  return -1;
86  }
87 
88  // Count number of SPUs in /sys/devices/system/spu
89  if((dirp=opendir(buff))==NULL) {
90  fprintf(stderr,"Error opening %s ",buff);
91  perror("dirlist");
92  errno = EINVAL;
93  return -1;
94  }
95  while((dptr=readdir(dirp))) {
96  ret++;
97  }
98  closedir(dirp);
99 
100  if(cpu_node != -1) ret /= no_of_bes; // FIXME
101  return ret;
102 }
#define DEBUG_PRINTF(fmt, args...)
Definition: elf_loader.c:45
int _base_spe_count_physical_cpus(int cpu_node)
Definition: info.c:30

Here is the call graph for this function:

int _base_spe_count_usable_spes ( int  cpu_node)

Definition at line 62 of file info.c.

References _base_spe_count_physical_spes().

Referenced by _base_spe_cpu_info_get().

63 {
64  return _base_spe_count_physical_spes(cpu_node); // FIXME
65 }
int _base_spe_count_physical_spes(int cpu_node)
Definition: info.c:71

Here is the call graph for this function: