source: rtems/c/src/librdbg/src/m68k/any/remdeb_xdr.c @ ddeb7693

4.104.114.84.95
Last change on this file since ddeb7693 was ddeb7693, checked in by Ralf Corsepius <ralf.corsepius@…>, on Mar 30, 2004 at 3:00:29 PM

2004-03-30 Ralf Corsepius <ralf_corsepius@…>

  • librdbg/Makefile.am: Fix rpcgen rules.
  • librdbg/src/i386/any/remdeb_xdr.c, librdbg/src/m68k/any/remdeb_xdr.c, librdbg/src/powerpc/new_exception_processing/remdeb_xdr.c: Reflect changes to librdbg/Makefile.am.
  • Property mode set to 100644
File size: 21.0 KB
Line 
1/*
2 * Please do not edit this file.
3 * It was generated using rpcgen.
4 */
5
6#include "src/m68k/any/remdeb.h"
7#define RTEMS_PORT 2071
8#define RTEMS_BACK_PORT 2073
9
10bool_t
11xdr_rpc_type (XDR *xdrs, rpc_type *objp)
12{
13
14         if (!xdr_enum (xdrs, (enum_t *) objp))
15                 return FALSE;
16        return TRUE;
17}
18
19bool_t
20xdr_UDP_MSG (XDR *xdrs, UDP_MSG *objp)
21{
22
23         if (!xdr_u_char (xdrs, &objp->type))
24                 return FALSE;
25         if (!xdr_u_char (xdrs, &objp->msg_num))
26                 return FALSE;
27         if (!xdr_u_short (xdrs, &objp->spec))
28                 return FALSE;
29         if (!xdr_long (xdrs, &objp->pid))
30                 return FALSE;
31         if (!xdr_u_long (xdrs, &objp->context))
32                 return FALSE;
33        return TRUE;
34}
35/*
36 * Sun request values for the remote ptrace system call
37 */
38
39
40bool_t
41xdr_ptracereq (XDR *xdrs, ptracereq *objp)
42{
43
44         if (!xdr_enum (xdrs, (enum_t *) objp))
45                 return FALSE;
46        return TRUE;
47}
48
49bool_t
50xdr_xdr_regs (XDR *xdrs, xdr_regs *objp)
51{
52        register int32_t *buf;
53
54        int i;
55
56        if (xdrs->x_op == XDR_ENCODE) {
57                buf = XDR_INLINE (xdrs, (3 +  8  + 8 )* BYTES_PER_XDR_UNIT);
58                if (buf == NULL) {
59                         if (!xdr_vector (xdrs, (char *)objp->r_dreg, 8,
60                                sizeof (int), (xdrproc_t) xdr_int))
61                                 return FALSE;
62                         if (!xdr_vector (xdrs, (char *)objp->r_areg, 8,
63                                sizeof (int), (xdrproc_t) xdr_int))
64                                 return FALSE;
65                         if (!xdr_int (xdrs, &objp->r_sr))
66                                 return FALSE;
67                         if (!xdr_int (xdrs, &objp->r_pc))
68                                 return FALSE;
69                         if (!xdr_int (xdrs, &objp->r_vec))
70                                 return FALSE;
71                } else {
72                        {
73                                register int *genp;
74
75                                for (i = 0, genp = objp->r_dreg;
76                                        i < 8; ++i) {
77                                        IXDR_PUT_LONG(buf, *genp++);
78                                }
79                        }
80                        {
81                                register int *genp;
82
83                                for (i = 0, genp = objp->r_areg;
84                                        i < 8; ++i) {
85                                        IXDR_PUT_LONG(buf, *genp++);
86                                }
87                        }
88                        IXDR_PUT_LONG(buf, objp->r_sr);
89                        IXDR_PUT_LONG(buf, objp->r_pc);
90                        IXDR_PUT_LONG(buf, objp->r_vec);
91                }
92                return TRUE;
93        } else if (xdrs->x_op == XDR_DECODE) {
94                buf = XDR_INLINE (xdrs, (3 +  8  + 8 )* BYTES_PER_XDR_UNIT);
95                if (buf == NULL) {
96                         if (!xdr_vector (xdrs, (char *)objp->r_dreg, 8,
97                                sizeof (int), (xdrproc_t) xdr_int))
98                                 return FALSE;
99                         if (!xdr_vector (xdrs, (char *)objp->r_areg, 8,
100                                sizeof (int), (xdrproc_t) xdr_int))
101                                 return FALSE;
102                         if (!xdr_int (xdrs, &objp->r_sr))
103                                 return FALSE;
104                         if (!xdr_int (xdrs, &objp->r_pc))
105                                 return FALSE;
106                         if (!xdr_int (xdrs, &objp->r_vec))
107                                 return FALSE;
108                } else {
109                        {
110                                register int *genp;
111
112                                for (i = 0, genp = objp->r_dreg;
113                                        i < 8; ++i) {
114                                        *genp++ = IXDR_GET_LONG(buf);
115                                }
116                        }
117                        {
118                                register int *genp;
119
120                                for (i = 0, genp = objp->r_areg;
121                                        i < 8; ++i) {
122                                        *genp++ = IXDR_GET_LONG(buf);
123                                }
124                        }
125                        objp->r_sr = IXDR_GET_LONG(buf);
126                        objp->r_pc = IXDR_GET_LONG(buf);
127                        objp->r_vec = IXDR_GET_LONG(buf);
128                }
129         return TRUE;
130        }
131
132         if (!xdr_vector (xdrs, (char *)objp->r_dreg, 8,
133                sizeof (int), (xdrproc_t) xdr_int))
134                 return FALSE;
135         if (!xdr_vector (xdrs, (char *)objp->r_areg, 8,
136                sizeof (int), (xdrproc_t) xdr_int))
137                 return FALSE;
138         if (!xdr_int (xdrs, &objp->r_sr))
139                 return FALSE;
140         if (!xdr_int (xdrs, &objp->r_pc))
141                 return FALSE;
142         if (!xdr_int (xdrs, &objp->r_vec))
143                 return FALSE;
144        return TRUE;
145}
146 /*
147   * Memory data for read/write text or data. The size is in data. The target
148   * addr is in the addr field.
149   * Be careful before modifying because this value goes into internal
150   * pipes and is allocated on stack too. Pipes and/or the stack could
151   * become too small if this value gets incremented.
152   */
153bool_t xdr_xdr_mem(xdrs, objp)
154 XDR *xdrs;
155 struct xdr_mem *objp;
156{
157 if (!xdr_u_long(xdrs, &objp->addr)) {
158 return (FALSE);
159 }
160 if (!xdr_u_int(xdrs, &objp->dataNb)) {
161 return(FALSE);
162 }
163 return (xdr_opaque(xdrs, objp->data, objp->dataNb));
164}
165
166bool_t
167xdr_break_type (XDR *xdrs, break_type *objp)
168{
169
170         if (!xdr_enum (xdrs, (enum_t *) objp))
171                 return FALSE;
172        return TRUE;
173}
174
175bool_t
176xdr_xdr_break (XDR *xdrs, xdr_break *objp)
177{
178        register int32_t *buf;
179
180        int i;
181
182        if (xdrs->x_op == XDR_ENCODE) {
183                 if (!xdr_u_char (xdrs, &objp->type))
184                         return FALSE;
185                 if (!xdr_u_char (xdrs, &objp->thread_spec))
186                         return FALSE;
187                buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
188                if (buf == NULL) {
189                         if (!xdr_u_short (xdrs, &objp->handle))
190                                 return FALSE;
191                         if (!xdr_u_long (xdrs, &objp->ee_loc))
192                                 return FALSE;
193                         if (!xdr_u_long (xdrs, &objp->ee_type))
194                                 return FALSE;
195                         if (!xdr_u_short (xdrs, &objp->length))
196                                 return FALSE;
197
198                } else {
199                IXDR_PUT_U_SHORT(buf, objp->handle);
200                IXDR_PUT_U_LONG(buf, objp->ee_loc);
201                IXDR_PUT_U_LONG(buf, objp->ee_type);
202                IXDR_PUT_U_SHORT(buf, objp->length);
203                }
204                 if (!xdr_u_char (xdrs, &objp->pass_count))
205                         return FALSE;
206                 if (!xdr_u_char (xdrs, &objp->curr_pass))
207                         return FALSE;
208                buf = XDR_INLINE (xdrs, ( MAX_THRD_BRK ) * BYTES_PER_XDR_UNIT);
209                if (buf == NULL) {
210                         if (!xdr_vector (xdrs, (char *)objp->thread_list, MAX_THRD_BRK,
211                                sizeof (u_long), (xdrproc_t) xdr_u_long))
212                                 return FALSE;
213                } else {
214                        {
215                                register u_long *genp;
216
217                                for (i = 0, genp = objp->thread_list;
218                                        i < MAX_THRD_BRK; ++i) {
219                                        IXDR_PUT_U_LONG(buf, *genp++);
220                                }
221                        }
222                }
223                return TRUE;
224        } else if (xdrs->x_op == XDR_DECODE) {
225                 if (!xdr_u_char (xdrs, &objp->type))
226                         return FALSE;
227                 if (!xdr_u_char (xdrs, &objp->thread_spec))
228                         return FALSE;
229                buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
230                if (buf == NULL) {
231                         if (!xdr_u_short (xdrs, &objp->handle))
232                                 return FALSE;
233                         if (!xdr_u_long (xdrs, &objp->ee_loc))
234                                 return FALSE;
235                         if (!xdr_u_long (xdrs, &objp->ee_type))
236                                 return FALSE;
237                         if (!xdr_u_short (xdrs, &objp->length))
238                                 return FALSE;
239
240                } else {
241                objp->handle = IXDR_GET_U_SHORT(buf);
242                objp->ee_loc = IXDR_GET_U_LONG(buf);
243                objp->ee_type = IXDR_GET_U_LONG(buf);
244                objp->length = IXDR_GET_U_SHORT(buf);
245                }
246                 if (!xdr_u_char (xdrs, &objp->pass_count))
247                         return FALSE;
248                 if (!xdr_u_char (xdrs, &objp->curr_pass))
249                         return FALSE;
250                buf = XDR_INLINE (xdrs, ( MAX_THRD_BRK ) * BYTES_PER_XDR_UNIT);
251                if (buf == NULL) {
252                         if (!xdr_vector (xdrs, (char *)objp->thread_list, MAX_THRD_BRK,
253                                sizeof (u_long), (xdrproc_t) xdr_u_long))
254                                 return FALSE;
255                } else {
256                        {
257                                register u_long *genp;
258
259                                for (i = 0, genp = objp->thread_list;
260                                        i < MAX_THRD_BRK; ++i) {
261                                        *genp++ = IXDR_GET_U_LONG(buf);
262                                }
263                        }
264                }
265         return TRUE;
266        }
267
268         if (!xdr_u_char (xdrs, &objp->type))
269                 return FALSE;
270         if (!xdr_u_char (xdrs, &objp->thread_spec))
271                 return FALSE;
272         if (!xdr_u_short (xdrs, &objp->handle))
273                 return FALSE;
274         if (!xdr_u_long (xdrs, &objp->ee_loc))
275                 return FALSE;
276         if (!xdr_u_long (xdrs, &objp->ee_type))
277                 return FALSE;
278         if (!xdr_u_short (xdrs, &objp->length))
279                 return FALSE;
280         if (!xdr_u_char (xdrs, &objp->pass_count))
281                 return FALSE;
282         if (!xdr_u_char (xdrs, &objp->curr_pass))
283                 return FALSE;
284         if (!xdr_vector (xdrs, (char *)objp->thread_list, MAX_THRD_BRK,
285                sizeof (u_long), (xdrproc_t) xdr_u_long))
286                 return FALSE;
287        return TRUE;
288}
289
290bool_t
291xdr_thread_name (XDR *xdrs, thread_name *objp)
292{
293
294         if (!xdr_string (xdrs, objp, THREADNAMEMAX))
295                 return FALSE;
296        return TRUE;
297}
298
299bool_t
300xdr_KernThread (XDR *xdrs, KernThread *objp)
301{
302
303         if (!xdr_u_int (xdrs, &objp->threadLi))
304                 return FALSE;
305        return TRUE;
306}
307bool_t xdr_thread_list(xdrs, objp)
308 XDR *xdrs;
309 struct thread_list *objp;
310{
311 return (xdr_array(xdrs, (char**)&objp->threads, &objp->nbThread,
312 UTHREAD_MAX, sizeof(KernThread), xdr_KernThread));
313}
314
315bool_t
316xdr_ptrace_addr_data_in (XDR *xdrs, ptrace_addr_data_in *objp)
317{
318
319         if (!xdr_ptracereq (xdrs, &objp->req))
320                 return FALSE;
321        switch (objp->req) {
322        case RPT_SETTHREADREGS:
323                 if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_in_u.regs))
324                         return FALSE;
325                break;
326        case RPT_SETREGS:
327                 if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_in_u.regs))
328                         return FALSE;
329                break;
330        case RPT_PSETTHREADREGS:
331                 if (!xdr_array (xdrs, (char **)&objp->ptrace_addr_data_in_u.pregs.pregs_val, (u_int *) &objp->ptrace_addr_data_in_u.pregs.pregs_len, ~0,
332                        sizeof (u_int), (xdrproc_t) xdr_u_int))
333                         return FALSE;
334                break;
335        case RPT_PSETREGS:
336                 if (!xdr_array (xdrs, (char **)&objp->ptrace_addr_data_in_u.pregs.pregs_val, (u_int *) &objp->ptrace_addr_data_in_u.pregs.pregs_len, ~0,
337                        sizeof (u_int), (xdrproc_t) xdr_u_int))
338                         return FALSE;
339                break;
340        case RPT_SETTHREADNAME:
341                 if (!xdr_thread_name (xdrs, &objp->ptrace_addr_data_in_u.name))
342                         return FALSE;
343                break;
344        case RPT_WRITETEXT:
345                 if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_in_u.mem))
346                         return FALSE;
347                break;
348        case RPT_WRITEDATA:
349                 if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_in_u.mem))
350                         return FALSE;
351                break;
352        case RPT_SETBREAK:
353                 if (!xdr_xdr_break (xdrs, &objp->ptrace_addr_data_in_u.breakp))
354                         return FALSE;
355                break;
356        default:
357                 if (!xdr_u_int (xdrs, &objp->ptrace_addr_data_in_u.address))
358                         return FALSE;
359                break;
360        }
361        return TRUE;
362}
363
364bool_t
365xdr_ptrace_addr_data_out (XDR *xdrs, ptrace_addr_data_out *objp)
366{
367
368         if (!xdr_ptracereq (xdrs, &objp->req))
369                 return FALSE;
370        switch (objp->req) {
371        case RPT_GETREGS:
372                 if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_out_u.regs))
373                         return FALSE;
374                break;
375        case RPT_GETTHREADREGS:
376                 if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_out_u.regs))
377                         return FALSE;
378                break;
379        case RPT_PGETREGS:
380                 if (!xdr_array (xdrs, (char **)&objp->ptrace_addr_data_out_u.pregs.pregs_val, (u_int *) &objp->ptrace_addr_data_out_u.pregs.pregs_len, ~0,
381                        sizeof (u_int), (xdrproc_t) xdr_u_int))
382                         return FALSE;
383                break;
384        case RPT_PGETTHREADREGS:
385                 if (!xdr_array (xdrs, (char **)&objp->ptrace_addr_data_out_u.pregs.pregs_val, (u_int *) &objp->ptrace_addr_data_out_u.pregs.pregs_len, ~0,
386                        sizeof (u_int), (xdrproc_t) xdr_u_int))
387                         return FALSE;
388                break;
389        case RPT_THREADLIST:
390                 if (!xdr_thread_list (xdrs, &objp->ptrace_addr_data_out_u.threads))
391                         return FALSE;
392                break;
393        case RPT_GETTHREADNAME:
394                 if (!xdr_thread_name (xdrs, &objp->ptrace_addr_data_out_u.name))
395                         return FALSE;
396                break;
397        case RPT_READTEXT:
398                 if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
399                         return FALSE;
400                break;
401        case RPT_GETNAME:
402                 if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
403                         return FALSE;
404                break;
405        case RPT_READDATA:
406                 if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
407                         return FALSE;
408                break;
409        case RPT_GETBREAK:
410                 if (!xdr_xdr_break (xdrs, &objp->ptrace_addr_data_out_u.breakp))
411                         return FALSE;
412                break;
413        default:
414                 if (!xdr_u_int (xdrs, &objp->ptrace_addr_data_out_u.addr))
415                         return FALSE;
416                break;
417        }
418        return TRUE;
419}
420
421bool_t
422xdr_CHAR_DATA (XDR *xdrs, CHAR_DATA *objp)
423{
424
425         if (!xdr_bytes (xdrs, (char **)&objp->CHAR_DATA_val, (u_int *) &objp->CHAR_DATA_len, NET_SAFE))
426                 return FALSE;
427        return TRUE;
428}
429
430bool_t
431xdr_one_arg (XDR *xdrs, one_arg *objp)
432{
433
434         if (!xdr_string (xdrs, objp, NET_SAFE))
435                 return FALSE;
436        return TRUE;
437}
438 /* now open_connex() routine which establishes a connection to server */
439
440bool_t
441xdr_debug_type (XDR *xdrs, debug_type *objp)
442{
443
444         if (!xdr_enum (xdrs, (enum_t *) objp))
445                 return FALSE;
446        return TRUE;
447}
448#define DEBUGGER_IS_GDB 0x2 /* */
449
450bool_t
451xdr_open_in (XDR *xdrs, open_in *objp)
452{
453
454         if (!xdr_vector (xdrs, (char *)objp->back_port, 16,
455                sizeof (u_char), (xdrproc_t) xdr_u_char))
456                 return FALSE;
457         if (!xdr_u_short (xdrs, &objp->debug_type))
458                 return FALSE;
459         if (!xdr_u_short (xdrs, &objp->flags))
460                 return FALSE;
461         if (!xdr_vector (xdrs, (char *)objp->destination, 16,
462                sizeof (u_char), (xdrproc_t) xdr_u_char))
463                 return FALSE;
464         if (!xdr_one_arg (xdrs, &objp->user_name))
465                 return FALSE;
466        return TRUE;
467}
468
469bool_t
470xdr_open_out (XDR *xdrs, open_out *objp)
471{
472        register int32_t *buf;
473
474        int i;
475
476        if (xdrs->x_op == XDR_ENCODE) {
477                buf = XDR_INLINE (xdrs, (2 + ( 4 )) * BYTES_PER_XDR_UNIT);
478                if (buf == NULL) {
479                         if (!xdr_u_long (xdrs, &objp->port))
480                                 return FALSE;
481                         if (!xdr_vector (xdrs, (char *)objp->pad, 4,
482                                sizeof (u_int), (xdrproc_t) xdr_u_int))
483                                 return FALSE;
484                         if (!xdr_u_int (xdrs, &objp->fp))
485                                 return FALSE;
486
487                } else {
488                IXDR_PUT_U_LONG(buf, objp->port);
489                {
490                        register u_int *genp;
491
492                        for (i = 0, genp = objp->pad;
493                                i < 4; ++i) {
494                                IXDR_PUT_U_LONG(buf, *genp++);
495                        }
496                }
497                IXDR_PUT_U_LONG(buf, objp->fp);
498                }
499                 if (!xdr_u_char (xdrs, &objp->cmd_table_num))
500                         return FALSE;
501                 if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
502                         return FALSE;
503                 if (!xdr_u_short (xdrs, &objp->server_vers))
504                         return FALSE;
505                return TRUE;
506        } else if (xdrs->x_op == XDR_DECODE) {
507                buf = XDR_INLINE (xdrs, (2 + ( 4 )) * BYTES_PER_XDR_UNIT);
508                if (buf == NULL) {
509                         if (!xdr_u_long (xdrs, &objp->port))
510                                 return FALSE;
511                         if (!xdr_vector (xdrs, (char *)objp->pad, 4,
512                                sizeof (u_int), (xdrproc_t) xdr_u_int))
513                                 return FALSE;
514                         if (!xdr_u_int (xdrs, &objp->fp))
515                                 return FALSE;
516
517                } else {
518                objp->port = IXDR_GET_U_LONG(buf);
519                {
520                        register u_int *genp;
521
522                        for (i = 0, genp = objp->pad;
523                                i < 4; ++i) {
524                                *genp++ = IXDR_GET_U_LONG(buf);
525                        }
526                }
527                objp->fp = IXDR_GET_U_LONG(buf);
528                }
529                 if (!xdr_u_char (xdrs, &objp->cmd_table_num))
530                         return FALSE;
531                 if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
532                         return FALSE;
533                 if (!xdr_u_short (xdrs, &objp->server_vers))
534                         return FALSE;
535         return TRUE;
536        }
537
538         if (!xdr_u_long (xdrs, &objp->port))
539                 return FALSE;
540         if (!xdr_vector (xdrs, (char *)objp->pad, 4,
541                sizeof (u_int), (xdrproc_t) xdr_u_int))
542                 return FALSE;
543         if (!xdr_u_int (xdrs, &objp->fp))
544                 return FALSE;
545         if (!xdr_u_char (xdrs, &objp->cmd_table_num))
546                 return FALSE;
547         if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
548                 return FALSE;
549         if (!xdr_u_short (xdrs, &objp->server_vers))
550                 return FALSE;
551        return TRUE;
552}
553 /* now close_connex() routine which detaches from server */
554
555bool_t
556xdr_close_control (XDR *xdrs, close_control *objp)
557{
558
559         if (!xdr_enum (xdrs, (enum_t *) objp))
560                 return FALSE;
561        return TRUE;
562}
563
564bool_t
565xdr_close_in (XDR *xdrs, close_in *objp)
566{
567
568         if (!xdr_close_control (xdrs, &objp->control))
569                 return FALSE;
570        return TRUE;
571}
572 /* now send_signal() routine which sends signals to processes like kill(2) */
573
574bool_t
575xdr_signal_in (XDR *xdrs, signal_in *objp)
576{
577
578         if (!xdr_int (xdrs, &objp->pid))
579                 return FALSE;
580         if (!xdr_int (xdrs, &objp->sig))
581                 return FALSE;
582        return TRUE;
583}
584
585bool_t
586xdr_signal_out (XDR *xdrs, signal_out *objp)
587{
588
589         if (!xdr_int (xdrs, &objp->kill_return))
590                 return FALSE;
591         if (!xdr_int (xdrs, &objp->errNo))
592                 return FALSE;
593        return TRUE;
594}
595 /* now wait_info() routine which returns results of polling the wait status
596        of a process/actor. It may return 0 if running, else pid or -1 */
597
598bool_t
599xdr_stop_code (XDR *xdrs, stop_code *objp)
600{
601
602         if (!xdr_enum (xdrs, (enum_t *) objp))
603                 return FALSE;
604        return TRUE;
605}
606
607bool_t
608xdr_wait_in (XDR *xdrs, wait_in *objp)
609{
610
611         if (!xdr_int (xdrs, &objp->pid))
612                 return FALSE;
613        return TRUE;
614}
615
616bool_t
617xdr_wait_out (XDR *xdrs, wait_out *objp)
618{
619        register int32_t *buf;
620
621
622        if (xdrs->x_op == XDR_ENCODE) {
623                buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
624                if (buf == NULL) {
625                         if (!xdr_int (xdrs, &objp->wait_return))
626                                 return FALSE;
627                         if (!xdr_int (xdrs, &objp->errNo))
628                                 return FALSE;
629                         if (!xdr_int (xdrs, &objp->status))
630                                 return FALSE;
631
632                } else {
633                IXDR_PUT_LONG(buf, objp->wait_return);
634                IXDR_PUT_LONG(buf, objp->errNo);
635                IXDR_PUT_LONG(buf, objp->status);
636                }
637                 if (!xdr_stop_code (xdrs, &objp->reason))
638                         return FALSE;
639                buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
640                if (buf == NULL) {
641                         if (!xdr_int (xdrs, &objp->handle))
642                                 return FALSE;
643                         if (!xdr_u_long (xdrs, &objp->PC))
644                                 return FALSE;
645                         if (!xdr_u_long (xdrs, &objp->SP))
646                                 return FALSE;
647                         if (!xdr_u_long (xdrs, &objp->FP))
648                                 return FALSE;
649                         if (!xdr_u_long (xdrs, &objp->thread))
650                                 return FALSE;
651                } else {
652                        IXDR_PUT_LONG(buf, objp->handle);
653                        IXDR_PUT_U_LONG(buf, objp->PC);
654                        IXDR_PUT_U_LONG(buf, objp->SP);
655                        IXDR_PUT_U_LONG(buf, objp->FP);
656                        IXDR_PUT_U_LONG(buf, objp->thread);
657                }
658                return TRUE;
659        } else if (xdrs->x_op == XDR_DECODE) {
660                buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
661                if (buf == NULL) {
662                         if (!xdr_int (xdrs, &objp->wait_return))
663                                 return FALSE;
664                         if (!xdr_int (xdrs, &objp->errNo))
665                                 return FALSE;
666                         if (!xdr_int (xdrs, &objp->status))
667                                 return FALSE;
668
669                } else {
670                objp->wait_return = IXDR_GET_LONG(buf);
671                objp->errNo = IXDR_GET_LONG(buf);
672                objp->status = IXDR_GET_LONG(buf);
673                }
674                 if (!xdr_stop_code (xdrs, &objp->reason))
675                         return FALSE;
676                buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
677                if (buf == NULL) {
678                         if (!xdr_int (xdrs, &objp->handle))
679                                 return FALSE;
680                         if (!xdr_u_long (xdrs, &objp->PC))
681                                 return FALSE;
682                         if (!xdr_u_long (xdrs, &objp->SP))
683                                 return FALSE;
684                         if (!xdr_u_long (xdrs, &objp->FP))
685                                 return FALSE;
686                         if (!xdr_u_long (xdrs, &objp->thread))
687                                 return FALSE;
688                } else {
689                        objp->handle = IXDR_GET_LONG(buf);
690                        objp->PC = IXDR_GET_U_LONG(buf);
691                        objp->SP = IXDR_GET_U_LONG(buf);
692                        objp->FP = IXDR_GET_U_LONG(buf);
693                        objp->thread = IXDR_GET_U_LONG(buf);
694                }
695         return TRUE;
696        }
697
698         if (!xdr_int (xdrs, &objp->wait_return))
699                 return FALSE;
700         if (!xdr_int (xdrs, &objp->errNo))
701                 return FALSE;
702         if (!xdr_int (xdrs, &objp->status))
703                 return FALSE;
704         if (!xdr_stop_code (xdrs, &objp->reason))
705                 return FALSE;
706         if (!xdr_int (xdrs, &objp->handle))
707                 return FALSE;
708         if (!xdr_u_long (xdrs, &objp->PC))
709                 return FALSE;
710         if (!xdr_u_long (xdrs, &objp->SP))
711                 return FALSE;
712         if (!xdr_u_long (xdrs, &objp->FP))
713                 return FALSE;
714         if (!xdr_u_long (xdrs, &objp->thread))
715                 return FALSE;
716        return TRUE;
717}
718 /* now ptrace() routine. This matches the Sun UNIX ptrace as well as
719        some additions */
720
721bool_t
722xdr_ptrace_in (XDR *xdrs, ptrace_in *objp)
723{
724
725         if (!xdr_int (xdrs, &objp->pid))
726                 return FALSE;
727         if (!xdr_ptrace_addr_data_in (xdrs, &objp->addr))
728                 return FALSE;
729         if (!xdr_u_int (xdrs, &objp->data))
730                 return FALSE;
731         if (!xdr_u_int (xdrs, &objp->flags))
732                 return FALSE;
733        return TRUE;
734}
735
736bool_t
737xdr_ptrace_out (XDR *xdrs, ptrace_out *objp)
738{
739
740         if (!xdr_ptrace_addr_data_out (xdrs, &objp->addr))
741                 return FALSE;
742         if (!xdr_int (xdrs, &objp->result))
743                 return FALSE;
744         if (!xdr_int (xdrs, &objp->errNo))
745                 return FALSE;
746        return TRUE;
747}
748
749bool_t
750xdr_one_symbol (XDR *xdrs, one_symbol *objp)
751{
752
753         if (!xdr_string (xdrs, &objp->symbolName, ~0))
754                 return FALSE;
755         if (!xdr_long (xdrs, &objp->symbolValue))
756                 return FALSE;
757        return TRUE;
758}
759
760bool_t
761xdr_all_symbols (XDR *xdrs, all_symbols *objp)
762{
763
764         if (!xdr_array (xdrs, (char **)&objp->all_symbols_val, (u_int *) &objp->all_symbols_len, ~0,
765                sizeof (one_symbol), (xdrproc_t) xdr_one_symbol))
766                 return FALSE;
767        return TRUE;
768}
769
770bool_t
771xdr_get_global_symbols_out (XDR *xdrs, get_global_symbols_out *objp)
772{
773
774         if (!xdr_all_symbols (xdrs, &objp->symbols))
775                 return FALSE;
776        return TRUE;
777}
778
779bool_t
780xdr_get_text_data_in (XDR *xdrs, get_text_data_in *objp)
781{
782
783         if (!xdr_int (xdrs, &objp->pid))
784                 return FALSE;
785         if (!xdr_string (xdrs, &objp->actorName, 16))
786                 return FALSE;
787        return TRUE;
788}
789
790bool_t
791xdr_get_text_data_out (XDR *xdrs, get_text_data_out *objp)
792{
793        register int32_t *buf;
794
795
796        if (xdrs->x_op == XDR_ENCODE) {
797                buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
798                if (buf == NULL) {
799                         if (!xdr_int (xdrs, &objp->result))
800                                 return FALSE;
801                         if (!xdr_int (xdrs, &objp->errNo))
802                                 return FALSE;
803                         if (!xdr_u_long (xdrs, &objp->textStart))
804                                 return FALSE;
805                         if (!xdr_u_long (xdrs, &objp->textSize))
806                                 return FALSE;
807                         if (!xdr_u_long (xdrs, &objp->dataStart))
808                                 return FALSE;
809                         if (!xdr_u_long (xdrs, &objp->dataSize))
810                                 return FALSE;
811                } else {
812                        IXDR_PUT_LONG(buf, objp->result);
813                        IXDR_PUT_LONG(buf, objp->errNo);
814                        IXDR_PUT_U_LONG(buf, objp->textStart);
815                        IXDR_PUT_U_LONG(buf, objp->textSize);
816                        IXDR_PUT_U_LONG(buf, objp->dataStart);
817                        IXDR_PUT_U_LONG(buf, objp->dataSize);
818                }
819                return TRUE;
820        } else if (xdrs->x_op == XDR_DECODE) {
821                buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
822                if (buf == NULL) {
823                         if (!xdr_int (xdrs, &objp->result))
824                                 return FALSE;
825                         if (!xdr_int (xdrs, &objp->errNo))
826                                 return FALSE;
827                         if (!xdr_u_long (xdrs, &objp->textStart))
828                                 return FALSE;
829                         if (!xdr_u_long (xdrs, &objp->textSize))
830                                 return FALSE;
831                         if (!xdr_u_long (xdrs, &objp->dataStart))
832                                 return FALSE;
833                         if (!xdr_u_long (xdrs, &objp->dataSize))
834                                 return FALSE;
835                } else {
836                        objp->result = IXDR_GET_LONG(buf);
837                        objp->errNo = IXDR_GET_LONG(buf);
838                        objp->textStart = IXDR_GET_U_LONG(buf);
839                        objp->textSize = IXDR_GET_U_LONG(buf);
840                        objp->dataStart = IXDR_GET_U_LONG(buf);
841                        objp->dataSize = IXDR_GET_U_LONG(buf);
842                }
843         return TRUE;
844        }
845
846         if (!xdr_int (xdrs, &objp->result))
847                 return FALSE;
848         if (!xdr_int (xdrs, &objp->errNo))
849                 return FALSE;
850         if (!xdr_u_long (xdrs, &objp->textStart))
851                 return FALSE;
852         if (!xdr_u_long (xdrs, &objp->textSize))
853                 return FALSE;
854         if (!xdr_u_long (xdrs, &objp->dataStart))
855                 return FALSE;
856         if (!xdr_u_long (xdrs, &objp->dataSize))
857                 return FALSE;
858        return TRUE;
859}
860
861bool_t
862xdr_one_signal (XDR *xdrs, one_signal *objp)
863{
864
865         if (!xdr_u_int (xdrs, &objp->number))
866                 return FALSE;
867         if (!xdr_string (xdrs, &objp->name, ~0))
868                 return FALSE;
869        return TRUE;
870}
871
872bool_t
873xdr_all_signals (XDR *xdrs, all_signals *objp)
874{
875
876         if (!xdr_array (xdrs, (char **)&objp->all_signals_val, (u_int *) &objp->all_signals_len, ~0,
877                sizeof (one_signal), (xdrproc_t) xdr_one_signal))
878                 return FALSE;
879        return TRUE;
880}
881
882bool_t
883xdr_get_signal_names_out (XDR *xdrs, get_signal_names_out *objp)
884{
885
886         if (!xdr_all_signals (xdrs, &objp->signals))
887                 return FALSE;
888        return TRUE;
889}
890 /* now define the actual calls we support */
Note: See TracBrowser for help on using the repository browser.