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