Deleted Added
full compact
ena_plat.h (343398) ena_plat.h (361467)
1/*-
2 * BSD LICENSE
3 *
1/*-
2 * BSD LICENSE
3 *
4 * Copyright (c) 2015-2017 Amazon.com, Inc. or its affiliates.
4 * Copyright (c) 2015-2019 Amazon.com, Inc. or its affiliates.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.

--- 17 unchanged lines hidden (view full) ---

30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34#ifndef ENA_PLAT_H_
35#define ENA_PLAT_H_
36
37#include <sys/cdefs.h>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.

--- 17 unchanged lines hidden (view full) ---

30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34#ifndef ENA_PLAT_H_
35#define ENA_PLAT_H_
36
37#include <sys/cdefs.h>
38__FBSDID("$FreeBSD: stable/11/sys/contrib/ena-com/ena_plat.h 343398 2019-01-24 11:31:57Z mw $");
38__FBSDID("$FreeBSD: stable/11/sys/contrib/ena-com/ena_plat.h 361467 2020-05-25 17:41:20Z mw $");
39
40#include <sys/param.h>
41#include <sys/systm.h>
42
43#include <sys/bus.h>
44#include <sys/condvar.h>
45#include <sys/endian.h>
46#include <sys/kernel.h>

--- 63 unchanged lines hidden (view full) ---

110 do { \
111 if (((level) & ena_log_level) != (level)) \
112 break; \
113 printf(fmt, ##args); \
114 } while (0)
115
116#define ena_trace(level, fmt, args...) \
117 ena_trace_raw(level, "%s() [TID:%d]: " \
39
40#include <sys/param.h>
41#include <sys/systm.h>
42
43#include <sys/bus.h>
44#include <sys/condvar.h>
45#include <sys/endian.h>
46#include <sys/kernel.h>

--- 63 unchanged lines hidden (view full) ---

110 do { \
111 if (((level) & ena_log_level) != (level)) \
112 break; \
113 printf(fmt, ##args); \
114 } while (0)
115
116#define ena_trace(level, fmt, args...) \
117 ena_trace_raw(level, "%s() [TID:%d]: " \
118 fmt " \n", __func__, curthread->td_tid, ##args)
118 fmt, __func__, curthread->td_tid, ##args)
119
120
121#define ena_trc_dbg(format, arg...) ena_trace(ENA_DBG, format, ##arg)
122#define ena_trc_info(format, arg...) ena_trace(ENA_INFO, format, ##arg)
123#define ena_trc_warn(format, arg...) ena_trace(ENA_WARNING, format, ##arg)
124#define ena_trc_err(format, arg...) ena_trace(ENA_ALERT, format, ##arg)
125
126#define unlikely(x) __predict_false(x)

--- 31 unchanged lines hidden (view full) ---

158 return (void *)error;
159}
160
161static inline long PTR_ERR(const void *ptr)
162{
163 return (long) ptr;
164}
165
119
120
121#define ena_trc_dbg(format, arg...) ena_trace(ENA_DBG, format, ##arg)
122#define ena_trc_info(format, arg...) ena_trace(ENA_INFO, format, ##arg)
123#define ena_trc_warn(format, arg...) ena_trace(ENA_WARNING, format, ##arg)
124#define ena_trc_err(format, arg...) ena_trace(ENA_ALERT, format, ##arg)
125
126#define unlikely(x) __predict_false(x)

--- 31 unchanged lines hidden (view full) ---

158 return (void *)error;
159}
160
161static inline long PTR_ERR(const void *ptr)
162{
163 return (long) ptr;
164}
165
166#define GENMASK(h, l) (((1U << ((h) - (l) + 1)) - 1) << (l))
166#define GENMASK(h, l) (((~0U) - (1U << (l)) + 1) & (~0U >> (32 - 1 - (h))))
167#define GENMASK_ULL(h, l) (((~0ULL) << (l)) & (~0ULL >> (64 - 1 - (h))))
168#define BIT(x) (1UL << (x))
169
170#define ENA_ABORT() BUG()
171#define BUG() panic("ENA BUG")
172
173#define SZ_256 (256)
174#define SZ_4K (4096)

--- 144 unchanged lines hidden (view full) ---

319 } while (0)
320
321/* Register R/W methods */
322#define ENA_REG_WRITE32(bus, value, offset) \
323 bus_space_write_4( \
324 ((struct ena_bus*)bus)->reg_bar_t, \
325 ((struct ena_bus*)bus)->reg_bar_h, \
326 (bus_size_t)(offset), (value))
167#define GENMASK_ULL(h, l) (((~0ULL) << (l)) & (~0ULL >> (64 - 1 - (h))))
168#define BIT(x) (1UL << (x))
169
170#define ENA_ABORT() BUG()
171#define BUG() panic("ENA BUG")
172
173#define SZ_256 (256)
174#define SZ_4K (4096)

--- 144 unchanged lines hidden (view full) ---

