aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hyperv/vmbus/vmbus_brvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/hyperv/vmbus/vmbus_brvar.h')
-rw-r--r--sys/dev/hyperv/vmbus/vmbus_brvar.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/hyperv/vmbus/vmbus_brvar.h b/sys/dev/hyperv/vmbus/vmbus_brvar.h
index da0ca9d8f535..bd967f6e869b 100644
--- a/sys/dev/hyperv/vmbus/vmbus_brvar.h
+++ b/sys/dev/hyperv/vmbus/vmbus_brvar.h
@@ -74,6 +74,7 @@ struct sysctl_oid;
static __inline int
vmbus_txbr_maxpktsz(const struct vmbus_txbr *tbr)
{
+
/*
* - 64 bits for the trailing start index (- sizeof(uint64_t)).
* - The rindex and windex can't be same (- 1). See
@@ -82,6 +83,17 @@ vmbus_txbr_maxpktsz(const struct vmbus_txbr *tbr)
return (tbr->txbr_dsize - sizeof(uint64_t) - 1);
}
+static __inline int
+vmbus_br_nelem(int br_size, int elem_size)
+{
+
+ /* Strip bufring header */
+ br_size -= sizeof(struct vmbus_bufring);
+ /* Add per-element trailing index */
+ elem_size += sizeof(uint64_t);
+ return (br_size / elem_size);
+}
+
void vmbus_br_sysctl_create(struct sysctl_ctx_list *ctx,
struct sysctl_oid *br_tree, struct vmbus_br *br,
const char *name);