This patch unravels the mess of macros that create the inX/outX functions. -- Brian Gerst