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

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

?? dbgarchlib.c

?? vxworks的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* dbgArchLib.c - architecture-dependent debugger library */  /* Copyright 1984-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01q,13nov02,hdn  added doc for x86 hardware breakpoint (spr 79232, 79234)01p,05jun02,wsl  remove references to SPARC and i96001o,26nov01,hdn  updated the x86 section01n,22nov01,hbh  Updated for simulatorrs.01m,16nov01,tlc  Update for MIPS architecture.01l,30oct01,zl   corrected arch names in library description, updated SH                 section.01k,03mar00,zl   merged SH support into T201j,27feb97,jpd  Added ARM-specific documentation.01i,25nov95,jdi  removed 29k stuff.01h,10oct95,jdi  doc: changed .tG Shell back to .pG "Target Shell".01g,06oct95,jdi  changed Debugging .pG's to .tG Shell.01f,12mar95,dvs  changed sr() to srShow() for am29k (SPR #4084) and gr() -> 		 grShow() for consistancy.01e,10feb95,jdi  changed 80960 to i960; synchronized with ../<arch>/dbgArchLibs.01d,27jan95,rhp  added MIPS R3000/R4000 and Intel i386/i486;                 minor doc cleanup on Am29K.01c,02dec93,pme  added Am29K family support.01b,14mar93,jdi  changed underscores in fsrShow() and psrShow() examples to		 dashes, for aesthetics and compatibility with pretroff.01a,13feb93,jdi  written, based on dbgArchLib.c for mc68k, sparc, and i960.*//*DESCRIPTIONThis module provides architecture-specific support functions for dbgLib.It also includes user-callable functions for accessing the contents ofregisters in a task's TCB (task control block).  These routines include:.TStab(|);l0 l0 l.\&`MC680x0':         | a0() - a7()  | - address registers (`a0' - `a7')         | d0() - d7()  | - data registers (`d0' - `d7')         | sr()         | - status register (`sr')\&`MIPS':  | dbgBpTypeBind() | - bind a breakpoint handler to a breakpoint type\&`x86/SimNT':         | edi() - eax() | - named register values         | eflags()      | - status register value\&`SH':             | r0() - r15() | - general registers (`r0' - `r15')         | sr()         | - status register (`sr')         | gbr()        | - global base register (`gbr')         | vbr()        | - vector base register (`vbr')         | mach()       | - multiply and accumulate register high (`mach')         | macl()       | - multiply and accumulate register low (`macl')         | pr()         | - procedure register (`pr')\&`ARM':         | r0() - r14() | - general-purpose registers (`r0' - `r14')         | cpsr()       | - current processor status reg (`cpsr')         | psrShow()    | - `psr' value, symbolically\&`SimSolaris':         | g0() - g7()  | - global registers (`g0' - `g7')         | o0() - o7()  | - out registers (`o0' - `o7', note lower-case "o")         | l0() - l7()  | - local registers (`l0' - `l7', note lower-case "l")         | i0() - i7()  | - in registers (`i0' - `i7')         | npc()        | - next program counter (`npc')         | psr()        | - processor status register (`psr')         | wim()        | - window invalid mask (`wim')         | y()          | - `y' register .TENOTE:  The routine pc(), for accessing the program counter, is foundin usrLib.SEE ALSO: dbgLib,.pG "Target Shell"INTERNALNote that the program counter (pc) is handled by a non-architecture-specificroutine in usrLib.This module is created by cat'ing together the following files AFTER thefirst entry below - sr(), g0().	mc68k/dbgArchLib.cXX	sparc/dbgArchLib.cXX	i960/dbgArchLib.c	mips/dbgArchLib.c	i86/dbgArchLib.c	sh/dbgArchLib.c	arm/dbgArchLib.c	simsolaris/dbgArchLib.c	simnt/dbgArchLib.c*//********************************************************************************* g0 - return the contents of register `g0', also `g1' - `g7' (SPARC) and `g1' - `g14' (i960)** This command extracts the contents of global register `g0' from the TCB of a* specified task.  If <taskId> is omitted or 0, the current default task is* assumed.** Routines are provided for all global registers:* .TS* tab(|);* l l l.* \&`SPARC':      | g0() - g7()  | (`g0' - `g7')* \&`i960':       | g0() - g14() | (`g0' - `g14')* \&`SimSolaris': | g0() - g7()  | (`g0' - `g7')* .TE** RETURNS: The contents of register `g0' (or the requested register).** SEE ALSO:* .pG "Target Shell"** NOMANUAL*/int g0    (    int taskId		/* task ID, 0 means default task */    )        { ... }/* cat arch libraries after here *//* dbgArchLib.c - MC680x0-dependent debugger library */  /* Copyright 1984-1995 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01h,10feb95,jdi  doc cleanup for 5.2.01g,13feb93,jdi  documentation cleanup for 5.1; added discrete entry for d0().01f,22sep92,kdl  added single-register display routines, from 5.0 usrLib.01e,19sep92,kdl  made dbgRegsAdjust() clear padding bytes before SR in reg set.01d,23aug92,jcf  changed filename.01c,06jul92,yao  removed dbgCacheClear().  made user uncallable globals		 started with '_'.01b,03jul92,jwt  first pass at converting cache calls to 5.1 cache library.01a,18jun92,yao  written based on mc68k/dbgLib.c ver08g.*//*DESCRIPTIONThis module provides the Motorola 680x0 specific support functions for dbgLib.NOMANUAL*/#include "vxWorks.h"#include "private/dbgLibP.h"#include "taskLib.h"#include "taskArchLib.h"#include "intLib.h"#include "regs.h"#include "iv.h"#include "cacheLib.h"#include "ioLib.h"#include "dsmLib.h"#include "vxLib.h"#include "usrLib.h"/* externals *//* interrupt driver routines from dbgALib.s */IMPORT dbgBpStub ();		/* breakpoint interrupt driver */IMPORT dbgTraceStub ();		/* trace interrupt driver */IMPORT int dsmNbytes ();IMPORT int dsmInst ();/* globals */extern char * _archHelp_msg = "";LOCAL USHORT interruptSR;	/* old SR value before interrupt break *//********************************************************************************* _dbgArchInit - architecture dependent initialization routine** This routine initialize global function pointers that are architecture * specific.** RETURNS: N/A** NOMANUAL*/void _dbgArchInit (void)    {    _dbgDsmInstRtn = (FUNCPTR) dsmInst;    }/********************************************************************************* _dbgVecInit - insert new breakpoint and trace vectors** RETURNS: N/A** NOMANUAL*/void _dbgVecInit (void)        {    /* insert the new breakpoint and trace vectors */    intVecSet ((FUNCPTR *) TRAPNUM_TO_IVEC (DBG_TRAP_NUM), dbgBpStub);    intVecSet ((FUNCPTR *) IV_TRACE, dbgTraceStub);    }/********************************************************************************* _dbgInstSizeGet - set up breakpoint instruction** RETURNS: size of the instruction at specified location.** NOMANUAL*/int _dbgInstSizeGet    (    INSTR * pBrkInst		/* pointer to hold breakpoint instruction */    )    {    return (dsmNbytes (pBrkInst) / sizeof (INSTR));    }/********************************************************************************* _dbgRetAdrsGet - get return address for current routine** RETURNS: return address for current routine.** NOMANUAL*/INSTR * _dbgRetAdrsGet    (    REG_SET * pRegSet		/* pointer to register set */    )    {    /* if next instruction is a LINK or RTS, return address is on top of stack;     * otherwise it follows saved frame pointer */    if (INST_CMP(pRegSet->pc,LINK,LINK_MASK) || 	INST_CMP(pRegSet->pc,RTS,RTS_MASK))        return (*(INSTR **)pRegSet->spReg);    else	return (*((INSTR **)pRegSet->fpReg + 1));    }/********************************************************************************* _dbgSStepClear - clear single step mode** RETURNS: N/A** NOMANUAL*/void _dbgSStepClear (void)    {    }/********************************************************************************* _dbgSStepSet - set single step mode** RETURNS: N/A** NOMANUAL*/void _dbgSStepSet     (    BREAK_ESF * pInfo		/* pointer to info saved on stack */    )    {    pInfo->sr |= TRACE_BIT | 0x700; /* set trace bit and lock interrupts */    }/******************************************************************************** _dbgTaskSStepSet - set single step mode of task** Set the `pcw' and `tcw' of the given task for trace (instruction) break* mode, so that when the task is switched in, it will execute the* next instruction and break.** NOTE* Interrupts are locked out for this task, until single stepping* for the task is cleared.** RETURNS: OK or ERROR if invalid <tid>.** NOMANUAL*/void _dbgTaskSStepSet    (    int tid		/* task's id */    )    {    REG_SET regSet;    taskRegsGet (tid, &regSet);    taskSRSet (tid, regSet.sr | TRACE_BIT);    }/******************************************************************************** _dbgTaskBPModeSet - set breakpoint mode of task** NOMANUAL*/void _dbgTaskBPModeSet     (    int tid		/* task's id */    )    {    }/******************************************************************************** _dbgTaskBPModeClear - clear breakpoint mode of task** NOMANUAL*/void _dbgTaskBPModeClear     (    int tid    )    {    }/********************************************************************************* _dbgFuncCallCheck - check next instruction** This routine checks to see if the next instruction is a JSR or BSR.* If it is, it returns TRUE, otherwise, returns FALSE.** RETURNS: TRUE if next instruction is JSR or BSR, or FALSE otherwise.** NOMANUAL*/BOOL _dbgFuncCallCheck    (    INSTR * addr		/* pointer to instruction */    )    {    return (INST_CMP (addr, JSR, JSR_MASK) || INST_CMP (addr, BSR, BSR_MASK));    }/********************************************************************************* _dbgRegsAdjust - set register set** RETURNS: N/A** NOMANUAL*/void _dbgRegsAdjust    (    FAST int   tid,		/* id of task that hit breakpoint */    TRACE_ESF * pInfo,		/* pointer to esf info saved on stack */    int *       regs,		/* pointer to buf containing saved regs */    BOOL stepBreakFlag		/* TRUE if this was a trace exception */				/* FALSE if this was a SO or CRET breakpoint */    )    {    REG_SET regSet;    int ix;    for (ix = 0; ix < 8; ++ix)	regSet.dataReg [ix] = regs[ix];    for (ix =0; ix < 7; ++ix)	regSet.addrReg [ix] = regs[ix+8];    if (stepBreakFlag)	regSet.spReg = (ULONG) ((char *)pInfo + sizeof (TRACE_ESF));    else	regSet.spReg = (ULONG) ((char *)pInfo + sizeof (BREAK_ESF));    regSet.pc    = pInfo->pc;    regSet.pad   = 0;    regSet.sr    = pInfo->sr;    taskRegsSet (tid, &regSet);    }/********************************************************************************* _dbgIntrInfoSave - restore register set** RETURNS: N/A** NOMANUAL*/void _dbgIntrInfoSave    (    BREAK_ESF * pInfo		/* pointer to info saved on stack */    )    {    interruptSR = pInfo->sr;	/* save SR */    }/******************************************************************************** _dbgIntrInfoRestore - restore the info saved by dbgIntrInfoSave** NOMANUAL*/void _dbgIntrInfoRestore    (    TRACE_ESF *	pBrkInfo	/* pointer to execption frame */    )    {    pBrkInfo->sr = interruptSR;    }/******************************************************************************** _dbgInstPtrAlign - align pointer to appropriate boundary** REUTRNS: align given instruction pointer to appropriate boundary** NOMANUAL*/INSTR * _dbgInstPtrAlign     (    INSTR * addr		/* instuction pointer */    )    {#if (CPU==MC68000 || CPU==MC68010 || CPU==CPU32)    addr = (INSTR *) ((int)addr & ~(0x01));	/* force address even */#endif	/* (CPU==MC68000 || CPU==MC68010 || CPU==CPU32) */    return (addr);    }/********************************************************************************* _dbgInfoPCGet - get pc** RETURNS: value of pc saved on stack** NOMANUAL*/INSTR * _dbgInfoPCGet    (    BREAK_ESF * pInfo		/* pointer to info saved on stack */    )    {    return (pInfo->pc);    }/********************************************************************************* _dbgTaskPCSet - set task's pc** RETURNS: N/A** NOMANUAL*/void _dbgTaskPCSet    (    int    tid,		/* task id */    INSTR* pc,		/* task's pc */    INSTR* npc		/* not supoorted on MC680X0 */    )    {    REG_SET regSet;		/* task's register set */    taskRegsGet (tid, &regSet);    regSet.pc = pc;    taskRegsSet (tid, &regSet);    }/********************************************************************************* _dbgTaskPCGet - restore register set** RETURNS: N/A** NOMANUAL*/INSTR * _dbgTaskPCGet    (    int tid		/* task id */    )    {    REG_SET regSet;		/* task's register set */    taskRegsGet (tid, &regSet);    return (regSet.pc);    }/********************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人欧美一区二区三区视频网页 | 亚洲高清视频中文字幕| 亚洲成a人片综合在线| 日本韩国欧美一区| 欧美性大战xxxxx久久久| 久久久夜色精品亚洲| 水野朝阳av一区二区三区| 成人app网站| 国产喂奶挤奶一区二区三区| 亚洲成国产人片在线观看| 91在线你懂得| 国产精品污www在线观看| 久草热8精品视频在线观看| 欧美日韩一级二级三级| 国产精品国产精品国产专区不蜜| 国产欧美日韩精品在线| 麻豆一区二区三| 色av一区二区| 亚洲色图色小说| 波多野洁衣一区| 欧美国产日韩一二三区| 国产精品一二二区| 日韩免费性生活视频播放| 日韩av一区二区三区四区| 欧美日免费三级在线| 一区二区三区**美女毛片| 91美女在线观看| 亚洲男同1069视频| 99re在线精品| 一区二区三区中文字幕电影| 91免费小视频| 亚洲愉拍自拍另类高清精品| 一本色道**综合亚洲精品蜜桃冫 | 久久99精品久久只有精品| 成人av资源在线观看| 中文字幕第一区二区| 91精品国产欧美一区二区18| 亚洲午夜久久久久久久久电影网| 麻豆精品一区二区三区| 欧美日韩不卡视频| 日韩中文欧美在线| 欧美成人欧美edvon| 国产美女娇喘av呻吟久久| 久久网这里都是精品| 国产盗摄精品一区二区三区在线| 欧亚洲嫩模精品一区三区| 夜夜操天天操亚洲| 欧美人与z0zoxxxx视频| 蜜臀av一区二区在线免费观看| 六月丁香婷婷色狠狠久久| 精品国产一区二区精华| 粉嫩aⅴ一区二区三区四区五区| 欧美在线免费观看亚洲| 亚洲国产sm捆绑调教视频| 欧美一区二区私人影院日本| 国产麻豆精品在线观看| 一区视频在线播放| 欧美日韩免费视频| 国产麻豆视频一区二区| 亚洲黄色小说网站| 日韩欧美的一区| 96av麻豆蜜桃一区二区| 日韩高清电影一区| 欧美激情一区在线| 在线观看视频一区二区欧美日韩| 久久理论电影网| 在线观看不卡视频| 黄色资源网久久资源365| 一区视频在线播放| 日韩免费在线观看| 色嗨嗨av一区二区三区| 久久99国产乱子伦精品免费| 亚洲精品美国一| 欧美成人性福生活免费看| 色综合久久88色综合天天| 免费人成在线不卡| 樱桃国产成人精品视频| www国产亚洲精品久久麻豆| 欧美又粗又大又爽| 成人免费三级在线| 久久av老司机精品网站导航| 亚洲精品视频在线| 欧美精品一区二区久久婷婷| 欧美在线色视频| 北岛玲一区二区三区四区| 美国三级日本三级久久99| 亚洲黄色小说网站| 国产精品福利一区二区三区| 欧美mv日韩mv国产网站| 欧美人与z0zoxxxx视频| 91丝袜美女网| 豆国产96在线|亚洲| 精品一区二区三区免费播放| 午夜精品国产更新| 一区二区三区欧美在线观看| 国产精品网站在线播放| 国产午夜精品一区二区三区四区| 国产福利91精品一区二区三区| 久久精品夜夜夜夜久久| 日韩欧美色综合| 在线不卡中文字幕| 欧美日韩国产另类一区| 99re成人精品视频| 国产一区二区按摩在线观看| 久久国产欧美日韩精品| 人人超碰91尤物精品国产| 亚洲成人资源在线| 亚洲成人综合视频| 亚洲午夜激情网页| 亚洲国产精品久久一线不卡| 夜夜爽夜夜爽精品视频| 亚洲一区电影777| 亚洲午夜电影在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲图片一区二区| 亚洲成av人综合在线观看| 婷婷久久综合九色国产成人| 丝袜美腿一区二区三区| 视频一区中文字幕| 日本欧美在线看| 韩国三级电影一区二区| 国产高清亚洲一区| 成人美女视频在线观看| 99riav一区二区三区| 日本道色综合久久| 制服丝袜在线91| 欧美精品一区二区三区视频| 日本视频免费一区| 久久99九九99精品| 高清不卡在线观看av| 99精品热视频| 在线播放一区二区三区| 久久综合久久综合九色| 国产精品视频线看| 亚洲激情图片qvod| 蜜桃av一区二区| 国产福利一区二区三区在线视频| 一区二区三区精密机械公司| 亚洲午夜国产一区99re久久| 免费在线观看日韩欧美| 国产成人av电影在线播放| 色偷偷久久人人79超碰人人澡| 国产成人免费高清| 91免费看片在线观看| 日韩欧美123| 亚洲美女视频在线观看| 美女视频黄a大片欧美| av在线不卡观看免费观看| 欧美亚洲自拍偷拍| 欧美一级黄色片| 亚洲欧美一区二区三区国产精品| 国产亚洲欧美一区在线观看| 一区二区三区欧美日韩| 激情图片小说一区| 91成人在线免费观看| 久久美女高清视频| 午夜视频在线观看一区二区 | 97久久精品人人做人人爽| 91黄色免费看| 久久久久久久综合日本| 亚洲成人在线观看视频| 成人avav影音| 日韩精品专区在线影院重磅| 亚洲综合久久久久| 粗大黑人巨茎大战欧美成人| 日韩午夜小视频| 亚洲一区二区精品3399| 国产69精品久久99不卡| 欧美一区二区三区婷婷月色 | 麻豆91在线看| 色久优优欧美色久优优| 精品国精品国产| 亚洲成年人影院| 一本到不卡精品视频在线观看| 一本大道综合伊人精品热热| 久久久久久夜精品精品免费| 亚洲第一二三四区| av激情综合网| 中文字幕欧美日韩一区| 国产一区二区三区国产| 欧美一区二区网站| 亚洲va欧美va国产va天堂影院| 天天影视网天天综合色在线播放| 午夜欧美视频在线观看 | 亚洲精品视频免费看| 成人综合婷婷国产精品久久蜜臀| 成人av资源站| 久久亚洲私人国产精品va媚药| 国产日韩视频一区二区三区| 久久不见久久见免费视频7| 91黄色激情网站| 国产精品美女久久福利网站| 国产资源在线一区| 精品播放一区二区| 国产在线精品免费| 久久久久国产一区二区三区四区 | 久久99国产精品成人| 日韩视频一区二区在线观看| 视频一区视频二区中文| 欧美福利电影网|