> -#define signals_blocked false > +#define signals_blocked 0 Why can't we get at the kernel definition of false here? > new file mode 100644 > --- /dev/null > +++ b/include/stdarg.h > @@ -0,0 +1,9 @@ > +#ifndef _LINUX_STDARG_H > +#define _LINUX_STDARG_H > +typedef __builtin_va_list __gnuc_va_list; > +typedef __builtin_va_list va_list; > +#define va_start(v, l) __builtin_va_start(v, l) > +#define va_end(v) __builtin_va_end(v) > +#define va_arg(v, T) __builtin_va_arg(v, T) > +#define va_copy(d, s) __builtin_va_copy(d, s) > +#endif Empty lines before and after the include guards would be nice. What do we need the __gnuc_va_list typedef for? Otherwise this looks great. As a follow on maybe move the new header to <linux/stdarg.h> to make clear to everyone that we are using our own version.