Xenomai  3.0.8
Clock services
Collaboration diagram for Clock services:

Functions

int xnclock_register (struct xnclock *clock, const cpumask_t *affinity)
 Register a Xenomai clock. More...
 
void xnclock_deregister (struct xnclock *clock)
 Deregister a Xenomai clock. More...
 
void xnclock_tick (struct xnclock *clock)
 Process a clock tick. More...
 
void xnclock_adjust (struct xnclock *clock, xnsticks_t delta)
 Adjust a clock time. More...
 

Detailed Description

Function Documentation

◆ xnclock_adjust()

void xnclock_adjust ( struct xnclock *  clock,
xnsticks_t  delta 
)

Adjust a clock time.

This service changes the epoch for the given clock by applying the specified tick delta on its wallclock offset.

Parameters
clockThe clock to adjust.
deltaThe adjustment value expressed in nanoseconds.
Tags cobalt-core-tags "task-unrestricted, atomic-entry"
Note
Xenomai tracks the system time in nkclock, as a monotonously increasing count of ticks since the epoch. The epoch is initially the same as the underlying machine time.

◆ xnclock_deregister()

void xnclock_deregister ( struct xnclock *  clock)

Deregister a Xenomai clock.

This service uninstalls a Xenomai clock previously registered with xnclock_register().

This service may be called once all timers driven by clock have been stopped.

Parameters
clockThe clock to deregister.
Tags cobalt-core-tags "secondary-only"

◆ xnclock_register()

int xnclock_register ( struct xnclock *  clock,
const cpumask_t *  affinity 
)

Register a Xenomai clock.

This service installs a new clock which may be used to drive Xenomai timers.

Parameters
clockThe new clock to register.
affinityThe set of CPUs we may expect the backing clock device to tick on. As a special case, passing a NULL affinity mask means that timer IRQs cannot be seen as percpu events, in which case all outstanding timers will be maintained into a single global queue instead of percpu timer queues.
Tags cobalt-core-tags "secondary-only"

◆ xnclock_tick()

void xnclock_tick ( struct xnclock *  clock)

Process a clock tick.

This routine processes an incoming clock event, firing elapsed timers as appropriate.

Parameters
clockThe clock for which a new event was received.
Tags cobalt-core-tags "coreirq-only, atomic-entry"
Note
The current CPU must be part of the real-time affinity set unless the clock device has no particular IRQ affinity, otherwise weird things may happen.