user_mode(regs) macro in kernel

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

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

I assume you were referring to:


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 :)


Mulyadi Santosa
Freelance Linux trainer and consultant


More information about the Kernelnewbies mailing list