1 /* xdr_regs.c - xdr routines for 68k registers */
3 /* Copyright 1984,1985,1986,1987,1988,1989 Wind River Systems, Inc. */
7 This module contains the eXternal Data Representation (XDR) routines
8 for the GDB interface for VxWorks.
18 /*******************************************************************************
20 * xdr_regs - xdr routine for i960 registers
23 bool_t
xdr_regs (xdrs
, objp
)
28 if (! xdr_opaque(xdrs
, (char *) objp
->r_lreg
, 16 * sizeof(int)))
30 if (! xdr_opaque(xdrs
, (char *) objp
->r_greg
, 16 * sizeof(int)))
32 if (! xdr_opaque(xdrs
, (char *) &objp
->r_pcw
, sizeof(int)))
34 if (! xdr_opaque(xdrs
, (char *) &objp
->r_acw
, sizeof(int)))
36 if (! xdr_opaque(xdrs
, (char *) &objp
->r_tcw
, sizeof(int)))
42 /*******************************************************************************
44 * xdr_fp_status - xdr routine for i960 floating point registers
47 bool_t
xdr_fp_status (xdrs
, objp
)
49 struct fp_status
*objp
;
52 unsigned int size
= 4 * FP_REG_SIZE
;
54 /* We use xdr_bytes to indicate how many bytes of FP regs there are! */
55 if (! xdr_bytes (xdrs
, (char *) objp
->fps_regs
, &size
, 4 * FP_REG_SIZE
))
60 /*******************************************************************************
62 * xdr_ext_fp - xdr for a single fp register
65 bool_t
xdr_ext_fp (xdrs
, objp
)
70 unsigned int size
= FP_REG_SIZE
;
72 if (! xdr_bytes (xdrs
, objp
, &size
, FP_REG_SIZE
))
77 #else /* Must be 68K if it isn't i960 -- for now. FIXME! */
79 /*******************************************************************************
81 * xdr_regs - xdr routine for 68k registers
84 bool_t
xdr_regs (xdrs
, objp
)
89 if (! xdr_opaque(xdrs
, (char *) objp
->r_dreg
, 8 * sizeof(int)))
91 if (! xdr_opaque(xdrs
, (char *) objp
->r_areg
, 8 * sizeof(int)))
93 if (! xdr_opaque(xdrs
, (char *) &objp
->r_sr
, sizeof(int)))
95 if (! xdr_opaque(xdrs
, (char *) &objp
->r_pc
, sizeof(int)))
101 /*******************************************************************************
103 * xdr_ext_fp - xdr for a single fp register
106 bool_t
xdr_ext_fp (xdrs
, objp
)
111 if (! xdr_vector(xdrs
, (char *) objp
->fp
, 3, sizeof(int), xdr_int
))
116 /*******************************************************************************
118 * xdr_fp_status - xdr routine for floating point registers
121 bool_t
xdr_fp_status (xdrs
, objp
)
123 struct fp_status
*objp
;
126 if (! xdr_vector (xdrs
, (char *) objp
->fps_regs
, 8,
127 sizeof(ext_fp
), xdr_ext_fp
))
129 if (! xdr_int (xdrs
, &objp
->fps_control
))
131 if (! xdr_int (xdrs
, &objp
->fps_status
))
133 if (! xdr_int (xdrs
, &objp
->fps_iaddr
))
135 if (! xdr_int (xdrs
, &objp
->fps_code
))
137 if (! xdr_int (xdrs
, &objp
->fps_flags
))
142 /*******************************************************************************
144 * xdr_fpa_status - xdr for fpa status
147 bool_t
xdr_fpa_status (xdrs
, objp
)
149 struct fpa_status
*objp
;
152 if (! xdr_u_int (xdrs
, &objp
->fpas_state
))
154 if (! xdr_u_int (xdrs
, &objp
->fpas_imask
))
156 if (! xdr_u_int (xdrs
, &objp
->fpas_load_ptr
))
158 if (! xdr_u_int (xdrs
, &objp
->fpas_ierr
))
160 if (! xdr_u_int (xdrs
, &objp
->fpas_act_instr
))
162 if (! xdr_u_int (xdrs
, &objp
->fpas_nxt_instr
))
164 if (! xdr_u_int (xdrs
, &objp
->fpas_act_d1half
))
166 if (! xdr_u_int (xdrs
, &objp
->fpas_act_d2half
))
168 if (! xdr_u_int (xdrs
, &objp
->fpas_nxt_d1half
))
170 if (! xdr_u_int (xdrs
, &objp
->fpas_nxt_d2half
))
172 if (! xdr_u_int (xdrs
, &objp
->fpas_mode3_0
))
174 if (! xdr_u_int (xdrs
, &objp
->fpas_wstatus
))
179 /*******************************************************************************
181 * xdr_fpa_long - xdr for fpa data register
184 bool_t
xdr_fpa_long (xdrs
,objp
)
189 if (! xdr_vector (xdrs
, (char *) objp
->fpl_data
, 2, sizeof(int), xdr_int
))
194 /*******************************************************************************
196 * xdr_fpa_regs - xdr for fpa_regs
199 bool_t
xdr_fpa_regs (xdrs
, objp
)
201 struct fpa_regs
*objp
;
204 if (! xdr_u_int (xdrs
, &objp
->fpar_flags
))
206 if (! xdr_fpa_status (xdrs
, &objp
->fpar_status
))
208 if (! xdr_vector (xdrs
, (char *) objp
->fpar_data
,
209 FPA_NDATA_REGS
, sizeof(fpa_long
), xdr_fpa_long
))
This page took 0.033991 seconds and 4 git commands to generate.