Mercurial > ecos
annotate packages/hal/common/current/src/bplist-dynamic.c @ 317:4882695334f2
HW watch/breakpoint support change
| author | msalter |
|---|---|
| date | Thu, 29 Aug 2002 16:15:32 +0000 |
| parents | d2c90368aeef |
| children | 74dbf4c3f2e1 |
| rev | line source |
|---|---|
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
1 //========================================================================== |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
3 // bplist-dynamic.c |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
4 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
5 // Dynamic breakpoint list. |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
6 // Currently only statically allocated. (ie NO_MALLOC is assumed) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
7 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
8 //========================================================================== |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
9 //####ECOSGPLCOPYRIGHTBEGIN#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
10 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
11 // This file is part of eCos, the Embedded Configurable Operating System. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
12 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
13 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
14 // eCos is free software; you can redistribute it and/or modify it under |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
15 // the terms of the GNU General Public License as published by the Free |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
16 // Software Foundation; either version 2 or (at your option) any later version. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
17 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
18 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
19 // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
21 // for more details. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
22 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
23 // You should have received a copy of the GNU General Public License along |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
24 // with eCos; if not, write to the Free Software Foundation, Inc., |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
25 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
26 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
27 // As a special exception, if other files instantiate templates or use macros |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
28 // or inline functions from this file, or you compile this file and link it |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
29 // with other works to produce a work based on this file, this file does not |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
30 // by itself cause the resulting work to be covered by the GNU General Public |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
31 // License. However the source code for this file must still be made available |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
32 // in accordance with section (3) of the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
33 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
34 // This exception does not invalidate any other reasons why a work based on |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
35 // this file might be covered by the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
36 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
37 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
210
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
38 // at http://sources.redhat.com/ecos/ecos-license/ |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
39 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
156
diff
changeset
|
40 //####ECOSGPLCOPYRIGHTEND#### |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
41 //========================================================================== |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
42 //#####DESCRIPTIONBEGIN#### |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
43 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
44 // Author(s): |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
45 // Contributors: dmoseley |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
46 // Date: 2000-07-11 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
47 // Purpose: Dynamic breakpoint list. |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
48 // Description: |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
49 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
50 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
51 //####DESCRIPTIONEND#### |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
52 // |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
53 //========================================================================= |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
54 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
55 #include <pkgconf/system.h> |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
115
diff
changeset
|
56 #include <pkgconf/hal.h> |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
57 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
58 #if defined(CYGNUM_HAL_BREAKPOINT_LIST_SIZE) && (CYGNUM_HAL_BREAKPOINT_LIST_SIZE > 0) && defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
59 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
60 #define CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
61 #include <cyg/hal/hal_stub.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
62 #include <cyg/hal/hal_arch.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
63 #include <cyg/hal/hal_cache.h> |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
64 |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
65 #ifdef TARGET_HAS_HARVARD_MEMORY |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
66 #define __read_mem_safe __read_progmem_safe |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
67 #define __write_mem_safe __write_progmem_safe |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
68 #endif |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
69 |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
70 /* |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
71 * A simple target breakpoint list without using malloc. |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
72 * To use this package, you must define HAL_BREAKINST_SIZE to be the size |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
73 * in bytes of a trap instruction (max if there's more than one), |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
74 * HAL_BREAKINST to the opcode value of the instruction, and |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
75 * HAL_BREAKINST_TYPE to be the type necessary to hold the opcode value. |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
76 */ |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
77 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
78 struct breakpoint_list { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
79 target_register_t addr; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
80 char old_contents [HAL_BREAKINST_SIZE]; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
81 struct breakpoint_list *next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
82 char in_memory; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
83 char length; |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
84 } *breakpoint_list = NULL; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
85 |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
86 #ifndef HAL_BREAKINST_ADDR |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
87 static HAL_BREAKINST_TYPE break_inst = HAL_BREAKINST; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
88 #define HAL_BREAKINST_ADDR(x) ((void*)&break_inst) |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
89 #endif |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
90 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
91 static struct breakpoint_list bp_list [CYGNUM_HAL_BREAKPOINT_LIST_SIZE]; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
92 static struct breakpoint_list *free_bp_list = NULL; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
93 static int curr_bp_num = 0; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
94 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
95 int |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
96 __set_breakpoint (target_register_t addr, target_register_t len) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
97 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
98 struct breakpoint_list **addent = &breakpoint_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
99 struct breakpoint_list *l = breakpoint_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
100 struct breakpoint_list *newent; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
101 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
102 while (l != NULL && l->addr < addr) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
103 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
104 addent = &l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
105 l = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
106 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
107 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
108 if (l != NULL && l->addr == addr) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
109 return 2; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
110 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
111 if (free_bp_list != NULL) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
112 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
113 newent = free_bp_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
114 free_bp_list = free_bp_list->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
115 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
116 else |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
117 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
118 if (curr_bp_num < CYGNUM_HAL_BREAKPOINT_LIST_SIZE) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
119 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
120 newent = &bp_list[curr_bp_num++]; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
121 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
122 else |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
123 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
124 return 1; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
125 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
126 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
127 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
128 newent->addr = addr; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
129 newent->in_memory = 0; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
130 newent->next = l; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
131 newent->length = len; |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
132 *addent = newent; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
133 |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
134 return 0; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
135 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
136 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
137 int |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
138 __remove_breakpoint (target_register_t addr, target_register_t len) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
139 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
140 struct breakpoint_list *l = breakpoint_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
141 struct breakpoint_list *prev = NULL; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
142 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
143 while (l != NULL && l->addr < addr) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
144 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
145 prev = l; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
146 l = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
147 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
148 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
149 if ((l == NULL) || (l->addr != addr)) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
150 return 1; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
151 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
152 if (l->in_memory) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
153 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
154 __write_mem_safe (&l->old_contents[0], |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
155 (void*)l->addr, |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
156 sizeof (l->old_contents)); |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
157 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
158 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
159 if (prev == NULL) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
160 breakpoint_list = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
161 else |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
162 prev->next = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
163 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
164 l->next = free_bp_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
165 free_bp_list = l; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
166 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
167 return 0; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
168 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
169 |
| 317 | 170 #if defined(HAL_STUB_HW_BREAKPOINT_LIST_SIZE) && (HAL_STUB_HW_BREAKPOINT_LIST_SIZE > 0) |
| 171 #ifndef HAL_STUB_HW_BREAKPOINT | |
| 172 #error "Must define HAL_STUB_HW_BREAKPOINT" | |
| 173 #endif | |
| 174 struct hw_breakpoint_list { | |
| 175 target_register_t addr; | |
| 176 target_register_t len; | |
| 177 char used; | |
| 178 char installed; | |
| 179 }; | |
| 180 static struct hw_breakpoint_list hw_bp_list [HAL_STUB_HW_BREAKPOINT_LIST_SIZE]; | |
| 181 | |
| 182 int | |
| 183 __set_hw_breakpoint (target_register_t addr, target_register_t len) | |
| 184 { | |
| 185 int i; | |
| 186 | |
| 187 for (i = 0; i < HAL_STUB_HW_BREAKPOINT_LIST_SIZE; i++) | |
| 188 { | |
| 189 if (hw_bp_list[i].used == 0) | |
| 190 { | |
| 191 hw_bp_list[i].addr = addr; | |
| 192 hw_bp_list[i].len = len; | |
| 193 hw_bp_list[i].used = 1; | |
| 194 hw_bp_list[i].installed = 0; | |
| 195 return 0; | |
| 196 } | |
| 197 } | |
| 198 return -1; | |
| 199 } | |
| 200 | |
| 201 int | |
| 202 __remove_hw_breakpoint (target_register_t addr, target_register_t len) | |
| 203 { | |
| 204 int i; | |
| 205 | |
| 206 for (i = 0; i < HAL_STUB_HW_BREAKPOINT_LIST_SIZE; i++) | |
| 207 { | |
| 208 if (hw_bp_list[i].used && hw_bp_list[i].addr == addr | |
| 209 && hw_bp_list[i].len == len) | |
| 210 { | |
| 211 if (hw_bp_list[i].installed) | |
| 212 HAL_STUB_HW_BREAKPOINT(0, (void *)addr, (int)len); | |
| 213 hw_bp_list[i].used = 0; | |
| 214 return 0; | |
| 215 } | |
| 216 } | |
| 217 return -1; | |
| 218 } | |
| 219 | |
| 220 static void | |
| 221 __install_hw_breakpoint_list (void) | |
| 222 { | |
| 223 int i; | |
| 224 | |
| 225 for (i = 0; i < HAL_STUB_HW_BREAKPOINT_LIST_SIZE; i++) | |
| 226 { | |
| 227 if (hw_bp_list[i].used && hw_bp_list[i].installed == 0) | |
| 228 { | |
| 229 HAL_STUB_HW_BREAKPOINT(1, (void *)hw_bp_list[i].addr, | |
| 230 (int)hw_bp_list[i].len); | |
| 231 hw_bp_list[i].installed = 1; | |
| 232 } | |
| 233 } | |
| 234 } | |
| 235 | |
| 236 static void | |
| 237 __clear_hw_breakpoint_list (void) | |
| 238 { | |
| 239 int i; | |
| 240 | |
| 241 for (i = 0; i < HAL_STUB_HW_BREAKPOINT_LIST_SIZE; i++) | |
| 242 { | |
| 243 if (hw_bp_list[i].used && hw_bp_list[i].installed) | |
| 244 { | |
| 245 HAL_STUB_HW_BREAKPOINT(0, (void *)hw_bp_list[i].addr, | |
| 246 (int)hw_bp_list[i].len); | |
| 247 hw_bp_list[i].installed = 0; | |
| 248 } | |
| 249 } | |
| 250 } | |
| 251 #endif // HAL_STUB_HW_BREAKPOINT_LIST_SIZE | |
| 252 | |
| 253 #if defined(HAL_STUB_HW_WATCHPOINT_LIST_SIZE) && (HAL_STUB_HW_WATCHPOINT_LIST_SIZE > 0) | |
| 254 #ifndef HAL_STUB_HW_WATCHPOINT | |
| 255 #error "Must define HAL_STUB_HW_WATCHPOINT" | |
| 256 #endif | |
| 257 struct hw_watchpoint_list { | |
| 258 target_register_t addr; | |
| 259 target_register_t len; | |
| 260 int ztype; | |
| 261 char used; | |
| 262 char installed; | |
| 263 }; | |
| 264 static struct hw_watchpoint_list hw_wp_list [HAL_STUB_HW_WATCHPOINT_LIST_SIZE]; | |
| 265 | |
| 266 int | |
| 267 __set_hw_watchpoint (target_register_t addr, target_register_t len, int ztype) | |
| 268 { | |
| 269 int i; | |
| 270 | |
| 271 for (i = 0; i < HAL_STUB_HW_WATCHPOINT_LIST_SIZE; i++) | |
| 272 { | |
| 273 if (hw_wp_list[i].used == 0) | |
| 274 { | |
| 275 hw_wp_list[i].addr = addr; | |
| 276 hw_wp_list[i].len = len; | |
| 277 hw_wp_list[i].ztype = ztype; | |
| 278 hw_wp_list[i].used = 1; | |
| 279 hw_wp_list[i].installed = 0; | |
| 280 return 0; | |
| 281 } | |
| 282 } | |
| 283 return -1; | |
| 284 } | |
| 285 | |
| 286 int | |
| 287 __remove_hw_watchpoint (target_register_t addr, target_register_t len, int ztype) | |
| 288 { | |
| 289 int i; | |
| 290 | |
| 291 for (i = 0; i < HAL_STUB_HW_WATCHPOINT_LIST_SIZE; i++) | |
| 292 { | |
| 293 if (hw_wp_list[i].used && hw_wp_list[i].addr == addr | |
| 294 && hw_wp_list[i].len == len && hw_wp_list[i].ztype == ztype ) | |
| 295 { | |
| 296 if (hw_wp_list[i].installed) | |
| 297 HAL_STUB_HW_WATCHPOINT(0, (void *)addr, (int)len, ztype); | |
| 298 hw_wp_list[i].used = 0; | |
| 299 return 0; | |
| 300 } | |
| 301 } | |
| 302 return -1; | |
| 303 } | |
| 304 | |
| 305 static void | |
| 306 __install_hw_watchpoint_list (void) | |
| 307 { | |
| 308 int i; | |
| 309 | |
| 310 for (i = 0; i < HAL_STUB_HW_WATCHPOINT_LIST_SIZE; i++) | |
| 311 { | |
| 312 if (hw_wp_list[i].used && hw_wp_list[i].installed == 0) | |
| 313 { | |
| 314 HAL_STUB_HW_WATCHPOINT(1, (void *)hw_wp_list[i].addr, | |
| 315 (int)hw_wp_list[i].len, hw_wp_list[i].ztype); | |
| 316 hw_wp_list[i].installed = 1; | |
| 317 } | |
| 318 } | |
| 319 } | |
| 320 | |
| 321 static void | |
| 322 __clear_hw_watchpoint_list (void) | |
| 323 { | |
| 324 int i; | |
| 325 | |
| 326 for (i = 0; i < HAL_STUB_HW_WATCHPOINT_LIST_SIZE; i++) | |
| 327 { | |
| 328 if (hw_wp_list[i].used && hw_wp_list[i].installed) | |
| 329 { | |
| 330 HAL_STUB_HW_WATCHPOINT(0, (void *)hw_wp_list[i].addr, | |
| 331 (int)hw_wp_list[i].len, hw_wp_list[i].ztype); | |
| 332 hw_wp_list[i].installed = 0; | |
| 333 } | |
| 334 } | |
| 335 } | |
| 336 #endif // HAL_STUB_HW_WATCHPOINT_LIST_SIZE | |
| 337 | |
| 338 | |
| 339 | |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
340 void |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
341 __install_breakpoint_list (void) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
342 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
343 struct breakpoint_list *l = breakpoint_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
344 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
345 while (l != NULL) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
346 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
347 if (! l->in_memory) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
348 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
349 int len = sizeof (l->old_contents); |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
350 if (__read_mem_safe (&l->old_contents[0], (void*)l->addr, len) == len) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
351 { |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
352 if (__write_mem_safe (HAL_BREAKINST_ADDR(l->length), |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
353 (void*)l->addr, l->length) == l->length) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
354 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
355 l->in_memory = 1; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
356 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
357 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
358 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
359 l = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
360 } |
| 317 | 361 #if defined(HAL_STUB_HW_BREAKPOINT_LIST_SIZE) && (HAL_STUB_HW_BREAKPOINT_LIST_SIZE > 0) |
| 362 __install_hw_breakpoint_list(); | |
| 363 #endif | |
| 364 #if defined(HAL_STUB_HW_WATCHPOINT_LIST_SIZE) && (HAL_STUB_HW_WATCHPOINT_LIST_SIZE > 0) | |
| 365 __install_hw_watchpoint_list(); | |
| 366 #endif | |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
367 HAL_ICACHE_SYNC(); |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
368 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
369 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
370 void |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
371 __clear_breakpoint_list (void) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
372 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
373 struct breakpoint_list *l = breakpoint_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
374 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
375 while (l != NULL) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
376 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
377 if (l->in_memory) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
378 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
379 int len = sizeof (l->old_contents); |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
380 if (__write_mem_safe (&l->old_contents[0], (void*)l->addr, len) == len) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
381 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
382 l->in_memory = 0; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
383 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
384 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
385 l = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
386 } |
| 317 | 387 #if defined(HAL_STUB_HW_BREAKPOINT_LIST_SIZE) && (HAL_STUB_HW_BREAKPOINT_LIST_SIZE > 0) |
| 388 __clear_hw_breakpoint_list(); | |
| 389 #endif | |
| 390 #if defined(HAL_STUB_HW_WATCHPOINT_LIST_SIZE) && (HAL_STUB_HW_WATCHPOINT_LIST_SIZE > 0) | |
| 391 __clear_hw_watchpoint_list(); | |
| 392 #endif | |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
393 HAL_ICACHE_INVALIDATE_ALL(); |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
394 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
395 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
396 int |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
397 __display_breakpoint_list (void (*print_func)(target_register_t)) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
398 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
399 struct breakpoint_list *l = breakpoint_list; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
400 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
401 while (l != NULL) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
402 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
403 print_func(l->addr); |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
404 l = l->next; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
405 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
406 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
407 return 0; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
408 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
409 #else // (CYGNUM_HAL_BREAKPOINT_LIST_SIZE == 0) or UNDEFINED |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
410 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
411 #include <cyg/hal/hal_stub.h> // Our header |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
412 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
413 #ifndef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
414 // We don't know that type target_register_t is yet. |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
415 // Let's just pick a type so we can compile. Since |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
416 // these versions of the functions don't actually do |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
417 // anything with the parameters, the actualy types |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
418 // don't matter. |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
419 typedef unsigned long target_register_t; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
420 #endif |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
114
diff
changeset
|
421 |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
422 int |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
423 __set_breakpoint (target_register_t addr, target_register_t len) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
424 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
425 return 1; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
426 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
427 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
428 int |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
132
diff
changeset
|
429 __remove_breakpoint (target_register_t addr, target_register_t len) |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
430 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
431 return 1; |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
432 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
433 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
434 void |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
435 __install_breakpoint_list (void) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
436 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
437 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
438 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
439 void |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
440 __clear_breakpoint_list (void) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
441 { |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
442 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
443 |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
444 int |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
445 __display_breakpoint_list (void (*print_func)(target_register_t)) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
446 { |
| 114 | 447 return 0; |
|
112
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
448 } |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
449 #endif // (CYGNUM_HAL_BREAKPOINT_LIST_SIZE > 0) |
|
02ea4320376c
Merge from eCos master repository on 2000-07-21-21:01:39-BST
jlarmour
parents:
diff
changeset
|
450 |
