1 /* 2 * Copyright 2007, François Revol, revol@free.fr. 3 * Distributed under the terms of the MIT License. 4 * 5 * Copyright 2005, Axel Dörfler, axeld@pinc-softare.de 6 * Distributed under the terms of the MIT License. 7 */ 8 9 10 #include <debugger.h> 11 #include <int.h> 12 #include <thread.h> 13 #include <arch/user_debugger.h> 14 15 16 #warning M68K: WRITEME 17 void 18 arch_clear_team_debug_info(struct arch_team_debug_info *info) 19 { 20 } 21 22 23 void 24 arch_destroy_team_debug_info(struct arch_team_debug_info *info) 25 { 26 arch_clear_team_debug_info(info); 27 } 28 29 30 void 31 arch_clear_thread_debug_info(struct arch_thread_debug_info *info) 32 { 33 } 34 35 36 void 37 arch_destroy_thread_debug_info(struct arch_thread_debug_info *info) 38 { 39 arch_clear_thread_debug_info(info); 40 } 41 42 43 void 44 arch_update_thread_single_step() 45 { 46 if (struct iframe* frame = m68k_get_user_iframe()) { 47 Thread* thread = thread_get_current_thread(); 48 49 // set/clear T1 in SR depending on if single stepping is desired 50 // T1 T0 51 // 0 0 no tracing 52 // 0 1 trace on flow 53 // 1 0 single step 54 // 1 1 undef 55 // note 060 and 020(?) only have T1 bit, 56 // but this should be compatible as well. 57 if (thread->debug_info.flags & B_THREAD_DEBUG_SINGLE_STEP) { 58 frame->cpu.sr &= ~(M68K_SR_T_MASK); 59 frame->cpu.sr |= (1 << M68K_SR_T1); 60 } else { 61 frame->cpu.sr &= ~(M68K_SR_T_MASK); 62 } 63 } 64 } 65 66 67 void 68 arch_set_debug_cpu_state(const debug_cpu_state *cpuState) 69 { 70 } 71 72 73 void 74 arch_get_debug_cpu_state(debug_cpu_state *cpuState) 75 { 76 } 77 78 79 status_t 80 arch_get_thread_debug_cpu_state(Thread* thread, debug_cpu_state* cpuState) 81 { 82 return B_UNSUPPORTED; 83 } 84 85 86 status_t 87 arch_set_breakpoint(void *address) 88 { 89 return B_ERROR; 90 } 91 92 93 status_t 94 arch_clear_breakpoint(void *address) 95 { 96 return B_ERROR; 97 } 98 99 100 status_t 101 arch_set_watchpoint(void *address, uint32 type, int32 length) 102 { 103 return B_ERROR; 104 } 105 106 107 status_t 108 arch_clear_watchpoint(void *address) 109 { 110 return B_ERROR; 111 } 112 113 bool 114 arch_has_breakpoints(struct arch_team_debug_info *info) 115 { 116 return false; 117 } 118