print <<END;
#ifndef DOINIT
-EXT OP * (*check[])();
+EXT OP * (*check[]) _((OP *op));
#else
-EXT OP * (*check[])() = {
+EXT OP * (*check[]) _((OP *op)) = {
END
for (@ops) {
eof eof ck_eof is F?
tell tell ck_fun st F?
seek seek ck_fun s F S S
+# truncate really behaves as if it had both "S S" and "F S"
truncate truncate ck_trunc is S S
fcntl fcntl ck_fun st F S S