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

4.104.114.84.95
Last change on this file since df49c60 was 48bfd992, checked in by Joel Sherrill <joel.sherrill@…>, on 11/30/99 at 19:58:02

Renamed shm.h to shm_driver.h to avoid conflicts with POSIX shm.h.

Renamed file shmsupp/intr.c in some BSPs to shmsupp/cause_intr.c to
avoid conflict with rtems/src/intr.c (Classic API Interrupt Manager).

  • 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.OARcorp.com/rtems/license.html.
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.