Message ID | 1438356724-6561-37-git-send-email-sjg@chromium.org |
---|---|
State | Superseded |
Delegated to: | Simon Glass |
Headers | show |
On Fri, Jul 31, 2015 at 11:31 PM, Simon Glass <sjg@chromium.org> wrote: > Rather than add these as open-coded values, create an enum with the commonly > used flags. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > Changes in v2: > - Add descriptor bits for the base and limit > - Rename GDT_4GB to GDT_4KB > > arch/x86/include/asm/cpu.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h > index 08284ee..5b89139 100644 > --- a/arch/x86/include/asm/cpu.h > +++ b/arch/x86/include/asm/cpu.h > @@ -27,6 +27,24 @@ enum { > X86_VENDOR_UNKNOWN = 0xff > }; > > +/* Global descriptor table (GDT) bits */ > +enum { > + GDT_4KB = 1ULL << 55, > + GDT_32BIT = 1ULL << 54, > + GDT_LONG = 1ULL << 53, > + GDT_PRESENT = 1ULL << 47, > + GDT_NOTSYS = 1ULL << 44, > + GDT_CODE = 1ULL << 43, > + GDT_LIMIT_LOW_SHIFT = 0, > + GDT_LIMIT_LOW_MASK = 0xffff, > + GDT_LIMIT_HIGH_SHIFT = 48, > + GDT_LIMIT_HIGH_MASK = 0xf, > + GDT_BASE_LOW_SHIFT = 16, > + GDT_BASE_LOW_MASK = 0xffff, > + GDT_BASE_HIGH_SHIFT = 56, > + GDT_BASE_HIGH_MASK = 0xf, > +}; > + > struct cpuid_result { > uint32_t eax; > uint32_t ebx; > -- Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h index 08284ee..5b89139 100644 --- a/arch/x86/include/asm/cpu.h +++ b/arch/x86/include/asm/cpu.h @@ -27,6 +27,24 @@ enum { X86_VENDOR_UNKNOWN = 0xff }; +/* Global descriptor table (GDT) bits */ +enum { + GDT_4KB = 1ULL << 55, + GDT_32BIT = 1ULL << 54, + GDT_LONG = 1ULL << 53, + GDT_PRESENT = 1ULL << 47, + GDT_NOTSYS = 1ULL << 44, + GDT_CODE = 1ULL << 43, + GDT_LIMIT_LOW_SHIFT = 0, + GDT_LIMIT_LOW_MASK = 0xffff, + GDT_LIMIT_HIGH_SHIFT = 48, + GDT_LIMIT_HIGH_MASK = 0xf, + GDT_BASE_LOW_SHIFT = 16, + GDT_BASE_LOW_MASK = 0xffff, + GDT_BASE_HIGH_SHIFT = 56, + GDT_BASE_HIGH_MASK = 0xf, +}; + struct cpuid_result { uint32_t eax; uint32_t ebx;
Rather than add these as open-coded values, create an enum with the commonly used flags. Signed-off-by: Simon Glass <sjg@chromium.org> --- Changes in v2: - Add descriptor bits for the base and limit - Rename GDT_4GB to GDT_4KB arch/x86/include/asm/cpu.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)