summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/segments.h
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1994-11-14 14:18:15 +0000
committerbde <bde@FreeBSD.org>1994-11-14 14:18:15 +0000
commit03c6bfcbf9676e8b8060355145c8e9769625c4a8 (patch)
treed61d5c28e7718c5c6f2e5ee1be65abbff251db9a /sys/amd64/include/segments.h
parent245279f8fa3f6192d81163caf4dc2281907fa2c2 (diff)
downloadFreeBSD-src-03c6bfcbf9676e8b8060355145c8e9769625c4a8.zip
FreeBSD-src-03c6bfcbf9676e8b8060355145c8e9769625c4a8.tar.gz
Remove 1.5+K of bloat for unused idt entries.
Partly support BDE_DEBUGGER. Still broken by conflict with APM. Does nothing if BDE_DEBUGGER is not defined. Clean up prototypes and data declarations. Declare most of the segment functions that are implemented in support.s. Make data private in machdep.c if possible. Parenthesize expressions in macros properly! ${Uniformize idempotency ifdef}.
Diffstat (limited to 'sys/amd64/include/segments.h')
-rw-r--r--sys/amd64/include/segments.h33
1 files changed, 20 insertions, 13 deletions
diff --git a/sys/amd64/include/segments.h b/sys/amd64/include/segments.h
index 0e996e6..356880f 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.4 1994/01/31 10:27:13 davidg Exp $
+ * $Id: segments.h,v 1.5 1994/10/01 02:56:08 davidg Exp $
*/
#ifndef _MACHINE_SEGMENTS_H_
@@ -172,9 +172,6 @@ struct soft_segment_descriptor {
unsigned ssd_gran:1 ; /* limit granularity (byte/page units)*/
};
-extern ssdtosd() ; /* to decode a ssd */
-extern sdtossd() ; /* to encode a sd */
-
/*
* region descriptors, used to load gdt/idt tables before segments yet exist.
*/
@@ -197,7 +194,7 @@ struct region_descriptor {
* Size of IDT table
*/
-#define NIDT 256
+#define NIDT 48 /* 32 reserved, 16 h/w, 0 s/w */
#define NRSVIDT 32 /* reserved entries for cpu exceptions */
/*
@@ -215,7 +212,11 @@ struct region_descriptor {
#define GAPMCODE16_SEL 9 /* APM BIOS 32-bit interface (16bit Code) */
#define GAPMDATA_SEL 10 /* APM BIOS 32-bit interface (Data) */
-#define NGDT (GAPMDATA_SEL+1)
+#ifdef BDE_DEBUGGER
+#define NGDT 18 /* some of 11-17 are reserved for debugger */
+#else
+#define NGDT (GAPMDATA_SEL + 1)
+#endif
/*
* Entries in the Local Descriptor Table (LDT)
@@ -227,13 +228,19 @@ struct region_descriptor {
#define LUDATA_SEL 4
/* seperate stack, es,fs,gs sels ? */
/* #define LPOSIXCALLS_SEL 5*/ /* notyet */
-#define NLDT LUDATA_SEL+1
+#define NLDT (LUDATA_SEL + 1)
#ifdef KERNEL
-extern int currentldt;
extern union descriptor gdt[NGDT];
-extern union descriptor ldt[NLDT];
-extern struct soft_segment_descriptor gdt_segs[];
-#endif
-
-#endif /* _MACHINE_SEGMENTS_H_ */
+extern struct gate_descriptor idt[NIDT];
+
+void lgdt __P((struct region_descriptor *rdp));
+void lidt __P((struct region_descriptor *rdp));
+void lldt __P((u_short sel));
+void sdtossd __P((struct segment_descriptor *sdp,
+ struct soft_segment_descriptor *ssdp));
+void ssdtosd __P((struct soft_segment_descriptor *ssdp,
+ struct segment_descriptor *sdp));
+#endif /* KERNEL */
+
+#endif /* !_MACHINE_SEGMENTS_H_ */
OpenPOWER on IntegriCloud