yb_arm/osp/inc/ospBuf.h

101 lines
2.7 KiB
C
Raw Normal View History

2023-07-12 14:14:31 +08:00
#ifndef __OSPBUFH__
#define __OSPBUFH__
#ifdef __cplusplus
extern "C" {
#endif
#define OSPBUF_SIZE (6*1024*1024UL) //(577*1024*1024UL) /* 512M->1G */
#define MAX_BLOCK_NUM 512 /*256*/ /* 1024->512 */
#define MIN_SIZE_ORDER 6
#define MAX_SIZE_ORDER 12/* 21 */ /* 16->19 64K->512K */
#define MAX_OSPBUF_LEN (1 << MAX_SIZE_ORDER)
/*when mem is empty , we should make sure cmd is OK*/
#define SIZE_ORDER_SHELL 10 // origin: 16
#define SHELL_BUF_SIZE 1024 // origin: 1665535
#define SIZE_ORDER_PRINT_LOG SIZE_ORDER_SHELL
/*change with SIZE_ORDER_PRINT_LOG*/
#define PRINT_LOG_BUF_SIZE SHELL_BUF_SIZE
#define BUF_FOR_MEMORY 0
#define BUF_FOR_MSG 1
typedef struct tag_Osp_BufQ_Tcb
{
Osp_SoftQue soft_que;
uint64_t data[MAX_BLOCK_NUM];
int32_t order;
}Osp_BufQ_Tcb;
#define OSP_BUFQ_TCBSIZE (sizeof(Osp_BufQ_Tcb))
#define OSP_BUFQ_ENCNT(que) que->soft_que.EnCnt
#define OSP_BUFQ_DECNT(que) que->soft_que.DeCnt
#define OSP_BUFQ_CUR(que) que->soft_que.CurNum
#define OSP_BUFQ_DEP(que) que->soft_que.Dep
#define OSP_BUFQ_ORDER(que) que->order
#define OSP_BUFQ_QUE(que) que->soft_que
typedef struct tag_Osp_Block_Head
{
uint32_t UserId; /*0x55aa???? */
uint16_t RelaOrder; /*for TCB*/
uint16_t UseType; /*memory or msg */
uint16_t rev[2];
uint32_t MagicOffset; /*for dect write over*/
uint32_t idx; /*idx of this pool*/
uint32_t NormalFlag; /*1: norbuffer 0: Pribuffer*/
uint32_t Rev[2];
}Osp_Block_Head;
extern char *OspBufferBase;
#define BUFFER_BASE OspBufferBase
#define BUFFERQUE_BASE_PRINT_LOG OspBufferqueBasePrintLog
#define BUFFERDATA_BASE_PRINT_LOG OspBufferDataBasePrintLog
#define BUFFERQUE_BASE_SHELL OspBufferqueBaseShell
#define BUFFERDATA_BASE_SHELL OspBufferDataBaseShell
#define BUFFERQUE_BASE_NOR OspBufferQueBaseNor
#define BUFFERDATA_BASE_NOR OspBufferDataBaseNor
#define BUFFER_NORMAL_LEVEL 0
#define BUFFER_SHELL_LEVEL 1
#define BUFFER_PRINTLOG_LEVEL 2
#define VALIDIDMASK 0x55aa0000
#define FREEUSERID 0x0000FFFF
#define BUF_MAGIC_NUM (0x12348765)
#define OSP_BLOCK_HEAD_SIZE ((uint32_t)(sizeof(Osp_Block_Head)))
#define OSP_BUF_MAGICDATA_SIZE ((uint32_t)(sizeof(uint32_t)))
extern void *osp_get_buffer(uint32_t size, uint16_t UseType, uint16_t PriLevel);
extern OSP_STATUS osp_free_buffer(void *pBuffer);
extern void osp_show_buf_count(void);
extern OSP_STATUS osp_buf_init(void);
#ifdef __cplusplus
}
#endif
#endif /*__OSPBUFH__ */