/*******************************************************************************
** 文件名：	 sys_arch.h
** 版本：	 v0.00
** 工作环境：RealView MDK-ARM 4.74.0.22
** 作者：	 魏春双
** 生成日期：2017年7月4日14:02:09
** 功能：	 操作系统相关定义
** 相关文件：无
** 修改日志：无
*******************************************************************************/

#ifndef __ARCH_SYS_ARCH_H__
#define __ARCH_SYS_ARCH_H__

#include "includes_all.h"
#include "cc.h"

///*******************************定义堆栈和优先级*******************************/

#define LWIP_STK_SIZE				400
#define LWIP_TASK_MAX	  		  	1			
#define LWIP_TASK_START_PRIO	  	5

//SYS_ARCH_EXT OS_STK LWIP_TASK_STK[LWIP_TASK_MAX][LWIP_STK_SIZE];

/******************************************************************************/

#ifdef SYS_ARCH_GLOBALS
#define SYS_ARCH_EXT
#else
#define SYS_ARCH_EXT extern
#endif

//#define MAX_QUEUES        			10	//消息邮箱的数量
#define MAX_QUEUE_ENTRIES 			20	//每个消息邮箱的最大容量

#define SYS_MBOX_NULL 				(void *)0
#define SYS_SEM_NULL  				(void *)0

#define sys_arch_mbox_tryfetch(mbox,msg)   sys_arch_mbox_fetch(mbox,msg,1)

/*-----------------type define------------------------------------------------*/

//										//LwIP消息邮箱结构体
//typedef struct {
//    OS_EVENT*   pQ;
//    void*       pvQEntries[MAX_QUEUE_ENTRIES];
//} TQ_DESCR, *PQ_DESCR;

typedef OS_SEM		sys_sem_t;		// type of semiphores
typedef OS_MUTEX	sys_mutex_t;	// type of mutex
typedef OS_Q		sys_mbox_t;		// type of mailboxes
typedef CPU_INT08U	sys_thread_t;	// type of id of the new thread

typedef CPU_INT08U	sys_prot_t;


/*-----------------global variables-------------------------------------------*/
/**
 * MEMCPY: override this if you have a faster implementation at hand than the
 * one included in your C library
 */
#ifndef MEMCPY
#define MEMCPY(dst,src,len)             Mem_Copy(dst,src,len)
#endif
#ifndef SMEMCPY
#define SMEMCPY(dst,src,len)            OS_MemCopy(dst,src,len)
#endif

#endif

/***********************************FILE END***********************************/

