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

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

?? excarchlib.c

?? vxworks的源代碼
?? C
字號:
/* excArchLib.c - architecture-specific exception-handling facilities *//* Copyright 1984-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01p,20nov02,hdn  added doc for excDoBell in x86 specific section.01o,05jun02,wsl  remove reference to SPARC and i96001n,20nov01,hdn  updated x86 specific sections.01m,13nov01,hbh  Updated for simulators.01l,29oct01,zl   updated SH specific sections.01k,03mar00,zl   merged SH support into T201j,26mar97,jdi  tam  added excCrtConnect() and excIntCrtConnect() for PPC 403.01j,27feb97,jpd  added ARM-specific documentation.01i,23mar96,jdi  doc: edits to PowerPC additions.01h,08mar96,kkk  added PowerPC specific routines.01g,25nov95,jdi  removed 29k stuff.01f,06oct95,jdi  removed .pG "Debugging".01e,10feb95,jdi  changed 80960 to i960.01d,30jan95,rhp  added MIPS, i386/i486 doc.01c,02dec93,pme  added Am29K family support.01b,20jan93,jdi  documenation cleanup.01a,23sep92,jdi  written, based on excArchLib.c for		 mc68k, sparc, i960, mips.*//*This library contains exception-handling facilities that are architecturedependent.  For information about generic (architecture-independent)exception-handling, see the manual entry for excLib.INCLUDE FILES: excLib.hSEE ALSO: excLib, dbgLib, sigLib, intLib*//********************************************************************************* excVecInit - initialize the exception/interrupt vectors** This routine sets all exception vectors to point to the appropriate* default exception handlers.  These handlers will safely trap and report* exceptions caused by program errors or unexpected hardware interrupts.* .IP `MC680x0': 8* All vectors from vector 2 (address 0x0008) to 255 (address 0x03fc) are* initialized.  Vectors 0 and 1 contain the reset stack pointer and program* counter.* \".IP `SPARC':* \"All vectors from 0 (offset 0x000) through 255 (offset 0xff0) are* \"initialized.* \".IP `i960':* \"The i960 fault table is filled with* \"a default fault handler, and all non-reserved vectors in the i960* \"interrupt table are filled with a default interrupt handler.* .IP `MIPS':* All MIPS exception, trap, and interrupt vectors are set to default handlers.* .IP `x86':* All vectors from vector 0 (offset (0x0000) to 255 (offset 0x07f8) are* initialized to default handlers.  A global variable excDoBell controls* the bell that takes 660 microsecs in the default exception show routine.* The default value is TRUE.  To turn the bell off, set it FALSE.* .IP `PowerPC':* There are 48 vectors and only vectors that are used are initialized.* .IP `SH':* There are 256 vectors, initialized with the default exception handler (for * exceptions) or the unitialized interrupt handler (for interupts).* On SH-2, vectors 0 and 1 contain the power-on reset program counter and * stack pointer. Vectors 2 and 3 contain the manual reset program counter and* stack pointer. On SH-3 and SH-4 processors the vector table is located at * (vbr + 0x800), and the (exception code / 8) value is used as vector offset.* The first two vectors are reserved for special use: "trapa #0" (offset 0x0)* to implement software breakpoint, and "trapa #1' (offset 0x4) to detect * integer zero divide exception.* .IP `ARM':* All exception vectors are initialized to default handlers except 0x14* (Address) which is now reserved on the ARM and 0x1C (FIQ), which is not* used by VxWorks.* .IP `SimSolaris/SimNT':* This routine does nothing on both simulators and always returns OK.* .LP** NOTE* This routine is usually called from the system start-up routine,* usrInit(), in usrConfig.c.  It must be called before interrupts are enabled.* \"(SPARC: It must also be called when the system runs with the on-chip windows* \"(no stack)).** RETURNS: OK, always.** SEE ALSO: excLib*/STATUS excVecInit (void)    {    ...    }/****************************************************************************** excConnect - connect a C routine to an exception vector (PowerPC)** This routine connects a specified C routine to a specified exception* vector.  An exception stub is created and in placed at <vector> in the* exception table.  The address of <routine> is stored in the exception stub* code.  When an exception occurs, the processor jumps to the exception stub* code, saves the registers, and calls the C routines.** The routine can be any normal C code, except that it must not* invoke certain operating system functions that may block or perform* I/O operations.** The registers are saved to an Exception Stack Frame (ESF) placed on the* stack of the task that has produced the exception.  The structure of the* ESF used to save the registers is defined in h/arch/ppc/esfPpc.h.** The only argument passed by the exception stub to the C routine is a pointer* to the ESF containing the registers values.  The prototype of this C routine* is described below:* .CS*     void excHandler (ESFPPC *);* .CE** When the C routine returns, the exception stub restores the registers saved* in the ESF and continues execution of the current task.** RETURNS: OK, always.** SEE ALSO: excIntConnect(), excVecSet()*/STATUS excConnect    (    VOIDFUNCPTR * vector,   /* exception vector to attach to */    VOIDFUNCPTR   routine   /* routine to be called */    )    {    ...    }/****************************************************************************** excIntConnect - connect a C routine to an asynchronous exception vector (PowerPC, ARM)** This routine connects a specified C routine to a specified asynchronous* exception vector.** When the C routine is invoked, interrupts are still locked.  It is the* responsibility of the C routine to re-enable the interrupt.** The routine can be any normal C code, except that it must not* invoke certain operating system functions that may block or perform* I/O operations.** NOTE:* On PowerPC, the vector is typically the external interrupt vector* 0x500 and the decrementer vector 0x900.  An interrupt stub is created* and placed at <vector> in the exception table.  The address of* <routine> is stored in the interrupt stub code.  When the asynchronous* exception occurs the processor jumps to the interrupt stub code, saves* only the requested registers, and calls the C routines.** Before saving the requested registers, the interrupt stub switches from the* current task stack to the interrupt stack.  For nested interrupts, no* stack-switching is performed, because the interrupt is already set.** NOTE:* On the ARM, the address of <routine> is stored in a function pointer* to be called by the stub installed on the IRQ exception vector* following an asynchronous exception.  This routine is responsible for* determining the interrupt source and despatching the correct handler* for that source.** Before calling the routine, the interrupt stub switches to SVC mode,* changes to a separate interrupt stack and saves necessary registers. In* the case of a nested interrupt, no SVC stack switch occurs.** RETURNS: OK, always.** SEE ALSO: excConnect(), excVecSet()*/STATUS excIntConnect    (    VOIDFUNCPTR * vector,         /* exception vector to attach to */    VOIDFUNCPTR   routine         /* routine to be called */    )    {    ...    }/********************************************************************************* excCrtConnect - connect a C routine to a critical exception vector (PowerPC 403)** This routine connects a specified C routine to a specified critical exception* vector.  An exception stub is created and in placed at <vector> in the* exception table.  The address of <routine> is stored in the exception stub* code.  When an exception occurs, the processor jumps to the exception stub* code, saves the registers, and call the C routines.** The routine can be any normal C code, except that it must not* invoke certain operating system functions that may block or perform* I/O operations.** The registers are saved to an Exception Stack Frame (ESF) which is placed* on the stack of the task that has produced the exception.  The ESF structure* is defined in h/arch/ppc/esfPpc.h.** The only argument passed by the exception stub to the C routine is a pointer* to the ESF containing the register values.  The prototype of this C routine* is as follows:* .CS*     void excHandler (ESFPPC *);* .CE** When the C routine returns, the exception stub restores the registers saved* in the ESF and continues execution of the current task.** RETURNS: OK, always.* * SEE ALSO: excIntConnect(), excIntCrtConnect, excVecSet()*/STATUS excCrtConnect    (    VOIDFUNCPTR * vector,               /* exception vector to attach to */    VOIDFUNCPTR   routine               /* routine to be called */    )    {    ...    }/********************************************************************************* excIntCrtConnect - connect a C routine to a critical interrupt vector (PowerPC 403)** This routine connects a specified C routine to a specified asynchronous * critical exception vector such as the critical external interrupt vector * (0x100), or the watchdog timer vector (0x1020).  An interrupt stub is created * and placed at <vector> in the exception table.  The address of <routine> is * stored in the interrupt stub code.  When the asynchronous exception occurs,* the processor jumps to the interrupt stub code, saves only the requested * registers, and calls the C routines.** When the C routine is invoked, interrupts are still locked.  It is the* C routine's responsibility to re-enable interrupts.** The routine can be any normal C routine, except that it must not* invoke certain operating system functions that may block or perform* I/O operations.** Before the requested registers are saved, the interrupt stub switches from the* current task stack to the interrupt stack.  In the case of nested interrupts, no* stack switching is performed, because the interrupt stack is already set.** RETURNS: OK, always.* * SEE ALSO: excConnect(), excCrtConnect, excVecSet()*/STATUS excIntCrtConnect    (    VOIDFUNCPTR * vector,               /* exception vector to attach to */    VOIDFUNCPTR   routine               /* routine to be called */    )    {    ...    }/****************************************************************************** excVecSet - set a CPU exception vector (PowerPC, ARM)** This routine specifies the C routine that will be called when the exception* corresponding to <vector> occurs.  This routine does not create the* exception stub; it simply replaces the C routine to be called in the* exception stub.** NOTE ARM:* On the ARM, there is no excConnect() routine, unlike the PowerPC. The C* routine is attached to a default stub using excVecSet().** RETURNS: N/A** SEE ALSO: excVecGet(), excConnect(), excIntConnect()*/void excVecSet    (    FUNCPTR * vector,     /* vector offset */    FUNCPTR   function    /* address to place in vector */    )    {    ...    }/****************************************************************************** excVecGet - get a CPU exception vector (PowerPC, ARM)** This routine returns the address of the C routine currently connected to* <vector>.** RETURNS: The address of the C routine.** SEE ALSO: excVecSet()*/FUNCPTR excVecGet    (    FUNCPTR * vector   /* vector offset */    )    {    ...    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费观看视频在线| 久久―日本道色综合久久| 欧美精品色综合| 久久久不卡影院| 三级精品在线观看| 99精品视频在线免费观看| 日韩欧美123| 亚洲高清一区二区三区| www.久久久久久久久| 精品乱人伦一区二区三区| 香蕉成人伊视频在线观看| 成a人片国产精品| 国产午夜精品一区二区三区嫩草| 亚洲成人自拍网| 在线这里只有精品| 日韩毛片视频在线看| 国产精品91xxx| 日韩一区二区在线看| 午夜视频在线观看一区| 欧美中文字幕一区| 亚洲男人天堂av| 99国产麻豆精品| 中文字幕一区二区三区蜜月| 国产成人精品aa毛片| 久久精品欧美一区二区三区麻豆| 精品一区二区免费在线观看| 欧美成人一区二区| 蜜桃视频在线观看一区二区| 678五月天丁香亚洲综合网| 亚洲国产日韩av| 欧美三级日本三级少妇99| 一区二区三区欧美在线观看| 色综合久久中文字幕| 亚洲品质自拍视频| 色就色 综合激情| 亚洲在线观看免费| 欧美精品在线观看一区二区| 日韩国产一区二| 精品人伦一区二区色婷婷| 国内精品伊人久久久久影院对白| 337p粉嫩大胆色噜噜噜噜亚洲| 韩国av一区二区| 亚洲欧美在线另类| 91精品1区2区| 欧美bbbbb| 久久久久久久一区| av一区二区不卡| 亚洲一区二区精品3399| 91.麻豆视频| 狠狠色丁香九九婷婷综合五月| 欧美激情一区二区三区蜜桃视频| www.日韩在线| 午夜精品国产更新| www精品美女久久久tv| 成人综合在线观看| 一区二区国产盗摄色噜噜| 欧美精品欧美精品系列| 激情久久五月天| 亚洲欧美自拍偷拍色图| 欧美三级日韩三级| 国产美女视频一区| 一区二区三区在线高清| 欧美r级在线观看| av一区二区久久| 日韩国产精品久久久| 国产精品素人一区二区| 欧美午夜在线一二页| 国产一区二区视频在线| 亚洲综合小说图片| 久久影院电视剧免费观看| 91小视频免费观看| 久久99国产精品麻豆| 亚洲区小说区图片区qvod| 欧美α欧美αv大片| 一本色道久久综合亚洲91| 精品综合久久久久久8888| 亚洲欧美偷拍卡通变态| 欧美成人在线直播| 国产精品综合一区二区| 一区二区三区.www| 久久伊人中文字幕| 欧美色爱综合网| 波多野结衣精品在线| 麻豆精品久久精品色综合| 一区二区三区在线视频观看| 久久久久九九视频| 日韩一区二区三区视频| 91黄视频在线观看| av亚洲精华国产精华精| 国产自产v一区二区三区c| 亚洲第一福利一区| 国产精品短视频| 欧美一区二区三区在线观看| 欧洲国内综合视频| 粉嫩av亚洲一区二区图片| 美女一区二区久久| 日韩激情视频在线观看| 亚洲精品成人天堂一二三| 久久噜噜亚洲综合| 精品区一区二区| 欧美zozo另类异族| 在线播放国产精品二区一二区四区| 99精品欧美一区二区三区小说| 国产一区二区不卡在线| 国产一区二区主播在线| 精品在线播放免费| 精品制服美女久久| 精久久久久久久久久久| 久草中文综合在线| 久久疯狂做爰流白浆xx| 免费观看一级特黄欧美大片| 日韩国产欧美视频| 久久精品国产在热久久| 蜜臀av一区二区在线观看 | 激情综合色综合久久| 午夜精品福利一区二区蜜股av| 亚洲一级不卡视频| 亚洲成av人影院| 日韩国产精品大片| 经典三级在线一区| 国产不卡在线一区| 成人精品电影在线观看| 91色在线porny| 欧美性受xxxx| 欧美一级欧美一级在线播放| 日韩三级高清在线| 国产午夜精品一区二区三区嫩草 | 日韩三级伦理片妻子的秘密按摩| 日韩限制级电影在线观看| 日韩情涩欧美日韩视频| wwwwww.欧美系列| 中文字幕亚洲成人| 亚洲精品国产无套在线观| 亚洲va中文字幕| 国产在线精品一区二区夜色| 国产一区啦啦啦在线观看| 国产91对白在线观看九色| 99国产精品久久| 欧美日韩精品系列| 久久夜色精品国产噜噜av| 国产精品免费观看视频| 一区二区三区影院| 日本不卡高清视频| 国产成a人无v码亚洲福利| 欧美在线free| 久久夜色精品一区| 亚洲免费三区一区二区| 蜜臀久久99精品久久久久宅男| 国产69精品久久久久777| 欧美综合亚洲图片综合区| 欧美乱妇一区二区三区不卡视频| 久久久亚洲午夜电影| 亚洲理论在线观看| 狠狠色丁香婷婷综合久久片| 在线中文字幕不卡| 久久精品视频一区| 午夜精品福利一区二区三区av| 懂色av中文一区二区三区 | 日韩国产高清在线| 成人免费高清在线| 日韩一区二区电影| 亚洲女子a中天字幕| 国产一区二区伦理| 91精品国产色综合久久| 亚洲精品高清在线| 国产高清视频一区| 欧美男男青年gay1069videost| 日本一区二区综合亚洲| 蜜臀久久99精品久久久久久9| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩免费看的电影| 亚洲一区二区成人在线观看| 国产精品99久久久| 欧美一区二区三区电影| 亚洲日本欧美天堂| 国产美女精品一区二区三区| 欧美一区二区三区啪啪| 亚洲伊人色欲综合网| 成人精品国产福利| 久久久欧美精品sm网站| 免费不卡在线观看| 欧美日韩免费不卡视频一区二区三区| 国产欧美日韩精品在线| 久久99精品国产91久久来源| 欧美年轻男男videosbes| 亚洲欧美色图小说| 91丨九色丨尤物| 中文字幕视频一区二区三区久| 国产夫妻精品视频| 久久久精品免费免费| 精品亚洲成a人| 精品国产乱码久久久久久久| 蜜桃av一区二区三区| 欧美疯狂做受xxxx富婆| 亚洲一区二区三区在线播放| 色菇凉天天综合网| 亚洲综合精品久久| 欧美亚州韩日在线看免费版国语版| 亚洲免费av高清| 色av成人天堂桃色av|