localui: Update Korean resource.
[wine] / programs / winedbg / be_sparc.c
1 /*
2  * Debugger Sparc specific functions
3  *
4  * Copyright 2010 Austin English
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20
21 #include "debugger.h"
22
23 #if defined(__sparc__)
24
25 static unsigned be_sparc_get_addr(HANDLE hThread, const CONTEXT* ctx,
26                                  enum be_cpu_addr bca, ADDRESS64* addr)
27 {
28     dbg_printf("not done for Sparc\n");
29     return FALSE;
30 }
31
32 static unsigned be_sparc_get_register_info(int regno, enum be_cpu_addr* kind)
33 {
34     dbg_printf("not done for Sparc\n");
35     return FALSE;
36 }
37
38 static void be_sparc_single_step(CONTEXT* ctx, unsigned enable)
39 {
40     dbg_printf("not done for Sparc\n");
41 }
42
43 static void be_sparc_print_context(HANDLE hThread, const CONTEXT* ctx, int all_regs)
44 {
45     dbg_printf("not done for Sparc\n");
46 }
47
48 static void be_sparc_print_segment_info(HANDLE hThread, const CONTEXT* ctx)
49 {
50     dbg_printf("not done for Sparc\n");
51 }
52
53 static struct dbg_internal_var be_sparc_ctx[] =
54 {
55     {0, NULL, 0, dbg_itype_none}
56 };
57
58 static unsigned be_sparc_is_step_over_insn(const void* insn)
59 {
60     dbg_printf("not done for Sparc\n");
61     return FALSE;
62 }
63
64 static unsigned be_sparc_is_function_return(const void* insn)
65 {
66     dbg_printf("not done for Sparc\n");
67     return FALSE;
68 }
69
70 static unsigned be_sparc_is_break_insn(const void* insn)
71 {
72     dbg_printf("not done for Sparc\n");
73     return FALSE;
74 }
75
76 static unsigned be_sparc_is_func_call(const void* insn, ADDRESS64* callee)
77 {
78     return FALSE;
79 }
80
81 static void be_sparc_disasm_one_insn(ADDRESS64* addr, int display)
82 {
83     dbg_printf("not done for Sparc\n");
84 }
85
86 static unsigned be_sparc_insert_Xpoint(HANDLE hProcess, const struct be_process_io* pio,
87                                        CONTEXT* ctx, enum be_xpoint_type type,
88                                        void* addr, unsigned long* val, unsigned size)
89 {
90     dbg_printf("not done for Sparc\n");
91     return 0;
92 }
93
94 static unsigned be_sparc_remove_Xpoint(HANDLE hProcess, const struct be_process_io* pio,
95                                        CONTEXT* ctx, enum be_xpoint_type type,
96                                        void* addr, unsigned long val, unsigned size)
97 {
98     dbg_printf("not done for Sparc\n");
99     return FALSE;
100 }
101
102 static unsigned be_sparc_is_watchpoint_set(const CONTEXT* ctx, unsigned idx)
103 {
104     dbg_printf("not done for Sparc\n");
105     return FALSE;
106 }
107
108 static void be_sparc_clear_watchpoint(CONTEXT* ctx, unsigned idx)
109 {
110     dbg_printf("not done for Sparc\n");
111 }
112
113 static int be_sparc_adjust_pc_for_break(CONTEXT* ctx, BOOL way)
114 {
115     dbg_printf("not done for Sparc\n");
116     return 0;
117 }
118
119 static int be_sparc_fetch_integer(const struct dbg_lvalue* lvalue, unsigned size,
120                                   unsigned ext_sign, LONGLONG* ret)
121 {
122     dbg_printf("not done for Sparc\n");
123     return FALSE;
124 }
125
126 static int be_sparc_fetch_float(const struct dbg_lvalue* lvalue, unsigned size,
127                                 long double* ret)
128 {
129     dbg_printf("not done for Sparc\n");
130     return FALSE;
131 }
132
133 struct backend_cpu be_sparc =
134 {
135     IMAGE_FILE_MACHINE_SPARC,
136     4,
137     be_cpu_linearize,
138     be_cpu_build_addr,
139     be_sparc_get_addr,
140     be_sparc_get_register_info,
141     be_sparc_single_step,
142     be_sparc_print_context,
143     be_sparc_print_segment_info,
144     be_sparc_ctx,
145     be_sparc_is_step_over_insn,
146     be_sparc_is_function_return,
147     be_sparc_is_break_insn,
148     be_sparc_is_func_call,
149     be_sparc_disasm_one_insn,
150     be_sparc_insert_Xpoint,
151     be_sparc_remove_Xpoint,
152     be_sparc_is_watchpoint_set,
153     be_sparc_clear_watchpoint,
154     be_sparc_adjust_pc_for_break,
155     be_sparc_fetch_integer,
156     be_sparc_fetch_float,
157 };
158 #endif