On Mon, Mar 31, 2008 at 10:05:25PM -0500, Anthony Liguori wrote: > It really shouldn't be necessary to have all of these macro functions. > In this above macro, you would just have to pass the ro and rw > structures along with a remove function pointer. Since all of your > types have common members, you could just have a common substructure and > pass that around. Hmm... it isn't too difficult to refactor the registration function to make it easier to look at, though I'd rather keep the AEM1 and AEM2 guts separate rather than aggressively eliminating macros by making the AEM1 structs a subset of the AEM2 structs. --D