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

📄 mprobe_pbuffer.h

📁 LInux BootLoader的说明文档
💻 H
字号:
/*
    文件名:mprobe_pbuffer.h
*/

#ifndef MPROBE_PBUFFER_H
#define MPROBE_PBUFFER_H


#include "packet.h"


#define UDP_TYPE 0x00
#define TCP_TYPE  0x01

typedef struct mprobe_pbuffer_struct{
	unsigned long	max_memory ;		/*	最大使用内存    */
    unsigned long   use_memory ;		/*	已经使用的内存  */
    unsigned long   prefetch_memory ;	/*	预取的数据封包占用的存储    */
    unsigned long   cache_memory ;		/*	预存的数据封包占用的存储    */

    packets_t		cache ;				/*	预存数据封包队列    */
    packets_t		buffer ;			/*  缓冲数据封包队列    */
    packets_t		prefetch ;			/*	预取的数据封包  */

    pthread_mutex_t mutex ;
    pthread_cond_t  cond_full ;
    pthread_cond_t  cond_empty ;

    unsigned char	full_memory ;		/*	系统已经没有空间供分配	 */
}pbuffer_t ;



/*将原始数据报转换为结构*/
packet_t *
_pbuffer_packet_validate(const uint8_t * packet , uint16_t len , time_t tm ,	unsigned char * validate);



/*
	pbuffer_open	- 	打开缓冲区
	->@unsigned long capacity	:	缓冲区的容量
	!void  *					:	缓冲区句柄
*/
void *
pbuffer_open(unsigned long capacity) ;

/*
    pbuffer_close	-	关闭缓冲区
	->@void *   pbuffer	:	缓冲区句柄
	!void
*/
void
pbuffer_close(void * pbuffer) ;

/*
    pbuffer_insert_packet   -   将待分析的数据封包放入缓冲区
    ->@pbuffer_t *   pbuffer			:   缓冲区句柄
    ->@const uint8_t *  packet			:   数据封包
    ->@uint16_t len 					:   数据封包长度
    ->@time_t	tm						:	数据封包捕获时间
    !int								:   放入成功,返回0,否则返回-1
*/
int
pbuffer_insert_packet(void  * pbuffer , const uint8_t * packet , uint16_t len ,
	time_t tm) ;

/*
    pbuffer_get_packet  -   从缓冲区中取得采集到的待分析的数据封包
    ->@pbuffer_t * pbuffer			:	缓冲区句柄
    !packet_t *						:	取得的数据包
*/
packet_t *
pbuffer_get_packet(void * pbuffer) ;

#endif          /*  #ifndef MPROBE_PBUFFER_H    */

⌨️ 快捷键说明

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