标签: c linux linux-kernel linux-device-driver embedded-linux
#define MS(_v, _f) (((_v) & _f##_MASK) >> _f##_LSB)
此宏在drivers/net/wireless/ath/ath10k/core.h。
drivers/net/wireless/ath/ath10k/core.h
答案 0 :(得分:4)
_v给出一个表达式,评估 v alue(寄存器)和_f命名 f 字段。宏扩展为一个表达式,该表达式使用FIELD_MASK命名的掩码对值进行按位(&),然后右移FIELD_LSB以对其进行右对齐。
_v
_f
FIELD_MASK
FIELD_LSB
换句话说,它解包了一个位域。