comparison packages/hal/mn10300/am33/current/include/var_arch.h @ 115:6ed91473a1cd ecos-sw-2000-08-21

Merge from eCos master repository on 2000-08-21-22:40:54-BST
author jlarmour
date Fri, 25 Aug 2000 17:32:38 +0000
parents 435cced73e2f
children e0c0827131d1
comparison
equal deleted inserted replaced
114:5ad2b71d525e 115:6ed91473a1cd
33 //####COPYRIGHTEND#### 33 //####COPYRIGHTEND####
34 //========================================================================== 34 //==========================================================================
35 //#####DESCRIPTIONBEGIN#### 35 //#####DESCRIPTIONBEGIN####
36 // 36 //
37 // Author(s): nickg 37 // Author(s): nickg
38 // Contributors: nickg 38 // Contributors: nickg, dmoseley
39 // Date: 1999-02-17 39 // Date: 1999-02-17
40 // Purpose: Define architecture abstractions 40 // Purpose: Define architecture abstractions
41 // Description: This file contains any extra or modified definitions for 41 // Description: This file contains any extra or modified definitions for
42 // this variant of the architecture. 42 // this variant of the architecture.
43 // Usage: #include <cyg/hal/var_arch.h> 43 // Usage: #include <cyg/hal/var_arch.h>
46 // 46 //
47 //========================================================================== 47 //==========================================================================
48 48
49 #include <pkgconf/hal.h> 49 #include <pkgconf/hal.h>
50 #include <cyg/infra/cyg_type.h> 50 #include <cyg/infra/cyg_type.h>
51
52 //--------------------------------------------------------------------------
53 // Processor Status word bitmasks
54
55 #define HAL_ARCH_AM33_PSW_nSL (1L << 16)
56 #define HAL_ARCH_AM33_PSW_ML (1L << 19)
51 57
52 //-------------------------------------------------------------------------- 58 //--------------------------------------------------------------------------
53 // Processor saved states: 59 // Processor saved states:
54 60
55 typedef struct HAL_SavedRegisters 61 typedef struct HAL_SavedRegisters
111 CYG_MACRO_END 117 CYG_MACRO_END
112 118
113 //-------------------------------------------------------------------------- 119 //--------------------------------------------------------------------------
114 // The following macros copy the extra AM33 registers between a 120 // The following macros copy the extra AM33 registers between a
115 // HAL_SavedRegisters structure and a GDB register dump. 121 // HAL_SavedRegisters structure and a GDB register dump.
122 // The CYGMON version should handle the SSP and USP and MDRQ registers.
116 123
124 #ifdef CYGPKG_CYGMON
125 #define HAL_GET_GDB_EXTRA_REGISTERS( _regval_, _regs_ ) am33_get_gdb_extra_registers( _regval_, _regs_ )
126 extern void am33_get_gdb_extra_registers(CYG_ADDRWORD *registers, HAL_SavedRegisters *regs);
127 #else // CYGPKG_CYGMON
117 #define HAL_GET_GDB_EXTRA_REGISTERS( _regval_, _regs_ ) \ 128 #define HAL_GET_GDB_EXTRA_REGISTERS( _regval_, _regs_ ) \
118 CYG_MACRO_START \ 129 CYG_MACRO_START \
119 (_regval_)[15] = (_regs_)->e0; \ 130 (_regval_)[15] = (_regs_)->e0; \
120 (_regval_)[16] = (_regs_)->e1; \ 131 (_regval_)[16] = (_regs_)->e1; \
121 (_regval_)[17] = (_regs_)->e2; \ 132 (_regval_)[17] = (_regs_)->e2; \
131 \ 142 \
132 (_regval_)[26] = (_regs_)->mcrh; \ 143 (_regval_)[26] = (_regs_)->mcrh; \
133 (_regval_)[27] = (_regs_)->mcrl; \ 144 (_regval_)[27] = (_regs_)->mcrl; \
134 (_regval_)[28] = (_regs_)->mcvf; \ 145 (_regval_)[28] = (_regs_)->mcvf; \
135 CYG_MACRO_END 146 CYG_MACRO_END
147 #endif // CYGPKG_CYGMON
136 148
149 #ifdef CYGPKG_CYGMON
150 #define HAL_SET_GDB_EXTRA_REGISTERS( _regval_, _regs_ ) am33_set_gdb_extra_registers( _regs_, _regval_ )
151 extern void am33_set_gdb_extra_registers(CYG_ADDRWORD *registers, HAL_SavedRegisters *regs);
152 #else // CYGPKG_CYGMON
137 #define HAL_SET_GDB_EXTRA_REGISTERS( _regs_, _regval_ ) \ 153 #define HAL_SET_GDB_EXTRA_REGISTERS( _regs_, _regval_ ) \
138 CYG_MACRO_START \ 154 CYG_MACRO_START \
139 (_regs_)->e0 = (_regval_)[15]; \ 155 (_regs_)->e0 = (_regval_)[15]; \
140 (_regs_)->e1 = (_regval_)[16]; \ 156 (_regs_)->e1 = (_regval_)[16]; \
141 (_regs_)->e2 = (_regval_)[17]; \ 157 (_regs_)->e2 = (_regval_)[17]; \
151 \ 167 \
152 (_regs_)->mcrh = (_regval_)[26]; \ 168 (_regs_)->mcrh = (_regval_)[26]; \
153 (_regs_)->mcrl = (_regval_)[27]; \ 169 (_regs_)->mcrl = (_regval_)[27]; \
154 (_regs_)->mcvf = (_regval_)[28]; \ 170 (_regs_)->mcvf = (_regval_)[28]; \
155 CYG_MACRO_END 171 CYG_MACRO_END
172 #endif // CYGPKG_CYGMON
156 173
157 //-------------------------------------------------------------------------- 174 //--------------------------------------------------------------------------
158 #endif // CYGONCE_HAL_VAR_ARCH_H 175 #endif // CYGONCE_HAL_VAR_ARCH_H
159 // End of var_arch.h 176 // End of var_arch.h