#pragma once #include #include #ifndef MRB_MAX_CTRLZONE_NUM #define MRB_MAX_CTRLZONE_NUM 16 #endif struct mrb_zone_idx { uint8_t offset; uint8_t size; }; /* Private Zone for DEBUG */ struct mrb_zone_ts { struct timespec ts_srv_rx_or_alloc; struct timespec ts_app_rx_or_alloc; }; struct mrb_priv_zone { struct rte_mbuf * next; struct mrb_zone_ts ts; uint8_t cz_num; struct mrb_zone_idx idx[MRB_MAX_CTRLZONE_NUM]; }__rte_packed; struct mrb_zone_info { char symbol[MR_SYMBOL_MAX]; unsigned int cz_id; unsigned int size; unsigned int in_use; }; #define mrbuf_priv(m) ((struct mrb_priv_zone*)((char*)m+sizeof(struct rte_mbuf))) #define mrbuf_cz(m,k) (&(mrbuf_priv(m)->idx[k])) #define mrbuf_cz_data(m,k) ((void*)((char*)mrbuf_priv(m)+mrbuf_cz(m,k)->offset)) #define mrbuf_cz_num(m) (mrbuf_priv(m)->cz_num)