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

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -