Ticket #2041: 0001-sparc64-add-trap-vector-to-CPU_Interrupt_frame-and-f.patch

File 0001-sparc64-add-trap-vector-to-CPU_Interrupt_frame-and-f.patch, 2.3 KB (added by Gedare Bloom, on 03/14/12 at 16:01:15)

Patch fixing bug.

  • c/src/lib/libcpu/sparc64/shared/score/interrupt.S

    From c76a81af59c78f89bb24247b3c2986925e218671 Mon Sep 17 00:00:00 2001
    From: Gedare Bloom <gedare@rtems.org>
    Date: Wed, 14 Mar 2012 12:52:26 -0400
    Subject: [PATCH] sparc64: add trap vector to CPU_Interrupt_frame and fix
     macro name.
    
    ---
     c/src/lib/libcpu/sparc64/shared/score/interrupt.S |    4 ++--
     cpukit/score/cpu/sparc64/rtems/score/cpu.h        |    3 ++-
     2 files changed, 4 insertions(+), 3 deletions(-)
    
    diff --git a/c/src/lib/libcpu/sparc64/shared/score/interrupt.S b/c/src/lib/libcpu/sparc64/shared/score/interrupt.S
    index 1521519..33f372d 100644
    a b PUBLIC(_ISR_Handler) 
    118118    stx   %g3, [%sp + STACK_BIAS + ISF_PIL_OFFSET]
    119119    stx   %g4, [%sp + STACK_BIAS + ISF_TPC_OFFSET]
    120120    stx   %g5, [%sp + STACK_BIAS + ISF_TNPC_OFFSET]
    121     stx   %g2, [%sp + STACK_BIAS + ISF_TVEC_NUM]
     121    stx   %g2, [%sp + STACK_BIAS + ISF_TVEC_OFFSET]
    122122
    123123    rd  %y, %g4        ! save y
    124124    stx   %g4, [%sp + STACK_BIAS + ISF_Y_OFFSET]
    dispatchAgain: 
    526526  ldx   [%sp + STACK_BIAS + ISF_TPC_OFFSET], %g4
    527527  ldx   [%sp + STACK_BIAS + ISF_TNPC_OFFSET], %g5
    528528  ldx   [%sp + STACK_BIAS + ISF_TSTATE_OFFSET], %g1
    529   ldx   [%sp + STACK_BIAS + ISF_TVEC_NUM], %g2
     529  ldx   [%sp + STACK_BIAS + ISF_TVEC_OFFSET], %g2
    530530  wrpr  %g0, %g3, %pil
    531531  wrpr  %g0, %g4, %tpc
    532532  wrpr  %g0, %g5, %tnpc
  • cpukit/score/cpu/sparc64/rtems/score/cpu.h

    diff --git a/cpukit/score/cpu/sparc64/rtems/score/cpu.h b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
    index 105e669..7be274c 100644
    a b typedef struct { 
    519519  uint64_t                 o5;
    520520  uint64_t                 o6_sp;
    521521  uint64_t                 o7;
     522  uint64_t                 tvec;
    522523} CPU_Interrupt_frame;
    523524
    524525#endif /* ASM */
    typedef struct { 
    548549#define ISF_O5_OFFSET          CPU_MINIMUM_STACK_FRAME_SIZE + 0x88
    549550#define ISF_O6_SP_OFFSET       CPU_MINIMUM_STACK_FRAME_SIZE + 0x90
    550551#define ISF_O7_OFFSET          CPU_MINIMUM_STACK_FRAME_SIZE + 0x98
    551 #define ISF_TVEC_NUM            CPU_MINIMUM_STACK_FRAME_SIZE + 0xA0
     552#define ISF_TVEC_OFFSET        CPU_MINIMUM_STACK_FRAME_SIZE + 0xA0
    552553
    553554#define CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE CPU_MINIMUM_STACK_FRAME_SIZE + 0xA8
    554555#ifndef ASM