source: rtems/cpukit/score/cpu/i960/asm.h @ 3a4ae6c

4.104.114.84.95
Last change on this file since 3a4ae6c was 3a4ae6c, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 11, 1995 at 7:35:39 PM

The word "RTEMS" almost completely removed from the core.

Configuration Table Template file added and all tests
modified to use this. All gvar.h and conftbl.h files
removed from test directories.

Configuration parameter maximum_devices added.

Core semaphore and mutex handlers added and RTEMS API Semaphore
Manager updated to reflect this.

Initialization sequence changed to invoke API specific initialization
routines. Initialization tasks table now owned by RTEMS Tasks Manager.

Added user extension for post-switch.

Utilized user extensions to implement API specific functionality
like signal dispatching.

Added extensions to the System Initialization Thread so that an
API can register a function to be invoked while the system
is being initialized. These are largely equivalent to the
pre-driver and post-driver hooks.

Added the Modules file oar-go32_p5, modified oar-go32, and modified
the file make/custom/go32.cfg to look at an environment varable which
determines what CPU model is being used.

All BSPs updated to reflect named devices and clock driver's IOCTL
used by the Shared Memory Driver. Also merged clock isr into
main file and removed ckisr.c where possible.

Updated spsize to reflect new and moved variables.

Makefiles for the executive source and include files updated to show
break down of files into Core, RTEMS API, and Neither.

Header and inline files installed into subdirectory based on whether
logically in the Core or a part of the RTEMS API.

  • Property mode set to 100644
File size: 2.4 KB
Line 
1/*  asm.h
2 *
3 *  This include file attempts to address the problems
4 *  caused by incompatible flavors of assemblers and
5 *  toolsets.  It primarily addresses variations in the
6 *  use of leading underscores on symbols and the requirement
7 *  that register names be preceded by a %.
8 *
9 *
10 *  NOTE: The spacing in the use of these macros
11 *        is critical to them working as advertised.
12 *
13 *  COPYRIGHT:
14 *
15 *  This file is based on similar code found in newlib available
16 *  from ftp.cygnus.com.  The file which was used had no copyright
17 *  notice.  This file is freely distributable as long as the source
18 *  of the file is noted.  This file is:
19 *
20 *  COPYRIGHT (c) 1994.
21 *  On-Line Applications Research Corporation (OAR).
22 *
23 *  $Id$
24 */
25
26#ifndef __i960_ASM_h
27#define __i960_ASM_h
28
29/*
30 *  Indicate we are in an assembly file and get the basic CPU definitions.
31 */
32
33#define ASM
34#include <rtems/core/i960.h>
35
36/*
37 *  Recent versions of GNU cpp define variables which indicate the
38 *  need for underscores and percents.  If not using GNU cpp or
39 *  the version does not support this, then you will obviously
40 *  have to define these as appropriate.
41 */
42
43#ifndef __USER_LABEL_PREFIX__
44#define __USER_LABEL_PREFIX__ _
45#endif
46
47#ifndef __REGISTER_PREFIX__
48#define __REGISTER_PREFIX__
49#endif
50
51/* ANSI concatenation macros.  */
52
53#define CONCAT1(a, b) CONCAT2(a, b)
54#define CONCAT2(a, b) a ## b
55
56/* Use the right prefix for global labels.  */
57
58#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
59
60/* Use the right prefix for registers.  */
61
62#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
63
64#define g0  REG (g0)
65#define g1  REG (g1)
66#define g2  REG (g2)
67#define g3  REG (g3)
68#define g4  REG (g4)
69#define g5  REG (g5)
70#define g6  REG (g6)
71#define g7  REG (g7)
72#define g8  REG (g8)
73#define g9  REG (g9)
74#define g10 REG (g10)
75#define g11 REG (g11)
76#define g12 REG (g12)
77#define g13 REG (g13)
78#define g14 REG (g14)
79#define g15 REG (g15)
80
81/*
82 *  Define macros to handle section beginning and ends.
83 */
84
85
86#define BEGIN_CODE_DCL .text
87#define END_CODE_DCL
88#define BEGIN_DATA_DCL .data
89#define END_DATA_DCL
90#define BEGIN_CODE .text
91#define END_CODE
92#define BEGIN_DATA
93#define END_DATA
94#define BEGIN_BSS
95#define END_BSS
96#define END
97
98/*
99 *  Following must be tailor for a particular flavor of the C compiler.
100 *  They may need to put underscores in front of the symbols.
101 */
102
103#define PUBLIC(sym) .globl SYM (sym)
104#define EXTERN(sym) .globl SYM (sym)
105
106#endif
107/* end of include file */
Note: See TracBrowser for help on using the repository browser.