⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymbuf.c

📁 可以用于vxworks的mbuf的自己设计的实现方式
💻 C
字号:
/* 2007-1-11 11:59上午 djl modify*/

#define MCLBYTES  2048  /* 一个mbuf簇(外部缓存)的大小 */

#define MHLEN     100   /* 带分组首部的mbuf的最大数据量 */
#define MINCLSIZE   208 /* 存储到簇中的最小数据 */
#define MLEN        108 /* 在正常的mbuf中的最大数据量*/
#define MSIZE       128 /* 每个mbuf的大小*/

/* mbuf 首部结构 */

struct m_hdr
{
		struct mbuf *mh_next;
		struct mbuf *mh_nextpkt;	
		int          mh_len;
		caddr_t      mh_data;
	  short       mh_type;
	  short       mh_flag;
};

/*  包头 */
struct pkthdr
{
   int len;
   struct ifnet *rcvif;	
}

/* description of external storage mapped into mbuf,valid if M_NEXT set*/

struct m_ext
{
		caddr_t  ext_buf;
		void    (*ext_free)();
		u_int    ext_size;	
};


struct mbuf
{ 
	struct m_hdr m_hdr;
	union{
		struct pkthdr MH_pkthdr;
		union{
				struct m_ext MH_ext;
				char MH_databuf[MHLEN];
    }MH;
    char M_databuf[MLEN];
		}M_dat;
};

#define m_nexts 	m_hdr.mh_next
#define m_leng  	m_hdr.mh_len
#define m_datas 	m_hdr.mh_data
#define m_types 	m_hdr.mh_type
#define m_flagss 	m_hdr.mh_flags
#define m_nextpkts m_hdr.mh_nextpkt
#define act 			m_nextpkts
#define m_pkthdrs M_dat.MH.MH_pkthdr
#define m_exts 		M_dat.MH.MH_dat.MH_ext
#define m_pktdat 	M_dat.MH.MH_dat.MH_databuf
#define m_dat			M_dat.M_databuf



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -