📄 edl.h
字号:
/**************************************************************************************************
EDL RTOS Kernel
(c) Copyright 2005, Wu Jun
All Rights Reserved
For further information, please visit http://www.enjoydigitallife.com
* Description: None
* History:
Date Remarks
2005-01-06 Created initial version
2005-12-12 Finished the version 2.01
**************************************************************************************************/
#ifndef EDL_H
#define EDL_H
#include "datatype.h"
/**************************************************************************************************
* Constants Definitions
**************************************************************************************************/
#define MSG_PEEK 0x00 /* The message will NOT be removed after being accessed */
#define MSG_DEQUEUE 0x01 /* The message will be removed after being accessed */
#define MSG_FIFO 0x00 /* The message is inserted by FIFO( First In First Out )*/
#define MSG_PRIO 0x02 /* The message is inserted by Priority */
#define SEM_FIFO 0x00
#define SEM_PRIO 0x01
#define SEM_CREATE 0x02
#define SEM_OPEN 0x04
#define MU_CREATE 0x01
#define MU_OPEN 0x02
#define ALL_EVENTS 0xFFFFFFFF
#define TSK_MODE_USR 0x01
#define TSK_MODE_SYS 0x00
#define PRIO_INHERIT_PROT 0x00
#define PRIO_CEILING_PROT 0x01
/**************************************************************************************************
* Task Management Component
**************************************************************************************************/
ERR edl_createTask(void (*tskProc)(void *), void *pdata,U32 prio, U32 stackSize, U32 tskMode, U32 *tskID);
void edl_sleep( U32 sleepTime );
ERR edl_deleteTask( U32 tskID );
ERR edl_suspendTask( U32 tskID );
ERR edl_resumeTask( U32 tskID );
ERR edl_wakeTask( U32 tskID );
/**************************************************************************************************
* Event Management Component
**************************************************************************************************/
ERR edl_sendEvent(U32 tskID, U32 event);
ERR edl_getEvent( U32 timeOut, U32 evMask, U8 waitAll, U32 *event );
/**************************************************************************************************
* Memory Management Component
**************************************************************************************************/
void *edl_trunkAlloc( U32 zone_id, U32 size );
ERR edl_trunkFree( void *addr );
ERR edl_heapCreate( void *start, U32 heapSize, U32 unitSize, U32 maxUnitNbr, U32 *heapID);
ERR edl_heapDelete( U32 heapID );
void *edl_heapAlloc( U32 heapID, U32 size );
ERR edl_heapFree( U32 heapID, void *addr );
void *edl_heapReAlloc( U32 heapID, void *addr, U32 size );
/**************************************************************************************************
* Semaphore Management Component
**************************************************************************************************/
ERR edl_createSem( S8 *name,U32 flags, U32 count, U32 *semID );
ERR edl_deleteSem( U32 semID );
ERR edl_getSem( U32 semID, U32 timeout );
ERR edl_releaseSem( U32 semID );
/**************************************************************************************************
* Message Management Component
**************************************************************************************************/
ERR edl_sendMsg( U32 desTskID, U8 flags, void *buf, U32 bufLen, U8 block );
ERR edl_getMsg( U32 timeOut, U8 flags, void *buf, U32 bufLen,U32 *msgLen, U32 *srcTskID );
/**************************************************************************************************
* Mutex Management Component
**************************************************************************************************/
ERR edl_createMutex( S8 *name, U8 flags,U32 protocol, U32 prioCeiling, U32 *muID );
ERR edl_deleteMutex( U32 muID );
ERR edl_getMutex( U32 muID, U32 timeout );
ERR edl_releaseMutex( U32 muID );
#endif /* EDL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -