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
17void
18arch_clear_team_debug_info(struct arch_team_debug_info *info)
19{
20}
21
22
23void
24arch_destroy_team_debug_info(struct arch_team_debug_info *info)
25{
26	arch_clear_team_debug_info(info);
27}
28
29
30void
31arch_clear_thread_debug_info(struct arch_thread_debug_info *info)
32{
33}
34
35
36void
37arch_destroy_thread_debug_info(struct arch_thread_debug_info *info)
38{
39	arch_clear_thread_debug_info(info);
40}
41
42
43void
44arch_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
67void
68arch_set_debug_cpu_state(const debug_cpu_state *cpuState)
69{
70}
71
72
73void
74arch_get_debug_cpu_state(debug_cpu_state *cpuState)
75{
76}
77
78
79status_t
80arch_get_thread_debug_cpu_state(Thread* thread, debug_cpu_state* cpuState)
81{
82	return B_UNSUPPORTED;
83}
84
85
86status_t
87arch_set_breakpoint(void *address)
88{
89	return B_ERROR;
90}
91
92
93status_t
94arch_clear_breakpoint(void *address)
95{
96	return B_ERROR;
97}
98
99
100status_t
101arch_set_watchpoint(void *address, uint32 type, int32 length)
102{
103	return B_ERROR;
104}
105
106
107status_t
108arch_clear_watchpoint(void *address)
109{
110	return B_ERROR;
111}
112
113bool
114arch_has_breakpoints(struct arch_team_debug_info *info)
115{
116	return false;
117}
118