58 #if defined(__KLOCWORK__) || defined(__cplusplus) 73 #define container_of(ptr, type, member) \ 75 const typeof(((type *)0)->member) * __mptr = (ptr); \ 76 (type *)((char *)__mptr - offsetof(type, member)); \ 82 #define ENET_UNUSED(x) (x = x) 87 #define ENET_MK_ONES(c_ebit, c_sbit) (((1U << (((c_ebit) - (c_sbit)) + 1U)) - 1U) << (c_sbit)) 90 #define ENET_UTILS_ALIGN(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) 93 #define ENET_UTILS_IS_ALIGNED(addr, alignSz) (((uintptr_t)addr & ((alignSz) - 1U)) == 0U) 96 #define ENET_UTILS_ARRAY_COPY(dst, src) \ 100 ENET_UTILS_COMPILETIME_ASSERT(sizeof(dst) != sizeof(uintptr_t)); \ 101 memcpy(dst, src, (ENET_ARRAYSIZE(dst) * sizeof(dst[0]))); \ 107 #if ENET_CFG_IS_ON(ASSERT) 108 #if defined(__KLOCWORK__) || defined(__cplusplus) 109 #define Enet_assert(cond, ...) do { if (!(cond)) abort(); } while (0) 111 #define Enet_assert(cond, ...) \ 113 ENETTRACE_ERR_IF(!(bool)(cond), __VA_ARGS__); \ 114 EnetUtils_assertLocal((bool)(cond), \ 115 (const char *)# cond, \ 116 (const char *)__FILE__, \ 117 (int32_t)__LINE__); \ 121 #define Enet_assert(cond, ...) (void)(cond) 127 #if ENET_CFG_IS_ON(ASSERT) 128 #if defined(__KLOCWORK__) || defined(__cplusplus) 129 #define Enet_devAssert(cond, ...) do { if (!(cond)) abort(); } while (0) 131 #define Enet_devAssert(cond, ...) \ 133 ENETTRACE_ERR_IF(!(bool)(cond), __VA_ARGS__); \ 134 EnetUtils_assertLocal((bool)(cond), \ 135 (const char *)# cond, \ 136 (const char *)__FILE__, \ 137 (int32_t)__LINE__); \ 141 #define Enet_devAssert(cond, fmt, ...) (void)(cond) 147 #define ENET_UTILS_COMPILETIME_ASSERT(cond) \ 149 typedef char ErrorCheck[((cond) == true) ? 1 : -1]; \ 150 ErrorCheck a = {0}; \ 191 typedef void *(*Enet_PhysToVirt)(uint64_t phyAddr,
void *appData);
196 typedef struct EnetUtils_Cfg_s
311 #if ENET_CFG_IS_ON(ASSERT) && !defined(__KLOCWORK__) 320 static inline void EnetUtils_assertLocal(
bool condition,
322 const char *fileName,
360 const uint8_t *addr2);
392 #if ENET_CFG_IS_ON(ASSERT) && !defined(__KLOCWORK__) 393 static inline void EnetUtils_assertLocal(
bool condition,
395 const char *fileName,
398 volatile static bool gEnetAssertWaitInLoop =
true;
403 while (gEnetAssertWaitInLoop)
418 const uint8_t *addr2)
430 return ((
addr[0U] & 1U) == 1U);
uint64_t EnetUtils_virtToPhys(const void *virtAddr, void *appData)
Convert a virtual address to physical address.
MAC port interface.
Definition: enet_mod_macport.h:273
void EnetUtils_printf(const char *fmt,...)
Print function.
This file contains the basic types using across the Enet driver.
void EnetUtils_init(const EnetUtils_Cfg *cfg)
Initialize utils module.
Enet_VirtToPhys virtToPhys
Definition: enet_utils.h:205
void(* Enet_Print)(const char *fmt,...)
Info/debug print function prototype.
Definition: enet_utils.h:165
This file contains the type definitions and helper macros for the Enet MAC port module interface.
#define ENET_MAC_ADDR_LEN
MAC address length in bytes/octets.
Definition: enet_types.h:153
uint64_t(* Enet_VirtToPhys)(const void *virtAddr, void *appData)
Virtual-to-physical address translation callback function.
Definition: enet_utils.h:178
uint64_t addr
Definition: csl_udmap_tr.h:214
Enet utils parameters.
Definition: enet_utils.h:196
static void EnetUtils_copyMacAddr(uint8_t *dst, const uint8_t *src)
Copy MAC address.
Definition: enet_utils.h:411
void EnetUtils_vprintf(const char *fmt, va_list args)
Print function for va_list.
static void EnetUtils_clearMacAddr(uint8_t *addr)
Clear MAC address.
Definition: enet_utils.h:423
void * EnetUtils_physToVirt(uint64_t physAddr, void *appData)
Convert a physical address to virtual address.
uint32_t EnetUtils_min(uint32_t num1, uint32_t num2)
Returns minimum of two numbers.
void EnetUtils_delay(uint64_t delayInNsecs)
Busy loop for a given amount of delay in nanoseconds.
static bool EnetUtils_cmpMacAddr(const uint8_t *addr1, const uint8_t *addr2)
Compare two MAC address.
Definition: enet_utils.h:417
static bool EnetUtils_isMcastAddr(const uint8_t *addr)
Check if address is multicast.
Definition: enet_utils.h:428
EnetPhy_Mii EnetUtils_macToPhyMii(const EnetMacPort_Interface *macMii)
Convert MAC port MII to PHY MII types.
char str[32]
Definition: tisci_core.h:442
Enet_Print print
Definition: enet_utils.h:200
void *(* Enet_PhysToVirt)(uint64_t phyAddr, void *appData)
Physical-to-virtual address translation callback function.
Definition: enet_utils.h:191
Enet_PhysToVirt physToVirt
Definition: enet_utils.h:210
This file contains private type definitions and helper macros for the Enet trace interface.
void EnetUtils_deinit(void)
De-initialize utils module.
EnetPhy_Mii
MAC Media-Independent Interface (MII).
Definition: enetphy.h:206
This file contains the type definitions and helper macros for the Ethernet PHY interface.
uint32_t EnetUtils_max(uint32_t num1, uint32_t num2)
Returns minimum of two numbers.
This file contains the Enet configuration parameters.