source: rtems/c/src/librdbg/src/i386/any/remdeb_xdr.c @ 703f3a4

4.104.114.84.95
Last change on this file since 703f3a4 was 703f3a4, checked in by Joel Sherrill <joel.sherrill@…>, on Oct 31, 2002 at 9:42:42 PM

2002-10-31 Joel Sherrill <joel@…>

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