319 } while (0)
320
321/* Register R/W methods */
322#define ENA_REG_WRITE32(bus, value, offset) \
323 bus_space_write_4( \
324 ((struct ena_bus*)bus)->reg_bar_t, \
325 ((struct ena_bus*)bus)->reg_bar_h, \
326 (bus_size_t)(offset), (value))
327#define ENA_REG_WRITE32_RELAXED(bus, value, offset) \
328 ENA_REG_WRITE32(bus, value, offset)
327
328#define ENA_REG_READ32(bus, offset) \
329 bus_space_read_4( \
330 ((struct ena_bus*)bus)->reg_bar_t, \
331 ((struct ena_bus*)bus)->reg_bar_h, \
332 (bus_size_t)(offset))
333
329
330#define ENA_REG_READ32(bus, offset) \
331 bus_space_read_4( \
332 ((struct ena_bus*)bus)->reg_bar_t, \
333 ((struct ena_bus*)bus)->reg_bar_h, \
334 (bus_size_t)(offset))
335
334#define ENA_DB_SYNC(mem_handle) bus_dmamap_sync((mem_handle)->tag, \
335 (mem_handle)->map, BUS_DMASYNC_PREREAD)
336#define ENA_DB_SYNC_WRITE(mem_handle) bus_dmamap_sync( \
337 (mem_handle)->tag, (mem_handle)->map, BUS_DMASYNC_PREWRITE)
338#define ENA_DB_SYNC_PREREAD(mem_handle) bus_dmamap_sync( \
339 (mem_handle)->tag, (mem_handle)->map, BUS_DMASYNC_PREREAD)
340#define ENA_DB_SYNC_POSTREAD(mem_handle) bus_dmamap_sync( \
341 (mem_handle)->tag, (mem_handle)->map, BUS_DMASYNC_POSTREAD)
342#define ENA_DB_SYNC(mem_handle) ENA_DB_SYNC_WRITE(mem_handle)
336
337#define time_after(a,b) ((long)((unsigned long)(b) - (unsigned long)(a)) < 0)
338
339#define VLAN_HLEN sizeof(struct ether_vlan_header)
340#define CSUM_OFFLOAD (CSUM_IP|CSUM_TCP|CSUM_UDP)
341
343
344#define time_after(a,b) ((long)((unsigned long)(b) - (unsigned long)(a)) < 0)
345
346#define VLAN_HLEN sizeof(struct ether_vlan_header)
347#define CSUM_OFFLOAD (CSUM_IP|CSUM_TCP|CSUM_UDP)
348
342#if defined(__i386__) || defined(__amd64__)
343static __inline
344void prefetch(void *x)
345{
346 __asm volatile("prefetcht0 %0" :: "m" (*(unsigned long *)x));
347}
348#else
349#define prefetch(x)
350#endif
349#define prefetch(x) (void)(x)
350#define prefetchw(x) (void)(x)
351
352/* DMA buffers access */
353#define dma_unmap_addr(p, name) ((p)->dma->name)
354#define dma_unmap_addr_set(p, name, v) (((p)->dma->name) = (v))
355#define dma_unmap_len(p, name) ((p)->name)
356#define dma_unmap_len_set(p, name, v) (((p)->name) = (v))
357
358#define memcpy_toio memcpy
359
360#define ATOMIC32_INC(I32_PTR) atomic_add_int(I32_PTR, 1)
361#define ATOMIC32_DEC(I32_PTR) atomic_add_int(I32_PTR, -1)
362#define ATOMIC32_READ(I32_PTR) atomic_load_acq_int(I32_PTR)
363#define ATOMIC32_SET(I32_PTR, VAL) atomic_store_rel_int(I32_PTR, VAL)
364
365#define barrier() __asm__ __volatile__("": : :"memory")
351
352/* DMA buffers access */
353#define dma_unmap_addr(p, name) ((p)->dma->name)
354#define dma_unmap_addr_set(p, name, v) (((p)->dma->name) = (v))
355#define dma_unmap_len(p, name) ((p)->name)
356#define dma_unmap_len_set(p, name, v) (((p)->name) = (v))
357
358#define memcpy_toio memcpy
359
360#define ATOMIC32_INC(I32_PTR) atomic_add_int(I32_PTR, 1)
361#define ATOMIC32_DEC(I32_PTR) atomic_add_int(I32_PTR, -1)
362#define ATOMIC32_READ(I32_PTR) atomic_load_acq_int(I32_PTR)
363#define ATOMIC32_SET(I32_PTR, VAL) atomic_store_rel_int(I32_PTR, VAL)
364
365#define barrier() __asm__ __volatile__("": : :"memory")
366#define dma_rmb() barrier()
367#define mmiowb() barrier()
368
366#define ACCESS_ONCE(x) (*(volatile __typeof(x) *)&(x))
367#define READ_ONCE(x) ({ \
368 __typeof(x) __var; \
369 barrier(); \
370 __var = ACCESS_ONCE(x); \
371 barrier(); \
372 __var; \
373 })
369#define ACCESS_ONCE(x) (*(volatile __typeof(x) *)&(x))
370#define READ_ONCE(x) ({ \
371 __typeof(x) __var; \
372 barrier(); \
373 __var = ACCESS_ONCE(x); \
374 barrier(); \
375 __var; \
376 })
377#define READ_ONCE8(x) READ_ONCE(x)
378#define READ_ONCE16(x) READ_ONCE(x)
379#define READ_ONCE32(x) READ_ONCE(x)
374
380
381#define upper_32_bits(n) ((uint32_t)(((n) >> 16) >> 16))
382#define lower_32_bits(n) ((uint32_t)(n))
383
384#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
385
375#include "ena_defs/ena_includes.h"
376
377#endif /* ENA_PLAT_H_ */
386#include "ena_defs/ena_includes.h"
387
388#endif /* ENA_PLAT_H_ */