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