DPDK  17.02.1
Typedefs | Functions
rte_alarm.h File Reference
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef void(* rte_eal_alarm_callback )(void *arg)

Functions

int rte_eal_alarm_set (uint64_t us, rte_eal_alarm_callback cb, void *cb_arg)
int rte_eal_alarm_cancel (rte_eal_alarm_callback cb_fn, void *cb_arg)

Detailed Description

Alarm functions

Simple alarm-clock functionality supplied by eal. Does not require hpet support.

Definition in file rte_alarm.h.

Typedef Documentation

typedef void(* rte_eal_alarm_callback)(void *arg)

Signature of callback back function called when an alarm goes off.

Definition at line 55 of file rte_alarm.h.

Function Documentation

int rte_eal_alarm_set ( uint64_t  us,
rte_eal_alarm_callback  cb,
void *  cb_arg 
)

Function to set a callback to be triggered when us microseconds have expired. Accuracy of timing to the microsecond is not guaranteed. The alarm function will not be called before the requested time, but may be called a short period of time afterwards. The alarm handler will be called only once. There is no need to call "rte_eal_alarm_cancel" from within the callback function.

Parameters
usThe time in microseconds before the callback is called
cbThe function to be called when the alarm expires
cb_argPointer parameter to be passed to the callback function
Returns
On success, zero. On failure, a negative error number
Examples:
examples/l2fwd-jobstats/main.c.
int rte_eal_alarm_cancel ( rte_eal_alarm_callback  cb_fn,
void *  cb_arg 
)

Function to cancel an alarm callback which has been registered before. If used outside alarm callback it wait for all callbacks to finish execution.

Parameters
cb_fnalarm callback
cb_argPointer parameter to be passed to the callback function. To remove all copies of a given callback function, irrespective of parameter, (void *)-1 can be used here.
Returns
  • value greater than 0 and rte_errno not changed - returned value is the number of canceled alarm callback functions
  • value greater or equal 0 and rte_errno set to EINPROGRESS, at least one alarm could not be canceled because cancellation was requested from alarm callback context. Returned value is the number of succesfuly canceled alarm callbacks
  • 0 and rte_errno set to ENOENT - no alarm found
  • -1 and rte_errno set to EINVAL - invalid parameter (NULL callback)