我想实现多个hrtimers,但我不确定如何使用相同的回调函数。例如,我有一个my_struct类型的数组,其中一个字段是struct hrtimer。
当我进入回调函数时,如何确定数组的哪个元素正在调用它?
答案 0 :(得分:2)
使用container_of宏:
struct my_struct {
int my_something;
struct hrtimer my_timer;
...
};
enum hrtimer_restart my_callback(struct hrtimer *hrtimer)
{
struct my_struct my = container_of(hrtimer, struct my_struct, my_timer);
my->my_something = 42;
...
}