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