Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

nsg_init(3) [osf1 man page]

nsg_init(3)						     Library Functions Manual						       nsg_init(3)

NAME
nsg_init - Look up or create a NUMA Scheduling Group (libnuma library) SYNOPSIS
#include <numa.h> nsgid_t nsg_init( key_t key, ulong_t flags ); PARAMETERS
Specifies the key that identifies the NUMA Scheduling Group (NSG). This value may be one of the following: An arbitrary binary value other than zero If the NSG_GETBYPID flag is set, the process ID of a member process of the requested NSG Specifies lookup or creation flags. See DESCRIPTION for details. DESCRIPTION
The nsg_init() function looks up and possibly creates the NSG identified by the key parameter. The flags parameter supplies options for the lookup or create operation. If the flags parameter includes the NSG_GETBYPID flag, then the key parameter is the process ID (pid_t) of a process that is currently a member of the requested NSG. Otherwise, key is an arbitrary binary value that identifies the requested NSG. If the NSG identified by key does not already exist, an error will be returned unless the NSG_CREATE flag is specified. The NSG_CREATE flag instructs nsg_init() to create the NSG and return its identifier. If NSG_CREATE and NSG_EXCL are both specified, an error will be returned if the NSG identified by key already exists. If the NSG_GETBYPID flag is set and the process identified by the value of key does not exist, an error is returned. If the NSG_CREATE flag is set along with the NSG_GETBYPID flag, and the process identified by the value of key exists but is not currently a member of an NSG, a new NSG will be created using the value of key (the process's ID) and the process will be attached to the new NSG. This establishes the "home RAD" of the process as the home RAD for the NSG. After creating a new NSG, the nsg_init() function initializes an associated nsgid_ds structure as follows: The nsg_perm.cuid and nsg_perm.uid members are set equal to the effective user ID of the calling process. The nsg_perm.cgid and nsg_perm.gid members are set equal to the effective group ID of the calling process. The low order nine bits of nsg_perm.mode are set equal to the low order nine bits of flags. The nsg_perm.nattach member is set to zero (or 1 if NSG_GETBYPID is specified in flags). The nsg_perm.mode permissions control operations on NSGs as follows: Write permission is required to destroy the NSG or to set the owner IDs and permissions. Read permission is required to query the NSG status or membership roster. Execute permission is required to attach processes or threads to an NSG. If NSG_CLEANUP is specified in flags, the NSG will be marked for automatic deletion when the nsg_perm.nattach member of the associated nsgid_ds structure transitions from non-zero to zero. RETURN VALUES
Success. Failure. In this case, errno is set to indicate the error. ERRORS
If the nsg_init() function fails, it sets errno to one of the following values for the specified condition: An NSG already exists for the specified key, but the caller does not have access based on the NSG's current permissions. An NSG already exists for the specified key, but NSG_CREATE and NSG_EXCL flags were specified. No NSG exists for the specified key, and the NSG_CREATE flag was not specified. The NSG_GETBYPID flag was set and the process identified by key was not found. One or more illegal values for flags was set. SEE ALSO
Functions: nsg_attach_pid(3), nsg_attach_thread(3), numa_intro(3) Files: numa_types(4) nsg_init(3)

Check Out this Related Man Page

msgget(2)							System Calls Manual							 msgget(2)

NAME
msgget - Returns (and possibly creates) the ID for a message queue SYNOPSIS
#include <sys/msg.h> int msgget( key_t key, int msgflg); Application developers may want to specify #include statements for <sys/types.h> and <sys/ipc.h> before the one for <sys/msg.h> if programs are being developed for multiple platforms. The additional #include statements are not required on Tru64 UNIX systems or by ISO or X/Open standards, but may be required on other vendors' systems that conform to these standards. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: msgget(): XSH5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
Specifies the key that identifies the message queue. The value for the key parameter can be IPC_PRIVATE or a random number other than zero (0). To ensure that the msgget() function returns a new message queue ID, specify the IPC_PRIVATE keyword. Specifies flags that control the msgget() function. Possible values are as follows: Specifies creating a message queue ID. If the specified key does not exist, the msgget function creates a message queue ID and associates it with the specified key. If the specified key does exist, and IPC_EXCL is not set, the msgget function returns the message queue ID associated with key. If the specified key does exist and IPC_EXCL is set, the msgget function fails and returns an error. Specifies that you want to ensure that your application is the only one using the specified key parameter. If the specified key already exists, the msgget function fails and returns an error notification. DESCRIPTION
The msgget function returns the message queue ID for the message queue identified by the key parameter. If the message queue ID does not exist, the msgget() function attempts to create it. If you specify IPC_PRIVATE for the key parameter, the msgget function returns the ID for a private (that is, newly created) message queue. The msgflg parameter supplies creation options for the msgget function. The IPC_CREAT flag specifies that you want the kernel to create a message queue for your application. The kernel returns the message queue ID to your application as the return value of the successful call to the msgget() function. The msgget() function does not create a message queue ID for your application under the following conditions: A message queue ID that is associated with the specified key already exists. In this case, the msgget() function returns the message queue ID associated with the key parameter (unless you have set the IPC_EXCL flag). You have set the IPC_EXCL flag and another application is using the specified key. In this case, the msgget() function fails and returns an error to your application. After creating a new message queue ID, the msgget function initializes the msqid_ds structure associated with the ID as follows: The msg_perm.cuid and msg_perm.uid members are set equal to the effective user ID of the calling process. The msg_perm.cgid and msg_perm.gid members are set equal to the effective group ID of the calling process. The low-order nine bits of the msg_perm.mode member are set equal to the low-order nine bits of msgflg. The msg_qnum, msg_lspid, msg_lrpid, msg_stime, and msg_rtime members are all set equal to zero. The msg_ctime member is set equal to the current time. The msg_qbytes member is set equal to the system limit. RETURN VALUES
Upon successful completion, the msgget() function returns a message queue identifier. Otherwise, the function returns a value of -1 and sets errno to indicate the error. ERRORS
The msgget function sets errno to the specified values for the following conditions: A message queue identifier exists for the key parame- ter, but the calling process does not have the appropriate privileges to perform the operation. The permission is specified by the low- order nine bits of the msgflg parameter. A message queue identifier exists for the key parameter, and both IPC_CREAT and IPC_EXCL are set. A message queue identifier does not exist for the key parameter and the IPC_CREAT value is not set. A message queue identifier can be cre- ated, but the system-imposed limit on the maximum number of allowed message queue identifiers has been exceeded. RELATED INFORMATION
Functions: msgctl(2), msgrcv(2), msgsnd(2), table(2), ftok(3) Files: msqid_ds(4) Standards: standards(5) delim off msgget(2)
Man Page