Module Name: src
Committed By: joerg
Date: Fri Apr 23 16:07:33 UTC 2010
Modified Files:
src/sys/arch/i386/i386: machdep.c
src/sys/arch/i386/include: pcb.h
src/sys/arch/x86/x86: sys_machdep.c vm_machdep.c
src/sys/compat/linux/arch/i386: linux_exec_machdep.c
Log Message:
Use struct segment_descriptor for pcb_fsd and pcb_gsd instead of int[2].
To generate a diff of this commit:
cvs rdiff -u -r1.685 -r1.686 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/i386/include/pcb.h
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/x86/x86/sys_machdep.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/x86/x86/vm_machdep.c
cvs rdiff -u -r1.14 -r1.15 \
src/sys/compat/linux/arch/i386/linux_exec_machdep.c
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/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.685 src/sys/arch/i386/i386/machdep.c:1.686
--- src/sys/arch/i386/i386/machdep.c:1.685 Sun Apr 18 23:47:51 2010
+++ src/sys/arch/i386/i386/machdep.c Fri Apr 23 16:07:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.685 2010/04/18 23:47:51 jym Exp $ */
+/* $NetBSD: machdep.c,v 1.686 2010/04/23 16:07:33 joerg Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.685 2010/04/18 23:47:51 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.686 2010/04/23 16:07:33 joerg Exp $");
#include "opt_beep.h"
#include "opt_compat_ibcs2.h"
@@ -519,8 +519,8 @@
pcb->pcb_esp0 = uvm_lwp_getuarea(l) + KSTACK_SIZE - 16;
pcb->pcb_iopl = SEL_KPL;
l->l_md.md_regs = (struct trapframe *)pcb->pcb_esp0 - 1;
- memcpy(pcb->pcb_fsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_fsd));
- memcpy(pcb->pcb_gsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_gsd));
+ memcpy(&pcb->pcb_fsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_fsd));
+ memcpy(&pcb->pcb_gsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_gsd));
#ifndef XEN
lldt(pmap_kernel()->pm_ldt_sel);
@@ -1007,8 +1007,8 @@
pcb->pcb_savefpu.sv_xmm.sv_env.en_mxcsr = __INITIAL_MXCSR__;
} else
pcb->pcb_savefpu.sv_87.sv_env.en_cw = __NetBSD_NPXCW__;
- memcpy(pcb->pcb_fsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_fsd));
- memcpy(pcb->pcb_gsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_gsd));
+ memcpy(&pcb->pcb_fsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_fsd));
+ memcpy(&pcb->pcb_gsd, &gdt[GUDATA_SEL], sizeof(pcb->pcb_gsd));
tf = l->l_md.md_regs;
#ifndef XEN
Index: src/sys/arch/i386/include/pcb.h
diff -u src/sys/arch/i386/include/pcb.h:1.47 src/sys/arch/i386/include/pcb.h:1.48
--- src/sys/arch/i386/include/pcb.h:1.47 Sat Mar 21 14:41:30 2009
+++ src/sys/arch/i386/include/pcb.h Fri Apr 23 16:07:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pcb.h,v 1.47 2009/03/21 14:41:30 ad Exp $ */
+/* $NetBSD: pcb.h,v 1.48 2010/04/23 16:07:33 joerg Exp $ */
/*-
* Copyright (c) 1998, 2009 The NetBSD Foundation, Inc.
@@ -94,8 +94,8 @@
/* floating point state for FPU */
union savefpu pcb_savefpu __aligned(16);
- int pcb_fsd[2]; /* %fs descriptor */
- int pcb_gsd[2]; /* %gs descriptor */
+ struct segment_descriptor pcb_fsd; /* %fs descriptor */
+ struct segment_descriptor pcb_gsd; /* %gs descriptor */
void * pcb_onfault; /* copyin/out fault recovery */
int vm86_eflags; /* virtual eflags for vm86 mode */
int vm86_flagmask; /* flag mask for vm86 mode */
Index: src/sys/arch/x86/x86/sys_machdep.c
diff -u src/sys/arch/x86/x86/sys_machdep.c:1.22 src/sys/arch/x86/x86/sys_machdep.c:1.23
--- src/sys/arch/x86/x86/sys_machdep.c:1.22 Sat Nov 21 03:11:02 2009
+++ src/sys/arch/x86/x86/sys_machdep.c Fri Apr 23 16:07:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_machdep.c,v 1.22 2009/11/21 03:11:02 rmind Exp $ */
+/* $NetBSD: sys_machdep.c,v 1.23 2010/04/23 16:07:33 joerg Exp $ */
/*-
* Copyright (c) 1998, 2007, 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_machdep.c,v 1.22 2009/11/21 03:11:02 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_machdep.c,v 1.23 2010/04/23 16:07:33 joerg Exp $");
#include "opt_mtrr.h"
#include "opt_perfctrs.h"
@@ -641,10 +641,10 @@
switch (which) {
case 'f':
- sd = (struct segment_descriptor *)&curpcb->pcb_fsd;
+ sd = &curpcb->pcb_fsd;
break;
case 'g':
- sd = (struct segment_descriptor *)&curpcb->pcb_gsd;
+ sd = &curpcb->pcb_gsd;
break;
default:
panic("x86_get_sdbase");
Index: src/sys/arch/x86/x86/vm_machdep.c
diff -u src/sys/arch/x86/x86/vm_machdep.c:1.8 src/sys/arch/x86/x86/vm_machdep.c:1.9
--- src/sys/arch/x86/x86/vm_machdep.c:1.8 Sun Nov 29 04:15:43 2009
+++ src/sys/arch/x86/x86/vm_machdep.c Fri Apr 23 16:07:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: vm_machdep.c,v 1.8 2009/11/29 04:15:43 rmind Exp $ */
+/* $NetBSD: vm_machdep.c,v 1.9 2010/04/23 16:07:33 joerg Exp $ */
/*-
* Copyright (c) 1982, 1986 The Regents of the University of California.
@@ -80,7 +80,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.8 2009/11/29 04:15:43 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.9 2010/04/23 16:07:33 joerg Exp $");
#include "opt_mtrr.h"
@@ -194,8 +194,8 @@
pcb2->pcb_esp0 = (uv + KSTACK_SIZE - 16);
tf = (struct trapframe *)pcb2->pcb_esp0 - 1;
- memcpy(&pcb2->pcb_fsd, pcb1->pcb_fsd, sizeof(pcb2->pcb_fsd));
- memcpy(&pcb2->pcb_gsd, pcb1->pcb_gsd, sizeof(pcb2->pcb_gsd));
+ memcpy(&pcb2->pcb_fsd, &pcb1->pcb_fsd, sizeof(pcb2->pcb_fsd));
+ memcpy(&pcb2->pcb_gsd, &pcb1->pcb_gsd, sizeof(pcb2->pcb_gsd));
pcb2->pcb_iomap = NULL;
#endif
l2->l_md.md_regs = tf;
Index: src/sys/compat/linux/arch/i386/linux_exec_machdep.c
diff -u src/sys/compat/linux/arch/i386/linux_exec_machdep.c:1.14 src/sys/compat/linux/arch/i386/linux_exec_machdep.c:1.15
--- src/sys/compat/linux/arch/i386/linux_exec_machdep.c:1.14 Mon Nov 23 00:46:06 2009
+++ src/sys/compat/linux/arch/i386/linux_exec_machdep.c Fri Apr 23 16:07:33 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_exec_machdep.c,v 1.14 2009/11/23 00:46:06 rmind Exp $ */
+/* $NetBSD: linux_exec_machdep.c,v 1.15 2010/04/23 16:07:33 joerg Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_exec_machdep.c,v 1.14 2009/11/23 00:46:06 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_exec_machdep.c,v 1.15 2010/04/23 16:07:33 joerg Exp $");
#if defined(_KERNEL_OPT)
#include "opt_vm86.h"
@@ -296,7 +296,7 @@
idx = GUGS_SEL;
(void)memset(&info, 0, sizeof(info));
- (void)memcpy(&sd, pcb->pcb_gsd, sizeof(sd));
+ (void)memcpy(&sd, &pcb->pcb_gsd, sizeof(sd));
(void)memcpy(&desc, &sd, sizeof(desc));
info.entry_number = idx;