NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <ipc/chId.h>int uiBuild(KnUniqueId * ui, unsigned int type, unsigned int site, unsigned int stamp);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
IPC
The uiBuild() system call builds a unique identifier from values provided by the invoker. The built UI value is returned in the KnUniqueId structure pointed to by ui .
The type field defines the type of the UI as follows:
The UI will be usable as a port UI for the ipcSend(2K) and ipcCall(2K) system calls. The UI can also be used in a call to portDeclare(2K) to create a port with this UI as its global identifier.
E quivalent to K_UIPORT , with the difference that a UI of type K_UIPORT_STATPORT is associated with a so-called static port, which can only be created by a call to portDeclare(2K) . In addition, static ports cannot be migrated (see portMigrate(2K) ).
The UI refers to a port group Unique Identifier which was dynamically allocated by the system.
The UI refers to a static user port group.
The UI refers to a static system port group.
The UI will be a site UI.
The site argument is stored in the tail field of the UI . The stamp argument is stored in the head field of the UI . Its value must be lower than or equal to the K_CUI_STAMPMAX constant which is equal to 0x07FFFFFF.
The uiIsLocal() function checks whether the UI given by ui is recognized by the local site, and returns 1 if the UI is recognized, 0 otherwise.
On every site, the microkernel declares a pre-defined site UI by default. The uiSiteBuild() function returns the value of this pre-defined UI for the site whose site number is site (see uiLocalSite(2K) ). Note that uiSiteBuild() ( ui , site ) is equivalent to uiBuild() ( ui , K_UISITE , site , 0 , 0 ).
The uiClear() function initializes ui with a standard null value.
The uiEqual() function returns 1 if the two unique identifers passed as arguments are equal, 0 otherwise.
The uiGetSite() function returns the site information contained within ui .
The uiValid() function returns 0 if ui is equal to the null UI, 1 otherwise.
The uiIsLocal() function returns 1 if the UI checked is local, 0 otherwise. The uiValid() function returns 1 if the checked UI is different from the null value, 0 otherwise. The uiEqual() function returns 1 if the unique identifers are identical, 0 otherwise. Other calls return 0 upon successful completion, a negative error code otherwise.
The uiBuild() function can return K_EINVAL
The uiClear() , uiValid() , uiEqual() and uiGetSite() functions never return K_EFAULT . If they are invoked with an invalid UI pointer, an exception occurs within the caller's context.
Either the type argument is not valid, or the stamp argument is greater than the K_CUI_STAMPMAX (0x07FFFFFF) constant
Some of the data provided are outside the current actor's address space ( uiBuild() and uiLocalSite() ).
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO