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

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

?? intarchlib.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* intArchLib.c - architecture-dependent interrupt library *//* Copyright 1984-2001 Wind River Systems, Inc. *//*modification history--------------------02v,05jun02,wsl  remove reference to SPARC and i96002u,09may02,wsl  fix minor formatting error02t,20nov01,hdn  updated x86 specific sections02s,13nov01,hbh  Updated for simulators.02r,30oct01,zl   corrected table in SH section of intConnect().02q,02oct01,hdn  added intStackEnable() for PENTIUM (spr 69832: int stack)02p,14sep01,hdn  added intHandlerCreateI86()/intVec[SG]et2() doc (spr 30292)02o,19feb01,hk   update intConnect()/intVecBaseSet()/intVecSet() docs for T2/SH.02n,03mar00,zl   merged SH support into T202m,16mar99,elg  add information about conversion macros (SPR 7473).02l,12mar99,elg  delete the SEE ALSO comment in intLevelSet() (SPR 22809).02k,11feb99,wsl  add comment documenting ERRNO value02j,05oct98,jmp  doc: added {...} when necessary.02i,21apr98,jpd  updated ARM-specific documentation.02h,08jul97,dgp  doc: add info about PowerPC to intLock() (SPR 7768)02h,03mar97,jpd  added ARM-specific documentation.02g,09dec96,dgp  doc: fix SPR #7580 (add INCLUDE FILE: intLib.h) and change		      MIPS R3000/R4000 to MIPS02f,14nov96,dgp  doc: specify MIPS and PPC support for specific routines02e,30oct96,dgp  doc: intHandlerCreate() does not exist in PowerPC per 		 SPR 585102d,25nov95,jdi  removed 29k stuff.02c,06feb95,rhp  add AM29K note to intHandlerCreate() man page.            jdi  changed 80960 to i960.02b,26jan95,rhp  doc: included i386/i486 info, R4000 info, and misc doc tweaks02a,12jan95,rhp  propagated no-syscall caveat to intLevelSet doc (SPR#1094);                 added refs to intLock() and taskLock() to SEE ALSO line                  for intLockLevelSet(), and second example to intLock() man page                 (SPR#1304).01d,18apr94,pme  added Am29K specific information to intLevelSet()                 fixed intVecGet() manual for Am29200 and Am29030.01c,07dec93,pme  doc tweaks.		 added Am29K family support.01h,22sep94,rhp  Restore paragraph break accidentally deleted with previous fix.01g,22sep94,rhp  fix SPARC-specific intVecSet() description (SPR#2513).01f,20sep94,rhp  propagate new SPARC info for intVecBaseSet()01e,20sep94,rhp  propagate new SPARC info for intVecSet(); '94 copyright01d,19sep94,rhp  do not mention exceptions in intArchLib man page (SPR#1494).01c,16sep94,rhp  add caveats re avoiding system calls under intLock (SPR#3582).01b,20jan93,jdi  documentation cleanup.01a,23sep92,jdi  written, based on intALib.s and intArchLib.c for		 mc68k, sparc, i960, mips.*//*DESCRIPTIONThis library provides architecture-dependent routines to manipulateand connect to hardware interrupts.  Any C language routine can beconnected to any interrupt by calling intConnect().  Vectors can beaccessed directly by intVecSet() and intVecGet().  The vector (trap)base register (if present) can be accessed by the routinesintVecBaseSet() and intVecBaseGet().Tasks can lock and unlock interrupts by calling intLock() and intUnlock().The lock-out level can be set and reported by intLockLevelSet() andintLockLevelGet() (MC680x0, x86, ARM and SH only).The routine intLevelSet() changes the current interrupt level of theprocessor (MC680x0, ARM, SimSolaris and SH).WARNINGDo not call VxWorks system routines with interrupts locked.Violating this rule may re-enable interrupts unpredictably.INTERRUPT VECTORS AND NUMBERSMost of the routines in this library take an interrupt vector as aparameter, which is generally the byte offset into the vector table.Macros are provided to convert between interrupt vectors and interruptnumbers:.iP IVEC_TO_INUM(intVector) 10converts a vector to a number..iP INUM_TO_IVEC(intNumber)converts a number to a vector..iP TRAPNUM_TO_IVEC(trapNumber)converts a trap number to a vector.EXAMPLETo switch between one of several routines for a particular interrupt,the following code fragment is one alternative:.CS    vector  = INUM_TO_IVEC(some_int_vec_num);    oldfunc = intVecGet (vector);    newfunc = intHandlerCreate (routine, parameter);    intVecSet (vector, newfunc);    ...    intVecSet (vector, oldfunc);    /@ use original routine @/    ...    intVecSet (vector, newfunc);    /@ reconnect new routine @/.CEINCLUDE FILES: iv.h, intLib.hSEE ALSO: intLib*//********************************************************************************* intLevelSet - set the interrupt level (MC680x0, x86, ARM, SimSolaris, SimNT and SH)** This routine changes the interrupt mask in the status register to take on* the value specified by <level>.  Interrupts are locked out at or below* that level.  The value of <level> must be in the following range:** .TS* tab(|);* l l.*     MC680x0:	        | 0 - 7*     SH:	        | 0 - 15*     ARM:	        | BSP-specific*     SimSolaris:	| 0 - 1*     x86:	        | interrupt controller specific* .TE** \"On SPARC systems, traps must be enabled before the call.* On x86 systems, there are no interrupt level in the processor* and the external interrupt controller manages the interrupt level.* Therefore this routine does nothing and returns OK always.** NOTE SIMNT: * This routine does nothing.** WARNING* Do not call VxWorks system routines with interrupts locked.* Violating this rule may re-enable interrupts unpredictably.** RETURNS: The previous interrupt level.*/int intLevelSet    (    int level	/* new interrupt level mask */    )    {    ...    }/********************************************************************************* intLock - lock out interrupts* * This routine disables interrupts.  The intLock() routine returns an* architecture-dependent lock-out key representing the interrupt level* prior to the call; this key can be passed to intUnlock() to* re-enable interrupts.* * For MC680x0, x86, and SH architectures, interrupts* are disabled at the level set by intLockLevelSet().  The default* lock-out level is the highest interrupt level (MC680x0 = 7,* x86 = 1, SH = 15).  * * For SimSolaris architecture, interrupts are masked. Lock-out level returned* is 1 if interrupts were already locked, 0 otherwise.** For SimNT, a windows semaphore is used to lock the interrupts.* Lock-out level returned is 1 if interrupts were already locked, 0 otherwise.** For MIPS processors, interrupts are disabled at the* master lock-out level; this means no interrupt can occur even if* unmasked in the IntMask bits (15-8) of the status register.** For ARM processors, interrupts (IRQs) are disabled by setting the I bit* in the CPSR. This means no IRQs can occur.** For PowerPC processors, there is only one interrupt vector.  The external* interrupt (vector offset 0x500) is disabled when intLock() is called; this* means that the processor cannot be interrupted by any external event.** IMPLEMENTATION* The lock-out key is implemented differently for different architectures:** .TS* tab(|);* l l.*     MC680x0:     | interrupt field mask*     MIPS:        | status register*     x86:         | interrupt enable flag (IF) bit from EFLAGS register*     PowerPC:     | MSR register value*     ARM          | I bit from the CPSR*     SH:          | status register*     SimSolaris:  | 1 or 0 *     SimNT:       | 1 or 0 * .TE* * WARNINGS* Do not call VxWorks system routines with interrupts locked.* Violating this rule may re-enable interrupts unpredictably.** The routine intLock() can be called from either interrupt or task level.* When called from a task context, the interrupt lock level is part of the* task context.  Locking out interrupts does not prevent rescheduling.* Thus, if a task locks out interrupts and invokes kernel services that* cause the task to block (e.g., taskSuspend() or taskDelay()) or that cause a* higher priority task to be ready (e.g., semGive() or taskResume()), then* rescheduling occurs and interrupts are unlocked while other tasks* run.  Rescheduling may be explicitly disabled with taskLock().* Traps must be enabled when calling this routine.* ** EXAMPLES* .CS*     lockKey = intLock ();**      ... (work with interrupts locked out)**     intUnlock (lockKey);* .CE** To lock out interrupts and task scheduling as well (see WARNING above):* .CS*     if (taskLock() == OK)*         {*         lockKey = intLock ();**         ... (critical section)**         intUnlock (lockKey);*         taskUnlock();*         }*      else*         {*         ... (error message or recovery attempt)*         }* .CE** RETURNS* An architecture-dependent lock-out key for the interrupt level* prior to the call.** SEE ALSO: intUnlock(), taskLock(), intLockLevelSet()*/int intLock (void)    {    ...    }/********************************************************************************* intUnlock - cancel interrupt locks** This routine re-enables interrupts that have been disabled by intLock().* The parameter <lockKey> is an architecture-dependent lock-out key* returned by a preceding intLock() call.** RETURNS: N/A** SEE ALSO: intLock()*/void intUnlock    (    int lockKey		/* lock-out key returned by preceding intLock() */    )    {    ...    }/********************************************************************************* intEnable - enable corresponding interrupt bits (MIPS, PowerPC, ARM)* * This routine enables the input interrupt bits on the present status* register of the MIPS and PowerPC processors.** NOTE ARM:* ARM processors generally do not have on-chip interrupt controllers.* Control of interrupts is a BSP-specific matter.  This routine calls a* BSP-specific routine to enable the interrupt.  For each interrupt* level to be used, there must be a call to this routine before it will* be allowed to interrupt.** NOTE MIPS:* For MIPS, it is strongly advised that the level be a combination of* `SR_IBIT1' - `SR_IBIT8'.** RETURNS: OK or ERROR. (MIPS: The previous contents of the status register).* */int intEnable    (    int level	  /* new interrupt bits (0x00 - 0xff00) */    )    {    ...    }/********************************************************************************* intDisable - disable corresponding interrupt bits (MIPS, PowerPC, ARM)* * On MIPS and PowerPC architectures, this routine disables the corresponding* interrupt bits from the present status register.  ** NOTE ARM:* ARM processors generally do not have on-chip interrupt controllers.* Control of interrupts is a BSP-specific matter. This routine calls a* BSP-specific routine to disable a particular interrupt level,* regardless of the current interrupt mask level.** NOTE MIPS:* For MIPS, the macros `SR_IBIT1' - `SR_IBIT8' define bits that may be set.** RETURNS: OK or ERROR. (MIPS: The previous contents of the status register).*/int intDisable    (    int level	  /* new interrupt bits (0x0 - 0xff00) */    )    {    ...    }/********************************************************************************* intCRGet - read the contents of the cause register (MIPS)** This routine reads and returns the contents of the MIPS cause* register.** RETURNS: The contents of the cause register.*/int intCRGet (void)    {    ...    }/********************************************************************************* intCRSet - write the contents of the cause register (MIPS)** This routine writes the contents of the MIPS cause register.** RETURNS: N/A*/void intCRSet    (    int value      /* value to write to cause register */    )    {    ...    }/********************************************************************************* intSRGet - read the contents of the status register (MIPS)** This routine reads and returns the contents of the MIPS status* register.** RETURNS: The previous contents of the status register.*/int intSRGet (void)    {    ...    }/********************************************************************************* intSRSet - update the contents of the status register (MIPS)** This routine updates and returns the previous contents of the MIPS* status register.** RETURNS: The previous contents of the status register.*/int intSRSet    (    int value	  /* value to write to status register */    )    {    ...    }/********************************************************************************* intConnect - connect a C routine to a hardware interrupt** This routine connects a specified C routine to a specified interrupt* vector.  The address of <routine> is generally stored at <vector> so* that <routine> is called with <parameter> when the interrupt occurs.* The routine is invoked in supervisor mode at interrupt level.  A proper* C environment is established, the necessary registers saved, and the* stack set up.** The routine can be any normal C code, except that it must not invoke

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区三区| 国产激情一区二区三区桃花岛亚洲| 91亚洲午夜精品久久久久久| 国产精品欧美久久久久无广告 | 97精品久久久午夜一区二区三区| 国产欧美日韩综合精品一区二区| 粉嫩在线一区二区三区视频| 国产精品久久久久久亚洲伦| 在线视频中文字幕一区二区| 亚洲成人自拍偷拍| 欧美第一区第二区| 国产精品1区2区| 亚洲欧美色综合| 欧美日韩高清影院| 蜜桃视频在线观看一区| 国产日韩一级二级三级| 色av综合在线| 日韩精品91亚洲二区在线观看| 精品欧美乱码久久久久久| 国产不卡视频在线观看| 亚洲一区二区中文在线| 精品国产乱子伦一区| 97se亚洲国产综合在线| 同产精品九九九| 日本一区二区三区免费乱视频| 欧美无人高清视频在线观看| 久久国产欧美日韩精品| 综合电影一区二区三区 | 337p粉嫩大胆色噜噜噜噜亚洲| 成人短视频下载| 亚洲国产成人av网| 国产亚洲欧美中文| 欧美日韩在线播放一区| 国产精品综合av一区二区国产馆| 亚洲精品美腿丝袜| 久久男人中文字幕资源站| 91精彩视频在线| 精品一区二区三区香蕉蜜桃| 综合色中文字幕| 久久久青草青青国产亚洲免观| 欧美色大人视频| 成人亚洲一区二区一| 久久精品国产99| 亚洲精品老司机| 中文久久乱码一区二区| 欧美一二三在线| 日本韩国欧美一区二区三区| 国产酒店精品激情| 免费观看成人av| 亚洲一二三四在线| 亚洲欧洲日产国产综合网| 精品久久久影院| 欧美久久久久中文字幕| 91网址在线看| 成人av中文字幕| 国产在线国偷精品免费看| 天天综合色天天| 亚洲精品美腿丝袜| 中文字幕av一区二区三区免费看 | 日韩视频在线永久播放| 欧美亚洲综合一区| 成人免费视频一区| 国产一二三精品| 强制捆绑调教一区二区| 亚洲综合视频在线| 日韩理论片在线| 亚洲国产成人在线| 精品福利一区二区三区免费视频| 欧美巨大另类极品videosbest| 91久久精品国产91性色tv| 色哟哟精品一区| 9人人澡人人爽人人精品| 国产一区二区三区日韩| 极品少妇xxxx精品少妇偷拍| 日韩一区精品视频| 丝袜诱惑制服诱惑色一区在线观看 | 国产欧美精品一区二区色综合 | 三级影片在线观看欧美日韩一区二区| 亚洲免费资源在线播放| 亚洲男同性恋视频| 亚洲精品国产精品乱码不99| 自拍偷在线精品自拍偷无码专区 | 精品视频在线免费观看| 欧美性色aⅴ视频一区日韩精品| 欧美在线免费视屏| 欧美日韩日日摸| 欧美电影一区二区三区| 制服丝袜中文字幕一区| 日韩小视频在线观看专区| 欧美变态口味重另类| 国产婷婷一区二区| 成人免费在线视频| 亚洲曰韩产成在线| 水蜜桃久久夜色精品一区的特点| 日本视频一区二区| 久久99精品久久只有精品| 国产综合一区二区| 成人av电影在线| 日本久久一区二区三区| 777奇米成人网| 久久婷婷国产综合精品青草| 国产视频911| 亚洲欧美日韩久久精品| 天天射综合影视| 国产麻豆精品theporn| 国产91精品露脸国语对白| 色香蕉久久蜜桃| 在线不卡的av| 日本一区二区视频在线| 一区二区欧美精品| 毛片av一区二区| 本田岬高潮一区二区三区| 欧美天堂一区二区三区| 日韩久久久久久| 国产精品国产三级国产| 日韩精品电影一区亚洲| 国产99久久久国产精品潘金 | 51精品视频一区二区三区| 精品乱人伦小说| 亚洲色图欧美激情| 热久久免费视频| jiyouzz国产精品久久| 欧美三区在线观看| 国产人久久人人人人爽| 亚洲成人你懂的| 国产成人精品网址| 欧美高清性hdvideosex| 国产精品国产三级国产三级人妇| 午夜成人在线视频| 不卡免费追剧大全电视剧网站| 欧美精品第1页| 中文字幕日韩av资源站| 日本vs亚洲vs韩国一区三区二区| 成人黄页毛片网站| 日韩欧美在线不卡| 夜夜操天天操亚洲| 高清不卡一区二区| 欧美一区二区久久| 亚洲综合免费观看高清完整版| 国产精品中文字幕日韩精品| 欧美日韩精品一区二区天天拍小说| 欧美国产禁国产网站cc| 九九在线精品视频| 777欧美精品| 亚洲国产精品久久久久秋霞影院| 99久久国产综合精品色伊| 久久久久久久久久久久久久久99| 日韩专区中文字幕一区二区| 色哟哟亚洲精品| 亚洲手机成人高清视频| 成人一二三区视频| 国产女人水真多18毛片18精品视频| 理论电影国产精品| 在线播放日韩导航| 五月婷婷综合在线| 欧美中文字幕久久| 亚洲综合在线电影| 91亚洲精华国产精华精华液| 国产欧美日本一区视频| 国产一区二区三区四区五区美女| 日韩欧美成人激情| 精品一区二区在线视频| 欧美xxxx老人做受| 蜜臀av性久久久久av蜜臀妖精| 欧美一级在线观看| 日本视频一区二区三区| 日韩午夜在线观看| 奇米色一区二区三区四区| 欧美精品亚洲二区| 日本系列欧美系列| 精品区一区二区| 成人性生交大合| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 中文字幕 久热精品 视频在线| 国产尤物一区二区在线| 久久久www成人免费无遮挡大片| 精品一区二区久久久| 国产女主播在线一区二区| 国产91综合网| 亚洲精品综合在线| 欧美日韩成人在线| 精品一区二区在线观看| 国产情人综合久久777777| 播五月开心婷婷综合| 亚洲婷婷综合色高清在线| 欧美在线不卡视频| 日韩av一级片| 国产色产综合色产在线视频| 99国产精品99久久久久久| 亚洲精品水蜜桃| 日韩视频在线观看一区二区| 国产精品一区二区黑丝| 亚洲免费观看在线视频| 在线成人av影院| 国产一区二区三区免费看| 亚洲视频综合在线| 日韩午夜在线观看| www.亚洲在线| 午夜视频在线观看一区二区| 精品国产不卡一区二区三区|