Attach a condition associated with a condition raise condition
Synopsis:
#include <ha/ham.h>
ham_condition_t *ham_condition_raise(
ham_entity_t *ehdl,
const char *cname,
unsigned rtype,
unsigned rclass,
unsigned rseverity,
unsigned flags );
Arguments:
- ehdl
- The HAM entity handle.
- cname
- The name of the condtion to trigger whenever the entity raises a condition that matches the
given rtype, rclass, and rseverity.
- rtype
- The type of the condition you want the entity to raise and match, which will trigger the
condition in cname.
- rclass
- The class of the condition you want the entity to raise and match, which will trigger the
condition in cname.
- rseverity
- The severity of the condition you want the entity to raise and match, which will trigger the
condition in cname.
- flags
- Currently not used.
Description:
This condition is triggered whenever an entity raises a condition, which
matches the given rtype, rclass, and rseverity.
An entity that raises a condition, does so with a given set of values for
type, class, and severity. Subscribers to this event can specify
the conditions they are interested in either explicitly or by using
the following special wild cards for each of these values.
CONDRAISETYPEANY /* ANY type : raised condition */
CONDRAISECLASSANY /* ANY class : raised condition */
CONDRAISESEVERITYANY /* ANY severity : raised condition */
The ehdl argument is an entity handle obtained either:
- from a ham_attach*() call or a ham_entity*() call
or:
- by calling ham_entity_handle*() with an
existing entity name. Since conditions are associated with entities,
the entity handle (ehdl) must be available before you can add conditions.
Returns:
A condition handle, or NULL if an error occurred
(errno is set).
Errors:
- EBADF
- Couldn't connect to the HAM.
- EEXIST
- The name provided for the condition already exists.
- EINVAL
- The handle, type, or name given is invalid (e.g., it
contains the / character) or is NULL.
- ENAMETOOLONG
- The name given (in aname) is too long, i.e.,
it exceeds _POSIX_PATH_MAX (defined in <limits.h>).
Note that the combined length of an entity/condition/action
name is also limited by _POSIX_PATH_MAX.
- ENOMEM
- Not enough memory to create a new handle.
In addition to the above errors, the HAM returns any error
it encounters while servicing this request.
Classification:
QNX Neutrino
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |