Вы должны преобразовать аргументы в список va_list, прежде чем передать его другой функции.Затем вы можете передать его в версию функции v.
Таким образом, вы можете сделать:
void my_printk( const char * format, ...)
{
va_list ap;
va_start(ap, format);
printk("my log:");
vprintk(format, ap);
printk("\n");
va_end(ap);
}
В большинстве случаев любая функция, подобная этой, будет предоставлять 'v'.версия, и ваша тоже должна:
void my_vprintk( const char * format, va_list ap)
{
printk("my log:");
vprintk(format, ap);
printk("\n");
}
void my_printk( const char * format, ...)
{
va_list ap;
va_start(ap, format);
my_vprintk(format, ap);
va_end(ap);
}