The __CHERI_CAP_PERMISSION_PERMIT_*__ macros are defined unconditionally for all CHERI platforms. They should be made per-target. CHERIoT will define them differently and will define a few CHERIoT-specific values here. Ideally, we'd define these only in the compiler (which also needs to know the value of some of them for other things - including ideally teaching optimisers that a function that is dynamically passed an immutable pointer cannot mutate the callee). For now, we probably want to just do it in the front end but eventually we should centralise this knowledge somewhere.