全て。
Linux カーネル ソースを閲覧しているときに、次のスニペットを見つけました。
per_cpu(zcache_dstmem, cpu) = NULL;
per_cpu の定義を調べると、次のようになります。
#define VERIFY_PERCPU_PTR(__p) ({ \
__verify_pcpu_ptr((__p)); \
(typeof(*(__p)) __kernel __force *)(__p); \
})
#define per_cpu(var, cpu) (*((void)(cpu), VERIFY_PERCPU_PTR(&(var))))
プリプロセッサを解析すると、次のようになります。
*((void)(cpu), { __verify_pcpu_ptr(&zcache_dstmem); (typeof(zcache_dstmem) __kernel _-force *)(__p); }) = NULL
私はそれを誤って解析したと強く感じており、このスニペットをどのように理解すればよいかわかりません。何か助けはありますか?