Xenomai  3.0.8
Clock services
Collaboration diagram for Clock services:


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.

clockThe clock to adjust.
deltaThe adjustment value expressed in nanoseconds.
Tags cobalt-core-tags "task-unrestricted, atomic-entry"
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.

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.

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.

clockThe clock for which a new event was received.
Tags cobalt-core-tags "coreirq-only, atomic-entry"
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.