mprobe_pbuffer.h

来自「LInux BootLoader的说明文档」· C头文件 代码 · 共 77 行

H
77
字号
/*
    文件名: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 + =
减小字号Ctrl + -
显示快捷键?