⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ostype.h

📁 norflash的文件系统。 用于中低端手机开发的参考
💻 H
字号:
/*****************************************************************************
 
  FILE NAME: ostype.h

  DESCRIPTION:

    

 Copyright (c) 2002, VIA Technologies, Inc.
*****************************************************************************/


#ifndef __ostype_h__

#define __ostype_h__

#include "fsmdefs.h"

/*======================== MEMORY SERVICE =======================*/

uint32		FsmMemInit(void * start, uint32 size);
uint32		FsmMemExit(void);
void *		FsmMalloc(uint32 size);
void *		FsmTryMalloc(uint32 size);
uint32		FsmFree(void *mem_ptr);
uint32		FsmMemAvailable(uint32 * available);

void		FsmMemoryMove(uint8 * pDst, const uint8 * pSrc, uint32 num_bytes);
void		FsmMemorySet(uint8 * buf, uint8 byte_value, uint32 bytes);


/*======================== TIME SERVICE =========================*/

uint32		FsmGetCurrentTime(void);

/*====================== SEMAPHORE SERVICE ======================*/

#if (OS_TYPE == OS_NUCLEUS)

typedef NU_SEMAPHORE	BinSemT;

typedef NU_SEMAPHORE *	HBSEM;

typedef NU_TASK *		HTASK;

typedef /*PACKED*/ struct
{
	HTASK		hOwnerTask;
	BinSemT		BinSem;
	uint16		OwnCount;
} MtxSemT;

typedef MtxSemT * HMSEM;

typedef	void (*TASK_ENTRY)(UNSIGNED, void *);

typedef /*PACKED*/ struct 
{
	NU_TASK		TaskCB;
	VOID *		pStack;
} FsmTaskInfoT;

typedef FsmTaskInfoT * HFSMTASK;

#else

typedef HANDLE			HBSEM;	
typedef HANDLE			HMSEM;
typedef HANDLE			HFSMTASK;

#endif


extern HBSEM    FsmCreateBinSem(uint8 state);
extern uint32	FsmDeleteBinSem(HBSEM hBinSem);
extern uint32	FsmReleaseBinSem(HBSEM hBinSem);
extern uint32	FsmGetBinSemTry(HBSEM hBinSem);
extern uint32	FsmGetBinSem(HBSEM hBinSem);
extern uint32	FsmGetBinSemTimeout(HBSEM hBinSem, uint32 time_out);


HMSEM		FsmCreateMtxSem(uint8 state);
uint32		FsmDeleteMtxSem(HMSEM hMtxSem);
uint32		FsmReleaseMtxSem(HMSEM  hMtxSem);
uint32		FsmGetMtxSemTry(HMSEM hMtxSem);
uint32		FsmGetMtxSem(HMSEM hMtxSem);


#if (OS_TYPE == OS_NUCLEUS)


#define TASK_SLEEP(a)				NU_Sleep(a)

#define GET_CURRENT_TASK()			NU_Current_Task_Pointer()

#define DISABLE_INTERRUPTS()		SysIntDisable(SYS_ALL_INT);

#define ENABLE_INTERRUPTS() 		SysIntEnable(SYS_ALL_INT);


#else

#define TASK_SLEEP(a)					Sleep((a) * 10)


#endif


HFSMTASK	FsmCreateTask(char * Name, uint32 Priority, uint32 stack_size, uint32 task_entry);
uint32		FsmDeleteTask(HFSMTASK pTaskInfo);



#endif /*__ostype_h__*/



/*****************************************************************************
* $Log: Ostype.h $
* Revision 1.3  2004/03/17 12:58:39  zgy
* Revision 1.7  2004/03/16 15:59:45  jjs
* Revision 1.6  2003/10/15 18:24:33  jjs
* Revision 1.5  2003/09/14 16:56:33  jjs
* Revision 1.4  2003/09/12 17:24:36  jjs
* Revision 1.3  2003/09/12 14:03:45  jjs
* Revision 1.2  2003/09/09 19:48:19  jjs
* Added WINDOWS support for testing.
* Revision 1.1  2003/09/09 15:09:24  jjs
* Initial revision
*****************************************************************************/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -