strange grammar of c for l-value (in linux kernel: per_cpu) -
all.
When I was looking at the Linux kernel source, I found this snippet:
per_cpu (zcache_dstmem, cpu) = null; If I look at the definition of per_cpu, then it happens:
#defineVERIFY_PERCPU_PTR (__p) ({\ __verify_pcpu_ptr (__p )); \ (Typhus (* (__p)) __kernel __force *) (__p); \}) #define per_cpu (var, cpu) (* ((zero) (CPU), VERIFY_PERCPU_PTR (& amp; var))) If I parse preprocessors , Then it becomes:
* ((zero) (CPU), {__verify_pcpu_ptr (& amp; zcache_dstmem); (typef (zcache_dstmem) __call _-force *) (__p );}} = = NULL I feel very strong that I read it incorrectly, and I do not know how to interpret this snippet. Any help?
Missed one replacement
* ((zero) (cpu) , {__verify_pcpu_ptr (& amp; zcache_dstmem); (typef (zcache_dstmem) __kernel __force *) (& amp; zcache_dstmem);}) = NULL This is an example of a comma is. The result of the block is the last expression I do not know what it is doing with (zero) (cpu) part, but and zcache_dstmem looks like it is set to tap Happening? Best wishes are ignoring this!
Comments
Post a Comment