blob: a978be5e82dfd5909f3e0878914c06216f6da4a7 [file] [log] [blame]
#ifndef _PKTLOG_H_
#define _PKTLOG_H_
#ifdef CONFIG_ATH11K_PKTLOG
#define CUR_PKTLOG_VER 10010 /* Packet log version */
#define PKTLOG_MAGIC_NUM 7735225
#define PKTLOG_NEW_MAGIC_NUM 2453506
/* Masks for setting pktlog events filters */
#define ATH_PKTLOG_RX 0x000000001
#define ATH_PKTLOG_TX 0x000000002
#define ATH_PKTLOG_RCFIND 0x000000004
#define ATH_PKTLOG_RCUPDATE 0x000000008
#define ATH_DEBUGFS_PKTLOG_SIZE_DEFAULT (8 * 1024 * 1024)
#define ATH_PKTLOG_FILTER_DEFAULT (ATH_PKTLOG_TX | ATH_PKTLOG_RX | \
ATH_PKTLOG_RCFIND | ATH_PKTLOG_RCUPDATE)
enum {
PKTLOG_FLG_FRM_TYPE_LOCAL_S = 0,
PKTLOG_FLG_FRM_TYPE_REMOTE_S,
PKTLOG_FLG_FRM_TYPE_CLONE_S,
PKTLOG_FLG_FRM_TYPE_UNKNOWN_S
};
struct ath_pktlog_hdr_arg {
u16 log_type;
u8 *payload;
u16 payload_size;
u8 *pktlog_hdr;
};
struct ath_pktlog_bufhdr {
u32 magic_num; /* Used by post processing scripts */
u32 version; /* Set to CUR_PKTLOG_VER */
};
struct ath_pktlog_buf {
struct ath_pktlog_bufhdr bufhdr;
int rd_offset;
int wr_offset;
char log_data[0];
};
struct ath_pktlog {
struct ath_pktlog_buf *buf;
u32 filter;
u32 buf_size; /* Size of buffer in bytes */
spinlock_t lock;
u8 hdr_size;
u8 hdr_size_field_offset;
};
#endif /* CONFIG_ATH10K_PKTLOG */
#endif /* _PKTLOG_H_ */