/* param base The I3C peripheral base address. param ibiRule Pointer to store the read out ibi rule description.  */
void I3C_MasterGetIBIRules(I3C_Type *base, i3c_register_ibi_addr_t *ibiRule)
/* param base The I3C peripheral base address. param ibiRule Pointer to store the read out ibi rule description.  */
void I3C_MasterGetIBIRules(I3C_Type *base, i3c_register_ibi_addr_t *ibiRule)
{
    assert(NULL != ibiRule);
    uint32_t ruleValue = base->MIBIRULES;
    for (uint32_t count = 0; count < ARRAY_SIZE(ibiRule->address); count++)
    {
        ibiRule->address[count] =
            (uint8_t)(ruleValue >> (count * I3C_MIBIRULES_ADDR1_SHIFT)) & I3C_MIBIRULES_ADDR0_MASK;
    }
    ibiRule->ibiHasPayload = (0U == (ruleValue & I3C_MIBIRULES_NOBYTE_MASK));
}