1 | /* |
---|
2 | ************************************************************************** |
---|
3 | * |
---|
4 | * Component = RDBG |
---|
5 | * |
---|
6 | * Synopsis = rdbg.h |
---|
7 | * |
---|
8 | * $Id$ |
---|
9 | * |
---|
10 | ************************************************************************** |
---|
11 | */ |
---|
12 | |
---|
13 | #ifndef RDBG_H |
---|
14 | #define RDBG_H |
---|
15 | |
---|
16 | #include <rpc/rpc.h> |
---|
17 | #include <sys/socket.h> |
---|
18 | #include <netinet/in.h> |
---|
19 | #include <stdlib.h> /* For malloc() and free() prototypes */ |
---|
20 | #include <bsp.h> |
---|
21 | #include <rtems.h> |
---|
22 | |
---|
23 | #define Malloc(size) malloc (size) |
---|
24 | #define Free(block) free (block) |
---|
25 | #define Realloc(block,size) realloc (block, size) |
---|
26 | #define StrDup(str) strdup(str) |
---|
27 | |
---|
28 | #define LIST_PID 16 /* dynamic list of processes/tasks */ |
---|
29 | #define LIST_PID_DEB 17 /* list of processes under debug now */ |
---|
30 | #define LIST_PID_THREAD 18 /* list of threads for specific process */ |
---|
31 | #define LIST_CONN 19 /* dynamic list of connections */ |
---|
32 | |
---|
33 | /* RTEMS internals */ |
---|
34 | extern void remotedeb_2 (struct svc_req* rqstp, SVCXPRT* transp); |
---|
35 | extern void setErrno (int error); |
---|
36 | extern int getErrno (); |
---|
37 | extern int ptrace (int request, int pid, char* addr, |
---|
38 | int data, char* addr2); |
---|
39 | |
---|
40 | extern int TSP_RETRIES; |
---|
41 | extern volatile int ExitForSingleStep; |
---|
42 | extern volatile int justSaveContext; |
---|
43 | extern volatile Objects_Id currentTargetThread; |
---|
44 | extern volatile int CannotRestart; |
---|
45 | extern volatile int TotalReboot; |
---|
46 | |
---|
47 | /* Missing RPC prototypes */ |
---|
48 | SVCXPRT* svcudp_create (int fd); |
---|
49 | void svc_processrequest (SVCXPRT* xprt, |
---|
50 | u_long prog, u_long vers, |
---|
51 | void (*dispatch)()); |
---|
52 | int svcudp_enablecache (SVCXPRT *transp, u_long size); |
---|
53 | |
---|
54 | typedef struct Exception_context_struct { |
---|
55 | struct Exception_context_struct *next; |
---|
56 | struct Exception_context_struct *previous; |
---|
57 | Objects_Id id; |
---|
58 | Objects_Id semaphoreId; |
---|
59 | CPU_Exception_frame *ctx; |
---|
60 | } Exception_context; |
---|
61 | |
---|
62 | struct xdr_regs; |
---|
63 | |
---|
64 | extern int PushExceptCtx (Objects_Id Id, |
---|
65 | Objects_Id semId, |
---|
66 | CPU_Exception_frame *ctx); |
---|
67 | extern int PopExceptCtx (Objects_Id Id); |
---|
68 | extern Exception_context *GetExceptCtx (Objects_Id Id); |
---|
69 | extern int Single_Step (CPU_Exception_frame* ctx); |
---|
70 | extern int CheckForSingleStep (CPU_Exception_frame* ctx); |
---|
71 | extern void BreakPointExcHdl (CPU_Exception_frame *ctx); |
---|
72 | extern void CtxToRegs (const CPU_Exception_frame*,struct xdr_regs*); |
---|
73 | extern void RegsToCtx (const struct xdr_regs*,CPU_Exception_frame*); |
---|
74 | |
---|
75 | extern void enterRdbg (); |
---|
76 | extern void get_ctx_thread (Thread_Control *thread, |
---|
77 | CPU_Exception_frame* ctx); |
---|
78 | extern void set_ctx_thread (Thread_Control *thread, |
---|
79 | CPU_Exception_frame* ctx); |
---|
80 | extern int PushSavedExceptCtx ( Objects_Id Id, |
---|
81 | CPU_Exception_frame *ctx ); |
---|
82 | extern int ExcepToSig (Exception_context *ctx); |
---|
83 | |
---|
84 | extern rtems_id serializeSemId; |
---|
85 | extern rtems_id wakeupEventSemId; |
---|
86 | extern volatile unsigned int NbSerializedCtx; |
---|
87 | |
---|
88 | void copyback_data_cache_and_invalidate_instr_cache(unsigned char* addr, int size); |
---|
89 | |
---|
90 | #include <rdbg/rdbg_f.h> |
---|
91 | |
---|
92 | #endif /* !RDBG_H */ |
---|
93 | |
---|