#!/usr/bin/perl -w

use strict;
my %syscalls = ();

while (<>) {
    if (/^#define (__NR_\w+) /) {
	$syscalls{$1} = 1;
    }
}

print <<EOL;
/* Automatically generated with
        gen_linux_syscalls.pl /usr/include/asm/unistd*.h
   Do not edit.
 */
static const struct {
  int syscall_num; const char *syscall_name;
} SYSCALLS_BY_NUMBER[] = {
EOL

for my $k (sort keys %syscalls) {
    my $name = $k;
    $name =~ s/^__NR_//;
    print <<EOL;
#ifdef $k
  { $k, "$name" },
#endif
EOL

}

print <<EOL
  {0, NULL}
};

EOL