Re: __chk_user_ptr : How does it work ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Oct 10, 2010 at 5:51 AM, Onkar Mahajan <kern.devel@xxxxxxxxx> 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 ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux