aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/lib/xbar_iface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mpm/lib/xbar_iface.cpp')
-rw-r--r--mpm/lib/xbar_iface.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/mpm/lib/xbar_iface.cpp b/mpm/lib/xbar_iface.cpp
index cff5ed2e7..05d1e2053 100644
--- a/mpm/lib/xbar_iface.cpp
+++ b/mpm/lib/xbar_iface.cpp
@@ -5,41 +5,48 @@
//
#include "mpm/xbar_iface.hpp"
+#include <fcntl.h>
#include <mpm/exception.hpp>
-#include <boost/format.hpp>
#include <sys/ioctl.h>
-#include <fcntl.h>
+#include <boost/format.hpp>
using namespace mpm;
std::mutex xbar_iface::_lock; // Initialize lock for all objects
-xbar_iface::xbar_iface(const std::string &device){
+xbar_iface::xbar_iface(const std::string& device)
+{
_fd = open(device.c_str(), O_RDWR);
}
-xbar_iface::~xbar_iface(){
+xbar_iface::~xbar_iface()
+{
close(_fd);
}
-void xbar_iface::set_route(uint8_t dst_addr, uint8_t dst_port) {
+void xbar_iface::set_route(uint8_t dst_addr, uint8_t dst_port)
+{
std::lock_guard<std::mutex> lock(_lock);
rfnoc_crossbar_cmd cmd = {.dest_addr = dst_addr, .dest_port = dst_port};
- int err = ioctl(_fd, RFNCBWROUTIOC, &cmd);
+ int err = ioctl(_fd, RFNCBWROUTIOC, &cmd);
if (err < 0) {
- throw mpm::os_error(str(boost::format("setting crossbar route failed! Error: %d") % err));
+ throw mpm::os_error(
+ str(boost::format("setting crossbar route failed! Error: %d") % err));
}
}
-void xbar_iface::del_route(uint8_t dst_addr, uint8_t dst_port){
+void xbar_iface::del_route(uint8_t dst_addr, uint8_t dst_port)
+{
std::lock_guard<std::mutex> lock(_lock);
rfnoc_crossbar_cmd cmd = {.dest_addr = dst_addr, .dest_port = dst_port};
- int err = ioctl(_fd, RFNCDELROUTIOC, &cmd);
- if (err < 0){
- throw mpm::os_error(str(boost::format("deleting crossbar route failed! Error: %d") % err));
+ int err = ioctl(_fd, RFNCDELROUTIOC, &cmd);
+ if (err < 0) {
+ throw mpm::os_error(
+ str(boost::format("deleting crossbar route failed! Error: %d") % err));
}
}
-xbar_iface::sptr xbar_iface::make(const std::string &device){
+xbar_iface::sptr xbar_iface::make(const std::string& device)
+{
return std::make_shared<xbar_iface>(device);
}