ia64/xen-unstable

changeset 4723:e1bb98b5ffa6

bitkeeper revision 1.1389.1.20 (4275e5cf8rSBidyFfn32zpPSsOA_xw)

[PATCH] [PATCH] make XenFreeBSD trapframe the same as native

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
# 2005/05/01 16:04:24-07:00 kmacy@curly.lab.netapp.com
# Make trapframe the same size as on native i386
# Signed-off-by: Kip Macy <kmacy@fsmware.com>
#
# freebsd-5.3-xen-sparse/i386-xen/include/pcpu.h
# 2005/05/01 16:04:20-07:00 kmacy@curly.lab.netapp.com +3 -2
# add per-cpu fields for evtchn and page faults
#
# freebsd-5.3-xen-sparse/i386-xen/i386-xen/trap.c
# 2005/05/01 16:04:20-07:00 kmacy@curly.lab.netapp.com +1 -9
# remove STACK_DEBUGGING cruft
# fetch cr2 from pcpu area
#
# freebsd-5.3-xen-sparse/i386-xen/i386-xen/genassym.c
# 2005/05/01 16:04:20-07:00 kmacy@curly.lab.netapp.com +1 -2
# remove unused trap_nesting
# add cr2 field
#
# freebsd-5.3-xen-sparse/i386-xen/i386-xen/exception.s
# 2005/05/01 16:04:20-07:00 kmacy@curly.lab.netapp.com +41 -31
# Save CR2 after trap frame then move to pcpu area
#
# BitKeeper/deleted/.del-ucontext.h~6f534fc91cb2d96b
# 2005/05/01 15:56:03-07:00 kmacy@curly.lab.netapp.com +0 -1
# Delete: freebsd-5.3-xen-sparse/i386-xen/include/ucontext.h
#
# BitKeeper/deleted/.del-frame.h~fbfe41b49597c684
# 2005/05/01 15:55:59-07:00 kmacy@curly.lab.netapp.com +3 -3
# Delete: freebsd-5.3-xen-sparse/i386-xen/include/frame.h
#
author kmacy@netapp.com[kaf24]
date Mon May 02 08:33:19 2005 +0000 (2005-05-02)
parents 8e8d2f9402e1
children e8c18dee0bb6
files .rootkeys BitKeeper/etc/logging_ok freebsd-5.3-xen-sparse/i386-xen/i386-xen/exception.s freebsd-5.3-xen-sparse/i386-xen/i386-xen/genassym.c freebsd-5.3-xen-sparse/i386-xen/i386-xen/trap.c freebsd-5.3-xen-sparse/i386-xen/include/frame.h freebsd-5.3-xen-sparse/i386-xen/include/pcpu.h freebsd-5.3-xen-sparse/i386-xen/include/ucontext.h
line diff
     1.1 --- a/.rootkeys	Sat Apr 30 15:20:55 2005 +0000
     1.2 +++ b/.rootkeys	Mon May 02 08:33:19 2005 +0000
     1.3 @@ -95,7 +95,6 @@ 423e7e8ac9Zkao6o8lF_dpdwz6FoXg freebsd-5
     1.4  423e7e8aVYTynjpZsJxUsFSlIDhpJw freebsd-5.3-xen-sparse/i386-xen/include/cpufunc.h
     1.5  423e7e8avrrUxDugrwq_GJp499DkJw freebsd-5.3-xen-sparse/i386-xen/include/ctrl_if.h
     1.6  423e7e8apY1r9Td-S0eZITNZZbfNTQ freebsd-5.3-xen-sparse/i386-xen/include/evtchn.h
     1.7 -423e7e8aL9DsObEegCwtILrF6SWcAQ freebsd-5.3-xen-sparse/i386-xen/include/frame.h
     1.8  4266317eOVvN00XdcqRfDRFIrbqgvg freebsd-5.3-xen-sparse/i386-xen/include/gnttab.h
     1.9  423e7e8btv8Gojq50ggnP5A1Dkc4kA freebsd-5.3-xen-sparse/i386-xen/include/hypervisor-ifs.h
    1.10  423e7e8buhTLVFLZ33-5s8-UdADSZg freebsd-5.3-xen-sparse/i386-xen/include/hypervisor.h
    1.11 @@ -108,7 +107,6 @@ 423e7e8bI1dvek3ZR7BKw7dMkVAEkA freebsd-5
    1.12  423e7e8bVOoPguCLyNj7pil-PT7Vcw freebsd-5.3-xen-sparse/i386-xen/include/segments.h
    1.13  423e7e8c9AuwksRrt0ptRKHnNVWuNQ freebsd-5.3-xen-sparse/i386-xen/include/synch_bitops.h
    1.14  423e7e8csdWimnMBI2HxEDJ30L42kQ freebsd-5.3-xen-sparse/i386-xen/include/trap.h
    1.15 -423e7e8cgVgn9W8sZWwfh_4938fSJQ freebsd-5.3-xen-sparse/i386-xen/include/ucontext.h
    1.16  423e7e8cdsEhPyad2ppDoSiBR4eB9g freebsd-5.3-xen-sparse/i386-xen/include/vmparam.h
    1.17  423e7e8ccGI7kzIlRcEVziGZzm46wg freebsd-5.3-xen-sparse/i386-xen/include/xen-os.h
    1.18  423e7e8cVSqLIOp5vH4ADvAL_MF6Qg freebsd-5.3-xen-sparse/i386-xen/include/xen_intr.h
     2.1 --- a/BitKeeper/etc/logging_ok	Sat Apr 30 15:20:55 2005 +0000
     2.2 +++ b/BitKeeper/etc/logging_ok	Mon May 02 08:33:19 2005 +0000
     2.3 @@ -55,6 +55,7 @@ kaf24@scramble.cl.cam.ac.uk
     2.4  kaf24@striker.cl.cam.ac.uk
     2.5  kaf24@viper.(none)
     2.6  katzj@redhat.com
     2.7 +kmacy@netapp.com
     2.8  kmacy@shemp.lab.netapp.com
     2.9  kraxel@bytesex.org
    2.10  laudney@eclipse.(none)
     3.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/exception.s	Sat Apr 30 15:20:55 2005 +0000
     3.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/exception.s	Mon May 02 08:33:19 2005 +0000
     3.3 @@ -91,47 +91,52 @@ MCOUNT_LABEL(user)
     3.4  MCOUNT_LABEL(btrap)
     3.5  
     3.6  IDTVEC(div)
     3.7 -	pushl $0; pushl $0; TRAP(T_DIVIDE)
     3.8 +	pushl $0; TRAP(T_DIVIDE)
     3.9  IDTVEC(dbg)
    3.10 -	pushl $0; pushl $0; TRAP(T_TRCTRAP)
    3.11 +	pushl $0; TRAP(T_TRCTRAP)
    3.12  IDTVEC(nmi)
    3.13 -	pushl $0; pushl $0; TRAP(T_NMI)
    3.14 +	pushl $0; TRAP(T_NMI)
    3.15  IDTVEC(bpt)
    3.16 -	pushl $0; pushl $0; TRAP(T_BPTFLT)
    3.17 +	pushl $0; TRAP(T_BPTFLT)
    3.18  IDTVEC(ofl)
    3.19 -	pushl $0; pushl $0; TRAP(T_OFLOW)
    3.20 +	pushl $0; TRAP(T_OFLOW)
    3.21  IDTVEC(bnd)
    3.22 -	pushl $0; pushl $0; TRAP(T_BOUND)
    3.23 +	pushl $0; TRAP(T_BOUND)
    3.24  IDTVEC(ill)
    3.25 -	pushl $0; pushl $0; TRAP(T_PRIVINFLT)
    3.26 +	pushl $0; TRAP(T_PRIVINFLT)
    3.27  IDTVEC(dna)
    3.28 -	pushl $0; pushl $0; TRAP(T_DNA)
    3.29 +	pushl $0; TRAP(T_DNA)
    3.30  IDTVEC(fpusegm)
    3.31 -	pushl $0; pushl $0; TRAP(T_FPOPFLT)
    3.32 +	pushl $0; TRAP(T_FPOPFLT)
    3.33  IDTVEC(tss)
    3.34 -	pushl $0; TRAP(T_TSSFLT)
    3.35 +	TRAP(T_TSSFLT)
    3.36  IDTVEC(missing)
    3.37 -	pushl $0; TRAP(T_SEGNPFLT)
    3.38 +	TRAP(T_SEGNPFLT)
    3.39  IDTVEC(stk)
    3.40 -	pushl $0; TRAP(T_STKFLT)
    3.41 +	TRAP(T_STKFLT)
    3.42  IDTVEC(prot)
    3.43 -	pushl $0; TRAP(T_PROTFLT)
    3.44 +	TRAP(T_PROTFLT)
    3.45  IDTVEC(page)
    3.46 +	pushl %eax 
    3.47 +	movl  4(%esp),%eax
    3.48 +	movl  %eax,-44(%esp)	# move cr2 after trap frame
    3.49 +	popl %eax
    3.50 +	addl $4,%esp
    3.51  	TRAP(T_PAGEFLT)
    3.52  IDTVEC(mchk)
    3.53 -	pushl $0; pushl $0; TRAP(T_MCHK)
    3.54 +	pushl $0; TRAP(T_MCHK)
    3.55  IDTVEC(rsvd)
    3.56 -	pushl $0; pushl $0; TRAP(T_RESERVED)
    3.57 +	pushl $0; TRAP(T_RESERVED)
    3.58  IDTVEC(fpu)
    3.59 -	pushl $0; pushl $0; TRAP(T_ARITHTRAP)
    3.60 +	pushl $0; TRAP(T_ARITHTRAP)
    3.61  IDTVEC(align)
    3.62 -	pushl $0; TRAP(T_ALIGNFLT)
    3.63 +	TRAP(T_ALIGNFLT)
    3.64  
    3.65  IDTVEC(xmm)
    3.66 -	pushl $0; pushl $0; TRAP(T_XMMFLT)
    3.67 +	pushl $0; TRAP(T_XMMFLT)
    3.68  
    3.69  IDTVEC(hypervisor_callback)
    3.70 -	 pushl $T_HYPCALLBACK;  pushl %eax; TRAP(T_HYPCALLBACK)
    3.71 +	pushl %eax; TRAP(T_HYPCALLBACK)
    3.72  
    3.73  hypervisor_callback_pending:
    3.74  	movl	$T_HYPCALLBACK,TF_TRAPNO(%esp)
    3.75 @@ -161,6 +166,12 @@ alltraps_with_regs_pushed:
    3.76  	movl	$KPSEL,%eax
    3.77  	movl	%eax,%fs
    3.78  	FAKE_MCOUNT(TF_EIP(%esp))
    3.79 +save_cr2:
    3.80 +	movl	TF_TRAPNO(%esp),%eax
    3.81 +	cmpl	$T_PAGEFLT,%eax
    3.82 +	jne	calltrap
    3.83 +	movl	-4(%esp),%eax
    3.84 +	movl	%eax,PCPU(CR2)
    3.85  calltrap:
    3.86  	movl	TF_EIP(%esp),%eax
    3.87  	cmpl	$scrit,%eax
    3.88 @@ -217,8 +228,7 @@ IDTVEC(lcall_syscall)
    3.89  	SUPERALIGN_TEXT
    3.90  IDTVEC(int0x80_syscall)
    3.91  	pushl	$2			/* sizeof "int 0x80" */
    3.92 -	pushl	$0xCAFE
    3.93 -	pushl	$0xDEAD
    3.94 +	pushl	$0xBEEF
    3.95  	pushal
    3.96  	pushl	%ds
    3.97  	pushl	%es
    3.98 @@ -324,7 +334,7 @@ doreti_popl_es:
    3.99  doreti_popl_ds:
   3.100  	popl	%ds
   3.101  	POPA
   3.102 -	addl	$12,%esp
   3.103 +	addl	$8,%esp
   3.104  	.globl	doreti_iret
   3.105  doreti_iret:
   3.106  	iret
   3.107 @@ -341,7 +351,7 @@ ecrit:
   3.108  	ALIGN_TEXT
   3.109  	.globl	doreti_iret_fault
   3.110  doreti_iret_fault:
   3.111 -	subl	$12,%esp
   3.112 +	subl	$8,%esp
   3.113  	pushal
   3.114  	pushl	%ds
   3.115  	.globl	doreti_popl_ds_fault
   3.116 @@ -376,7 +386,7 @@ critical_region_fixup:
   3.117          movl  %esp,%esi
   3.118          add  %eax,%esi        # %esi points at end of src region
   3.119          movl  %esp,%edi
   3.120 -        add  $0x44,%edi       # %edi points at end of dst region
   3.121 +        add  $0x40,%edi       # %edi points at end of dst region
   3.122          movl  %eax,%ecx
   3.123          shr  $2,%ecx          # convert bytes to words
   3.124          je   16f              # skip loop if nothing to copy
   3.125 @@ -403,8 +413,8 @@ critical_fixup_table:
   3.126  .byte   0x20	                        #pop    %edx
   3.127  .byte   0x24	                        #pop    %ecx
   3.128  .byte   0x28	                        #pop    %eax
   3.129 -.byte   0x2c,0x2c,0x2c                  #add    $0xc,%esp
   3.130 -.byte   0x38	                        #iret   
   3.131 +.byte   0x2c,0x2c,0x2c                  #add    $0x8,%esp
   3.132 +.byte   0x34	                        #iret   
   3.133  
   3.134  	
   3.135  /* # Hypervisor uses this for application faults while it executes.*/
   3.136 @@ -412,17 +422,17 @@ ENTRY(failsafe_callback)
   3.137  	pushal
   3.138  	call xen_failsafe_handler
   3.139  /*#	call install_safe_pf_handler */
   3.140 -        movl 32(%esp),%ebx
   3.141 +        movl 28(%esp),%ebx
   3.142  1:      movl %ebx,%ds
   3.143 -        movl 36(%esp),%ebx
   3.144 +        movl 32(%esp),%ebx
   3.145  2:      movl %ebx,%es
   3.146 -        movl 40(%esp),%ebx
   3.147 +        movl 36(%esp),%ebx
   3.148  3:      movl %ebx,%fs
   3.149 -        movl 44(%esp),%ebx
   3.150 +        movl 40(%esp),%ebx
   3.151  4:      movl %ebx,%gs
   3.152  /*#        call install_normal_pf_handler */
   3.153  	popal
   3.154 -	addl $16,%esp
   3.155 +	addl $12,%esp
   3.156  	iret
   3.157  
   3.158  
     4.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/genassym.c	Sat Apr 30 15:20:55 2005 +0000
     4.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/genassym.c	Mon May 02 08:33:19 2005 +0000
     4.3 @@ -200,8 +200,7 @@ ASSYM(PC_TSS_GDT, offsetof(struct pcpu, 
     4.4  ASSYM(PC_CURRENTLDT, offsetof(struct pcpu, pc_currentldt));
     4.5  ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid));
     4.6  ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap));
     4.7 -ASSYM(PC_TRAP_NESTING, offsetof(struct pcpu, pc_trap_nesting));
     4.8 -
     4.9 +ASSYM(PC_CR2, offsetof(struct pcpu, pc_cr2));
    4.10  ASSYM(PC_CR3, offsetof(struct pcpu, pc_pdir));
    4.11  
    4.12  #ifdef DEV_APIC
     5.1 --- a/freebsd-5.3-xen-sparse/i386-xen/i386-xen/trap.c	Sat Apr 30 15:20:55 2005 +0000
     5.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/i386-xen/trap.c	Mon May 02 08:33:19 2005 +0000
     5.3 @@ -181,11 +181,6 @@ trap(struct trapframe frame)
     5.4  	u_int sticks = 0;
     5.5  	int i = 0, ucode = 0, type, code;
     5.6  	vm_offset_t eva;
     5.7 -#ifdef STACK_DEBUGGING
     5.8 -	int nesting, current_sp;
     5.9 -	static int prev_csp = 0, prev_ssp = 0;
    5.10 -	nesting = PCPU_GET(trap_nesting);
    5.11 -#endif
    5.12  
    5.13  #ifdef POWERFAIL_NMI
    5.14  	static int lastalert = 0;
    5.15 @@ -227,7 +222,7 @@ trap(struct trapframe frame)
    5.16  		 * kernel can print out a useful trap message and even get
    5.17  		 * to the debugger.
    5.18  		 */
    5.19 -	        eva = frame.tf_cr2;
    5.20 +	        eva = PCPU_GET(cr2);
    5.21  
    5.22  		if (td->td_critnest != 0)			
    5.23  		    trap_fatal(&frame, eva);
    5.24 @@ -613,9 +608,6 @@ user:
    5.25  	mtx_assert(&Giant, MA_NOTOWNED);
    5.26  userout:
    5.27  out:
    5.28 -#ifdef STACK_DEBUGGING 
    5.29 -	PCPU_SET(trap_nesting, nesting);
    5.30 -#endif
    5.31  	return;
    5.32  }
    5.33  
     6.1 --- a/freebsd-5.3-xen-sparse/i386-xen/include/frame.h	Sat Apr 30 15:20:55 2005 +0000
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,129 +0,0 @@
     6.4 -/*-
     6.5 - * Copyright (c) 1990 The Regents of the University of California.
     6.6 - * All rights reserved.
     6.7 - *
     6.8 - * This code is derived from software contributed to Berkeley by
     6.9 - * William Jolitz.
    6.10 - *
    6.11 - * Redistribution and use in source and binary forms, with or without
    6.12 - * modification, are permitted provided that the following conditions
    6.13 - * are met:
    6.14 - * 1. Redistributions of source code must retain the above copyright
    6.15 - *    notice, this list of conditions and the following disclaimer.
    6.16 - * 2. Redistributions in binary form must reproduce the above copyright
    6.17 - *    notice, this list of conditions and the following disclaimer in the
    6.18 - *    documentation and/or other materials provided with the distribution.
    6.19 - * 3. All advertising materials mentioning features or use of this software
    6.20 - *    must display the following acknowledgement:
    6.21 - *	This product includes software developed by the University of
    6.22 - *	California, Berkeley and its contributors.
    6.23 - * 4. Neither the name of the University nor the names of its contributors
    6.24 - *    may be used to endorse or promote products derived from this software
    6.25 - *    without specific prior written permission.
    6.26 - *
    6.27 - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    6.28 - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    6.29 - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    6.30 - * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    6.31 - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    6.32 - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    6.33 - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    6.34 - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    6.35 - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    6.36 - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    6.37 - * SUCH DAMAGE.
    6.38 - *
    6.39 - *	from: @(#)frame.h	5.2 (Berkeley) 1/18/91
    6.40 - * $FreeBSD: src/sys/i386/include/frame.h,v 1.23 2003/07/22 08:11:15 peter Exp $
    6.41 - */
    6.42 -
    6.43 -#ifndef _MACHINE_FRAME_H_
    6.44 -#define _MACHINE_FRAME_H_ 1
    6.45 -
    6.46 -/*
    6.47 - * System stack frames.
    6.48 - */
    6.49 -
    6.50 -/*
    6.51 - * Exception/Trap Stack Frame
    6.52 - */
    6.53 -
    6.54 -struct trapframe {
    6.55 -	int	tf_fs;
    6.56 -	int	tf_es;
    6.57 -	int	tf_ds;
    6.58 -	int	tf_edi;
    6.59 -	int	tf_esi;
    6.60 -	int	tf_ebp;
    6.61 -	int	tf_isp;
    6.62 -	int	tf_ebx;
    6.63 -	int	tf_edx;
    6.64 -	int	tf_ecx;
    6.65 -	int	tf_eax;
    6.66 -	int	tf_trapno;
    6.67 -        int     tf_cr2; 
    6.68 -	/* below portion defined in 386 hardware */
    6.69 -	int	tf_err;
    6.70 -	int	tf_eip;
    6.71 -	int	tf_cs;
    6.72 -	int	tf_eflags;
    6.73 -	/* below only when crossing rings (e.g. user to kernel) */
    6.74 -	int	tf_esp;
    6.75 -	int	tf_ss;
    6.76 -};
    6.77 -
    6.78 -/* Interrupt stack frame */
    6.79 -
    6.80 -struct intrframe {
    6.81 -	int	if_fs;
    6.82 -	int	if_es;
    6.83 -	int	if_ds;
    6.84 -	int	if_edi;
    6.85 -	int	if_esi;
    6.86 -	int	if_ebp;
    6.87 -	int	:32;
    6.88 -	int	if_ebx;
    6.89 -	int	if_edx;
    6.90 -	int	if_ecx;
    6.91 -	int	if_eax;
    6.92 -	int	:32;		/* for compat with trap frame - trapno */
    6.93 -        int     if_vec;         /* cr2 in trap frame */
    6.94 -	int	:32;		/* for compat with trap frame - err */
    6.95 -	/* below portion defined in 386 hardware */
    6.96 -	int	if_eip;
    6.97 -	int	if_cs;
    6.98 -	int	if_eflags;
    6.99 -	/* below only when crossing rings (e.g. user to kernel) */
   6.100 -	int	if_esp;
   6.101 -	int	if_ss;
   6.102 -};
   6.103 -
   6.104 -/* frame of clock (same as interrupt frame) */
   6.105 -
   6.106 -struct clockframe {
   6.107 -	int	cf_fs;
   6.108 -	int	cf_es;
   6.109 -	int	cf_ds;
   6.110 -	int	cf_edi;
   6.111 -	int	cf_esi;
   6.112 -	int	cf_ebp;
   6.113 -	int	:32;
   6.114 -	int	cf_ebx;
   6.115 -	int	cf_edx;
   6.116 -	int	cf_ecx;
   6.117 -	int	cf_eax;
   6.118 -	int	:32;		/* for compat with trap frame - trapno */
   6.119 -        int     cf_vec;         /* cr2 in trap frame */ 
   6.120 -	int	:32;		/* for compat with trap frame - err */
   6.121 -	/* below portion defined in 386 hardware */
   6.122 -	int	cf_eip;
   6.123 -	int	cf_cs;
   6.124 -	int	cf_eflags;
   6.125 -	/* below only when crossing rings (e.g. user to kernel) */
   6.126 -	int	cf_esp;
   6.127 -	int	cf_ss;
   6.128 -};
   6.129 -
   6.130 -#define	INTR_TO_TRAPFRAME(frame) ((struct trapframe *)&(frame)->if_fs)
   6.131 -
   6.132 -#endif /* _MACHINE_FRAME_H_ */
     7.1 --- a/freebsd-5.3-xen-sparse/i386-xen/include/pcpu.h	Sat Apr 30 15:20:55 2005 +0000
     7.2 +++ b/freebsd-5.3-xen-sparse/i386-xen/include/pcpu.h	Mon May 02 08:33:19 2005 +0000
     7.3 @@ -50,8 +50,9 @@
     7.4  	int	pc_currentldt;						\
     7.5  	u_int	pc_acpi_id;						\
     7.6  	u_int	pc_apic_id;                                             \
     7.7 -        u_int   pc_faultaddr;                                           \
     7.8 -        u_int   pc_trap_nesting;                                        \
     7.9 +        int     *pc_ipi_to_evtchn;                                      \
    7.10 +        int     *pc_virq_to_irq;                                        \
    7.11 +        u_int   pc_cr2;                                                 \
    7.12          u_int   pc_pdir                                        
    7.13  
    7.14  #if defined(lint)
     8.1 --- a/freebsd-5.3-xen-sparse/i386-xen/include/ucontext.h	Sat Apr 30 15:20:55 2005 +0000
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,105 +0,0 @@
     8.4 -/*-
     8.5 - * Copyright (c) 1999 Marcel Moolenaar
     8.6 - * All rights reserved.
     8.7 - *
     8.8 - * Redistribution and use in source and binary forms, with or without
     8.9 - * modification, are permitted provided that the following conditions
    8.10 - * are met:
    8.11 - * 1. Redistributions of source code must retain the above copyright
    8.12 - *    notice, this list of conditions and the following disclaimer 
    8.13 - *    in this position and unchanged.
    8.14 - * 2. Redistributions in binary form must reproduce the above copyright
    8.15 - *    notice, this list of conditions and the following disclaimer in the
    8.16 - *    documentation and/or other materials provided with the distribution.
    8.17 - * 3. The name of the author may not be used to endorse or promote products
    8.18 - *    derived from this software without specific prior written permission.
    8.19 - *
    8.20 - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
    8.21 - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    8.22 - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    8.23 - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
    8.24 - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    8.25 - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    8.26 - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    8.27 - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    8.28 - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    8.29 - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    8.30 - *
    8.31 - * $FreeBSD: src/sys/i386/include/ucontext.h,v 1.10 2002/12/02 19:58:55 deischen Exp $
    8.32 - */
    8.33 -
    8.34 -#ifndef _MACHINE_UCONTEXT_H_
    8.35 -#define	_MACHINE_UCONTEXT_H_
    8.36 -
    8.37 -typedef struct __mcontext {
    8.38 -	/*
    8.39 -	 * The first 20 fields must match the definition of
    8.40 -	 * sigcontext. So that we can support sigcontext
    8.41 -	 * and ucontext_t at the same time.
    8.42 -	 */
    8.43 -	int	mc_onstack;		/* XXX - sigcontext compat. */
    8.44 -	int	mc_gs;			/* machine state (struct trapframe) */
    8.45 -	int	mc_fs;
    8.46 -	int	mc_es;
    8.47 -	int	mc_ds;
    8.48 -	int	mc_edi;
    8.49 -	int	mc_esi;
    8.50 -	int	mc_ebp;
    8.51 -	int	mc_isp;
    8.52 -	int	mc_ebx;
    8.53 -	int	mc_edx;
    8.54 -	int	mc_ecx;
    8.55 -	int	mc_eax;
    8.56 -	int	mc_trapno;
    8.57 -        int     mc_cr2;
    8.58 -	int	mc_err;
    8.59 -	int	mc_eip;
    8.60 -	int	mc_cs;
    8.61 -	int	mc_eflags;
    8.62 -	int	mc_esp;
    8.63 -	int	mc_ss;
    8.64 -
    8.65 -	int	mc_len;			/* sizeof(mcontext_t) */
    8.66 -#define	_MC_FPFMT_NODEV		0x10000	/* device not present or configured */
    8.67 -#define	_MC_FPFMT_387		0x10001
    8.68 -#define	_MC_FPFMT_XMM		0x10002
    8.69 -	int	mc_fpformat;
    8.70 -#define	_MC_FPOWNED_NONE	0x20000	/* FP state not used */
    8.71 -#define	_MC_FPOWNED_FPU		0x20001	/* FP state came from FPU */
    8.72 -#define	_MC_FPOWNED_PCB		0x20002	/* FP state came from PCB */
    8.73 -	int	mc_ownedfp;
    8.74 -	/*
    8.75 -	 * See <machine/npx.h> for the internals of mc_fpstate[].
    8.76 -	 */
    8.77 -	int	mc_fpstate[128] __aligned(16);
    8.78 -	int	mc_spare2[8];
    8.79 -} mcontext_t;
    8.80 -
    8.81 -#if defined(_KERNEL) && defined(COMPAT_FREEBSD4)
    8.82 -struct mcontext4 {
    8.83 -	int	mc_onstack;		/* XXX - sigcontext compat. */
    8.84 -	int	mc_gs;			/* machine state (struct trapframe) */
    8.85 -	int	mc_fs;
    8.86 -	int	mc_es;
    8.87 -	int	mc_ds;
    8.88 -	int	mc_edi;
    8.89 -	int	mc_esi;
    8.90 -	int	mc_ebp;
    8.91 -	int	mc_isp;
    8.92 -	int	mc_ebx;
    8.93 -	int	mc_edx;
    8.94 -	int	mc_ecx;
    8.95 -	int	mc_eax;
    8.96 -	int	mc_trapno;
    8.97 -	int	mc_err;
    8.98 -	int	mc_eip;
    8.99 -	int	mc_cs;
   8.100 -	int	mc_eflags;
   8.101 -	int	mc_esp;			/* machine state */
   8.102 -	int	mc_ss;
   8.103 -	int	mc_fpregs[28];		/* env87 + fpacc87 + u_long */
   8.104 -	int	__spare__[17];
   8.105 -};
   8.106 -#endif
   8.107 -
   8.108 -#endif /* !_MACHINE_UCONTEXT_H_ */