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

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

?? kernel.h

?? 嵌入式實時操作系統(tǒng)內(nèi)核
?? H
字號:
//Kernel Head File:
//Copyright (c) 2008 www.evvei.com, All Rights Reserved.
//_____________________________________________________________________________________
//File name: kernel.h
//Abstract:  Head file for C/C++ language programing of the e-kernel.
//

//C declarations in C++.
#ifdef          __cplusplus
extern  "C" {
#endif

//_____________________________________________________________________________________
//Constant Definitions:
#define   NESTED_INTERRUPT    0

#define   reg  register

#define   NA     0xfaaaaaaa
#define   NULL   0
#define   TRUE   1
#define   FALSE  0

//Kernel Object ID:
#define   KID_THREAD      0x01
#define   KID_TIMER       0x02
#define   KID_APPTIMER    0x03
#define   KID_POOL        0x05
#define   KID_MUTEX       0x06
#define   KID_SEMAPHORE   0x07
#define   KID_MAILBOX     0x08
#define   KID_QUEUE       0x09
#define   KID_PIPE        0x0a
#define   KID_EVENT       0x0b

//Option Flags for Kernel Object Initialization:
#define  OPT_DEFAULT           0x00000000
#define  OPT_FIXED             0x80000000
#define  OPT_EXISTING          0x40000000
#define  OPT_PRIOR_WAITING     0x08000000
#define  OPT_FIFO_WAITING      0x00000000
#define  OPT_READY             0x00000001
#define  OPT_PREEMPTION        0x00000002
#define  OPT_ACTIVING          0x00000080
#define  OPT_REPEAT            0x00000040
#define  OPT_EVENT_AND         0x00000100
#define  OPT_EVENT_OR          0x00000000
#define  OPT_EVENT_CLEAR       0x00000200

//Return Status of Kernel Interface Function:
#define  RS_FAILING               0
#define  RS_SUCCESSFUL            1
#define  RS_MUTEX_DESTROYED      -1
#define  RS_SEMAPHORE_DESTROYED  -1
#define  RS_EVENT_DESTROYED      -1
#define  RS_MAILBOX_DESTROYED    -1
#define  RS_QUEUE_DESTROYED      -1
#define  RS_PIPE_DESTROYED       -1
#define  RS_POOL_DESTROYED       -1
#define  RS_SEMAPHORE_RESETED     10
#define  RS_MAILBOX_RESETED       10
#define  RS_QUEUE_RESETED         10
#define  RS_PIPE_RESETED          10

//Thread Status:
#define  TS_INITIAL       0
#define  TS_READY         1
#define  TS_WAITING       4
#define  TS_SLEEPING      5
#define  TS_SUSPENDED     6
#define  TS_LATENCY       10
#define  TS_TERMINATED    15

//thread critical priorities:
#define  PRI_CRITICAL7    63
#define  PRI_CRITICAL6    62
#define  PRI_CRITICAL5    61
#define  PRI_CRITICAL4    60
#define  PRI_CRITICAL3    59
#define  PRI_CRITICAL2    58
#define  PRI_CRITICAL1    57
#define  PRI_CRITICAL0    56

//thread realtime priorities:
#define  PRI_REALTIME23   55
#define  PRI_REALTIME22   54
#define  PRI_REALTIME21   53
#define  PRI_REALTIME20   52
#define  PRI_REALTIME19   51
#define  PRI_REALTIME18   50
#define  PRI_REALTIME17   49
#define  PRI_REALTIME16   48
#define  PRI_REALTIME15   47
#define  PRI_REALTIME14   46
#define  PRI_REALTIME13   45
#define  PRI_REALTIME12   44
#define  PRI_REALTIME11   43
#define  PRI_REALTIME10   42
#define  PRI_REALTIME9    41
#define  PRI_REALTIME8    40
#define  PRI_REALTIME7    39
#define  PRI_REALTIME6    38
#define  PRI_REALTIME5    37
#define  PRI_REALTIME4    36
#define  PRI_REALTIME3    35
#define  PRI_REALTIME2    34
#define  PRI_REALTIME1    33
#define  PRI_REALTIME0    32

//thread normal priorities:
#define  PRI_NORMAL31     31
#define  PRI_NORMAL30     30
#define  PRI_NORMAL29     29
#define  PRI_NORMAL28     28
#define  PRI_NORMAL27     27
#define  PRI_NORMAL26     26
#define  PRI_NORMAL25     25
#define  PRI_NORMAL24     24
#define  PRI_NORMAL23     23
#define  PRI_NORMAL22     22
#define  PRI_NORMAL21     21
#define  PRI_NORMAL20     20
#define  PRI_NORMAL19     19
#define  PRI_NORMAL18     18
#define  PRI_NORMAL17     17
#define  PRI_NORMAL16     16
#define  PRI_NORMAL15     15
#define  PRI_NORMAL14     14
#define  PRI_NORMAL13     13
#define  PRI_NORMAL12     12
#define  PRI_NORMAL11     11
#define  PRI_NORMAL10     10
#define  PRI_NORMAL9      9
#define  PRI_NORMAL8      8
#define  PRI_NORMAL7      7
#define  PRI_NORMAL6      6
#define  PRI_NORMAL5      5
#define  PRI_NORMAL4      4
#define  PRI_NORMAL3      3
#define  PRI_NORMAL2      2
#define  PRI_NORMAL1      1
#define  PRI_NORMAL0      0


//Define kernel object size:
#define  KLOCK_SIZE          12
#define  KTHREAD_SIZE        256
#define  KTIMER_SIZE         88
#define  KMUTEX_SIZE         56
#define  KSEMAPHORE_SIZE     52
#define  KEVENT_SIZE         52
#define  KMAILBOX_SIZE       68
#define  KQUEUE_SIZE         80
#define  KPIPE_SIZE          76
#define  KPOOL_SIZE          80

//_____________________________________________________________________________________
//Kernel Data Type Difenitions:
//
//Basic data types:
typedef char                   CHAR;
typedef unsigned char          BYTE;
typedef unsigned short         WORD;
typedef unsigned int           DWORD;
typedef unsigned long          QWORD;
typedef unsigned int           BOOL;

typedef char                   INT8;
typedef short                  INT16;
typedef int                    INT32;
typedef long                   INT64;

typedef unsigned char          UINT8; 
typedef unsigned short         UINT16;
typedef unsigned int           UINT32;
typedef unsigned long          UINT64;

typedef unsigned int           HANDLE;
typedef void *                 POINTER;
typedef void                   VOID;

typedef INT32                  STATUS;
typedef UINT32                 OPTION;

//Lock access control data structure.
typedef struct _KLOCK
{
    BYTE Data[KLOCK_SIZE];

} KLOCK;


//thread control data structure.
typedef struct _KTHREAD
{
    BYTE Data[KTHREAD_SIZE];
    
} KTHREAD;

//Mutex control data structure.
typedef struct _KMUTEX
{
    BYTE Data[KMUTEX_SIZE];
    
} KMUTEX;

//Semaphore control data structure.
typedef struct _KSEMAPHORE
{
    BYTE Data[KSEMAPHORE_SIZE];
    
} KSEMAPHORE;

//Mailbox control data structure.
typedef struct _KMAILBOX
{
    BYTE Data[KMAILBOX_SIZE];
    
} KMAILBOX;

//Queue control data structure.
typedef struct _KQUEUE
{
    BYTE Data[KQUEUE_SIZE];
    
} KQUEUE;

//Piple control data structure.
typedef struct _KPIPE
{
    BYTE Data[KPIPE_SIZE];
    
} KPIPE;

//Event control data structure.
typedef struct _KEVENT
{
    BYTE Data[KEVENT_SIZE];
    
} KEVENT;


//Timer control data structure.
typedef struct _KTIMER
{
    BYTE Data[KTIMER_SIZE];

} KTIMER;

//Memory pool control data structure.
typedef struct _KPOOL
{
    BYTE Data[KPOOL_SIZE];
    
} KPOOL;

//Kernel startup information structrue.
typedef struct _KSTARTUP
{
     DWORD     KernelCode;             //0x656b3031,the ASCII code "ek01"
     DWORD     ProcessorCode;          //Code number for supported proccessor.
     DWORD     UserCode;               //Code number for target user.
     DWORD     LicenceCode;            //Licence code to target user.
     
     BOOL      VectorConfig;           //Vector configuration flag.
     BOOL      MemoryMode;             //Virtual or actual memory mode.
     
     VOID     *kernelStack;            //Kernel stack address.
     UINT32    KernelStackSize;        //Fixed to 20KBytes.
     
     VOID     *physicalMemoryStart;    //Physical memory start address.
     VOID     *physicalMemoryEnd;      //Physical memory end address.
     
     VOID     *textSection;            //Kernel code and constant section.(.text)
     UINT32    TextSize;
     
     VOID     *dataSection;            //Kernel static data section.(.data)
     UINT32    DataSize;
     
     VOID     *dynamicStoreSection;    //Kernel dynamic store section.(.dss)
     UINT32    DynamicStoreSize;
     
     UINT32    HardClockFrequency;     //Processor main clock frequency(MHz)
     UINT32    SoftClockFrequency;     //Kernel tick timer clock frequency(Hz)
     
     UINT32    DefaultTimeslice;       //The default timeslice value for thread.
     
     DWORD     Reserved[42];
     
} KSTARTUP;

//_____________________________________________________________________________________
//Kernel Interface Function Definitions:
//
//Common functions:
#define KeCheckStack        KiCheckStack
#define KeGetKernelTime     KiGetKernelTime
#define KeSetKernelTime     KiSetKernelTime
UINT32  KiCheckStack(VOID);
UINT32  KeCheckStack(VOID);
UINT32  KiGetKernelTime();
VOID    KiSetKernelTime(UINT32 Time);
UINT32  KeGetKernelTime();
VOID    KeSetKernelTime(UINT32 Time);
VOID    KernelStartup(KSTARTUP *);
VOID    ApplicationInitialize(VOID *dssAddress, UINT32 dssSize);

//Interrupt management functions:
#define KeMaskInterrupt     KiMaskInterrupt
#define KeUnmaskInterrupt   KiUnmaskInterrupt
#define KeConnectIsr        KiConnectIsr
#define KeDisconnectIsr     KiDisconnectIsr
VOID    KiLockInterrupt();
VOID    KiUnlockInterrupt();
VOID    KiMaskInterrupt(UINT32 Vector);
VOID    KiUnmaskInterrupt(UINT32 Vector);
VOID*   KiConnectIsr(UINT32 Vector, VOID (* isr)(UINT32));
VOID*   KiDisconnectIsr(UINT32 Vector);
VOID    KeLockInterrupt();
VOID    KeUnlockInterrupt();
VOID    KeMaskInterrupt(UINT32 Vector);
VOID    KeUnmaskInterrupt(UINT32 Vector);
VOID*   KeConnectIsr(UINT32 Vector, VOID (* isr)(UINT32));
VOID*   KeDisconnectIsr(UINT32 Vector);


//Lock access control functions:
VOID    KeInitializeLock(KLOCK *lock);
VOID    KeLock(KLOCK *lock);
VOID    KeUnlock(KLOCK *lock);


//Thread control functions:
STATUS  KeInitializeThread(
           KTHREAD *thread,
           UINT32   Priority,
           STATUS  (* routine)(UINT32, VOID *),
           UINT32   argc,
           VOID    *argv,
           VOID    *stackAddress,
           UINT32   StackSize,
           OPTION   InitSet
          );
VOID    KiActivateThread(KTHREAD *thread,UINT32 argc,VOID *argv);
STATUS  KeResumeThread(KTHREAD *thread);
STATUS  KeSuspendThread(KTHREAD *thread);
STATUS  KeTerminateThread(KTHREAD *thread);
STATUS  KeResetThread(KTHREAD *thread,UINT32 Argc,VOID *Argv);
BOOL    KeSetThreadPremption(KTHREAD *thread, BOOL Preempt);
UINT32  KeSetThreadPriority(KTHREAD *thread,UINT32 Priority);
UINT32  KeSetThreadTimeslice(KTHREAD *thread,UINT32 Timeslice);
VOID    KeSleepThread(UINT32 Time);
VOID    KeBreakThread();
VOID    KeExitThread();


//Timer management functions:
#define KeInitializeTimer   KeInitializeAppTimer
#define KeDestroyTimer      KeDestroyAppTimer
#define KeStartTimer        KeStartAppTimer
#define KeStopTimer         KeStopAppTimer

STATUS  KeInitializeTimer(
           KTIMER  *timer,
           UINT32  Time,
           VOID    (* routine)(UINT32, VOID *),
           UINT32  arg1,
           VOID    *arg2,
           OPTION  InitSet
          );
STATUS  KeDestroyTimer(KTIMER *timer);
STATUS  KeStartTimer(KTIMER *timer);
STATUS  KeStopTimer(KTIMER *timer);


//Mutex management functions:
STATUS  KeInitializeMutex(KMUTEX *mutex, OPTION InitSet);
STATUS  KeDestroyMutex(KMUTEX *mutex);
STATUS  KeEnterMutex(KMUTEX *mutex, UINT32 Timeout);
STATUS  KeLeaveMutex(KMUTEX *mutex);


//Semaphore management functions:
STATUS  KeInitializeSemaphore(KSEMAPHORE *semaphore, UINT32 ResCount, OPTION InitSet);
STATUS  KeDestroySemaphore(KSEMAPHORE *semaphore);
STATUS  KeResetSemaphore(KSEMAPHORE *semaphore, UINT32 ResCount);
STATUS  KeObtainSemaphore(KSEMAPHORE *semaphore, UINT32 Timeout);
STATUS  KeReleaseSemaphore(KSEMAPHORE *semaphore);


//Event group management functions:
STATUS  KeInitializeEvent(KEVENT *event, OPTION InitSet);
STATUS  KeDestroyEvent(KEVENT *event);
STATUS  KeSetEvent(KEVENT *event, DWORD Flags, OPTION OpType);
STATUS  KeCheckEvent(KEVENT *event, DWORD Flags, OPTION OpType, UINT32 Timeout);


//Mailbox management functions:
STATUS  KeInitializeMailbox(KMAILBOX *mailbox, OPTION InitSet);
STATUS  KeDestroyMailbox(KMAILBOX *mailbox);
STATUS  KeResetMailbox(KMAILBOX *mailbox);
STATUS  KeSendMailbox(KMAILBOX *mailbox, VOID *message, UINT32 Timeout);
STATUS  KeBroadcastMailbox(KMAILBOX *mailbox, VOID *message, UINT32 Timeout);
STATUS  KeReceiveMailbox(KMAILBOX *mailbox, VOID *message, UINT32 Timeout);


//Queue management functions:
STATUS  KeInitializeQueue(
           KQUEUE  *queue,
           VOID    *buffer,
           UINT32  QueueSize,
           UINT32  MessageSize,
           OPTION  InitSet
          );
STATUS  KeDestroyQueue(KQUEUE *queue);
STATUS  KeResetQueue(KQUEUE *queue);
STATUS  KeSendQueue(KQUEUE *queue, VOID *message, UINT32 Timeout);
STATUS  KeSendQueueFront(KQUEUE *queue, VOID *message, UINT32 Timeout);
STATUS  KeBroadcastQueue(KQUEUE *queue, VOID *message, UINT32 Timeout);
STATUS  KeReceiveQueue(KQUEUE *queue, VOID *message, UINT32 Timeout);

//Pipe management functions:
STATUS  KeInitializePipe(
           KPIPE   *pipe,
           VOID    *buffer,
           UINT32  PipeSize,
           OPTION  InitSet
          );
STATUS  KeDestroyPipe(KPIPE *pipe);
STATUS  KeResetPipe(KPIPE *pipe);
STATUS  KeSendPipe(KPIPE *pipe, VOID *data, UINT32 Size, UINT32 Timeout);
STATUS  KeSendPipeFront(KPIPE *pipe, VOID *data, UINT32 Size, UINT32 Timeout);
STATUS  KeBroadcastPipe(KPIPE *pipe, VOID *data, UINT32 Size, UINT32 Timeout);
UINT32  KeReceivePipe(KPIPE *pipe, VOID *data,UINT32 Size, UINT32 Timeout);


//Memory pool management functions:
STATUS  KeInitializePool(
           KPOOL   *pool,
           VOID    *address,
           UINT32  TotalSize,
           UINT32  BlockSize,
           OPTION  InitSet
          );
STATUS  KeInitializePoolEx(
           KPOOL   *pool,
           VOID    *mapArea,
           UINT32   MapSize,
           VOID    *allocArea,
           UINT32   AllocSize,
           UINT32   BlockSize,
           OPTION   InitSet
          );
VOID*   KeAllocateMemory(KPOOL *pool,UINT32 Size,UINT32 Timeout);
STATUS  KeFreeMemory(KPOOL *pool,VOID *address);


//End of C declarations.
#ifdef          __cplusplus
}
#endif

