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

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

?? intarchlib.c

?? vxworks的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* intArchLib.c - 680x0 interrupt subroutine library *//* Copyright 1984-1994 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------03x,14dec00,pai  added stub routines for intEnable and intDisable (SPR #63046).03w,10feb99,wsl  add comment documenting ERRNO value03v,23aug95,ms   removed taskSafe/Unsafe calls from intVecSet().03u,15jun95,ms	 added intRegsLock, intRegsUnlock03t,17oct94,rhp  remove docn reference to intALib (SPR#3712)03s,09oct92,rdc  intVecSet checks taskIdCurrent before TASK_{SAFE,UNSAFE}.03r,16sep92,jdi  deleted mention of intContext() and intCount().03q,23aug92,jcf  changed cache* to CACHE_*. changed filename.03p,02aug92,jcf  added vxmIfVecxxx callout for monitor support.03o,28jul92,rdc  cleaned up intVecSet and made it TASK_SAFE.03n,27jul92,rdc  added intVecTableWriteProtect.03m,16jul92,jwt  added 5.1 cache flush and invalidate; cleaned up 03l warnings.03l,16jul92,rdc  intVecSet checks for write protected vector table.03k,07jul92,yao  removed intRestrict(), intContext(), intCount(), intCnt.03j,04jul92,jcf  cleaned up ANSI.03i,03jul92,jwt  first pass at converting cache calls to 5.1 cache library.03h,26may92,rrr  the tree shuffle03g,07jan92,jcf  added i-cache coherence calls.03g,04oct91,rrr  passed through the ansification filter                  -changed functions to ansi style		  -changed includes to have absolute path from h/		  -fixed #else and #endif		  -changed VOID to void		  -changed copyright notice03f,28aug91,shl  added support for MC68040.03e,05may91,jdi	 documentation changes.03d,05apr91,jdi	 documentation -- removed header parens and x-ref numbers;		 doc review by jcf.03c,13feb91,jaa	 documentation cleanup.03b,28sep90,jcf  documentation.03a,02aug90,jcf  made intRestrict() nomanual.02z,21dec21,jcf  moved intLock()/intUnlock() to intALib.s.02y,13aug89,gae  changed iv68k.h to iv.h.02x,24may89,jcf  made v02w solution optional.  clean up.02w,21apr89,jcf  fixed intUnlock () to solve psos priority inversion.02v,23sep88,gae  documentation touchup.02u,30aug88,gae  more documentation tweaks.02t,18aug88,gae  documentation.02s,12aug88,jcf  changed interrupt wrapper to better accomodate '010 wind.02r,30may88,dnw  changed to v4 names.02q,29oct87,gae  fixed intConnect() to use sysKernelTrap() and split		   routine construction into intHandlerCreate().		 made intSetVecBase() truly a NOP for 68000's.02p,10may87,gae  changed intConnect to not rely on structure layout.02o,27may87,llk  changed intConnect so that UI_ENTER is not included for 68020s.02n,16mar87,dnw  fixed documentation.		 added vxLockLevel.02m,21dec86,dnw  changed to not get include files from default directories.02l,29nov86,dnw  removed conditional assembly for 68020/68000.02k,28oct86,llk  conditionally compile out vector base address code		 for non 68020 based systems.02j,27oct86,llk  added facilities for using the vector base register.		 added intSetVec, intGetVec, intSetVecBase, intGetVecBase.02i,01jul86,jlf  minor documentation02h,14apr86,rdc  changed memAllocates to mallocs.02g,18jan86,dnw  added intCount routine to return interrupt nesting depth.		 included interrupt termination code, formerly in intEnd,		   directly in driver built by intConnect.02f,23oct85,jlf  changed stub made by intConnect to not call intEnt, but		   rather put the same code as intEnt in-line.  This is because		   of ISR stack switching.02e,11oct85,dnw  de-linted.02d,06aug85,jlf  removed include of intLib.h02c,20jul85,jlf  documentation.02b,31may85,jlf  added intContext and intCnt.  Made intConnect call		 intEnt (in intALib.s) instead of trapping to UI_ENTER.02a,05apr85,rdc  installed modifications for vrtx version 3.01e,06sep84,ecs  removed intInit, intTask, intTlCall, and intPrintf to dbgLib.		 got rid of includes of memLib.h, rngLib.h, and semLib.h.01d,04sep84,dnw  changed call to fioLog to printf.01c,22aug84,ecs  changed intPrintf to return status.01b,17aug84,dnw  added interrupt to task-level support routines01a,02aug84,dnw  extracted from old ubarLib*//*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().  On MC680x0 processors other than the 68000, the vector base register can beaccessed by the routines intVecBaseSet() and intVecBaseGet().Tasks can lock and unlock interrupts by calling the routines intLock() andintUnlock().  The lock level can be set and reported by intLockLevelSet()and intLockLevelGet(); the default interrupt mask level is set to 7 bykernelInit() when VxWorks is initialized.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 the byte offset into the vector table.  Macros areprovided to convert between interrupt vectors and interrupt numbers:.iP IVEC_TO_INUM(intVector) 10changes a vector to a number..iP INUM_TO_IVEC(intNumber)turns a number into 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 FILE: iv.h*//* LINTLIBRARY */#include "vxWorks.h"#include "cacheLib.h"#include "errno.h"#include "intLib.h"#include "memLib.h"#include "sysLib.h"#include "taskLib.h"#include "string.h"#include "stdlib.h"#include "private/vxmIfLibP.h"#include "private/vmLibP.h"IMPORT void intVBRSet (FUNCPTR *baseAddr);IMPORT void intEnt ();		/* interrupt entrance stub */IMPORT void intExit ();		/* interrupt exit stub */#define	HI_WORD(w)		(short)(((int)(w) & 0xffff0000) >> 16)#define	LO_WORD(w)		(short)((int)(w) & 0x0000ffff)/* globals *//* The routine intLock(), found in intALib.s uses intLockMask to construct a * new SR with the correct interrupt lock-out level.  The difficulty is * intLock() may be called from either interrupt level, or task level, so * simply reserving a SR suchas 0x3700 does not work because such a SR would * assume task-level code. */USHORT intLockMask = 0x0700;	/* interrupt lock mask - default level 7 *//* The kernel also locks interrupts but unlike intLock() it knows which stack * is being used so intLockIntSR is a status register to lock interrupts from * the interrupt stack, and intLockTaskSR is a status register to lock * interrupts from the task stack.  These SRs are updated by * intLockLevelSet().  It is faster to move these SRs into the * SR, then to 'or' in the intLockMask, because there is no: or.w <ea>,SR. */USHORT intLockIntSR  = 0x2700;	/* SR for locking interrupts from int. level */USHORT intLockTaskSR = 0x3700;	/* SR for locking interrupts from task level */LOCAL int  dummy (void) { return ERROR; }  /* dummy, returns ERROR   */FUNCPTR    sysIntLvlEnableRtn  = dummy;    /* enable a single level  */FUNCPTR    sysIntLvlDisableRtn = dummy;    /* disable a single level *//* locals */LOCAL FUNCPTR *intVecBase = 0;		/* vector base address */LOCAL USHORT intConnectCode []	=	/* intConnect stub */    {/**0x00  4EB9 kkkk kkkk	jsr	_intEnt  	  * tell kernel*0x06  48E7 E0C0	movem.l	d0-d2/a0-a1,-(a7) * save regs*0x0a  2F3C pppp pppp	move.l	#parameter,-(a7)  * push param*0x10  4EB9 rrrr rrrr	jsr	routine		  * call C routine*0x16  588F		addq.l  #4,a7             * pop param*0x18  4CDF 0307	movem.l (a7)+,d0-d2/a0-a1 * restore regs*0x1c  4EF9 kkkk kkkk	jmp     _intExit          * exit via kernel*/     0x4eb9, 0x0000, 0x0000,	/* _intEnt filled in at runtime */     0x48e7, 0xe0c0,     0x2f3c, 0x0000, 0x0000,	/* parameter filled in at runtime */     0x4eb9, 0x0000, 0x0000,	/* routine to be called filled in at runtime */     0x588f,     0x4cdf, 0x0307,     0x4ef9, 0x0000, 0x0000,	/* _intExit filled in at runtime */    };/* forward declarations */FUNCPTR	intHandlerCreate ();FUNCPTR	*intVecBaseGet ();FUNCPTR	intVecGet ();/********************************************************************************* 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 stored at <vector> so that <routine>* is called with <parameters> 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* certain operating system functions that may block or perform I/O* operations.** This routine simply calls intHandlerCreate() and intVecSet().  The address* of the handler returned by intHandlerCreate() is what actually goes in* the interrupt vector.** RETURNS:* OK, or* ERROR if the interrupt handler cannot be built.** SEE ALSO: intHandlerCreate(), intVecSet()*/STATUS intConnect    (    VOIDFUNCPTR *vector,            /* interrupt vector to attach to */    VOIDFUNCPTR routine,            /* routine to be called */    int parameter               /* parameter to be passed to routine */    )    {    FUNCPTR intDrvRtn = intHandlerCreate ((FUNCPTR) routine, parameter);    if (intDrvRtn == NULL)	return (ERROR);    /* make vector point to synthesized code */    intVecSet ((FUNCPTR *) vector, (FUNCPTR) intDrvRtn);    return (OK);    }/********************************************************************************* intEnable - enable a specific interrupt level** Enable a specific interrupt level.  For each interrupt level to be used,* there must be a call to this routine before it will be* allowed to interrupt.** RETURNS:* OK or ERROR for invalid arguments.*/int intEnable    (    int level   /* level to be enabled */    )    {    return (*sysIntLvlEnableRtn) (level);    }/********************************************************************************* intDisable - disable a particular interrupt level** This call disables a particular interrupt level, regardless of the current* interrupt mask level.** RETURNS:* OK or ERROR for invalid arguments.*/int intDisable    (    int level   /* level to be disabled */    )    {    return (*sysIntLvlDisableRtn) (level);    }/********************************************************************************* intHandlerCreate - construct an interrupt handler for a C routine** This routine builds an interrupt handler around the specified C routine.* This interrupt handler is then suitable for connecting to a specific* vector address with intVecSet().  The routine will be 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* certain operating system functions that may block or perform I/O* operations.** IMPLEMENTATION:* This routine builds an interrupt handler of the following form in* allocated memory.** .CS*     0x00  4EB9 kkkk kkkk jsr     _intEnt           * tell kernel*     0x06  48E7 E0C0      movem.l d0-d2/a0-a1,-(a7) * save regs

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看一区| 欧美一级淫片007| 91精品欧美久久久久久动漫| 国产精品色眯眯| 久久国产精品72免费观看| 91美女在线看| 国产精品网站在线| 国产一区二区电影| 制服丝袜日韩国产| 亚洲国产va精品久久久不卡综合 | 欧美电影免费观看高清完整版在 | 欧美mv和日韩mv国产网站| 亚洲免费观看高清在线观看| 欧美专区在线观看一区| 国产亚洲综合在线| 久久精品国产亚洲aⅴ| 3d成人动漫网站| 婷婷国产v国产偷v亚洲高清| www.亚洲国产| 国产精品久久久久久久久久免费看| 免费的成人av| 日韩一区二区三区电影在线观看| 亚洲大型综合色站| 欧美日韩一卡二卡三卡| 亚洲成人777| 欧美中文字幕亚洲一区二区va在线| 亚洲三级在线免费观看| 成人国产一区二区三区精品| 国产午夜精品久久久久久免费视 | 日本一区中文字幕| 91精品国产乱码久久蜜臀| 亚洲制服丝袜av| 欧美少妇性性性| 亚洲成人福利片| 欧美精品久久99久久在免费线| 亚洲成人一区二区| 欧美精品丝袜中出| 日本三级韩国三级欧美三级| 欧美精选午夜久久久乱码6080| 日日夜夜精品视频免费| 日韩一区二区三| 国产一区二区在线视频| 国产欧美日本一区二区三区| 成人av影视在线观看| 成人欧美一区二区三区黑人麻豆 | 欧美一区二区三区婷婷月色| 日本伊人色综合网| 精品国产髙清在线看国产毛片| 久久激五月天综合精品| 日本一区二区免费在线观看视频| 成人国产视频在线观看| 一区二区三区波多野结衣在线观看| 欧美影院一区二区三区| 五月婷婷综合激情| 国产午夜一区二区三区| 91久久精品网| 麻豆freexxxx性91精品| 中文字幕第一区第二区| 欧美日韩免费视频| 国产一区二区电影| 一区二区三区四区视频精品免费| 日韩欧美亚洲国产另类| av不卡一区二区三区| 日日骚欧美日韩| 国产精品久久久久久久蜜臀| 欧美日韩亚洲综合一区| 国产成人在线看| 天天综合天天综合色| 久久精品人人做| 欧美日韩国产精品成人| 成人精品小蝌蚪| 日产国产欧美视频一区精品| 国产精品美女www爽爽爽| 在线不卡中文字幕| av在线不卡观看免费观看| 日韩电影在线看| 亚洲精品美腿丝袜| 精品国产一区二区三区四区四| 91久久免费观看| 国产精品99久久久久久久女警| 亚洲国产日韩在线一区模特| 中文字幕精品综合| 日韩欧美亚洲国产精品字幕久久久 | 亚洲成人7777| 中文字幕亚洲在| 国产三级三级三级精品8ⅰ区| 欧美中文一区二区三区| 成人综合婷婷国产精品久久蜜臀 | 国产精品99久久久久久宅男| 亚洲综合久久久| 国产精品毛片无遮挡高清| 精品国产免费视频| 欧美一区二区人人喊爽| 精品视频在线视频| 日本韩国一区二区三区视频| 国产成人在线免费| 精品一区二区免费在线观看| 午夜久久久久久久久| 亚洲一区在线播放| 亚洲激情成人在线| 综合分类小说区另类春色亚洲小说欧美| 欧美成人精品二区三区99精品| 在线播放91灌醉迷j高跟美女| 91视视频在线观看入口直接观看www| 国产一区二三区好的| 国模娜娜一区二区三区| 激情欧美一区二区| 极品瑜伽女神91| 国产真实乱偷精品视频免| 久久国产尿小便嘘嘘| 久久精品国产一区二区三区免费看| 蜜桃视频在线一区| 日韩不卡一区二区三区 | 亚洲乱码一区二区三区在线观看| 日本一区二区视频在线观看| 国产人久久人人人人爽| 国产精品无人区| 综合久久一区二区三区| 亚洲精品自拍动漫在线| 一区二区三区精品视频在线| 一区二区国产盗摄色噜噜| 亚洲国产一区二区a毛片| 午夜精品影院在线观看| 日本欧美韩国一区三区| 九九国产精品视频| 国产精品一二三区| www.成人网.com| 色视频一区二区| 欧美精品色一区二区三区| 欧美一区二区精品在线| 久久久99免费| 综合欧美亚洲日本| 亚洲国产成人91porn| 久久不见久久见免费视频7| 国产激情精品久久久第一区二区 | 国产精品免费视频观看| 亚洲免费观看高清完整| 亚洲bdsm女犯bdsm网站| 久久成人久久爱| 91亚洲精品乱码久久久久久蜜桃| 精品视频色一区| 亚洲国产视频一区二区| 蜜臀av一区二区在线观看| 国产精品一区二区三区网站| av激情综合网| 欧美一区二区三区喷汁尤物| 久久欧美一区二区| 一区二区三区在线影院| 麻豆国产91在线播放| 91在线小视频| 91精品欧美一区二区三区综合在| 国产欧美日韩在线看| 一区二区三区在线免费| 韩国一区二区在线观看| 91丨国产丨九色丨pron| 91精品久久久久久蜜臀| 中文字幕在线免费不卡| 久久国产剧场电影| 在线观看日韩电影| 欧美极品美女视频| 亚洲图片有声小说| 成人免费高清视频| 欧美一区二区三区男人的天堂| 自拍视频在线观看一区二区| 日本特黄久久久高潮| 一本大道av一区二区在线播放| 日韩丝袜情趣美女图片| 亚洲永久精品大片| 成人性视频免费网站| 日韩一区二区三区在线观看| 尤物在线观看一区| 国产91对白在线观看九色| 日韩视频123| 香蕉影视欧美成人| 97se亚洲国产综合自在线| 久久久久久久免费视频了| 日韩激情一二三区| 一本一本久久a久久精品综合麻豆| 久久久久亚洲蜜桃| 久久电影网站中文字幕| 欧美男男青年gay1069videost| 亚洲精选一二三| 成人av第一页| 中文字幕欧美三区| 国产成人在线免费| 久久一区二区视频| 老鸭窝一区二区久久精品| 欧美精品一卡两卡| 亚洲成人av免费| 在线不卡中文字幕播放| 五月婷婷激情综合| 欧美日韩成人在线| 亚洲女与黑人做爰| 欧洲中文字幕精品| 亚洲永久精品国产| 欧洲av在线精品| 天堂va蜜桃一区二区三区| 3atv一区二区三区| 另类的小说在线视频另类成人小视频在线 | 日本成人在线不卡视频|