2019-05-06 01:59:22 +08:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
|
|
|
|
/*
|
2020-02-25 19:40:08 +08:00
|
|
|
* Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
|
2019-05-06 01:59:22 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _EFA_COMMON_H_
|
|
|
|
#define _EFA_COMMON_H_
|
|
|
|
|
2020-02-25 19:40:08 +08:00
|
|
|
#include <linux/bitfield.h>
|
|
|
|
|
2019-05-06 01:59:22 +08:00
|
|
|
#define EFA_COMMON_SPEC_VERSION_MAJOR 2
|
|
|
|
#define EFA_COMMON_SPEC_VERSION_MINOR 0
|
|
|
|
|
2020-02-25 19:40:08 +08:00
|
|
|
#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); \
|
|
|
|
})
|
|
|
|
|
2019-05-06 01:59:22 +08:00
|
|
|
struct efa_common_mem_addr {
|
|
|
|
u32 mem_addr_low;
|
|
|
|
|
|
|
|
u32 mem_addr_high;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* _EFA_COMMON_H_ */
|