source: rtems/c/src/librdbg/src/m68k/any/remdeb.h @ cab2730

4.104.114.84.95
Last change on this file since cab2730 was cab2730, checked in by Joel Sherrill <joel.sherrill@…>, on Oct 19, 2000 at 3:37:01 PM

2000-10-19 Antti P Miettinen <anmietti@…>

  • src/m68k/any/remdeb.h, src/m68k/any/remdeb_xdr.c, src/m68k/any/remdeb_svc.c: New files missed in merger.
  • Property mode set to 100644
File size: 13.2 KB
Line 
1/*
2 * Please do not edit this file.
3 * It was generated using rpcgen.
4 */
5
6#ifndef _REMDEB_H_RPCGEN
7#define _REMDEB_H_RPCGEN
8
9#include <rpc/rpc.h>
10
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#define RTEMS_PORT 2071
17#define RTEMS_BACK_PORT 2073
18#ifndef REMDEB_H
19#define RPCGENSRVNAME(a)     a
20
21enum rpc_type {
22        SUNRPC = 0,
23        BADRPCTYPE = 25,
24};
25typedef enum rpc_type rpc_type;
26#define NET_SAFE 1400
27
28struct UDP_MSG {
29        u_char type;
30        u_char msg_num;
31        u_short spec;
32        long pid;
33        u_long context;
34};
35typedef struct UDP_MSG UDP_MSG;
36/*
37 * Sun request values for the remote ptrace system call
38 */
39
40
41enum ptracereq {
42        RPT_TRACEME = 0,
43        RPT_CHILDDONE = 0,
44        RPT_PEEKTEXT = 0 + 1,
45        RPT_PEEKDATA = 0 + 2,
46        RPT_PEEKUSER = 0 + 3,
47        RPT_POKETEXT = 0 + 4,
48        RPT_POKEDATA = 0 + 5,
49        RPT_POKEUSER = 0 + 6,
50        RPT_CONT = 0 + 7,
51        RPT_KILL = 0 + 8,
52        RPT_SINGLESTEP = 0 + 9,
53        RPT_ATTACH = 0 + 10,
54        RPT_DETACH = 0 + 11,
55        RPT_GETREGS = 0 + 12,
56        RPT_SETREGS = 0 + 13,
57        RPT_GETFPREGS = 0 + 14,
58        RPT_SETFPREGS = 0 + 15,
59        RPT_READDATA = 0 + 16,
60        RPT_WRITEDATA = 0 + 17,
61        RPT_READTEXT = 0 + 18,
62        RPT_WRITETEXT = 0 + 19,
63        RPT_GETFPAREGS = 0 + 20,
64        RPT_SETFPAREGS = 0 + 21,
65        RPT_22 = 0 + 22,
66        RPT_23 = 0 + 23,
67        RPT_SYSCALL = 0 + 24,
68        RPT_DUMPCORE = 0 + 25,
69        RPT_26 = 0 + 26,
70        RPT_27 = 0 + 27,
71        RPT_28 = 0 + 28,
72        RPT_GETUCODE = 0 + 29,
73        RPT_GETTARGETTHREAD = 50,
74        RPT_SETTARGETTHREAD = 51,
75        RPT_THREADSUSPEND = 52,
76        RPT_THREADRESUME = 53,
77        RPT_THREADLIST = 54,
78        RPT_GETTHREADNAME = 55,
79        RPT_SETTHREADNAME = 56,
80        RPT_SETTHREADREGS = 57,
81        RPT_GETTHREADREGS = 58,
82        RPT_STEPRANGE = 75,
83        RPT_CONTTO = 76,
84        RPT_SETBREAK = 77,
85        RPT_CLRBREAK = 78,
86        RPT_GETBREAK = 79,
87        RPT_GETNAME = 80,
88        RPT_STOP = 81,
89        RPT_PGETREGS = 82,
90        RPT_PSETREGS = 83,
91        RPT_PSETTHREADREGS = 84,
92        RPT_PGETTHREADREGS = 85,
93};
94typedef enum ptracereq ptracereq;
95
96struct xdr_regs {
97        int r_dreg[8];
98        int r_areg[8];
99        int r_sr;
100        int r_pc;
101        int r_vec;
102};
103typedef struct xdr_regs xdr_regs;
104/* now define register macros to apply to xdr_reg struct */
105
106#define r_r0   r_dreg[0]       /* r0 for portability */
107#define r_sp   r_areg[7]       /* user stack pointer */
108#define r_ps   r_sr
109#define REG_PC r_pc      /* PC register offset */
110#define REG_SP r_areg[7] /* SP register offset */
111#define REG_FP r_areg[6] /* FP register offset */
112/* now define the BREAKPOINT mask technique to a long word */
113#define SET_BREAK(l)   ((l&0x0000FFFF) | 0x4E4F0000)  /* TRAP 15 */
114#define IS_BREAK(l)    (((l) & 0xFFFF0000) == 0x4E4F0000)
115#define ORG_BREAK(c,p) (((c) & 0x0000FFFF) | ((p) & 0xFFFF0000))
116#define IS_STEP(regs)  ((regs).r_vec == 9)
117#define BREAK_ADJ      0
118#define BREAK_SIZE     2
119#define TARGET_PROC_TYPE  2
120#define MAXDEBUGGEE 150
121#define NAMEMAX 17
122  /*
123   * Memory data for read/write text or data. The size is in data. The target
124   * addr is in the addr field.
125   * Be careful before modifying because this value goes into internal
126   * pipes and is allocated on stack too. Pipes and/or the stack could
127   * become too small if this value gets incremented.
128   */
129#define MEM_DATA_MAX 256
130
131struct xdr_mem {
132        u_long addr;
133        u_int dataNb;
134        u_char data[MEM_DATA_MAX];
135};
136typedef struct xdr_mem xdr_mem;
137
138enum break_type {
139        BRKT_NONE = 0,
140        BRKT_INSTR = 1,
141        BRKT_READ = 2,
142        BRKT_WRITE = 3,
143        BRKT_ACCESS = 4,
144        BRKT_EXEC = 5,
145        BRKT_OS_CALL = 6,
146        BRKT_OS_SWITCH = 7,
147        BRKT_STEPEMUL = 8,
148};
149typedef enum break_type break_type;
150#define MAX_THRD_BRK 4
151
152struct xdr_break {
153        u_char type;
154        u_char thread_spec;
155        u_short handle;
156        u_long ee_loc;
157        u_long ee_type;
158        u_short length;
159        u_char pass_count;
160        u_char curr_pass;
161        u_long thread_list[MAX_THRD_BRK];
162};
163typedef struct xdr_break xdr_break;
164#define UTHREAD_MAX 64
165#define THREADNAMEMAX 16
166
167typedef char *thread_name;
168
169struct KernThread {
170        u_int threadLi;
171};
172typedef struct KernThread KernThread;
173typedef KernThread *ptThreadList;
174
175struct thread_list {
176        u_int nbThread;
177        ptThreadList threads;
178};
179typedef struct thread_list thread_list;
180
181struct ptrace_addr_data_in {
182        ptracereq req;
183        union {
184                xdr_regs regs;
185                struct {
186                        u_int pregs_len;
187                        u_int *pregs_val;
188                } pregs;
189                thread_name name;
190                xdr_mem mem;
191                xdr_break breakp;
192                u_int address;
193        } ptrace_addr_data_in_u;
194};
195typedef struct ptrace_addr_data_in ptrace_addr_data_in;
196
197struct ptrace_addr_data_out {
198        ptracereq req;
199        union {
200                xdr_regs regs;
201                struct {
202                        u_int pregs_len;
203                        u_int *pregs_val;
204                } pregs;
205                thread_list threads;
206                thread_name name;
207                xdr_mem mem;
208                xdr_break breakp;
209                u_int addr;
210        } ptrace_addr_data_out_u;
211};
212typedef struct ptrace_addr_data_out ptrace_addr_data_out;
213
214typedef struct {
215        u_int CHAR_DATA_len;
216        char *CHAR_DATA_val;
217} CHAR_DATA;
218#define XRY_MAX_INST_BUFF 128
219#define XRY_MAX_INSTANCES 16
220#ifndef XRY_MAX_CMD_STR
221#define XRY_MAX_CMD_STR 320
222#endif  /* REMDEB_H */
223
224struct xry_inst {
225        u_char flags;
226        u_char type;
227        u_char sub_type;
228        u_char res_type;
229        u_long value;
230        u_long value2;
231};
232typedef struct xry_inst xry_inst;
233
234struct instance {
235        struct xry_inst instances[XRY_MAX_INSTANCES];
236        u_char buffer[XRY_MAX_INST_BUFF];
237};
238typedef struct instance instance;
239
240struct instance_union {
241        bool_t instances;
242        union {
243                instance inst;
244                char *buffer;
245        } instance_union_u;
246};
247typedef struct instance_union instance_union;
248
249typedef char *one_arg;
250#define XRY_MAX_OBJ_NAME 32
251  /* now open_connex() routine which establishes a connection to server */
252
253enum debug_type {
254        DEBTYP_PROCESS = 0,
255        DEBTYP_C_ACTOR = 1,
256        DEBTYP_KERNEL = 2,
257        DEBTYP_OTHER = 3,
258};
259typedef enum debug_type debug_type;
260#define DEBUGGER_IS_GDB 0x2    /* */
261
262struct open_in {
263        u_char back_port[16];
264        u_short debug_type;
265        u_short flags;
266        u_char destination[16];
267        one_arg user_name;
268};
269typedef struct open_in open_in;
270
271struct open_out {
272        u_long port;
273        u_int pad[4];
274        u_int fp;
275        u_char cmd_table_num;
276        u_char cmd_table_vers;
277        u_short server_vers;
278};
279typedef struct open_out open_out;
280  /* now close_connex() routine which detaches from server */
281
282enum close_control {
283        CLOSE_IGNORE = 0,
284        CLOSE_KILL = 1,
285        CLOSE_DETACH = 2,
286};
287typedef enum close_control close_control;
288
289struct close_in {
290        close_control control;
291};
292typedef struct close_in close_in;
293  /* now send_signal() routine which sends signals to processes like kill(2) */
294
295struct signal_in {
296        int pid;
297        int sig;
298};
299typedef struct signal_in signal_in;
300
301struct signal_out {
302        int kill_return;
303        int errNo;
304};
305typedef struct signal_out signal_out;
306  /* now wait_info() routine which returns results of polling the wait status
307        of a process/actor. It may return 0 if running, else pid or -1 */
308
309enum stop_code {
310        STOP_ERROR = 0,
311        STOP_NONE = 1,
312        STOP_UNKNOWN = 2,
313        STOP_BREAK = 3,
314        STOP_STEP = 4,
315        STOP_SIGNAL = 5,
316        STOP_TERM_EXIT = 6,
317        STOP_TERM_SIG = 7,
318        STOP_DETACHED = 8,
319        STOP_KILLED = 9,
320        STOP_SPAWN_FAILED = 10,
321};
322typedef enum stop_code stop_code;
323
324struct wait_in {
325        int pid;
326};
327typedef struct wait_in wait_in;
328
329struct wait_out {
330        int wait_return;
331        int errNo;
332        int status;
333        stop_code reason;
334        int handle;
335        u_long PC;
336        u_long SP;
337        u_long FP;
338        u_long thread;
339};
340typedef struct wait_out wait_out;
341  /* now ptrace() routine. This matches the Sun UNIX ptrace as well as
342        some additions */ 
343#define PTRFLG_FORCE 1
344#define PTRFLG_NON_OWNER 2
345#define PTRFLG_FREE 4
346#define PTRDET_UNOWN 0x100
347
348struct ptrace_in {
349        int pid;
350        ptrace_addr_data_in addr;
351        u_int data;
352        u_int flags;
353};
354typedef struct ptrace_in ptrace_in;
355
356struct ptrace_out {
357        ptrace_addr_data_out addr;
358        int result;
359        int errNo;
360};
361typedef struct ptrace_out ptrace_out;
362
363struct one_symbol {
364        char *symbolName;
365        long symbolValue;
366};
367typedef struct one_symbol one_symbol;
368
369typedef struct {
370        u_int all_symbols_len;
371        one_symbol *all_symbols_val;
372} all_symbols;
373
374struct get_global_symbols_out {
375        all_symbols symbols;
376};
377typedef struct get_global_symbols_out get_global_symbols_out;
378
379struct get_text_data_in {
380        int pid;
381        char *actorName;
382};
383typedef struct get_text_data_in get_text_data_in;
384
385struct get_text_data_out {
386        int result;
387        int errNo;
388        u_long textStart;
389        u_long textSize;
390        u_long dataStart;
391        u_long dataSize;
392};
393typedef struct get_text_data_out get_text_data_out;
394
395struct one_signal {
396        u_int number;
397        char *name;
398};
399typedef struct one_signal one_signal;
400
401typedef struct {
402        u_int all_signals_len;
403        one_signal *all_signals_val;
404} all_signals;
405
406struct get_signal_names_out {
407        all_signals signals;
408};
409typedef struct get_signal_names_out get_signal_names_out;
410  /* now define the actual calls we support */
411#define REMDEB_H
412#endif
413
414#define REMOTEDEB 0x20000fff
415#define REMOTEVERS 2
416
417#if defined(__STDC__) || defined(__cplusplus)
418#define OPEN_CONNEX 1
419extern  open_out * open_connex_2(open_in *, CLIENT *);
420extern  open_out * open_connex_2_svc(open_in *, struct svc_req *);
421#define SEND_SIGNAL 2
422extern  signal_out * send_signal_2(signal_in *, CLIENT *);
423extern  signal_out * send_signal_2_svc(signal_in *, struct svc_req *);
424#define CLOSE_CONNEX 10
425extern  void * close_connex_2(close_in *, CLIENT *);
426extern  void * close_connex_2_svc(close_in *, struct svc_req *);
427#define PTRACE 11
428extern  ptrace_out * ptrace_2(ptrace_in *, CLIENT *);
429extern  ptrace_out * ptrace_2_svc(ptrace_in *, struct svc_req *);
430#define WAIT_INFO 13
431extern  wait_out * wait_info_2(wait_in *, CLIENT *);
432extern  wait_out * wait_info_2_svc(wait_in *, struct svc_req *);
433#define GET_SIGNAL_NAMES 17
434extern  get_signal_names_out * get_signal_names_2(void *, CLIENT *);
435extern  get_signal_names_out * get_signal_names_2_svc(void *, struct svc_req *);
436extern int remotedeb_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
437
438#else /* K&R C */
439#define OPEN_CONNEX 1
440extern  open_out * open_connex_2();
441extern  open_out * open_connex_2_svc();
442#define SEND_SIGNAL 2
443extern  signal_out * send_signal_2();
444extern  signal_out * send_signal_2_svc();
445#define CLOSE_CONNEX 10
446extern  void * close_connex_2();
447extern  void * close_connex_2_svc();
448#define PTRACE 11
449extern  ptrace_out * ptrace_2();
450extern  ptrace_out * ptrace_2_svc();
451#define WAIT_INFO 13
452extern  wait_out * wait_info_2();
453extern  wait_out * wait_info_2_svc();
454#define GET_SIGNAL_NAMES 17
455extern  get_signal_names_out * get_signal_names_2();
456extern  get_signal_names_out * get_signal_names_2_svc();
457extern int remotedeb_2_freeresult ();
458#endif /* K&R C */
459
460/* the xdr functions */
461
462#if defined(__STDC__) || defined(__cplusplus)
463extern  bool_t xdr_rpc_type (XDR *, rpc_type*);
464extern  bool_t xdr_UDP_MSG (XDR *, UDP_MSG*);
465extern  bool_t xdr_ptracereq (XDR *, ptracereq*);
466extern  bool_t xdr_xdr_regs (XDR *, xdr_regs*);
467extern  bool_t xdr_xdr_mem (XDR *, xdr_mem*);
468extern  bool_t xdr_break_type (XDR *, break_type*);
469extern  bool_t xdr_xdr_break (XDR *, xdr_break*);
470extern  bool_t xdr_thread_name (XDR *, thread_name*);
471extern  bool_t xdr_KernThread (XDR *, KernThread*);
472extern  bool_t xdr_thread_list (XDR *, thread_list*);
473extern  bool_t xdr_ptrace_addr_data_in (XDR *, ptrace_addr_data_in*);
474extern  bool_t xdr_ptrace_addr_data_out (XDR *, ptrace_addr_data_out*);
475extern  bool_t xdr_CHAR_DATA (XDR *, CHAR_DATA*);
476extern  bool_t xdr_xry_inst (XDR *, xry_inst*);
477extern  bool_t xdr_instance (XDR *, instance*);
478extern  bool_t xdr_instance_union (XDR *, instance_union*);
479extern  bool_t xdr_one_arg (XDR *, one_arg*);
480extern  bool_t xdr_debug_type (XDR *, debug_type*);
481extern  bool_t xdr_open_in (XDR *, open_in*);
482extern  bool_t xdr_open_out (XDR *, open_out*);
483extern  bool_t xdr_close_control (XDR *, close_control*);
484extern  bool_t xdr_close_in (XDR *, close_in*);
485extern  bool_t xdr_signal_in (XDR *, signal_in*);
486extern  bool_t xdr_signal_out (XDR *, signal_out*);
487extern  bool_t xdr_stop_code (XDR *, stop_code*);
488extern  bool_t xdr_wait_in (XDR *, wait_in*);
489extern  bool_t xdr_wait_out (XDR *, wait_out*);
490extern  bool_t xdr_ptrace_in (XDR *, ptrace_in*);
491extern  bool_t xdr_ptrace_out (XDR *, ptrace_out*);
492extern  bool_t xdr_one_symbol (XDR *, one_symbol*);
493extern  bool_t xdr_all_symbols (XDR *, all_symbols*);
494extern  bool_t xdr_get_global_symbols_out (XDR *, get_global_symbols_out*);
495extern  bool_t xdr_get_text_data_in (XDR *, get_text_data_in*);
496extern  bool_t xdr_get_text_data_out (XDR *, get_text_data_out*);
497extern  bool_t xdr_one_signal (XDR *, one_signal*);
498extern  bool_t xdr_all_signals (XDR *, all_signals*);
499extern  bool_t xdr_get_signal_names_out (XDR *, get_signal_names_out*);
500
501#else /* K&R C */
502extern bool_t xdr_rpc_type ();
503extern bool_t xdr_UDP_MSG ();
504extern bool_t xdr_ptracereq ();
505extern bool_t xdr_xdr_regs ();
506extern bool_t xdr_xdr_mem ();
507extern bool_t xdr_break_type ();
508extern bool_t xdr_xdr_break ();
509extern bool_t xdr_thread_name ();
510extern bool_t xdr_KernThread ();
511extern bool_t xdr_thread_list ();
512extern bool_t xdr_ptrace_addr_data_in ();
513extern bool_t xdr_ptrace_addr_data_out ();
514extern bool_t xdr_CHAR_DATA ();
515extern bool_t xdr_xry_inst ();
516extern bool_t xdr_instance ();
517extern bool_t xdr_instance_union ();
518extern bool_t xdr_one_arg ();
519extern bool_t xdr_debug_type ();
520extern bool_t xdr_open_in ();
521extern bool_t xdr_open_out ();
522extern bool_t xdr_close_control ();
523extern bool_t xdr_close_in ();
524extern bool_t xdr_signal_in ();
525extern bool_t xdr_signal_out ();
526extern bool_t xdr_stop_code ();
527extern bool_t xdr_wait_in ();
528extern bool_t xdr_wait_out ();
529extern bool_t xdr_ptrace_in ();
530extern bool_t xdr_ptrace_out ();
531extern bool_t xdr_one_symbol ();
532extern bool_t xdr_all_symbols ();
533extern bool_t xdr_get_global_symbols_out ();
534extern bool_t xdr_get_text_data_in ();
535extern bool_t xdr_get_text_data_out ();
536extern bool_t xdr_one_signal ();
537extern bool_t xdr_all_signals ();
538extern bool_t xdr_get_signal_names_out ();
539
540#endif /* K&R C */
541
542#ifdef __cplusplus
543}
544#endif
545
546#endif /* !_REMDEB_H_RPCGEN */
Note: See TracBrowser for help on using the repository browser.