xref: /rk3399_ARM-atf/plat/xilinx/common/include/plat_common.h (revision 4265bcae14d1f4eda36412293fd092ae7efac267)
1*4265bcaeSAkshay Belsare /*
2*4265bcaeSAkshay Belsare  * Copyright (c) 2023, Advanced Micro Devices, Inc. All rights reserved.
3*4265bcaeSAkshay Belsare  *
4*4265bcaeSAkshay Belsare  * SPDX-License-Identifier: BSD-3-Clause
5*4265bcaeSAkshay Belsare  */
6*4265bcaeSAkshay Belsare 
7*4265bcaeSAkshay Belsare /* Header file to contain common macros across different platforms */
8*4265bcaeSAkshay Belsare #ifndef PLAT_COMMON_H
9*4265bcaeSAkshay Belsare #define PLAT_COMMON_H
10*4265bcaeSAkshay Belsare 
11*4265bcaeSAkshay Belsare #define __bf_shf(x)            (__builtin_ffsll(x) - 1U)
12*4265bcaeSAkshay Belsare #define FIELD_GET(_mask, _reg)						\
13*4265bcaeSAkshay Belsare 	({								\
14*4265bcaeSAkshay Belsare 		(typeof(_mask))(((_reg) & (_mask)) >> __bf_shf(_mask));	\
15*4265bcaeSAkshay Belsare 	})
16*4265bcaeSAkshay Belsare 
17*4265bcaeSAkshay Belsare #endif /* PLAT_COMMON_H */
18