source: rtems/c/src/lib/libbsp/sparc/leon3/include/tm27.h @ 9b4422a2

4.11
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on May 3, 2012 at 3:09:24 PM

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 1.8 KB
Line 
1/*
2 *  tm27.h
3 *
4 *  The license and distribution terms for this file may be
5 *  found in the file LICENSE in this distribution or at
6 *  http://www.rtems.com/license/LICENSE.
7 */
8
9#ifndef _RTEMS_TMTEST27
10#error "This is an RTEMS internal file you must not include directly."
11#endif
12
13#ifndef __tm27_h
14#define __tm27_h
15
16/*
17 *  Define the interrupt mechanism for Time Test 27
18 *
19 *  NOTE: Since the interrupt code for the SPARC supports both synchronous
20 *        and asynchronous trap handlers, support for testing with both
21 *        is included.
22 */
23
24#define SIS_USE_SYNCHRONOUS_TRAP  0
25
26/*
27 *  The synchronous trap is an arbitrarily chosen software trap.
28 */
29
30#if (SIS_USE_SYNCHRONOUS_TRAP == 1)
31
32#define TEST_VECTOR SPARC_SYNCHRONOUS_TRAP( 0x90 )
33
34#define MUST_WAIT_FOR_INTERRUPT 1
35
36#define Install_tm27_vector( handler ) \
37  set_vector( (handler), TEST_VECTOR, 1 );
38
39#define Cause_tm27_intr() \
40  __asm__ volatile( "ta 0x10; nop " );
41
42#define Clear_tm27_intr() /* empty */
43
44#define Lower_tm27_intr() /* empty */
45
46/*
47 *  The asynchronous trap is an arbitrarily chosen ERC32 interrupt source.
48 */
49
50#else   /* use a regular asynchronous trap */
51
52#define TEST_INTERRUPT_SOURCE LEON_INTERRUPT_EXTERNAL_1
53#define TEST_VECTOR LEON_TRAP_TYPE( TEST_INTERRUPT_SOURCE )
54#define TEST_INTERRUPT_SOURCE2 LEON_INTERRUPT_EXTERNAL_1+1
55#define TEST_VECTOR2 LEON_TRAP_TYPE( TEST_INTERRUPT_SOURCE2 )
56#define MUST_WAIT_FOR_INTERRUPT 1
57
58#define Install_tm27_vector( handler ) \
59  set_vector( (handler), TEST_VECTOR, 1 ); \
60  set_vector( (handler), TEST_VECTOR2, 1 );
61
62#define Cause_tm27_intr() \
63  do { \
64    LEON_Force_interrupt( TEST_INTERRUPT_SOURCE+(Interrupt_nest>>1)); \
65    nop(); \
66    nop(); \
67    nop(); \
68  } while (0)
69
70#define Clear_tm27_intr() \
71  LEON_Clear_interrupt( TEST_INTERRUPT_SOURCE )
72
73#define Lower_tm27_intr() /* empty */
74
75#endif
76
77#endif
Note: See TracBrowser for help on using the repository browser.