Mercurial > flash_v2
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 |
