aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/x300/include/wb_pkt_iface64.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/x300/include/wb_pkt_iface64.h')
-rw-r--r--firmware/x300/include/wb_pkt_iface64.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/firmware/x300/include/wb_pkt_iface64.h b/firmware/x300/include/wb_pkt_iface64.h
new file mode 100644
index 000000000..aa3c174ed
--- /dev/null
+++ b/firmware/x300/include/wb_pkt_iface64.h
@@ -0,0 +1,44 @@
+
+// Copyright 2012 Ettus Research LLC
+
+#ifndef INCLUDED_WB_PKT_IFACE64_H
+#define INCLUDED_WB_PKT_IFACE64_H
+
+#include <stdint.h>
+#include <stddef.h>
+#include <stdbool.h>
+
+//! opaque, dont touch insides
+typedef struct
+{
+ uint32_t base;
+ uint32_t ctrl;
+ uint32_t config_addr;
+} wb_pkt_iface64_config_t;
+
+//! Init the wb slave for packet interface
+wb_pkt_iface64_config_t wb_pkt_iface64_init(const uint32_t base, const size_t ctrl_offset);
+
+/*!
+ * Poll if an packet has been received.
+ * If yes, return the pointer to the pkt, num_bytes is set.
+ * Otherwise, return null.
+ */
+const void *wb_pkt_iface64_rx_try_claim(wb_pkt_iface64_config_t *config, size_t *num_bytes);
+
+/*!
+ * Release the hold on a received packet.
+ */
+void wb_pkt_iface64_rx_release(wb_pkt_iface64_config_t *config);
+
+/*!
+ * Aquire the buffer for an outgoing packet.
+ */
+void *wb_pkt_iface64_tx_claim(wb_pkt_iface64_config_t *config);
+
+/*!
+ * Submit an outgoing packet from a filled the buffer.
+ */
+void wb_pkt_iface64_tx_submit(wb_pkt_iface64_config_t *config, const size_t num_bytes);
+
+#endif /* INCLUDED_WB_PKT_IFACE64_H */