Lines Matching defs:ptr
160 #define ptr_mask_bits(ptr, n) ({ \
161 unsigned long __v = (unsigned long)(ptr); \
162 (typeof(ptr))(__v & -BIT(n)); \
165 #define ptr_unmask_bits(ptr, n) ((unsigned long)(ptr) & (BIT(n) - 1))
167 #define ptr_unpack_bits(ptr, bits, n) ({ \
168 unsigned long __v = (unsigned long)(ptr); \
170 (typeof(ptr))(__v & -BIT(n)); \
173 #define ptr_pack_bits(ptr, bits, n) ({ \
176 ((typeof(ptr))((unsigned long)(ptr) | __bits)); \
179 #define ptr_dec(ptr) ({ \
180 unsigned long __v = (unsigned long)(ptr); \
181 (typeof(ptr))(__v - 1); \
184 #define ptr_inc(ptr) ({ \
185 unsigned long __v = (unsigned long)(ptr); \
186 (typeof(ptr))(__v + 1); \
189 #define page_mask_bits(ptr) ptr_mask_bits(ptr, PAGE_SHIFT)
190 #define page_unmask_bits(ptr) ptr_unmask_bits(ptr, PAGE_SHIFT)
191 #define page_pack_bits(ptr, bits) ptr_pack_bits(ptr, bits, PAGE_SHIFT)
192 #define page_unpack_bits(ptr, bits) ptr_unpack_bits(ptr, bits, PAGE_SHIFT)
196 #define ptr_offset(ptr, member) offsetof(typeof(*(ptr)), member)
198 #define fetch_and_zero(ptr) ({ \
199 typeof(*ptr) __T = *(ptr); \
200 *(ptr) = (typeof(*ptr))0; \
208 * with sparse for __user @ptr.
210 #define container_of_user(ptr, type, member) ({ \
211 void __user *__mptr = (void __user *)(ptr); \
212 BUILD_BUG_ON_MSG(!__same_type(*(ptr), struct_member(type, member)) && \
213 !__same_type(*(ptr), void), \
235 static inline u64 ptr_to_u64(const void *ptr)
237 return (uintptr_t)ptr;