WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
chip_mem.h
浏览该文件的文档.
1
9#ifndef CHIP_MEM_H
10#define CHIP_MEM_H
11
12#include <stdio.h>
13#include "securec.h"
14#include "non_os.h"
15#include "panic.h"
16#include "debug_print.h"
17
18#define CONN_DOG_TAG_SIZE 4
19#define CONN_DOG_TAG 0xdeadbeaf
20
21#define conn_irq_disable non_os_enter_critical
22#define conn_irq_enable non_os_exit_critical
23#define CONN_IO_PRINT PRINT
24
25#define conn_likely(_expr) (_expr)
26#define conn_unlikely(_expr) (_expr)
27#define conn_bug_on(cond) \
28 do { \
29 if (cond) { \
30 panic(PANIC_IRMALLOC_FAIL, (uintptr_t)__LINE__); \
31 } \
32 } while (0)
33#define CONN_MEM_INFO_SIZE 4 /* sizeof(ptr) */
34
35#define WLAN_MEM_MAX_SUBPOOL_NUM 32 /* Maximum memory sub-pool size supported by each memory pool */
36
37#define conn_get_4byte_align_value(_ul_size) (((_ul_size) + 0x03) & (~0x03))
38#define conn_array_size(_ast_array) (sizeof(_ast_array) / sizeof((_ast_array)[0]))
39
40#define _PRE_MEM_DEBUG_MODE
41
47
52
53typedef struct {
54 unsigned int us_len;
55 unsigned int us_free_cnt;
57 unsigned int us_total_cnt;
58 unsigned char auc_resv[2]; // Reserve 2 bites for four-byte alignment
60
61typedef struct {
62 unsigned int us_size;
63 unsigned int us_cnt;
65
66typedef struct {
67 unsigned char en_pool_id;
68 unsigned char uc_subpool_cnt;
69 unsigned char auc_resv[2]; // Reserve 2 bites for four-byte alignment
72
74 unsigned char *puc_data;
75 unsigned char *puc_origin_data;
76 unsigned int us_len;
77 unsigned char uc_user_cnt : 4;
78 unsigned char en_mem_state_flag : 4;
79 unsigned char en_pool_id : 4;
80 unsigned char uc_subpool_id : 4;
81
82#ifdef _PRE_MEM_DEBUG_MODE
83 unsigned long ul_return_addr;
84#endif
85};
87
88typedef struct {
89 unsigned int us_max_byte_len;
90 unsigned char uc_subpool_cnt;
91 unsigned char uc_resv;
93 unsigned int us_mem_used_cnt;
94 unsigned int us_mem_total_cnt;
97
105int conn_mem_init_pool(unsigned char *start, unsigned int size);
106
108
116void *conn_mem_alloc_enhanced(unsigned long return_addr,
117 unsigned int us_len);
118
125void conn_mem_free_enhanced(const void *free_mem);
126
135void *conn_mem_realloc_enhanced(unsigned long return_addr,
136 const void *mem,
137 unsigned int us_len);
138
139#endif
140
int conn_mem_init_pool(unsigned char *start, unsigned int size)
Prototype : conn_mem_init_pool Description : mem pool init function, only call once Input : void* sta...
void * conn_mem_alloc_enhanced(unsigned long return_addr, unsigned int us_len)
Prototype : conn_mem_alloc_enhanced Description : mem alloc function, Input : unsigned long return_ad...
conn_mem_state_enum
Definition chip_mem.h:42
@ CONN_MEM_STATE_ALLOC
Definition chip_mem.h:44
@ CONN_MEM_STATE_BUTT
Definition chip_mem.h:45
@ CONN_MEM_STATE_FREE
Definition chip_mem.h:43
void * conn_mem_realloc_enhanced(unsigned long return_addr, const void *mem, unsigned int us_len)
Prototype : conn_mem_realloc_enhanced Description : mem realloc function Input : unsigned long return...
void conn_mem_free_enhanced(const void *free_mem)
Prototype : conn_mem_free_enhanced Description : mem free function, can't free the mem repeat,...
void conn_mem_print_pool_info(void)
#define WLAN_MEM_MAX_SUBPOOL_NUM
Definition chip_mem.h:35
conn_mem_pool_id_enum
Definition chip_mem.h:48
@ CONN_MEM_POOL_ID_LOCAL
Definition chip_mem.h:49
@ CONN_MEM_POOL_ID_BUTT
Definition chip_mem.h:50
Definition chip_mem.h:66
conn_mem_subpool_cfg_stru * pst_subpool_cfg_info
Definition chip_mem.h:70
unsigned char en_pool_id
Definition chip_mem.h:67
unsigned char uc_subpool_cnt
Definition chip_mem.h:68
Definition chip_mem.h:88
unsigned char uc_resv
Definition chip_mem.h:91
unsigned char uc_subpool_cnt
Definition chip_mem.h:90
unsigned int us_mem_used_cnt
Definition chip_mem.h:93
conn_mem_stru * pst_mem_start_addr
Definition chip_mem.h:95
unsigned int us_mem_total_cnt
Definition chip_mem.h:94
unsigned int us_max_byte_len
Definition chip_mem.h:89
Definition chip_mem.h:73
unsigned long ul_return_addr
Definition chip_mem.h:83
unsigned char en_mem_state_flag
Definition chip_mem.h:78
unsigned int us_len
Definition chip_mem.h:76
unsigned char * puc_origin_data
Definition chip_mem.h:75
unsigned char en_pool_id
Definition chip_mem.h:79
unsigned char uc_user_cnt
Definition chip_mem.h:77
unsigned char * puc_data
Definition chip_mem.h:74
unsigned char uc_subpool_id
Definition chip_mem.h:80
Definition chip_mem.h:61
unsigned int us_size
Definition chip_mem.h:62
unsigned int us_cnt
Definition chip_mem.h:63
Definition chip_mem.h:53
unsigned int us_free_cnt
Definition chip_mem.h:55
unsigned int us_len
Definition chip_mem.h:54
void ** ppst_free_stack
Definition chip_mem.h:56
unsigned int us_total_cnt
Definition chip_mem.h:57