[PATCH 2/3] Add hook for BSP to act when time is set
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Oct 4 06:24:58 UTC 2019
On 04/10/2019 08:06, Chris Johns wrote:
> On 4/10/19 3:10 pm, Sebastian Huber wrote:
>> On 04/10/2019 04:44, Chris Johns wrote:
>>> Is this only useful for virtual BSPs and is it always a requirement to implement
>>> this call in those environments?
>>>
>>> Would this call be useful to a non-virtual BSP, for example one with a battery
>>> backed RTC device?
>>>
>>> Would a hook API along the lines of ....
>>>
>>> typedef int (*_TOD_Set_Handler)(const struct timespec *tod);
>>> _TOD_Set_Handler _TOD_Set_hook(_TOD_Set_Handler handler);
>>>
>>> ... be more flexible?
>> Yes, I think this should be generalized to allow RTC drivers to use this API as
>> well. I think it should be possible to install (and remove) more than one hook,
>> e.g.
>>
>> typedef enum {
>> TOD_ACTION_SET_CLOCK
>> } TOD_Action;
> Nice.
>
>> typedef struct TOD_Hook {
>> Chain_Node Node;
>> int (*handler)(struct TOD_Handler *, TOD_Action, const struct timespec *);
>> } TOD_Hook;
> I like the simpler interface of returning the current hook and specifying those
> who obtain a hook call the returned hook pointer if it is not NULL. This way we
> only need to hold a single pointer and there is no complexity around locking etc
> to update a list as the hook holder has to deal with that locally.
We already have _TOD_Lock() which uses a full mutex. If you let the
caller handle the potential chaining, then you may loose events.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list