comparison backend.h @ 2396:bf4f1a8d1d48

Implement 68K watchpoints in internal debugger
author Michael Pavone <pavone@retrodev.com>
date Sat, 23 Dec 2023 17:37:57 -0800
parents 8554751f17b5
children 38c281ef57b0
comparison
equal deleted inserted replaced
2395:ebca8ab02701 2396:bf4f1a8d1d48
41 } deferred_addr; 41 } deferred_addr;
42 42
43 #include "memmap.h" 43 #include "memmap.h"
44 #include "system.h" 44 #include "system.h"
45 45
46 typedef void * (*watchpoint16_fun)(uint32_t address, void * context, uint16_t);
47 typedef void * (*watchpoint8_fun)(uint32_t address, void * context, uint8_t);
48
46 typedef struct { 49 typedef struct {
47 uint32_t flags; 50 uint32_t flags;
48 native_map_slot *native_code_map; 51 native_map_slot *native_code_map;
49 deferred_addr *deferred; 52 deferred_addr *deferred;
50 code_info code; 53 code_info code;
55 code_ptr handle_cycle_limit; 58 code_ptr handle_cycle_limit;
56 code_ptr handle_cycle_limit_int; 59 code_ptr handle_cycle_limit_int;
57 code_ptr handle_code_write; 60 code_ptr handle_code_write;
58 code_ptr handle_align_error_write; 61 code_ptr handle_align_error_write;
59 code_ptr handle_align_error_read; 62 code_ptr handle_align_error_read;
63 watchpoint16_fun check_watchpoints_16;
64 watchpoint8_fun check_watchpoints_8;
60 system_str_fun_r8 debug_cmd_handler; 65 system_str_fun_r8 debug_cmd_handler;
61 uint32_t memmap_chunks; 66 uint32_t memmap_chunks;
62 uint32_t address_mask; 67 uint32_t address_mask;
63 uint32_t max_address; 68 uint32_t max_address;
64 uint32_t bus_cycles; 69 uint32_t bus_cycles;
65 uint32_t clock_divider; 70 uint32_t clock_divider;
66 uint32_t move_pc_off; 71 uint32_t move_pc_off;
67 uint32_t move_pc_size; 72 uint32_t move_pc_size;
73 int32_t watchpoint_range_off;
68 int32_t mem_ptr_off; 74 int32_t mem_ptr_off;
69 int32_t ram_flags_off; 75 int32_t ram_flags_off;
70 uint8_t ram_flags_shift; 76 uint8_t ram_flags_shift;
71 uint8_t address_size; 77 uint8_t address_size;
72 uint8_t byte_swap; 78 uint8_t byte_swap;