Defining AmlCode differently in different source files is a bit ugly...
My variant of creating an additional void * to do the casting is not
exactly beautiful either...
Before I commit, should we make them const too? Maybe that would help people not misuse them?