📄 probecfg.h
字号:
/***********************************************************************//* *//* MODULE: probecfg.h 1.3 *//* DATE: 17:58:31 - 97/12/05 *//* PURPOSE: Configuration table structure templates *//* *//*---------------------------------------------------------------------*//* *//* Copyright 1994 - 1995, Integrated Systems, Inc. *//* ALL RIGHTS RESERVED *//* *//* Permission is hereby granted to licensees of Integrated Systems, *//* Inc. products to use or abstract this computer program for the *//* sole purpose of implementing a product based on Integrated *//* Systems, Inc. products. No other rights to reproduce, use, *//* or disseminate this computer program, whether in part or in *//* whole, are granted. *//* *//* Integrated Systems, Inc. makes no representation or warranties *//* with respect to the performance of this computer program, and *//* specifically disclaims any responsibility for any damages, *//* special or consequential, connected with the use of this program. *//* *//*---------------------------------------------------------------------*//* *//* This file contains templates for pROBE+ configuration table. *//* *//***********************************************************************/#if defined(__cplusplus)extern "C" {#endif/*---------------------------------------------------------------------*//* Don't allow this file to be included more than once. *//*---------------------------------------------------------------------*/#ifndef _PROBECFG_H#define _PROBECFG_H/********************************************************************//* Masks for RC_FLAGS entry (_MASK & RC_FLAGS isolates the Flag) *//********************************************************************/#define RBUG_MASK 0x00000001#define NODOTS_MASK 0x00000004#define NOMANB_MASK 0x00000008#define NOPAGE_MASK 0x00000010#define PROFILE_MASK 0x00000020#define SMODE_MASK 0x00000100/*---------------------------------------------------------------------*//* Driver Interface Structure *//*---------------------------------------------------------------------*/typedef struct callouts { long (*services)(); /* pointer to Processor Services */ long (*driver)(); /* pointer to current IO driver */ long (*disasm)(ULONG pc_addr, /* pointer to Disassembler */ char *bufptr); long (*query)(); /* pointer to Query Services */ long (*urcom)(); /* pointer to User Command */ } CALLOUTS;/*---------------------------------------------------------------------*//* Used in the Configuration Table *//*---------------------------------------------------------------------*/extern void pROBE_Core(void);extern void pROBE_Init(void);extern void pROBE_Console(void);extern void pROBE_Disasm(void);extern void pROBE_Debug(void);extern void pROBE_Query(void);/*---------------------------------------------------------------------*//* Application Program Interface Errors *//*---------------------------------------------------------------------*/#define SUCCESS 0#define ERR_PARM -1 /* can't even guess what's wrong! */#define ERR_WIDTH ERR_PARM-1 /* width wrong for count */#define ERR_NO_PSOS ERR_WIDTH-1 /* can't do it without pSOS */#define ERR_NO_REG ERR_NO_PSOS-1 /* invalid Register Code */#define ERR_BUS_FAULT ERR_NO_REG-1 /* got a Bus Error on memory move *//*---------------------------------------------------------------------*//* Interface Communications Driver *//*---------------------------------------------------------------------*/#define INIT 0x11#define GET 0x14#define PUT 0x12#define STATUS 0x15#define BREAK 2 /* return codes */#define MORE 1#define NO_MSG -1#define XMIT_ERR -2#define NO_IO -3/*---------------------------------------------------------------------*//* Codes passed to td_statechng callout. Note that these are bit *//* flags, and more than one may be set. *//*---------------------------------------------------------------------*/#define TASKING_NORM 0x1 /* Normal pSOS+ tasking is enabled */#define TASKING_PROBE 0x2 /* pROBE+ has disabled tasking */#define MEMACCESS_NORM 0x4 /* Normal system memory prot. enabled */#define MEMACCESS_PROBE 0x8 /* pROBE+ may access any phys address *//*---------------------------------------------------------------------*//* rw_mem() codes *//*---------------------------------------------------------------------*/#define WIDE_MASK 0xF#define BYTE_WIDE 0x1#define WORD_WIDE 0x2#define LONG_WIDE 0x4#define DBL_WIDE 0x8#define READ 0x100#define WRITE 0x200/*---------------------------------------------------------------------*//* ANSI Prototypes for application program calls to Debugger Services *//*---------------------------------------------------------------------*/void TDinit(void);void fat_err_entry(void);void rsrv_entry(void);void vector4_entry(void); /* General illegal instruction */void vector6_entry(void); /* Illegal slot instruction */void vector9_entry(void); /* CPU bus error */void vector10_entry(void); /* DMA bus error */void manb_entry(void); /* MAN BRK Entry */void inbrk_entry(void); /* Instruction Break Entry */long config_tables( long CompCode, UCHAR **v_ptr, UCHAR **ct_sptr, UCHAR **ct_ptr );long rw_mem( ULONG mode, long byte_cnt, UCHAR *address, UCHAR *buff_ptr );long rw_reg( ULONG mode, ULONG tid, ULONG reg_code, ULONG reg_count, ULONG *buff_ptr );typedef long (*td_drv_t)(ULONG, long *, char *);typedef long (*td_disasm_t)(ULONG, UCHAR *);typedef long (*td_urcom_t)(char *);typedef long (*td_urwrite_t)(ULONG, long, UCHAR *, ULONG *);/*=====================================================================*//* pROBE+ Configuration table *//*=====================================================================*/typedef struct pROBEConfigTable { void (*td_code)(); /* addr of pROBE code module */ ULONG *td_data; /* addr of pROBE data area */ ULONG *td_stack; /* top of pROBE stack area */ void (*td_ce_code)(); /* console interface subcomponent */ void (*td_rd_code)(); /* remote debugger subcomponent */ void (*td_qs_code)(); /* query services subcomponent */ void (*td_ds_code)(); /* disassembler subcomponent */ void (*td_reserved1[4])(); /* must be 0 (4 code pointers) */ ULONG td_brkopc; /* instruction break opcode */ ULONG td_flags; /* initial flag settings */ ULONG td_dbgpri; /* Debugger tasks priority */ td_drv_t td_drv0; /* Communications driver 0 */ td_drv_t td_drv1; /* Communications driver 1 */ void (*td_statechng)(ULONG);/* debugger state-change callout */ td_urcom_t td_urcom; /* user cmd processing */ td_urwrite_t td_urwrite; /* user HW write routine */ ULONG td_reserved2[6]; /* must be 0 (6 words) */ } pROBE_CT;#endif#if defined(__cplusplus)}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -