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

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

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

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