summaryrefslogtreecommitdiffstats
path: root/c/src/librdbg/src/i386/any/remdeb_xdr.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-02-01 19:33:15 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-02-01 19:33:15 +0000
commit97f6256fd2f25fe123d5abdc7e25b3508e92af37 (patch)
treef88f8afc6323f10469db8f4c086a52688d19cd32 /c/src/librdbg/src/i386/any/remdeb_xdr.c
parentFixed ChangeLog (diff)
downloadrtems-97f6256fd2f25fe123d5abdc7e25b3508e92af37.tar.bz2
2002-02-01 Eric Valette <valette@crf.canon.fr>
* So many patches have been posted recently on the mailing list and because we were unable to find correct solution to compile on various linux distros (due to rpcgen incompatibilities), and because the coding style of rdbg was rather inconsistant among various pieces of code, I decided to: 1) make some cleaning regarding global coding style (using indent + manual edits), 2) incorporate/review the paches send by various people (S. Holford, T. Strauman), 3) Fix the bug due to varying rpcgen code generation in remdeb_svc.c, 4) Remove some dead code, 5) Apply a patches enabling to call enterRdbg imediately after rdbg initialization is done, NB : the paches is huge but it is mainly due to coding styke chnages. Only few lines of codes have been really changed and they do not impact rdbg functionnality (AFAIKT). * include/rdbg/servrpc.h, include/rdbg/i386/rdbg_f.h, include/rdbg/m68k/rdbg_f.h, include/rdbg/powerpc/rdbg_f.h, src/_servtgt.c, src/awk.svc, src/excep.c, src/ptrace.c, src/rdbg.c, src/remdeb.x, src/servbkpt.c, src/servcon.c, src/servrpc.c, src/servtgt.c, src/servtsp.c, src/servutil.c, src/i386/excep_f.c, src/i386/rdbg_f.c, src/i386/any/Makefile.am, src/i386/any/remdeb.h, src/i386/any/remdeb_svc.c, src/i386/any/remdeb_xdr.c, src/m68k/excep_f.c, src/m68k/rdbg_f.c, src/m68k/any/Makefile.am, src/m68k/any/remdeb.h, src/m68k/any/remdeb_svc.c, src/m68k/any/remdeb_xdr.c, src/powerpc/excep_f.c, src/powerpc/rdbg_f.c, src/powerpc/new_exception_processing/Makefile.am, src/powerpc/new_exception_processing/remdeb.h, src/powerpc/new_exception_processing/remdeb_svc.c, src/powerpc/new_exception_processing/remdeb_xdr.c: Modified.
Diffstat (limited to '')
-rw-r--r--c/src/librdbg/src/i386/any/remdeb_xdr.c1713
1 files changed, 812 insertions, 901 deletions
diff --git a/c/src/librdbg/src/i386/any/remdeb_xdr.c b/c/src/librdbg/src/i386/any/remdeb_xdr.c
index b3d6cf7a02..721dfdc200 100644
--- a/c/src/librdbg/src/i386/any/remdeb_xdr.c
+++ b/c/src/librdbg/src/i386/any/remdeb_xdr.c
@@ -8,951 +8,862 @@
#define RTEMS_BACK_PORT 2073
bool_t
-xdr_rpc_type (XDR * xdrs, rpc_type * objp)
+xdr_rpc_type (XDR *xdrs, rpc_type *objp)
{
- register int32_t *buf;
+ register int32_t *buf;
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_UDP_MSG (XDR * xdrs, UDP_MSG * objp)
+xdr_UDP_MSG (XDR *xdrs, UDP_MSG *objp)
{
- register int32_t *buf;
+ register int32_t *buf;
- if (!xdr_u_char (xdrs, &objp->type))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->msg_num))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->spec))
- return FALSE;
- if (!xdr_long (xdrs, &objp->pid))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->context))
- return FALSE;
- return TRUE;
+ if (!xdr_u_char (xdrs, &objp->type))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->msg_num))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->spec))
+ return FALSE;
+ if (!xdr_long (xdrs, &objp->pid))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->context))
+ return FALSE;
+ return TRUE;
}
-
/*
* Sun request values for the remote ptrace system call
*/
+
bool_t
-xdr_ptracereq (XDR * xdrs, ptracereq * objp)
+xdr_ptracereq (XDR *xdrs, ptracereq *objp)
{
- register int32_t *buf;
+ register int32_t *buf;
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_xdr_regs (XDR * xdrs, xdr_regs * objp)
+xdr_xdr_regs (XDR *xdrs, xdr_regs *objp)
{
- register int32_t *buf;
+ register int32_t *buf;
- int i;
+ int i;
- if (xdrs->x_op == XDR_ENCODE) {
- buf = XDR_INLINE (xdrs, 19 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_vector (xdrs, (char *) objp->tabreg, 19,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- } else {
- {
- register u_int *genp;
+ if (xdrs->x_op == XDR_ENCODE) {
+ buf = XDR_INLINE (xdrs, ( 19 ) * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_vector (xdrs, (char *)objp->tabreg, 19,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ } else {
+ {
+ register u_int *genp;
- for (i = 0, genp = objp->tabreg; i < 19; ++i) {
- IXDR_PUT_U_LONG (buf, *genp++);
- }
- }
- }
- return TRUE;
- } else if (xdrs->x_op == XDR_DECODE) {
- buf = XDR_INLINE (xdrs, 19 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_vector (xdrs, (char *) objp->tabreg, 19,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- } else {
- {
- register u_int *genp;
+ for (i = 0, genp = objp->tabreg;
+ i < 19; ++i) {
+ IXDR_PUT_U_LONG(buf, *genp++);
+ }
+ }
+ }
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ buf = XDR_INLINE (xdrs, ( 19 ) * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_vector (xdrs, (char *)objp->tabreg, 19,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ } else {
+ {
+ register u_int *genp;
- for (i = 0, genp = objp->tabreg; i < 19; ++i) {
- *genp++ = IXDR_GET_U_LONG (buf);
- }
- }
- }
- return TRUE;
- }
+ for (i = 0, genp = objp->tabreg;
+ i < 19; ++i) {
+ *genp++ = IXDR_GET_U_LONG(buf);
+ }
+ }
+ }
+ return TRUE;
+ }
- if (!xdr_vector (xdrs, (char *) objp->tabreg, 19,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- return TRUE;
+ if (!xdr_vector (xdrs, (char *)objp->tabreg, 19,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ return TRUE;
}
-
- /*
+ /*
* Memory data for read/write text or data. The size is in data. The target
* addr is in the addr field.
* Be careful before modifying because this value goes into internal
* pipes and is allocated on stack too. Pipes and/or the stack could
* become too small if this value gets incremented.
*/
-bool_t
-xdr_xdr_mem (xdrs, objp)
- XDR *xdrs;
- struct xdr_mem *objp;
-{
- if (!xdr_u_long (xdrs, &objp->addr)) {
- return (FALSE);
- }
- if (!xdr_u_int (xdrs, &objp->dataNb)) {
- return (FALSE);
- }
- return (xdr_opaque (xdrs, objp->data, objp->dataNb));
-}
-
-bool_t
-xdr_break_type (XDR * xdrs, break_type * objp)
-{
- register int32_t *buf;
-
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_xdr_break (XDR * xdrs, xdr_break * objp)
-{
- register int32_t *buf;
-
- int i;
-
- if (xdrs->x_op == XDR_ENCODE) {
- if (!xdr_u_char (xdrs, &objp->type))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->thread_spec))
- return FALSE;
- buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_u_short (xdrs, &objp->handle))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->ee_loc))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->ee_type))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->length))
- return FALSE;
-
- } else {
- IXDR_PUT_U_SHORT (buf, objp->handle);
- IXDR_PUT_U_LONG (buf, objp->ee_loc);
- IXDR_PUT_U_LONG (buf, objp->ee_type);
- IXDR_PUT_U_SHORT (buf, objp->length);
- }
- if (!xdr_u_char (xdrs, &objp->pass_count))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->curr_pass))
- return FALSE;
- buf = XDR_INLINE (xdrs, MAX_THRD_BRK * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_vector (xdrs, (char *) objp->thread_list, MAX_THRD_BRK,
- sizeof (u_long), (xdrproc_t) xdr_u_long))
- return FALSE;
- } else {
- {
- register u_long *genp;
-
- for (i = 0, genp = objp->thread_list; i < MAX_THRD_BRK; ++i) {
- IXDR_PUT_U_LONG (buf, *genp++);
- }
- }
- }
- return TRUE;
- } else if (xdrs->x_op == XDR_DECODE) {
- if (!xdr_u_char (xdrs, &objp->type))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->thread_spec))
- return FALSE;
- buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_u_short (xdrs, &objp->handle))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->ee_loc))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->ee_type))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->length))
- return FALSE;
-
- } else {
- objp->handle = IXDR_GET_U_SHORT (buf);
- objp->ee_loc = IXDR_GET_U_LONG (buf);
- objp->ee_type = IXDR_GET_U_LONG (buf);
- objp->length = IXDR_GET_U_SHORT (buf);
- }
- if (!xdr_u_char (xdrs, &objp->pass_count))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->curr_pass))
- return FALSE;
- buf = XDR_INLINE (xdrs, MAX_THRD_BRK * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_vector (xdrs, (char *) objp->thread_list, MAX_THRD_BRK,
- sizeof (u_long), (xdrproc_t) xdr_u_long))
- return FALSE;
- } else {
- {
- register u_long *genp;
-
- for (i = 0, genp = objp->thread_list; i < MAX_THRD_BRK; ++i) {
- *genp++ = IXDR_GET_U_LONG (buf);
- }
- }
- }
- return TRUE;
- }
-
- if (!xdr_u_char (xdrs, &objp->type))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->thread_spec))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->handle))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->ee_loc))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->ee_type))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->length))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->pass_count))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->curr_pass))
- return FALSE;
- if (!xdr_vector (xdrs, (char *) objp->thread_list, MAX_THRD_BRK,
- sizeof (u_long), (xdrproc_t) xdr_u_long))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_thread_name (XDR * xdrs, thread_name * objp)
-{
- register int32_t *buf;
-
- if (!xdr_string (xdrs, objp, THREADNAMEMAX))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_KernThread (XDR * xdrs, KernThread * objp)
-{
- register int32_t *buf;
-
- if (!xdr_u_int (xdrs, &objp->threadLi))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_thread_list (xdrs, objp)
- XDR *xdrs;
- struct thread_list *objp;
-{
- return (xdr_array (xdrs, (char **) &objp->threads, &objp->nbThread,
- UTHREAD_MAX, sizeof (KernThread), xdr_KernThread));
-}
-
-bool_t
-xdr_ptrace_addr_data_in (XDR * xdrs, ptrace_addr_data_in * objp)
-{
- register int32_t *buf;
-
- if (!xdr_ptracereq (xdrs, &objp->req))
- return FALSE;
- switch (objp->req) {
- case RPT_SETTHREADREGS:
- if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_in_u.regs))
- return FALSE;
- break;
- case RPT_SETREGS:
- if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_in_u.regs))
- return FALSE;
- break;
- case RPT_PSETTHREADREGS:
- 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,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- break;
- case RPT_PSETREGS:
- 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,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- break;
- case RPT_SETTHREADNAME:
- if (!xdr_thread_name (xdrs, &objp->ptrace_addr_data_in_u.name))
- return FALSE;
- break;
- case RPT_WRITETEXT:
- if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_in_u.mem))
- return FALSE;
- break;
- case RPT_WRITEDATA:
- if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_in_u.mem))
- return FALSE;
- break;
- case RPT_SETBREAK:
- if (!xdr_xdr_break (xdrs, &objp->ptrace_addr_data_in_u.breakp))
- return FALSE;
- break;
- default:
- if (!xdr_u_int (xdrs, &objp->ptrace_addr_data_in_u.address))
- return FALSE;
- break;
- }
- return TRUE;
-}
-
-bool_t
-xdr_ptrace_addr_data_out (XDR * xdrs, ptrace_addr_data_out * objp)
-{
- register int32_t *buf;
-
- if (!xdr_ptracereq (xdrs, &objp->req))
- return FALSE;
- switch (objp->req) {
- case RPT_GETREGS:
- if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_out_u.regs))
- return FALSE;
- break;
- case RPT_GETTHREADREGS:
- if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_out_u.regs))
- return FALSE;
- break;
- case RPT_PGETREGS:
- 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,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- break;
- case RPT_PGETTHREADREGS:
- 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,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- break;
- case RPT_THREADLIST:
- if (!xdr_thread_list (xdrs, &objp->ptrace_addr_data_out_u.threads))
- return FALSE;
- break;
- case RPT_GETTHREADNAME:
- if (!xdr_thread_name (xdrs, &objp->ptrace_addr_data_out_u.name))
- return FALSE;
- break;
- case RPT_READTEXT:
- if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
- return FALSE;
- break;
- case RPT_GETNAME:
- if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
- return FALSE;
- break;
- case RPT_READDATA:
- if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
- return FALSE;
- break;
- case RPT_GETBREAK:
- if (!xdr_xdr_break (xdrs, &objp->ptrace_addr_data_out_u.breakp))
- return FALSE;
- break;
- default:
- if (!xdr_u_int (xdrs, &objp->ptrace_addr_data_out_u.addr))
- return FALSE;
- break;
- }
- return TRUE;
-}
-
-bool_t
-xdr_CHAR_DATA (XDR * xdrs, CHAR_DATA * objp)
-{
- register int32_t *buf;
-
- if (!xdr_bytes
- (xdrs, (char **) &objp->CHAR_DATA_val, (u_int *) & objp->CHAR_DATA_len,
- NET_SAFE))
- return FALSE;
- return TRUE;
-}
-
-#ifndef XRY_MAX_CMD_STR
-#endif /* REMDEB_H */
-
-bool_t
-xdr_xry_inst (XDR * xdrs, xry_inst * objp)
-{
- register int32_t *buf;
-
- if (!xdr_u_char (xdrs, &objp->flags))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->type))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->sub_type))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->res_type))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->value))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->value2))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_instance (XDR * xdrs, instance * objp)
-{
- register int32_t *buf;
-
- int i;
- if (!xdr_vector (xdrs, (char *) objp->instances, XRY_MAX_INSTANCES,
- sizeof (xry_inst), (xdrproc_t) xdr_xry_inst))
- return FALSE;
- if (!xdr_vector (xdrs, (char *) objp->buffer, XRY_MAX_INST_BUFF,
- sizeof (u_char), (xdrproc_t) xdr_u_char))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_instance_union (XDR * xdrs, instance_union * objp)
-{
- register int32_t *buf;
-
- if (!xdr_bool (xdrs, &objp->instances))
- return FALSE;
- switch (objp->instances) {
- case TRUE:
- if (!xdr_instance (xdrs, &objp->instance_union_u.inst))
- return FALSE;
- break;
- case FALSE:
- if (!xdr_string (xdrs, &objp->instance_union_u.buffer, XRY_MAX_CMD_STR))
- return FALSE;
- break;
- default:
- return FALSE;
- }
- return TRUE;
-}
-
-bool_t
-xdr_one_arg (XDR * xdrs, one_arg * objp)
-{
- register int32_t *buf;
-
- if (!xdr_string (xdrs, objp, NET_SAFE))
- return FALSE;
- return TRUE;
-}
-
- /*
- * now open_connex() routine which establishes a connection to server
- */
-
-bool_t
-xdr_debug_type (XDR * xdrs, debug_type * objp)
-{
- register int32_t *buf;
-
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
-}
-
-#define DEBUGGER_IS_GDB 0x2 /* */
-
-bool_t
-xdr_open_in (XDR * xdrs, open_in * objp)
-{
- register int32_t *buf;
-
- int i;
- if (!xdr_vector (xdrs, (char *) objp->back_port, 16,
- sizeof (u_char), (xdrproc_t) xdr_u_char))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->debug_type))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->flags))
- return FALSE;
- if (!xdr_vector (xdrs, (char *) objp->destination, 16,
- sizeof (u_char), (xdrproc_t) xdr_u_char))
- return FALSE;
- if (!xdr_one_arg (xdrs, &objp->user_name))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_open_out (XDR * xdrs, open_out * objp)
-{
- register int32_t *buf;
-
- int i;
-
- if (xdrs->x_op == XDR_ENCODE) {
- buf = XDR_INLINE (xdrs, (2 + (4)) * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_u_long (xdrs, &objp->port))
- return FALSE;
- if (!xdr_vector (xdrs, (char *) objp->pad, 4,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- if (!xdr_u_int (xdrs, &objp->fp))
- return FALSE;
-
- } else {
- IXDR_PUT_U_LONG (buf, objp->port);
- {
- register u_int *genp;
-
- for (i = 0, genp = objp->pad; i < 4; ++i) {
- IXDR_PUT_U_LONG (buf, *genp++);
- }
- }
- IXDR_PUT_U_LONG (buf, objp->fp);
- }
- if (!xdr_u_char (xdrs, &objp->cmd_table_num))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->server_vers))
- return FALSE;
- return TRUE;
- } else if (xdrs->x_op == XDR_DECODE) {
- buf = XDR_INLINE (xdrs, (2 + (4)) * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_u_long (xdrs, &objp->port))
- return FALSE;
- if (!xdr_vector (xdrs, (char *) objp->pad, 4,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- if (!xdr_u_int (xdrs, &objp->fp))
- return FALSE;
-
- } else {
- objp->port = IXDR_GET_U_LONG (buf);
- {
- register u_int *genp;
-
- for (i = 0, genp = objp->pad; i < 4; ++i) {
- *genp++ = IXDR_GET_U_LONG (buf);
- }
- }
- objp->fp = IXDR_GET_U_LONG (buf);
- }
- if (!xdr_u_char (xdrs, &objp->cmd_table_num))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->server_vers))
- return FALSE;
- return TRUE;
- }
-
- if (!xdr_u_long (xdrs, &objp->port))
- return FALSE;
- if (!xdr_vector (xdrs, (char *) objp->pad, 4,
- sizeof (u_int), (xdrproc_t) xdr_u_int))
- return FALSE;
- if (!xdr_u_int (xdrs, &objp->fp))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->cmd_table_num))
- return FALSE;
- if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
- return FALSE;
- if (!xdr_u_short (xdrs, &objp->server_vers))
- return FALSE;
- return TRUE;
-}
-
- /*
- * now close_connex() routine which detaches from server
- */
-
-bool_t
-xdr_close_control (XDR * xdrs, close_control * objp)
-{
- register int32_t *buf;
-
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_close_in (XDR * xdrs, close_in * objp)
-{
- register int32_t *buf;
-
- if (!xdr_close_control (xdrs, &objp->control))
- return FALSE;
- return TRUE;
-}
-
- /*
- * now send_signal() routine which sends signals to processes like kill(2)
- */
-
-bool_t
-xdr_signal_in (XDR * xdrs, signal_in * objp)
-{
- register int32_t *buf;
-
- if (!xdr_int (xdrs, &objp->pid))
- return FALSE;
- if (!xdr_int (xdrs, &objp->sig))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_signal_out (XDR * xdrs, signal_out * objp)
-{
- register int32_t *buf;
-
- if (!xdr_int (xdrs, &objp->kill_return))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- return TRUE;
-}
-
- /*
- * now wait_info() routine which returns results of polling the wait status
- * of a process/actor. It may return 0 if running, else pid or -1
- */
-
-bool_t
-xdr_stop_code (XDR * xdrs, stop_code * objp)
-{
- register int32_t *buf;
-
- if (!xdr_enum (xdrs, (enum_t *) objp))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_wait_in (XDR * xdrs, wait_in * objp)
-{
- register int32_t *buf;
-
- if (!xdr_int (xdrs, &objp->pid))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_wait_out (XDR * xdrs, wait_out * objp)
-{
- register int32_t *buf;
-
- if (xdrs->x_op == XDR_ENCODE) {
- buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_int (xdrs, &objp->wait_return))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- if (!xdr_int (xdrs, &objp->status))
- return FALSE;
-
- } else {
- IXDR_PUT_LONG (buf, objp->wait_return);
- IXDR_PUT_LONG (buf, objp->errNo);
- IXDR_PUT_LONG (buf, objp->status);
- }
- if (!xdr_stop_code (xdrs, &objp->reason))
- return FALSE;
- buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_int (xdrs, &objp->handle))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->PC))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->SP))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->FP))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->thread))
- return FALSE;
- } else {
- IXDR_PUT_LONG (buf, objp->handle);
- IXDR_PUT_U_LONG (buf, objp->PC);
- IXDR_PUT_U_LONG (buf, objp->SP);
- IXDR_PUT_U_LONG (buf, objp->FP);
- IXDR_PUT_U_LONG (buf, objp->thread);
- }
- return TRUE;
- } else if (xdrs->x_op == XDR_DECODE) {
- buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_int (xdrs, &objp->wait_return))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- if (!xdr_int (xdrs, &objp->status))
- return FALSE;
-
- } else {
- objp->wait_return = IXDR_GET_LONG (buf);
- objp->errNo = IXDR_GET_LONG (buf);
- objp->status = IXDR_GET_LONG (buf);
- }
- if (!xdr_stop_code (xdrs, &objp->reason))
- return FALSE;
- buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_int (xdrs, &objp->handle))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->PC))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->SP))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->FP))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->thread))
- return FALSE;
- } else {
- objp->handle = IXDR_GET_LONG (buf);
- objp->PC = IXDR_GET_U_LONG (buf);
- objp->SP = IXDR_GET_U_LONG (buf);
- objp->FP = IXDR_GET_U_LONG (buf);
- objp->thread = IXDR_GET_U_LONG (buf);
- }
- return TRUE;
- }
-
- if (!xdr_int (xdrs, &objp->wait_return))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- if (!xdr_int (xdrs, &objp->status))
- return FALSE;
- if (!xdr_stop_code (xdrs, &objp->reason))
- return FALSE;
- if (!xdr_int (xdrs, &objp->handle))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->PC))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->SP))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->FP))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->thread))
- return FALSE;
- return TRUE;
-}
-
- /*
- * now ptrace() routine. This matches the Sun UNIX ptrace as well as
- * some additions
- */
-
-bool_t
-xdr_ptrace_in (XDR * xdrs, ptrace_in * objp)
-{
- register int32_t *buf;
-
- if (!xdr_int (xdrs, &objp->pid))
- return FALSE;
- if (!xdr_ptrace_addr_data_in (xdrs, &objp->addr))
- return FALSE;
- if (!xdr_u_int (xdrs, &objp->data))
- return FALSE;
- if (!xdr_u_int (xdrs, &objp->flags))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_ptrace_out (XDR * xdrs, ptrace_out * objp)
-{
- register int32_t *buf;
-
- if (!xdr_ptrace_addr_data_out (xdrs, &objp->addr))
- return FALSE;
- if (!xdr_int (xdrs, &objp->result))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- return TRUE;
-}
+bool_t xdr_xdr_mem(xdrs, objp)
+ XDR *xdrs;
+ struct xdr_mem *objp;
+{
+ if (!xdr_u_long(xdrs, &objp->addr)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->dataNb)) {
+ return(FALSE);
+ }
+ return (xdr_opaque(xdrs, objp->data, objp->dataNb));
+}
+
+bool_t
+xdr_break_type (XDR *xdrs, break_type *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_xdr_break (XDR *xdrs, xdr_break *objp)
+{
+ register int32_t *buf;
+
+ int i;
+
+ if (xdrs->x_op == XDR_ENCODE) {
+ if (!xdr_u_char (xdrs, &objp->type))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->thread_spec))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_u_short (xdrs, &objp->handle))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->ee_loc))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->ee_type))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->length))
+ return FALSE;
+
+ } else {
+ IXDR_PUT_U_SHORT(buf, objp->handle);
+ IXDR_PUT_U_LONG(buf, objp->ee_loc);
+ IXDR_PUT_U_LONG(buf, objp->ee_type);
+ IXDR_PUT_U_SHORT(buf, objp->length);
+ }
+ if (!xdr_u_char (xdrs, &objp->pass_count))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->curr_pass))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, ( MAX_THRD_BRK ) * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_vector (xdrs, (char *)objp->thread_list, MAX_THRD_BRK,
+ sizeof (u_long), (xdrproc_t) xdr_u_long))
+ return FALSE;
+ } else {
+ {
+ register u_long *genp;
+
+ for (i = 0, genp = objp->thread_list;
+ i < MAX_THRD_BRK; ++i) {
+ IXDR_PUT_U_LONG(buf, *genp++);
+ }
+ }
+ }
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ if (!xdr_u_char (xdrs, &objp->type))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->thread_spec))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_u_short (xdrs, &objp->handle))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->ee_loc))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->ee_type))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->length))
+ return FALSE;
+
+ } else {
+ objp->handle = IXDR_GET_U_SHORT(buf);
+ objp->ee_loc = IXDR_GET_U_LONG(buf);
+ objp->ee_type = IXDR_GET_U_LONG(buf);
+ objp->length = IXDR_GET_U_SHORT(buf);
+ }
+ if (!xdr_u_char (xdrs, &objp->pass_count))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->curr_pass))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, ( MAX_THRD_BRK ) * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_vector (xdrs, (char *)objp->thread_list, MAX_THRD_BRK,
+ sizeof (u_long), (xdrproc_t) xdr_u_long))
+ return FALSE;
+ } else {
+ {
+ register u_long *genp;
+
+ for (i = 0, genp = objp->thread_list;
+ i < MAX_THRD_BRK; ++i) {
+ *genp++ = IXDR_GET_U_LONG(buf);
+ }
+ }
+ }
+ return TRUE;
+ }
+
+ if (!xdr_u_char (xdrs, &objp->type))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->thread_spec))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->handle))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->ee_loc))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->ee_type))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->length))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->pass_count))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->curr_pass))
+ return FALSE;
+ if (!xdr_vector (xdrs, (char *)objp->thread_list, MAX_THRD_BRK,
+ sizeof (u_long), (xdrproc_t) xdr_u_long))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_thread_name (XDR *xdrs, thread_name *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_string (xdrs, objp, THREADNAMEMAX))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_KernThread (XDR *xdrs, KernThread *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_u_int (xdrs, &objp->threadLi))
+ return FALSE;
+ return TRUE;
+}
+bool_t xdr_thread_list(xdrs, objp)
+ XDR *xdrs;
+ struct thread_list *objp;
+{
+ return (xdr_array(xdrs, (char**)&objp->threads, &objp->nbThread,
+ UTHREAD_MAX, sizeof(KernThread), xdr_KernThread));
+}
+
+bool_t
+xdr_ptrace_addr_data_in (XDR *xdrs, ptrace_addr_data_in *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_ptracereq (xdrs, &objp->req))
+ return FALSE;
+ switch (objp->req) {
+ case RPT_SETTHREADREGS:
+ if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_in_u.regs))
+ return FALSE;
+ break;
+ case RPT_SETREGS:
+ if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_in_u.regs))
+ return FALSE;
+ break;
+ case RPT_PSETTHREADREGS:
+ 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,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ break;
+ case RPT_PSETREGS:
+ 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,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ break;
+ case RPT_SETTHREADNAME:
+ if (!xdr_thread_name (xdrs, &objp->ptrace_addr_data_in_u.name))
+ return FALSE;
+ break;
+ case RPT_WRITETEXT:
+ if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_in_u.mem))
+ return FALSE;
+ break;
+ case RPT_WRITEDATA:
+ if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_in_u.mem))
+ return FALSE;
+ break;
+ case RPT_SETBREAK:
+ if (!xdr_xdr_break (xdrs, &objp->ptrace_addr_data_in_u.breakp))
+ return FALSE;
+ break;
+ default:
+ if (!xdr_u_int (xdrs, &objp->ptrace_addr_data_in_u.address))
+ return FALSE;
+ break;
+ }
+ return TRUE;
+}
+
+bool_t
+xdr_ptrace_addr_data_out (XDR *xdrs, ptrace_addr_data_out *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_ptracereq (xdrs, &objp->req))
+ return FALSE;
+ switch (objp->req) {
+ case RPT_GETREGS:
+ if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_out_u.regs))
+ return FALSE;
+ break;
+ case RPT_GETTHREADREGS:
+ if (!xdr_xdr_regs (xdrs, &objp->ptrace_addr_data_out_u.regs))
+ return FALSE;
+ break;
+ case RPT_PGETREGS:
+ 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,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ break;
+ case RPT_PGETTHREADREGS:
+ 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,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ break;
+ case RPT_THREADLIST:
+ if (!xdr_thread_list (xdrs, &objp->ptrace_addr_data_out_u.threads))
+ return FALSE;
+ break;
+ case RPT_GETTHREADNAME:
+ if (!xdr_thread_name (xdrs, &objp->ptrace_addr_data_out_u.name))
+ return FALSE;
+ break;
+ case RPT_READTEXT:
+ if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
+ return FALSE;
+ break;
+ case RPT_GETNAME:
+ if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
+ return FALSE;
+ break;
+ case RPT_READDATA:
+ if (!xdr_xdr_mem (xdrs, &objp->ptrace_addr_data_out_u.mem))
+ return FALSE;
+ break;
+ case RPT_GETBREAK:
+ if (!xdr_xdr_break (xdrs, &objp->ptrace_addr_data_out_u.breakp))
+ return FALSE;
+ break;
+ default:
+ if (!xdr_u_int (xdrs, &objp->ptrace_addr_data_out_u.addr))
+ return FALSE;
+ break;
+ }
+ return TRUE;
+}
+
+bool_t
+xdr_CHAR_DATA (XDR *xdrs, CHAR_DATA *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_bytes (xdrs, (char **)&objp->CHAR_DATA_val, (u_int *) &objp->CHAR_DATA_len, NET_SAFE))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_one_arg (XDR *xdrs, one_arg *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_string (xdrs, objp, NET_SAFE))
+ return FALSE;
+ return TRUE;
+}
+ /* now open_connex() routine which establishes a connection to server */
+
+bool_t
+xdr_debug_type (XDR *xdrs, debug_type *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
+}
+#define DEBUGGER_IS_GDB 0x2 /* */
+
+bool_t
+xdr_open_in (XDR *xdrs, open_in *objp)
+{
+ register int32_t *buf;
+
+ int i;
+ if (!xdr_vector (xdrs, (char *)objp->back_port, 16,
+ sizeof (u_char), (xdrproc_t) xdr_u_char))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->debug_type))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->flags))
+ return FALSE;
+ if (!xdr_vector (xdrs, (char *)objp->destination, 16,
+ sizeof (u_char), (xdrproc_t) xdr_u_char))
+ return FALSE;
+ if (!xdr_one_arg (xdrs, &objp->user_name))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_open_out (XDR *xdrs, open_out *objp)
+{
+ register int32_t *buf;
+
+ int i;
+
+ if (xdrs->x_op == XDR_ENCODE) {
+ buf = XDR_INLINE (xdrs, (2 + ( 4 )) * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_u_long (xdrs, &objp->port))
+ return FALSE;
+ if (!xdr_vector (xdrs, (char *)objp->pad, 4,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fp))
+ return FALSE;
+
+ } else {
+ IXDR_PUT_U_LONG(buf, objp->port);
+ {
+ register u_int *genp;
-bool_t
-xdr_one_symbol (XDR * xdrs, one_symbol * objp)
-{
- register int32_t *buf;
+ for (i = 0, genp = objp->pad;
+ i < 4; ++i) {
+ IXDR_PUT_U_LONG(buf, *genp++);
+ }
+ }
+ IXDR_PUT_U_LONG(buf, objp->fp);
+ }
+ if (!xdr_u_char (xdrs, &objp->cmd_table_num))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->server_vers))
+ return FALSE;
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ buf = XDR_INLINE (xdrs, (2 + ( 4 )) * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_u_long (xdrs, &objp->port))
+ return FALSE;
+ if (!xdr_vector (xdrs, (char *)objp->pad, 4,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fp))
+ return FALSE;
- if (!xdr_string (xdrs, &objp->symbolName, ~0))
- return FALSE;
- if (!xdr_long (xdrs, &objp->symbolValue))
- return FALSE;
- return TRUE;
-}
+ } else {
+ objp->port = IXDR_GET_U_LONG(buf);
+ {
+ register u_int *genp;
-bool_t
-xdr_all_symbols (XDR * xdrs, all_symbols * objp)
-{
- register int32_t *buf;
+ for (i = 0, genp = objp->pad;
+ i < 4; ++i) {
+ *genp++ = IXDR_GET_U_LONG(buf);
+ }
+ }
+ objp->fp = IXDR_GET_U_LONG(buf);
+ }
+ if (!xdr_u_char (xdrs, &objp->cmd_table_num))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->server_vers))
+ return FALSE;
+ return TRUE;
+ }
- if (!xdr_array
- (xdrs, (char **) &objp->all_symbols_val,
- (u_int *) & objp->all_symbols_len, ~0, sizeof (one_symbol),
- (xdrproc_t) xdr_one_symbol))
- return FALSE;
- return TRUE;
+ if (!xdr_u_long (xdrs, &objp->port))
+ return FALSE;
+ if (!xdr_vector (xdrs, (char *)objp->pad, 4,
+ sizeof (u_int), (xdrproc_t) xdr_u_int))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fp))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->cmd_table_num))
+ return FALSE;
+ if (!xdr_u_char (xdrs, &objp->cmd_table_vers))
+ return FALSE;
+ if (!xdr_u_short (xdrs, &objp->server_vers))
+ return FALSE;
+ return TRUE;
+}
+ /* now close_connex() routine which detaches from server */
+
+bool_t
+xdr_close_control (XDR *xdrs, close_control *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_close_in (XDR *xdrs, close_in *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_close_control (xdrs, &objp->control))
+ return FALSE;
+ return TRUE;
+}
+ /* now send_signal() routine which sends signals to processes like kill(2) */
+
+bool_t
+xdr_signal_in (XDR *xdrs, signal_in *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_int (xdrs, &objp->pid))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->sig))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_signal_out (XDR *xdrs, signal_out *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_int (xdrs, &objp->kill_return))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ return TRUE;
+}
+ /* now wait_info() routine which returns results of polling the wait status
+ of a process/actor. It may return 0 if running, else pid or -1 */
+
+bool_t
+xdr_stop_code (XDR *xdrs, stop_code *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_wait_in (XDR *xdrs, wait_in *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_int (xdrs, &objp->pid))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_wait_out (XDR *xdrs, wait_out *objp)
+{
+ register int32_t *buf;
+
+
+ if (xdrs->x_op == XDR_ENCODE) {
+ buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->wait_return))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+
+ } else {
+ IXDR_PUT_LONG(buf, objp->wait_return);
+ IXDR_PUT_LONG(buf, objp->errNo);
+ IXDR_PUT_LONG(buf, objp->status);
+ }
+ if (!xdr_stop_code (xdrs, &objp->reason))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->handle))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->PC))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->SP))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->FP))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->thread))
+ return FALSE;
+ } else {
+ IXDR_PUT_LONG(buf, objp->handle);
+ IXDR_PUT_U_LONG(buf, objp->PC);
+ IXDR_PUT_U_LONG(buf, objp->SP);
+ IXDR_PUT_U_LONG(buf, objp->FP);
+ IXDR_PUT_U_LONG(buf, objp->thread);
+ }
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->wait_return))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+
+ } else {
+ objp->wait_return = IXDR_GET_LONG(buf);
+ objp->errNo = IXDR_GET_LONG(buf);
+ objp->status = IXDR_GET_LONG(buf);
+ }
+ if (!xdr_stop_code (xdrs, &objp->reason))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->handle))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->PC))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->SP))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->FP))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->thread))
+ return FALSE;
+ } else {
+ objp->handle = IXDR_GET_LONG(buf);
+ objp->PC = IXDR_GET_U_LONG(buf);
+ objp->SP = IXDR_GET_U_LONG(buf);
+ objp->FP = IXDR_GET_U_LONG(buf);
+ objp->thread = IXDR_GET_U_LONG(buf);
+ }
+ return TRUE;
+ }
+
+ if (!xdr_int (xdrs, &objp->wait_return))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->status))
+ return FALSE;
+ if (!xdr_stop_code (xdrs, &objp->reason))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->handle))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->PC))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->SP))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->FP))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->thread))
+ return FALSE;
+ return TRUE;
+}
+ /* now ptrace() routine. This matches the Sun UNIX ptrace as well as
+ some additions */
+
+bool_t
+xdr_ptrace_in (XDR *xdrs, ptrace_in *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_int (xdrs, &objp->pid))
+ return FALSE;
+ if (!xdr_ptrace_addr_data_in (xdrs, &objp->addr))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->data))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->flags))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_ptrace_out (XDR *xdrs, ptrace_out *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_ptrace_addr_data_out (xdrs, &objp->addr))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->result))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_one_symbol (XDR *xdrs, one_symbol *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_string (xdrs, &objp->symbolName, ~0))
+ return FALSE;
+ if (!xdr_long (xdrs, &objp->symbolValue))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_all_symbols (XDR *xdrs, all_symbols *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_array (xdrs, (char **)&objp->all_symbols_val, (u_int *) &objp->all_symbols_len, ~0,
+ sizeof (one_symbol), (xdrproc_t) xdr_one_symbol))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_get_global_symbols_out (XDR *xdrs, get_global_symbols_out *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_all_symbols (xdrs, &objp->symbols))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_get_text_data_in (XDR *xdrs, get_text_data_in *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_int (xdrs, &objp->pid))
+ return FALSE;
+ if (!xdr_string (xdrs, &objp->actorName, 16))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_get_global_symbols_out (XDR * xdrs, get_global_symbols_out * objp)
+xdr_get_text_data_out (XDR *xdrs, get_text_data_out *objp)
{
- register int32_t *buf;
+ register int32_t *buf;
- if (!xdr_all_symbols (xdrs, &objp->symbols))
- return FALSE;
- return TRUE;
-}
-bool_t
-xdr_get_text_data_in (XDR * xdrs, get_text_data_in * objp)
-{
- register int32_t *buf;
+ if (xdrs->x_op == XDR_ENCODE) {
+ buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->result))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->textStart))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->textSize))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->dataStart))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->dataSize))
+ return FALSE;
+ } else {
+ IXDR_PUT_LONG(buf, objp->result);
+ IXDR_PUT_LONG(buf, objp->errNo);
+ IXDR_PUT_U_LONG(buf, objp->textStart);
+ IXDR_PUT_U_LONG(buf, objp->textSize);
+ IXDR_PUT_U_LONG(buf, objp->dataStart);
+ IXDR_PUT_U_LONG(buf, objp->dataSize);
+ }
+ return TRUE;
+ } else if (xdrs->x_op == XDR_DECODE) {
+ buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
+ if (buf == NULL) {
+ if (!xdr_int (xdrs, &objp->result))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->textStart))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->textSize))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->dataStart))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->dataSize))
+ return FALSE;
+ } else {
+ objp->result = IXDR_GET_LONG(buf);
+ objp->errNo = IXDR_GET_LONG(buf);
+ objp->textStart = IXDR_GET_U_LONG(buf);
+ objp->textSize = IXDR_GET_U_LONG(buf);
+ objp->dataStart = IXDR_GET_U_LONG(buf);
+ objp->dataSize = IXDR_GET_U_LONG(buf);
+ }
+ return TRUE;
+ }
- if (!xdr_int (xdrs, &objp->pid))
- return FALSE;
- if (!xdr_string (xdrs, &objp->actorName, 16))
- return FALSE;
- return TRUE;
+ if (!xdr_int (xdrs, &objp->result))
+ return FALSE;
+ if (!xdr_int (xdrs, &objp->errNo))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->textStart))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->textSize))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->dataStart))
+ return FALSE;
+ if (!xdr_u_long (xdrs, &objp->dataSize))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_get_text_data_out (XDR * xdrs, get_text_data_out * objp)
-{
- register int32_t *buf;
-
- if (xdrs->x_op == XDR_ENCODE) {
- buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_int (xdrs, &objp->result))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->textStart))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->textSize))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->dataStart))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->dataSize))
- return FALSE;
- } else {
- IXDR_PUT_LONG (buf, objp->result);
- IXDR_PUT_LONG (buf, objp->errNo);
- IXDR_PUT_U_LONG (buf, objp->textStart);
- IXDR_PUT_U_LONG (buf, objp->textSize);
- IXDR_PUT_U_LONG (buf, objp->dataStart);
- IXDR_PUT_U_LONG (buf, objp->dataSize);
- }
- return TRUE;
- } else if (xdrs->x_op == XDR_DECODE) {
- buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
- if (buf == NULL) {
- if (!xdr_int (xdrs, &objp->result))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->textStart))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->textSize))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->dataStart))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->dataSize))
- return FALSE;
- } else {
- objp->result = IXDR_GET_LONG (buf);
- objp->errNo = IXDR_GET_LONG (buf);
- objp->textStart = IXDR_GET_U_LONG (buf);
- objp->textSize = IXDR_GET_U_LONG (buf);
- objp->dataStart = IXDR_GET_U_LONG (buf);
- objp->dataSize = IXDR_GET_U_LONG (buf);
- }
- return TRUE;
- }
-
- if (!xdr_int (xdrs, &objp->result))
- return FALSE;
- if (!xdr_int (xdrs, &objp->errNo))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->textStart))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->textSize))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->dataStart))
- return FALSE;
- if (!xdr_u_long (xdrs, &objp->dataSize))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_one_signal (XDR * xdrs, one_signal * objp)
+xdr_one_signal (XDR *xdrs, one_signal *objp)
{
- register int32_t *buf;
+ register int32_t *buf;
- if (!xdr_u_int (xdrs, &objp->number))
- return FALSE;
- if (!xdr_string (xdrs, &objp->name, ~0))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_all_signals (XDR * xdrs, all_signals * objp)
-{
- register int32_t *buf;
-
- if (!xdr_array
- (xdrs, (char **) &objp->all_signals_val,
- (u_int *) & objp->all_signals_len, ~0, sizeof (one_signal),
- (xdrproc_t) xdr_one_signal))
- return FALSE;
- return TRUE;
-}
-
-bool_t
-xdr_get_signal_names_out (XDR * xdrs, get_signal_names_out * objp)
-{
- register int32_t *buf;
-
- if (!xdr_all_signals (xdrs, &objp->signals))
- return FALSE;
- return TRUE;
-}
-
- /*
- * now define the actual calls we support
- */
+ if (!xdr_u_int (xdrs, &objp->number))
+ return FALSE;
+ if (!xdr_string (xdrs, &objp->name, ~0))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_all_signals (XDR *xdrs, all_signals *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_array (xdrs, (char **)&objp->all_signals_val, (u_int *) &objp->all_signals_len, ~0,
+ sizeof (one_signal), (xdrproc_t) xdr_one_signal))
+ return FALSE;
+ return TRUE;
+}
+
+bool_t
+xdr_get_signal_names_out (XDR *xdrs, get_signal_names_out *objp)
+{
+ register int32_t *buf;
+
+ if (!xdr_all_signals (xdrs, &objp->signals))
+ return FALSE;
+ return TRUE;
+}
+ /* now define the actual calls we support */