Files | |
file | registry.c |
This file is part of the Xenomai project. | |
Functions | |
int | xnregistry_enter (const char *key, void *objaddr, xnhandle_t *phandle, xnpnode_t *pnode) |
Register a real-time object. | |
int | xnregistry_bind (const char *key, xnticks_t timeout, xnhandle_t *phandle) |
Bind to a real-time object. | |
int | xnregistry_remove (xnhandle_t handle) |
Forcibly unregister a real-time object. | |
int | xnregistry_remove_safe (xnhandle_t handle, xnticks_t timeout) |
Unregister an idle real-time object. | |
void * | xnregistry_get (xnhandle_t handle) |
Find and lock a real-time object into the registry. | |
u_long | xnregistry_put (xnhandle_t handle) |
Unlock a real-time object from the registry. | |
void * | xnregistry_fetch (xnhandle_t handle) |
Find a real-time object into the registry. |
|
Bind to a real-time object. This service retrieves the registry handle of a given object identified by its key. Unless otherwise specified, this service will block the caller if the object is not registered yet, waiting for such registration to occur.
Environments: This service can be called from:
Rescheduling: always unless the request is immediately satisfied or timeout specifies a non-blocking operation.
|
|
Register a real-time object. This service allocates a new registry slot for an associated object, and indexes it by an alphanumeric key for later retrieval.
Environments: This service can be called from:
Rescheduling: possible. |
|
Find a real-time object into the registry. This service retrieves an object from its handle into the registry and returns the memory address of its descriptor.
This service can be called from:
Rescheduling: never. |
|
Find and lock a real-time object into the registry. This service retrieves an object from its handle into the registry and prevents it removal atomically. A locking count is tracked, so that xnregistry_get() and xnregistry_put() must be used in pair.
This service can be called from:
Rescheduling: never. |
|
Unlock a real-time object from the registry. This service decrements the lock count of a registered object previously locked by a call to xnregistry_get(). The object is actually unlocked from the registry when the locking count falls down to zero, thus waking up any thread currently blocked on xnregistry_remove() for unregistering it.
This service can be called from:
Rescheduling: possible if the lock count falls down to zero and some thread is currently waiting for the object to be unlocked. |
|
Forcibly unregister a real-time object. This service forcibly removes an object from the registry. The removal is performed regardless of the current object's locking status.
Environments: This service can be called from:
Rescheduling: never. |
|
Unregister an idle real-time object. This service removes an object from the registry. The caller might sleep as a result of waiting for the target object to be unlocked prior to the removal (see xnregistry_put()).
Environments: This service can be called from:
Rescheduling: possible if the object to remove is currently locked and the calling context can sleep.
|