~ubuntu-branches/ubuntu/vivid/golang/vivid

« back to all changes in this revision

Viewing changes to src/pkg/syscall/mksyscall_windows.pl

  • Committer: Bazaar Package Importer
  • Author(s): Ondřej Surý
  • Date: 2011-08-03 17:04:59 UTC
  • mfrom: (14.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20110803170459-wzd99m3567y80ila
Tags: 1:59-1
* Imported Upstream version 59
* Refresh patches to a new release
* Fix FTBFS on ARM (Closes: #634270)
* Update version.bash to work with Debian packaging and not hg
  repository

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#         //sys LoadLibrary(libname string) (handle uint32, errno int) [failretval==-1] = LoadLibraryA
24
24
#         and is [failretval==0] by default.
25
25
 
26
 
$cmdline = "mksyscall_windows.pl " . join(' ', @ARGV);
27
 
$errors = 0;
28
 
$_32bit = "";
 
26
use strict;
 
27
 
 
28
my $cmdline = "mksyscall_windows.pl " . join(' ', @ARGV);
 
29
my $errors = 0;
 
30
my $_32bit = "";
 
31
 
 
32
binmode STDOUT;
29
33
 
30
34
if($ARGV[0] eq "-b32") {
31
35
        $_32bit = "big-endian";
60
64
        return ($1, $2);
61
65
}
62
66
 
63
 
$text = "";
64
 
$vars = "";
65
 
$mods = "";
66
 
$modnames = "";
 
67
my $text = "";
 
68
my $vars = "";
 
69
my $mods = "";
 
70
my $modnames = "";
67
71
while(<>) {
68
72
        chomp;
69
73
        s/\s+/ /g;
89
93
        if($modname eq "") {
90
94
                $modname = "kernel32";
91
95
        }
92
 
        $modvname = "mod$modname";
 
96
        my $modvname = "mod$modname";
93
97
        if($modnames !~ /$modname/) {
94
98
                $modnames .= ".$modname";
95
99
                $mods .= "\t$modvname = loadDll(\"$modname.dll\")\n";
101
105
        }
102
106
 
103
107
        # System call pointer variable name.
104
 
        $sysvarname = "proc$sysname";
 
108
        my $sysvarname = "proc$sysname";
105
109
 
106
110
        # Returned value when failed
107
111
        if($failcond eq "") {
109
113
        }
110
114
 
111
115
        # Decide which version of api is used: ascii or unicode.
112
 
        if($sysname !~ /W$/) {
113
 
                $strconvfunc = "StringBytePtr";
114
 
        } else {
115
 
                $strconvfunc = "StringToUTF16Ptr";
116
 
        }
 
116
        my $strconvfunc = $sysname !~ /W$/ ? "StringBytePtr" : "StringToUTF16Ptr";
117
117
 
118
118
        # Winapi proc address variable.
119
119
        $vars .= sprintf "\t%s = getSysProcAddr(%s, \"%s\")\n", $sysvarname, $modvname, $sysname;
120
120
 
121
121
        # Go function header.
122
 
        my $out = join(', ', @out);
 
122
        $out = join(', ', @out);
123
123
        if($out ne "") {
124
124
                $out = " ($out)";
125
125
        }
240
240
                                $failexpr = "$name $failcond";
241
241
                        }
242
242
                }
243
 
                $failexpr =~ s/(=)([0-9A-Za-z\-+])/\1 \2/;  # gofmt compatible
 
243
                $failexpr =~ s/(=)([0-9A-Za-z\-+])/$1 $2/;  # gofmt compatible
244
244
                if($name eq "errno") {
245
245
                        # Set errno to "last error" only if returned value indicate failure
246
246
                        $body .= "\tif $failexpr {\n";