Lines Matching refs:name

79  * Evaluates to the byte offset of the per-cpu variable name.
81 #define __pcpu_offset(name) \
82 __offsetof(struct pcpu, name)
85 * Evaluates to the type of the per-cpu variable name.
87 #define __pcpu_type(name) \
88 __typeof(((struct pcpu *)0)->name)
91 * Evaluates to the address of the per-cpu variable name.
93 #define __PCPU_PTR(name) __extension__ ({ \
94 __pcpu_type(name) *__p; \
99 "i" (__pcpu_offset(name))); \
105 * Evaluates to the value of the per-cpu variable name.
107 #define __PCPU_GET(name) __extension__ ({ \
108 __pcpu_type(name) __res; \
117 : "m" (*(struct __s *)(__pcpu_offset(name)))); \
120 __res = *__PCPU_PTR(name); \
126 * Adds a value of the per-cpu counter name. The implementation
129 #define __PCPU_ADD(name, val) do { \
130 __pcpu_type(name) __val; \
140 : "=m" (*(struct __s *)(__pcpu_offset(name))) \
143 *__PCPU_PTR(name) += __val; \
147 * Increments the value of the per-cpu counter name. The implementation
150 #define __PCPU_INC(name) do { \
151 CTASSERT(sizeof(__pcpu_type(name)) == 1 || \
152 sizeof(__pcpu_type(name)) == 2 || \
153 sizeof(__pcpu_type(name)) == 4); \
154 if (sizeof(__pcpu_type(name)) == 1) { \
156 : "=m" (*(__pcpu_type(name) *)(__pcpu_offset(name)))\
157 : "m" (*(__pcpu_type(name) *)(__pcpu_offset(name))));\
158 } else if (sizeof(__pcpu_type(name)) == 2) { \
160 : "=m" (*(__pcpu_type(name) *)(__pcpu_offset(name)))\
161 : "m" (*(__pcpu_type(name) *)(__pcpu_offset(name))));\
162 } else if (sizeof(__pcpu_type(name)) == 4) { \
164 : "=m" (*(__pcpu_type(name) *)(__pcpu_offset(name)))\
165 : "m" (*(__pcpu_type(name) *)(__pcpu_offset(name))));\
170 * Sets the value of the per-cpu variable name to value val.
172 #define __PCPU_SET(name, val) do { \
173 __pcpu_type(name) __val; \
183 : "=m" (*(struct __s *)(__pcpu_offset(name))) \
186 *__PCPU_PTR(name) = __val; \