summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/i960/i960rp/cpu_install_intr_stack.c
blob: 9e1deca59867d343ac255a9d451bc637b5413063 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 *  Install interrupt stack i960RP
 *
 *  $Id$
 */

#include <rtems.h>
#include <libcpu/i960RP.h>

extern i960_PRCB *Prcb;

void _CPU_Install_interrupt_stack( void )
{
  i960_PRCB *prcb = Prcb;
  unsigned32   level;
  unsigned32 *isp = (int *) ISP_ADDR;
  
  /*  
   *  Set the Interrupt Stack in the on-CPU memory.
   *  Interrupts are disabled for safety.
   */

  _CPU_ISR_Disable( level );

    prcb->intr_stack = _CPU_Interrupt_stack_low;

    *isp = (unsigned32) prcb->intr_stack;

  _CPU_ISR_Enable( level );
}