[Xenomai] Issue while porting ipipe to kernel > 4.5 (clockevents API change)

Thierry Bultel thierry.bultel at basystemes.fr
Mon Apr 11 11:45:55 CEST 2016


Hi,
while porting ipipe to 4.5, I am facing the following issue:

clockchips.h has changed, and the set_mode function pointer has been 
replaced by

     int            (*set_state_periodic)(struct clock_event_device *);
     int            (*set_state_oneshot)(struct clock_event_device *);
     int            (*set_state_oneshot_stopped)(struct 
clock_event_device *);
     int            (*set_state_shutdown)(struct clock_event_device *);

Moreover, CLOCK_EVT_MODE_XXX have been renamed to :

enum clock_event_state {
     CLOCK_EVT_STATE_DETACHED,
     CLOCK_EVT_STATE_SHUTDOWN,
     CLOCK_EVT_STATE_PERIODIC,
     CLOCK_EVT_STATE_ONESHOT,
     CLOCK_EVT_STATE_ONESHOT_STOPPED,
};

The impact therefore goes further than ipipe , since xenomai uses a 
single pointer
for performing emulation.

I am just wondering what is the best way to deal with this, without 
impacting to much code
Is it best to add a compatibility wrapper (moreover, the set_state_xxx 
functions are only used in clockevents.c), and some extra #defines
or to spread the changes up to xenomai code ?

Thanks,
Thierry



More information about the Xenomai mailing list