diff options
author | Damjan Marion <damarion@cisco.com> | 2023-11-13 12:18:24 +0000 |
---|---|---|
committer | Damjan Marion <damarion@cisco.com> | 2023-11-13 19:05:17 +0000 |
commit | 2d725c61286ccb8625ffad5c678cee337f88bceb (patch) | |
tree | c3b70710a4f4e5b30c68a6791af151b9de787c62 /src/plugins/dev_ena/ena_inlines.h | |
parent | e596ca1b51d25c24bd06132f9824d4bd0c6a5ecc (diff) |
ena: Amazon Elastic Network Adapter (ENA) native driver
Type: feature
Change-Id: Icd9de05f2cbac0e5a6dfb1f1414f21dc4b893104
Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/plugins/dev_ena/ena_inlines.h')
-rw-r--r-- | src/plugins/dev_ena/ena_inlines.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/plugins/dev_ena/ena_inlines.h b/src/plugins/dev_ena/ena_inlines.h new file mode 100644 index 00000000000..106bd5eaa21 --- /dev/null +++ b/src/plugins/dev_ena/ena_inlines.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: Apache-2.0 + * Copyright(c) 2023 Cisco Systems, Inc. + */ + +#ifndef _ENA_INLINES_H_ +#define _ENA_INLINES_H_ + +#include <vppinfra/clib.h> +#include <vppinfra/error_bootstrap.h> +#include <dev_ena/ena.h> + +#define ena_log_is_debug() \ + vlib_log_is_enabled (VLIB_LOG_LEVEL_DEBUG, ena_log.class) + +#define ena_stats_log_err(dev, f, ...) \ + vlib_log (VLIB_LOG_LEVEL_ERR, ena_stats_log.class, "%U: " f, \ + format_vnet_dev_addr, dev, ##__VA_ARGS__) + +#define ena_stats_log_debug(dev, f, ...) \ + vlib_log (VLIB_LOG_LEVEL_DEBUG, ena_stats_log.class, "%U: " f, \ + format_vnet_dev_addr, dev, ##__VA_ARGS__) + +#define ena_stats_log_is_debug() \ + vlib_log_is_enabled (VLIB_LOG_LEVEL_DEBUG, ena_stats_log.class) + +static_always_inline void +ena_set_mem_addr (vlib_main_t *vm, vnet_dev_t *dev, ena_mem_addr_t *m, void *p) +{ + u64 pa = vnet_dev_get_dma_addr (vm, dev, p); + *m = (ena_mem_addr_t){ .addr_lo = (u32) pa, .addr_hi = (u16) (pa >> 32) }; +} + +static_always_inline int +ena_aq_feature_is_supported (vnet_dev_t *dev, ena_aq_feature_id_t feat_id) +{ + ena_device_t *ed = vnet_dev_get_data (dev); + return (ed->dev_attr.supported_features & (1U << feat_id)) != 0; +} + +#endif /* ENA_INLINES_H */ |