On Sun, Oct 10, 2010 at 5:51 AM, Onkar Mahajan <[email protected]> wrote:
> #ifdef __CHECKER__
> # define __user        __attribute__((noderef, address_space(1)))
> # define __kernel    __attribute__((address_space(0)))
> # define __safe        __attribute__((safe))
> # define __force    __attribute__((force))
> # define __nocast    __attribute__((nocast))
> # define __iomem    __attribute__((noderef, address_space(2)))
> # define __acquires(x)    __attribute__((context(x,0,1)))
> # define __releases(x)    __attribute__((context(x,1,0)))
> # define __acquire(x)    __context__(x,1)
> # define __release(x)    __context__(x,-1)
> # define __cond_lock(x,c)    ((c) ? ({ __acquire(x); 1; }) : 0)
> # define __percpu    __attribute__((noderef, address_space(3)))
> extern void __chk_user_ptr(const volatile void __user *);
> extern void __chk_io_ptr(const volatile void __iomem *);
> #else
> # define __user
> # define __kernel
> # define __safe
> # define __force
> # define __nocast
> # define __iomem
> # define __chk_user_ptr(x) (void)0
> # define __chk_io_ptr(x) (void)0
> # define __builtin_warning(x, y...) (1)
> # define __acquires(x)
> # define __releases(x)
> # define __acquire(x) (void)0
> # define __release(x) (void)0
> # define __cond_lock(x,c) (c)
> # define __percpu
> #endif
>
> for __CHECKER__ defined , i don't see the definition for __chk_user_ptr
> anywhere ?

>From what I can tell, __CHECKER__ is defined when using sparse, a
semantic compiler for C.
<http://mail.nl.linux.org/kernelnewbies/2005-01/msg00270.html>

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.DaveHylands.com/

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to