Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/external/bsd/ena-com adapt for NetBSD
details: https://anonhg.NetBSD.org/src/rev/e481bed63eca
branches: trunk
changeset: 319156:e481bed63eca
user: jdolecek <jdolecek%NetBSD.org@localhost>
date: Sat May 19 08:59:38 2018 +0000
description:
adapt for NetBSD
diffstat:
sys/external/bsd/ena-com/ena_plat.h | 105 ++++++++++++++++-------------------
1 files changed, 48 insertions(+), 57 deletions(-)
diffs (221 lines):
diff -r f1aaab18e43b -r e481bed63eca sys/external/bsd/ena-com/ena_plat.h
--- a/sys/external/bsd/ena-com/ena_plat.h Sat May 19 08:56:05 2018 +0000
+++ b/sys/external/bsd/ena-com/ena_plat.h Sat May 19 08:59:38 2018 +0000
@@ -35,7 +35,10 @@
#define ENA_PLAT_H_
#include <sys/cdefs.h>
+#if 0
__FBSDID("$FreeBSD: head/sys/contrib/ena-com/ena_plat.h 333453 2018-05-10 09:25:51Z mw $");
+#endif
+__KERNEL_RCSID(0, "$NetBSD: ena_plat.h,v 1.2 2018/05/19 08:59:38 jdolecek Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -48,45 +51,29 @@
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/module.h>
-#include <sys/rman.h>
#include <sys/proc.h>
-#include <sys/smp.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/sysctl.h>
-#include <sys/taskqueue.h>
-#include <sys/eventhandler.h>
#include <sys/types.h>
-#include <sys/timetc.h>
-#include <sys/cdefs.h>
+#include <sys/bus.h>
+#include <sys/atomic.h>
-#include <machine/atomic.h>
-#include <machine/bus.h>
-#include <machine/in_cksum.h>
-#include <machine/pcpu.h>
-#include <machine/resource.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/if_media.h>
+#include <net/if_ether.h>
#include <net/bpf.h>
-#include <net/ethernet.h>
-#include <net/if.h>
-#include <net/if_var.h>
-#include <net/if_arp.h>
-#include <net/if_dl.h>
-#include <net/if_media.h>
-#include <net/if_types.h>
-#include <net/if_vlan_var.h>
+#include <net/rss_config.h>
-#include <netinet/in_systm.h>
-#include <netinet/in.h>
-#include <netinet/if_ether.h>
-#include <netinet/ip.h>
-#include <netinet/ip6.h>
-#include <netinet/tcp.h>
-#include <netinet/tcp_lro.h>
-#include <netinet/udp.h>
+#include <netinet/in.h> /* XXX for struct ip */
+#include <netinet/in_systm.h> /* XXX for struct ip */
+#include <netinet/ip.h> /* XXX for struct ip */
+#include <netinet/ip6.h> /* XXX for struct ip6_hdr */
+#include <netinet/tcp.h> /* XXX for struct tcphdr */
-#include <dev/led/led.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
@@ -114,8 +101,8 @@
} while (0)
#define ena_trace(level, fmt, args...) \
- ena_trace_raw(level, "%s() [TID:%d]: " \
- fmt " \n", __func__, curthread->td_tid, ##args)
+ ena_trace_raw(level, "%s() [LID:%d]: " \
+ fmt " \n", __func__, curlwp->l_lid, ##args)
#define ena_trc_dbg(format, arg...) ena_trace(ENA_DBG, format, ##arg)
@@ -184,11 +171,11 @@
#define ENA_COM_PERMISSION EPERM
#define ENA_COM_TIMER_EXPIRED ETIMEDOUT
-#define ENA_MSLEEP(x) pause_sbt("ena", SBT_1MS * (x), SBT_1MS, 0)
+#define ENA_MSLEEP(x) kpause("enaw", false, mstohz(x), NULL)
#define ENA_UDELAY(x) DELAY(x)
#define ENA_GET_SYSTEM_TIMEOUT(timeout_us) \
- ((long)cputick2usec(cpu_ticks()) + (timeout_us))
-#define ENA_TIME_EXPIRE(timeout) ((timeout) < (long)cputick2usec(cpu_ticks()))
+ mstohz(timeout_us * (1000 / 100)) /* XXX assumes 100 ms sleep */
+#define ENA_TIME_EXPIRE(timeout) ((timeout)-- <= 0)
#define ENA_MIGHT_SLEEP()
#define min_t(type, _x, _y) ((type)(_x) < (type)(_y) ? (type)(_x) : (type)(_y))
@@ -203,52 +190,51 @@
#define ENA_MAX8(x,y) MAX(x, y)
/* Spinlock related methods */
-#define ena_spinlock_t struct mtx
+#define ena_spinlock_t kmutex_t
#define ENA_SPINLOCK_INIT(spinlock) \
- mtx_init(&(spinlock), "ena_spin", NULL, MTX_SPIN)
+ mutex_init(&(spinlock), MUTEX_DEFAULT, IPL_NET)
#define ENA_SPINLOCK_DESTROY(spinlock) \
do { \
- if (mtx_initialized(&(spinlock))) \
- mtx_destroy(&(spinlock)); \
+ mutex_destroy(&(spinlock)); \
} while (0)
#define ENA_SPINLOCK_LOCK(spinlock, flags) \
do { \
(void)(flags); \
- mtx_lock_spin(&(spinlock)); \
+ mutex_enter(&(spinlock)); \
} while (0)
#define ENA_SPINLOCK_UNLOCK(spinlock, flags) \
do { \
(void)(flags); \
- mtx_unlock_spin(&(spinlock)); \
+ mutex_exit(&(spinlock)); \
} while (0)
/* Wait queue related methods */
-#define ena_wait_event_t struct { struct cv wq; struct mtx mtx; }
+#define ena_wait_event_t struct { kcondvar_t wq; kmutex_t mtx; }
#define ENA_WAIT_EVENT_INIT(waitqueue) \
do { \
- cv_init(&((waitqueue).wq), "cv"); \
- mtx_init(&((waitqueue).mtx), "wq", NULL, MTX_DEF); \
+ cv_init(&((waitqueue).wq), "enacv"); \
+ mutex_init(&((waitqueue).mtx), MUTEX_DEFAULT, IPL_NET); \
} while (0)
#define ENA_WAIT_EVENT_DESTROY(waitqueue) \
do { \
cv_destroy(&((waitqueue).wq)); \
- mtx_destroy(&((waitqueue).mtx)); \
+ mutex_destroy(&((waitqueue).mtx)); \
} while (0)
#define ENA_WAIT_EVENT_CLEAR(waitqueue) \
- cv_init(&((waitqueue).wq), (waitqueue).wq.cv_description)
+ cv_init(&((waitqueue).wq), "enacv")
#define ENA_WAIT_EVENT_WAIT(waitqueue, timeout_us) \
do { \
- mtx_lock(&((waitqueue).mtx)); \
+ mutex_enter(&((waitqueue).mtx)); \
cv_timedwait(&((waitqueue).wq), &((waitqueue).mtx), \
timeout_us * hz / 1000 / 1000 ); \
- mtx_unlock(&((waitqueue).mtx)); \
+ mutex_exit(&((waitqueue).mtx)); \
} while (0)
#define ENA_WAIT_EVENT_SIGNAL(waitqueue) \
do { \
- mtx_lock(&((waitqueue).mtx)); \
+ mutex_enter(&((waitqueue).mtx)); \
cv_broadcast(&((waitqueue).wq)); \
- mtx_unlock(&((waitqueue).mtx)); \
+ mutex_exit(&((waitqueue).mtx)); \
} while (0)
#define dma_addr_t bus_addr_t
@@ -258,8 +244,8 @@
#define u64 uint64_t
typedef struct {
- bus_addr_t paddr;
- caddr_t vaddr;
+ paddr_t paddr;
+ void *vaddr;
bus_dma_tag_t tag;
bus_dmamap_t map;
bus_dma_segment_t seg;
@@ -312,8 +298,8 @@
do { \
(void)size; \
bus_dmamap_unload((dma).tag, (dma).map); \
- bus_dmamem_free((dma).tag, (virt), (dma).map); \
- bus_dma_tag_destroy((dma).tag); \
+ bus_dmamem_free((dma).tag, &(dma).seg, (dma).nseg); \
+ bus_dma_tag_destroy((dma).tag); /* XXX remove */ \
(dma).tag = NULL; \
(virt) = NULL; \
} while (0)
@@ -332,7 +318,8 @@
(bus_size_t)(offset))
#define ENA_DB_SYNC(mem_handle) bus_dmamap_sync((mem_handle)->tag, \
- (mem_handle)->map, BUS_DMASYNC_PREREAD)
+ (mem_handle)->map, 0, (mem_handle)->map->dm_mapsize, \
+ BUS_DMASYNC_PREREAD)
#define time_after(a,b) ((long)((unsigned long)(b) - (unsigned long)(a)) < 0)
@@ -357,10 +344,10 @@
#define memcpy_toio memcpy
-#define ATOMIC32_INC(I32_PTR) atomic_add_int(I32_PTR, 1)
-#define ATOMIC32_DEC(I32_PTR) atomic_add_int(I32_PTR, -1)
-#define ATOMIC32_READ(I32_PTR) atomic_load_acq_int(I32_PTR)
-#define ATOMIC32_SET(I32_PTR, VAL) atomic_store_rel_int(I32_PTR, VAL)
+#define ATOMIC32_INC(I32_PTR) atomic_inc_32(I32_PTR)
+#define ATOMIC32_DEC(I32_PTR) atomic_dec_32(I32_PTR)
+#define ATOMIC32_READ(I32_PTR) atomic_cas_32(I32_PTR, 0, 0)
+#define ATOMIC32_SET(I32_PTR, VAL) atomic_swap_32(I32_PTR, VAL)
#define barrier() __asm__ __volatile__("": : :"memory")
#define ACCESS_ONCE(x) (*(volatile __typeof(x) *)&(x))
@@ -374,4 +361,8 @@
#include "ena_defs/ena_includes.h"
+#define rmb() membar_enter()
+#define wmb() membar_exit()
+#define mb() membar_sync()
+
#endif /* ENA_PLAT_H_ */
Home |
Main Index |
Thread Index |
Old Index