* processor flags
@ 2008-03-27 19:47 Cyrill Gorcunov
2008-03-27 19:55 ` H. Peter Anvin
0 siblings, 1 reply; 3+ messages in thread
From: Cyrill Gorcunov @ 2008-03-27 19:47 UTC (permalink / raw)
To: H. Peter Anvin, Ingo Molnar, LKML
Hi Peter, Ingo
could you spend a few minutes on me? ;)
You know, I'm almost complete changing the vm86 flags
with X86_EFLAGS_... but there is a hidden problem lays.
Look, in vm86.h we have the definition
#ifdef CONFIG_VM86
#define VM_MASK 0x00020000
#else
#define VM_MASK 0 /* ignored */
#endif
which has an indirect conditional compilation effect.
For example, if we take a look on include/asm-x86/ptrace.h
static inline int v8086_mode(struct pt_regs *regs)
{
#ifdef CONFIG_X86_32
return (regs->flags & VM_MASK);
#else
return 0; /* No V86 mode support in long mode */
#endif
}
so if we don't have CONFIG_VM86 defined this function *always*
returning 0 so there I can't just change VM_MASK to X86_EFLAGS_VM.
Another piece of code from traps_32.c:do_general_protection
if (regs->flags & VM_MASK)
goto gp_in_vm86;
so if we didn't set CONFIG_VM86 i think this part is just thrown out
by gcc. So as we see, this VM_MASK original flag is not *just* a flag
but also says gcc which part of code to compile.
And now I'm in confusion - the way of changing this code I see is the
following:
- or use additional #ifdef CONFIG_VM86 in code where VM_MASK is used
(that would be ugly IMHO)
- rename VM_MASK to say X86_EFLAGS_VM86 with that #ifdef remained
- rest VM_MASK as it is
How do you think?
- Cyrill -
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: processor flags
2008-03-27 19:47 processor flags Cyrill Gorcunov
@ 2008-03-27 19:55 ` H. Peter Anvin
2008-03-27 19:56 ` Cyrill Gorcunov
0 siblings, 1 reply; 3+ messages in thread
From: H. Peter Anvin @ 2008-03-27 19:55 UTC (permalink / raw)
To: Cyrill Gorcunov; +Cc: Ingo Molnar, LKML
Cyrill Gorcunov wrote:
>
> And now I'm in confusion - the way of changing this code I see is the
> following:
>
> - or use additional #ifdef CONFIG_VM86 in code where VM_MASK is used
> (that would be ugly IMHO)
> - rename VM_MASK to say X86_EFLAGS_VM86 with that #ifdef remained
> - rest VM_MASK as it is
>
> How do you think?
>
I think what we should do is:
- Rename VM_MASK to X86_VM_MASK (it's x86-specific after all)
- Have:
#if CONFIG_VM86
# define X86_VM_MASK X86_EFLAGS_VM
#else
# define X86_VM_MASK 0 /* No V86 support */
#endif
-hpa
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: processor flags
2008-03-27 19:55 ` H. Peter Anvin
@ 2008-03-27 19:56 ` Cyrill Gorcunov
0 siblings, 0 replies; 3+ messages in thread
From: Cyrill Gorcunov @ 2008-03-27 19:56 UTC (permalink / raw)
To: H. Peter Anvin; +Cc: Ingo Molnar, LKML
[H. Peter Anvin - Thu, Mar 27, 2008 at 12:55:42PM -0700]
> Cyrill Gorcunov wrote:
>> And now I'm in confusion - the way of changing this code I see is the
>> following:
>> - or use additional #ifdef CONFIG_VM86 in code where VM_MASK is used
>> (that would be ugly IMHO)
>> - rename VM_MASK to say X86_EFLAGS_VM86 with that #ifdef remained
>> - rest VM_MASK as it is
>> How do you think?
>
> I think what we should do is:
>
> - Rename VM_MASK to X86_VM_MASK (it's x86-specific after all)
> - Have:
>
> #if CONFIG_VM86
> # define X86_VM_MASK X86_EFLAGS_VM
> #else
> # define X86_VM_MASK 0 /* No V86 support */
> #endif
>
> -hpa
>
Thanks a lot, Peter
- Cyrill -
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-03-27 19:58 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-27 19:47 processor flags Cyrill Gorcunov
2008-03-27 19:55 ` H. Peter Anvin
2008-03-27 19:56 ` Cyrill Gorcunov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox