[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-3.4-testing] minios: Clean up and remove Linux remnants from x86_64.S



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1244109251 -3600
# Node ID 549956f395d444f2a4cdac3830ed2abf750069fa
# Parent  be44729000d345b41be1741492619e89f35eb69b
minios: Clean up and remove Linux remnants from x86_64.S

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
xen-unstable changeset:   19711:2e522b843a21
xen-unstable date:        Wed Jun 03 18:27:05 2009 +0100

minios: Introduce BSD license COPYING file
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
xen-unstable changeset:   19712:7a215fae6f1f
xen-unstable date:        Thu Jun 04 10:35:03 2009 +0100
---
 COPYING                          |   13 ++-
 extras/mini-os/COPYING           |   23 ++++++
 extras/mini-os/arch/x86/x86_64.S |  131 +++++----------------------------------
 3 files changed, 50 insertions(+), 117 deletions(-)

diff -r be44729000d3 -r 549956f395d4 COPYING
--- a/COPYING   Thu Jun 04 10:53:21 2009 +0100
+++ b/COPYING   Thu Jun 04 10:54:11 2009 +0100
@@ -17,12 +17,13 @@ GPL when distributed separately or inclu
 GPL when distributed separately or included in software packages
 outside this repository. Instead we specify a much more relaxed
 BSD-style license. Affected files include the Xen interface headers
-(xen/include/public/COPYING), and various drivers, support functions
-and header files within the Linux source trees on
-http://xenbits.xensource.com/linux-2.6.X-xen.hg. In all such cases,
-license terms are stated at the top of the file or in a COPYING file
-in the same directory. Note that _any_ file that is modified and then
-distributed within a Linux kernel is still subject to the GNU GPL.
+(xen/include/public/COPYING), MiniOS (extras/mini-os) and various
+drivers, support functions and header files within the Linux source
+trees on http://xenbits.xensource.com/linux-2.6.X-xen.hg.
+In all such cases, license terms are stated at the top of the file or in
+a COPYING file in the same directory. Note that _any_ file that is
+modified and then distributed within a Linux kernel is still subject to
+the GNU GPL.
 
  -- Keir Fraser (on behalf of the Xen team)
 
diff -r be44729000d3 -r 549956f395d4 extras/mini-os/COPYING
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/extras/mini-os/COPYING    Thu Jun 04 10:54:11 2009 +0100
@@ -0,0 +1,23 @@
+Copyright (c) 2009 Citrix Systems, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
diff -r be44729000d3 -r 549956f395d4 extras/mini-os/arch/x86/x86_64.S
--- a/extras/mini-os/arch/x86/x86_64.S  Thu Jun 04 10:53:21 2009 +0100
+++ b/extras/mini-os/arch/x86/x86_64.S  Thu Jun 04 10:54:11 2009 +0100
@@ -46,88 +46,21 @@ NMI_MASK = 0x80000000
 #define ORIG_RAX 120       /* + error_code */ 
 #define EFLAGS 144
 
-#define REST_SKIP 6*8                  
-.macro SAVE_REST
-       subq $REST_SKIP,%rsp
-#      CFI_ADJUST_CFA_OFFSET   REST_SKIP
-       movq %rbx,5*8(%rsp) 
-#      CFI_REL_OFFSET  rbx,5*8
-       movq %rbp,4*8(%rsp) 
-#      CFI_REL_OFFSET  rbp,4*8
-       movq %r12,3*8(%rsp) 
-#      CFI_REL_OFFSET  r12,3*8
-       movq %r13,2*8(%rsp) 
-#      CFI_REL_OFFSET  r13,2*8
-       movq %r14,1*8(%rsp) 
-#      CFI_REL_OFFSET  r14,1*8
-       movq %r15,(%rsp) 
-#      CFI_REL_OFFSET  r15,0*8
-.endm          
-
-
-.macro RESTORE_REST
-       movq (%rsp),%r15
-#      CFI_RESTORE r15
-       movq 1*8(%rsp),%r14
-#      CFI_RESTORE r14
-       movq 2*8(%rsp),%r13
-#      CFI_RESTORE r13
-       movq 3*8(%rsp),%r12
-#      CFI_RESTORE r12
-       movq 4*8(%rsp),%rbp
-#      CFI_RESTORE rbp
-       movq 5*8(%rsp),%rbx
-#      CFI_RESTORE rbx
-       addq $REST_SKIP,%rsp
-#      CFI_ADJUST_CFA_OFFSET   -(REST_SKIP)
-.endm
-
-
-#define ARG_SKIP 9*8
-.macro RESTORE_ARGS 
skiprax=0,addskip=0,skiprcx=0,skipr11=0,skipr8910=0,skiprdx=0
-       .if \skipr11
-       .else
+.macro RESTORE_ALL
        movq (%rsp),%r11
-#      CFI_RESTORE r11
-       .endif
-       .if \skipr8910
-       .else
        movq 1*8(%rsp),%r10
-#      CFI_RESTORE r10
        movq 2*8(%rsp),%r9
-#      CFI_RESTORE r9
        movq 3*8(%rsp),%r8
-#      CFI_RESTORE r8
-       .endif
-       .if \skiprax
-       .else
        movq 4*8(%rsp),%rax
-#      CFI_RESTORE rax
-       .endif
-       .if \skiprcx
-       .else
        movq 5*8(%rsp),%rcx
-#      CFI_RESTORE rcx
-       .endif
-       .if \skiprdx
-       .else
        movq 6*8(%rsp),%rdx
-#      CFI_RESTORE rdx
-       .endif
        movq 7*8(%rsp),%rsi
-#      CFI_RESTORE rsi
        movq 8*8(%rsp),%rdi
-#      CFI_RESTORE rdi
-       .if ARG_SKIP+\addskip > 0
-       addq $ARG_SKIP+\addskip,%rsp
-#      CFI_ADJUST_CFA_OFFSET   -(ARG_SKIP+\addskip)
-       .endif
+       addq $9*8+8,%rsp
 .endm  
 
 
 .macro HYPERVISOR_IRET flag
-#    testb $3,1*8(%rsp)    /* Don't need to do that in Mini-os, as */
-#      jnz   2f               /* there is no userspace? */
        testl $NMI_MASK,2*8(%rsp)
        jnz   2f
 
@@ -150,44 +83,25 @@ 2: /* Slow iret via hypervisor. */
  * and the exception handler in %rax.  
  */                                            
 ENTRY(error_entry)
-#      _frame RDI
        /* rdi slot contains rax, oldrax contains error code */
        cld     
        subq  $14*8,%rsp
-#      CFI_ADJUST_CFA_OFFSET   (14*8)
        movq %rsi,13*8(%rsp)
-#      CFI_REL_OFFSET  rsi,RSI
        movq 14*8(%rsp),%rsi    /* load rax from rdi slot */
        movq %rdx,12*8(%rsp)
-#      CFI_REL_OFFSET  rdx,RDX
        movq %rcx,11*8(%rsp)
-#      CFI_REL_OFFSET  rcx,RCX
        movq %rsi,10*8(%rsp)    /* store rax */ 
-#      CFI_REL_OFFSET  rax,RAX
        movq %r8, 9*8(%rsp)
-#      CFI_REL_OFFSET  r8,R8
        movq %r9, 8*8(%rsp)
-#      CFI_REL_OFFSET  r9,R9
        movq %r10,7*8(%rsp)
-#      CFI_REL_OFFSET  r10,R10
        movq %r11,6*8(%rsp)
-#      CFI_REL_OFFSET  r11,R11
        movq %rbx,5*8(%rsp) 
-#      CFI_REL_OFFSET  rbx,RBX
        movq %rbp,4*8(%rsp) 
-#      CFI_REL_OFFSET  rbp,RBP
        movq %r12,3*8(%rsp) 
-#      CFI_REL_OFFSET  r12,R12
        movq %r13,2*8(%rsp) 
-#      CFI_REL_OFFSET  r13,R13
        movq %r14,1*8(%rsp) 
-#      CFI_REL_OFFSET  r14,R14
        movq %r15,(%rsp) 
-#      CFI_REL_OFFSET  r15,R15
-#if 0        
-       cmpl $__KERNEL_CS,CS(%rsp)
-       je  error_kernelspace
-#endif        
+
 error_call_handler:
        movq %rdi, RDI(%rsp)            
        movq %rsp,%rdi
@@ -197,29 +111,22 @@ error_call_handler:
        jmp error_exit
 
 .macro zeroentry sym
-#      INTR_FRAME
     movq (%rsp),%rcx
     movq 8(%rsp),%r11
     addq $0x10,%rsp /* skip rcx and r11 */
        pushq $0        /* push error code/oldrax */ 
-#      CFI_ADJUST_CFA_OFFSET 8
        pushq %rax      /* push real oldrax to the rdi slot */ 
-#      CFI_ADJUST_CFA_OFFSET 8
        leaq  \sym(%rip),%rax
        jmp error_entry
-#      CFI_ENDPROC
 .endm  
 
 .macro errorentry sym
-#      XCPT_FRAME
         movq (%rsp),%rcx
         movq 8(%rsp),%r11
         addq $0x10,%rsp /* rsp points to the error code */
        pushq %rax
-#      CFI_ADJUST_CFA_OFFSET 8
        leaq  \sym(%rip),%rax
        jmp error_entry
-#      CFI_ENDPROC
 .endm
 
 #define XEN_GET_VCPU_INFO(reg) movq HYPERVISOR_shared_info,reg
@@ -253,7 +160,6 @@ 11:     movq %gs:8,%rax
         decl %gs:0
         jmp error_exit
 
-#        ALIGN
 restore_all_enable_events:  
        XEN_UNBLOCK_EVENTS(%rsi)        # %rsi is already set up...
 
@@ -261,12 +167,18 @@ scrit:    /**** START OF CRITICAL REGION **
        XEN_TEST_PENDING(%rsi)
        jnz  14f                        # process more events if necessary...
        XEN_PUT_VCPU_INFO(%rsi)
-        RESTORE_ARGS 0,8,0
+        RESTORE_ALL
         HYPERVISOR_IRET 0
         
 14:    XEN_LOCKED_BLOCK_EVENTS(%rsi)
        XEN_PUT_VCPU_INFO(%rsi)
-       SAVE_REST
+       subq $6*8,%rsp
+       movq %rbx,5*8(%rsp) 
+       movq %rbp,4*8(%rsp) 
+       movq %r12,3*8(%rsp) 
+       movq %r13,2*8(%rsp) 
+       movq %r14,1*8(%rsp) 
+       movq %r15,(%rsp) 
         movq %rsp,%rdi                  # set the argument again
        jmp  11b
 ecrit:  /**** END OF CRITICAL REGION ****/
@@ -274,7 +186,7 @@ ecrit:  /**** END OF CRITICAL REGION ***
 
 retint_kernel:
 retint_restore_args:
-       movl EFLAGS-REST_SKIP(%rsp), %eax
+       movl EFLAGS-6*8(%rsp), %eax
        shr $9, %eax                    # EAX[0] == IRET_EFLAGS.IF
        XEN_GET_VCPU_INFO(%rsi)
        andb evtchn_upcall_mask(%rsi),%al
@@ -282,13 +194,18 @@ retint_restore_args:
        jnz restore_all_enable_events   #        != 0 => enable event delivery
        XEN_PUT_VCPU_INFO(%rsi)
                
-       RESTORE_ARGS 0,8,0
+       RESTORE_ALL
        HYPERVISOR_IRET 0
 
 
 error_exit:            
-       RESTORE_REST
-/*     cli */
+       movq (%rsp),%r15
+       movq 1*8(%rsp),%r14
+       movq 2*8(%rsp),%r13
+       movq 3*8(%rsp),%r12
+       movq 4*8(%rsp),%rbp
+       movq 5*8(%rsp),%rbx
+       addq $6*8,%rsp
        XEN_BLOCK_EVENTS(%rsi)          
        jmp retint_kernel
 
@@ -313,17 +230,11 @@ ENTRY(device_not_available)
 
 
 ENTRY(debug)
-#       INTR_FRAME
-#       CFI_ADJUST_CFA_OFFSET 8 */
         zeroentry do_debug
-#       CFI_ENDPROC
 
 
 ENTRY(int3)
-#       INTR_FRAME
-#       CFI_ADJUST_CFA_OFFSET 8 */
         zeroentry do_int3
-#       CFI_ENDPROC
 
 ENTRY(overflow)
         zeroentry do_overflow
@@ -351,9 +262,7 @@ ENTRY(segment_not_present)
 
 /* runs on exception stack */
 ENTRY(stack_segment)
-#       XCPT_FRAME
         errorentry do_stack_segment
-#       CFI_ENDPROC
                     
 
 ENTRY(general_protection)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.