user_mode(regs) macro in kernel

Mulyadi Santosa mulyadi.santosa at gmail.com
Wed Jun 20 11:14:18 EDT 2012


On Wed, Jun 20, 2012 at 6:45 PM, sumeet linux <sumeet4linux at gmail.com> wrote:
> Hi All,
>
> What is the meaning of user_mode(regs) macro ?  What does it do ?

I assume you were referring to:
http://lxr.linux.no/#linux+v3.4.3/arch/x86/include/asm/ptrace.h#L164

right?

let me paste the code here:
return !!(regs->cs & 3)

As you can see there, it retrieve the CS register and AND it with 3
(11 in binary). We know that 3 in CS (Code segment) means CPU is
currently operating in ring level 3 a.k.a user mode. Whereas if it is
0, then it is in kernel mode.

Hope it makes it clear for you :)

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com



More information about the Kernelnewbies mailing list