If you are familiar with setting or clearing a bit the approach is straight forward. The main thing that makes this code different is that the function is asking for a mode which eventually will dictate the manipulation if is either to clear or to set. In most cases in the embedded world you will see methods that are dedicated to do this task independently either clearBit() or setBit() without asking for a mode.