aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/ena-com/ena_plat.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/ena-com/ena_plat.h')
-rw-r--r--sys/contrib/ena-com/ena_plat.h52
1 files changed, 49 insertions, 3 deletions
diff --git a/sys/contrib/ena-com/ena_plat.h b/sys/contrib/ena-com/ena_plat.h
index 9287532b8476..b5dc4e91a73c 100644
--- a/sys/contrib/ena-com/ena_plat.h
+++ b/sys/contrib/ena-com/ena_plat.h
@@ -1,7 +1,7 @@
/*-
* SPDX-License-Identifier: BSD-3-Clause
*
- * Copyright (c) 2015-2021 Amazon.com, Inc. or its affiliates.
+ * Copyright (c) 2015-2023 Amazon.com, Inc. or its affiliates.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -92,7 +92,42 @@ __FBSDID("$FreeBSD$");
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
-#include "ena_fbsd_log.h"
+enum ena_log_t {
+ ENA_ERR = 0,
+ ENA_WARN,
+ ENA_INFO,
+ ENA_DBG,
+};
+
+extern int ena_log_level;
+
+#define ena_log(dev, level, fmt, args...) \
+ do { \
+ if (ENA_ ## level <= ena_log_level) \
+ device_printf((dev), fmt, ##args); \
+ } while (0)
+
+#define ena_log_raw(level, fmt, args...) \
+ do { \
+ if (ENA_ ## level <= ena_log_level) \
+ printf(fmt, ##args); \
+ } while (0)
+
+#define ena_log_unused(dev, level, fmt, args...) \
+ do { \
+ (void)(dev); \
+ } while (0)
+
+#ifdef ENA_LOG_IO_ENABLE
+#define ena_log_io(dev, level, fmt, args...) \
+ ena_log((dev), level, fmt, ##args)
+#else
+#define ena_log_io(dev, level, fmt, args...) \
+ ena_log_unused((dev), level, fmt, ##args)
+#endif
+
+#define ena_log_nm(dev, level, fmt, args...) \
+ ena_log((dev), level, "[nm] " fmt, ##args)
extern struct ena_bus_space ebs;
@@ -152,7 +187,7 @@ static inline long PTR_ERR(const void *ptr)
#define GENMASK(h, l) (((~0U) - (1U << (l)) + 1) & (~0U >> (32 - 1 - (h))))
#define GENMASK_ULL(h, l) (((~0ULL) << (l)) & (~0ULL >> (64 - 1 - (h))))
#define BIT(x) (1UL << (x))
-
+#define BIT64(x) BIT(x)
#define ENA_ABORT() BUG()
#define BUG() panic("ENA BUG")
@@ -170,6 +205,7 @@ static inline long PTR_ERR(const void *ptr)
#define ENA_COM_PERMISSION EPERM
#define ENA_COM_TIMER_EXPIRED ETIMEDOUT
#define ENA_COM_EIO EIO
+#define ENA_COM_DEVICE_BUSY EBUSY
#define ENA_NODE_ANY (-1)
@@ -179,6 +215,13 @@ static inline long PTR_ERR(const void *ptr)
#define ENA_GET_SYSTEM_TIMEOUT(timeout_us) \
((long)cputick2usec(cpu_ticks()) + (timeout_us))
#define ENA_TIME_EXPIRE(timeout) ((timeout) < cputick2usec(cpu_ticks()))
+#define ENA_TIME_EXPIRE_HIGH_RES ENA_TIME_EXPIRE
+#define ENA_TIME_INIT_HIGH_RES() (0)
+#define ENA_TIME_COMPARE_HIGH_RES(time1, time2) \
+ ((time1 < time2) ? -1 : ((time1 > time2) ? 1 : 0))
+#define ENA_GET_SYSTEM_TIMEOUT_HIGH_RES(current_time, timeout_us) \
+ ((long)cputick2usec(cpu_ticks()) + (timeout_us))
+#define ENA_GET_SYSTEM_TIME_HIGH_RES() ENA_GET_SYSTEM_TIMEOUT(0)
#define ENA_MIGHT_SLEEP()
#define min_t(type, _x, _y) ((type)(_x) < (type)(_y) ? (type)(_x) : (type)(_y))
@@ -275,6 +318,7 @@ typedef uint32_t ena_atomic32_t;
#define ENA_PRIu64 PRIu64
typedef uint64_t ena_time_t;
+typedef uint64_t ena_time_high_res_t;
typedef struct ifnet ena_netdev;
void ena_dmamap_callback(void *arg, bus_dma_segment_t *segs, int nseg,
@@ -427,4 +471,6 @@ void ena_rss_key_fill(void *key, size_t size);
#include "ena_defs/ena_includes.h"
+#define ENA_BITS_PER_U64(bitmap) (bitcount64(bitmap))
+
#endif /* ENA_PLAT_H_ */