URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k/trunk/gdb-5.0/gdb/vx-share
- from Rev 107 to Rev 1765
- ↔ Reverse comparison
Rev 107 → Rev 1765
/xdr_ptrace.h
0,0 → 1,72
/* xdr_ptrace.h - xdr header for remote ptrace structures */ |
|
/* Copyright 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01b,25may91,maf now uses counted bytes struct to transfer registers; |
removed references to old xdr_regs functions. |
removed includes of "xdr_regs.h" and "reg.h". |
01a,05jun90,llk extracted from xdr_ptrace.h. |
*/ |
|
|
/* |
* Counted byte structure used by READ/WRITE TEXT/DATA |
* and GET/SET REGS/FPREGS |
*/ |
struct c_bytes { |
u_int len; |
caddr_t bytes; |
}; |
typedef struct c_bytes C_bytes; |
|
/* |
* enum for discriminated union ptrace_info |
*/ |
enum ptype { |
NOINFO = 0, /* no additional infomation */ |
DATA = 1 /* c_bytes */ |
}; |
typedef enum ptype ptype; |
|
/* |
* discrimnated union for passing additional data to be |
* written to the debugged process. |
*/ |
struct ptrace_info { |
ptype ttype; |
caddr_t more_data; |
}; |
typedef struct ptrace_info Ptrace_info; |
|
/* |
* structure passed to server on all remote ptrace calls |
*/ |
struct rptrace { |
int pid; |
int data; |
int addr; /* FIX! this really should be caddr_t or something */ |
Ptrace_info info; |
}; |
typedef struct rptrace Rptrace; |
|
/* |
* structure returned by server on all remote ptrace calls |
*/ |
/* This used to have a field called errno, but that fails on hosts which |
define errno to be a macro, so it was changed to errno_num. */ |
struct ptrace_return { |
int status; |
int errno_num; |
Ptrace_info info; |
}; |
typedef struct ptrace_return Ptrace_return; |
|
bool_t xdr_c_bytes(); |
bool_t xdr_ptrace_info(); |
bool_t xdr_rptrace(); |
bool_t xdr_ptrace_return(); |
/xdr_ld.h
0,0 → 1,45
/* xdr_ld.h - xdr for additional dbxWorks structures */ |
|
/* Copyright 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01a,05jun90,llk extracted from xdr_dbx.h. |
*/ |
|
#ifndef INCxdrldh |
#define INCxdrldh |
|
#define MAXSTRLEN 256 |
#define MAXTBLSZ 100 |
|
/* |
* structure used to pass back the information for a single file |
* loaded in VxWorks |
*/ |
struct ldfile { |
char *name; |
int txt_addr; |
int data_addr; |
int bss_addr; |
}; |
typedef struct ldfile ldfile; |
|
/* |
* structure used to return a list of all files loaded over to |
* VxWorks. (VX_STATE_INQ return) |
*/ |
struct ldtabl { |
u_int tbl_size; |
ldfile *tbl_ent; |
}; |
typedef struct ldtabl ldtabl; |
|
|
bool_t xdr_ldfile(); |
bool_t xdr_ldtabl(); |
|
#endif INCxdrldh |
/ptrace.h
0,0 → 1,44
/* @(#)ptrace.h 1.1 86/07/07 SMI */ |
|
/* |
* Copyright (c) 1985 by Sun Microsystems, Inc. |
*/ |
|
/* |
modification history |
-------------------- |
01a,05jun90,llk borrowed. |
*/ |
|
#ifndef _PTRACE_ |
#define _PTRACE_ |
|
/* |
* Request values for the ptrace system call |
*/ |
enum ptracereq { |
PTRACE_TRACEME = 0, /* 0, by tracee to begin tracing */ |
PTRACE_CHILDDONE = 0, /* 0, tracee is done with his half */ |
PTRACE_PEEKTEXT, /* 1, read word from text segment */ |
PTRACE_PEEKDATA, /* 2, read word from data segment */ |
PTRACE_PEEKUSER, /* 3, read word from user struct */ |
PTRACE_POKETEXT, /* 4, write word into text segment */ |
PTRACE_POKEDATA, /* 5, write word into data segment */ |
PTRACE_POKEUSER, /* 6, write word into user struct */ |
PTRACE_CONT, /* 7, continue process */ |
PTRACE_KILL, /* 8, terminate process */ |
PTRACE_SINGLESTEP, /* 9, single step process */ |
PTRACE_ATTACH, /* 10, attach to an existing process */ |
PTRACE_DETACH, /* 11, detach from a process */ |
PTRACE_GETREGS, /* 12, get all registers */ |
PTRACE_SETREGS, /* 13, set all registers */ |
PTRACE_GETFPREGS, /* 14, get all floating point regs */ |
PTRACE_SETFPREGS, /* 15, set all floating point regs */ |
PTRACE_READDATA, /* 16, read data segment */ |
PTRACE_WRITEDATA, /* 17, write data segment */ |
PTRACE_READTEXT, /* 18, read text segment */ |
PTRACE_WRITETEXT, /* 19, write text segment */ |
PTRACE_GETFPAREGS, /* 20, get all fpa regs */ |
PTRACE_SETFPAREGS /* 21, set all fpa regs */ |
}; |
#endif !_PTRACE |
/xdr_rdb.c
0,0 → 1,212
/* xdr_rdb.c - xdr routines for Remote Debug interface to VxWorks */ |
|
/* Copyright 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01a,21mar90,llk created using modification 01d of xdr_dbx.c. |
*/ |
|
/* |
DESCRIPTION |
This module contains the eXternal Data Representation (XDR) routines |
for the RDB interface for VxWorks. |
*/ |
|
#include "defs.h" |
#include "vxWorks.h" |
#include <rpc/rpc.h> |
#include "xdr_rdb.h" |
|
/* forward declarations */ |
|
bool_t |
xdr_arg_type(xdrs, objp) |
XDR *xdrs; |
arg_type *objp; |
{ |
if (!xdr_enum(xdrs, (enum_t *)objp)) { |
return (FALSE); |
} |
return (TRUE); |
} |
|
bool_t |
xdr_arg_value(xdrs, objp) |
XDR *xdrs; |
arg_value *objp; |
{ |
if (!xdr_arg_type(xdrs, &objp->type)) { |
return (FALSE); |
} |
switch (objp->type) { |
case T_BYTE: |
if (!xdr_char(xdrs, &objp->arg_value_u.v_byte)) { |
return (FALSE); |
} |
break; |
case T_WORD: |
if (!xdr_short(xdrs, &objp->arg_value_u.v_word)) { |
return (FALSE); |
} |
break; |
case T_INT: |
if (!xdr_int(xdrs, &objp->arg_value_u.v_int)) { |
return (FALSE); |
} |
break; |
case T_FLOAT: |
if (!xdr_float(xdrs, &objp->arg_value_u.v_fp)) { |
return (FALSE); |
} |
break; |
case T_DOUBLE: |
if (!xdr_double(xdrs, &objp->arg_value_u.v_dp)) { |
return (FALSE); |
} |
break; |
case T_UNKNOWN: |
break; |
} |
return (TRUE); |
} |
|
bool_t |
xdr_func_call(xdrs, objp) |
XDR *xdrs; |
func_call *objp; |
{ |
if (!xdr_int(xdrs, &objp->func_addr)) { |
return (FALSE); |
} |
if (!xdr_array(xdrs, (char **)&objp->args.args_val, (u_int *)&objp->args.args_len, MAX_FUNC_ARGS, sizeof(arg_value), xdr_arg_value)) { |
return (FALSE); |
} |
return (TRUE); |
} |
|
bool_t |
xdr_arg_one(xdrs, objp) |
XDR *xdrs; |
arg_one *objp; |
{ |
if (!xdr_string(xdrs, objp, MAX_ARG_LEN)) { |
return (FALSE); |
} |
return (TRUE); |
} |
|
|
|
|
bool_t |
xdr_arg_array(xdrs, objp) |
XDR *xdrs; |
arg_array *objp; |
{ |
if (!xdr_array(xdrs, (char **)&objp->arg_array_val, (u_int *)&objp->arg_array_len, MAX_ARG_CNT, sizeof(arg_one), xdr_arg_one)) { |
return (FALSE); |
} |
return (TRUE); |
} |
|
/********************************************************************* |
* |
* xdr_EVENT_TYPE - |
* |
*/ |
|
bool_t xdr_EVENT_TYPE(xdrs, objp) |
XDR *xdrs; |
EVENT_TYPE *objp; |
|
{ |
if (!xdr_enum (xdrs, (enum_t *) objp)) |
return (FALSE); |
return (TRUE); |
} |
|
/********************************************************************* |
* |
* xdr_RDB_EVENT - |
* |
*/ |
|
bool_t xdr_RDB_EVENT (xdrs, objp) |
XDR *xdrs; |
RDB_EVENT *objp; |
|
{ |
if (!xdr_int (xdrs, &objp->status)) |
return (FALSE); |
if (!xdr_int (xdrs, &objp->taskId)) |
return (FALSE); |
if (!xdr_EVENT_TYPE (xdrs, &objp->eventType)) |
return (FALSE); |
if (!xdr_int (xdrs, &objp->sigType)) |
return (FALSE); |
return (TRUE); |
} |
|
/********************************************************************* |
* |
* xdr_TASK_START - |
* |
*/ |
|
bool_t |
xdr_TASK_START (xdrs, objp) |
XDR *xdrs; |
TASK_START *objp; |
|
{ |
if (!xdr_int (xdrs, &objp->status)) |
return (FALSE); |
if (!xdr_int (xdrs, &objp->pid)) |
return (FALSE); |
return (TRUE); |
} |
|
|
/********************************************************************* |
* |
* xdr_SYMBOL_ADDR - |
* |
*/ |
|
bool_t |
xdr_SYMBOL_ADDR (xdrs, objp) |
XDR *xdrs; |
SYMBOL_ADDR *objp; |
|
{ |
if (!xdr_int (xdrs, &objp->status)) |
return (FALSE); |
if (!xdr_u_int (xdrs, &objp->addr)) |
return (FALSE); |
return (TRUE); |
} |
|
/********************************************************************* |
* |
* xdr_SOURCE_STEP - |
* |
*/ |
|
bool_t |
xdr_SOURCE_STEP (xdrs, objp) |
XDR *xdrs; |
SOURCE_STEP *objp; |
|
{ |
if (!xdr_int (xdrs, &objp->taskId)) |
return (FALSE); |
if (!xdr_u_int (xdrs, &objp->startAddr)) |
return (FALSE); |
if (!xdr_u_int (xdrs, &objp->endAddr)) |
return (FALSE); |
return (TRUE); |
} |
/vxTypes.h
0,0 → 1,72
/* vxTypes.h - VxWorks type definition header */ |
|
/* Copyright 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01c,05oct90,shl added copyright notice. |
made #endif ANSI style. |
01b,10aug90,dnw added VOIDFUNCPTR |
01a,29may90,del written. |
*/ |
|
#ifndef INCvxTypesh |
#define INCvxTypesh |
|
/* The following stuff must NOT be included if this include file is used |
* from assembly language. Just #define ASMLANGUAGE before the include, |
* to get rid of it. |
*/ |
|
#ifndef ASMLANGUAGE |
|
/* vxWorks types */ |
|
typedef char INT8; |
typedef short INT16; |
typedef int INT32; |
|
typedef unsigned char UINT8; |
typedef unsigned short UINT16; |
typedef unsigned int UINT32; |
|
typedef unsigned char UCHAR; |
typedef unsigned short USHORT; |
typedef unsigned int UINT; |
typedef unsigned long ULONG; |
|
typedef int BOOL; |
typedef int VOID; |
typedef int STATUS; |
typedef int ARGINT; |
|
typedef int (*FUNCPTR) (); /* ptr to function returning int */ |
typedef VOID (*VOIDFUNCPTR) (); /* ptr to function returning VOID */ |
|
|
/* historical definitions - now obsolete */ |
|
typedef char TINY; /* obsolete */ |
typedef char TBOOL; /* obsolete */ |
typedef unsigned char UTINY; /* obsolete */ |
|
|
/* architecture dependent typedefs */ |
|
#ifdef CPU_FAMILY |
|
#if CPU_FAMILY==MC680X0 |
typedef unsigned short INSTR; /* word-aligned instructions */ |
#endif /* CPU_FAMILY==MC680X0 */ |
|
#if CPU_FAMILY==SPARC |
typedef unsigned long INSTR; /* 32 bit word-aligned instructions */ |
#endif /* CPU_FAMILY==SPARC */ |
|
#endif |
|
#endif /* ASMLANGUAGE */ |
#endif /* INCvxTypesh */ |
/vxWorks.h
0,0 → 1,171
/* vxWorks.h - VxWorks standard definitions header */ |
|
/* Copyright 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01z,05oct90,shl added copyright notice. |
made #endif ANSI style. |
01y,28sep90,del added I960 defines. |
01x,29may90,del moved types to vxTypes.h |
01w,09apr90,jcf added timeout definitions. |
01v,24jan90,gae moved network configuration flags here from makefile's. |
01u,01sep88,mcl definition of INSTR dependent on processor family; added SPARC. |
+gae added MC680X0 and defined CPU_FAMILY. |
01t,08apr89,dnw added ifdef to prevent inclusion of vxWorks.h more than once. |
01s,22jun88,dnw moved READ, WRITE, and UPDATE back here from ioLib.h. |
01r,22apr88,gae oops! forgot some #endif's in 01q. |
01q,12apr88,gae removed QUICK & WAIT; added STD_{IN,OUT,ERR}. |
fixed #define's of FALSE, TRUE, etc. |
moved READ, WRITE, and UPDATE to ioLib.h. |
01p,04dec87,dnw added undefine of MC68000 to get around Green Hills bug that |
pre-defines MC68000. |
01o,12nov87,ecs added type ULONG. |
01n,08feb86,dnw added types INSTR, UINT, USHORT. |
01m,14oct85,rdc added BUS types. |
01l,16jul85,jlf added conditional for NULL and EOF. |
01k,24jun85,rdc installed condtional compile so we can include in |
assembly language files. See instructions below. |
Added System type macro and CPU type macro. |
01j,13jun85,dnw cleaned-up, removed more obsolete stuff to wrs.h |
01i,11sep84,jlf changed name from wrs.h to vxWorks.h. removed GLOBAL. |
01h,03jun84,dnw removed IGNORE declaration. |
01g,09apr84,jlf added MEMBER_SIZE macro. |
01f,14dec83,dnw added MSB, LSB macros |
01e,17nov83,jlf added STATUS type, for routines which return a status. |
01d,13jul83,dnw added NELEMENTS macro |
01c,14May83,dnw added OFFSET macro |
01b,17Feb83,dnw added stuff from Whitesmiths std.h |
01a,15Feb83,dnw written |
*/ |
|
#ifndef INCvxWorksh |
#define INCvxWorksh |
|
#if !defined(EOF) || (EOF!=(-1)) |
#define EOF (-1) |
#endif |
|
#if !defined(FALSE) || (FALSE!=0) |
#define FALSE 0 |
#endif |
|
#if !defined(TRUE) || (TRUE!=1) |
#define TRUE 1 |
#endif |
|
|
#define NONE (-1) /* for times when NULL won't do */ |
#define EOS '\0' /* C string terminator */ |
|
|
/* return status values */ |
|
#define OK 0 |
#define ERROR (-1) |
|
/* timeout defines */ |
|
#define NO_WAIT 0 |
#define WAIT_FOREVER (-1) |
|
/* low-level I/O input, output, error fd's */ |
|
#define STD_IN 0 |
#define STD_OUT 1 |
#define STD_ERR 2 |
|
/* modes - must match O_RDONLY/O_WRONLY/O_RDWR in ioLib.h! */ |
|
#define READ 0 |
#define WRITE 1 |
#define UPDATE 2 |
|
/* SYSTEM types */ |
|
#define V7 1 /* ATT version 7 */ |
#define SYS_V 2 /* ATT System 5 */ |
#define BSD_4_2 3 /* Berkeley BSD 4.2 */ |
|
/* CPU types */ |
|
/* The Green Hills compiler pre-defines "MC68000"!! */ |
#ifdef MC68000 |
#undef MC68000 |
#endif |
|
#define MC68000 1 |
#define MC68010 2 |
#define MC68020 3 |
#define MC68030 4 |
#define MC68040 5 |
#define MC680X0 9 |
|
#define SPARC 10 |
|
#ifndef I960 |
#define I960 20 |
#endif |
|
#define I960KB 21 |
#define I960CA 22 |
|
#if CPU==MC68000 || CPU==MC68010 || CPU==MC68020 || CPU==MC68030 |
#define CPU_FAMILY MC680X0 |
#endif /* CPU==MC68000 || CPU==MC68010 || CPU==MC68020 || CPU==MC68030 */ |
|
#if CPU==SPARC |
#define CPU_FAMILY SPARC |
#endif /* CPU==SPARC */ |
|
#if CPU==I960KB |
#define CPU_FAMILY I960 |
#endif /* CPU==I960KB */ |
|
#if CPU==I960CA |
#define CPU_FAMILY I960 |
#endif /* CPU==I960CA */ |
|
/* BUS types */ |
|
#define VME_BUS 1 |
#define MULTI_BUS 2 |
|
/* network configuration parameters */ |
|
#define INET /* include internet protocols */ |
#define BSD 43 /* BSD 4.3 -like OS */ |
#define BSDDEBUG /* turn on debug */ |
#define GATEWAY /* tables to be initialized for gateway routing */ |
|
/* common macros */ |
|
#define MSB(x) (((x) >> 8) & 0xff) /* most signif byte of 2-byte integer */ |
#define LSB(x) ((x) & 0xff) /* least signif byte of 2-byte integer*/ |
|
#define OFFSET(structure, member) /* byte offset of member in structure*/\ |
((int) &(((structure *) 0) -> member)) |
|
#define MEMBER_SIZE(structure, member) /* size of a member of a structure */\ |
(sizeof (((structure *) 0) -> member)) |
|
#define NELEMENTS(array) /* number of elements in an array */ \ |
(sizeof (array) / sizeof ((array) [0])) |
|
#define FOREVER for (;;) |
|
/* storage class specifier definitions */ |
|
#define FAST register |
#define IMPORT extern |
#define LOCAL static |
|
|
/* include typedefs - must come after CPU_FAMILY definitions above */ |
|
#include "vxTypes.h" |
|
#endif /* INCvxWorksh */ |
/wait.h
0,0 → 1,46
/* wait.h - header file for remote wait call */ |
|
/* Copyright 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01a,05jun90,llk borrowed. |
*/ |
|
/* Define how to access the structure that the wait system call stores. |
On many systems, there is a structure defined for this. |
But on vanilla-ish USG systems there is not. */ |
|
#ifndef HAVE_WAIT_STRUCT |
#define WAITTYPE int |
#define WIFSTOPPED(w) (((w)&0377) == 0177) |
#define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0) |
#define WIFEXITED(w) (((w)&0377) == 0) |
#define WRETCODE(w) ((w) >> 8) |
#define WSTOPSIG(w) ((w) >> 8) |
#define WCOREDUMP(w) (((w)&0200) != 0) |
#define WTERMSIG(w) ((w) & 0177) |
#define WSETEXIT(w, status) ((w) = (status)) |
#define WSETSTOP(w,sig) ((w) = (0177 | ((sig) << 8))) |
#else |
#if FALSE |
#ifndef ORIG |
|
/* don't include sys/wait.h */ |
|
#else ORIG |
#include <sys/wait.h> |
#endif ORIG |
#endif FALSE |
#define WAITTYPE union wait |
#define WRETCODE(w) (w).w_retcode |
#define WSTOPSIG(w) (w).w_stopsig |
#define WCOREDUMP(w) (w).w_coredump |
#define WTERMSIG(w) (w).w_termsig |
#define WSETEXIT(w, status) ((w).w_status = (status)) |
#define WSETSTOP(w,sig) \ |
((w).w_stopsig = (sig), (w).w_coredump = 0, (w).w_termsig = 0177) |
#endif |
/xdr_rdb.h
0,0 → 1,137
/* xdr_rdb.h - xdr for additional rdb structures */ |
|
/* Copyright 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01c,25may91,maf rolled RDBVERS for VxGDB 1.0 version. |
01b,12apr91,maf rolled RDBVERS. |
01a,09jan91,maf created using v1a of xdr_rdb.h for 4.0.2 VxWorks 68k. |
added struct SOURCE_STEP. |
*/ |
|
#ifndef INCxdrrdbh |
#define INCxdrrdbh |
|
enum arg_type { |
T_UNKNOWN = 0, |
T_BYTE = 1, |
T_WORD = 2, |
T_INT = 3, |
T_FLOAT = 4, |
T_DOUBLE = 5 |
}; |
typedef enum arg_type arg_type; |
bool_t xdr_arg_type(); |
|
|
struct arg_value { |
arg_type type; |
union { |
char v_byte; |
short v_word; |
int v_int; |
float v_fp; |
double v_dp; |
} arg_value_u; |
}; |
typedef struct arg_value arg_value; |
bool_t xdr_arg_value(); |
|
struct func_call { |
int func_addr; |
struct { |
u_int args_len; |
arg_value *args_val; |
} args; |
}; |
typedef struct func_call func_call; |
bool_t xdr_func_call(); |
|
|
typedef char *arg_one; |
bool_t xdr_arg_one(); |
|
|
typedef struct { |
u_int arg_array_len; |
arg_one *arg_array_val; |
} arg_array; |
bool_t xdr_arg_array(); |
|
|
/* |
* Structures used to pass structures required for |
* process control but not part of the standard ptrace interface |
*/ |
|
/* |
* arg_info is used to pass arguments into process start |
*/ |
struct arg_info { |
int rargc; |
char **rargv; |
}; |
typedef struct arg_info Arg_info; |
|
|
enum EVENT_TYPE { |
EVENT_BREAK = 0, |
EVENT_STOP = 1, |
EVENT_EXIT = 2, |
EVENT_BUS_ERR = 3, |
EVENT_SUSPEND = 4, |
EVENT_ZERO_DIV = 5, |
EVENT_SIGNAL = 6, |
EVENT_START = 7 |
}; |
typedef enum EVENT_TYPE EVENT_TYPE; |
|
|
struct RDB_EVENT { |
int status; |
int taskId; |
EVENT_TYPE eventType; |
int sigType; |
}; |
typedef struct RDB_EVENT RDB_EVENT; |
|
|
struct TASK_START { |
int status; |
int pid; |
}; |
typedef struct TASK_START TASK_START; |
|
|
struct SYMBOL_ADDR { |
int status; |
u_int addr; |
}; |
typedef struct SYMBOL_ADDR SYMBOL_ADDR; |
|
struct SOURCE_STEP { |
int taskId; |
u_int startAddr; |
u_int endAddr; |
}; |
typedef struct SOURCE_STEP SOURCE_STEP; |
|
#define MAX_ARG_CNT 10 |
#define MAX_FUNC_ARGS 100 |
#define MAX_ARG_LEN 100 |
|
|
bool_t xdr_arg_info(); |
bool_t xdr_EVENT_TYPE(); |
bool_t xdr_RDB_EVENT(); |
bool_t xdr_TASK_START(); |
bool_t xdr_SYMBOL_ADDR(); |
bool_t xdr_SOURCE_STEP(); |
|
#define RDBPROG (u_long) 0x44444444 |
#define RDBVERS (u_long) 3 |
#endif INCxdrrdbh |
/regPacket.h
0,0 → 1,160
/* regPacket.h - register packet definitions for rdb */ |
|
/* Copyright 1992-1993 Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01d,30nov93,pad Added Am29K target definitions. |
01c,14jun93,maf additional definitions for documentation purposes. |
fixed reversal of MIPS_R_LO and MIPS_R_HI. |
01b,08feb93,scy added SPARC target definitions. changed to WRS code convetion. |
01a,20feb92,j_w created. |
*/ |
|
#ifndef __INCregPacketh |
#define __INCregPacketh |
|
|
/* MC68K */ |
|
#define MC68K_GREG_SIZE 0x04 /* size of general-purpose reg */ |
#define MC68K_GREG_PLEN 0x48 /* size of general-purpose reg block */ |
|
/* offsets into general-purpose register block */ |
|
#define MC68K_R_D0 0x00 /* d0; d1 - d7 follow in sequence */ |
#define MC68K_R_A0 0x20 /* a0; a1 - a7 follow in sequence */ |
#define MC68K_R_SR 0x40 /* sr (represented as a 4-byte val) */ |
#define MC68K_R_PC 0x44 /* pc */ |
|
#define MC68K_FPREG_SIZE 0x0c /* size of floating-point data reg */ |
#define MC68K_FPREG_PLEN 0x6c /* size of floating-point reg block */ |
|
/* offsets into floating-point register block */ |
|
#define MC68K_R_FP0 0x00 /* fp0; fp1 - fp7 follow in sequence */ |
#define MC68K_R_FPCR 0x60 /* fpcr */ |
#define MC68K_R_FPSR 0x64 /* fpsr */ |
#define MC68K_R_FPIAR 0x68 /* fpiar */ |
|
|
/* I960 */ |
|
#define I960_GREG_SIZE 0x04 /* size of general-purpose reg */ |
#define I960_GREG_PLEN 0x8c /* size of general-purpose reg block */ |
|
/* offsets into general-purpose register block */ |
|
#define I960_R_R0 0x00 /* r0; r1 - r15 follow in sequence */ |
#define I960_R_G0 0x40 /* g0; g1 - g15 follow in sequence */ |
#define I960_R_PCW 0x80 /* pcw */ |
#define I960_R_ACW 0x84 /* acw */ |
#define I960_R_TCW 0x88 /* tcw */ |
|
#define I960_FPREG_SIZE 0x10 /* size of floating-point reg */ |
#define I960_FPREG_PLEN 0x28 /* size of floating-point reg block */ |
|
/* offsets into floating-point register block */ |
|
#define I960_R_FP0 0x00 /* fp0; fp1 - fp3 follow in sequence */ |
|
|
/* SPARC */ |
|
#define SPARC_GREG_SIZE 0x04 /* size of general-purpose reg */ |
#define SPARC_GREG_PLEN 0x98 /* size of general-purpose reg block */ |
|
/* offsets into general-purpose register block */ |
|
#define SPARC_R_G0 0x00 /* g0; g1 - g7 follow in sequence */ |
#define SPARC_R_O0 0x20 /* o0; o1 - o7 follow in sequence */ |
#define SPARC_R_L0 0x40 /* l0; l1 - l7 follow in sequence */ |
#define SPARC_R_I0 0x60 /* i0; i1 - i7 follow in sequence */ |
#define SPARC_R_Y 0x80 /* y */ |
#define SPARC_R_PSR 0x84 /* psr */ |
#define SPARC_R_WIM 0x88 /* wim */ |
#define SPARC_R_TBR 0x8c /* tbr */ |
#define SPARC_R_PC 0x90 /* pc */ |
#define SPARC_R_NPC 0x94 /* npc */ |
|
#define SPARC_FPREG_SIZE 0x04 /* size of floating-point reg */ |
#define SPARC_FPREG_PLEN 0x84 /* size of floating-point reg block */ |
|
/* offsets into floating-point register block */ |
|
#define SPARC_R_FP0 0x00 /* f0; f1 - f31 follow in sequence */ |
#define SPARC_R_FSR 0x80 /* fsr */ |
|
|
/* MIPS */ |
|
#define MIPS_GREG_SIZE 0x04 /* size of general-purpose reg */ |
#define MIPS_GREG_PLEN 0x90 /* size of general-purpose reg block */ |
|
/* offsets into general-purpose register block */ |
|
#define MIPS_R_GP0 0x00 /* gp0 (zero) */ |
#define MIPS_R_AT 0x04 /* at */ |
#define MIPS_R_V0 0x08 /* v0 */ |
#define MIPS_R_V1 0x0c /* v1 */ |
#define MIPS_R_A0 0x10 /* a0 */ |
#define MIPS_R_A1 0x14 /* a1 */ |
#define MIPS_R_A2 0x18 /* a2 */ |
#define MIPS_R_A3 0x1c /* a3 */ |
#define MIPS_R_T0 0x20 /* t0 */ |
#define MIPS_R_T1 0x24 /* t1 */ |
#define MIPS_R_T2 0x28 /* t2 */ |
#define MIPS_R_T3 0x2c /* t3 */ |
#define MIPS_R_T4 0x30 /* t4 */ |
#define MIPS_R_T5 0x34 /* t5 */ |
#define MIPS_R_T6 0x38 /* t6 */ |
#define MIPS_R_T7 0x3c /* t7 */ |
#define MIPS_R_S0 0x40 /* s0 */ |
#define MIPS_R_S1 0x44 /* s1 */ |
#define MIPS_R_S2 0x48 /* s2 */ |
#define MIPS_R_S3 0x4c /* s3 */ |
#define MIPS_R_S4 0x50 /* s4 */ |
#define MIPS_R_S5 0x54 /* s5 */ |
#define MIPS_R_S6 0x58 /* s6 */ |
#define MIPS_R_S7 0x5c /* s7 */ |
#define MIPS_R_T8 0x60 /* t8 */ |
#define MIPS_R_T9 0x64 /* t9 */ |
#define MIPS_R_K0 0x68 /* k0 */ |
#define MIPS_R_K1 0x6c /* k1 */ |
#define MIPS_R_GP 0x70 /* gp */ |
#define MIPS_R_SP 0x74 /* sp */ |
#define MIPS_R_S8 0x78 /* s8 */ |
#define MIPS_R_LO 0x80 /* lo */ |
#define MIPS_R_HI 0x84 /* hi */ |
#define MIPS_R_SR 0x88 /* sr */ |
#define MIPS_R_PC 0x8c /* pc */ |
|
#define MIPS_FPREG_SIZE 0x04 /* size of floating-point data reg */ |
#define MIPS_FPREG_PLEN 0x84 /* size of floating-point reg block */ |
|
/* offsets into floating-point register block */ |
|
#define MIPS_R_FP0 0x00 /* f0; f1 - f31 follow in sequence */ |
#define MIPS_R_FPCSR 0x80 /* offset of fpcsr in reg block */ |
|
|
/* General registers for the Am29k */ |
|
#define AM29K_GREG_SIZE 0x04 |
#define AM29K_GREG_PLEN 0x2d4 |
|
#define AM29K_R_GR96 0x0 |
#define AM29K_R_VAB 0x280 |
#define AM29K_R_INTE 0x2bc |
#define AM29K_R_RSP 0x2c0 |
|
/* Floating Point registers for the Am29k */ |
|
#define AM29K_FPREG_SIZE 0x04 |
#define AM29K_FPREG_PLEN 0x8 |
|
#define AM29K_R_FPE 0x0 |
#define AM29K_R_FPS 0x4 |
|
#endif /* __INCregPacketh */ |
/xdr_ptrace.c
0,0 → 1,118
/* xdr_ptrace.c - xdr routines for remote ptrace calls */ |
|
/* Copyright 1984, 1985, 1986, 1987, 1988, 1989, 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01b,25may91,maf now uses counted bytes struct to transfer registers. |
removed xdr_regs_ptr (), xdr_fp_status_ptr (), and |
xdr_fpa_regs_ptr (). |
01a,05jun90,llk extracted from xdr_ptrace.h, version 01c. |
*/ |
|
#include "defs.h" |
#include "vxWorks.h" |
#include <rpc/rpc.h> |
#include "xdr_ptrace.h" |
|
#define MAX_LEN 32000 |
|
/******************************************************************** |
* |
* xdr_c_bytes - |
* |
* xdr routine for counted bytes |
* |
*/ |
bool_t xdr_c_bytes(xdrs,objp) |
XDR *xdrs; |
C_bytes *objp; |
{ |
return(xdr_bytes(xdrs, &objp->bytes, (u_int *) &objp->len, MAX_LEN)); |
} /* xdr_c_bytes */ |
|
/******************************************************************** |
* |
* xdr_c_bytes_ptr - |
* |
* xdr routine for counted bytes branch of ptrace_info |
* |
*/ |
|
LOCAL bool_t xdr_c_bytes_ptr(xdrs,objp) |
XDR *xdrs; |
C_bytes **objp; |
{ |
return(xdr_pointer(xdrs, (char **) objp, sizeof(C_bytes), xdr_c_bytes)); |
} /* xdr_c_bytes_ptr */ |
|
/******************************************************************** |
* |
* xdr_ptrace_info - |
* |
* xdr routine for discriminated union ptrace_info |
* |
*/ |
|
bool_t xdr_ptrace_info(xdrs,objp) |
XDR *xdrs; |
Ptrace_info *objp; |
{ |
static struct xdr_discrim choices[] = |
{ |
{ (int) DATA, xdr_c_bytes_ptr }, |
{ __dontcare__, NULL } |
}; |
|
return(xdr_union(xdrs, (enum_t *) &objp->ttype, |
(char *) &objp->more_data, choices, xdr_void)); |
} /* xdr_ptrace_info */ |
|
/******************************************************************** |
* |
* xdr_rptrace - |
* |
* xdr routine for remote ptrace data into server |
* |
*/ |
|
bool_t xdr_rptrace(xdrs,objp) |
XDR *xdrs; |
Rptrace *objp; |
{ |
if (! xdr_int(xdrs, &objp->pid)) |
return(FALSE); |
if (! xdr_int(xdrs, &objp->data)) |
return(FALSE); |
if (! xdr_int(xdrs, &objp->addr)) |
return(FALSE); |
if (! xdr_ptrace_info(xdrs, &objp->info)) |
return(FALSE); |
|
return(TRUE); |
} /* xdr_rptrace */ |
|
/******************************************************************** |
* |
* xdr_ptrace_return - |
* |
* xdr routine for remote ptrace data returned by server |
* |
*/ |
|
bool_t xdr_ptrace_return(xdrs, objp) |
XDR *xdrs; |
Ptrace_return *objp; |
{ |
if (! xdr_int(xdrs, &objp->status)) |
return(FALSE); |
if (! xdr_int(xdrs, &objp->errno_num)) |
return(FALSE); |
if (! xdr_ptrace_info(xdrs, &objp->info)) |
return(FALSE); |
|
return(TRUE); |
} /* xdr_ptrace_return */ |
/xdr_ld.c
0,0 → 1,84
/* xdr_ld.c - xdr routines for remote dbx interface to VxWorks */ |
|
/* Copyright 1984, 1985, 1986, 1987, 1988, 1989, 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. */ |
|
/* |
modification history |
-------------------- |
01a,05jun90,llk extracted from xdr_dbx.c. |
*/ |
|
/* |
DESCRIPTION |
This module contains the eXternal Data Representation (XDR) routines |
for object files that are downloaded to VxWorks. They are used by |
remote debuggers that use RPC (such as dbxWorks and vxGdb). |
*/ |
|
#include "defs.h" |
#include "vxWorks.h" |
#include "rpc/rpc.h" |
#include "xdr_ld.h" |
|
/* forward declarations */ |
|
bool_t xdr_String(); /* xdr routine for argument list */ |
|
|
/******************************************************************************* |
* |
* xdr_String - xdr routine for strings. |
* |
* Used by xdr_arg_info to handle the actual argument |
* strings. normally calls xdr_string - but does something |
* reasonable encode of null pointer. |
*/ |
|
bool_t xdr_String (xdrs, strp) |
XDR *xdrs; |
char **strp; |
|
{ |
if ((*strp == NULL) & (xdrs->x_op == XDR_ENCODE)) |
return(FALSE); |
else |
return(xdr_string(xdrs, strp, MAXSTRLEN)); |
} |
/******************************************************************************* |
* |
* xdr_ldfile - xdr routine for a single element in the load table |
*/ |
|
bool_t xdr_ldfile (xdrs, objp) |
XDR *xdrs; |
ldfile *objp; |
|
{ |
if (! xdr_String(xdrs, &objp->name)) |
return(FALSE); |
if (! xdr_int(xdrs, &objp->txt_addr)) |
return(FALSE); |
if (! xdr_int(xdrs, &objp->data_addr)) |
return(FALSE); |
if (! xdr_int(xdrs, &objp->bss_addr)) |
return(FALSE); |
|
return(TRUE); |
} |
/******************************************************************************* |
* |
* xdr_ldtabl - |
* |
* xdr routine for a list of files and load addresses loaded into VxWorks. |
*/ |
|
bool_t xdr_ldtabl (xdrs,objp) |
XDR *xdrs; |
ldtabl *objp; |
|
{ |
return (xdr_array (xdrs, (char **) &objp->tbl_ent, (UINT *) &objp->tbl_size, |
MAXTBLSZ, sizeof(ldfile), xdr_ldfile)); |
} |
/README
0,0 → 1,7
The files in this directory are shared with Wind River Systems' VxWorks |
debug stub. This stub runs in the realtime system, as a process, and |
waits for net connections from GDB's and DBX's and such. |
|
Do not change these files without coordinating with Wind River Systems |
in Alameda, California. Talk to postmaster@wrs.com to find out who |
currently maintains GDB for them. |
/dbgRpcLib.h
0,0 → 1,32
/* Copyright 1992 Free Software Foundation, Inc. |
|
This code was donated by Wind River Systems, Inc. |
|
dbgRpcLib.h - header file for remote debugging via rpc */ |
|
/* |
modification history |
-------------------- |
01b,04oct90,maf added VX_BOOT_FILE_INQ. |
01a,05jun90,llk extracted from xdr_dbx.h. |
*/ |
|
#ifndef INCdbxRpcLibh |
#define INCdbxRpcLibh 1 |
|
#define PROCESS_START 50 |
#define PROCESS_WAIT 51 |
#define VX_STATE_INQ 60 |
#define VX_LOAD 61 |
#define VX_SYMBOL_INQ 62 |
#define VX_BREAK_ADD 63 |
#define VX_BREAK_DELETE 64 |
#define VX_FP_INQUIRE 65 |
#define VX_TASK_SUSPEND 66 |
#define VX_CALL_FUNC 67 |
#define VX_CONV_FROM_68881 68 |
#define VX_CONV_TO_68881 69 |
#define VX_BOOT_FILE_INQ 70 |
#define VX_SOURCE_STEP 71 |
|
#endif INCdbxRpcLibh |