#ifndef NET_SMC_SMC_STATS_H_
#define NET_SMC_SMC_STATS_H_
#include <linux/init.h>
#include <linux/mutex.h>
#include <linux/percpu.h>
#include <linux/ctype.h>
#include <linux/smc.h>
#include "smc_clc.h"
#define SMC_MAX_FBACK_RSN_CNT …
enum { … };
struct smc_stats_fback { … };
struct smc_stats_rsn { … };
struct smc_stats_rmbcnt { … };
struct smc_stats_memsize { … };
struct smc_stats_tech { … };
struct smc_stats { … };
#define SMC_STAT_PAYLOAD_SUB(_smc_stats, _tech, key, _len, _rc) …
#define SMC_STAT_TX_PAYLOAD(_smc, length, rcode) …
#define SMC_STAT_RX_PAYLOAD(_smc, length, rcode) …
#define SMC_STAT_RMB_SIZE_SUB(_smc_stats, _tech, k, _len) …
#define SMC_STAT_RMB_SUB(_smc_stats, type, t, key) …
#define SMC_STAT_RMB_SIZE(_smc, _is_smcd, _is_rx, _len) …
#define SMC_STAT_RMB(_smc, type, _is_smcd, _is_rx) …
#define SMC_STAT_BUF_REUSE(smc, is_smcd, is_rx) …
#define SMC_STAT_RMB_ALLOC(smc, is_smcd, is_rx) …
#define SMC_STAT_RMB_DOWNGRADED(smc, is_smcd, is_rx) …
#define SMC_STAT_RMB_TX_PEER_FULL(smc, is_smcd) …
#define SMC_STAT_RMB_TX_FULL(smc, is_smcd) …
#define SMC_STAT_RMB_TX_PEER_SIZE_SMALL(smc, is_smcd) …
#define SMC_STAT_RMB_TX_SIZE_SMALL(smc, is_smcd) …
#define SMC_STAT_RMB_RX_SIZE_SMALL(smc, is_smcd) …
#define SMC_STAT_RMB_RX_FULL(smc, is_smcd) …
#define SMC_STAT_INC(_smc, type) …
#define SMC_STAT_CLNT_SUCC_INC(net, _aclc) …
#define SMC_STAT_SERV_SUCC_INC(net, _ini) …
int smc_nl_get_stats(struct sk_buff *skb, struct netlink_callback *cb);
int smc_nl_get_fback_stats(struct sk_buff *skb, struct netlink_callback *cb);
int smc_stats_init(struct net *net);
void smc_stats_exit(struct net *net);
#endif