This is wrong:  Whenever you see a `*_MAX` at the end of an enum, it is meant to denote the maximum value of the enum.  That is not what it does right now.  It is meant to be used in a loop:  `for (i = 0 ; i < CBUFM_MAX ; i <<=1) {...}`.  It doesn't make too much sense here, but makes a lot more sense in general enums.  Also useful for error checking: `assert(flags < CBUFM_MAX)`.  

As we aren't using  the 3rd bit anymore, we should shift the rest down by one.