Non-Real-Time Signalling Services
[Driver Development API]

Collaboration diagram for Non-Real-Time Signalling Services:

Detailed Description

These services provide a mechanism to request the execution of a specified handler in non-real-time context. The triggering can safely be performed in real-time context without suffering from unknown delays. The handler execution will be deferred until the next time the real-time subsystem releases the CPU to the non-real-time part.


Typedefs

typedef void(* rtdm_nrtsig_handler_t )(rtdm_nrtsig_t nrt_sig, void *arg)
 Non-real-time signal handler.

Functions

int rtdm_nrtsig_init (rtdm_nrtsig_t *nrt_sig, rtdm_nrtsig_handler_t handler, void *arg)
void rtdm_nrtsig_destroy (rtdm_nrtsig_t *nrt_sig)
void rtdm_nrtsig_pend (rtdm_nrtsig_t *nrt_sig)
 Trigger non-real-time signal.


Typedef Documentation

typedef void(* rtdm_nrtsig_handler_t)(rtdm_nrtsig_t nrt_sig, void *arg)

Non-real-time signal handler.

Parameters:
[in] nrt_sig Signal handle as returned by rtdm_nrtsig_init()
[in] arg Argument as passed to rtdm_nrtsig_init()
Note:
The signal handler will run in soft-IRQ context of the non-real-time subsystem. Note the implications of this context, e.g. no invocation of blocking operations.


Function Documentation

void rtdm_nrtsig_destroy ( rtdm_nrtsig_t *  nrt_sig  ) 

Release a non-realtime signal handler

Parameters:
[in,out] nrt_sig Signal handle Environments: This service can be called from: - Kernel module initialization/cleanup code
  • Kernel-based task
  • User-space task (RT, non-RT) Rescheduling: never.

int rtdm_nrtsig_init ( rtdm_nrtsig_t *  nrt_sig,
rtdm_nrtsig_handler_t  handler,
void *  arg 
)

Register a non-real-time signal handler

Parameters:
[in,out] nrt_sig Signal handle
[in] handler Non-real-time signal handler
[in] arg Custom argument passed to handler() on each invocation
Returns:
0 on success, otherwise: - -EAGAIN is returned if no free signal slot is available.
Environments:

This service can be called from:

Rescheduling: never.

void rtdm_nrtsig_pend ( rtdm_nrtsig_t *  nrt_sig  ) 

Trigger non-real-time signal.

Parameters:
[in,out] nrt_sig Signal handle
Environments:

This service can be called from:

Rescheduling: never in real-time context, possible in non-real-time environments.


Generated on Mon Mar 24 18:02:43 2008 for Xenomai API by  doxygen 1.5.3