You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.3 KiB

/*
* Copyright (c) Company 2018-2019. All rights reserved.
* Description: util.h
*/
#ifndef __SOCT_GMAC_UTIL_H__
#define __SOCT_GMAC_UTIL_H__
#define GMAC_TRACE_LEVEL 10
#define gmac_trace(level, msg...) do { \
if ((level) >= GMAC_TRACE_LEVEL) { \
pr_info("gmac_trace:%s:%d: ", __FILE__, __LINE__); \
printk(msg); \
printk("\n"); \
} \
} while (0)
#define gmac_error(args...) do { \
pr_err("gmac:%s:%d: ", __FILE__, __LINE__); \
printk(args); \
printk("\n"); \
} while (0)
#define gmac_assert(cond) do { \
if (!(cond)) \
pr_alert("Assert:gmac:%s:%d\n", \
__FILE__, \
__LINE__); \
} while (0)
#define gmac_set_bits(var, v, bits_desc) do { \
unsigned int _bits_desc = bits_desc; \
unsigned int _shift = (_bits_desc) >> 16; \
unsigned int _mask = ((_bits_desc & 0x3F) < 32) ? \
(((1 << (_bits_desc & 0x3F)) - 1) << (_shift)) \
: 0xffffffff; \
var = ((var) & (~_mask)) | (((v) << (_shift)) & _mask); \
} while (0)
#define gmac_get_bits(var, bits_desc) do { \
unsigned int _bits_desc = bits_desc; \
unsigned int _shift = (_bits_desc) >> 16; \
unsigned int _mask = ((_bits_desc & 0x3F) < 32) ? \
(((1 << (_bits_desc & 0x3F)) - 1) << (_shift)) \
: 0xffffffff; \
((var) & _mask) >> (_shift); \
} while (0)
#define mk_bits(shift, nbits) ((((shift) & (0x1F)) << (16)) | ((nbits) & (0x3F)))
#endif