mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
uhd: Add asio abstraction header
This adds uhdlib/asio.hpp, which makes it possible for UHD to use either Boost.Asio or regular asio. Note that for using regular asio, additional CMake changes are required, which are not part of this changeset, and all C++ sources would need to reference namespace asio:: instead of boost::asio::, which is also not part of this changeset. However, the boost/asio.hpp include statement is now limited to a single location, which makes it possible to set custom include preferences for this file. Here, we allow gcc builds to allow some warnings when including Boost.Asio.
This commit is contained in:
parent
52396f7e20
commit
b58808fecf
@ -3,7 +3,7 @@
|
||||
#ifndef ASYNC_WRITER_H_HQIRH28I
|
||||
#define ASYNC_WRITER_H_HQIRH28I
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include "rpc/msgpack.hpp"
|
||||
#include <condition_variable>
|
||||
#include <deque>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#ifndef SESSION_H_5KG6ZMAB
|
||||
#define SESSION_H_5KG6ZMAB
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
#include <thread>
|
||||
#include <unordered_map>
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <boost/format.hpp>
|
||||
|
||||
#include "rpc/detail/async_writer.h"
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
#include <stdint.h>
|
||||
#include <thread>
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
|
||||
#include "rpc/detail/dev_utils.h"
|
||||
#include "rpc/detail/log.h"
|
||||
|
||||
36
host/lib/include/uhdlib/asio.hpp
Normal file
36
host/lib/include/uhdlib/asio.hpp
Normal file
@ -0,0 +1,36 @@
|
||||
/* -*- c++ -*- */
|
||||
/*
|
||||
* Copyright 2025 Ettus Research / NI / Emerson
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
// This is an abstraction layer for asio to non-Boost asio. It makes
|
||||
// asio look like regular asio to allow easier transition.
|
||||
|
||||
#pragma once
|
||||
|
||||
// If compiler warnings emanate from Boost, we let them through, so they don't
|
||||
// trip up our preferred -Werror settings.
|
||||
#if defined(__GNUC__)
|
||||
# pragma GCC diagnostic push
|
||||
# if __GNUC__ > 15 || (__GNUC__ == 15 && (__GNUC_MINOR__ > 0))
|
||||
# pragma GCC diagnostic warning "-Warray-bounds"
|
||||
# endif
|
||||
#endif
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/system/error_code.hpp>
|
||||
#include <boost/system/system_error.hpp>
|
||||
#if defined(__GNUC__)
|
||||
# pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
// In regular, non-Boost ASIO these types are part of the library. In regular
|
||||
// Boost, they're part of boost::system. We therefore patch the boost namespace
|
||||
// to make them look the same.
|
||||
namespace boost { namespace asio {
|
||||
using error_code = boost::system::error_code;
|
||||
using system_error = boost::system::system_error;
|
||||
}} // namespace boost::asio
|
||||
|
||||
namespace asio = boost::asio;
|
||||
@ -10,7 +10,7 @@
|
||||
#include "rpc_common.hpp"
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhd/utils/noncopyable.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <boost/date_time/posix_time/posix_time_types.hpp>
|
||||
#include <boost/thread.hpp>
|
||||
#include <boost/thread/condition.hpp>
|
||||
|
||||
@ -9,11 +9,11 @@
|
||||
#include <uhd/config.hpp>
|
||||
#include <uhd/transport/buffer_pool.hpp>
|
||||
#include <uhd/types/device_addr.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/transport/adapter_info.hpp>
|
||||
#include <uhdlib/transport/link_base.hpp>
|
||||
#include <uhdlib/transport/links.hpp>
|
||||
#include <uhdlib/transport/udp_common.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
|
||||
@ -13,9 +13,9 @@
|
||||
#include <uhd/rfnoc/constants.hpp>
|
||||
#include <uhd/types/device_addr.hpp>
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/transport/links.hpp>
|
||||
#include <uhdlib/utils/narrow.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <thread>
|
||||
|
||||
|
||||
@ -6,10 +6,10 @@
|
||||
|
||||
#include <uhd/exception.hpp>
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/usrp/cores/xport_adapter_ctrl.hpp>
|
||||
#include <unordered_map>
|
||||
#include <boost/algorithm/string/case_conv.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <chrono>
|
||||
#include <cstdio>
|
||||
#include <thread>
|
||||
|
||||
@ -12,10 +12,10 @@
|
||||
#include <uhd/transport/if_addrs.hpp>
|
||||
#include <uhd/transport/udp_simple.hpp>
|
||||
#include <uhd/types/device_addr.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/utils/prefs.hpp>
|
||||
#include <uhdlib/utils/serial_number.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <future>
|
||||
#ifdef HAVE_DPDK
|
||||
# include <uhdlib/transport/dpdk/common.hpp>
|
||||
|
||||
@ -7,8 +7,8 @@
|
||||
#include "usrp1_impl.hpp"
|
||||
#include <uhd/types/byte_vector.hpp>
|
||||
#include <uhd/usrp/mboard_eeprom.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/utils/eeprom_utils.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
|
||||
namespace {
|
||||
const uint8_t USRP1_EEPROM_ADDR = 0x50;
|
||||
|
||||
@ -15,8 +15,8 @@
|
||||
#include <uhd/types/serial.hpp>
|
||||
#include <uhd/usrp/dboard_iface.hpp>
|
||||
#include <uhd/utils/algorithm.hpp>
|
||||
#include <uhdlib/asio.hpp> //htonl and ntohl
|
||||
#include <uhdlib/usrp/cores/gpio_core_200.hpp>
|
||||
#include <boost/asio.hpp> //htonl and ntohl
|
||||
#include <boost/assign/list_of.hpp>
|
||||
#include <cmath>
|
||||
|
||||
|
||||
@ -16,9 +16,9 @@
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhd/utils/tasks.hpp>
|
||||
#include <uhd/utils/thread.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/usrp/common/async_packet_handler.hpp>
|
||||
#include <uhdlib/usrp/common/validate_subdev_spec.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/thread/mutex.hpp>
|
||||
#include <boost/thread/thread.hpp>
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
#include <uhd/transport/vrt_if_packet.hpp>
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhd/utils/safe_call.hpp>
|
||||
#include <boost/asio.hpp> //htonl
|
||||
#include <uhdlib/asio.hpp> //htonl
|
||||
#include <mutex>
|
||||
|
||||
using namespace uhd;
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
#include <uhd/utils/platform.hpp>
|
||||
#include <uhd/utils/safe_call.hpp>
|
||||
#include <uhd/utils/tasks.hpp>
|
||||
#include <uhdlib/asio.hpp> //used for htonl and ntohl
|
||||
#include <uhdlib/utils/paths.hpp>
|
||||
#include <boost/asio.hpp> //used for htonl and ntohl
|
||||
#include <boost/assign/list_of.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/format.hpp>
|
||||
|
||||
@ -14,8 +14,8 @@
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhd/utils/safe_call.hpp>
|
||||
#include <uhd/utils/static.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/usrp/common/apply_corrections.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/asio/ip/address_v4.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <cmath>
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
# include <uhdlib/transport/dpdk_simple.hpp>
|
||||
# include <uhdlib/transport/udp_dpdk_link.hpp>
|
||||
#endif
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <string>
|
||||
|
||||
uhd::wb_iface::sptr x300_make_ctrl_iface_enet(
|
||||
|
||||
@ -8,8 +8,8 @@
|
||||
#include <uhd/exception.hpp>
|
||||
#include <uhd/types/serial.hpp>
|
||||
#include <uhd/usrp/mboard_eeprom.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/utils/eeprom_utils.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
|
||||
namespace {
|
||||
const uint8_t X300_EEPROM_ADDR = 0x50;
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
#include <uhd/usrp/mboard_eeprom.hpp>
|
||||
#include <uhd/usrp_clock/octoclock_eeprom.hpp>
|
||||
#include <uhd/utils/byteswap.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
|
||||
typedef boost::asio::ip::address_v4 ip_v4;
|
||||
|
||||
|
||||
@ -18,9 +18,9 @@
|
||||
#include <uhd/utils/log.hpp>
|
||||
#include <uhd/utils/paths.hpp>
|
||||
#include <uhd/utils/static.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <uhdlib/utils/paths.hpp>
|
||||
#include <stdint.h>
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/assign.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/format.hpp>
|
||||
|
||||
@ -10,10 +10,10 @@
|
||||
#include "octoclock_impl.hpp"
|
||||
#include <uhd/exception.hpp>
|
||||
#include <uhd/utils/byteswap.hpp>
|
||||
#include <uhdlib/asio.hpp>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/thread/thread.hpp>
|
||||
#include <chrono>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user