diff options
| author | Chris Metcalf <cmetcalf@tilera.com> | 2010-10-14 15:57:59 -0400 |
|---|---|---|
| committer | Chris Metcalf <cmetcalf@tilera.com> | 2010-10-15 15:35:25 -0400 |
| commit | 4fe938c5134fce1f25e1261eef6252fb47634962 (patch) | |
| tree | 12cb1362006cefc53ca77832e4c365eccdd9d97e | |
| parent | dabe98c972091818762e02841ab1f982e573e7d0 (diff) | |
arch/tile: Bomb C99 comments to C89 comments in tile's <arch/sim_def.h>
Also, sync the file up the upstream version (an additional #define).
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
| -rw-r--r-- | arch/tile/include/arch/sim_def.h | 548 |
1 files changed, 269 insertions, 279 deletions
diff --git a/arch/tile/include/arch/sim_def.h b/arch/tile/include/arch/sim_def.h index 6418fbde063e..7a17082c3773 100644 --- a/arch/tile/include/arch/sim_def.h +++ b/arch/tile/include/arch/sim_def.h | |||
| @@ -1,477 +1,461 @@ | |||
| 1 | // Copyright 2010 Tilera Corporation. All Rights Reserved. | 1 | /* |
| 2 | // | 2 | * Copyright 2010 Tilera Corporation. All Rights Reserved. |
| 3 | // This program is free software; you can redistribute it and/or | 3 | * |
| 4 | // modify it under the terms of the GNU General Public License | 4 | * This program is free software; you can redistribute it and/or |
| 5 | // as published by the Free Software Foundation, version 2. | 5 | * modify it under the terms of the GNU General Public License |
| 6 | // | 6 | * as published by the Free Software Foundation, version 2. |
| 7 | // This program is distributed in the hope that it will be useful, but | 7 | * |
| 8 | // WITHOUT ANY WARRANTY; without even the implied warranty of | 8 | * This program is distributed in the hope that it will be useful, but |
| 9 | // MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | 9 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | // NON INFRINGEMENT. See the GNU General Public License for | 10 | * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or |
| 11 | // more details. | 11 | * NON INFRINGEMENT. See the GNU General Public License for |
| 12 | 12 | * more details. | |
| 13 | //! @file | 13 | */ |
| 14 | //! | 14 | |
| 15 | //! Some low-level simulator definitions. | 15 | /** |
| 16 | //! | 16 | * @file |
| 17 | * | ||
| 18 | * Some low-level simulator definitions. | ||
| 19 | */ | ||
| 17 | 20 | ||
| 18 | #ifndef __ARCH_SIM_DEF_H__ | 21 | #ifndef __ARCH_SIM_DEF_H__ |
| 19 | #define __ARCH_SIM_DEF_H__ | 22 | #define __ARCH_SIM_DEF_H__ |
| 20 | 23 | ||
| 21 | 24 | ||
| 22 | //! Internal: the low bits of the SIM_CONTROL_* SPR values specify | 25 | /** |
| 23 | //! the operation to perform, and the remaining bits are | 26 | * Internal: the low bits of the SIM_CONTROL_* SPR values specify |
| 24 | //! an operation-specific parameter (often unused). | 27 | * the operation to perform, and the remaining bits are |
| 25 | //! | 28 | * an operation-specific parameter (often unused). |
| 29 | */ | ||
| 26 | #define _SIM_CONTROL_OPERATOR_BITS 8 | 30 | #define _SIM_CONTROL_OPERATOR_BITS 8 |
| 27 | 31 | ||
| 28 | 32 | ||
| 29 | //== Values which can be written to SPR_SIM_CONTROL. | 33 | /* |
| 34 | * Values which can be written to SPR_SIM_CONTROL. | ||
| 35 | */ | ||
| 30 | 36 | ||
| 31 | //! If written to SPR_SIM_CONTROL, stops profiling. | 37 | /** If written to SPR_SIM_CONTROL, stops profiling. */ |
| 32 | //! | ||
| 33 | #define SIM_CONTROL_PROFILER_DISABLE 0 | 38 | #define SIM_CONTROL_PROFILER_DISABLE 0 |
| 34 | 39 | ||
| 35 | //! If written to SPR_SIM_CONTROL, starts profiling. | 40 | /** If written to SPR_SIM_CONTROL, starts profiling. */ |
| 36 | //! | ||
| 37 | #define SIM_CONTROL_PROFILER_ENABLE 1 | 41 | #define SIM_CONTROL_PROFILER_ENABLE 1 |
| 38 | 42 | ||
| 39 | //! If written to SPR_SIM_CONTROL, clears profiling counters. | 43 | /** If written to SPR_SIM_CONTROL, clears profiling counters. */ |
| 40 | //! | ||
| 41 | #define SIM_CONTROL_PROFILER_CLEAR 2 | 44 | #define SIM_CONTROL_PROFILER_CLEAR 2 |
| 42 | 45 | ||
| 43 | //! If written to SPR_SIM_CONTROL, checkpoints the simulator. | 46 | /** If written to SPR_SIM_CONTROL, checkpoints the simulator. */ |
| 44 | //! | ||
| 45 | #define SIM_CONTROL_CHECKPOINT 3 | 47 | #define SIM_CONTROL_CHECKPOINT 3 |
| 46 | 48 | ||
| 47 | //! If written to SPR_SIM_CONTROL, combined with a mask (shifted by 8), | 49 | /** |
| 48 | //! sets the tracing mask to the given mask. See "sim_set_tracing()". | 50 | * If written to SPR_SIM_CONTROL, combined with a mask (shifted by 8), |
| 49 | //! | 51 | * sets the tracing mask to the given mask. See "sim_set_tracing()". |
| 52 | */ | ||
| 50 | #define SIM_CONTROL_SET_TRACING 4 | 53 | #define SIM_CONTROL_SET_TRACING 4 |
| 51 | 54 | ||
| 52 | //! If written to SPR_SIM_CONTROL, combined with a mask (shifted by 8), | 55 | /** |
| 53 | //! dumps the requested items of machine state to the log. | 56 | * If written to SPR_SIM_CONTROL, combined with a mask (shifted by 8), |
| 54 | //! | 57 | * dumps the requested items of machine state to the log. |
| 58 | */ | ||
| 55 | #define SIM_CONTROL_DUMP 5 | 59 | #define SIM_CONTROL_DUMP 5 |
| 56 | 60 | ||
| 57 | //! If written to SPR_SIM_CONTROL, clears chip-level profiling counters. | 61 | /** If written to SPR_SIM_CONTROL, clears chip-level profiling counters. */ |
| 58 | //! | ||
| 59 | #define SIM_CONTROL_PROFILER_CHIP_CLEAR 6 | 62 | #define SIM_CONTROL_PROFILER_CHIP_CLEAR 6 |
| 60 | 63 | ||
| 61 | //! If written to SPR_SIM_CONTROL, disables chip-level profiling. | 64 | /** If written to SPR_SIM_CONTROL, disables chip-level profiling. */ |
| 62 | //! | ||
| 63 | #define SIM_CONTROL_PROFILER_CHIP_DISABLE 7 | 65 | #define SIM_CONTROL_PROFILER_CHIP_DISABLE 7 |
| 64 | 66 | ||
| 65 | //! If written to SPR_SIM_CONTROL, enables chip-level profiling. | 67 | /** If written to SPR_SIM_CONTROL, enables chip-level profiling. */ |
| 66 | //! | ||
| 67 | #define SIM_CONTROL_PROFILER_CHIP_ENABLE 8 | 68 | #define SIM_CONTROL_PROFILER_CHIP_ENABLE 8 |
| 68 | 69 | ||
| 69 | //! If written to SPR_SIM_CONTROL, enables chip-level functional mode | 70 | /** If written to SPR_SIM_CONTROL, enables chip-level functional mode */ |
| 70 | //! | ||
| 71 | #define SIM_CONTROL_ENABLE_FUNCTIONAL 9 | 71 | #define SIM_CONTROL_ENABLE_FUNCTIONAL 9 |
| 72 | 72 | ||
| 73 | //! If written to SPR_SIM_CONTROL, disables chip-level functional mode. | 73 | /** If written to SPR_SIM_CONTROL, disables chip-level functional mode. */ |
| 74 | //! | ||
| 75 | #define SIM_CONTROL_DISABLE_FUNCTIONAL 10 | 74 | #define SIM_CONTROL_DISABLE_FUNCTIONAL 10 |
| 76 | 75 | ||
| 77 | //! If written to SPR_SIM_CONTROL, enables chip-level functional mode. | 76 | /** |
| 78 | //! All tiles must perform this write for functional mode to be enabled. | 77 | * If written to SPR_SIM_CONTROL, enables chip-level functional mode. |
| 79 | //! Ignored in naked boot mode unless --functional is specified. | 78 | * All tiles must perform this write for functional mode to be enabled. |
| 80 | //! WARNING: Only the hypervisor startup code should use this! | 79 | * Ignored in naked boot mode unless --functional is specified. |
| 81 | //! | 80 | * WARNING: Only the hypervisor startup code should use this! |
| 81 | */ | ||
| 82 | #define SIM_CONTROL_ENABLE_FUNCTIONAL_BARRIER 11 | 82 | #define SIM_CONTROL_ENABLE_FUNCTIONAL_BARRIER 11 |
| 83 | 83 | ||
| 84 | //! If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), | 84 | /** |
| 85 | //! writes a string directly to the simulator output. Written to once for | 85 | * If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), |
| 86 | //! each character in the string, plus a final NUL. Instead of NUL, | 86 | * writes a string directly to the simulator output. Written to once for |
| 87 | //! you can also use "SIM_PUTC_FLUSH_STRING" or "SIM_PUTC_FLUSH_BINARY". | 87 | * each character in the string, plus a final NUL. Instead of NUL, |
| 88 | //! | 88 | * you can also use "SIM_PUTC_FLUSH_STRING" or "SIM_PUTC_FLUSH_BINARY". |
| 89 | // ISSUE: Document the meaning of "newline", and the handling of NUL. | 89 | */ |
| 90 | // | 90 | /* ISSUE: Document the meaning of "newline", and the handling of NUL. */ |
| 91 | #define SIM_CONTROL_PUTC 12 | 91 | #define SIM_CONTROL_PUTC 12 |
| 92 | 92 | ||
| 93 | //! If written to SPR_SIM_CONTROL, clears the --grind-coherence state for | 93 | /** |
| 94 | //! this core. This is intended to be used before a loop that will | 94 | * If written to SPR_SIM_CONTROL, clears the --grind-coherence state for |
| 95 | //! invalidate the cache by loading new data and evicting all current data. | 95 | * this core. This is intended to be used before a loop that will |
| 96 | //! Generally speaking, this API should only be used by system code. | 96 | * invalidate the cache by loading new data and evicting all current data. |
| 97 | //! | 97 | * Generally speaking, this API should only be used by system code. |
| 98 | */ | ||
| 98 | #define SIM_CONTROL_GRINDER_CLEAR 13 | 99 | #define SIM_CONTROL_GRINDER_CLEAR 13 |
| 99 | 100 | ||
| 100 | //! If written to SPR_SIM_CONTROL, shuts down the simulator. | 101 | /** If written to SPR_SIM_CONTROL, shuts down the simulator. */ |
| 101 | //! | ||
| 102 | #define SIM_CONTROL_SHUTDOWN 14 | 102 | #define SIM_CONTROL_SHUTDOWN 14 |
| 103 | 103 | ||
| 104 | //! If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), | 104 | /** |
| 105 | //! indicates that a fork syscall just created the given process. | 105 | * If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), |
| 106 | //! | 106 | * indicates that a fork syscall just created the given process. |
| 107 | */ | ||
| 107 | #define SIM_CONTROL_OS_FORK 15 | 108 | #define SIM_CONTROL_OS_FORK 15 |
| 108 | 109 | ||
| 109 | //! If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), | 110 | /** |
| 110 | //! indicates that an exit syscall was just executed by the given process. | 111 | * If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), |
| 111 | //! | 112 | * indicates that an exit syscall was just executed by the given process. |
| 113 | */ | ||
| 112 | #define SIM_CONTROL_OS_EXIT 16 | 114 | #define SIM_CONTROL_OS_EXIT 16 |
| 113 | 115 | ||
| 114 | //! If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), | 116 | /** |
| 115 | //! indicates that the OS just switched to the given process. | 117 | * If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), |
| 116 | //! | 118 | * indicates that the OS just switched to the given process. |
| 119 | */ | ||
| 117 | #define SIM_CONTROL_OS_SWITCH 17 | 120 | #define SIM_CONTROL_OS_SWITCH 17 |
| 118 | 121 | ||
| 119 | //! If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), | 122 | /** |
| 120 | //! indicates that an exec syscall was just executed. Written to once for | 123 | * If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), |
| 121 | //! each character in the executable name, plus a final NUL. | 124 | * indicates that an exec syscall was just executed. Written to once for |
| 122 | //! | 125 | * each character in the executable name, plus a final NUL. |
| 126 | */ | ||
| 123 | #define SIM_CONTROL_OS_EXEC 18 | 127 | #define SIM_CONTROL_OS_EXEC 18 |
| 124 | 128 | ||
| 125 | //! If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), | 129 | /** |
| 126 | //! indicates that an interpreter (PT_INTERP) was loaded. Written to once | 130 | * If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), |
| 127 | //! for each character in "ADDR:PATH", plus a final NUL, where "ADDR" is a | 131 | * indicates that an interpreter (PT_INTERP) was loaded. Written to once |
| 128 | //! hex load address starting with "0x", and "PATH" is the executable name. | 132 | * for each character in "ADDR:PATH", plus a final NUL, where "ADDR" is a |
| 129 | //! | 133 | * hex load address starting with "0x", and "PATH" is the executable name. |
| 134 | */ | ||
| 130 | #define SIM_CONTROL_OS_INTERP 19 | 135 | #define SIM_CONTROL_OS_INTERP 19 |
| 131 | 136 | ||
| 132 | //! If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), | 137 | /** |
| 133 | //! indicates that a dll was loaded. Written to once for each character | 138 | * If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), |
| 134 | //! in "ADDR:PATH", plus a final NUL, where "ADDR" is a hexadecimal load | 139 | * indicates that a dll was loaded. Written to once for each character |
| 135 | //! address starting with "0x", and "PATH" is the executable name. | 140 | * in "ADDR:PATH", plus a final NUL, where "ADDR" is a hexadecimal load |
| 136 | //! | 141 | * address starting with "0x", and "PATH" is the executable name. |
| 142 | */ | ||
| 137 | #define SIM_CONTROL_DLOPEN 20 | 143 | #define SIM_CONTROL_DLOPEN 20 |
| 138 | 144 | ||
| 139 | //! If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), | 145 | /** |
| 140 | //! indicates that a dll was unloaded. Written to once for each character | 146 | * If written to SPR_SIM_CONTROL, combined with a character (shifted by 8), |
| 141 | //! in "ADDR", plus a final NUL, where "ADDR" is a hexadecimal load | 147 | * indicates that a dll was unloaded. Written to once for each character |
| 142 | //! address starting with "0x". | 148 | * in "ADDR", plus a final NUL, where "ADDR" is a hexadecimal load |
| 143 | //! | 149 | * address starting with "0x". |
| 150 | */ | ||
| 144 | #define SIM_CONTROL_DLCLOSE 21 | 151 | #define SIM_CONTROL_DLCLOSE 21 |
| 145 | 152 | ||
| 146 | //! If written to SPR_SIM_CONTROL, combined with a flag (shifted by 8), | 153 | /** |
| 147 | //! indicates whether to allow data reads to remotely-cached | 154 | * If written to SPR_SIM_CONTROL, combined with a flag (shifted by 8), |
| 148 | //! dirty cache lines to be cached locally without grinder warnings or | 155 | * indicates whether to allow data reads to remotely-cached |
| 149 | //! assertions (used by Linux kernel fast memcpy). | 156 | * dirty cache lines to be cached locally without grinder warnings or |
| 150 | //! | 157 | * assertions (used by Linux kernel fast memcpy). |
| 158 | */ | ||
| 151 | #define SIM_CONTROL_ALLOW_MULTIPLE_CACHING 22 | 159 | #define SIM_CONTROL_ALLOW_MULTIPLE_CACHING 22 |
| 152 | 160 | ||
| 153 | //! If written to SPR_SIM_CONTROL, enables memory tracing. | 161 | /** If written to SPR_SIM_CONTROL, enables memory tracing. */ |
| 154 | //! | ||
| 155 | #define SIM_CONTROL_ENABLE_MEM_LOGGING 23 | 162 | #define SIM_CONTROL_ENABLE_MEM_LOGGING 23 |
| 156 | 163 | ||
| 157 | //! If written to SPR_SIM_CONTROL, disables memory tracing. | 164 | /** If written to SPR_SIM_CONTROL, disables memory tracing. */ |
| 158 | //! | ||
| 159 | #define SIM_CONTROL_DISABLE_MEM_LOGGING 24 | 165 | #define SIM_CONTROL_DISABLE_MEM_LOGGING 24 |
| 160 | 166 | ||
| 161 | //! If written to SPR_SIM_CONTROL, changes the shaping parameters of one of | 167 | /** |
| 162 | //! the gbe or xgbe shims. Must specify the shim id, the type, the units, and | 168 | * If written to SPR_SIM_CONTROL, changes the shaping parameters of one of |
| 163 | //! the rate, as defined in SIM_SHAPING_SPR_ARG. | 169 | * the gbe or xgbe shims. Must specify the shim id, the type, the units, and |
| 164 | //! | 170 | * the rate, as defined in SIM_SHAPING_SPR_ARG. |
| 171 | */ | ||
| 165 | #define SIM_CONTROL_SHAPING 25 | 172 | #define SIM_CONTROL_SHAPING 25 |
| 166 | 173 | ||
| 167 | //! If written to SPR_SIM_CONTROL, combined with character (shifted by 8), | 174 | /** |
| 168 | //! requests that a simulator command be executed. Written to once for each | 175 | * If written to SPR_SIM_CONTROL, combined with character (shifted by 8), |
| 169 | //! character in the command, plus a final NUL. | 176 | * requests that a simulator command be executed. Written to once for each |
| 170 | //! | 177 | * character in the command, plus a final NUL. |
| 178 | */ | ||
| 171 | #define SIM_CONTROL_COMMAND 26 | 179 | #define SIM_CONTROL_COMMAND 26 |
| 172 | 180 | ||
| 173 | //! If written to SPR_SIM_CONTROL, indicates that the simulated system | 181 | /** |
| 174 | //! is panicking, to allow debugging via --debug-on-panic. | 182 | * If written to SPR_SIM_CONTROL, indicates that the simulated system |
| 175 | //! | 183 | * is panicking, to allow debugging via --debug-on-panic. |
| 184 | */ | ||
| 176 | #define SIM_CONTROL_PANIC 27 | 185 | #define SIM_CONTROL_PANIC 27 |
| 177 | 186 | ||
| 178 | //! If written to SPR_SIM_CONTROL, triggers a simulator syscall. | 187 | /** |
| 179 | //! See "sim_syscall()" for more info. | 188 | * If written to SPR_SIM_CONTROL, triggers a simulator syscall. |
| 180 | //! | 189 | * See "sim_syscall()" for more info. |
| 190 | */ | ||
| 181 | #define SIM_CONTROL_SYSCALL 32 | 191 | #define SIM_CONTROL_SYSCALL 32 |
| 182 | 192 | ||
| 183 | //! If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), | 193 | /** |
| 184 | //! provides the pid that subsequent SIM_CONTROL_OS_FORK writes should | 194 | * If written to SPR_SIM_CONTROL, combined with a pid (shifted by 8), |
| 185 | //! use as the pid, rather than the default previous SIM_CONTROL_OS_SWITCH. | 195 | * provides the pid that subsequent SIM_CONTROL_OS_FORK writes should |
| 186 | //! | 196 | * use as the pid, rather than the default previous SIM_CONTROL_OS_SWITCH. |
| 197 | */ | ||
| 187 | #define SIM_CONTROL_OS_FORK_PARENT 33 | 198 | #define SIM_CONTROL_OS_FORK_PARENT 33 |
| 188 | 199 | ||
| 189 | //! If written to SPR_SIM_CONTROL, combined with a mPIPE shim number | 200 | /** |
| 190 | //! (shifted by 8), clears the pending magic data section. The cleared | 201 | * If written to SPR_SIM_CONTROL, combined with a mPIPE shim number |
| 191 | //! pending magic data section and any subsequently appended magic bytes | 202 | * (shifted by 8), clears the pending magic data section. The cleared |
| 192 | //! will only take effect when the classifier blast programmer is run. | 203 | * pending magic data section and any subsequently appended magic bytes |
| 204 | * will only take effect when the classifier blast programmer is run. | ||
| 205 | */ | ||
| 193 | #define SIM_CONTROL_CLEAR_MPIPE_MAGIC_BYTES 34 | 206 | #define SIM_CONTROL_CLEAR_MPIPE_MAGIC_BYTES 34 |
| 194 | 207 | ||
| 195 | //! If written to SPR_SIM_CONTROL, combined with a mPIPE shim number | 208 | /** |
| 196 | //! (shifted by 8) and a byte of data (shifted by 16), appends that byte | 209 | * If written to SPR_SIM_CONTROL, combined with a mPIPE shim number |
| 197 | //! to the shim's pending magic data section. The pending magic data | 210 | * (shifted by 8) and a byte of data (shifted by 16), appends that byte |
| 198 | //! section takes effect when the classifier blast programmer is run. | 211 | * to the shim's pending magic data section. The pending magic data |
| 212 | * section takes effect when the classifier blast programmer is run. | ||
| 213 | */ | ||
| 199 | #define SIM_CONTROL_APPEND_MPIPE_MAGIC_BYTE 35 | 214 | #define SIM_CONTROL_APPEND_MPIPE_MAGIC_BYTE 35 |
| 200 | 215 | ||
| 201 | //! If written to SPR_SIM_CONTROL, combined with a mPIPE shim number | 216 | /** |
| 202 | //! (shifted by 8), an enable=1/disable=0 bit (shifted by 16), and a | 217 | * If written to SPR_SIM_CONTROL, combined with a mPIPE shim number |
| 203 | //! mask of links (shifted by 32), enable or disable the corresponding | 218 | * (shifted by 8), an enable=1/disable=0 bit (shifted by 16), and a |
| 204 | //! mPIPE links. | 219 | * mask of links (shifted by 32), enable or disable the corresponding |
| 220 | * mPIPE links. | ||
| 221 | */ | ||
| 205 | #define SIM_CONTROL_ENABLE_MPIPE_LINK_MAGIC_BYTE 36 | 222 | #define SIM_CONTROL_ENABLE_MPIPE_LINK_MAGIC_BYTE 36 |
| 206 | 223 | ||
| 207 | //== Syscall numbers for use with "sim_syscall()". | ||
| 208 | 224 | ||
| 209 | //! Syscall number for sim_add_watchpoint(). | 225 | /* |
| 210 | //! | 226 | * Syscall numbers for use with "sim_syscall()". |
| 227 | */ | ||
| 228 | |||
| 229 | /** Syscall number for sim_add_watchpoint(). */ | ||
| 211 | #define SIM_SYSCALL_ADD_WATCHPOINT 2 | 230 | #define SIM_SYSCALL_ADD_WATCHPOINT 2 |
| 212 | 231 | ||
| 213 | //! Syscall number for sim_remove_watchpoint(). | 232 | /** Syscall number for sim_remove_watchpoint(). */ |
| 214 | //! | ||
| 215 | #define SIM_SYSCALL_REMOVE_WATCHPOINT 3 | 233 | #define SIM_SYSCALL_REMOVE_WATCHPOINT 3 |
| 216 | 234 | ||
| 217 | //! Syscall number for sim_query_watchpoint(). | 235 | /** Syscall number for sim_query_watchpoint(). */ |
| 218 | //! | ||
| 219 | #define SIM_SYSCALL_QUERY_WATCHPOINT 4 | 236 | #define SIM_SYSCALL_QUERY_WATCHPOINT 4 |
| 220 | 237 | ||
| 221 | //! Syscall number that asserts that the cache lines whose 64-bit PA | 238 | /** |
| 222 | //! is passed as the second argument to sim_syscall(), and over a | 239 | * Syscall number that asserts that the cache lines whose 64-bit PA |
| 223 | //! range passed as the third argument, are no longer in cache. | 240 | * is passed as the second argument to sim_syscall(), and over a |
| 224 | //! The simulator raises an error if this is not the case. | 241 | * range passed as the third argument, are no longer in cache. |
| 225 | //! | 242 | * The simulator raises an error if this is not the case. |
| 243 | */ | ||
| 226 | #define SIM_SYSCALL_VALIDATE_LINES_EVICTED 5 | 244 | #define SIM_SYSCALL_VALIDATE_LINES_EVICTED 5 |
| 227 | 245 | ||
| 228 | 246 | ||
| 229 | //== Bit masks which can be shifted by 8, combined with | 247 | /* |
| 230 | //== SIM_CONTROL_SET_TRACING, and written to SPR_SIM_CONTROL. | 248 | * Bit masks which can be shifted by 8, combined with |
| 249 | * SIM_CONTROL_SET_TRACING, and written to SPR_SIM_CONTROL. | ||
| 250 | */ | ||
| 231 | 251 | ||
| 232 | //! @addtogroup arch_sim | 252 | /** |
| 233 | //! @{ | 253 | * @addtogroup arch_sim |
| 254 | * @{ | ||
| 255 | */ | ||
| 234 | 256 | ||
| 235 | //! Enable --trace-cycle when passed to simulator_set_tracing(). | 257 | /** Enable --trace-cycle when passed to simulator_set_tracing(). */ |
| 236 | //! | ||
| 237 | #define SIM_TRACE_CYCLES 0x01 | 258 | #define SIM_TRACE_CYCLES 0x01 |
| 238 | 259 | ||
| 239 | //! Enable --trace-router when passed to simulator_set_tracing(). | 260 | /** Enable --trace-router when passed to simulator_set_tracing(). */ |
| 240 | //! | ||
| 241 | #define SIM_TRACE_ROUTER 0x02 | 261 | #define SIM_TRACE_ROUTER 0x02 |
| 242 | 262 | ||
| 243 | //! Enable --trace-register-writes when passed to simulator_set_tracing(). | 263 | /** Enable --trace-register-writes when passed to simulator_set_tracing(). */ |
| 244 | //! | ||
| 245 | #define SIM_TRACE_REGISTER_WRITES 0x04 | 264 | #define SIM_TRACE_REGISTER_WRITES 0x04 |
| 246 | 265 | ||
| 247 | //! Enable --trace-disasm when passed to simulator_set_tracing(). | 266 | /** Enable --trace-disasm when passed to simulator_set_tracing(). */ |
| 248 | //! | ||
| 249 | #define SIM_TRACE_DISASM 0x08 | 267 | #define SIM_TRACE_DISASM 0x08 |
| 250 | 268 | ||
| 251 | //! Enable --trace-stall-info when passed to simulator_set_tracing(). | 269 | /** Enable --trace-stall-info when passed to simulator_set_tracing(). */ |
| 252 | //! | ||
| 253 | #define SIM_TRACE_STALL_INFO 0x10 | 270 | #define SIM_TRACE_STALL_INFO 0x10 |
| 254 | 271 | ||
| 255 | //! Enable --trace-memory-controller when passed to simulator_set_tracing(). | 272 | /** Enable --trace-memory-controller when passed to simulator_set_tracing(). */ |
| 256 | //! | ||
| 257 | #define SIM_TRACE_MEMORY_CONTROLLER 0x20 | 273 | #define SIM_TRACE_MEMORY_CONTROLLER 0x20 |
| 258 | 274 | ||
| 259 | //! Enable --trace-l2 when passed to simulator_set_tracing(). | 275 | /** Enable --trace-l2 when passed to simulator_set_tracing(). */ |
| 260 | //! | ||
| 261 | #define SIM_TRACE_L2_CACHE 0x40 | 276 | #define SIM_TRACE_L2_CACHE 0x40 |
| 262 | 277 | ||
| 263 | //! Enable --trace-lines when passed to simulator_set_tracing(). | 278 | /** Enable --trace-lines when passed to simulator_set_tracing(). */ |
| 264 | //! | ||
| 265 | #define SIM_TRACE_LINES 0x80 | 279 | #define SIM_TRACE_LINES 0x80 |
| 266 | 280 | ||
| 267 | //! Turn off all tracing when passed to simulator_set_tracing(). | 281 | /** Turn off all tracing when passed to simulator_set_tracing(). */ |
| 268 | //! | ||
| 269 | #define SIM_TRACE_NONE 0 | 282 | #define SIM_TRACE_NONE 0 |
| 270 | 283 | ||
| 271 | //! Turn on all tracing when passed to simulator_set_tracing(). | 284 | /** Turn on all tracing when passed to simulator_set_tracing(). */ |
| 272 | //! | ||
| 273 | #define SIM_TRACE_ALL (-1) | 285 | #define SIM_TRACE_ALL (-1) |
| 274 | 286 | ||
| 275 | //! @} | 287 | /** @} */ |
| 276 | 288 | ||
| 277 | //! Computes the value to write to SPR_SIM_CONTROL to set tracing flags. | 289 | /** Computes the value to write to SPR_SIM_CONTROL to set tracing flags. */ |
| 278 | //! | ||
| 279 | #define SIM_TRACE_SPR_ARG(mask) \ | 290 | #define SIM_TRACE_SPR_ARG(mask) \ |
| 280 | (SIM_CONTROL_SET_TRACING | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) | 291 | (SIM_CONTROL_SET_TRACING | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) |
| 281 | 292 | ||
| 282 | 293 | ||
| 283 | //== Bit masks which can be shifted by 8, combined with | 294 | /* |
| 284 | //== SIM_CONTROL_DUMP, and written to SPR_SIM_CONTROL. | 295 | * Bit masks which can be shifted by 8, combined with |
| 296 | * SIM_CONTROL_DUMP, and written to SPR_SIM_CONTROL. | ||
| 297 | */ | ||
| 285 | 298 | ||
| 286 | //! @addtogroup arch_sim | 299 | /** |
| 287 | //! @{ | 300 | * @addtogroup arch_sim |
| 301 | * @{ | ||
| 302 | */ | ||
| 288 | 303 | ||
| 289 | //! Dump the general-purpose registers. | 304 | /** Dump the general-purpose registers. */ |
| 290 | //! | ||
| 291 | #define SIM_DUMP_REGS 0x001 | 305 | #define SIM_DUMP_REGS 0x001 |
| 292 | 306 | ||
| 293 | //! Dump the SPRs. | 307 | /** Dump the SPRs. */ |
| 294 | //! | ||
| 295 | #define SIM_DUMP_SPRS 0x002 | 308 | #define SIM_DUMP_SPRS 0x002 |
| 296 | 309 | ||
| 297 | //! Dump the ITLB. | 310 | /** Dump the ITLB. */ |
| 298 | //! | ||
| 299 | #define SIM_DUMP_ITLB 0x004 | 311 | #define SIM_DUMP_ITLB 0x004 |
| 300 | 312 | ||
| 301 | //! Dump the DTLB. | 313 | /** Dump the DTLB. */ |
| 302 | //! | ||
| 303 | #define SIM_DUMP_DTLB 0x008 | 314 | #define SIM_DUMP_DTLB 0x008 |
| 304 | 315 | ||
| 305 | //! Dump the L1 I-cache. | 316 | /** Dump the L1 I-cache. */ |
| 306 | //! | ||
| 307 | #define SIM_DUMP_L1I 0x010 | 317 | #define SIM_DUMP_L1I 0x010 |
| 308 | 318 | ||
| 309 | //! Dump the L1 D-cache. | 319 | /** Dump the L1 D-cache. */ |
| 310 | //! | ||
| 311 | #define SIM_DUMP_L1D 0x020 | 320 | #define SIM_DUMP_L1D 0x020 |
| 312 | 321 | ||
| 313 | //! Dump the L2 cache. | 322 | /** Dump the L2 cache. */ |
| 314 | //! | ||
| 315 | #define SIM_DUMP_L2 0x040 | 323 | #define SIM_DUMP_L2 0x040 |
| 316 | 324 | ||
| 317 | //! Dump the switch registers. | 325 | /** Dump the switch registers. */ |
| 318 | //! | ||
| 319 | #define SIM_DUMP_SNREGS 0x080 | 326 | #define SIM_DUMP_SNREGS 0x080 |
| 320 | 327 | ||
| 321 | //! Dump the switch ITLB. | 328 | /** Dump the switch ITLB. */ |
| 322 | //! | ||
| 323 | #define SIM_DUMP_SNITLB 0x100 | 329 | #define SIM_DUMP_SNITLB 0x100 |
| 324 | 330 | ||
| 325 | //! Dump the switch L1 I-cache. | 331 | /** Dump the switch L1 I-cache. */ |
| 326 | //! | ||
| 327 | #define SIM_DUMP_SNL1I 0x200 | 332 | #define SIM_DUMP_SNL1I 0x200 |
| 328 | 333 | ||
| 329 | //! Dump the current backtrace. | 334 | /** Dump the current backtrace. */ |
| 330 | //! | ||
| 331 | #define SIM_DUMP_BACKTRACE 0x400 | 335 | #define SIM_DUMP_BACKTRACE 0x400 |
| 332 | 336 | ||
| 333 | //! Only dump valid lines in caches. | 337 | /** Only dump valid lines in caches. */ |
| 334 | //! | ||
| 335 | #define SIM_DUMP_VALID_LINES 0x800 | 338 | #define SIM_DUMP_VALID_LINES 0x800 |
| 336 | 339 | ||
| 337 | //! Dump everything that is dumpable. | 340 | /** Dump everything that is dumpable. */ |
| 338 | //! | ||
| 339 | #define SIM_DUMP_ALL (-1 & ~SIM_DUMP_VALID_LINES) | 341 | #define SIM_DUMP_ALL (-1 & ~SIM_DUMP_VALID_LINES) |
| 340 | 342 | ||
| 341 | // @} | 343 | /** @} */ |
| 342 | 344 | ||
| 343 | //! Computes the value to write to SPR_SIM_CONTROL to dump machine state. | 345 | /** Computes the value to write to SPR_SIM_CONTROL to dump machine state. */ |
| 344 | //! | ||
| 345 | #define SIM_DUMP_SPR_ARG(mask) \ | 346 | #define SIM_DUMP_SPR_ARG(mask) \ |
| 346 | (SIM_CONTROL_DUMP | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) | 347 | (SIM_CONTROL_DUMP | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) |
| 347 | 348 | ||
| 348 | 349 | ||
| 349 | //== Bit masks which can be shifted by 8, combined with | 350 | /* |
| 350 | //== SIM_CONTROL_PROFILER_CHIP_xxx, and written to SPR_SIM_CONTROL. | 351 | * Bit masks which can be shifted by 8, combined with |
| 352 | * SIM_CONTROL_PROFILER_CHIP_xxx, and written to SPR_SIM_CONTROL. | ||
| 353 | */ | ||
| 351 | 354 | ||
| 352 | //! @addtogroup arch_sim | 355 | /** |
| 353 | //! @{ | 356 | * @addtogroup arch_sim |
| 357 | * @{ | ||
| 358 | */ | ||
| 354 | 359 | ||
| 355 | //! Use with with SIM_PROFILER_CHIP_xxx to control the memory controllers. | 360 | /** Use with with SIM_PROFILER_CHIP_xxx to control the memory controllers. */ |
| 356 | //! | ||
| 357 | #define SIM_CHIP_MEMCTL 0x001 | 361 | #define SIM_CHIP_MEMCTL 0x001 |
| 358 | 362 | ||
| 359 | //! Use with with SIM_PROFILER_CHIP_xxx to control the XAUI interface. | 363 | /** Use with with SIM_PROFILER_CHIP_xxx to control the XAUI interface. */ |
| 360 | //! | ||
| 361 | #define SIM_CHIP_XAUI 0x002 | 364 | #define SIM_CHIP_XAUI 0x002 |
| 362 | 365 | ||
| 363 | //! Use with with SIM_PROFILER_CHIP_xxx to control the PCIe interface. | 366 | /** Use with with SIM_PROFILER_CHIP_xxx to control the PCIe interface. */ |
| 364 | //! | ||
| 365 | #define SIM_CHIP_PCIE 0x004 | 367 | #define SIM_CHIP_PCIE 0x004 |
| 366 | 368 | ||
| 367 | //! Use with with SIM_PROFILER_CHIP_xxx to control the MPIPE interface. | 369 | /** Use with with SIM_PROFILER_CHIP_xxx to control the MPIPE interface. */ |
| 368 | //! | ||
| 369 | #define SIM_CHIP_MPIPE 0x008 | 370 | #define SIM_CHIP_MPIPE 0x008 |
| 370 | 371 | ||
| 371 | //! Reference all chip devices. | 372 | /** Use with with SIM_PROFILER_CHIP_xxx to control the TRIO interface. */ |
| 372 | //! | 373 | #define SIM_CHIP_TRIO 0x010 |
| 374 | |||
| 375 | /** Reference all chip devices. */ | ||
| 373 | #define SIM_CHIP_ALL (-1) | 376 | #define SIM_CHIP_ALL (-1) |
| 374 | 377 | ||
| 375 | //! @} | 378 | /** @} */ |
| 376 | 379 | ||
| 377 | //! Computes the value to write to SPR_SIM_CONTROL to clear chip statistics. | 380 | /** Computes the value to write to SPR_SIM_CONTROL to clear chip statistics. */ |
| 378 | //! | ||
| 379 | #define SIM_PROFILER_CHIP_CLEAR_SPR_ARG(mask) \ | 381 | #define SIM_PROFILER_CHIP_CLEAR_SPR_ARG(mask) \ |
| 380 | (SIM_CONTROL_PROFILER_CHIP_CLEAR | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) | 382 | (SIM_CONTROL_PROFILER_CHIP_CLEAR | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) |
| 381 | 383 | ||
| 382 | //! Computes the value to write to SPR_SIM_CONTROL to disable chip statistics. | 384 | /** Computes the value to write to SPR_SIM_CONTROL to disable chip statistics.*/ |
| 383 | //! | ||
| 384 | #define SIM_PROFILER_CHIP_DISABLE_SPR_ARG(mask) \ | 385 | #define SIM_PROFILER_CHIP_DISABLE_SPR_ARG(mask) \ |
| 385 | (SIM_CONTROL_PROFILER_CHIP_DISABLE | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) | 386 | (SIM_CONTROL_PROFILER_CHIP_DISABLE | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) |
| 386 | 387 | ||
| 387 | //! Computes the value to write to SPR_SIM_CONTROL to enable chip statistics. | 388 | /** Computes the value to write to SPR_SIM_CONTROL to enable chip statistics. */ |
| 388 | //! | ||
| 389 | #define SIM_PROFILER_CHIP_ENABLE_SPR_ARG(mask) \ | 389 | #define SIM_PROFILER_CHIP_ENABLE_SPR_ARG(mask) \ |
| 390 | (SIM_CONTROL_PROFILER_CHIP_ENABLE | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) | 390 | (SIM_CONTROL_PROFILER_CHIP_ENABLE | ((mask) << _SIM_CONTROL_OPERATOR_BITS)) |
| 391 | 391 | ||
| 392 | 392 | ||
| 393 | 393 | ||
| 394 | // Shim bitrate controls. | 394 | /* Shim bitrate controls. */ |
| 395 | 395 | ||
| 396 | //! The number of bits used to store the shim id. | 396 | /** The number of bits used to store the shim id. */ |
| 397 | //! | ||
| 398 | #define SIM_CONTROL_SHAPING_SHIM_ID_BITS 3 | 397 | #define SIM_CONTROL_SHAPING_SHIM_ID_BITS 3 |
| 399 | 398 | ||
| 400 | //! @addtogroup arch_sim | 399 | /** |
| 401 | //! @{ | 400 | * @addtogroup arch_sim |
| 401 | * @{ | ||
| 402 | */ | ||
| 402 | 403 | ||
| 403 | //! Change the gbe 0 bitrate. | 404 | /** Change the gbe 0 bitrate. */ |
| 404 | //! | ||
| 405 | #define SIM_CONTROL_SHAPING_GBE_0 0x0 | 405 | #define SIM_CONTROL_SHAPING_GBE_0 0x0 |
| 406 | 406 | ||
| 407 | //! Change the gbe 1 bitrate. | 407 | /** Change the gbe 1 bitrate. */ |
| 408 | //! | ||
| 409 | #define SIM_CONTROL_SHAPING_GBE_1 0x1 | 408 | #define SIM_CONTROL_SHAPING_GBE_1 0x1 |
| 410 | 409 | ||
| 411 | //! Change the gbe 2 bitrate. | 410 | /** Change the gbe 2 bitrate. */ |
| 412 | //! | ||
| 413 | #define SIM_CONTROL_SHAPING_GBE_2 0x2 | 411 | #define SIM_CONTROL_SHAPING_GBE_2 0x2 |
| 414 | 412 | ||
| 415 | //! Change the gbe 3 bitrate. | 413 | /** Change the gbe 3 bitrate. */ |
| 416 | //! | ||
| 417 | #define SIM_CONTROL_SHAPING_GBE_3 0x3 | 414 | #define SIM_CONTROL_SHAPING_GBE_3 0x3 |
| 418 | 415 | ||
| 419 | //! Change the xgbe 0 bitrate. | 416 | /** Change the xgbe 0 bitrate. */ |
| 420 | //! | ||
| 421 | #define SIM_CONTROL_SHAPING_XGBE_0 0x4 | 417 | #define SIM_CONTROL_SHAPING_XGBE_0 0x4 |
| 422 | 418 | ||
| 423 | //! Change the xgbe 1 bitrate. | 419 | /** Change the xgbe 1 bitrate. */ |
| 424 | //! | ||
| 425 | #define SIM_CONTROL_SHAPING_XGBE_1 0x5 | 420 | #define SIM_CONTROL_SHAPING_XGBE_1 0x5 |
| 426 | 421 | ||
| 427 | //! The type of shaping to do. | 422 | /** The type of shaping to do. */ |
| 428 | //! | ||
| 429 | #define SIM_CONTROL_SHAPING_TYPE_BITS 2 | 423 | #define SIM_CONTROL_SHAPING_TYPE_BITS 2 |
| 430 | 424 | ||
| 431 | //! Control the multiplier. | 425 | /** Control the multiplier. */ |
| 432 | //! | ||
| 433 | #define SIM_CONTROL_SHAPING_MULTIPLIER 0 | 426 | #define SIM_CONTROL_SHAPING_MULTIPLIER 0 |
| 434 | 427 | ||
| 435 | //! Control the PPS. | 428 | /** Control the PPS. */ |
| 436 | //! | ||
| 437 | #define SIM_CONTROL_SHAPING_PPS 1 | 429 | #define SIM_CONTROL_SHAPING_PPS 1 |
| 438 | 430 | ||
| 439 | //! Control the BPS. | 431 | /** Control the BPS. */ |
| 440 | //! | ||
| 441 | #define SIM_CONTROL_SHAPING_BPS 2 | 432 | #define SIM_CONTROL_SHAPING_BPS 2 |
| 442 | 433 | ||
| 443 | //! The number of bits for the units for the shaping parameter. | 434 | /** The number of bits for the units for the shaping parameter. */ |
| 444 | //! | ||
| 445 | #define SIM_CONTROL_SHAPING_UNITS_BITS 2 | 435 | #define SIM_CONTROL_SHAPING_UNITS_BITS 2 |
| 446 | 436 | ||
| 447 | //! Provide a number in single units. | 437 | /** Provide a number in single units. */ |
| 448 | //! | ||
| 449 | #define SIM_CONTROL_SHAPING_UNITS_SINGLE 0 | 438 | #define SIM_CONTROL_SHAPING_UNITS_SINGLE 0 |
| 450 | 439 | ||
| 451 | //! Provide a number in kilo units. | 440 | /** Provide a number in kilo units. */ |
| 452 | //! | ||
| 453 | #define SIM_CONTROL_SHAPING_UNITS_KILO 1 | 441 | #define SIM_CONTROL_SHAPING_UNITS_KILO 1 |
| 454 | 442 | ||
| 455 | //! Provide a number in mega units. | 443 | /** Provide a number in mega units. */ |
| 456 | //! | ||
| 457 | #define SIM_CONTROL_SHAPING_UNITS_MEGA 2 | 444 | #define SIM_CONTROL_SHAPING_UNITS_MEGA 2 |
| 458 | 445 | ||
| 459 | //! Provide a number in giga units. | 446 | /** Provide a number in giga units. */ |
| 460 | //! | ||
| 461 | #define SIM_CONTROL_SHAPING_UNITS_GIGA 3 | 447 | #define SIM_CONTROL_SHAPING_UNITS_GIGA 3 |
| 462 | 448 | ||
| 463 | // @} | 449 | /** @} */ |
| 464 | 450 | ||
| 465 | //! How many bits are available for the rate. | 451 | /** How many bits are available for the rate. */ |
| 466 | //! | ||
| 467 | #define SIM_CONTROL_SHAPING_RATE_BITS \ | 452 | #define SIM_CONTROL_SHAPING_RATE_BITS \ |
| 468 | (32 - (_SIM_CONTROL_OPERATOR_BITS + \ | 453 | (32 - (_SIM_CONTROL_OPERATOR_BITS + \ |
| 469 | SIM_CONTROL_SHAPING_SHIM_ID_BITS + \ | 454 | SIM_CONTROL_SHAPING_SHIM_ID_BITS + \ |
| 470 | SIM_CONTROL_SHAPING_TYPE_BITS + \ | 455 | SIM_CONTROL_SHAPING_TYPE_BITS + \ |
| 471 | SIM_CONTROL_SHAPING_UNITS_BITS)) | 456 | SIM_CONTROL_SHAPING_UNITS_BITS)) |
| 472 | 457 | ||
| 473 | //! Computes the value to write to SPR_SIM_CONTROL to change a bitrate. | 458 | /** Computes the value to write to SPR_SIM_CONTROL to change a bitrate. */ |
| 474 | //! | ||
| 475 | #define SIM_SHAPING_SPR_ARG(shim, type, units, rate) \ | 459 | #define SIM_SHAPING_SPR_ARG(shim, type, units, rate) \ |
| 476 | (SIM_CONTROL_SHAPING | \ | 460 | (SIM_CONTROL_SHAPING | \ |
| 477 | ((shim) | \ | 461 | ((shim) | \ |
| @@ -483,30 +467,36 @@ | |||
| 483 | SIM_CONTROL_SHAPING_UNITS_BITS))) << _SIM_CONTROL_OPERATOR_BITS) | 467 | SIM_CONTROL_SHAPING_UNITS_BITS))) << _SIM_CONTROL_OPERATOR_BITS) |
| 484 | 468 | ||
| 485 | 469 | ||
| 486 | //== Values returned when reading SPR_SIM_CONTROL. | 470 | /* |
| 487 | // ISSUE: These names should share a longer common prefix. | 471 | * Values returned when reading SPR_SIM_CONTROL. |
| 472 | * ISSUE: These names should share a longer common prefix. | ||
| 473 | */ | ||
| 488 | 474 | ||
| 489 | //! When reading SPR_SIM_CONTROL, the mask of simulator tracing bits | 475 | /** |
| 490 | //! (SIM_TRACE_xxx values). | 476 | * When reading SPR_SIM_CONTROL, the mask of simulator tracing bits |
| 491 | //! | 477 | * (SIM_TRACE_xxx values). |
| 478 | */ | ||
| 492 | #define SIM_TRACE_FLAG_MASK 0xFFFF | 479 | #define SIM_TRACE_FLAG_MASK 0xFFFF |
| 493 | 480 | ||
| 494 | //! When reading SPR_SIM_CONTROL, the mask for whether profiling is enabled. | 481 | /** When reading SPR_SIM_CONTROL, the mask for whether profiling is enabled. */ |
| 495 | //! | ||
| 496 | #define SIM_PROFILER_ENABLED_MASK 0x10000 | 482 | #define SIM_PROFILER_ENABLED_MASK 0x10000 |
| 497 | 483 | ||
| 498 | 484 | ||
| 499 | //== Special arguments for "SIM_CONTROL_PUTC". | 485 | /* |
| 486 | * Special arguments for "SIM_CONTROL_PUTC". | ||
| 487 | */ | ||
| 500 | 488 | ||
| 501 | //! Flag value for forcing a PUTC string-flush, including | 489 | /** |
| 502 | //! coordinate/cycle prefix and newline. | 490 | * Flag value for forcing a PUTC string-flush, including |
| 503 | //! | 491 | * coordinate/cycle prefix and newline. |
| 492 | */ | ||
| 504 | #define SIM_PUTC_FLUSH_STRING 0x100 | 493 | #define SIM_PUTC_FLUSH_STRING 0x100 |
| 505 | 494 | ||
| 506 | //! Flag value for forcing a PUTC binary-data-flush, which skips the | 495 | /** |
| 507 | //! prefix and does not append a newline. | 496 | * Flag value for forcing a PUTC binary-data-flush, which skips the |
| 508 | //! | 497 | * prefix and does not append a newline. |
| 498 | */ | ||
| 509 | #define SIM_PUTC_FLUSH_BINARY 0x101 | 499 | #define SIM_PUTC_FLUSH_BINARY 0x101 |
| 510 | 500 | ||
| 511 | 501 | ||
| 512 | #endif //__ARCH_SIM_DEF_H__ | 502 | #endif /* __ARCH_SIM_DEF_H__ */ |
