>>13
ENUM_TYPE_EVENTが良くわからないけど、こういう事か?
#define DEFINE_HOGE(prefix, name, val) enum { prefix ## _ ## name = val};
#define DEFINE_TYPE(name, val) DEFINE_HOGE(TYPE, name, val)
#define DEFINE_SIZE(name, val) DEFINE_HOGE(SIZE, name, val)
#define DEFINE_ASSERT(type, name, val) DEFINE_HOGE(ASSERT_ ## type, name, val)
#define DEFINE_ATIMEOUT(name, val) DEFINE_ASSERT(TIMEOUT, name, val)
#define DEFINE_ACALLBACK(name, val) DEFINE_ASSERT(CALLBACK, name, val)
#define DEFINE_13(name,type,size,timeo,callback) \
DEFINE_TYPE(name, type) \
DEFINE_SIZE(name, size) \
DEFINE_ATIMEOUT(name, timeo) \
DEFINE_ACALLBACK(name, callback)
DEFINE_13(EVENT, 0xABC0, 0x0008, 0x40000001, 0x2000000A)

あるいは
#define DEFINE_HOGE(prefix, name, val) prefix ## _ ## name = val,
#define DEFINE_TYPE(name, val) DEFINE_HOGE(TYPE, name, val)
#define DEFINE_SIZE(name, val) DEFINE_HOGE(SIZE, name, val)
#define DEFINE_ASSERT(type, name, val) DEFINE_HOGE(ASSERT_ ## type, name, val)
#define DEFINE_ATIMEOUT(name, val) DEFINE_ASSERT(TIMEOUT, name, val)
#define DEFINE_ACALLBACK(name, val) DEFINE_ASSERT(CALLBACK, name, val)
#define DEFINE_13(name,type,size,timeo,callback) \
DEFINE_TYPE(name, type) \
DEFINE_SIZE(name, size) \
DEFINE_ATIMEOUT(name, timeo) \
DEFINE_ACALLBACK(name, callback) \
ENUM_TYPE_ ## name,
enum {
DEFINE_13(EVENT, 0xABC0, 0x0008, 0x40000001, 0x2000000A)
DEFINE_13(PACE, 0xABC1, 0x0009, 0x40000002, 0x2000000B)
};