source: rtems/c/src/lib/libbsp/shmdr/intr.c @ 8c99365

Last change on this file since 8c99365 was 8c99365, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 4, 2003 at 6:53:36 PM

2003-09-04 Joel Sherrill <joel@…>

  • addlq.c, cnvpkt.c, dump.c, fatal.c, getlq.c, getpkt.c, init.c, initlq.c, intr.c, mpci.h, mpisr.c, poll.c, receive.c, retpkt.c, send.c, setckvec.c, shm_driver.h: URL for license changed.
  • Property mode set to 100644
File size: 1.4 KB
Line 
1/*  void Shm_Cause_interrupt( node )
2 *
3 *  This routine is the shared memory driver routine which
4 *  generates interrupts to other CPUs.
5 *
6 *  It uses the information placed in the node status control
7 *  block by each node.  For example, when used with the Motorola
8 *  MVME136 board, the MPCSR is used.
9 *
10 *  Input parameters:
11 *    node          - destination of this packet (0 = broadcast)
12 *
13 *  Output parameters: NONE
14 *
15 *  COPYRIGHT (c) 1989-1999.
16 *  On-Line Applications Research Corporation (OAR).
17 *
18 *  The license and distribution terms for this file may be
19 *  found in the file LICENSE in this distribution or at
20 *  http://www.rtems.com/license/LICENSE.
21 *
22 *  $Id$
23 */
24
25#include <rtems.h>
26#include "shm_driver.h"
27
28void Shm_Cause_interrupt(
29  rtems_unsigned32 node
30)
31{
32  Shm_Interrupt_information *intr;
33  rtems_unsigned8  *u8;
34  rtems_unsigned16 *u16;
35  rtems_unsigned32 *u32;
36  rtems_unsigned32  value;
37
38  intr = &Shm_Interrupt_table[node];
39  value = intr->value;
40
41  switch ( intr->length ) {
42    case NO_INTERRUPT:
43       break;
44    case BYTE:
45      u8   = (rtems_unsigned8 *)intr->address;
46      *u8  = (rtems_unsigned8) value;
47      break;
48    case WORD:
49      u16   = (rtems_unsigned16 *)intr->address;
50      *u16  = (rtems_unsigned16) value;
51      break;
52    case LONG:
53      u32   = (rtems_unsigned32 *)intr->address;
54      *u32  = (rtems_unsigned32) value;
55      break;
56  }
57}
Note: See TracBrowser for help on using the repository browser.