VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/UefiCpuPkg/CpuDxe/CpuGdt.h@ 79205

Last change on this file since 79205 was 77662, checked in by vboxsync, 6 years ago

EFI: First step in UDK2018 merge. Does not build yet.

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1/** @file
2 C based implemention of IA32 interrupt handling only
3 requiring a minimal assembly interrupt entry point.
4
5 Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14**/
15
16#ifndef _CPU_GDT_H_
17#define _CPU_GDT_H_
18
19//
20// Local structure definitions
21//
22
23#pragma pack (1)
24
25//
26// Global Descriptor Entry structures
27//
28
29typedef struct _GDT_ENTRY {
30 UINT16 Limit15_0;
31 UINT16 Base15_0;
32 UINT8 Base23_16;
33 UINT8 Type;
34 UINT8 Limit19_16_and_flags;
35 UINT8 Base31_24;
36} GDT_ENTRY;
37
38typedef
39struct _GDT_ENTRIES {
40 GDT_ENTRY Null;
41 GDT_ENTRY Linear;
42 GDT_ENTRY LinearCode;
43 GDT_ENTRY SysData;
44 GDT_ENTRY SysCode;
45 GDT_ENTRY Spare4;
46 GDT_ENTRY LinearData64;
47 GDT_ENTRY LinearCode64;
48 GDT_ENTRY Spare5;
49} GDT_ENTRIES;
50
51#pragma pack ()
52
53#define NULL_SEL OFFSET_OF (GDT_ENTRIES, Null)
54#define LINEAR_SEL OFFSET_OF (GDT_ENTRIES, Linear)
55#define LINEAR_CODE_SEL OFFSET_OF (GDT_ENTRIES, LinearCode)
56#define SYS_DATA_SEL OFFSET_OF (GDT_ENTRIES, SysData)
57#define SYS_CODE_SEL OFFSET_OF (GDT_ENTRIES, SysCode)
58#define SPARE4_SEL OFFSET_OF (GDT_ENTRIES, Spare4)
59#define LINEAR_DATA64_SEL OFFSET_OF (GDT_ENTRIES, LinearData64)
60#define LINEAR_CODE64_SEL OFFSET_OF (GDT_ENTRIES, LinearCode64)
61#define SPARE5_SEL OFFSET_OF (GDT_ENTRIES, Spare5)
62
63#if defined (MDE_CPU_IA32)
64#define CPU_CODE_SEL LINEAR_CODE_SEL
65#define CPU_DATA_SEL LINEAR_SEL
66#elif defined (MDE_CPU_X64)
67#define CPU_CODE_SEL LINEAR_CODE64_SEL
68#define CPU_DATA_SEL LINEAR_DATA64_SEL
69#else
70#error CPU type not supported for CPU GDT initialization!
71#endif
72
73#endif // _CPU_GDT_H_
74
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette