PERFORCE change 28687 for review
Peter Wemm
peter at FreeBSD.org
Wed Apr 9 21:13:26 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=28687
Change 28687 by peter at peter_daintree on 2003/04/09 21:13:03
have a seperate selector for user data, not that it appears to matter
Affected files ...
.. //depot/projects/hammer/sys/x86_64/include/segments.h#15 edit
.. //depot/projects/hammer/sys/x86_64/x86_64/machdep.c#61 edit
Differences ...
==== //depot/projects/hammer/sys/x86_64/include/segments.h#15 (text+ko) ====
@@ -178,8 +178,9 @@
#define GDATA_SEL 2 /* Kernel Data Descriptor */
#define GPROC0_SEL 3 /* Task state process slot zero and up */
/* slot 4 is second half of GPROC0_SEL */
-#define GUCODE_SEL 5 /* Kernel Code Descriptor */
-#define NGDT 6
+#define GUCODE_SEL 5 /* User Code Descriptor */
+#define GUDATA_SEL 6 /* User Data Descriptor */
+#define NGDT 7
#ifdef _KERNEL
extern struct user_segment_descriptor gdt[];
==== //depot/projects/hammer/sys/x86_64/x86_64/machdep.c#61 (text+ko) ====
@@ -615,6 +615,15 @@
1, /* long */
0, /* default 32 vs 16 bit size */
1 /* limit granularity (byte/page units)*/ },
+/* GUDATA_SEL 6 Code Descriptor for user */
+{ 0x0, /* segment base address */
+ 0xfffff, /* length - all address space */
+ SDT_MEMRWA, /* segment type */
+ SEL_UPL, /* segment descriptor priority level */
+ 1, /* segment descriptor present */
+ 1, /* long */
+ 0, /* default 32 vs 16 bit size */
+ 1 /* limit granularity (byte/page units)*/ },
};
void
@@ -1253,6 +1262,11 @@
msgbufinit(msgbufp, MSGBUF_SIZE);
+ /* transfer to user mode */
+
+ _ucodesel = GSEL(LUCODE_SEL, SEL_UPL);
+ _udatasel = GSEL(LUDATA_SEL, SEL_UPL);
+
/* setup proc 0's pcb */
thread0.td_pcb->pcb_flags = 0; /* XXXKSE */
thread0.td_pcb->pcb_cr3 = IdlePML4;
More information about the p4-projects
mailing list