📄 mprobe_pbuffer.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 + -