summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/segments.h
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>1999-08-17 07:09:13 +0000
committermsmith <msmith@FreeBSD.org>1999-08-17 07:09:13 +0000
commitda44a32897b8a91e555abf1cf0c706b96e17a3a3 (patch)
tree08587388ef68bc20e518dbc05e2b7eb8332590e6 /sys/amd64/include/segments.h
parentfb63bd8dedeed46a92755e090d7a70bd9b6a45b0 (diff)
downloadFreeBSD-src-da44a32897b8a91e555abf1cf0c706b96e17a3a3.zip
FreeBSD-src-da44a32897b8a91e555abf1cf0c706b96e17a3a3.tar.gz
Mindbogglingly, many BIOS vendors expect to be able to load %ds with
0x40 and then access data stored in real-mode segment 0x40, even when called in protected mode. Microsoft unfortunately coddle these individuals, and so must we if we want to run their code. This change works around GPFs in some APM and PnP BIOS implementations. Obtained from: Linux
Diffstat (limited to 'sys/amd64/include/segments.h')
-rw-r--r--sys/amd64/include/segments.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/amd64/include/segments.h b/sys/amd64/include/segments.h
index 14afa57..1a6e20d 100644
--- a/sys/amd64/include/segments.h
+++ b/sys/amd64/include/segments.h
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)segments.h 7.1 (Berkeley) 5/9/91
- * $Id: segments.h,v 1.20 1999/06/18 14:32:21 bde Exp $
+ * $Id: segments.h,v 1.21 1999/07/29 01:49:19 msmith Exp $
*/
#ifndef _MACHINE_SEGMENTS_H_
@@ -214,17 +214,18 @@ struct region_descriptor {
#define GLDT_SEL 5 /* LDT - eventually one per process */
#define GUSERLDT_SEL 6 /* User LDT */
#define GTGATE_SEL 7 /* Process task switch gate */
-#define GPANIC_SEL 8 /* Task state to consider panic from */
-#define GBIOSCODE32_SEL 9 /* BIOS interface (32bit Code) */
-#define GBIOSCODE16_SEL 10 /* BIOS interface (16bit Code) */
-#define GBIOSDATA_SEL 11 /* BIOS interface (Data) */
-#define GBIOSUTIL_SEL 12 /* BIOS interface (Utility) */
-#define GBIOSARGS_SEL 13 /* BIOS interface (Arguments) */
+#define GBIOSLOWMEM_SEL 8 /* BIOS low memory access (must be entry 8) */
+#define GPANIC_SEL 9 /* Task state to consider panic from */
+#define GBIOSCODE32_SEL 10 /* BIOS interface (32bit Code) */
+#define GBIOSCODE16_SEL 11 /* BIOS interface (16bit Code) */
+#define GBIOSDATA_SEL 12 /* BIOS interface (Data) */
+#define GBIOSUTIL_SEL 13 /* BIOS interface (Utility) */
+#define GBIOSARGS_SEL 14 /* BIOS interface (Arguments) */
#ifdef BDE_DEBUGGER
#define NGDT 18 /* some of 11-17 are reserved for debugger */
#else
-#define NGDT 14
+#define NGDT 15
#endif
/*
OpenPOWER on IntegriCloud