__base
unsigned int __base = (base); \
__rem = ((unsigned long long)(n)) % __base; \
(n) = ((unsigned long long)(n)) / __base; \
register unsigned int __base asm("r4") = base;
: "r" (__base)
unsigned long __base = (base); \
: "d" (__base), "0" (__n.n32[0])); \
: "d" (__base), "1" (__upper), "0" (__n.n32[1])); \
unsigned int __base = (base); \
__rem = ((unsigned long long)(n)) % __base; \
(n) = ((unsigned long long)(n)) / __base; \
unsigned int __base = (base); \
__rem = (unsigned int)(n) % __base; \
(n) = (unsigned int)(n) / __base; \
__rem = __div64_32(&(n), __base); \
unsigned long __upper, __low, __high, __mod, __base; \
__base = (base); \
if (__builtin_constant_p(__base) && is_power_of_2(__base)) { \
__mod = n & (__base - 1); \
n >>= ilog2(__base); \
__upper = __high % (__base); \
__high = __high / (__base); \
: "rm" (__base), "0" (__low), "1" (__upper)); \
#define PITMCR(__base) (__base)
#define PITLDVAL(__base) (__base)
#define PITTCTRL(__base) ((__base) + 0x08)
#define PITCVAL(__base) ((__base) + 0x04)
#define PITTFLG(__base) ((__base) + 0x0c)
#define STM_CR(__base) (__base)
#define STM_CNT(__base) ((__base) + 0x04)
#define STM_CCR0(__base) ((__base) + 0x10)
#define STM_CCR1(__base) ((__base) + 0x20)
#define STM_CCR2(__base) ((__base) + 0x30)
#define STM_CCR3(__base) ((__base) + 0x40)
#define STM_CIR0(__base) ((__base) + 0x14)
#define STM_CIR1(__base) ((__base) + 0x24)
#define STM_CIR2(__base) ((__base) + 0x34)
#define STM_CIR3(__base) ((__base) + 0x44)
#define STM_CMP0(__base) ((__base) + 0x18)
#define STM_CMP1(__base) ((__base) + 0x28)
#define STM_CMP2(__base) ((__base) + 0x38)
#define STM_CMP3(__base) ((__base) + 0x48)
#define ttm_base_object_kfree(__object, __base)\
kfree_rcu(__object, __base.rhead)
#define NXP_SAR_ADC_NCMR0(__base) ((__base) + 0xa4)
#define NXP_SAR_ADC_NCMR1(__base) ((__base) + 0xa8)
#define NXP_SAR_ADC_CDR(__base, __channel) (((__base) + 0x100) + ((__channel) * 0x4))
#define NXP_SAR_ADC_MCR(__base) ((__base) + 0x00)
#define NXP_SAR_ADC_MSR(__base) ((__base) + 0x04)
#define NXP_SAR_ADC_ISR(__base) ((__base) + 0x10)
#define NXP_SAR_ADC_CEOCFR0(__base) ((__base) + 0x14)
#define NXP_SAR_ADC_CEOCFR1(__base) ((__base) + 0x18)
#define NXP_SAR_ADC_IMR(__base) ((__base) + 0x20)
#define NXP_SAR_ADC_CIMR0(__base) ((__base) + 0x24)
#define NXP_SAR_ADC_CIMR1(__base) ((__base) + 0x28)
#define NXP_SAR_ADC_DMAE(__base) ((__base) + 0x40)
#define NXP_SAR_ADC_DMAR0(__base) ((__base) + 0x44)
#define NXP_SAR_ADC_DMAR1(__base) ((__base) + 0x48)
#define NXP_SAR_ADC_CTR0(__base) ((__base) + 0x94)
#define NXP_SAR_ADC_CTR1(__base) ((__base) + 0x98)
do { void __iomem *__base = (__lp)->lregs; \
sbus_writew(LE_CSR0, __base + RAP); \
sbus_writew(LE_C0_STOP, __base + RDP); \
#define GET_GTT_REG_ADDR(__base, __offset, __idx) \
((__base) + __offset ## _GTT_OFFSET((__idx)))
#define GET_GTT_BDQ_REG_ADDR(__base, __offset, __idx, __bdq_idx) \
((__base) + __offset ## _GTT_OFFSET((__idx), (__bdq_idx)))
static const struct __base mt7996_reg_base[] = {
const struct __base *base;
#define QUEUE_ENTRY_PRIV_OFFSET(__base, __index, __limit, __esize, __psize) \
(((char *)(__base)) + ((__limit) * (__esize)) + \
#define LVTS_MONCTL0(__base) (__base + 0x0000)
#define LVTS_MONCTL1(__base) (__base + 0x0004)
#define LVTS_MONCTL2(__base) (__base + 0x0008)
#define LVTS_MONINT(__base) (__base + 0x000C)
#define LVTS_MONINTSTS(__base) (__base + 0x0010)
#define LVTS_MONIDET0(__base) (__base + 0x0014)
#define LVTS_MONIDET1(__base) (__base + 0x0018)
#define LVTS_MONIDET2(__base) (__base + 0x001C)
#define LVTS_MONIDET3(__base) (__base + 0x0020)
#define LVTS_H2NTHRE(__base) (__base + 0x0024)
#define LVTS_HTHRE(__base) (__base + 0x0028)
#define LVTS_OFFSETH(__base) (__base + 0x0030)
#define LVTS_OFFSETL(__base) (__base + 0x0034)
#define LVTS_MSRCTL0(__base) (__base + 0x0038)
#define LVTS_MSRCTL1(__base) (__base + 0x003C)
#define LVTS_TSSEL(__base) (__base + 0x0040)
#define LVTS_CALSCALE(__base) (__base + 0x0048)
#define LVTS_ID(__base) (__base + 0x004C)
#define LVTS_CONFIG(__base) (__base + 0x0050)
#define LVTS_EDATA00(__base) (__base + 0x0054)
#define LVTS_EDATA01(__base) (__base + 0x0058)
#define LVTS_EDATA02(__base) (__base + 0x005C)
#define LVTS_EDATA03(__base) (__base + 0x0060)
#define LVTS_MSROFT(__base) (__base + 0x006C)
#define LVTS_ATP0(__base) (__base + 0x0070)
#define LVTS_ATP1(__base) (__base + 0x0074)
#define LVTS_ATP2(__base) (__base + 0x0078)
#define LVTS_ATP3(__base) (__base + 0x007C)
#define LVTS_MSR0(__base) (__base + 0x0090)
#define LVTS_MSR1(__base) (__base + 0x0094)
#define LVTS_MSR2(__base) (__base + 0x0098)
#define LVTS_MSR3(__base) (__base + 0x009C)
#define LVTS_IMMD0(__base) (__base + 0x00A0)
#define LVTS_IMMD1(__base) (__base + 0x00A4)
#define LVTS_IMMD2(__base) (__base + 0x00A8)
#define LVTS_IMMD3(__base) (__base + 0x00AC)
#define LVTS_PROTCTL(__base) (__base + 0x00C0)
#define LVTS_PROTTA(__base) (__base + 0x00C4)
#define LVTS_PROTTB(__base) (__base + 0x00C8)
#define LVTS_PROTTC(__base) (__base + 0x00CC)
#define LVTS_CLKEN(__base) (__base + 0x00E4)
#define S32G_SWT_CR(__base) ((__base) + 0x00) /* Control Register offset */
#define S32G_SWT_TO(__base) ((__base) + 0x08) /* Timeout Register offset */
#define S32G_SWT_SR(__base) ((__base) + 0x10) /* Service Register offset */
#define S32G_SWT_CO(__base) ((__base) + 0x14) /* Counter output register */
uint32_t __base = (base); \
if (__builtin_constant_p(__base) && \
is_power_of_2(__base)) { \
__rem = (n) & (__base - 1); \
(n) >>= ilog2(__base); \
} else if (__builtin_constant_p(__base) && \
__base != 0) { \
(n) = __div64_const32(n, __base); \
__rem = __n_lo - __res_lo * __base; \
__rem = (uint32_t)(n) % __base; \
(n) = (uint32_t)(n) / __base; \
__rem = __div64_32(&(n), __base); \
uint32_t __base = (base); \
__rem = ((uint64_t)(n)) % __base; \
(n) = ((uint64_t)(n)) / __base; \
#define NFT_OFFLOAD_MATCH_EXACT(__key, __base, __field, __len, __reg) \
NFT_OFFLOAD_MATCH(__key, __base, __field, __len, __reg) \
#define NFT_OFFLOAD_MATCH_FLAGS(__key, __base, __field, __len, __reg, __flags) \
offsetof(struct nft_flow_key, __base); \
offsetof(struct nft_flow_key, __base.__field); \
#define NFT_OFFLOAD_MATCH(__key, __base, __field, __len, __reg) \
NFT_OFFLOAD_MATCH_FLAGS(__key, __base, __field, __len, __reg, 0)
u64 __base = (u64)&(base); \
u64 __addr = (u64)&((base) member) - __base; \
: "r"(__base), \
u64 __base = (u64)arr; \
u64 __addr = (u64)&(arr[i]) - __base; \
: "r"(__base), \