summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2016-01-27 00:20:07 +0000
committerglebius <glebius@FreeBSD.org>2016-01-27 00:20:07 +0000
commit2f1de40ae4b267274d3f5ed990e642f42a26b013 (patch)
tree1e238b5c458a122f5d3018577d05f8c10b448a9b
parent2e623b340f634c5363b749d9a07efcf5c1c59163 (diff)
downloadFreeBSD-src-2f1de40ae4b267274d3f5ed990e642f42a26b013.zip
FreeBSD-src-2f1de40ae4b267274d3f5ed990e642f42a26b013.tar.gz
Provide TCPSTAT_DEC() and TCPSTAT_FETCH() macros.
-rw-r--r--sys/net/vnet.h3
-rw-r--r--sys/netinet/tcp_var.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/sys/net/vnet.h b/sys/net/vnet.h
index 7b43f83..75bb728 100644
--- a/sys/net/vnet.h
+++ b/sys/net/vnet.h
@@ -101,6 +101,9 @@ struct vnet {
#define VNET_PCPUSTAT_ADD(type, name, f, v) \
counter_u64_add(VNET(name)[offsetof(type, f) / sizeof(uint64_t)], (v))
+#define VNET_PCPUSTAT_FETCH(type, name, f) \
+ counter_u64_fetch(VNET(name)[offsetof(type, f) / sizeof(uint64_t)])
+
#define VNET_PCPUSTAT_SYSINIT(name) \
static void \
vnet_##name##_init(const void *unused) \
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index 6cd4cf0..4712c6b 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -605,6 +605,9 @@ VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */
#define TCPSTAT_ADD(name, val) \
VNET_PCPUSTAT_ADD(struct tcpstat, tcpstat, name, (val))
#define TCPSTAT_INC(name) TCPSTAT_ADD(name, 1)
+#define TCPSTAT_DEC(name) TCPSTAT_ADD(name, -1)
+#define TCPSTAT_FETCH(name) VNET_PCPUSTAT_FETCH(struct tcpstat, tcpstat, \
+ name)
/*
* Kernel module consumers must use this accessor macro.
OpenPOWER on IntegriCloud