cpusetGetName - get the name of the cpuset to which a pro
cess is attached
SYNOPSIS
#include <cpuset.h>
cpuset_NameList_t *cpusetGetName(pid_t pid);
DESCRIPTION
The cpusetGetName function is used to obtain the name of
the cpuset to which the specified process has been
attached. The pid argument specifies the process ID.
Currently, the only valid value for pid is 0, which
returns the name of the cpuset to which the current pro
cess is attached.
The function returns a pointer to a structure of type
cpuset_NameList_t (defined in <cpuset.h>). The function
cpusetGetName allocates the memory for the structure and
all of its associated data. The user is responsible for
freeing the memory using the function cpuset
FreeNameList(3x). The cpuset_NameList_t structure is
defined as follows:
typedef struct {
int count;
char **list;
int *status;
} cpuset_NameList_t;
count is the number of cpuset names in the list. In the case of
cpusetGetName this member will should only contain the values of
0 and 1.
list references the list of names.
status is a list of status flags that indicate the status of the
corresponding cpuset name in list. The following flag values may
be used:
CPUSET_QUEUE_NAME
Indicates that the corresponding name in list is the name
of a cpuset queue.
CPUSET_CPU_NAME
Indicates that the corresponding name in list is the CPU
ID for a restricted CPU.
The memory for list and status is allocated when the
cpuset_NameList_t is allocated and it is released when the
cpuset_NameList_t structure is released.
This example obtains cpuset name or CPU ID to which the
current process is attached:
cpuset_NameList_t *name;
/* Get the name else print error & exit */
if ( !(name = cpusetGetName(0)) ) {
perror("cpusetGetName");
exit(1);
}
if (name->count == 0) {
printf("Current process not attached\n");
} else {
if (name->status[0] == CPUSET_CPU_NAME) {
printf("Current process attached to"
" CPU_ID[%s]\n",
name->list[0]);
} else {
printf("Current process attached to"
" CPUSET[%s]\n",
name->list[0]);
}
}
cpusetFreeNameList(name);
NOTES
cpusetGetName is found in the library "libcpuset.so", and
will be loaded if the option --llccppuusseett is used with cc(1)
or ld(1).
RESTRICTIONS
Not all of the above capabilities are implemented. See
the RESTRICTIONS secion in manual entry cpuset(4) for
details.
SEE ALSO
cpuset(1), cpusetFreeNameList(3x), cpusetGetNameList(3x),
cpuset(5).
DIAGNOSTICS
If successful, cpusetGetName returns a pointer to a
cpuset_NameList_t structure. If cpusetGetName fails, it
returns NULL and errno is set to indicate the error. The
possible values for errno include those values as set by
sbrk(2), and the following:
EINVAL Invalid value for ppiidd was supplied. Currenlty only
0 is accepted to obtain the cpuset name that the
current process is attached to.
ERANGE Number of CPUs configured on the system is not a
value greater than or equal to 1.
Man(1) output converted with
man2html