cpuandset man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

cpusetops(3)							  cpusetops(3)

NAME
       cpusetops,  cpuaddset,  cpuandset,  cpucopyset, cpucountset, cpudelset,
       cpudiffset,  cpuemptyset,   cpufillset,	 cpuisemptyset,	  cpuismember,
       cpuorset,  cpusetcreate,	 cpusetdestroy, cpuxorset - Perform operations
       on CPU sets (libc library)

SYNOPSIS
       #include <cpuset.h>

       int cpuaddset(
	       cpuset_t set,
	       cpuid_t cpuid ); int cpuandset(
	       cpuset_t set_src1,
	       cpuset_t set_src2,
	       cpuset_t set_dst ); int cpucopyset(
	       cpuset_t set_src,
	       cpuset_t set_dst ); int cpucountset(
	       cpuset_t set ); int cpudelset(
	       cpuset_t set,
	       cpuid_t cpuid ); int cpudiffset(
	       cpuset_t set_src1,
	       cpuset_t set_src2,
	       cpuset_t set_dst ); int cpuemptyset(
	       cpuset_t set ); int cpufillset(
	       cpuset_t set ); int cpuisemptyset(
	       cpuset_t set ); int cpuismember(
	       cpuset_t set,
	       cpuid_t cpuid ); int cpuorset(
	       cpuset_t set_src1,
	       cpuset_t set_src2,
	       cpuset_t set_dst ); int cpusetcreate(
	       cpuset_t *set ); int cpusetdestroy(
	       cpuset_t *set ); int cpuxorset(
	       cpuset_t set_src1,
	       cpuset_t set_src2,
	       cpuset_t set_dst );

PARAMETERS
       Identifies a CPU.  Specifies or points to a CPU set.  Specifies	a  CPU
       set that is being copied to or that is the result of a logical OR, XOR,
       or AND operation on two other CPU sets.	Specifies a CPU	 set  that  is
       being  copied  to another CPU set or that is part of a logical OR, XOR,
       or AND operation with another CPU set.

DESCRIPTION
       The cpusetops primitives manipulate sets of CPUs, by operating on  data
       objects (of type cpuset_t) that are created by cpusetcreate().

       The  cpusetcreate()  function  allocates,  and sets to empty, a CPU set
       pointed to by set.

       The cpusetdestroy() function releases the memory that was  obtained  by
       cpusetcreate() for the specified CPU set pointed to by set.

       The cpucountset() function returns the number of members in the CPU set
       specified by set.

       The cpuemptyset() function initializes the CPU set  specified  by  set,
       such that no CPUs are included in the set.

       The  cpufillset()  function  initializes	 the CPU set specified by set,
       such that as many CPUs as the system architecture is  capable  of  sup‐
       porting	are included in the set. Note that this platform maximum might
       be more than the number of CPUs that are available on the system.

       The cpuismember() function tests whether the CPU specified by the value
       of cpuid is a member of the CPU set specified by set.

       The cpuisemptyset() function tests whether the CPU set specified by the
       set is empty.

       The cpucopyset() function copies the contents of the CPU set  specified
       by set_src to the  CPU set specified by set_dst.

       The  cpuaddset()	 and  cpudelset() functions respectively add or delete
       the individual CPU specified by the value of cpuid to or from  the  CPU
       set specified by set.

       The  cpuandset(), cpuorset(), and cpuxorset() functions perform a logi‐
       cal AND, OR, or XOR operation, respectively, on the CPU sets  specified
       by  set_src1  and set_src2, storing the result in the CPU set specified
       by set_dst.

       The cpudiffset() function finds the logical difference between the  CPU
       sets  specified by set_src1 and set_src2, storing the result in the CPU
       set specified by set_dst. (The result is made up of  members  that  are
       included in set_src1 but not in

       set_src2.)

RETURN VALUES
       These  functions	 return the following values: Success (returned by all
       functions).

	      For cpuisemptyset() and cpuismember() only,  0  also  means  the
	      condition	 being tested is false; that is, the specified CPU set
	      is not empty or does not contain the specified member.   Success
	      (returned	  by  cpuisemptyset()  and  cpuismember()only).	  This
	      return value also means the condition being tested is true; that
	      is,  the	specified  CPU	set is empty or contains the specified
	      member.  Failure (returned by  all  functions).  In  this	 case,
	      errno is set to indicate the error.

ERRORS
       The cpuaddset(), cpuandset(), cpucopyset(), cpucountset(), cpudelset(),
       cpudiffset(), cpuemptyset(), cpufillset(),  cpuisemptyset(),  cpuismem‐
       ber(), cpuorset(), and cpuxorset() functions set errno to the following
       value for the corresponding condition: The value	 of  a	set  or	 set_*
       argument	 is  invalid  (possibly	 is not a CPU set created bycpusetcre‐
       ate()).

       The cpusetcreate() and cpusetdestroy() functions set errno  to  one  of
       the  the	 following values for the corresponding condition: The address
       of the specified CPU set is invalid.  For cpusetcreate() only, no  mem‐
       ory could be allocated for the specified CPU set.

       If the cpuaddset(), cpudelset(), and cpuismember() functions fail, they
       set errno to the following value for the reason specified: The value of
       cpuid is an invalid or unsupported CPU identifier.

EXAMPLES
       The following example demonstrates a variety of CPU set operations:

       #include <cpuset.h>

       int main() {
	       cpuset_t cpuset, cpuset2;

	       /* Create cpusets - initialized as empty */
	       cpusetcreate(&cpuset);
	       cpusetcreate(&cpuset2);
	       /* demonstrate cpuset operations */

	       /* add cpu 0 to cpuset */
	       if (cpuaddset(cpuset, 0) == -1) {
		       perror("cpuaddset");
		       return 0;
	       }

	       /* copy cpuset to cpuset2 */
	       if (cpucopyset(cpuset, cpuset2) == -1) {
		       perror("cpucopyset");
		       return 0;
	       }

	       if (cpuaddset(cpuset, 1) == -1) {
		       /* add cpu 1 to cpuset */
		       perror("cpuaddset");
		       return 0;
	       }

	       /* difference of cpuset and cpuset2, store in cpuset */
	       if (cpudiffset(cpuset, cpuset2, cpuset) == -1) {
		       perror("cpudiffset");
		       return 0;
	       }

	       /* Enumerate cpuset. */
	       while (1) {
		       cpuid_t id;
		       int flags = SET_CURSOR_CONSUME;
		       cpu_cursor_t cpu_cursor = SET_CURSOR_INIT;

		       id = cpu_foreach(cpuset, flags, &cpu_cursor);

		       if (id == CPU_NONE) {
			       printf("\n");
			       break;
		       } else {
			       printf("%3d ", id);
		       }
	       }

	       /* Destroy cpuset */
	       cpusetdestroy(&cpuset);
	       cpusetdestroy(&cpuset2);
	       return 0; }

SEE ALSO
       Functions: cpu_foreach(3), numa_intro(3)

       Files: numa_types(4)

								  cpusetops(3)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net