user_mode(regs) macro in kernel
Hi All, What is the meaning of user_mode(regs) macro ? What does it do ? This macro used in many files in kernel like signal.c, trap.c, process.c files.
From the code it looks like it checks is in USER mode or KERNEL mode, but still not clear on usage and implementation of this macro.
Thanks. Regard, Sumeet
On Wed, Jun 20, 2012 at 6:45 PM, sumeet linux <sumeet4linux@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
It checks whether exception happened in user mode or supervisor mode On Jun 20, 2012 5:15 PM, "sumeet linux" <sumeet4linux@gmail.com> wrote:
Hi All,
What is the meaning of user_mode(regs) macro ? What does it do ? This macro used in many files in kernel like signal.c, trap.c, process.c files. From the code it looks like it checks is in USER mode or KERNEL mode, but still not clear on usage and implementation of this macro.
Thanks.
Regard, Sumeet
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (3)
-
Anirban Roy -
Mulyadi Santosa -
sumeet linux