S_OPAQUE_TYPE
#define V_OPAQUE_TYPE(x) ((x) << S_OPAQUE_TYPE)
#define G_OPAQUE_TYPE(x) (((x) >> S_OPAQUE_TYPE) & M_OPAQUE_TYPE)