RTEMS  5.1
gdb_if.h
Go to the documentation of this file.
1 
7 /*
8  * gdb_if.h - definition of the interface between the stub and gdb
9  *
10  * THIS SOFTWARE IS NOT COPYRIGHTED
11  *
12  * The following software is offered for use in the public domain.
13  * There is no warranty with regard to this software or its performance
14  * and the user must accept the software "AS IS" with all faults.
15  *
16  * THE CONTRIBUTORS DISCLAIM ANY WARRANTIES, EXPRESS OR IMPLIED, WITH
17  * REGARD TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19  */
20 
28 #ifndef _GDB_IF_H
29 #define _GDB_IF_H
30 
32 #define QM_MAX_THREADS (20)
33 
35  char display[256];
36  char name[256];
37  char more_display[256];
38 };
39 
40 /*
41  * Prototypes
42  */
43 
44 int parse_zbreak(const char *in, int *type, unsigned char **addr, int *len);
45 
46 char* mem2hstr(char *buf, const unsigned char *mem, int count);
47 int hstr2mem(unsigned char *mem, const char *buf, int count);
48 void set_mem_err(void);
49 unsigned char get_byte(const unsigned char *ptr);
50 void set_byte(unsigned char *ptr, int val);
51 char* thread2vhstr(char *buf, int thread);
52 char* thread2fhstr(char *buf, int thread);
53 const char* fhstr2thread(const char *buf, int *thread);
54 const char* vhstr2thread(const char *buf, int *thread);
55 char* int2fhstr(char *buf, int val);
56 char* int2vhstr(char *buf, int vali);
57 const char* fhstr2int(const char *buf, int *ival);
58 const char* vhstr2int(const char *buf, int *ival);
59 int hstr2byte(const char *buf, int *bval);
60 int hstr2nibble(const char *buf, int *nibble);
61 
62 Thread_Control *rtems_gdb_index_to_stub_id(int);
63 int rtems_gdb_stub_thread_support_ok(void);
64 int rtems_gdb_stub_get_current_thread(void);
65 int rtems_gdb_stub_get_next_thread(int);
66 int rtems_gdb_stub_get_offsets(
67  unsigned char **text_addr,
68  unsigned char **data_addr,
69  unsigned char **bss_addr
70 );
71 int rtems_gdb_stub_get_thread_regs(
72  int thread,
73  unsigned int *registers
74 );
75 int rtems_gdb_stub_set_thread_regs(
76  int thread,
77  unsigned int *registers
78 );
79 void rtems_gdb_process_query(
80  char *inbuffer,
81  char *outbuffer,
82  int do_threads,
83  int thread
84 );
85 
87 #define LM32_EXCEPTION_RESET 0x0
88 #define LM32_EXCEPTION_INST_BREAKPOINT 0x1
89 #define LM32_EXCEPTION_INST_BUS_ERROR 0x2
90 #define LM32_EXCEPTION_DATA_BREAKPOINT 0x3
91 #define LM32_EXCEPTION_DATA_BUS_ERROR 0x4
92 #define LM32_EXCEPTION_DIVIDE_BY_ZERO 0x5
93 #define LM32_EXCEPTION_INTERRUPT 0x6
94 #define LM32_EXCEPTION_SYSTEM_CALL 0x7
95 
97 #define LM32_BREAK 0xac000002UL
98 
101  LM32_REG_R0, LM32_REG_R1, LM32_REG_R2, LM32_REG_R3, LM32_REG_R4, LM32_REG_R5,
102  LM32_REG_R6, LM32_REG_R7, LM32_REG_R8, LM32_REG_R9, LM32_REG_R10,
103  LM32_REG_R11, LM32_REG_R12, LM32_REG_R13, LM32_REG_R14, LM32_REG_R15,
104  LM32_REG_R16, LM32_REG_R17, LM32_REG_R18, LM32_REG_R19, LM32_REG_R20,
105  LM32_REG_R21, LM32_REG_R22, LM32_REG_R23, LM32_REG_R24, LM32_REG_R25,
106  LM32_REG_GP, LM32_REG_FP, LM32_REG_SP, LM32_REG_RA, LM32_REG_EA, LM32_REG_BA,
107  LM32_REG_PC, LM32_REG_EID, LM32_REG_EBA, LM32_REG_DEBA, LM32_REG_IE, NUM_REGS
108 };
109 
110 /* keep this in sync with the debug isr handler in lm32-debug.S */
111 enum lm32_int_regnames {
112  LM32_INT_REG_R1, LM32_INT_REG_R2, LM32_INT_REG_R3, LM32_INT_REG_R4,
113  LM32_INT_REG_R5, LM32_INT_REG_R6, LM32_INT_REG_R7, LM32_INT_REG_R8,
114  LM32_INT_REG_R9, LM32_INT_REG_R10, LM32_INT_REG_RA, LM32_INT_REG_EA,
115  LM32_INT_REG_BA, LM32_INT_REG_R11, LM32_INT_REG_R12, LM32_INT_REG_R13,
116  LM32_INT_REG_R14, LM32_INT_REG_R15, LM32_INT_REG_R16, LM32_INT_REG_R17,
117  LM32_INT_REG_R18, LM32_INT_REG_R19, LM32_INT_REG_R20, LM32_INT_REG_R21,
118  LM32_INT_REG_R22, LM32_INT_REG_R23, LM32_INT_REG_R24, LM32_INT_REG_R25,
119  LM32_INT_REG_GP, LM32_INT_REG_FP, LM32_INT_REG_SP, LM32_INT_REG_PC,
120  LM32_INT_REG_EID, LM32_INT_REG_EBA, LM32_INT_REG_DEBA, LM32_INT_REG_IE,
121 };
122 
123 #endif /* _GDB_IF_H */
124 
lm32_regnames
This numbering must be consistant with GDBs numbering in gdb/lm32-tdep.c.
Definition: gdb_if.h:100
Definition: thread.h:732
Definition: gdb_if.h:34