31#ifndef _RTEMS_DEBUGGER_SERVER_h
32#define _RTEMS_DEBUGGER_SERVER_h
37#include <rtems/rtems-debugger.h>
46#define RTEMS_DEBUGGER_NUMOF(_d) (sizeof(_d) / sizeof(_d[0]))
51#define DB_UINT uint32_t
56#define RTEMS_DEBUGGER_SIGNAL_HUP 1
57#define RTEMS_DEBUGGER_SIGNAL_INT 2
58#define RTEMS_DEBUGGER_SIGNAL_QUIT 3
59#define RTEMS_DEBUGGER_SIGNAL_ILL 4
60#define RTEMS_DEBUGGER_SIGNAL_TRAP 5
61#define RTEMS_DEBUGGER_SIGNAL_ABRT 6
62#define RTEMS_DEBUGGER_SIGNAL_EMT 7
63#define RTEMS_DEBUGGER_SIGNAL_FPE 8
64#define RTEMS_DEBUGGER_SIGNAL_KILL 9
65#define RTEMS_DEBUGGER_SIGNAL_BUS 10
66#define RTEMS_DEBUGGER_SIGNAL_SEGV 11
67#define RTEMS_DEBUGGER_SIGNAL_SYS 12
68#define RTEMS_DEBUGGER_SIGNAL_PIPE 13
69#define RTEMS_DEBUGGER_SIGNAL_ALRM 14
70#define RTEMS_DEBUGGER_SIGNAL_TERM 15
71#define RTEMS_DEBUGGER_SIGNAL_URG 16
72#define RTEMS_DEBUGGER_SIGNAL_STOP 17
73#define RTEMS_DEBUGGER_SIGNAL_TSTP 18
74#define RTEMS_DEBUGGER_SIGNAL_CONT 19
79#define RTEMS_DEBUGGER_TIMEOUT_STOP (5 * 1000 * 1000)
84#define RTEMS_DEBUGGER_POLL_WAIT (10000)
89#define RTEMS_DEBUGGER_STACKSIZE (16 * 1024)
94#define RTEMS_DEBUGGER_BUFFER_SIZE (4 * 1024)
99#define RTEMS_DEBUGGER_FLAG_VERBOSE (1 << 0)
100#define RTEMS_DEBUGGER_FLAG_RESET (1 << 1)
101#define RTEMS_DEBUGGER_FLAG_NON_STOP (1 << 2)
102#define RTEMS_DEBUGGER_FLAG_VCONT (1 << 3)
103#define RTEMS_DEBUGGER_FLAG_MULTIPROCESS (1 << 4)
104#define RTEMS_DEBUGGER_FLAG_VERBOSE_LOCK (1 << 5)
105#define RTEMS_DEBUGGER_FLAG_VERBOSE_CMDS (1 << 6)
106#define RTEMS_DEBUGGER_FLAG_BREAK_WAITER (1 << 7)
118typedef struct _Condition_Control rtems_rx_cond;
119typedef struct _Mutex_recursive_Control rtems_rx_mutex;
132 rtems_rx_cond server_cond;
133 volatile bool server_running;
134 volatile bool server_finished;
136 volatile bool events_running;
137 volatile bool events_finished;
144 uint8_t input[RTEMS_DEBUGGER_BUFFER_SIZE];
145 uint8_t output[RTEMS_DEBUGGER_BUFFER_SIZE];
168extern
void rtems_debugger_lock(
void);
173extern
void rtems_debugger_unlock(
void);
178extern
bool rtems_debugger_server_running(
void);
183extern
void rtems_debugger_server_crash(
void);
193extern
bool rtems_debugger_connected(
void);
198extern
bool rtems_debugger_server_events_running(
void);
203extern
void rtems_debugger_server_events_signal(
void);
208extern
bool rtems_debugger_verbose(
void);
213static inline
bool rtems_debugger_server_flag(uint32_t mask)
215 return (rtems_debugger->flags & mask) != 0;
#define RTEMS_PRINTFLIKE(_format_pos, _ap_pos)
Tells the compiler in a declaration that this function expects printf()-like arguments.
Definition: basedefs.h:772
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition: types.h:257
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
User print interface to the bspIO print plug in.
This header file defines the RTEMS Classic API.
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:81
Definition: rtems-debugger-remote.h:45
Definition: rtems-debugger-server.h:125
Definition: rtems-debugger-target.h:101
Definition: rtems-debugger-threads.h:113
This union represents a chain control block.
Definition: chain.h:96