OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [mn10300/] [arch/] [v2_0/] [include/] [mn10300_stub.h] - Blame information for rev 174

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
#ifndef CYGONCE_HAL_MN10300_STUB_H
2
#define CYGONCE_HAL_MN10300_STUB_H
3
//========================================================================
4
//
5
//      mn10300_stub.h
6
//
7
//      MN10300-specific definitions for generic stub
8
//
9
//========================================================================
10
//####ECOSGPLCOPYRIGHTBEGIN####
11
// -------------------------------------------
12
// This file is part of eCos, the Embedded Configurable Operating System.
13
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
14
//
15
// eCos is free software; you can redistribute it and/or modify it under
16
// the terms of the GNU General Public License as published by the Free
17
// Software Foundation; either version 2 or (at your option) any later version.
18
//
19
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
20
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
21
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22
// for more details.
23
//
24
// You should have received a copy of the GNU General Public License along
25
// with eCos; if not, write to the Free Software Foundation, Inc.,
26
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
27
//
28
// As a special exception, if other files instantiate templates or use macros
29
// or inline functions from this file, or you compile this file and link it
30
// with other works to produce a work based on this file, this file does not
31
// by itself cause the resulting work to be covered by the GNU General Public
32
// License. However the source code for this file must still be made available
33
// in accordance with section (3) of the GNU General Public License.
34
//
35
// This exception does not invalidate any other reasons why a work based on
36
// this file might be covered by the GNU General Public License.
37
//
38
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
39
// at http://sources.redhat.com/ecos/ecos-license/
40
// -------------------------------------------
41
//####ECOSGPLCOPYRIGHTEND####
42
//========================================================================
43
//#####DESCRIPTIONBEGIN####
44
//
45
// Author(s):     Red Hat, jskov
46
// Contributors:  Red Hat, jskov, dmoseley
47
// Date:          1998-11-06
48
// Purpose:       
49
// Description:   MN10300-specific definitions for generic stub
50
// Usage:         
51
//
52
//####DESCRIPTIONEND####
53
//
54
//========================================================================
55
 
56
#ifdef __cplusplus
57
extern "C" {
58
#endif
59
 
60
#if defined(CYGPKG_HAL_MN10300_AM33) && (CYGHWR_HAL_MN10300_AM33_REVISION == 2)
61
#define NUMREGS    64
62
#else
63
#define NUMREGS    32
64
#endif
65
 
66
#define REGSIZE( _x_ ) (4)
67
 
68
typedef unsigned long target_register_t;
69
 
70
enum regnames {
71
  D0, D1, D2, D3, A0, A1, A2, A3,
72
  SP, PC, MDR, PSW, LIR, LAR
73
#ifdef CYGPKG_HAL_MN10300_AM33
74
  , MDRQ,
75
  R0, R1, R2, R3, R4, R5, R6, R7,
76
  SSP, MSP, USP, MCRH, MCRL, MCVF
77
#if CYGHWR_HAL_MN10300_AM33_REVISION == 2
78
  // FPU registers for AM33/2.00
79
  , FP_START, FPCR=FP_START,
80
  XXXX1, XXXX2, // unused
81
  FS0,  FS1,  FS2,  FS3,  FS4,  FS5,  FS6,  FS7,
82
  FS8,  FS9,  FS10, FS11, FS12, FS13, FS14, FS15,
83
  FS16, FS17, FS18, FS19, FS20, FS21, FS22, FS23,
84
  FS24, FS25, FS26, FS27, FS28, FS29, FS30, FS31, FP_END=FS31,
85
#endif
86
#endif  
87
};
88
 
89
typedef enum regnames regnames_t;
90
 
91
/* Given a trap value TRAP, return the corresponding signal. */
92
extern int __computeSignal (unsigned int trap_number);
93
 
94
/* Return the SPARC trap number corresponding to the last-taken trap. */
95
extern int __get_trap_number (void);
96
 
97
/* Return the currently-saved value corresponding to register REG. */
98
extern target_register_t get_register (regnames_t reg);
99
 
100
/* Store VALUE in the register corresponding to WHICH. */
101
extern void put_register (regnames_t which, target_register_t value);
102
 
103
/* Set the currently-saved pc register value to PC. This also updates NPC
104
   as needed. */
105
#if !defined(SET_PC_PROTOTYPE_EXISTS) && !defined(set_pc)
106
#define SET_PC_PROTOTYPE_EXISTS
107
extern void set_pc (target_register_t pc);
108
#endif
109
 
110
/* Set things up so that the next user resume will execute one instruction.
111
   This may be done by setting breakpoints or setting a single step flag
112
   in the saved user registers, for example. */
113
#ifndef __single_step
114
void __single_step (void);
115
#endif
116
 
117
/* Clear the single-step state. */
118
void __clear_single_step (void);
119
 
120
/* If the breakpoint we hit is in the breakpoint() instruction, return a
121
   non-zero value. */
122
#ifndef __is_breakpoint_function
123
extern int __is_breakpoint_function (void);
124
#endif
125
 
126
/* Skip the current instruction. */
127
extern void __skipinst (void);
128
 
129
extern void __install_breakpoints (void);
130
 
131
extern void __clear_breakpoints (void);
132
 
133
extern void __install_breakpoint_list (void);
134
 
135
extern void __clear_breakpoint_list (void);
136
 
137
extern int __is_bsp_syscall(void);
138
 
139
extern int hal_syscall_handler(void);
140
 
141
#ifdef __cplusplus
142
}   /* extern "C" */
143
#endif
144
 
145
#endif // ifndef CYGONCE_HAL_MN10300_STUB_H

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.