It turns out I can pass function pointers as va_args -- just need to typedef their signatures to make them star-able.