I understand that SCB_SLAVE_CMPLT_CALLBACK is only valid if the I2C is set up as slave. But what does SCB_ISR_EXIT_CALLBACK does in the same situation where the I2C is in slave mode?
SCB_ISR_EXIT_CALLBACK is called at the very end of the interrupt handler to allow the user some processing. The initial cause of the interrupt can be fired by FIFO and some other sources. So this is not a good place to be informed of a complete transfer.