1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2020 Broadcom 3 * All rights reserved. 4 */ 5 6 #ifndef _BCMFS_RM_COMMON_H_ 7 #define _BCMFS_RM_COMMON_H_ 8 9 #include <rte_byteorder.h> 10 #include <rte_common.h> 11 #include <rte_io.h> 12 13 /* 32-bit MMIO register write */ 14 #define FS_MMIO_WRITE32(value, addr) rte_write32_relaxed((value), (addr)) 15 /* 32-bit MMIO register read */ 16 #define FS_MMIO_READ32(addr) rte_read32_relaxed((addr)) 17 18 /* Descriptor helper macros */ 19 #define FS_DESC_DEC(d, s, m) (((d) >> (s)) & (m)) 20 21 #define FS_RING_BD_ALIGN_CHECK(addr) \ 22 (!((addr) & ((0x1 << FS_RING_BD_ALIGN_ORDER) - 1))) 23 24 #define cpu_to_le64 rte_cpu_to_le_64 25 #define cpu_to_le32 rte_cpu_to_le_32 26 #define cpu_to_le16 rte_cpu_to_le_16 27 28 #define le64_to_cpu rte_le_to_cpu_64 29 #define le32_to_cpu rte_le_to_cpu_32 30 #define le16_to_cpu rte_le_to_cpu_16 31 32 #define lower_32_bits(x) ((uint32_t)(x)) 33 #define upper_32_bits(x) ((uint32_t)(((x) >> 16) >> 16)) 34 35 uint64_t 36 rm_build_desc(uint64_t val, uint32_t shift, 37 uint64_t mask); 38 uint64_t 39 rm_read_desc(void *desc_ptr); 40 41 void 42 rm_write_desc(void *desc_ptr, uint64_t desc); 43 44 uint32_t 45 rm_cmpl_desc_to_reqid(uint64_t cmpl_desc); 46 47 int 48 rm_cmpl_desc_to_error(uint64_t cmpl_desc); 49 50 #endif /* _BCMFS_RM_COMMON_H_ */ 51