WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
oal_net_pkt_rom.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: Header file for oal_net_pkt_rom
4 */
5
6#ifndef OAL_NET_PKT_ROM_H
7#define OAL_NET_PKT_ROM_H
8#include "osal_types.h"
9#include "soc_osal.h"
11#ifdef __cplusplus
12#if __cplusplus
13extern "C" {
14#endif
15#endif
16
30
31/*****************************************************************************
32 枚举名 : oal_netbuf_id_enum_uint8
33 协议表格:
34 枚举说明: 对外提供netbuf内存池ID
35*****************************************************************************/
36typedef enum {
37 OAL_NORMAL_NETBUF = 0, /* 包括短帧、长帧内存池 */
38 OAL_MGMT_NETBUF = 1, /* 管理帧内存池 */
39
43
44/*****************************************************************************
45 枚举名 : oal_netbuf_priority_enum_uint8
46 协议表格:
47 枚举说明: netbuf优先级
48*****************************************************************************/
49typedef enum {
50 OAL_NETBUF_PRIORITY_LOW = 0, // 最低优先级,不能跨池申请
51 OAL_NETBUF_PRIORITY_MID = 1, // 中间优先级,可以跨池申请,但不能申请大包的最后N片
52 OAL_NETBUF_PRIORITY_HIGH = 2, // 最高优先级,可以跨池申请,且可以申请大包的最后N片
53
57
58#define OAL_MEM_INFO_SIZE 4
59
60#define OAL_MACHDR_LEN 80 /* netbuf mac头长度 */
61#define MAC_HEAD_OFFSET (OAL_MACHDR_LEN - OAL_MAX_MAC_HDR_LEN)
62#define CB_OFFSET (OAL_MACHDR_LEN - OAL_MAX_MAC_HDR_LEN - OAL_MAX_CB_LEN)
63
64#define WLAN_MEM_MAX_SUBPOOL_NUM 8 /* 内存池中出netbuf内存池外最大子内存池个数 */
65
66/*****************************************************************************
67 枚举名 : oal_mem_state_enum_uint8
68 协议表格:
69 枚举说明: 内存块状态
70*****************************************************************************/
71typedef enum {
72 OAL_MEM_STATE_FREE = 0, /* 该内存空闲 */
73 OAL_MEM_STATE_ALLOC, /* 该内存已分配 */
77
78/*****************************************************************************
79 结构名 : oal_dmac_netbuf_stru
80 结构说明: 描述每一个netbuf内存块信息
81 *****************************************************************************/
82/* netbuf_stru加dmac */
85 oal_mem_state_enum_uint8 mem_state; /* 内存块状态 */
86 osal_u8 is_high_priority : 1; /* 是否是被高优先级申请 */
87 osal_u8 subpool_id : 3; /* 记录所属子池id */
88 osal_u8 is_ram : 1; /* 是否属于系统内存申请 */
90 osal_u16 index; /* 序号 */
94#ifdef _PRE_MEM_DEBUG
95 osal_u32 return_addr; /* 调用alloc内存的函数地址 */
96#endif
97};
99
100/* netbuf_stru加dmac */
101typedef struct {
105 osal_u8 auc_resv[4]; /* 此处添加4个保留字节是为了让整个结构体与linux下大小一致 */
107
119 oal_dmac_netbuf_stru **out_netbuf);
124
125/* ****************************************************************************
126 功能描述 : 获取skb数据头部(偏移mac头后的数据)
127**************************************************************************** */
128static INLINE__ osal_u8 *oal_dmac_netbuf_data(const oal_dmac_netbuf_stru *netbuf)
129{
130 osal_u8 *payload = oal_dmac_netbuf_payload(netbuf);
131 return (payload + OAL_MACHDR_LEN);
132}
133
134#ifdef __cplusplus
135#if __cplusplus
136}
137#endif
138#endif
139
140#endif /* end of oal_net_pkt_rom.h */
141
osal_u32(* oal_mem_netbuf_alloc_from_ram_cb)(osal_u8 subpool_id, osal_u32 return_addr, oal_dmac_netbuf_stru **out_netbuf)
Definition oal_net_pkt_rom.h:118
#define OAL_MACHDR_LEN
Definition oal_net_pkt_rom.h:60
osal_u8 * oal_netbuf_skb(const oal_dmac_netbuf_stru *netbuf)
osal_u8 oal_netbuf_id_enum_uint8
Definition oal_net_pkt_rom.h:42
osal_u32 oal_mem_get_buf_size(osal_void)
oal_pkt_buf_src_type
Definition oal_net_pkt_rom.h:17
@ PKT_BUF_SRC_HMAC
Definition oal_net_pkt_rom.h:20
@ SKB_BUF_SRC_LWIP
Definition oal_net_pkt_rom.h:22
@ PKT_BUF_SRC_DMAC
Definition oal_net_pkt_rom.h:18
@ PBUF_SRC_LWIP
Definition oal_net_pkt_rom.h:25
@ SKB_BUF_SRC_HMAC
Definition oal_net_pkt_rom.h:23
@ SKB_BUF_SRC_DMAC
Definition oal_net_pkt_rom.h:21
@ PBUF_SRC_HMAC
Definition oal_net_pkt_rom.h:26
@ PKT_BUF_SRC_LWIP
Definition oal_net_pkt_rom.h:19
@ PKT_BUF_SRC_BUTT
Definition oal_net_pkt_rom.h:28
@ PBUF_SRC_DMAC
Definition oal_net_pkt_rom.h:24
osal_u8 * oal_netbuf_lwip(const oal_dmac_netbuf_stru *netbuf)
oal_netbuf_priority_enum
Definition oal_net_pkt_rom.h:49
@ OAL_NETBUF_PRIORITY_LOW
Definition oal_net_pkt_rom.h:50
@ OAL_NETBUF_PRIORITY_BUTT
Definition oal_net_pkt_rom.h:54
@ OAL_NETBUF_PRIORITY_MID
Definition oal_net_pkt_rom.h:51
@ OAL_NETBUF_PRIORITY_HIGH
Definition oal_net_pkt_rom.h:52
osal_u32(* oal_mem_netbuf_free_from_ram_cb)(oal_dmac_netbuf_stru *netbuf)
Definition oal_net_pkt_rom.h:120
osal_u32(* oal_mem_netbuf_pbuf_free_cb)(oal_dmac_netbuf_stru *netbuf)
Definition oal_net_pkt_rom.h:117
osal_u8 * oal_dmac_netbuf_cb(const oal_dmac_netbuf_stru *netbuf)
osal_void oal_mem_netbuf_free(oal_dmac_netbuf_stru *netbuf)
oal_mem_state_enum
Definition oal_net_pkt_rom.h:71
@ OAL_MEM_STATE_FREE
Definition oal_net_pkt_rom.h:72
@ OAL_MEM_STATE_ALLOC
Definition oal_net_pkt_rom.h:73
@ OAL_MEM_STATE_BUTT
Definition oal_net_pkt_rom.h:74
osal_u8 oal_mem_state_enum_uint8
Definition oal_net_pkt_rom.h:76
osal_u8 * oal_netbuf_hcchdr(const oal_dmac_netbuf_stru *netbuf)
osal_u8 * oal_dmac_netbuf_payload(const oal_dmac_netbuf_stru *netbuf)
osal_u8 oal_netbuf_priority_enum_uint8
Definition oal_net_pkt_rom.h:56
oal_dmac_netbuf_stru * oal_mem_netbuf_alloc(osal_u8 netbuf_id, osal_u16 len, oal_netbuf_priority_enum_uint8 flag)
osal_u8 * oal_dmac_netbuf_end(const oal_dmac_netbuf_stru *netbuf)
oal_netbuf_id_enum
Definition oal_net_pkt_rom.h:36
@ OAL_NORMAL_NETBUF
Definition oal_net_pkt_rom.h:37
@ OAL_MGMT_NETBUF
Definition oal_net_pkt_rom.h:38
@ OAL_NETBUF_POOL_ID_BUTT
Definition oal_net_pkt_rom.h:40
osal_u32 oal_mem_get_skb_size(osal_void)
osal_u32 oal_mem_get_zerocopy_hdr_size(osal_void)
osal_u8 * oal_netbuf_mac_header(const oal_dmac_netbuf_stru *netbuf)
#define INLINE__
Definition osal_list.h:25
unsigned char osal_u8
Definition osal_types.h:11
short osal_s16
Definition osal_types.h:18
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition oal_net_pkt_rom.h:101
osal_u32 num
Definition oal_net_pkt_rom.h:104
oal_dmac_netbuf_stru * prev
Definition oal_net_pkt_rom.h:103
oal_dmac_netbuf_stru * next
Definition oal_net_pkt_rom.h:102
Definition oal_net_pkt_rom.h:83
osal_u8 resv1
Definition oal_net_pkt_rom.h:93
oal_mem_state_enum_uint8 mem_state
Definition oal_net_pkt_rom.h:85
osal_u8 is_ram
Definition oal_net_pkt_rom.h:88
struct oal_dmac_netbuf_stru_tag * next
Definition oal_net_pkt_rom.h:84
osal_u8 pkt_src
Definition oal_net_pkt_rom.h:92
osal_u8 resv
Definition oal_net_pkt_rom.h:89
osal_u8 subpool_id
Definition oal_net_pkt_rom.h:87
osal_s16 pkt_buf_offset
Definition oal_net_pkt_rom.h:91
osal_u8 is_high_priority
Definition oal_net_pkt_rom.h:86
osal_u16 index
Definition oal_net_pkt_rom.h:90