72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| 
 | |
| #ifndef IOT_PKT_H
 | |
| #define IOT_PKT_H
 | |
| 
 | |
| /* export includes */
 | |
| #include "iot_pkt_api.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /* define maximum supported packet pool config */
 | |
| #define IOT_PKT_POOL_MAX            9
 | |
| 
 | |
| /* pkt pool owner mask */
 | |
| #define PKT_OWNER_PLC               (0x1 << 0)
 | |
| #define PKT_OWNER_IOT               (0x1 << 1)
 | |
| #define PKT_OWNER_NB                (0x1 << 2)
 | |
| #define PKT_OWNER_ALL               0xFFFFFFFF
 | |
| #define PKT_OWNER_NONE              0x00000000
 | |
| 
 | |
| typedef struct _iot_pkt_pool_cnf {
 | |
|     /* size of each buffer in the pool */
 | |
|     uint16_t size;
 | |
|     /* number of buffers in the pool */
 | |
|     uint16_t count;
 | |
|     /* which module can use this pool */
 | |
|     uint32_t owner;
 | |
| } iot_pkt_pool_cnf_t;
 | |
| 
 | |
| typedef struct _iot_pkt_config {
 | |
|     /* iot packet pool configuration */
 | |
|     iot_pkt_pool_cnf_t pool_cfg[IOT_PKT_POOL_MAX];
 | |
| } iot_pkt_config_t;
 | |
| 
 | |
| /*
 | |
|  * @brief iot_pkt_init()    init iot packet module
 | |
|  * @param cfg:  pointer to iot packet pool configuration
 | |
|  */
 | |
| void iot_pkt_init(const iot_pkt_config_t *cfg);
 | |
| 
 | |
| void mem_dump(uint32_t *word_ptr, uint32_t word_cnt);
 | |
| 
 | |
| void mem_dump_byte(uint8_t *byte_ptr, uint32_t byte_cnt);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_pkt_check_end_overwrite()   check end point overwrite.
 | |
|  * @param iot_pkt_t buf:                  need check buf point.
 | |
|  * @return                                0 - check success, 1 - check fail.
 | |
|  */
 | |
| uint32_t iot_pkt_check_end_overwrite(iot_pkt_t *buf);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* IOT_PKT_H */
 |