亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbgarchlib.c

?? vxworks的源代碼
?? C
字號:
/* dbgArchLib.c - PowerPC dependent debuger library */  /* Copyright 1984-1998 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01u,19aug03,dtr  Adding PPC85XX info.01t,16may02,pch  add cross-ref for maintainability01s,14mar02,pch  SPR 74270:  make 440 bh types consistent with 5xx/604/86001r,16aug01,pch  Add PPC440 support01q,31oct00,s_m  PPC405 hw breakpoint support.01p,25oct00,s_m  renamed PPC405 cpu types01o,13jun2k,alp  Added PPC405 support.01n,19apr99,zl   added support for PPC509 and PPC55501m,09nov98,elg  added hardware breakpoints for PPC40301l,13oct98,elg  added hardware breakpoints for PPC603 and PPC60401k,27jul98,elg  added hardware breakpoints01j,09jan98,dbt  modified for new breakpoint scheme		 Removed all refs to TRACE_ESF and all but one to BREAK_ESF.01i,05feb97,tpr  added PPC860 support (SPR 7881).		 Removed PPC601.01h,30jul96,tam  fixed _dbgTaskBPModeClear for PPC403: we do not clear 		 MSR register DE (Debug Enable) bit anylonger.01g,04mar96,ms   reworked _dbgRegsAdjust, removed reference to excStub.01f,14feb96,tpr  added PPC604.01e,22may95,yao  change reference to excTraceStub() to dbgTraceStub().01d,07feb95,yao  cleanup.01c,30jan95,yao  added PPC403 support.01b,05dec94,caf  fixed cast of _dbgInfoPCGet() return value,		 added _GREEN_TOOL support.01a,07nov94,yao  written.*//*DESCRIPTION*/#include "vxWorks.h"#include "private/dbgLibP.h"#include "private/taskLibP.h"#include "fppLib.h"#include "taskArchLib.h"#include "intLib.h"#include "excLib.h"#include "regs.h"#include "iv.h"#include "cacheLib.h"#include "ioLib.h"#include "dsmLib.h"#include "vxLib.h"#include "stdio.h"#include "string.h"#include "logLib.h"/* externals */IMPORT int	dsmInst (FAST long * binInst, int address, FUNCPTR prtAddress);IMPORT STATUS	taskMsrSet (int tid, _RType msr);/* globals *//* * _archHelp_msg should be coordinated with archHelpMsg * in host/resource/tcl/dbgPpcLib.tcl, and with the * documentation in host/src/tgtsvr/server/wtx.pcl */char * _archHelp_msg =		/* help message */#if 	DBG_HARDWARE_BP    "bh        addr[,access[,task[,count[,quiet]]]] Set hardware breakpoint\n"    "\t\taccess:\t0 - instruction"# if (CPU==PPC509)||(CPU==PPC555)||(CPU==PPC604)||(CPU==PPC860)||(CPU==PPC440)||(CPU==PPC85XX)    "\t\t1 - read/write data\n"    "\t\t\t2 - read data\t\t3 - write data"# endif	/* (CPU==PPC5xx) || (CPU==PPC604) || (CPU==PPC860) || CPU==PPC440 */# if	(CPU == PPC403)    "\t\t1 - write byte\n"    "\t\t\t2 - read byte\t\t3 - read/write byte\n"    "\t\t\t5 - write half-word\t\t6 - read half-word\n"    "\t\t\t7 - read/write half-word\t\t9 - write word\n"    "\t\t\t10 - read word\t\t11 - read/write word\n"    "\t\t\t13 - write quad-word\t\t14 - read quad-word\n"    "\t\t\t15 - read/write quad-word"# endif	/* (CPU == PPC403) */# if ((CPU == PPC405) || (CPU == PPC405F))    "\t\t1 - write byte\n"    "\t\t\t2 - read byte\t\t3 - read/write byte\n"    "\t\t\t4 - write half-word\t\t5 - read half-word\n"    "\t\t\t6 - read/write half-word\t\t7 - write word\n"    "\t\t\t8 - read word\t\t9 - read/write word\n"    "\t\t\t10 - write cache-line\t\t11 - read cache-line\n"    "\t\t\t12 - read/write cache-line"# endif  /* (CPU == PPC405) || (CPU == PPC405F) */#endif	/* DBG_HARDWARE_BP */    "\n";/********************************************************************************* _dbgArchInit - architecture dependent initialization routine** This routine initialize global function pointers that are specific for * MIPS architecture.** RETURNS:N/A*/void _dbgArchInit (void)    {    _dbgDsmInstRtn = (FUNCPTR) dsmInst;    }/********************************************************************************* _dbgInstSizeGet - set up breakpoint instruction** RETURNS: size of the instruction at specified location.*/int _dbgInstSizeGet    (    INSTR * brkInst		/* pointer to hold breakpoint instruction */    )    {    return (sizeof(INSTR)/sizeof(INSTR));    }/********************************************************************************* _dbgRetAdrsGet - get return address for current routine** RETURNS: return address for current routine.*/INSTR * _dbgRetAdrsGet    (    REG_SET * pRegSet		/* pointer to register set */    )    {    FAST INSTR * scanpc;	/* instruction scan pc pointer */    FAST INSTR * pMtlr = NULL;	/* pointer to instruction mtspr lr, rx */    _RType sp = pRegSet->spReg;	/* stack pointer */    INT16 offset;    int regNum;    /*    * scan instructions forward. If we find a "mfspr rx,lr" or a "bclr"    * then the return address in already in the link register.  If we     * find a "mtspr lr, rx" then the return address is saved on the     * stack. We need to search back to find the offset.  If the instruction     * space is corrupted, could get a bus error eventually or could find a     * return address for a neighboring subprogram.    */    for (scanpc = (INSTR *) pRegSet->pc; TRUE; scanpc++)	        {        /* match "mfspr rx,lr" means return address is in lr */        if (INST_CMP(scanpc, INST_MFLR, INST_MTSPR_MASK))            {	    return ((INSTR *) pRegSet->lr);            }        else if (INST_CMP(scanpc, INST_MTLR, INST_MTSPR_MASK))	    pMtlr = scanpc;	else if (INST_CMP(scanpc, INST_ADDI_SP, INST_HIGH_MASK) ||		 INST_CMP(scanpc, INST_STWU_SP,INST_HIGH_MASK))	    {	    offset = *scanpc & 0xffff;	/* sign extend */	    sp += offset;	    }	else if (INST_CMP(scanpc, INST_BCLR, INST_BCLR_MASK))	    if (pMtlr == NULL)		return ((INSTR *) pRegSet->lr);	    else		{		regNum = _IFIELD_RS((*pMtlr));		for (; TRUE; pMtlr --)		    if (INST_CMP(pMtlr, (INST_LWZ_SP | regNum << 21), 				 INST_HIGH_MASK) ||			INST_CMP(pMtlr, (INST_LWZU_SP | regNum << 21), 				 INST_HIGH_MASK))			{			offset = (*pMtlr) & 0xffff;			return ((INSTR *) *(INSTR *)(sp + offset));			}		}        }    return (NULL);    }/********************************************************************************* _dbgFuncCallCheck - check next instruction** This routine checks to see if the next instruction is a BL or BCL.* If it is, it returns TRUE, otherwise, returns FALSE.** RETURNS: TRUE if next instruction is JAL or BSR, or FALSE otherwise.*/BOOL _dbgFuncCallCheck    (    INSTR * addr		/* pointer to instruction */    )    {    return (INST_CMP (addr, INST_BL, INST_BL_MASK) || 	    INST_CMP (addr, INST_BCL, INST_BL_MASK));    }/********************************************************************************* _dbgInfoPCGet - get pc from exception frame** RETURNS: value of pc saved on stack*/INSTR * _dbgInfoPCGet    (    BREAK_ESF * pInfo		/* pointer to info saved on stack */    )    {    return ((INSTR *) pInfo->regSet.pc);    }/********************************************************************************* _dbgTaskPCSet - set task's pc** RETURNS:N/A*/void _dbgTaskPCSet    (    int     tid,	/* task id */    INSTR * pc,		/* task's pc */    INSTR * npc		/* task's npc */    )    {    REG_SET regSet;		/* task's register set */    logMsg ("_dbgTaskPCSet(tid,pc=0x%x,npc)\n", (int)pc,0,0,0,0,0);    if (taskRegsGet (tid, &regSet) != OK)	return;    regSet.pc = (_RType) pc;    taskRegsSet (tid, &regSet);    }/********************************************************************************* _dbgTaskPCGet - get task's pc** RETURNS:task's program counter*/INSTR * _dbgTaskPCGet    (    int tid	/* task's id */    )    {    REG_SET	regSet;    (void) taskRegsGet (tid, &regSet);    return ((INSTR *) regSet.pc);    }#if DBG_HARDWARE_BP/********************************************************************************* _dbgBrkDisplayHard - print hardware breakpoint** This routine prints information about hardware breakpoints.** Support here should be coordinated with hwBpTypeList* in host/resource/tcl/dbgPpcLib.tcl** NOMANUAL*/void _dbgBrkDisplayHard    (    BRKPT *	pBp	/* breakpoint table entry */    )    {    int type;    if ((pBp->bp_flags & BRK_HARDWARE) == 0)        return;    type = pBp->bp_flags & BRK_HARDMASK;    printf (" (hard-");    switch (type)        {	case BRK_INST:	    printf ("inst.)");	    break;# if	(CPU == PPC509) || (CPU == PPC555) || (CPU == PPC604) || (CPU == PPC860)	case BRK_RW:	    printf ("r/w data)");	    break;	case BRK_READ:	    printf ("read data)");	    break;	case BRK_WRITE:	    printf ("write data)");	    break;# endif	/* CPU == PPC509 || CPU == PPC555 || CPU == PPC604 || CPU == PPC860 */# if	( (CPU == PPC403) || (CPU == PPC405) || (CPU == PPC405F) )	case BRK_DATAW1:	    printf ("write byte)");	    break;	case BRK_DATAR1:	    printf ("read byte)");	    break;	case BRK_DATARW1:	    printf ("r/w byte)");	    break;	case BRK_DATAW2:	    printf ("write half)");	    break;	case BRK_DATAR2:	    printf ("read half)");	    break;	case BRK_DATARW2:	    printf ("r/w half)");	    break;	case BRK_DATAW4:	    printf ("write word)");	    break;	case BRK_DATAR4:	    printf ("read word)");	    break;	case BRK_DATARW4:	    printf ("r/w word)");	    break;#  if (CPU == PPC403)	case BRK_DATAW16:	    printf ("write 4-word)");	    break;	case BRK_DATAR16:	    printf ("read 4-word)");	    break;	case BRK_DATARW16:	    printf ("r/w 4-word)");	    break;#  else	/* CPU == PPC403 */	case BRK_DATAW32:	    printf ("write 8-word)");	    break;	case BRK_DATAR32:	    printf ("read 8-word)");	    break;	case BRK_DATARW32:	    printf ("r/w 8-word)");	    break;#  endif /* CPU == PPC403 */# endif	/* CPU == PPC40x */# if	((CPU == PPC440) || (CPU==PPC85XX))	case BRK_DATAW:	    printf ("write data)");	    break;	case BRK_DATAR:	    printf ("read data)");	    break;	case BRK_DATARW:	    printf ("r/w data)");	    break;# endif	/* CPU == PPC440 */	default:	    printf ("unknown)");	    break;	}    }#endif /* DBG_HARDWARE_BP */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区蜜臀| 首页亚洲欧美制服丝腿| 尤物av一区二区| 老色鬼精品视频在线观看播放| 91丨porny丨最新| 欧美精品在欧美一区二区少妇| 久久久久免费观看| 亚洲国产成人av好男人在线观看| 国产高清亚洲一区| 欧美电影精品一区二区| 亚洲综合视频网| 波多野结衣的一区二区三区| 欧美不卡在线视频| 天天色综合成人网| 色94色欧美sute亚洲13| 国产精品丝袜在线| 国产精华液一区二区三区| 欧美一区欧美二区| 亚洲国产日产av| 色播五月激情综合网| 亚洲欧洲日韩女同| 岛国精品在线播放| 久久久.com| 国产精品正在播放| 2021中文字幕一区亚洲| 久久精品国产成人一区二区三区| 欧美日韩一级片在线观看| 亚洲欧洲综合另类| 91成人网在线| 一区二区在线观看免费视频播放| 成人av高清在线| 国产精品女人毛片| 99精品视频在线观看| 18成人在线观看| 91麻豆免费看片| 亚洲色图19p| 日本韩国精品在线| 亚洲综合一二区| 在线看日韩精品电影| 亚洲女女做受ⅹxx高潮| 色妹子一区二区| 亚洲一区欧美一区| 欧美精品亚洲一区二区在线播放| 亚洲成av人影院在线观看网| 欧美亚洲国产一区在线观看网站| 亚洲精品五月天| 欧美视频你懂的| 日韩电影在线一区二区| 91麻豆精品国产91久久久使用方法 | jlzzjlzz亚洲日本少妇| 国产精品国产三级国产a| 色综合咪咪久久| 五月综合激情婷婷六月色窝| 日韩一级黄色片| 国产一区二区三区黄视频 | 欧美亚洲一区二区在线观看| 亚洲国产精品欧美一二99| 欧美剧情片在线观看| 国产综合久久久久久久久久久久| 国产日产亚洲精品系列| 一本久久综合亚洲鲁鲁五月天| 亚洲一区二区三区自拍| 欧美日韩国产精品自在自线| 精品亚洲欧美一区| 亚洲男同1069视频| 欧美一级xxx| 不卡的看片网站| 日韩影院免费视频| 国产日韩精品一区| 欧美日韩一区不卡| 成人综合激情网| 亚欧色一区w666天堂| 国产日韩欧美制服另类| 精品视频一区二区不卡| 国产一二精品视频| 亚洲国产精品一区二区www| 国产无一区二区| 欧美日韩一区成人| aaa国产一区| 久99久精品视频免费观看| 亚洲精品视频在线| 久久久久亚洲综合| 91精品久久久久久久99蜜桃| 欧美一卡2卡3卡4卡| 成人免费看片app下载| 日韩国产欧美在线观看| 亚洲桃色在线一区| 国产喂奶挤奶一区二区三区| 欧美精品粉嫩高潮一区二区| aa级大片欧美| 国产成人免费在线| 美日韩一区二区| 亚洲精选免费视频| 国产精品久99| 久久精品网站免费观看| 欧美一区二区三区四区高清| 色综合 综合色| 成人国产亚洲欧美成人综合网| 久久精品国产亚洲高清剧情介绍 | 92国产精品观看| 国产综合色精品一区二区三区| 午夜视频久久久久久| 亚洲精品中文在线影院| 国产精品女主播av| 国产日韩欧美制服另类| 2020日本不卡一区二区视频| 精品欧美一区二区三区精品久久| 欧美日韩精品系列| 欧美性猛交一区二区三区精品| 91视频在线观看| 白白色 亚洲乱淫| 成人av手机在线观看| 成人av在线网| 成人免费视频网站在线观看| k8久久久一区二区三区| 99国产精品久| 91麻豆国产香蕉久久精品| 99久久综合精品| 色爱区综合激月婷婷| 欧美色综合久久| 欧美高清视频一二三区| 欧美丰满一区二区免费视频| 欧美放荡的少妇| 日韩限制级电影在线观看| 欧美一区二区三区小说| 欧美精品一区二区三| 久久久久久**毛片大全| 欧美极品xxx| 亚洲三级免费观看| 亚洲高清在线精品| 免费看欧美女人艹b| 国模冰冰炮一区二区| 成人免费高清在线观看| 一本久久精品一区二区| 91麻豆精品国产| 久久久久久久国产精品影院| 欧美激情一区二区三区| 亚洲日本在线观看| 午夜欧美视频在线观看| 精品写真视频在线观看| 成人开心网精品视频| 欧美怡红院视频| 久久亚洲综合av| 中文字幕一区二区三区不卡在线 | 在线一区二区三区做爰视频网站| 欧洲精品在线观看| 亚洲你懂的在线视频| 亚洲福利视频一区二区| 精品一区二区免费视频| 91影院在线免费观看| 欧美日韩国产在线观看| 久久一区二区三区四区| 亚洲欧美日本韩国| 免费成人在线影院| 91丨九色丨黑人外教| 精品乱码亚洲一区二区不卡| 国产精品久久综合| 麻豆精品在线观看| 91视频在线看| 久久综合精品国产一区二区三区| 18欧美亚洲精品| 国产真实乱子伦精品视频| 一本大道久久a久久综合| 久久久国产精品不卡| 亚洲h在线观看| 99久久免费精品| 精品国产一二三区| 亚洲成人激情av| 99久久久久久99| 久久亚洲二区三区| 舔着乳尖日韩一区| 99国内精品久久| 久久久久国产精品厨房| 日本亚洲免费观看| 欧美在线制服丝袜| 国产精品美女一区二区| 精品在线视频一区| 欧美一级久久久| 亚洲成人免费视| 在线免费观看一区| 成人欧美一区二区三区视频网页 | 亚洲福利一二三区| 97久久久精品综合88久久| 国产欧美一区二区三区网站 | 日韩美女视频在线| 亚洲国产乱码最新视频| 91免费精品国自产拍在线不卡| 国产嫩草影院久久久久| 久久机这里只有精品| 欧美精品久久天天躁| 夜夜精品浪潮av一区二区三区| 成人国产亚洲欧美成人综合网| 精品99999| 国产一区二区精品久久99| 日韩美女视频在线| 精品伊人久久久久7777人| 7799精品视频| 日韩国产精品大片| 91精品国产欧美日韩| 毛片基地黄久久久久久天堂|