source: rtems/c/src/librdbg/src/i386/any/remdeb_xdr.c @ 4c3ab846

4.104.114.84.95
Last change on this file since 4c3ab846 was 4c3ab846, checked in by Joel Sherrill <joel.sherrill@…>, on 01/13/00 at 21:07:22

Patch rtems-rc-20000104-17.diff from Ralf Corsepius <corsepiu@…>
that addresses the librdbg/rpcgen related problems:

Changes:

  • All rpcgen generated files are now kept inside of the source tree
  • Fix librdbg/configure to correctly detect presence of rpcgen and awk
  • Use rpcgen -m to generated remdeb_svc.c
  • Remove msgout/_msgout from awk.svc
  • minor cleanups to librdbg/configure.in

ATTENTION --- IMPORTANT:

  • With keeping rpc-generated files pre-build inside of the source tree, you as the packager of RTEMS have to ensure that timestamps are correctly set up: The generated files must not be older than the *.x files.
  • This is extraordinarily important when
    • putting the package on read-only media
    • after checking out from CVS
    • after modifications to the *.x files
  • If one of the *.x files is modified you have to either
    • build for i386/pc386 and powerpc/mcp750
    • or to invoke the same rpcgen calls as the librdbg/src/<cpu>/<bsp>/Makefile.am do manually before checking-in the files to CVS.

Proposal:

We could add something to bootstrap for touching the rpcgen-generated
sources and/or to manually regenerate them.

NOTE FROM JOEL:

Ralf proposed modifying bootstrap to handle rpcgen. I think this
is the best solution as it is something already done in the
snapshot procedure.

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