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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? knl.h

?? SEED的VPM642測(cè)試程序-板級(jí)支持庫
?? H
字號(hào):
/*
 *  Copyright 2003 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* "@(#) DSP/BIOS 4.90.270 12-18-03 (barracuda-o04)" */
/*
 *  ======== knl.h ========
 *
 */


#ifndef KNL_
#define KNL_

#include <atm.h>
#include <fxn.h>
#include <que.h>
#include <stdarg.h>
#include <sts.h>
#include <swi.h>

#ifdef __cplusplus
extern "C" {
#endif

#define KNL_IDLEPRI (0)	    /* idle task priority (should not block) */
#define KNL_MINPRI  (1)	    /* minimum task priority */
#define KNL_MAXPRI  (15)    /* maximum task priority */

/*
 * Warning! KNL_SWIMASK and KNL_CURMASK must match their counterparts in knl.hti
 */
#define KNL_SWIMASK (0x1)   /* priority mask of KNL_swi */
#define KNL_CURMASK (0x2)   /* SWI_D_curmask value when inside the kernel */

#define KNL_RUNASYNC	(0)
#define KNL_RUNSYNC	(1)

#define KNL_RUNNING	(0)
#define KNL_READY	(1)
#define KNL_BLOCKED	(2)
#define KNL_TERMINATED	(3)

#define KNL_MAXARGS (8)

typedef struct KNL_Obj KNL_Obj;
typedef struct KNL_Obj *KNL_Handle;

struct KNL_Obj {
    QUE_Elem	ready;          /* ready/semaphore queue elem */
    QUE_Elem	alarm;          /* alarm queue elem */
    QUE_Elem	setpri;         /* set priority queue elem */
    QUE_Handle	queue;          /* task's ready queue */
    Int		priority;       /* task priority */
    Uns		mask;           /* 1 << priority */
    Ptr		sp;             /* current stack pointer */
    Uns		timeout;        /* timeout value */
    Int		mode;           /* KNL_BLOCKED, KNL_READY,... */
    /*
     *  This STS Object is used to measure the time from when the task is
     *  made ready, until the function TSK_deltatime() is called.  When the
     *  task is made ready, the STS object is "set" to the current time.
     */  
    STS_Obj     *sts;
    Bool	signalled;      /* pending task waken up by sem or timeout */
};

/*
 *  This struct overlays the fields in a KNL_Obj struct.
 *  It is used by KNL_tick() and SEM_pend() to find the timeout
 *  values for tasks on the alarm queue.
 */
typedef struct KNL_AObj KNL_AObj;
struct KNL_AObj {
    QUE_Elem	alarm;
    QUE_Elem	setpri;
    QUE_Handle	queue;
    Int		priority;
    Uns		mask;
    Ptr		sp;
    Uns		timeout;
    Int		mode;
    STS_Obj	*sts;
    Bool	signalled;
};

typedef struct KNL_Job *KNL_JobHandle;
typedef Void (*KNL_Fxn)(KNL_JobHandle);

typedef struct KNL_Job {
    QUE_Obj	wListElem;	/* KNL_wList queue */
    Int		wCount;		/* number of posts when on KNL_wList */
    KNL_Fxn	fxn;		/* function that services the job */
} KNL_Job;

/* Can be modified from an ISR and must be declared as volatile */
extern volatile Bool KNL_wFlag;		/* defined in knl.c */

#define KNL_NUMQUEUES ((KNL_MAXPRI + 5))

extern QUE_Obj KNL_queues[KNL_NUMQUEUES];

/* Can be modified from an ISR and must be declared as volatile */
extern volatile QUE_Handle KNL_wList;	/* defined in knl.c */
extern QUE_Handle KNL_alarm;
extern QUE_Handle KNL_setpri;
extern QUE_Handle KNL_inactive;
extern QUE_Handle KNL_priority;

extern Uns KNL_set;

extern KNL_Obj KNL_dummy;
extern KNL_Handle KNL_curtask;
extern KNL_Handle KNL_prevtask;

extern volatile Uns KNL_curtime;

extern SWI_Obj *KNL_swiptr;

extern QUE_Handle KNL_curqueue;
extern QUE_Handle KNL_maxqueue;

extern Fxn KNL_tswitchfxn;
extern Fxn KNL_tcreatefxn;
extern Fxn KNL_tdeletefxn;
extern Fxn KNL_treadyfxn;
extern Fxn KNL_idlefxn;

/*
 *  ======== KNL_block ========
 */
#define KNL_block()\
    QUE_dequeue(KNL_curqueue);\
    KNL_curtask->mode = KNL_BLOCKED;\
    if (QUE_empty(KNL_curqueue)) {\
	KNL_set &= ~(KNL_curtask->mask);\
    }\
    KNL_curqueue = NULL;\
    KNL_maxqueue = &KNL_priority[KNL_max()]

/*
 *  ======== KNL_busy ========
 *  The KNL_busy() macro returns TRUE if the SWI scheduler is blocked or if
 *  SWI_D_curmask > KNL_SWIMASK, when an SWI is the current process or we're
 *  already inside the scheduler. Thus, KNL_busy prevents us from entering the
 *  scheduler when inside an ISR, an SWI, or the kernel itself.
 */
#define KNL_busy()	((SWI_D_lock > -1) || (SWI_D_curmask > KNL_SWIMASK))

/*
 *  ======== KNL_init ========
 */
#define KNL_init	FXN_F_nop

/*
 *  ======== KNL_yield ========
 */
#define KNL_yield()\
    QUE_enqueue(KNL_curqueue, QUE_dequeue(KNL_curqueue));

extern Void KNL_enter(void);
extern Void KNL_exit(void);
extern Void KNL_idle(void);
extern Int KNL_max(void);
extern Void KNL_ready(KNL_Handle task);
#ifdef _55_
extern Ptr KNL_start(Ptr userStack, Ptr systemStack, Fxn fxn, va_list argv, Fxn exit, Fxn entry);
#else
extern Ptr KNL_start(Ptr stack, Fxn fxn, va_list argv, Fxn exit, Fxn entry);
#endif
extern Void KNL_switch(Ptr *oldsp, Ptr *newsp);
extern Void KNL_post(KNL_JobHandle job);
extern Void KNL_ipost(KNL_JobHandle job);

#ifdef __cplusplus
}
#endif /* extern "C" */

#endif /*KNL_*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品自产自拍| 亚洲精品国产成人久久av盗摄| 久久久av毛片精品| 亚洲国产中文字幕在线视频综合| 久久99久久99精品免视看婷婷| 不卡视频一二三四| www久久久久| 成人不卡免费av| 欧美激情资源网| 视频在线观看一区| aaa国产一区| 91精品国产综合久久精品麻豆 | 精品国产91洋老外米糕| 综合自拍亚洲综合图不卡区| 欧美伊人久久久久久午夜久久久久| 欧美一区二区在线看| 中文字幕一区二区视频| 日韩黄色免费网站| 欧美日韩免费电影| 亚洲已满18点击进入久久| 国产成人鲁色资源国产91色综| 欧美日韩国产成人在线免费| 亚洲激情成人在线| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品免费免费| 国产福利91精品| 51午夜精品国产| 日本不卡一区二区三区高清视频| 在线观看国产日韩| 一区二区三区产品免费精品久久75| 99久久精品情趣| 综合久久给合久久狠狠狠97色 | 欧美日韩一区二区三区不卡| 亚洲日本va在线观看| 99久久综合狠狠综合久久| 国产精品黄色在线观看| 国产999精品久久久久久| 久久久蜜桃精品| 久久精品免费观看| 精品久久久久久综合日本欧美| 免费观看久久久4p| 欧美色精品在线视频| 午夜不卡av免费| 日韩欧美国产小视频| 国产传媒日韩欧美成人| 国产精品久久久一本精品| 一本色道综合亚洲| 日本伊人精品一区二区三区观看方式| 日韩免费看的电影| 成人在线综合网站| 亚洲一区电影777| 日韩一区和二区| 成人高清视频免费观看| 亚洲激情六月丁香| 精品理论电影在线| 成人动漫av在线| 亚洲观看高清完整版在线观看| 日韩一级二级三级精品视频| 国产麻豆视频一区| 亚洲美女视频在线观看| 日韩欧美高清dvd碟片| 成人精品在线视频观看| 亚洲另类中文字| 91精品婷婷国产综合久久性色| 麻豆精品精品国产自在97香蕉| 久久一二三国产| 91福利精品第一导航| 蜜臀av亚洲一区中文字幕| 久久亚洲精品国产精品紫薇| 色狠狠色狠狠综合| 国产最新精品精品你懂的| 亚洲综合色噜噜狠狠| 欧美一级久久久| 91一区一区三区| 美女视频网站黄色亚洲| 国产精品色哟哟| 日韩一区二区影院| 一本大道久久a久久精品综合| 亚洲一区在线看| 国产亚洲一区字幕| 欧美一卡2卡3卡4卡| 色综合色狠狠综合色| 国产美女主播视频一区| 亚洲一区二区三区四区中文字幕| 国产三级精品三级在线专区| 5566中文字幕一区二区电影| 91日韩精品一区| 国产成人综合在线播放| 麻豆freexxxx性91精品| 亚洲一区二区三区影院| 中文字幕综合网| 国产精品久久影院| 久久亚洲综合色一区二区三区| 4438x亚洲最大成人网| 91成人在线观看喷潮| a在线欧美一区| 国产精一品亚洲二区在线视频| 日韩国产欧美一区二区三区| 亚洲午夜久久久久久久久电影网| 自拍偷拍欧美精品| 国产精品久久久久影视| 国产欧美日韩在线| 久久嫩草精品久久久精品| 日韩欧美久久久| 日韩欧美国产小视频| 欧美一区二区视频在线观看2020| 欧美日韩一级片在线观看| 在线观看视频一区二区| 91黄视频在线| 欧美午夜寂寞影院| 欧美日韩精品三区| 欧美日韩一区三区四区| 欧美喷水一区二区| 欧美日韩精品一区二区| 欧美老人xxxx18| 91精品国产综合久久久蜜臀粉嫩| 91精品欧美久久久久久动漫 | 奇米色一区二区三区四区| 无码av免费一区二区三区试看| 亚洲国产精品久久艾草纯爱| 亚洲伊人伊色伊影伊综合网| 亚洲午夜精品网| 日日夜夜精品免费视频| 美女视频黄a大片欧美| 精品亚洲成av人在线观看| 国产在线观看免费一区| 成人激情综合网站| 91社区在线播放| 欧美性xxxxxx少妇| 欧美一级黄色大片| 久久久久9999亚洲精品| 亚洲色图视频网| 视频一区免费在线观看| 激情综合网激情| av在线这里只有精品| 欧美亚男人的天堂| 欧美成人一区二区| 国产精品日韩成人| 午夜在线成人av| 国产精品一区三区| 91免费看`日韩一区二区| 欧美日韩视频在线一区二区| 日韩三级高清在线| 国产精品日日摸夜夜摸av| 亚洲电影激情视频网站| 久久成人综合网| 91免费观看视频在线| 日韩欧美视频在线| 综合久久国产九一剧情麻豆| 日本不卡视频在线观看| 成人激情免费网站| 欧美巨大另类极品videosbest | 欧美群妇大交群中文字幕| 欧美精品一区二区三区蜜桃| 日韩毛片一二三区| 热久久国产精品| 99视频精品免费视频| 欧美高清hd18日本| 中文字幕一区二区不卡| 热久久久久久久| 色噜噜久久综合| 久久久777精品电影网影网| 亚洲福利一区二区三区| 成人白浆超碰人人人人| 欧美mv日韩mv国产网站app| 亚洲视频免费看| 国产一区二区三区不卡在线观看 | 99久久精品国产毛片| 欧美电影免费观看高清完整版在 | 亚洲日本免费电影| 国产在线看一区| 日韩一区二区免费电影| 亚洲夂夂婷婷色拍ww47 | 69av一区二区三区| 亚洲另类春色国产| 成人午夜视频福利| 精品福利一区二区三区| 日韩影视精彩在线| 欧美午夜视频网站| 亚洲乱码日产精品bd| 成人免费高清在线| 国产婷婷一区二区| 国产揄拍国内精品对白| 欧美一级艳片视频免费观看| 亚洲专区一二三| 一本大道综合伊人精品热热| 中文字幕精品一区| 国产999精品久久| 欧美激情综合在线| 国产99精品在线观看| 日本一二三四高清不卡| 国产一区二区剧情av在线| 精品福利在线导航| 激情av综合网| 欧美精品一区二区精品网| 九一九一国产精品| 久久一区二区三区四区| 国产传媒日韩欧美成人| 国产精品人人做人人爽人人添| 国产成人在线色|