Module Name: src
Committed By: maxv
Date: Fri Sep 2 08:52:13 UTC 2016
Modified Files:
src/sys/arch/amd64/include: segments.h
Log Message:
Give the structure sizes.
To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/amd64/include/segments.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/include/segments.h
diff -u src/sys/arch/amd64/include/segments.h:1.27 src/sys/arch/amd64/include/segments.h:1.28
--- src/sys/arch/amd64/include/segments.h:1.27 Sat Aug 27 14:19:47 2016
+++ src/sys/arch/amd64/include/segments.h Fri Sep 2 08:52:12 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: segments.h,v 1.27 2016/08/27 14:19:47 maxv Exp $ */
+/* $NetBSD: segments.h,v 1.28 2016/09/02 08:52:12 maxv Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@@ -147,7 +147,7 @@
*/
/*
- * Below is used for TSS and LDT.
+ * System segment descriptor (16 bytes): used for TSS and LDT.
*/
struct sys_segment_descriptor {
uint64_t sd_lolimit:16; /* segment extent (lsb) */
@@ -165,7 +165,7 @@ struct sys_segment_descriptor {
} __packed;
/*
- * Below is used for cs, ds, etc.
+ * Memory segment descriptor (8 bytes): used for cs, ds, etc.
*/
struct mem_segment_descriptor {
unsigned sd_lolimit:16; /* segment extent (lsb) */
@@ -192,7 +192,7 @@ struct common_segment_descriptor {
} __packed;
/*
- * Gate descriptors (e.g. indirect descriptors)
+ * Gate descriptors (16 bytes).
*/
struct gate_descriptor {
uint64_t gd_looffset:16;/* gate offset (lsb) */
@@ -209,7 +209,8 @@ struct gate_descriptor {
} __packed;
/*
- * Generic descriptor
+ * Generic descriptor (8 bytes). Note: it does not include system segment
+ * descriptors and gate descriptors, since these are 16-byte-long.
*/
union descriptor {
struct mem_segment_descriptor sd;
@@ -218,7 +219,7 @@ union descriptor {
} __packed;
/*
- * region descriptors, used to load gdt/idt tables before segments yet exist.
+ * Region descriptors, used to load gdt/idt tables before segments yet exist.
*/
struct region_descriptor {
uint16_t rd_limit; /* segment extent */
@@ -226,9 +227,6 @@ struct region_descriptor {
} __packed;
#ifdef _KERNEL
-#if 0
-extern struct sys_segment_descriptor *ldt;
-#endif
#ifdef XEN
extern struct trap_info *idt;
#else