vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl
changeset 251 1c52a0eeb952
parent 250 c040f992052f
child 252 8399cd48111b
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
     1 #!/usr/bin/env perl
       
     2 # Copyright 2009 The Go Authors. All rights reserved.
       
     3 # Use of this source code is governed by a BSD-style
       
     4 # license that can be found in the LICENSE file.
       
     5 #
       
     6 # Generate system call table for OpenBSD from master list
       
     7 # (for example, /usr/src/sys/kern/syscalls.master).
       
     8 
       
     9 use strict;
       
    10 
       
    11 if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
       
    12 	print STDERR "GOARCH or GOOS not defined in environment\n";
       
    13 	exit 1;
       
    14 }
       
    15 
       
    16 my $command = "mksysnum_openbsd.pl " . join(' ', @ARGV);
       
    17 
       
    18 print <<EOF;
       
    19 // $command
       
    20 // Code generated by the command above; see README.md. DO NOT EDIT.
       
    21 
       
    22 // +build $ENV{'GOARCH'},$ENV{'GOOS'}
       
    23 
       
    24 package unix
       
    25 
       
    26 const (
       
    27 EOF
       
    28 
       
    29 while(<>){
       
    30 	if(/^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$/){
       
    31 		my $num = $1;
       
    32 		my $proto = $3;
       
    33 		my $name = $4;
       
    34 		$name =~ y/a-z/A-Z/;
       
    35 
       
    36 		# There are multiple entries for enosys and nosys, so comment them out.
       
    37 		if($name =~ /^SYS_E?NOSYS$/){
       
    38 			$name = "// $name";
       
    39 		}
       
    40 		if($name eq 'SYS_SYS_EXIT'){
       
    41 			$name = 'SYS_EXIT';
       
    42 		}
       
    43 
       
    44 		print "	$name = $num;  // $proto\n";
       
    45 	}
       
    46 }
       
    47 
       
    48 print <<EOF;
       
    49 )
       
    50 EOF