I have this code in linux kernel:
#define task_cred_xxx(task, xxx)
({
__typeof__(((struct cred *)NULL)->xxx) ___val;
rcu_read_lock();
___val = __task_cred((task))->xxx;
rcu_read_unlock();
___val;
})
I never saw macro defined like this before, does that mean this is task_cred_xxx(task, xxx) returns ___val?
Thanks!