//_____________________________________________________________________________________
//End of the file.
//



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品资源在线看| 亚洲一二三四在线| 国产一区二区三区高清播放| 精品久久久久一区| 国产露脸91国语对白| 国产丝袜美腿一区二区三区| 国产传媒欧美日韩成人| 欧美国产精品中文字幕| 色综合视频在线观看| 亚洲黄色小视频| 欧美精品高清视频| 久久成人免费网站| 中文字幕在线播放不卡一区| 色婷婷av一区| 老鸭窝一区二区久久精品| 久久久综合网站| 91一区二区三区在线观看| 亚洲v精品v日韩v欧美v专区| 欧美不卡在线视频| 99re亚洲国产精品| 亚洲va欧美va人人爽| 国产亚洲自拍一区| 欧美伊人精品成人久久综合97 | 国产精品乱人伦中文| 在线国产电影不卡| 精品写真视频在线观看| 中文字幕一区在线观看| 欧美一区二区视频在线观看2020| 国产尤物一区二区在线| 国产中文字幕一区| 一区二区三区中文字幕| 精品美女一区二区三区| 91麻豆国产精品久久| 久久66热re国产| 一区二区三区视频在线看| 欧美mv日韩mv国产网站app| 不卡av免费在线观看| 精品综合久久久久久8888| 亚洲男人电影天堂| 久久久精品免费免费| 在线观看免费成人| 粉嫩av亚洲一区二区图片| 天堂午夜影视日韩欧美一区二区| 国产日韩精品一区二区三区 | 欧美日韩国产系列| 国产高清不卡二三区| 亚洲二区在线视频| 亚洲国产成人一区二区三区| 91精品黄色片免费大全| 91蜜桃网址入口| 国产aⅴ综合色| 久久99精品网久久| 日韩电影网1区2区| 亚洲一区二区三区美女| 国产精品久久久久久亚洲伦| 精品国产免费人成电影在线观看四季| 色狠狠一区二区三区香蕉| 懂色av中文字幕一区二区三区| 蜜桃av一区二区三区电影| 亚洲午夜精品17c| 亚洲男人的天堂在线观看| 国产精品免费视频一区| 久久久久成人黄色影片| 日韩欧美国产综合| 欧美美女bb生活片| 在线免费精品视频| 91麻豆免费观看| 91网站黄www| av电影在线观看一区| 国产91丝袜在线18| 国产伦精品一区二区三区视频青涩| 日韩av一二三| 五月天网站亚洲| 亚洲超丰满肉感bbw| 亚洲mv大片欧洲mv大片精品| 亚洲国产精品影院| 亚洲成人av免费| 亚洲成av人片在线观看无码| 午夜伦理一区二区| 亚洲成人av在线电影| 亚洲成av人片观看| 日本在线观看不卡视频| 日韩综合在线视频| 青青草成人在线观看| 精品在线观看免费| 国产在线视频不卡二| 国产精品资源在线| 成人免费毛片aaaaa**| jlzzjlzz亚洲女人18| 91香蕉视频污在线| 91传媒视频在线播放| 欧美日韩精品二区第二页| 欧美日韩国产另类不卡| 日韩一区二区三区精品视频| 337p日本欧洲亚洲大胆色噜噜| 久久久久九九视频| 国产精品另类一区| 一区二区三区av电影| 日韩黄色小视频| 日韩一级在线观看| 精品1区2区在线观看| 国产精品久久久久久久久动漫| 亚洲精品福利视频网站| 午夜精品福利在线| 国产精品综合二区| 91女神在线视频| 欧美猛男超大videosgay| 精品sm捆绑视频| 亚洲欧美偷拍卡通变态| 日日夜夜免费精品| 国产永久精品大片wwwapp| av一区二区三区四区| 欧美三级午夜理伦三级中视频| 欧美一级理论性理论a| 国产精品视频免费看| 日韩精品电影一区亚洲| 国产不卡在线视频| 精品视频在线免费| 久久久国际精品| 亚洲福利电影网| 国产a视频精品免费观看| 欧美日韩一二三| 国产精品久久夜| 免费不卡在线观看| 91视频xxxx| 久久理论电影网| 天堂影院一区二区| 99国产精品久久久| 久久综合久久鬼色中文字| 亚洲欧美日韩国产另类专区 | 国产凹凸在线观看一区二区 | 欧美一级黄色大片| 亚洲精品中文字幕在线观看| 激情综合五月天| 欧美日高清视频| 亚洲三级在线播放| 国产精品自拍三区| 日韩一级完整毛片| 亚洲成av人影院在线观看网| av不卡一区二区三区| 国产人成亚洲第一网站在线播放| 天天综合色天天| 色中色一区二区| 国产精品一色哟哟哟| 7878成人国产在线观看| 亚洲精品欧美专区| 国产成人亚洲精品狼色在线| 欧美一区二区三区系列电影| 亚洲男同1069视频| k8久久久一区二区三区| 国产欧美日韩卡一| 国产一区二区调教| 欧美成人精品高清在线播放| 日本欧美加勒比视频| 欧美日韩精品一区二区天天拍小说 | 亚州成人在线电影| 一本久久a久久免费精品不卡| 中文字幕精品在线不卡| 国产一区二区成人久久免费影院| 91麻豆精品国产91久久久资源速度| 亚洲国产日韩在线一区模特| 色哟哟国产精品免费观看| 中文字幕第一页久久| 福利电影一区二区| 国产日韩欧美麻豆| 国产精品综合一区二区三区| 国产亚洲一区字幕| 国产高清精品网站| 国产肉丝袜一区二区| 国产69精品久久777的优势| 中文一区二区在线观看| 不卡视频在线看| 最新国产成人在线观看| 色婷婷激情综合| 性久久久久久久| 51午夜精品国产| 激情文学综合网| 国产精品网站一区| 色偷偷久久人人79超碰人人澡| 亚洲精品国产视频| 欧美精品视频www在线观看| 男人操女人的视频在线观看欧美| 精品国产髙清在线看国产毛片| 国产自产视频一区二区三区| 国产精品五月天| 色噜噜狠狠色综合中国| 日本中文字幕一区二区有限公司| 精品欧美一区二区在线观看| 国产成人精品午夜视频免费| **欧美大码日韩| 欧美日韩夫妻久久| 国产精品夜夜嗨| 亚洲欧美成aⅴ人在线观看| 欧美精品高清视频| 高清beeg欧美| 亚洲国产日日夜夜| 久久久久久久久久久99999| 91美女视频网站| 午夜电影网一区| 国产日韩欧美a|