forked from Minki/linux
88d033077b
Use unified macros for device structs access instead of open coding the shifts and masks over and over again. Link: https://lore.kernel.org/r/20200225114010.21790-2-galpress@amazon.com Reviewed-by: Firas JahJah <firasj@amazon.com> Reviewed-by: Yossi Leybovich <sleybo@amazon.com> Signed-off-by: Gal Pressman <galpress@amazon.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
30 lines
828 B
C
30 lines
828 B
C
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
|
|
/*
|
|
* Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _EFA_COMMON_H_
|
|
#define _EFA_COMMON_H_
|
|
|
|
#include <linux/bitfield.h>
|
|
|
|
#define EFA_COMMON_SPEC_VERSION_MAJOR 2
|
|
#define EFA_COMMON_SPEC_VERSION_MINOR 0
|
|
|
|
#define EFA_GET(ptr, mask) FIELD_GET(mask##_MASK, *(ptr))
|
|
|
|
#define EFA_SET(ptr, mask, value) \
|
|
({ \
|
|
typeof(ptr) _ptr = ptr; \
|
|
*_ptr = (*_ptr & ~(mask##_MASK)) | \
|
|
FIELD_PREP(mask##_MASK, value); \
|
|
})
|
|
|
|
struct efa_common_mem_addr {
|
|
u32 mem_addr_low;
|
|
|
|
u32 mem_addr_high;
|
|
};
|
|
|
|
#endif /* _EFA_COMMON_H_ */
|