e61d00351f
in BRANCH-smp-bochs revisions. - The general task was to make multiple CPU's which communicate through their APICs. So instead of BX_CPU and BX_MEM, we now have BX_CPU(x) and BX_MEM(y). For an SMP simulation you have several processors in a shared memory space, so there might be processors BX_CPU(0..3) but only one memory space BX_MEM(0). For cosimulation, you could have BX_CPU(0) with BX_MEM(0), then BX_CPU(1) with BX_MEM(1). WARNING: Cosimulation is almost certainly broken by the SMP changes. - to simulate multiple CPUs, you have to give each CPU time to execute in turn. This is currently implemented using debugger guards. The cpu loop steps one CPU for a few instructions, then steps the next CPU for a few instructions, etc. - there is some limited support in the debugger for two CPUs, for example printing information from each CPU when single stepping.
91 lines
2.4 KiB
C
91 lines
2.4 KiB
C
#define BX_TOKEN_CONTINUE 257
|
|
#define BX_TOKEN_STEPN 258
|
|
#define BX_TOKEN_NEXT_STEP 259
|
|
#define BX_TOKEN_SET 260
|
|
#define BX_TOKEN_DEBUGGER 261
|
|
#define BX_TOKEN_VBREAKPOINT 262
|
|
#define BX_TOKEN_LBREAKPOINT 263
|
|
#define BX_TOKEN_PBREAKPOINT 264
|
|
#define BX_TOKEN_DEL_BREAKPOINT 265
|
|
#define BX_TOKEN_INFO 266
|
|
#define BX_TOKEN_QUIT 267
|
|
#define BX_TOKEN_PROGRAM 268
|
|
#define BX_TOKEN_REGISTERS 269
|
|
#define BX_TOKEN_IDT 270
|
|
#define BX_TOKEN_GDT 271
|
|
#define BX_TOKEN_LDT 272
|
|
#define BX_TOKEN_TSS 273
|
|
#define BX_TOKEN_DIRTY 274
|
|
#define BX_TOKEN_LINUX 275
|
|
#define BX_TOKEN_CONTROL_REGS 276
|
|
#define BX_TOKEN_EXAMINE 277
|
|
#define BX_TOKEN_XFORMAT 278
|
|
#define BX_TOKEN_SETPMEM 279
|
|
#define BX_TOKEN_SYMBOLNAME 280
|
|
#define BX_TOKEN_QUERY 281
|
|
#define BX_TOKEN_PENDING 282
|
|
#define BX_TOKEN_TAKE 283
|
|
#define BX_TOKEN_DMA 284
|
|
#define BX_TOKEN_IRQ 285
|
|
#define BX_TOKEN_DUMP_CPU 286
|
|
#define BX_TOKEN_SET_CPU 287
|
|
#define BX_TOKEN_DIS 288
|
|
#define BX_TOKEN_ON 289
|
|
#define BX_TOKEN_OFF 290
|
|
#define BX_TOKEN_DISASSEMBLE 291
|
|
#define BX_TOKEN_INSTRUMENT 292
|
|
#define BX_TOKEN_START 293
|
|
#define BX_TOKEN_STOP 294
|
|
#define BX_TOKEN_RESET 295
|
|
#define BX_TOKEN_PRINT 296
|
|
#define BX_TOKEN_LOADER 297
|
|
#define BX_TOKEN_STRING 298
|
|
#define BX_TOKEN_DOIT 299
|
|
#define BX_TOKEN_CRC 300
|
|
#define BX_TOKEN_TRACEON 301
|
|
#define BX_TOKEN_TRACEOFF 302
|
|
#define BX_TOKEN_PTIME 303
|
|
#define BX_TOKEN_TIMEBP_ABSOLUTE 304
|
|
#define BX_TOKEN_TIMEBP 305
|
|
#define BX_TOKEN_RECORD 306
|
|
#define BX_TOKEN_PLAYBACK 307
|
|
#define BX_TOKEN_MODEBP 308
|
|
#define BX_TOKEN_PRINT_STACK 309
|
|
#define BX_TOKEN_WATCH 310
|
|
#define BX_TOKEN_UNWATCH 311
|
|
#define BX_TOKEN_READ 312
|
|
#define BX_TOKEN_WRITE 313
|
|
#define BX_TOKEN_SHOW 314
|
|
#define BX_TOKEN_SYMBOL 315
|
|
#define BX_TOKEN_GLOBAL 316
|
|
#define BX_TOKEN_WHERE 317
|
|
#define BX_TOKEN_PRINT_STRING 318
|
|
#define BX_TOKEN_DIFF_MEMORY 319
|
|
#define BX_TOKEN_SYNC_MEMORY 320
|
|
#define BX_TOKEN_SYNC_CPU 321
|
|
#define BX_TOKEN_FAST_FORWARD 322
|
|
#define BX_TOKEN_PHY_2_LOG 323
|
|
#define BX_TOKEN_NUMERIC 324
|
|
#define BX_TOKEN_LONG_NUMERIC 325
|
|
#define BX_TOKEN_INFO_ADDRESS 326
|
|
#define BX_TOKEN_CS 327
|
|
#define BX_TOKEN_ES 328
|
|
#define BX_TOKEN_SS 329
|
|
#define BX_TOKEN_DS 330
|
|
#define BX_TOKEN_FS 331
|
|
#define BX_TOKEN_GS 332
|
|
#define BX_TOKEN_ALWAYS_CHECK 333
|
|
#define BX_TOKEN_MATHS 334
|
|
#define BX_TOKEN_ADD 335
|
|
#define BX_TOKEN_SUB 336
|
|
#define BX_TOKEN_MUL 337
|
|
#define BX_TOKEN_DIV 338
|
|
#define BX_TOKEN_V2L 339
|
|
typedef union {
|
|
char *sval;
|
|
Bit32u uval;
|
|
Bit64u ulval;
|
|
bx_num_range uval_range;
|
|
} YYSTYPE;
|
|
extern YYSTYPE bxlval;
|