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
51 lines
1.3 KiB
7 months ago
|
/*
|
||
|
* 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
|