--- /dev/null
+__asm__(
+#define T(i,f) "\n" \
+".global " #f "\n" \
+".type " #f ",@function\n" \
+#f ":\n" \
+" pushl %esp\n" \
+" pushl $" #i "\n" \
+" call enter\n" \
+" pop %eax\n" \
+" pop %eax\n" \
+" jmp __real_" #f "\n"
+
+#include "tab.h"
+#undef T
+"\n"
+"after:\n"
+" push %eax\n"
+" push %edx\n"
+" call leave\n"
+" mov %eax,%ecx\n"
+" pop %edx\n"
+" pop %eax\n"
+" push %ecx\n"
+" ret\n"
+);