summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2012-06-14 13:23:46 +0200
committerOndřej Surý <ondrej@sury.org>2012-06-14 13:23:46 +0200
commit917c5fb8ec48e22459d77e3849e6d388f93d3260 (patch)
tree9c23734a6ffd4d2a8ac99502eda3cc812a8b130b
parent0003ee229fd33ff46cb5f2fe1e35f5c0284debc4 (diff)
downloadgolang-917c5fb8ec48e22459d77e3849e6d388f93d3260.tar.gz
Imported Upstream version 1.0.2upstream/1.0.2
-rw-r--r--AUTHORS9
-rw-r--r--CONTRIBUTORS12
-rw-r--r--VERSION2
-rw-r--r--api/README11
-rw-r--r--api/go1.txt6296
-rw-r--r--api/next.txt428
-rw-r--r--doc/devel/release.html8
-rw-r--r--doc/go_spec.html64
-rw-r--r--doc/install-source.html1
-rw-r--r--doc/install.html26
-rw-r--r--doc/style.css1
-rw-r--r--doc/talks/go_talk-20091030.pdfbin0 -> 247502 bytes
-rw-r--r--lib/codereview/codereview.cfg1
-rw-r--r--lib/codereview/codereview.py3558
-rwxr-xr-xlib/codereview/test.sh198
-rw-r--r--misc/dashboard/godashboard/app.yaml15
-rw-r--r--misc/dashboard/godashboard/const.py7
-rw-r--r--misc/dashboard/godashboard/index.yaml51
-rw-r--r--misc/dashboard/godashboard/project-edit.html45
-rw-r--r--misc/dashboard/godashboard/project-notify.txt9
-rw-r--r--misc/dashboard/godashboard/project.html74
-rw-r--r--misc/dashboard/godashboard/project.py151
-rw-r--r--misc/dashboard/godashboard/static/favicon.icobin785 -> 0 bytes
-rw-r--r--misc/dashboard/godashboard/static/style.css136
-rw-r--r--misc/dashboard/godashboard/toutf8.py14
-rw-r--r--misc/emacs/go-mode.el151
-rwxr-xr-xsrc/all.bash4
-rw-r--r--src/all.bat2
-rw-r--r--src/cmd/5c/list.c4
-rw-r--r--src/cmd/5g/gobj.c3
-rw-r--r--src/cmd/5g/list.c4
-rw-r--r--src/cmd/5g/reg.c4
-rw-r--r--src/cmd/5l/list.c4
-rw-r--r--src/cmd/6g/gobj.c3
-rw-r--r--src/cmd/6g/reg.c4
-rw-r--r--src/cmd/8g/gobj.c3
-rw-r--r--src/cmd/8g/reg.c4
-rw-r--r--src/cmd/api/goapi.go164
-rw-r--r--src/cmd/cc/scon.c5
-rw-r--r--src/cmd/cgo/main.go16
-rw-r--r--src/cmd/cgo/out.go72
-rw-r--r--src/cmd/dist/build.c9
-rw-r--r--src/cmd/gc/dcl.c17
-rw-r--r--src/cmd/gc/doc.go4
-rw-r--r--src/cmd/gc/gen.c3
-rw-r--r--src/cmd/gc/go.h6
-rw-r--r--src/cmd/gc/inl.c43
-rw-r--r--src/cmd/gc/lex.c1
-rw-r--r--src/cmd/gc/range.c11
-rw-r--r--src/cmd/gc/reflect.c2
-rw-r--r--src/cmd/gc/subr.c10
-rw-r--r--src/cmd/gc/typecheck.c119
-rw-r--r--src/cmd/gc/walk.c2
-rw-r--r--src/cmd/go/build.go5
-rw-r--r--src/cmd/go/doc.go17
-rw-r--r--src/cmd/go/fmt.go21
-rw-r--r--src/cmd/go/help.go4
-rw-r--r--src/cmd/go/main.go30
-rw-r--r--src/cmd/go/run.go4
-rw-r--r--src/cmd/go/vet.go9
-rw-r--r--src/lib9/ctime.c4
-rw-r--r--src/pkg/compress/flate/deflate.go20
-rw-r--r--src/pkg/compress/flate/deflate_test.go44
-rw-r--r--src/pkg/crypto/aes/const.go4
-rw-r--r--src/pkg/crypto/ecdsa/ecdsa.go6
-rw-r--r--src/pkg/crypto/rsa/pkcs1v15.go1
-rw-r--r--src/pkg/crypto/tls/handshake_messages.go4
-rw-r--r--src/pkg/crypto/x509/x509.go4
-rw-r--r--src/pkg/debug/gosym/pclntab_test.go18
-rw-r--r--src/pkg/encoding/base64/base64.go2
-rw-r--r--src/pkg/encoding/base64/base64_test.go49
-rw-r--r--src/pkg/encoding/gob/doc.go2
-rw-r--r--src/pkg/encoding/json/decode.go14
-rw-r--r--src/pkg/encoding/json/decode_test.go65
-rw-r--r--src/pkg/encoding/json/encode.go4
-rw-r--r--src/pkg/flag/flag.go5
-rw-r--r--src/pkg/fmt/doc.go2
-rw-r--r--src/pkg/go/ast/ast.go14
-rw-r--r--src/pkg/go/ast/ast_test.go50
-rw-r--r--src/pkg/go/build/build.go4
-rw-r--r--src/pkg/go/parser/parser.go42
-rw-r--r--src/pkg/go/parser/parser_test.go195
-rw-r--r--src/pkg/go/printer/nodes.go15
-rw-r--r--src/pkg/log/log.go2
-rw-r--r--src/pkg/math/big/nat.go10
-rw-r--r--src/pkg/math/big/nat_test.go18
-rw-r--r--src/pkg/mime/multipart/multipart.go115
-rw-r--r--src/pkg/mime/multipart/multipart_test.go245
-rw-r--r--src/pkg/net/file.go4
-rw-r--r--src/pkg/net/http/client.go5
-rw-r--r--src/pkg/net/http/client_test.go25
-rw-r--r--src/pkg/net/http/proxy_test.go30
-rw-r--r--src/pkg/net/http/response.go9
-rw-r--r--src/pkg/net/http/response_test.go15
-rw-r--r--src/pkg/net/http/server.go2
-rw-r--r--src/pkg/net/http/transfer.go6
-rw-r--r--src/pkg/net/http/transport.go6
-rw-r--r--src/pkg/net/mail/message.go11
-rw-r--r--src/pkg/net/mail/message_test.go5
-rw-r--r--src/pkg/net/url/url.go5
-rw-r--r--src/pkg/net/url/url_test.go31
-rw-r--r--src/pkg/os/exec/exec.go18
-rw-r--r--src/pkg/path/filepath/path.go7
-rw-r--r--src/pkg/path/filepath/path_plan9.go2
-rw-r--r--src/pkg/path/filepath/path_test.go26
-rw-r--r--src/pkg/regexp/regexp.go4
-rw-r--r--src/pkg/regexp/syntax/parse.go7
-rw-r--r--src/pkg/regexp/syntax/parse_test.go8
-rw-r--r--src/pkg/runtime/alg.c28
-rw-r--r--src/pkg/runtime/extern.go5
-rw-r--r--src/pkg/runtime/hashmap.c161
-rw-r--r--src/pkg/runtime/malloc.goc1
-rw-r--r--src/pkg/runtime/mfinal.c3
-rw-r--r--src/pkg/runtime/mgc0.c1
-rw-r--r--src/pkg/runtime/softfloat_arm.c65
-rw-r--r--src/pkg/runtime/time.goc5
-rw-r--r--src/pkg/runtime/vlrt_arm.c2
-rw-r--r--src/pkg/strconv/itoa.go8
-rw-r--r--src/pkg/strings/example_test.go1
-rw-r--r--src/pkg/syscall/syscall_linux_arm.go30
-rw-r--r--src/pkg/syscall/syscall_windows.go39
-rw-r--r--src/pkg/syscall/syscall_windows_test.go50
-rw-r--r--src/pkg/syscall/zsyscall_linux_arm.go28
-rw-r--r--src/pkg/syscall/zsyscall_windows_386.go11
-rw-r--r--src/pkg/syscall/zsyscall_windows_amd64.go11
-rw-r--r--src/pkg/syscall/ztypes_windows.go32
-rw-r--r--src/pkg/text/template/exec.go7
-rw-r--r--src/pkg/text/template/exec_test.go6
-rw-r--r--src/pkg/time/sleep_test.go22
-rw-r--r--src/pkg/unicode/maketables.go4
-rw-r--r--src/pkg/unicode/tables.go6
-rwxr-xr-xsrc/run.bash7
-rw-r--r--src/run.bat7
-rw-r--r--test/bigmap.go105
-rw-r--r--test/fixedbugs/bug441.go36
-rw-r--r--test/fixedbugs/bug442.go27
-rw-r--r--test/fixedbugs/bug443.go17
-rw-r--r--test/fixedbugs/bug444.go19
-rw-r--r--test/index.go73
-rw-r--r--test/map1.go18
-rw-r--r--test/range.go11
141 files changed, 9052 insertions, 4859 deletions
diff --git a/AUTHORS b/AUTHORS
index 8e3fea8ba..42d7e82b4 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -31,8 +31,10 @@ Anthony Starks <ajstarks@gmail.com>
Aron Nopanen <aron.nopanen@gmail.com>
Arvindh Rajesh Tamilmani <art@a-30.net>
Ben Olive <sionide21@gmail.com>
+Benjamin Black <b@b3k.us>
Benny Siegert <bsiegert@gmail.com>
Berengar Lehr <berengar.lehr@gmx.de>
+Brian Dellisanti <briandellisanti@gmail.com>
Bjorn Tillenius <bjorn@tillenius.me>
Bjorn Tipling <bjorn.tipling@gmail.com>
Blake Mizerany <blake.mizerany@gmail.com>
@@ -55,6 +57,7 @@ Damian Gryski <dgryski@gmail.com>
Dan Sinclair <dan.sinclair@gmail.com>
Daniel Fleischman <danielfleischman@gmail.com>
Daniel Krech <eikeon@eikeon.com>
+Daniel Morsing <daniel.morsing@gmail.com>
Daniel Theophanes <kardianos@gmail.com>
Darren Elwood <darren@textnode.com>
Dave Cheney <dave@cheney.net>
@@ -95,6 +98,7 @@ Icarus Sparry <golang@icarus.freeuk.com>
Ingo Oeser <nightlyone@googlemail.com>
Isaac Wagner <ibw@isaacwagner.me>
James Fysh <james.fysh@gmail.com>
+James Gray <james@james4k.com>
James Meneghello <rawrz0r@gmail.com>
James P. Cooper <jamespcooper@gmail.com>
James Toy <nil@opensesame.st>
@@ -102,6 +106,7 @@ James Whitehead <jnwhiteh@gmail.com>
Jan H. Hosang <jan.hosang@gmail.com>
Jan Mercl <befelemepeseveze@gmail.com>
Jan Newmarch <jan.newmarch@gmail.com>
+Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
Jani Monoses <jani.monoses@ubuntu.com>
Jaroslavas Počepko <jp@webmaster.ms>
Jeff Hodges <jeff@somethingsimilar.com>
@@ -131,13 +136,16 @@ Luca Greco <luca.greco@alcacoop.it>
Lucio De Re <lucio.dere@gmail.com>
Luit van Drongelen <luitvd@gmail.com>
Markus Duft <markus.duft@salomon.at>
+Markus Sonderegger <marraison@gmail.com>
Martin Neubauer <m.ne@gmx.net>
Mateusz Czapliński <czapkofan@gmail.com>
Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
+Mats Lidell <mats.lidell@cag.se>
Matthew Horsnell <matthew.horsnell@gmail.com>
Micah Stetson <micah.stetson@gmail.com>
Michael Chaten <mchaten@gmail.com>
Michael Elkins <michael.elkins@gmail.com>
+Michael Gehring <mg@ebfe.org>
Michael Hoisie <hoisie@gmail.com>
Michael Lewis <mikelikespie@gmail.com>
Michał Derkacz <ziutek@lnet.pl>
@@ -163,6 +171,7 @@ Paul Lalonde <paul.a.lalonde@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Petar Maymounkov <petarm@gmail.com>
Peter Froehlich <peter.hans.froehlich@gmail.com>
+Peter Kleiweg <pkleiweg@xs4all.nl>
Peter Mundy <go.peter.90@gmail.com>
Peter Williams <pwil3058@gmail.com>
Pieter Droogendijk <pieter@binky.org.uk>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 1cf4d1ed6..e24b38a4a 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -64,14 +64,17 @@ Ben Eitzen <eitzenb@golang.org>
Ben Fried <ben.fried@gmail.com>
Ben Lynn <benlynn@gmail.com>
Ben Olive <sionide21@gmail.com>
+Benjamin Black <b@b3k.us>
Benny Siegert <bsiegert@gmail.com>
Berengar Lehr <Berengar.Lehr@gmx.de>
Bill Neubauer <wcn@golang.org> <wcn@google.com>
+Bill Thiede <couchmoney@gmail.com>
Bjorn Tillenius <bjorn@tillenius.me>
Bjorn Tipling <bjorn.tipling@gmail.com>
Blake Mizerany <blake.mizerany@gmail.com>
Bobby Powers <bobbypowers@gmail.com>
Brad Fitzpatrick <bradfitz@golang.org> <bradfitz@gmail.com>
+Brian Dellisanti <briandellisanti@gmail.com>
Brendan O'Dea <bod@golang.org>
Caine Tighe <arctanofyourface@gmail.com>
Cary Hull <chull@google.com>
@@ -94,6 +97,7 @@ Damian Gryski <dgryski@gmail.com>
Dan Sinclair <dan.sinclair@gmail.com>
Daniel Fleischman <danielfleischman@gmail.com>
Daniel Krech <eikeon@eikeon.com>
+Daniel Morsing <daniel.morsing@gmail.com>
Daniel Nadasi <dnadasi@google.com>
Daniel Theophanes <kardianos@gmail.com>
Darren Elwood <darren@textnode.com>
@@ -145,6 +149,7 @@ Ivan Krasin <krasin@golang.org>
Jacob Baskin <jbaskin@google.com>
James Aguilar <jaguilar@google.com>
James Fysh <james.fysh@gmail.com>
+James Gray <james@james4k.com>
James Meneghello <rawrz0r@gmail.com>
James P. Cooper <jamespcooper@gmail.com>
James Toy <nil@opensesame.st>
@@ -153,8 +158,10 @@ Jamie Gennis <jgennis@google.com> <jgennis@gmail.com>
Jan H. Hosang <jan.hosang@gmail.com>
Jan Mercl <befelemepeseveze@gmail.com>
Jan Newmarch <jan.newmarch@gmail.com>
+Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
Jaroslavas Počepko <jp@webmaster.ms>
+Jean-Marc Eurin <jmeurin@google.com>
Jeff Hodges <jeff@somethingsimilar.com>
Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>
Jeremy Jackins <jeremyjackins@gmail.com>
@@ -196,9 +203,11 @@ Luuk van Dijk <lvd@golang.org> <lvd@google.com>
Marcel van Lohuizen <mpvl@golang.org>
Mark Zavislak <zavislak@google.com>
Markus Duft <markus.duft@salomon.at>
+Markus Sonderegger <marraison@gmail.com>
Martin Neubauer <m.ne@gmx.net>
Mateusz Czapliński <czapkofan@gmail.com>
Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
+Mats Lidell <mats.lidell@cag.se> <mats.lidell@gmail.com>
Matt Jones <mrjones@google.com>
Matthew Horsnell <matthew.horsnell@gmail.com>
Maxim Pimenov <mpimenov@google.com>
@@ -206,6 +215,7 @@ Maxim Ushakov <ushakov@google.com>
Micah Stetson <micah.stetson@gmail.com>
Michael Chaten <mchaten@gmail.com>
Michael Elkins <michael.elkins@gmail.com>
+Michael Gehring <mg@ebfe.org>
Michael Hoisie <hoisie@gmail.com>
Michael Lewis <mikelikespie@gmail.com>
Michael Shields <mshields@google.com>
@@ -236,6 +246,7 @@ Paul Lalonde <paul.a.lalonde@gmail.com>
Paul Sbarra <Sbarra.Paul@gmail.com>
Petar Maymounkov <petarm@gmail.com>
Peter Froehlich <peter.hans.froehlich@gmail.com>
+Peter Kleiweg <pkleiweg@xs4all.nl>
Peter McKenzie <petermck@google.com>
Peter Mundy <go.peter.90@gmail.com>
Péter Szabó <pts@google.com>
@@ -257,6 +268,7 @@ Roger Peppe <rogpeppe@gmail.com>
Ron Minnich <rminnich@gmail.com>
Ross Light <rlight2@gmail.com>
Russ Cox <rsc@golang.org>
+Ryan Barrett <ryanb@google.com>
Ryan Hitchman <hitchmanr@gmail.com>
Sam Thorogood <thorogood@google.com> <sam.thorogood@gmail.com>
Sameer Ajmani <sameer@golang.org> <ajmani@gmail.com>
diff --git a/VERSION b/VERSION
index 3fabd9f78..1764d790f 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-go1.0.1 \ No newline at end of file
+go1.0.2 \ No newline at end of file
diff --git a/api/README b/api/README
new file mode 100644
index 000000000..6adc55454
--- /dev/null
+++ b/api/README
@@ -0,0 +1,11 @@
+Files in this directory are data for Go's API checker ("go tool api", in src/cmd/api).
+
+Each file is a list of of API features, one per line.
+
+go1.txt (and similarly named files) are frozen once a version has been
+shipped. Each file adds new lines but does not remove any.
+
+next.txt is the only file intended to be mutated. It's a list of
+features that may be added to the next version. It only affects
+warning output from the go api tool.
+
diff --git a/api/go1.txt b/api/go1.txt
index e6bdd173e..601c1f39b 100644
--- a/api/go1.txt
+++ b/api/go1.txt
@@ -3915,6 +3915,52 @@ pkg log/syslog (darwin-amd64-cgo), method (*Writer) Warning(string) error
pkg log/syslog (darwin-amd64-cgo), method (*Writer) Write([]byte) (int, error)
pkg log/syslog (darwin-amd64-cgo), type Priority int
pkg log/syslog (darwin-amd64-cgo), type Writer struct
+pkg log/syslog (freebsd-386), const LOG_ALERT Priority
+pkg log/syslog (freebsd-386), const LOG_CRIT Priority
+pkg log/syslog (freebsd-386), const LOG_DEBUG Priority
+pkg log/syslog (freebsd-386), const LOG_EMERG Priority
+pkg log/syslog (freebsd-386), const LOG_ERR Priority
+pkg log/syslog (freebsd-386), const LOG_INFO Priority
+pkg log/syslog (freebsd-386), const LOG_NOTICE Priority
+pkg log/syslog (freebsd-386), const LOG_WARNING Priority
+pkg log/syslog (freebsd-386), func Dial(string, Priority, string) (*Writer, error)
+pkg log/syslog (freebsd-386), func New(Priority, string) (*Writer, error)
+pkg log/syslog (freebsd-386), func NewLogger(Priority, int) (*log.Logger, error)
+pkg log/syslog (freebsd-386), method (*Writer) Alert(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Close() error
+pkg log/syslog (freebsd-386), method (*Writer) Crit(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Debug(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Emerg(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Err(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Info(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Notice(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Warning(string) error
+pkg log/syslog (freebsd-386), method (*Writer) Write([]byte) (int, error)
+pkg log/syslog (freebsd-386), type Priority int
+pkg log/syslog (freebsd-386), type Writer struct
+pkg log/syslog (freebsd-amd64), const LOG_ALERT Priority
+pkg log/syslog (freebsd-amd64), const LOG_CRIT Priority
+pkg log/syslog (freebsd-amd64), const LOG_DEBUG Priority
+pkg log/syslog (freebsd-amd64), const LOG_EMERG Priority
+pkg log/syslog (freebsd-amd64), const LOG_ERR Priority
+pkg log/syslog (freebsd-amd64), const LOG_INFO Priority
+pkg log/syslog (freebsd-amd64), const LOG_NOTICE Priority
+pkg log/syslog (freebsd-amd64), const LOG_WARNING Priority
+pkg log/syslog (freebsd-amd64), func Dial(string, Priority, string) (*Writer, error)
+pkg log/syslog (freebsd-amd64), func New(Priority, string) (*Writer, error)
+pkg log/syslog (freebsd-amd64), func NewLogger(Priority, int) (*log.Logger, error)
+pkg log/syslog (freebsd-amd64), method (*Writer) Alert(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Close() error
+pkg log/syslog (freebsd-amd64), method (*Writer) Crit(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Debug(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Emerg(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Err(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Info(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Notice(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Warning(string) error
+pkg log/syslog (freebsd-amd64), method (*Writer) Write([]byte) (int, error)
+pkg log/syslog (freebsd-amd64), type Priority int
+pkg log/syslog (freebsd-amd64), type Writer struct
pkg log/syslog (linux-386), const LOG_ALERT Priority
pkg log/syslog (linux-386), const LOG_CRIT Priority
pkg log/syslog (linux-386), const LOG_DEBUG Priority
@@ -4007,6 +4053,29 @@ pkg log/syslog (linux-amd64-cgo), method (*Writer) Warning(string) error
pkg log/syslog (linux-amd64-cgo), method (*Writer) Write([]byte) (int, error)
pkg log/syslog (linux-amd64-cgo), type Priority int
pkg log/syslog (linux-amd64-cgo), type Writer struct
+pkg log/syslog (linux-arm), const LOG_ALERT Priority
+pkg log/syslog (linux-arm), const LOG_CRIT Priority
+pkg log/syslog (linux-arm), const LOG_DEBUG Priority
+pkg log/syslog (linux-arm), const LOG_EMERG Priority
+pkg log/syslog (linux-arm), const LOG_ERR Priority
+pkg log/syslog (linux-arm), const LOG_INFO Priority
+pkg log/syslog (linux-arm), const LOG_NOTICE Priority
+pkg log/syslog (linux-arm), const LOG_WARNING Priority
+pkg log/syslog (linux-arm), func Dial(string, Priority, string) (*Writer, error)
+pkg log/syslog (linux-arm), func New(Priority, string) (*Writer, error)
+pkg log/syslog (linux-arm), func NewLogger(Priority, int) (*log.Logger, error)
+pkg log/syslog (linux-arm), method (*Writer) Alert(string) error
+pkg log/syslog (linux-arm), method (*Writer) Close() error
+pkg log/syslog (linux-arm), method (*Writer) Crit(string) error
+pkg log/syslog (linux-arm), method (*Writer) Debug(string) error
+pkg log/syslog (linux-arm), method (*Writer) Emerg(string) error
+pkg log/syslog (linux-arm), method (*Writer) Err(string) error
+pkg log/syslog (linux-arm), method (*Writer) Info(string) error
+pkg log/syslog (linux-arm), method (*Writer) Notice(string) error
+pkg log/syslog (linux-arm), method (*Writer) Warning(string) error
+pkg log/syslog (linux-arm), method (*Writer) Write([]byte) (int, error)
+pkg log/syslog (linux-arm), type Priority int
+pkg log/syslog (linux-arm), type Writer struct
pkg math, const E ideal-float
pkg math, const Ln10 ideal-float
pkg math, const Ln2 ideal-float
@@ -5979,7 +6048,12 @@ pkg syscall (darwin-386), const EFTYPE Errno
pkg syscall (darwin-386), const ELAST Errno
pkg syscall (darwin-386), const ENEEDAUTH Errno
pkg syscall (darwin-386), const ENOATTR Errno
+pkg syscall (darwin-386), const ENODATA Errno
pkg syscall (darwin-386), const ENOPOLICY Errno
+pkg syscall (darwin-386), const ENOSR Errno
+pkg syscall (darwin-386), const ENOSTR Errno
+pkg syscall (darwin-386), const ENOTRECOVERABLE Errno
+pkg syscall (darwin-386), const EOWNERDEAD Errno
pkg syscall (darwin-386), const EPROCLIM Errno
pkg syscall (darwin-386), const EPROCUNAVAIL Errno
pkg syscall (darwin-386), const EPROGMISMATCH Errno
@@ -5987,6 +6061,7 @@ pkg syscall (darwin-386), const EPROGUNAVAIL Errno
pkg syscall (darwin-386), const EPWROFF Errno
pkg syscall (darwin-386), const ERPCMISMATCH Errno
pkg syscall (darwin-386), const ESHLIBVERS Errno
+pkg syscall (darwin-386), const ETIME Errno
pkg syscall (darwin-386), const EVFILT_AIO ideal-int
pkg syscall (darwin-386), const EVFILT_FS ideal-int
pkg syscall (darwin-386), const EVFILT_MACHPORT ideal-int
@@ -7079,6 +7154,7 @@ pkg syscall (darwin-386), const S_IRWXU ideal-int
pkg syscall (darwin-386), const S_ISTXT ideal-int
pkg syscall (darwin-386), const S_IWGRP ideal-int
pkg syscall (darwin-386), const S_IWOTH ideal-int
+pkg syscall (darwin-386), const S_IWRITE ideal-int
pkg syscall (darwin-386), const S_IXGRP ideal-int
pkg syscall (darwin-386), const S_IXOTH ideal-int
pkg syscall (darwin-386), const SizeofBpfHdr ideal-int
@@ -7499,6 +7575,7 @@ pkg syscall (darwin-386), type Msghdr struct, Namelen uint32
pkg syscall (darwin-386), type Radvisory_t struct
pkg syscall (darwin-386), type Radvisory_t struct, Count int32
pkg syscall (darwin-386), type Radvisory_t struct, Offset int64
+pkg syscall (darwin-386), type RawSockaddr struct, Data [14]int8
pkg syscall (darwin-386), type RawSockaddr struct, Family uint8
pkg syscall (darwin-386), type RawSockaddr struct, Len uint8
pkg syscall (darwin-386), type RawSockaddrAny struct, Pad [92]int8
@@ -7790,7 +7867,12 @@ pkg syscall (darwin-386-cgo), const EFTYPE Errno
pkg syscall (darwin-386-cgo), const ELAST Errno
pkg syscall (darwin-386-cgo), const ENEEDAUTH Errno
pkg syscall (darwin-386-cgo), const ENOATTR Errno
+pkg syscall (darwin-386-cgo), const ENODATA Errno
pkg syscall (darwin-386-cgo), const ENOPOLICY Errno
+pkg syscall (darwin-386-cgo), const ENOSR Errno
+pkg syscall (darwin-386-cgo), const ENOSTR Errno
+pkg syscall (darwin-386-cgo), const ENOTRECOVERABLE Errno
+pkg syscall (darwin-386-cgo), const EOWNERDEAD Errno
pkg syscall (darwin-386-cgo), const EPROCLIM Errno
pkg syscall (darwin-386-cgo), const EPROCUNAVAIL Errno
pkg syscall (darwin-386-cgo), const EPROGMISMATCH Errno
@@ -7798,6 +7880,7 @@ pkg syscall (darwin-386-cgo), const EPROGUNAVAIL Errno
pkg syscall (darwin-386-cgo), const EPWROFF Errno
pkg syscall (darwin-386-cgo), const ERPCMISMATCH Errno
pkg syscall (darwin-386-cgo), const ESHLIBVERS Errno
+pkg syscall (darwin-386-cgo), const ETIME Errno
pkg syscall (darwin-386-cgo), const EVFILT_AIO ideal-int
pkg syscall (darwin-386-cgo), const EVFILT_FS ideal-int
pkg syscall (darwin-386-cgo), const EVFILT_MACHPORT ideal-int
@@ -8890,6 +8973,7 @@ pkg syscall (darwin-386-cgo), const S_IRWXU ideal-int
pkg syscall (darwin-386-cgo), const S_ISTXT ideal-int
pkg syscall (darwin-386-cgo), const S_IWGRP ideal-int
pkg syscall (darwin-386-cgo), const S_IWOTH ideal-int
+pkg syscall (darwin-386-cgo), const S_IWRITE ideal-int
pkg syscall (darwin-386-cgo), const S_IXGRP ideal-int
pkg syscall (darwin-386-cgo), const S_IXOTH ideal-int
pkg syscall (darwin-386-cgo), const SizeofBpfHdr ideal-int
@@ -9310,6 +9394,7 @@ pkg syscall (darwin-386-cgo), type Msghdr struct, Namelen uint32
pkg syscall (darwin-386-cgo), type Radvisory_t struct
pkg syscall (darwin-386-cgo), type Radvisory_t struct, Count int32
pkg syscall (darwin-386-cgo), type Radvisory_t struct, Offset int64
+pkg syscall (darwin-386-cgo), type RawSockaddr struct, Data [14]int8
pkg syscall (darwin-386-cgo), type RawSockaddr struct, Family uint8
pkg syscall (darwin-386-cgo), type RawSockaddr struct, Len uint8
pkg syscall (darwin-386-cgo), type RawSockaddrAny struct, Pad [92]int8
@@ -9601,7 +9686,12 @@ pkg syscall (darwin-amd64), const EFTYPE Errno
pkg syscall (darwin-amd64), const ELAST Errno
pkg syscall (darwin-amd64), const ENEEDAUTH Errno
pkg syscall (darwin-amd64), const ENOATTR Errno
+pkg syscall (darwin-amd64), const ENODATA Errno
pkg syscall (darwin-amd64), const ENOPOLICY Errno
+pkg syscall (darwin-amd64), const ENOSR Errno
+pkg syscall (darwin-amd64), const ENOSTR Errno
+pkg syscall (darwin-amd64), const ENOTRECOVERABLE Errno
+pkg syscall (darwin-amd64), const EOWNERDEAD Errno
pkg syscall (darwin-amd64), const EPROCLIM Errno
pkg syscall (darwin-amd64), const EPROCUNAVAIL Errno
pkg syscall (darwin-amd64), const EPROGMISMATCH Errno
@@ -9609,6 +9699,7 @@ pkg syscall (darwin-amd64), const EPROGUNAVAIL Errno
pkg syscall (darwin-amd64), const EPWROFF Errno
pkg syscall (darwin-amd64), const ERPCMISMATCH Errno
pkg syscall (darwin-amd64), const ESHLIBVERS Errno
+pkg syscall (darwin-amd64), const ETIME Errno
pkg syscall (darwin-amd64), const EVFILT_AIO ideal-int
pkg syscall (darwin-amd64), const EVFILT_FS ideal-int
pkg syscall (darwin-amd64), const EVFILT_MACHPORT ideal-int
@@ -10701,6 +10792,7 @@ pkg syscall (darwin-amd64), const S_IRWXU ideal-int
pkg syscall (darwin-amd64), const S_ISTXT ideal-int
pkg syscall (darwin-amd64), const S_IWGRP ideal-int
pkg syscall (darwin-amd64), const S_IWOTH ideal-int
+pkg syscall (darwin-amd64), const S_IWRITE ideal-int
pkg syscall (darwin-amd64), const S_IXGRP ideal-int
pkg syscall (darwin-amd64), const S_IXOTH ideal-int
pkg syscall (darwin-amd64), const SizeofBpfHdr ideal-int
@@ -11124,6 +11216,7 @@ pkg syscall (darwin-amd64), type Radvisory_t struct
pkg syscall (darwin-amd64), type Radvisory_t struct, Count int32
pkg syscall (darwin-amd64), type Radvisory_t struct, Offset int64
pkg syscall (darwin-amd64), type Radvisory_t struct, Pad_cgo_0 [4]byte
+pkg syscall (darwin-amd64), type RawSockaddr struct, Data [14]int8
pkg syscall (darwin-amd64), type RawSockaddr struct, Family uint8
pkg syscall (darwin-amd64), type RawSockaddr struct, Len uint8
pkg syscall (darwin-amd64), type RawSockaddrAny struct, Pad [92]int8
@@ -11419,7 +11512,12 @@ pkg syscall (darwin-amd64-cgo), const EFTYPE Errno
pkg syscall (darwin-amd64-cgo), const ELAST Errno
pkg syscall (darwin-amd64-cgo), const ENEEDAUTH Errno
pkg syscall (darwin-amd64-cgo), const ENOATTR Errno
+pkg syscall (darwin-amd64-cgo), const ENODATA Errno
pkg syscall (darwin-amd64-cgo), const ENOPOLICY Errno
+pkg syscall (darwin-amd64-cgo), const ENOSR Errno
+pkg syscall (darwin-amd64-cgo), const ENOSTR Errno
+pkg syscall (darwin-amd64-cgo), const ENOTRECOVERABLE Errno
+pkg syscall (darwin-amd64-cgo), const EOWNERDEAD Errno
pkg syscall (darwin-amd64-cgo), const EPROCLIM Errno
pkg syscall (darwin-amd64-cgo), const EPROCUNAVAIL Errno
pkg syscall (darwin-amd64-cgo), const EPROGMISMATCH Errno
@@ -11427,6 +11525,7 @@ pkg syscall (darwin-amd64-cgo), const EPROGUNAVAIL Errno
pkg syscall (darwin-amd64-cgo), const EPWROFF Errno
pkg syscall (darwin-amd64-cgo), const ERPCMISMATCH Errno
pkg syscall (darwin-amd64-cgo), const ESHLIBVERS Errno
+pkg syscall (darwin-amd64-cgo), const ETIME Errno
pkg syscall (darwin-amd64-cgo), const EVFILT_AIO ideal-int
pkg syscall (darwin-amd64-cgo), const EVFILT_FS ideal-int
pkg syscall (darwin-amd64-cgo), const EVFILT_MACHPORT ideal-int
@@ -12519,6 +12618,7 @@ pkg syscall (darwin-amd64-cgo), const S_IRWXU ideal-int
pkg syscall (darwin-amd64-cgo), const S_ISTXT ideal-int
pkg syscall (darwin-amd64-cgo), const S_IWGRP ideal-int
pkg syscall (darwin-amd64-cgo), const S_IWOTH ideal-int
+pkg syscall (darwin-amd64-cgo), const S_IWRITE ideal-int
pkg syscall (darwin-amd64-cgo), const S_IXGRP ideal-int
pkg syscall (darwin-amd64-cgo), const S_IXOTH ideal-int
pkg syscall (darwin-amd64-cgo), const SizeofBpfHdr ideal-int
@@ -12942,6 +13042,7 @@ pkg syscall (darwin-amd64-cgo), type Radvisory_t struct
pkg syscall (darwin-amd64-cgo), type Radvisory_t struct, Count int32
pkg syscall (darwin-amd64-cgo), type Radvisory_t struct, Offset int64
pkg syscall (darwin-amd64-cgo), type Radvisory_t struct, Pad_cgo_0 [4]byte
+pkg syscall (darwin-amd64-cgo), type RawSockaddr struct, Data [14]int8
pkg syscall (darwin-amd64-cgo), type RawSockaddr struct, Family uint8
pkg syscall (darwin-amd64-cgo), type RawSockaddr struct, Len uint8
pkg syscall (darwin-amd64-cgo), type RawSockaddrAny struct, Pad [92]int8
@@ -13085,6 +13186,3954 @@ pkg syscall (darwin-amd64-cgo), type WaitStatus uint32
pkg syscall (darwin-amd64-cgo), var Stderr int
pkg syscall (darwin-amd64-cgo), var Stdin int
pkg syscall (darwin-amd64-cgo), var Stdout int
+pkg syscall (freebsd-386), const AF_APPLETALK ideal-int
+pkg syscall (freebsd-386), const AF_ARP ideal-int
+pkg syscall (freebsd-386), const AF_ATM ideal-int
+pkg syscall (freebsd-386), const AF_BLUETOOTH ideal-int
+pkg syscall (freebsd-386), const AF_CCITT ideal-int
+pkg syscall (freebsd-386), const AF_CHAOS ideal-int
+pkg syscall (freebsd-386), const AF_CNT ideal-int
+pkg syscall (freebsd-386), const AF_COIP ideal-int
+pkg syscall (freebsd-386), const AF_DATAKIT ideal-int
+pkg syscall (freebsd-386), const AF_DECnet ideal-int
+pkg syscall (freebsd-386), const AF_DLI ideal-int
+pkg syscall (freebsd-386), const AF_E164 ideal-int
+pkg syscall (freebsd-386), const AF_ECMA ideal-int
+pkg syscall (freebsd-386), const AF_HYLINK ideal-int
+pkg syscall (freebsd-386), const AF_IEEE80211 ideal-int
+pkg syscall (freebsd-386), const AF_IMPLINK ideal-int
+pkg syscall (freebsd-386), const AF_IPX ideal-int
+pkg syscall (freebsd-386), const AF_ISDN ideal-int
+pkg syscall (freebsd-386), const AF_ISO ideal-int
+pkg syscall (freebsd-386), const AF_LAT ideal-int
+pkg syscall (freebsd-386), const AF_LINK ideal-int
+pkg syscall (freebsd-386), const AF_LOCAL ideal-int
+pkg syscall (freebsd-386), const AF_MAX ideal-int
+pkg syscall (freebsd-386), const AF_NATM ideal-int
+pkg syscall (freebsd-386), const AF_NETBIOS ideal-int
+pkg syscall (freebsd-386), const AF_NETGRAPH ideal-int
+pkg syscall (freebsd-386), const AF_OSI ideal-int
+pkg syscall (freebsd-386), const AF_PUP ideal-int
+pkg syscall (freebsd-386), const AF_ROUTE ideal-int
+pkg syscall (freebsd-386), const AF_SCLUSTER ideal-int
+pkg syscall (freebsd-386), const AF_SIP ideal-int
+pkg syscall (freebsd-386), const AF_SLOW ideal-int
+pkg syscall (freebsd-386), const AF_SNA ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR00 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR01 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR02 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR03 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR04 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR05 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR06 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR07 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR08 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR09 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR10 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR11 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR12 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR13 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR14 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR15 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR16 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR17 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR18 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR19 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR20 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR21 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR22 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR23 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR24 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR25 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR26 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR27 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR28 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR29 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR30 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR31 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR32 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR33 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR34 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR35 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR36 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR37 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR38 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR39 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR40 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR41 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR42 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR43 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR44 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR45 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR46 ideal-int
+pkg syscall (freebsd-386), const AF_VENDOR47 ideal-int
+pkg syscall (freebsd-386), const BIOCFEEDBACK ideal-int
+pkg syscall (freebsd-386), const BIOCFLUSH ideal-int
+pkg syscall (freebsd-386), const BIOCGBLEN ideal-int
+pkg syscall (freebsd-386), const BIOCGDIRECTION ideal-int
+pkg syscall (freebsd-386), const BIOCGDLT ideal-int
+pkg syscall (freebsd-386), const BIOCGDLTLIST ideal-int
+pkg syscall (freebsd-386), const BIOCGETBUFMODE ideal-int
+pkg syscall (freebsd-386), const BIOCGETIF ideal-int
+pkg syscall (freebsd-386), const BIOCGETZMAX ideal-int
+pkg syscall (freebsd-386), const BIOCGHDRCMPLT ideal-int
+pkg syscall (freebsd-386), const BIOCGRSIG ideal-int
+pkg syscall (freebsd-386), const BIOCGRTIMEOUT ideal-int
+pkg syscall (freebsd-386), const BIOCGSEESENT ideal-int
+pkg syscall (freebsd-386), const BIOCGSTATS ideal-int
+pkg syscall (freebsd-386), const BIOCIMMEDIATE ideal-int
+pkg syscall (freebsd-386), const BIOCLOCK ideal-int
+pkg syscall (freebsd-386), const BIOCPROMISC ideal-int
+pkg syscall (freebsd-386), const BIOCROTZBUF ideal-int
+pkg syscall (freebsd-386), const BIOCSBLEN ideal-int
+pkg syscall (freebsd-386), const BIOCSDIRECTION ideal-int
+pkg syscall (freebsd-386), const BIOCSDLT ideal-int
+pkg syscall (freebsd-386), const BIOCSETBUFMODE ideal-int
+pkg syscall (freebsd-386), const BIOCSETF ideal-int
+pkg syscall (freebsd-386), const BIOCSETFNR ideal-int
+pkg syscall (freebsd-386), const BIOCSETIF ideal-int
+pkg syscall (freebsd-386), const BIOCSETWF ideal-int
+pkg syscall (freebsd-386), const BIOCSETZBUF ideal-int
+pkg syscall (freebsd-386), const BIOCSHDRCMPLT ideal-int
+pkg syscall (freebsd-386), const BIOCSRSIG ideal-int
+pkg syscall (freebsd-386), const BIOCSRTIMEOUT ideal-int
+pkg syscall (freebsd-386), const BIOCSSEESENT ideal-int
+pkg syscall (freebsd-386), const BIOCVERSION ideal-int
+pkg syscall (freebsd-386), const BPF_A ideal-int
+pkg syscall (freebsd-386), const BPF_ABS ideal-int
+pkg syscall (freebsd-386), const BPF_ADD ideal-int
+pkg syscall (freebsd-386), const BPF_ALIGNMENT ideal-int
+pkg syscall (freebsd-386), const BPF_ALU ideal-int
+pkg syscall (freebsd-386), const BPF_AND ideal-int
+pkg syscall (freebsd-386), const BPF_B ideal-int
+pkg syscall (freebsd-386), const BPF_BUFMODE_BUFFER ideal-int
+pkg syscall (freebsd-386), const BPF_BUFMODE_ZBUF ideal-int
+pkg syscall (freebsd-386), const BPF_DIV ideal-int
+pkg syscall (freebsd-386), const BPF_H ideal-int
+pkg syscall (freebsd-386), const BPF_IMM ideal-int
+pkg syscall (freebsd-386), const BPF_IND ideal-int
+pkg syscall (freebsd-386), const BPF_JA ideal-int
+pkg syscall (freebsd-386), const BPF_JEQ ideal-int
+pkg syscall (freebsd-386), const BPF_JGE ideal-int
+pkg syscall (freebsd-386), const BPF_JGT ideal-int
+pkg syscall (freebsd-386), const BPF_JMP ideal-int
+pkg syscall (freebsd-386), const BPF_JSET ideal-int
+pkg syscall (freebsd-386), const BPF_K ideal-int
+pkg syscall (freebsd-386), const BPF_LD ideal-int
+pkg syscall (freebsd-386), const BPF_LDX ideal-int
+pkg syscall (freebsd-386), const BPF_LEN ideal-int
+pkg syscall (freebsd-386), const BPF_LSH ideal-int
+pkg syscall (freebsd-386), const BPF_MAJOR_VERSION ideal-int
+pkg syscall (freebsd-386), const BPF_MAXBUFSIZE ideal-int
+pkg syscall (freebsd-386), const BPF_MAXINSNS ideal-int
+pkg syscall (freebsd-386), const BPF_MEM ideal-int
+pkg syscall (freebsd-386), const BPF_MEMWORDS ideal-int
+pkg syscall (freebsd-386), const BPF_MINBUFSIZE ideal-int
+pkg syscall (freebsd-386), const BPF_MINOR_VERSION ideal-int
+pkg syscall (freebsd-386), const BPF_MISC ideal-int
+pkg syscall (freebsd-386), const BPF_MSH ideal-int
+pkg syscall (freebsd-386), const BPF_MUL ideal-int
+pkg syscall (freebsd-386), const BPF_NEG ideal-int
+pkg syscall (freebsd-386), const BPF_OR ideal-int
+pkg syscall (freebsd-386), const BPF_RELEASE ideal-int
+pkg syscall (freebsd-386), const BPF_RET ideal-int
+pkg syscall (freebsd-386), const BPF_RSH ideal-int
+pkg syscall (freebsd-386), const BPF_ST ideal-int
+pkg syscall (freebsd-386), const BPF_STX ideal-int
+pkg syscall (freebsd-386), const BPF_SUB ideal-int
+pkg syscall (freebsd-386), const BPF_TAX ideal-int
+pkg syscall (freebsd-386), const BPF_TXA ideal-int
+pkg syscall (freebsd-386), const BPF_W ideal-int
+pkg syscall (freebsd-386), const BPF_X ideal-int
+pkg syscall (freebsd-386), const CTL_MAXNAME ideal-int
+pkg syscall (freebsd-386), const CTL_NET ideal-int
+pkg syscall (freebsd-386), const DLT_A429 ideal-int
+pkg syscall (freebsd-386), const DLT_A653_ICM ideal-int
+pkg syscall (freebsd-386), const DLT_AIRONET_HEADER ideal-int
+pkg syscall (freebsd-386), const DLT_APPLE_IP_OVER_IEEE1394 ideal-int
+pkg syscall (freebsd-386), const DLT_ARCNET ideal-int
+pkg syscall (freebsd-386), const DLT_ARCNET_LINUX ideal-int
+pkg syscall (freebsd-386), const DLT_ATM_CLIP ideal-int
+pkg syscall (freebsd-386), const DLT_ATM_RFC1483 ideal-int
+pkg syscall (freebsd-386), const DLT_AURORA ideal-int
+pkg syscall (freebsd-386), const DLT_AX25 ideal-int
+pkg syscall (freebsd-386), const DLT_AX25_KISS ideal-int
+pkg syscall (freebsd-386), const DLT_BACNET_MS_TP ideal-int
+pkg syscall (freebsd-386), const DLT_BLUETOOTH_HCI_H4 ideal-int
+pkg syscall (freebsd-386), const DLT_BLUETOOTH_HCI_H4_WITH_PHDR ideal-int
+pkg syscall (freebsd-386), const DLT_CAN20B ideal-int
+pkg syscall (freebsd-386), const DLT_CHAOS ideal-int
+pkg syscall (freebsd-386), const DLT_CHDLC ideal-int
+pkg syscall (freebsd-386), const DLT_CISCO_IOS ideal-int
+pkg syscall (freebsd-386), const DLT_C_HDLC ideal-int
+pkg syscall (freebsd-386), const DLT_C_HDLC_WITH_DIR ideal-int
+pkg syscall (freebsd-386), const DLT_DOCSIS ideal-int
+pkg syscall (freebsd-386), const DLT_ECONET ideal-int
+pkg syscall (freebsd-386), const DLT_EN10MB ideal-int
+pkg syscall (freebsd-386), const DLT_EN3MB ideal-int
+pkg syscall (freebsd-386), const DLT_ENC ideal-int
+pkg syscall (freebsd-386), const DLT_ERF ideal-int
+pkg syscall (freebsd-386), const DLT_ERF_ETH ideal-int
+pkg syscall (freebsd-386), const DLT_ERF_POS ideal-int
+pkg syscall (freebsd-386), const DLT_FDDI ideal-int
+pkg syscall (freebsd-386), const DLT_FLEXRAY ideal-int
+pkg syscall (freebsd-386), const DLT_FRELAY ideal-int
+pkg syscall (freebsd-386), const DLT_FRELAY_WITH_DIR ideal-int
+pkg syscall (freebsd-386), const DLT_GCOM_SERIAL ideal-int
+pkg syscall (freebsd-386), const DLT_GCOM_T1E1 ideal-int
+pkg syscall (freebsd-386), const DLT_GPF_F ideal-int
+pkg syscall (freebsd-386), const DLT_GPF_T ideal-int
+pkg syscall (freebsd-386), const DLT_GPRS_LLC ideal-int
+pkg syscall (freebsd-386), const DLT_HHDLC ideal-int
+pkg syscall (freebsd-386), const DLT_IBM_SN ideal-int
+pkg syscall (freebsd-386), const DLT_IBM_SP ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802 ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_11 ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_11_RADIO ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_11_RADIO_AVS ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_15_4 ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_15_4_LINUX ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_15_4_NONASK_PHY ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_16_MAC_CPS ideal-int
+pkg syscall (freebsd-386), const DLT_IEEE802_16_MAC_CPS_RADIO ideal-int
+pkg syscall (freebsd-386), const DLT_IPFILTER ideal-int
+pkg syscall (freebsd-386), const DLT_IPMB ideal-int
+pkg syscall (freebsd-386), const DLT_IPMB_LINUX ideal-int
+pkg syscall (freebsd-386), const DLT_IP_OVER_FC ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_ATM1 ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_ATM2 ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_CHDLC ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_ES ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_ETHER ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_FRELAY ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_GGSN ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_ISM ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_MFR ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_MLFR ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_MLPPP ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_MONITOR ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_PIC_PEER ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_PPP ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_PPPOE ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_PPPOE_ATM ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_SERVICES ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_ST ideal-int
+pkg syscall (freebsd-386), const DLT_JUNIPER_VP ideal-int
+pkg syscall (freebsd-386), const DLT_LAPB_WITH_DIR ideal-int
+pkg syscall (freebsd-386), const DLT_LAPD ideal-int
+pkg syscall (freebsd-386), const DLT_LIN ideal-int
+pkg syscall (freebsd-386), const DLT_LINUX_IRDA ideal-int
+pkg syscall (freebsd-386), const DLT_LINUX_LAPD ideal-int
+pkg syscall (freebsd-386), const DLT_LINUX_PPP_WITHDIRECTION ideal-int
+pkg syscall (freebsd-386), const DLT_LINUX_SLL ideal-int
+pkg syscall (freebsd-386), const DLT_LOOP ideal-int
+pkg syscall (freebsd-386), const DLT_LTALK ideal-int
+pkg syscall (freebsd-386), const DLT_MFR ideal-int
+pkg syscall (freebsd-386), const DLT_MOST ideal-int
+pkg syscall (freebsd-386), const DLT_MTP2 ideal-int
+pkg syscall (freebsd-386), const DLT_MTP2_WITH_PHDR ideal-int
+pkg syscall (freebsd-386), const DLT_MTP3 ideal-int
+pkg syscall (freebsd-386), const DLT_NULL ideal-int
+pkg syscall (freebsd-386), const DLT_PCI_EXP ideal-int
+pkg syscall (freebsd-386), const DLT_PFLOG ideal-int
+pkg syscall (freebsd-386), const DLT_PFSYNC ideal-int
+pkg syscall (freebsd-386), const DLT_PPI ideal-int
+pkg syscall (freebsd-386), const DLT_PPP ideal-int
+pkg syscall (freebsd-386), const DLT_PPP_BSDOS ideal-int
+pkg syscall (freebsd-386), const DLT_PPP_ETHER ideal-int
+pkg syscall (freebsd-386), const DLT_PPP_PPPD ideal-int
+pkg syscall (freebsd-386), const DLT_PPP_SERIAL ideal-int
+pkg syscall (freebsd-386), const DLT_PPP_WITH_DIR ideal-int
+pkg syscall (freebsd-386), const DLT_PPP_WITH_DIRECTION ideal-int
+pkg syscall (freebsd-386), const DLT_PRISM_HEADER ideal-int
+pkg syscall (freebsd-386), const DLT_PRONET ideal-int
+pkg syscall (freebsd-386), const DLT_RAIF1 ideal-int
+pkg syscall (freebsd-386), const DLT_RAW ideal-int
+pkg syscall (freebsd-386), const DLT_RIO ideal-int
+pkg syscall (freebsd-386), const DLT_SCCP ideal-int
+pkg syscall (freebsd-386), const DLT_SITA ideal-int
+pkg syscall (freebsd-386), const DLT_SLIP ideal-int
+pkg syscall (freebsd-386), const DLT_SLIP_BSDOS ideal-int
+pkg syscall (freebsd-386), const DLT_SUNATM ideal-int
+pkg syscall (freebsd-386), const DLT_SYMANTEC_FIREWALL ideal-int
+pkg syscall (freebsd-386), const DLT_TZSP ideal-int
+pkg syscall (freebsd-386), const DLT_USB ideal-int
+pkg syscall (freebsd-386), const DLT_USB_LINUX ideal-int
+pkg syscall (freebsd-386), const DLT_USER0 ideal-int
+pkg syscall (freebsd-386), const DLT_USER1 ideal-int
+pkg syscall (freebsd-386), const DLT_USER10 ideal-int
+pkg syscall (freebsd-386), const DLT_USER11 ideal-int
+pkg syscall (freebsd-386), const DLT_USER12 ideal-int
+pkg syscall (freebsd-386), const DLT_USER13 ideal-int
+pkg syscall (freebsd-386), const DLT_USER14 ideal-int
+pkg syscall (freebsd-386), const DLT_USER15 ideal-int
+pkg syscall (freebsd-386), const DLT_USER2 ideal-int
+pkg syscall (freebsd-386), const DLT_USER3 ideal-int
+pkg syscall (freebsd-386), const DLT_USER4 ideal-int
+pkg syscall (freebsd-386), const DLT_USER5 ideal-int
+pkg syscall (freebsd-386), const DLT_USER6 ideal-int
+pkg syscall (freebsd-386), const DLT_USER7 ideal-int
+pkg syscall (freebsd-386), const DLT_USER8 ideal-int
+pkg syscall (freebsd-386), const DLT_USER9 ideal-int
+pkg syscall (freebsd-386), const DLT_X2E_SERIAL ideal-int
+pkg syscall (freebsd-386), const DLT_X2E_XORAYA ideal-int
+pkg syscall (freebsd-386), const DT_BLK ideal-int
+pkg syscall (freebsd-386), const DT_CHR ideal-int
+pkg syscall (freebsd-386), const DT_DIR ideal-int
+pkg syscall (freebsd-386), const DT_FIFO ideal-int
+pkg syscall (freebsd-386), const DT_LNK ideal-int
+pkg syscall (freebsd-386), const DT_REG ideal-int
+pkg syscall (freebsd-386), const DT_SOCK ideal-int
+pkg syscall (freebsd-386), const DT_UNKNOWN ideal-int
+pkg syscall (freebsd-386), const DT_WHT ideal-int
+pkg syscall (freebsd-386), const EAUTH Errno
+pkg syscall (freebsd-386), const EBADRPC Errno
+pkg syscall (freebsd-386), const ECHO ideal-int
+pkg syscall (freebsd-386), const ECHOCTL ideal-int
+pkg syscall (freebsd-386), const ECHOE ideal-int
+pkg syscall (freebsd-386), const ECHOK ideal-int
+pkg syscall (freebsd-386), const ECHOKE ideal-int
+pkg syscall (freebsd-386), const ECHONL ideal-int
+pkg syscall (freebsd-386), const ECHOPRT ideal-int
+pkg syscall (freebsd-386), const EDOOFUS Errno
+pkg syscall (freebsd-386), const EFTYPE Errno
+pkg syscall (freebsd-386), const ELAST Errno
+pkg syscall (freebsd-386), const ENEEDAUTH Errno
+pkg syscall (freebsd-386), const ENOATTR Errno
+pkg syscall (freebsd-386), const ENOTCAPABLE Errno
+pkg syscall (freebsd-386), const EPROCLIM Errno
+pkg syscall (freebsd-386), const EPROCUNAVAIL Errno
+pkg syscall (freebsd-386), const EPROGMISMATCH Errno
+pkg syscall (freebsd-386), const EPROGUNAVAIL Errno
+pkg syscall (freebsd-386), const ERPCMISMATCH Errno
+pkg syscall (freebsd-386), const EVFILT_AIO ideal-int
+pkg syscall (freebsd-386), const EVFILT_FS ideal-int
+pkg syscall (freebsd-386), const EVFILT_LIO ideal-int
+pkg syscall (freebsd-386), const EVFILT_PROC ideal-int
+pkg syscall (freebsd-386), const EVFILT_READ ideal-int
+pkg syscall (freebsd-386), const EVFILT_SIGNAL ideal-int
+pkg syscall (freebsd-386), const EVFILT_SYSCOUNT ideal-int
+pkg syscall (freebsd-386), const EVFILT_TIMER ideal-int
+pkg syscall (freebsd-386), const EVFILT_USER ideal-int
+pkg syscall (freebsd-386), const EVFILT_VNODE ideal-int
+pkg syscall (freebsd-386), const EVFILT_WRITE ideal-int
+pkg syscall (freebsd-386), const EV_ADD ideal-int
+pkg syscall (freebsd-386), const EV_CLEAR ideal-int
+pkg syscall (freebsd-386), const EV_DELETE ideal-int
+pkg syscall (freebsd-386), const EV_DISABLE ideal-int
+pkg syscall (freebsd-386), const EV_DISPATCH ideal-int
+pkg syscall (freebsd-386), const EV_ENABLE ideal-int
+pkg syscall (freebsd-386), const EV_EOF ideal-int
+pkg syscall (freebsd-386), const EV_ERROR ideal-int
+pkg syscall (freebsd-386), const EV_FLAG1 ideal-int
+pkg syscall (freebsd-386), const EV_ONESHOT ideal-int
+pkg syscall (freebsd-386), const EV_RECEIPT ideal-int
+pkg syscall (freebsd-386), const EV_SYSFLAGS ideal-int
+pkg syscall (freebsd-386), const EXTA ideal-int
+pkg syscall (freebsd-386), const EXTB ideal-int
+pkg syscall (freebsd-386), const EXTPROC ideal-int
+pkg syscall (freebsd-386), const FD_CLOEXEC ideal-int
+pkg syscall (freebsd-386), const FD_SETSIZE ideal-int
+pkg syscall (freebsd-386), const F_CANCEL ideal-int
+pkg syscall (freebsd-386), const F_DUP2FD ideal-int
+pkg syscall (freebsd-386), const F_DUPFD ideal-int
+pkg syscall (freebsd-386), const F_GETFD ideal-int
+pkg syscall (freebsd-386), const F_GETFL ideal-int
+pkg syscall (freebsd-386), const F_GETLK ideal-int
+pkg syscall (freebsd-386), const F_GETOWN ideal-int
+pkg syscall (freebsd-386), const F_OGETLK ideal-int
+pkg syscall (freebsd-386), const F_OK ideal-int
+pkg syscall (freebsd-386), const F_OSETLK ideal-int
+pkg syscall (freebsd-386), const F_OSETLKW ideal-int
+pkg syscall (freebsd-386), const F_RDAHEAD ideal-int
+pkg syscall (freebsd-386), const F_RDLCK ideal-int
+pkg syscall (freebsd-386), const F_READAHEAD ideal-int
+pkg syscall (freebsd-386), const F_SETFD ideal-int
+pkg syscall (freebsd-386), const F_SETFL ideal-int
+pkg syscall (freebsd-386), const F_SETLK ideal-int
+pkg syscall (freebsd-386), const F_SETLKW ideal-int
+pkg syscall (freebsd-386), const F_SETLK_REMOTE ideal-int
+pkg syscall (freebsd-386), const F_SETOWN ideal-int
+pkg syscall (freebsd-386), const F_UNLCK ideal-int
+pkg syscall (freebsd-386), const F_UNLCKSYS ideal-int
+pkg syscall (freebsd-386), const F_WRLCK ideal-int
+pkg syscall (freebsd-386), const IFF_ALLMULTI ideal-int
+pkg syscall (freebsd-386), const IFF_ALTPHYS ideal-int
+pkg syscall (freebsd-386), const IFF_CANTCHANGE ideal-int
+pkg syscall (freebsd-386), const IFF_DEBUG ideal-int
+pkg syscall (freebsd-386), const IFF_DRV_OACTIVE ideal-int
+pkg syscall (freebsd-386), const IFF_DRV_RUNNING ideal-int
+pkg syscall (freebsd-386), const IFF_DYING ideal-int
+pkg syscall (freebsd-386), const IFF_LINK0 ideal-int
+pkg syscall (freebsd-386), const IFF_LINK1 ideal-int
+pkg syscall (freebsd-386), const IFF_LINK2 ideal-int
+pkg syscall (freebsd-386), const IFF_MONITOR ideal-int
+pkg syscall (freebsd-386), const IFF_NOARP ideal-int
+pkg syscall (freebsd-386), const IFF_OACTIVE ideal-int
+pkg syscall (freebsd-386), const IFF_POINTOPOINT ideal-int
+pkg syscall (freebsd-386), const IFF_PPROMISC ideal-int
+pkg syscall (freebsd-386), const IFF_PROMISC ideal-int
+pkg syscall (freebsd-386), const IFF_RENAMING ideal-int
+pkg syscall (freebsd-386), const IFF_RUNNING ideal-int
+pkg syscall (freebsd-386), const IFF_SIMPLEX ideal-int
+pkg syscall (freebsd-386), const IFF_SMART ideal-int
+pkg syscall (freebsd-386), const IFF_STATICARP ideal-int
+pkg syscall (freebsd-386), const IFNAMSIZ ideal-int
+pkg syscall (freebsd-386), const IFT_1822 ideal-int
+pkg syscall (freebsd-386), const IFT_A12MPPSWITCH ideal-int
+pkg syscall (freebsd-386), const IFT_AAL2 ideal-int
+pkg syscall (freebsd-386), const IFT_AAL5 ideal-int
+pkg syscall (freebsd-386), const IFT_ADSL ideal-int
+pkg syscall (freebsd-386), const IFT_AFLANE8023 ideal-int
+pkg syscall (freebsd-386), const IFT_AFLANE8025 ideal-int
+pkg syscall (freebsd-386), const IFT_ARAP ideal-int
+pkg syscall (freebsd-386), const IFT_ARCNET ideal-int
+pkg syscall (freebsd-386), const IFT_ARCNETPLUS ideal-int
+pkg syscall (freebsd-386), const IFT_ASYNC ideal-int
+pkg syscall (freebsd-386), const IFT_ATM ideal-int
+pkg syscall (freebsd-386), const IFT_ATMDXI ideal-int
+pkg syscall (freebsd-386), const IFT_ATMFUNI ideal-int
+pkg syscall (freebsd-386), const IFT_ATMIMA ideal-int
+pkg syscall (freebsd-386), const IFT_ATMLOGICAL ideal-int
+pkg syscall (freebsd-386), const IFT_ATMRADIO ideal-int
+pkg syscall (freebsd-386), const IFT_ATMSUBINTERFACE ideal-int
+pkg syscall (freebsd-386), const IFT_ATMVCIENDPT ideal-int
+pkg syscall (freebsd-386), const IFT_ATMVIRTUAL ideal-int
+pkg syscall (freebsd-386), const IFT_BGPPOLICYACCOUNTING ideal-int
+pkg syscall (freebsd-386), const IFT_BRIDGE ideal-int
+pkg syscall (freebsd-386), const IFT_BSC ideal-int
+pkg syscall (freebsd-386), const IFT_CARP ideal-int
+pkg syscall (freebsd-386), const IFT_CCTEMUL ideal-int
+pkg syscall (freebsd-386), const IFT_CEPT ideal-int
+pkg syscall (freebsd-386), const IFT_CES ideal-int
+pkg syscall (freebsd-386), const IFT_CHANNEL ideal-int
+pkg syscall (freebsd-386), const IFT_CNR ideal-int
+pkg syscall (freebsd-386), const IFT_COFFEE ideal-int
+pkg syscall (freebsd-386), const IFT_COMPOSITELINK ideal-int
+pkg syscall (freebsd-386), const IFT_DCN ideal-int
+pkg syscall (freebsd-386), const IFT_DIGITALPOWERLINE ideal-int
+pkg syscall (freebsd-386), const IFT_DIGITALWRAPPEROVERHEADCHANNEL ideal-int
+pkg syscall (freebsd-386), const IFT_DLSW ideal-int
+pkg syscall (freebsd-386), const IFT_DOCSCABLEDOWNSTREAM ideal-int
+pkg syscall (freebsd-386), const IFT_DOCSCABLEMACLAYER ideal-int
+pkg syscall (freebsd-386), const IFT_DOCSCABLEUPSTREAM ideal-int
+pkg syscall (freebsd-386), const IFT_DS0 ideal-int
+pkg syscall (freebsd-386), const IFT_DS0BUNDLE ideal-int
+pkg syscall (freebsd-386), const IFT_DS1FDL ideal-int
+pkg syscall (freebsd-386), const IFT_DS3 ideal-int
+pkg syscall (freebsd-386), const IFT_DTM ideal-int
+pkg syscall (freebsd-386), const IFT_DVBASILN ideal-int
+pkg syscall (freebsd-386), const IFT_DVBASIOUT ideal-int
+pkg syscall (freebsd-386), const IFT_DVBRCCDOWNSTREAM ideal-int
+pkg syscall (freebsd-386), const IFT_DVBRCCMACLAYER ideal-int
+pkg syscall (freebsd-386), const IFT_DVBRCCUPSTREAM ideal-int
+pkg syscall (freebsd-386), const IFT_ENC ideal-int
+pkg syscall (freebsd-386), const IFT_EON ideal-int
+pkg syscall (freebsd-386), const IFT_EPLRS ideal-int
+pkg syscall (freebsd-386), const IFT_ESCON ideal-int
+pkg syscall (freebsd-386), const IFT_ETHER ideal-int
+pkg syscall (freebsd-386), const IFT_FAITH ideal-int
+pkg syscall (freebsd-386), const IFT_FAST ideal-int
+pkg syscall (freebsd-386), const IFT_FASTETHER ideal-int
+pkg syscall (freebsd-386), const IFT_FASTETHERFX ideal-int
+pkg syscall (freebsd-386), const IFT_FDDI ideal-int
+pkg syscall (freebsd-386), const IFT_FIBRECHANNEL ideal-int
+pkg syscall (freebsd-386), const IFT_FRAMERELAYINTERCONNECT ideal-int
+pkg syscall (freebsd-386), const IFT_FRAMERELAYMPI ideal-int
+pkg syscall (freebsd-386), const IFT_FRDLCIENDPT ideal-int
+pkg syscall (freebsd-386), const IFT_FRELAY ideal-int
+pkg syscall (freebsd-386), const IFT_FRELAYDCE ideal-int
+pkg syscall (freebsd-386), const IFT_FRF16MFRBUNDLE ideal-int
+pkg syscall (freebsd-386), const IFT_FRFORWARD ideal-int
+pkg syscall (freebsd-386), const IFT_G703AT2MB ideal-int
+pkg syscall (freebsd-386), const IFT_G703AT64K ideal-int
+pkg syscall (freebsd-386), const IFT_GIF ideal-int
+pkg syscall (freebsd-386), const IFT_GIGABITETHERNET ideal-int
+pkg syscall (freebsd-386), const IFT_GR303IDT ideal-int
+pkg syscall (freebsd-386), const IFT_GR303RDT ideal-int
+pkg syscall (freebsd-386), const IFT_H323GATEKEEPER ideal-int
+pkg syscall (freebsd-386), const IFT_H323PROXY ideal-int
+pkg syscall (freebsd-386), const IFT_HDH1822 ideal-int
+pkg syscall (freebsd-386), const IFT_HDLC ideal-int
+pkg syscall (freebsd-386), const IFT_HDSL2 ideal-int
+pkg syscall (freebsd-386), const IFT_HIPERLAN2 ideal-int
+pkg syscall (freebsd-386), const IFT_HIPPI ideal-int
+pkg syscall (freebsd-386), const IFT_HIPPIINTERFACE ideal-int
+pkg syscall (freebsd-386), const IFT_HOSTPAD ideal-int
+pkg syscall (freebsd-386), const IFT_HSSI ideal-int
+pkg syscall (freebsd-386), const IFT_HY ideal-int
+pkg syscall (freebsd-386), const IFT_IBM370PARCHAN ideal-int
+pkg syscall (freebsd-386), const IFT_IDSL ideal-int
+pkg syscall (freebsd-386), const IFT_IEEE1394 ideal-int
+pkg syscall (freebsd-386), const IFT_IEEE80211 ideal-int
+pkg syscall (freebsd-386), const IFT_IEEE80212 ideal-int
+pkg syscall (freebsd-386), const IFT_IEEE8023ADLAG ideal-int
+pkg syscall (freebsd-386), const IFT_IFGSN ideal-int
+pkg syscall (freebsd-386), const IFT_IMT ideal-int
+pkg syscall (freebsd-386), const IFT_INTERLEAVE ideal-int
+pkg syscall (freebsd-386), const IFT_IP ideal-int
+pkg syscall (freebsd-386), const IFT_IPFORWARD ideal-int
+pkg syscall (freebsd-386), const IFT_IPOVERATM ideal-int
+pkg syscall (freebsd-386), const IFT_IPOVERCDLC ideal-int
+pkg syscall (freebsd-386), const IFT_IPOVERCLAW ideal-int
+pkg syscall (freebsd-386), const IFT_IPSWITCH ideal-int
+pkg syscall (freebsd-386), const IFT_IPXIP ideal-int
+pkg syscall (freebsd-386), const IFT_ISDN ideal-int
+pkg syscall (freebsd-386), const IFT_ISDNBASIC ideal-int
+pkg syscall (freebsd-386), const IFT_ISDNPRIMARY ideal-int
+pkg syscall (freebsd-386), const IFT_ISDNS ideal-int
+pkg syscall (freebsd-386), const IFT_ISDNU ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88022LLC ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88023 ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88024 ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88025 ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88025CRFPINT ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88025DTR ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88025FIBER ideal-int
+pkg syscall (freebsd-386), const IFT_ISO88026 ideal-int
+pkg syscall (freebsd-386), const IFT_ISUP ideal-int
+pkg syscall (freebsd-386), const IFT_L2VLAN ideal-int
+pkg syscall (freebsd-386), const IFT_L3IPVLAN ideal-int
+pkg syscall (freebsd-386), const IFT_L3IPXVLAN ideal-int
+pkg syscall (freebsd-386), const IFT_LAPB ideal-int
+pkg syscall (freebsd-386), const IFT_LAPD ideal-int
+pkg syscall (freebsd-386), const IFT_LAPF ideal-int
+pkg syscall (freebsd-386), const IFT_LOCALTALK ideal-int
+pkg syscall (freebsd-386), const IFT_LOOP ideal-int
+pkg syscall (freebsd-386), const IFT_MEDIAMAILOVERIP ideal-int
+pkg syscall (freebsd-386), const IFT_MFSIGLINK ideal-int
+pkg syscall (freebsd-386), const IFT_MIOX25 ideal-int
+pkg syscall (freebsd-386), const IFT_MODEM ideal-int
+pkg syscall (freebsd-386), const IFT_MPC ideal-int
+pkg syscall (freebsd-386), const IFT_MPLS ideal-int
+pkg syscall (freebsd-386), const IFT_MPLSTUNNEL ideal-int
+pkg syscall (freebsd-386), const IFT_MSDSL ideal-int
+pkg syscall (freebsd-386), const IFT_MVL ideal-int
+pkg syscall (freebsd-386), const IFT_MYRINET ideal-int
+pkg syscall (freebsd-386), const IFT_NFAS ideal-int
+pkg syscall (freebsd-386), const IFT_NSIP ideal-int
+pkg syscall (freebsd-386), const IFT_OPTICALCHANNEL ideal-int
+pkg syscall (freebsd-386), const IFT_OPTICALTRANSPORT ideal-int
+pkg syscall (freebsd-386), const IFT_OTHER ideal-int
+pkg syscall (freebsd-386), const IFT_P10 ideal-int
+pkg syscall (freebsd-386), const IFT_P80 ideal-int
+pkg syscall (freebsd-386), const IFT_PARA ideal-int
+pkg syscall (freebsd-386), const IFT_PFLOG ideal-int
+pkg syscall (freebsd-386), const IFT_PFSYNC ideal-int
+pkg syscall (freebsd-386), const IFT_PLC ideal-int
+pkg syscall (freebsd-386), const IFT_POS ideal-int
+pkg syscall (freebsd-386), const IFT_PPP ideal-int
+pkg syscall (freebsd-386), const IFT_PPPMULTILINKBUNDLE ideal-int
+pkg syscall (freebsd-386), const IFT_PROPBWAP2MP ideal-int
+pkg syscall (freebsd-386), const IFT_PROPCNLS ideal-int
+pkg syscall (freebsd-386), const IFT_PROPDOCSWIRELESSDOWNSTREAM ideal-int
+pkg syscall (freebsd-386), const IFT_PROPDOCSWIRELESSMACLAYER ideal-int
+pkg syscall (freebsd-386), const IFT_PROPDOCSWIRELESSUPSTREAM ideal-int
+pkg syscall (freebsd-386), const IFT_PROPMUX ideal-int
+pkg syscall (freebsd-386), const IFT_PROPVIRTUAL ideal-int
+pkg syscall (freebsd-386), const IFT_PROPWIRELESSP2P ideal-int
+pkg syscall (freebsd-386), const IFT_PTPSERIAL ideal-int
+pkg syscall (freebsd-386), const IFT_PVC ideal-int
+pkg syscall (freebsd-386), const IFT_QLLC ideal-int
+pkg syscall (freebsd-386), const IFT_RADIOMAC ideal-int
+pkg syscall (freebsd-386), const IFT_RADSL ideal-int
+pkg syscall (freebsd-386), const IFT_REACHDSL ideal-int
+pkg syscall (freebsd-386), const IFT_RFC1483 ideal-int
+pkg syscall (freebsd-386), const IFT_RS232 ideal-int
+pkg syscall (freebsd-386), const IFT_RSRB ideal-int
+pkg syscall (freebsd-386), const IFT_SDLC ideal-int
+pkg syscall (freebsd-386), const IFT_SDSL ideal-int
+pkg syscall (freebsd-386), const IFT_SHDSL ideal-int
+pkg syscall (freebsd-386), const IFT_SIP ideal-int
+pkg syscall (freebsd-386), const IFT_SLIP ideal-int
+pkg syscall (freebsd-386), const IFT_SMDSDXI ideal-int
+pkg syscall (freebsd-386), const IFT_SMDSICIP ideal-int
+pkg syscall (freebsd-386), const IFT_SONET ideal-int
+pkg syscall (freebsd-386), const IFT_SONETOVERHEADCHANNEL ideal-int
+pkg syscall (freebsd-386), const IFT_SONETPATH ideal-int
+pkg syscall (freebsd-386), const IFT_SONETVT ideal-int
+pkg syscall (freebsd-386), const IFT_SRP ideal-int
+pkg syscall (freebsd-386), const IFT_SS7SIGLINK ideal-int
+pkg syscall (freebsd-386), const IFT_STACKTOSTACK ideal-int
+pkg syscall (freebsd-386), const IFT_STARLAN ideal-int
+pkg syscall (freebsd-386), const IFT_STF ideal-int
+pkg syscall (freebsd-386), const IFT_T1 ideal-int
+pkg syscall (freebsd-386), const IFT_TDLC ideal-int
+pkg syscall (freebsd-386), const IFT_TERMPAD ideal-int
+pkg syscall (freebsd-386), const IFT_TR008 ideal-int
+pkg syscall (freebsd-386), const IFT_TRANSPHDLC ideal-int
+pkg syscall (freebsd-386), const IFT_TUNNEL ideal-int
+pkg syscall (freebsd-386), const IFT_ULTRA ideal-int
+pkg syscall (freebsd-386), const IFT_USB ideal-int
+pkg syscall (freebsd-386), const IFT_V11 ideal-int
+pkg syscall (freebsd-386), const IFT_V35 ideal-int
+pkg syscall (freebsd-386), const IFT_V36 ideal-int
+pkg syscall (freebsd-386), const IFT_V37 ideal-int
+pkg syscall (freebsd-386), const IFT_VDSL ideal-int
+pkg syscall (freebsd-386), const IFT_VIRTUALIPADDRESS ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEEM ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEENCAP ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEFXO ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEFXS ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEOVERATM ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEOVERFRAMERELAY ideal-int
+pkg syscall (freebsd-386), const IFT_VOICEOVERIP ideal-int
+pkg syscall (freebsd-386), const IFT_X213 ideal-int
+pkg syscall (freebsd-386), const IFT_X25 ideal-int
+pkg syscall (freebsd-386), const IFT_X25DDN ideal-int
+pkg syscall (freebsd-386), const IFT_X25HUNTGROUP ideal-int
+pkg syscall (freebsd-386), const IFT_X25MLP ideal-int
+pkg syscall (freebsd-386), const IFT_X25PLE ideal-int
+pkg syscall (freebsd-386), const IFT_XETHER ideal-int
+pkg syscall (freebsd-386), const IN_CLASSA_HOST ideal-int
+pkg syscall (freebsd-386), const IN_CLASSA_MAX ideal-int
+pkg syscall (freebsd-386), const IN_CLASSA_NET ideal-int
+pkg syscall (freebsd-386), const IN_CLASSA_NSHIFT ideal-int
+pkg syscall (freebsd-386), const IN_CLASSB_HOST ideal-int
+pkg syscall (freebsd-386), const IN_CLASSB_MAX ideal-int
+pkg syscall (freebsd-386), const IN_CLASSB_NET ideal-int
+pkg syscall (freebsd-386), const IN_CLASSB_NSHIFT ideal-int
+pkg syscall (freebsd-386), const IN_CLASSC_HOST ideal-int
+pkg syscall (freebsd-386), const IN_CLASSC_NET ideal-int
+pkg syscall (freebsd-386), const IN_CLASSC_NSHIFT ideal-int
+pkg syscall (freebsd-386), const IN_CLASSD_HOST ideal-int
+pkg syscall (freebsd-386), const IN_CLASSD_NET ideal-int
+pkg syscall (freebsd-386), const IN_CLASSD_NSHIFT ideal-int
+pkg syscall (freebsd-386), const IN_LOOPBACKNET ideal-int
+pkg syscall (freebsd-386), const IPPROTO_3PC ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ADFS ideal-int
+pkg syscall (freebsd-386), const IPPROTO_AH ideal-int
+pkg syscall (freebsd-386), const IPPROTO_AHIP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_APES ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ARGUS ideal-int
+pkg syscall (freebsd-386), const IPPROTO_AX25 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_BHA ideal-int
+pkg syscall (freebsd-386), const IPPROTO_BLT ideal-int
+pkg syscall (freebsd-386), const IPPROTO_BRSATMON ideal-int
+pkg syscall (freebsd-386), const IPPROTO_CARP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_CFTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_CHAOS ideal-int
+pkg syscall (freebsd-386), const IPPROTO_CMTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_CPHB ideal-int
+pkg syscall (freebsd-386), const IPPROTO_CPNX ideal-int
+pkg syscall (freebsd-386), const IPPROTO_DDP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_DGP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_DIVERT ideal-int
+pkg syscall (freebsd-386), const IPPROTO_DONE ideal-int
+pkg syscall (freebsd-386), const IPPROTO_DSTOPTS ideal-int
+pkg syscall (freebsd-386), const IPPROTO_EGP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_EMCON ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ENCAP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_EON ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ESP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ETHERIP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_FRAGMENT ideal-int
+pkg syscall (freebsd-386), const IPPROTO_GGP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_GMTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_GRE ideal-int
+pkg syscall (freebsd-386), const IPPROTO_HELLO ideal-int
+pkg syscall (freebsd-386), const IPPROTO_HMP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_HOPOPTS ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ICMP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ICMPV6 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IDP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IDPR ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IDRP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IGMP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IGP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IGRP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IL ideal-int
+pkg syscall (freebsd-386), const IPPROTO_INLSP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_INP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IPCOMP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IPCV ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IPEIP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IPIP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IPPC ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IPV4 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_IRTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_KRYPTOLAN ideal-int
+pkg syscall (freebsd-386), const IPPROTO_LARP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_LEAF1 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_LEAF2 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MAX ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MAXID ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MEAS ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MHRP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MICP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MOBILE ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_MUX ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ND ideal-int
+pkg syscall (freebsd-386), const IPPROTO_NHRP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_NONE ideal-int
+pkg syscall (freebsd-386), const IPPROTO_NSP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_NVPII ideal-int
+pkg syscall (freebsd-386), const IPPROTO_OLD_DIVERT ideal-int
+pkg syscall (freebsd-386), const IPPROTO_OSPFIGP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PFSYNC ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PGM ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PIGP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PIM ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PRM ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PUP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_PVP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_RAW ideal-int
+pkg syscall (freebsd-386), const IPPROTO_RCCMON ideal-int
+pkg syscall (freebsd-386), const IPPROTO_RDP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ROUTING ideal-int
+pkg syscall (freebsd-386), const IPPROTO_RSVP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_RVD ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SATEXPAK ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SATMON ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SCCSP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SCTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SDRP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SEP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SKIP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SPACER ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SRPC ideal-int
+pkg syscall (freebsd-386), const IPPROTO_ST ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SVMTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_SWIPE ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TCF ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TLSP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TPXX ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TRUNK1 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TRUNK2 ideal-int
+pkg syscall (freebsd-386), const IPPROTO_TTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_VINES ideal-int
+pkg syscall (freebsd-386), const IPPROTO_VISA ideal-int
+pkg syscall (freebsd-386), const IPPROTO_VMTP ideal-int
+pkg syscall (freebsd-386), const IPPROTO_WBEXPAK ideal-int
+pkg syscall (freebsd-386), const IPPROTO_WBMON ideal-int
+pkg syscall (freebsd-386), const IPPROTO_WSN ideal-int
+pkg syscall (freebsd-386), const IPPROTO_XNET ideal-int
+pkg syscall (freebsd-386), const IPPROTO_XTP ideal-int
+pkg syscall (freebsd-386), const IPV6_AUTOFLOWLABEL ideal-int
+pkg syscall (freebsd-386), const IPV6_BINDANY ideal-int
+pkg syscall (freebsd-386), const IPV6_BINDV6ONLY ideal-int
+pkg syscall (freebsd-386), const IPV6_CHECKSUM ideal-int
+pkg syscall (freebsd-386), const IPV6_DEFAULT_MULTICAST_HOPS ideal-int
+pkg syscall (freebsd-386), const IPV6_DEFAULT_MULTICAST_LOOP ideal-int
+pkg syscall (freebsd-386), const IPV6_DEFHLIM ideal-int
+pkg syscall (freebsd-386), const IPV6_DONTFRAG ideal-int
+pkg syscall (freebsd-386), const IPV6_DSTOPTS ideal-int
+pkg syscall (freebsd-386), const IPV6_FAITH ideal-int
+pkg syscall (freebsd-386), const IPV6_FLOWINFO_MASK ideal-int
+pkg syscall (freebsd-386), const IPV6_FLOWLABEL_MASK ideal-int
+pkg syscall (freebsd-386), const IPV6_FRAGTTL ideal-int
+pkg syscall (freebsd-386), const IPV6_FW_ADD ideal-int
+pkg syscall (freebsd-386), const IPV6_FW_DEL ideal-int
+pkg syscall (freebsd-386), const IPV6_FW_FLUSH ideal-int
+pkg syscall (freebsd-386), const IPV6_FW_GET ideal-int
+pkg syscall (freebsd-386), const IPV6_FW_ZERO ideal-int
+pkg syscall (freebsd-386), const IPV6_HLIMDEC ideal-int
+pkg syscall (freebsd-386), const IPV6_HOPLIMIT ideal-int
+pkg syscall (freebsd-386), const IPV6_HOPOPTS ideal-int
+pkg syscall (freebsd-386), const IPV6_IPSEC_POLICY ideal-int
+pkg syscall (freebsd-386), const IPV6_MAXHLIM ideal-int
+pkg syscall (freebsd-386), const IPV6_MAXOPTHDR ideal-int
+pkg syscall (freebsd-386), const IPV6_MAXPACKET ideal-int
+pkg syscall (freebsd-386), const IPV6_MAX_GROUP_SRC_FILTER ideal-int
+pkg syscall (freebsd-386), const IPV6_MAX_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-386), const IPV6_MAX_SOCK_SRC_FILTER ideal-int
+pkg syscall (freebsd-386), const IPV6_MIN_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-386), const IPV6_MMTU ideal-int
+pkg syscall (freebsd-386), const IPV6_MSFILTER ideal-int
+pkg syscall (freebsd-386), const IPV6_NEXTHOP ideal-int
+pkg syscall (freebsd-386), const IPV6_PATHMTU ideal-int
+pkg syscall (freebsd-386), const IPV6_PKTINFO ideal-int
+pkg syscall (freebsd-386), const IPV6_PORTRANGE ideal-int
+pkg syscall (freebsd-386), const IPV6_PORTRANGE_DEFAULT ideal-int
+pkg syscall (freebsd-386), const IPV6_PORTRANGE_HIGH ideal-int
+pkg syscall (freebsd-386), const IPV6_PORTRANGE_LOW ideal-int
+pkg syscall (freebsd-386), const IPV6_PREFER_TEMPADDR ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVDSTOPTS ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVHOPLIMIT ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVHOPOPTS ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVPATHMTU ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVPKTINFO ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVRTHDR ideal-int
+pkg syscall (freebsd-386), const IPV6_RECVTCLASS ideal-int
+pkg syscall (freebsd-386), const IPV6_RTHDR ideal-int
+pkg syscall (freebsd-386), const IPV6_RTHDRDSTOPTS ideal-int
+pkg syscall (freebsd-386), const IPV6_RTHDR_LOOSE ideal-int
+pkg syscall (freebsd-386), const IPV6_RTHDR_STRICT ideal-int
+pkg syscall (freebsd-386), const IPV6_RTHDR_TYPE_0 ideal-int
+pkg syscall (freebsd-386), const IPV6_SOCKOPT_RESERVED1 ideal-int
+pkg syscall (freebsd-386), const IPV6_TCLASS ideal-int
+pkg syscall (freebsd-386), const IPV6_USE_MIN_MTU ideal-int
+pkg syscall (freebsd-386), const IPV6_VERSION ideal-int
+pkg syscall (freebsd-386), const IPV6_VERSION_MASK ideal-int
+pkg syscall (freebsd-386), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
+pkg syscall (freebsd-386), const IP_BINDANY ideal-int
+pkg syscall (freebsd-386), const IP_BLOCK_SOURCE ideal-int
+pkg syscall (freebsd-386), const IP_DEFAULT_MULTICAST_LOOP ideal-int
+pkg syscall (freebsd-386), const IP_DEFAULT_MULTICAST_TTL ideal-int
+pkg syscall (freebsd-386), const IP_DF ideal-int
+pkg syscall (freebsd-386), const IP_DONTFRAG ideal-int
+pkg syscall (freebsd-386), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
+pkg syscall (freebsd-386), const IP_DUMMYNET3 ideal-int
+pkg syscall (freebsd-386), const IP_DUMMYNET_CONFIGURE ideal-int
+pkg syscall (freebsd-386), const IP_DUMMYNET_DEL ideal-int
+pkg syscall (freebsd-386), const IP_DUMMYNET_FLUSH ideal-int
+pkg syscall (freebsd-386), const IP_DUMMYNET_GET ideal-int
+pkg syscall (freebsd-386), const IP_FAITH ideal-int
+pkg syscall (freebsd-386), const IP_FW3 ideal-int
+pkg syscall (freebsd-386), const IP_FW_ADD ideal-int
+pkg syscall (freebsd-386), const IP_FW_DEL ideal-int
+pkg syscall (freebsd-386), const IP_FW_FLUSH ideal-int
+pkg syscall (freebsd-386), const IP_FW_GET ideal-int
+pkg syscall (freebsd-386), const IP_FW_NAT_CFG ideal-int
+pkg syscall (freebsd-386), const IP_FW_NAT_DEL ideal-int
+pkg syscall (freebsd-386), const IP_FW_NAT_GET_CONFIG ideal-int
+pkg syscall (freebsd-386), const IP_FW_NAT_GET_LOG ideal-int
+pkg syscall (freebsd-386), const IP_FW_RESETLOG ideal-int
+pkg syscall (freebsd-386), const IP_FW_TABLE_ADD ideal-int
+pkg syscall (freebsd-386), const IP_FW_TABLE_DEL ideal-int
+pkg syscall (freebsd-386), const IP_FW_TABLE_FLUSH ideal-int
+pkg syscall (freebsd-386), const IP_FW_TABLE_GETSIZE ideal-int
+pkg syscall (freebsd-386), const IP_FW_TABLE_LIST ideal-int
+pkg syscall (freebsd-386), const IP_FW_ZERO ideal-int
+pkg syscall (freebsd-386), const IP_HDRINCL ideal-int
+pkg syscall (freebsd-386), const IP_IPSEC_POLICY ideal-int
+pkg syscall (freebsd-386), const IP_MAXPACKET ideal-int
+pkg syscall (freebsd-386), const IP_MAX_GROUP_SRC_FILTER ideal-int
+pkg syscall (freebsd-386), const IP_MAX_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-386), const IP_MAX_SOCK_MUTE_FILTER ideal-int
+pkg syscall (freebsd-386), const IP_MAX_SOCK_SRC_FILTER ideal-int
+pkg syscall (freebsd-386), const IP_MAX_SOURCE_FILTER ideal-int
+pkg syscall (freebsd-386), const IP_MF ideal-int
+pkg syscall (freebsd-386), const IP_MINTTL ideal-int
+pkg syscall (freebsd-386), const IP_MIN_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-386), const IP_MSFILTER ideal-int
+pkg syscall (freebsd-386), const IP_MSS ideal-int
+pkg syscall (freebsd-386), const IP_MULTICAST_VIF ideal-int
+pkg syscall (freebsd-386), const IP_OFFMASK ideal-int
+pkg syscall (freebsd-386), const IP_ONESBCAST ideal-int
+pkg syscall (freebsd-386), const IP_OPTIONS ideal-int
+pkg syscall (freebsd-386), const IP_PORTRANGE ideal-int
+pkg syscall (freebsd-386), const IP_PORTRANGE_DEFAULT ideal-int
+pkg syscall (freebsd-386), const IP_PORTRANGE_HIGH ideal-int
+pkg syscall (freebsd-386), const IP_PORTRANGE_LOW ideal-int
+pkg syscall (freebsd-386), const IP_RECVDSTADDR ideal-int
+pkg syscall (freebsd-386), const IP_RECVIF ideal-int
+pkg syscall (freebsd-386), const IP_RECVOPTS ideal-int
+pkg syscall (freebsd-386), const IP_RECVRETOPTS ideal-int
+pkg syscall (freebsd-386), const IP_RECVTTL ideal-int
+pkg syscall (freebsd-386), const IP_RETOPTS ideal-int
+pkg syscall (freebsd-386), const IP_RF ideal-int
+pkg syscall (freebsd-386), const IP_RSVP_OFF ideal-int
+pkg syscall (freebsd-386), const IP_RSVP_ON ideal-int
+pkg syscall (freebsd-386), const IP_RSVP_VIF_OFF ideal-int
+pkg syscall (freebsd-386), const IP_RSVP_VIF_ON ideal-int
+pkg syscall (freebsd-386), const IP_SENDSRCADDR ideal-int
+pkg syscall (freebsd-386), const IP_UNBLOCK_SOURCE ideal-int
+pkg syscall (freebsd-386), const LOCK_EX ideal-int
+pkg syscall (freebsd-386), const LOCK_NB ideal-int
+pkg syscall (freebsd-386), const LOCK_SH ideal-int
+pkg syscall (freebsd-386), const LOCK_UN ideal-int
+pkg syscall (freebsd-386), const MSG_COMPAT ideal-int
+pkg syscall (freebsd-386), const MSG_CTRUNC ideal-int
+pkg syscall (freebsd-386), const MSG_DONTROUTE ideal-int
+pkg syscall (freebsd-386), const MSG_DONTWAIT ideal-int
+pkg syscall (freebsd-386), const MSG_EOF ideal-int
+pkg syscall (freebsd-386), const MSG_EOR ideal-int
+pkg syscall (freebsd-386), const MSG_NBIO ideal-int
+pkg syscall (freebsd-386), const MSG_NOSIGNAL ideal-int
+pkg syscall (freebsd-386), const MSG_NOTIFICATION ideal-int
+pkg syscall (freebsd-386), const MSG_OOB ideal-int
+pkg syscall (freebsd-386), const MSG_PEEK ideal-int
+pkg syscall (freebsd-386), const MSG_TRUNC ideal-int
+pkg syscall (freebsd-386), const MSG_WAITALL ideal-int
+pkg syscall (freebsd-386), const NET_RT_DUMP ideal-int
+pkg syscall (freebsd-386), const NET_RT_FLAGS ideal-int
+pkg syscall (freebsd-386), const NET_RT_IFLIST ideal-int
+pkg syscall (freebsd-386), const NET_RT_IFMALIST ideal-int
+pkg syscall (freebsd-386), const NET_RT_MAXID ideal-int
+pkg syscall (freebsd-386), const NOTE_ATTRIB ideal-int
+pkg syscall (freebsd-386), const NOTE_CHILD ideal-int
+pkg syscall (freebsd-386), const NOTE_DELETE ideal-int
+pkg syscall (freebsd-386), const NOTE_EXEC ideal-int
+pkg syscall (freebsd-386), const NOTE_EXIT ideal-int
+pkg syscall (freebsd-386), const NOTE_EXTEND ideal-int
+pkg syscall (freebsd-386), const NOTE_FFAND ideal-int
+pkg syscall (freebsd-386), const NOTE_FFCOPY ideal-int
+pkg syscall (freebsd-386), const NOTE_FFCTRLMASK ideal-int
+pkg syscall (freebsd-386), const NOTE_FFLAGSMASK ideal-int
+pkg syscall (freebsd-386), const NOTE_FFNOP ideal-int
+pkg syscall (freebsd-386), const NOTE_FFOR ideal-int
+pkg syscall (freebsd-386), const NOTE_FORK ideal-int
+pkg syscall (freebsd-386), const NOTE_LINK ideal-int
+pkg syscall (freebsd-386), const NOTE_LOWAT ideal-int
+pkg syscall (freebsd-386), const NOTE_PCTRLMASK ideal-int
+pkg syscall (freebsd-386), const NOTE_PDATAMASK ideal-int
+pkg syscall (freebsd-386), const NOTE_RENAME ideal-int
+pkg syscall (freebsd-386), const NOTE_REVOKE ideal-int
+pkg syscall (freebsd-386), const NOTE_TRACK ideal-int
+pkg syscall (freebsd-386), const NOTE_TRACKERR ideal-int
+pkg syscall (freebsd-386), const NOTE_TRIGGER ideal-int
+pkg syscall (freebsd-386), const NOTE_WRITE ideal-int
+pkg syscall (freebsd-386), const O_ACCMODE ideal-int
+pkg syscall (freebsd-386), const O_DIRECT ideal-int
+pkg syscall (freebsd-386), const O_DIRECTORY ideal-int
+pkg syscall (freebsd-386), const O_EXEC ideal-int
+pkg syscall (freebsd-386), const O_EXLOCK ideal-int
+pkg syscall (freebsd-386), const O_FSYNC ideal-int
+pkg syscall (freebsd-386), const O_NDELAY ideal-int
+pkg syscall (freebsd-386), const O_NOFOLLOW ideal-int
+pkg syscall (freebsd-386), const O_SHLOCK ideal-int
+pkg syscall (freebsd-386), const O_TTY_INIT ideal-int
+pkg syscall (freebsd-386), const PTRACE_CONT ideal-int
+pkg syscall (freebsd-386), const PTRACE_KILL ideal-int
+pkg syscall (freebsd-386), const PTRACE_TRACEME ideal-int
+pkg syscall (freebsd-386), const RLIMIT_AS ideal-int
+pkg syscall (freebsd-386), const RLIMIT_CORE ideal-int
+pkg syscall (freebsd-386), const RLIMIT_CPU ideal-int
+pkg syscall (freebsd-386), const RLIMIT_DATA ideal-int
+pkg syscall (freebsd-386), const RLIMIT_FSIZE ideal-int
+pkg syscall (freebsd-386), const RLIMIT_NOFILE ideal-int
+pkg syscall (freebsd-386), const RLIMIT_STACK ideal-int
+pkg syscall (freebsd-386), const RLIM_INFINITY ideal-int
+pkg syscall (freebsd-386), const RTAX_AUTHOR ideal-int
+pkg syscall (freebsd-386), const RTAX_BRD ideal-int
+pkg syscall (freebsd-386), const RTAX_DST ideal-int
+pkg syscall (freebsd-386), const RTAX_GATEWAY ideal-int
+pkg syscall (freebsd-386), const RTAX_GENMASK ideal-int
+pkg syscall (freebsd-386), const RTAX_IFA ideal-int
+pkg syscall (freebsd-386), const RTAX_IFP ideal-int
+pkg syscall (freebsd-386), const RTAX_MAX ideal-int
+pkg syscall (freebsd-386), const RTAX_NETMASK ideal-int
+pkg syscall (freebsd-386), const RTA_AUTHOR ideal-int
+pkg syscall (freebsd-386), const RTA_BRD ideal-int
+pkg syscall (freebsd-386), const RTA_DST ideal-int
+pkg syscall (freebsd-386), const RTA_GATEWAY ideal-int
+pkg syscall (freebsd-386), const RTA_GENMASK ideal-int
+pkg syscall (freebsd-386), const RTA_IFA ideal-int
+pkg syscall (freebsd-386), const RTA_IFP ideal-int
+pkg syscall (freebsd-386), const RTA_NETMASK ideal-int
+pkg syscall (freebsd-386), const RTF_BLACKHOLE ideal-int
+pkg syscall (freebsd-386), const RTF_BROADCAST ideal-int
+pkg syscall (freebsd-386), const RTF_DONE ideal-int
+pkg syscall (freebsd-386), const RTF_DYNAMIC ideal-int
+pkg syscall (freebsd-386), const RTF_FMASK ideal-int
+pkg syscall (freebsd-386), const RTF_GATEWAY ideal-int
+pkg syscall (freebsd-386), const RTF_HOST ideal-int
+pkg syscall (freebsd-386), const RTF_LLDATA ideal-int
+pkg syscall (freebsd-386), const RTF_LLINFO ideal-int
+pkg syscall (freebsd-386), const RTF_LOCAL ideal-int
+pkg syscall (freebsd-386), const RTF_MODIFIED ideal-int
+pkg syscall (freebsd-386), const RTF_MULTICAST ideal-int
+pkg syscall (freebsd-386), const RTF_PINNED ideal-int
+pkg syscall (freebsd-386), const RTF_PRCLONING ideal-int
+pkg syscall (freebsd-386), const RTF_PROTO1 ideal-int
+pkg syscall (freebsd-386), const RTF_PROTO2 ideal-int
+pkg syscall (freebsd-386), const RTF_PROTO3 ideal-int
+pkg syscall (freebsd-386), const RTF_REJECT ideal-int
+pkg syscall (freebsd-386), const RTF_RNH_LOCKED ideal-int
+pkg syscall (freebsd-386), const RTF_STATIC ideal-int
+pkg syscall (freebsd-386), const RTF_STICKY ideal-int
+pkg syscall (freebsd-386), const RTF_UP ideal-int
+pkg syscall (freebsd-386), const RTF_XRESOLVE ideal-int
+pkg syscall (freebsd-386), const RTM_ADD ideal-int
+pkg syscall (freebsd-386), const RTM_CHANGE ideal-int
+pkg syscall (freebsd-386), const RTM_DELADDR ideal-int
+pkg syscall (freebsd-386), const RTM_DELETE ideal-int
+pkg syscall (freebsd-386), const RTM_DELMADDR ideal-int
+pkg syscall (freebsd-386), const RTM_GET ideal-int
+pkg syscall (freebsd-386), const RTM_IEEE80211 ideal-int
+pkg syscall (freebsd-386), const RTM_IFANNOUNCE ideal-int
+pkg syscall (freebsd-386), const RTM_IFINFO ideal-int
+pkg syscall (freebsd-386), const RTM_LOCK ideal-int
+pkg syscall (freebsd-386), const RTM_LOSING ideal-int
+pkg syscall (freebsd-386), const RTM_MISS ideal-int
+pkg syscall (freebsd-386), const RTM_NEWADDR ideal-int
+pkg syscall (freebsd-386), const RTM_NEWMADDR ideal-int
+pkg syscall (freebsd-386), const RTM_OLDADD ideal-int
+pkg syscall (freebsd-386), const RTM_OLDDEL ideal-int
+pkg syscall (freebsd-386), const RTM_REDIRECT ideal-int
+pkg syscall (freebsd-386), const RTM_RESOLVE ideal-int
+pkg syscall (freebsd-386), const RTM_RTTUNIT ideal-int
+pkg syscall (freebsd-386), const RTM_VERSION ideal-int
+pkg syscall (freebsd-386), const RTV_EXPIRE ideal-int
+pkg syscall (freebsd-386), const RTV_HOPCOUNT ideal-int
+pkg syscall (freebsd-386), const RTV_MTU ideal-int
+pkg syscall (freebsd-386), const RTV_RPIPE ideal-int
+pkg syscall (freebsd-386), const RTV_RTT ideal-int
+pkg syscall (freebsd-386), const RTV_RTTVAR ideal-int
+pkg syscall (freebsd-386), const RTV_SPIPE ideal-int
+pkg syscall (freebsd-386), const RTV_SSTHRESH ideal-int
+pkg syscall (freebsd-386), const RTV_WEIGHT ideal-int
+pkg syscall (freebsd-386), const RUSAGE_CHILDREN ideal-int
+pkg syscall (freebsd-386), const RUSAGE_SELF ideal-int
+pkg syscall (freebsd-386), const RUSAGE_THREAD ideal-int
+pkg syscall (freebsd-386), const SCM_BINTIME ideal-int
+pkg syscall (freebsd-386), const SCM_CREDS ideal-int
+pkg syscall (freebsd-386), const SCM_RIGHTS ideal-int
+pkg syscall (freebsd-386), const SCM_TIMESTAMP ideal-int
+pkg syscall (freebsd-386), const SIGCHLD Signal
+pkg syscall (freebsd-386), const SIGCONT Signal
+pkg syscall (freebsd-386), const SIGEMT Signal
+pkg syscall (freebsd-386), const SIGINFO Signal
+pkg syscall (freebsd-386), const SIGIO Signal
+pkg syscall (freebsd-386), const SIGIOT Signal
+pkg syscall (freebsd-386), const SIGLWP Signal
+pkg syscall (freebsd-386), const SIGPROF Signal
+pkg syscall (freebsd-386), const SIGSTOP Signal
+pkg syscall (freebsd-386), const SIGSYS Signal
+pkg syscall (freebsd-386), const SIGTHR Signal
+pkg syscall (freebsd-386), const SIGTSTP Signal
+pkg syscall (freebsd-386), const SIGTTIN Signal
+pkg syscall (freebsd-386), const SIGTTOU Signal
+pkg syscall (freebsd-386), const SIGURG Signal
+pkg syscall (freebsd-386), const SIGUSR1 Signal
+pkg syscall (freebsd-386), const SIGUSR2 Signal
+pkg syscall (freebsd-386), const SIGVTALRM Signal
+pkg syscall (freebsd-386), const SIGWINCH Signal
+pkg syscall (freebsd-386), const SIGXCPU Signal
+pkg syscall (freebsd-386), const SIGXFSZ Signal
+pkg syscall (freebsd-386), const SIOCADDMULTI ideal-int
+pkg syscall (freebsd-386), const SIOCADDRT ideal-int
+pkg syscall (freebsd-386), const SIOCAIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCAIFGROUP ideal-int
+pkg syscall (freebsd-386), const SIOCALIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCATMARK ideal-int
+pkg syscall (freebsd-386), const SIOCDELMULTI ideal-int
+pkg syscall (freebsd-386), const SIOCDELRT ideal-int
+pkg syscall (freebsd-386), const SIOCDIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCDIFGROUP ideal-int
+pkg syscall (freebsd-386), const SIOCDIFPHYADDR ideal-int
+pkg syscall (freebsd-386), const SIOCDLIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGDRVSPEC ideal-int
+pkg syscall (freebsd-386), const SIOCGETSGCNT ideal-int
+pkg syscall (freebsd-386), const SIOCGETVIFCNT ideal-int
+pkg syscall (freebsd-386), const SIOCGHIWAT ideal-int
+pkg syscall (freebsd-386), const SIOCGIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGIFBRDADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGIFCAP ideal-int
+pkg syscall (freebsd-386), const SIOCGIFCONF ideal-int
+pkg syscall (freebsd-386), const SIOCGIFDESCR ideal-int
+pkg syscall (freebsd-386), const SIOCGIFDSTADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGIFFLAGS ideal-int
+pkg syscall (freebsd-386), const SIOCGIFGENERIC ideal-int
+pkg syscall (freebsd-386), const SIOCGIFGMEMB ideal-int
+pkg syscall (freebsd-386), const SIOCGIFGROUP ideal-int
+pkg syscall (freebsd-386), const SIOCGIFINDEX ideal-int
+pkg syscall (freebsd-386), const SIOCGIFMAC ideal-int
+pkg syscall (freebsd-386), const SIOCGIFMEDIA ideal-int
+pkg syscall (freebsd-386), const SIOCGIFMETRIC ideal-int
+pkg syscall (freebsd-386), const SIOCGIFMTU ideal-int
+pkg syscall (freebsd-386), const SIOCGIFNETMASK ideal-int
+pkg syscall (freebsd-386), const SIOCGIFPDSTADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGIFPHYS ideal-int
+pkg syscall (freebsd-386), const SIOCGIFPSRCADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGIFSTATUS ideal-int
+pkg syscall (freebsd-386), const SIOCGLIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGLIFPHYADDR ideal-int
+pkg syscall (freebsd-386), const SIOCGLOWAT ideal-int
+pkg syscall (freebsd-386), const SIOCGPGRP ideal-int
+pkg syscall (freebsd-386), const SIOCGPRIVATE_0 ideal-int
+pkg syscall (freebsd-386), const SIOCGPRIVATE_1 ideal-int
+pkg syscall (freebsd-386), const SIOCIFCREATE ideal-int
+pkg syscall (freebsd-386), const SIOCIFCREATE2 ideal-int
+pkg syscall (freebsd-386), const SIOCIFDESTROY ideal-int
+pkg syscall (freebsd-386), const SIOCIFGCLONERS ideal-int
+pkg syscall (freebsd-386), const SIOCSDRVSPEC ideal-int
+pkg syscall (freebsd-386), const SIOCSHIWAT ideal-int
+pkg syscall (freebsd-386), const SIOCSIFADDR ideal-int
+pkg syscall (freebsd-386), const SIOCSIFBRDADDR ideal-int
+pkg syscall (freebsd-386), const SIOCSIFCAP ideal-int
+pkg syscall (freebsd-386), const SIOCSIFDESCR ideal-int
+pkg syscall (freebsd-386), const SIOCSIFDSTADDR ideal-int
+pkg syscall (freebsd-386), const SIOCSIFFLAGS ideal-int
+pkg syscall (freebsd-386), const SIOCSIFGENERIC ideal-int
+pkg syscall (freebsd-386), const SIOCSIFLLADDR ideal-int
+pkg syscall (freebsd-386), const SIOCSIFMAC ideal-int
+pkg syscall (freebsd-386), const SIOCSIFMEDIA ideal-int
+pkg syscall (freebsd-386), const SIOCSIFMETRIC ideal-int
+pkg syscall (freebsd-386), const SIOCSIFMTU ideal-int
+pkg syscall (freebsd-386), const SIOCSIFNAME ideal-int
+pkg syscall (freebsd-386), const SIOCSIFNETMASK ideal-int
+pkg syscall (freebsd-386), const SIOCSIFPHYADDR ideal-int
+pkg syscall (freebsd-386), const SIOCSIFPHYS ideal-int
+pkg syscall (freebsd-386), const SIOCSIFRVNET ideal-int
+pkg syscall (freebsd-386), const SIOCSIFVNET ideal-int
+pkg syscall (freebsd-386), const SIOCSLIFPHYADDR ideal-int
+pkg syscall (freebsd-386), const SIOCSLOWAT ideal-int
+pkg syscall (freebsd-386), const SIOCSPGRP ideal-int
+pkg syscall (freebsd-386), const SOCK_MAXADDRLEN ideal-int
+pkg syscall (freebsd-386), const SOCK_RDM ideal-int
+pkg syscall (freebsd-386), const SO_ACCEPTCONN ideal-int
+pkg syscall (freebsd-386), const SO_ACCEPTFILTER ideal-int
+pkg syscall (freebsd-386), const SO_BINTIME ideal-int
+pkg syscall (freebsd-386), const SO_DEBUG ideal-int
+pkg syscall (freebsd-386), const SO_ERROR ideal-int
+pkg syscall (freebsd-386), const SO_LABEL ideal-int
+pkg syscall (freebsd-386), const SO_LISTENINCQLEN ideal-int
+pkg syscall (freebsd-386), const SO_LISTENQLEN ideal-int
+pkg syscall (freebsd-386), const SO_LISTENQLIMIT ideal-int
+pkg syscall (freebsd-386), const SO_NOSIGPIPE ideal-int
+pkg syscall (freebsd-386), const SO_NO_DDP ideal-int
+pkg syscall (freebsd-386), const SO_NO_OFFLOAD ideal-int
+pkg syscall (freebsd-386), const SO_OOBINLINE ideal-int
+pkg syscall (freebsd-386), const SO_PEERLABEL ideal-int
+pkg syscall (freebsd-386), const SO_RCVLOWAT ideal-int
+pkg syscall (freebsd-386), const SO_RCVTIMEO ideal-int
+pkg syscall (freebsd-386), const SO_REUSEPORT ideal-int
+pkg syscall (freebsd-386), const SO_SETFIB ideal-int
+pkg syscall (freebsd-386), const SO_SNDLOWAT ideal-int
+pkg syscall (freebsd-386), const SO_SNDTIMEO ideal-int
+pkg syscall (freebsd-386), const SO_TIMESTAMP ideal-int
+pkg syscall (freebsd-386), const SO_TYPE ideal-int
+pkg syscall (freebsd-386), const SO_USELOOPBACK ideal-int
+pkg syscall (freebsd-386), const SYS_ABORT2 ideal-int
+pkg syscall (freebsd-386), const SYS_ACCEPT ideal-int
+pkg syscall (freebsd-386), const SYS_ACCESS ideal-int
+pkg syscall (freebsd-386), const SYS_ACCT ideal-int
+pkg syscall (freebsd-386), const SYS_ADJTIME ideal-int
+pkg syscall (freebsd-386), const SYS_AUDIT ideal-int
+pkg syscall (freebsd-386), const SYS_AUDITCTL ideal-int
+pkg syscall (freebsd-386), const SYS_AUDITON ideal-int
+pkg syscall (freebsd-386), const SYS_BIND ideal-int
+pkg syscall (freebsd-386), const SYS_CAP_ENTER ideal-int
+pkg syscall (freebsd-386), const SYS_CAP_GETMODE ideal-int
+pkg syscall (freebsd-386), const SYS_CAP_GETRIGHTS ideal-int
+pkg syscall (freebsd-386), const SYS_CAP_NEW ideal-int
+pkg syscall (freebsd-386), const SYS_CHDIR ideal-int
+pkg syscall (freebsd-386), const SYS_CHFLAGS ideal-int
+pkg syscall (freebsd-386), const SYS_CHMOD ideal-int
+pkg syscall (freebsd-386), const SYS_CHOWN ideal-int
+pkg syscall (freebsd-386), const SYS_CHROOT ideal-int
+pkg syscall (freebsd-386), const SYS_CLOCK_GETRES ideal-int
+pkg syscall (freebsd-386), const SYS_CLOCK_GETTIME ideal-int
+pkg syscall (freebsd-386), const SYS_CLOCK_SETTIME ideal-int
+pkg syscall (freebsd-386), const SYS_CLOSE ideal-int
+pkg syscall (freebsd-386), const SYS_CLOSEFROM ideal-int
+pkg syscall (freebsd-386), const SYS_CONNECT ideal-int
+pkg syscall (freebsd-386), const SYS_CPUSET ideal-int
+pkg syscall (freebsd-386), const SYS_CPUSET_GETAFFINITY ideal-int
+pkg syscall (freebsd-386), const SYS_CPUSET_GETID ideal-int
+pkg syscall (freebsd-386), const SYS_CPUSET_SETAFFINITY ideal-int
+pkg syscall (freebsd-386), const SYS_CPUSET_SETID ideal-int
+pkg syscall (freebsd-386), const SYS_DUP ideal-int
+pkg syscall (freebsd-386), const SYS_DUP2 ideal-int
+pkg syscall (freebsd-386), const SYS_EACCESS ideal-int
+pkg syscall (freebsd-386), const SYS_EXECVE ideal-int
+pkg syscall (freebsd-386), const SYS_EXIT ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTRCTL ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_DELETE_FD ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_DELETE_FILE ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_DELETE_LINK ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_GET_FD ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_GET_FILE ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_GET_LINK ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_LIST_FD ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_LIST_FILE ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_LIST_LINK ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_SET_FD ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_SET_FILE ideal-int
+pkg syscall (freebsd-386), const SYS_EXTATTR_SET_LINK ideal-int
+pkg syscall (freebsd-386), const SYS_FACCESSAT ideal-int
+pkg syscall (freebsd-386), const SYS_FCHDIR ideal-int
+pkg syscall (freebsd-386), const SYS_FCHFLAGS ideal-int
+pkg syscall (freebsd-386), const SYS_FCHMOD ideal-int
+pkg syscall (freebsd-386), const SYS_FCHMODAT ideal-int
+pkg syscall (freebsd-386), const SYS_FCHOWN ideal-int
+pkg syscall (freebsd-386), const SYS_FCHOWNAT ideal-int
+pkg syscall (freebsd-386), const SYS_FCNTL ideal-int
+pkg syscall (freebsd-386), const SYS_FEXECVE ideal-int
+pkg syscall (freebsd-386), const SYS_FFCLOCK_GETCOUNTER ideal-int
+pkg syscall (freebsd-386), const SYS_FFCLOCK_GETESTIMATE ideal-int
+pkg syscall (freebsd-386), const SYS_FFCLOCK_SETESTIMATE ideal-int
+pkg syscall (freebsd-386), const SYS_FHOPEN ideal-int
+pkg syscall (freebsd-386), const SYS_FHSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_FHSTATFS ideal-int
+pkg syscall (freebsd-386), const SYS_FLOCK ideal-int
+pkg syscall (freebsd-386), const SYS_FORK ideal-int
+pkg syscall (freebsd-386), const SYS_FPATHCONF ideal-int
+pkg syscall (freebsd-386), const SYS_FREEBSD6_FTRUNCATE ideal-int
+pkg syscall (freebsd-386), const SYS_FREEBSD6_LSEEK ideal-int
+pkg syscall (freebsd-386), const SYS_FREEBSD6_MMAP ideal-int
+pkg syscall (freebsd-386), const SYS_FREEBSD6_PREAD ideal-int
+pkg syscall (freebsd-386), const SYS_FREEBSD6_PWRITE ideal-int
+pkg syscall (freebsd-386), const SYS_FREEBSD6_TRUNCATE ideal-int
+pkg syscall (freebsd-386), const SYS_FSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_FSTATAT ideal-int
+pkg syscall (freebsd-386), const SYS_FSTATFS ideal-int
+pkg syscall (freebsd-386), const SYS_FSYNC ideal-int
+pkg syscall (freebsd-386), const SYS_FTRUNCATE ideal-int
+pkg syscall (freebsd-386), const SYS_FUTIMES ideal-int
+pkg syscall (freebsd-386), const SYS_FUTIMESAT ideal-int
+pkg syscall (freebsd-386), const SYS_GETAUDIT ideal-int
+pkg syscall (freebsd-386), const SYS_GETAUDIT_ADDR ideal-int
+pkg syscall (freebsd-386), const SYS_GETAUID ideal-int
+pkg syscall (freebsd-386), const SYS_GETCONTEXT ideal-int
+pkg syscall (freebsd-386), const SYS_GETDENTS ideal-int
+pkg syscall (freebsd-386), const SYS_GETDIRENTRIES ideal-int
+pkg syscall (freebsd-386), const SYS_GETDTABLESIZE ideal-int
+pkg syscall (freebsd-386), const SYS_GETEGID ideal-int
+pkg syscall (freebsd-386), const SYS_GETEUID ideal-int
+pkg syscall (freebsd-386), const SYS_GETFH ideal-int
+pkg syscall (freebsd-386), const SYS_GETFSSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_GETGID ideal-int
+pkg syscall (freebsd-386), const SYS_GETGROUPS ideal-int
+pkg syscall (freebsd-386), const SYS_GETITIMER ideal-int
+pkg syscall (freebsd-386), const SYS_GETLOGIN ideal-int
+pkg syscall (freebsd-386), const SYS_GETLOGINCLASS ideal-int
+pkg syscall (freebsd-386), const SYS_GETPEERNAME ideal-int
+pkg syscall (freebsd-386), const SYS_GETPGID ideal-int
+pkg syscall (freebsd-386), const SYS_GETPGRP ideal-int
+pkg syscall (freebsd-386), const SYS_GETPID ideal-int
+pkg syscall (freebsd-386), const SYS_GETPPID ideal-int
+pkg syscall (freebsd-386), const SYS_GETPRIORITY ideal-int
+pkg syscall (freebsd-386), const SYS_GETRESGID ideal-int
+pkg syscall (freebsd-386), const SYS_GETRESUID ideal-int
+pkg syscall (freebsd-386), const SYS_GETRLIMIT ideal-int
+pkg syscall (freebsd-386), const SYS_GETRUSAGE ideal-int
+pkg syscall (freebsd-386), const SYS_GETSID ideal-int
+pkg syscall (freebsd-386), const SYS_GETSOCKNAME ideal-int
+pkg syscall (freebsd-386), const SYS_GETSOCKOPT ideal-int
+pkg syscall (freebsd-386), const SYS_GETTIMEOFDAY ideal-int
+pkg syscall (freebsd-386), const SYS_GETUID ideal-int
+pkg syscall (freebsd-386), const SYS_IOCTL ideal-int
+pkg syscall (freebsd-386), const SYS_ISSETUGID ideal-int
+pkg syscall (freebsd-386), const SYS_JAIL ideal-int
+pkg syscall (freebsd-386), const SYS_JAIL_ATTACH ideal-int
+pkg syscall (freebsd-386), const SYS_JAIL_GET ideal-int
+pkg syscall (freebsd-386), const SYS_JAIL_REMOVE ideal-int
+pkg syscall (freebsd-386), const SYS_JAIL_SET ideal-int
+pkg syscall (freebsd-386), const SYS_KENV ideal-int
+pkg syscall (freebsd-386), const SYS_KEVENT ideal-int
+pkg syscall (freebsd-386), const SYS_KILL ideal-int
+pkg syscall (freebsd-386), const SYS_KLDFIND ideal-int
+pkg syscall (freebsd-386), const SYS_KLDFIRSTMOD ideal-int
+pkg syscall (freebsd-386), const SYS_KLDLOAD ideal-int
+pkg syscall (freebsd-386), const SYS_KLDNEXT ideal-int
+pkg syscall (freebsd-386), const SYS_KLDSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_KLDSYM ideal-int
+pkg syscall (freebsd-386), const SYS_KLDUNLOAD ideal-int
+pkg syscall (freebsd-386), const SYS_KLDUNLOADF ideal-int
+pkg syscall (freebsd-386), const SYS_KQUEUE ideal-int
+pkg syscall (freebsd-386), const SYS_KTIMER_CREATE ideal-int
+pkg syscall (freebsd-386), const SYS_KTIMER_DELETE ideal-int
+pkg syscall (freebsd-386), const SYS_KTIMER_GETOVERRUN ideal-int
+pkg syscall (freebsd-386), const SYS_KTIMER_GETTIME ideal-int
+pkg syscall (freebsd-386), const SYS_KTIMER_SETTIME ideal-int
+pkg syscall (freebsd-386), const SYS_KTRACE ideal-int
+pkg syscall (freebsd-386), const SYS_LCHFLAGS ideal-int
+pkg syscall (freebsd-386), const SYS_LCHMOD ideal-int
+pkg syscall (freebsd-386), const SYS_LCHOWN ideal-int
+pkg syscall (freebsd-386), const SYS_LGETFH ideal-int
+pkg syscall (freebsd-386), const SYS_LINK ideal-int
+pkg syscall (freebsd-386), const SYS_LINKAT ideal-int
+pkg syscall (freebsd-386), const SYS_LISTEN ideal-int
+pkg syscall (freebsd-386), const SYS_LPATHCONF ideal-int
+pkg syscall (freebsd-386), const SYS_LSEEK ideal-int
+pkg syscall (freebsd-386), const SYS_LSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_LUTIMES ideal-int
+pkg syscall (freebsd-386), const SYS_MAC_SYSCALL ideal-int
+pkg syscall (freebsd-386), const SYS_MADVISE ideal-int
+pkg syscall (freebsd-386), const SYS_MINCORE ideal-int
+pkg syscall (freebsd-386), const SYS_MINHERIT ideal-int
+pkg syscall (freebsd-386), const SYS_MKDIR ideal-int
+pkg syscall (freebsd-386), const SYS_MKDIRAT ideal-int
+pkg syscall (freebsd-386), const SYS_MKFIFO ideal-int
+pkg syscall (freebsd-386), const SYS_MKFIFOAT ideal-int
+pkg syscall (freebsd-386), const SYS_MKNOD ideal-int
+pkg syscall (freebsd-386), const SYS_MKNODAT ideal-int
+pkg syscall (freebsd-386), const SYS_MLOCK ideal-int
+pkg syscall (freebsd-386), const SYS_MLOCKALL ideal-int
+pkg syscall (freebsd-386), const SYS_MMAP ideal-int
+pkg syscall (freebsd-386), const SYS_MODFIND ideal-int
+pkg syscall (freebsd-386), const SYS_MODFNEXT ideal-int
+pkg syscall (freebsd-386), const SYS_MODNEXT ideal-int
+pkg syscall (freebsd-386), const SYS_MODSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_MOUNT ideal-int
+pkg syscall (freebsd-386), const SYS_MPROTECT ideal-int
+pkg syscall (freebsd-386), const SYS_MSYNC ideal-int
+pkg syscall (freebsd-386), const SYS_MUNLOCK ideal-int
+pkg syscall (freebsd-386), const SYS_MUNLOCKALL ideal-int
+pkg syscall (freebsd-386), const SYS_MUNMAP ideal-int
+pkg syscall (freebsd-386), const SYS_NANOSLEEP ideal-int
+pkg syscall (freebsd-386), const SYS_NFSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_NLSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_NMOUNT ideal-int
+pkg syscall (freebsd-386), const SYS_NSTAT ideal-int
+pkg syscall (freebsd-386), const SYS_NTP_ADJTIME ideal-int
+pkg syscall (freebsd-386), const SYS_NTP_GETTIME ideal-int
+pkg syscall (freebsd-386), const SYS_OBREAK ideal-int
+pkg syscall (freebsd-386), const SYS_OPEN ideal-int
+pkg syscall (freebsd-386), const SYS_OPENAT ideal-int
+pkg syscall (freebsd-386), const SYS_OPENBSD_POLL ideal-int
+pkg syscall (freebsd-386), const SYS_OVADVISE ideal-int
+pkg syscall (freebsd-386), const SYS_PATHCONF ideal-int
+pkg syscall (freebsd-386), const SYS_PDFORK ideal-int
+pkg syscall (freebsd-386), const SYS_PDGETPID ideal-int
+pkg syscall (freebsd-386), const SYS_PDKILL ideal-int
+pkg syscall (freebsd-386), const SYS_PIPE ideal-int
+pkg syscall (freebsd-386), const SYS_POLL ideal-int
+pkg syscall (freebsd-386), const SYS_POSIX_FADVISE ideal-int
+pkg syscall (freebsd-386), const SYS_POSIX_FALLOCATE ideal-int
+pkg syscall (freebsd-386), const SYS_POSIX_OPENPT ideal-int
+pkg syscall (freebsd-386), const SYS_PREAD ideal-int
+pkg syscall (freebsd-386), const SYS_PREADV ideal-int
+pkg syscall (freebsd-386), const SYS_PROFIL ideal-int
+pkg syscall (freebsd-386), const SYS_PSELECT ideal-int
+pkg syscall (freebsd-386), const SYS_PTRACE ideal-int
+pkg syscall (freebsd-386), const SYS_PWRITE ideal-int
+pkg syscall (freebsd-386), const SYS_PWRITEV ideal-int
+pkg syscall (freebsd-386), const SYS_QUOTACTL ideal-int
+pkg syscall (freebsd-386), const SYS_RCTL_ADD_RULE ideal-int
+pkg syscall (freebsd-386), const SYS_RCTL_GET_LIMITS ideal-int
+pkg syscall (freebsd-386), const SYS_RCTL_GET_RACCT ideal-int
+pkg syscall (freebsd-386), const SYS_RCTL_GET_RULES ideal-int
+pkg syscall (freebsd-386), const SYS_RCTL_REMOVE_RULE ideal-int
+pkg syscall (freebsd-386), const SYS_READ ideal-int
+pkg syscall (freebsd-386), const SYS_READLINK ideal-int
+pkg syscall (freebsd-386), const SYS_READLINKAT ideal-int
+pkg syscall (freebsd-386), const SYS_READV ideal-int
+pkg syscall (freebsd-386), const SYS_REBOOT ideal-int
+pkg syscall (freebsd-386), const SYS_RECVFROM ideal-int
+pkg syscall (freebsd-386), const SYS_RECVMSG ideal-int
+pkg syscall (freebsd-386), const SYS_RENAME ideal-int
+pkg syscall (freebsd-386), const SYS_RENAMEAT ideal-int
+pkg syscall (freebsd-386), const SYS_REVOKE ideal-int
+pkg syscall (freebsd-386), const SYS_RFORK ideal-int
+pkg syscall (freebsd-386), const SYS_RMDIR ideal-int
+pkg syscall (freebsd-386), const SYS_RTPRIO ideal-int
+pkg syscall (freebsd-386), const SYS_RTPRIO_THREAD ideal-int
+pkg syscall (freebsd-386), const SYS_SBRK ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_GETPARAM ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_GETSCHEDULER ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_RR_GET_INTERVAL ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_SETPARAM ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_SETSCHEDULER ideal-int
+pkg syscall (freebsd-386), const SYS_SCHED_YIELD ideal-int
+pkg syscall (freebsd-386), const SYS_SCTP_GENERIC_RECVMSG ideal-int
+pkg syscall (freebsd-386), const SYS_SCTP_GENERIC_SENDMSG ideal-int
+pkg syscall (freebsd-386), const SYS_SCTP_GENERIC_SENDMSG_IOV ideal-int
+pkg syscall (freebsd-386), const SYS_SCTP_PEELOFF ideal-int
+pkg syscall (freebsd-386), const SYS_SELECT ideal-int
+pkg syscall (freebsd-386), const SYS_SENDFILE ideal-int
+pkg syscall (freebsd-386), const SYS_SENDMSG ideal-int
+pkg syscall (freebsd-386), const SYS_SENDTO ideal-int
+pkg syscall (freebsd-386), const SYS_SETAUDIT ideal-int
+pkg syscall (freebsd-386), const SYS_SETAUDIT_ADDR ideal-int
+pkg syscall (freebsd-386), const SYS_SETAUID ideal-int
+pkg syscall (freebsd-386), const SYS_SETCONTEXT ideal-int
+pkg syscall (freebsd-386), const SYS_SETEGID ideal-int
+pkg syscall (freebsd-386), const SYS_SETEUID ideal-int
+pkg syscall (freebsd-386), const SYS_SETFIB ideal-int
+pkg syscall (freebsd-386), const SYS_SETGID ideal-int
+pkg syscall (freebsd-386), const SYS_SETGROUPS ideal-int
+pkg syscall (freebsd-386), const SYS_SETITIMER ideal-int
+pkg syscall (freebsd-386), const SYS_SETLOGIN ideal-int
+pkg syscall (freebsd-386), const SYS_SETLOGINCLASS ideal-int
+pkg syscall (freebsd-386), const SYS_SETPGID ideal-int
+pkg syscall (freebsd-386), const SYS_SETPRIORITY ideal-int
+pkg syscall (freebsd-386), const SYS_SETREGID ideal-int
+pkg syscall (freebsd-386), const SYS_SETRESGID ideal-int
+pkg syscall (freebsd-386), const SYS_SETRESUID ideal-int
+pkg syscall (freebsd-386), const SYS_SETREUID ideal-int
+pkg syscall (freebsd-386), const SYS_SETRLIMIT ideal-int
+pkg syscall (freebsd-386), const SYS_SETSID ideal-int
+pkg syscall (freebsd-386), const SYS_SETSOCKOPT ideal-int
+pkg syscall (freebsd-386), const SYS_SETTIMEOFDAY ideal-int
+pkg syscall (freebsd-386), const SYS_SETUID ideal-int
+pkg syscall (freebsd-386), const SYS_SHM_OPEN ideal-int
+pkg syscall (freebsd-386), const SYS_SHM_UNLINK ideal-int
+pkg syscall (freebsd-386), const SYS_SHUTDOWN ideal-int
+pkg syscall (freebsd-386), const SYS_SIGACTION ideal-int
+pkg syscall (freebsd-386), const SYS_SIGALTSTACK ideal-int
+pkg syscall (freebsd-386), const SYS_SIGPENDING ideal-int
+pkg syscall (freebsd-386), const SYS_SIGPROCMASK ideal-int
+pkg syscall (freebsd-386), const SYS_SIGQUEUE ideal-int
+pkg syscall (freebsd-386), const SYS_SIGRETURN ideal-int
+pkg syscall (freebsd-386), const SYS_SIGSUSPEND ideal-int
+pkg syscall (freebsd-386), const SYS_SIGTIMEDWAIT ideal-int
+pkg syscall (freebsd-386), const SYS_SIGWAIT ideal-int
+pkg syscall (freebsd-386), const SYS_SIGWAITINFO ideal-int
+pkg syscall (freebsd-386), const SYS_SOCKET ideal-int
+pkg syscall (freebsd-386), const SYS_SOCKETPAIR ideal-int
+pkg syscall (freebsd-386), const SYS_SSTK ideal-int
+pkg syscall (freebsd-386), const SYS_STAT ideal-int
+pkg syscall (freebsd-386), const SYS_STATFS ideal-int
+pkg syscall (freebsd-386), const SYS_SWAPCONTEXT ideal-int
+pkg syscall (freebsd-386), const SYS_SWAPOFF ideal-int
+pkg syscall (freebsd-386), const SYS_SWAPON ideal-int
+pkg syscall (freebsd-386), const SYS_SYMLINK ideal-int
+pkg syscall (freebsd-386), const SYS_SYMLINKAT ideal-int
+pkg syscall (freebsd-386), const SYS_SYNC ideal-int
+pkg syscall (freebsd-386), const SYS_SYSARCH ideal-int
+pkg syscall (freebsd-386), const SYS_THR_CREATE ideal-int
+pkg syscall (freebsd-386), const SYS_THR_EXIT ideal-int
+pkg syscall (freebsd-386), const SYS_THR_KILL ideal-int
+pkg syscall (freebsd-386), const SYS_THR_KILL2 ideal-int
+pkg syscall (freebsd-386), const SYS_THR_NEW ideal-int
+pkg syscall (freebsd-386), const SYS_THR_SELF ideal-int
+pkg syscall (freebsd-386), const SYS_THR_SET_NAME ideal-int
+pkg syscall (freebsd-386), const SYS_THR_SUSPEND ideal-int
+pkg syscall (freebsd-386), const SYS_THR_WAKE ideal-int
+pkg syscall (freebsd-386), const SYS_TRUNCATE ideal-int
+pkg syscall (freebsd-386), const SYS_UMASK ideal-int
+pkg syscall (freebsd-386), const SYS_UNDELETE ideal-int
+pkg syscall (freebsd-386), const SYS_UNLINK ideal-int
+pkg syscall (freebsd-386), const SYS_UNLINKAT ideal-int
+pkg syscall (freebsd-386), const SYS_UNMOUNT ideal-int
+pkg syscall (freebsd-386), const SYS_UTIMES ideal-int
+pkg syscall (freebsd-386), const SYS_UTRACE ideal-int
+pkg syscall (freebsd-386), const SYS_UUIDGEN ideal-int
+pkg syscall (freebsd-386), const SYS_VFORK ideal-int
+pkg syscall (freebsd-386), const SYS_WAIT4 ideal-int
+pkg syscall (freebsd-386), const SYS_WRITE ideal-int
+pkg syscall (freebsd-386), const SYS_WRITEV ideal-int
+pkg syscall (freebsd-386), const SYS_YIELD ideal-int
+pkg syscall (freebsd-386), const SYS__UMTX_LOCK ideal-int
+pkg syscall (freebsd-386), const SYS__UMTX_OP ideal-int
+pkg syscall (freebsd-386), const SYS__UMTX_UNLOCK ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_ACLCHECK_FD ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_ACLCHECK_FILE ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_ACLCHECK_LINK ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_DELETE_FD ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_DELETE_FILE ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_DELETE_LINK ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_GET_FD ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_GET_FILE ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_GET_LINK ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_SET_FD ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_SET_FILE ideal-int
+pkg syscall (freebsd-386), const SYS___ACL_SET_LINK ideal-int
+pkg syscall (freebsd-386), const SYS___GETCWD ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_EXECVE ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_GET_FD ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_GET_FILE ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_GET_LINK ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_GET_PID ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_GET_PROC ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_SET_FD ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_SET_FILE ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_SET_LINK ideal-int
+pkg syscall (freebsd-386), const SYS___MAC_SET_PROC ideal-int
+pkg syscall (freebsd-386), const SYS___SETUGID ideal-int
+pkg syscall (freebsd-386), const SYS___SYSCTL ideal-int
+pkg syscall (freebsd-386), const SizeofBpfHdr ideal-int
+pkg syscall (freebsd-386), const SizeofBpfInsn ideal-int
+pkg syscall (freebsd-386), const SizeofBpfProgram ideal-int
+pkg syscall (freebsd-386), const SizeofBpfStat ideal-int
+pkg syscall (freebsd-386), const SizeofBpfVersion ideal-int
+pkg syscall (freebsd-386), const SizeofBpfZbuf ideal-int
+pkg syscall (freebsd-386), const SizeofBpfZbufHeader ideal-int
+pkg syscall (freebsd-386), const SizeofCmsghdr ideal-int
+pkg syscall (freebsd-386), const SizeofIPMreq ideal-int
+pkg syscall (freebsd-386), const SizeofIPMreqn ideal-int
+pkg syscall (freebsd-386), const SizeofIPv6Mreq ideal-int
+pkg syscall (freebsd-386), const SizeofIfData ideal-int
+pkg syscall (freebsd-386), const SizeofIfMsghdr ideal-int
+pkg syscall (freebsd-386), const SizeofIfaMsghdr ideal-int
+pkg syscall (freebsd-386), const SizeofIfmaMsghdr ideal-int
+pkg syscall (freebsd-386), const SizeofInet6Pktinfo ideal-int
+pkg syscall (freebsd-386), const SizeofLinger ideal-int
+pkg syscall (freebsd-386), const SizeofMsghdr ideal-int
+pkg syscall (freebsd-386), const SizeofRtMetrics ideal-int
+pkg syscall (freebsd-386), const SizeofRtMsghdr ideal-int
+pkg syscall (freebsd-386), const SizeofSockaddrAny ideal-int
+pkg syscall (freebsd-386), const SizeofSockaddrDatalink ideal-int
+pkg syscall (freebsd-386), const SizeofSockaddrInet4 ideal-int
+pkg syscall (freebsd-386), const SizeofSockaddrInet6 ideal-int
+pkg syscall (freebsd-386), const SizeofSockaddrUnix ideal-int
+pkg syscall (freebsd-386), const TCP_CA_NAME_MAX ideal-int
+pkg syscall (freebsd-386), const TCP_CONGESTION ideal-int
+pkg syscall (freebsd-386), const TCP_INFO ideal-int
+pkg syscall (freebsd-386), const TCP_MAXBURST ideal-int
+pkg syscall (freebsd-386), const TCP_MAXHLEN ideal-int
+pkg syscall (freebsd-386), const TCP_MAXOLEN ideal-int
+pkg syscall (freebsd-386), const TCP_MAXSEG ideal-int
+pkg syscall (freebsd-386), const TCP_MAXWIN ideal-int
+pkg syscall (freebsd-386), const TCP_MAX_SACK ideal-int
+pkg syscall (freebsd-386), const TCP_MAX_WINSHIFT ideal-int
+pkg syscall (freebsd-386), const TCP_MD5SIG ideal-int
+pkg syscall (freebsd-386), const TCP_MINMSS ideal-int
+pkg syscall (freebsd-386), const TCP_MSS ideal-int
+pkg syscall (freebsd-386), const TCP_NOOPT ideal-int
+pkg syscall (freebsd-386), const TCP_NOPUSH ideal-int
+pkg syscall (freebsd-386), const TIOCCBRK ideal-int
+pkg syscall (freebsd-386), const TIOCCDTR ideal-int
+pkg syscall (freebsd-386), const TIOCCONS ideal-int
+pkg syscall (freebsd-386), const TIOCDRAIN ideal-int
+pkg syscall (freebsd-386), const TIOCEXCL ideal-int
+pkg syscall (freebsd-386), const TIOCEXT ideal-int
+pkg syscall (freebsd-386), const TIOCFLUSH ideal-int
+pkg syscall (freebsd-386), const TIOCGDRAINWAIT ideal-int
+pkg syscall (freebsd-386), const TIOCGETA ideal-int
+pkg syscall (freebsd-386), const TIOCGETD ideal-int
+pkg syscall (freebsd-386), const TIOCGPGRP ideal-int
+pkg syscall (freebsd-386), const TIOCGPTN ideal-int
+pkg syscall (freebsd-386), const TIOCGSID ideal-int
+pkg syscall (freebsd-386), const TIOCGWINSZ ideal-int
+pkg syscall (freebsd-386), const TIOCMBIC ideal-int
+pkg syscall (freebsd-386), const TIOCMBIS ideal-int
+pkg syscall (freebsd-386), const TIOCMGDTRWAIT ideal-int
+pkg syscall (freebsd-386), const TIOCMGET ideal-int
+pkg syscall (freebsd-386), const TIOCMSDTRWAIT ideal-int
+pkg syscall (freebsd-386), const TIOCMSET ideal-int
+pkg syscall (freebsd-386), const TIOCM_CAR ideal-int
+pkg syscall (freebsd-386), const TIOCM_CD ideal-int
+pkg syscall (freebsd-386), const TIOCM_CTS ideal-int
+pkg syscall (freebsd-386), const TIOCM_DCD ideal-int
+pkg syscall (freebsd-386), const TIOCM_DSR ideal-int
+pkg syscall (freebsd-386), const TIOCM_DTR ideal-int
+pkg syscall (freebsd-386), const TIOCM_LE ideal-int
+pkg syscall (freebsd-386), const TIOCM_RI ideal-int
+pkg syscall (freebsd-386), const TIOCM_RNG ideal-int
+pkg syscall (freebsd-386), const TIOCM_RTS ideal-int
+pkg syscall (freebsd-386), const TIOCM_SR ideal-int
+pkg syscall (freebsd-386), const TIOCM_ST ideal-int
+pkg syscall (freebsd-386), const TIOCNOTTY ideal-int
+pkg syscall (freebsd-386), const TIOCNXCL ideal-int
+pkg syscall (freebsd-386), const TIOCOUTQ ideal-int
+pkg syscall (freebsd-386), const TIOCPKT ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_DATA ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_DOSTOP ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_FLUSHREAD ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_FLUSHWRITE ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_IOCTL ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_NOSTOP ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_START ideal-int
+pkg syscall (freebsd-386), const TIOCPKT_STOP ideal-int
+pkg syscall (freebsd-386), const TIOCPTMASTER ideal-int
+pkg syscall (freebsd-386), const TIOCSBRK ideal-int
+pkg syscall (freebsd-386), const TIOCSCTTY ideal-int
+pkg syscall (freebsd-386), const TIOCSDRAINWAIT ideal-int
+pkg syscall (freebsd-386), const TIOCSDTR ideal-int
+pkg syscall (freebsd-386), const TIOCSETA ideal-int
+pkg syscall (freebsd-386), const TIOCSETAF ideal-int
+pkg syscall (freebsd-386), const TIOCSETAW ideal-int
+pkg syscall (freebsd-386), const TIOCSETD ideal-int
+pkg syscall (freebsd-386), const TIOCSIG ideal-int
+pkg syscall (freebsd-386), const TIOCSPGRP ideal-int
+pkg syscall (freebsd-386), const TIOCSTART ideal-int
+pkg syscall (freebsd-386), const TIOCSTAT ideal-int
+pkg syscall (freebsd-386), const TIOCSTI ideal-int
+pkg syscall (freebsd-386), const TIOCSTOP ideal-int
+pkg syscall (freebsd-386), const TIOCSWINSZ ideal-int
+pkg syscall (freebsd-386), const TIOCTIMESTAMP ideal-int
+pkg syscall (freebsd-386), const TIOCUCNTL ideal-int
+pkg syscall (freebsd-386), const WCONTINUED ideal-int
+pkg syscall (freebsd-386), const WCOREFLAG ideal-int
+pkg syscall (freebsd-386), const WLINUXCLONE ideal-int
+pkg syscall (freebsd-386), const WNOHANG ideal-int
+pkg syscall (freebsd-386), const WNOWAIT ideal-int
+pkg syscall (freebsd-386), const WSTOPPED ideal-int
+pkg syscall (freebsd-386), const WUNTRACED ideal-int
+pkg syscall (freebsd-386), func Accept(int) (int, Sockaddr, error)
+pkg syscall (freebsd-386), func Access(string, uint32) error
+pkg syscall (freebsd-386), func Adjtime(*Timeval, *Timeval) error
+pkg syscall (freebsd-386), func Bind(int, Sockaddr) error
+pkg syscall (freebsd-386), func BpfBuflen(int) (int, error)
+pkg syscall (freebsd-386), func BpfDatalink(int) (int, error)
+pkg syscall (freebsd-386), func BpfHeadercmpl(int) (int, error)
+pkg syscall (freebsd-386), func BpfInterface(int, string) (string, error)
+pkg syscall (freebsd-386), func BpfJump(int) *BpfInsn
+pkg syscall (freebsd-386), func BpfStats(int) (*BpfStat, error)
+pkg syscall (freebsd-386), func BpfStmt(int) *BpfInsn
+pkg syscall (freebsd-386), func BpfTimeout(int) (*Timeval, error)
+pkg syscall (freebsd-386), func CheckBpfVersion(int) error
+pkg syscall (freebsd-386), func Chflags(string, int) error
+pkg syscall (freebsd-386), func Chroot(string) error
+pkg syscall (freebsd-386), func Close(int) error
+pkg syscall (freebsd-386), func CloseOnExec(int)
+pkg syscall (freebsd-386), func CmsgLen(int) int
+pkg syscall (freebsd-386), func CmsgSpace(int) int
+pkg syscall (freebsd-386), func Connect(int, Sockaddr) error
+pkg syscall (freebsd-386), func Dup(int) (int, error)
+pkg syscall (freebsd-386), func Dup2(int, int) error
+pkg syscall (freebsd-386), func Fchdir(int) error
+pkg syscall (freebsd-386), func Fchflags(string, int) error
+pkg syscall (freebsd-386), func Fchmod(int, uint32) error
+pkg syscall (freebsd-386), func Fchown(int, int, int) error
+pkg syscall (freebsd-386), func Flock(int, int) error
+pkg syscall (freebsd-386), func FlushBpf(int) error
+pkg syscall (freebsd-386), func ForkExec(string, []string, *ProcAttr) (int, error)
+pkg syscall (freebsd-386), func Fpathconf(int, int) (int, error)
+pkg syscall (freebsd-386), func Fstat(int, *Stat_t) error
+pkg syscall (freebsd-386), func Fstatfs(int, *Statfs_t) error
+pkg syscall (freebsd-386), func Fsync(int) error
+pkg syscall (freebsd-386), func Ftruncate(int, int64) error
+pkg syscall (freebsd-386), func Futimes(int, []Timeval) error
+pkg syscall (freebsd-386), func Getdirentries(int, []byte, *uintptr) (int, error)
+pkg syscall (freebsd-386), func Getdtablesize() int
+pkg syscall (freebsd-386), func Getfsstat([]Statfs_t, int) (int, error)
+pkg syscall (freebsd-386), func Getpeername(int) (Sockaddr, error)
+pkg syscall (freebsd-386), func Getpgid(int) (int, error)
+pkg syscall (freebsd-386), func Getpgrp() int
+pkg syscall (freebsd-386), func Getpriority(int, int) (int, error)
+pkg syscall (freebsd-386), func Getrlimit(int, *Rlimit) error
+pkg syscall (freebsd-386), func Getrusage(int, *Rusage) error
+pkg syscall (freebsd-386), func Getsid(int) (int, error)
+pkg syscall (freebsd-386), func Getsockname(int) (Sockaddr, error)
+pkg syscall (freebsd-386), func GetsockoptByte(int) (byte, error)
+pkg syscall (freebsd-386), func GetsockoptIPMreq(int) (*IPMreq, error)
+pkg syscall (freebsd-386), func GetsockoptIPMreqn(int) (*IPMreqn, error)
+pkg syscall (freebsd-386), func GetsockoptIPv6Mreq(int) (*IPv6Mreq, error)
+pkg syscall (freebsd-386), func GetsockoptInet4Addr(int) ([4]byte, error)
+pkg syscall (freebsd-386), func GetsockoptInt(int) (int, error)
+pkg syscall (freebsd-386), func Issetugid() bool
+pkg syscall (freebsd-386), func Kevent(int, []Kevent_t, *Timespec) (int, error)
+pkg syscall (freebsd-386), func Kill(int, Signal) error
+pkg syscall (freebsd-386), func Kqueue() (int, error)
+pkg syscall (freebsd-386), func Link(string, string) error
+pkg syscall (freebsd-386), func Listen(int, int) error
+pkg syscall (freebsd-386), func Lstat(string, *Stat_t) error
+pkg syscall (freebsd-386), func Mkfifo(string, uint32) error
+pkg syscall (freebsd-386), func Mknod(string, uint32, int) error
+pkg syscall (freebsd-386), func Mmap(int, int64, int, int, int) ([]byte, error)
+pkg syscall (freebsd-386), func Munmap([]byte) error
+pkg syscall (freebsd-386), func Nanosleep(*Timespec, *Timespec) error
+pkg syscall (freebsd-386), func NsecToTimespec(int64) Timespec
+pkg syscall (freebsd-386), func Open(string, int, uint32) (int, error)
+pkg syscall (freebsd-386), func ParseDirent([]byte, int, []string) (int, int, []string)
+pkg syscall (freebsd-386), func ParseRoutingMessage([]byte) ([]RoutingMessage, error)
+pkg syscall (freebsd-386), func ParseRoutingSockaddr(RoutingMessage) ([]Sockaddr, error)
+pkg syscall (freebsd-386), func ParseSocketControlMessage([]byte) ([]SocketControlMessage, error)
+pkg syscall (freebsd-386), func ParseUnixRights(*SocketControlMessage) ([]int, error)
+pkg syscall (freebsd-386), func Pathconf(string, int) (int, error)
+pkg syscall (freebsd-386), func Pipe([]int) error
+pkg syscall (freebsd-386), func Pread(int, []byte, int64) (int, error)
+pkg syscall (freebsd-386), func Pwrite(int, []byte, int64) (int, error)
+pkg syscall (freebsd-386), func RawSyscall(uintptr) (uintptr, Errno)
+pkg syscall (freebsd-386), func RawSyscall6(uintptr) (uintptr, Errno)
+pkg syscall (freebsd-386), func Read(int, []byte) (int, error)
+pkg syscall (freebsd-386), func ReadDirent(int, []byte) (int, error)
+pkg syscall (freebsd-386), func Recvfrom(int, []byte, int) (int, Sockaddr, error)
+pkg syscall (freebsd-386), func Recvmsg(int, []byte, int) (int, int, Sockaddr, error)
+pkg syscall (freebsd-386), func Rename(string, string) error
+pkg syscall (freebsd-386), func Revoke(string) error
+pkg syscall (freebsd-386), func RouteRIB(int) ([]byte, error)
+pkg syscall (freebsd-386), func Seek(int, int64, int) (int64, error)
+pkg syscall (freebsd-386), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) error
+pkg syscall (freebsd-386), func Sendfile(int, int, *int64, int) (int, error)
+pkg syscall (freebsd-386), func Sendmsg(int, []byte, Sockaddr, int) error
+pkg syscall (freebsd-386), func Sendto(int, []byte, int, Sockaddr) error
+pkg syscall (freebsd-386), func SetBpf(int, []BpfInsn) error
+pkg syscall (freebsd-386), func SetBpfBuflen(int) (int, error)
+pkg syscall (freebsd-386), func SetBpfDatalink(int) (int, error)
+pkg syscall (freebsd-386), func SetBpfHeadercmpl(int) error
+pkg syscall (freebsd-386), func SetBpfImmediate(int) error
+pkg syscall (freebsd-386), func SetBpfInterface(int, string) error
+pkg syscall (freebsd-386), func SetBpfPromisc(int) error
+pkg syscall (freebsd-386), func SetBpfTimeout(int, *Timeval) error
+pkg syscall (freebsd-386), func SetKevent(*Kevent_t, int)
+pkg syscall (freebsd-386), func SetNonblock(int, bool) error
+pkg syscall (freebsd-386), func Setegid(int) error
+pkg syscall (freebsd-386), func Seteuid(int) error
+pkg syscall (freebsd-386), func Setgid(int) error
+pkg syscall (freebsd-386), func Setgroups([]int) error
+pkg syscall (freebsd-386), func Setlogin(string) error
+pkg syscall (freebsd-386), func Setpgid(int, int) error
+pkg syscall (freebsd-386), func Setpriority(int, int, int) error
+pkg syscall (freebsd-386), func Setregid(int, int) error
+pkg syscall (freebsd-386), func Setreuid(int, int) error
+pkg syscall (freebsd-386), func Setrlimit(int, *Rlimit) error
+pkg syscall (freebsd-386), func Setsid() (int, error)
+pkg syscall (freebsd-386), func SetsockoptByte(int, byte) error
+pkg syscall (freebsd-386), func SetsockoptIPMreq(int, *IPMreq) error
+pkg syscall (freebsd-386), func SetsockoptIPMreqn(int, *IPMreqn) error
+pkg syscall (freebsd-386), func SetsockoptIPv6Mreq(int, *IPv6Mreq) error
+pkg syscall (freebsd-386), func SetsockoptInet4Addr(int, [4]byte) error
+pkg syscall (freebsd-386), func SetsockoptInt(int, int) error
+pkg syscall (freebsd-386), func SetsockoptLinger(int, *Linger) error
+pkg syscall (freebsd-386), func SetsockoptString(int, string) error
+pkg syscall (freebsd-386), func SetsockoptTimeval(int, *Timeval) error
+pkg syscall (freebsd-386), func Settimeofday(*Timeval) error
+pkg syscall (freebsd-386), func Setuid(int) error
+pkg syscall (freebsd-386), func Shutdown(int, int) error
+pkg syscall (freebsd-386), func Socket(int) (int, error)
+pkg syscall (freebsd-386), func Socketpair(int) ([2]int, error)
+pkg syscall (freebsd-386), func Stat(string, *Stat_t) error
+pkg syscall (freebsd-386), func Statfs(string, *Statfs_t) error
+pkg syscall (freebsd-386), func StringSlicePtr([]string) []*byte
+pkg syscall (freebsd-386), func Symlink(string, string) error
+pkg syscall (freebsd-386), func Sync() error
+pkg syscall (freebsd-386), func Syscall9(uintptr) (uintptr, Errno)
+pkg syscall (freebsd-386), func Sysctl(string) (string, error)
+pkg syscall (freebsd-386), func SysctlUint32(string) (uint32, error)
+pkg syscall (freebsd-386), func TimespecToNsec(Timespec) int64
+pkg syscall (freebsd-386), func TimevalToNsec(Timeval) int64
+pkg syscall (freebsd-386), func Truncate(string, int64) error
+pkg syscall (freebsd-386), func Umask(int) int
+pkg syscall (freebsd-386), func Undelete(string) error
+pkg syscall (freebsd-386), func UnixRights(...int) []byte
+pkg syscall (freebsd-386), func Unmount(string, int) error
+pkg syscall (freebsd-386), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
+pkg syscall (freebsd-386), func Write(int, []byte) (int, error)
+pkg syscall (freebsd-386), method (*Cmsghdr) SetLen(int)
+pkg syscall (freebsd-386), method (*Iovec) SetLen(int)
+pkg syscall (freebsd-386), method (*Msghdr) SetControllen(int)
+pkg syscall (freebsd-386), type BpfHdr struct
+pkg syscall (freebsd-386), type BpfHdr struct, Caplen uint32
+pkg syscall (freebsd-386), type BpfHdr struct, Datalen uint32
+pkg syscall (freebsd-386), type BpfHdr struct, Hdrlen uint16
+pkg syscall (freebsd-386), type BpfHdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-386), type BpfHdr struct, Tstamp Timeval
+pkg syscall (freebsd-386), type BpfInsn struct
+pkg syscall (freebsd-386), type BpfInsn struct, Code uint16
+pkg syscall (freebsd-386), type BpfInsn struct, Jf uint8
+pkg syscall (freebsd-386), type BpfInsn struct, Jt uint8
+pkg syscall (freebsd-386), type BpfInsn struct, K uint32
+pkg syscall (freebsd-386), type BpfProgram struct
+pkg syscall (freebsd-386), type BpfProgram struct, Insns *BpfInsn
+pkg syscall (freebsd-386), type BpfProgram struct, Len uint32
+pkg syscall (freebsd-386), type BpfStat struct
+pkg syscall (freebsd-386), type BpfStat struct, Drop uint32
+pkg syscall (freebsd-386), type BpfStat struct, Recv uint32
+pkg syscall (freebsd-386), type BpfVersion struct
+pkg syscall (freebsd-386), type BpfVersion struct, Major uint16
+pkg syscall (freebsd-386), type BpfVersion struct, Minor uint16
+pkg syscall (freebsd-386), type BpfZbuf struct
+pkg syscall (freebsd-386), type BpfZbuf struct, Bufa *byte
+pkg syscall (freebsd-386), type BpfZbuf struct, Bufb *byte
+pkg syscall (freebsd-386), type BpfZbuf struct, Buflen uint32
+pkg syscall (freebsd-386), type BpfZbufHeader struct
+pkg syscall (freebsd-386), type BpfZbufHeader struct, Kernel_gen uint32
+pkg syscall (freebsd-386), type BpfZbufHeader struct, Kernel_len uint32
+pkg syscall (freebsd-386), type BpfZbufHeader struct, User_gen uint32
+pkg syscall (freebsd-386), type BpfZbufHeader struct, X_bzh_pad [5]uint32
+pkg syscall (freebsd-386), type Cmsghdr struct
+pkg syscall (freebsd-386), type Cmsghdr struct, Len uint32
+pkg syscall (freebsd-386), type Cmsghdr struct, Level int32
+pkg syscall (freebsd-386), type Cmsghdr struct, Type int32
+pkg syscall (freebsd-386), type Credential struct
+pkg syscall (freebsd-386), type Credential struct, Gid uint32
+pkg syscall (freebsd-386), type Credential struct, Groups []uint32
+pkg syscall (freebsd-386), type Credential struct, Uid uint32
+pkg syscall (freebsd-386), type Dirent struct
+pkg syscall (freebsd-386), type Dirent struct, Fileno uint32
+pkg syscall (freebsd-386), type Dirent struct, Name [256]int8
+pkg syscall (freebsd-386), type Dirent struct, Namlen uint8
+pkg syscall (freebsd-386), type Dirent struct, Reclen uint16
+pkg syscall (freebsd-386), type Dirent struct, Type uint8
+pkg syscall (freebsd-386), type FdSet struct
+pkg syscall (freebsd-386), type FdSet struct, X__fds_bits [32]uint32
+pkg syscall (freebsd-386), type Flock_t struct
+pkg syscall (freebsd-386), type Flock_t struct, Len int64
+pkg syscall (freebsd-386), type Flock_t struct, Pid int32
+pkg syscall (freebsd-386), type Flock_t struct, Start int64
+pkg syscall (freebsd-386), type Flock_t struct, Sysid int32
+pkg syscall (freebsd-386), type Flock_t struct, Type int16
+pkg syscall (freebsd-386), type Flock_t struct, Whence int16
+pkg syscall (freebsd-386), type Fsid struct
+pkg syscall (freebsd-386), type Fsid struct, Val [2]int32
+pkg syscall (freebsd-386), type IPMreqn struct
+pkg syscall (freebsd-386), type IPMreqn struct, Address [4]byte
+pkg syscall (freebsd-386), type IPMreqn struct, Ifindex int32
+pkg syscall (freebsd-386), type IPMreqn struct, Multiaddr [4]byte
+pkg syscall (freebsd-386), type IfData struct
+pkg syscall (freebsd-386), type IfData struct, Addrlen uint8
+pkg syscall (freebsd-386), type IfData struct, Baudrate uint32
+pkg syscall (freebsd-386), type IfData struct, Collisions uint32
+pkg syscall (freebsd-386), type IfData struct, Datalen uint8
+pkg syscall (freebsd-386), type IfData struct, Epoch int32
+pkg syscall (freebsd-386), type IfData struct, Hdrlen uint8
+pkg syscall (freebsd-386), type IfData struct, Hwassist uint32
+pkg syscall (freebsd-386), type IfData struct, Ibytes uint32
+pkg syscall (freebsd-386), type IfData struct, Ierrors uint32
+pkg syscall (freebsd-386), type IfData struct, Imcasts uint32
+pkg syscall (freebsd-386), type IfData struct, Ipackets uint32
+pkg syscall (freebsd-386), type IfData struct, Iqdrops uint32
+pkg syscall (freebsd-386), type IfData struct, Lastchange Timeval
+pkg syscall (freebsd-386), type IfData struct, Link_state uint8
+pkg syscall (freebsd-386), type IfData struct, Metric uint32
+pkg syscall (freebsd-386), type IfData struct, Mtu uint32
+pkg syscall (freebsd-386), type IfData struct, Noproto uint32
+pkg syscall (freebsd-386), type IfData struct, Obytes uint32
+pkg syscall (freebsd-386), type IfData struct, Oerrors uint32
+pkg syscall (freebsd-386), type IfData struct, Omcasts uint32
+pkg syscall (freebsd-386), type IfData struct, Opackets uint32
+pkg syscall (freebsd-386), type IfData struct, Physical uint8
+pkg syscall (freebsd-386), type IfData struct, Spare_char1 uint8
+pkg syscall (freebsd-386), type IfData struct, Spare_char2 uint8
+pkg syscall (freebsd-386), type IfData struct, Type uint8
+pkg syscall (freebsd-386), type IfMsghdr struct
+pkg syscall (freebsd-386), type IfMsghdr struct, Addrs int32
+pkg syscall (freebsd-386), type IfMsghdr struct, Data IfData
+pkg syscall (freebsd-386), type IfMsghdr struct, Flags int32
+pkg syscall (freebsd-386), type IfMsghdr struct, Index uint16
+pkg syscall (freebsd-386), type IfMsghdr struct, Msglen uint16
+pkg syscall (freebsd-386), type IfMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-386), type IfMsghdr struct, Type uint8
+pkg syscall (freebsd-386), type IfMsghdr struct, Version uint8
+pkg syscall (freebsd-386), type IfaMsghdr struct
+pkg syscall (freebsd-386), type IfaMsghdr struct, Addrs int32
+pkg syscall (freebsd-386), type IfaMsghdr struct, Flags int32
+pkg syscall (freebsd-386), type IfaMsghdr struct, Index uint16
+pkg syscall (freebsd-386), type IfaMsghdr struct, Metric int32
+pkg syscall (freebsd-386), type IfaMsghdr struct, Msglen uint16
+pkg syscall (freebsd-386), type IfaMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-386), type IfaMsghdr struct, Type uint8
+pkg syscall (freebsd-386), type IfaMsghdr struct, Version uint8
+pkg syscall (freebsd-386), type IfmaMsghdr struct
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Addrs int32
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Flags int32
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Index uint16
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Msglen uint16
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Type uint8
+pkg syscall (freebsd-386), type IfmaMsghdr struct, Version uint8
+pkg syscall (freebsd-386), type Inet6Pktinfo struct
+pkg syscall (freebsd-386), type Inet6Pktinfo struct, Addr [16]byte
+pkg syscall (freebsd-386), type Inet6Pktinfo struct, Ifindex uint32
+pkg syscall (freebsd-386), type InterfaceAddrMessage struct
+pkg syscall (freebsd-386), type InterfaceAddrMessage struct, Data []byte
+pkg syscall (freebsd-386), type InterfaceAddrMessage struct, Header IfaMsghdr
+pkg syscall (freebsd-386), type InterfaceMessage struct
+pkg syscall (freebsd-386), type InterfaceMessage struct, Data []byte
+pkg syscall (freebsd-386), type InterfaceMessage struct, Header IfMsghdr
+pkg syscall (freebsd-386), type InterfaceMulticastAddrMessage struct
+pkg syscall (freebsd-386), type InterfaceMulticastAddrMessage struct, Data []byte
+pkg syscall (freebsd-386), type InterfaceMulticastAddrMessage struct, Header IfmaMsghdr
+pkg syscall (freebsd-386), type Iovec struct
+pkg syscall (freebsd-386), type Iovec struct, Base *byte
+pkg syscall (freebsd-386), type Iovec struct, Len uint32
+pkg syscall (freebsd-386), type Kevent_t struct
+pkg syscall (freebsd-386), type Kevent_t struct, Data int32
+pkg syscall (freebsd-386), type Kevent_t struct, Fflags uint32
+pkg syscall (freebsd-386), type Kevent_t struct, Filter int16
+pkg syscall (freebsd-386), type Kevent_t struct, Flags uint16
+pkg syscall (freebsd-386), type Kevent_t struct, Ident uint32
+pkg syscall (freebsd-386), type Kevent_t struct, Udata *byte
+pkg syscall (freebsd-386), type Msghdr struct
+pkg syscall (freebsd-386), type Msghdr struct, Control *byte
+pkg syscall (freebsd-386), type Msghdr struct, Controllen uint32
+pkg syscall (freebsd-386), type Msghdr struct, Flags int32
+pkg syscall (freebsd-386), type Msghdr struct, Iov *Iovec
+pkg syscall (freebsd-386), type Msghdr struct, Iovlen int32
+pkg syscall (freebsd-386), type Msghdr struct, Name *byte
+pkg syscall (freebsd-386), type Msghdr struct, Namelen uint32
+pkg syscall (freebsd-386), type RawSockaddr struct, Data [14]int8
+pkg syscall (freebsd-386), type RawSockaddr struct, Family uint8
+pkg syscall (freebsd-386), type RawSockaddr struct, Len uint8
+pkg syscall (freebsd-386), type RawSockaddrAny struct, Pad [92]int8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Alen uint8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Data [46]int8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Family uint8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Index uint16
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Len uint8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Nlen uint8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Slen uint8
+pkg syscall (freebsd-386), type RawSockaddrDatalink struct, Type uint8
+pkg syscall (freebsd-386), type RawSockaddrInet4 struct, Family uint8
+pkg syscall (freebsd-386), type RawSockaddrInet4 struct, Len uint8
+pkg syscall (freebsd-386), type RawSockaddrInet4 struct, Zero [8]int8
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct, Addr [16]byte
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct, Family uint8
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct, Flowinfo uint32
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct, Len uint8
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct, Port uint16
+pkg syscall (freebsd-386), type RawSockaddrInet6 struct, Scope_id uint32
+pkg syscall (freebsd-386), type RawSockaddrUnix struct
+pkg syscall (freebsd-386), type RawSockaddrUnix struct, Family uint8
+pkg syscall (freebsd-386), type RawSockaddrUnix struct, Len uint8
+pkg syscall (freebsd-386), type RawSockaddrUnix struct, Path [104]int8
+pkg syscall (freebsd-386), type Rlimit struct
+pkg syscall (freebsd-386), type Rlimit struct, Cur int64
+pkg syscall (freebsd-386), type Rlimit struct, Max int64
+pkg syscall (freebsd-386), type RouteMessage struct
+pkg syscall (freebsd-386), type RouteMessage struct, Data []byte
+pkg syscall (freebsd-386), type RouteMessage struct, Header RtMsghdr
+pkg syscall (freebsd-386), type RoutingMessage interface {}
+pkg syscall (freebsd-386), type RtMetrics struct
+pkg syscall (freebsd-386), type RtMetrics struct, Expire uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Filler [3]uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Hopcount uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Locks uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Mtu uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Pksent uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Recvpipe uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Rtt uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Rttvar uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Sendpipe uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Ssthresh uint32
+pkg syscall (freebsd-386), type RtMetrics struct, Weight uint32
+pkg syscall (freebsd-386), type RtMsghdr struct
+pkg syscall (freebsd-386), type RtMsghdr struct, Addrs int32
+pkg syscall (freebsd-386), type RtMsghdr struct, Errno int32
+pkg syscall (freebsd-386), type RtMsghdr struct, Flags int32
+pkg syscall (freebsd-386), type RtMsghdr struct, Fmask int32
+pkg syscall (freebsd-386), type RtMsghdr struct, Index uint16
+pkg syscall (freebsd-386), type RtMsghdr struct, Inits uint32
+pkg syscall (freebsd-386), type RtMsghdr struct, Msglen uint16
+pkg syscall (freebsd-386), type RtMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-386), type RtMsghdr struct, Pid int32
+pkg syscall (freebsd-386), type RtMsghdr struct, Rmx RtMetrics
+pkg syscall (freebsd-386), type RtMsghdr struct, Seq int32
+pkg syscall (freebsd-386), type RtMsghdr struct, Type uint8
+pkg syscall (freebsd-386), type RtMsghdr struct, Version uint8
+pkg syscall (freebsd-386), type Rusage struct, Idrss int32
+pkg syscall (freebsd-386), type Rusage struct, Inblock int32
+pkg syscall (freebsd-386), type Rusage struct, Isrss int32
+pkg syscall (freebsd-386), type Rusage struct, Ixrss int32
+pkg syscall (freebsd-386), type Rusage struct, Majflt int32
+pkg syscall (freebsd-386), type Rusage struct, Maxrss int32
+pkg syscall (freebsd-386), type Rusage struct, Minflt int32
+pkg syscall (freebsd-386), type Rusage struct, Msgrcv int32
+pkg syscall (freebsd-386), type Rusage struct, Msgsnd int32
+pkg syscall (freebsd-386), type Rusage struct, Nivcsw int32
+pkg syscall (freebsd-386), type Rusage struct, Nsignals int32
+pkg syscall (freebsd-386), type Rusage struct, Nswap int32
+pkg syscall (freebsd-386), type Rusage struct, Nvcsw int32
+pkg syscall (freebsd-386), type Rusage struct, Oublock int32
+pkg syscall (freebsd-386), type Rusage struct, Stime Timeval
+pkg syscall (freebsd-386), type Rusage struct, Utime Timeval
+pkg syscall (freebsd-386), type SockaddrDatalink struct
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Alen uint8
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Data [46]int8
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Family uint8
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Index uint16
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Len uint8
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Nlen uint8
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Slen uint8
+pkg syscall (freebsd-386), type SockaddrDatalink struct, Type uint8
+pkg syscall (freebsd-386), type SocketControlMessage struct
+pkg syscall (freebsd-386), type SocketControlMessage struct, Data []byte
+pkg syscall (freebsd-386), type SocketControlMessage struct, Header Cmsghdr
+pkg syscall (freebsd-386), type Stat_t struct
+pkg syscall (freebsd-386), type Stat_t struct, Atimespec Timespec
+pkg syscall (freebsd-386), type Stat_t struct, Birthtimespec Timespec
+pkg syscall (freebsd-386), type Stat_t struct, Blksize uint32
+pkg syscall (freebsd-386), type Stat_t struct, Blocks int64
+pkg syscall (freebsd-386), type Stat_t struct, Ctimespec Timespec
+pkg syscall (freebsd-386), type Stat_t struct, Dev uint32
+pkg syscall (freebsd-386), type Stat_t struct, Flags uint32
+pkg syscall (freebsd-386), type Stat_t struct, Gen uint32
+pkg syscall (freebsd-386), type Stat_t struct, Gid uint32
+pkg syscall (freebsd-386), type Stat_t struct, Ino uint32
+pkg syscall (freebsd-386), type Stat_t struct, Lspare int32
+pkg syscall (freebsd-386), type Stat_t struct, Mode uint16
+pkg syscall (freebsd-386), type Stat_t struct, Mtimespec Timespec
+pkg syscall (freebsd-386), type Stat_t struct, Nlink uint16
+pkg syscall (freebsd-386), type Stat_t struct, Pad_cgo_0 [8]byte
+pkg syscall (freebsd-386), type Stat_t struct, Rdev uint32
+pkg syscall (freebsd-386), type Stat_t struct, Size int64
+pkg syscall (freebsd-386), type Stat_t struct, Uid uint32
+pkg syscall (freebsd-386), type Statfs_t struct
+pkg syscall (freebsd-386), type Statfs_t struct, Asyncreads uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Asyncwrites uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Bavail int64
+pkg syscall (freebsd-386), type Statfs_t struct, Bfree uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Blocks uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Bsize uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Charspare [80]int8
+pkg syscall (freebsd-386), type Statfs_t struct, Ffree int64
+pkg syscall (freebsd-386), type Statfs_t struct, Files uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Flags uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Fsid Fsid
+pkg syscall (freebsd-386), type Statfs_t struct, Fstypename [16]int8
+pkg syscall (freebsd-386), type Statfs_t struct, Iosize uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Mntfromname [88]int8
+pkg syscall (freebsd-386), type Statfs_t struct, Mntonname [88]int8
+pkg syscall (freebsd-386), type Statfs_t struct, Namemax uint32
+pkg syscall (freebsd-386), type Statfs_t struct, Owner uint32
+pkg syscall (freebsd-386), type Statfs_t struct, Spare [10]uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Syncreads uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Syncwrites uint64
+pkg syscall (freebsd-386), type Statfs_t struct, Type uint32
+pkg syscall (freebsd-386), type Statfs_t struct, Version uint32
+pkg syscall (freebsd-386), type SysProcAttr struct, Chroot string
+pkg syscall (freebsd-386), type SysProcAttr struct, Credential *Credential
+pkg syscall (freebsd-386), type SysProcAttr struct, Noctty bool
+pkg syscall (freebsd-386), type SysProcAttr struct, Ptrace bool
+pkg syscall (freebsd-386), type SysProcAttr struct, Setctty bool
+pkg syscall (freebsd-386), type SysProcAttr struct, Setpgid bool
+pkg syscall (freebsd-386), type SysProcAttr struct, Setsid bool
+pkg syscall (freebsd-386), type Timespec struct, Nsec int32
+pkg syscall (freebsd-386), type Timespec struct, Sec int32
+pkg syscall (freebsd-386), type Timeval struct, Sec int32
+pkg syscall (freebsd-386), type Timeval struct, Usec int32
+pkg syscall (freebsd-386), type WaitStatus uint32
+pkg syscall (freebsd-386), var Stderr int
+pkg syscall (freebsd-386), var Stdin int
+pkg syscall (freebsd-386), var Stdout int
+pkg syscall (freebsd-amd64), const AF_APPLETALK ideal-int
+pkg syscall (freebsd-amd64), const AF_ARP ideal-int
+pkg syscall (freebsd-amd64), const AF_ATM ideal-int
+pkg syscall (freebsd-amd64), const AF_BLUETOOTH ideal-int
+pkg syscall (freebsd-amd64), const AF_CCITT ideal-int
+pkg syscall (freebsd-amd64), const AF_CHAOS ideal-int
+pkg syscall (freebsd-amd64), const AF_CNT ideal-int
+pkg syscall (freebsd-amd64), const AF_COIP ideal-int
+pkg syscall (freebsd-amd64), const AF_DATAKIT ideal-int
+pkg syscall (freebsd-amd64), const AF_DECnet ideal-int
+pkg syscall (freebsd-amd64), const AF_DLI ideal-int
+pkg syscall (freebsd-amd64), const AF_E164 ideal-int
+pkg syscall (freebsd-amd64), const AF_ECMA ideal-int
+pkg syscall (freebsd-amd64), const AF_HYLINK ideal-int
+pkg syscall (freebsd-amd64), const AF_IEEE80211 ideal-int
+pkg syscall (freebsd-amd64), const AF_IMPLINK ideal-int
+pkg syscall (freebsd-amd64), const AF_IPX ideal-int
+pkg syscall (freebsd-amd64), const AF_ISDN ideal-int
+pkg syscall (freebsd-amd64), const AF_ISO ideal-int
+pkg syscall (freebsd-amd64), const AF_LAT ideal-int
+pkg syscall (freebsd-amd64), const AF_LINK ideal-int
+pkg syscall (freebsd-amd64), const AF_LOCAL ideal-int
+pkg syscall (freebsd-amd64), const AF_MAX ideal-int
+pkg syscall (freebsd-amd64), const AF_NATM ideal-int
+pkg syscall (freebsd-amd64), const AF_NETBIOS ideal-int
+pkg syscall (freebsd-amd64), const AF_NETGRAPH ideal-int
+pkg syscall (freebsd-amd64), const AF_OSI ideal-int
+pkg syscall (freebsd-amd64), const AF_PUP ideal-int
+pkg syscall (freebsd-amd64), const AF_ROUTE ideal-int
+pkg syscall (freebsd-amd64), const AF_SCLUSTER ideal-int
+pkg syscall (freebsd-amd64), const AF_SIP ideal-int
+pkg syscall (freebsd-amd64), const AF_SLOW ideal-int
+pkg syscall (freebsd-amd64), const AF_SNA ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR00 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR01 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR02 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR03 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR04 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR05 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR06 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR07 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR08 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR09 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR10 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR11 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR12 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR13 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR14 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR15 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR16 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR17 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR18 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR19 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR20 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR21 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR22 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR23 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR24 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR25 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR26 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR27 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR28 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR29 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR30 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR31 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR32 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR33 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR34 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR35 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR36 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR37 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR38 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR39 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR40 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR41 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR42 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR43 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR44 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR45 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR46 ideal-int
+pkg syscall (freebsd-amd64), const AF_VENDOR47 ideal-int
+pkg syscall (freebsd-amd64), const BIOCFEEDBACK ideal-int
+pkg syscall (freebsd-amd64), const BIOCFLUSH ideal-int
+pkg syscall (freebsd-amd64), const BIOCGBLEN ideal-int
+pkg syscall (freebsd-amd64), const BIOCGDIRECTION ideal-int
+pkg syscall (freebsd-amd64), const BIOCGDLT ideal-int
+pkg syscall (freebsd-amd64), const BIOCGDLTLIST ideal-int
+pkg syscall (freebsd-amd64), const BIOCGETBUFMODE ideal-int
+pkg syscall (freebsd-amd64), const BIOCGETIF ideal-int
+pkg syscall (freebsd-amd64), const BIOCGETZMAX ideal-int
+pkg syscall (freebsd-amd64), const BIOCGHDRCMPLT ideal-int
+pkg syscall (freebsd-amd64), const BIOCGRSIG ideal-int
+pkg syscall (freebsd-amd64), const BIOCGRTIMEOUT ideal-int
+pkg syscall (freebsd-amd64), const BIOCGSEESENT ideal-int
+pkg syscall (freebsd-amd64), const BIOCGSTATS ideal-int
+pkg syscall (freebsd-amd64), const BIOCIMMEDIATE ideal-int
+pkg syscall (freebsd-amd64), const BIOCLOCK ideal-int
+pkg syscall (freebsd-amd64), const BIOCPROMISC ideal-int
+pkg syscall (freebsd-amd64), const BIOCROTZBUF ideal-int
+pkg syscall (freebsd-amd64), const BIOCSBLEN ideal-int
+pkg syscall (freebsd-amd64), const BIOCSDIRECTION ideal-int
+pkg syscall (freebsd-amd64), const BIOCSDLT ideal-int
+pkg syscall (freebsd-amd64), const BIOCSETBUFMODE ideal-int
+pkg syscall (freebsd-amd64), const BIOCSETF ideal-int
+pkg syscall (freebsd-amd64), const BIOCSETFNR ideal-int
+pkg syscall (freebsd-amd64), const BIOCSETIF ideal-int
+pkg syscall (freebsd-amd64), const BIOCSETWF ideal-int
+pkg syscall (freebsd-amd64), const BIOCSETZBUF ideal-int
+pkg syscall (freebsd-amd64), const BIOCSHDRCMPLT ideal-int
+pkg syscall (freebsd-amd64), const BIOCSRSIG ideal-int
+pkg syscall (freebsd-amd64), const BIOCSRTIMEOUT ideal-int
+pkg syscall (freebsd-amd64), const BIOCSSEESENT ideal-int
+pkg syscall (freebsd-amd64), const BIOCVERSION ideal-int
+pkg syscall (freebsd-amd64), const BPF_A ideal-int
+pkg syscall (freebsd-amd64), const BPF_ABS ideal-int
+pkg syscall (freebsd-amd64), const BPF_ADD ideal-int
+pkg syscall (freebsd-amd64), const BPF_ALIGNMENT ideal-int
+pkg syscall (freebsd-amd64), const BPF_ALU ideal-int
+pkg syscall (freebsd-amd64), const BPF_AND ideal-int
+pkg syscall (freebsd-amd64), const BPF_B ideal-int
+pkg syscall (freebsd-amd64), const BPF_BUFMODE_BUFFER ideal-int
+pkg syscall (freebsd-amd64), const BPF_BUFMODE_ZBUF ideal-int
+pkg syscall (freebsd-amd64), const BPF_DIV ideal-int
+pkg syscall (freebsd-amd64), const BPF_H ideal-int
+pkg syscall (freebsd-amd64), const BPF_IMM ideal-int
+pkg syscall (freebsd-amd64), const BPF_IND ideal-int
+pkg syscall (freebsd-amd64), const BPF_JA ideal-int
+pkg syscall (freebsd-amd64), const BPF_JEQ ideal-int
+pkg syscall (freebsd-amd64), const BPF_JGE ideal-int
+pkg syscall (freebsd-amd64), const BPF_JGT ideal-int
+pkg syscall (freebsd-amd64), const BPF_JMP ideal-int
+pkg syscall (freebsd-amd64), const BPF_JSET ideal-int
+pkg syscall (freebsd-amd64), const BPF_K ideal-int
+pkg syscall (freebsd-amd64), const BPF_LD ideal-int
+pkg syscall (freebsd-amd64), const BPF_LDX ideal-int
+pkg syscall (freebsd-amd64), const BPF_LEN ideal-int
+pkg syscall (freebsd-amd64), const BPF_LSH ideal-int
+pkg syscall (freebsd-amd64), const BPF_MAJOR_VERSION ideal-int
+pkg syscall (freebsd-amd64), const BPF_MAXBUFSIZE ideal-int
+pkg syscall (freebsd-amd64), const BPF_MAXINSNS ideal-int
+pkg syscall (freebsd-amd64), const BPF_MEM ideal-int
+pkg syscall (freebsd-amd64), const BPF_MEMWORDS ideal-int
+pkg syscall (freebsd-amd64), const BPF_MINBUFSIZE ideal-int
+pkg syscall (freebsd-amd64), const BPF_MINOR_VERSION ideal-int
+pkg syscall (freebsd-amd64), const BPF_MISC ideal-int
+pkg syscall (freebsd-amd64), const BPF_MSH ideal-int
+pkg syscall (freebsd-amd64), const BPF_MUL ideal-int
+pkg syscall (freebsd-amd64), const BPF_NEG ideal-int
+pkg syscall (freebsd-amd64), const BPF_OR ideal-int
+pkg syscall (freebsd-amd64), const BPF_RELEASE ideal-int
+pkg syscall (freebsd-amd64), const BPF_RET ideal-int
+pkg syscall (freebsd-amd64), const BPF_RSH ideal-int
+pkg syscall (freebsd-amd64), const BPF_ST ideal-int
+pkg syscall (freebsd-amd64), const BPF_STX ideal-int
+pkg syscall (freebsd-amd64), const BPF_SUB ideal-int
+pkg syscall (freebsd-amd64), const BPF_TAX ideal-int
+pkg syscall (freebsd-amd64), const BPF_TXA ideal-int
+pkg syscall (freebsd-amd64), const BPF_W ideal-int
+pkg syscall (freebsd-amd64), const BPF_X ideal-int
+pkg syscall (freebsd-amd64), const CTL_MAXNAME ideal-int
+pkg syscall (freebsd-amd64), const CTL_NET ideal-int
+pkg syscall (freebsd-amd64), const DLT_A429 ideal-int
+pkg syscall (freebsd-amd64), const DLT_A653_ICM ideal-int
+pkg syscall (freebsd-amd64), const DLT_AIRONET_HEADER ideal-int
+pkg syscall (freebsd-amd64), const DLT_APPLE_IP_OVER_IEEE1394 ideal-int
+pkg syscall (freebsd-amd64), const DLT_ARCNET ideal-int
+pkg syscall (freebsd-amd64), const DLT_ARCNET_LINUX ideal-int
+pkg syscall (freebsd-amd64), const DLT_ATM_CLIP ideal-int
+pkg syscall (freebsd-amd64), const DLT_ATM_RFC1483 ideal-int
+pkg syscall (freebsd-amd64), const DLT_AURORA ideal-int
+pkg syscall (freebsd-amd64), const DLT_AX25 ideal-int
+pkg syscall (freebsd-amd64), const DLT_AX25_KISS ideal-int
+pkg syscall (freebsd-amd64), const DLT_BACNET_MS_TP ideal-int
+pkg syscall (freebsd-amd64), const DLT_BLUETOOTH_HCI_H4 ideal-int
+pkg syscall (freebsd-amd64), const DLT_BLUETOOTH_HCI_H4_WITH_PHDR ideal-int
+pkg syscall (freebsd-amd64), const DLT_CAN20B ideal-int
+pkg syscall (freebsd-amd64), const DLT_CHAOS ideal-int
+pkg syscall (freebsd-amd64), const DLT_CHDLC ideal-int
+pkg syscall (freebsd-amd64), const DLT_CISCO_IOS ideal-int
+pkg syscall (freebsd-amd64), const DLT_C_HDLC ideal-int
+pkg syscall (freebsd-amd64), const DLT_C_HDLC_WITH_DIR ideal-int
+pkg syscall (freebsd-amd64), const DLT_DOCSIS ideal-int
+pkg syscall (freebsd-amd64), const DLT_ECONET ideal-int
+pkg syscall (freebsd-amd64), const DLT_EN10MB ideal-int
+pkg syscall (freebsd-amd64), const DLT_EN3MB ideal-int
+pkg syscall (freebsd-amd64), const DLT_ENC ideal-int
+pkg syscall (freebsd-amd64), const DLT_ERF ideal-int
+pkg syscall (freebsd-amd64), const DLT_ERF_ETH ideal-int
+pkg syscall (freebsd-amd64), const DLT_ERF_POS ideal-int
+pkg syscall (freebsd-amd64), const DLT_FDDI ideal-int
+pkg syscall (freebsd-amd64), const DLT_FLEXRAY ideal-int
+pkg syscall (freebsd-amd64), const DLT_FRELAY ideal-int
+pkg syscall (freebsd-amd64), const DLT_FRELAY_WITH_DIR ideal-int
+pkg syscall (freebsd-amd64), const DLT_GCOM_SERIAL ideal-int
+pkg syscall (freebsd-amd64), const DLT_GCOM_T1E1 ideal-int
+pkg syscall (freebsd-amd64), const DLT_GPF_F ideal-int
+pkg syscall (freebsd-amd64), const DLT_GPF_T ideal-int
+pkg syscall (freebsd-amd64), const DLT_GPRS_LLC ideal-int
+pkg syscall (freebsd-amd64), const DLT_HHDLC ideal-int
+pkg syscall (freebsd-amd64), const DLT_IBM_SN ideal-int
+pkg syscall (freebsd-amd64), const DLT_IBM_SP ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802 ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_11 ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_11_RADIO ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_11_RADIO_AVS ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_15_4 ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_15_4_LINUX ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_15_4_NONASK_PHY ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_16_MAC_CPS ideal-int
+pkg syscall (freebsd-amd64), const DLT_IEEE802_16_MAC_CPS_RADIO ideal-int
+pkg syscall (freebsd-amd64), const DLT_IPFILTER ideal-int
+pkg syscall (freebsd-amd64), const DLT_IPMB ideal-int
+pkg syscall (freebsd-amd64), const DLT_IPMB_LINUX ideal-int
+pkg syscall (freebsd-amd64), const DLT_IP_OVER_FC ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_ATM1 ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_ATM2 ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_CHDLC ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_ES ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_ETHER ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_FRELAY ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_GGSN ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_ISM ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_MFR ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_MLFR ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_MLPPP ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_MONITOR ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_PIC_PEER ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_PPP ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_PPPOE ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_PPPOE_ATM ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_SERVICES ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_ST ideal-int
+pkg syscall (freebsd-amd64), const DLT_JUNIPER_VP ideal-int
+pkg syscall (freebsd-amd64), const DLT_LAPB_WITH_DIR ideal-int
+pkg syscall (freebsd-amd64), const DLT_LAPD ideal-int
+pkg syscall (freebsd-amd64), const DLT_LIN ideal-int
+pkg syscall (freebsd-amd64), const DLT_LINUX_IRDA ideal-int
+pkg syscall (freebsd-amd64), const DLT_LINUX_LAPD ideal-int
+pkg syscall (freebsd-amd64), const DLT_LINUX_PPP_WITHDIRECTION ideal-int
+pkg syscall (freebsd-amd64), const DLT_LINUX_SLL ideal-int
+pkg syscall (freebsd-amd64), const DLT_LOOP ideal-int
+pkg syscall (freebsd-amd64), const DLT_LTALK ideal-int
+pkg syscall (freebsd-amd64), const DLT_MFR ideal-int
+pkg syscall (freebsd-amd64), const DLT_MOST ideal-int
+pkg syscall (freebsd-amd64), const DLT_MTP2 ideal-int
+pkg syscall (freebsd-amd64), const DLT_MTP2_WITH_PHDR ideal-int
+pkg syscall (freebsd-amd64), const DLT_MTP3 ideal-int
+pkg syscall (freebsd-amd64), const DLT_NULL ideal-int
+pkg syscall (freebsd-amd64), const DLT_PCI_EXP ideal-int
+pkg syscall (freebsd-amd64), const DLT_PFLOG ideal-int
+pkg syscall (freebsd-amd64), const DLT_PFSYNC ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPI ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP_BSDOS ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP_ETHER ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP_PPPD ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP_SERIAL ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP_WITH_DIR ideal-int
+pkg syscall (freebsd-amd64), const DLT_PPP_WITH_DIRECTION ideal-int
+pkg syscall (freebsd-amd64), const DLT_PRISM_HEADER ideal-int
+pkg syscall (freebsd-amd64), const DLT_PRONET ideal-int
+pkg syscall (freebsd-amd64), const DLT_RAIF1 ideal-int
+pkg syscall (freebsd-amd64), const DLT_RAW ideal-int
+pkg syscall (freebsd-amd64), const DLT_RIO ideal-int
+pkg syscall (freebsd-amd64), const DLT_SCCP ideal-int
+pkg syscall (freebsd-amd64), const DLT_SITA ideal-int
+pkg syscall (freebsd-amd64), const DLT_SLIP ideal-int
+pkg syscall (freebsd-amd64), const DLT_SLIP_BSDOS ideal-int
+pkg syscall (freebsd-amd64), const DLT_SUNATM ideal-int
+pkg syscall (freebsd-amd64), const DLT_SYMANTEC_FIREWALL ideal-int
+pkg syscall (freebsd-amd64), const DLT_TZSP ideal-int
+pkg syscall (freebsd-amd64), const DLT_USB ideal-int
+pkg syscall (freebsd-amd64), const DLT_USB_LINUX ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER0 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER1 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER10 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER11 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER12 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER13 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER14 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER15 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER2 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER3 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER4 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER5 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER6 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER7 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER8 ideal-int
+pkg syscall (freebsd-amd64), const DLT_USER9 ideal-int
+pkg syscall (freebsd-amd64), const DLT_X2E_SERIAL ideal-int
+pkg syscall (freebsd-amd64), const DLT_X2E_XORAYA ideal-int
+pkg syscall (freebsd-amd64), const DT_BLK ideal-int
+pkg syscall (freebsd-amd64), const DT_CHR ideal-int
+pkg syscall (freebsd-amd64), const DT_DIR ideal-int
+pkg syscall (freebsd-amd64), const DT_FIFO ideal-int
+pkg syscall (freebsd-amd64), const DT_LNK ideal-int
+pkg syscall (freebsd-amd64), const DT_REG ideal-int
+pkg syscall (freebsd-amd64), const DT_SOCK ideal-int
+pkg syscall (freebsd-amd64), const DT_UNKNOWN ideal-int
+pkg syscall (freebsd-amd64), const DT_WHT ideal-int
+pkg syscall (freebsd-amd64), const EAUTH Errno
+pkg syscall (freebsd-amd64), const EBADRPC Errno
+pkg syscall (freebsd-amd64), const ECHO ideal-int
+pkg syscall (freebsd-amd64), const ECHOCTL ideal-int
+pkg syscall (freebsd-amd64), const ECHOE ideal-int
+pkg syscall (freebsd-amd64), const ECHOK ideal-int
+pkg syscall (freebsd-amd64), const ECHOKE ideal-int
+pkg syscall (freebsd-amd64), const ECHONL ideal-int
+pkg syscall (freebsd-amd64), const ECHOPRT ideal-int
+pkg syscall (freebsd-amd64), const EDOOFUS Errno
+pkg syscall (freebsd-amd64), const EFTYPE Errno
+pkg syscall (freebsd-amd64), const ELAST Errno
+pkg syscall (freebsd-amd64), const ENEEDAUTH Errno
+pkg syscall (freebsd-amd64), const ENOATTR Errno
+pkg syscall (freebsd-amd64), const ENOTCAPABLE Errno
+pkg syscall (freebsd-amd64), const EPROCLIM Errno
+pkg syscall (freebsd-amd64), const EPROCUNAVAIL Errno
+pkg syscall (freebsd-amd64), const EPROGMISMATCH Errno
+pkg syscall (freebsd-amd64), const EPROGUNAVAIL Errno
+pkg syscall (freebsd-amd64), const ERPCMISMATCH Errno
+pkg syscall (freebsd-amd64), const EVFILT_AIO ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_FS ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_LIO ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_PROC ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_READ ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_SIGNAL ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_SYSCOUNT ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_TIMER ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_USER ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_VNODE ideal-int
+pkg syscall (freebsd-amd64), const EVFILT_WRITE ideal-int
+pkg syscall (freebsd-amd64), const EV_ADD ideal-int
+pkg syscall (freebsd-amd64), const EV_CLEAR ideal-int
+pkg syscall (freebsd-amd64), const EV_DELETE ideal-int
+pkg syscall (freebsd-amd64), const EV_DISABLE ideal-int
+pkg syscall (freebsd-amd64), const EV_DISPATCH ideal-int
+pkg syscall (freebsd-amd64), const EV_ENABLE ideal-int
+pkg syscall (freebsd-amd64), const EV_EOF ideal-int
+pkg syscall (freebsd-amd64), const EV_ERROR ideal-int
+pkg syscall (freebsd-amd64), const EV_FLAG1 ideal-int
+pkg syscall (freebsd-amd64), const EV_ONESHOT ideal-int
+pkg syscall (freebsd-amd64), const EV_RECEIPT ideal-int
+pkg syscall (freebsd-amd64), const EV_SYSFLAGS ideal-int
+pkg syscall (freebsd-amd64), const EXTA ideal-int
+pkg syscall (freebsd-amd64), const EXTB ideal-int
+pkg syscall (freebsd-amd64), const EXTPROC ideal-int
+pkg syscall (freebsd-amd64), const FD_CLOEXEC ideal-int
+pkg syscall (freebsd-amd64), const FD_SETSIZE ideal-int
+pkg syscall (freebsd-amd64), const F_CANCEL ideal-int
+pkg syscall (freebsd-amd64), const F_DUP2FD ideal-int
+pkg syscall (freebsd-amd64), const F_DUPFD ideal-int
+pkg syscall (freebsd-amd64), const F_GETFD ideal-int
+pkg syscall (freebsd-amd64), const F_GETFL ideal-int
+pkg syscall (freebsd-amd64), const F_GETLK ideal-int
+pkg syscall (freebsd-amd64), const F_GETOWN ideal-int
+pkg syscall (freebsd-amd64), const F_OGETLK ideal-int
+pkg syscall (freebsd-amd64), const F_OK ideal-int
+pkg syscall (freebsd-amd64), const F_OSETLK ideal-int
+pkg syscall (freebsd-amd64), const F_OSETLKW ideal-int
+pkg syscall (freebsd-amd64), const F_RDAHEAD ideal-int
+pkg syscall (freebsd-amd64), const F_RDLCK ideal-int
+pkg syscall (freebsd-amd64), const F_READAHEAD ideal-int
+pkg syscall (freebsd-amd64), const F_SETFD ideal-int
+pkg syscall (freebsd-amd64), const F_SETFL ideal-int
+pkg syscall (freebsd-amd64), const F_SETLK ideal-int
+pkg syscall (freebsd-amd64), const F_SETLKW ideal-int
+pkg syscall (freebsd-amd64), const F_SETLK_REMOTE ideal-int
+pkg syscall (freebsd-amd64), const F_SETOWN ideal-int
+pkg syscall (freebsd-amd64), const F_UNLCK ideal-int
+pkg syscall (freebsd-amd64), const F_UNLCKSYS ideal-int
+pkg syscall (freebsd-amd64), const F_WRLCK ideal-int
+pkg syscall (freebsd-amd64), const IFF_ALLMULTI ideal-int
+pkg syscall (freebsd-amd64), const IFF_ALTPHYS ideal-int
+pkg syscall (freebsd-amd64), const IFF_CANTCHANGE ideal-int
+pkg syscall (freebsd-amd64), const IFF_DEBUG ideal-int
+pkg syscall (freebsd-amd64), const IFF_DRV_OACTIVE ideal-int
+pkg syscall (freebsd-amd64), const IFF_DRV_RUNNING ideal-int
+pkg syscall (freebsd-amd64), const IFF_DYING ideal-int
+pkg syscall (freebsd-amd64), const IFF_LINK0 ideal-int
+pkg syscall (freebsd-amd64), const IFF_LINK1 ideal-int
+pkg syscall (freebsd-amd64), const IFF_LINK2 ideal-int
+pkg syscall (freebsd-amd64), const IFF_MONITOR ideal-int
+pkg syscall (freebsd-amd64), const IFF_NOARP ideal-int
+pkg syscall (freebsd-amd64), const IFF_OACTIVE ideal-int
+pkg syscall (freebsd-amd64), const IFF_POINTOPOINT ideal-int
+pkg syscall (freebsd-amd64), const IFF_PPROMISC ideal-int
+pkg syscall (freebsd-amd64), const IFF_PROMISC ideal-int
+pkg syscall (freebsd-amd64), const IFF_RENAMING ideal-int
+pkg syscall (freebsd-amd64), const IFF_RUNNING ideal-int
+pkg syscall (freebsd-amd64), const IFF_SIMPLEX ideal-int
+pkg syscall (freebsd-amd64), const IFF_SMART ideal-int
+pkg syscall (freebsd-amd64), const IFF_STATICARP ideal-int
+pkg syscall (freebsd-amd64), const IFNAMSIZ ideal-int
+pkg syscall (freebsd-amd64), const IFT_1822 ideal-int
+pkg syscall (freebsd-amd64), const IFT_A12MPPSWITCH ideal-int
+pkg syscall (freebsd-amd64), const IFT_AAL2 ideal-int
+pkg syscall (freebsd-amd64), const IFT_AAL5 ideal-int
+pkg syscall (freebsd-amd64), const IFT_ADSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_AFLANE8023 ideal-int
+pkg syscall (freebsd-amd64), const IFT_AFLANE8025 ideal-int
+pkg syscall (freebsd-amd64), const IFT_ARAP ideal-int
+pkg syscall (freebsd-amd64), const IFT_ARCNET ideal-int
+pkg syscall (freebsd-amd64), const IFT_ARCNETPLUS ideal-int
+pkg syscall (freebsd-amd64), const IFT_ASYNC ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATM ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMDXI ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMFUNI ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMIMA ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMLOGICAL ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMRADIO ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMSUBINTERFACE ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMVCIENDPT ideal-int
+pkg syscall (freebsd-amd64), const IFT_ATMVIRTUAL ideal-int
+pkg syscall (freebsd-amd64), const IFT_BGPPOLICYACCOUNTING ideal-int
+pkg syscall (freebsd-amd64), const IFT_BRIDGE ideal-int
+pkg syscall (freebsd-amd64), const IFT_BSC ideal-int
+pkg syscall (freebsd-amd64), const IFT_CARP ideal-int
+pkg syscall (freebsd-amd64), const IFT_CCTEMUL ideal-int
+pkg syscall (freebsd-amd64), const IFT_CEPT ideal-int
+pkg syscall (freebsd-amd64), const IFT_CES ideal-int
+pkg syscall (freebsd-amd64), const IFT_CHANNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_CNR ideal-int
+pkg syscall (freebsd-amd64), const IFT_COFFEE ideal-int
+pkg syscall (freebsd-amd64), const IFT_COMPOSITELINK ideal-int
+pkg syscall (freebsd-amd64), const IFT_DCN ideal-int
+pkg syscall (freebsd-amd64), const IFT_DIGITALPOWERLINE ideal-int
+pkg syscall (freebsd-amd64), const IFT_DIGITALWRAPPEROVERHEADCHANNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_DLSW ideal-int
+pkg syscall (freebsd-amd64), const IFT_DOCSCABLEDOWNSTREAM ideal-int
+pkg syscall (freebsd-amd64), const IFT_DOCSCABLEMACLAYER ideal-int
+pkg syscall (freebsd-amd64), const IFT_DOCSCABLEUPSTREAM ideal-int
+pkg syscall (freebsd-amd64), const IFT_DS0 ideal-int
+pkg syscall (freebsd-amd64), const IFT_DS0BUNDLE ideal-int
+pkg syscall (freebsd-amd64), const IFT_DS1FDL ideal-int
+pkg syscall (freebsd-amd64), const IFT_DS3 ideal-int
+pkg syscall (freebsd-amd64), const IFT_DTM ideal-int
+pkg syscall (freebsd-amd64), const IFT_DVBASILN ideal-int
+pkg syscall (freebsd-amd64), const IFT_DVBASIOUT ideal-int
+pkg syscall (freebsd-amd64), const IFT_DVBRCCDOWNSTREAM ideal-int
+pkg syscall (freebsd-amd64), const IFT_DVBRCCMACLAYER ideal-int
+pkg syscall (freebsd-amd64), const IFT_DVBRCCUPSTREAM ideal-int
+pkg syscall (freebsd-amd64), const IFT_ENC ideal-int
+pkg syscall (freebsd-amd64), const IFT_EON ideal-int
+pkg syscall (freebsd-amd64), const IFT_EPLRS ideal-int
+pkg syscall (freebsd-amd64), const IFT_ESCON ideal-int
+pkg syscall (freebsd-amd64), const IFT_ETHER ideal-int
+pkg syscall (freebsd-amd64), const IFT_FAITH ideal-int
+pkg syscall (freebsd-amd64), const IFT_FAST ideal-int
+pkg syscall (freebsd-amd64), const IFT_FASTETHER ideal-int
+pkg syscall (freebsd-amd64), const IFT_FASTETHERFX ideal-int
+pkg syscall (freebsd-amd64), const IFT_FDDI ideal-int
+pkg syscall (freebsd-amd64), const IFT_FIBRECHANNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRAMERELAYINTERCONNECT ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRAMERELAYMPI ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRDLCIENDPT ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRELAY ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRELAYDCE ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRF16MFRBUNDLE ideal-int
+pkg syscall (freebsd-amd64), const IFT_FRFORWARD ideal-int
+pkg syscall (freebsd-amd64), const IFT_G703AT2MB ideal-int
+pkg syscall (freebsd-amd64), const IFT_G703AT64K ideal-int
+pkg syscall (freebsd-amd64), const IFT_GIF ideal-int
+pkg syscall (freebsd-amd64), const IFT_GIGABITETHERNET ideal-int
+pkg syscall (freebsd-amd64), const IFT_GR303IDT ideal-int
+pkg syscall (freebsd-amd64), const IFT_GR303RDT ideal-int
+pkg syscall (freebsd-amd64), const IFT_H323GATEKEEPER ideal-int
+pkg syscall (freebsd-amd64), const IFT_H323PROXY ideal-int
+pkg syscall (freebsd-amd64), const IFT_HDH1822 ideal-int
+pkg syscall (freebsd-amd64), const IFT_HDLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_HDSL2 ideal-int
+pkg syscall (freebsd-amd64), const IFT_HIPERLAN2 ideal-int
+pkg syscall (freebsd-amd64), const IFT_HIPPI ideal-int
+pkg syscall (freebsd-amd64), const IFT_HIPPIINTERFACE ideal-int
+pkg syscall (freebsd-amd64), const IFT_HOSTPAD ideal-int
+pkg syscall (freebsd-amd64), const IFT_HSSI ideal-int
+pkg syscall (freebsd-amd64), const IFT_HY ideal-int
+pkg syscall (freebsd-amd64), const IFT_IBM370PARCHAN ideal-int
+pkg syscall (freebsd-amd64), const IFT_IDSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_IEEE1394 ideal-int
+pkg syscall (freebsd-amd64), const IFT_IEEE80211 ideal-int
+pkg syscall (freebsd-amd64), const IFT_IEEE80212 ideal-int
+pkg syscall (freebsd-amd64), const IFT_IEEE8023ADLAG ideal-int
+pkg syscall (freebsd-amd64), const IFT_IFGSN ideal-int
+pkg syscall (freebsd-amd64), const IFT_IMT ideal-int
+pkg syscall (freebsd-amd64), const IFT_INTERLEAVE ideal-int
+pkg syscall (freebsd-amd64), const IFT_IP ideal-int
+pkg syscall (freebsd-amd64), const IFT_IPFORWARD ideal-int
+pkg syscall (freebsd-amd64), const IFT_IPOVERATM ideal-int
+pkg syscall (freebsd-amd64), const IFT_IPOVERCDLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_IPOVERCLAW ideal-int
+pkg syscall (freebsd-amd64), const IFT_IPSWITCH ideal-int
+pkg syscall (freebsd-amd64), const IFT_IPXIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISDN ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISDNBASIC ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISDNPRIMARY ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISDNS ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISDNU ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88022LLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88023 ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88024 ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88025 ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88025CRFPINT ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88025DTR ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88025FIBER ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISO88026 ideal-int
+pkg syscall (freebsd-amd64), const IFT_ISUP ideal-int
+pkg syscall (freebsd-amd64), const IFT_L2VLAN ideal-int
+pkg syscall (freebsd-amd64), const IFT_L3IPVLAN ideal-int
+pkg syscall (freebsd-amd64), const IFT_L3IPXVLAN ideal-int
+pkg syscall (freebsd-amd64), const IFT_LAPB ideal-int
+pkg syscall (freebsd-amd64), const IFT_LAPD ideal-int
+pkg syscall (freebsd-amd64), const IFT_LAPF ideal-int
+pkg syscall (freebsd-amd64), const IFT_LOCALTALK ideal-int
+pkg syscall (freebsd-amd64), const IFT_LOOP ideal-int
+pkg syscall (freebsd-amd64), const IFT_MEDIAMAILOVERIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_MFSIGLINK ideal-int
+pkg syscall (freebsd-amd64), const IFT_MIOX25 ideal-int
+pkg syscall (freebsd-amd64), const IFT_MODEM ideal-int
+pkg syscall (freebsd-amd64), const IFT_MPC ideal-int
+pkg syscall (freebsd-amd64), const IFT_MPLS ideal-int
+pkg syscall (freebsd-amd64), const IFT_MPLSTUNNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_MSDSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_MVL ideal-int
+pkg syscall (freebsd-amd64), const IFT_MYRINET ideal-int
+pkg syscall (freebsd-amd64), const IFT_NFAS ideal-int
+pkg syscall (freebsd-amd64), const IFT_NSIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_OPTICALCHANNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_OPTICALTRANSPORT ideal-int
+pkg syscall (freebsd-amd64), const IFT_OTHER ideal-int
+pkg syscall (freebsd-amd64), const IFT_P10 ideal-int
+pkg syscall (freebsd-amd64), const IFT_P80 ideal-int
+pkg syscall (freebsd-amd64), const IFT_PARA ideal-int
+pkg syscall (freebsd-amd64), const IFT_PFLOG ideal-int
+pkg syscall (freebsd-amd64), const IFT_PFSYNC ideal-int
+pkg syscall (freebsd-amd64), const IFT_PLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_POS ideal-int
+pkg syscall (freebsd-amd64), const IFT_PPP ideal-int
+pkg syscall (freebsd-amd64), const IFT_PPPMULTILINKBUNDLE ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPBWAP2MP ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPCNLS ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPDOCSWIRELESSDOWNSTREAM ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPDOCSWIRELESSMACLAYER ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPDOCSWIRELESSUPSTREAM ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPMUX ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPVIRTUAL ideal-int
+pkg syscall (freebsd-amd64), const IFT_PROPWIRELESSP2P ideal-int
+pkg syscall (freebsd-amd64), const IFT_PTPSERIAL ideal-int
+pkg syscall (freebsd-amd64), const IFT_PVC ideal-int
+pkg syscall (freebsd-amd64), const IFT_QLLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_RADIOMAC ideal-int
+pkg syscall (freebsd-amd64), const IFT_RADSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_REACHDSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_RFC1483 ideal-int
+pkg syscall (freebsd-amd64), const IFT_RS232 ideal-int
+pkg syscall (freebsd-amd64), const IFT_RSRB ideal-int
+pkg syscall (freebsd-amd64), const IFT_SDLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_SDSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_SHDSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_SIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_SLIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_SMDSDXI ideal-int
+pkg syscall (freebsd-amd64), const IFT_SMDSICIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_SONET ideal-int
+pkg syscall (freebsd-amd64), const IFT_SONETOVERHEADCHANNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_SONETPATH ideal-int
+pkg syscall (freebsd-amd64), const IFT_SONETVT ideal-int
+pkg syscall (freebsd-amd64), const IFT_SRP ideal-int
+pkg syscall (freebsd-amd64), const IFT_SS7SIGLINK ideal-int
+pkg syscall (freebsd-amd64), const IFT_STACKTOSTACK ideal-int
+pkg syscall (freebsd-amd64), const IFT_STARLAN ideal-int
+pkg syscall (freebsd-amd64), const IFT_STF ideal-int
+pkg syscall (freebsd-amd64), const IFT_T1 ideal-int
+pkg syscall (freebsd-amd64), const IFT_TDLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_TERMPAD ideal-int
+pkg syscall (freebsd-amd64), const IFT_TR008 ideal-int
+pkg syscall (freebsd-amd64), const IFT_TRANSPHDLC ideal-int
+pkg syscall (freebsd-amd64), const IFT_TUNNEL ideal-int
+pkg syscall (freebsd-amd64), const IFT_ULTRA ideal-int
+pkg syscall (freebsd-amd64), const IFT_USB ideal-int
+pkg syscall (freebsd-amd64), const IFT_V11 ideal-int
+pkg syscall (freebsd-amd64), const IFT_V35 ideal-int
+pkg syscall (freebsd-amd64), const IFT_V36 ideal-int
+pkg syscall (freebsd-amd64), const IFT_V37 ideal-int
+pkg syscall (freebsd-amd64), const IFT_VDSL ideal-int
+pkg syscall (freebsd-amd64), const IFT_VIRTUALIPADDRESS ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEEM ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEENCAP ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEFXO ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEFXS ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEOVERATM ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEOVERFRAMERELAY ideal-int
+pkg syscall (freebsd-amd64), const IFT_VOICEOVERIP ideal-int
+pkg syscall (freebsd-amd64), const IFT_X213 ideal-int
+pkg syscall (freebsd-amd64), const IFT_X25 ideal-int
+pkg syscall (freebsd-amd64), const IFT_X25DDN ideal-int
+pkg syscall (freebsd-amd64), const IFT_X25HUNTGROUP ideal-int
+pkg syscall (freebsd-amd64), const IFT_X25MLP ideal-int
+pkg syscall (freebsd-amd64), const IFT_X25PLE ideal-int
+pkg syscall (freebsd-amd64), const IFT_XETHER ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSA_HOST ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSA_MAX ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSA_NET ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSA_NSHIFT ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSB_HOST ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSB_MAX ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSB_NET ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSB_NSHIFT ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSC_HOST ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSC_NET ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSC_NSHIFT ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSD_HOST ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSD_NET ideal-int
+pkg syscall (freebsd-amd64), const IN_CLASSD_NSHIFT ideal-int
+pkg syscall (freebsd-amd64), const IN_LOOPBACKNET ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_3PC ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ADFS ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_AH ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_AHIP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_APES ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ARGUS ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_AX25 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_BHA ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_BLT ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_BRSATMON ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_CARP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_CFTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_CHAOS ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_CMTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_CPHB ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_CPNX ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_DDP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_DGP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_DIVERT ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_DONE ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_DSTOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_EGP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_EMCON ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ENCAP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_EON ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ESP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ETHERIP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_FRAGMENT ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_GGP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_GMTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_GRE ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_HELLO ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_HMP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_HOPOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ICMP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ICMPV6 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IDP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IDPR ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IDRP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IGMP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IGP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IGRP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IL ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_INLSP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_INP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IPCOMP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IPCV ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IPEIP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IPIP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IPPC ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IPV4 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_IRTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_KRYPTOLAN ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_LARP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_LEAF1 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_LEAF2 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MAX ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MAXID ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MEAS ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MHRP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MICP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MOBILE ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_MUX ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ND ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_NHRP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_NONE ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_NSP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_NVPII ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_OLD_DIVERT ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_OSPFIGP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PFSYNC ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PGM ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PIGP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PIM ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PRM ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PUP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_PVP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_RAW ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_RCCMON ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_RDP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ROUTING ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_RSVP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_RVD ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SATEXPAK ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SATMON ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SCCSP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SCTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SDRP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SEP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SKIP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SPACER ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SRPC ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_ST ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SVMTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_SWIPE ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TCF ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TLSP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TPXX ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TRUNK1 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TRUNK2 ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_TTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_VINES ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_VISA ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_VMTP ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_WBEXPAK ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_WBMON ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_WSN ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_XNET ideal-int
+pkg syscall (freebsd-amd64), const IPPROTO_XTP ideal-int
+pkg syscall (freebsd-amd64), const IPV6_AUTOFLOWLABEL ideal-int
+pkg syscall (freebsd-amd64), const IPV6_BINDANY ideal-int
+pkg syscall (freebsd-amd64), const IPV6_BINDV6ONLY ideal-int
+pkg syscall (freebsd-amd64), const IPV6_CHECKSUM ideal-int
+pkg syscall (freebsd-amd64), const IPV6_DEFAULT_MULTICAST_HOPS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_DEFAULT_MULTICAST_LOOP ideal-int
+pkg syscall (freebsd-amd64), const IPV6_DEFHLIM ideal-int
+pkg syscall (freebsd-amd64), const IPV6_DONTFRAG ideal-int
+pkg syscall (freebsd-amd64), const IPV6_DSTOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FAITH ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FLOWINFO_MASK ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FLOWLABEL_MASK ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FRAGTTL ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FW_ADD ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FW_DEL ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FW_FLUSH ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FW_GET ideal-int
+pkg syscall (freebsd-amd64), const IPV6_FW_ZERO ideal-int
+pkg syscall (freebsd-amd64), const IPV6_HLIMDEC ideal-int
+pkg syscall (freebsd-amd64), const IPV6_HOPLIMIT ideal-int
+pkg syscall (freebsd-amd64), const IPV6_HOPOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_IPSEC_POLICY ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MAXHLIM ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MAXOPTHDR ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MAXPACKET ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MAX_GROUP_SRC_FILTER ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MAX_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MAX_SOCK_SRC_FILTER ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MIN_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MMTU ideal-int
+pkg syscall (freebsd-amd64), const IPV6_MSFILTER ideal-int
+pkg syscall (freebsd-amd64), const IPV6_NEXTHOP ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PATHMTU ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PKTINFO ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PORTRANGE ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PORTRANGE_DEFAULT ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PORTRANGE_HIGH ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PORTRANGE_LOW ideal-int
+pkg syscall (freebsd-amd64), const IPV6_PREFER_TEMPADDR ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVDSTOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVHOPLIMIT ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVHOPOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVPATHMTU ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVPKTINFO ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVRTHDR ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RECVTCLASS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RTHDR ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RTHDRDSTOPTS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RTHDR_LOOSE ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RTHDR_STRICT ideal-int
+pkg syscall (freebsd-amd64), const IPV6_RTHDR_TYPE_0 ideal-int
+pkg syscall (freebsd-amd64), const IPV6_SOCKOPT_RESERVED1 ideal-int
+pkg syscall (freebsd-amd64), const IPV6_TCLASS ideal-int
+pkg syscall (freebsd-amd64), const IPV6_USE_MIN_MTU ideal-int
+pkg syscall (freebsd-amd64), const IPV6_VERSION ideal-int
+pkg syscall (freebsd-amd64), const IPV6_VERSION_MASK ideal-int
+pkg syscall (freebsd-amd64), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
+pkg syscall (freebsd-amd64), const IP_BINDANY ideal-int
+pkg syscall (freebsd-amd64), const IP_BLOCK_SOURCE ideal-int
+pkg syscall (freebsd-amd64), const IP_DEFAULT_MULTICAST_LOOP ideal-int
+pkg syscall (freebsd-amd64), const IP_DEFAULT_MULTICAST_TTL ideal-int
+pkg syscall (freebsd-amd64), const IP_DF ideal-int
+pkg syscall (freebsd-amd64), const IP_DONTFRAG ideal-int
+pkg syscall (freebsd-amd64), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
+pkg syscall (freebsd-amd64), const IP_DUMMYNET3 ideal-int
+pkg syscall (freebsd-amd64), const IP_DUMMYNET_CONFIGURE ideal-int
+pkg syscall (freebsd-amd64), const IP_DUMMYNET_DEL ideal-int
+pkg syscall (freebsd-amd64), const IP_DUMMYNET_FLUSH ideal-int
+pkg syscall (freebsd-amd64), const IP_DUMMYNET_GET ideal-int
+pkg syscall (freebsd-amd64), const IP_FAITH ideal-int
+pkg syscall (freebsd-amd64), const IP_FW3 ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_ADD ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_DEL ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_FLUSH ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_GET ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_NAT_CFG ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_NAT_DEL ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_NAT_GET_CONFIG ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_NAT_GET_LOG ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_RESETLOG ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_TABLE_ADD ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_TABLE_DEL ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_TABLE_FLUSH ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_TABLE_GETSIZE ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_TABLE_LIST ideal-int
+pkg syscall (freebsd-amd64), const IP_FW_ZERO ideal-int
+pkg syscall (freebsd-amd64), const IP_HDRINCL ideal-int
+pkg syscall (freebsd-amd64), const IP_IPSEC_POLICY ideal-int
+pkg syscall (freebsd-amd64), const IP_MAXPACKET ideal-int
+pkg syscall (freebsd-amd64), const IP_MAX_GROUP_SRC_FILTER ideal-int
+pkg syscall (freebsd-amd64), const IP_MAX_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-amd64), const IP_MAX_SOCK_MUTE_FILTER ideal-int
+pkg syscall (freebsd-amd64), const IP_MAX_SOCK_SRC_FILTER ideal-int
+pkg syscall (freebsd-amd64), const IP_MAX_SOURCE_FILTER ideal-int
+pkg syscall (freebsd-amd64), const IP_MF ideal-int
+pkg syscall (freebsd-amd64), const IP_MINTTL ideal-int
+pkg syscall (freebsd-amd64), const IP_MIN_MEMBERSHIPS ideal-int
+pkg syscall (freebsd-amd64), const IP_MSFILTER ideal-int
+pkg syscall (freebsd-amd64), const IP_MSS ideal-int
+pkg syscall (freebsd-amd64), const IP_MULTICAST_VIF ideal-int
+pkg syscall (freebsd-amd64), const IP_OFFMASK ideal-int
+pkg syscall (freebsd-amd64), const IP_ONESBCAST ideal-int
+pkg syscall (freebsd-amd64), const IP_OPTIONS ideal-int
+pkg syscall (freebsd-amd64), const IP_PORTRANGE ideal-int
+pkg syscall (freebsd-amd64), const IP_PORTRANGE_DEFAULT ideal-int
+pkg syscall (freebsd-amd64), const IP_PORTRANGE_HIGH ideal-int
+pkg syscall (freebsd-amd64), const IP_PORTRANGE_LOW ideal-int
+pkg syscall (freebsd-amd64), const IP_RECVDSTADDR ideal-int
+pkg syscall (freebsd-amd64), const IP_RECVIF ideal-int
+pkg syscall (freebsd-amd64), const IP_RECVOPTS ideal-int
+pkg syscall (freebsd-amd64), const IP_RECVRETOPTS ideal-int
+pkg syscall (freebsd-amd64), const IP_RECVTTL ideal-int
+pkg syscall (freebsd-amd64), const IP_RETOPTS ideal-int
+pkg syscall (freebsd-amd64), const IP_RF ideal-int
+pkg syscall (freebsd-amd64), const IP_RSVP_OFF ideal-int
+pkg syscall (freebsd-amd64), const IP_RSVP_ON ideal-int
+pkg syscall (freebsd-amd64), const IP_RSVP_VIF_OFF ideal-int
+pkg syscall (freebsd-amd64), const IP_RSVP_VIF_ON ideal-int
+pkg syscall (freebsd-amd64), const IP_SENDSRCADDR ideal-int
+pkg syscall (freebsd-amd64), const IP_UNBLOCK_SOURCE ideal-int
+pkg syscall (freebsd-amd64), const LOCK_EX ideal-int
+pkg syscall (freebsd-amd64), const LOCK_NB ideal-int
+pkg syscall (freebsd-amd64), const LOCK_SH ideal-int
+pkg syscall (freebsd-amd64), const LOCK_UN ideal-int
+pkg syscall (freebsd-amd64), const MSG_COMPAT ideal-int
+pkg syscall (freebsd-amd64), const MSG_CTRUNC ideal-int
+pkg syscall (freebsd-amd64), const MSG_DONTROUTE ideal-int
+pkg syscall (freebsd-amd64), const MSG_DONTWAIT ideal-int
+pkg syscall (freebsd-amd64), const MSG_EOF ideal-int
+pkg syscall (freebsd-amd64), const MSG_EOR ideal-int
+pkg syscall (freebsd-amd64), const MSG_NBIO ideal-int
+pkg syscall (freebsd-amd64), const MSG_NOSIGNAL ideal-int
+pkg syscall (freebsd-amd64), const MSG_NOTIFICATION ideal-int
+pkg syscall (freebsd-amd64), const MSG_OOB ideal-int
+pkg syscall (freebsd-amd64), const MSG_PEEK ideal-int
+pkg syscall (freebsd-amd64), const MSG_TRUNC ideal-int
+pkg syscall (freebsd-amd64), const MSG_WAITALL ideal-int
+pkg syscall (freebsd-amd64), const NET_RT_DUMP ideal-int
+pkg syscall (freebsd-amd64), const NET_RT_FLAGS ideal-int
+pkg syscall (freebsd-amd64), const NET_RT_IFLIST ideal-int
+pkg syscall (freebsd-amd64), const NET_RT_IFMALIST ideal-int
+pkg syscall (freebsd-amd64), const NET_RT_MAXID ideal-int
+pkg syscall (freebsd-amd64), const NOTE_ATTRIB ideal-int
+pkg syscall (freebsd-amd64), const NOTE_CHILD ideal-int
+pkg syscall (freebsd-amd64), const NOTE_DELETE ideal-int
+pkg syscall (freebsd-amd64), const NOTE_EXEC ideal-int
+pkg syscall (freebsd-amd64), const NOTE_EXIT ideal-int
+pkg syscall (freebsd-amd64), const NOTE_EXTEND ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FFAND ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FFCOPY ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FFCTRLMASK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FFLAGSMASK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FFNOP ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FFOR ideal-int
+pkg syscall (freebsd-amd64), const NOTE_FORK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_LINK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_LOWAT ideal-int
+pkg syscall (freebsd-amd64), const NOTE_PCTRLMASK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_PDATAMASK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_RENAME ideal-int
+pkg syscall (freebsd-amd64), const NOTE_REVOKE ideal-int
+pkg syscall (freebsd-amd64), const NOTE_TRACK ideal-int
+pkg syscall (freebsd-amd64), const NOTE_TRACKERR ideal-int
+pkg syscall (freebsd-amd64), const NOTE_TRIGGER ideal-int
+pkg syscall (freebsd-amd64), const NOTE_WRITE ideal-int
+pkg syscall (freebsd-amd64), const O_ACCMODE ideal-int
+pkg syscall (freebsd-amd64), const O_DIRECT ideal-int
+pkg syscall (freebsd-amd64), const O_DIRECTORY ideal-int
+pkg syscall (freebsd-amd64), const O_EXEC ideal-int
+pkg syscall (freebsd-amd64), const O_EXLOCK ideal-int
+pkg syscall (freebsd-amd64), const O_FSYNC ideal-int
+pkg syscall (freebsd-amd64), const O_NDELAY ideal-int
+pkg syscall (freebsd-amd64), const O_NOFOLLOW ideal-int
+pkg syscall (freebsd-amd64), const O_SHLOCK ideal-int
+pkg syscall (freebsd-amd64), const O_TTY_INIT ideal-int
+pkg syscall (freebsd-amd64), const PTRACE_CONT ideal-int
+pkg syscall (freebsd-amd64), const PTRACE_KILL ideal-int
+pkg syscall (freebsd-amd64), const PTRACE_TRACEME ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_AS ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_CORE ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_CPU ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_DATA ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_FSIZE ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_NOFILE ideal-int
+pkg syscall (freebsd-amd64), const RLIMIT_STACK ideal-int
+pkg syscall (freebsd-amd64), const RLIM_INFINITY ideal-int
+pkg syscall (freebsd-amd64), const RTAX_AUTHOR ideal-int
+pkg syscall (freebsd-amd64), const RTAX_BRD ideal-int
+pkg syscall (freebsd-amd64), const RTAX_DST ideal-int
+pkg syscall (freebsd-amd64), const RTAX_GATEWAY ideal-int
+pkg syscall (freebsd-amd64), const RTAX_GENMASK ideal-int
+pkg syscall (freebsd-amd64), const RTAX_IFA ideal-int
+pkg syscall (freebsd-amd64), const RTAX_IFP ideal-int
+pkg syscall (freebsd-amd64), const RTAX_MAX ideal-int
+pkg syscall (freebsd-amd64), const RTAX_NETMASK ideal-int
+pkg syscall (freebsd-amd64), const RTA_AUTHOR ideal-int
+pkg syscall (freebsd-amd64), const RTA_BRD ideal-int
+pkg syscall (freebsd-amd64), const RTA_DST ideal-int
+pkg syscall (freebsd-amd64), const RTA_GATEWAY ideal-int
+pkg syscall (freebsd-amd64), const RTA_GENMASK ideal-int
+pkg syscall (freebsd-amd64), const RTA_IFA ideal-int
+pkg syscall (freebsd-amd64), const RTA_IFP ideal-int
+pkg syscall (freebsd-amd64), const RTA_NETMASK ideal-int
+pkg syscall (freebsd-amd64), const RTF_BLACKHOLE ideal-int
+pkg syscall (freebsd-amd64), const RTF_BROADCAST ideal-int
+pkg syscall (freebsd-amd64), const RTF_DONE ideal-int
+pkg syscall (freebsd-amd64), const RTF_DYNAMIC ideal-int
+pkg syscall (freebsd-amd64), const RTF_FMASK ideal-int
+pkg syscall (freebsd-amd64), const RTF_GATEWAY ideal-int
+pkg syscall (freebsd-amd64), const RTF_HOST ideal-int
+pkg syscall (freebsd-amd64), const RTF_LLDATA ideal-int
+pkg syscall (freebsd-amd64), const RTF_LLINFO ideal-int
+pkg syscall (freebsd-amd64), const RTF_LOCAL ideal-int
+pkg syscall (freebsd-amd64), const RTF_MODIFIED ideal-int
+pkg syscall (freebsd-amd64), const RTF_MULTICAST ideal-int
+pkg syscall (freebsd-amd64), const RTF_PINNED ideal-int
+pkg syscall (freebsd-amd64), const RTF_PRCLONING ideal-int
+pkg syscall (freebsd-amd64), const RTF_PROTO1 ideal-int
+pkg syscall (freebsd-amd64), const RTF_PROTO2 ideal-int
+pkg syscall (freebsd-amd64), const RTF_PROTO3 ideal-int
+pkg syscall (freebsd-amd64), const RTF_REJECT ideal-int
+pkg syscall (freebsd-amd64), const RTF_RNH_LOCKED ideal-int
+pkg syscall (freebsd-amd64), const RTF_STATIC ideal-int
+pkg syscall (freebsd-amd64), const RTF_STICKY ideal-int
+pkg syscall (freebsd-amd64), const RTF_UP ideal-int
+pkg syscall (freebsd-amd64), const RTF_XRESOLVE ideal-int
+pkg syscall (freebsd-amd64), const RTM_ADD ideal-int
+pkg syscall (freebsd-amd64), const RTM_CHANGE ideal-int
+pkg syscall (freebsd-amd64), const RTM_DELADDR ideal-int
+pkg syscall (freebsd-amd64), const RTM_DELETE ideal-int
+pkg syscall (freebsd-amd64), const RTM_DELMADDR ideal-int
+pkg syscall (freebsd-amd64), const RTM_GET ideal-int
+pkg syscall (freebsd-amd64), const RTM_IEEE80211 ideal-int
+pkg syscall (freebsd-amd64), const RTM_IFANNOUNCE ideal-int
+pkg syscall (freebsd-amd64), const RTM_IFINFO ideal-int
+pkg syscall (freebsd-amd64), const RTM_LOCK ideal-int
+pkg syscall (freebsd-amd64), const RTM_LOSING ideal-int
+pkg syscall (freebsd-amd64), const RTM_MISS ideal-int
+pkg syscall (freebsd-amd64), const RTM_NEWADDR ideal-int
+pkg syscall (freebsd-amd64), const RTM_NEWMADDR ideal-int
+pkg syscall (freebsd-amd64), const RTM_OLDADD ideal-int
+pkg syscall (freebsd-amd64), const RTM_OLDDEL ideal-int
+pkg syscall (freebsd-amd64), const RTM_REDIRECT ideal-int
+pkg syscall (freebsd-amd64), const RTM_RESOLVE ideal-int
+pkg syscall (freebsd-amd64), const RTM_RTTUNIT ideal-int
+pkg syscall (freebsd-amd64), const RTM_VERSION ideal-int
+pkg syscall (freebsd-amd64), const RTV_EXPIRE ideal-int
+pkg syscall (freebsd-amd64), const RTV_HOPCOUNT ideal-int
+pkg syscall (freebsd-amd64), const RTV_MTU ideal-int
+pkg syscall (freebsd-amd64), const RTV_RPIPE ideal-int
+pkg syscall (freebsd-amd64), const RTV_RTT ideal-int
+pkg syscall (freebsd-amd64), const RTV_RTTVAR ideal-int
+pkg syscall (freebsd-amd64), const RTV_SPIPE ideal-int
+pkg syscall (freebsd-amd64), const RTV_SSTHRESH ideal-int
+pkg syscall (freebsd-amd64), const RTV_WEIGHT ideal-int
+pkg syscall (freebsd-amd64), const RUSAGE_CHILDREN ideal-int
+pkg syscall (freebsd-amd64), const RUSAGE_SELF ideal-int
+pkg syscall (freebsd-amd64), const RUSAGE_THREAD ideal-int
+pkg syscall (freebsd-amd64), const SCM_BINTIME ideal-int
+pkg syscall (freebsd-amd64), const SCM_CREDS ideal-int
+pkg syscall (freebsd-amd64), const SCM_RIGHTS ideal-int
+pkg syscall (freebsd-amd64), const SCM_TIMESTAMP ideal-int
+pkg syscall (freebsd-amd64), const SIGCHLD Signal
+pkg syscall (freebsd-amd64), const SIGCONT Signal
+pkg syscall (freebsd-amd64), const SIGEMT Signal
+pkg syscall (freebsd-amd64), const SIGINFO Signal
+pkg syscall (freebsd-amd64), const SIGIO Signal
+pkg syscall (freebsd-amd64), const SIGIOT Signal
+pkg syscall (freebsd-amd64), const SIGLWP Signal
+pkg syscall (freebsd-amd64), const SIGPROF Signal
+pkg syscall (freebsd-amd64), const SIGSTOP Signal
+pkg syscall (freebsd-amd64), const SIGSYS Signal
+pkg syscall (freebsd-amd64), const SIGTHR Signal
+pkg syscall (freebsd-amd64), const SIGTSTP Signal
+pkg syscall (freebsd-amd64), const SIGTTIN Signal
+pkg syscall (freebsd-amd64), const SIGTTOU Signal
+pkg syscall (freebsd-amd64), const SIGURG Signal
+pkg syscall (freebsd-amd64), const SIGUSR1 Signal
+pkg syscall (freebsd-amd64), const SIGUSR2 Signal
+pkg syscall (freebsd-amd64), const SIGVTALRM Signal
+pkg syscall (freebsd-amd64), const SIGWINCH Signal
+pkg syscall (freebsd-amd64), const SIGXCPU Signal
+pkg syscall (freebsd-amd64), const SIGXFSZ Signal
+pkg syscall (freebsd-amd64), const SIOCADDMULTI ideal-int
+pkg syscall (freebsd-amd64), const SIOCADDRT ideal-int
+pkg syscall (freebsd-amd64), const SIOCAIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCAIFGROUP ideal-int
+pkg syscall (freebsd-amd64), const SIOCALIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCATMARK ideal-int
+pkg syscall (freebsd-amd64), const SIOCDELMULTI ideal-int
+pkg syscall (freebsd-amd64), const SIOCDELRT ideal-int
+pkg syscall (freebsd-amd64), const SIOCDIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCDIFGROUP ideal-int
+pkg syscall (freebsd-amd64), const SIOCDIFPHYADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCDLIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGDRVSPEC ideal-int
+pkg syscall (freebsd-amd64), const SIOCGETSGCNT ideal-int
+pkg syscall (freebsd-amd64), const SIOCGETVIFCNT ideal-int
+pkg syscall (freebsd-amd64), const SIOCGHIWAT ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFBRDADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFCAP ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFCONF ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFDESCR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFDSTADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFFLAGS ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFGENERIC ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFGMEMB ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFGROUP ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFINDEX ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFMAC ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFMEDIA ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFMETRIC ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFMTU ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFNETMASK ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFPDSTADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFPHYS ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFPSRCADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGIFSTATUS ideal-int
+pkg syscall (freebsd-amd64), const SIOCGLIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGLIFPHYADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCGLOWAT ideal-int
+pkg syscall (freebsd-amd64), const SIOCGPGRP ideal-int
+pkg syscall (freebsd-amd64), const SIOCGPRIVATE_0 ideal-int
+pkg syscall (freebsd-amd64), const SIOCGPRIVATE_1 ideal-int
+pkg syscall (freebsd-amd64), const SIOCIFCREATE ideal-int
+pkg syscall (freebsd-amd64), const SIOCIFCREATE2 ideal-int
+pkg syscall (freebsd-amd64), const SIOCIFDESTROY ideal-int
+pkg syscall (freebsd-amd64), const SIOCIFGCLONERS ideal-int
+pkg syscall (freebsd-amd64), const SIOCSDRVSPEC ideal-int
+pkg syscall (freebsd-amd64), const SIOCSHIWAT ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFBRDADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFCAP ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFDESCR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFDSTADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFFLAGS ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFGENERIC ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFLLADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFMAC ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFMEDIA ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFMETRIC ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFMTU ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFNAME ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFNETMASK ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFPHYADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFPHYS ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFRVNET ideal-int
+pkg syscall (freebsd-amd64), const SIOCSIFVNET ideal-int
+pkg syscall (freebsd-amd64), const SIOCSLIFPHYADDR ideal-int
+pkg syscall (freebsd-amd64), const SIOCSLOWAT ideal-int
+pkg syscall (freebsd-amd64), const SIOCSPGRP ideal-int
+pkg syscall (freebsd-amd64), const SOCK_MAXADDRLEN ideal-int
+pkg syscall (freebsd-amd64), const SOCK_RDM ideal-int
+pkg syscall (freebsd-amd64), const SO_ACCEPTCONN ideal-int
+pkg syscall (freebsd-amd64), const SO_ACCEPTFILTER ideal-int
+pkg syscall (freebsd-amd64), const SO_BINTIME ideal-int
+pkg syscall (freebsd-amd64), const SO_DEBUG ideal-int
+pkg syscall (freebsd-amd64), const SO_ERROR ideal-int
+pkg syscall (freebsd-amd64), const SO_LABEL ideal-int
+pkg syscall (freebsd-amd64), const SO_LISTENINCQLEN ideal-int
+pkg syscall (freebsd-amd64), const SO_LISTENQLEN ideal-int
+pkg syscall (freebsd-amd64), const SO_LISTENQLIMIT ideal-int
+pkg syscall (freebsd-amd64), const SO_NOSIGPIPE ideal-int
+pkg syscall (freebsd-amd64), const SO_NO_DDP ideal-int
+pkg syscall (freebsd-amd64), const SO_NO_OFFLOAD ideal-int
+pkg syscall (freebsd-amd64), const SO_OOBINLINE ideal-int
+pkg syscall (freebsd-amd64), const SO_PEERLABEL ideal-int
+pkg syscall (freebsd-amd64), const SO_RCVLOWAT ideal-int
+pkg syscall (freebsd-amd64), const SO_RCVTIMEO ideal-int
+pkg syscall (freebsd-amd64), const SO_REUSEPORT ideal-int
+pkg syscall (freebsd-amd64), const SO_SETFIB ideal-int
+pkg syscall (freebsd-amd64), const SO_SNDLOWAT ideal-int
+pkg syscall (freebsd-amd64), const SO_SNDTIMEO ideal-int
+pkg syscall (freebsd-amd64), const SO_TIMESTAMP ideal-int
+pkg syscall (freebsd-amd64), const SO_TYPE ideal-int
+pkg syscall (freebsd-amd64), const SO_USELOOPBACK ideal-int
+pkg syscall (freebsd-amd64), const SYS_ABORT2 ideal-int
+pkg syscall (freebsd-amd64), const SYS_ACCEPT ideal-int
+pkg syscall (freebsd-amd64), const SYS_ACCESS ideal-int
+pkg syscall (freebsd-amd64), const SYS_ACCT ideal-int
+pkg syscall (freebsd-amd64), const SYS_ADJTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_AUDIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_AUDITCTL ideal-int
+pkg syscall (freebsd-amd64), const SYS_AUDITON ideal-int
+pkg syscall (freebsd-amd64), const SYS_BIND ideal-int
+pkg syscall (freebsd-amd64), const SYS_CAP_ENTER ideal-int
+pkg syscall (freebsd-amd64), const SYS_CAP_GETMODE ideal-int
+pkg syscall (freebsd-amd64), const SYS_CAP_GETRIGHTS ideal-int
+pkg syscall (freebsd-amd64), const SYS_CAP_NEW ideal-int
+pkg syscall (freebsd-amd64), const SYS_CHDIR ideal-int
+pkg syscall (freebsd-amd64), const SYS_CHFLAGS ideal-int
+pkg syscall (freebsd-amd64), const SYS_CHMOD ideal-int
+pkg syscall (freebsd-amd64), const SYS_CHOWN ideal-int
+pkg syscall (freebsd-amd64), const SYS_CHROOT ideal-int
+pkg syscall (freebsd-amd64), const SYS_CLOCK_GETRES ideal-int
+pkg syscall (freebsd-amd64), const SYS_CLOCK_GETTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_CLOCK_SETTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_CLOSE ideal-int
+pkg syscall (freebsd-amd64), const SYS_CLOSEFROM ideal-int
+pkg syscall (freebsd-amd64), const SYS_CONNECT ideal-int
+pkg syscall (freebsd-amd64), const SYS_CPUSET ideal-int
+pkg syscall (freebsd-amd64), const SYS_CPUSET_GETAFFINITY ideal-int
+pkg syscall (freebsd-amd64), const SYS_CPUSET_GETID ideal-int
+pkg syscall (freebsd-amd64), const SYS_CPUSET_SETAFFINITY ideal-int
+pkg syscall (freebsd-amd64), const SYS_CPUSET_SETID ideal-int
+pkg syscall (freebsd-amd64), const SYS_DUP ideal-int
+pkg syscall (freebsd-amd64), const SYS_DUP2 ideal-int
+pkg syscall (freebsd-amd64), const SYS_EACCESS ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXECVE ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTRCTL ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_DELETE_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_DELETE_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_DELETE_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_GET_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_GET_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_GET_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_LIST_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_LIST_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_LIST_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_SET_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_SET_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS_EXTATTR_SET_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_FACCESSAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCHDIR ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCHFLAGS ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCHMOD ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCHMODAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCHOWN ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCHOWNAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_FCNTL ideal-int
+pkg syscall (freebsd-amd64), const SYS_FEXECVE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FFCLOCK_GETCOUNTER ideal-int
+pkg syscall (freebsd-amd64), const SYS_FFCLOCK_GETESTIMATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FFCLOCK_SETESTIMATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FHOPEN ideal-int
+pkg syscall (freebsd-amd64), const SYS_FHSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_FHSTATFS ideal-int
+pkg syscall (freebsd-amd64), const SYS_FLOCK ideal-int
+pkg syscall (freebsd-amd64), const SYS_FORK ideal-int
+pkg syscall (freebsd-amd64), const SYS_FPATHCONF ideal-int
+pkg syscall (freebsd-amd64), const SYS_FREEBSD6_FTRUNCATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FREEBSD6_LSEEK ideal-int
+pkg syscall (freebsd-amd64), const SYS_FREEBSD6_MMAP ideal-int
+pkg syscall (freebsd-amd64), const SYS_FREEBSD6_PREAD ideal-int
+pkg syscall (freebsd-amd64), const SYS_FREEBSD6_PWRITE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FREEBSD6_TRUNCATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_FSTATAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_FSTATFS ideal-int
+pkg syscall (freebsd-amd64), const SYS_FSYNC ideal-int
+pkg syscall (freebsd-amd64), const SYS_FTRUNCATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_FUTIMES ideal-int
+pkg syscall (freebsd-amd64), const SYS_FUTIMESAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETAUDIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETAUDIT_ADDR ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETAUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETCONTEXT ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETDENTS ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETDIRENTRIES ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETDTABLESIZE ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETEGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETEUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETFH ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETFSSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETGROUPS ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETITIMER ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETLOGIN ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETLOGINCLASS ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETPEERNAME ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETPGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETPGRP ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETPID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETPPID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETPRIORITY ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETRESGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETRESUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETRLIMIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETRUSAGE ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETSID ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETSOCKNAME ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETSOCKOPT ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETTIMEOFDAY ideal-int
+pkg syscall (freebsd-amd64), const SYS_GETUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_IOCTL ideal-int
+pkg syscall (freebsd-amd64), const SYS_ISSETUGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_JAIL ideal-int
+pkg syscall (freebsd-amd64), const SYS_JAIL_ATTACH ideal-int
+pkg syscall (freebsd-amd64), const SYS_JAIL_GET ideal-int
+pkg syscall (freebsd-amd64), const SYS_JAIL_REMOVE ideal-int
+pkg syscall (freebsd-amd64), const SYS_JAIL_SET ideal-int
+pkg syscall (freebsd-amd64), const SYS_KENV ideal-int
+pkg syscall (freebsd-amd64), const SYS_KEVENT ideal-int
+pkg syscall (freebsd-amd64), const SYS_KILL ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDFIND ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDFIRSTMOD ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDLOAD ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDNEXT ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDSYM ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDUNLOAD ideal-int
+pkg syscall (freebsd-amd64), const SYS_KLDUNLOADF ideal-int
+pkg syscall (freebsd-amd64), const SYS_KQUEUE ideal-int
+pkg syscall (freebsd-amd64), const SYS_KTIMER_CREATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_KTIMER_DELETE ideal-int
+pkg syscall (freebsd-amd64), const SYS_KTIMER_GETOVERRUN ideal-int
+pkg syscall (freebsd-amd64), const SYS_KTIMER_GETTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_KTIMER_SETTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_KTRACE ideal-int
+pkg syscall (freebsd-amd64), const SYS_LCHFLAGS ideal-int
+pkg syscall (freebsd-amd64), const SYS_LCHMOD ideal-int
+pkg syscall (freebsd-amd64), const SYS_LCHOWN ideal-int
+pkg syscall (freebsd-amd64), const SYS_LGETFH ideal-int
+pkg syscall (freebsd-amd64), const SYS_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_LINKAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_LISTEN ideal-int
+pkg syscall (freebsd-amd64), const SYS_LPATHCONF ideal-int
+pkg syscall (freebsd-amd64), const SYS_LSEEK ideal-int
+pkg syscall (freebsd-amd64), const SYS_LSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_LUTIMES ideal-int
+pkg syscall (freebsd-amd64), const SYS_MAC_SYSCALL ideal-int
+pkg syscall (freebsd-amd64), const SYS_MADVISE ideal-int
+pkg syscall (freebsd-amd64), const SYS_MINCORE ideal-int
+pkg syscall (freebsd-amd64), const SYS_MINHERIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MKDIR ideal-int
+pkg syscall (freebsd-amd64), const SYS_MKDIRAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MKFIFO ideal-int
+pkg syscall (freebsd-amd64), const SYS_MKFIFOAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MKNOD ideal-int
+pkg syscall (freebsd-amd64), const SYS_MKNODAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MLOCK ideal-int
+pkg syscall (freebsd-amd64), const SYS_MLOCKALL ideal-int
+pkg syscall (freebsd-amd64), const SYS_MMAP ideal-int
+pkg syscall (freebsd-amd64), const SYS_MODFIND ideal-int
+pkg syscall (freebsd-amd64), const SYS_MODFNEXT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MODNEXT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MODSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MOUNT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MPROTECT ideal-int
+pkg syscall (freebsd-amd64), const SYS_MSYNC ideal-int
+pkg syscall (freebsd-amd64), const SYS_MUNLOCK ideal-int
+pkg syscall (freebsd-amd64), const SYS_MUNLOCKALL ideal-int
+pkg syscall (freebsd-amd64), const SYS_MUNMAP ideal-int
+pkg syscall (freebsd-amd64), const SYS_NANOSLEEP ideal-int
+pkg syscall (freebsd-amd64), const SYS_NFSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_NLSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_NMOUNT ideal-int
+pkg syscall (freebsd-amd64), const SYS_NSTAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_NTP_ADJTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_NTP_GETTIME ideal-int
+pkg syscall (freebsd-amd64), const SYS_OBREAK ideal-int
+pkg syscall (freebsd-amd64), const SYS_OPEN ideal-int
+pkg syscall (freebsd-amd64), const SYS_OPENAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_OPENBSD_POLL ideal-int
+pkg syscall (freebsd-amd64), const SYS_OVADVISE ideal-int
+pkg syscall (freebsd-amd64), const SYS_PATHCONF ideal-int
+pkg syscall (freebsd-amd64), const SYS_PDFORK ideal-int
+pkg syscall (freebsd-amd64), const SYS_PDGETPID ideal-int
+pkg syscall (freebsd-amd64), const SYS_PDKILL ideal-int
+pkg syscall (freebsd-amd64), const SYS_PIPE ideal-int
+pkg syscall (freebsd-amd64), const SYS_POLL ideal-int
+pkg syscall (freebsd-amd64), const SYS_POSIX_FADVISE ideal-int
+pkg syscall (freebsd-amd64), const SYS_POSIX_FALLOCATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_POSIX_OPENPT ideal-int
+pkg syscall (freebsd-amd64), const SYS_PREAD ideal-int
+pkg syscall (freebsd-amd64), const SYS_PREADV ideal-int
+pkg syscall (freebsd-amd64), const SYS_PROFIL ideal-int
+pkg syscall (freebsd-amd64), const SYS_PSELECT ideal-int
+pkg syscall (freebsd-amd64), const SYS_PTRACE ideal-int
+pkg syscall (freebsd-amd64), const SYS_PWRITE ideal-int
+pkg syscall (freebsd-amd64), const SYS_PWRITEV ideal-int
+pkg syscall (freebsd-amd64), const SYS_QUOTACTL ideal-int
+pkg syscall (freebsd-amd64), const SYS_RCTL_ADD_RULE ideal-int
+pkg syscall (freebsd-amd64), const SYS_RCTL_GET_LIMITS ideal-int
+pkg syscall (freebsd-amd64), const SYS_RCTL_GET_RACCT ideal-int
+pkg syscall (freebsd-amd64), const SYS_RCTL_GET_RULES ideal-int
+pkg syscall (freebsd-amd64), const SYS_RCTL_REMOVE_RULE ideal-int
+pkg syscall (freebsd-amd64), const SYS_READ ideal-int
+pkg syscall (freebsd-amd64), const SYS_READLINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_READLINKAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_READV ideal-int
+pkg syscall (freebsd-amd64), const SYS_REBOOT ideal-int
+pkg syscall (freebsd-amd64), const SYS_RECVFROM ideal-int
+pkg syscall (freebsd-amd64), const SYS_RECVMSG ideal-int
+pkg syscall (freebsd-amd64), const SYS_RENAME ideal-int
+pkg syscall (freebsd-amd64), const SYS_RENAMEAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_REVOKE ideal-int
+pkg syscall (freebsd-amd64), const SYS_RFORK ideal-int
+pkg syscall (freebsd-amd64), const SYS_RMDIR ideal-int
+pkg syscall (freebsd-amd64), const SYS_RTPRIO ideal-int
+pkg syscall (freebsd-amd64), const SYS_RTPRIO_THREAD ideal-int
+pkg syscall (freebsd-amd64), const SYS_SBRK ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_GETPARAM ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_GETSCHEDULER ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_RR_GET_INTERVAL ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_SETPARAM ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_SETSCHEDULER ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCHED_YIELD ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCTP_GENERIC_RECVMSG ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCTP_GENERIC_SENDMSG ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCTP_GENERIC_SENDMSG_IOV ideal-int
+pkg syscall (freebsd-amd64), const SYS_SCTP_PEELOFF ideal-int
+pkg syscall (freebsd-amd64), const SYS_SELECT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SENDFILE ideal-int
+pkg syscall (freebsd-amd64), const SYS_SENDMSG ideal-int
+pkg syscall (freebsd-amd64), const SYS_SENDTO ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETAUDIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETAUDIT_ADDR ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETAUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETCONTEXT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETEGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETEUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETFIB ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETGROUPS ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETITIMER ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETLOGIN ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETLOGINCLASS ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETPGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETPRIORITY ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETREGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETRESGID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETRESUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETREUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETRLIMIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETSID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETSOCKOPT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETTIMEOFDAY ideal-int
+pkg syscall (freebsd-amd64), const SYS_SETUID ideal-int
+pkg syscall (freebsd-amd64), const SYS_SHM_OPEN ideal-int
+pkg syscall (freebsd-amd64), const SYS_SHM_UNLINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_SHUTDOWN ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGACTION ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGALTSTACK ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGPENDING ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGPROCMASK ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGQUEUE ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGRETURN ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGSUSPEND ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGTIMEDWAIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGWAIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SIGWAITINFO ideal-int
+pkg syscall (freebsd-amd64), const SYS_SOCKET ideal-int
+pkg syscall (freebsd-amd64), const SYS_SOCKETPAIR ideal-int
+pkg syscall (freebsd-amd64), const SYS_SSTK ideal-int
+pkg syscall (freebsd-amd64), const SYS_STAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_STATFS ideal-int
+pkg syscall (freebsd-amd64), const SYS_SWAPCONTEXT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SWAPOFF ideal-int
+pkg syscall (freebsd-amd64), const SYS_SWAPON ideal-int
+pkg syscall (freebsd-amd64), const SYS_SYMLINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_SYMLINKAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_SYNC ideal-int
+pkg syscall (freebsd-amd64), const SYS_SYSARCH ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_CREATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_EXIT ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_KILL ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_KILL2 ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_NEW ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_SELF ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_SET_NAME ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_SUSPEND ideal-int
+pkg syscall (freebsd-amd64), const SYS_THR_WAKE ideal-int
+pkg syscall (freebsd-amd64), const SYS_TRUNCATE ideal-int
+pkg syscall (freebsd-amd64), const SYS_UMASK ideal-int
+pkg syscall (freebsd-amd64), const SYS_UNDELETE ideal-int
+pkg syscall (freebsd-amd64), const SYS_UNLINK ideal-int
+pkg syscall (freebsd-amd64), const SYS_UNLINKAT ideal-int
+pkg syscall (freebsd-amd64), const SYS_UNMOUNT ideal-int
+pkg syscall (freebsd-amd64), const SYS_UTIMES ideal-int
+pkg syscall (freebsd-amd64), const SYS_UTRACE ideal-int
+pkg syscall (freebsd-amd64), const SYS_UUIDGEN ideal-int
+pkg syscall (freebsd-amd64), const SYS_VFORK ideal-int
+pkg syscall (freebsd-amd64), const SYS_WAIT4 ideal-int
+pkg syscall (freebsd-amd64), const SYS_WRITE ideal-int
+pkg syscall (freebsd-amd64), const SYS_WRITEV ideal-int
+pkg syscall (freebsd-amd64), const SYS_YIELD ideal-int
+pkg syscall (freebsd-amd64), const SYS__UMTX_LOCK ideal-int
+pkg syscall (freebsd-amd64), const SYS__UMTX_OP ideal-int
+pkg syscall (freebsd-amd64), const SYS__UMTX_UNLOCK ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_ACLCHECK_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_ACLCHECK_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_ACLCHECK_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_DELETE_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_DELETE_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_DELETE_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_GET_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_GET_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_GET_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_SET_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_SET_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS___ACL_SET_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS___GETCWD ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_EXECVE ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_GET_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_GET_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_GET_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_GET_PID ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_GET_PROC ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_SET_FD ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_SET_FILE ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_SET_LINK ideal-int
+pkg syscall (freebsd-amd64), const SYS___MAC_SET_PROC ideal-int
+pkg syscall (freebsd-amd64), const SYS___SETUGID ideal-int
+pkg syscall (freebsd-amd64), const SYS___SYSCTL ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfHdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfInsn ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfProgram ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfStat ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfVersion ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfZbuf ideal-int
+pkg syscall (freebsd-amd64), const SizeofBpfZbufHeader ideal-int
+pkg syscall (freebsd-amd64), const SizeofCmsghdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofIPMreq ideal-int
+pkg syscall (freebsd-amd64), const SizeofIPMreqn ideal-int
+pkg syscall (freebsd-amd64), const SizeofIPv6Mreq ideal-int
+pkg syscall (freebsd-amd64), const SizeofIfData ideal-int
+pkg syscall (freebsd-amd64), const SizeofIfMsghdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofIfaMsghdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofIfmaMsghdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofInet6Pktinfo ideal-int
+pkg syscall (freebsd-amd64), const SizeofLinger ideal-int
+pkg syscall (freebsd-amd64), const SizeofMsghdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofRtMetrics ideal-int
+pkg syscall (freebsd-amd64), const SizeofRtMsghdr ideal-int
+pkg syscall (freebsd-amd64), const SizeofSockaddrAny ideal-int
+pkg syscall (freebsd-amd64), const SizeofSockaddrDatalink ideal-int
+pkg syscall (freebsd-amd64), const SizeofSockaddrInet4 ideal-int
+pkg syscall (freebsd-amd64), const SizeofSockaddrInet6 ideal-int
+pkg syscall (freebsd-amd64), const SizeofSockaddrUnix ideal-int
+pkg syscall (freebsd-amd64), const TCP_CA_NAME_MAX ideal-int
+pkg syscall (freebsd-amd64), const TCP_CONGESTION ideal-int
+pkg syscall (freebsd-amd64), const TCP_INFO ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAXBURST ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAXHLEN ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAXOLEN ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAXSEG ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAXWIN ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAX_SACK ideal-int
+pkg syscall (freebsd-amd64), const TCP_MAX_WINSHIFT ideal-int
+pkg syscall (freebsd-amd64), const TCP_MD5SIG ideal-int
+pkg syscall (freebsd-amd64), const TCP_MINMSS ideal-int
+pkg syscall (freebsd-amd64), const TCP_MSS ideal-int
+pkg syscall (freebsd-amd64), const TCP_NOOPT ideal-int
+pkg syscall (freebsd-amd64), const TCP_NOPUSH ideal-int
+pkg syscall (freebsd-amd64), const TIOCCBRK ideal-int
+pkg syscall (freebsd-amd64), const TIOCCDTR ideal-int
+pkg syscall (freebsd-amd64), const TIOCCONS ideal-int
+pkg syscall (freebsd-amd64), const TIOCDRAIN ideal-int
+pkg syscall (freebsd-amd64), const TIOCEXCL ideal-int
+pkg syscall (freebsd-amd64), const TIOCEXT ideal-int
+pkg syscall (freebsd-amd64), const TIOCFLUSH ideal-int
+pkg syscall (freebsd-amd64), const TIOCGDRAINWAIT ideal-int
+pkg syscall (freebsd-amd64), const TIOCGETA ideal-int
+pkg syscall (freebsd-amd64), const TIOCGETD ideal-int
+pkg syscall (freebsd-amd64), const TIOCGPGRP ideal-int
+pkg syscall (freebsd-amd64), const TIOCGPTN ideal-int
+pkg syscall (freebsd-amd64), const TIOCGSID ideal-int
+pkg syscall (freebsd-amd64), const TIOCGWINSZ ideal-int
+pkg syscall (freebsd-amd64), const TIOCMBIC ideal-int
+pkg syscall (freebsd-amd64), const TIOCMBIS ideal-int
+pkg syscall (freebsd-amd64), const TIOCMGDTRWAIT ideal-int
+pkg syscall (freebsd-amd64), const TIOCMGET ideal-int
+pkg syscall (freebsd-amd64), const TIOCMSDTRWAIT ideal-int
+pkg syscall (freebsd-amd64), const TIOCMSET ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_CAR ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_CD ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_CTS ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_DCD ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_DSR ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_DTR ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_LE ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_RI ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_RNG ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_RTS ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_SR ideal-int
+pkg syscall (freebsd-amd64), const TIOCM_ST ideal-int
+pkg syscall (freebsd-amd64), const TIOCNOTTY ideal-int
+pkg syscall (freebsd-amd64), const TIOCNXCL ideal-int
+pkg syscall (freebsd-amd64), const TIOCOUTQ ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_DATA ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_DOSTOP ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_FLUSHREAD ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_FLUSHWRITE ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_IOCTL ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_NOSTOP ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_START ideal-int
+pkg syscall (freebsd-amd64), const TIOCPKT_STOP ideal-int
+pkg syscall (freebsd-amd64), const TIOCPTMASTER ideal-int
+pkg syscall (freebsd-amd64), const TIOCSBRK ideal-int
+pkg syscall (freebsd-amd64), const TIOCSCTTY ideal-int
+pkg syscall (freebsd-amd64), const TIOCSDRAINWAIT ideal-int
+pkg syscall (freebsd-amd64), const TIOCSDTR ideal-int
+pkg syscall (freebsd-amd64), const TIOCSETA ideal-int
+pkg syscall (freebsd-amd64), const TIOCSETAF ideal-int
+pkg syscall (freebsd-amd64), const TIOCSETAW ideal-int
+pkg syscall (freebsd-amd64), const TIOCSETD ideal-int
+pkg syscall (freebsd-amd64), const TIOCSIG ideal-int
+pkg syscall (freebsd-amd64), const TIOCSPGRP ideal-int
+pkg syscall (freebsd-amd64), const TIOCSTART ideal-int
+pkg syscall (freebsd-amd64), const TIOCSTAT ideal-int
+pkg syscall (freebsd-amd64), const TIOCSTI ideal-int
+pkg syscall (freebsd-amd64), const TIOCSTOP ideal-int
+pkg syscall (freebsd-amd64), const TIOCSWINSZ ideal-int
+pkg syscall (freebsd-amd64), const TIOCTIMESTAMP ideal-int
+pkg syscall (freebsd-amd64), const TIOCUCNTL ideal-int
+pkg syscall (freebsd-amd64), const WCONTINUED ideal-int
+pkg syscall (freebsd-amd64), const WCOREFLAG ideal-int
+pkg syscall (freebsd-amd64), const WLINUXCLONE ideal-int
+pkg syscall (freebsd-amd64), const WNOHANG ideal-int
+pkg syscall (freebsd-amd64), const WNOWAIT ideal-int
+pkg syscall (freebsd-amd64), const WSTOPPED ideal-int
+pkg syscall (freebsd-amd64), const WUNTRACED ideal-int
+pkg syscall (freebsd-amd64), func Accept(int) (int, Sockaddr, error)
+pkg syscall (freebsd-amd64), func Access(string, uint32) error
+pkg syscall (freebsd-amd64), func Adjtime(*Timeval, *Timeval) error
+pkg syscall (freebsd-amd64), func Bind(int, Sockaddr) error
+pkg syscall (freebsd-amd64), func BpfBuflen(int) (int, error)
+pkg syscall (freebsd-amd64), func BpfDatalink(int) (int, error)
+pkg syscall (freebsd-amd64), func BpfHeadercmpl(int) (int, error)
+pkg syscall (freebsd-amd64), func BpfInterface(int, string) (string, error)
+pkg syscall (freebsd-amd64), func BpfJump(int) *BpfInsn
+pkg syscall (freebsd-amd64), func BpfStats(int) (*BpfStat, error)
+pkg syscall (freebsd-amd64), func BpfStmt(int) *BpfInsn
+pkg syscall (freebsd-amd64), func BpfTimeout(int) (*Timeval, error)
+pkg syscall (freebsd-amd64), func CheckBpfVersion(int) error
+pkg syscall (freebsd-amd64), func Chflags(string, int) error
+pkg syscall (freebsd-amd64), func Chroot(string) error
+pkg syscall (freebsd-amd64), func Close(int) error
+pkg syscall (freebsd-amd64), func CloseOnExec(int)
+pkg syscall (freebsd-amd64), func CmsgLen(int) int
+pkg syscall (freebsd-amd64), func CmsgSpace(int) int
+pkg syscall (freebsd-amd64), func Connect(int, Sockaddr) error
+pkg syscall (freebsd-amd64), func Dup(int) (int, error)
+pkg syscall (freebsd-amd64), func Dup2(int, int) error
+pkg syscall (freebsd-amd64), func Fchdir(int) error
+pkg syscall (freebsd-amd64), func Fchflags(string, int) error
+pkg syscall (freebsd-amd64), func Fchmod(int, uint32) error
+pkg syscall (freebsd-amd64), func Fchown(int, int, int) error
+pkg syscall (freebsd-amd64), func Flock(int, int) error
+pkg syscall (freebsd-amd64), func FlushBpf(int) error
+pkg syscall (freebsd-amd64), func ForkExec(string, []string, *ProcAttr) (int, error)
+pkg syscall (freebsd-amd64), func Fpathconf(int, int) (int, error)
+pkg syscall (freebsd-amd64), func Fstat(int, *Stat_t) error
+pkg syscall (freebsd-amd64), func Fstatfs(int, *Statfs_t) error
+pkg syscall (freebsd-amd64), func Fsync(int) error
+pkg syscall (freebsd-amd64), func Ftruncate(int, int64) error
+pkg syscall (freebsd-amd64), func Futimes(int, []Timeval) error
+pkg syscall (freebsd-amd64), func Getdirentries(int, []byte, *uintptr) (int, error)
+pkg syscall (freebsd-amd64), func Getdtablesize() int
+pkg syscall (freebsd-amd64), func Getfsstat([]Statfs_t, int) (int, error)
+pkg syscall (freebsd-amd64), func Getpeername(int) (Sockaddr, error)
+pkg syscall (freebsd-amd64), func Getpgid(int) (int, error)
+pkg syscall (freebsd-amd64), func Getpgrp() int
+pkg syscall (freebsd-amd64), func Getpriority(int, int) (int, error)
+pkg syscall (freebsd-amd64), func Getrlimit(int, *Rlimit) error
+pkg syscall (freebsd-amd64), func Getrusage(int, *Rusage) error
+pkg syscall (freebsd-amd64), func Getsid(int) (int, error)
+pkg syscall (freebsd-amd64), func Getsockname(int) (Sockaddr, error)
+pkg syscall (freebsd-amd64), func GetsockoptByte(int) (byte, error)
+pkg syscall (freebsd-amd64), func GetsockoptIPMreq(int) (*IPMreq, error)
+pkg syscall (freebsd-amd64), func GetsockoptIPMreqn(int) (*IPMreqn, error)
+pkg syscall (freebsd-amd64), func GetsockoptIPv6Mreq(int) (*IPv6Mreq, error)
+pkg syscall (freebsd-amd64), func GetsockoptInet4Addr(int) ([4]byte, error)
+pkg syscall (freebsd-amd64), func GetsockoptInt(int) (int, error)
+pkg syscall (freebsd-amd64), func Issetugid() bool
+pkg syscall (freebsd-amd64), func Kevent(int, []Kevent_t, *Timespec) (int, error)
+pkg syscall (freebsd-amd64), func Kill(int, Signal) error
+pkg syscall (freebsd-amd64), func Kqueue() (int, error)
+pkg syscall (freebsd-amd64), func Link(string, string) error
+pkg syscall (freebsd-amd64), func Listen(int, int) error
+pkg syscall (freebsd-amd64), func Lstat(string, *Stat_t) error
+pkg syscall (freebsd-amd64), func Mkfifo(string, uint32) error
+pkg syscall (freebsd-amd64), func Mknod(string, uint32, int) error
+pkg syscall (freebsd-amd64), func Mmap(int, int64, int, int, int) ([]byte, error)
+pkg syscall (freebsd-amd64), func Munmap([]byte) error
+pkg syscall (freebsd-amd64), func Nanosleep(*Timespec, *Timespec) error
+pkg syscall (freebsd-amd64), func NsecToTimespec(int64) Timespec
+pkg syscall (freebsd-amd64), func Open(string, int, uint32) (int, error)
+pkg syscall (freebsd-amd64), func ParseDirent([]byte, int, []string) (int, int, []string)
+pkg syscall (freebsd-amd64), func ParseRoutingMessage([]byte) ([]RoutingMessage, error)
+pkg syscall (freebsd-amd64), func ParseRoutingSockaddr(RoutingMessage) ([]Sockaddr, error)
+pkg syscall (freebsd-amd64), func ParseSocketControlMessage([]byte) ([]SocketControlMessage, error)
+pkg syscall (freebsd-amd64), func ParseUnixRights(*SocketControlMessage) ([]int, error)
+pkg syscall (freebsd-amd64), func Pathconf(string, int) (int, error)
+pkg syscall (freebsd-amd64), func Pipe([]int) error
+pkg syscall (freebsd-amd64), func Pread(int, []byte, int64) (int, error)
+pkg syscall (freebsd-amd64), func Pwrite(int, []byte, int64) (int, error)
+pkg syscall (freebsd-amd64), func RawSyscall(uintptr) (uintptr, Errno)
+pkg syscall (freebsd-amd64), func RawSyscall6(uintptr) (uintptr, Errno)
+pkg syscall (freebsd-amd64), func Read(int, []byte) (int, error)
+pkg syscall (freebsd-amd64), func ReadDirent(int, []byte) (int, error)
+pkg syscall (freebsd-amd64), func Recvfrom(int, []byte, int) (int, Sockaddr, error)
+pkg syscall (freebsd-amd64), func Recvmsg(int, []byte, int) (int, int, Sockaddr, error)
+pkg syscall (freebsd-amd64), func Rename(string, string) error
+pkg syscall (freebsd-amd64), func Revoke(string) error
+pkg syscall (freebsd-amd64), func RouteRIB(int) ([]byte, error)
+pkg syscall (freebsd-amd64), func Seek(int, int64, int) (int64, error)
+pkg syscall (freebsd-amd64), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) error
+pkg syscall (freebsd-amd64), func Sendfile(int, int, *int64, int) (int, error)
+pkg syscall (freebsd-amd64), func Sendmsg(int, []byte, Sockaddr, int) error
+pkg syscall (freebsd-amd64), func Sendto(int, []byte, int, Sockaddr) error
+pkg syscall (freebsd-amd64), func SetBpf(int, []BpfInsn) error
+pkg syscall (freebsd-amd64), func SetBpfBuflen(int) (int, error)
+pkg syscall (freebsd-amd64), func SetBpfDatalink(int) (int, error)
+pkg syscall (freebsd-amd64), func SetBpfHeadercmpl(int) error
+pkg syscall (freebsd-amd64), func SetBpfImmediate(int) error
+pkg syscall (freebsd-amd64), func SetBpfInterface(int, string) error
+pkg syscall (freebsd-amd64), func SetBpfPromisc(int) error
+pkg syscall (freebsd-amd64), func SetBpfTimeout(int, *Timeval) error
+pkg syscall (freebsd-amd64), func SetKevent(*Kevent_t, int)
+pkg syscall (freebsd-amd64), func SetNonblock(int, bool) error
+pkg syscall (freebsd-amd64), func Setegid(int) error
+pkg syscall (freebsd-amd64), func Seteuid(int) error
+pkg syscall (freebsd-amd64), func Setgid(int) error
+pkg syscall (freebsd-amd64), func Setgroups([]int) error
+pkg syscall (freebsd-amd64), func Setlogin(string) error
+pkg syscall (freebsd-amd64), func Setpgid(int, int) error
+pkg syscall (freebsd-amd64), func Setpriority(int, int, int) error
+pkg syscall (freebsd-amd64), func Setregid(int, int) error
+pkg syscall (freebsd-amd64), func Setreuid(int, int) error
+pkg syscall (freebsd-amd64), func Setrlimit(int, *Rlimit) error
+pkg syscall (freebsd-amd64), func Setsid() (int, error)
+pkg syscall (freebsd-amd64), func SetsockoptByte(int, byte) error
+pkg syscall (freebsd-amd64), func SetsockoptIPMreq(int, *IPMreq) error
+pkg syscall (freebsd-amd64), func SetsockoptIPMreqn(int, *IPMreqn) error
+pkg syscall (freebsd-amd64), func SetsockoptIPv6Mreq(int, *IPv6Mreq) error
+pkg syscall (freebsd-amd64), func SetsockoptInet4Addr(int, [4]byte) error
+pkg syscall (freebsd-amd64), func SetsockoptInt(int, int) error
+pkg syscall (freebsd-amd64), func SetsockoptLinger(int, *Linger) error
+pkg syscall (freebsd-amd64), func SetsockoptString(int, string) error
+pkg syscall (freebsd-amd64), func SetsockoptTimeval(int, *Timeval) error
+pkg syscall (freebsd-amd64), func Settimeofday(*Timeval) error
+pkg syscall (freebsd-amd64), func Setuid(int) error
+pkg syscall (freebsd-amd64), func Shutdown(int, int) error
+pkg syscall (freebsd-amd64), func Socket(int) (int, error)
+pkg syscall (freebsd-amd64), func Socketpair(int) ([2]int, error)
+pkg syscall (freebsd-amd64), func Stat(string, *Stat_t) error
+pkg syscall (freebsd-amd64), func Statfs(string, *Statfs_t) error
+pkg syscall (freebsd-amd64), func StringSlicePtr([]string) []*byte
+pkg syscall (freebsd-amd64), func Symlink(string, string) error
+pkg syscall (freebsd-amd64), func Sync() error
+pkg syscall (freebsd-amd64), func Sysctl(string) (string, error)
+pkg syscall (freebsd-amd64), func SysctlUint32(string) (uint32, error)
+pkg syscall (freebsd-amd64), func TimespecToNsec(Timespec) int64
+pkg syscall (freebsd-amd64), func TimevalToNsec(Timeval) int64
+pkg syscall (freebsd-amd64), func Truncate(string, int64) error
+pkg syscall (freebsd-amd64), func Umask(int) int
+pkg syscall (freebsd-amd64), func Undelete(string) error
+pkg syscall (freebsd-amd64), func UnixRights(...int) []byte
+pkg syscall (freebsd-amd64), func Unmount(string, int) error
+pkg syscall (freebsd-amd64), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
+pkg syscall (freebsd-amd64), func Write(int, []byte) (int, error)
+pkg syscall (freebsd-amd64), method (*Cmsghdr) SetLen(int)
+pkg syscall (freebsd-amd64), method (*Iovec) SetLen(int)
+pkg syscall (freebsd-amd64), method (*Msghdr) SetControllen(int)
+pkg syscall (freebsd-amd64), type BpfHdr struct
+pkg syscall (freebsd-amd64), type BpfHdr struct, Caplen uint32
+pkg syscall (freebsd-amd64), type BpfHdr struct, Datalen uint32
+pkg syscall (freebsd-amd64), type BpfHdr struct, Hdrlen uint16
+pkg syscall (freebsd-amd64), type BpfHdr struct, Pad_cgo_0 [6]byte
+pkg syscall (freebsd-amd64), type BpfHdr struct, Tstamp Timeval
+pkg syscall (freebsd-amd64), type BpfInsn struct
+pkg syscall (freebsd-amd64), type BpfInsn struct, Code uint16
+pkg syscall (freebsd-amd64), type BpfInsn struct, Jf uint8
+pkg syscall (freebsd-amd64), type BpfInsn struct, Jt uint8
+pkg syscall (freebsd-amd64), type BpfInsn struct, K uint32
+pkg syscall (freebsd-amd64), type BpfProgram struct
+pkg syscall (freebsd-amd64), type BpfProgram struct, Insns *BpfInsn
+pkg syscall (freebsd-amd64), type BpfProgram struct, Len uint32
+pkg syscall (freebsd-amd64), type BpfProgram struct, Pad_cgo_0 [4]byte
+pkg syscall (freebsd-amd64), type BpfStat struct
+pkg syscall (freebsd-amd64), type BpfStat struct, Drop uint32
+pkg syscall (freebsd-amd64), type BpfStat struct, Recv uint32
+pkg syscall (freebsd-amd64), type BpfVersion struct
+pkg syscall (freebsd-amd64), type BpfVersion struct, Major uint16
+pkg syscall (freebsd-amd64), type BpfVersion struct, Minor uint16
+pkg syscall (freebsd-amd64), type BpfZbuf struct
+pkg syscall (freebsd-amd64), type BpfZbuf struct, Bufa *byte
+pkg syscall (freebsd-amd64), type BpfZbuf struct, Bufb *byte
+pkg syscall (freebsd-amd64), type BpfZbuf struct, Buflen uint64
+pkg syscall (freebsd-amd64), type BpfZbufHeader struct
+pkg syscall (freebsd-amd64), type BpfZbufHeader struct, Kernel_gen uint32
+pkg syscall (freebsd-amd64), type BpfZbufHeader struct, Kernel_len uint32
+pkg syscall (freebsd-amd64), type BpfZbufHeader struct, User_gen uint32
+pkg syscall (freebsd-amd64), type BpfZbufHeader struct, X_bzh_pad [5]uint32
+pkg syscall (freebsd-amd64), type Cmsghdr struct
+pkg syscall (freebsd-amd64), type Cmsghdr struct, Len uint32
+pkg syscall (freebsd-amd64), type Cmsghdr struct, Level int32
+pkg syscall (freebsd-amd64), type Cmsghdr struct, Type int32
+pkg syscall (freebsd-amd64), type Credential struct
+pkg syscall (freebsd-amd64), type Credential struct, Gid uint32
+pkg syscall (freebsd-amd64), type Credential struct, Groups []uint32
+pkg syscall (freebsd-amd64), type Credential struct, Uid uint32
+pkg syscall (freebsd-amd64), type Dirent struct
+pkg syscall (freebsd-amd64), type Dirent struct, Fileno uint32
+pkg syscall (freebsd-amd64), type Dirent struct, Name [256]int8
+pkg syscall (freebsd-amd64), type Dirent struct, Namlen uint8
+pkg syscall (freebsd-amd64), type Dirent struct, Reclen uint16
+pkg syscall (freebsd-amd64), type Dirent struct, Type uint8
+pkg syscall (freebsd-amd64), type FdSet struct
+pkg syscall (freebsd-amd64), type FdSet struct, X__fds_bits [16]uint64
+pkg syscall (freebsd-amd64), type Flock_t struct
+pkg syscall (freebsd-amd64), type Flock_t struct, Len int64
+pkg syscall (freebsd-amd64), type Flock_t struct, Pad_cgo_0 [4]byte
+pkg syscall (freebsd-amd64), type Flock_t struct, Pid int32
+pkg syscall (freebsd-amd64), type Flock_t struct, Start int64
+pkg syscall (freebsd-amd64), type Flock_t struct, Sysid int32
+pkg syscall (freebsd-amd64), type Flock_t struct, Type int16
+pkg syscall (freebsd-amd64), type Flock_t struct, Whence int16
+pkg syscall (freebsd-amd64), type Fsid struct
+pkg syscall (freebsd-amd64), type Fsid struct, Val [2]int32
+pkg syscall (freebsd-amd64), type IPMreqn struct
+pkg syscall (freebsd-amd64), type IPMreqn struct, Address [4]byte
+pkg syscall (freebsd-amd64), type IPMreqn struct, Ifindex int32
+pkg syscall (freebsd-amd64), type IPMreqn struct, Multiaddr [4]byte
+pkg syscall (freebsd-amd64), type IfData struct
+pkg syscall (freebsd-amd64), type IfData struct, Addrlen uint8
+pkg syscall (freebsd-amd64), type IfData struct, Baudrate uint64
+pkg syscall (freebsd-amd64), type IfData struct, Collisions uint64
+pkg syscall (freebsd-amd64), type IfData struct, Datalen uint8
+pkg syscall (freebsd-amd64), type IfData struct, Epoch int64
+pkg syscall (freebsd-amd64), type IfData struct, Hdrlen uint8
+pkg syscall (freebsd-amd64), type IfData struct, Hwassist uint64
+pkg syscall (freebsd-amd64), type IfData struct, Ibytes uint64
+pkg syscall (freebsd-amd64), type IfData struct, Ierrors uint64
+pkg syscall (freebsd-amd64), type IfData struct, Imcasts uint64
+pkg syscall (freebsd-amd64), type IfData struct, Ipackets uint64
+pkg syscall (freebsd-amd64), type IfData struct, Iqdrops uint64
+pkg syscall (freebsd-amd64), type IfData struct, Lastchange Timeval
+pkg syscall (freebsd-amd64), type IfData struct, Link_state uint8
+pkg syscall (freebsd-amd64), type IfData struct, Metric uint64
+pkg syscall (freebsd-amd64), type IfData struct, Mtu uint64
+pkg syscall (freebsd-amd64), type IfData struct, Noproto uint64
+pkg syscall (freebsd-amd64), type IfData struct, Obytes uint64
+pkg syscall (freebsd-amd64), type IfData struct, Oerrors uint64
+pkg syscall (freebsd-amd64), type IfData struct, Omcasts uint64
+pkg syscall (freebsd-amd64), type IfData struct, Opackets uint64
+pkg syscall (freebsd-amd64), type IfData struct, Physical uint8
+pkg syscall (freebsd-amd64), type IfData struct, Spare_char1 uint8
+pkg syscall (freebsd-amd64), type IfData struct, Spare_char2 uint8
+pkg syscall (freebsd-amd64), type IfData struct, Type uint8
+pkg syscall (freebsd-amd64), type IfMsghdr struct
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Addrs int32
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Data IfData
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Flags int32
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Index uint16
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Msglen uint16
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Type uint8
+pkg syscall (freebsd-amd64), type IfMsghdr struct, Version uint8
+pkg syscall (freebsd-amd64), type IfaMsghdr struct
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Addrs int32
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Flags int32
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Index uint16
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Metric int32
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Msglen uint16
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Type uint8
+pkg syscall (freebsd-amd64), type IfaMsghdr struct, Version uint8
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Addrs int32
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Flags int32
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Index uint16
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Msglen uint16
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Type uint8
+pkg syscall (freebsd-amd64), type IfmaMsghdr struct, Version uint8
+pkg syscall (freebsd-amd64), type Inet6Pktinfo struct
+pkg syscall (freebsd-amd64), type Inet6Pktinfo struct, Addr [16]byte
+pkg syscall (freebsd-amd64), type Inet6Pktinfo struct, Ifindex uint32
+pkg syscall (freebsd-amd64), type InterfaceAddrMessage struct
+pkg syscall (freebsd-amd64), type InterfaceAddrMessage struct, Data []byte
+pkg syscall (freebsd-amd64), type InterfaceAddrMessage struct, Header IfaMsghdr
+pkg syscall (freebsd-amd64), type InterfaceMessage struct
+pkg syscall (freebsd-amd64), type InterfaceMessage struct, Data []byte
+pkg syscall (freebsd-amd64), type InterfaceMessage struct, Header IfMsghdr
+pkg syscall (freebsd-amd64), type InterfaceMulticastAddrMessage struct
+pkg syscall (freebsd-amd64), type InterfaceMulticastAddrMessage struct, Data []byte
+pkg syscall (freebsd-amd64), type InterfaceMulticastAddrMessage struct, Header IfmaMsghdr
+pkg syscall (freebsd-amd64), type Iovec struct
+pkg syscall (freebsd-amd64), type Iovec struct, Base *byte
+pkg syscall (freebsd-amd64), type Iovec struct, Len uint64
+pkg syscall (freebsd-amd64), type Kevent_t struct
+pkg syscall (freebsd-amd64), type Kevent_t struct, Data int64
+pkg syscall (freebsd-amd64), type Kevent_t struct, Fflags uint32
+pkg syscall (freebsd-amd64), type Kevent_t struct, Filter int16
+pkg syscall (freebsd-amd64), type Kevent_t struct, Flags uint16
+pkg syscall (freebsd-amd64), type Kevent_t struct, Ident uint64
+pkg syscall (freebsd-amd64), type Kevent_t struct, Udata *byte
+pkg syscall (freebsd-amd64), type Msghdr struct
+pkg syscall (freebsd-amd64), type Msghdr struct, Control *byte
+pkg syscall (freebsd-amd64), type Msghdr struct, Controllen uint32
+pkg syscall (freebsd-amd64), type Msghdr struct, Flags int32
+pkg syscall (freebsd-amd64), type Msghdr struct, Iov *Iovec
+pkg syscall (freebsd-amd64), type Msghdr struct, Iovlen int32
+pkg syscall (freebsd-amd64), type Msghdr struct, Name *byte
+pkg syscall (freebsd-amd64), type Msghdr struct, Namelen uint32
+pkg syscall (freebsd-amd64), type Msghdr struct, Pad_cgo_0 [4]byte
+pkg syscall (freebsd-amd64), type Msghdr struct, Pad_cgo_1 [4]byte
+pkg syscall (freebsd-amd64), type RawSockaddr struct, Data [14]int8
+pkg syscall (freebsd-amd64), type RawSockaddr struct, Family uint8
+pkg syscall (freebsd-amd64), type RawSockaddr struct, Len uint8
+pkg syscall (freebsd-amd64), type RawSockaddrAny struct, Pad [92]int8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Alen uint8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Data [46]int8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Family uint8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Index uint16
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Len uint8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Nlen uint8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Slen uint8
+pkg syscall (freebsd-amd64), type RawSockaddrDatalink struct, Type uint8
+pkg syscall (freebsd-amd64), type RawSockaddrInet4 struct, Family uint8
+pkg syscall (freebsd-amd64), type RawSockaddrInet4 struct, Len uint8
+pkg syscall (freebsd-amd64), type RawSockaddrInet4 struct, Zero [8]int8
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct, Addr [16]byte
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct, Family uint8
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct, Flowinfo uint32
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct, Len uint8
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct, Port uint16
+pkg syscall (freebsd-amd64), type RawSockaddrInet6 struct, Scope_id uint32
+pkg syscall (freebsd-amd64), type RawSockaddrUnix struct
+pkg syscall (freebsd-amd64), type RawSockaddrUnix struct, Family uint8
+pkg syscall (freebsd-amd64), type RawSockaddrUnix struct, Len uint8
+pkg syscall (freebsd-amd64), type RawSockaddrUnix struct, Path [104]int8
+pkg syscall (freebsd-amd64), type Rlimit struct
+pkg syscall (freebsd-amd64), type Rlimit struct, Cur int64
+pkg syscall (freebsd-amd64), type Rlimit struct, Max int64
+pkg syscall (freebsd-amd64), type RouteMessage struct
+pkg syscall (freebsd-amd64), type RouteMessage struct, Data []byte
+pkg syscall (freebsd-amd64), type RouteMessage struct, Header RtMsghdr
+pkg syscall (freebsd-amd64), type RoutingMessage interface {}
+pkg syscall (freebsd-amd64), type RtMetrics struct
+pkg syscall (freebsd-amd64), type RtMetrics struct, Expire uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Filler [3]uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Hopcount uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Locks uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Mtu uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Pksent uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Recvpipe uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Rtt uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Rttvar uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Sendpipe uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Ssthresh uint64
+pkg syscall (freebsd-amd64), type RtMetrics struct, Weight uint64
+pkg syscall (freebsd-amd64), type RtMsghdr struct
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Addrs int32
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Errno int32
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Flags int32
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Fmask int32
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Index uint16
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Inits uint64
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Msglen uint16
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Pad_cgo_0 [2]byte
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Pid int32
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Rmx RtMetrics
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Seq int32
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Type uint8
+pkg syscall (freebsd-amd64), type RtMsghdr struct, Version uint8
+pkg syscall (freebsd-amd64), type Rusage struct, Idrss int64
+pkg syscall (freebsd-amd64), type Rusage struct, Inblock int64
+pkg syscall (freebsd-amd64), type Rusage struct, Isrss int64
+pkg syscall (freebsd-amd64), type Rusage struct, Ixrss int64
+pkg syscall (freebsd-amd64), type Rusage struct, Majflt int64
+pkg syscall (freebsd-amd64), type Rusage struct, Maxrss int64
+pkg syscall (freebsd-amd64), type Rusage struct, Minflt int64
+pkg syscall (freebsd-amd64), type Rusage struct, Msgrcv int64
+pkg syscall (freebsd-amd64), type Rusage struct, Msgsnd int64
+pkg syscall (freebsd-amd64), type Rusage struct, Nivcsw int64
+pkg syscall (freebsd-amd64), type Rusage struct, Nsignals int64
+pkg syscall (freebsd-amd64), type Rusage struct, Nswap int64
+pkg syscall (freebsd-amd64), type Rusage struct, Nvcsw int64
+pkg syscall (freebsd-amd64), type Rusage struct, Oublock int64
+pkg syscall (freebsd-amd64), type Rusage struct, Stime Timeval
+pkg syscall (freebsd-amd64), type Rusage struct, Utime Timeval
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Alen uint8
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Data [46]int8
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Family uint8
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Index uint16
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Len uint8
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Nlen uint8
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Slen uint8
+pkg syscall (freebsd-amd64), type SockaddrDatalink struct, Type uint8
+pkg syscall (freebsd-amd64), type SocketControlMessage struct
+pkg syscall (freebsd-amd64), type SocketControlMessage struct, Data []byte
+pkg syscall (freebsd-amd64), type SocketControlMessage struct, Header Cmsghdr
+pkg syscall (freebsd-amd64), type Stat_t struct
+pkg syscall (freebsd-amd64), type Stat_t struct, Atimespec Timespec
+pkg syscall (freebsd-amd64), type Stat_t struct, Birthtimespec Timespec
+pkg syscall (freebsd-amd64), type Stat_t struct, Blksize uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Blocks int64
+pkg syscall (freebsd-amd64), type Stat_t struct, Ctimespec Timespec
+pkg syscall (freebsd-amd64), type Stat_t struct, Dev uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Flags uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Gen uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Gid uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Ino uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Lspare int32
+pkg syscall (freebsd-amd64), type Stat_t struct, Mode uint16
+pkg syscall (freebsd-amd64), type Stat_t struct, Mtimespec Timespec
+pkg syscall (freebsd-amd64), type Stat_t struct, Nlink uint16
+pkg syscall (freebsd-amd64), type Stat_t struct, Rdev uint32
+pkg syscall (freebsd-amd64), type Stat_t struct, Size int64
+pkg syscall (freebsd-amd64), type Stat_t struct, Uid uint32
+pkg syscall (freebsd-amd64), type Statfs_t struct
+pkg syscall (freebsd-amd64), type Statfs_t struct, Asyncreads uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Asyncwrites uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Bavail int64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Bfree uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Blocks uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Bsize uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Charspare [80]int8
+pkg syscall (freebsd-amd64), type Statfs_t struct, Ffree int64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Files uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Flags uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Fsid Fsid
+pkg syscall (freebsd-amd64), type Statfs_t struct, Fstypename [16]int8
+pkg syscall (freebsd-amd64), type Statfs_t struct, Iosize uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Mntfromname [88]int8
+pkg syscall (freebsd-amd64), type Statfs_t struct, Mntonname [88]int8
+pkg syscall (freebsd-amd64), type Statfs_t struct, Namemax uint32
+pkg syscall (freebsd-amd64), type Statfs_t struct, Owner uint32
+pkg syscall (freebsd-amd64), type Statfs_t struct, Spare [10]uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Syncreads uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Syncwrites uint64
+pkg syscall (freebsd-amd64), type Statfs_t struct, Type uint32
+pkg syscall (freebsd-amd64), type Statfs_t struct, Version uint32
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Chroot string
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Credential *Credential
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Noctty bool
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Ptrace bool
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Setctty bool
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Setpgid bool
+pkg syscall (freebsd-amd64), type SysProcAttr struct, Setsid bool
+pkg syscall (freebsd-amd64), type Timespec struct, Nsec int64
+pkg syscall (freebsd-amd64), type Timespec struct, Sec int64
+pkg syscall (freebsd-amd64), type Timeval struct, Sec int64
+pkg syscall (freebsd-amd64), type Timeval struct, Usec int64
+pkg syscall (freebsd-amd64), type WaitStatus uint32
+pkg syscall (freebsd-amd64), var Stderr int
+pkg syscall (freebsd-amd64), var Stdin int
+pkg syscall (freebsd-amd64), var Stdout int
pkg syscall (linux-386), const AF_ALG ideal-int
pkg syscall (linux-386), const AF_APPLETALK ideal-int
pkg syscall (linux-386), const AF_ASH ideal-int
@@ -13305,12 +17354,17 @@ pkg syscall (linux-386), const EMEDIUMTYPE Errno
pkg syscall (linux-386), const ENAVAIL Errno
pkg syscall (linux-386), const ENOANO Errno
pkg syscall (linux-386), const ENOCSI Errno
+pkg syscall (linux-386), const ENODATA Errno
pkg syscall (linux-386), const ENOKEY Errno
pkg syscall (linux-386), const ENOMEDIUM Errno
pkg syscall (linux-386), const ENONET Errno
pkg syscall (linux-386), const ENOPKG Errno
+pkg syscall (linux-386), const ENOSR Errno
+pkg syscall (linux-386), const ENOSTR Errno
pkg syscall (linux-386), const ENOTNAM Errno
+pkg syscall (linux-386), const ENOTRECOVERABLE Errno
pkg syscall (linux-386), const ENOTUNIQ Errno
+pkg syscall (linux-386), const EOWNERDEAD Errno
pkg syscall (linux-386), const EPOLLERR ideal-int
pkg syscall (linux-386), const EPOLLET ideal-int
pkg syscall (linux-386), const EPOLLHUP ideal-int
@@ -13399,6 +17453,7 @@ pkg syscall (linux-386), const ETH_P_TR_802_2 ideal-int
pkg syscall (linux-386), const ETH_P_WAN_PPP ideal-int
pkg syscall (linux-386), const ETH_P_WCCP ideal-int
pkg syscall (linux-386), const ETH_P_X25 ideal-int
+pkg syscall (linux-386), const ETIME Errno
pkg syscall (linux-386), const EUCLEAN Errno
pkg syscall (linux-386), const EUNATCH Errno
pkg syscall (linux-386), const EXFULL Errno
@@ -14613,6 +18668,7 @@ pkg syscall (linux-386), const S_IRWXO ideal-int
pkg syscall (linux-386), const S_IRWXU ideal-int
pkg syscall (linux-386), const S_IWGRP ideal-int
pkg syscall (linux-386), const S_IWOTH ideal-int
+pkg syscall (linux-386), const S_IWRITE ideal-int
pkg syscall (linux-386), const S_IXGRP ideal-int
pkg syscall (linux-386), const S_IXOTH ideal-int
pkg syscall (linux-386), const SizeofCmsghdr ideal-int
@@ -15054,6 +19110,7 @@ pkg syscall (linux-386), type PtraceRegs struct, Xes int32
pkg syscall (linux-386), type PtraceRegs struct, Xfs int32
pkg syscall (linux-386), type PtraceRegs struct, Xgs int32
pkg syscall (linux-386), type PtraceRegs struct, Xss int32
+pkg syscall (linux-386), type RawSockaddr struct, Data [14]int8
pkg syscall (linux-386), type RawSockaddr struct, Family uint16
pkg syscall (linux-386), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (linux-386), type RawSockaddrInet4 struct, Family uint16
@@ -15483,12 +19540,17 @@ pkg syscall (linux-386-cgo), const EMEDIUMTYPE Errno
pkg syscall (linux-386-cgo), const ENAVAIL Errno
pkg syscall (linux-386-cgo), const ENOANO Errno
pkg syscall (linux-386-cgo), const ENOCSI Errno
+pkg syscall (linux-386-cgo), const ENODATA Errno
pkg syscall (linux-386-cgo), const ENOKEY Errno
pkg syscall (linux-386-cgo), const ENOMEDIUM Errno
pkg syscall (linux-386-cgo), const ENONET Errno
pkg syscall (linux-386-cgo), const ENOPKG Errno
+pkg syscall (linux-386-cgo), const ENOSR Errno
+pkg syscall (linux-386-cgo), const ENOSTR Errno
pkg syscall (linux-386-cgo), const ENOTNAM Errno
+pkg syscall (linux-386-cgo), const ENOTRECOVERABLE Errno
pkg syscall (linux-386-cgo), const ENOTUNIQ Errno
+pkg syscall (linux-386-cgo), const EOWNERDEAD Errno
pkg syscall (linux-386-cgo), const EPOLLERR ideal-int
pkg syscall (linux-386-cgo), const EPOLLET ideal-int
pkg syscall (linux-386-cgo), const EPOLLHUP ideal-int
@@ -15577,6 +19639,7 @@ pkg syscall (linux-386-cgo), const ETH_P_TR_802_2 ideal-int
pkg syscall (linux-386-cgo), const ETH_P_WAN_PPP ideal-int
pkg syscall (linux-386-cgo), const ETH_P_WCCP ideal-int
pkg syscall (linux-386-cgo), const ETH_P_X25 ideal-int
+pkg syscall (linux-386-cgo), const ETIME Errno
pkg syscall (linux-386-cgo), const EUCLEAN Errno
pkg syscall (linux-386-cgo), const EUNATCH Errno
pkg syscall (linux-386-cgo), const EXFULL Errno
@@ -16791,6 +20854,7 @@ pkg syscall (linux-386-cgo), const S_IRWXO ideal-int
pkg syscall (linux-386-cgo), const S_IRWXU ideal-int
pkg syscall (linux-386-cgo), const S_IWGRP ideal-int
pkg syscall (linux-386-cgo), const S_IWOTH ideal-int
+pkg syscall (linux-386-cgo), const S_IWRITE ideal-int
pkg syscall (linux-386-cgo), const S_IXGRP ideal-int
pkg syscall (linux-386-cgo), const S_IXOTH ideal-int
pkg syscall (linux-386-cgo), const SizeofCmsghdr ideal-int
@@ -17232,6 +21296,7 @@ pkg syscall (linux-386-cgo), type PtraceRegs struct, Xes int32
pkg syscall (linux-386-cgo), type PtraceRegs struct, Xfs int32
pkg syscall (linux-386-cgo), type PtraceRegs struct, Xgs int32
pkg syscall (linux-386-cgo), type PtraceRegs struct, Xss int32
+pkg syscall (linux-386-cgo), type RawSockaddr struct, Data [14]int8
pkg syscall (linux-386-cgo), type RawSockaddr struct, Family uint16
pkg syscall (linux-386-cgo), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (linux-386-cgo), type RawSockaddrInet4 struct, Family uint16
@@ -17661,12 +21726,17 @@ pkg syscall (linux-amd64), const EMEDIUMTYPE Errno
pkg syscall (linux-amd64), const ENAVAIL Errno
pkg syscall (linux-amd64), const ENOANO Errno
pkg syscall (linux-amd64), const ENOCSI Errno
+pkg syscall (linux-amd64), const ENODATA Errno
pkg syscall (linux-amd64), const ENOKEY Errno
pkg syscall (linux-amd64), const ENOMEDIUM Errno
pkg syscall (linux-amd64), const ENONET Errno
pkg syscall (linux-amd64), const ENOPKG Errno
+pkg syscall (linux-amd64), const ENOSR Errno
+pkg syscall (linux-amd64), const ENOSTR Errno
pkg syscall (linux-amd64), const ENOTNAM Errno
+pkg syscall (linux-amd64), const ENOTRECOVERABLE Errno
pkg syscall (linux-amd64), const ENOTUNIQ Errno
+pkg syscall (linux-amd64), const EOWNERDEAD Errno
pkg syscall (linux-amd64), const EPOLLERR ideal-int
pkg syscall (linux-amd64), const EPOLLET ideal-int
pkg syscall (linux-amd64), const EPOLLHUP ideal-int
@@ -17755,6 +21825,7 @@ pkg syscall (linux-amd64), const ETH_P_TR_802_2 ideal-int
pkg syscall (linux-amd64), const ETH_P_WAN_PPP ideal-int
pkg syscall (linux-amd64), const ETH_P_WCCP ideal-int
pkg syscall (linux-amd64), const ETH_P_X25 ideal-int
+pkg syscall (linux-amd64), const ETIME Errno
pkg syscall (linux-amd64), const EUCLEAN Errno
pkg syscall (linux-amd64), const EUNATCH Errno
pkg syscall (linux-amd64), const EXFULL Errno
@@ -18935,6 +23006,7 @@ pkg syscall (linux-amd64), const S_IRWXO ideal-int
pkg syscall (linux-amd64), const S_IRWXU ideal-int
pkg syscall (linux-amd64), const S_IWGRP ideal-int
pkg syscall (linux-amd64), const S_IWOTH ideal-int
+pkg syscall (linux-amd64), const S_IWRITE ideal-int
pkg syscall (linux-amd64), const S_IXGRP ideal-int
pkg syscall (linux-amd64), const S_IXOTH ideal-int
pkg syscall (linux-amd64), const SizeofCmsghdr ideal-int
@@ -19388,6 +23460,7 @@ pkg syscall (linux-amd64), type PtraceRegs struct, Rip uint64
pkg syscall (linux-amd64), type PtraceRegs struct, Rsi uint64
pkg syscall (linux-amd64), type PtraceRegs struct, Rsp uint64
pkg syscall (linux-amd64), type PtraceRegs struct, Ss uint64
+pkg syscall (linux-amd64), type RawSockaddr struct, Data [14]int8
pkg syscall (linux-amd64), type RawSockaddr struct, Family uint16
pkg syscall (linux-amd64), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (linux-amd64), type RawSockaddrInet4 struct, Family uint16
@@ -19821,12 +23894,17 @@ pkg syscall (linux-amd64-cgo), const EMEDIUMTYPE Errno
pkg syscall (linux-amd64-cgo), const ENAVAIL Errno
pkg syscall (linux-amd64-cgo), const ENOANO Errno
pkg syscall (linux-amd64-cgo), const ENOCSI Errno
+pkg syscall (linux-amd64-cgo), const ENODATA Errno
pkg syscall (linux-amd64-cgo), const ENOKEY Errno
pkg syscall (linux-amd64-cgo), const ENOMEDIUM Errno
pkg syscall (linux-amd64-cgo), const ENONET Errno
pkg syscall (linux-amd64-cgo), const ENOPKG Errno
+pkg syscall (linux-amd64-cgo), const ENOSR Errno
+pkg syscall (linux-amd64-cgo), const ENOSTR Errno
pkg syscall (linux-amd64-cgo), const ENOTNAM Errno
+pkg syscall (linux-amd64-cgo), const ENOTRECOVERABLE Errno
pkg syscall (linux-amd64-cgo), const ENOTUNIQ Errno
+pkg syscall (linux-amd64-cgo), const EOWNERDEAD Errno
pkg syscall (linux-amd64-cgo), const EPOLLERR ideal-int
pkg syscall (linux-amd64-cgo), const EPOLLET ideal-int
pkg syscall (linux-amd64-cgo), const EPOLLHUP ideal-int
@@ -19915,6 +23993,7 @@ pkg syscall (linux-amd64-cgo), const ETH_P_TR_802_2 ideal-int
pkg syscall (linux-amd64-cgo), const ETH_P_WAN_PPP ideal-int
pkg syscall (linux-amd64-cgo), const ETH_P_WCCP ideal-int
pkg syscall (linux-amd64-cgo), const ETH_P_X25 ideal-int
+pkg syscall (linux-amd64-cgo), const ETIME Errno
pkg syscall (linux-amd64-cgo), const EUCLEAN Errno
pkg syscall (linux-amd64-cgo), const EUNATCH Errno
pkg syscall (linux-amd64-cgo), const EXFULL Errno
@@ -21095,6 +25174,7 @@ pkg syscall (linux-amd64-cgo), const S_IRWXO ideal-int
pkg syscall (linux-amd64-cgo), const S_IRWXU ideal-int
pkg syscall (linux-amd64-cgo), const S_IWGRP ideal-int
pkg syscall (linux-amd64-cgo), const S_IWOTH ideal-int
+pkg syscall (linux-amd64-cgo), const S_IWRITE ideal-int
pkg syscall (linux-amd64-cgo), const S_IXGRP ideal-int
pkg syscall (linux-amd64-cgo), const S_IXOTH ideal-int
pkg syscall (linux-amd64-cgo), const SizeofCmsghdr ideal-int
@@ -21548,6 +25628,7 @@ pkg syscall (linux-amd64-cgo), type PtraceRegs struct, Rip uint64
pkg syscall (linux-amd64-cgo), type PtraceRegs struct, Rsi uint64
pkg syscall (linux-amd64-cgo), type PtraceRegs struct, Rsp uint64
pkg syscall (linux-amd64-cgo), type PtraceRegs struct, Ss uint64
+pkg syscall (linux-amd64-cgo), type RawSockaddr struct, Data [14]int8
pkg syscall (linux-amd64-cgo), type RawSockaddr struct, Family uint16
pkg syscall (linux-amd64-cgo), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (linux-amd64-cgo), type RawSockaddrInet4 struct, Family uint16
@@ -21761,6 +25842,2197 @@ pkg syscall (linux-amd64-cgo), type WaitStatus uint32
pkg syscall (linux-amd64-cgo), var Stderr int
pkg syscall (linux-amd64-cgo), var Stdin int
pkg syscall (linux-amd64-cgo), var Stdout int
+pkg syscall (linux-arm), const AF_ALG ideal-int
+pkg syscall (linux-arm), const AF_APPLETALK ideal-int
+pkg syscall (linux-arm), const AF_ASH ideal-int
+pkg syscall (linux-arm), const AF_ATMPVC ideal-int
+pkg syscall (linux-arm), const AF_ATMSVC ideal-int
+pkg syscall (linux-arm), const AF_AX25 ideal-int
+pkg syscall (linux-arm), const AF_BLUETOOTH ideal-int
+pkg syscall (linux-arm), const AF_BRIDGE ideal-int
+pkg syscall (linux-arm), const AF_CAIF ideal-int
+pkg syscall (linux-arm), const AF_CAN ideal-int
+pkg syscall (linux-arm), const AF_DECnet ideal-int
+pkg syscall (linux-arm), const AF_ECONET ideal-int
+pkg syscall (linux-arm), const AF_FILE ideal-int
+pkg syscall (linux-arm), const AF_IEEE802154 ideal-int
+pkg syscall (linux-arm), const AF_IPX ideal-int
+pkg syscall (linux-arm), const AF_IRDA ideal-int
+pkg syscall (linux-arm), const AF_ISDN ideal-int
+pkg syscall (linux-arm), const AF_IUCV ideal-int
+pkg syscall (linux-arm), const AF_KEY ideal-int
+pkg syscall (linux-arm), const AF_LLC ideal-int
+pkg syscall (linux-arm), const AF_LOCAL ideal-int
+pkg syscall (linux-arm), const AF_MAX ideal-int
+pkg syscall (linux-arm), const AF_NETBEUI ideal-int
+pkg syscall (linux-arm), const AF_NETLINK ideal-int
+pkg syscall (linux-arm), const AF_NETROM ideal-int
+pkg syscall (linux-arm), const AF_PACKET ideal-int
+pkg syscall (linux-arm), const AF_PHONET ideal-int
+pkg syscall (linux-arm), const AF_PPPOX ideal-int
+pkg syscall (linux-arm), const AF_RDS ideal-int
+pkg syscall (linux-arm), const AF_ROSE ideal-int
+pkg syscall (linux-arm), const AF_ROUTE ideal-int
+pkg syscall (linux-arm), const AF_RXRPC ideal-int
+pkg syscall (linux-arm), const AF_SECURITY ideal-int
+pkg syscall (linux-arm), const AF_SNA ideal-int
+pkg syscall (linux-arm), const AF_TIPC ideal-int
+pkg syscall (linux-arm), const AF_WANPIPE ideal-int
+pkg syscall (linux-arm), const AF_X25 ideal-int
+pkg syscall (linux-arm), const ARPHRD_ADAPT ideal-int
+pkg syscall (linux-arm), const ARPHRD_APPLETLK ideal-int
+pkg syscall (linux-arm), const ARPHRD_ARCNET ideal-int
+pkg syscall (linux-arm), const ARPHRD_ASH ideal-int
+pkg syscall (linux-arm), const ARPHRD_ATM ideal-int
+pkg syscall (linux-arm), const ARPHRD_AX25 ideal-int
+pkg syscall (linux-arm), const ARPHRD_BIF ideal-int
+pkg syscall (linux-arm), const ARPHRD_CHAOS ideal-int
+pkg syscall (linux-arm), const ARPHRD_CISCO ideal-int
+pkg syscall (linux-arm), const ARPHRD_CSLIP ideal-int
+pkg syscall (linux-arm), const ARPHRD_CSLIP6 ideal-int
+pkg syscall (linux-arm), const ARPHRD_DDCMP ideal-int
+pkg syscall (linux-arm), const ARPHRD_DLCI ideal-int
+pkg syscall (linux-arm), const ARPHRD_ECONET ideal-int
+pkg syscall (linux-arm), const ARPHRD_EETHER ideal-int
+pkg syscall (linux-arm), const ARPHRD_ETHER ideal-int
+pkg syscall (linux-arm), const ARPHRD_EUI64 ideal-int
+pkg syscall (linux-arm), const ARPHRD_FCAL ideal-int
+pkg syscall (linux-arm), const ARPHRD_FCFABRIC ideal-int
+pkg syscall (linux-arm), const ARPHRD_FCPL ideal-int
+pkg syscall (linux-arm), const ARPHRD_FCPP ideal-int
+pkg syscall (linux-arm), const ARPHRD_FDDI ideal-int
+pkg syscall (linux-arm), const ARPHRD_FRAD ideal-int
+pkg syscall (linux-arm), const ARPHRD_HDLC ideal-int
+pkg syscall (linux-arm), const ARPHRD_HIPPI ideal-int
+pkg syscall (linux-arm), const ARPHRD_HWX25 ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE1394 ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE802 ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE80211 ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE80211_PRISM ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE80211_RADIOTAP ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE802154 ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE802154_PHY ideal-int
+pkg syscall (linux-arm), const ARPHRD_IEEE802_TR ideal-int
+pkg syscall (linux-arm), const ARPHRD_INFINIBAND ideal-int
+pkg syscall (linux-arm), const ARPHRD_IPDDP ideal-int
+pkg syscall (linux-arm), const ARPHRD_IPGRE ideal-int
+pkg syscall (linux-arm), const ARPHRD_IRDA ideal-int
+pkg syscall (linux-arm), const ARPHRD_LAPB ideal-int
+pkg syscall (linux-arm), const ARPHRD_LOCALTLK ideal-int
+pkg syscall (linux-arm), const ARPHRD_LOOPBACK ideal-int
+pkg syscall (linux-arm), const ARPHRD_METRICOM ideal-int
+pkg syscall (linux-arm), const ARPHRD_NETROM ideal-int
+pkg syscall (linux-arm), const ARPHRD_NONE ideal-int
+pkg syscall (linux-arm), const ARPHRD_PIMREG ideal-int
+pkg syscall (linux-arm), const ARPHRD_PPP ideal-int
+pkg syscall (linux-arm), const ARPHRD_PRONET ideal-int
+pkg syscall (linux-arm), const ARPHRD_RAWHDLC ideal-int
+pkg syscall (linux-arm), const ARPHRD_ROSE ideal-int
+pkg syscall (linux-arm), const ARPHRD_RSRVD ideal-int
+pkg syscall (linux-arm), const ARPHRD_SIT ideal-int
+pkg syscall (linux-arm), const ARPHRD_SKIP ideal-int
+pkg syscall (linux-arm), const ARPHRD_SLIP ideal-int
+pkg syscall (linux-arm), const ARPHRD_SLIP6 ideal-int
+pkg syscall (linux-arm), const ARPHRD_TUNNEL ideal-int
+pkg syscall (linux-arm), const ARPHRD_TUNNEL6 ideal-int
+pkg syscall (linux-arm), const ARPHRD_VOID ideal-int
+pkg syscall (linux-arm), const ARPHRD_X25 ideal-int
+pkg syscall (linux-arm), const B0 ideal-int
+pkg syscall (linux-arm), const B1000000 ideal-int
+pkg syscall (linux-arm), const B110 ideal-int
+pkg syscall (linux-arm), const B115200 ideal-int
+pkg syscall (linux-arm), const B1152000 ideal-int
+pkg syscall (linux-arm), const B1200 ideal-int
+pkg syscall (linux-arm), const B134 ideal-int
+pkg syscall (linux-arm), const B150 ideal-int
+pkg syscall (linux-arm), const B1500000 ideal-int
+pkg syscall (linux-arm), const B1800 ideal-int
+pkg syscall (linux-arm), const B19200 ideal-int
+pkg syscall (linux-arm), const B200 ideal-int
+pkg syscall (linux-arm), const B2000000 ideal-int
+pkg syscall (linux-arm), const B230400 ideal-int
+pkg syscall (linux-arm), const B2400 ideal-int
+pkg syscall (linux-arm), const B2500000 ideal-int
+pkg syscall (linux-arm), const B300 ideal-int
+pkg syscall (linux-arm), const B3000000 ideal-int
+pkg syscall (linux-arm), const B3500000 ideal-int
+pkg syscall (linux-arm), const B38400 ideal-int
+pkg syscall (linux-arm), const B4000000 ideal-int
+pkg syscall (linux-arm), const B460800 ideal-int
+pkg syscall (linux-arm), const B4800 ideal-int
+pkg syscall (linux-arm), const B50 ideal-int
+pkg syscall (linux-arm), const B500000 ideal-int
+pkg syscall (linux-arm), const B57600 ideal-int
+pkg syscall (linux-arm), const B576000 ideal-int
+pkg syscall (linux-arm), const B600 ideal-int
+pkg syscall (linux-arm), const B75 ideal-int
+pkg syscall (linux-arm), const B921600 ideal-int
+pkg syscall (linux-arm), const B9600 ideal-int
+pkg syscall (linux-arm), const BPF_A ideal-int
+pkg syscall (linux-arm), const BPF_ABS ideal-int
+pkg syscall (linux-arm), const BPF_ADD ideal-int
+pkg syscall (linux-arm), const BPF_ALU ideal-int
+pkg syscall (linux-arm), const BPF_AND ideal-int
+pkg syscall (linux-arm), const BPF_B ideal-int
+pkg syscall (linux-arm), const BPF_DIV ideal-int
+pkg syscall (linux-arm), const BPF_H ideal-int
+pkg syscall (linux-arm), const BPF_IMM ideal-int
+pkg syscall (linux-arm), const BPF_IND ideal-int
+pkg syscall (linux-arm), const BPF_JA ideal-int
+pkg syscall (linux-arm), const BPF_JEQ ideal-int
+pkg syscall (linux-arm), const BPF_JGE ideal-int
+pkg syscall (linux-arm), const BPF_JGT ideal-int
+pkg syscall (linux-arm), const BPF_JMP ideal-int
+pkg syscall (linux-arm), const BPF_JSET ideal-int
+pkg syscall (linux-arm), const BPF_K ideal-int
+pkg syscall (linux-arm), const BPF_LD ideal-int
+pkg syscall (linux-arm), const BPF_LDX ideal-int
+pkg syscall (linux-arm), const BPF_LEN ideal-int
+pkg syscall (linux-arm), const BPF_LSH ideal-int
+pkg syscall (linux-arm), const BPF_MAJOR_VERSION ideal-int
+pkg syscall (linux-arm), const BPF_MAXINSNS ideal-int
+pkg syscall (linux-arm), const BPF_MEM ideal-int
+pkg syscall (linux-arm), const BPF_MEMWORDS ideal-int
+pkg syscall (linux-arm), const BPF_MINOR_VERSION ideal-int
+pkg syscall (linux-arm), const BPF_MISC ideal-int
+pkg syscall (linux-arm), const BPF_MSH ideal-int
+pkg syscall (linux-arm), const BPF_MUL ideal-int
+pkg syscall (linux-arm), const BPF_NEG ideal-int
+pkg syscall (linux-arm), const BPF_OR ideal-int
+pkg syscall (linux-arm), const BPF_RET ideal-int
+pkg syscall (linux-arm), const BPF_RSH ideal-int
+pkg syscall (linux-arm), const BPF_ST ideal-int
+pkg syscall (linux-arm), const BPF_STX ideal-int
+pkg syscall (linux-arm), const BPF_SUB ideal-int
+pkg syscall (linux-arm), const BPF_TAX ideal-int
+pkg syscall (linux-arm), const BPF_TXA ideal-int
+pkg syscall (linux-arm), const BPF_W ideal-int
+pkg syscall (linux-arm), const BPF_X ideal-int
+pkg syscall (linux-arm), const BRKINT ideal-int
+pkg syscall (linux-arm), const CLOCAL ideal-int
+pkg syscall (linux-arm), const CREAD ideal-int
+pkg syscall (linux-arm), const CS5 ideal-int
+pkg syscall (linux-arm), const CS6 ideal-int
+pkg syscall (linux-arm), const CS7 ideal-int
+pkg syscall (linux-arm), const CS8 ideal-int
+pkg syscall (linux-arm), const CSIZE ideal-int
+pkg syscall (linux-arm), const CSTOPB ideal-int
+pkg syscall (linux-arm), const DT_BLK ideal-int
+pkg syscall (linux-arm), const DT_CHR ideal-int
+pkg syscall (linux-arm), const DT_DIR ideal-int
+pkg syscall (linux-arm), const DT_FIFO ideal-int
+pkg syscall (linux-arm), const DT_LNK ideal-int
+pkg syscall (linux-arm), const DT_REG ideal-int
+pkg syscall (linux-arm), const DT_SOCK ideal-int
+pkg syscall (linux-arm), const DT_UNKNOWN ideal-int
+pkg syscall (linux-arm), const DT_WHT ideal-int
+pkg syscall (linux-arm), const EADV Errno
+pkg syscall (linux-arm), const EBADE Errno
+pkg syscall (linux-arm), const EBADFD Errno
+pkg syscall (linux-arm), const EBADR Errno
+pkg syscall (linux-arm), const EBADRQC Errno
+pkg syscall (linux-arm), const EBADSLT Errno
+pkg syscall (linux-arm), const EBFONT Errno
+pkg syscall (linux-arm), const ECHO ideal-int
+pkg syscall (linux-arm), const ECHOCTL ideal-int
+pkg syscall (linux-arm), const ECHOE ideal-int
+pkg syscall (linux-arm), const ECHOK ideal-int
+pkg syscall (linux-arm), const ECHOKE ideal-int
+pkg syscall (linux-arm), const ECHONL ideal-int
+pkg syscall (linux-arm), const ECHOPRT ideal-int
+pkg syscall (linux-arm), const ECHRNG Errno
+pkg syscall (linux-arm), const ECOMM Errno
+pkg syscall (linux-arm), const EDEADLOCK Errno
+pkg syscall (linux-arm), const EDOTDOT Errno
+pkg syscall (linux-arm), const EHWPOISON Errno
+pkg syscall (linux-arm), const EISNAM Errno
+pkg syscall (linux-arm), const EKEYEXPIRED Errno
+pkg syscall (linux-arm), const EKEYREJECTED Errno
+pkg syscall (linux-arm), const EKEYREVOKED Errno
+pkg syscall (linux-arm), const EL2HLT Errno
+pkg syscall (linux-arm), const EL2NSYNC Errno
+pkg syscall (linux-arm), const EL3HLT Errno
+pkg syscall (linux-arm), const EL3RST Errno
+pkg syscall (linux-arm), const ELF_NGREG ideal-int
+pkg syscall (linux-arm), const ELF_PRARGSZ ideal-int
+pkg syscall (linux-arm), const ELIBACC Errno
+pkg syscall (linux-arm), const ELIBBAD Errno
+pkg syscall (linux-arm), const ELIBEXEC Errno
+pkg syscall (linux-arm), const ELIBMAX Errno
+pkg syscall (linux-arm), const ELIBSCN Errno
+pkg syscall (linux-arm), const ELNRNG Errno
+pkg syscall (linux-arm), const EMEDIUMTYPE Errno
+pkg syscall (linux-arm), const ENAVAIL Errno
+pkg syscall (linux-arm), const ENOANO Errno
+pkg syscall (linux-arm), const ENOCSI Errno
+pkg syscall (linux-arm), const ENODATA Errno
+pkg syscall (linux-arm), const ENOKEY Errno
+pkg syscall (linux-arm), const ENOMEDIUM Errno
+pkg syscall (linux-arm), const ENONET Errno
+pkg syscall (linux-arm), const ENOPKG Errno
+pkg syscall (linux-arm), const ENOSR Errno
+pkg syscall (linux-arm), const ENOSTR Errno
+pkg syscall (linux-arm), const ENOTNAM Errno
+pkg syscall (linux-arm), const ENOTRECOVERABLE Errno
+pkg syscall (linux-arm), const ENOTUNIQ Errno
+pkg syscall (linux-arm), const EOWNERDEAD Errno
+pkg syscall (linux-arm), const EPOLLERR ideal-int
+pkg syscall (linux-arm), const EPOLLET ideal-int
+pkg syscall (linux-arm), const EPOLLHUP ideal-int
+pkg syscall (linux-arm), const EPOLLIN ideal-int
+pkg syscall (linux-arm), const EPOLLMSG ideal-int
+pkg syscall (linux-arm), const EPOLLONESHOT ideal-int
+pkg syscall (linux-arm), const EPOLLOUT ideal-int
+pkg syscall (linux-arm), const EPOLLPRI ideal-int
+pkg syscall (linux-arm), const EPOLLRDBAND ideal-int
+pkg syscall (linux-arm), const EPOLLRDHUP ideal-int
+pkg syscall (linux-arm), const EPOLLRDNORM ideal-int
+pkg syscall (linux-arm), const EPOLLWRBAND ideal-int
+pkg syscall (linux-arm), const EPOLLWRNORM ideal-int
+pkg syscall (linux-arm), const EPOLL_CLOEXEC ideal-int
+pkg syscall (linux-arm), const EPOLL_CTL_ADD ideal-int
+pkg syscall (linux-arm), const EPOLL_CTL_DEL ideal-int
+pkg syscall (linux-arm), const EPOLL_CTL_MOD ideal-int
+pkg syscall (linux-arm), const EPOLL_NONBLOCK ideal-int
+pkg syscall (linux-arm), const EREMCHG Errno
+pkg syscall (linux-arm), const EREMOTEIO Errno
+pkg syscall (linux-arm), const ERESTART Errno
+pkg syscall (linux-arm), const ERFKILL Errno
+pkg syscall (linux-arm), const ESRMNT Errno
+pkg syscall (linux-arm), const ESTRPIPE Errno
+pkg syscall (linux-arm), const ETH_P_1588 ideal-int
+pkg syscall (linux-arm), const ETH_P_8021Q ideal-int
+pkg syscall (linux-arm), const ETH_P_802_2 ideal-int
+pkg syscall (linux-arm), const ETH_P_802_3 ideal-int
+pkg syscall (linux-arm), const ETH_P_AARP ideal-int
+pkg syscall (linux-arm), const ETH_P_ALL ideal-int
+pkg syscall (linux-arm), const ETH_P_AOE ideal-int
+pkg syscall (linux-arm), const ETH_P_ARCNET ideal-int
+pkg syscall (linux-arm), const ETH_P_ARP ideal-int
+pkg syscall (linux-arm), const ETH_P_ATALK ideal-int
+pkg syscall (linux-arm), const ETH_P_ATMFATE ideal-int
+pkg syscall (linux-arm), const ETH_P_ATMMPOA ideal-int
+pkg syscall (linux-arm), const ETH_P_AX25 ideal-int
+pkg syscall (linux-arm), const ETH_P_BPQ ideal-int
+pkg syscall (linux-arm), const ETH_P_CAIF ideal-int
+pkg syscall (linux-arm), const ETH_P_CAN ideal-int
+pkg syscall (linux-arm), const ETH_P_CONTROL ideal-int
+pkg syscall (linux-arm), const ETH_P_CUST ideal-int
+pkg syscall (linux-arm), const ETH_P_DDCMP ideal-int
+pkg syscall (linux-arm), const ETH_P_DEC ideal-int
+pkg syscall (linux-arm), const ETH_P_DIAG ideal-int
+pkg syscall (linux-arm), const ETH_P_DNA_DL ideal-int
+pkg syscall (linux-arm), const ETH_P_DNA_RC ideal-int
+pkg syscall (linux-arm), const ETH_P_DNA_RT ideal-int
+pkg syscall (linux-arm), const ETH_P_DSA ideal-int
+pkg syscall (linux-arm), const ETH_P_ECONET ideal-int
+pkg syscall (linux-arm), const ETH_P_EDSA ideal-int
+pkg syscall (linux-arm), const ETH_P_FCOE ideal-int
+pkg syscall (linux-arm), const ETH_P_FIP ideal-int
+pkg syscall (linux-arm), const ETH_P_HDLC ideal-int
+pkg syscall (linux-arm), const ETH_P_IEEE802154 ideal-int
+pkg syscall (linux-arm), const ETH_P_IEEEPUP ideal-int
+pkg syscall (linux-arm), const ETH_P_IEEEPUPAT ideal-int
+pkg syscall (linux-arm), const ETH_P_IP ideal-int
+pkg syscall (linux-arm), const ETH_P_IPV6 ideal-int
+pkg syscall (linux-arm), const ETH_P_IPX ideal-int
+pkg syscall (linux-arm), const ETH_P_IRDA ideal-int
+pkg syscall (linux-arm), const ETH_P_LAT ideal-int
+pkg syscall (linux-arm), const ETH_P_LINK_CTL ideal-int
+pkg syscall (linux-arm), const ETH_P_LOCALTALK ideal-int
+pkg syscall (linux-arm), const ETH_P_LOOP ideal-int
+pkg syscall (linux-arm), const ETH_P_MOBITEX ideal-int
+pkg syscall (linux-arm), const ETH_P_MPLS_MC ideal-int
+pkg syscall (linux-arm), const ETH_P_MPLS_UC ideal-int
+pkg syscall (linux-arm), const ETH_P_PAE ideal-int
+pkg syscall (linux-arm), const ETH_P_PAUSE ideal-int
+pkg syscall (linux-arm), const ETH_P_PHONET ideal-int
+pkg syscall (linux-arm), const ETH_P_PPPTALK ideal-int
+pkg syscall (linux-arm), const ETH_P_PPP_DISC ideal-int
+pkg syscall (linux-arm), const ETH_P_PPP_MP ideal-int
+pkg syscall (linux-arm), const ETH_P_PPP_SES ideal-int
+pkg syscall (linux-arm), const ETH_P_PUP ideal-int
+pkg syscall (linux-arm), const ETH_P_PUPAT ideal-int
+pkg syscall (linux-arm), const ETH_P_RARP ideal-int
+pkg syscall (linux-arm), const ETH_P_SCA ideal-int
+pkg syscall (linux-arm), const ETH_P_SLOW ideal-int
+pkg syscall (linux-arm), const ETH_P_SNAP ideal-int
+pkg syscall (linux-arm), const ETH_P_TEB ideal-int
+pkg syscall (linux-arm), const ETH_P_TIPC ideal-int
+pkg syscall (linux-arm), const ETH_P_TRAILER ideal-int
+pkg syscall (linux-arm), const ETH_P_TR_802_2 ideal-int
+pkg syscall (linux-arm), const ETH_P_WAN_PPP ideal-int
+pkg syscall (linux-arm), const ETH_P_WCCP ideal-int
+pkg syscall (linux-arm), const ETH_P_X25 ideal-int
+pkg syscall (linux-arm), const ETIME Errno
+pkg syscall (linux-arm), const EUCLEAN Errno
+pkg syscall (linux-arm), const EUNATCH Errno
+pkg syscall (linux-arm), const EXFULL Errno
+pkg syscall (linux-arm), const FD_CLOEXEC ideal-int
+pkg syscall (linux-arm), const FD_SETSIZE ideal-int
+pkg syscall (linux-arm), const FLUSHO ideal-int
+pkg syscall (linux-arm), const F_DUPFD ideal-int
+pkg syscall (linux-arm), const F_DUPFD_CLOEXEC ideal-int
+pkg syscall (linux-arm), const F_EXLCK ideal-int
+pkg syscall (linux-arm), const F_GETFD ideal-int
+pkg syscall (linux-arm), const F_GETFL ideal-int
+pkg syscall (linux-arm), const F_GETLEASE ideal-int
+pkg syscall (linux-arm), const F_GETLK ideal-int
+pkg syscall (linux-arm), const F_GETLK64 ideal-int
+pkg syscall (linux-arm), const F_GETOWN ideal-int
+pkg syscall (linux-arm), const F_GETOWN_EX ideal-int
+pkg syscall (linux-arm), const F_GETPIPE_SZ ideal-int
+pkg syscall (linux-arm), const F_GETSIG ideal-int
+pkg syscall (linux-arm), const F_LOCK ideal-int
+pkg syscall (linux-arm), const F_NOTIFY ideal-int
+pkg syscall (linux-arm), const F_OK ideal-int
+pkg syscall (linux-arm), const F_RDLCK ideal-int
+pkg syscall (linux-arm), const F_SETFD ideal-int
+pkg syscall (linux-arm), const F_SETFL ideal-int
+pkg syscall (linux-arm), const F_SETLEASE ideal-int
+pkg syscall (linux-arm), const F_SETLK ideal-int
+pkg syscall (linux-arm), const F_SETLK64 ideal-int
+pkg syscall (linux-arm), const F_SETLKW ideal-int
+pkg syscall (linux-arm), const F_SETLKW64 ideal-int
+pkg syscall (linux-arm), const F_SETOWN ideal-int
+pkg syscall (linux-arm), const F_SETOWN_EX ideal-int
+pkg syscall (linux-arm), const F_SETPIPE_SZ ideal-int
+pkg syscall (linux-arm), const F_SETSIG ideal-int
+pkg syscall (linux-arm), const F_SHLCK ideal-int
+pkg syscall (linux-arm), const F_TEST ideal-int
+pkg syscall (linux-arm), const F_TLOCK ideal-int
+pkg syscall (linux-arm), const F_ULOCK ideal-int
+pkg syscall (linux-arm), const F_UNLCK ideal-int
+pkg syscall (linux-arm), const F_WRLCK ideal-int
+pkg syscall (linux-arm), const HUPCL ideal-int
+pkg syscall (linux-arm), const ICANON ideal-int
+pkg syscall (linux-arm), const ICRNL ideal-int
+pkg syscall (linux-arm), const IEXTEN ideal-int
+pkg syscall (linux-arm), const IFA_ADDRESS ideal-int
+pkg syscall (linux-arm), const IFA_ANYCAST ideal-int
+pkg syscall (linux-arm), const IFA_BROADCAST ideal-int
+pkg syscall (linux-arm), const IFA_CACHEINFO ideal-int
+pkg syscall (linux-arm), const IFA_F_DADFAILED ideal-int
+pkg syscall (linux-arm), const IFA_F_DEPRECATED ideal-int
+pkg syscall (linux-arm), const IFA_F_HOMEADDRESS ideal-int
+pkg syscall (linux-arm), const IFA_F_NODAD ideal-int
+pkg syscall (linux-arm), const IFA_F_OPTIMISTIC ideal-int
+pkg syscall (linux-arm), const IFA_F_PERMANENT ideal-int
+pkg syscall (linux-arm), const IFA_F_SECONDARY ideal-int
+pkg syscall (linux-arm), const IFA_F_TEMPORARY ideal-int
+pkg syscall (linux-arm), const IFA_F_TENTATIVE ideal-int
+pkg syscall (linux-arm), const IFA_LABEL ideal-int
+pkg syscall (linux-arm), const IFA_LOCAL ideal-int
+pkg syscall (linux-arm), const IFA_MAX ideal-int
+pkg syscall (linux-arm), const IFA_MULTICAST ideal-int
+pkg syscall (linux-arm), const IFA_UNSPEC ideal-int
+pkg syscall (linux-arm), const IFF_ALLMULTI ideal-int
+pkg syscall (linux-arm), const IFF_AUTOMEDIA ideal-int
+pkg syscall (linux-arm), const IFF_DEBUG ideal-int
+pkg syscall (linux-arm), const IFF_DYNAMIC ideal-int
+pkg syscall (linux-arm), const IFF_MASTER ideal-int
+pkg syscall (linux-arm), const IFF_NOARP ideal-int
+pkg syscall (linux-arm), const IFF_NOTRAILERS ideal-int
+pkg syscall (linux-arm), const IFF_NO_PI ideal-int
+pkg syscall (linux-arm), const IFF_ONE_QUEUE ideal-int
+pkg syscall (linux-arm), const IFF_POINTOPOINT ideal-int
+pkg syscall (linux-arm), const IFF_PORTSEL ideal-int
+pkg syscall (linux-arm), const IFF_PROMISC ideal-int
+pkg syscall (linux-arm), const IFF_RUNNING ideal-int
+pkg syscall (linux-arm), const IFF_SLAVE ideal-int
+pkg syscall (linux-arm), const IFF_TAP ideal-int
+pkg syscall (linux-arm), const IFF_TUN ideal-int
+pkg syscall (linux-arm), const IFF_TUN_EXCL ideal-int
+pkg syscall (linux-arm), const IFF_VNET_HDR ideal-int
+pkg syscall (linux-arm), const IFLA_ADDRESS ideal-int
+pkg syscall (linux-arm), const IFLA_BROADCAST ideal-int
+pkg syscall (linux-arm), const IFLA_COST ideal-int
+pkg syscall (linux-arm), const IFLA_IFALIAS ideal-int
+pkg syscall (linux-arm), const IFLA_IFNAME ideal-int
+pkg syscall (linux-arm), const IFLA_LINK ideal-int
+pkg syscall (linux-arm), const IFLA_LINKINFO ideal-int
+pkg syscall (linux-arm), const IFLA_LINKMODE ideal-int
+pkg syscall (linux-arm), const IFLA_MAP ideal-int
+pkg syscall (linux-arm), const IFLA_MASTER ideal-int
+pkg syscall (linux-arm), const IFLA_MAX ideal-int
+pkg syscall (linux-arm), const IFLA_MTU ideal-int
+pkg syscall (linux-arm), const IFLA_NET_NS_PID ideal-int
+pkg syscall (linux-arm), const IFLA_OPERSTATE ideal-int
+pkg syscall (linux-arm), const IFLA_PRIORITY ideal-int
+pkg syscall (linux-arm), const IFLA_PROTINFO ideal-int
+pkg syscall (linux-arm), const IFLA_QDISC ideal-int
+pkg syscall (linux-arm), const IFLA_STATS ideal-int
+pkg syscall (linux-arm), const IFLA_TXQLEN ideal-int
+pkg syscall (linux-arm), const IFLA_UNSPEC ideal-int
+pkg syscall (linux-arm), const IFLA_WEIGHT ideal-int
+pkg syscall (linux-arm), const IFLA_WIRELESS ideal-int
+pkg syscall (linux-arm), const IFNAMSIZ ideal-int
+pkg syscall (linux-arm), const IGNBRK ideal-int
+pkg syscall (linux-arm), const IGNCR ideal-int
+pkg syscall (linux-arm), const IGNPAR ideal-int
+pkg syscall (linux-arm), const IMAXBEL ideal-int
+pkg syscall (linux-arm), const INLCR ideal-int
+pkg syscall (linux-arm), const INPCK ideal-int
+pkg syscall (linux-arm), const IN_ACCESS ideal-int
+pkg syscall (linux-arm), const IN_ALL_EVENTS ideal-int
+pkg syscall (linux-arm), const IN_ATTRIB ideal-int
+pkg syscall (linux-arm), const IN_CLASSA_HOST ideal-int
+pkg syscall (linux-arm), const IN_CLASSA_MAX ideal-int
+pkg syscall (linux-arm), const IN_CLASSA_NET ideal-int
+pkg syscall (linux-arm), const IN_CLASSA_NSHIFT ideal-int
+pkg syscall (linux-arm), const IN_CLASSB_HOST ideal-int
+pkg syscall (linux-arm), const IN_CLASSB_MAX ideal-int
+pkg syscall (linux-arm), const IN_CLASSB_NET ideal-int
+pkg syscall (linux-arm), const IN_CLASSB_NSHIFT ideal-int
+pkg syscall (linux-arm), const IN_CLASSC_HOST ideal-int
+pkg syscall (linux-arm), const IN_CLASSC_NET ideal-int
+pkg syscall (linux-arm), const IN_CLASSC_NSHIFT ideal-int
+pkg syscall (linux-arm), const IN_CLOEXEC ideal-int
+pkg syscall (linux-arm), const IN_CLOSE ideal-int
+pkg syscall (linux-arm), const IN_CLOSE_NOWRITE ideal-int
+pkg syscall (linux-arm), const IN_CLOSE_WRITE ideal-int
+pkg syscall (linux-arm), const IN_CREATE ideal-int
+pkg syscall (linux-arm), const IN_DELETE ideal-int
+pkg syscall (linux-arm), const IN_DELETE_SELF ideal-int
+pkg syscall (linux-arm), const IN_DONT_FOLLOW ideal-int
+pkg syscall (linux-arm), const IN_EXCL_UNLINK ideal-int
+pkg syscall (linux-arm), const IN_IGNORED ideal-int
+pkg syscall (linux-arm), const IN_ISDIR ideal-int
+pkg syscall (linux-arm), const IN_LOOPBACKNET ideal-int
+pkg syscall (linux-arm), const IN_MASK_ADD ideal-int
+pkg syscall (linux-arm), const IN_MODIFY ideal-int
+pkg syscall (linux-arm), const IN_MOVE ideal-int
+pkg syscall (linux-arm), const IN_MOVED_FROM ideal-int
+pkg syscall (linux-arm), const IN_MOVED_TO ideal-int
+pkg syscall (linux-arm), const IN_MOVE_SELF ideal-int
+pkg syscall (linux-arm), const IN_NONBLOCK ideal-int
+pkg syscall (linux-arm), const IN_ONESHOT ideal-int
+pkg syscall (linux-arm), const IN_ONLYDIR ideal-int
+pkg syscall (linux-arm), const IN_OPEN ideal-int
+pkg syscall (linux-arm), const IN_Q_OVERFLOW ideal-int
+pkg syscall (linux-arm), const IN_UNMOUNT ideal-int
+pkg syscall (linux-arm), const IPPROTO_AH ideal-int
+pkg syscall (linux-arm), const IPPROTO_COMP ideal-int
+pkg syscall (linux-arm), const IPPROTO_DCCP ideal-int
+pkg syscall (linux-arm), const IPPROTO_DSTOPTS ideal-int
+pkg syscall (linux-arm), const IPPROTO_EGP ideal-int
+pkg syscall (linux-arm), const IPPROTO_ENCAP ideal-int
+pkg syscall (linux-arm), const IPPROTO_ESP ideal-int
+pkg syscall (linux-arm), const IPPROTO_FRAGMENT ideal-int
+pkg syscall (linux-arm), const IPPROTO_GRE ideal-int
+pkg syscall (linux-arm), const IPPROTO_HOPOPTS ideal-int
+pkg syscall (linux-arm), const IPPROTO_ICMP ideal-int
+pkg syscall (linux-arm), const IPPROTO_ICMPV6 ideal-int
+pkg syscall (linux-arm), const IPPROTO_IDP ideal-int
+pkg syscall (linux-arm), const IPPROTO_IGMP ideal-int
+pkg syscall (linux-arm), const IPPROTO_IPIP ideal-int
+pkg syscall (linux-arm), const IPPROTO_MTP ideal-int
+pkg syscall (linux-arm), const IPPROTO_NONE ideal-int
+pkg syscall (linux-arm), const IPPROTO_PIM ideal-int
+pkg syscall (linux-arm), const IPPROTO_PUP ideal-int
+pkg syscall (linux-arm), const IPPROTO_RAW ideal-int
+pkg syscall (linux-arm), const IPPROTO_ROUTING ideal-int
+pkg syscall (linux-arm), const IPPROTO_RSVP ideal-int
+pkg syscall (linux-arm), const IPPROTO_SCTP ideal-int
+pkg syscall (linux-arm), const IPPROTO_TP ideal-int
+pkg syscall (linux-arm), const IPPROTO_UDPLITE ideal-int
+pkg syscall (linux-arm), const IPV6_2292DSTOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_2292HOPLIMIT ideal-int
+pkg syscall (linux-arm), const IPV6_2292HOPOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_2292PKTINFO ideal-int
+pkg syscall (linux-arm), const IPV6_2292PKTOPTIONS ideal-int
+pkg syscall (linux-arm), const IPV6_2292RTHDR ideal-int
+pkg syscall (linux-arm), const IPV6_ADDRFORM ideal-int
+pkg syscall (linux-arm), const IPV6_ADD_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const IPV6_AUTHHDR ideal-int
+pkg syscall (linux-arm), const IPV6_CHECKSUM ideal-int
+pkg syscall (linux-arm), const IPV6_DROP_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const IPV6_DSTOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_HOPLIMIT ideal-int
+pkg syscall (linux-arm), const IPV6_HOPOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_IPSEC_POLICY ideal-int
+pkg syscall (linux-arm), const IPV6_JOIN_ANYCAST ideal-int
+pkg syscall (linux-arm), const IPV6_LEAVE_ANYCAST ideal-int
+pkg syscall (linux-arm), const IPV6_MTU ideal-int
+pkg syscall (linux-arm), const IPV6_MTU_DISCOVER ideal-int
+pkg syscall (linux-arm), const IPV6_NEXTHOP ideal-int
+pkg syscall (linux-arm), const IPV6_PKTINFO ideal-int
+pkg syscall (linux-arm), const IPV6_PMTUDISC_DO ideal-int
+pkg syscall (linux-arm), const IPV6_PMTUDISC_DONT ideal-int
+pkg syscall (linux-arm), const IPV6_PMTUDISC_PROBE ideal-int
+pkg syscall (linux-arm), const IPV6_PMTUDISC_WANT ideal-int
+pkg syscall (linux-arm), const IPV6_RECVDSTOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_RECVERR ideal-int
+pkg syscall (linux-arm), const IPV6_RECVHOPLIMIT ideal-int
+pkg syscall (linux-arm), const IPV6_RECVHOPOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_RECVPKTINFO ideal-int
+pkg syscall (linux-arm), const IPV6_RECVRTHDR ideal-int
+pkg syscall (linux-arm), const IPV6_RECVTCLASS ideal-int
+pkg syscall (linux-arm), const IPV6_ROUTER_ALERT ideal-int
+pkg syscall (linux-arm), const IPV6_RTHDR ideal-int
+pkg syscall (linux-arm), const IPV6_RTHDRDSTOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_RTHDR_LOOSE ideal-int
+pkg syscall (linux-arm), const IPV6_RTHDR_STRICT ideal-int
+pkg syscall (linux-arm), const IPV6_RTHDR_TYPE_0 ideal-int
+pkg syscall (linux-arm), const IPV6_RXDSTOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_RXHOPOPTS ideal-int
+pkg syscall (linux-arm), const IPV6_TCLASS ideal-int
+pkg syscall (linux-arm), const IPV6_XFRM_POLICY ideal-int
+pkg syscall (linux-arm), const IP_ADD_SOURCE_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const IP_BLOCK_SOURCE ideal-int
+pkg syscall (linux-arm), const IP_DEFAULT_MULTICAST_LOOP ideal-int
+pkg syscall (linux-arm), const IP_DEFAULT_MULTICAST_TTL ideal-int
+pkg syscall (linux-arm), const IP_DF ideal-int
+pkg syscall (linux-arm), const IP_DROP_SOURCE_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const IP_FREEBIND ideal-int
+pkg syscall (linux-arm), const IP_HDRINCL ideal-int
+pkg syscall (linux-arm), const IP_IPSEC_POLICY ideal-int
+pkg syscall (linux-arm), const IP_MAXPACKET ideal-int
+pkg syscall (linux-arm), const IP_MAX_MEMBERSHIPS ideal-int
+pkg syscall (linux-arm), const IP_MF ideal-int
+pkg syscall (linux-arm), const IP_MINTTL ideal-int
+pkg syscall (linux-arm), const IP_MSFILTER ideal-int
+pkg syscall (linux-arm), const IP_MSS ideal-int
+pkg syscall (linux-arm), const IP_MTU ideal-int
+pkg syscall (linux-arm), const IP_MTU_DISCOVER ideal-int
+pkg syscall (linux-arm), const IP_OFFMASK ideal-int
+pkg syscall (linux-arm), const IP_OPTIONS ideal-int
+pkg syscall (linux-arm), const IP_ORIGDSTADDR ideal-int
+pkg syscall (linux-arm), const IP_PASSSEC ideal-int
+pkg syscall (linux-arm), const IP_PKTINFO ideal-int
+pkg syscall (linux-arm), const IP_PKTOPTIONS ideal-int
+pkg syscall (linux-arm), const IP_PMTUDISC ideal-int
+pkg syscall (linux-arm), const IP_PMTUDISC_DO ideal-int
+pkg syscall (linux-arm), const IP_PMTUDISC_DONT ideal-int
+pkg syscall (linux-arm), const IP_PMTUDISC_PROBE ideal-int
+pkg syscall (linux-arm), const IP_PMTUDISC_WANT ideal-int
+pkg syscall (linux-arm), const IP_RECVERR ideal-int
+pkg syscall (linux-arm), const IP_RECVOPTS ideal-int
+pkg syscall (linux-arm), const IP_RECVORIGDSTADDR ideal-int
+pkg syscall (linux-arm), const IP_RECVRETOPTS ideal-int
+pkg syscall (linux-arm), const IP_RECVTOS ideal-int
+pkg syscall (linux-arm), const IP_RECVTTL ideal-int
+pkg syscall (linux-arm), const IP_RETOPTS ideal-int
+pkg syscall (linux-arm), const IP_RF ideal-int
+pkg syscall (linux-arm), const IP_ROUTER_ALERT ideal-int
+pkg syscall (linux-arm), const IP_TRANSPARENT ideal-int
+pkg syscall (linux-arm), const IP_UNBLOCK_SOURCE ideal-int
+pkg syscall (linux-arm), const IP_XFRM_POLICY ideal-int
+pkg syscall (linux-arm), const ISIG ideal-int
+pkg syscall (linux-arm), const ISTRIP ideal-int
+pkg syscall (linux-arm), const IUCLC ideal-int
+pkg syscall (linux-arm), const IUTF8 ideal-int
+pkg syscall (linux-arm), const IXANY ideal-int
+pkg syscall (linux-arm), const IXOFF ideal-int
+pkg syscall (linux-arm), const IXON ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_CAD_OFF ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_CAD_ON ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_HALT ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_KEXEC ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_POWER_OFF ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_RESTART ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_RESTART2 ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_CMD_SW_SUSPEND ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_MAGIC1 ideal-int
+pkg syscall (linux-arm), const LINUX_REBOOT_MAGIC2 ideal-int
+pkg syscall (linux-arm), const LOCK_EX ideal-int
+pkg syscall (linux-arm), const LOCK_NB ideal-int
+pkg syscall (linux-arm), const LOCK_SH ideal-int
+pkg syscall (linux-arm), const LOCK_UN ideal-int
+pkg syscall (linux-arm), const MADV_DOFORK ideal-int
+pkg syscall (linux-arm), const MADV_DONTFORK ideal-int
+pkg syscall (linux-arm), const MADV_DONTNEED ideal-int
+pkg syscall (linux-arm), const MADV_HUGEPAGE ideal-int
+pkg syscall (linux-arm), const MADV_HWPOISON ideal-int
+pkg syscall (linux-arm), const MADV_MERGEABLE ideal-int
+pkg syscall (linux-arm), const MADV_NOHUGEPAGE ideal-int
+pkg syscall (linux-arm), const MADV_NORMAL ideal-int
+pkg syscall (linux-arm), const MADV_RANDOM ideal-int
+pkg syscall (linux-arm), const MADV_REMOVE ideal-int
+pkg syscall (linux-arm), const MADV_SEQUENTIAL ideal-int
+pkg syscall (linux-arm), const MADV_UNMERGEABLE ideal-int
+pkg syscall (linux-arm), const MADV_WILLNEED ideal-int
+pkg syscall (linux-arm), const MAP_ANON ideal-int
+pkg syscall (linux-arm), const MAP_ANONYMOUS ideal-int
+pkg syscall (linux-arm), const MAP_DENYWRITE ideal-int
+pkg syscall (linux-arm), const MAP_EXECUTABLE ideal-int
+pkg syscall (linux-arm), const MAP_FILE ideal-int
+pkg syscall (linux-arm), const MAP_FIXED ideal-int
+pkg syscall (linux-arm), const MAP_GROWSDOWN ideal-int
+pkg syscall (linux-arm), const MAP_LOCKED ideal-int
+pkg syscall (linux-arm), const MAP_NONBLOCK ideal-int
+pkg syscall (linux-arm), const MAP_NORESERVE ideal-int
+pkg syscall (linux-arm), const MAP_POPULATE ideal-int
+pkg syscall (linux-arm), const MAP_PRIVATE ideal-int
+pkg syscall (linux-arm), const MAP_SHARED ideal-int
+pkg syscall (linux-arm), const MAP_TYPE ideal-int
+pkg syscall (linux-arm), const MCL_CURRENT ideal-int
+pkg syscall (linux-arm), const MCL_FUTURE ideal-int
+pkg syscall (linux-arm), const MNT_DETACH ideal-int
+pkg syscall (linux-arm), const MNT_EXPIRE ideal-int
+pkg syscall (linux-arm), const MNT_FORCE ideal-int
+pkg syscall (linux-arm), const MSG_CMSG_CLOEXEC ideal-int
+pkg syscall (linux-arm), const MSG_CONFIRM ideal-int
+pkg syscall (linux-arm), const MSG_CTRUNC ideal-int
+pkg syscall (linux-arm), const MSG_DONTROUTE ideal-int
+pkg syscall (linux-arm), const MSG_DONTWAIT ideal-int
+pkg syscall (linux-arm), const MSG_EOR ideal-int
+pkg syscall (linux-arm), const MSG_ERRQUEUE ideal-int
+pkg syscall (linux-arm), const MSG_FIN ideal-int
+pkg syscall (linux-arm), const MSG_MORE ideal-int
+pkg syscall (linux-arm), const MSG_NOSIGNAL ideal-int
+pkg syscall (linux-arm), const MSG_OOB ideal-int
+pkg syscall (linux-arm), const MSG_PEEK ideal-int
+pkg syscall (linux-arm), const MSG_PROXY ideal-int
+pkg syscall (linux-arm), const MSG_RST ideal-int
+pkg syscall (linux-arm), const MSG_SYN ideal-int
+pkg syscall (linux-arm), const MSG_TRUNC ideal-int
+pkg syscall (linux-arm), const MSG_TRYHARD ideal-int
+pkg syscall (linux-arm), const MSG_WAITALL ideal-int
+pkg syscall (linux-arm), const MSG_WAITFORONE ideal-int
+pkg syscall (linux-arm), const MS_ACTIVE ideal-int
+pkg syscall (linux-arm), const MS_ASYNC ideal-int
+pkg syscall (linux-arm), const MS_BIND ideal-int
+pkg syscall (linux-arm), const MS_DIRSYNC ideal-int
+pkg syscall (linux-arm), const MS_INVALIDATE ideal-int
+pkg syscall (linux-arm), const MS_I_VERSION ideal-int
+pkg syscall (linux-arm), const MS_KERNMOUNT ideal-int
+pkg syscall (linux-arm), const MS_MANDLOCK ideal-int
+pkg syscall (linux-arm), const MS_MGC_MSK ideal-int
+pkg syscall (linux-arm), const MS_MGC_VAL ideal-int
+pkg syscall (linux-arm), const MS_MOVE ideal-int
+pkg syscall (linux-arm), const MS_NOATIME ideal-int
+pkg syscall (linux-arm), const MS_NODEV ideal-int
+pkg syscall (linux-arm), const MS_NODIRATIME ideal-int
+pkg syscall (linux-arm), const MS_NOEXEC ideal-int
+pkg syscall (linux-arm), const MS_NOSUID ideal-int
+pkg syscall (linux-arm), const MS_NOUSER ideal-int
+pkg syscall (linux-arm), const MS_POSIXACL ideal-int
+pkg syscall (linux-arm), const MS_PRIVATE ideal-int
+pkg syscall (linux-arm), const MS_RDONLY ideal-int
+pkg syscall (linux-arm), const MS_REC ideal-int
+pkg syscall (linux-arm), const MS_RELATIME ideal-int
+pkg syscall (linux-arm), const MS_REMOUNT ideal-int
+pkg syscall (linux-arm), const MS_RMT_MASK ideal-int
+pkg syscall (linux-arm), const MS_SHARED ideal-int
+pkg syscall (linux-arm), const MS_SILENT ideal-int
+pkg syscall (linux-arm), const MS_SLAVE ideal-int
+pkg syscall (linux-arm), const MS_STRICTATIME ideal-int
+pkg syscall (linux-arm), const MS_SYNC ideal-int
+pkg syscall (linux-arm), const MS_SYNCHRONOUS ideal-int
+pkg syscall (linux-arm), const MS_UNBINDABLE ideal-int
+pkg syscall (linux-arm), const NAME_MAX ideal-int
+pkg syscall (linux-arm), const NETLINK_ADD_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const NETLINK_AUDIT ideal-int
+pkg syscall (linux-arm), const NETLINK_BROADCAST_ERROR ideal-int
+pkg syscall (linux-arm), const NETLINK_CONNECTOR ideal-int
+pkg syscall (linux-arm), const NETLINK_DNRTMSG ideal-int
+pkg syscall (linux-arm), const NETLINK_DROP_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const NETLINK_ECRYPTFS ideal-int
+pkg syscall (linux-arm), const NETLINK_FIB_LOOKUP ideal-int
+pkg syscall (linux-arm), const NETLINK_FIREWALL ideal-int
+pkg syscall (linux-arm), const NETLINK_GENERIC ideal-int
+pkg syscall (linux-arm), const NETLINK_INET_DIAG ideal-int
+pkg syscall (linux-arm), const NETLINK_IP6_FW ideal-int
+pkg syscall (linux-arm), const NETLINK_ISCSI ideal-int
+pkg syscall (linux-arm), const NETLINK_KOBJECT_UEVENT ideal-int
+pkg syscall (linux-arm), const NETLINK_NETFILTER ideal-int
+pkg syscall (linux-arm), const NETLINK_NFLOG ideal-int
+pkg syscall (linux-arm), const NETLINK_NO_ENOBUFS ideal-int
+pkg syscall (linux-arm), const NETLINK_PKTINFO ideal-int
+pkg syscall (linux-arm), const NETLINK_RDMA ideal-int
+pkg syscall (linux-arm), const NETLINK_ROUTE ideal-int
+pkg syscall (linux-arm), const NETLINK_SCSITRANSPORT ideal-int
+pkg syscall (linux-arm), const NETLINK_SELINUX ideal-int
+pkg syscall (linux-arm), const NETLINK_UNUSED ideal-int
+pkg syscall (linux-arm), const NETLINK_USERSOCK ideal-int
+pkg syscall (linux-arm), const NETLINK_XFRM ideal-int
+pkg syscall (linux-arm), const NLA_ALIGNTO ideal-int
+pkg syscall (linux-arm), const NLA_F_NESTED ideal-int
+pkg syscall (linux-arm), const NLA_F_NET_BYTEORDER ideal-int
+pkg syscall (linux-arm), const NLA_HDRLEN ideal-int
+pkg syscall (linux-arm), const NLMSG_ALIGNTO ideal-int
+pkg syscall (linux-arm), const NLMSG_DONE ideal-int
+pkg syscall (linux-arm), const NLMSG_ERROR ideal-int
+pkg syscall (linux-arm), const NLMSG_HDRLEN ideal-int
+pkg syscall (linux-arm), const NLMSG_MIN_TYPE ideal-int
+pkg syscall (linux-arm), const NLMSG_NOOP ideal-int
+pkg syscall (linux-arm), const NLMSG_OVERRUN ideal-int
+pkg syscall (linux-arm), const NLM_F_ACK ideal-int
+pkg syscall (linux-arm), const NLM_F_APPEND ideal-int
+pkg syscall (linux-arm), const NLM_F_ATOMIC ideal-int
+pkg syscall (linux-arm), const NLM_F_CREATE ideal-int
+pkg syscall (linux-arm), const NLM_F_DUMP ideal-int
+pkg syscall (linux-arm), const NLM_F_ECHO ideal-int
+pkg syscall (linux-arm), const NLM_F_EXCL ideal-int
+pkg syscall (linux-arm), const NLM_F_MATCH ideal-int
+pkg syscall (linux-arm), const NLM_F_MULTI ideal-int
+pkg syscall (linux-arm), const NLM_F_REPLACE ideal-int
+pkg syscall (linux-arm), const NLM_F_REQUEST ideal-int
+pkg syscall (linux-arm), const NLM_F_ROOT ideal-int
+pkg syscall (linux-arm), const NOFLSH ideal-int
+pkg syscall (linux-arm), const OCRNL ideal-int
+pkg syscall (linux-arm), const OFDEL ideal-int
+pkg syscall (linux-arm), const OFILL ideal-int
+pkg syscall (linux-arm), const OLCUC ideal-int
+pkg syscall (linux-arm), const ONLCR ideal-int
+pkg syscall (linux-arm), const ONLRET ideal-int
+pkg syscall (linux-arm), const ONOCR ideal-int
+pkg syscall (linux-arm), const OPOST ideal-int
+pkg syscall (linux-arm), const O_ACCMODE ideal-int
+pkg syscall (linux-arm), const O_DIRECT ideal-int
+pkg syscall (linux-arm), const O_DIRECTORY ideal-int
+pkg syscall (linux-arm), const O_DSYNC ideal-int
+pkg syscall (linux-arm), const O_FSYNC ideal-int
+pkg syscall (linux-arm), const O_LARGEFILE ideal-int
+pkg syscall (linux-arm), const O_NDELAY ideal-int
+pkg syscall (linux-arm), const O_NOATIME ideal-int
+pkg syscall (linux-arm), const O_NOFOLLOW ideal-int
+pkg syscall (linux-arm), const O_RSYNC ideal-int
+pkg syscall (linux-arm), const PACKET_ADD_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const PACKET_BROADCAST ideal-int
+pkg syscall (linux-arm), const PACKET_DROP_MEMBERSHIP ideal-int
+pkg syscall (linux-arm), const PACKET_FASTROUTE ideal-int
+pkg syscall (linux-arm), const PACKET_HOST ideal-int
+pkg syscall (linux-arm), const PACKET_LOOPBACK ideal-int
+pkg syscall (linux-arm), const PACKET_MR_ALLMULTI ideal-int
+pkg syscall (linux-arm), const PACKET_MR_MULTICAST ideal-int
+pkg syscall (linux-arm), const PACKET_MR_PROMISC ideal-int
+pkg syscall (linux-arm), const PACKET_MULTICAST ideal-int
+pkg syscall (linux-arm), const PACKET_OTHERHOST ideal-int
+pkg syscall (linux-arm), const PACKET_OUTGOING ideal-int
+pkg syscall (linux-arm), const PACKET_RECV_OUTPUT ideal-int
+pkg syscall (linux-arm), const PACKET_RX_RING ideal-int
+pkg syscall (linux-arm), const PACKET_STATISTICS ideal-int
+pkg syscall (linux-arm), const PARENB ideal-int
+pkg syscall (linux-arm), const PARMRK ideal-int
+pkg syscall (linux-arm), const PARODD ideal-int
+pkg syscall (linux-arm), const PENDIN ideal-int
+pkg syscall (linux-arm), const PROT_EXEC ideal-int
+pkg syscall (linux-arm), const PROT_GROWSDOWN ideal-int
+pkg syscall (linux-arm), const PROT_GROWSUP ideal-int
+pkg syscall (linux-arm), const PROT_NONE ideal-int
+pkg syscall (linux-arm), const PROT_READ ideal-int
+pkg syscall (linux-arm), const PROT_WRITE ideal-int
+pkg syscall (linux-arm), const PR_CAPBSET_DROP ideal-int
+pkg syscall (linux-arm), const PR_CAPBSET_READ ideal-int
+pkg syscall (linux-arm), const PR_CLEAR_SECCOMP_FILTER ideal-int
+pkg syscall (linux-arm), const PR_ENDIAN_BIG ideal-int
+pkg syscall (linux-arm), const PR_ENDIAN_LITTLE ideal-int
+pkg syscall (linux-arm), const PR_ENDIAN_PPC_LITTLE ideal-int
+pkg syscall (linux-arm), const PR_FPEMU_NOPRINT ideal-int
+pkg syscall (linux-arm), const PR_FPEMU_SIGFPE ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_ASYNC ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_DISABLED ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_DIV ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_INV ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_NONRECOV ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_OVF ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_PRECISE ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_RES ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_SW_ENABLE ideal-int
+pkg syscall (linux-arm), const PR_FP_EXC_UND ideal-int
+pkg syscall (linux-arm), const PR_GET_DUMPABLE ideal-int
+pkg syscall (linux-arm), const PR_GET_ENDIAN ideal-int
+pkg syscall (linux-arm), const PR_GET_FPEMU ideal-int
+pkg syscall (linux-arm), const PR_GET_FPEXC ideal-int
+pkg syscall (linux-arm), const PR_GET_KEEPCAPS ideal-int
+pkg syscall (linux-arm), const PR_GET_NAME ideal-int
+pkg syscall (linux-arm), const PR_GET_PDEATHSIG ideal-int
+pkg syscall (linux-arm), const PR_GET_SECCOMP ideal-int
+pkg syscall (linux-arm), const PR_GET_SECCOMP_FILTER ideal-int
+pkg syscall (linux-arm), const PR_GET_SECUREBITS ideal-int
+pkg syscall (linux-arm), const PR_GET_TIMERSLACK ideal-int
+pkg syscall (linux-arm), const PR_GET_TIMING ideal-int
+pkg syscall (linux-arm), const PR_GET_TSC ideal-int
+pkg syscall (linux-arm), const PR_GET_UNALIGN ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL_CLEAR ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL_DEFAULT ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL_EARLY ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL_GET ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL_LATE ideal-int
+pkg syscall (linux-arm), const PR_MCE_KILL_SET ideal-int
+pkg syscall (linux-arm), const PR_SECCOMP_FILTER_EVENT ideal-int
+pkg syscall (linux-arm), const PR_SECCOMP_FILTER_SYSCALL ideal-int
+pkg syscall (linux-arm), const PR_SET_DUMPABLE ideal-int
+pkg syscall (linux-arm), const PR_SET_ENDIAN ideal-int
+pkg syscall (linux-arm), const PR_SET_FPEMU ideal-int
+pkg syscall (linux-arm), const PR_SET_FPEXC ideal-int
+pkg syscall (linux-arm), const PR_SET_KEEPCAPS ideal-int
+pkg syscall (linux-arm), const PR_SET_NAME ideal-int
+pkg syscall (linux-arm), const PR_SET_PDEATHSIG ideal-int
+pkg syscall (linux-arm), const PR_SET_PTRACER ideal-int
+pkg syscall (linux-arm), const PR_SET_SECCOMP ideal-int
+pkg syscall (linux-arm), const PR_SET_SECCOMP_FILTER ideal-int
+pkg syscall (linux-arm), const PR_SET_SECUREBITS ideal-int
+pkg syscall (linux-arm), const PR_SET_TIMERSLACK ideal-int
+pkg syscall (linux-arm), const PR_SET_TIMING ideal-int
+pkg syscall (linux-arm), const PR_SET_TSC ideal-int
+pkg syscall (linux-arm), const PR_SET_UNALIGN ideal-int
+pkg syscall (linux-arm), const PR_TASK_PERF_EVENTS_DISABLE ideal-int
+pkg syscall (linux-arm), const PR_TASK_PERF_EVENTS_ENABLE ideal-int
+pkg syscall (linux-arm), const PR_TIMING_STATISTICAL ideal-int
+pkg syscall (linux-arm), const PR_TIMING_TIMESTAMP ideal-int
+pkg syscall (linux-arm), const PR_TSC_ENABLE ideal-int
+pkg syscall (linux-arm), const PR_TSC_SIGSEGV ideal-int
+pkg syscall (linux-arm), const PR_UNALIGN_NOPRINT ideal-int
+pkg syscall (linux-arm), const PR_UNALIGN_SIGBUS ideal-int
+pkg syscall (linux-arm), const PTRACE_ATTACH ideal-int
+pkg syscall (linux-arm), const PTRACE_CONT ideal-int
+pkg syscall (linux-arm), const PTRACE_DETACH ideal-int
+pkg syscall (linux-arm), const PTRACE_EVENT_CLONE ideal-int
+pkg syscall (linux-arm), const PTRACE_EVENT_EXEC ideal-int
+pkg syscall (linux-arm), const PTRACE_EVENT_EXIT ideal-int
+pkg syscall (linux-arm), const PTRACE_EVENT_FORK ideal-int
+pkg syscall (linux-arm), const PTRACE_EVENT_VFORK ideal-int
+pkg syscall (linux-arm), const PTRACE_EVENT_VFORK_DONE ideal-int
+pkg syscall (linux-arm), const PTRACE_GETCRUNCHREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_GETEVENTMSG ideal-int
+pkg syscall (linux-arm), const PTRACE_GETFPREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_GETHBPREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_GETREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_GETREGSET ideal-int
+pkg syscall (linux-arm), const PTRACE_GETSIGINFO ideal-int
+pkg syscall (linux-arm), const PTRACE_GETVFPREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_GETWMMXREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_GET_THREAD_AREA ideal-int
+pkg syscall (linux-arm), const PTRACE_KILL ideal-int
+pkg syscall (linux-arm), const PTRACE_OLDSETOPTIONS ideal-int
+pkg syscall (linux-arm), const PTRACE_O_MASK ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACECLONE ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACEEXEC ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACEEXIT ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACEFORK ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACESYSGOOD ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACEVFORK ideal-int
+pkg syscall (linux-arm), const PTRACE_O_TRACEVFORKDONE ideal-int
+pkg syscall (linux-arm), const PTRACE_PEEKDATA ideal-int
+pkg syscall (linux-arm), const PTRACE_PEEKTEXT ideal-int
+pkg syscall (linux-arm), const PTRACE_PEEKUSR ideal-int
+pkg syscall (linux-arm), const PTRACE_POKEDATA ideal-int
+pkg syscall (linux-arm), const PTRACE_POKETEXT ideal-int
+pkg syscall (linux-arm), const PTRACE_POKEUSR ideal-int
+pkg syscall (linux-arm), const PTRACE_SETCRUNCHREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_SETFPREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_SETHBPREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_SETOPTIONS ideal-int
+pkg syscall (linux-arm), const PTRACE_SETREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_SETREGSET ideal-int
+pkg syscall (linux-arm), const PTRACE_SETSIGINFO ideal-int
+pkg syscall (linux-arm), const PTRACE_SETVFPREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_SETWMMXREGS ideal-int
+pkg syscall (linux-arm), const PTRACE_SET_SYSCALL ideal-int
+pkg syscall (linux-arm), const PTRACE_SINGLESTEP ideal-int
+pkg syscall (linux-arm), const PTRACE_SYSCALL ideal-int
+pkg syscall (linux-arm), const PTRACE_TRACEME ideal-int
+pkg syscall (linux-arm), const PT_DATA_ADDR ideal-int
+pkg syscall (linux-arm), const PT_TEXT_ADDR ideal-int
+pkg syscall (linux-arm), const PT_TEXT_END_ADDR ideal-int
+pkg syscall (linux-arm), const PathMax ideal-int
+pkg syscall (linux-arm), const RLIMIT_AS ideal-int
+pkg syscall (linux-arm), const RLIMIT_CORE ideal-int
+pkg syscall (linux-arm), const RLIMIT_CPU ideal-int
+pkg syscall (linux-arm), const RLIMIT_DATA ideal-int
+pkg syscall (linux-arm), const RLIMIT_FSIZE ideal-int
+pkg syscall (linux-arm), const RLIMIT_NOFILE ideal-int
+pkg syscall (linux-arm), const RLIMIT_STACK ideal-int
+pkg syscall (linux-arm), const RLIM_INFINITY ideal-int
+pkg syscall (linux-arm), const RTAX_ADVMSS ideal-int
+pkg syscall (linux-arm), const RTAX_CWND ideal-int
+pkg syscall (linux-arm), const RTAX_FEATURES ideal-int
+pkg syscall (linux-arm), const RTAX_FEATURE_ALLFRAG ideal-int
+pkg syscall (linux-arm), const RTAX_FEATURE_ECN ideal-int
+pkg syscall (linux-arm), const RTAX_FEATURE_SACK ideal-int
+pkg syscall (linux-arm), const RTAX_FEATURE_TIMESTAMP ideal-int
+pkg syscall (linux-arm), const RTAX_HOPLIMIT ideal-int
+pkg syscall (linux-arm), const RTAX_INITCWND ideal-int
+pkg syscall (linux-arm), const RTAX_INITRWND ideal-int
+pkg syscall (linux-arm), const RTAX_LOCK ideal-int
+pkg syscall (linux-arm), const RTAX_MAX ideal-int
+pkg syscall (linux-arm), const RTAX_MTU ideal-int
+pkg syscall (linux-arm), const RTAX_REORDERING ideal-int
+pkg syscall (linux-arm), const RTAX_RTO_MIN ideal-int
+pkg syscall (linux-arm), const RTAX_RTT ideal-int
+pkg syscall (linux-arm), const RTAX_RTTVAR ideal-int
+pkg syscall (linux-arm), const RTAX_SSTHRESH ideal-int
+pkg syscall (linux-arm), const RTAX_UNSPEC ideal-int
+pkg syscall (linux-arm), const RTAX_WINDOW ideal-int
+pkg syscall (linux-arm), const RTA_ALIGNTO ideal-int
+pkg syscall (linux-arm), const RTA_CACHEINFO ideal-int
+pkg syscall (linux-arm), const RTA_DST ideal-int
+pkg syscall (linux-arm), const RTA_FLOW ideal-int
+pkg syscall (linux-arm), const RTA_GATEWAY ideal-int
+pkg syscall (linux-arm), const RTA_IIF ideal-int
+pkg syscall (linux-arm), const RTA_MAX ideal-int
+pkg syscall (linux-arm), const RTA_METRICS ideal-int
+pkg syscall (linux-arm), const RTA_MULTIPATH ideal-int
+pkg syscall (linux-arm), const RTA_OIF ideal-int
+pkg syscall (linux-arm), const RTA_PREFSRC ideal-int
+pkg syscall (linux-arm), const RTA_PRIORITY ideal-int
+pkg syscall (linux-arm), const RTA_SRC ideal-int
+pkg syscall (linux-arm), const RTA_TABLE ideal-int
+pkg syscall (linux-arm), const RTA_UNSPEC ideal-int
+pkg syscall (linux-arm), const RTCF_DIRECTSRC ideal-int
+pkg syscall (linux-arm), const RTCF_DOREDIRECT ideal-int
+pkg syscall (linux-arm), const RTCF_LOG ideal-int
+pkg syscall (linux-arm), const RTCF_MASQ ideal-int
+pkg syscall (linux-arm), const RTCF_NAT ideal-int
+pkg syscall (linux-arm), const RTCF_VALVE ideal-int
+pkg syscall (linux-arm), const RTF_ADDRCLASSMASK ideal-int
+pkg syscall (linux-arm), const RTF_ADDRCONF ideal-int
+pkg syscall (linux-arm), const RTF_ALLONLINK ideal-int
+pkg syscall (linux-arm), const RTF_BROADCAST ideal-int
+pkg syscall (linux-arm), const RTF_CACHE ideal-int
+pkg syscall (linux-arm), const RTF_DEFAULT ideal-int
+pkg syscall (linux-arm), const RTF_DYNAMIC ideal-int
+pkg syscall (linux-arm), const RTF_FLOW ideal-int
+pkg syscall (linux-arm), const RTF_GATEWAY ideal-int
+pkg syscall (linux-arm), const RTF_HOST ideal-int
+pkg syscall (linux-arm), const RTF_INTERFACE ideal-int
+pkg syscall (linux-arm), const RTF_IRTT ideal-int
+pkg syscall (linux-arm), const RTF_LINKRT ideal-int
+pkg syscall (linux-arm), const RTF_LOCAL ideal-int
+pkg syscall (linux-arm), const RTF_MODIFIED ideal-int
+pkg syscall (linux-arm), const RTF_MSS ideal-int
+pkg syscall (linux-arm), const RTF_MTU ideal-int
+pkg syscall (linux-arm), const RTF_MULTICAST ideal-int
+pkg syscall (linux-arm), const RTF_NAT ideal-int
+pkg syscall (linux-arm), const RTF_NOFORWARD ideal-int
+pkg syscall (linux-arm), const RTF_NONEXTHOP ideal-int
+pkg syscall (linux-arm), const RTF_NOPMTUDISC ideal-int
+pkg syscall (linux-arm), const RTF_POLICY ideal-int
+pkg syscall (linux-arm), const RTF_REINSTATE ideal-int
+pkg syscall (linux-arm), const RTF_REJECT ideal-int
+pkg syscall (linux-arm), const RTF_STATIC ideal-int
+pkg syscall (linux-arm), const RTF_THROW ideal-int
+pkg syscall (linux-arm), const RTF_UP ideal-int
+pkg syscall (linux-arm), const RTF_WINDOW ideal-int
+pkg syscall (linux-arm), const RTF_XRESOLVE ideal-int
+pkg syscall (linux-arm), const RTM_BASE ideal-int
+pkg syscall (linux-arm), const RTM_DELACTION ideal-int
+pkg syscall (linux-arm), const RTM_DELADDR ideal-int
+pkg syscall (linux-arm), const RTM_DELADDRLABEL ideal-int
+pkg syscall (linux-arm), const RTM_DELLINK ideal-int
+pkg syscall (linux-arm), const RTM_DELNEIGH ideal-int
+pkg syscall (linux-arm), const RTM_DELQDISC ideal-int
+pkg syscall (linux-arm), const RTM_DELROUTE ideal-int
+pkg syscall (linux-arm), const RTM_DELRULE ideal-int
+pkg syscall (linux-arm), const RTM_DELTCLASS ideal-int
+pkg syscall (linux-arm), const RTM_DELTFILTER ideal-int
+pkg syscall (linux-arm), const RTM_F_CLONED ideal-int
+pkg syscall (linux-arm), const RTM_F_EQUALIZE ideal-int
+pkg syscall (linux-arm), const RTM_F_NOTIFY ideal-int
+pkg syscall (linux-arm), const RTM_F_PREFIX ideal-int
+pkg syscall (linux-arm), const RTM_GETACTION ideal-int
+pkg syscall (linux-arm), const RTM_GETADDR ideal-int
+pkg syscall (linux-arm), const RTM_GETADDRLABEL ideal-int
+pkg syscall (linux-arm), const RTM_GETANYCAST ideal-int
+pkg syscall (linux-arm), const RTM_GETDCB ideal-int
+pkg syscall (linux-arm), const RTM_GETLINK ideal-int
+pkg syscall (linux-arm), const RTM_GETMULTICAST ideal-int
+pkg syscall (linux-arm), const RTM_GETNEIGH ideal-int
+pkg syscall (linux-arm), const RTM_GETNEIGHTBL ideal-int
+pkg syscall (linux-arm), const RTM_GETQDISC ideal-int
+pkg syscall (linux-arm), const RTM_GETROUTE ideal-int
+pkg syscall (linux-arm), const RTM_GETRULE ideal-int
+pkg syscall (linux-arm), const RTM_GETTCLASS ideal-int
+pkg syscall (linux-arm), const RTM_GETTFILTER ideal-int
+pkg syscall (linux-arm), const RTM_MAX ideal-int
+pkg syscall (linux-arm), const RTM_NEWACTION ideal-int
+pkg syscall (linux-arm), const RTM_NEWADDR ideal-int
+pkg syscall (linux-arm), const RTM_NEWADDRLABEL ideal-int
+pkg syscall (linux-arm), const RTM_NEWLINK ideal-int
+pkg syscall (linux-arm), const RTM_NEWNDUSEROPT ideal-int
+pkg syscall (linux-arm), const RTM_NEWNEIGH ideal-int
+pkg syscall (linux-arm), const RTM_NEWNEIGHTBL ideal-int
+pkg syscall (linux-arm), const RTM_NEWPREFIX ideal-int
+pkg syscall (linux-arm), const RTM_NEWQDISC ideal-int
+pkg syscall (linux-arm), const RTM_NEWROUTE ideal-int
+pkg syscall (linux-arm), const RTM_NEWRULE ideal-int
+pkg syscall (linux-arm), const RTM_NEWTCLASS ideal-int
+pkg syscall (linux-arm), const RTM_NEWTFILTER ideal-int
+pkg syscall (linux-arm), const RTM_NR_FAMILIES ideal-int
+pkg syscall (linux-arm), const RTM_NR_MSGTYPES ideal-int
+pkg syscall (linux-arm), const RTM_SETDCB ideal-int
+pkg syscall (linux-arm), const RTM_SETLINK ideal-int
+pkg syscall (linux-arm), const RTM_SETNEIGHTBL ideal-int
+pkg syscall (linux-arm), const RTNH_ALIGNTO ideal-int
+pkg syscall (linux-arm), const RTNH_F_DEAD ideal-int
+pkg syscall (linux-arm), const RTNH_F_ONLINK ideal-int
+pkg syscall (linux-arm), const RTNH_F_PERVASIVE ideal-int
+pkg syscall (linux-arm), const RTN_ANYCAST ideal-int
+pkg syscall (linux-arm), const RTN_BLACKHOLE ideal-int
+pkg syscall (linux-arm), const RTN_BROADCAST ideal-int
+pkg syscall (linux-arm), const RTN_LOCAL ideal-int
+pkg syscall (linux-arm), const RTN_MAX ideal-int
+pkg syscall (linux-arm), const RTN_MULTICAST ideal-int
+pkg syscall (linux-arm), const RTN_NAT ideal-int
+pkg syscall (linux-arm), const RTN_PROHIBIT ideal-int
+pkg syscall (linux-arm), const RTN_THROW ideal-int
+pkg syscall (linux-arm), const RTN_UNICAST ideal-int
+pkg syscall (linux-arm), const RTN_UNREACHABLE ideal-int
+pkg syscall (linux-arm), const RTN_UNSPEC ideal-int
+pkg syscall (linux-arm), const RTN_XRESOLVE ideal-int
+pkg syscall (linux-arm), const RTPROT_BIRD ideal-int
+pkg syscall (linux-arm), const RTPROT_BOOT ideal-int
+pkg syscall (linux-arm), const RTPROT_DHCP ideal-int
+pkg syscall (linux-arm), const RTPROT_DNROUTED ideal-int
+pkg syscall (linux-arm), const RTPROT_GATED ideal-int
+pkg syscall (linux-arm), const RTPROT_KERNEL ideal-int
+pkg syscall (linux-arm), const RTPROT_MRT ideal-int
+pkg syscall (linux-arm), const RTPROT_NTK ideal-int
+pkg syscall (linux-arm), const RTPROT_RA ideal-int
+pkg syscall (linux-arm), const RTPROT_REDIRECT ideal-int
+pkg syscall (linux-arm), const RTPROT_STATIC ideal-int
+pkg syscall (linux-arm), const RTPROT_UNSPEC ideal-int
+pkg syscall (linux-arm), const RTPROT_XORP ideal-int
+pkg syscall (linux-arm), const RTPROT_ZEBRA ideal-int
+pkg syscall (linux-arm), const RT_CLASS_DEFAULT ideal-int
+pkg syscall (linux-arm), const RT_CLASS_LOCAL ideal-int
+pkg syscall (linux-arm), const RT_CLASS_MAIN ideal-int
+pkg syscall (linux-arm), const RT_CLASS_MAX ideal-int
+pkg syscall (linux-arm), const RT_CLASS_UNSPEC ideal-int
+pkg syscall (linux-arm), const RT_SCOPE_HOST ideal-int
+pkg syscall (linux-arm), const RT_SCOPE_LINK ideal-int
+pkg syscall (linux-arm), const RT_SCOPE_NOWHERE ideal-int
+pkg syscall (linux-arm), const RT_SCOPE_SITE ideal-int
+pkg syscall (linux-arm), const RT_SCOPE_UNIVERSE ideal-int
+pkg syscall (linux-arm), const RT_TABLE_COMPAT ideal-int
+pkg syscall (linux-arm), const RT_TABLE_DEFAULT ideal-int
+pkg syscall (linux-arm), const RT_TABLE_LOCAL ideal-int
+pkg syscall (linux-arm), const RT_TABLE_MAIN ideal-int
+pkg syscall (linux-arm), const RT_TABLE_MAX ideal-int
+pkg syscall (linux-arm), const RT_TABLE_UNSPEC ideal-int
+pkg syscall (linux-arm), const RUSAGE_CHILDREN ideal-int
+pkg syscall (linux-arm), const RUSAGE_SELF ideal-int
+pkg syscall (linux-arm), const RUSAGE_THREAD ideal-int
+pkg syscall (linux-arm), const SCM_CREDENTIALS ideal-int
+pkg syscall (linux-arm), const SCM_RIGHTS ideal-int
+pkg syscall (linux-arm), const SCM_TIMESTAMP ideal-int
+pkg syscall (linux-arm), const SCM_TIMESTAMPING ideal-int
+pkg syscall (linux-arm), const SCM_TIMESTAMPNS ideal-int
+pkg syscall (linux-arm), const SIGCHLD Signal
+pkg syscall (linux-arm), const SIGCLD Signal
+pkg syscall (linux-arm), const SIGCONT Signal
+pkg syscall (linux-arm), const SIGIO Signal
+pkg syscall (linux-arm), const SIGIOT Signal
+pkg syscall (linux-arm), const SIGPOLL Signal
+pkg syscall (linux-arm), const SIGPROF Signal
+pkg syscall (linux-arm), const SIGPWR Signal
+pkg syscall (linux-arm), const SIGSTKFLT Signal
+pkg syscall (linux-arm), const SIGSTOP Signal
+pkg syscall (linux-arm), const SIGSYS Signal
+pkg syscall (linux-arm), const SIGTSTP Signal
+pkg syscall (linux-arm), const SIGTTIN Signal
+pkg syscall (linux-arm), const SIGTTOU Signal
+pkg syscall (linux-arm), const SIGUNUSED Signal
+pkg syscall (linux-arm), const SIGURG Signal
+pkg syscall (linux-arm), const SIGUSR1 Signal
+pkg syscall (linux-arm), const SIGUSR2 Signal
+pkg syscall (linux-arm), const SIGVTALRM Signal
+pkg syscall (linux-arm), const SIGWINCH Signal
+pkg syscall (linux-arm), const SIGXCPU Signal
+pkg syscall (linux-arm), const SIGXFSZ Signal
+pkg syscall (linux-arm), const SIOCADDDLCI ideal-int
+pkg syscall (linux-arm), const SIOCADDMULTI ideal-int
+pkg syscall (linux-arm), const SIOCADDRT ideal-int
+pkg syscall (linux-arm), const SIOCATMARK ideal-int
+pkg syscall (linux-arm), const SIOCDARP ideal-int
+pkg syscall (linux-arm), const SIOCDELDLCI ideal-int
+pkg syscall (linux-arm), const SIOCDELMULTI ideal-int
+pkg syscall (linux-arm), const SIOCDELRT ideal-int
+pkg syscall (linux-arm), const SIOCDEVPRIVATE ideal-int
+pkg syscall (linux-arm), const SIOCDIFADDR ideal-int
+pkg syscall (linux-arm), const SIOCDRARP ideal-int
+pkg syscall (linux-arm), const SIOCGARP ideal-int
+pkg syscall (linux-arm), const SIOCGIFADDR ideal-int
+pkg syscall (linux-arm), const SIOCGIFBR ideal-int
+pkg syscall (linux-arm), const SIOCGIFBRDADDR ideal-int
+pkg syscall (linux-arm), const SIOCGIFCONF ideal-int
+pkg syscall (linux-arm), const SIOCGIFCOUNT ideal-int
+pkg syscall (linux-arm), const SIOCGIFDSTADDR ideal-int
+pkg syscall (linux-arm), const SIOCGIFENCAP ideal-int
+pkg syscall (linux-arm), const SIOCGIFFLAGS ideal-int
+pkg syscall (linux-arm), const SIOCGIFHWADDR ideal-int
+pkg syscall (linux-arm), const SIOCGIFINDEX ideal-int
+pkg syscall (linux-arm), const SIOCGIFMAP ideal-int
+pkg syscall (linux-arm), const SIOCGIFMEM ideal-int
+pkg syscall (linux-arm), const SIOCGIFMETRIC ideal-int
+pkg syscall (linux-arm), const SIOCGIFMTU ideal-int
+pkg syscall (linux-arm), const SIOCGIFNAME ideal-int
+pkg syscall (linux-arm), const SIOCGIFNETMASK ideal-int
+pkg syscall (linux-arm), const SIOCGIFPFLAGS ideal-int
+pkg syscall (linux-arm), const SIOCGIFSLAVE ideal-int
+pkg syscall (linux-arm), const SIOCGIFTXQLEN ideal-int
+pkg syscall (linux-arm), const SIOCGPGRP ideal-int
+pkg syscall (linux-arm), const SIOCGRARP ideal-int
+pkg syscall (linux-arm), const SIOCGSTAMP ideal-int
+pkg syscall (linux-arm), const SIOCGSTAMPNS ideal-int
+pkg syscall (linux-arm), const SIOCPROTOPRIVATE ideal-int
+pkg syscall (linux-arm), const SIOCRTMSG ideal-int
+pkg syscall (linux-arm), const SIOCSARP ideal-int
+pkg syscall (linux-arm), const SIOCSIFADDR ideal-int
+pkg syscall (linux-arm), const SIOCSIFBR ideal-int
+pkg syscall (linux-arm), const SIOCSIFBRDADDR ideal-int
+pkg syscall (linux-arm), const SIOCSIFDSTADDR ideal-int
+pkg syscall (linux-arm), const SIOCSIFENCAP ideal-int
+pkg syscall (linux-arm), const SIOCSIFFLAGS ideal-int
+pkg syscall (linux-arm), const SIOCSIFHWADDR ideal-int
+pkg syscall (linux-arm), const SIOCSIFHWBROADCAST ideal-int
+pkg syscall (linux-arm), const SIOCSIFLINK ideal-int
+pkg syscall (linux-arm), const SIOCSIFMAP ideal-int
+pkg syscall (linux-arm), const SIOCSIFMEM ideal-int
+pkg syscall (linux-arm), const SIOCSIFMETRIC ideal-int
+pkg syscall (linux-arm), const SIOCSIFMTU ideal-int
+pkg syscall (linux-arm), const SIOCSIFNAME ideal-int
+pkg syscall (linux-arm), const SIOCSIFNETMASK ideal-int
+pkg syscall (linux-arm), const SIOCSIFPFLAGS ideal-int
+pkg syscall (linux-arm), const SIOCSIFSLAVE ideal-int
+pkg syscall (linux-arm), const SIOCSIFTXQLEN ideal-int
+pkg syscall (linux-arm), const SIOCSPGRP ideal-int
+pkg syscall (linux-arm), const SIOCSRARP ideal-int
+pkg syscall (linux-arm), const SOCK_CLOEXEC ideal-int
+pkg syscall (linux-arm), const SOCK_DCCP ideal-int
+pkg syscall (linux-arm), const SOCK_NONBLOCK ideal-int
+pkg syscall (linux-arm), const SOCK_PACKET ideal-int
+pkg syscall (linux-arm), const SOCK_RDM ideal-int
+pkg syscall (linux-arm), const SOL_AAL ideal-int
+pkg syscall (linux-arm), const SOL_ATM ideal-int
+pkg syscall (linux-arm), const SOL_DECNET ideal-int
+pkg syscall (linux-arm), const SOL_ICMPV6 ideal-int
+pkg syscall (linux-arm), const SOL_IP ideal-int
+pkg syscall (linux-arm), const SOL_IPV6 ideal-int
+pkg syscall (linux-arm), const SOL_IRDA ideal-int
+pkg syscall (linux-arm), const SOL_PACKET ideal-int
+pkg syscall (linux-arm), const SOL_RAW ideal-int
+pkg syscall (linux-arm), const SOL_TCP ideal-int
+pkg syscall (linux-arm), const SOL_X25 ideal-int
+pkg syscall (linux-arm), const SO_ACCEPTCONN ideal-int
+pkg syscall (linux-arm), const SO_ATTACH_FILTER ideal-int
+pkg syscall (linux-arm), const SO_BINDTODEVICE ideal-int
+pkg syscall (linux-arm), const SO_BSDCOMPAT ideal-int
+pkg syscall (linux-arm), const SO_DEBUG ideal-int
+pkg syscall (linux-arm), const SO_DETACH_FILTER ideal-int
+pkg syscall (linux-arm), const SO_DOMAIN ideal-int
+pkg syscall (linux-arm), const SO_ERROR ideal-int
+pkg syscall (linux-arm), const SO_MARK ideal-int
+pkg syscall (linux-arm), const SO_NO_CHECK ideal-int
+pkg syscall (linux-arm), const SO_OOBINLINE ideal-int
+pkg syscall (linux-arm), const SO_PASSCRED ideal-int
+pkg syscall (linux-arm), const SO_PASSSEC ideal-int
+pkg syscall (linux-arm), const SO_PEERCRED ideal-int
+pkg syscall (linux-arm), const SO_PEERNAME ideal-int
+pkg syscall (linux-arm), const SO_PEERSEC ideal-int
+pkg syscall (linux-arm), const SO_PRIORITY ideal-int
+pkg syscall (linux-arm), const SO_PROTOCOL ideal-int
+pkg syscall (linux-arm), const SO_RCVBUFFORCE ideal-int
+pkg syscall (linux-arm), const SO_RCVLOWAT ideal-int
+pkg syscall (linux-arm), const SO_RCVTIMEO ideal-int
+pkg syscall (linux-arm), const SO_RXQ_OVFL ideal-int
+pkg syscall (linux-arm), const SO_SECURITY_AUTHENTICATION ideal-int
+pkg syscall (linux-arm), const SO_SECURITY_ENCRYPTION_NETWORK ideal-int
+pkg syscall (linux-arm), const SO_SECURITY_ENCRYPTION_TRANSPORT ideal-int
+pkg syscall (linux-arm), const SO_SNDBUFFORCE ideal-int
+pkg syscall (linux-arm), const SO_SNDLOWAT ideal-int
+pkg syscall (linux-arm), const SO_SNDTIMEO ideal-int
+pkg syscall (linux-arm), const SO_TIMESTAMP ideal-int
+pkg syscall (linux-arm), const SO_TIMESTAMPING ideal-int
+pkg syscall (linux-arm), const SO_TIMESTAMPNS ideal-int
+pkg syscall (linux-arm), const SO_TYPE ideal-int
+pkg syscall (linux-arm), const SYS_ACCEPT ideal-int
+pkg syscall (linux-arm), const SYS_ACCEPT4 ideal-int
+pkg syscall (linux-arm), const SYS_ACCESS ideal-int
+pkg syscall (linux-arm), const SYS_ACCT ideal-int
+pkg syscall (linux-arm), const SYS_ADD_KEY ideal-int
+pkg syscall (linux-arm), const SYS_ADJTIMEX ideal-int
+pkg syscall (linux-arm), const SYS_ALARM ideal-int
+pkg syscall (linux-arm), const SYS_ARM_FADVISE64_64 ideal-int
+pkg syscall (linux-arm), const SYS_ARM_SYNC_FILE_RANGE ideal-int
+pkg syscall (linux-arm), const SYS_BDFLUSH ideal-int
+pkg syscall (linux-arm), const SYS_BIND ideal-int
+pkg syscall (linux-arm), const SYS_BRK ideal-int
+pkg syscall (linux-arm), const SYS_CAPGET ideal-int
+pkg syscall (linux-arm), const SYS_CAPSET ideal-int
+pkg syscall (linux-arm), const SYS_CHDIR ideal-int
+pkg syscall (linux-arm), const SYS_CHMOD ideal-int
+pkg syscall (linux-arm), const SYS_CHOWN ideal-int
+pkg syscall (linux-arm), const SYS_CHOWN32 ideal-int
+pkg syscall (linux-arm), const SYS_CHROOT ideal-int
+pkg syscall (linux-arm), const SYS_CLOCK_ADJTIME ideal-int
+pkg syscall (linux-arm), const SYS_CLOCK_GETRES ideal-int
+pkg syscall (linux-arm), const SYS_CLOCK_GETTIME ideal-int
+pkg syscall (linux-arm), const SYS_CLOCK_NANOSLEEP ideal-int
+pkg syscall (linux-arm), const SYS_CLOCK_SETTIME ideal-int
+pkg syscall (linux-arm), const SYS_CLONE ideal-int
+pkg syscall (linux-arm), const SYS_CLOSE ideal-int
+pkg syscall (linux-arm), const SYS_CONNECT ideal-int
+pkg syscall (linux-arm), const SYS_CREAT ideal-int
+pkg syscall (linux-arm), const SYS_DELETE_MODULE ideal-int
+pkg syscall (linux-arm), const SYS_DUP ideal-int
+pkg syscall (linux-arm), const SYS_DUP2 ideal-int
+pkg syscall (linux-arm), const SYS_DUP3 ideal-int
+pkg syscall (linux-arm), const SYS_EPOLL_CREATE ideal-int
+pkg syscall (linux-arm), const SYS_EPOLL_CREATE1 ideal-int
+pkg syscall (linux-arm), const SYS_EPOLL_CTL ideal-int
+pkg syscall (linux-arm), const SYS_EPOLL_PWAIT ideal-int
+pkg syscall (linux-arm), const SYS_EPOLL_WAIT ideal-int
+pkg syscall (linux-arm), const SYS_EVENTFD ideal-int
+pkg syscall (linux-arm), const SYS_EVENTFD2 ideal-int
+pkg syscall (linux-arm), const SYS_EXECVE ideal-int
+pkg syscall (linux-arm), const SYS_EXIT ideal-int
+pkg syscall (linux-arm), const SYS_EXIT_GROUP ideal-int
+pkg syscall (linux-arm), const SYS_FACCESSAT ideal-int
+pkg syscall (linux-arm), const SYS_FALLOCATE ideal-int
+pkg syscall (linux-arm), const SYS_FANOTIFY_INIT ideal-int
+pkg syscall (linux-arm), const SYS_FANOTIFY_MARK ideal-int
+pkg syscall (linux-arm), const SYS_FCHDIR ideal-int
+pkg syscall (linux-arm), const SYS_FCHMOD ideal-int
+pkg syscall (linux-arm), const SYS_FCHMODAT ideal-int
+pkg syscall (linux-arm), const SYS_FCHOWN ideal-int
+pkg syscall (linux-arm), const SYS_FCHOWN32 ideal-int
+pkg syscall (linux-arm), const SYS_FCHOWNAT ideal-int
+pkg syscall (linux-arm), const SYS_FCNTL ideal-int
+pkg syscall (linux-arm), const SYS_FCNTL64 ideal-int
+pkg syscall (linux-arm), const SYS_FDATASYNC ideal-int
+pkg syscall (linux-arm), const SYS_FGETXATTR ideal-int
+pkg syscall (linux-arm), const SYS_FLISTXATTR ideal-int
+pkg syscall (linux-arm), const SYS_FLOCK ideal-int
+pkg syscall (linux-arm), const SYS_FORK ideal-int
+pkg syscall (linux-arm), const SYS_FREMOVEXATTR ideal-int
+pkg syscall (linux-arm), const SYS_FSETXATTR ideal-int
+pkg syscall (linux-arm), const SYS_FSTAT ideal-int
+pkg syscall (linux-arm), const SYS_FSTAT64 ideal-int
+pkg syscall (linux-arm), const SYS_FSTATAT64 ideal-int
+pkg syscall (linux-arm), const SYS_FSTATFS ideal-int
+pkg syscall (linux-arm), const SYS_FSTATFS64 ideal-int
+pkg syscall (linux-arm), const SYS_FSYNC ideal-int
+pkg syscall (linux-arm), const SYS_FTRUNCATE ideal-int
+pkg syscall (linux-arm), const SYS_FTRUNCATE64 ideal-int
+pkg syscall (linux-arm), const SYS_FUTEX ideal-int
+pkg syscall (linux-arm), const SYS_FUTIMESAT ideal-int
+pkg syscall (linux-arm), const SYS_GETCPU ideal-int
+pkg syscall (linux-arm), const SYS_GETCWD ideal-int
+pkg syscall (linux-arm), const SYS_GETDENTS ideal-int
+pkg syscall (linux-arm), const SYS_GETDENTS64 ideal-int
+pkg syscall (linux-arm), const SYS_GETEGID ideal-int
+pkg syscall (linux-arm), const SYS_GETEGID32 ideal-int
+pkg syscall (linux-arm), const SYS_GETEUID ideal-int
+pkg syscall (linux-arm), const SYS_GETEUID32 ideal-int
+pkg syscall (linux-arm), const SYS_GETGID ideal-int
+pkg syscall (linux-arm), const SYS_GETGID32 ideal-int
+pkg syscall (linux-arm), const SYS_GETGROUPS ideal-int
+pkg syscall (linux-arm), const SYS_GETGROUPS32 ideal-int
+pkg syscall (linux-arm), const SYS_GETITIMER ideal-int
+pkg syscall (linux-arm), const SYS_GETPEERNAME ideal-int
+pkg syscall (linux-arm), const SYS_GETPGID ideal-int
+pkg syscall (linux-arm), const SYS_GETPGRP ideal-int
+pkg syscall (linux-arm), const SYS_GETPID ideal-int
+pkg syscall (linux-arm), const SYS_GETPPID ideal-int
+pkg syscall (linux-arm), const SYS_GETPRIORITY ideal-int
+pkg syscall (linux-arm), const SYS_GETRESGID ideal-int
+pkg syscall (linux-arm), const SYS_GETRESGID32 ideal-int
+pkg syscall (linux-arm), const SYS_GETRESUID ideal-int
+pkg syscall (linux-arm), const SYS_GETRESUID32 ideal-int
+pkg syscall (linux-arm), const SYS_GETRLIMIT ideal-int
+pkg syscall (linux-arm), const SYS_GETRUSAGE ideal-int
+pkg syscall (linux-arm), const SYS_GETSID ideal-int
+pkg syscall (linux-arm), const SYS_GETSOCKNAME ideal-int
+pkg syscall (linux-arm), const SYS_GETSOCKOPT ideal-int
+pkg syscall (linux-arm), const SYS_GETTID ideal-int
+pkg syscall (linux-arm), const SYS_GETTIMEOFDAY ideal-int
+pkg syscall (linux-arm), const SYS_GETUID ideal-int
+pkg syscall (linux-arm), const SYS_GETUID32 ideal-int
+pkg syscall (linux-arm), const SYS_GETXATTR ideal-int
+pkg syscall (linux-arm), const SYS_GET_MEMPOLICY ideal-int
+pkg syscall (linux-arm), const SYS_GET_ROBUST_LIST ideal-int
+pkg syscall (linux-arm), const SYS_INIT_MODULE ideal-int
+pkg syscall (linux-arm), const SYS_INOTIFY_ADD_WATCH ideal-int
+pkg syscall (linux-arm), const SYS_INOTIFY_INIT ideal-int
+pkg syscall (linux-arm), const SYS_INOTIFY_INIT1 ideal-int
+pkg syscall (linux-arm), const SYS_INOTIFY_RM_WATCH ideal-int
+pkg syscall (linux-arm), const SYS_IOCTL ideal-int
+pkg syscall (linux-arm), const SYS_IOPRIO_GET ideal-int
+pkg syscall (linux-arm), const SYS_IOPRIO_SET ideal-int
+pkg syscall (linux-arm), const SYS_IO_CANCEL ideal-int
+pkg syscall (linux-arm), const SYS_IO_DESTROY ideal-int
+pkg syscall (linux-arm), const SYS_IO_GETEVENTS ideal-int
+pkg syscall (linux-arm), const SYS_IO_SETUP ideal-int
+pkg syscall (linux-arm), const SYS_IO_SUBMIT ideal-int
+pkg syscall (linux-arm), const SYS_IPC ideal-int
+pkg syscall (linux-arm), const SYS_KEXEC_LOAD ideal-int
+pkg syscall (linux-arm), const SYS_KEYCTL ideal-int
+pkg syscall (linux-arm), const SYS_KILL ideal-int
+pkg syscall (linux-arm), const SYS_LCHOWN ideal-int
+pkg syscall (linux-arm), const SYS_LCHOWN32 ideal-int
+pkg syscall (linux-arm), const SYS_LGETXATTR ideal-int
+pkg syscall (linux-arm), const SYS_LINK ideal-int
+pkg syscall (linux-arm), const SYS_LINKAT ideal-int
+pkg syscall (linux-arm), const SYS_LISTEN ideal-int
+pkg syscall (linux-arm), const SYS_LISTXATTR ideal-int
+pkg syscall (linux-arm), const SYS_LLISTXATTR ideal-int
+pkg syscall (linux-arm), const SYS_LOOKUP_DCOOKIE ideal-int
+pkg syscall (linux-arm), const SYS_LREMOVEXATTR ideal-int
+pkg syscall (linux-arm), const SYS_LSEEK ideal-int
+pkg syscall (linux-arm), const SYS_LSETXATTR ideal-int
+pkg syscall (linux-arm), const SYS_LSTAT ideal-int
+pkg syscall (linux-arm), const SYS_LSTAT64 ideal-int
+pkg syscall (linux-arm), const SYS_MADVISE ideal-int
+pkg syscall (linux-arm), const SYS_MBIND ideal-int
+pkg syscall (linux-arm), const SYS_MINCORE ideal-int
+pkg syscall (linux-arm), const SYS_MKDIR ideal-int
+pkg syscall (linux-arm), const SYS_MKDIRAT ideal-int
+pkg syscall (linux-arm), const SYS_MKNOD ideal-int
+pkg syscall (linux-arm), const SYS_MKNODAT ideal-int
+pkg syscall (linux-arm), const SYS_MLOCK ideal-int
+pkg syscall (linux-arm), const SYS_MLOCKALL ideal-int
+pkg syscall (linux-arm), const SYS_MMAP ideal-int
+pkg syscall (linux-arm), const SYS_MMAP2 ideal-int
+pkg syscall (linux-arm), const SYS_MOUNT ideal-int
+pkg syscall (linux-arm), const SYS_MOVE_PAGES ideal-int
+pkg syscall (linux-arm), const SYS_MPROTECT ideal-int
+pkg syscall (linux-arm), const SYS_MQ_GETSETATTR ideal-int
+pkg syscall (linux-arm), const SYS_MQ_NOTIFY ideal-int
+pkg syscall (linux-arm), const SYS_MQ_OPEN ideal-int
+pkg syscall (linux-arm), const SYS_MQ_TIMEDRECEIVE ideal-int
+pkg syscall (linux-arm), const SYS_MQ_TIMEDSEND ideal-int
+pkg syscall (linux-arm), const SYS_MQ_UNLINK ideal-int
+pkg syscall (linux-arm), const SYS_MREMAP ideal-int
+pkg syscall (linux-arm), const SYS_MSGCTL ideal-int
+pkg syscall (linux-arm), const SYS_MSGGET ideal-int
+pkg syscall (linux-arm), const SYS_MSGRCV ideal-int
+pkg syscall (linux-arm), const SYS_MSGSND ideal-int
+pkg syscall (linux-arm), const SYS_MSYNC ideal-int
+pkg syscall (linux-arm), const SYS_MUNLOCK ideal-int
+pkg syscall (linux-arm), const SYS_MUNLOCKALL ideal-int
+pkg syscall (linux-arm), const SYS_MUNMAP ideal-int
+pkg syscall (linux-arm), const SYS_NAME_TO_HANDLE_AT ideal-int
+pkg syscall (linux-arm), const SYS_NANOSLEEP ideal-int
+pkg syscall (linux-arm), const SYS_NFSSERVCTL ideal-int
+pkg syscall (linux-arm), const SYS_NICE ideal-int
+pkg syscall (linux-arm), const SYS_OABI_SYSCALL_BASE ideal-int
+pkg syscall (linux-arm), const SYS_OPEN ideal-int
+pkg syscall (linux-arm), const SYS_OPENAT ideal-int
+pkg syscall (linux-arm), const SYS_OPEN_BY_HANDLE_AT ideal-int
+pkg syscall (linux-arm), const SYS_PAUSE ideal-int
+pkg syscall (linux-arm), const SYS_PCICONFIG_IOBASE ideal-int
+pkg syscall (linux-arm), const SYS_PCICONFIG_READ ideal-int
+pkg syscall (linux-arm), const SYS_PCICONFIG_WRITE ideal-int
+pkg syscall (linux-arm), const SYS_PERF_EVENT_OPEN ideal-int
+pkg syscall (linux-arm), const SYS_PERSONALITY ideal-int
+pkg syscall (linux-arm), const SYS_PIPE ideal-int
+pkg syscall (linux-arm), const SYS_PIPE2 ideal-int
+pkg syscall (linux-arm), const SYS_PIVOT_ROOT ideal-int
+pkg syscall (linux-arm), const SYS_POLL ideal-int
+pkg syscall (linux-arm), const SYS_PPOLL ideal-int
+pkg syscall (linux-arm), const SYS_PRCTL ideal-int
+pkg syscall (linux-arm), const SYS_PREAD64 ideal-int
+pkg syscall (linux-arm), const SYS_PREADV ideal-int
+pkg syscall (linux-arm), const SYS_PRLIMIT64 ideal-int
+pkg syscall (linux-arm), const SYS_PROCESS_VM_READV ideal-int
+pkg syscall (linux-arm), const SYS_PROCESS_VM_WRITEV ideal-int
+pkg syscall (linux-arm), const SYS_PSELECT6 ideal-int
+pkg syscall (linux-arm), const SYS_PTRACE ideal-int
+pkg syscall (linux-arm), const SYS_PWRITE64 ideal-int
+pkg syscall (linux-arm), const SYS_PWRITEV ideal-int
+pkg syscall (linux-arm), const SYS_QUOTACTL ideal-int
+pkg syscall (linux-arm), const SYS_READ ideal-int
+pkg syscall (linux-arm), const SYS_READAHEAD ideal-int
+pkg syscall (linux-arm), const SYS_READDIR ideal-int
+pkg syscall (linux-arm), const SYS_READLINK ideal-int
+pkg syscall (linux-arm), const SYS_READLINKAT ideal-int
+pkg syscall (linux-arm), const SYS_READV ideal-int
+pkg syscall (linux-arm), const SYS_REBOOT ideal-int
+pkg syscall (linux-arm), const SYS_RECV ideal-int
+pkg syscall (linux-arm), const SYS_RECVFROM ideal-int
+pkg syscall (linux-arm), const SYS_RECVMMSG ideal-int
+pkg syscall (linux-arm), const SYS_RECVMSG ideal-int
+pkg syscall (linux-arm), const SYS_REMAP_FILE_PAGES ideal-int
+pkg syscall (linux-arm), const SYS_REMOVEXATTR ideal-int
+pkg syscall (linux-arm), const SYS_RENAME ideal-int
+pkg syscall (linux-arm), const SYS_RENAMEAT ideal-int
+pkg syscall (linux-arm), const SYS_REQUEST_KEY ideal-int
+pkg syscall (linux-arm), const SYS_RESTART_SYSCALL ideal-int
+pkg syscall (linux-arm), const SYS_RMDIR ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGACTION ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGPENDING ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGPROCMASK ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGQUEUEINFO ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGRETURN ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGSUSPEND ideal-int
+pkg syscall (linux-arm), const SYS_RT_SIGTIMEDWAIT ideal-int
+pkg syscall (linux-arm), const SYS_RT_TGSIGQUEUEINFO ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_GETAFFINITY ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_GETPARAM ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_GETSCHEDULER ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_GET_PRIORITY_MAX ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_GET_PRIORITY_MIN ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_RR_GET_INTERVAL ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_SETAFFINITY ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_SETPARAM ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_SETSCHEDULER ideal-int
+pkg syscall (linux-arm), const SYS_SCHED_YIELD ideal-int
+pkg syscall (linux-arm), const SYS_SELECT ideal-int
+pkg syscall (linux-arm), const SYS_SEMCTL ideal-int
+pkg syscall (linux-arm), const SYS_SEMGET ideal-int
+pkg syscall (linux-arm), const SYS_SEMOP ideal-int
+pkg syscall (linux-arm), const SYS_SEMTIMEDOP ideal-int
+pkg syscall (linux-arm), const SYS_SEND ideal-int
+pkg syscall (linux-arm), const SYS_SENDFILE ideal-int
+pkg syscall (linux-arm), const SYS_SENDFILE64 ideal-int
+pkg syscall (linux-arm), const SYS_SENDMMSG ideal-int
+pkg syscall (linux-arm), const SYS_SENDMSG ideal-int
+pkg syscall (linux-arm), const SYS_SENDTO ideal-int
+pkg syscall (linux-arm), const SYS_SETDOMAINNAME ideal-int
+pkg syscall (linux-arm), const SYS_SETFSGID ideal-int
+pkg syscall (linux-arm), const SYS_SETFSGID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETFSUID ideal-int
+pkg syscall (linux-arm), const SYS_SETFSUID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETGID ideal-int
+pkg syscall (linux-arm), const SYS_SETGID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETGROUPS ideal-int
+pkg syscall (linux-arm), const SYS_SETGROUPS32 ideal-int
+pkg syscall (linux-arm), const SYS_SETHOSTNAME ideal-int
+pkg syscall (linux-arm), const SYS_SETITIMER ideal-int
+pkg syscall (linux-arm), const SYS_SETNS ideal-int
+pkg syscall (linux-arm), const SYS_SETPGID ideal-int
+pkg syscall (linux-arm), const SYS_SETPRIORITY ideal-int
+pkg syscall (linux-arm), const SYS_SETREGID ideal-int
+pkg syscall (linux-arm), const SYS_SETREGID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETRESGID ideal-int
+pkg syscall (linux-arm), const SYS_SETRESGID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETRESUID ideal-int
+pkg syscall (linux-arm), const SYS_SETRESUID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETREUID ideal-int
+pkg syscall (linux-arm), const SYS_SETREUID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETRLIMIT ideal-int
+pkg syscall (linux-arm), const SYS_SETSID ideal-int
+pkg syscall (linux-arm), const SYS_SETSOCKOPT ideal-int
+pkg syscall (linux-arm), const SYS_SETTIMEOFDAY ideal-int
+pkg syscall (linux-arm), const SYS_SETUID ideal-int
+pkg syscall (linux-arm), const SYS_SETUID32 ideal-int
+pkg syscall (linux-arm), const SYS_SETXATTR ideal-int
+pkg syscall (linux-arm), const SYS_SET_MEMPOLICY ideal-int
+pkg syscall (linux-arm), const SYS_SET_ROBUST_LIST ideal-int
+pkg syscall (linux-arm), const SYS_SET_TID_ADDRESS ideal-int
+pkg syscall (linux-arm), const SYS_SHMAT ideal-int
+pkg syscall (linux-arm), const SYS_SHMCTL ideal-int
+pkg syscall (linux-arm), const SYS_SHMDT ideal-int
+pkg syscall (linux-arm), const SYS_SHMGET ideal-int
+pkg syscall (linux-arm), const SYS_SHUTDOWN ideal-int
+pkg syscall (linux-arm), const SYS_SIGACTION ideal-int
+pkg syscall (linux-arm), const SYS_SIGALTSTACK ideal-int
+pkg syscall (linux-arm), const SYS_SIGNALFD ideal-int
+pkg syscall (linux-arm), const SYS_SIGNALFD4 ideal-int
+pkg syscall (linux-arm), const SYS_SIGPENDING ideal-int
+pkg syscall (linux-arm), const SYS_SIGPROCMASK ideal-int
+pkg syscall (linux-arm), const SYS_SIGRETURN ideal-int
+pkg syscall (linux-arm), const SYS_SIGSUSPEND ideal-int
+pkg syscall (linux-arm), const SYS_SOCKET ideal-int
+pkg syscall (linux-arm), const SYS_SOCKETCALL ideal-int
+pkg syscall (linux-arm), const SYS_SOCKETPAIR ideal-int
+pkg syscall (linux-arm), const SYS_SPLICE ideal-int
+pkg syscall (linux-arm), const SYS_STAT ideal-int
+pkg syscall (linux-arm), const SYS_STAT64 ideal-int
+pkg syscall (linux-arm), const SYS_STATFS ideal-int
+pkg syscall (linux-arm), const SYS_STATFS64 ideal-int
+pkg syscall (linux-arm), const SYS_STIME ideal-int
+pkg syscall (linux-arm), const SYS_SWAPOFF ideal-int
+pkg syscall (linux-arm), const SYS_SWAPON ideal-int
+pkg syscall (linux-arm), const SYS_SYMLINK ideal-int
+pkg syscall (linux-arm), const SYS_SYMLINKAT ideal-int
+pkg syscall (linux-arm), const SYS_SYNC ideal-int
+pkg syscall (linux-arm), const SYS_SYNCFS ideal-int
+pkg syscall (linux-arm), const SYS_SYSCALL ideal-int
+pkg syscall (linux-arm), const SYS_SYSCALL_BASE ideal-int
+pkg syscall (linux-arm), const SYS_SYSFS ideal-int
+pkg syscall (linux-arm), const SYS_SYSINFO ideal-int
+pkg syscall (linux-arm), const SYS_SYSLOG ideal-int
+pkg syscall (linux-arm), const SYS_TEE ideal-int
+pkg syscall (linux-arm), const SYS_TGKILL ideal-int
+pkg syscall (linux-arm), const SYS_TIME ideal-int
+pkg syscall (linux-arm), const SYS_TIMERFD_CREATE ideal-int
+pkg syscall (linux-arm), const SYS_TIMERFD_GETTIME ideal-int
+pkg syscall (linux-arm), const SYS_TIMERFD_SETTIME ideal-int
+pkg syscall (linux-arm), const SYS_TIMER_CREATE ideal-int
+pkg syscall (linux-arm), const SYS_TIMER_DELETE ideal-int
+pkg syscall (linux-arm), const SYS_TIMER_GETOVERRUN ideal-int
+pkg syscall (linux-arm), const SYS_TIMER_GETTIME ideal-int
+pkg syscall (linux-arm), const SYS_TIMER_SETTIME ideal-int
+pkg syscall (linux-arm), const SYS_TIMES ideal-int
+pkg syscall (linux-arm), const SYS_TKILL ideal-int
+pkg syscall (linux-arm), const SYS_TRUNCATE ideal-int
+pkg syscall (linux-arm), const SYS_TRUNCATE64 ideal-int
+pkg syscall (linux-arm), const SYS_UGETRLIMIT ideal-int
+pkg syscall (linux-arm), const SYS_UMASK ideal-int
+pkg syscall (linux-arm), const SYS_UMOUNT ideal-int
+pkg syscall (linux-arm), const SYS_UMOUNT2 ideal-int
+pkg syscall (linux-arm), const SYS_UNAME ideal-int
+pkg syscall (linux-arm), const SYS_UNLINK ideal-int
+pkg syscall (linux-arm), const SYS_UNLINKAT ideal-int
+pkg syscall (linux-arm), const SYS_UNSHARE ideal-int
+pkg syscall (linux-arm), const SYS_USELIB ideal-int
+pkg syscall (linux-arm), const SYS_USTAT ideal-int
+pkg syscall (linux-arm), const SYS_UTIME ideal-int
+pkg syscall (linux-arm), const SYS_UTIMENSAT ideal-int
+pkg syscall (linux-arm), const SYS_UTIMES ideal-int
+pkg syscall (linux-arm), const SYS_VFORK ideal-int
+pkg syscall (linux-arm), const SYS_VHANGUP ideal-int
+pkg syscall (linux-arm), const SYS_VMSPLICE ideal-int
+pkg syscall (linux-arm), const SYS_VSERVER ideal-int
+pkg syscall (linux-arm), const SYS_WAIT4 ideal-int
+pkg syscall (linux-arm), const SYS_WAITID ideal-int
+pkg syscall (linux-arm), const SYS_WRITE ideal-int
+pkg syscall (linux-arm), const SYS_WRITEV ideal-int
+pkg syscall (linux-arm), const SYS__LLSEEK ideal-int
+pkg syscall (linux-arm), const SYS__NEWSELECT ideal-int
+pkg syscall (linux-arm), const SYS__SYSCTL ideal-int
+pkg syscall (linux-arm), const S_BLKSIZE ideal-int
+pkg syscall (linux-arm), const S_IEXEC ideal-int
+pkg syscall (linux-arm), const S_IREAD ideal-int
+pkg syscall (linux-arm), const S_IRGRP ideal-int
+pkg syscall (linux-arm), const S_IROTH ideal-int
+pkg syscall (linux-arm), const S_IRWXG ideal-int
+pkg syscall (linux-arm), const S_IRWXO ideal-int
+pkg syscall (linux-arm), const S_IRWXU ideal-int
+pkg syscall (linux-arm), const S_IWGRP ideal-int
+pkg syscall (linux-arm), const S_IWOTH ideal-int
+pkg syscall (linux-arm), const S_IWRITE ideal-int
+pkg syscall (linux-arm), const S_IXGRP ideal-int
+pkg syscall (linux-arm), const S_IXOTH ideal-int
+pkg syscall (linux-arm), const SizeofCmsghdr ideal-int
+pkg syscall (linux-arm), const SizeofIPMreq ideal-int
+pkg syscall (linux-arm), const SizeofIPMreqn ideal-int
+pkg syscall (linux-arm), const SizeofIPv6Mreq ideal-int
+pkg syscall (linux-arm), const SizeofIfAddrmsg ideal-int
+pkg syscall (linux-arm), const SizeofIfInfomsg ideal-int
+pkg syscall (linux-arm), const SizeofInet4Pktinfo ideal-int
+pkg syscall (linux-arm), const SizeofInet6Pktinfo ideal-int
+pkg syscall (linux-arm), const SizeofInotifyEvent ideal-int
+pkg syscall (linux-arm), const SizeofLinger ideal-int
+pkg syscall (linux-arm), const SizeofMsghdr ideal-int
+pkg syscall (linux-arm), const SizeofNlAttr ideal-int
+pkg syscall (linux-arm), const SizeofNlMsgerr ideal-int
+pkg syscall (linux-arm), const SizeofNlMsghdr ideal-int
+pkg syscall (linux-arm), const SizeofRtAttr ideal-int
+pkg syscall (linux-arm), const SizeofRtGenmsg ideal-int
+pkg syscall (linux-arm), const SizeofRtMsg ideal-int
+pkg syscall (linux-arm), const SizeofRtNexthop ideal-int
+pkg syscall (linux-arm), const SizeofSockFilter ideal-int
+pkg syscall (linux-arm), const SizeofSockFprog ideal-int
+pkg syscall (linux-arm), const SizeofSockaddrAny ideal-int
+pkg syscall (linux-arm), const SizeofSockaddrInet4 ideal-int
+pkg syscall (linux-arm), const SizeofSockaddrInet6 ideal-int
+pkg syscall (linux-arm), const SizeofSockaddrLinklayer ideal-int
+pkg syscall (linux-arm), const SizeofSockaddrNetlink ideal-int
+pkg syscall (linux-arm), const SizeofSockaddrUnix ideal-int
+pkg syscall (linux-arm), const SizeofUcred ideal-int
+pkg syscall (linux-arm), const TCGETS ideal-int
+pkg syscall (linux-arm), const TCP_CONGESTION ideal-int
+pkg syscall (linux-arm), const TCP_CORK ideal-int
+pkg syscall (linux-arm), const TCP_DEFER_ACCEPT ideal-int
+pkg syscall (linux-arm), const TCP_INFO ideal-int
+pkg syscall (linux-arm), const TCP_KEEPCNT ideal-int
+pkg syscall (linux-arm), const TCP_KEEPIDLE ideal-int
+pkg syscall (linux-arm), const TCP_KEEPINTVL ideal-int
+pkg syscall (linux-arm), const TCP_LINGER2 ideal-int
+pkg syscall (linux-arm), const TCP_MAXSEG ideal-int
+pkg syscall (linux-arm), const TCP_MAXWIN ideal-int
+pkg syscall (linux-arm), const TCP_MAX_WINSHIFT ideal-int
+pkg syscall (linux-arm), const TCP_MD5SIG ideal-int
+pkg syscall (linux-arm), const TCP_MD5SIG_MAXKEYLEN ideal-int
+pkg syscall (linux-arm), const TCP_MSS ideal-int
+pkg syscall (linux-arm), const TCP_QUICKACK ideal-int
+pkg syscall (linux-arm), const TCP_SYNCNT ideal-int
+pkg syscall (linux-arm), const TCP_WINDOW_CLAMP ideal-int
+pkg syscall (linux-arm), const TCSETS ideal-int
+pkg syscall (linux-arm), const TIOCCBRK ideal-int
+pkg syscall (linux-arm), const TIOCCONS ideal-int
+pkg syscall (linux-arm), const TIOCEXCL ideal-int
+pkg syscall (linux-arm), const TIOCGDEV ideal-int
+pkg syscall (linux-arm), const TIOCGETD ideal-int
+pkg syscall (linux-arm), const TIOCGICOUNT ideal-int
+pkg syscall (linux-arm), const TIOCGLCKTRMIOS ideal-int
+pkg syscall (linux-arm), const TIOCGPGRP ideal-int
+pkg syscall (linux-arm), const TIOCGPTN ideal-int
+pkg syscall (linux-arm), const TIOCGRS485 ideal-int
+pkg syscall (linux-arm), const TIOCGSERIAL ideal-int
+pkg syscall (linux-arm), const TIOCGSID ideal-int
+pkg syscall (linux-arm), const TIOCGSOFTCAR ideal-int
+pkg syscall (linux-arm), const TIOCGWINSZ ideal-int
+pkg syscall (linux-arm), const TIOCINQ ideal-int
+pkg syscall (linux-arm), const TIOCLINUX ideal-int
+pkg syscall (linux-arm), const TIOCMBIC ideal-int
+pkg syscall (linux-arm), const TIOCMBIS ideal-int
+pkg syscall (linux-arm), const TIOCMGET ideal-int
+pkg syscall (linux-arm), const TIOCMIWAIT ideal-int
+pkg syscall (linux-arm), const TIOCMSET ideal-int
+pkg syscall (linux-arm), const TIOCM_CAR ideal-int
+pkg syscall (linux-arm), const TIOCM_CD ideal-int
+pkg syscall (linux-arm), const TIOCM_CTS ideal-int
+pkg syscall (linux-arm), const TIOCM_DSR ideal-int
+pkg syscall (linux-arm), const TIOCM_DTR ideal-int
+pkg syscall (linux-arm), const TIOCM_LE ideal-int
+pkg syscall (linux-arm), const TIOCM_RI ideal-int
+pkg syscall (linux-arm), const TIOCM_RNG ideal-int
+pkg syscall (linux-arm), const TIOCM_RTS ideal-int
+pkg syscall (linux-arm), const TIOCM_SR ideal-int
+pkg syscall (linux-arm), const TIOCM_ST ideal-int
+pkg syscall (linux-arm), const TIOCNOTTY ideal-int
+pkg syscall (linux-arm), const TIOCNXCL ideal-int
+pkg syscall (linux-arm), const TIOCOUTQ ideal-int
+pkg syscall (linux-arm), const TIOCPKT ideal-int
+pkg syscall (linux-arm), const TIOCPKT_DATA ideal-int
+pkg syscall (linux-arm), const TIOCPKT_DOSTOP ideal-int
+pkg syscall (linux-arm), const TIOCPKT_FLUSHREAD ideal-int
+pkg syscall (linux-arm), const TIOCPKT_FLUSHWRITE ideal-int
+pkg syscall (linux-arm), const TIOCPKT_IOCTL ideal-int
+pkg syscall (linux-arm), const TIOCPKT_NOSTOP ideal-int
+pkg syscall (linux-arm), const TIOCPKT_START ideal-int
+pkg syscall (linux-arm), const TIOCPKT_STOP ideal-int
+pkg syscall (linux-arm), const TIOCSBRK ideal-int
+pkg syscall (linux-arm), const TIOCSCTTY ideal-int
+pkg syscall (linux-arm), const TIOCSERCONFIG ideal-int
+pkg syscall (linux-arm), const TIOCSERGETLSR ideal-int
+pkg syscall (linux-arm), const TIOCSERGETMULTI ideal-int
+pkg syscall (linux-arm), const TIOCSERGSTRUCT ideal-int
+pkg syscall (linux-arm), const TIOCSERGWILD ideal-int
+pkg syscall (linux-arm), const TIOCSERSETMULTI ideal-int
+pkg syscall (linux-arm), const TIOCSERSWILD ideal-int
+pkg syscall (linux-arm), const TIOCSER_TEMT ideal-int
+pkg syscall (linux-arm), const TIOCSETD ideal-int
+pkg syscall (linux-arm), const TIOCSIG ideal-int
+pkg syscall (linux-arm), const TIOCSLCKTRMIOS ideal-int
+pkg syscall (linux-arm), const TIOCSPGRP ideal-int
+pkg syscall (linux-arm), const TIOCSPTLCK ideal-int
+pkg syscall (linux-arm), const TIOCSRS485 ideal-int
+pkg syscall (linux-arm), const TIOCSSERIAL ideal-int
+pkg syscall (linux-arm), const TIOCSSOFTCAR ideal-int
+pkg syscall (linux-arm), const TIOCSTI ideal-int
+pkg syscall (linux-arm), const TIOCSWINSZ ideal-int
+pkg syscall (linux-arm), const TIOCVHANGUP ideal-int
+pkg syscall (linux-arm), const TOSTOP ideal-int
+pkg syscall (linux-arm), const TUNATTACHFILTER ideal-int
+pkg syscall (linux-arm), const TUNDETACHFILTER ideal-int
+pkg syscall (linux-arm), const TUNGETFEATURES ideal-int
+pkg syscall (linux-arm), const TUNGETIFF ideal-int
+pkg syscall (linux-arm), const TUNGETSNDBUF ideal-int
+pkg syscall (linux-arm), const TUNGETVNETHDRSZ ideal-int
+pkg syscall (linux-arm), const TUNSETDEBUG ideal-int
+pkg syscall (linux-arm), const TUNSETGROUP ideal-int
+pkg syscall (linux-arm), const TUNSETIFF ideal-int
+pkg syscall (linux-arm), const TUNSETLINK ideal-int
+pkg syscall (linux-arm), const TUNSETNOCSUM ideal-int
+pkg syscall (linux-arm), const TUNSETOFFLOAD ideal-int
+pkg syscall (linux-arm), const TUNSETOWNER ideal-int
+pkg syscall (linux-arm), const TUNSETPERSIST ideal-int
+pkg syscall (linux-arm), const TUNSETSNDBUF ideal-int
+pkg syscall (linux-arm), const TUNSETTXFILTER ideal-int
+pkg syscall (linux-arm), const TUNSETVNETHDRSZ ideal-int
+pkg syscall (linux-arm), const VDISCARD ideal-int
+pkg syscall (linux-arm), const VEOF ideal-int
+pkg syscall (linux-arm), const VEOL ideal-int
+pkg syscall (linux-arm), const VEOL2 ideal-int
+pkg syscall (linux-arm), const VERASE ideal-int
+pkg syscall (linux-arm), const VINTR ideal-int
+pkg syscall (linux-arm), const VKILL ideal-int
+pkg syscall (linux-arm), const VLNEXT ideal-int
+pkg syscall (linux-arm), const VMIN ideal-int
+pkg syscall (linux-arm), const VQUIT ideal-int
+pkg syscall (linux-arm), const VREPRINT ideal-int
+pkg syscall (linux-arm), const VSTART ideal-int
+pkg syscall (linux-arm), const VSTOP ideal-int
+pkg syscall (linux-arm), const VSUSP ideal-int
+pkg syscall (linux-arm), const VSWTC ideal-int
+pkg syscall (linux-arm), const VTIME ideal-int
+pkg syscall (linux-arm), const VWERASE ideal-int
+pkg syscall (linux-arm), const WALL ideal-int
+pkg syscall (linux-arm), const WCLONE ideal-int
+pkg syscall (linux-arm), const WCONTINUED ideal-int
+pkg syscall (linux-arm), const WEXITED ideal-int
+pkg syscall (linux-arm), const WNOHANG ideal-int
+pkg syscall (linux-arm), const WNOTHREAD ideal-int
+pkg syscall (linux-arm), const WNOWAIT ideal-int
+pkg syscall (linux-arm), const WORDSIZE ideal-int
+pkg syscall (linux-arm), const WSTOPPED ideal-int
+pkg syscall (linux-arm), const WUNTRACED ideal-int
+pkg syscall (linux-arm), const XCASE ideal-int
+pkg syscall (linux-arm), func Accept(int) (int, Sockaddr, error)
+pkg syscall (linux-arm), func Access(string, uint32) error
+pkg syscall (linux-arm), func Acct(string) error
+pkg syscall (linux-arm), func Adjtimex(*Timex) (int, error)
+pkg syscall (linux-arm), func AttachLsf(int, []SockFilter) error
+pkg syscall (linux-arm), func Bind(int, Sockaddr) error
+pkg syscall (linux-arm), func BindToDevice(int, string) error
+pkg syscall (linux-arm), func Chroot(string) error
+pkg syscall (linux-arm), func Close(int) error
+pkg syscall (linux-arm), func CloseOnExec(int)
+pkg syscall (linux-arm), func CmsgLen(int) int
+pkg syscall (linux-arm), func CmsgSpace(int) int
+pkg syscall (linux-arm), func Connect(int, Sockaddr) error
+pkg syscall (linux-arm), func Creat(string, uint32) (int, error)
+pkg syscall (linux-arm), func DetachLsf(int) error
+pkg syscall (linux-arm), func Dup(int) (int, error)
+pkg syscall (linux-arm), func Dup2(int, int) error
+pkg syscall (linux-arm), func EpollCreate(int) (int, error)
+pkg syscall (linux-arm), func EpollCreate1(int) (int, error)
+pkg syscall (linux-arm), func EpollCtl(int, int, int, *EpollEvent) error
+pkg syscall (linux-arm), func EpollWait(int, []EpollEvent, int) (int, error)
+pkg syscall (linux-arm), func Faccessat(int, string, uint32, int) error
+pkg syscall (linux-arm), func Fallocate(int, uint32, int64, int64) error
+pkg syscall (linux-arm), func Fchdir(int) error
+pkg syscall (linux-arm), func Fchmod(int, uint32) error
+pkg syscall (linux-arm), func Fchmodat(int, string, uint32, int) error
+pkg syscall (linux-arm), func Fchown(int, int, int) error
+pkg syscall (linux-arm), func Fchownat(int, string, int, int, int) error
+pkg syscall (linux-arm), func Fdatasync(int) error
+pkg syscall (linux-arm), func Flock(int, int) error
+pkg syscall (linux-arm), func ForkExec(string, []string, *ProcAttr) (int, error)
+pkg syscall (linux-arm), func Fstat(int, *Stat_t) error
+pkg syscall (linux-arm), func Fstatfs(int, *Statfs_t) error
+pkg syscall (linux-arm), func Fsync(int) error
+pkg syscall (linux-arm), func Ftruncate(int, int64) error
+pkg syscall (linux-arm), func Futimes(int, []Timeval) error
+pkg syscall (linux-arm), func Futimesat(int, string, []Timeval) error
+pkg syscall (linux-arm), func Getcwd([]byte) (int, error)
+pkg syscall (linux-arm), func Getdents(int, []byte) (int, error)
+pkg syscall (linux-arm), func Getpeername(int) (Sockaddr, error)
+pkg syscall (linux-arm), func Getpgid(int) (int, error)
+pkg syscall (linux-arm), func Getpgrp() int
+pkg syscall (linux-arm), func Getrlimit(int, *Rlimit) error
+pkg syscall (linux-arm), func Getrusage(int, *Rusage) error
+pkg syscall (linux-arm), func Getsockname(int) (Sockaddr, error)
+pkg syscall (linux-arm), func GetsockoptIPMreq(int) (*IPMreq, error)
+pkg syscall (linux-arm), func GetsockoptIPMreqn(int) (*IPMreqn, error)
+pkg syscall (linux-arm), func GetsockoptIPv6Mreq(int) (*IPv6Mreq, error)
+pkg syscall (linux-arm), func GetsockoptInet4Addr(int) ([4]byte, error)
+pkg syscall (linux-arm), func GetsockoptInt(int) (int, error)
+pkg syscall (linux-arm), func Gettid() int
+pkg syscall (linux-arm), func InotifyAddWatch(int, string, uint32) (int, error)
+pkg syscall (linux-arm), func InotifyInit() (int, error)
+pkg syscall (linux-arm), func InotifyInit1(int) (int, error)
+pkg syscall (linux-arm), func InotifyRmWatch(int, uint32) (int, error)
+pkg syscall (linux-arm), func Kill(int, Signal) error
+pkg syscall (linux-arm), func Klogctl(int, []byte) (int, error)
+pkg syscall (linux-arm), func Link(string, string) error
+pkg syscall (linux-arm), func Listen(int, int) error
+pkg syscall (linux-arm), func LsfJump(int) *SockFilter
+pkg syscall (linux-arm), func LsfSocket(int) (int, error)
+pkg syscall (linux-arm), func LsfStmt(int) *SockFilter
+pkg syscall (linux-arm), func Lstat(string, *Stat_t) error
+pkg syscall (linux-arm), func Madvise([]byte, int) error
+pkg syscall (linux-arm), func Mkdirat(int, string, uint32) error
+pkg syscall (linux-arm), func Mkfifo(string, uint32) error
+pkg syscall (linux-arm), func Mknod(string, uint32, int) error
+pkg syscall (linux-arm), func Mknodat(int, string, uint32, int) error
+pkg syscall (linux-arm), func Mlock([]byte) error
+pkg syscall (linux-arm), func Mlockall(int) error
+pkg syscall (linux-arm), func Mmap(int, int64, int, int, int) ([]byte, error)
+pkg syscall (linux-arm), func Mount(string, string, string, uintptr, string) error
+pkg syscall (linux-arm), func Mprotect([]byte, int) error
+pkg syscall (linux-arm), func Munlock([]byte) error
+pkg syscall (linux-arm), func Munlockall() error
+pkg syscall (linux-arm), func Munmap([]byte) error
+pkg syscall (linux-arm), func Nanosleep(*Timespec, *Timespec) error
+pkg syscall (linux-arm), func NetlinkRIB(int) ([]byte, error)
+pkg syscall (linux-arm), func NsecToTimespec(int64) Timespec
+pkg syscall (linux-arm), func Open(string, int, uint32) (int, error)
+pkg syscall (linux-arm), func Openat(int, string, int, uint32) (int, error)
+pkg syscall (linux-arm), func ParseDirent([]byte, int, []string) (int, int, []string)
+pkg syscall (linux-arm), func ParseNetlinkMessage([]byte) ([]NetlinkMessage, error)
+pkg syscall (linux-arm), func ParseNetlinkRouteAttr(*NetlinkMessage) ([]NetlinkRouteAttr, error)
+pkg syscall (linux-arm), func ParseSocketControlMessage([]byte) ([]SocketControlMessage, error)
+pkg syscall (linux-arm), func ParseUnixCredentials(*SocketControlMessage) (*Ucred, error)
+pkg syscall (linux-arm), func ParseUnixRights(*SocketControlMessage) ([]int, error)
+pkg syscall (linux-arm), func Pause() error
+pkg syscall (linux-arm), func Pipe([]int) error
+pkg syscall (linux-arm), func PivotRoot(string, string) error
+pkg syscall (linux-arm), func Pread(int, []byte, int64) (int, error)
+pkg syscall (linux-arm), func PtraceAttach(int) error
+pkg syscall (linux-arm), func PtraceCont(int, int) error
+pkg syscall (linux-arm), func PtraceDetach(int) error
+pkg syscall (linux-arm), func PtraceGetEventMsg(int) (uint, error)
+pkg syscall (linux-arm), func PtraceGetRegs(int, *PtraceRegs) error
+pkg syscall (linux-arm), func PtracePeekData(int, uintptr, []byte) (int, error)
+pkg syscall (linux-arm), func PtracePeekText(int, uintptr, []byte) (int, error)
+pkg syscall (linux-arm), func PtracePokeData(int, uintptr, []byte) (int, error)
+pkg syscall (linux-arm), func PtracePokeText(int, uintptr, []byte) (int, error)
+pkg syscall (linux-arm), func PtraceSetOptions(int, int) error
+pkg syscall (linux-arm), func PtraceSetRegs(int, *PtraceRegs) error
+pkg syscall (linux-arm), func PtraceSingleStep(int) error
+pkg syscall (linux-arm), func Pwrite(int, []byte, int64) (int, error)
+pkg syscall (linux-arm), func RawSyscall(uintptr) (uintptr, Errno)
+pkg syscall (linux-arm), func RawSyscall6(uintptr) (uintptr, Errno)
+pkg syscall (linux-arm), func Read(int, []byte) (int, error)
+pkg syscall (linux-arm), func ReadDirent(int, []byte) (int, error)
+pkg syscall (linux-arm), func Reboot(int) error
+pkg syscall (linux-arm), func Recvfrom(int, []byte, int) (int, Sockaddr, error)
+pkg syscall (linux-arm), func Recvmsg(int, []byte, int) (int, int, Sockaddr, error)
+pkg syscall (linux-arm), func Rename(string, string) error
+pkg syscall (linux-arm), func Renameat(int, string, int, string) error
+pkg syscall (linux-arm), func Seek(int, int64, int) (int64, error)
+pkg syscall (linux-arm), func Select(int, *FdSet, *FdSet, *FdSet, *Timeval) (int, error)
+pkg syscall (linux-arm), func Sendfile(int, int, *int64, int) (int, error)
+pkg syscall (linux-arm), func Sendmsg(int, []byte, Sockaddr, int) error
+pkg syscall (linux-arm), func Sendto(int, []byte, int, Sockaddr) error
+pkg syscall (linux-arm), func SetLsfPromisc(string, bool) error
+pkg syscall (linux-arm), func SetNonblock(int, bool) error
+pkg syscall (linux-arm), func Setdomainname([]byte) error
+pkg syscall (linux-arm), func Setfsgid(int) error
+pkg syscall (linux-arm), func Setfsuid(int) error
+pkg syscall (linux-arm), func Setgid(int) error
+pkg syscall (linux-arm), func Setgroups([]int) error
+pkg syscall (linux-arm), func Sethostname([]byte) error
+pkg syscall (linux-arm), func Setpgid(int, int) error
+pkg syscall (linux-arm), func Setregid(int, int) error
+pkg syscall (linux-arm), func Setresgid(int, int, int) error
+pkg syscall (linux-arm), func Setresuid(int, int, int) error
+pkg syscall (linux-arm), func Setreuid(int, int) error
+pkg syscall (linux-arm), func Setrlimit(int, *Rlimit) error
+pkg syscall (linux-arm), func Setsid() (int, error)
+pkg syscall (linux-arm), func SetsockoptIPMreq(int, *IPMreq) error
+pkg syscall (linux-arm), func SetsockoptIPMreqn(int, *IPMreqn) error
+pkg syscall (linux-arm), func SetsockoptIPv6Mreq(int, *IPv6Mreq) error
+pkg syscall (linux-arm), func SetsockoptInet4Addr(int, [4]byte) error
+pkg syscall (linux-arm), func SetsockoptInt(int, int) error
+pkg syscall (linux-arm), func SetsockoptLinger(int, *Linger) error
+pkg syscall (linux-arm), func SetsockoptString(int, string) error
+pkg syscall (linux-arm), func SetsockoptTimeval(int, *Timeval) error
+pkg syscall (linux-arm), func Settimeofday(*Timeval) error
+pkg syscall (linux-arm), func Setuid(int) error
+pkg syscall (linux-arm), func Shutdown(int, int) error
+pkg syscall (linux-arm), func Socket(int) (int, error)
+pkg syscall (linux-arm), func Socketpair(int) ([2]int, error)
+pkg syscall (linux-arm), func Splice(int, *int64, int, *int64, int, int) (int, error)
+pkg syscall (linux-arm), func Stat(string, *Stat_t) error
+pkg syscall (linux-arm), func Statfs(string, *Statfs_t) error
+pkg syscall (linux-arm), func StringSlicePtr([]string) []*byte
+pkg syscall (linux-arm), func Symlink(string, string) error
+pkg syscall (linux-arm), func Sync()
+pkg syscall (linux-arm), func Sysinfo(*Sysinfo_t) error
+pkg syscall (linux-arm), func Tee(int, int, int, int) (int64, error)
+pkg syscall (linux-arm), func Tgkill(int, int, Signal) error
+pkg syscall (linux-arm), func Time(*Time_t) (Time_t, error)
+pkg syscall (linux-arm), func Times(*Tms) (uintptr, error)
+pkg syscall (linux-arm), func TimespecToNsec(Timespec) int64
+pkg syscall (linux-arm), func Truncate(string, int64) error
+pkg syscall (linux-arm), func Umask(int) int
+pkg syscall (linux-arm), func Uname(*Utsname) error
+pkg syscall (linux-arm), func UnixCredentials(*Ucred) []byte
+pkg syscall (linux-arm), func UnixRights(...int) []byte
+pkg syscall (linux-arm), func Unlinkat(int, string) error
+pkg syscall (linux-arm), func Unmount(string, int) error
+pkg syscall (linux-arm), func Unshare(int) error
+pkg syscall (linux-arm), func Ustat(int, *Ustat_t) error
+pkg syscall (linux-arm), func Utime(string, *Utimbuf) error
+pkg syscall (linux-arm), func Wait4(int, *WaitStatus, int, *Rusage) (int, error)
+pkg syscall (linux-arm), func Write(int, []byte) (int, error)
+pkg syscall (linux-arm), method (*Cmsghdr) SetLen(int)
+pkg syscall (linux-arm), method (*Iovec) SetLen(int)
+pkg syscall (linux-arm), method (*Msghdr) SetControllen(int)
+pkg syscall (linux-arm), method (*PtraceRegs) PC() uint64
+pkg syscall (linux-arm), method (*PtraceRegs) SetPC(uint64)
+pkg syscall (linux-arm), type Cmsghdr struct
+pkg syscall (linux-arm), type Cmsghdr struct, Len uint32
+pkg syscall (linux-arm), type Cmsghdr struct, Level int32
+pkg syscall (linux-arm), type Cmsghdr struct, Type int32
+pkg syscall (linux-arm), type Cmsghdr struct, X__cmsg_data [0]uint8
+pkg syscall (linux-arm), type Credential struct
+pkg syscall (linux-arm), type Credential struct, Gid uint32
+pkg syscall (linux-arm), type Credential struct, Groups []uint32
+pkg syscall (linux-arm), type Credential struct, Uid uint32
+pkg syscall (linux-arm), type Dirent struct
+pkg syscall (linux-arm), type Dirent struct, Ino uint64
+pkg syscall (linux-arm), type Dirent struct, Name [256]uint8
+pkg syscall (linux-arm), type Dirent struct, Off int64
+pkg syscall (linux-arm), type Dirent struct, Pad_cgo_0 [5]byte
+pkg syscall (linux-arm), type Dirent struct, Reclen uint16
+pkg syscall (linux-arm), type Dirent struct, Type uint8
+pkg syscall (linux-arm), type EpollEvent struct
+pkg syscall (linux-arm), type EpollEvent struct, Events uint32
+pkg syscall (linux-arm), type EpollEvent struct, Fd int32
+pkg syscall (linux-arm), type EpollEvent struct, Pad int32
+pkg syscall (linux-arm), type EpollEvent struct, PadFd int32
+pkg syscall (linux-arm), type FdSet struct
+pkg syscall (linux-arm), type FdSet struct, Bits [32]int32
+pkg syscall (linux-arm), type Fsid struct
+pkg syscall (linux-arm), type Fsid struct, X__val [2]int32
+pkg syscall (linux-arm), type IPMreqn struct
+pkg syscall (linux-arm), type IPMreqn struct, Address [4]byte
+pkg syscall (linux-arm), type IPMreqn struct, Ifindex int32
+pkg syscall (linux-arm), type IPMreqn struct, Multiaddr [4]byte
+pkg syscall (linux-arm), type IfAddrmsg struct
+pkg syscall (linux-arm), type IfAddrmsg struct, Family uint8
+pkg syscall (linux-arm), type IfAddrmsg struct, Flags uint8
+pkg syscall (linux-arm), type IfAddrmsg struct, Index uint32
+pkg syscall (linux-arm), type IfAddrmsg struct, Prefixlen uint8
+pkg syscall (linux-arm), type IfAddrmsg struct, Scope uint8
+pkg syscall (linux-arm), type IfInfomsg struct
+pkg syscall (linux-arm), type IfInfomsg struct, Change uint32
+pkg syscall (linux-arm), type IfInfomsg struct, Family uint8
+pkg syscall (linux-arm), type IfInfomsg struct, Flags uint32
+pkg syscall (linux-arm), type IfInfomsg struct, Index int32
+pkg syscall (linux-arm), type IfInfomsg struct, Type uint16
+pkg syscall (linux-arm), type IfInfomsg struct, X__ifi_pad uint8
+pkg syscall (linux-arm), type Inet4Pktinfo struct
+pkg syscall (linux-arm), type Inet4Pktinfo struct, Addr [4]byte
+pkg syscall (linux-arm), type Inet4Pktinfo struct, Ifindex int32
+pkg syscall (linux-arm), type Inet4Pktinfo struct, Spec_dst [4]byte
+pkg syscall (linux-arm), type Inet6Pktinfo struct
+pkg syscall (linux-arm), type Inet6Pktinfo struct, Addr [16]byte
+pkg syscall (linux-arm), type Inet6Pktinfo struct, Ifindex uint32
+pkg syscall (linux-arm), type InotifyEvent struct
+pkg syscall (linux-arm), type InotifyEvent struct, Cookie uint32
+pkg syscall (linux-arm), type InotifyEvent struct, Len uint32
+pkg syscall (linux-arm), type InotifyEvent struct, Mask uint32
+pkg syscall (linux-arm), type InotifyEvent struct, Name [0]uint8
+pkg syscall (linux-arm), type InotifyEvent struct, Wd int32
+pkg syscall (linux-arm), type Iovec struct
+pkg syscall (linux-arm), type Iovec struct, Base *byte
+pkg syscall (linux-arm), type Iovec struct, Len uint32
+pkg syscall (linux-arm), type Msghdr struct
+pkg syscall (linux-arm), type Msghdr struct, Control *byte
+pkg syscall (linux-arm), type Msghdr struct, Controllen uint32
+pkg syscall (linux-arm), type Msghdr struct, Flags int32
+pkg syscall (linux-arm), type Msghdr struct, Iov *Iovec
+pkg syscall (linux-arm), type Msghdr struct, Iovlen uint32
+pkg syscall (linux-arm), type Msghdr struct, Name *byte
+pkg syscall (linux-arm), type Msghdr struct, Namelen uint32
+pkg syscall (linux-arm), type NetlinkMessage struct
+pkg syscall (linux-arm), type NetlinkMessage struct, Data []byte
+pkg syscall (linux-arm), type NetlinkMessage struct, Header NlMsghdr
+pkg syscall (linux-arm), type NetlinkRouteAttr struct
+pkg syscall (linux-arm), type NetlinkRouteAttr struct, Attr RtAttr
+pkg syscall (linux-arm), type NetlinkRouteAttr struct, Value []byte
+pkg syscall (linux-arm), type NetlinkRouteRequest struct
+pkg syscall (linux-arm), type NetlinkRouteRequest struct, Data RtGenmsg
+pkg syscall (linux-arm), type NetlinkRouteRequest struct, Header NlMsghdr
+pkg syscall (linux-arm), type NlAttr struct
+pkg syscall (linux-arm), type NlAttr struct, Len uint16
+pkg syscall (linux-arm), type NlAttr struct, Type uint16
+pkg syscall (linux-arm), type NlMsgerr struct
+pkg syscall (linux-arm), type NlMsgerr struct, Error int32
+pkg syscall (linux-arm), type NlMsgerr struct, Msg NlMsghdr
+pkg syscall (linux-arm), type NlMsghdr struct
+pkg syscall (linux-arm), type NlMsghdr struct, Flags uint16
+pkg syscall (linux-arm), type NlMsghdr struct, Len uint32
+pkg syscall (linux-arm), type NlMsghdr struct, Pid uint32
+pkg syscall (linux-arm), type NlMsghdr struct, Seq uint32
+pkg syscall (linux-arm), type NlMsghdr struct, Type uint16
+pkg syscall (linux-arm), type PtraceRegs struct
+pkg syscall (linux-arm), type PtraceRegs struct, Uregs [18]uint32
+pkg syscall (linux-arm), type RawSockaddr struct, Data [14]uint8
+pkg syscall (linux-arm), type RawSockaddr struct, Family uint16
+pkg syscall (linux-arm), type RawSockaddrAny struct, Pad [96]uint8
+pkg syscall (linux-arm), type RawSockaddrInet4 struct, Family uint16
+pkg syscall (linux-arm), type RawSockaddrInet4 struct, Zero [8]uint8
+pkg syscall (linux-arm), type RawSockaddrInet6 struct
+pkg syscall (linux-arm), type RawSockaddrInet6 struct, Addr [16]byte
+pkg syscall (linux-arm), type RawSockaddrInet6 struct, Family uint16
+pkg syscall (linux-arm), type RawSockaddrInet6 struct, Flowinfo uint32
+pkg syscall (linux-arm), type RawSockaddrInet6 struct, Port uint16
+pkg syscall (linux-arm), type RawSockaddrInet6 struct, Scope_id uint32
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Addr [8]uint8
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Family uint16
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Halen uint8
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Hatype uint16
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Ifindex int32
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Pkttype uint8
+pkg syscall (linux-arm), type RawSockaddrLinklayer struct, Protocol uint16
+pkg syscall (linux-arm), type RawSockaddrNetlink struct
+pkg syscall (linux-arm), type RawSockaddrNetlink struct, Family uint16
+pkg syscall (linux-arm), type RawSockaddrNetlink struct, Groups uint32
+pkg syscall (linux-arm), type RawSockaddrNetlink struct, Pad uint16
+pkg syscall (linux-arm), type RawSockaddrNetlink struct, Pid uint32
+pkg syscall (linux-arm), type RawSockaddrUnix struct
+pkg syscall (linux-arm), type RawSockaddrUnix struct, Family uint16
+pkg syscall (linux-arm), type RawSockaddrUnix struct, Path [108]int8
+pkg syscall (linux-arm), type Rlimit struct
+pkg syscall (linux-arm), type Rlimit struct, Cur uint64
+pkg syscall (linux-arm), type Rlimit struct, Max uint64
+pkg syscall (linux-arm), type RtAttr struct
+pkg syscall (linux-arm), type RtAttr struct, Len uint16
+pkg syscall (linux-arm), type RtAttr struct, Type uint16
+pkg syscall (linux-arm), type RtGenmsg struct
+pkg syscall (linux-arm), type RtGenmsg struct, Family uint8
+pkg syscall (linux-arm), type RtMsg struct
+pkg syscall (linux-arm), type RtMsg struct, Dst_len uint8
+pkg syscall (linux-arm), type RtMsg struct, Family uint8
+pkg syscall (linux-arm), type RtMsg struct, Flags uint32
+pkg syscall (linux-arm), type RtMsg struct, Protocol uint8
+pkg syscall (linux-arm), type RtMsg struct, Scope uint8
+pkg syscall (linux-arm), type RtMsg struct, Src_len uint8
+pkg syscall (linux-arm), type RtMsg struct, Table uint8
+pkg syscall (linux-arm), type RtMsg struct, Tos uint8
+pkg syscall (linux-arm), type RtMsg struct, Type uint8
+pkg syscall (linux-arm), type RtNexthop struct
+pkg syscall (linux-arm), type RtNexthop struct, Flags uint8
+pkg syscall (linux-arm), type RtNexthop struct, Hops uint8
+pkg syscall (linux-arm), type RtNexthop struct, Ifindex int32
+pkg syscall (linux-arm), type RtNexthop struct, Len uint16
+pkg syscall (linux-arm), type Rusage struct, Idrss int32
+pkg syscall (linux-arm), type Rusage struct, Inblock int32
+pkg syscall (linux-arm), type Rusage struct, Isrss int32
+pkg syscall (linux-arm), type Rusage struct, Ixrss int32
+pkg syscall (linux-arm), type Rusage struct, Majflt int32
+pkg syscall (linux-arm), type Rusage struct, Maxrss int32
+pkg syscall (linux-arm), type Rusage struct, Minflt int32
+pkg syscall (linux-arm), type Rusage struct, Msgrcv int32
+pkg syscall (linux-arm), type Rusage struct, Msgsnd int32
+pkg syscall (linux-arm), type Rusage struct, Nivcsw int32
+pkg syscall (linux-arm), type Rusage struct, Nsignals int32
+pkg syscall (linux-arm), type Rusage struct, Nswap int32
+pkg syscall (linux-arm), type Rusage struct, Nvcsw int32
+pkg syscall (linux-arm), type Rusage struct, Oublock int32
+pkg syscall (linux-arm), type Rusage struct, Stime Timeval
+pkg syscall (linux-arm), type Rusage struct, Utime Timeval
+pkg syscall (linux-arm), type SockFilter struct
+pkg syscall (linux-arm), type SockFilter struct, Code uint16
+pkg syscall (linux-arm), type SockFilter struct, Jf uint8
+pkg syscall (linux-arm), type SockFilter struct, Jt uint8
+pkg syscall (linux-arm), type SockFilter struct, K uint32
+pkg syscall (linux-arm), type SockFprog struct
+pkg syscall (linux-arm), type SockFprog struct, Filter *SockFilter
+pkg syscall (linux-arm), type SockFprog struct, Len uint16
+pkg syscall (linux-arm), type SockFprog struct, Pad_cgo_0 [2]byte
+pkg syscall (linux-arm), type SockaddrLinklayer struct
+pkg syscall (linux-arm), type SockaddrLinklayer struct, Addr [8]byte
+pkg syscall (linux-arm), type SockaddrLinklayer struct, Halen uint8
+pkg syscall (linux-arm), type SockaddrLinklayer struct, Hatype uint16
+pkg syscall (linux-arm), type SockaddrLinklayer struct, Ifindex int
+pkg syscall (linux-arm), type SockaddrLinklayer struct, Pkttype uint8
+pkg syscall (linux-arm), type SockaddrLinklayer struct, Protocol uint16
+pkg syscall (linux-arm), type SockaddrNetlink struct
+pkg syscall (linux-arm), type SockaddrNetlink struct, Family uint16
+pkg syscall (linux-arm), type SockaddrNetlink struct, Groups uint32
+pkg syscall (linux-arm), type SockaddrNetlink struct, Pad uint16
+pkg syscall (linux-arm), type SockaddrNetlink struct, Pid uint32
+pkg syscall (linux-arm), type SocketControlMessage struct
+pkg syscall (linux-arm), type SocketControlMessage struct, Data []byte
+pkg syscall (linux-arm), type SocketControlMessage struct, Header Cmsghdr
+pkg syscall (linux-arm), type Stat_t struct
+pkg syscall (linux-arm), type Stat_t struct, Atim Timespec
+pkg syscall (linux-arm), type Stat_t struct, Blksize int32
+pkg syscall (linux-arm), type Stat_t struct, Blocks int64
+pkg syscall (linux-arm), type Stat_t struct, Ctim Timespec
+pkg syscall (linux-arm), type Stat_t struct, Dev uint64
+pkg syscall (linux-arm), type Stat_t struct, Gid uint32
+pkg syscall (linux-arm), type Stat_t struct, Ino uint64
+pkg syscall (linux-arm), type Stat_t struct, Mode uint32
+pkg syscall (linux-arm), type Stat_t struct, Mtim Timespec
+pkg syscall (linux-arm), type Stat_t struct, Nlink uint32
+pkg syscall (linux-arm), type Stat_t struct, Pad_cgo_0 [2]byte
+pkg syscall (linux-arm), type Stat_t struct, Pad_cgo_1 [6]byte
+pkg syscall (linux-arm), type Stat_t struct, Pad_cgo_2 [4]byte
+pkg syscall (linux-arm), type Stat_t struct, Rdev uint64
+pkg syscall (linux-arm), type Stat_t struct, Size int64
+pkg syscall (linux-arm), type Stat_t struct, Uid uint32
+pkg syscall (linux-arm), type Stat_t struct, X__pad1 uint16
+pkg syscall (linux-arm), type Stat_t struct, X__pad2 uint16
+pkg syscall (linux-arm), type Stat_t struct, X__st_ino uint32
+pkg syscall (linux-arm), type Statfs_t struct
+pkg syscall (linux-arm), type Statfs_t struct, Bavail uint64
+pkg syscall (linux-arm), type Statfs_t struct, Bfree uint64
+pkg syscall (linux-arm), type Statfs_t struct, Blocks uint64
+pkg syscall (linux-arm), type Statfs_t struct, Bsize int32
+pkg syscall (linux-arm), type Statfs_t struct, Ffree uint64
+pkg syscall (linux-arm), type Statfs_t struct, Files uint64
+pkg syscall (linux-arm), type Statfs_t struct, Flags int32
+pkg syscall (linux-arm), type Statfs_t struct, Frsize int32
+pkg syscall (linux-arm), type Statfs_t struct, Fsid Fsid
+pkg syscall (linux-arm), type Statfs_t struct, Namelen int32
+pkg syscall (linux-arm), type Statfs_t struct, Pad_cgo_0 [4]byte
+pkg syscall (linux-arm), type Statfs_t struct, Spare [4]int32
+pkg syscall (linux-arm), type Statfs_t struct, Type int32
+pkg syscall (linux-arm), type SysProcAttr struct, Chroot string
+pkg syscall (linux-arm), type SysProcAttr struct, Credential *Credential
+pkg syscall (linux-arm), type SysProcAttr struct, Noctty bool
+pkg syscall (linux-arm), type SysProcAttr struct, Pdeathsig Signal
+pkg syscall (linux-arm), type SysProcAttr struct, Ptrace bool
+pkg syscall (linux-arm), type SysProcAttr struct, Setctty bool
+pkg syscall (linux-arm), type SysProcAttr struct, Setpgid bool
+pkg syscall (linux-arm), type SysProcAttr struct, Setsid bool
+pkg syscall (linux-arm), type Sysinfo_t struct
+pkg syscall (linux-arm), type Sysinfo_t struct, Bufferram uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Freehigh uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Freeram uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Freeswap uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Loads [3]uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Pad uint16
+pkg syscall (linux-arm), type Sysinfo_t struct, Procs uint16
+pkg syscall (linux-arm), type Sysinfo_t struct, Sharedram uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Totalhigh uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Totalram uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Totalswap uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Unit uint32
+pkg syscall (linux-arm), type Sysinfo_t struct, Uptime int32
+pkg syscall (linux-arm), type Sysinfo_t struct, X_f [8]uint8
+pkg syscall (linux-arm), type Termios struct
+pkg syscall (linux-arm), type Termios struct, Cc [32]uint8
+pkg syscall (linux-arm), type Termios struct, Cflag uint32
+pkg syscall (linux-arm), type Termios struct, Iflag uint32
+pkg syscall (linux-arm), type Termios struct, Ispeed uint32
+pkg syscall (linux-arm), type Termios struct, Lflag uint32
+pkg syscall (linux-arm), type Termios struct, Line uint8
+pkg syscall (linux-arm), type Termios struct, Oflag uint32
+pkg syscall (linux-arm), type Termios struct, Ospeed uint32
+pkg syscall (linux-arm), type Termios struct, Pad_cgo_0 [3]byte
+pkg syscall (linux-arm), type Time_t int32
+pkg syscall (linux-arm), type Timespec struct, Nsec int32
+pkg syscall (linux-arm), type Timespec struct, Sec int32
+pkg syscall (linux-arm), type Timeval struct, Sec int32
+pkg syscall (linux-arm), type Timeval struct, Usec int32
+pkg syscall (linux-arm), type Timex struct
+pkg syscall (linux-arm), type Timex struct, Calcnt int32
+pkg syscall (linux-arm), type Timex struct, Constant int32
+pkg syscall (linux-arm), type Timex struct, Errcnt int32
+pkg syscall (linux-arm), type Timex struct, Esterror int32
+pkg syscall (linux-arm), type Timex struct, Freq int32
+pkg syscall (linux-arm), type Timex struct, Jitcnt int32
+pkg syscall (linux-arm), type Timex struct, Jitter int32
+pkg syscall (linux-arm), type Timex struct, Maxerror int32
+pkg syscall (linux-arm), type Timex struct, Modes uint32
+pkg syscall (linux-arm), type Timex struct, Offset int32
+pkg syscall (linux-arm), type Timex struct, Pad_cgo_0 [44]byte
+pkg syscall (linux-arm), type Timex struct, Ppsfreq int32
+pkg syscall (linux-arm), type Timex struct, Precision int32
+pkg syscall (linux-arm), type Timex struct, Shift int32
+pkg syscall (linux-arm), type Timex struct, Stabil int32
+pkg syscall (linux-arm), type Timex struct, Status int32
+pkg syscall (linux-arm), type Timex struct, Stbcnt int32
+pkg syscall (linux-arm), type Timex struct, Tai int32
+pkg syscall (linux-arm), type Timex struct, Tick int32
+pkg syscall (linux-arm), type Timex struct, Time Timeval
+pkg syscall (linux-arm), type Timex struct, Tolerance int32
+pkg syscall (linux-arm), type Tms struct
+pkg syscall (linux-arm), type Tms struct, Cstime int32
+pkg syscall (linux-arm), type Tms struct, Cutime int32
+pkg syscall (linux-arm), type Tms struct, Stime int32
+pkg syscall (linux-arm), type Tms struct, Utime int32
+pkg syscall (linux-arm), type Ucred struct
+pkg syscall (linux-arm), type Ucred struct, Gid uint32
+pkg syscall (linux-arm), type Ucred struct, Pid int32
+pkg syscall (linux-arm), type Ucred struct, Uid uint32
+pkg syscall (linux-arm), type Ustat_t struct
+pkg syscall (linux-arm), type Ustat_t struct, Fname [6]uint8
+pkg syscall (linux-arm), type Ustat_t struct, Fpack [6]uint8
+pkg syscall (linux-arm), type Ustat_t struct, Tfree int32
+pkg syscall (linux-arm), type Ustat_t struct, Tinode uint32
+pkg syscall (linux-arm), type Utimbuf struct
+pkg syscall (linux-arm), type Utimbuf struct, Actime int32
+pkg syscall (linux-arm), type Utimbuf struct, Modtime int32
+pkg syscall (linux-arm), type Utsname struct
+pkg syscall (linux-arm), type Utsname struct, Domainname [65]uint8
+pkg syscall (linux-arm), type Utsname struct, Machine [65]uint8
+pkg syscall (linux-arm), type Utsname struct, Nodename [65]uint8
+pkg syscall (linux-arm), type Utsname struct, Release [65]uint8
+pkg syscall (linux-arm), type Utsname struct, Sysname [65]uint8
+pkg syscall (linux-arm), type Utsname struct, Version [65]uint8
+pkg syscall (linux-arm), type WaitStatus uint32
+pkg syscall (linux-arm), var Stderr int
+pkg syscall (linux-arm), var Stdin int
+pkg syscall (linux-arm), var Stdout int
pkg syscall (windows-386), const AF_NETBIOS ideal-int
pkg syscall (windows-386), const APPLICATION_ERROR ideal-int
pkg syscall (windows-386), const AUTHTYPE_CLIENT ideal-int
@@ -21903,12 +28175,17 @@ pkg syscall (windows-386), const EMEDIUMTYPE Errno
pkg syscall (windows-386), const ENAVAIL Errno
pkg syscall (windows-386), const ENOANO Errno
pkg syscall (windows-386), const ENOCSI Errno
+pkg syscall (windows-386), const ENODATA Errno
pkg syscall (windows-386), const ENOKEY Errno
pkg syscall (windows-386), const ENOMEDIUM Errno
pkg syscall (windows-386), const ENONET Errno
pkg syscall (windows-386), const ENOPKG Errno
+pkg syscall (windows-386), const ENOSR Errno
+pkg syscall (windows-386), const ENOSTR Errno
pkg syscall (windows-386), const ENOTNAM Errno
+pkg syscall (windows-386), const ENOTRECOVERABLE Errno
pkg syscall (windows-386), const ENOTUNIQ Errno
+pkg syscall (windows-386), const EOWNERDEAD Errno
pkg syscall (windows-386), const EREMCHG Errno
pkg syscall (windows-386), const EREMOTEIO Errno
pkg syscall (windows-386), const ERESTART Errno
@@ -21928,6 +28205,7 @@ pkg syscall (windows-386), const ERROR_PATH_NOT_FOUND Errno
pkg syscall (windows-386), const ERROR_PROC_NOT_FOUND Errno
pkg syscall (windows-386), const ESRMNT Errno
pkg syscall (windows-386), const ESTRPIPE Errno
+pkg syscall (windows-386), const ETIME Errno
pkg syscall (windows-386), const EUCLEAN Errno
pkg syscall (windows-386), const EUNATCH Errno
pkg syscall (windows-386), const EWINDOWS Errno
@@ -22099,6 +28377,7 @@ pkg syscall (windows-386), const SW_SHOWNA ideal-int
pkg syscall (windows-386), const SW_SHOWNOACTIVATE ideal-int
pkg syscall (windows-386), const SW_SHOWNORMAL ideal-int
pkg syscall (windows-386), const SYNCHRONIZE ideal-int
+pkg syscall (windows-386), const S_IWRITE ideal-int
pkg syscall (windows-386), const SidTypeAlias ideal-int
pkg syscall (windows-386), const SidTypeComputer ideal-int
pkg syscall (windows-386), const SidTypeDeletedAccount ideal-int
@@ -22561,6 +28840,7 @@ pkg syscall (windows-386), type Protoent struct
pkg syscall (windows-386), type Protoent struct, Aliases **byte
pkg syscall (windows-386), type Protoent struct, Name *byte
pkg syscall (windows-386), type Protoent struct, Proto uint16
+pkg syscall (windows-386), type RawSockaddr struct, Data [14]int8
pkg syscall (windows-386), type RawSockaddr struct, Family uint16
pkg syscall (windows-386), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (windows-386), type RawSockaddrInet4 struct, Family uint16
@@ -22821,12 +29101,17 @@ pkg syscall (windows-amd64), const EMEDIUMTYPE Errno
pkg syscall (windows-amd64), const ENAVAIL Errno
pkg syscall (windows-amd64), const ENOANO Errno
pkg syscall (windows-amd64), const ENOCSI Errno
+pkg syscall (windows-amd64), const ENODATA Errno
pkg syscall (windows-amd64), const ENOKEY Errno
pkg syscall (windows-amd64), const ENOMEDIUM Errno
pkg syscall (windows-amd64), const ENONET Errno
pkg syscall (windows-amd64), const ENOPKG Errno
+pkg syscall (windows-amd64), const ENOSR Errno
+pkg syscall (windows-amd64), const ENOSTR Errno
pkg syscall (windows-amd64), const ENOTNAM Errno
+pkg syscall (windows-amd64), const ENOTRECOVERABLE Errno
pkg syscall (windows-amd64), const ENOTUNIQ Errno
+pkg syscall (windows-amd64), const EOWNERDEAD Errno
pkg syscall (windows-amd64), const EREMCHG Errno
pkg syscall (windows-amd64), const EREMOTEIO Errno
pkg syscall (windows-amd64), const ERESTART Errno
@@ -22846,6 +29131,7 @@ pkg syscall (windows-amd64), const ERROR_PATH_NOT_FOUND Errno
pkg syscall (windows-amd64), const ERROR_PROC_NOT_FOUND Errno
pkg syscall (windows-amd64), const ESRMNT Errno
pkg syscall (windows-amd64), const ESTRPIPE Errno
+pkg syscall (windows-amd64), const ETIME Errno
pkg syscall (windows-amd64), const EUCLEAN Errno
pkg syscall (windows-amd64), const EUNATCH Errno
pkg syscall (windows-amd64), const EWINDOWS Errno
@@ -23017,6 +29303,7 @@ pkg syscall (windows-amd64), const SW_SHOWNA ideal-int
pkg syscall (windows-amd64), const SW_SHOWNOACTIVATE ideal-int
pkg syscall (windows-amd64), const SW_SHOWNORMAL ideal-int
pkg syscall (windows-amd64), const SYNCHRONIZE ideal-int
+pkg syscall (windows-amd64), const S_IWRITE ideal-int
pkg syscall (windows-amd64), const SidTypeAlias ideal-int
pkg syscall (windows-amd64), const SidTypeComputer ideal-int
pkg syscall (windows-amd64), const SidTypeDeletedAccount ideal-int
@@ -23479,6 +29766,7 @@ pkg syscall (windows-amd64), type Protoent struct
pkg syscall (windows-amd64), type Protoent struct, Aliases **byte
pkg syscall (windows-amd64), type Protoent struct, Name *byte
pkg syscall (windows-amd64), type Protoent struct, Proto uint16
+pkg syscall (windows-amd64), type RawSockaddr struct, Data [14]int8
pkg syscall (windows-amd64), type RawSockaddr struct, Family uint16
pkg syscall (windows-amd64), type RawSockaddrAny struct, Pad [96]int8
pkg syscall (windows-amd64), type RawSockaddrInet4 struct, Family uint16
@@ -23644,7 +29932,6 @@ pkg syscall, const ENETRESET Errno
pkg syscall, const ENETUNREACH Errno
pkg syscall, const ENFILE Errno
pkg syscall, const ENOBUFS Errno
-pkg syscall, const ENODATA Errno
pkg syscall, const ENODEV Errno
pkg syscall, const ENOENT Errno
pkg syscall, const ENOEXEC Errno
@@ -23654,21 +29941,17 @@ pkg syscall, const ENOMEM Errno
pkg syscall, const ENOMSG Errno
pkg syscall, const ENOPROTOOPT Errno
pkg syscall, const ENOSPC Errno
-pkg syscall, const ENOSR Errno
-pkg syscall, const ENOSTR Errno
pkg syscall, const ENOSYS Errno
pkg syscall, const ENOTBLK Errno
pkg syscall, const ENOTCONN Errno
pkg syscall, const ENOTDIR Errno
pkg syscall, const ENOTEMPTY Errno
-pkg syscall, const ENOTRECOVERABLE Errno
pkg syscall, const ENOTSOCK Errno
pkg syscall, const ENOTSUP Errno
pkg syscall, const ENOTTY Errno
pkg syscall, const ENXIO Errno
pkg syscall, const EOPNOTSUPP Errno
pkg syscall, const EOVERFLOW Errno
-pkg syscall, const EOWNERDEAD Errno
pkg syscall, const EPERM Errno
pkg syscall, const EPFNOSUPPORT Errno
pkg syscall, const EPIPE Errno
@@ -23683,7 +29966,6 @@ pkg syscall, const ESOCKTNOSUPPORT Errno
pkg syscall, const ESPIPE Errno
pkg syscall, const ESRCH Errno
pkg syscall, const ESTALE Errno
-pkg syscall, const ETIME Errno
pkg syscall, const ETIMEDOUT Errno
pkg syscall, const ETOOMANYREFS Errno
pkg syscall, const ETXTBSY Errno
@@ -23766,7 +30048,6 @@ pkg syscall, const S_IRUSR ideal-int
pkg syscall, const S_ISGID ideal-int
pkg syscall, const S_ISUID ideal-int
pkg syscall, const S_ISVTX ideal-int
-pkg syscall, const S_IWRITE ideal-int
pkg syscall, const S_IWUSR ideal-int
pkg syscall, const S_IXUSR ideal-int
pkg syscall, const TCP_NODELAY ideal-int
@@ -23835,7 +30116,6 @@ pkg syscall, type ProcAttr struct, Env []string
pkg syscall, type ProcAttr struct, Files []uintptr
pkg syscall, type ProcAttr struct, Sys *SysProcAttr
pkg syscall, type RawSockaddr struct
-pkg syscall, type RawSockaddr struct, Data [14]int8
pkg syscall, type RawSockaddrAny struct
pkg syscall, type RawSockaddrAny struct, Addr RawSockaddr
pkg syscall, type RawSockaddrInet4 struct
diff --git a/api/next.txt b/api/next.txt
new file mode 100644
index 000000000..506f08861
--- /dev/null
+++ b/api/next.txt
@@ -0,0 +1,428 @@
+pkg crypto/tls, const TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16
+pkg crypto/tls, const TLS_RSA_WITH_AES_256_CBC_SHA uint16
+pkg crypto/x509, const ECDSA PublicKeyAlgorithm
+pkg crypto/x509, const ECDSAWithSHA1 SignatureAlgorithm
+pkg crypto/x509, const ECDSAWithSHA256 SignatureAlgorithm
+pkg crypto/x509, const ECDSAWithSHA384 SignatureAlgorithm
+pkg crypto/x509, const ECDSAWithSHA512 SignatureAlgorithm
+pkg debug/elf, type FileHeader struct, Entry uint64
+pkg go/doc, var IllegalPrefixes []string
+pkg math/big, method (*Int) MarshalJSON() ([]byte, error)
+pkg math/big, method (*Int) UnmarshalJSON([]byte) error
+pkg regexp/syntax, const ErrUnexpectedParen ErrorCode
+pkg syscall (darwin-386), const B0 ideal-int
+pkg syscall (darwin-386), const B110 ideal-int
+pkg syscall (darwin-386), const B115200 ideal-int
+pkg syscall (darwin-386), const B1200 ideal-int
+pkg syscall (darwin-386), const B134 ideal-int
+pkg syscall (darwin-386), const B14400 ideal-int
+pkg syscall (darwin-386), const B150 ideal-int
+pkg syscall (darwin-386), const B1800 ideal-int
+pkg syscall (darwin-386), const B19200 ideal-int
+pkg syscall (darwin-386), const B200 ideal-int
+pkg syscall (darwin-386), const B230400 ideal-int
+pkg syscall (darwin-386), const B2400 ideal-int
+pkg syscall (darwin-386), const B28800 ideal-int
+pkg syscall (darwin-386), const B300 ideal-int
+pkg syscall (darwin-386), const B38400 ideal-int
+pkg syscall (darwin-386), const B4800 ideal-int
+pkg syscall (darwin-386), const B50 ideal-int
+pkg syscall (darwin-386), const B57600 ideal-int
+pkg syscall (darwin-386), const B600 ideal-int
+pkg syscall (darwin-386), const B7200 ideal-int
+pkg syscall (darwin-386), const B75 ideal-int
+pkg syscall (darwin-386), const B76800 ideal-int
+pkg syscall (darwin-386), const B9600 ideal-int
+pkg syscall (darwin-386), const BRKINT ideal-int
+pkg syscall (darwin-386), const CFLUSH ideal-int
+pkg syscall (darwin-386), const CLOCAL ideal-int
+pkg syscall (darwin-386), const CREAD ideal-int
+pkg syscall (darwin-386), const CS5 ideal-int
+pkg syscall (darwin-386), const CS6 ideal-int
+pkg syscall (darwin-386), const CS7 ideal-int
+pkg syscall (darwin-386), const CS8 ideal-int
+pkg syscall (darwin-386), const CSIZE ideal-int
+pkg syscall (darwin-386), const CSTART ideal-int
+pkg syscall (darwin-386), const CSTATUS ideal-int
+pkg syscall (darwin-386), const CSTOP ideal-int
+pkg syscall (darwin-386), const CSTOPB ideal-int
+pkg syscall (darwin-386), const CSUSP ideal-int
+pkg syscall (darwin-386), const FLUSHO ideal-int
+pkg syscall (darwin-386), const HUPCL ideal-int
+pkg syscall (darwin-386), const ICANON ideal-int
+pkg syscall (darwin-386), const ICRNL ideal-int
+pkg syscall (darwin-386), const IEXTEN ideal-int
+pkg syscall (darwin-386), const IGNBRK ideal-int
+pkg syscall (darwin-386), const IGNCR ideal-int
+pkg syscall (darwin-386), const IGNPAR ideal-int
+pkg syscall (darwin-386), const IMAXBEL ideal-int
+pkg syscall (darwin-386), const INLCR ideal-int
+pkg syscall (darwin-386), const INPCK ideal-int
+pkg syscall (darwin-386), const ISIG ideal-int
+pkg syscall (darwin-386), const ISTRIP ideal-int
+pkg syscall (darwin-386), const IUTF8 ideal-int
+pkg syscall (darwin-386), const IXANY ideal-int
+pkg syscall (darwin-386), const IXOFF ideal-int
+pkg syscall (darwin-386), const IXON ideal-int
+pkg syscall (darwin-386), const NOFLSH ideal-int
+pkg syscall (darwin-386), const OCRNL ideal-int
+pkg syscall (darwin-386), const OFDEL ideal-int
+pkg syscall (darwin-386), const OFILL ideal-int
+pkg syscall (darwin-386), const ONLCR ideal-int
+pkg syscall (darwin-386), const ONLRET ideal-int
+pkg syscall (darwin-386), const ONOCR ideal-int
+pkg syscall (darwin-386), const ONOEOT ideal-int
+pkg syscall (darwin-386), const OPOST ideal-int
+pkg syscall (darwin-386), const PARENB ideal-int
+pkg syscall (darwin-386), const PARMRK ideal-int
+pkg syscall (darwin-386), const PARODD ideal-int
+pkg syscall (darwin-386), const PENDIN ideal-int
+pkg syscall (darwin-386), const TCIFLUSH ideal-int
+pkg syscall (darwin-386), const TCIOFLUSH ideal-int
+pkg syscall (darwin-386), const TCOFLUSH ideal-int
+pkg syscall (darwin-386), const TCSAFLUSH ideal-int
+pkg syscall (darwin-386), const TOSTOP ideal-int
+pkg syscall (darwin-386), const VDISCARD ideal-int
+pkg syscall (darwin-386), const VDSUSP ideal-int
+pkg syscall (darwin-386), const VEOF ideal-int
+pkg syscall (darwin-386), const VEOL ideal-int
+pkg syscall (darwin-386), const VEOL2 ideal-int
+pkg syscall (darwin-386), const VERASE ideal-int
+pkg syscall (darwin-386), const VINTR ideal-int
+pkg syscall (darwin-386), const VKILL ideal-int
+pkg syscall (darwin-386), const VLNEXT ideal-int
+pkg syscall (darwin-386), const VMIN ideal-int
+pkg syscall (darwin-386), const VQUIT ideal-int
+pkg syscall (darwin-386), const VREPRINT ideal-int
+pkg syscall (darwin-386), const VSTART ideal-int
+pkg syscall (darwin-386), const VSTATUS ideal-int
+pkg syscall (darwin-386), const VSTOP ideal-int
+pkg syscall (darwin-386), const VSUSP ideal-int
+pkg syscall (darwin-386), const VT0 ideal-int
+pkg syscall (darwin-386), const VT1 ideal-int
+pkg syscall (darwin-386), const VTDLY ideal-int
+pkg syscall (darwin-386), const VTIME ideal-int
+pkg syscall (darwin-386), const VWERASE ideal-int
+pkg syscall (darwin-386), type Termios struct
+pkg syscall (darwin-386), type Termios struct, Cc [20]uint8
+pkg syscall (darwin-386), type Termios struct, Cflag uint32
+pkg syscall (darwin-386), type Termios struct, Iflag uint32
+pkg syscall (darwin-386), type Termios struct, Ispeed uint32
+pkg syscall (darwin-386), type Termios struct, Lflag uint32
+pkg syscall (darwin-386), type Termios struct, Oflag uint32
+pkg syscall (darwin-386), type Termios struct, Ospeed uint32
+pkg syscall (darwin-386-cgo), const B0 ideal-int
+pkg syscall (darwin-386-cgo), const B110 ideal-int
+pkg syscall (darwin-386-cgo), const B115200 ideal-int
+pkg syscall (darwin-386-cgo), const B1200 ideal-int
+pkg syscall (darwin-386-cgo), const B134 ideal-int
+pkg syscall (darwin-386-cgo), const B14400 ideal-int
+pkg syscall (darwin-386-cgo), const B150 ideal-int
+pkg syscall (darwin-386-cgo), const B1800 ideal-int
+pkg syscall (darwin-386-cgo), const B19200 ideal-int
+pkg syscall (darwin-386-cgo), const B200 ideal-int
+pkg syscall (darwin-386-cgo), const B230400 ideal-int
+pkg syscall (darwin-386-cgo), const B2400 ideal-int
+pkg syscall (darwin-386-cgo), const B28800 ideal-int
+pkg syscall (darwin-386-cgo), const B300 ideal-int
+pkg syscall (darwin-386-cgo), const B38400 ideal-int
+pkg syscall (darwin-386-cgo), const B4800 ideal-int
+pkg syscall (darwin-386-cgo), const B50 ideal-int
+pkg syscall (darwin-386-cgo), const B57600 ideal-int
+pkg syscall (darwin-386-cgo), const B600 ideal-int
+pkg syscall (darwin-386-cgo), const B7200 ideal-int
+pkg syscall (darwin-386-cgo), const B75 ideal-int
+pkg syscall (darwin-386-cgo), const B76800 ideal-int
+pkg syscall (darwin-386-cgo), const B9600 ideal-int
+pkg syscall (darwin-386-cgo), const BRKINT ideal-int
+pkg syscall (darwin-386-cgo), const CFLUSH ideal-int
+pkg syscall (darwin-386-cgo), const CLOCAL ideal-int
+pkg syscall (darwin-386-cgo), const CREAD ideal-int
+pkg syscall (darwin-386-cgo), const CS5 ideal-int
+pkg syscall (darwin-386-cgo), const CS6 ideal-int
+pkg syscall (darwin-386-cgo), const CS7 ideal-int
+pkg syscall (darwin-386-cgo), const CS8 ideal-int
+pkg syscall (darwin-386-cgo), const CSIZE ideal-int
+pkg syscall (darwin-386-cgo), const CSTART ideal-int
+pkg syscall (darwin-386-cgo), const CSTATUS ideal-int
+pkg syscall (darwin-386-cgo), const CSTOP ideal-int
+pkg syscall (darwin-386-cgo), const CSTOPB ideal-int
+pkg syscall (darwin-386-cgo), const CSUSP ideal-int
+pkg syscall (darwin-386-cgo), const FLUSHO ideal-int
+pkg syscall (darwin-386-cgo), const HUPCL ideal-int
+pkg syscall (darwin-386-cgo), const ICANON ideal-int
+pkg syscall (darwin-386-cgo), const ICRNL ideal-int
+pkg syscall (darwin-386-cgo), const IEXTEN ideal-int
+pkg syscall (darwin-386-cgo), const IGNBRK ideal-int
+pkg syscall (darwin-386-cgo), const IGNCR ideal-int
+pkg syscall (darwin-386-cgo), const IGNPAR ideal-int
+pkg syscall (darwin-386-cgo), const IMAXBEL ideal-int
+pkg syscall (darwin-386-cgo), const INLCR ideal-int
+pkg syscall (darwin-386-cgo), const INPCK ideal-int
+pkg syscall (darwin-386-cgo), const ISIG ideal-int
+pkg syscall (darwin-386-cgo), const ISTRIP ideal-int
+pkg syscall (darwin-386-cgo), const IUTF8 ideal-int
+pkg syscall (darwin-386-cgo), const IXANY ideal-int
+pkg syscall (darwin-386-cgo), const IXOFF ideal-int
+pkg syscall (darwin-386-cgo), const IXON ideal-int
+pkg syscall (darwin-386-cgo), const NOFLSH ideal-int
+pkg syscall (darwin-386-cgo), const OCRNL ideal-int
+pkg syscall (darwin-386-cgo), const OFDEL ideal-int
+pkg syscall (darwin-386-cgo), const OFILL ideal-int
+pkg syscall (darwin-386-cgo), const ONLCR ideal-int
+pkg syscall (darwin-386-cgo), const ONLRET ideal-int
+pkg syscall (darwin-386-cgo), const ONOCR ideal-int
+pkg syscall (darwin-386-cgo), const ONOEOT ideal-int
+pkg syscall (darwin-386-cgo), const OPOST ideal-int
+pkg syscall (darwin-386-cgo), const PARENB ideal-int
+pkg syscall (darwin-386-cgo), const PARMRK ideal-int
+pkg syscall (darwin-386-cgo), const PARODD ideal-int
+pkg syscall (darwin-386-cgo), const PENDIN ideal-int
+pkg syscall (darwin-386-cgo), const TCIFLUSH ideal-int
+pkg syscall (darwin-386-cgo), const TCIOFLUSH ideal-int
+pkg syscall (darwin-386-cgo), const TCOFLUSH ideal-int
+pkg syscall (darwin-386-cgo), const TCSAFLUSH ideal-int
+pkg syscall (darwin-386-cgo), const TOSTOP ideal-int
+pkg syscall (darwin-386-cgo), const VDISCARD ideal-int
+pkg syscall (darwin-386-cgo), const VDSUSP ideal-int
+pkg syscall (darwin-386-cgo), const VEOF ideal-int
+pkg syscall (darwin-386-cgo), const VEOL ideal-int
+pkg syscall (darwin-386-cgo), const VEOL2 ideal-int
+pkg syscall (darwin-386-cgo), const VERASE ideal-int
+pkg syscall (darwin-386-cgo), const VINTR ideal-int
+pkg syscall (darwin-386-cgo), const VKILL ideal-int
+pkg syscall (darwin-386-cgo), const VLNEXT ideal-int
+pkg syscall (darwin-386-cgo), const VMIN ideal-int
+pkg syscall (darwin-386-cgo), const VQUIT ideal-int
+pkg syscall (darwin-386-cgo), const VREPRINT ideal-int
+pkg syscall (darwin-386-cgo), const VSTART ideal-int
+pkg syscall (darwin-386-cgo), const VSTATUS ideal-int
+pkg syscall (darwin-386-cgo), const VSTOP ideal-int
+pkg syscall (darwin-386-cgo), const VSUSP ideal-int
+pkg syscall (darwin-386-cgo), const VT0 ideal-int
+pkg syscall (darwin-386-cgo), const VT1 ideal-int
+pkg syscall (darwin-386-cgo), const VTDLY ideal-int
+pkg syscall (darwin-386-cgo), const VTIME ideal-int
+pkg syscall (darwin-386-cgo), const VWERASE ideal-int
+pkg syscall (darwin-386-cgo), type Termios struct
+pkg syscall (darwin-386-cgo), type Termios struct, Cc [20]uint8
+pkg syscall (darwin-386-cgo), type Termios struct, Cflag uint32
+pkg syscall (darwin-386-cgo), type Termios struct, Iflag uint32
+pkg syscall (darwin-386-cgo), type Termios struct, Ispeed uint32
+pkg syscall (darwin-386-cgo), type Termios struct, Lflag uint32
+pkg syscall (darwin-386-cgo), type Termios struct, Oflag uint32
+pkg syscall (darwin-386-cgo), type Termios struct, Ospeed uint32
+pkg syscall (darwin-amd64), const B0 ideal-int
+pkg syscall (darwin-amd64), const B110 ideal-int
+pkg syscall (darwin-amd64), const B115200 ideal-int
+pkg syscall (darwin-amd64), const B1200 ideal-int
+pkg syscall (darwin-amd64), const B134 ideal-int
+pkg syscall (darwin-amd64), const B14400 ideal-int
+pkg syscall (darwin-amd64), const B150 ideal-int
+pkg syscall (darwin-amd64), const B1800 ideal-int
+pkg syscall (darwin-amd64), const B19200 ideal-int
+pkg syscall (darwin-amd64), const B200 ideal-int
+pkg syscall (darwin-amd64), const B230400 ideal-int
+pkg syscall (darwin-amd64), const B2400 ideal-int
+pkg syscall (darwin-amd64), const B28800 ideal-int
+pkg syscall (darwin-amd64), const B300 ideal-int
+pkg syscall (darwin-amd64), const B38400 ideal-int
+pkg syscall (darwin-amd64), const B4800 ideal-int
+pkg syscall (darwin-amd64), const B50 ideal-int
+pkg syscall (darwin-amd64), const B57600 ideal-int
+pkg syscall (darwin-amd64), const B600 ideal-int
+pkg syscall (darwin-amd64), const B7200 ideal-int
+pkg syscall (darwin-amd64), const B75 ideal-int
+pkg syscall (darwin-amd64), const B76800 ideal-int
+pkg syscall (darwin-amd64), const B9600 ideal-int
+pkg syscall (darwin-amd64), const BRKINT ideal-int
+pkg syscall (darwin-amd64), const CFLUSH ideal-int
+pkg syscall (darwin-amd64), const CLOCAL ideal-int
+pkg syscall (darwin-amd64), const CREAD ideal-int
+pkg syscall (darwin-amd64), const CS5 ideal-int
+pkg syscall (darwin-amd64), const CS6 ideal-int
+pkg syscall (darwin-amd64), const CS7 ideal-int
+pkg syscall (darwin-amd64), const CS8 ideal-int
+pkg syscall (darwin-amd64), const CSIZE ideal-int
+pkg syscall (darwin-amd64), const CSTART ideal-int
+pkg syscall (darwin-amd64), const CSTATUS ideal-int
+pkg syscall (darwin-amd64), const CSTOP ideal-int
+pkg syscall (darwin-amd64), const CSTOPB ideal-int
+pkg syscall (darwin-amd64), const CSUSP ideal-int
+pkg syscall (darwin-amd64), const FLUSHO ideal-int
+pkg syscall (darwin-amd64), const HUPCL ideal-int
+pkg syscall (darwin-amd64), const ICANON ideal-int
+pkg syscall (darwin-amd64), const ICRNL ideal-int
+pkg syscall (darwin-amd64), const IEXTEN ideal-int
+pkg syscall (darwin-amd64), const IGNBRK ideal-int
+pkg syscall (darwin-amd64), const IGNCR ideal-int
+pkg syscall (darwin-amd64), const IGNPAR ideal-int
+pkg syscall (darwin-amd64), const IMAXBEL ideal-int
+pkg syscall (darwin-amd64), const INLCR ideal-int
+pkg syscall (darwin-amd64), const INPCK ideal-int
+pkg syscall (darwin-amd64), const ISIG ideal-int
+pkg syscall (darwin-amd64), const ISTRIP ideal-int
+pkg syscall (darwin-amd64), const IUTF8 ideal-int
+pkg syscall (darwin-amd64), const IXANY ideal-int
+pkg syscall (darwin-amd64), const IXOFF ideal-int
+pkg syscall (darwin-amd64), const IXON ideal-int
+pkg syscall (darwin-amd64), const NOFLSH ideal-int
+pkg syscall (darwin-amd64), const OCRNL ideal-int
+pkg syscall (darwin-amd64), const OFDEL ideal-int
+pkg syscall (darwin-amd64), const OFILL ideal-int
+pkg syscall (darwin-amd64), const ONLCR ideal-int
+pkg syscall (darwin-amd64), const ONLRET ideal-int
+pkg syscall (darwin-amd64), const ONOCR ideal-int
+pkg syscall (darwin-amd64), const ONOEOT ideal-int
+pkg syscall (darwin-amd64), const OPOST ideal-int
+pkg syscall (darwin-amd64), const PARENB ideal-int
+pkg syscall (darwin-amd64), const PARMRK ideal-int
+pkg syscall (darwin-amd64), const PARODD ideal-int
+pkg syscall (darwin-amd64), const PENDIN ideal-int
+pkg syscall (darwin-amd64), const TCIFLUSH ideal-int
+pkg syscall (darwin-amd64), const TCIOFLUSH ideal-int
+pkg syscall (darwin-amd64), const TCOFLUSH ideal-int
+pkg syscall (darwin-amd64), const TCSAFLUSH ideal-int
+pkg syscall (darwin-amd64), const TOSTOP ideal-int
+pkg syscall (darwin-amd64), const VDISCARD ideal-int
+pkg syscall (darwin-amd64), const VDSUSP ideal-int
+pkg syscall (darwin-amd64), const VEOF ideal-int
+pkg syscall (darwin-amd64), const VEOL ideal-int
+pkg syscall (darwin-amd64), const VEOL2 ideal-int
+pkg syscall (darwin-amd64), const VERASE ideal-int
+pkg syscall (darwin-amd64), const VINTR ideal-int
+pkg syscall (darwin-amd64), const VKILL ideal-int
+pkg syscall (darwin-amd64), const VLNEXT ideal-int
+pkg syscall (darwin-amd64), const VMIN ideal-int
+pkg syscall (darwin-amd64), const VQUIT ideal-int
+pkg syscall (darwin-amd64), const VREPRINT ideal-int
+pkg syscall (darwin-amd64), const VSTART ideal-int
+pkg syscall (darwin-amd64), const VSTATUS ideal-int
+pkg syscall (darwin-amd64), const VSTOP ideal-int
+pkg syscall (darwin-amd64), const VSUSP ideal-int
+pkg syscall (darwin-amd64), const VT0 ideal-int
+pkg syscall (darwin-amd64), const VT1 ideal-int
+pkg syscall (darwin-amd64), const VTDLY ideal-int
+pkg syscall (darwin-amd64), const VTIME ideal-int
+pkg syscall (darwin-amd64), const VWERASE ideal-int
+pkg syscall (darwin-amd64), type Termios struct
+pkg syscall (darwin-amd64), type Termios struct, Cc [20]uint8
+pkg syscall (darwin-amd64), type Termios struct, Cflag uint64
+pkg syscall (darwin-amd64), type Termios struct, Iflag uint64
+pkg syscall (darwin-amd64), type Termios struct, Ispeed uint64
+pkg syscall (darwin-amd64), type Termios struct, Lflag uint64
+pkg syscall (darwin-amd64), type Termios struct, Oflag uint64
+pkg syscall (darwin-amd64), type Termios struct, Ospeed uint64
+pkg syscall (darwin-amd64), type Termios struct, Pad_cgo_0 [4]byte
+pkg syscall (darwin-amd64-cgo), const B0 ideal-int
+pkg syscall (darwin-amd64-cgo), const B110 ideal-int
+pkg syscall (darwin-amd64-cgo), const B115200 ideal-int
+pkg syscall (darwin-amd64-cgo), const B1200 ideal-int
+pkg syscall (darwin-amd64-cgo), const B134 ideal-int
+pkg syscall (darwin-amd64-cgo), const B14400 ideal-int
+pkg syscall (darwin-amd64-cgo), const B150 ideal-int
+pkg syscall (darwin-amd64-cgo), const B1800 ideal-int
+pkg syscall (darwin-amd64-cgo), const B19200 ideal-int
+pkg syscall (darwin-amd64-cgo), const B200 ideal-int
+pkg syscall (darwin-amd64-cgo), const B230400 ideal-int
+pkg syscall (darwin-amd64-cgo), const B2400 ideal-int
+pkg syscall (darwin-amd64-cgo), const B28800 ideal-int
+pkg syscall (darwin-amd64-cgo), const B300 ideal-int
+pkg syscall (darwin-amd64-cgo), const B38400 ideal-int
+pkg syscall (darwin-amd64-cgo), const B4800 ideal-int
+pkg syscall (darwin-amd64-cgo), const B50 ideal-int
+pkg syscall (darwin-amd64-cgo), const B57600 ideal-int
+pkg syscall (darwin-amd64-cgo), const B600 ideal-int
+pkg syscall (darwin-amd64-cgo), const B7200 ideal-int
+pkg syscall (darwin-amd64-cgo), const B75 ideal-int
+pkg syscall (darwin-amd64-cgo), const B76800 ideal-int
+pkg syscall (darwin-amd64-cgo), const B9600 ideal-int
+pkg syscall (darwin-amd64-cgo), const BRKINT ideal-int
+pkg syscall (darwin-amd64-cgo), const CFLUSH ideal-int
+pkg syscall (darwin-amd64-cgo), const CLOCAL ideal-int
+pkg syscall (darwin-amd64-cgo), const CREAD ideal-int
+pkg syscall (darwin-amd64-cgo), const CS5 ideal-int
+pkg syscall (darwin-amd64-cgo), const CS6 ideal-int
+pkg syscall (darwin-amd64-cgo), const CS7 ideal-int
+pkg syscall (darwin-amd64-cgo), const CS8 ideal-int
+pkg syscall (darwin-amd64-cgo), const CSIZE ideal-int
+pkg syscall (darwin-amd64-cgo), const CSTART ideal-int
+pkg syscall (darwin-amd64-cgo), const CSTATUS ideal-int
+pkg syscall (darwin-amd64-cgo), const CSTOP ideal-int
+pkg syscall (darwin-amd64-cgo), const CSTOPB ideal-int
+pkg syscall (darwin-amd64-cgo), const CSUSP ideal-int
+pkg syscall (darwin-amd64-cgo), const FLUSHO ideal-int
+pkg syscall (darwin-amd64-cgo), const HUPCL ideal-int
+pkg syscall (darwin-amd64-cgo), const ICANON ideal-int
+pkg syscall (darwin-amd64-cgo), const ICRNL ideal-int
+pkg syscall (darwin-amd64-cgo), const IEXTEN ideal-int
+pkg syscall (darwin-amd64-cgo), const IGNBRK ideal-int
+pkg syscall (darwin-amd64-cgo), const IGNCR ideal-int
+pkg syscall (darwin-amd64-cgo), const IGNPAR ideal-int
+pkg syscall (darwin-amd64-cgo), const IMAXBEL ideal-int
+pkg syscall (darwin-amd64-cgo), const INLCR ideal-int
+pkg syscall (darwin-amd64-cgo), const INPCK ideal-int
+pkg syscall (darwin-amd64-cgo), const ISIG ideal-int
+pkg syscall (darwin-amd64-cgo), const ISTRIP ideal-int
+pkg syscall (darwin-amd64-cgo), const IUTF8 ideal-int
+pkg syscall (darwin-amd64-cgo), const IXANY ideal-int
+pkg syscall (darwin-amd64-cgo), const IXOFF ideal-int
+pkg syscall (darwin-amd64-cgo), const IXON ideal-int
+pkg syscall (darwin-amd64-cgo), const NOFLSH ideal-int
+pkg syscall (darwin-amd64-cgo), const OCRNL ideal-int
+pkg syscall (darwin-amd64-cgo), const OFDEL ideal-int
+pkg syscall (darwin-amd64-cgo), const OFILL ideal-int
+pkg syscall (darwin-amd64-cgo), const ONLCR ideal-int
+pkg syscall (darwin-amd64-cgo), const ONLRET ideal-int
+pkg syscall (darwin-amd64-cgo), const ONOCR ideal-int
+pkg syscall (darwin-amd64-cgo), const ONOEOT ideal-int
+pkg syscall (darwin-amd64-cgo), const OPOST ideal-int
+pkg syscall (darwin-amd64-cgo), const PARENB ideal-int
+pkg syscall (darwin-amd64-cgo), const PARMRK ideal-int
+pkg syscall (darwin-amd64-cgo), const PARODD ideal-int
+pkg syscall (darwin-amd64-cgo), const PENDIN ideal-int
+pkg syscall (darwin-amd64-cgo), const TCIFLUSH ideal-int
+pkg syscall (darwin-amd64-cgo), const TCIOFLUSH ideal-int
+pkg syscall (darwin-amd64-cgo), const TCOFLUSH ideal-int
+pkg syscall (darwin-amd64-cgo), const TCSAFLUSH ideal-int
+pkg syscall (darwin-amd64-cgo), const TOSTOP ideal-int
+pkg syscall (darwin-amd64-cgo), const VDISCARD ideal-int
+pkg syscall (darwin-amd64-cgo), const VDSUSP ideal-int
+pkg syscall (darwin-amd64-cgo), const VEOF ideal-int
+pkg syscall (darwin-amd64-cgo), const VEOL ideal-int
+pkg syscall (darwin-amd64-cgo), const VEOL2 ideal-int
+pkg syscall (darwin-amd64-cgo), const VERASE ideal-int
+pkg syscall (darwin-amd64-cgo), const VINTR ideal-int
+pkg syscall (darwin-amd64-cgo), const VKILL ideal-int
+pkg syscall (darwin-amd64-cgo), const VLNEXT ideal-int
+pkg syscall (darwin-amd64-cgo), const VMIN ideal-int
+pkg syscall (darwin-amd64-cgo), const VQUIT ideal-int
+pkg syscall (darwin-amd64-cgo), const VREPRINT ideal-int
+pkg syscall (darwin-amd64-cgo), const VSTART ideal-int
+pkg syscall (darwin-amd64-cgo), const VSTATUS ideal-int
+pkg syscall (darwin-amd64-cgo), const VSTOP ideal-int
+pkg syscall (darwin-amd64-cgo), const VSUSP ideal-int
+pkg syscall (darwin-amd64-cgo), const VT0 ideal-int
+pkg syscall (darwin-amd64-cgo), const VT1 ideal-int
+pkg syscall (darwin-amd64-cgo), const VTDLY ideal-int
+pkg syscall (darwin-amd64-cgo), const VTIME ideal-int
+pkg syscall (darwin-amd64-cgo), const VWERASE ideal-int
+pkg syscall (darwin-amd64-cgo), type Termios struct
+pkg syscall (darwin-amd64-cgo), type Termios struct, Cc [20]uint8
+pkg syscall (darwin-amd64-cgo), type Termios struct, Cflag uint64
+pkg syscall (darwin-amd64-cgo), type Termios struct, Iflag uint64
+pkg syscall (darwin-amd64-cgo), type Termios struct, Ispeed uint64
+pkg syscall (darwin-amd64-cgo), type Termios struct, Lflag uint64
+pkg syscall (darwin-amd64-cgo), type Termios struct, Oflag uint64
+pkg syscall (darwin-amd64-cgo), type Termios struct, Ospeed uint64
+pkg syscall (darwin-amd64-cgo), type Termios struct, Pad_cgo_0 [4]byte
+pkg syscall (windows-386), const CREATE_NEW_PROCESS_GROUP ideal-int
+pkg syscall (windows-386), const CTRL_BREAK_EVENT ideal-int
+pkg syscall (windows-386), const CTRL_C_EVENT ideal-int
+pkg syscall (windows-386), func GetCurrentProcessId() uint32
+pkg syscall (windows-386), type SysProcAttr struct, CreationFlags uint32
+pkg syscall (windows-amd64), const CREATE_NEW_PROCESS_GROUP ideal-int
+pkg syscall (windows-amd64), const CTRL_BREAK_EVENT ideal-int
+pkg syscall (windows-amd64), const CTRL_C_EVENT ideal-int
+pkg syscall (windows-amd64), func GetCurrentProcessId() uint32
+pkg syscall (windows-amd64), type SysProcAttr struct, CreationFlags uint32
diff --git a/doc/devel/release.html b/doc/devel/release.html
index dda8239a6..986310610 100644
--- a/doc/devel/release.html
+++ b/doc/devel/release.html
@@ -46,6 +46,14 @@ It also includes several minor code and documentation fixes.
</p>
<p>
+go1.0.2 (released 2012/06/13) was issued to fix two bugs in the implementation
+of maps using struct or array keys:
+<a href="http://code.google.com/p/go/issues/detail?id=3695">issue 3695</a> and
+<a href="http://code.google.com/p/go/issues/detail?id=3573">issue 3573</a>.
+It also includes many minor code and documentation fixes.
+</p>
+
+<p>
See the <a href="http://code.google.com/p/go/source/list?name=release-branch.go1">go1 release branch history</a> for the complete list of changes.
</p>
diff --git a/doc/go_spec.html b/doc/go_spec.html
index 8cb257a59..90acc1704 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -1,6 +1,6 @@
<!--{
"Title": "The Go Programming Language Specification",
- "Subtitle": "Version of March 17, 2012",
+ "Subtitle": "Version of June 4, 2012",
"Path": "/ref/spec"
}-->
@@ -684,6 +684,8 @@ consists of all methods with receiver type <code>T</code>.
The method set of the corresponding pointer type <code>*T</code>
is the set of all methods with receiver <code>*T</code> or <code>T</code>
(that is, it also contains the method set of <code>T</code>).
+Further rules apply to structs containing anonymous fields, as described
+in the section on <a href="#Struct_types">struct types</a>.
Any other type has an empty method set.
In a method set, each method must have a
<a href="#Uniqueness_of_identifiers">unique</a> <a href="#MethodName">method name</a>.
@@ -955,28 +957,39 @@ struct {
</pre>
<p>
-Fields and methods (§<a href="#Method_declarations">Method declarations</a>) of an anonymous field are
-promoted to be ordinary fields and methods of the struct (§<a href="#Selectors">Selectors</a>).
-The following rules apply for a struct type <code>S</code> and
-a type named <code>T</code>:
+A field or <a href="#Method_declarations">method</a> <code>f</code> of an
+anonymous field in a struct <code>x</code> is called <i>promoted</i> if
+<code>x.f</code> is a legal <a href="#Selectors">selector</a> that denotes
+that field or method <code>f</code>.
</p>
-<ul>
- <li>If <code>S</code> contains an anonymous field <code>T</code>, the
- <a href="#Method_sets">method set</a> of <code>S</code> includes the
- method set of <code>T</code>.
- </li>
- <li>If <code>S</code> contains an anonymous field <code>*T</code>, the
- method set of <code>S</code> includes the method set of <code>*T</code>
- (which itself includes the method set of <code>T</code>).
- </li>
+<p>
+Promoted fields act like ordinary fields
+of a struct except that they cannot be used as field names in
+<a href="#Composite_literals">composite literals</a> of the struct.
+</p>
- <li>If <code>S</code> contains an anonymous field <code>T</code> or
- <code>*T</code>, the method set of <code>*S</code> includes the
- method set of <code>*T</code> (which itself includes the method
- set of <code>T</code>).
+<p>
+Given a struct type <code>S</code> and a type named <code>T</code>,
+promoted methods are included in the method set of the struct as follows:
+</p>
+<ul>
+ <li>
+ If <code>S</code> contains an anonymous field <code>T</code>,
+ the <a href="#Method_sets">method sets</a> of <code>S</code>
+ and <code>*S</code> both include promoted methods with receiver
+ <code>T</code>. The method set of <code>*S</code> also
+ includes promoted methods with receiver <code>*T</code>.
+ </li>
+
+ <li>
+ If <code>S</code> contains an anonymous field <code>*T</code>,
+ the method sets of <code>S</code> and <code>*S</code> both
+ include promoted methods with receiver <code>T</code> or
+ <code>*T</code>.
</li>
</ul>
+
<p>
A field declaration may be followed by an optional string literal <i>tag</i>,
which becomes an attribute for all the fields in the corresponding
@@ -3866,7 +3879,11 @@ x, _ = f() // ignore second value returned by f()
In the second form, the number of operands on the left must equal the number
of expressions on the right, each of which must be single-valued, and the
<i>n</i>th expression on the right is assigned to the <i>n</i>th
-operand on the left. The assignment proceeds in two phases.
+operand on the left.
+</p>
+
+<p>
+The assignment proceeds in two phases.
First, the operands of <a href="#Indexes">index expressions</a>
and <a href="#Address_operators">pointer indirections</a>
(including implicit pointer indirections in <a href="#Selectors">selectors</a>)
@@ -3885,13 +3902,20 @@ i, x[i] = 1, 2 // set i = 1, x[0] = 2
i = 0
x[i], i = 2, 1 // set x[0] = 2, i = 1
-x[0], x[0] = 1, 2 // set x[0] = 1, then x[0] = 2 (so x[0] = 2 at end)
+x[0], x[0] = 1, 2 // set x[0] = 1, then x[0] = 2 (so x[0] == 2 at end)
x[1], x[3] = 4, 5 // set x[1] = 4, then panic setting x[3] = 5.
type Point struct { x, y int }
var p *Point
x[2], p.x = 6, 7 // set x[2] = 6, then panic setting p.x = 7
+
+i = 2
+x = []int{3, 5, 7}
+for i, x[i] = range x { // set i, x[2] = 0, x[0]
+ break
+}
+// after this loop, i == 0 and x == []int{3, 5, 3}
</pre>
<p>
diff --git a/doc/install-source.html b/doc/install-source.html
index 080bceb4d..87c187ba8 100644
--- a/doc/install-source.html
+++ b/doc/install-source.html
@@ -170,7 +170,6 @@ ALL TESTS PASSED
Installed Go for linux/amd64 in /home/you/go.
Installed commands in /home/you/go/bin.
*** You need to add /home/you/go/bin to your $PATH. ***
-The compiler is 6g.
</pre>
<p>
diff --git a/doc/install.html b/doc/install.html
index ad3eaf338..b856836ff 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -24,6 +24,32 @@ For information about installing <code>gccgo</code>, see
<a href="/doc/install/gccgo">Setting up and using gccgo</a>.
</p>
+<h2 id="requirements">System requirements</h2>
+<p>
+The <code>gc</code> compiler supports the following operating systems and
+architectures. Please ensure your system meets these requirements before
+proceeding. If your OS or architecture is not on the list, it's possible that
+<code>gccgo</code> might support your setup; see
+<a href="/doc/install/gccgo">Setting up and using gccgo</a> for details.
+</p>
+
+<table class="codetable" frame="border" summary="requirements">
+<tr>
+<th align="middle">Operating system</th>
+<th align="middle">Architectures</th>
+<th align="middle">Notes</th>
+</tr>
+<tr><td colspan="3"><hr></td></tr>
+<tr><td>FreeBSD 7 or later</td> <td>amd64, 386</td> <td>Debian GNU/kFreeBSD not supported</td></tr>
+<tr><td>Linux 2.6.23 or later with glibc</td> <td>amd64, 386, arm</td> <td>CentOS/RHEL 5.x not supported; no binary distribution for ARM yet</tr>
+<tr><td>Mac OS X 10.6/10.7</td> <td>amd64, 386</td> <td>use the gcc<sup>&#8224;</sup> that comes with Xcode</td></tr>
+<tr><td>Windows 2000 or later</td> <td>amd64, 386</td> <td>use mingw gcc<sup>&#8224;</sup>; cygwin or msys is not needed</td></tr>
+</table>
+
+<p>
+<sup>&#8224;</sup><code>gcc</code> is required only if you plan to use <a href="/cmd/cgo">cgo</a>.
+</p>
+
<h2 id="download">Download the Go tools</h2>
<p>
diff --git a/doc/style.css b/doc/style.css
index 7f3384c6c..a0c632098 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -373,6 +373,7 @@ div#blog .read {
.toggleVisible .expanded { display: block; }
table.codetable { margin-left: auto; margin-right: auto; border-style: none; }
+table.codetable td { padding-right: 10px; }
hr { border-style: none; border-top: 1px solid black; }
img.gopher {
diff --git a/doc/talks/go_talk-20091030.pdf b/doc/talks/go_talk-20091030.pdf
new file mode 100644
index 000000000..5139ff2bd
--- /dev/null
+++ b/doc/talks/go_talk-20091030.pdf
Binary files differ
diff --git a/lib/codereview/codereview.cfg b/lib/codereview/codereview.cfg
deleted file mode 100644
index 93b55c0a3..000000000
--- a/lib/codereview/codereview.cfg
+++ /dev/null
@@ -1 +0,0 @@
-defaultcc: golang-dev@googlegroups.com
diff --git a/lib/codereview/codereview.py b/lib/codereview/codereview.py
deleted file mode 100644
index 61e2fd772..000000000
--- a/lib/codereview/codereview.py
+++ /dev/null
@@ -1,3558 +0,0 @@
-# coding=utf-8
-# (The line above is necessary so that I can use 世界 in the
-# *comment* below without Python getting all bent out of shape.)
-
-# Copyright 2007-2009 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-'''Mercurial interface to codereview.appspot.com.
-
-To configure, set the following options in
-your repository's .hg/hgrc file.
-
- [extensions]
- codereview = /path/to/codereview.py
-
- [codereview]
- server = codereview.appspot.com
-
-The server should be running Rietveld; see http://code.google.com/p/rietveld/.
-
-In addition to the new commands, this extension introduces
-the file pattern syntax @nnnnnn, where nnnnnn is a change list
-number, to mean the files included in that change list, which
-must be associated with the current client.
-
-For example, if change 123456 contains the files x.go and y.go,
-"hg diff @123456" is equivalent to"hg diff x.go y.go".
-'''
-
-import sys
-
-if __name__ == "__main__":
- print >>sys.stderr, "This is a Mercurial extension and should not be invoked directly."
- sys.exit(2)
-
-# We require Python 2.6 for the json package.
-if sys.version < '2.6':
- print >>sys.stderr, "The codereview extension requires Python 2.6 or newer."
- print >>sys.stderr, "You are running Python " + sys.version
- sys.exit(2)
-
-import json
-import os
-import re
-import stat
-import subprocess
-import threading
-import time
-
-from mercurial import commands as hg_commands
-from mercurial import util as hg_util
-
-defaultcc = None
-codereview_disabled = None
-real_rollback = None
-releaseBranch = None
-server = "codereview.appspot.com"
-server_url_base = None
-
-#######################################################################
-# Normally I would split this into multiple files, but it simplifies
-# import path headaches to keep it all in one file. Sorry.
-# The different parts of the file are separated by banners like this one.
-
-#######################################################################
-# Helpers
-
-def RelativePath(path, cwd):
- n = len(cwd)
- if path.startswith(cwd) and path[n] == '/':
- return path[n+1:]
- return path
-
-def Sub(l1, l2):
- return [l for l in l1 if l not in l2]
-
-def Add(l1, l2):
- l = l1 + Sub(l2, l1)
- l.sort()
- return l
-
-def Intersect(l1, l2):
- return [l for l in l1 if l in l2]
-
-#######################################################################
-# RE: UNICODE STRING HANDLING
-#
-# Python distinguishes between the str (string of bytes)
-# and unicode (string of code points) types. Most operations
-# work on either one just fine, but some (like regexp matching)
-# require unicode, and others (like write) require str.
-#
-# As befits the language, Python hides the distinction between
-# unicode and str by converting between them silently, but
-# *only* if all the bytes/code points involved are 7-bit ASCII.
-# This means that if you're not careful, your program works
-# fine on "hello, world" and fails on "hello, 世界". And of course,
-# the obvious way to be careful - use static types - is unavailable.
-# So the only way is trial and error to find where to put explicit
-# conversions.
-#
-# Because more functions do implicit conversion to str (string of bytes)
-# than do implicit conversion to unicode (string of code points),
-# the convention in this module is to represent all text as str,
-# converting to unicode only when calling a unicode-only function
-# and then converting back to str as soon as possible.
-
-def typecheck(s, t):
- if type(s) != t:
- raise hg_util.Abort("type check failed: %s has type %s != %s" % (repr(s), type(s), t))
-
-# If we have to pass unicode instead of str, ustr does that conversion clearly.
-def ustr(s):
- typecheck(s, str)
- return s.decode("utf-8")
-
-# Even with those, Mercurial still sometimes turns unicode into str
-# and then tries to use it as ascii. Change Mercurial's default.
-def set_mercurial_encoding_to_utf8():
- from mercurial import encoding
- encoding.encoding = 'utf-8'
-
-set_mercurial_encoding_to_utf8()
-
-# Even with those we still run into problems.
-# I tried to do things by the book but could not convince
-# Mercurial to let me check in a change with UTF-8 in the
-# CL description or author field, no matter how many conversions
-# between str and unicode I inserted and despite changing the
-# default encoding. I'm tired of this game, so set the default
-# encoding for all of Python to 'utf-8', not 'ascii'.
-def default_to_utf8():
- import sys
- stdout, __stdout__ = sys.stdout, sys.__stdout__
- reload(sys) # site.py deleted setdefaultencoding; get it back
- sys.stdout, sys.__stdout__ = stdout, __stdout__
- sys.setdefaultencoding('utf-8')
-
-default_to_utf8()
-
-#######################################################################
-# Status printer for long-running commands
-
-global_status = None
-
-def set_status(s):
- # print >>sys.stderr, "\t", time.asctime(), s
- global global_status
- global_status = s
-
-class StatusThread(threading.Thread):
- def __init__(self):
- threading.Thread.__init__(self)
- def run(self):
- # pause a reasonable amount of time before
- # starting to display status messages, so that
- # most hg commands won't ever see them.
- time.sleep(30)
-
- # now show status every 15 seconds
- while True:
- time.sleep(15 - time.time() % 15)
- s = global_status
- if s is None:
- continue
- if s == "":
- s = "(unknown status)"
- print >>sys.stderr, time.asctime(), s
-
-def start_status_thread():
- t = StatusThread()
- t.setDaemon(True) # allowed to exit if t is still running
- t.start()
-
-#######################################################################
-# Change list parsing.
-#
-# Change lists are stored in .hg/codereview/cl.nnnnnn
-# where nnnnnn is the number assigned by the code review server.
-# Most data about a change list is stored on the code review server
-# too: the description, reviewer, and cc list are all stored there.
-# The only thing in the cl.nnnnnn file is the list of relevant files.
-# Also, the existence of the cl.nnnnnn file marks this repository
-# as the one where the change list lives.
-
-emptydiff = """Index: ~rietveld~placeholder~
-===================================================================
-diff --git a/~rietveld~placeholder~ b/~rietveld~placeholder~
-new file mode 100644
-"""
-
-class CL(object):
- def __init__(self, name):
- typecheck(name, str)
- self.name = name
- self.desc = ''
- self.files = []
- self.reviewer = []
- self.cc = []
- self.url = ''
- self.local = False
- self.web = False
- self.copied_from = None # None means current user
- self.mailed = False
- self.private = False
- self.lgtm = []
-
- def DiskText(self):
- cl = self
- s = ""
- if cl.copied_from:
- s += "Author: " + cl.copied_from + "\n\n"
- if cl.private:
- s += "Private: " + str(self.private) + "\n"
- s += "Mailed: " + str(self.mailed) + "\n"
- s += "Description:\n"
- s += Indent(cl.desc, "\t")
- s += "Files:\n"
- for f in cl.files:
- s += "\t" + f + "\n"
- typecheck(s, str)
- return s
-
- def EditorText(self):
- cl = self
- s = _change_prolog
- s += "\n"
- if cl.copied_from:
- s += "Author: " + cl.copied_from + "\n"
- if cl.url != '':
- s += 'URL: ' + cl.url + ' # cannot edit\n\n'
- if cl.private:
- s += "Private: True\n"
- s += "Reviewer: " + JoinComma(cl.reviewer) + "\n"
- s += "CC: " + JoinComma(cl.cc) + "\n"
- s += "\n"
- s += "Description:\n"
- if cl.desc == '':
- s += "\t<enter description here>\n"
- else:
- s += Indent(cl.desc, "\t")
- s += "\n"
- if cl.local or cl.name == "new":
- s += "Files:\n"
- for f in cl.files:
- s += "\t" + f + "\n"
- s += "\n"
- typecheck(s, str)
- return s
-
- def PendingText(self, quick=False):
- cl = self
- s = cl.name + ":" + "\n"
- s += Indent(cl.desc, "\t")
- s += "\n"
- if cl.copied_from:
- s += "\tAuthor: " + cl.copied_from + "\n"
- if not quick:
- s += "\tReviewer: " + JoinComma(cl.reviewer) + "\n"
- for (who, line) in cl.lgtm:
- s += "\t\t" + who + ": " + line + "\n"
- s += "\tCC: " + JoinComma(cl.cc) + "\n"
- s += "\tFiles:\n"
- for f in cl.files:
- s += "\t\t" + f + "\n"
- typecheck(s, str)
- return s
-
- def Flush(self, ui, repo):
- if self.name == "new":
- self.Upload(ui, repo, gofmt_just_warn=True, creating=True)
- dir = CodeReviewDir(ui, repo)
- path = dir + '/cl.' + self.name
- f = open(path+'!', "w")
- f.write(self.DiskText())
- f.close()
- if sys.platform == "win32" and os.path.isfile(path):
- os.remove(path)
- os.rename(path+'!', path)
- if self.web and not self.copied_from:
- EditDesc(self.name, desc=self.desc,
- reviewers=JoinComma(self.reviewer), cc=JoinComma(self.cc),
- private=self.private)
-
- def Delete(self, ui, repo):
- dir = CodeReviewDir(ui, repo)
- os.unlink(dir + "/cl." + self.name)
-
- def Subject(self):
- s = line1(self.desc)
- if len(s) > 60:
- s = s[0:55] + "..."
- if self.name != "new":
- s = "code review %s: %s" % (self.name, s)
- typecheck(s, str)
- return s
-
- def Upload(self, ui, repo, send_mail=False, gofmt=True, gofmt_just_warn=False, creating=False, quiet=False):
- if not self.files and not creating:
- ui.warn("no files in change list\n")
- if ui.configbool("codereview", "force_gofmt", True) and gofmt:
- CheckFormat(ui, repo, self.files, just_warn=gofmt_just_warn)
- set_status("uploading CL metadata + diffs")
- os.chdir(repo.root)
- form_fields = [
- ("content_upload", "1"),
- ("reviewers", JoinComma(self.reviewer)),
- ("cc", JoinComma(self.cc)),
- ("description", self.desc),
- ("base_hashes", ""),
- ]
-
- if self.name != "new":
- form_fields.append(("issue", self.name))
- vcs = None
- # We do not include files when creating the issue,
- # because we want the patch sets to record the repository
- # and base revision they are diffs against. We use the patch
- # set message for that purpose, but there is no message with
- # the first patch set. Instead the message gets used as the
- # new CL's overall subject. So omit the diffs when creating
- # and then we'll run an immediate upload.
- # This has the effect that every CL begins with an empty "Patch set 1".
- if self.files and not creating:
- vcs = MercurialVCS(upload_options, ui, repo)
- data = vcs.GenerateDiff(self.files)
- files = vcs.GetBaseFiles(data)
- if len(data) > MAX_UPLOAD_SIZE:
- uploaded_diff_file = []
- form_fields.append(("separate_patches", "1"))
- else:
- uploaded_diff_file = [("data", "data.diff", data)]
- else:
- uploaded_diff_file = [("data", "data.diff", emptydiff)]
-
- if vcs and self.name != "new":
- form_fields.append(("subject", "diff -r " + vcs.base_rev + " " + ui.expandpath("default")))
- else:
- # First upload sets the subject for the CL itself.
- form_fields.append(("subject", self.Subject()))
- ctype, body = EncodeMultipartFormData(form_fields, uploaded_diff_file)
- response_body = MySend("/upload", body, content_type=ctype)
- patchset = None
- msg = response_body
- lines = msg.splitlines()
- if len(lines) >= 2:
- msg = lines[0]
- patchset = lines[1].strip()
- patches = [x.split(" ", 1) for x in lines[2:]]
- if response_body.startswith("Issue updated.") and quiet:
- pass
- else:
- ui.status(msg + "\n")
- set_status("uploaded CL metadata + diffs")
- if not response_body.startswith("Issue created.") and not response_body.startswith("Issue updated."):
- raise hg_util.Abort("failed to update issue: " + response_body)
- issue = msg[msg.rfind("/")+1:]
- self.name = issue
- if not self.url:
- self.url = server_url_base + self.name
- if not uploaded_diff_file:
- set_status("uploading patches")
- patches = UploadSeparatePatches(issue, rpc, patchset, data, upload_options)
- if vcs:
- set_status("uploading base files")
- vcs.UploadBaseFiles(issue, rpc, patches, patchset, upload_options, files)
- if send_mail:
- set_status("sending mail")
- MySend("/" + issue + "/mail", payload="")
- self.web = True
- set_status("flushing changes to disk")
- self.Flush(ui, repo)
- return
-
- def Mail(self, ui, repo):
- pmsg = "Hello " + JoinComma(self.reviewer)
- if self.cc:
- pmsg += " (cc: %s)" % (', '.join(self.cc),)
- pmsg += ",\n"
- pmsg += "\n"
- repourl = ui.expandpath("default")
- if not self.mailed:
- pmsg += "I'd like you to review this change to\n" + repourl + "\n"
- else:
- pmsg += "Please take another look.\n"
- typecheck(pmsg, str)
- PostMessage(ui, self.name, pmsg, subject=self.Subject())
- self.mailed = True
- self.Flush(ui, repo)
-
-def GoodCLName(name):
- typecheck(name, str)
- return re.match("^[0-9]+$", name)
-
-def ParseCL(text, name):
- typecheck(text, str)
- typecheck(name, str)
- sname = None
- lineno = 0
- sections = {
- 'Author': '',
- 'Description': '',
- 'Files': '',
- 'URL': '',
- 'Reviewer': '',
- 'CC': '',
- 'Mailed': '',
- 'Private': '',
- }
- for line in text.split('\n'):
- lineno += 1
- line = line.rstrip()
- if line != '' and line[0] == '#':
- continue
- if line == '' or line[0] == ' ' or line[0] == '\t':
- if sname == None and line != '':
- return None, lineno, 'text outside section'
- if sname != None:
- sections[sname] += line + '\n'
- continue
- p = line.find(':')
- if p >= 0:
- s, val = line[:p].strip(), line[p+1:].strip()
- if s in sections:
- sname = s
- if val != '':
- sections[sname] += val + '\n'
- continue
- return None, lineno, 'malformed section header'
-
- for k in sections:
- sections[k] = StripCommon(sections[k]).rstrip()
-
- cl = CL(name)
- if sections['Author']:
- cl.copied_from = sections['Author']
- cl.desc = sections['Description']
- for line in sections['Files'].split('\n'):
- i = line.find('#')
- if i >= 0:
- line = line[0:i].rstrip()
- line = line.strip()
- if line == '':
- continue
- cl.files.append(line)
- cl.reviewer = SplitCommaSpace(sections['Reviewer'])
- cl.cc = SplitCommaSpace(sections['CC'])
- cl.url = sections['URL']
- if sections['Mailed'] != 'False':
- # Odd default, but avoids spurious mailings when
- # reading old CLs that do not have a Mailed: line.
- # CLs created with this update will always have
- # Mailed: False on disk.
- cl.mailed = True
- if sections['Private'] in ('True', 'true', 'Yes', 'yes'):
- cl.private = True
- if cl.desc == '<enter description here>':
- cl.desc = ''
- return cl, 0, ''
-
-def SplitCommaSpace(s):
- typecheck(s, str)
- s = s.strip()
- if s == "":
- return []
- return re.split(", *", s)
-
-def CutDomain(s):
- typecheck(s, str)
- i = s.find('@')
- if i >= 0:
- s = s[0:i]
- return s
-
-def JoinComma(l):
- for s in l:
- typecheck(s, str)
- return ", ".join(l)
-
-def ExceptionDetail():
- s = str(sys.exc_info()[0])
- if s.startswith("<type '") and s.endswith("'>"):
- s = s[7:-2]
- elif s.startswith("<class '") and s.endswith("'>"):
- s = s[8:-2]
- arg = str(sys.exc_info()[1])
- if len(arg) > 0:
- s += ": " + arg
- return s
-
-def IsLocalCL(ui, repo, name):
- return GoodCLName(name) and os.access(CodeReviewDir(ui, repo) + "/cl." + name, 0)
-
-# Load CL from disk and/or the web.
-def LoadCL(ui, repo, name, web=True):
- typecheck(name, str)
- set_status("loading CL " + name)
- if not GoodCLName(name):
- return None, "invalid CL name"
- dir = CodeReviewDir(ui, repo)
- path = dir + "cl." + name
- if os.access(path, 0):
- ff = open(path)
- text = ff.read()
- ff.close()
- cl, lineno, err = ParseCL(text, name)
- if err != "":
- return None, "malformed CL data: "+err
- cl.local = True
- else:
- cl = CL(name)
- if web:
- set_status("getting issue metadata from web")
- d = JSONGet(ui, "/api/" + name + "?messages=true")
- set_status(None)
- if d is None:
- return None, "cannot load CL %s from server" % (name,)
- if 'owner_email' not in d or 'issue' not in d or str(d['issue']) != name:
- return None, "malformed response loading CL data from code review server"
- cl.dict = d
- cl.reviewer = d.get('reviewers', [])
- cl.cc = d.get('cc', [])
- if cl.local and cl.copied_from and cl.desc:
- # local copy of CL written by someone else
- # and we saved a description. use that one,
- # so that committers can edit the description
- # before doing hg submit.
- pass
- else:
- cl.desc = d.get('description', "")
- cl.url = server_url_base + name
- cl.web = True
- cl.private = d.get('private', False) != False
- cl.lgtm = []
- for m in d.get('messages', []):
- if m.get('approval', False) == True:
- who = re.sub('@.*', '', m.get('sender', ''))
- text = re.sub("\n(.|\n)*", '', m.get('text', ''))
- cl.lgtm.append((who, text))
-
- set_status("loaded CL " + name)
- return cl, ''
-
-class LoadCLThread(threading.Thread):
- def __init__(self, ui, repo, dir, f, web):
- threading.Thread.__init__(self)
- self.ui = ui
- self.repo = repo
- self.dir = dir
- self.f = f
- self.web = web
- self.cl = None
- def run(self):
- cl, err = LoadCL(self.ui, self.repo, self.f[3:], web=self.web)
- if err != '':
- self.ui.warn("loading "+self.dir+self.f+": " + err + "\n")
- return
- self.cl = cl
-
-# Load all the CLs from this repository.
-def LoadAllCL(ui, repo, web=True):
- dir = CodeReviewDir(ui, repo)
- m = {}
- files = [f for f in os.listdir(dir) if f.startswith('cl.')]
- if not files:
- return m
- active = []
- first = True
- for f in files:
- t = LoadCLThread(ui, repo, dir, f, web)
- t.start()
- if web and first:
- # first request: wait in case it needs to authenticate
- # otherwise we get lots of user/password prompts
- # running in parallel.
- t.join()
- if t.cl:
- m[t.cl.name] = t.cl
- first = False
- else:
- active.append(t)
- for t in active:
- t.join()
- if t.cl:
- m[t.cl.name] = t.cl
- return m
-
-# Find repository root. On error, ui.warn and return None
-def RepoDir(ui, repo):
- url = repo.url();
- if not url.startswith('file:'):
- ui.warn("repository %s is not in local file system\n" % (url,))
- return None
- url = url[5:]
- if url.endswith('/'):
- url = url[:-1]
- typecheck(url, str)
- return url
-
-# Find (or make) code review directory. On error, ui.warn and return None
-def CodeReviewDir(ui, repo):
- dir = RepoDir(ui, repo)
- if dir == None:
- return None
- dir += '/.hg/codereview/'
- if not os.path.isdir(dir):
- try:
- os.mkdir(dir, 0700)
- except:
- ui.warn('cannot mkdir %s: %s\n' % (dir, ExceptionDetail()))
- return None
- typecheck(dir, str)
- return dir
-
-# Turn leading tabs into spaces, so that the common white space
-# prefix doesn't get confused when people's editors write out
-# some lines with spaces, some with tabs. Only a heuristic
-# (some editors don't use 8 spaces either) but a useful one.
-def TabsToSpaces(line):
- i = 0
- while i < len(line) and line[i] == '\t':
- i += 1
- return ' '*(8*i) + line[i:]
-
-# Strip maximal common leading white space prefix from text
-def StripCommon(text):
- typecheck(text, str)
- ws = None
- for line in text.split('\n'):
- line = line.rstrip()
- if line == '':
- continue
- line = TabsToSpaces(line)
- white = line[:len(line)-len(line.lstrip())]
- if ws == None:
- ws = white
- else:
- common = ''
- for i in range(min(len(white), len(ws))+1):
- if white[0:i] == ws[0:i]:
- common = white[0:i]
- ws = common
- if ws == '':
- break
- if ws == None:
- return text
- t = ''
- for line in text.split('\n'):
- line = line.rstrip()
- line = TabsToSpaces(line)
- if line.startswith(ws):
- line = line[len(ws):]
- if line == '' and t == '':
- continue
- t += line + '\n'
- while len(t) >= 2 and t[-2:] == '\n\n':
- t = t[:-1]
- typecheck(t, str)
- return t
-
-# Indent text with indent.
-def Indent(text, indent):
- typecheck(text, str)
- typecheck(indent, str)
- t = ''
- for line in text.split('\n'):
- t += indent + line + '\n'
- typecheck(t, str)
- return t
-
-# Return the first line of l
-def line1(text):
- typecheck(text, str)
- return text.split('\n')[0]
-
-_change_prolog = """# Change list.
-# Lines beginning with # are ignored.
-# Multi-line values should be indented.
-"""
-
-desc_re = '^(.+: |(tag )?(release|weekly)\.|fix build|undo CL)'
-
-desc_msg = '''Your CL description appears not to use the standard form.
-
-The first line of your change description is conventionally a
-one-line summary of the change, prefixed by the primary affected package,
-and is used as the subject for code review mail; the rest of the description
-elaborates.
-
-Examples:
-
- encoding/rot13: new package
-
- math: add IsInf, IsNaN
-
- net: fix cname in LookupHost
-
- unicode: update to Unicode 5.0.2
-
-'''
-
-def promptyesno(ui, msg):
- return ui.promptchoice(msg, ["&yes", "&no"], 0) == 0
-
-def promptremove(ui, repo, f):
- if promptyesno(ui, "hg remove %s (y/n)?" % (f,)):
- if hg_commands.remove(ui, repo, 'path:'+f) != 0:
- ui.warn("error removing %s" % (f,))
-
-def promptadd(ui, repo, f):
- if promptyesno(ui, "hg add %s (y/n)?" % (f,)):
- if hg_commands.add(ui, repo, 'path:'+f) != 0:
- ui.warn("error adding %s" % (f,))
-
-def EditCL(ui, repo, cl):
- set_status(None) # do not show status
- s = cl.EditorText()
- while True:
- s = ui.edit(s, ui.username())
-
- # We can't trust Mercurial + Python not to die before making the change,
- # so, by popular demand, just scribble the most recent CL edit into
- # $(hg root)/last-change so that if Mercurial does die, people
- # can look there for their work.
- try:
- f = open(repo.root+"/last-change", "w")
- f.write(s)
- f.close()
- except:
- pass
-
- clx, line, err = ParseCL(s, cl.name)
- if err != '':
- if not promptyesno(ui, "error parsing change list: line %d: %s\nre-edit (y/n)?" % (line, err)):
- return "change list not modified"
- continue
-
- # Check description.
- if clx.desc == '':
- if promptyesno(ui, "change list should have a description\nre-edit (y/n)?"):
- continue
- elif re.search('<enter reason for undo>', clx.desc):
- if promptyesno(ui, "change list description omits reason for undo\nre-edit (y/n)?"):
- continue
- elif not re.match(desc_re, clx.desc.split('\n')[0]):
- if promptyesno(ui, desc_msg + "re-edit (y/n)?"):
- continue
-
- # Check file list for files that need to be hg added or hg removed
- # or simply aren't understood.
- pats = ['path:'+f for f in clx.files]
- changed = hg_matchPattern(ui, repo, *pats, modified=True, added=True, removed=True)
- deleted = hg_matchPattern(ui, repo, *pats, deleted=True)
- unknown = hg_matchPattern(ui, repo, *pats, unknown=True)
- ignored = hg_matchPattern(ui, repo, *pats, ignored=True)
- clean = hg_matchPattern(ui, repo, *pats, clean=True)
- files = []
- for f in clx.files:
- if f in changed:
- files.append(f)
- continue
- if f in deleted:
- promptremove(ui, repo, f)
- files.append(f)
- continue
- if f in unknown:
- promptadd(ui, repo, f)
- files.append(f)
- continue
- if f in ignored:
- ui.warn("error: %s is excluded by .hgignore; omitting\n" % (f,))
- continue
- if f in clean:
- ui.warn("warning: %s is listed in the CL but unchanged\n" % (f,))
- files.append(f)
- continue
- p = repo.root + '/' + f
- if os.path.isfile(p):
- ui.warn("warning: %s is a file but not known to hg\n" % (f,))
- files.append(f)
- continue
- if os.path.isdir(p):
- ui.warn("error: %s is a directory, not a file; omitting\n" % (f,))
- continue
- ui.warn("error: %s does not exist; omitting\n" % (f,))
- clx.files = files
-
- cl.desc = clx.desc
- cl.reviewer = clx.reviewer
- cl.cc = clx.cc
- cl.files = clx.files
- cl.private = clx.private
- break
- return ""
-
-# For use by submit, etc. (NOT by change)
-# Get change list number or list of files from command line.
-# If files are given, make a new change list.
-def CommandLineCL(ui, repo, pats, opts, defaultcc=None):
- if len(pats) > 0 and GoodCLName(pats[0]):
- if len(pats) != 1:
- return None, "cannot specify change number and file names"
- if opts.get('message'):
- return None, "cannot use -m with existing CL"
- cl, err = LoadCL(ui, repo, pats[0], web=True)
- if err != "":
- return None, err
- else:
- cl = CL("new")
- cl.local = True
- cl.files = ChangedFiles(ui, repo, pats, taken=Taken(ui, repo))
- if not cl.files:
- return None, "no files changed"
- if opts.get('reviewer'):
- cl.reviewer = Add(cl.reviewer, SplitCommaSpace(opts.get('reviewer')))
- if opts.get('cc'):
- cl.cc = Add(cl.cc, SplitCommaSpace(opts.get('cc')))
- if defaultcc:
- cl.cc = Add(cl.cc, defaultcc)
- if cl.name == "new":
- if opts.get('message'):
- cl.desc = opts.get('message')
- else:
- err = EditCL(ui, repo, cl)
- if err != '':
- return None, err
- return cl, ""
-
-#######################################################################
-# Change list file management
-
-# Return list of changed files in repository that match pats.
-# The patterns came from the command line, so we warn
-# if they have no effect or cannot be understood.
-def ChangedFiles(ui, repo, pats, taken=None):
- taken = taken or {}
- # Run each pattern separately so that we can warn about
- # patterns that didn't do anything useful.
- for p in pats:
- for f in hg_matchPattern(ui, repo, p, unknown=True):
- promptadd(ui, repo, f)
- for f in hg_matchPattern(ui, repo, p, removed=True):
- promptremove(ui, repo, f)
- files = hg_matchPattern(ui, repo, p, modified=True, added=True, removed=True)
- for f in files:
- if f in taken:
- ui.warn("warning: %s already in CL %s\n" % (f, taken[f].name))
- if not files:
- ui.warn("warning: %s did not match any modified files\n" % (p,))
-
- # Again, all at once (eliminates duplicates)
- l = hg_matchPattern(ui, repo, *pats, modified=True, added=True, removed=True)
- l.sort()
- if taken:
- l = Sub(l, taken.keys())
- return l
-
-# Return list of changed files in repository that match pats and still exist.
-def ChangedExistingFiles(ui, repo, pats, opts):
- l = hg_matchPattern(ui, repo, *pats, modified=True, added=True)
- l.sort()
- return l
-
-# Return list of files claimed by existing CLs
-def Taken(ui, repo):
- all = LoadAllCL(ui, repo, web=False)
- taken = {}
- for _, cl in all.items():
- for f in cl.files:
- taken[f] = cl
- return taken
-
-# Return list of changed files that are not claimed by other CLs
-def DefaultFiles(ui, repo, pats):
- return ChangedFiles(ui, repo, pats, taken=Taken(ui, repo))
-
-#######################################################################
-# File format checking.
-
-def CheckFormat(ui, repo, files, just_warn=False):
- set_status("running gofmt")
- CheckGofmt(ui, repo, files, just_warn)
- CheckTabfmt(ui, repo, files, just_warn)
-
-# Check that gofmt run on the list of files does not change them
-def CheckGofmt(ui, repo, files, just_warn):
- files = gofmt_required(files)
- if not files:
- return
- cwd = os.getcwd()
- files = [RelativePath(repo.root + '/' + f, cwd) for f in files]
- files = [f for f in files if os.access(f, 0)]
- if not files:
- return
- try:
- cmd = subprocess.Popen(["gofmt", "-l"] + files, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=sys.platform != "win32")
- cmd.stdin.close()
- except:
- raise hg_util.Abort("gofmt: " + ExceptionDetail())
- data = cmd.stdout.read()
- errors = cmd.stderr.read()
- cmd.wait()
- set_status("done with gofmt")
- if len(errors) > 0:
- ui.warn("gofmt errors:\n" + errors.rstrip() + "\n")
- return
- if len(data) > 0:
- msg = "gofmt needs to format these files (run hg gofmt):\n" + Indent(data, "\t").rstrip()
- if just_warn:
- ui.warn("warning: " + msg + "\n")
- else:
- raise hg_util.Abort(msg)
- return
-
-# Check that *.[chys] files indent using tabs.
-def CheckTabfmt(ui, repo, files, just_warn):
- files = [f for f in files if f.startswith('src/') and re.search(r"\.[chys]$", f) and not re.search(r"\.tab\.[ch]$", f)]
- if not files:
- return
- cwd = os.getcwd()
- files = [RelativePath(repo.root + '/' + f, cwd) for f in files]
- files = [f for f in files if os.access(f, 0)]
- badfiles = []
- for f in files:
- try:
- for line in open(f, 'r'):
- # Four leading spaces is enough to complain about,
- # except that some Plan 9 code uses four spaces as the label indent,
- # so allow that.
- if line.startswith(' ') and not re.match(' [A-Za-z0-9_]+:', line):
- badfiles.append(f)
- break
- except:
- # ignore cannot open file, etc.
- pass
- if len(badfiles) > 0:
- msg = "these files use spaces for indentation (use tabs instead):\n\t" + "\n\t".join(badfiles)
- if just_warn:
- ui.warn("warning: " + msg + "\n")
- else:
- raise hg_util.Abort(msg)
- return
-
-#######################################################################
-# CONTRIBUTORS file parsing
-
-contributorsCache = None
-contributorsURL = None
-
-def ReadContributors(ui, repo):
- global contributorsCache
- if contributorsCache is not None:
- return contributorsCache
-
- try:
- if contributorsURL is not None:
- opening = contributorsURL
- f = urllib2.urlopen(contributorsURL)
- else:
- opening = repo.root + '/CONTRIBUTORS'
- f = open(repo.root + '/CONTRIBUTORS', 'r')
- except:
- ui.write("warning: cannot open %s: %s\n" % (opening, ExceptionDetail()))
- return
-
- contributors = {}
- for line in f:
- # CONTRIBUTORS is a list of lines like:
- # Person <email>
- # Person <email> <alt-email>
- # The first email address is the one used in commit logs.
- if line.startswith('#'):
- continue
- m = re.match(r"([^<>]+\S)\s+(<[^<>\s]+>)((\s+<[^<>\s]+>)*)\s*$", line)
- if m:
- name = m.group(1)
- email = m.group(2)[1:-1]
- contributors[email.lower()] = (name, email)
- for extra in m.group(3).split():
- contributors[extra[1:-1].lower()] = (name, email)
-
- contributorsCache = contributors
- return contributors
-
-def CheckContributor(ui, repo, user=None):
- set_status("checking CONTRIBUTORS file")
- user, userline = FindContributor(ui, repo, user, warn=False)
- if not userline:
- raise hg_util.Abort("cannot find %s in CONTRIBUTORS" % (user,))
- return userline
-
-def FindContributor(ui, repo, user=None, warn=True):
- if not user:
- user = ui.config("ui", "username")
- if not user:
- raise hg_util.Abort("[ui] username is not configured in .hgrc")
- user = user.lower()
- m = re.match(r".*<(.*)>", user)
- if m:
- user = m.group(1)
-
- contributors = ReadContributors(ui, repo)
- if user not in contributors:
- if warn:
- ui.warn("warning: cannot find %s in CONTRIBUTORS\n" % (user,))
- return user, None
-
- user, email = contributors[user]
- return email, "%s <%s>" % (user, email)
-
-#######################################################################
-# Mercurial helper functions.
-# Read http://mercurial.selenic.com/wiki/MercurialApi before writing any of these.
-# We use the ui.pushbuffer/ui.popbuffer + hg_commands.xxx tricks for all interaction
-# with Mercurial. It has proved the most stable as they make changes.
-
-hgversion = hg_util.version()
-
-# We require Mercurial 1.9 and suggest Mercurial 2.0.
-# The details of the scmutil package changed then,
-# so allowing earlier versions would require extra band-aids below.
-# Ubuntu 11.10 ships with Mercurial 1.9.1 as the default version.
-hg_required = "1.9"
-hg_suggested = "2.0"
-
-old_message = """
-
-The code review extension requires Mercurial """+hg_required+""" or newer.
-You are using Mercurial """+hgversion+""".
-
-To install a new Mercurial, use
-
- sudo easy_install mercurial=="""+hg_suggested+"""
-
-or visit http://mercurial.selenic.com/downloads/.
-"""
-
-linux_message = """
-You may need to clear your current Mercurial installation by running:
-
- sudo apt-get remove mercurial mercurial-common
- sudo rm -rf /etc/mercurial
-"""
-
-if hgversion < hg_required:
- msg = old_message
- if os.access("/etc/mercurial", 0):
- msg += linux_message
- raise hg_util.Abort(msg)
-
-from mercurial.hg import clean as hg_clean
-from mercurial import cmdutil as hg_cmdutil
-from mercurial import error as hg_error
-from mercurial import match as hg_match
-from mercurial import node as hg_node
-
-class uiwrap(object):
- def __init__(self, ui):
- self.ui = ui
- ui.pushbuffer()
- self.oldQuiet = ui.quiet
- ui.quiet = True
- self.oldVerbose = ui.verbose
- ui.verbose = False
- def output(self):
- ui = self.ui
- ui.quiet = self.oldQuiet
- ui.verbose = self.oldVerbose
- return ui.popbuffer()
-
-def to_slash(path):
- if sys.platform == "win32":
- return path.replace('\\', '/')
- return path
-
-def hg_matchPattern(ui, repo, *pats, **opts):
- w = uiwrap(ui)
- hg_commands.status(ui, repo, *pats, **opts)
- text = w.output()
- ret = []
- prefix = to_slash(os.path.realpath(repo.root))+'/'
- for line in text.split('\n'):
- f = line.split()
- if len(f) > 1:
- if len(pats) > 0:
- # Given patterns, Mercurial shows relative to cwd
- p = to_slash(os.path.realpath(f[1]))
- if not p.startswith(prefix):
- print >>sys.stderr, "File %s not in repo root %s.\n" % (p, prefix)
- else:
- ret.append(p[len(prefix):])
- else:
- # Without patterns, Mercurial shows relative to root (what we want)
- ret.append(to_slash(f[1]))
- return ret
-
-def hg_heads(ui, repo):
- w = uiwrap(ui)
- hg_commands.heads(ui, repo)
- return w.output()
-
-noise = [
- "",
- "resolving manifests",
- "searching for changes",
- "couldn't find merge tool hgmerge",
- "adding changesets",
- "adding manifests",
- "adding file changes",
- "all local heads known remotely",
-]
-
-def isNoise(line):
- line = str(line)
- for x in noise:
- if line == x:
- return True
- return False
-
-def hg_incoming(ui, repo):
- w = uiwrap(ui)
- ret = hg_commands.incoming(ui, repo, force=False, bundle="")
- if ret and ret != 1:
- raise hg_util.Abort(ret)
- return w.output()
-
-def hg_log(ui, repo, **opts):
- for k in ['date', 'keyword', 'rev', 'user']:
- if not opts.has_key(k):
- opts[k] = ""
- w = uiwrap(ui)
- ret = hg_commands.log(ui, repo, **opts)
- if ret:
- raise hg_util.Abort(ret)
- return w.output()
-
-def hg_outgoing(ui, repo, **opts):
- w = uiwrap(ui)
- ret = hg_commands.outgoing(ui, repo, **opts)
- if ret and ret != 1:
- raise hg_util.Abort(ret)
- return w.output()
-
-def hg_pull(ui, repo, **opts):
- w = uiwrap(ui)
- ui.quiet = False
- ui.verbose = True # for file list
- err = hg_commands.pull(ui, repo, **opts)
- for line in w.output().split('\n'):
- if isNoise(line):
- continue
- if line.startswith('moving '):
- line = 'mv ' + line[len('moving '):]
- if line.startswith('getting ') and line.find(' to ') >= 0:
- line = 'mv ' + line[len('getting '):]
- if line.startswith('getting '):
- line = '+ ' + line[len('getting '):]
- if line.startswith('removing '):
- line = '- ' + line[len('removing '):]
- ui.write(line + '\n')
- return err
-
-def hg_push(ui, repo, **opts):
- w = uiwrap(ui)
- ui.quiet = False
- ui.verbose = True
- err = hg_commands.push(ui, repo, **opts)
- for line in w.output().split('\n'):
- if not isNoise(line):
- ui.write(line + '\n')
- return err
-
-def hg_commit(ui, repo, *pats, **opts):
- return hg_commands.commit(ui, repo, *pats, **opts)
-
-#######################################################################
-# Mercurial precommit hook to disable commit except through this interface.
-
-commit_okay = False
-
-def precommithook(ui, repo, **opts):
- if commit_okay:
- return False # False means okay.
- ui.write("\ncodereview extension enabled; use mail, upload, or submit instead of commit\n\n")
- return True
-
-#######################################################################
-# @clnumber file pattern support
-
-# We replace scmutil.match with the MatchAt wrapper to add the @clnumber pattern.
-
-match_repo = None
-match_ui = None
-match_orig = None
-
-def InstallMatch(ui, repo):
- global match_repo
- global match_ui
- global match_orig
-
- match_ui = ui
- match_repo = repo
-
- from mercurial import scmutil
- match_orig = scmutil.match
- scmutil.match = MatchAt
-
-def MatchAt(ctx, pats=None, opts=None, globbed=False, default='relpath'):
- taken = []
- files = []
- pats = pats or []
- opts = opts or {}
-
- for p in pats:
- if p.startswith('@'):
- taken.append(p)
- clname = p[1:]
- if clname == "default":
- files = DefaultFiles(match_ui, match_repo, [])
- else:
- if not GoodCLName(clname):
- raise hg_util.Abort("invalid CL name " + clname)
- cl, err = LoadCL(match_repo.ui, match_repo, clname, web=False)
- if err != '':
- raise hg_util.Abort("loading CL " + clname + ": " + err)
- if not cl.files:
- raise hg_util.Abort("no files in CL " + clname)
- files = Add(files, cl.files)
- pats = Sub(pats, taken) + ['path:'+f for f in files]
-
- # work-around for http://selenic.com/hg/rev/785bbc8634f8
- if not hasattr(ctx, 'match'):
- ctx = ctx[None]
- return match_orig(ctx, pats=pats, opts=opts, globbed=globbed, default=default)
-
-#######################################################################
-# Commands added by code review extension.
-
-# As of Mercurial 2.1 the commands are all required to return integer
-# exit codes, whereas earlier versions allowed returning arbitrary strings
-# to be printed as errors. We wrap the old functions to make sure we
-# always return integer exit codes now. Otherwise Mercurial dies
-# with a TypeError traceback (unsupported operand type(s) for &: 'str' and 'int').
-# Introduce a Python decorator to convert old functions to the new
-# stricter convention.
-
-def hgcommand(f):
- def wrapped(ui, repo, *pats, **opts):
- err = f(ui, repo, *pats, **opts)
- if type(err) is int:
- return err
- if not err:
- return 0
- raise hg_util.Abort(err)
- return wrapped
-
-#######################################################################
-# hg change
-
-@hgcommand
-def change(ui, repo, *pats, **opts):
- """create, edit or delete a change list
-
- Create, edit or delete a change list.
- A change list is a group of files to be reviewed and submitted together,
- plus a textual description of the change.
- Change lists are referred to by simple alphanumeric names.
-
- Changes must be reviewed before they can be submitted.
-
- In the absence of options, the change command opens the
- change list for editing in the default editor.
-
- Deleting a change with the -d or -D flag does not affect
- the contents of the files listed in that change. To revert
- the files listed in a change, use
-
- hg revert @123456
-
- before running hg change -d 123456.
- """
-
- if codereview_disabled:
- return codereview_disabled
-
- dirty = {}
- if len(pats) > 0 and GoodCLName(pats[0]):
- name = pats[0]
- if len(pats) != 1:
- return "cannot specify CL name and file patterns"
- pats = pats[1:]
- cl, err = LoadCL(ui, repo, name, web=True)
- if err != '':
- return err
- if not cl.local and (opts["stdin"] or not opts["stdout"]):
- return "cannot change non-local CL " + name
- else:
- name = "new"
- cl = CL("new")
- if repo[None].branch() != "default":
- return "cannot create CL outside default branch"
- dirty[cl] = True
- files = ChangedFiles(ui, repo, pats, taken=Taken(ui, repo))
-
- if opts["delete"] or opts["deletelocal"]:
- if opts["delete"] and opts["deletelocal"]:
- return "cannot use -d and -D together"
- flag = "-d"
- if opts["deletelocal"]:
- flag = "-D"
- if name == "new":
- return "cannot use "+flag+" with file patterns"
- if opts["stdin"] or opts["stdout"]:
- return "cannot use "+flag+" with -i or -o"
- if not cl.local:
- return "cannot change non-local CL " + name
- if opts["delete"]:
- if cl.copied_from:
- return "original author must delete CL; hg change -D will remove locally"
- PostMessage(ui, cl.name, "*** Abandoned ***", send_mail=cl.mailed)
- EditDesc(cl.name, closed=True, private=cl.private)
- cl.Delete(ui, repo)
- return
-
- if opts["stdin"]:
- s = sys.stdin.read()
- clx, line, err = ParseCL(s, name)
- if err != '':
- return "error parsing change list: line %d: %s" % (line, err)
- if clx.desc is not None:
- cl.desc = clx.desc;
- dirty[cl] = True
- if clx.reviewer is not None:
- cl.reviewer = clx.reviewer
- dirty[cl] = True
- if clx.cc is not None:
- cl.cc = clx.cc
- dirty[cl] = True
- if clx.files is not None:
- cl.files = clx.files
- dirty[cl] = True
- if clx.private != cl.private:
- cl.private = clx.private
- dirty[cl] = True
-
- if not opts["stdin"] and not opts["stdout"]:
- if name == "new":
- cl.files = files
- err = EditCL(ui, repo, cl)
- if err != "":
- return err
- dirty[cl] = True
-
- for d, _ in dirty.items():
- name = d.name
- d.Flush(ui, repo)
- if name == "new":
- d.Upload(ui, repo, quiet=True)
-
- if opts["stdout"]:
- ui.write(cl.EditorText())
- elif opts["pending"]:
- ui.write(cl.PendingText())
- elif name == "new":
- if ui.quiet:
- ui.write(cl.name)
- else:
- ui.write("CL created: " + cl.url + "\n")
- return
-
-#######################################################################
-# hg code-login (broken?)
-
-@hgcommand
-def code_login(ui, repo, **opts):
- """log in to code review server
-
- Logs in to the code review server, saving a cookie in
- a file in your home directory.
- """
- if codereview_disabled:
- return codereview_disabled
-
- MySend(None)
-
-#######################################################################
-# hg clpatch / undo / release-apply / download
-# All concerned with applying or unapplying patches to the repository.
-
-@hgcommand
-def clpatch(ui, repo, clname, **opts):
- """import a patch from the code review server
-
- Imports a patch from the code review server into the local client.
- If the local client has already modified any of the files that the
- patch modifies, this command will refuse to apply the patch.
-
- Submitting an imported patch will keep the original author's
- name as the Author: line but add your own name to a Committer: line.
- """
- if repo[None].branch() != "default":
- return "cannot run hg clpatch outside default branch"
- return clpatch_or_undo(ui, repo, clname, opts, mode="clpatch")
-
-@hgcommand
-def undo(ui, repo, clname, **opts):
- """undo the effect of a CL
-
- Creates a new CL that undoes an earlier CL.
- After creating the CL, opens the CL text for editing so that
- you can add the reason for the undo to the description.
- """
- if repo[None].branch() != "default":
- return "cannot run hg undo outside default branch"
- return clpatch_or_undo(ui, repo, clname, opts, mode="undo")
-
-@hgcommand
-def release_apply(ui, repo, clname, **opts):
- """apply a CL to the release branch
-
- Creates a new CL copying a previously committed change
- from the main branch to the release branch.
- The current client must either be clean or already be in
- the release branch.
-
- The release branch must be created by starting with a
- clean client, disabling the code review plugin, and running:
-
- hg update weekly.YYYY-MM-DD
- hg branch release-branch.rNN
- hg commit -m 'create release-branch.rNN'
- hg push --new-branch
-
- Then re-enable the code review plugin.
-
- People can test the release branch by running
-
- hg update release-branch.rNN
-
- in a clean client. To return to the normal tree,
-
- hg update default
-
- Move changes since the weekly into the release branch
- using hg release-apply followed by the usual code review
- process and hg submit.
-
- When it comes time to tag the release, record the
- final long-form tag of the release-branch.rNN
- in the *default* branch's .hgtags file. That is, run
-
- hg update default
-
- and then edit .hgtags as you would for a weekly.
-
- """
- c = repo[None]
- if not releaseBranch:
- return "no active release branches"
- if c.branch() != releaseBranch:
- if c.modified() or c.added() or c.removed():
- raise hg_util.Abort("uncommitted local changes - cannot switch branches")
- err = hg_clean(repo, releaseBranch)
- if err:
- return err
- try:
- err = clpatch_or_undo(ui, repo, clname, opts, mode="backport")
- if err:
- raise hg_util.Abort(err)
- except Exception, e:
- hg_clean(repo, "default")
- raise e
- return None
-
-def rev2clname(rev):
- # Extract CL name from revision description.
- # The last line in the description that is a codereview URL is the real one.
- # Earlier lines might be part of the user-written description.
- all = re.findall('(?m)^http://codereview.appspot.com/([0-9]+)$', rev.description())
- if len(all) > 0:
- return all[-1]
- return ""
-
-undoHeader = """undo CL %s / %s
-
-<enter reason for undo>
-
-««« original CL description
-"""
-
-undoFooter = """
-»»»
-"""
-
-backportHeader = """[%s] %s
-
-««« CL %s / %s
-"""
-
-backportFooter = """
-»»»
-"""
-
-# Implementation of clpatch/undo.
-def clpatch_or_undo(ui, repo, clname, opts, mode):
- if codereview_disabled:
- return codereview_disabled
-
- if mode == "undo" or mode == "backport":
- # Find revision in Mercurial repository.
- # Assume CL number is 7+ decimal digits.
- # Otherwise is either change log sequence number (fewer decimal digits),
- # hexadecimal hash, or tag name.
- # Mercurial will fall over long before the change log
- # sequence numbers get to be 7 digits long.
- if re.match('^[0-9]{7,}$', clname):
- found = False
- for r in hg_log(ui, repo, keyword="codereview.appspot.com/"+clname, limit=100, template="{node}\n").split():
- rev = repo[r]
- # Last line with a code review URL is the actual review URL.
- # Earlier ones might be part of the CL description.
- n = rev2clname(rev)
- if n == clname:
- found = True
- break
- if not found:
- return "cannot find CL %s in local repository" % clname
- else:
- rev = repo[clname]
- if not rev:
- return "unknown revision %s" % clname
- clname = rev2clname(rev)
- if clname == "":
- return "cannot find CL name in revision description"
-
- # Create fresh CL and start with patch that would reverse the change.
- vers = hg_node.short(rev.node())
- cl = CL("new")
- desc = str(rev.description())
- if mode == "undo":
- cl.desc = (undoHeader % (clname, vers)) + desc + undoFooter
- else:
- cl.desc = (backportHeader % (releaseBranch, line1(desc), clname, vers)) + desc + undoFooter
- v1 = vers
- v0 = hg_node.short(rev.parents()[0].node())
- if mode == "undo":
- arg = v1 + ":" + v0
- else:
- vers = v0
- arg = v0 + ":" + v1
- patch = RunShell(["hg", "diff", "--git", "-r", arg])
-
- else: # clpatch
- cl, vers, patch, err = DownloadCL(ui, repo, clname)
- if err != "":
- return err
- if patch == emptydiff:
- return "codereview issue %s has no diff" % clname
-
- # find current hg version (hg identify)
- ctx = repo[None]
- parents = ctx.parents()
- id = '+'.join([hg_node.short(p.node()) for p in parents])
-
- # if version does not match the patch version,
- # try to update the patch line numbers.
- if vers != "" and id != vers:
- # "vers in repo" gives the wrong answer
- # on some versions of Mercurial. Instead, do the actual
- # lookup and catch the exception.
- try:
- repo[vers].description()
- except:
- return "local repository is out of date; sync to get %s" % (vers)
- patch1, err = portPatch(repo, patch, vers, id)
- if err != "":
- if not opts["ignore_hgpatch_failure"]:
- return "codereview issue %s is out of date: %s (%s->%s)" % (clname, err, vers, id)
- else:
- patch = patch1
- argv = ["hgpatch"]
- if opts["no_incoming"] or mode == "backport":
- argv += ["--checksync=false"]
- try:
- cmd = subprocess.Popen(argv, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, close_fds=sys.platform != "win32")
- except:
- return "hgpatch: " + ExceptionDetail() + "\nInstall hgpatch with:\n$ go get code.google.com/p/go.codereview/cmd/hgpatch\n"
-
- out, err = cmd.communicate(patch)
- if cmd.returncode != 0 and not opts["ignore_hgpatch_failure"]:
- return "hgpatch failed"
- cl.local = True
- cl.files = out.strip().split()
- if not cl.files and not opts["ignore_hgpatch_failure"]:
- return "codereview issue %s has no changed files" % clname
- files = ChangedFiles(ui, repo, [])
- extra = Sub(cl.files, files)
- if extra:
- ui.warn("warning: these files were listed in the patch but not changed:\n\t" + "\n\t".join(extra) + "\n")
- cl.Flush(ui, repo)
- if mode == "undo":
- err = EditCL(ui, repo, cl)
- if err != "":
- return "CL created, but error editing: " + err
- cl.Flush(ui, repo)
- else:
- ui.write(cl.PendingText() + "\n")
-
-# portPatch rewrites patch from being a patch against
-# oldver to being a patch against newver.
-def portPatch(repo, patch, oldver, newver):
- lines = patch.splitlines(True) # True = keep \n
- delta = None
- for i in range(len(lines)):
- line = lines[i]
- if line.startswith('--- a/'):
- file = line[6:-1]
- delta = fileDeltas(repo, file, oldver, newver)
- if not delta or not line.startswith('@@ '):
- continue
- # @@ -x,y +z,w @@ means the patch chunk replaces
- # the original file's line numbers x up to x+y with the
- # line numbers z up to z+w in the new file.
- # Find the delta from x in the original to the same
- # line in the current version and add that delta to both
- # x and z.
- m = re.match('@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@', line)
- if not m:
- return None, "error parsing patch line numbers"
- n1, len1, n2, len2 = int(m.group(1)), int(m.group(2)), int(m.group(3)), int(m.group(4))
- d, err = lineDelta(delta, n1, len1)
- if err != "":
- return "", err
- n1 += d
- n2 += d
- lines[i] = "@@ -%d,%d +%d,%d @@\n" % (n1, len1, n2, len2)
-
- newpatch = ''.join(lines)
- return newpatch, ""
-
-# fileDelta returns the line number deltas for the given file's
-# changes from oldver to newver.
-# The deltas are a list of (n, len, newdelta) triples that say
-# lines [n, n+len) were modified, and after that range the
-# line numbers are +newdelta from what they were before.
-def fileDeltas(repo, file, oldver, newver):
- cmd = ["hg", "diff", "--git", "-r", oldver + ":" + newver, "path:" + file]
- data = RunShell(cmd, silent_ok=True)
- deltas = []
- for line in data.splitlines():
- m = re.match('@@ -([0-9]+),([0-9]+) \+([0-9]+),([0-9]+) @@', line)
- if not m:
- continue
- n1, len1, n2, len2 = int(m.group(1)), int(m.group(2)), int(m.group(3)), int(m.group(4))
- deltas.append((n1, len1, n2+len2-(n1+len1)))
- return deltas
-
-# lineDelta finds the appropriate line number delta to apply to the lines [n, n+len).
-# It returns an error if those lines were rewritten by the patch.
-def lineDelta(deltas, n, len):
- d = 0
- for (old, oldlen, newdelta) in deltas:
- if old >= n+len:
- break
- if old+len > n:
- return 0, "patch and recent changes conflict"
- d = newdelta
- return d, ""
-
-@hgcommand
-def download(ui, repo, clname, **opts):
- """download a change from the code review server
-
- Download prints a description of the given change list
- followed by its diff, downloaded from the code review server.
- """
- if codereview_disabled:
- return codereview_disabled
-
- cl, vers, patch, err = DownloadCL(ui, repo, clname)
- if err != "":
- return err
- ui.write(cl.EditorText() + "\n")
- ui.write(patch + "\n")
- return
-
-#######################################################################
-# hg file
-
-@hgcommand
-def file(ui, repo, clname, pat, *pats, **opts):
- """assign files to or remove files from a change list
-
- Assign files to or (with -d) remove files from a change list.
-
- The -d option only removes files from the change list.
- It does not edit them or remove them from the repository.
- """
- if codereview_disabled:
- return codereview_disabled
-
- pats = tuple([pat] + list(pats))
- if not GoodCLName(clname):
- return "invalid CL name " + clname
-
- dirty = {}
- cl, err = LoadCL(ui, repo, clname, web=False)
- if err != '':
- return err
- if not cl.local:
- return "cannot change non-local CL " + clname
-
- files = ChangedFiles(ui, repo, pats)
-
- if opts["delete"]:
- oldfiles = Intersect(files, cl.files)
- if oldfiles:
- if not ui.quiet:
- ui.status("# Removing files from CL. To undo:\n")
- ui.status("# cd %s\n" % (repo.root))
- for f in oldfiles:
- ui.status("# hg file %s %s\n" % (cl.name, f))
- cl.files = Sub(cl.files, oldfiles)
- cl.Flush(ui, repo)
- else:
- ui.status("no such files in CL")
- return
-
- if not files:
- return "no such modified files"
-
- files = Sub(files, cl.files)
- taken = Taken(ui, repo)
- warned = False
- for f in files:
- if f in taken:
- if not warned and not ui.quiet:
- ui.status("# Taking files from other CLs. To undo:\n")
- ui.status("# cd %s\n" % (repo.root))
- warned = True
- ocl = taken[f]
- if not ui.quiet:
- ui.status("# hg file %s %s\n" % (ocl.name, f))
- if ocl not in dirty:
- ocl.files = Sub(ocl.files, files)
- dirty[ocl] = True
- cl.files = Add(cl.files, files)
- dirty[cl] = True
- for d, _ in dirty.items():
- d.Flush(ui, repo)
- return
-
-#######################################################################
-# hg gofmt
-
-@hgcommand
-def gofmt(ui, repo, *pats, **opts):
- """apply gofmt to modified files
-
- Applies gofmt to the modified files in the repository that match
- the given patterns.
- """
- if codereview_disabled:
- return codereview_disabled
-
- files = ChangedExistingFiles(ui, repo, pats, opts)
- files = gofmt_required(files)
- if not files:
- return "no modified go files"
- cwd = os.getcwd()
- files = [RelativePath(repo.root + '/' + f, cwd) for f in files]
- try:
- cmd = ["gofmt", "-l"]
- if not opts["list"]:
- cmd += ["-w"]
- if os.spawnvp(os.P_WAIT, "gofmt", cmd + files) != 0:
- raise hg_util.Abort("gofmt did not exit cleanly")
- except hg_error.Abort, e:
- raise
- except:
- raise hg_util.Abort("gofmt: " + ExceptionDetail())
- return
-
-def gofmt_required(files):
- return [f for f in files if (not f.startswith('test/') or f.startswith('test/bench/')) and f.endswith('.go')]
-
-#######################################################################
-# hg mail
-
-@hgcommand
-def mail(ui, repo, *pats, **opts):
- """mail a change for review
-
- Uploads a patch to the code review server and then sends mail
- to the reviewer and CC list asking for a review.
- """
- if codereview_disabled:
- return codereview_disabled
-
- cl, err = CommandLineCL(ui, repo, pats, opts, defaultcc=defaultcc)
- if err != "":
- return err
- cl.Upload(ui, repo, gofmt_just_warn=True)
- if not cl.reviewer:
- # If no reviewer is listed, assign the review to defaultcc.
- # This makes sure that it appears in the
- # codereview.appspot.com/user/defaultcc
- # page, so that it doesn't get dropped on the floor.
- if not defaultcc:
- return "no reviewers listed in CL"
- cl.cc = Sub(cl.cc, defaultcc)
- cl.reviewer = defaultcc
- cl.Flush(ui, repo)
-
- if cl.files == []:
- return "no changed files, not sending mail"
-
- cl.Mail(ui, repo)
-
-#######################################################################
-# hg p / hg pq / hg ps / hg pending
-
-@hgcommand
-def ps(ui, repo, *pats, **opts):
- """alias for hg p --short
- """
- opts['short'] = True
- return pending(ui, repo, *pats, **opts)
-
-@hgcommand
-def pq(ui, repo, *pats, **opts):
- """alias for hg p --quick
- """
- opts['quick'] = True
- return pending(ui, repo, *pats, **opts)
-
-@hgcommand
-def pending(ui, repo, *pats, **opts):
- """show pending changes
-
- Lists pending changes followed by a list of unassigned but modified files.
- """
- if codereview_disabled:
- return codereview_disabled
-
- quick = opts.get('quick', False)
- short = opts.get('short', False)
- m = LoadAllCL(ui, repo, web=not quick and not short)
- names = m.keys()
- names.sort()
- for name in names:
- cl = m[name]
- if short:
- ui.write(name + "\t" + line1(cl.desc) + "\n")
- else:
- ui.write(cl.PendingText(quick=quick) + "\n")
-
- if short:
- return
- files = DefaultFiles(ui, repo, [])
- if len(files) > 0:
- s = "Changed files not in any CL:\n"
- for f in files:
- s += "\t" + f + "\n"
- ui.write(s)
-
-#######################################################################
-# hg submit
-
-def need_sync():
- raise hg_util.Abort("local repository out of date; must sync before submit")
-
-@hgcommand
-def submit(ui, repo, *pats, **opts):
- """submit change to remote repository
-
- Submits change to remote repository.
- Bails out if the local repository is not in sync with the remote one.
- """
- if codereview_disabled:
- return codereview_disabled
-
- # We already called this on startup but sometimes Mercurial forgets.
- set_mercurial_encoding_to_utf8()
-
- if not opts["no_incoming"] and hg_incoming(ui, repo):
- need_sync()
-
- cl, err = CommandLineCL(ui, repo, pats, opts, defaultcc=defaultcc)
- if err != "":
- return err
-
- user = None
- if cl.copied_from:
- user = cl.copied_from
- userline = CheckContributor(ui, repo, user)
- typecheck(userline, str)
-
- about = ""
- if cl.reviewer:
- about += "R=" + JoinComma([CutDomain(s) for s in cl.reviewer]) + "\n"
- if opts.get('tbr'):
- tbr = SplitCommaSpace(opts.get('tbr'))
- cl.reviewer = Add(cl.reviewer, tbr)
- about += "TBR=" + JoinComma([CutDomain(s) for s in tbr]) + "\n"
- if cl.cc:
- about += "CC=" + JoinComma([CutDomain(s) for s in cl.cc]) + "\n"
-
- if not cl.reviewer:
- return "no reviewers listed in CL"
-
- if not cl.local:
- return "cannot submit non-local CL"
-
- # upload, to sync current patch and also get change number if CL is new.
- if not cl.copied_from:
- cl.Upload(ui, repo, gofmt_just_warn=True)
-
- # check gofmt for real; allowed upload to warn in order to save CL.
- cl.Flush(ui, repo)
- CheckFormat(ui, repo, cl.files)
-
- about += "%s%s\n" % (server_url_base, cl.name)
-
- if cl.copied_from:
- about += "\nCommitter: " + CheckContributor(ui, repo, None) + "\n"
- typecheck(about, str)
-
- if not cl.mailed and not cl.copied_from: # in case this is TBR
- cl.Mail(ui, repo)
-
- # submit changes locally
- message = cl.desc.rstrip() + "\n\n" + about
- typecheck(message, str)
-
- set_status("pushing " + cl.name + " to remote server")
-
- if hg_outgoing(ui, repo):
- raise hg_util.Abort("local repository corrupt or out-of-phase with remote: found outgoing changes")
-
- old_heads = len(hg_heads(ui, repo).split())
-
- global commit_okay
- commit_okay = True
- ret = hg_commit(ui, repo, *['path:'+f for f in cl.files], message=message, user=userline)
- commit_okay = False
- if ret:
- return "nothing changed"
- node = repo["-1"].node()
- # push to remote; if it fails for any reason, roll back
- try:
- new_heads = len(hg_heads(ui, repo).split())
- if old_heads != new_heads and not (old_heads == 0 and new_heads == 1):
- # Created new head, so we weren't up to date.
- need_sync()
-
- # Push changes to remote. If it works, we're committed. If not, roll back.
- try:
- hg_push(ui, repo)
- except hg_error.Abort, e:
- if e.message.find("push creates new heads") >= 0:
- # Remote repository had changes we missed.
- need_sync()
- raise
- except:
- real_rollback()
- raise
-
- # We're committed. Upload final patch, close review, add commit message.
- changeURL = hg_node.short(node)
- url = ui.expandpath("default")
- m = re.match("(^https?://([^@/]+@)?([^.]+)\.googlecode\.com/hg/?)" + "|" +
- "(^https?://([^@/]+@)?code\.google\.com/p/([^/.]+)(\.[^./]+)?/?)", url)
- if m:
- if m.group(1): # prj.googlecode.com/hg/ case
- changeURL = "http://code.google.com/p/%s/source/detail?r=%s" % (m.group(3), changeURL)
- elif m.group(4) and m.group(7): # code.google.com/p/prj.subrepo/ case
- changeURL = "http://code.google.com/p/%s/source/detail?r=%s&repo=%s" % (m.group(6), changeURL, m.group(7)[1:])
- elif m.group(4): # code.google.com/p/prj/ case
- changeURL = "http://code.google.com/p/%s/source/detail?r=%s" % (m.group(6), changeURL)
- else:
- print >>sys.stderr, "URL: ", url
- else:
- print >>sys.stderr, "URL: ", url
- pmsg = "*** Submitted as " + changeURL + " ***\n\n" + message
-
- # When posting, move reviewers to CC line,
- # so that the issue stops showing up in their "My Issues" page.
- PostMessage(ui, cl.name, pmsg, reviewers="", cc=JoinComma(cl.reviewer+cl.cc))
-
- if not cl.copied_from:
- EditDesc(cl.name, closed=True, private=cl.private)
- cl.Delete(ui, repo)
-
- c = repo[None]
- if c.branch() == releaseBranch and not c.modified() and not c.added() and not c.removed():
- ui.write("switching from %s to default branch.\n" % releaseBranch)
- err = hg_clean(repo, "default")
- if err:
- return err
- return None
-
-#######################################################################
-# hg sync
-
-@hgcommand
-def sync(ui, repo, **opts):
- """synchronize with remote repository
-
- Incorporates recent changes from the remote repository
- into the local repository.
- """
- if codereview_disabled:
- return codereview_disabled
-
- if not opts["local"]:
- err = hg_pull(ui, repo, update=True)
- if err:
- return err
- sync_changes(ui, repo)
-
-def sync_changes(ui, repo):
- # Look through recent change log descriptions to find
- # potential references to http://.*/our-CL-number.
- # Double-check them by looking at the Rietveld log.
- for rev in hg_log(ui, repo, limit=100, template="{node}\n").split():
- desc = repo[rev].description().strip()
- for clname in re.findall('(?m)^http://(?:[^\n]+)/([0-9]+)$', desc):
- if IsLocalCL(ui, repo, clname) and IsRietveldSubmitted(ui, clname, repo[rev].hex()):
- ui.warn("CL %s submitted as %s; closing\n" % (clname, repo[rev]))
- cl, err = LoadCL(ui, repo, clname, web=False)
- if err != "":
- ui.warn("loading CL %s: %s\n" % (clname, err))
- continue
- if not cl.copied_from:
- EditDesc(cl.name, closed=True, private=cl.private)
- cl.Delete(ui, repo)
-
- # Remove files that are not modified from the CLs in which they appear.
- all = LoadAllCL(ui, repo, web=False)
- changed = ChangedFiles(ui, repo, [])
- for cl in all.values():
- extra = Sub(cl.files, changed)
- if extra:
- ui.warn("Removing unmodified files from CL %s:\n" % (cl.name,))
- for f in extra:
- ui.warn("\t%s\n" % (f,))
- cl.files = Sub(cl.files, extra)
- cl.Flush(ui, repo)
- if not cl.files:
- if not cl.copied_from:
- ui.warn("CL %s has no files; delete (abandon) with hg change -d %s\n" % (cl.name, cl.name))
- else:
- ui.warn("CL %s has no files; delete locally with hg change -D %s\n" % (cl.name, cl.name))
- return
-
-#######################################################################
-# hg upload
-
-@hgcommand
-def upload(ui, repo, name, **opts):
- """upload diffs to the code review server
-
- Uploads the current modifications for a given change to the server.
- """
- if codereview_disabled:
- return codereview_disabled
-
- repo.ui.quiet = True
- cl, err = LoadCL(ui, repo, name, web=True)
- if err != "":
- return err
- if not cl.local:
- return "cannot upload non-local change"
- cl.Upload(ui, repo)
- print "%s%s\n" % (server_url_base, cl.name)
- return
-
-#######################################################################
-# Table of commands, supplied to Mercurial for installation.
-
-review_opts = [
- ('r', 'reviewer', '', 'add reviewer'),
- ('', 'cc', '', 'add cc'),
- ('', 'tbr', '', 'add future reviewer'),
- ('m', 'message', '', 'change description (for new change)'),
-]
-
-cmdtable = {
- # The ^ means to show this command in the help text that
- # is printed when running hg with no arguments.
- "^change": (
- change,
- [
- ('d', 'delete', None, 'delete existing change list'),
- ('D', 'deletelocal', None, 'delete locally, but do not change CL on server'),
- ('i', 'stdin', None, 'read change list from standard input'),
- ('o', 'stdout', None, 'print change list to standard output'),
- ('p', 'pending', None, 'print pending summary to standard output'),
- ],
- "[-d | -D] [-i] [-o] change# or FILE ..."
- ),
- "^clpatch": (
- clpatch,
- [
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
- ('', 'no_incoming', None, 'disable check for incoming changes'),
- ],
- "change#"
- ),
- # Would prefer to call this codereview-login, but then
- # hg help codereview prints the help for this command
- # instead of the help for the extension.
- "code-login": (
- code_login,
- [],
- "",
- ),
- "^download": (
- download,
- [],
- "change#"
- ),
- "^file": (
- file,
- [
- ('d', 'delete', None, 'delete files from change list (but not repository)'),
- ],
- "[-d] change# FILE ..."
- ),
- "^gofmt": (
- gofmt,
- [
- ('l', 'list', None, 'list files that would change, but do not edit them'),
- ],
- "FILE ..."
- ),
- "^pending|p": (
- pending,
- [
- ('s', 'short', False, 'show short result form'),
- ('', 'quick', False, 'do not consult codereview server'),
- ],
- "[FILE ...]"
- ),
- "^ps": (
- ps,
- [],
- "[FILE ...]"
- ),
- "^pq": (
- pq,
- [],
- "[FILE ...]"
- ),
- "^mail": (
- mail,
- review_opts + [
- ] + hg_commands.walkopts,
- "[-r reviewer] [--cc cc] [change# | file ...]"
- ),
- "^release-apply": (
- release_apply,
- [
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
- ('', 'no_incoming', None, 'disable check for incoming changes'),
- ],
- "change#"
- ),
- # TODO: release-start, release-tag, weekly-tag
- "^submit": (
- submit,
- review_opts + [
- ('', 'no_incoming', None, 'disable initial incoming check (for testing)'),
- ] + hg_commands.walkopts + hg_commands.commitopts + hg_commands.commitopts2,
- "[-r reviewer] [--cc cc] [change# | file ...]"
- ),
- "^sync": (
- sync,
- [
- ('', 'local', None, 'do not pull changes from remote repository')
- ],
- "[--local]",
- ),
- "^undo": (
- undo,
- [
- ('', 'ignore_hgpatch_failure', None, 'create CL metadata even if hgpatch fails'),
- ('', 'no_incoming', None, 'disable check for incoming changes'),
- ],
- "change#"
- ),
- "^upload": (
- upload,
- [],
- "change#"
- ),
-}
-
-#######################################################################
-# Mercurial extension initialization
-
-def norollback(*pats, **opts):
- """(disabled when using this extension)"""
- raise hg_util.Abort("codereview extension enabled; use undo instead of rollback")
-
-codereview_init = False
-
-def reposetup(ui, repo):
- global codereview_disabled
- global defaultcc
-
- # reposetup gets called both for the local repository
- # and also for any repository we are pulling or pushing to.
- # Only initialize the first time.
- global codereview_init
- if codereview_init:
- return
- codereview_init = True
-
- # Read repository-specific options from lib/codereview/codereview.cfg or codereview.cfg.
- root = ''
- try:
- root = repo.root
- except:
- # Yes, repo might not have root; see issue 959.
- codereview_disabled = 'codereview disabled: repository has no root'
- return
-
- repo_config_path = ''
- p1 = root + '/lib/codereview/codereview.cfg'
- p2 = root + '/codereview.cfg'
- if os.access(p1, os.F_OK):
- repo_config_path = p1
- else:
- repo_config_path = p2
- try:
- f = open(repo_config_path)
- for line in f:
- if line.startswith('defaultcc:'):
- defaultcc = SplitCommaSpace(line[len('defaultcc:'):])
- if line.startswith('contributors:'):
- global contributorsURL
- contributorsURL = line[len('contributors:'):].strip()
- except:
- codereview_disabled = 'codereview disabled: cannot open ' + repo_config_path
- return
-
- remote = ui.config("paths", "default", "")
- if remote.find("://") < 0:
- raise hg_util.Abort("codereview: default path '%s' is not a URL" % (remote,))
-
- InstallMatch(ui, repo)
- RietveldSetup(ui, repo)
-
- # Disable the Mercurial commands that might change the repository.
- # Only commands in this extension are supposed to do that.
- ui.setconfig("hooks", "precommit.codereview", precommithook)
-
- # Rollback removes an existing commit. Don't do that either.
- global real_rollback
- real_rollback = repo.rollback
- repo.rollback = norollback
-
-
-#######################################################################
-# Wrappers around upload.py for interacting with Rietveld
-
-from HTMLParser import HTMLParser
-
-# HTML form parser
-class FormParser(HTMLParser):
- def __init__(self):
- self.map = {}
- self.curtag = None
- self.curdata = None
- HTMLParser.__init__(self)
- def handle_starttag(self, tag, attrs):
- if tag == "input":
- key = None
- value = ''
- for a in attrs:
- if a[0] == 'name':
- key = a[1]
- if a[0] == 'value':
- value = a[1]
- if key is not None:
- self.map[key] = value
- if tag == "textarea":
- key = None
- for a in attrs:
- if a[0] == 'name':
- key = a[1]
- if key is not None:
- self.curtag = key
- self.curdata = ''
- def handle_endtag(self, tag):
- if tag == "textarea" and self.curtag is not None:
- self.map[self.curtag] = self.curdata
- self.curtag = None
- self.curdata = None
- def handle_charref(self, name):
- self.handle_data(unichr(int(name)))
- def handle_entityref(self, name):
- import htmlentitydefs
- if name in htmlentitydefs.entitydefs:
- self.handle_data(htmlentitydefs.entitydefs[name])
- else:
- self.handle_data("&" + name + ";")
- def handle_data(self, data):
- if self.curdata is not None:
- self.curdata += data
-
-def JSONGet(ui, path):
- try:
- data = MySend(path, force_auth=False)
- typecheck(data, str)
- d = fix_json(json.loads(data))
- except:
- ui.warn("JSONGet %s: %s\n" % (path, ExceptionDetail()))
- return None
- return d
-
-# Clean up json parser output to match our expectations:
-# * all strings are UTF-8-encoded str, not unicode.
-# * missing fields are missing, not None,
-# so that d.get("foo", defaultvalue) works.
-def fix_json(x):
- if type(x) in [str, int, float, bool, type(None)]:
- pass
- elif type(x) is unicode:
- x = x.encode("utf-8")
- elif type(x) is list:
- for i in range(len(x)):
- x[i] = fix_json(x[i])
- elif type(x) is dict:
- todel = []
- for k in x:
- if x[k] is None:
- todel.append(k)
- else:
- x[k] = fix_json(x[k])
- for k in todel:
- del x[k]
- else:
- raise hg_util.Abort("unknown type " + str(type(x)) + " in fix_json")
- if type(x) is str:
- x = x.replace('\r\n', '\n')
- return x
-
-def IsRietveldSubmitted(ui, clname, hex):
- dict = JSONGet(ui, "/api/" + clname + "?messages=true")
- if dict is None:
- return False
- for msg in dict.get("messages", []):
- text = msg.get("text", "")
- m = re.match('\*\*\* Submitted as [^*]*?([0-9a-f]+) \*\*\*', text)
- if m is not None and len(m.group(1)) >= 8 and hex.startswith(m.group(1)):
- return True
- return False
-
-def IsRietveldMailed(cl):
- for msg in cl.dict.get("messages", []):
- if msg.get("text", "").find("I'd like you to review this change") >= 0:
- return True
- return False
-
-def DownloadCL(ui, repo, clname):
- set_status("downloading CL " + clname)
- cl, err = LoadCL(ui, repo, clname, web=True)
- if err != "":
- return None, None, None, "error loading CL %s: %s" % (clname, err)
-
- # Find most recent diff
- diffs = cl.dict.get("patchsets", [])
- if not diffs:
- return None, None, None, "CL has no patch sets"
- patchid = diffs[-1]
-
- patchset = JSONGet(ui, "/api/" + clname + "/" + str(patchid))
- if patchset is None:
- return None, None, None, "error loading CL patchset %s/%d" % (clname, patchid)
- if patchset.get("patchset", 0) != patchid:
- return None, None, None, "malformed patchset information"
-
- vers = ""
- msg = patchset.get("message", "").split()
- if len(msg) >= 3 and msg[0] == "diff" and msg[1] == "-r":
- vers = msg[2]
- diff = "/download/issue" + clname + "_" + str(patchid) + ".diff"
-
- diffdata = MySend(diff, force_auth=False)
-
- # Print warning if email is not in CONTRIBUTORS file.
- email = cl.dict.get("owner_email", "")
- if not email:
- return None, None, None, "cannot find owner for %s" % (clname)
- him = FindContributor(ui, repo, email)
- me = FindContributor(ui, repo, None)
- if him == me:
- cl.mailed = IsRietveldMailed(cl)
- else:
- cl.copied_from = email
-
- return cl, vers, diffdata, ""
-
-def MySend(request_path, payload=None,
- content_type="application/octet-stream",
- timeout=None, force_auth=True,
- **kwargs):
- """Run MySend1 maybe twice, because Rietveld is unreliable."""
- try:
- return MySend1(request_path, payload, content_type, timeout, force_auth, **kwargs)
- except Exception, e:
- if type(e) != urllib2.HTTPError or e.code != 500: # only retry on HTTP 500 error
- raise
- print >>sys.stderr, "Loading "+request_path+": "+ExceptionDetail()+"; trying again in 2 seconds."
- time.sleep(2)
- return MySend1(request_path, payload, content_type, timeout, force_auth, **kwargs)
-
-# Like upload.py Send but only authenticates when the
-# redirect is to www.google.com/accounts. This keeps
-# unnecessary redirects from happening during testing.
-def MySend1(request_path, payload=None,
- content_type="application/octet-stream",
- timeout=None, force_auth=True,
- **kwargs):
- """Sends an RPC and returns the response.
-
- Args:
- request_path: The path to send the request to, eg /api/appversion/create.
- payload: The body of the request, or None to send an empty request.
- content_type: The Content-Type header to use.
- timeout: timeout in seconds; default None i.e. no timeout.
- (Note: for large requests on OS X, the timeout doesn't work right.)
- kwargs: Any keyword arguments are converted into query string parameters.
-
- Returns:
- The response body, as a string.
- """
- # TODO: Don't require authentication. Let the server say
- # whether it is necessary.
- global rpc
- if rpc == None:
- rpc = GetRpcServer(upload_options)
- self = rpc
- if not self.authenticated and force_auth:
- self._Authenticate()
- if request_path is None:
- return
-
- old_timeout = socket.getdefaulttimeout()
- socket.setdefaulttimeout(timeout)
- try:
- tries = 0
- while True:
- tries += 1
- args = dict(kwargs)
- url = "http://%s%s" % (self.host, request_path)
- if args:
- url += "?" + urllib.urlencode(args)
- req = self._CreateRequest(url=url, data=payload)
- req.add_header("Content-Type", content_type)
- try:
- f = self.opener.open(req)
- response = f.read()
- f.close()
- # Translate \r\n into \n, because Rietveld doesn't.
- response = response.replace('\r\n', '\n')
- # who knows what urllib will give us
- if type(response) == unicode:
- response = response.encode("utf-8")
- typecheck(response, str)
- return response
- except urllib2.HTTPError, e:
- if tries > 3:
- raise
- elif e.code == 401:
- self._Authenticate()
- elif e.code == 302:
- loc = e.info()["location"]
- if not loc.startswith('https://www.google.com/a') or loc.find('/ServiceLogin') < 0:
- return ''
- self._Authenticate()
- else:
- raise
- finally:
- socket.setdefaulttimeout(old_timeout)
-
-def GetForm(url):
- f = FormParser()
- f.feed(ustr(MySend(url))) # f.feed wants unicode
- f.close()
- # convert back to utf-8 to restore sanity
- m = {}
- for k,v in f.map.items():
- m[k.encode("utf-8")] = v.replace("\r\n", "\n").encode("utf-8")
- return m
-
-def EditDesc(issue, subject=None, desc=None, reviewers=None, cc=None, closed=False, private=False):
- set_status("uploading change to description")
- form_fields = GetForm("/" + issue + "/edit")
- if subject is not None:
- form_fields['subject'] = subject
- if desc is not None:
- form_fields['description'] = desc
- if reviewers is not None:
- form_fields['reviewers'] = reviewers
- if cc is not None:
- form_fields['cc'] = cc
- if closed:
- form_fields['closed'] = "checked"
- if private:
- form_fields['private'] = "checked"
- ctype, body = EncodeMultipartFormData(form_fields.items(), [])
- response = MySend("/" + issue + "/edit", body, content_type=ctype)
- if response != "":
- print >>sys.stderr, "Error editing description:\n" + "Sent form: \n", form_fields, "\n", response
- sys.exit(2)
-
-def PostMessage(ui, issue, message, reviewers=None, cc=None, send_mail=True, subject=None):
- set_status("uploading message")
- form_fields = GetForm("/" + issue + "/publish")
- if reviewers is not None:
- form_fields['reviewers'] = reviewers
- if cc is not None:
- form_fields['cc'] = cc
- if send_mail:
- form_fields['send_mail'] = "checked"
- else:
- del form_fields['send_mail']
- if subject is not None:
- form_fields['subject'] = subject
- form_fields['message'] = message
-
- form_fields['message_only'] = '1' # Don't include draft comments
- if reviewers is not None or cc is not None:
- form_fields['message_only'] = '' # Must set '' in order to override cc/reviewer
- ctype = "applications/x-www-form-urlencoded"
- body = urllib.urlencode(form_fields)
- response = MySend("/" + issue + "/publish", body, content_type=ctype)
- if response != "":
- print response
- sys.exit(2)
-
-class opt(object):
- pass
-
-def RietveldSetup(ui, repo):
- global force_google_account
- global rpc
- global server
- global server_url_base
- global upload_options
- global verbosity
-
- if not ui.verbose:
- verbosity = 0
-
- # Config options.
- x = ui.config("codereview", "server")
- if x is not None:
- server = x
-
- # TODO(rsc): Take from ui.username?
- email = None
- x = ui.config("codereview", "email")
- if x is not None:
- email = x
-
- server_url_base = "http://" + server + "/"
-
- testing = ui.config("codereview", "testing")
- force_google_account = ui.configbool("codereview", "force_google_account", False)
-
- upload_options = opt()
- upload_options.email = email
- upload_options.host = None
- upload_options.verbose = 0
- upload_options.description = None
- upload_options.description_file = None
- upload_options.reviewers = None
- upload_options.cc = None
- upload_options.message = None
- upload_options.issue = None
- upload_options.download_base = False
- upload_options.revision = None
- upload_options.send_mail = False
- upload_options.vcs = None
- upload_options.server = server
- upload_options.save_cookies = True
-
- if testing:
- upload_options.save_cookies = False
- upload_options.email = "test@example.com"
-
- rpc = None
-
- global releaseBranch
- tags = repo.branchtags().keys()
- if 'release-branch.r100' in tags:
- # NOTE(rsc): This tags.sort is going to get the wrong
- # answer when comparing release-branch.r99 with
- # release-branch.r100. If we do ten releases a year
- # that gives us 4 years before we have to worry about this.
- raise hg_util.Abort('tags.sort needs to be fixed for release-branch.r100')
- tags.sort()
- for t in tags:
- if t.startswith('release-branch.'):
- releaseBranch = t
-
-#######################################################################
-# http://codereview.appspot.com/static/upload.py, heavily edited.
-
-#!/usr/bin/env python
-#
-# Copyright 2007 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Tool for uploading diffs from a version control system to the codereview app.
-
-Usage summary: upload.py [options] [-- diff_options]
-
-Diff options are passed to the diff command of the underlying system.
-
-Supported version control systems:
- Git
- Mercurial
- Subversion
-
-It is important for Git/Mercurial users to specify a tree/node/branch to diff
-against by using the '--rev' option.
-"""
-# This code is derived from appcfg.py in the App Engine SDK (open source),
-# and from ASPN recipe #146306.
-
-import cookielib
-import getpass
-import logging
-import mimetypes
-import optparse
-import os
-import re
-import socket
-import subprocess
-import sys
-import urllib
-import urllib2
-import urlparse
-
-# The md5 module was deprecated in Python 2.5.
-try:
- from hashlib import md5
-except ImportError:
- from md5 import md5
-
-try:
- import readline
-except ImportError:
- pass
-
-# The logging verbosity:
-# 0: Errors only.
-# 1: Status messages.
-# 2: Info logs.
-# 3: Debug logs.
-verbosity = 1
-
-# Max size of patch or base file.
-MAX_UPLOAD_SIZE = 900 * 1024
-
-# whitelist for non-binary filetypes which do not start with "text/"
-# .mm (Objective-C) shows up as application/x-freemind on my Linux box.
-TEXT_MIMETYPES = [
- 'application/javascript',
- 'application/x-javascript',
- 'application/x-freemind'
-]
-
-def GetEmail(prompt):
- """Prompts the user for their email address and returns it.
-
- The last used email address is saved to a file and offered up as a suggestion
- to the user. If the user presses enter without typing in anything the last
- used email address is used. If the user enters a new address, it is saved
- for next time we prompt.
-
- """
- last_email_file_name = os.path.expanduser("~/.last_codereview_email_address")
- last_email = ""
- if os.path.exists(last_email_file_name):
- try:
- last_email_file = open(last_email_file_name, "r")
- last_email = last_email_file.readline().strip("\n")
- last_email_file.close()
- prompt += " [%s]" % last_email
- except IOError, e:
- pass
- email = raw_input(prompt + ": ").strip()
- if email:
- try:
- last_email_file = open(last_email_file_name, "w")
- last_email_file.write(email)
- last_email_file.close()
- except IOError, e:
- pass
- else:
- email = last_email
- return email
-
-
-def StatusUpdate(msg):
- """Print a status message to stdout.
-
- If 'verbosity' is greater than 0, print the message.
-
- Args:
- msg: The string to print.
- """
- if verbosity > 0:
- print msg
-
-
-def ErrorExit(msg):
- """Print an error message to stderr and exit."""
- print >>sys.stderr, msg
- sys.exit(1)
-
-
-class ClientLoginError(urllib2.HTTPError):
- """Raised to indicate there was an error authenticating with ClientLogin."""
-
- def __init__(self, url, code, msg, headers, args):
- urllib2.HTTPError.__init__(self, url, code, msg, headers, None)
- self.args = args
- self.reason = args["Error"]
-
-
-class AbstractRpcServer(object):
- """Provides a common interface for a simple RPC server."""
-
- def __init__(self, host, auth_function, host_override=None, extra_headers={}, save_cookies=False):
- """Creates a new HttpRpcServer.
-
- Args:
- host: The host to send requests to.
- auth_function: A function that takes no arguments and returns an
- (email, password) tuple when called. Will be called if authentication
- is required.
- host_override: The host header to send to the server (defaults to host).
- extra_headers: A dict of extra headers to append to every request.
- save_cookies: If True, save the authentication cookies to local disk.
- If False, use an in-memory cookiejar instead. Subclasses must
- implement this functionality. Defaults to False.
- """
- self.host = host
- self.host_override = host_override
- self.auth_function = auth_function
- self.authenticated = False
- self.extra_headers = extra_headers
- self.save_cookies = save_cookies
- self.opener = self._GetOpener()
- if self.host_override:
- logging.info("Server: %s; Host: %s", self.host, self.host_override)
- else:
- logging.info("Server: %s", self.host)
-
- def _GetOpener(self):
- """Returns an OpenerDirector for making HTTP requests.
-
- Returns:
- A urllib2.OpenerDirector object.
- """
- raise NotImplementedError()
-
- def _CreateRequest(self, url, data=None):
- """Creates a new urllib request."""
- logging.debug("Creating request for: '%s' with payload:\n%s", url, data)
- req = urllib2.Request(url, data=data)
- if self.host_override:
- req.add_header("Host", self.host_override)
- for key, value in self.extra_headers.iteritems():
- req.add_header(key, value)
- return req
-
- def _GetAuthToken(self, email, password):
- """Uses ClientLogin to authenticate the user, returning an auth token.
-
- Args:
- email: The user's email address
- password: The user's password
-
- Raises:
- ClientLoginError: If there was an error authenticating with ClientLogin.
- HTTPError: If there was some other form of HTTP error.
-
- Returns:
- The authentication token returned by ClientLogin.
- """
- account_type = "GOOGLE"
- if self.host.endswith(".google.com") and not force_google_account:
- # Needed for use inside Google.
- account_type = "HOSTED"
- req = self._CreateRequest(
- url="https://www.google.com/accounts/ClientLogin",
- data=urllib.urlencode({
- "Email": email,
- "Passwd": password,
- "service": "ah",
- "source": "rietveld-codereview-upload",
- "accountType": account_type,
- }),
- )
- try:
- response = self.opener.open(req)
- response_body = response.read()
- response_dict = dict(x.split("=") for x in response_body.split("\n") if x)
- return response_dict["Auth"]
- except urllib2.HTTPError, e:
- if e.code == 403:
- body = e.read()
- response_dict = dict(x.split("=", 1) for x in body.split("\n") if x)
- raise ClientLoginError(req.get_full_url(), e.code, e.msg, e.headers, response_dict)
- else:
- raise
-
- def _GetAuthCookie(self, auth_token):
- """Fetches authentication cookies for an authentication token.
-
- Args:
- auth_token: The authentication token returned by ClientLogin.
-
- Raises:
- HTTPError: If there was an error fetching the authentication cookies.
- """
- # This is a dummy value to allow us to identify when we're successful.
- continue_location = "http://localhost/"
- args = {"continue": continue_location, "auth": auth_token}
- req = self._CreateRequest("http://%s/_ah/login?%s" % (self.host, urllib.urlencode(args)))
- try:
- response = self.opener.open(req)
- except urllib2.HTTPError, e:
- response = e
- if (response.code != 302 or
- response.info()["location"] != continue_location):
- raise urllib2.HTTPError(req.get_full_url(), response.code, response.msg, response.headers, response.fp)
- self.authenticated = True
-
- def _Authenticate(self):
- """Authenticates the user.
-
- The authentication process works as follows:
- 1) We get a username and password from the user
- 2) We use ClientLogin to obtain an AUTH token for the user
- (see http://code.google.com/apis/accounts/AuthForInstalledApps.html).
- 3) We pass the auth token to /_ah/login on the server to obtain an
- authentication cookie. If login was successful, it tries to redirect
- us to the URL we provided.
-
- If we attempt to access the upload API without first obtaining an
- authentication cookie, it returns a 401 response (or a 302) and
- directs us to authenticate ourselves with ClientLogin.
- """
- for i in range(3):
- credentials = self.auth_function()
- try:
- auth_token = self._GetAuthToken(credentials[0], credentials[1])
- except ClientLoginError, e:
- if e.reason == "BadAuthentication":
- print >>sys.stderr, "Invalid username or password."
- continue
- if e.reason == "CaptchaRequired":
- print >>sys.stderr, (
- "Please go to\n"
- "https://www.google.com/accounts/DisplayUnlockCaptcha\n"
- "and verify you are a human. Then try again.")
- break
- if e.reason == "NotVerified":
- print >>sys.stderr, "Account not verified."
- break
- if e.reason == "TermsNotAgreed":
- print >>sys.stderr, "User has not agreed to TOS."
- break
- if e.reason == "AccountDeleted":
- print >>sys.stderr, "The user account has been deleted."
- break
- if e.reason == "AccountDisabled":
- print >>sys.stderr, "The user account has been disabled."
- break
- if e.reason == "ServiceDisabled":
- print >>sys.stderr, "The user's access to the service has been disabled."
- break
- if e.reason == "ServiceUnavailable":
- print >>sys.stderr, "The service is not available; try again later."
- break
- raise
- self._GetAuthCookie(auth_token)
- return
-
- def Send(self, request_path, payload=None,
- content_type="application/octet-stream",
- timeout=None,
- **kwargs):
- """Sends an RPC and returns the response.
-
- Args:
- request_path: The path to send the request to, eg /api/appversion/create.
- payload: The body of the request, or None to send an empty request.
- content_type: The Content-Type header to use.
- timeout: timeout in seconds; default None i.e. no timeout.
- (Note: for large requests on OS X, the timeout doesn't work right.)
- kwargs: Any keyword arguments are converted into query string parameters.
-
- Returns:
- The response body, as a string.
- """
- # TODO: Don't require authentication. Let the server say
- # whether it is necessary.
- if not self.authenticated:
- self._Authenticate()
-
- old_timeout = socket.getdefaulttimeout()
- socket.setdefaulttimeout(timeout)
- try:
- tries = 0
- while True:
- tries += 1
- args = dict(kwargs)
- url = "http://%s%s" % (self.host, request_path)
- if args:
- url += "?" + urllib.urlencode(args)
- req = self._CreateRequest(url=url, data=payload)
- req.add_header("Content-Type", content_type)
- try:
- f = self.opener.open(req)
- response = f.read()
- f.close()
- return response
- except urllib2.HTTPError, e:
- if tries > 3:
- raise
- elif e.code == 401 or e.code == 302:
- self._Authenticate()
- else:
- raise
- finally:
- socket.setdefaulttimeout(old_timeout)
-
-
-class HttpRpcServer(AbstractRpcServer):
- """Provides a simplified RPC-style interface for HTTP requests."""
-
- def _Authenticate(self):
- """Save the cookie jar after authentication."""
- super(HttpRpcServer, self)._Authenticate()
- if self.save_cookies:
- StatusUpdate("Saving authentication cookies to %s" % self.cookie_file)
- self.cookie_jar.save()
-
- def _GetOpener(self):
- """Returns an OpenerDirector that supports cookies and ignores redirects.
-
- Returns:
- A urllib2.OpenerDirector object.
- """
- opener = urllib2.OpenerDirector()
- opener.add_handler(urllib2.ProxyHandler())
- opener.add_handler(urllib2.UnknownHandler())
- opener.add_handler(urllib2.HTTPHandler())
- opener.add_handler(urllib2.HTTPDefaultErrorHandler())
- opener.add_handler(urllib2.HTTPSHandler())
- opener.add_handler(urllib2.HTTPErrorProcessor())
- if self.save_cookies:
- self.cookie_file = os.path.expanduser("~/.codereview_upload_cookies_" + server)
- self.cookie_jar = cookielib.MozillaCookieJar(self.cookie_file)
- if os.path.exists(self.cookie_file):
- try:
- self.cookie_jar.load()
- self.authenticated = True
- StatusUpdate("Loaded authentication cookies from %s" % self.cookie_file)
- except (cookielib.LoadError, IOError):
- # Failed to load cookies - just ignore them.
- pass
- else:
- # Create an empty cookie file with mode 600
- fd = os.open(self.cookie_file, os.O_CREAT, 0600)
- os.close(fd)
- # Always chmod the cookie file
- os.chmod(self.cookie_file, 0600)
- else:
- # Don't save cookies across runs of update.py.
- self.cookie_jar = cookielib.CookieJar()
- opener.add_handler(urllib2.HTTPCookieProcessor(self.cookie_jar))
- return opener
-
-
-def GetRpcServer(options):
- """Returns an instance of an AbstractRpcServer.
-
- Returns:
- A new AbstractRpcServer, on which RPC calls can be made.
- """
-
- rpc_server_class = HttpRpcServer
-
- def GetUserCredentials():
- """Prompts the user for a username and password."""
- # Disable status prints so they don't obscure the password prompt.
- global global_status
- st = global_status
- global_status = None
-
- email = options.email
- if email is None:
- email = GetEmail("Email (login for uploading to %s)" % options.server)
- password = getpass.getpass("Password for %s: " % email)
-
- # Put status back.
- global_status = st
- return (email, password)
-
- # If this is the dev_appserver, use fake authentication.
- host = (options.host or options.server).lower()
- if host == "localhost" or host.startswith("localhost:"):
- email = options.email
- if email is None:
- email = "test@example.com"
- logging.info("Using debug user %s. Override with --email" % email)
- server = rpc_server_class(
- options.server,
- lambda: (email, "password"),
- host_override=options.host,
- extra_headers={"Cookie": 'dev_appserver_login="%s:False"' % email},
- save_cookies=options.save_cookies)
- # Don't try to talk to ClientLogin.
- server.authenticated = True
- return server
-
- return rpc_server_class(options.server, GetUserCredentials,
- host_override=options.host, save_cookies=options.save_cookies)
-
-
-def EncodeMultipartFormData(fields, files):
- """Encode form fields for multipart/form-data.
-
- Args:
- fields: A sequence of (name, value) elements for regular form fields.
- files: A sequence of (name, filename, value) elements for data to be
- uploaded as files.
- Returns:
- (content_type, body) ready for httplib.HTTP instance.
-
- Source:
- http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/146306
- """
- BOUNDARY = '-M-A-G-I-C---B-O-U-N-D-A-R-Y-'
- CRLF = '\r\n'
- lines = []
- for (key, value) in fields:
- typecheck(key, str)
- typecheck(value, str)
- lines.append('--' + BOUNDARY)
- lines.append('Content-Disposition: form-data; name="%s"' % key)
- lines.append('')
- lines.append(value)
- for (key, filename, value) in files:
- typecheck(key, str)
- typecheck(filename, str)
- typecheck(value, str)
- lines.append('--' + BOUNDARY)
- lines.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename))
- lines.append('Content-Type: %s' % GetContentType(filename))
- lines.append('')
- lines.append(value)
- lines.append('--' + BOUNDARY + '--')
- lines.append('')
- body = CRLF.join(lines)
- content_type = 'multipart/form-data; boundary=%s' % BOUNDARY
- return content_type, body
-
-
-def GetContentType(filename):
- """Helper to guess the content-type from the filename."""
- return mimetypes.guess_type(filename)[0] or 'application/octet-stream'
-
-
-# Use a shell for subcommands on Windows to get a PATH search.
-use_shell = sys.platform.startswith("win")
-
-def RunShellWithReturnCode(command, print_output=False,
- universal_newlines=True, env=os.environ):
- """Executes a command and returns the output from stdout and the return code.
-
- Args:
- command: Command to execute.
- print_output: If True, the output is printed to stdout.
- If False, both stdout and stderr are ignored.
- universal_newlines: Use universal_newlines flag (default: True).
-
- Returns:
- Tuple (output, return code)
- """
- logging.info("Running %s", command)
- p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
- shell=use_shell, universal_newlines=universal_newlines, env=env)
- if print_output:
- output_array = []
- while True:
- line = p.stdout.readline()
- if not line:
- break
- print line.strip("\n")
- output_array.append(line)
- output = "".join(output_array)
- else:
- output = p.stdout.read()
- p.wait()
- errout = p.stderr.read()
- if print_output and errout:
- print >>sys.stderr, errout
- p.stdout.close()
- p.stderr.close()
- return output, p.returncode
-
-
-def RunShell(command, silent_ok=False, universal_newlines=True,
- print_output=False, env=os.environ):
- data, retcode = RunShellWithReturnCode(command, print_output, universal_newlines, env)
- if retcode:
- ErrorExit("Got error status from %s:\n%s" % (command, data))
- if not silent_ok and not data:
- ErrorExit("No output from %s" % command)
- return data
-
-
-class VersionControlSystem(object):
- """Abstract base class providing an interface to the VCS."""
-
- def __init__(self, options):
- """Constructor.
-
- Args:
- options: Command line options.
- """
- self.options = options
-
- def GenerateDiff(self, args):
- """Return the current diff as a string.
-
- Args:
- args: Extra arguments to pass to the diff command.
- """
- raise NotImplementedError(
- "abstract method -- subclass %s must override" % self.__class__)
-
- def GetUnknownFiles(self):
- """Return a list of files unknown to the VCS."""
- raise NotImplementedError(
- "abstract method -- subclass %s must override" % self.__class__)
-
- def CheckForUnknownFiles(self):
- """Show an "are you sure?" prompt if there are unknown files."""
- unknown_files = self.GetUnknownFiles()
- if unknown_files:
- print "The following files are not added to version control:"
- for line in unknown_files:
- print line
- prompt = "Are you sure to continue?(y/N) "
- answer = raw_input(prompt).strip()
- if answer != "y":
- ErrorExit("User aborted")
-
- def GetBaseFile(self, filename):
- """Get the content of the upstream version of a file.
-
- Returns:
- A tuple (base_content, new_content, is_binary, status)
- base_content: The contents of the base file.
- new_content: For text files, this is empty. For binary files, this is
- the contents of the new file, since the diff output won't contain
- information to reconstruct the current file.
- is_binary: True iff the file is binary.
- status: The status of the file.
- """
-
- raise NotImplementedError(
- "abstract method -- subclass %s must override" % self.__class__)
-
-
- def GetBaseFiles(self, diff):
- """Helper that calls GetBase file for each file in the patch.
-
- Returns:
- A dictionary that maps from filename to GetBaseFile's tuple. Filenames
- are retrieved based on lines that start with "Index:" or
- "Property changes on:".
- """
- files = {}
- for line in diff.splitlines(True):
- if line.startswith('Index:') or line.startswith('Property changes on:'):
- unused, filename = line.split(':', 1)
- # On Windows if a file has property changes its filename uses '\'
- # instead of '/'.
- filename = to_slash(filename.strip())
- files[filename] = self.GetBaseFile(filename)
- return files
-
-
- def UploadBaseFiles(self, issue, rpc_server, patch_list, patchset, options,
- files):
- """Uploads the base files (and if necessary, the current ones as well)."""
-
- def UploadFile(filename, file_id, content, is_binary, status, is_base):
- """Uploads a file to the server."""
- set_status("uploading " + filename)
- file_too_large = False
- if is_base:
- type = "base"
- else:
- type = "current"
- if len(content) > MAX_UPLOAD_SIZE:
- print ("Not uploading the %s file for %s because it's too large." %
- (type, filename))
- file_too_large = True
- content = ""
- checksum = md5(content).hexdigest()
- if options.verbose > 0 and not file_too_large:
- print "Uploading %s file for %s" % (type, filename)
- url = "/%d/upload_content/%d/%d" % (int(issue), int(patchset), file_id)
- form_fields = [
- ("filename", filename),
- ("status", status),
- ("checksum", checksum),
- ("is_binary", str(is_binary)),
- ("is_current", str(not is_base)),
- ]
- if file_too_large:
- form_fields.append(("file_too_large", "1"))
- if options.email:
- form_fields.append(("user", options.email))
- ctype, body = EncodeMultipartFormData(form_fields, [("data", filename, content)])
- response_body = rpc_server.Send(url, body, content_type=ctype)
- if not response_body.startswith("OK"):
- StatusUpdate(" --> %s" % response_body)
- sys.exit(1)
-
- # Don't want to spawn too many threads, nor do we want to
- # hit Rietveld too hard, or it will start serving 500 errors.
- # When 8 works, it's no better than 4, and sometimes 8 is
- # too many for Rietveld to handle.
- MAX_PARALLEL_UPLOADS = 4
-
- sema = threading.BoundedSemaphore(MAX_PARALLEL_UPLOADS)
- upload_threads = []
- finished_upload_threads = []
-
- class UploadFileThread(threading.Thread):
- def __init__(self, args):
- threading.Thread.__init__(self)
- self.args = args
- def run(self):
- UploadFile(*self.args)
- finished_upload_threads.append(self)
- sema.release()
-
- def StartUploadFile(*args):
- sema.acquire()
- while len(finished_upload_threads) > 0:
- t = finished_upload_threads.pop()
- upload_threads.remove(t)
- t.join()
- t = UploadFileThread(args)
- upload_threads.append(t)
- t.start()
-
- def WaitForUploads():
- for t in upload_threads:
- t.join()
-
- patches = dict()
- [patches.setdefault(v, k) for k, v in patch_list]
- for filename in patches.keys():
- base_content, new_content, is_binary, status = files[filename]
- file_id_str = patches.get(filename)
- if file_id_str.find("nobase") != -1:
- base_content = None
- file_id_str = file_id_str[file_id_str.rfind("_") + 1:]
- file_id = int(file_id_str)
- if base_content != None:
- StartUploadFile(filename, file_id, base_content, is_binary, status, True)
- if new_content != None:
- StartUploadFile(filename, file_id, new_content, is_binary, status, False)
- WaitForUploads()
-
- def IsImage(self, filename):
- """Returns true if the filename has an image extension."""
- mimetype = mimetypes.guess_type(filename)[0]
- if not mimetype:
- return False
- return mimetype.startswith("image/")
-
- def IsBinary(self, filename):
- """Returns true if the guessed mimetyped isnt't in text group."""
- mimetype = mimetypes.guess_type(filename)[0]
- if not mimetype:
- return False # e.g. README, "real" binaries usually have an extension
- # special case for text files which don't start with text/
- if mimetype in TEXT_MIMETYPES:
- return False
- return not mimetype.startswith("text/")
-
-
-class FakeMercurialUI(object):
- def __init__(self):
- self.quiet = True
- self.output = ''
-
- def write(self, *args, **opts):
- self.output += ' '.join(args)
- def copy(self):
- return self
- def status(self, *args, **opts):
- pass
-
- def readconfig(self, *args, **opts):
- pass
- def expandpath(self, *args, **opts):
- return global_ui.expandpath(*args, **opts)
- def configitems(self, *args, **opts):
- return global_ui.configitems(*args, **opts)
- def config(self, *args, **opts):
- return global_ui.config(*args, **opts)
-
-use_hg_shell = False # set to True to shell out to hg always; slower
-
-class MercurialVCS(VersionControlSystem):
- """Implementation of the VersionControlSystem interface for Mercurial."""
-
- def __init__(self, options, ui, repo):
- super(MercurialVCS, self).__init__(options)
- self.ui = ui
- self.repo = repo
- self.status = None
- # Absolute path to repository (we can be in a subdir)
- self.repo_dir = os.path.normpath(repo.root)
- # Compute the subdir
- cwd = os.path.normpath(os.getcwd())
- assert cwd.startswith(self.repo_dir)
- self.subdir = cwd[len(self.repo_dir):].lstrip(r"\/")
- if self.options.revision:
- self.base_rev = self.options.revision
- else:
- mqparent, err = RunShellWithReturnCode(['hg', 'log', '--rev', 'qparent', '--template={node}'])
- if not err and mqparent != "":
- self.base_rev = mqparent
- else:
- out = RunShell(["hg", "parents", "-q"], silent_ok=True).strip()
- if not out:
- # No revisions; use 0 to mean a repository with nothing.
- out = "0:0"
- self.base_rev = out.split(':')[1].strip()
- def _GetRelPath(self, filename):
- """Get relative path of a file according to the current directory,
- given its logical path in the repo."""
- assert filename.startswith(self.subdir), (filename, self.subdir)
- return filename[len(self.subdir):].lstrip(r"\/")
-
- def GenerateDiff(self, extra_args):
- # If no file specified, restrict to the current subdir
- extra_args = extra_args or ["."]
- cmd = ["hg", "diff", "--git", "-r", self.base_rev] + extra_args
- data = RunShell(cmd, silent_ok=True)
- svndiff = []
- filecount = 0
- for line in data.splitlines():
- m = re.match("diff --git a/(\S+) b/(\S+)", line)
- if m:
- # Modify line to make it look like as it comes from svn diff.
- # With this modification no changes on the server side are required
- # to make upload.py work with Mercurial repos.
- # NOTE: for proper handling of moved/copied files, we have to use
- # the second filename.
- filename = m.group(2)
- svndiff.append("Index: %s" % filename)
- svndiff.append("=" * 67)
- filecount += 1
- logging.info(line)
- else:
- svndiff.append(line)
- if not filecount:
- ErrorExit("No valid patches found in output from hg diff")
- return "\n".join(svndiff) + "\n"
-
- def GetUnknownFiles(self):
- """Return a list of files unknown to the VCS."""
- args = []
- status = RunShell(["hg", "status", "--rev", self.base_rev, "-u", "."],
- silent_ok=True)
- unknown_files = []
- for line in status.splitlines():
- st, fn = line.split(" ", 1)
- if st == "?":
- unknown_files.append(fn)
- return unknown_files
-
- def get_hg_status(self, rev, path):
- # We'd like to use 'hg status -C path', but that is buggy
- # (see http://mercurial.selenic.com/bts/issue3023).
- # Instead, run 'hg status -C' without a path
- # and skim the output for the path we want.
- if self.status is None:
- if use_hg_shell:
- out = RunShell(["hg", "status", "-C", "--rev", rev])
- else:
- fui = FakeMercurialUI()
- ret = hg_commands.status(fui, self.repo, *[], **{'rev': [rev], 'copies': True})
- if ret:
- raise hg_util.Abort(ret)
- out = fui.output
- self.status = out.splitlines()
- for i in range(len(self.status)):
- # line is
- # A path
- # M path
- # etc
- line = to_slash(self.status[i])
- if line[2:] == path:
- if i+1 < len(self.status) and self.status[i+1][:2] == ' ':
- return self.status[i:i+2]
- return self.status[i:i+1]
- raise hg_util.Abort("no status for " + path)
-
- def GetBaseFile(self, filename):
- set_status("inspecting " + filename)
- # "hg status" and "hg cat" both take a path relative to the current subdir
- # rather than to the repo root, but "hg diff" has given us the full path
- # to the repo root.
- base_content = ""
- new_content = None
- is_binary = False
- oldrelpath = relpath = self._GetRelPath(filename)
- out = self.get_hg_status(self.base_rev, relpath)
- status, what = out[0].split(' ', 1)
- if len(out) > 1 and status == "A" and what == relpath:
- oldrelpath = out[1].strip()
- status = "M"
- if ":" in self.base_rev:
- base_rev = self.base_rev.split(":", 1)[0]
- else:
- base_rev = self.base_rev
- if status != "A":
- if use_hg_shell:
- base_content = RunShell(["hg", "cat", "-r", base_rev, oldrelpath], silent_ok=True)
- else:
- base_content = str(self.repo[base_rev][oldrelpath].data())
- is_binary = "\0" in base_content # Mercurial's heuristic
- if status != "R":
- new_content = open(relpath, "rb").read()
- is_binary = is_binary or "\0" in new_content
- if is_binary and base_content and use_hg_shell:
- # Fetch again without converting newlines
- base_content = RunShell(["hg", "cat", "-r", base_rev, oldrelpath],
- silent_ok=True, universal_newlines=False)
- if not is_binary or not self.IsImage(relpath):
- new_content = None
- return base_content, new_content, is_binary, status
-
-
-# NOTE: The SplitPatch function is duplicated in engine.py, keep them in sync.
-def SplitPatch(data):
- """Splits a patch into separate pieces for each file.
-
- Args:
- data: A string containing the output of svn diff.
-
- Returns:
- A list of 2-tuple (filename, text) where text is the svn diff output
- pertaining to filename.
- """
- patches = []
- filename = None
- diff = []
- for line in data.splitlines(True):
- new_filename = None
- if line.startswith('Index:'):
- unused, new_filename = line.split(':', 1)
- new_filename = new_filename.strip()
- elif line.startswith('Property changes on:'):
- unused, temp_filename = line.split(':', 1)
- # When a file is modified, paths use '/' between directories, however
- # when a property is modified '\' is used on Windows. Make them the same
- # otherwise the file shows up twice.
- temp_filename = to_slash(temp_filename.strip())
- if temp_filename != filename:
- # File has property changes but no modifications, create a new diff.
- new_filename = temp_filename
- if new_filename:
- if filename and diff:
- patches.append((filename, ''.join(diff)))
- filename = new_filename
- diff = [line]
- continue
- if diff is not None:
- diff.append(line)
- if filename and diff:
- patches.append((filename, ''.join(diff)))
- return patches
-
-
-def UploadSeparatePatches(issue, rpc_server, patchset, data, options):
- """Uploads a separate patch for each file in the diff output.
-
- Returns a list of [patch_key, filename] for each file.
- """
- patches = SplitPatch(data)
- rv = []
- for patch in patches:
- set_status("uploading patch for " + patch[0])
- if len(patch[1]) > MAX_UPLOAD_SIZE:
- print ("Not uploading the patch for " + patch[0] +
- " because the file is too large.")
- continue
- form_fields = [("filename", patch[0])]
- if not options.download_base:
- form_fields.append(("content_upload", "1"))
- files = [("data", "data.diff", patch[1])]
- ctype, body = EncodeMultipartFormData(form_fields, files)
- url = "/%d/upload_patch/%d" % (int(issue), int(patchset))
- print "Uploading patch for " + patch[0]
- response_body = rpc_server.Send(url, body, content_type=ctype)
- lines = response_body.splitlines()
- if not lines or lines[0] != "OK":
- StatusUpdate(" --> %s" % response_body)
- sys.exit(1)
- rv.append([lines[1], patch[0]])
- return rv
diff --git a/lib/codereview/test.sh b/lib/codereview/test.sh
deleted file mode 100755
index 13f2b9cda..000000000
--- a/lib/codereview/test.sh
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/bin/bash
-# Copyright 2011 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-# Test the code review plugin.
-# Assumes a local Rietveld is running using the App Engine SDK
-# at http://localhost:7777/
-#
-# dev_appserver.py -p 7777 $HOME/pub/rietveld
-
-codereview_script=$(pwd)/codereview.py
-server=localhost:7777
-master=/tmp/go.test
-clone1=/tmp/go.test1
-clone2=/tmp/go.test2
-export HGEDITOR=true
-
-must() {
- if ! "$@"; then
- echo "$@" failed >&2
- exit 1
- fi
-}
-
-not() {
- if "$@"; then
- false
- else
- true
- fi
-}
-
-status() {
- echo '+++' "$@" >&2
-}
-
-firstcl() {
- hg pending | sed 1q | tr -d ':'
-}
-
-# Initial setup.
-status Create repositories.
-rm -rf $master $clone1 $clone2
-mkdir $master
-cd $master
-must hg init .
-echo Initial state >file
-must hg add file
-must hg ci -m 'first commit' file
-must hg clone $master $clone1
-must hg clone $master $clone2
-
-echo "
-[ui]
-username=Grace R Emlin <gre@golang.org>
-[extensions]
-codereview=$codereview_script
-[codereview]
-server=$server
-" >>$clone1/.hg/hgrc
-cp $clone1/.hg/hgrc $clone2/.hg/hgrc
-
-status Codereview should be disabled.
-cd $clone1
-must hg status
-must not hg pending
-
-status Enabling code review.
-must mkdir lib lib/codereview
-must touch lib/codereview/codereview.cfg
-
-status Code review should work even without CONTRIBUTORS.
-must hg pending
-
-status Add CONTRIBUTORS.
-echo 'Grace R Emlin <gre@golang.org>' >CONTRIBUTORS
-must hg add lib/codereview/codereview.cfg CONTRIBUTORS
-
-status First submit.
-must hg submit -r gre@golang.org -m codereview \
- lib/codereview/codereview.cfg CONTRIBUTORS
-
-status Should see change in other client.
-cd $clone2
-must hg pull -u
-must test -f lib/codereview/codereview.cfg
-must test -f CONTRIBUTORS
-
-test_clpatch() {
- # The email address must be test@example.com to match
- # the test code review server's default user.
- # Clpatch will check.
-
- cd $clone1
- # Tried to use UTF-8 here to test that, but dev_appserver.py crashes. Ha ha.
- if false; then
- status Using UTF-8.
- name="Grácè T Emlïn <test@example.com>"
- else
- status Using ASCII.
- name="Grace T Emlin <test@example.com>"
- fi
- echo "$name" >>CONTRIBUTORS
- cat .hg/hgrc | sed "s/Grace.*/$name/" >/tmp/x && mv /tmp/x .hg/hgrc
- echo '
-Reviewer: gre@golang.org
-Description:
- CONTRIBUTORS: add $name
-Files:
- CONTRIBUTORS
-' | must hg change -i
- num=$(hg pending | sed 1q | tr -d :)
-
- status Patch CL.
- cd $clone2
- must hg clpatch $num
- must [ "$num" = "$(firstcl)" ]
- must hg submit $num
-
- status Issue should be open with no reviewers.
- must curl http://$server/api/$num >/tmp/x
- must not grep '"closed":true' /tmp/x
- must grep '"reviewers":\[\]' /tmp/x
-
- status Sync should close issue.
- cd $clone1
- must hg sync
- must curl http://$server/api/$num >/tmp/x
- must grep '"closed":true' /tmp/x
- must grep '"reviewers":\[\]' /tmp/x
- must [ "$(firstcl)" = "" ]
-}
-
-test_reviewer() {
- status Submit without reviewer should fail.
- cd $clone1
- echo dummy >dummy
- must hg add dummy
- echo '
-Description:
- no reviewer
-Files:
- dummy
-' | must hg change -i
- num=$(firstcl)
- must not hg submit $num
- must hg revert dummy
- must rm dummy
- must hg change -d $num
-}
-
-test_linearity() {
- status Linearity of changes.
- cd $clone1
- echo file1 >file1
- must hg add file1
- echo '
-Reviewer: gre@golang.org
-Description: file1
-Files: file1
- ' | must hg change -i
- must hg submit $(firstcl)
-
- cd $clone2
- echo file2 >file2
- must hg add file2
- echo '
-Reviewer: gre@golang.org
-Description: file2
-Files: file2
- ' | must hg change -i
- must not hg submit $(firstcl)
- must hg sync
- must hg submit $(firstcl)
-}
-
-test_restrict() {
- status Cannot use hg ci.
- cd $clone1
- echo file1a >file1a
- hg add file1a
- must not hg ci -m commit file1a
- must rm file1a
- must hg revert file1a
-
- status Cannot use hg rollback.
- must not hg rollback
-
- status Cannot use hg backout
- must not hg backout -r -1
-}
-
-test_reviewer
-test_clpatch
-test_linearity
-test_restrict
-status ALL TESTS PASSED.
diff --git a/misc/dashboard/godashboard/app.yaml b/misc/dashboard/godashboard/app.yaml
deleted file mode 100644
index ae2892497..000000000
--- a/misc/dashboard/godashboard/app.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-application: godashboard
-version: 9
-runtime: python
-api_version: 1
-
-handlers:
-- url: /favicon\.ico
- static_files: static/favicon.ico
- upload: static/favicon\.ico
-
-- url: /static
- static_dir: static
-
-- url: /(|project(|/login|/edit))
- script: project.py
diff --git a/misc/dashboard/godashboard/const.py b/misc/dashboard/godashboard/const.py
deleted file mode 100644
index d92d32aa9..000000000
--- a/misc/dashboard/godashboard/const.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2011 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-mail_from = "Go Dashboard <builder@golang.org>"
-mail_submit_to = "adg@golang.org"
-mail_submit_subject = "New Project Submitted"
diff --git a/misc/dashboard/godashboard/index.yaml b/misc/dashboard/godashboard/index.yaml
deleted file mode 100644
index f39299d5d..000000000
--- a/misc/dashboard/godashboard/index.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-indexes:
-
-- kind: BenchmarkResult
- ancestor: yes
- properties:
- - name: builder
- - name: __key__
- direction: desc
-
-- kind: BenchmarkResult
- ancestor: yes
- properties:
- - name: __key__
- direction: desc
-
-- kind: BenchmarkResults
- properties:
- - name: builder
- - name: benchmark
-
-- kind: Commit
- properties:
- - name: __key__
- direction: desc
-
-- kind: Commit
- ancestor: yes
- properties:
- - name: __key__
- direction: desc
-
-- kind: Project
- properties:
- - name: approved
- - name: category
- - name: name
-
-- kind: Project
- properties:
- - name: category
- - name: name
-
-# AUTOGENERATED
-
-# This index.yaml is automatically updated whenever the dev_appserver
-# detects that a new type of query is run. If you want to manage the
-# index.yaml file manually, remove the above marker line (the line
-# saying "# AUTOGENERATED"). If you want to manage some indexes
-# manually, move them above the marker line. The index.yaml file is
-# automatically uploaded to the admin console when you next deploy
-# your application using appcfg.py.
diff --git a/misc/dashboard/godashboard/project-edit.html b/misc/dashboard/godashboard/project-edit.html
deleted file mode 100644
index 8ca5b22a3..000000000
--- a/misc/dashboard/godashboard/project-edit.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="http://www.google.com/jsapi"></script>
-<script>
-google.load("jquery", "1");
-google.load("jqueryui", "1.8.2");
-</script>
-</head>
-<body>
-<form action="/project/edit?orig_name={{p.name}}" method="POST">
-Name:<br/>
-<input type="text" name="name" value="{{p.name|escape}}"><br/>
-Description:<br/>
-<input type="text" name="descr" value="{{p.descr|escape}}"><br/>
-Category:<br/>
-<input type="text" id="cats" name="category" value="{{p.category|escape}}"><br/>
-Tags: (comma-separated)<br/>
-<input type="text" id="tags" name="tags" value="{{tags}}"><br/>
-Web URL:<br/>
-<input type="text" name="web_url" value="{{p.web_url|escape}}"><br/>
-Approved: <input type="checkbox" name="approved" value="1" {% if p.approved %}checked{% endif %}><br/>
-<br/>
-<input type="submit" name="do" value="Save">
-<input type="submit" name="do" value="Delete" onClick="javascript:return confirm('Delete this?');">
-</form>
-<script>
-var tags = [
-{% for t in taglist %}
- "{{t}}"{% if not forloop.last %},{% endif %}
-{% endfor %}
-];
-var cats = [
-{% for c in catlist %}
- "{{c}}"{% if not forloop.last %},{% endif %}
-{% endfor %}
-];
-
-google.setOnLoadCallback(function() {
- $('#tags').autocomplete({source:tags});
- $('#cats').autocomplete({source:cats});
-});
-</script>
-</body>
-</html>
diff --git a/misc/dashboard/godashboard/project-notify.txt b/misc/dashboard/godashboard/project-notify.txt
deleted file mode 100644
index f55bf6421..000000000
--- a/misc/dashboard/godashboard/project-notify.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-A new project has been submitted:
-
-Name: {{project.name}}
-Description: {{project.descr}}
-URL: {{project.web_url}}
-
-To edit/approve/delete:
-http://godashboard.appspot.com/project/edit?name={{project.name|toutf8|urlencode}}
-
diff --git a/misc/dashboard/godashboard/project.html b/misc/dashboard/godashboard/project.html
deleted file mode 100644
index 2d2429461..000000000
--- a/misc/dashboard/godashboard/project.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!DOCTYPE HTML>
-<html>
- <head>
- <title>Go Projects</title>
- <link rel="stylesheet" type="text/css" href="static/style.css">
- </head>
-
- <body>
- <ul class="menu"><li><a href="http://golang.org/">golang.org</a></li></ul>
- <h1>Go Projects</h1>
-
- <p>
- These are external projects and not endorsed or supported by the Go project.
- </p>
-
- <h2>Projects</h2>
-
- <div class="submit">
- <h3>Submit a Project</h3>
- <p>
- Using this form you can submit a project to be included in the list.
- </p>
- <form action="/project" method="POST">
- <table>
- <tr><td>Name:<td><input type="text" name="name">
- <tr><td>Description:<td><input type="text" name="descr">
- <tr><td>URL:<td><input type="text" name="web_url">
- <tr><td>&nbsp;<td><input type="submit" value="Send">
- {% if submitMsg %}
- <tr><td class="msg" colspan="2">{{ submitMsg }}</td></tr>
- {% endif %}
- </table>
- </form>
- </div>
-
- <p>
- Filter by tag:
- {% if tag %}
- <a href="/project">all</a>
- {% else %}
- <b>all</b>
- {% endif %}
- {% for t in tags %}
- {% ifequal t tag %}
- <b>{{t}}</b>
- {% else %}
- <a href="?tag={{t}}">{{t}}</a>
- {% endifequal %}
- {% endfor %}
- </p>
-
- {% for r in projects %}
- {% ifchanged r.category %}
- {% if not forloop.first %}
- </ul>
- {% endif %}
- <h3>{{r.category}}</h3>
- <ul>
- {% endifchanged %}
- <li{% if not r.approved %} class="unapproved"{% endif %}>
- {% if admin %}[<a href="/project/edit?name={{r.name}}">edit</a>]{% endif %}
- <a class="name" href="{{r.web_url}}">{{r.name}}</a> - {{r.descr}}
- {% for tag in r.tags %}
- <span class="tag">{{tag}}</span>
- {% endfor %}
- </li>
- {% if forloop.last %}
- </ul>
- {% endif %}
- {% endfor %}
- </ul>
-
- </body>
-</html>
diff --git a/misc/dashboard/godashboard/project.py b/misc/dashboard/godashboard/project.py
deleted file mode 100644
index b13599d5e..000000000
--- a/misc/dashboard/godashboard/project.py
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 2010 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-from google.appengine.api import mail
-from google.appengine.api import memcache
-from google.appengine.api import users
-from google.appengine.ext import db
-from google.appengine.ext import webapp
-from google.appengine.ext.webapp import template
-from google.appengine.ext.webapp.util import run_wsgi_app
-import os
-import sets
-
-# local imports
-import toutf8
-import const
-
-template.register_template_library('toutf8')
-
-class Project(db.Model):
- name = db.StringProperty(indexed=True)
- descr = db.StringProperty()
- web_url = db.StringProperty()
- category = db.StringProperty(indexed=True)
- tags = db.ListProperty(str)
- approved = db.BooleanProperty(indexed=True)
-
-CacheTimeout = 3600
-
-class ProjectPage(webapp.RequestHandler):
-
- def get(self):
- admin = users.is_current_user_admin()
- if self.request.path == "/project/login":
- self.redirect(users.create_login_url("/project"))
- elif self.request.path == "/project/edit" and admin:
- self.edit()
- else:
- self.list()
-
- def post(self):
- if self.request.path == "/project/edit":
- self.edit(True)
- else:
- data = dict(map(lambda x: (x, self.request.get(x)), ["name","descr","web_url"]))
- if reduce(lambda x, y: x or not y, data.values(), False):
- data["submitMsg"] = "You must complete all the fields."
- self.list(data)
- return
- p = Project.get_by_key_name("proj-"+data["name"])
- if p is not None:
- data["submitMsg"] = "A project by this name already exists."
- self.list(data)
- return
- p = Project(key_name="proj-"+data["name"], **data)
- p.put()
-
- path = os.path.join(os.path.dirname(__file__), 'project-notify.txt')
- mail.send_mail(
- sender=const.mail_from,
- to=const.mail_submit_to,
- subject=const.mail_submit_subject,
- body=template.render(path, {'project': p}))
-
- self.list({"submitMsg": "Your project has been submitted."})
-
- def list(self, additional_data={}):
- cache_key = 'view-project-data'
- tag = self.request.get('tag', None)
- if tag:
- cache_key += '-'+tag
- data = memcache.get(cache_key)
- admin = users.is_current_user_admin()
- if admin or not data:
- projects = Project.all().order('category').order('name')
- if not admin:
- projects = projects.filter('approved =', True)
- projects = list(projects)
-
- tags = sets.Set()
- for p in projects:
- for t in p.tags:
- tags.add(t)
-
- if tag:
- projects = filter(lambda x: tag in x.tags, projects)
-
- data = {}
- data['tag'] = tag
- data['tags'] = tags
- data['projects'] = projects
- data['admin']= admin
- if not admin:
- memcache.set(cache_key, data, time=CacheTimeout)
-
- for k, v in additional_data.items():
- data[k] = v
-
- self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
- path = os.path.join(os.path.dirname(__file__), 'project.html')
- self.response.out.write(template.render(path, data))
-
- def edit(self, save=False):
- if save:
- name = self.request.get("orig_name")
- else:
- name = self.request.get("name")
-
- p = Project.get_by_key_name("proj-"+name)
- if not p:
- self.response.out.write("Couldn't find that Project.")
- return
-
- if save:
- if self.request.get("do") == "Delete":
- p.delete()
- else:
- for f in ['name', 'descr', 'web_url', 'category']:
- setattr(p, f, self.request.get(f, None))
- p.approved = self.request.get("approved") == "1"
- p.tags = filter(lambda x: x, self.request.get("tags", "").split(","))
- p.put()
- memcache.delete('view-project-data')
- self.redirect('/project')
- return
-
- # get all project categories and tags
- cats, tags = sets.Set(), sets.Set()
- for r in Project.all():
- cats.add(r.category)
- for t in r.tags:
- tags.add(t)
-
- self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
- path = os.path.join(os.path.dirname(__file__), 'project-edit.html')
- self.response.out.write(template.render(path, {
- "taglist": tags, "catlist": cats, "p": p, "tags": ",".join(p.tags) }))
-
- def redirect(self, url):
- self.response.set_status(302)
- self.response.headers.add_header("Location", url)
-
-def main():
- app = webapp.WSGIApplication([
- ('/.*', ProjectPage),
- ], debug=True)
- run_wsgi_app(app)
-
-if __name__ == '__main__':
- main()
diff --git a/misc/dashboard/godashboard/static/favicon.ico b/misc/dashboard/godashboard/static/favicon.ico
deleted file mode 100644
index 48854ff3b..000000000
--- a/misc/dashboard/godashboard/static/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/misc/dashboard/godashboard/static/style.css b/misc/dashboard/godashboard/static/style.css
deleted file mode 100644
index ad7038c3d..000000000
--- a/misc/dashboard/godashboard/static/style.css
+++ /dev/null
@@ -1,136 +0,0 @@
-body {
- font-family: sans-serif;
- margin: 0;
- padding: 0;
-}
-h1, h2, h3, ul.menu, table, p {
- padding: 0 0.5em;
-}
-h1, h2 {
- margin: 0;
- background: #eee;
-}
-h1 {
- border-bottom: 1px solid #ccc;
- font-size: 1em;
- padding: 0.5em;
- margin-bottom: 0.5em;
- text-align: right;
-}
-h2 {
- border-top: 1px solid #ccc;
- padding-left: 0.2em;
-}
-.submit {
- float: right;
- border: 1px solid #ccc;
- width: 350px;
- padding-bottom: 1em;
- margin: 0.5em;
- background: #eee;
-}
-.submit table {
- width: 100%;
-}
-.submit input[type=text] {
- width: 200px;
-}
-.submit .msg {
- text-align: center;
- color: red;
-}
-table.alternate {
- white-space: nowrap;
- margin: 0.5em 0;
-}
-table.alternate td,
-table.alternate th {
- padding: 0.1em 0.25em;
- font-size: small;
-}
-table.alternate tr td:last-child {
- padding-right: 0;
-}
-table.alternate tr:nth-child(2n) {
- background-color: #f0f0f0;
-}
-td.result {
- text-align: center;
-}
-span.hash {
- font-family: monospace;
- font-size: small;
- color: #aaa;
-}
-td.date {
- color: #aaa;
-}
-td.ok {
- text-align: center;
- color: #060;
- font-weight: bold;
-}
-td.ok a {
- cursor: help;
-}
-th {
- text-align: left;
-}
-th.builder {
- text-align: center;
- font-weight: bold;
-}
-a.fail {
- color: #F00;
-}
-a.fail:visited {
- color: #900;
-}
-ul.menu {
- margin: 0;
- padding: 0;
- list-style-type: none;
-}
-ul.menu li {
- float: left;
- display: block;
- font-size: 1em;
- padding: 0.5em;
- background: #EEF;
- margin-left: 0.5em;
- border-left: 1px solid #999;
- border-right: 1px solid #999;
-}
-div.paginate {
- padding: 0.5em;
-}
-div.paginate a {
- padding: 0.5em;
- margin-right: 0.5em;
- background: #eee;
- color: blue;
-}
-div.paginate a.inactive {
- color: #999;
-}
-td.time {
- font-family: monospace;
-}
-.notice {
- padding: 10px;
- margin: 10px;
- border: 2px solid #FF6;
- background: #900;
- color: white;
- text-align: center;
-}
-.notice a {
- color: #FF6;
-}
-.unapproved a.name {
- color: red;
-}
-.tag {
- font-size: 0.8em;
- color: #666;
-}
diff --git a/misc/dashboard/godashboard/toutf8.py b/misc/dashboard/godashboard/toutf8.py
deleted file mode 100644
index 544c681b6..000000000
--- a/misc/dashboard/godashboard/toutf8.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2010 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-# This is a Django custom template filter to work around the
-# fact that GAE's urlencode filter doesn't handle unicode strings.
-
-from google.appengine.ext import webapp
-
-register = webapp.template.create_template_register()
-
-@register.filter
-def toutf8(value):
- return value.encode("utf-8")
diff --git a/misc/emacs/go-mode.el b/misc/emacs/go-mode.el
index 33ee7022f..214c19685 100644
--- a/misc/emacs/go-mode.el
+++ b/misc/emacs/go-mode.el
@@ -33,8 +33,8 @@
;; Operators (punctuation)
(modify-syntax-entry ?+ "." st)
(modify-syntax-entry ?- "." st)
- (modify-syntax-entry ?* "." st)
- (modify-syntax-entry ?/ "." st)
+ (modify-syntax-entry ?* ". 23" st) ; also part of comments
+ (modify-syntax-entry ?/ (if (featurep 'xemacs) ". 1456" ". 124b") st) ; ditto
(modify-syntax-entry ?% "." st)
(modify-syntax-entry ?& "." st)
(modify-syntax-entry ?| "." st)
@@ -50,6 +50,9 @@
(modify-syntax-entry ?` "." st)
(modify-syntax-entry ?\\ "." st)
+ ;; Newline is a comment-ender.
+ (modify-syntax-entry ?\n "> b" st)
+
st)
"Syntax table for Go mode.")
@@ -179,6 +182,10 @@ to and including character (1- go-mode-mark-comment-end)).")
marked from the beginning up to this point.")
(make-variable-buffer-local 'go-mode-mark-nesting-end)
+(defun go-mode-mark-clear-cs (b e l)
+ "An after-change-function that removes the go-mode-cs text property"
+ (remove-text-properties b e '(go-mode-cs)))
+
(defun go-mode-mark-clear-cache (b e)
"A before-change-function that clears the comment/string and
nesting caches from the modified point on."
@@ -243,8 +250,8 @@ comment or string."
(unless pos
(setq pos (point)))
- (when (> pos go-mode-mark-cs-end)
- (go-mode-mark-cs pos))
+ (when (>= pos go-mode-mark-cs-end)
+ (go-mode-mark-cs (1+ pos)))
(get-text-property pos 'go-mode-cs))
(defun go-mode-mark-cs (end)
@@ -435,7 +442,7 @@ if no further tokens of the type exist."
(when (search-forward "\n" (cdr cs) t)
(put-text-property
(car cs) (cdr cs) 'font-lock-multline t))
- (set-match-data (list (car cs) (cdr cs) (current-buffer)))
+ (set-match-data (list (car cs) (copy-marker (cdr cs))))
(goto-char (cdr cs))
(setq result t))
;; Wrong type. Look for next comment/string after this one.
@@ -545,8 +552,9 @@ token on the line."
(not (looking-at go-mode-non-terminating-keywords-regexp)))))))
(defun go-mode-whitespace-p (char)
- "Is char whitespace in the syntax table for go."
- (eq 32 (char-syntax char)))
+ "Is newline, or char whitespace in the syntax table for go."
+ (or (eq char ?\n)
+ (= (char-syntax char) ?\ )))
(defun go-mode-backward-skip-comments ()
"Skip backward over comments and whitespace."
@@ -589,7 +597,7 @@ indented one level."
(cond
((and cs (save-excursion
(goto-char (car cs))
- (looking-at "\\s\"")))
+ (looking-at "`")))
;; Inside a multi-line string. Don't mess with indentation.
nil)
(cs
@@ -698,13 +706,18 @@ functions, and some types. It also provides indentation that is
;; Remove stale text properties
(save-restriction
(widen)
- (remove-text-properties 1 (point-max)
- '(go-mode-cs nil go-mode-nesting nil)))
+ (let ((modified (buffer-modified-p)))
+ (remove-text-properties 1 (point-max)
+ '(go-mode-cs nil go-mode-nesting nil))
+ ;; remove-text-properties marks the buffer modified. undo that if it
+ ;; wasn't originally marked modified.
+ (set-buffer-modified-p modified)))
;; Reset the syntax mark caches
(setq go-mode-mark-cs-end 1
go-mode-mark-nesting-end 1)
(add-hook 'before-change-functions #'go-mode-mark-clear-cache nil t)
+ (add-hook 'after-change-functions #'go-mode-mark-clear-cs nil t)
;; Indentation
(set (make-local-variable 'indent-line-function)
@@ -716,7 +729,20 @@ functions, and some types. It also provides indentation that is
(set (make-local-variable 'comment-end) "")
;; Go style
- (setq indent-tabs-mode t))
+ (setq indent-tabs-mode t)
+
+ ;; Handle unit test failure output in compilation-mode
+ ;;
+ ;; Note the final t argument to add-to-list for append, ie put these at the
+ ;; *ends* of compilation-error-regexp-alist[-alist]. We want go-test to be
+ ;; handled first, otherwise other elements will match that don't work, and
+ ;; those alists are traversed in *reverse* order:
+ ;; http://lists.gnu.org/archive/html/bug-gnu-emacs/2001-12/msg00674.html
+ (when (and (boundp 'compilation-error-regexp-alist)
+ (boundp 'compilation-error-regexp-alist-alist))
+ (add-to-list 'compilation-error-regexp-alist 'go-test t)
+ (add-to-list 'compilation-error-regexp-alist-alist
+ '(go-test . ("^\t+\\([^()\t\n]+\\):\\([0-9]+\\):? .*$" 1 2)) t)))
;;;###autoload
(add-to-list 'auto-mode-alist (cons "\\.go$" #'go-mode))
@@ -737,36 +763,79 @@ Replace the current buffer on success; display errors on failure."
(interactive)
(let ((currconf (current-window-configuration)))
- (let ((srcbuf (current-buffer)))
- (with-temp-buffer
- (let ((outbuf (current-buffer))
- (errbuf (get-buffer-create "*Gofmt Errors*"))
- (coding-system-for-read 'utf-8) ;; use utf-8 with subprocesses
- (coding-system-for-write 'utf-8))
- (with-current-buffer errbuf (erase-buffer))
- (with-current-buffer srcbuf
- (save-restriction
- (let (deactivate-mark)
- (widen)
- (if (= 0 (shell-command-on-region (point-min) (point-max) "gofmt"
- outbuf nil errbuf))
- ;; restore window config
- ;; gofmt succeeded: replace the current buffer with outbuf,
- ;; restore the mark and point, and discard errbuf.
- (let ((old-mark (mark t)) (old-point (point)))
- (set-window-configuration currconf)
- (erase-buffer)
- (insert-buffer-substring outbuf)
- (goto-char (min old-point (point-max)))
- (if old-mark (push-mark (min old-mark (point-max)) t))
- (kill-buffer errbuf))
-
- ;; gofmt failed: display the errors
- (display-buffer errbuf)))))
-
- ;; Collapse any window opened on outbuf if shell-command-on-region
- ;; displayed it.
- (delete-windows-on outbuf))))))
+ (let ((srcbuf (current-buffer))
+ (filename buffer-file-name)
+ (patchbuf (get-buffer-create "*Gofmt patch*")))
+ (with-current-buffer patchbuf
+ (let ((errbuf (get-buffer-create "*Gofmt Errors*"))
+ (coding-system-for-read 'utf-8) ;; use utf-8 with subprocesses
+ (coding-system-for-write 'utf-8))
+ (with-current-buffer errbuf
+ (toggle-read-only 0)
+ (erase-buffer))
+ (with-current-buffer srcbuf
+ (save-restriction
+ (let (deactivate-mark)
+ (widen)
+ ; If this is a new file, diff-mode can't apply a
+ ; patch to a non-exisiting file, so replace the buffer
+ ; completely with the output of 'gofmt'.
+ ; If the file exists, patch it to keep the 'undo' list happy.
+ (let* ((newfile (not (file-exists-p filename)))
+ (flag (if newfile "" " -d")))
+ (if (= 0 (shell-command-on-region (point-min) (point-max)
+ (concat "gofmt" flag)
+ patchbuf nil errbuf))
+ ; gofmt succeeded: replace buffer or apply patch hunks.
+ (let ((old-point (point))
+ (old-mark (mark t)))
+ (kill-buffer errbuf)
+ (if newfile
+ ; New file, replace it (diff-mode won't work)
+ (gofmt-replace-buffer srcbuf patchbuf)
+ ; Existing file, patch it
+ (gofmt-apply-patch filename srcbuf patchbuf))
+ (goto-char (min old-point (point-max)))
+ ;; Restore the mark and point
+ (if old-mark (push-mark (min old-mark (point-max)) t))
+ (set-window-configuration currconf))
+
+ ;; gofmt failed: display the errors
+ (gofmt-process-errors filename errbuf))))))
+
+ ;; Collapse any window opened on outbuf if shell-command-on-region
+ ;; displayed it.
+ (delete-windows-on patchbuf)))
+ (kill-buffer patchbuf))))
+
+(defun gofmt-replace-buffer (srcbuf patchbuf)
+ (with-current-buffer srcbuf
+ (erase-buffer)
+ (insert-buffer-substring patchbuf)))
+
+(defconst gofmt-stdin-tag "<standard input>")
+
+(defun gofmt-apply-patch (filename srcbuf patchbuf)
+ (require 'diff-mode)
+ ;; apply all the patch hunks
+ (with-current-buffer patchbuf
+ (replace-regexp "^--- /tmp/gofmt[0-9]*" (concat "--- " filename)
+ nil (point-min) (point-max))
+ (condition-case nil
+ (while t
+ (diff-hunk-next)
+ (diff-apply-hunk))
+ ;; When there's no more hunks, diff-hunk-next signals an error, ignore it
+ (error nil))))
+
+(defun gofmt-process-errors (filename errbuf)
+ ;; Convert the gofmt stderr to something understood by the compilation mode.
+ (with-current-buffer errbuf
+ (beginning-of-buffer)
+ (insert "gofmt errors:\n")
+ (replace-string gofmt-stdin-tag (file-name-nondirectory filename) nil (point-min) (point-max))
+ (display-buffer errbuf)
+ (compilation-mode)))
;;;###autoload
(defun gofmt-before-save ()
diff --git a/src/all.bash b/src/all.bash
index 932b65dc0..488ca4679 100755
--- a/src/all.bash
+++ b/src/all.bash
@@ -8,6 +8,8 @@ if [ ! -f make.bash ]; then
echo 'all.bash must be run from $GOROOT/src' 1>&2
exit 1
fi
+OLDPATH="$PATH"
. ./make.bash --no-banner
-bash run.bash --no-rebuild --banner
+bash run.bash --no-rebuild
+PATH="$OLDPATH"
$GOTOOLDIR/dist banner # print build info
diff --git a/src/all.bat b/src/all.bat
index e3b61c012..8edfd7f43 100644
--- a/src/all.bat
+++ b/src/all.bat
@@ -11,10 +11,12 @@ echo all.bat must be run from go\src
goto end
:ok
+set OLDPATH=%PATH%
call make.bat --no-banner --no-local
if %GOBUILDFAIL%==1 goto end
call run.bat --no-rebuild --no-local
if %GOBUILDFAIL%==1 goto end
+set PATH=%OLDPATH%
go tool dist banner
:end
diff --git a/src/cmd/5c/list.c b/src/cmd/5c/list.c
index ab0fae83c..30b88400f 100644
--- a/src/cmd/5c/list.c
+++ b/src/cmd/5c/list.c
@@ -140,7 +140,7 @@ Dconv(Fmt *fp)
{
char str[STRINGSZ];
Adr *a;
- char *op;
+ const char *op;
int v;
a = va_arg(fp->args, Adr*);
@@ -169,7 +169,7 @@ Dconv(Fmt *fp)
case D_SHIFT:
v = a->offset;
- op = "<<>>->@>" + (((v>>5) & 3) << 1);
+ op = &"<<>>->@>"[(((v>>5) & 3) << 1)];
if(v & (1<<4))
sprint(str, "R%d%c%cR%d", v&15, op[0], op[1], (v>>8)&15);
else
diff --git a/src/cmd/5g/gobj.c b/src/cmd/5g/gobj.c
index b562ba888..2763e7b16 100644
--- a/src/cmd/5g/gobj.c
+++ b/src/cmd/5g/gobj.c
@@ -198,7 +198,8 @@ dumpfuncs(void)
if(isblank(pl->name))
continue;
- if(debug['S']) {
+ // -S prints code; -SS prints code and data
+ if(debug['S'] && (pl->name || debug['S']>1)) {
s = S;
if(pl->name != N)
s = pl->name->sym;
diff --git a/src/cmd/5g/list.c b/src/cmd/5g/list.c
index 9bc3a9a9a..f0da24742 100644
--- a/src/cmd/5g/list.c
+++ b/src/cmd/5g/list.c
@@ -83,7 +83,7 @@ int
Dconv(Fmt *fp)
{
char str[STRINGSZ];
- char *op;
+ const char *op;
Addr *a;
int i;
int32 v;
@@ -119,7 +119,7 @@ Dconv(Fmt *fp)
case D_SHIFT:
v = a->offset;
- op = "<<>>->@>" + (((v>>5) & 3) << 1);
+ op = &"<<>>->@>"[(((v>>5) & 3) << 1)];
if(v & (1<<4))
sprint(str, "R%d%c%cR%d", v&15, op[0], op[1], (v>>8)&15);
else
diff --git a/src/cmd/5g/reg.c b/src/cmd/5g/reg.c
index 93724d032..393266973 100644
--- a/src/cmd/5g/reg.c
+++ b/src/cmd/5g/reg.c
@@ -695,8 +695,8 @@ brk:
}
}
}
- if(r1 != R) {
- r1->link = freer;
+ if(lastr != R) {
+ lastr->link = freer;
freer = firstr;
}
diff --git a/src/cmd/5l/list.c b/src/cmd/5l/list.c
index 7b623d78a..293fee3c6 100644
--- a/src/cmd/5l/list.c
+++ b/src/cmd/5l/list.c
@@ -161,7 +161,7 @@ int
Dconv(Fmt *fp)
{
char str[STRINGSZ];
- char *op;
+ const char *op;
Adr *a;
int32 v;
@@ -191,7 +191,7 @@ Dconv(Fmt *fp)
case D_SHIFT:
v = a->offset;
- op = "<<>>->@>" + (((v>>5) & 3) << 1);
+ op = &"<<>>->@>"[(((v>>5) & 3) << 1)];
if(v & (1<<4))
snprint(str, sizeof str, "R%d%c%cR%d", v&15, op[0], op[1], (v>>8)&15);
else
diff --git a/src/cmd/6g/gobj.c b/src/cmd/6g/gobj.c
index 80de2f750..8c9208374 100644
--- a/src/cmd/6g/gobj.c
+++ b/src/cmd/6g/gobj.c
@@ -244,7 +244,8 @@ dumpfuncs(void)
if(isblank(pl->name))
continue;
- if(debug['S']) {
+ // -S prints code; -SS prints code and data
+ if(debug['S'] && (pl->name || debug['S']>1)) {
s = S;
if(pl->name != N)
s = pl->name->sym;
diff --git a/src/cmd/6g/reg.c b/src/cmd/6g/reg.c
index bed9f8da6..049c63f17 100644
--- a/src/cmd/6g/reg.c
+++ b/src/cmd/6g/reg.c
@@ -780,8 +780,8 @@ brk:
p->to.branch = p->to.branch->link;
}
- if(r1 != R) {
- r1->link = freer;
+ if(lastr != R) {
+ lastr->link = freer;
freer = firstr;
}
diff --git a/src/cmd/8g/gobj.c b/src/cmd/8g/gobj.c
index d8c8f5ab9..da0055cd9 100644
--- a/src/cmd/8g/gobj.c
+++ b/src/cmd/8g/gobj.c
@@ -242,7 +242,8 @@ dumpfuncs(void)
if(isblank(pl->name))
continue;
- if(debug['S']) {
+ // -S prints code; -SS prints code and data
+ if(debug['S'] && (pl->name || debug['S']>1)) {
s = S;
if(pl->name != N)
s = pl->name->sym;
diff --git a/src/cmd/8g/reg.c b/src/cmd/8g/reg.c
index 29270c820..45ffdf96c 100644
--- a/src/cmd/8g/reg.c
+++ b/src/cmd/8g/reg.c
@@ -677,8 +677,8 @@ brk:
p->to.branch = p->to.branch->link;
}
- if(r1 != R) {
- r1->link = freer;
+ if(lastr != R) {
+ lastr->link = freer;
freer = firstr;
}
diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go
index 7363f6d82..ad1c6bb8c 100644
--- a/src/cmd/api/goapi.go
+++ b/src/cmd/api/goapi.go
@@ -28,6 +28,7 @@ import (
"os/exec"
"path"
"path/filepath"
+ "runtime"
"sort"
"strconv"
"strings"
@@ -35,27 +36,31 @@ import (
// Flags
var (
+ // TODO(bradfitz): once Go 1.1 comes out, allow the -c flag to take a comma-separated
+ // list of files, rather than just one.
checkFile = flag.String("c", "", "optional filename to check API against")
- verbose = flag.Bool("v", false, "Verbose debugging")
+ allowNew = flag.Bool("allow_new", true, "allow API additions")
+ nextFile = flag.String("next", "", "optional filename of tentative upcoming API features for the next release. This file can be lazily maintained. It only affects the delta warnings from the -c file printed on success.")
+ verbose = flag.Bool("v", false, "verbose debugging")
+ forceCtx = flag.String("contexts", "", "optional comma-separated list of <goos>-<goarch>[-cgo] to override default contexts.")
)
+// contexts are the default contexts which are scanned, unless
+// overridden by the -contexts flag.
var contexts = []*build.Context{
{GOOS: "linux", GOARCH: "386", CgoEnabled: true},
{GOOS: "linux", GOARCH: "386"},
{GOOS: "linux", GOARCH: "amd64", CgoEnabled: true},
{GOOS: "linux", GOARCH: "amd64"},
+ {GOOS: "linux", GOARCH: "arm"},
{GOOS: "darwin", GOARCH: "386", CgoEnabled: true},
{GOOS: "darwin", GOARCH: "386"},
{GOOS: "darwin", GOARCH: "amd64", CgoEnabled: true},
{GOOS: "darwin", GOARCH: "amd64"},
{GOOS: "windows", GOARCH: "amd64"},
{GOOS: "windows", GOARCH: "386"},
-}
-
-func init() {
- for _, c := range contexts {
- c.Compiler = build.Default.Compiler
- }
+ {GOOS: "freebsd", GOARCH: "amd64"},
+ {GOOS: "freebsd", GOARCH: "386"},
}
func contextName(c *build.Context) string {
@@ -66,9 +71,49 @@ func contextName(c *build.Context) string {
return s
}
+func parseContext(c string) *build.Context {
+ parts := strings.Split(c, "-")
+ if len(parts) < 2 {
+ log.Fatalf("bad context: %q", c)
+ }
+ bc := &build.Context{
+ GOOS: parts[0],
+ GOARCH: parts[1],
+ }
+ if len(parts) == 3 {
+ if parts[2] == "cgo" {
+ bc.CgoEnabled = true
+ } else {
+ log.Fatalf("bad context: %q", c)
+ }
+ }
+ return bc
+}
+
+func setContexts() {
+ contexts = []*build.Context{}
+ for _, c := range strings.Split(*forceCtx, ",") {
+ contexts = append(contexts, parseContext(c))
+ }
+}
+
func main() {
flag.Parse()
+ if !strings.Contains(runtime.Version(), "weekly") {
+ if *nextFile != "" {
+ fmt.Printf("Go version is %q, ignoring -next %s\n", runtime.Version(), *nextFile)
+ *nextFile = ""
+ }
+ }
+
+ if *forceCtx != "" {
+ setContexts()
+ }
+ for _, c := range contexts {
+ c.Compiler = build.Default.Compiler
+ }
+
var pkgs []string
if flag.NArg() > 0 {
pkgs = flag.Args()
@@ -123,45 +168,86 @@ func main() {
}
sort.Strings(features)
+ fail := false
+ defer func() {
+ if fail {
+ os.Exit(1)
+ }
+ }()
+
bw := bufio.NewWriter(os.Stdout)
defer bw.Flush()
- if *checkFile != "" {
- bs, err := ioutil.ReadFile(*checkFile)
- if err != nil {
- log.Fatalf("Error reading file %s: %v", *checkFile, err)
- }
- v1 := strings.Split(strings.TrimSpace(string(bs)), "\n")
- sort.Strings(v1)
- v2 := features
- take := func(sl *[]string) string {
- s := (*sl)[0]
- *sl = (*sl)[1:]
- return s
- }
- changes := false
- for len(v1) > 0 || len(v2) > 0 {
- switch {
- case len(v2) == 0 || v1[0] < v2[0]:
- fmt.Fprintf(bw, "-%s\n", take(&v1))
- changes = true
- case len(v1) == 0 || v1[0] > v2[0]:
- fmt.Fprintf(bw, "+%s\n", take(&v2))
- changes = true
- default:
- take(&v1)
- take(&v2)
- }
- }
- if changes {
- bw.Flush()
- os.Exit(1)
- }
- } else {
+ if *checkFile == "" {
for _, f := range features {
fmt.Fprintf(bw, "%s\n", f)
}
+ return
+ }
+
+ var required []string
+ for _, filename := range []string{*checkFile} {
+ required = append(required, fileFeatures(filename)...)
+ }
+ sort.Strings(required)
+
+ var optional = make(map[string]bool) // feature => true
+ if *nextFile != "" {
+ for _, feature := range fileFeatures(*nextFile) {
+ optional[feature] = true
+ }
+ }
+
+ take := func(sl *[]string) string {
+ s := (*sl)[0]
+ *sl = (*sl)[1:]
+ return s
+ }
+
+ for len(required) > 0 || len(features) > 0 {
+ switch {
+ case len(features) == 0 || required[0] < features[0]:
+ fmt.Fprintf(bw, "-%s\n", take(&required))
+ fail = true // broke compatibility
+ case len(required) == 0 || required[0] > features[0]:
+ newFeature := take(&features)
+ if optional[newFeature] {
+ // Known added feature to the upcoming release.
+ // Delete it from the map so we can detect any upcoming features
+ // which were never seen. (so we can clean up the nextFile)
+ delete(optional, newFeature)
+ } else {
+ fmt.Fprintf(bw, "+%s\n", newFeature)
+ if !*allowNew {
+ fail = true // we're in lock-down mode for next release
+ }
+ }
+ default:
+ take(&required)
+ take(&features)
+ }
+ }
+
+ var missing []string
+ for feature := range optional {
+ missing = append(missing, feature)
+ }
+ sort.Strings(missing)
+ for _, feature := range missing {
+ fmt.Fprintf(bw, "(in next file, but not in API) -%s\n", feature)
+ }
+}
+
+func fileFeatures(filename string) []string {
+ bs, err := ioutil.ReadFile(filename)
+ if err != nil {
+ log.Fatalf("Error reading file %s: %v", filename, err)
+ }
+ text := strings.TrimSpace(string(bs))
+ if text == "" {
+ return nil
}
+ return strings.Split(text, "\n")
}
// pkgSymbol represents a symbol in a package
diff --git a/src/cmd/cc/scon.c b/src/cmd/cc/scon.c
index 193331f77..f6031a5be 100644
--- a/src/cmd/cc/scon.c
+++ b/src/cmd/cc/scon.c
@@ -175,7 +175,10 @@ evconst(Node *n)
break;
case OLSHR:
- v = (uvlong)l->vconst >> r->vconst;
+ if(l->type->width != sizeof(uvlong))
+ v = ((uvlong)l->vconst & 0xffffffffULL) >> r->vconst;
+ else
+ v = (uvlong)l->vconst >> r->vconst;
break;
case OASHR:
diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
index 7449f04c4..60165961a 100644
--- a/src/cmd/cgo/main.go
+++ b/src/cmd/cgo/main.go
@@ -22,6 +22,7 @@ import (
"path/filepath"
"reflect"
"runtime"
+ "sort"
"strings"
)
@@ -33,9 +34,8 @@ type Package struct {
GccOptions []string
CgoFlags map[string]string // #cgo flags (CFLAGS, LDFLAGS)
Written map[string]bool
- Name map[string]*Name // accumulated Name from Files
- Typedef map[string]ast.Expr // accumulated Typedef from Files
- ExpFunc []*ExpFunc // accumulated ExpFunc from Files
+ Name map[string]*Name // accumulated Name from Files
+ ExpFunc []*ExpFunc // accumulated ExpFunc from Files
Decl []ast.Decl
GoFiles []string // list of Go files
GccFiles []string // list of gcc output files
@@ -51,7 +51,15 @@ type File struct {
Ref []*Ref // all references to C.xxx in AST
ExpFunc []*ExpFunc // exported functions for this file
Name map[string]*Name // map from Go name to Name
- Typedef map[string]ast.Expr // translations of all necessary types from C
+}
+
+func nameKeys(m map[string]*Name) []string {
+ var ks []string
+ for k := range m {
+ ks = append(ks, k)
+ }
+ sort.Strings(ks)
+ return ks
}
// A Ref refers to an expression of the form C.xxx in the AST.
diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go
index 814250c2e..5dfc16a02 100644
--- a/src/cmd/cgo/out.go
+++ b/src/cmd/cgo/out.go
@@ -71,7 +71,8 @@ func (p *Package) writeDefs() {
}
cVars := make(map[string]bool)
- for _, n := range p.Name {
+ for _, key := range nameKeys(p.Name) {
+ n := p.Name[key]
if n.Kind != "var" {
continue
}
@@ -94,14 +95,16 @@ func (p *Package) writeDefs() {
}
fmt.Fprintf(fc, "\n")
- for _, n := range p.Name {
+ for _, key := range nameKeys(p.Name) {
+ n := p.Name[key]
if n.Const != "" {
fmt.Fprintf(fgo2, "const _Cconst_%s = %s\n", n.Go, n.Const)
}
}
fmt.Fprintf(fgo2, "\n")
- for _, n := range p.Name {
+ for _, key := range nameKeys(p.Name) {
+ n := p.Name[key]
if n.FuncType != nil {
p.writeDefsFunc(fc, fgo2, n)
}
@@ -372,7 +375,8 @@ func (p *Package) writeOutput(f *File, srcfile string) {
fmt.Fprintf(fgcc, "%s\n", f.Preamble)
fmt.Fprintf(fgcc, "%s\n", gccProlog)
- for _, n := range f.Name {
+ for _, key := range nameKeys(f.Name) {
+ n := f.Name[key]
if n.FuncType != nil {
p.writeOutputFunc(fgcc, n)
}
@@ -736,25 +740,23 @@ func c(repr string, args ...interface{}) *TypeRepr {
// Map predeclared Go types to Type.
var goTypes = map[string]*Type{
- "bool": {Size: 1, Align: 1, C: c("uchar")},
- "byte": {Size: 1, Align: 1, C: c("uchar")},
- "int": {Size: 4, Align: 4, C: c("int")},
- "uint": {Size: 4, Align: 4, C: c("uint")},
- "rune": {Size: 4, Align: 4, C: c("int")},
- "int8": {Size: 1, Align: 1, C: c("schar")},
- "uint8": {Size: 1, Align: 1, C: c("uchar")},
- "int16": {Size: 2, Align: 2, C: c("short")},
- "uint16": {Size: 2, Align: 2, C: c("ushort")},
- "int32": {Size: 4, Align: 4, C: c("int")},
- "uint32": {Size: 4, Align: 4, C: c("uint")},
- "int64": {Size: 8, Align: 8, C: c("int64")},
- "uint64": {Size: 8, Align: 8, C: c("uint64")},
- "float": {Size: 4, Align: 4, C: c("float")},
- "float32": {Size: 4, Align: 4, C: c("float")},
- "float64": {Size: 8, Align: 8, C: c("double")},
- "complex": {Size: 8, Align: 8, C: c("__complex float")},
- "complex64": {Size: 8, Align: 8, C: c("__complex float")},
- "complex128": {Size: 16, Align: 16, C: c("__complex double")},
+ "bool": {Size: 1, Align: 1, C: c("GoUint8")},
+ "byte": {Size: 1, Align: 1, C: c("GoUint8")},
+ "int": {Size: 4, Align: 4, C: c("GoInt")},
+ "uint": {Size: 4, Align: 4, C: c("GoUint")},
+ "rune": {Size: 4, Align: 4, C: c("GoInt32")},
+ "int8": {Size: 1, Align: 1, C: c("GoInt8")},
+ "uint8": {Size: 1, Align: 1, C: c("GoUint8")},
+ "int16": {Size: 2, Align: 2, C: c("GoInt16")},
+ "uint16": {Size: 2, Align: 2, C: c("GoUint16")},
+ "int32": {Size: 4, Align: 4, C: c("GoInt32")},
+ "uint32": {Size: 4, Align: 4, C: c("GoUint32")},
+ "int64": {Size: 8, Align: 8, C: c("GoInt64")},
+ "uint64": {Size: 8, Align: 8, C: c("GoUint64")},
+ "float32": {Size: 4, Align: 4, C: c("GoFloat32")},
+ "float64": {Size: 8, Align: 8, C: c("GoFloat64")},
+ "complex64": {Size: 8, Align: 8, C: c("GoComplex64")},
+ "complex128": {Size: 16, Align: 16, C: c("GoComplex128")},
}
// Map an ast type to a Type.
@@ -799,7 +801,7 @@ func (p *Package) cgoType(e ast.Expr) *Type {
return def
}
if t.Name == "uintptr" {
- return &Type{Size: p.PtrSize, Align: p.PtrSize, C: c("uintptr")}
+ return &Type{Size: p.PtrSize, Align: p.PtrSize, C: c("GoUintptr")}
}
if t.Name == "string" {
return &Type{Size: p.PtrSize + 4, Align: p.PtrSize, C: c("GoString")}
@@ -930,13 +932,21 @@ Slice GoBytes(char *p, int n) {
`
const gccExportHeaderProlog = `
-typedef unsigned int uint;
-typedef signed char schar;
-typedef unsigned char uchar;
-typedef unsigned short ushort;
-typedef long long int64;
-typedef unsigned long long uint64;
-typedef __SIZE_TYPE__ uintptr;
+typedef int GoInt;
+typedef unsigned int GoUint;
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef __SIZE_TYPE__ GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+typedef __complex float GoComplex64;
+typedef __complex double GoComplex128;
typedef struct { char *p; int n; } GoString;
typedef void *GoMap;
diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c
index 3ef65f85d..7f9aa7bcd 100644
--- a/src/cmd/dist/build.c
+++ b/src/cmd/dist/build.c
@@ -1230,6 +1230,15 @@ clean(void)
xremove(bpathf(&b, "%s/%s", bstr(&path), cleantab[i]+4));
}
+ // remove src/pkg/runtime/z* unconditionally
+ vreset(&dir);
+ bpathf(&path, "%s/src/pkg/runtime", goroot);
+ xreaddir(&dir, bstr(&path));
+ for(j=0; j<dir.len; j++) {
+ if(hasprefix(dir.p[j], "z"))
+ xremove(bpathf(&b, "%s/%s", bstr(&path), dir.p[j]));
+ }
+
if(rebuildall) {
// Remove object tree.
xremoveall(bpathf(&b, "%s/pkg/obj/%s_%s", goroot, gohostos, gohostarch));
diff --git a/src/cmd/gc/dcl.c b/src/cmd/gc/dcl.c
index 4121a45ab..32f334b71 100644
--- a/src/cmd/gc/dcl.c
+++ b/src/cmd/gc/dcl.c
@@ -433,21 +433,6 @@ oldname(Sym *s)
}
/*
- * same for types
- */
-Type*
-newtype(Sym *s)
-{
- Type *t;
-
- t = typ(TFORW);
- t->sym = s;
- t->type = T;
- return t;
-}
-
-
-/*
* := declarations
*/
@@ -1311,7 +1296,7 @@ addmethod(Sym *sf, Type *t, int local)
}
// Should have picked off all the reasons above,
// but just in case, fall back to generic error.
- yyerror("invalid receiver type %T", pa);
+ yyerror("invalid receiver type %T (%lT / %lT)", pa, pa, t);
return;
}
diff --git a/src/cmd/gc/doc.go b/src/cmd/gc/doc.go
index 163d3862c..8d8f8967b 100644
--- a/src/cmd/gc/doc.go
+++ b/src/cmd/gc/doc.go
@@ -47,7 +47,9 @@ Flags:
-N
disable optimizations
-S
- write assembly language text to standard output
+ write assembly language text to standard output (code only)
+ -SS
+ write assembly language text to standard output (code and data)
-u
disallow importing packages not marked as safe
-V
diff --git a/src/cmd/gc/gen.c b/src/cmd/gc/gen.c
index 694a10ab5..96e7b526c 100644
--- a/src/cmd/gc/gen.c
+++ b/src/cmd/gc/gen.c
@@ -647,6 +647,9 @@ cgen_as(Node *nl, Node *nr)
dump("cgen_as = ", nr);
}
+ while(nr != N && nr->op == OCONVNOP)
+ nr = nr->left;
+
if(nl == N || isblank(nl)) {
cgen_discard(nr);
return;
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index 8c4fff15a..43bd68793 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -182,6 +182,9 @@ struct Type
int32 maplineno; // first use of TFORW as map key
int32 embedlineno; // first use of TFORW as embedded type
+
+ // for TFORW, where to copy the eventual value to
+ NodeList *copyto;
};
#define T ((Type*)0)
@@ -940,7 +943,6 @@ Node* methodname(Node *n, Type *t);
Node* methodname1(Node *n, Node *t);
Sym* methodsym(Sym *nsym, Type *t0, int iface);
Node* newname(Sym *s);
-Type* newtype(Sym *s);
Node* oldname(Sym *s);
void popdcl(void);
void poptodcl(void);
@@ -1248,9 +1250,7 @@ int islvalue(Node *n);
Node* typecheck(Node **np, int top);
void typechecklist(NodeList *l, int top);
Node* typecheckdef(Node *n);
-void resumetypecopy(void);
void copytype(Node *n, Type *t);
-void defertypecopy(Node *n, Type *t);
void queuemethod(Node *n);
/*
diff --git a/src/cmd/gc/inl.c b/src/cmd/gc/inl.c
index efce56057..b2b1faff7 100644
--- a/src/cmd/gc/inl.c
+++ b/src/cmd/gc/inl.c
@@ -506,6 +506,19 @@ mkinlcall(Node **np, Node *fn)
mkinlcall1(np, fn);
safemode = save_safemode;
}
+
+static Node*
+tinlvar(Type *t)
+{
+ if(t->nname && !isblank(t->nname)) {
+ if(!t->nname->inlvar)
+ fatal("missing inlvar for %N\n", t->nname);
+ return t->nname->inlvar;
+ }
+ typecheck(&nblank, Erv | Easgn);
+ return nblank;
+}
+
// if *np is a call, and fn is a function with an inlinable body, substitute *np with an OINLCALL.
// On return ninit has the parameter assignments, the nbody is the
// inlined function body and list, rlist contain the input, output
@@ -579,15 +592,12 @@ mkinlcall1(Node **np, Node *fn)
fatal("method call without receiver: %+N", n);
if(t == T)
fatal("method call unknown receiver type: %+N", n);
- if(t->nname != N && !isblank(t->nname))
- as = nod(OAS, t->nname->inlvar, n->left->left);
- else
- as = nod(OAS, temp(t->type), n->left->left);
+ as = nod(OAS, tinlvar(t), n->left->left);
} else { // non-method call to method
- if (!n->list)
+ if(!n->list)
fatal("non-method call to method without first arg: %+N", n);
- if(t != T && t->nname != N && !isblank(t->nname))
- as = nod(OAS, t->nname->inlvar, n->list->n);
+ if(t != T)
+ as = nod(OAS, tinlvar(t), n->list->n);
}
if(as != N) {
@@ -601,27 +611,16 @@ mkinlcall1(Node **np, Node *fn)
// TODO check that n->list->n is a call?
// TODO: non-method call to T.meth(f()) where f returns t, args...
as->rlist = n->list;
- for(t = getinargx(fn->type)->type; t; t=t->down) {
- if(t->nname && !isblank(t->nname)) {
- if(!t->nname->inlvar)
- fatal("missing inlvar for %N\n", t->nname);
- as->list = list(as->list, t->nname->inlvar);
- } else {
- as->list = list(as->list, temp(t->type));
- }
- }
+ for(t = getinargx(fn->type)->type; t; t=t->down)
+ as->list = list(as->list, tinlvar(t));
} else {
ll = n->list;
if(fn->type->thistuple && n->left->op != ODOTMETH) // non method call to method
ll=ll->next; // was handled above in if(thistuple)
for(t = getinargx(fn->type)->type; t && ll; t=t->down) {
- if(t->nname && !isblank(t->nname)) {
- if(!t->nname->inlvar)
- fatal("missing inlvar for %N\n", t->nname);
- as->list = list(as->list, t->nname->inlvar);
- as->rlist = list(as->rlist, ll->n);
- }
+ as->list = list(as->list, tinlvar(t));
+ as->rlist = list(as->rlist, ll->n);
ll=ll->next;
}
if(ll || t)
diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c
index e71fd3848..624dfb0b4 100644
--- a/src/cmd/gc/lex.c
+++ b/src/cmd/gc/lex.c
@@ -348,7 +348,6 @@ main(int argc, char *argv[])
for(l=xtop; l; l=l->next)
if(l->n->op == ODCL || l->n->op == OAS)
typecheck(&l->n, Etop);
- resumetypecopy();
resumecheckwidth();
// Phase 3: Type check function bodies.
diff --git a/src/cmd/gc/range.c b/src/cmd/gc/range.c
index 9bcd833a7..d301e4e4f 100644
--- a/src/cmd/gc/range.c
+++ b/src/cmd/gc/range.c
@@ -152,9 +152,14 @@ walkrange(Node *n)
n->ntest = nod(OLT, hv1, hn);
n->nincr = nod(OASOP, hv1, nodintconst(1));
n->nincr->etype = OADD;
- body = list1(nod(OAS, v1, hv1));
- if(v2) {
- body = list(body, nod(OAS, v2, nod(OIND, hp, N)));
+ if(v2 == N)
+ body = list1(nod(OAS, v1, hv1));
+ else {
+ a = nod(OAS2, N, N);
+ a->list = list(list1(v1), v2);
+ a->rlist = list(list1(hv1), nod(OIND, hp, N));
+ body = list1(a);
+
tmp = nod(OADD, hp, nodintconst(t->type->width));
tmp->type = hp->type;
tmp->typecheck = 1;
diff --git a/src/cmd/gc/reflect.c b/src/cmd/gc/reflect.c
index 07b426508..62759bcba 100644
--- a/src/cmd/gc/reflect.c
+++ b/src/cmd/gc/reflect.c
@@ -629,6 +629,7 @@ typename(Type *t)
n->ullman = 1;
n->class = PEXTERN;
n->xoffset = 0;
+ n->typecheck = 1;
s->def = n;
signatlist = list(signatlist, typenod(t));
@@ -638,6 +639,7 @@ typename(Type *t)
n->type = ptrto(s->def->type);
n->addable = 1;
n->ullman = 2;
+ n->typecheck = 1;
return n;
}
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index 681c023a0..bd53520df 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -1945,6 +1945,12 @@ safeexpr(Node *n, NodeList **init)
if(n == N)
return N;
+ if(n->ninit) {
+ walkstmtlist(n->ninit);
+ *init = concat(*init, n->ninit);
+ n->ninit = nil;
+ }
+
switch(n->op) {
case ONAME:
case OLITERAL:
@@ -2673,7 +2679,7 @@ genhash(Sym *sym, Type *t)
first = T;
for(t1=t->type;; t1=t1->down) {
if(t1 != T && (isblanksym(t1->sym) || algtype1(t1->type, nil) == AMEM)) {
- if(first == T)
+ if(first == T && !isblanksym(t1->sym))
first = t1;
continue;
}
@@ -2890,7 +2896,7 @@ geneq(Sym *sym, Type *t)
first = T;
for(t1=t->type;; t1=t1->down) {
if(t1 != T && (isblanksym(t1->sym) || algtype1(t1->type, nil) == AMEM)) {
- if(first == T)
+ if(first == T && !isblanksym(t1->sym))
first = t1;
continue;
}
diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c
index e98d53857..cc4faf5a7 100644
--- a/src/cmd/gc/typecheck.c
+++ b/src/cmd/gc/typecheck.c
@@ -31,7 +31,6 @@ static void checkassign(Node*);
static void checkassignlist(NodeList*);
static void stringtoarraylit(Node**);
static Node* resolve(Node*);
-static Type* getforwtype(Node*);
static NodeList* typecheckdefstack;
@@ -237,7 +236,7 @@ typecheck1(Node **np, int top)
Node *n, *l, *r;
NodeList *args;
int ok, ntop;
- Type *t, *tp, *ft, *missing, *have, *badtype;
+ Type *t, *tp, *missing, *have, *badtype;
Val v;
char *why;
@@ -249,10 +248,6 @@ typecheck1(Node **np, int top)
goto error;
}
- // a dance to handle forward-declared recursive pointer types.
- if(n->op == OTYPE && (ft = getforwtype(n->ntype)) != T)
- defertypecopy(n, ft);
-
typecheckdef(n);
n->realtype = n->type;
if(n->op == ONONAME)
@@ -1140,6 +1135,10 @@ reswitch:
goto error;
n->type = t;
if(!isslice(t)) {
+ if(isconst(args->n, CTNIL)) {
+ yyerror("first argument to append must be typed slice; have untyped nil", t);
+ goto error;
+ }
yyerror("first argument to append must be slice; have %lT", t);
goto error;
}
@@ -2612,26 +2611,6 @@ stringtoarraylit(Node **np)
*np = nn;
}
-static Type*
-getforwtype(Node *n)
-{
- Node *f1, *f2;
-
- for(f2=n; ; n=n->ntype) {
- if((n = resolve(n)) == N || n->op != OTYPE)
- return T;
-
- if(n->type != T && n->type->etype == TFORW)
- return n->type;
-
- // Check for ntype cycle.
- if((f2 = resolve(f2)) != N && (f1 = resolve(f2->ntype)) != N) {
- f2 = resolve(f1->ntype);
- if(f1 == n || f2 == n)
- return T;
- }
- }
-}
static int ntypecheckdeftype;
static NodeList *methodqueue;
@@ -2669,49 +2648,24 @@ domethod(Node *n)
checkwidth(n->type);
}
-typedef struct NodeTypeList NodeTypeList;
-struct NodeTypeList {
- Node *n;
- Type *t;
- NodeTypeList *next;
-};
-
-static NodeTypeList *dntq;
-static NodeTypeList *dntend;
+static NodeList *mapqueue;
void
-defertypecopy(Node *n, Type *t)
+copytype(Node *n, Type *t)
{
- NodeTypeList *ntl;
+ int maplineno, embedlineno, lno;
+ NodeList *l;
- if(n == N || t == T)
+ if(t->etype == TFORW) {
+ // This type isn't computed yet; when it is, update n.
+ t->copyto = list(t->copyto, n);
return;
+ }
- ntl = mal(sizeof *ntl);
- ntl->n = n;
- ntl->t = t;
- ntl->next = nil;
-
- if(dntq == nil)
- dntq = ntl;
- else
- dntend->next = ntl;
-
- dntend = ntl;
-}
-
-void
-resumetypecopy(void)
-{
- NodeTypeList *l;
-
- for(l=dntq; l; l=l->next)
- copytype(l->n, l->t);
-}
+ maplineno = n->type->maplineno;
+ embedlineno = n->type->embedlineno;
-void
-copytype(Node *n, Type *t)
-{
+ l = n->type->copyto;
*n->type = *t;
t = n->type;
@@ -2724,12 +2678,32 @@ copytype(Node *n, Type *t)
t->nod = N;
t->printed = 0;
t->deferwidth = 0;
+ t->copyto = nil;
+
+ // Update nodes waiting on this type.
+ for(; l; l=l->next)
+ copytype(l->n, t);
+
+ // Double-check use of type as embedded type.
+ lno = lineno;
+ if(embedlineno) {
+ lineno = embedlineno;
+ if(isptr[t->etype])
+ yyerror("embedded type cannot be a pointer");
+ }
+ lineno = lno;
+
+ // Queue check for map until all the types are done settling.
+ if(maplineno) {
+ t->maplineno = maplineno;
+ mapqueue = list(mapqueue, n);
+ }
}
static void
typecheckdeftype(Node *n)
{
- int maplineno, embedlineno, lno;
+ int lno;
Type *t;
NodeList *l;
@@ -2748,26 +2722,12 @@ typecheckdeftype(Node *n)
goto ret;
}
- maplineno = n->type->maplineno;
- embedlineno = n->type->embedlineno;
-
// copy new type and clear fields
// that don't come along.
// anything zeroed here must be zeroed in
// typedcl2 too.
copytype(n, t);
- // double-check use of type as map key.
- if(maplineno) {
- lineno = maplineno;
- maptype(n->type, types[TBOOL]);
- }
- if(embedlineno) {
- lineno = embedlineno;
- if(isptr[t->etype])
- yyerror("embedded type cannot be a pointer");
- }
-
ret:
lineno = lno;
@@ -2780,6 +2740,11 @@ ret:
for(; l; l=l->next)
domethod(l->n);
}
+ for(l=mapqueue; l; l=l->next) {
+ lineno = l->n->type->maplineno;
+ maptype(l->n->type, types[TBOOL]);
+ }
+ lineno = lno;
}
ntypecheckdeftype--;
}
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c
index 7dfd34a7a..a4edc9062 100644
--- a/src/cmd/gc/walk.c
+++ b/src/cmd/gc/walk.c
@@ -846,11 +846,13 @@ walkexpr(Node **np, NodeList **init)
// if range of type cannot exceed static array bound,
// disable bounds check
if(isfixedarray(n->left->type))
+ if(!issigned[n->right->type->etype])
if(n->right->type->width < 4)
if((1<<(8*n->right->type->width)) <= n->left->type->bound)
n->etype = 1;
if(isconst(n->left, CTSTR))
+ if(!issigned[n->right->type->etype])
if(n->right->type->width < 4)
if((1<<(8*n->right->type->width)) <= n->left->val.u.sval->len)
n->etype = 1;
diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go
index 4bb83f161..767ddfd40 100644
--- a/src/cmd/go/build.go
+++ b/src/cmd/go/build.go
@@ -152,6 +152,11 @@ func addBuildFlags(cmd *Command) {
cmd.Flag.Var(buildCompiler{}, "compiler", "")
}
+func addBuildFlagsNX(cmd *Command) {
+ cmd.Flag.BoolVar(&buildN, "n", false, "")
+ cmd.Flag.BoolVar(&buildX, "x", false, "")
+}
+
type stringsFlag []string
func (v *stringsFlag) Set(s string) error {
diff --git a/src/cmd/go/doc.go b/src/cmd/go/doc.go
index 32ede3964..5e7b10692 100644
--- a/src/cmd/go/doc.go
+++ b/src/cmd/go/doc.go
@@ -145,7 +145,7 @@ Run godoc on package sources
Usage:
- go doc [packages]
+ go doc [-n] [-x] [packages]
Doc runs the godoc command on the packages named by the
import paths.
@@ -153,6 +153,9 @@ import paths.
For more about godoc, see 'godoc godoc'.
For more about specifying packages, see 'go help packages'.
+The -n flag prints commands that would be executed.
+The -x flag prints commands as they are executed.
+
To run godoc with specific options, run godoc itself.
See also: go fix, go fmt, go vet.
@@ -192,7 +195,7 @@ Run gofmt on package sources
Usage:
- go fmt [packages]
+ go fmt [-n] [-x] [packages]
Fmt runs the command 'gofmt -l -w' on the packages named
by the import paths. It prints the names of the files that are modified.
@@ -200,6 +203,9 @@ by the import paths. It prints the names of the files that are modified.
For more about gofmt, see 'godoc gofmt'.
For more about specifying packages, see 'go help packages'.
+The -n flag prints commands that would be executed.
+The -x flag prints commands as they are executed.
+
To run gofmt with specific options, run gofmt itself.
See also: go doc, go fix, go vet.
@@ -414,7 +420,7 @@ Run go tool vet on packages
Usage:
- go vet [packages]
+ go vet [-n] [-x] [packages]
Vet runs the Go vet command on the packages named by the import paths.
@@ -423,6 +429,9 @@ For more about specifying packages, see 'go help packages'.
To run the vet tool with specific options, run 'go tool vet'.
+The -n flag prints commands that would be executed.
+The -x flag prints commands as they are executed.
+
See also: go fmt, go fix.
@@ -537,7 +546,7 @@ in those files and ignoring any other files in the directory.
Remote import path syntax
-An import path (see 'go help importpath') denotes a package
+An import path (see 'go help packages') denotes a package
stored in the local file system. Certain import paths also
describe how to obtain the source code for the package using
a revision control system.
diff --git a/src/cmd/go/fmt.go b/src/cmd/go/fmt.go
index cea9b0a51..b1aba32f3 100644
--- a/src/cmd/go/fmt.go
+++ b/src/cmd/go/fmt.go
@@ -4,9 +4,14 @@
package main
+func init() {
+ addBuildFlagsNX(cmdFmt)
+ addBuildFlagsNX(cmdDoc)
+}
+
var cmdFmt = &Command{
Run: runFmt,
- UsageLine: "fmt [packages]",
+ UsageLine: "fmt [-n] [-x] [packages]",
Short: "run gofmt on package sources",
Long: `
Fmt runs the command 'gofmt -l -w' on the packages named
@@ -15,6 +20,9 @@ by the import paths. It prints the names of the files that are modified.
For more about gofmt, see 'godoc gofmt'.
For more about specifying packages, see 'go help packages'.
+The -n flag prints commands that would be executed.
+The -x flag prints commands as they are executed.
+
To run gofmt with specific options, run gofmt itself.
See also: go doc, go fix, go vet.
@@ -32,7 +40,7 @@ func runFmt(cmd *Command, args []string) {
var cmdDoc = &Command{
Run: runDoc,
- UsageLine: "doc [packages]",
+ UsageLine: "doc [-n] [-x] [packages]",
Short: "run godoc on package sources",
Long: `
Doc runs the godoc command on the packages named by the
@@ -41,6 +49,9 @@ import paths.
For more about godoc, see 'godoc godoc'.
For more about specifying packages, see 'go help packages'.
+The -n flag prints commands that would be executed.
+The -x flag prints commands as they are executed.
+
To run godoc with specific options, run godoc itself.
See also: go fix, go fmt, go vet.
@@ -53,6 +64,10 @@ func runDoc(cmd *Command, args []string) {
errorf("go doc: cannot use package file list")
continue
}
- run("godoc", pkg.Dir)
+ if pkg.local {
+ run("godoc", pkg.Dir)
+ } else {
+ run("godoc", pkg.ImportPath)
+ }
}
}
diff --git a/src/cmd/go/help.go b/src/cmd/go/help.go
index 47ea0c711..7539753af 100644
--- a/src/cmd/go/help.go
+++ b/src/cmd/go/help.go
@@ -61,7 +61,7 @@ var helpRemote = &Command{
Short: "remote import path syntax",
Long: `
-An import path (see 'go help importpath') denotes a package
+An import path (see 'go help packages') denotes a package
stored in the local file system. Certain import paths also
describe how to obtain the source code for the package using
a revision control system.
@@ -138,7 +138,7 @@ The meta tag has the form:
<meta name="go-import" content="import-prefix vcs repo-root">
-The import-prefix is the import path correponding to the repository
+The import-prefix is the import path corresponding to the repository
root. It must be a prefix or an exact match of the package being
fetched with "go get". If it's not an exact match, another http
request is made at the prefix to verify the <meta> tags match.
diff --git a/src/cmd/go/main.go b/src/cmd/go/main.go
index 73c2f54a7..20585d1be 100644
--- a/src/cmd/go/main.go
+++ b/src/cmd/go/main.go
@@ -144,8 +144,9 @@ func main() {
}
}
- fmt.Fprintf(os.Stderr, "Unknown command %#q\n\n", args[0])
- usage()
+ fmt.Fprintf(os.Stderr, "go: unknown subcommand %q\nRun 'go help' for usage.\n", args[0])
+ setExitStatus(2)
+ exit()
}
var usageTemplate = `Go is a tool for managing Go source code.
@@ -339,6 +340,13 @@ func exitIfErrors() {
func run(cmdargs ...interface{}) {
cmdline := stringList(cmdargs...)
+ if buildN || buildV {
+ fmt.Printf("%s\n", strings.Join(cmdline, " "))
+ if buildN {
+ return
+ }
+ }
+
cmd := exec.Command(cmdline[0], cmdline[1:]...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
@@ -500,13 +508,25 @@ func matchPackagesInFS(pattern string) []string {
var pkgs []string
filepath.Walk(dir, func(path string, fi os.FileInfo, err error) error {
- if err != nil || !fi.IsDir() || path == dir {
+ if err != nil || !fi.IsDir() {
return nil
}
+ if path == dir {
+ // filepath.Walk starts at dir and recurses. For the recursive case,
+ // the path is the result of filepath.Join, which calls filepath.Clean.
+ // The initial case is not Cleaned, though, so we do this explicitly.
+ //
+ // This converts a path like "./io/" to "io". Without this step, running
+ // "cd $GOROOT/src/pkg; go list ./io/..." would incorrectly skip the io
+ // package, because prepending the prefix "./" to the unclean path would
+ // result in "././io", and match("././io") returns false.
+ path = filepath.Clean(path)
+ }
- // Avoid .foo, _foo, and testdata directory trees.
+ // Avoid .foo, _foo, and testdata directory trees, but do not avoid "." or "..".
_, elem := filepath.Split(path)
- if strings.HasPrefix(elem, ".") || strings.HasPrefix(elem, "_") || elem == "testdata" {
+ dot := strings.HasPrefix(elem, ".") && elem != "." && elem != ".."
+ if dot || strings.HasPrefix(elem, "_") || elem == "testdata" {
return filepath.SkipDir
}
diff --git a/src/cmd/go/run.go b/src/cmd/go/run.go
index 94cd59296..6043b7e20 100644
--- a/src/cmd/go/run.go
+++ b/src/cmd/go/run.go
@@ -49,6 +49,10 @@ func runRun(cmd *Command, args []string) {
if p.Error != nil {
fatalf("%s", p.Error)
}
+ for _, err := range p.DepsErrors {
+ errorf("%s", err)
+ }
+ exitIfErrors()
if p.Name != "main" {
fatalf("go run: cannot run non-main package")
}
diff --git a/src/cmd/go/vet.go b/src/cmd/go/vet.go
index a672b9910..eb0b89cca 100644
--- a/src/cmd/go/vet.go
+++ b/src/cmd/go/vet.go
@@ -4,9 +4,13 @@
package main
+func init() {
+ addBuildFlagsNX(cmdVet)
+}
+
var cmdVet = &Command{
Run: runVet,
- UsageLine: "vet [packages]",
+ UsageLine: "vet [-n] [-x] [packages]",
Short: "run go tool vet on packages",
Long: `
Vet runs the Go vet command on the packages named by the import paths.
@@ -16,6 +20,9 @@ For more about specifying packages, see 'go help packages'.
To run the vet tool with specific options, run 'go tool vet'.
+The -n flag prints commands that would be executed.
+The -x flag prints commands as they are executed.
+
See also: go fmt, go fix.
`,
}
diff --git a/src/lib9/ctime.c b/src/lib9/ctime.c
index 1bc29fbf9..6317b594b 100644
--- a/src/lib9/ctime.c
+++ b/src/lib9/ctime.c
@@ -16,8 +16,8 @@ p9ctime(long t)
tt = t;
tm = localtime(&tt);
snprint(buf, sizeof buf, "%3.3s %3.3s %02d %02d:%02d:%02d %3.3s %d\n",
- "SunMonTueWedThuFriSat"+(tm->tm_wday*3),
- "JanFebMarAprMayJunJulAugSepOctNovDec"+(tm->tm_mon*3),
+ &"SunMonTueWedThuFriSat"[tm->tm_wday*3],
+ &"JanFebMarAprMayJunJulAugSepOctNovDec"[tm->tm_mon*3],
tm->tm_mday,
tm->tm_hour,
tm->tm_min,
diff --git a/src/pkg/compress/flate/deflate.go b/src/pkg/compress/flate/deflate.go
index 20408409c..e511b50fd 100644
--- a/src/pkg/compress/flate/deflate.go
+++ b/src/pkg/compress/flate/deflate.go
@@ -32,6 +32,7 @@ const (
hashSize = 1 << hashBits
hashMask = (1 << hashBits) - 1
hashShift = (hashBits + minMatchLength - 1) / minMatchLength
+ maxHashOffset = 1 << 24
skipNever = math.MaxInt32
)
@@ -106,6 +107,25 @@ func (d *compressor) fillDeflate(b []byte) int {
d.blockStart = math.MaxInt32
}
d.hashOffset += windowSize
+ if d.hashOffset > maxHashOffset {
+ delta := d.hashOffset - 1
+ d.hashOffset -= delta
+ d.chainHead -= delta
+ for i, v := range d.hashPrev {
+ if v > delta {
+ d.hashPrev[i] -= delta
+ } else {
+ d.hashPrev[i] = 0
+ }
+ }
+ for i, v := range d.hashHead {
+ if v > delta {
+ d.hashHead[i] -= delta
+ } else {
+ d.hashHead[i] = 0
+ }
+ }
+ }
}
n := copy(d.window[d.windowEnd:], b)
d.windowEnd += n
diff --git a/src/pkg/compress/flate/deflate_test.go b/src/pkg/compress/flate/deflate_test.go
index 543c59505..f1e6db2ac 100644
--- a/src/pkg/compress/flate/deflate_test.go
+++ b/src/pkg/compress/flate/deflate_test.go
@@ -94,6 +94,50 @@ func TestDeflate(t *testing.T) {
}
}
+// A sparseReader returns a stream consisting of 0s followed by 1<<16 1s.
+// This tests missing hash references in a very large input.
+type sparseReader struct {
+ l int64
+ cur int64
+}
+
+func (r *sparseReader) Read(b []byte) (n int, err error) {
+ if r.cur >= r.l {
+ return 0, io.EOF
+ }
+ n = len(b)
+ cur := r.cur + int64(n)
+ if cur > r.l {
+ n -= int(cur - r.l)
+ cur = r.l
+ }
+ for i := range b[0:n] {
+ if r.cur+int64(i) >= r.l-1<<16 {
+ b[i] = 1
+ } else {
+ b[i] = 0
+ }
+ }
+ r.cur = cur
+ return
+}
+
+func TestVeryLongSparseChunk(t *testing.T) {
+ if testing.Short() {
+ t.Logf("skipping sparse chunk during short test")
+ return
+ }
+ w, err := NewWriter(ioutil.Discard, 1)
+ if err != nil {
+ t.Errorf("NewWriter: %v", err)
+ return
+ }
+ if _, err = io.Copy(w, &sparseReader{l: 23E8}); err != nil {
+ t.Errorf("Compress failed: %v", err)
+ return
+ }
+}
+
type syncBuffer struct {
buf bytes.Buffer
mu sync.RWMutex
diff --git a/src/pkg/crypto/aes/const.go b/src/pkg/crypto/aes/const.go
index f0b4eabf6..aee73a7c5 100644
--- a/src/pkg/crypto/aes/const.go
+++ b/src/pkg/crypto/aes/const.go
@@ -11,11 +11,11 @@ package aes
// http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf
// AES is based on the mathematical behavior of binary polynomials
-// (polynomials over GF(2)) modulo the irreducible polynomial x⁸ + x⁴ + x² + x + 1.
+// (polynomials over GF(2)) modulo the irreducible polynomial x⁸ + x⁴ + x³ + x + 1.
// Addition of these binary polynomials corresponds to binary xor.
// Reducing mod poly corresponds to binary xor with poly every
// time a 0x100 bit appears.
-const poly = 1<<8 | 1<<4 | 1<<3 | 1<<1 | 1<<0 // x⁸ + x⁴ + x² + x + 1
+const poly = 1<<8 | 1<<4 | 1<<3 | 1<<1 | 1<<0 // x⁸ + x⁴ + x³ + x + 1
// Powers of x mod poly in GF(2).
var powx = [16]byte{
diff --git a/src/pkg/crypto/ecdsa/ecdsa.go b/src/pkg/crypto/ecdsa/ecdsa.go
index b28239b78..8508e3b4f 100644
--- a/src/pkg/crypto/ecdsa/ecdsa.go
+++ b/src/pkg/crypto/ecdsa/ecdsa.go
@@ -66,7 +66,9 @@ func GenerateKey(c elliptic.Curve, rand io.Reader) (priv *PrivateKey, err error)
// hashToInt converts a hash value to an integer. There is some disagreement
// about how this is done. [NSA] suggests that this is done in the obvious
// manner, but [SECG] truncates the hash to the bit-length of the curve order
-// first. We follow [SECG] because that's what OpenSSL does.
+// first. We follow [SECG] because that's what OpenSSL does. Additionally,
+// OpenSSL right shifts excess bits from the number if the hash is too large
+// and we mirror that too.
func hashToInt(hash []byte, c elliptic.Curve) *big.Int {
orderBits := c.Params().N.BitLen()
orderBytes := (orderBits + 7) / 8
@@ -75,7 +77,7 @@ func hashToInt(hash []byte, c elliptic.Curve) *big.Int {
}
ret := new(big.Int).SetBytes(hash)
- excess := orderBytes*8 - orderBits
+ excess := len(hash)*8 - orderBits
if excess > 0 {
ret.Rsh(ret, uint(excess))
}
diff --git a/src/pkg/crypto/rsa/pkcs1v15.go b/src/pkg/crypto/rsa/pkcs1v15.go
index 254f4a3da..a32236e47 100644
--- a/src/pkg/crypto/rsa/pkcs1v15.go
+++ b/src/pkg/crypto/rsa/pkcs1v15.go
@@ -151,6 +151,7 @@ func nonZeroRandomBytes(s []byte, rand io.Reader) (err error) {
var hashPrefixes = map[crypto.Hash][]byte{
crypto.MD5: {0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x04, 0x10},
crypto.SHA1: {0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14},
+ crypto.SHA224: {0x30, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, 0x05, 0x00, 0x04, 0x1c},
crypto.SHA256: {0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20},
crypto.SHA384: {0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30},
crypto.SHA512: {0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40},
diff --git a/src/pkg/crypto/tls/handshake_messages.go b/src/pkg/crypto/tls/handshake_messages.go
index e1517cc79..54c7a3e63 100644
--- a/src/pkg/crypto/tls/handshake_messages.go
+++ b/src/pkg/crypto/tls/handshake_messages.go
@@ -563,7 +563,7 @@ func (m *certificateMsg) unmarshal(data []byte) bool {
if len(d) < 4 {
return false
}
- certLen := uint32(d[0])<<24 | uint32(d[1])<<8 | uint32(d[2])
+ certLen := uint32(d[0])<<16 | uint32(d[1])<<8 | uint32(d[2])
if uint32(len(d)) < 3+certLen {
return false
}
@@ -575,7 +575,7 @@ func (m *certificateMsg) unmarshal(data []byte) bool {
m.certificates = make([][]byte, numCerts)
d = data[7:]
for i := 0; i < numCerts; i++ {
- certLen := uint32(d[0])<<24 | uint32(d[1])<<8 | uint32(d[2])
+ certLen := uint32(d[0])<<16 | uint32(d[1])<<8 | uint32(d[2])
m.certificates[i] = d[3 : 3+certLen]
d = d[3+certLen:]
}
diff --git a/src/pkg/crypto/x509/x509.go b/src/pkg/crypto/x509/x509.go
index 8dae7e7fc..c4d85e67f 100644
--- a/src/pkg/crypto/x509/x509.go
+++ b/src/pkg/crypto/x509/x509.go
@@ -388,10 +388,10 @@ func (c *Certificate) CheckSignature(algo SignatureAlgorithm, signed, signature
return ErrUnsupportedAlgorithm
}
- h := hashType.New()
- if h == nil {
+ if !hashType.Available() {
return ErrUnsupportedAlgorithm
}
+ h := hashType.New()
h.Write(signed)
digest := h.Sum(nil)
diff --git a/src/pkg/debug/gosym/pclntab_test.go b/src/pkg/debug/gosym/pclntab_test.go
index b2400bb3b..ade704335 100644
--- a/src/pkg/debug/gosym/pclntab_test.go
+++ b/src/pkg/debug/gosym/pclntab_test.go
@@ -7,14 +7,19 @@ package gosym
import (
"debug/elf"
"fmt"
+ "io/ioutil"
"os"
"os/exec"
+ "path/filepath"
"runtime"
"strings"
"testing"
)
-var pclinetestBinary string
+var (
+ pclineTempDir string
+ pclinetestBinary string
+)
func dotest() bool {
// For now, only works on ELF platforms.
@@ -24,10 +29,18 @@ func dotest() bool {
if pclinetestBinary != "" {
return true
}
+ var err error
+ pclineTempDir, err = ioutil.TempDir("", "pclinetest")
+ if err != nil {
+ panic(err)
+ }
+ if strings.Contains(pclineTempDir, " ") {
+ panic("unexpected space in tempdir")
+ }
// This command builds pclinetest from pclinetest.asm;
// the resulting binary looks like it was built from pclinetest.s,
// but we have renamed it to keep it away from the go tool.
- pclinetestBinary = os.TempDir() + "/pclinetest"
+ pclinetestBinary = filepath.Join(pclineTempDir, "pclinetest")
command := fmt.Sprintf("go tool 6a -o %s.6 pclinetest.asm && go tool 6l -E main -o %s %s.6",
pclinetestBinary, pclinetestBinary, pclinetestBinary)
cmd := exec.Command("sh", "-c", command)
@@ -170,6 +183,7 @@ func TestPCLine(t *testing.T) {
if !dotest() {
return
}
+ defer os.RemoveAll(pclineTempDir)
f, tab := crack(pclinetestBinary, t)
text := f.Section(".text")
diff --git a/src/pkg/encoding/base64/base64.go b/src/pkg/encoding/base64/base64.go
index f8a51a4e7..0b842f066 100644
--- a/src/pkg/encoding/base64/base64.go
+++ b/src/pkg/encoding/base64/base64.go
@@ -318,7 +318,7 @@ func (d *decoder) Read(p []byte) (n int, err error) {
}
nn, d.err = io.ReadAtLeast(d.r, d.buf[d.nbuf:nn], 4-d.nbuf)
d.nbuf += nn
- if d.nbuf < 4 {
+ if d.err != nil || d.nbuf < 4 {
return 0, d.err
}
diff --git a/src/pkg/encoding/base64/base64_test.go b/src/pkg/encoding/base64/base64_test.go
index 9c3537259..f9b863c36 100644
--- a/src/pkg/encoding/base64/base64_test.go
+++ b/src/pkg/encoding/base64/base64_test.go
@@ -6,9 +6,11 @@ package base64
import (
"bytes"
+ "errors"
"io"
"io/ioutil"
"testing"
+ "time"
)
type testpair struct {
@@ -226,3 +228,50 @@ func TestNewLineCharacters(t *testing.T) {
}
}
}
+
+type nextRead struct {
+ n int // bytes to return
+ err error // error to return
+}
+
+// faultInjectReader returns data from source, rate-limited
+// and with the errors as written to nextc.
+type faultInjectReader struct {
+ source string
+ nextc <-chan nextRead
+}
+
+func (r *faultInjectReader) Read(p []byte) (int, error) {
+ nr := <-r.nextc
+ if len(p) > nr.n {
+ p = p[:nr.n]
+ }
+ n := copy(p, r.source)
+ r.source = r.source[n:]
+ return n, nr.err
+}
+
+// tests that we don't ignore errors from our underlying reader
+func TestDecoderIssue3577(t *testing.T) {
+ next := make(chan nextRead, 10)
+ wantErr := errors.New("my error")
+ next <- nextRead{5, nil}
+ next <- nextRead{10, wantErr}
+ d := NewDecoder(StdEncoding, &faultInjectReader{
+ source: "VHdhcyBicmlsbGlnLCBhbmQgdGhlIHNsaXRoeSB0b3Zlcw==", // twas brillig...
+ nextc: next,
+ })
+ errc := make(chan error)
+ go func() {
+ _, err := ioutil.ReadAll(d)
+ errc <- err
+ }()
+ select {
+ case err := <-errc:
+ if err != wantErr {
+ t.Errorf("got error %v; want %v", err, wantErr)
+ }
+ case <-time.After(5 * time.Second):
+ t.Errorf("timeout; Decoder blocked without returning an error")
+ }
+}
diff --git a/src/pkg/encoding/gob/doc.go b/src/pkg/encoding/gob/doc.go
index 96885f8de..821d9a3fe 100644
--- a/src/pkg/encoding/gob/doc.go
+++ b/src/pkg/encoding/gob/doc.go
@@ -116,7 +116,7 @@ uninterpreted bytes of the value.
All other slices and arrays are sent as an unsigned count followed by that many
elements using the standard gob encoding for their type, recursively.
-Maps are sent as an unsigned count followed by that man key, element
+Maps are sent as an unsigned count followed by that many key, element
pairs. Empty but non-nil maps are sent, so if the sender has allocated
a map, the receiver will allocate a map even no elements are
transmitted.
diff --git a/src/pkg/encoding/json/decode.go b/src/pkg/encoding/json/decode.go
index 110c6fd62..d61f88706 100644
--- a/src/pkg/encoding/json/decode.go
+++ b/src/pkg/encoding/json/decode.go
@@ -273,9 +273,14 @@ func (d *decodeState) indirect(v reflect.Value, decodingNull bool) (Unmarshaler,
_, isUnmarshaler = v.Interface().(Unmarshaler)
}
+ // Load value from interface, but only if the result will be
+ // usefully addressable.
if iv := v; iv.Kind() == reflect.Interface && !iv.IsNil() {
- v = iv.Elem()
- continue
+ e := iv.Elem()
+ if e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) {
+ v = e
+ continue
+ }
}
pv := v
@@ -588,6 +593,11 @@ func (d *decodeState) literal(v reflect.Value) {
// produce more helpful error messages.
func (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) {
// Check for unmarshaler.
+ if len(item) == 0 {
+ //Empty string given
+ d.saveError(fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", item, v.Type()))
+ return
+ }
wantptr := item[0] == 'n' // null
unmarshaler, pv := d.indirect(v, wantptr)
if unmarshaler != nil {
diff --git a/src/pkg/encoding/json/decode_test.go b/src/pkg/encoding/json/decode_test.go
index d758758d9..6fac22c4a 100644
--- a/src/pkg/encoding/json/decode_test.go
+++ b/src/pkg/encoding/json/decode_test.go
@@ -638,3 +638,68 @@ func TestAnonymous(t *testing.T) {
t.Fatal("Unmarshal: did set T.Y")
}
}
+
+// Test that the empty string doesn't panic decoding when ,string is specified
+// Issue 3450
+func TestEmptyString(t *testing.T) {
+ type T2 struct {
+ Number1 int `json:",string"`
+ Number2 int `json:",string"`
+ }
+ data := `{"Number1":"1", "Number2":""}`
+ dec := NewDecoder(strings.NewReader(data))
+ var t2 T2
+ err := dec.Decode(&t2)
+ if err == nil {
+ t.Fatal("Decode: did not return error")
+ }
+ if t2.Number1 != 1 {
+ t.Fatal("Decode: did not set Number1")
+ }
+}
+
+func intp(x int) *int {
+ p := new(int)
+ *p = x
+ return p
+}
+
+func intpp(x *int) **int {
+ pp := new(*int)
+ *pp = x
+ return pp
+}
+
+var interfaceSetTests = []struct {
+ pre interface{}
+ json string
+ post interface{}
+}{
+ {"foo", `"bar"`, "bar"},
+ {"foo", `2`, 2.0},
+ {"foo", `true`, true},
+ {"foo", `null`, nil},
+
+ {nil, `null`, nil},
+ {new(int), `null`, nil},
+ {(*int)(nil), `null`, nil},
+ {new(*int), `null`, new(*int)},
+ {(**int)(nil), `null`, nil},
+ {intp(1), `null`, nil},
+ {intpp(nil), `null`, intpp(nil)},
+ {intpp(intp(1)), `null`, intpp(nil)},
+}
+
+func TestInterfaceSet(t *testing.T) {
+ for _, tt := range interfaceSetTests {
+ b := struct{ X interface{} }{tt.pre}
+ blob := `{"X":` + tt.json + `}`
+ if err := Unmarshal([]byte(blob), &b); err != nil {
+ t.Errorf("Unmarshal %#q: %v", blob, err)
+ continue
+ }
+ if !reflect.DeepEqual(b.X, tt.post) {
+ t.Errorf("Unmarshal %#q into %#v: X=%#v, want %#v", blob, tt.pre, b.X, tt.post)
+ }
+ }
+}
diff --git a/src/pkg/encoding/json/encode.go b/src/pkg/encoding/json/encode.go
index 842672c39..b6e1cb16e 100644
--- a/src/pkg/encoding/json/encode.go
+++ b/src/pkg/encoding/json/encode.go
@@ -96,7 +96,7 @@ import (
//
// Channel, complex, and function values cannot be encoded in JSON.
// Attempting to encode such a value causes Marshal to return
-// an InvalidTypeError.
+// an UnsupportedTypeError.
//
// JSON cannot represent cyclic data structures and Marshal does not
// handle them. Passing cyclic structures to Marshal will result in
@@ -157,6 +157,8 @@ type Marshaler interface {
MarshalJSON() ([]byte, error)
}
+// An UnsupportedTypeError is returned by Marshal when attempting
+// to encode an unsupported value type.
type UnsupportedTypeError struct {
Type reflect.Type
}
diff --git a/src/pkg/flag/flag.go b/src/pkg/flag/flag.go
index f0842a18a..5444ad141 100644
--- a/src/pkg/flag/flag.go
+++ b/src/pkg/flag/flag.go
@@ -620,8 +620,9 @@ func (f *FlagSet) Var(value Value, name string, usage string) {
flag := &Flag{name, usage, value, value.String()}
_, alreadythere := f.formal[name]
if alreadythere {
- fmt.Fprintf(f.out(), "%s flag redefined: %s\n", f.name, name)
- panic("flag redefinition") // Happens only if flags are declared with identical names
+ msg := fmt.Sprintf("%s flag redefined: %s", f.name, name)
+ fmt.Fprintln(f.out(), msg)
+ panic(msg) // Happens only if flags are declared with identical names
}
if f.formal == nil {
f.formal = make(map[string]*Flag)
diff --git a/src/pkg/fmt/doc.go b/src/pkg/fmt/doc.go
index 9660370c2..a9b9c9d0c 100644
--- a/src/pkg/fmt/doc.go
+++ b/src/pkg/fmt/doc.go
@@ -136,7 +136,7 @@
Fscanf and Fscanln read from a specified io.Reader; Sscan,
Sscanf and Sscanln read from an argument string. Scanln,
Fscanln and Sscanln stop scanning at a newline and require that
- the items be followed by one; Sscanf, Fscanf and Sscanf require
+ the items be followed by one; Scanf, Fscanf and Sscanf require
newlines in the input to match newlines in the format; the other
routines treat newlines as spaces.
diff --git a/src/pkg/go/ast/ast.go b/src/pkg/go/ast/ast.go
index 7123fe58f..d2e75dc1c 100644
--- a/src/pkg/go/ast/ast.go
+++ b/src/pkg/go/ast/ast.go
@@ -87,8 +87,12 @@ func stripTrailingWhitespace(s string) string {
return s[0:i]
}
-// Text returns the text of the comment,
-// with the comment markers - //, /*, and */ - removed.
+// Text returns the text of the comment.
+// Comment markers (//, /*, and */), the first space of a line comment, and
+// leading and trailing empty lines are removed. Multiple empty lines are
+// reduced to one, and trailing space on lines is trimmed. Unless the result
+// is empty, it is newline-terminated.
+//
func (g *CommentGroup) Text() string {
if g == nil {
return ""
@@ -104,11 +108,9 @@ func (g *CommentGroup) Text() string {
// The parser has given us exactly the comment text.
switch c[1] {
case '/':
- //-style comment
+ //-style comment (no newline at the end)
c = c[2:]
- // Remove leading space after //, if there is one.
- // TODO(gri) This appears to be necessary in isolated
- // cases (bignum.RatFromString) - why?
+ // strip first space - required for Example tests
if len(c) > 0 && c[0] == ' ' {
c = c[1:]
}
diff --git a/src/pkg/go/ast/ast_test.go b/src/pkg/go/ast/ast_test.go
new file mode 100644
index 000000000..1a6a283f2
--- /dev/null
+++ b/src/pkg/go/ast/ast_test.go
@@ -0,0 +1,50 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ast
+
+import (
+ "testing"
+)
+
+var comments = []struct {
+ list []string
+ text string
+}{
+ {[]string{"//"}, ""},
+ {[]string{"// "}, ""},
+ {[]string{"//", "//", "// "}, ""},
+ {[]string{"// foo "}, "foo\n"},
+ {[]string{"//", "//", "// foo"}, "foo\n"},
+ {[]string{"// foo bar "}, "foo bar\n"},
+ {[]string{"// foo", "// bar"}, "foo\nbar\n"},
+ {[]string{"// foo", "//", "//", "//", "// bar"}, "foo\n\nbar\n"},
+ {[]string{"// foo", "/* bar */"}, "foo\n bar\n"},
+ {[]string{"//", "//", "//", "// foo", "//", "//", "//"}, "foo\n"},
+
+ {[]string{"/**/"}, ""},
+ {[]string{"/* */"}, ""},
+ {[]string{"/**/", "/**/", "/* */"}, ""},
+ {[]string{"/* Foo */"}, " Foo\n"},
+ {[]string{"/* Foo Bar */"}, " Foo Bar\n"},
+ {[]string{"/* Foo*/", "/* Bar*/"}, " Foo\n Bar\n"},
+ {[]string{"/* Foo*/", "/**/", "/**/", "/**/", "// Bar"}, " Foo\n\nBar\n"},
+ {[]string{"/* Foo*/", "/*\n*/", "//", "/*\n*/", "// Bar"}, " Foo\n\nBar\n"},
+ {[]string{"/* Foo*/", "// Bar"}, " Foo\nBar\n"},
+ {[]string{"/* Foo\n Bar*/"}, " Foo\n Bar\n"},
+}
+
+func TestCommentText(t *testing.T) {
+ for i, c := range comments {
+ list := make([]*Comment, len(c.list))
+ for i, s := range c.list {
+ list[i] = &Comment{Text: s}
+ }
+
+ text := (&CommentGroup{list}).Text()
+ if text != c.text {
+ t.Errorf("case %d: got %q; expected %q", i, text, c.text)
+ }
+ }
+}
diff --git a/src/pkg/go/build/build.go b/src/pkg/go/build/build.go
index d749aef15..7a81d5030 100644
--- a/src/pkg/go/build/build.go
+++ b/src/pkg/go/build/build.go
@@ -68,7 +68,7 @@ type Context struct {
// ReadDir returns a slice of os.FileInfo, sorted by Name,
// describing the content of the named directory.
- // If ReadDir is nil, Import uses io.ReadDir.
+ // If ReadDir is nil, Import uses ioutil.ReadDir.
ReadDir func(dir string) (fi []os.FileInfo, err error)
// OpenFile opens a file (not a directory) for reading.
@@ -339,7 +339,7 @@ func (e *NoGoError) Error() string {
// - files starting with _ or . (likely editor temporary files)
// - files with build constraints not satisfied by the context
//
-// If an error occurs, Import returns a non-nil error also returns a non-nil
+// If an error occurs, Import returns a non-nil error and a non-nil
// *Package containing partial information.
//
func (ctxt *Context) Import(path string, srcDir string, mode ImportMode) (*Package, error) {
diff --git a/src/pkg/go/parser/parser.go b/src/pkg/go/parser/parser.go
index e362e13a7..20e505d97 100644
--- a/src/pkg/go/parser/parser.go
+++ b/src/pkg/go/parser/parser.go
@@ -267,13 +267,13 @@ func (p *parser) consumeComment() (comment *ast.Comment, endline int) {
// Consume a group of adjacent comments, add it to the parser's
// comments list, and return it together with the line at which
-// the last comment in the group ends. An empty line or non-comment
-// token terminates a comment group.
+// the last comment in the group ends. A non-comment token or n
+// empty lines terminate a comment group.
//
-func (p *parser) consumeCommentGroup() (comments *ast.CommentGroup, endline int) {
+func (p *parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline int) {
var list []*ast.Comment
endline = p.file.Line(p.pos)
- for p.tok == token.COMMENT && endline+1 >= p.file.Line(p.pos) {
+ for p.tok == token.COMMENT && p.file.Line(p.pos) <= endline+n {
var comment *ast.Comment
comment, endline = p.consumeComment()
list = append(list, comment)
@@ -314,7 +314,7 @@ func (p *parser) next() {
if p.file.Line(p.pos) == line {
// The comment is on same line as the previous token; it
// cannot be a lead comment but may be a line comment.
- comment, endline = p.consumeCommentGroup()
+ comment, endline = p.consumeCommentGroup(0)
if p.file.Line(p.pos) != endline {
// The next token is on a different line, thus
// the last comment group is a line comment.
@@ -325,7 +325,7 @@ func (p *parser) next() {
// consume successor comments, if any
endline = -1
for p.tok == token.COMMENT {
- comment, endline = p.consumeCommentGroup()
+ comment, endline = p.consumeCommentGroup(1)
}
if endline+1 == p.file.Line(p.pos) {
@@ -627,10 +627,10 @@ func (p *parser) parseFieldDecl(scope *ast.Scope) *ast.Field {
doc := p.leadComment
- // fields
+ // FieldDecl
list, typ := p.parseVarList(false)
- // optional tag
+ // Tag
var tag *ast.BasicLit
if p.tok == token.STRING {
tag = &ast.BasicLit{ValuePos: p.pos, Kind: p.tok, Value: p.lit}
@@ -645,7 +645,6 @@ func (p *parser) parseFieldDecl(scope *ast.Scope) *ast.Field {
} else {
// ["*"] TypeName (AnonymousField)
typ = list[0] // we always have at least one element
- p.resolve(typ)
if n := len(list); n > 1 || !isTypeName(deref(typ)) {
pos := typ.Pos()
p.errorExpected(pos, "anonymous field")
@@ -657,6 +656,7 @@ func (p *parser) parseFieldDecl(scope *ast.Scope) *ast.Field {
field := &ast.Field{Doc: doc, Names: idents, Type: typ, Tag: tag, Comment: p.lineComment}
p.declare(field, nil, scope, ast.Var, idents...)
+ p.resolve(typ)
return field
}
@@ -699,12 +699,15 @@ func (p *parser) parsePointerType() *ast.StarExpr {
return &ast.StarExpr{Star: star, X: base}
}
+// If the result is an identifier, it is not resolved.
func (p *parser) tryVarType(isParam bool) ast.Expr {
if isParam && p.tok == token.ELLIPSIS {
pos := p.pos
p.next()
typ := p.tryIdentOrType(isParam) // don't use parseType so we can provide better error message
- if typ == nil {
+ if typ != nil {
+ p.resolve(typ)
+ } else {
p.error(pos, "'...' parameter is missing type")
typ = &ast.BadExpr{From: pos, To: p.pos}
}
@@ -713,6 +716,7 @@ func (p *parser) tryVarType(isParam bool) ast.Expr {
return p.tryIdentOrType(false)
}
+// If the result is an identifier, it is not resolved.
func (p *parser) parseVarType(isParam bool) ast.Expr {
typ := p.tryVarType(isParam)
if typ == nil {
@@ -724,6 +728,7 @@ func (p *parser) parseVarType(isParam bool) ast.Expr {
return typ
}
+// If any of the results are identifiers, they are not resolved.
func (p *parser) parseVarList(isParam bool) (list []ast.Expr, typ ast.Expr) {
if p.trace {
defer un(trace(p, "VarList"))
@@ -744,9 +749,7 @@ func (p *parser) parseVarList(isParam bool) (list []ast.Expr, typ ast.Expr) {
}
// if we had a list of identifiers, it must be followed by a type
- if typ = p.tryVarType(isParam); typ != nil {
- p.resolve(typ)
- }
+ typ = p.tryVarType(isParam)
return
}
@@ -756,7 +759,10 @@ func (p *parser) parseParameterList(scope *ast.Scope, ellipsisOk bool) (params [
defer un(trace(p, "ParameterList"))
}
+ // ParameterDecl
list, typ := p.parseVarList(ellipsisOk)
+
+ // analyze case
if typ != nil {
// IdentifierList Type
idents := p.makeIdentList(list)
@@ -765,10 +771,10 @@ func (p *parser) parseParameterList(scope *ast.Scope, ellipsisOk bool) (params [
// Go spec: The scope of an identifier denoting a function
// parameter or result variable is the function body.
p.declare(field, nil, scope, ast.Var, idents...)
+ p.resolve(typ)
if p.tok == token.COMMA {
p.next()
}
-
for p.tok != token.RPAREN && p.tok != token.EOF {
idents := p.parseIdentList()
typ := p.parseVarType(ellipsisOk)
@@ -777,18 +783,18 @@ func (p *parser) parseParameterList(scope *ast.Scope, ellipsisOk bool) (params [
// Go spec: The scope of an identifier denoting a function
// parameter or result variable is the function body.
p.declare(field, nil, scope, ast.Var, idents...)
+ p.resolve(typ)
if !p.atComma("parameter list") {
break
}
p.next()
}
-
} else {
// Type { "," Type } (anonymous parameters)
params = make([]*ast.Field, len(list))
- for i, x := range list {
- p.resolve(x)
- params[i] = &ast.Field{Type: x}
+ for i, typ := range list {
+ p.resolve(typ)
+ params[i] = &ast.Field{Type: typ}
}
}
diff --git a/src/pkg/go/parser/parser_test.go b/src/pkg/go/parser/parser_test.go
index 5e45acd00..1b7a41b1b 100644
--- a/src/pkg/go/parser/parser_test.go
+++ b/src/pkg/go/parser/parser_test.go
@@ -5,10 +5,12 @@
package parser
import (
+ "bytes"
"fmt"
"go/ast"
"go/token"
"os"
+ "strings"
"testing"
)
@@ -25,7 +27,7 @@ func TestParse(t *testing.T) {
for _, filename := range validFiles {
_, err := ParseFile(fset, filename, nil, DeclarationErrors)
if err != nil {
- t.Errorf("ParseFile(%s): %v", filename, err)
+ t.Fatalf("ParseFile(%s): %v", filename, err)
}
}
}
@@ -70,7 +72,7 @@ func TestParseExpr(t *testing.T) {
src := "a + b"
x, err := ParseExpr(src)
if err != nil {
- t.Errorf("ParseExpr(%s): %v", src, err)
+ t.Fatalf("ParseExpr(%s): %v", src, err)
}
// sanity check
if _, ok := x.(*ast.BinaryExpr); !ok {
@@ -81,7 +83,7 @@ func TestParseExpr(t *testing.T) {
src = "a + *"
_, err = ParseExpr(src)
if err == nil {
- t.Errorf("ParseExpr(%s): %v", src, err)
+ t.Fatalf("ParseExpr(%s): %v", src, err)
}
// it must not crash
@@ -93,7 +95,7 @@ func TestParseExpr(t *testing.T) {
func TestColonEqualsScope(t *testing.T) {
f, err := ParseFile(fset, "", `package p; func f() { x, y, z := x, y, z }`, 0)
if err != nil {
- t.Errorf("parse: %s", err)
+ t.Fatal(err)
}
// RHS refers to undefined globals; LHS does not.
@@ -115,7 +117,7 @@ func TestColonEqualsScope(t *testing.T) {
func TestVarScope(t *testing.T) {
f, err := ParseFile(fset, "", `package p; func f() { var x, y, z = x, y, z }`, 0)
if err != nil {
- t.Errorf("parse: %s", err)
+ t.Fatal(err)
}
// RHS refers to undefined globals; LHS does not.
@@ -133,6 +135,67 @@ func TestVarScope(t *testing.T) {
}
}
+func TestUnresolved(t *testing.T) {
+ f, err := ParseFile(fset, "", `
+package p
+//
+func f1a(int)
+func f2a(byte, int, float)
+func f3a(a, b int, c float)
+func f4a(...complex)
+func f5a(a s1a, b ...complex)
+//
+func f1b(*int)
+func f2b([]byte, (int), *float)
+func f3b(a, b *int, c []float)
+func f4b(...*complex)
+func f5b(a s1a, b ...[]complex)
+//
+type s1a struct { int }
+type s2a struct { byte; int; s1a }
+type s3a struct { a, b int; c float }
+//
+type s1b struct { *int }
+type s2b struct { byte; int; *float }
+type s3b struct { a, b *s3b; c []float }
+`, 0)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ want := "int " + // f1a
+ "byte int float " + // f2a
+ "int float " + // f3a
+ "complex " + // f4a
+ "complex " + // f5a
+ //
+ "int " + // f1b
+ "byte int float " + // f2b
+ "int float " + // f3b
+ "complex " + // f4b
+ "complex " + // f5b
+ //
+ "int " + // s1a
+ "byte int " + // s2a
+ "int float " + // s3a
+ //
+ "int " + // s1a
+ "byte int float " + // s2a
+ "float " // s3a
+
+ // collect unresolved identifiers
+ var buf bytes.Buffer
+ for _, u := range f.Unresolved {
+ buf.WriteString(u.Name)
+ buf.WriteByte(' ')
+ }
+ got := buf.String()
+
+ if got != want {
+ t.Errorf("\ngot: %s\nwant: %s", got, want)
+ }
+}
+
var imports = map[string]bool{
`"a"`: true,
"`a`": true,
@@ -177,3 +240,125 @@ func TestImports(t *testing.T) {
}
}
}
+
+func TestCommentGroups(t *testing.T) {
+ f, err := ParseFile(fset, "", `
+package p /* 1a */ /* 1b */ /* 1c */ // 1d
+/* 2a
+*/
+// 2b
+const pi = 3.1415
+/* 3a */ // 3b
+/* 3c */ const e = 2.7182
+
+// Example from issue 3139
+func ExampleCount() {
+ fmt.Println(strings.Count("cheese", "e"))
+ fmt.Println(strings.Count("five", "")) // before & after each rune
+ // Output:
+ // 3
+ // 5
+}
+`, ParseComments)
+ if err != nil {
+ t.Fatal(err)
+ }
+ expected := [][]string{
+ {"/* 1a */", "/* 1b */", "/* 1c */", "// 1d"},
+ {"/* 2a\n*/", "// 2b"},
+ {"/* 3a */", "// 3b", "/* 3c */"},
+ {"// Example from issue 3139"},
+ {"// before & after each rune"},
+ {"// Output:", "// 3", "// 5"},
+ }
+ if len(f.Comments) != len(expected) {
+ t.Fatalf("got %d comment groups; expected %d", len(f.Comments), len(expected))
+ }
+ for i, exp := range expected {
+ got := f.Comments[i].List
+ if len(got) != len(exp) {
+ t.Errorf("got %d comments in group %d; expected %d", len(got), i, len(exp))
+ continue
+ }
+ for j, exp := range exp {
+ got := got[j].Text
+ if got != exp {
+ t.Errorf("got %q in group %d; expected %q", got, i, exp)
+ }
+ }
+ }
+}
+
+func getField(file *ast.File, fieldname string) *ast.Field {
+ parts := strings.Split(fieldname, ".")
+ for _, d := range file.Decls {
+ if d, ok := d.(*ast.GenDecl); ok && d.Tok == token.TYPE {
+ for _, s := range d.Specs {
+ if s, ok := s.(*ast.TypeSpec); ok && s.Name.Name == parts[0] {
+ if s, ok := s.Type.(*ast.StructType); ok {
+ for _, f := range s.Fields.List {
+ for _, name := range f.Names {
+ if name.Name == parts[1] {
+ return f
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return nil
+}
+
+// Don't use ast.CommentGroup.Text() - we want to see exact comment text.
+func commentText(c *ast.CommentGroup) string {
+ var buf bytes.Buffer
+ if c != nil {
+ for _, c := range c.List {
+ buf.WriteString(c.Text)
+ }
+ }
+ return buf.String()
+}
+
+func checkFieldComments(t *testing.T, file *ast.File, fieldname, lead, line string) {
+ f := getField(file, fieldname)
+ if f == nil {
+ t.Fatalf("field not found: %s", fieldname)
+ }
+ if got := commentText(f.Doc); got != lead {
+ t.Errorf("got lead comment %q; expected %q", got, lead)
+ }
+ if got := commentText(f.Comment); got != line {
+ t.Errorf("got line comment %q; expected %q", got, line)
+ }
+}
+
+func TestLeadAndLineComments(t *testing.T) {
+ f, err := ParseFile(fset, "", `
+package p
+type T struct {
+ /* F1 lead comment */
+ //
+ F1 int /* F1 */ // line comment
+ // F2 lead
+ // comment
+ F2 int // F2 line comment
+ // f3 lead comment
+ f3 int // f3 line comment
+}
+`, ParseComments)
+ if err != nil {
+ t.Fatal(err)
+ }
+ checkFieldComments(t, f, "T.F1", "/* F1 lead comment *///", "/* F1 */// line comment")
+ checkFieldComments(t, f, "T.F2", "// F2 lead// comment", "// F2 line comment")
+ checkFieldComments(t, f, "T.f3", "// f3 lead comment", "// f3 line comment")
+ ast.FileExports(f)
+ checkFieldComments(t, f, "T.F1", "/* F1 lead comment *///", "/* F1 */// line comment")
+ checkFieldComments(t, f, "T.F2", "// F2 lead// comment", "// F2 line comment")
+ if getField(f, "T.f3") != nil {
+ t.Error("not expected to find T.f3")
+ }
+}
diff --git a/src/pkg/go/printer/nodes.go b/src/pkg/go/printer/nodes.go
index 727d2a371..f13f9a5a8 100644
--- a/src/pkg/go/printer/nodes.go
+++ b/src/pkg/go/printer/nodes.go
@@ -60,8 +60,8 @@ func (p *printer) linebreak(line, min int, ws whiteSpace, newSection bool) (prin
// setComment sets g as the next comment if g != nil and if node comments
// are enabled - this mode is used when printing source code fragments such
-// as exports only. It assumes that there are no other pending comments to
-// intersperse.
+// as exports only. It assumes that there is no pending comment in p.comments
+// and at most one pending comment in the p.comment cache.
func (p *printer) setComment(g *ast.CommentGroup) {
if g == nil || !p.useNodeComments {
return
@@ -74,10 +74,19 @@ func (p *printer) setComment(g *ast.CommentGroup) {
// should never happen - handle gracefully and flush
// all comments up to g, ignore anything after that
p.flush(p.posFor(g.List[0].Pos()), token.ILLEGAL)
+ p.comments = p.comments[0:1]
+ // in debug mode, report error
+ p.internalError("setComment found pending comments")
}
p.comments[0] = g
p.cindex = 0
- p.nextComment() // get comment ready for use
+ // don't overwrite any pending comment in the p.comment cache
+ // (there may be a pending comment when a line comment is
+ // immediately followed by a lead comment with no other
+ // tokens inbetween)
+ if p.commentOffset == infinity {
+ p.nextComment() // get comment ready for use
+ }
}
type exprListMode uint
diff --git a/src/pkg/log/log.go b/src/pkg/log/log.go
index 1d7f209d1..d37e4375e 100644
--- a/src/pkg/log/log.go
+++ b/src/pkg/log/log.go
@@ -26,7 +26,7 @@ const (
// Bits or'ed together to control what's printed. There is no control over the
// order they appear (the order listed here) or the format they present (as
// described in the comments). A colon appears after these items:
- // 2009/0123 01:23:23.123123 /a/b/c/d.go:23: message
+ // 2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
Ldate = 1 << iota // the date: 2009/01/23
Ltime // the time: 01:23:23
Lmicroseconds // microsecond resolution: 01:23:23.123123. assumes Ltime.
diff --git a/src/pkg/math/big/nat.go b/src/pkg/math/big/nat.go
index 0bc6572b9..eaa6ff066 100644
--- a/src/pkg/math/big/nat.go
+++ b/src/pkg/math/big/nat.go
@@ -271,10 +271,10 @@ func karatsuba(z, x, y nat) {
// xd = x1 - x0
// yd = y0 - y1
//
- // z1 = xd*yd + z1 + z0
- // = (x1-x0)*(y0 - y1) + z1 + z0
- // = x1*y0 - x1*y1 - x0*y0 + x0*y1 + z1 + z0
- // = x1*y0 - z1 - z0 + x0*y1 + z1 + z0
+ // z1 = xd*yd + z2 + z0
+ // = (x1-x0)*(y0 - y1) + z2 + z0
+ // = x1*y0 - x1*y1 - x0*y0 + x0*y1 + z2 + z0
+ // = x1*y0 - z2 - z0 + x0*y1 + z2 + z0
// = x1*y0 + x0*y1
// split x, y into "digits"
@@ -318,7 +318,7 @@ func karatsuba(z, x, y nat) {
// save original z2:z0
// (ok to use upper half of z since we're done recursing)
r := z[n*4:]
- copy(r, z)
+ copy(r, z[:n*2])
// add up all partial products
//
diff --git a/src/pkg/math/big/nat_test.go b/src/pkg/math/big/nat_test.go
index 7f3f76dc3..becde5d17 100644
--- a/src/pkg/math/big/nat_test.go
+++ b/src/pkg/math/big/nat_test.go
@@ -661,3 +661,21 @@ func TestExpNN(t *testing.T) {
}
}
}
+
+func ExpHelper(b *testing.B, x, y Word) {
+ var z nat
+ for i := 0; i < b.N; i++ {
+ z.expWW(x, y)
+ }
+}
+
+func BenchmarkExp3Power0x10(b *testing.B) { ExpHelper(b, 3, 0x10) }
+func BenchmarkExp3Power0x40(b *testing.B) { ExpHelper(b, 3, 0x40) }
+func BenchmarkExp3Power0x100(b *testing.B) { ExpHelper(b, 3, 0x100) }
+func BenchmarkExp3Power0x400(b *testing.B) { ExpHelper(b, 3, 0x400) }
+func BenchmarkExp3Power0x1000(b *testing.B) { ExpHelper(b, 3, 0x1000) }
+func BenchmarkExp3Power0x4000(b *testing.B) { ExpHelper(b, 3, 0x4000) }
+func BenchmarkExp3Power0x10000(b *testing.B) { ExpHelper(b, 3, 0x10000) }
+func BenchmarkExp3Power0x40000(b *testing.B) { ExpHelper(b, 3, 0x40000) }
+func BenchmarkExp3Power0x100000(b *testing.B) { ExpHelper(b, 3, 0x100000) }
+func BenchmarkExp3Power0x400000(b *testing.B) { ExpHelper(b, 3, 0x400000) }
diff --git a/src/pkg/mime/multipart/multipart.go b/src/pkg/mime/multipart/multipart.go
index 6ace4be56..e9e337b92 100644
--- a/src/pkg/mime/multipart/multipart.go
+++ b/src/pkg/mime/multipart/multipart.go
@@ -22,11 +22,6 @@ import (
"net/textproto"
)
-// TODO(bradfitz): inline these once the compiler can inline them in
-// read-only situation (such as bytes.HasSuffix)
-var lf = []byte("\n")
-var crlf = []byte("\r\n")
-
var emptyParams = make(map[string]string)
// A Part represents a single part in a multipart body.
@@ -36,8 +31,9 @@ type Part struct {
// i.e. "foo-bar" changes case to "Foo-Bar"
Header textproto.MIMEHeader
- buffer *bytes.Buffer
- mr *Reader
+ buffer *bytes.Buffer
+ mr *Reader
+ bytesRead int
disposition string
dispositionParams map[string]string
@@ -113,14 +109,26 @@ func (bp *Part) populateHeaders() error {
// Read reads the body of a part, after its headers and before the
// next part (if any) begins.
func (p *Part) Read(d []byte) (n int, err error) {
+ defer func() {
+ p.bytesRead += n
+ }()
if p.buffer.Len() >= len(d) {
// Internal buffer of unconsumed data is large enough for
// the read request. No need to parse more at the moment.
return p.buffer.Read(d)
}
peek, err := p.mr.bufReader.Peek(4096) // TODO(bradfitz): add buffer size accessor
- unexpectedEof := err == io.EOF
- if err != nil && !unexpectedEof {
+
+ // Look for an immediate empty part without a leading \r\n
+ // before the boundary separator. Some MIME code makes empty
+ // parts like this. Most browsers, however, write the \r\n
+ // before the subsequent boundary even for empty parts and
+ // won't hit this path.
+ if p.bytesRead == 0 && p.mr.peekBufferIsEmptyPart(peek) {
+ return 0, io.EOF
+ }
+ unexpectedEOF := err == io.EOF
+ if err != nil && !unexpectedEOF {
return 0, fmt.Errorf("multipart: Part Read: %v", err)
}
if peek == nil {
@@ -138,7 +146,7 @@ func (p *Part) Read(d []byte) (n int, err error) {
foundBoundary = true
} else if safeCount := len(peek) - len(p.mr.nlDashBoundary); safeCount > 0 {
nCopy = safeCount
- } else if unexpectedEof {
+ } else if unexpectedEOF {
// If we've run out of peek buffer and the boundary
// wasn't found (and can't possibly fit), we must have
// hit the end of the file unexpectedly.
@@ -172,7 +180,10 @@ type Reader struct {
currentPart *Part
partsRead int
- nl, nlDashBoundary, dashBoundaryDash, dashBoundary []byte
+ nl []byte // "\r\n" or "\n" (set after seeing first boundary line)
+ nlDashBoundary []byte // nl + "--boundary"
+ dashBoundaryDash []byte // "--boundary--"
+ dashBoundary []byte // "--boundary"
}
// NextPart returns the next part in the multipart or an error.
@@ -185,7 +196,7 @@ func (r *Reader) NextPart() (*Part, error) {
expectNewPart := false
for {
line, err := r.bufReader.ReadSlice('\n')
- if err == io.EOF && bytes.Equal(line, r.dashBoundaryDash) {
+ if err == io.EOF && r.isFinalBoundary(line) {
// If the buffer ends in "--boundary--" without the
// trailing "\r\n", ReadSlice will return an error
// (since it's missing the '\n'), but this is a valid
@@ -207,7 +218,7 @@ func (r *Reader) NextPart() (*Part, error) {
return bp, nil
}
- if hasPrefixThenNewline(line, r.dashBoundaryDash) {
+ if r.isFinalBoundary(line) {
// Expected EOF
return nil, io.EOF
}
@@ -235,7 +246,19 @@ func (r *Reader) NextPart() (*Part, error) {
panic("unreachable")
}
-func (mr *Reader) isBoundaryDelimiterLine(line []byte) bool {
+// isFinalBoundary returns whether line is the final boundary line
+// indiciating that all parts are over.
+// It matches `^--boundary--[ \t]*(\r\n)?$`
+func (mr *Reader) isFinalBoundary(line []byte) bool {
+ if !bytes.HasPrefix(line, mr.dashBoundaryDash) {
+ return false
+ }
+ rest := line[len(mr.dashBoundaryDash):]
+ rest = skipLWSPChar(rest)
+ return len(rest) == 0 || bytes.Equal(rest, mr.nl)
+}
+
+func (mr *Reader) isBoundaryDelimiterLine(line []byte) (ret bool) {
// http://tools.ietf.org/html/rfc2046#section-5.1
// The boundary delimiter line is then defined as a line
// consisting entirely of two hyphen characters ("-",
@@ -245,32 +268,52 @@ func (mr *Reader) isBoundaryDelimiterLine(line []byte) bool {
if !bytes.HasPrefix(line, mr.dashBoundary) {
return false
}
- if bytes.HasSuffix(line, mr.nl) {
- return onlyHorizontalWhitespace(line[len(mr.dashBoundary) : len(line)-len(mr.nl)])
+ rest := line[len(mr.dashBoundary):]
+ rest = skipLWSPChar(rest)
+
+ // On the first part, see our lines are ending in \n instead of \r\n
+ // and switch into that mode if so. This is a violation of the spec,
+ // but occurs in practice.
+ if mr.partsRead == 0 && len(rest) == 1 && rest[0] == '\n' {
+ mr.nl = mr.nl[1:]
+ mr.nlDashBoundary = mr.nlDashBoundary[1:]
}
- // Violate the spec and also support newlines without the
- // carriage return...
- if mr.partsRead == 0 && bytes.HasSuffix(line, lf) {
- if onlyHorizontalWhitespace(line[len(mr.dashBoundary) : len(line)-1]) {
- mr.nl = mr.nl[1:]
- mr.nlDashBoundary = mr.nlDashBoundary[1:]
- return true
- }
- }
- return false
+ return bytes.Equal(rest, mr.nl)
}
-func onlyHorizontalWhitespace(s []byte) bool {
- for _, b := range s {
- if b != ' ' && b != '\t' {
- return false
- }
+// peekBufferIsEmptyPart returns whether the provided peek-ahead
+// buffer represents an empty part. This is only called if we've not
+// already read any bytes in this part and checks for the case of MIME
+// software not writing the \r\n on empty parts. Some does, some
+// doesn't.
+//
+// This checks that what follows the "--boundary" is actually the end
+// ("--boundary--" with optional whitespace) or optional whitespace
+// and then a newline, so we don't catch "--boundaryFAKE", in which
+// case the whole line is part of the data.
+func (mr *Reader) peekBufferIsEmptyPart(peek []byte) bool {
+ // End of parts case.
+ // Test whether peek matches `^--boundary--[ \t]*(?:\r\n|$)`
+ if bytes.HasPrefix(peek, mr.dashBoundaryDash) {
+ rest := peek[len(mr.dashBoundaryDash):]
+ rest = skipLWSPChar(rest)
+ return bytes.HasPrefix(rest, mr.nl) || len(rest) == 0
}
- return true
+ if !bytes.HasPrefix(peek, mr.dashBoundary) {
+ return false
+ }
+ // Test whether rest matches `^[ \t]*\r\n`)
+ rest := peek[len(mr.dashBoundary):]
+ rest = skipLWSPChar(rest)
+ return bytes.HasPrefix(rest, mr.nl)
}
-func hasPrefixThenNewline(s, prefix []byte) bool {
- return bytes.HasPrefix(s, prefix) &&
- (len(s) == len(prefix)+1 && s[len(s)-1] == '\n' ||
- len(s) == len(prefix)+2 && bytes.HasSuffix(s, crlf))
+// skipLWSPChar returns b with leading spaces and tabs removed.
+// RFC 822 defines:
+// LWSP-char = SPACE / HTAB
+func skipLWSPChar(b []byte) []byte {
+ for len(b) > 0 && (b[0] == ' ' || b[0] == '\t') {
+ b = b[1:]
+ }
+ return b
}
diff --git a/src/pkg/mime/multipart/multipart_test.go b/src/pkg/mime/multipart/multipart_test.go
index ca7108d7a..cd65e177e 100644
--- a/src/pkg/mime/multipart/multipart_test.go
+++ b/src/pkg/mime/multipart/multipart_test.go
@@ -10,20 +10,13 @@ import (
"fmt"
"io"
"io/ioutil"
+ "net/textproto"
"os"
+ "reflect"
"strings"
"testing"
)
-func TestHorizontalWhitespace(t *testing.T) {
- if !onlyHorizontalWhitespace([]byte(" \t")) {
- t.Error("expected pass")
- }
- if onlyHorizontalWhitespace([]byte("foo bar")) {
- t.Error("expected failure")
- }
-}
-
func TestBoundaryLine(t *testing.T) {
mr := NewReader(strings.NewReader(""), "myBoundary")
if !mr.isBoundaryDelimiterLine([]byte("--myBoundary\r\n")) {
@@ -319,29 +312,6 @@ Oh no, premature EOF!
}
}
-func TestZeroLengthBody(t *testing.T) {
- testBody := strings.Replace(`
-This is a multi-part message. This line is ignored.
---MyBoundary
-foo: bar
-
-
---MyBoundary--
-`, "\n", "\r\n", -1)
- r := NewReader(strings.NewReader(testBody), "MyBoundary")
- part, err := r.NextPart()
- if err != nil {
- t.Fatalf("didn't get a part")
- }
- n, err := io.Copy(ioutil.Discard, part)
- if err != nil {
- t.Errorf("error reading part: %v", err)
- }
- if n != 0 {
- t.Errorf("read %d bytes; expected 0", n)
- }
-}
-
type slowReader struct {
r io.Reader
}
@@ -427,3 +397,214 @@ func TestNested(t *testing.T) {
t.Fatalf("final outer NextPart = %v; want io.EOF", err)
}
}
+
+type headerBody struct {
+ header textproto.MIMEHeader
+ body string
+}
+
+func formData(key, value string) headerBody {
+ return headerBody{
+ textproto.MIMEHeader{
+ "Content-Type": {"text/plain; charset=ISO-8859-1"},
+ "Content-Disposition": {"form-data; name=" + key},
+ },
+ value,
+ }
+}
+
+type parseTest struct {
+ name string
+ in, sep string
+ want []headerBody
+}
+
+var parseTests = []parseTest{
+ // Actual body from App Engine on a blob upload. The final part (the
+ // Content-Type: message/external-body) is what App Engine replaces
+ // the uploaded file with. The other form fields (prefixed with
+ // "other" in their form-data name) are unchanged. A bug was
+ // reported with blob uploads failing when the other fields were
+ // empty. This was the MIME POST body that previously failed.
+ {
+ name: "App Engine post",
+ sep: "00151757727e9583fd04bfbca4c6",
+ in: "--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherEmpty1\r\n\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherFoo1\r\n\r\nfoo\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherFoo2\r\n\r\nfoo\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherEmpty2\r\n\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherRepeatFoo\r\n\r\nfoo\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherRepeatFoo\r\n\r\nfoo\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherRepeatEmpty\r\n\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=otherRepeatEmpty\r\n\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: text/plain; charset=ISO-8859-1\r\nContent-Disposition: form-data; name=submit\r\n\r\nSubmit\r\n--00151757727e9583fd04bfbca4c6\r\nContent-Type: message/external-body; charset=ISO-8859-1; blob-key=AHAZQqG84qllx7HUqO_oou5EvdYQNS3Mbbkb0RjjBoM_Kc1UqEN2ygDxWiyCPulIhpHRPx-VbpB6RX4MrsqhWAi_ZxJ48O9P2cTIACbvATHvg7IgbvZytyGMpL7xO1tlIvgwcM47JNfv_tGhy1XwyEUO8oldjPqg5Q\r\nContent-Disposition: form-data; name=file; filename=\"fall.png\"\r\n\r\nContent-Type: image/png\r\nContent-Length: 232303\r\nX-AppEngine-Upload-Creation: 2012-05-10 23:14:02.715173\r\nContent-MD5: MzRjODU1ZDZhZGU1NmRlOWEwZmMwMDdlODBmZTA0NzA=\r\nContent-Disposition: form-data; name=file; filename=\"fall.png\"\r\n\r\n\r\n--00151757727e9583fd04bfbca4c6--",
+ want: []headerBody{
+ formData("otherEmpty1", ""),
+ formData("otherFoo1", "foo"),
+ formData("otherFoo2", "foo"),
+ formData("otherEmpty2", ""),
+ formData("otherRepeatFoo", "foo"),
+ formData("otherRepeatFoo", "foo"),
+ formData("otherRepeatEmpty", ""),
+ formData("otherRepeatEmpty", ""),
+ formData("submit", "Submit"),
+ {textproto.MIMEHeader{
+ "Content-Type": {"message/external-body; charset=ISO-8859-1; blob-key=AHAZQqG84qllx7HUqO_oou5EvdYQNS3Mbbkb0RjjBoM_Kc1UqEN2ygDxWiyCPulIhpHRPx-VbpB6RX4MrsqhWAi_ZxJ48O9P2cTIACbvATHvg7IgbvZytyGMpL7xO1tlIvgwcM47JNfv_tGhy1XwyEUO8oldjPqg5Q"},
+ "Content-Disposition": {"form-data; name=file; filename=\"fall.png\""},
+ }, "Content-Type: image/png\r\nContent-Length: 232303\r\nX-AppEngine-Upload-Creation: 2012-05-10 23:14:02.715173\r\nContent-MD5: MzRjODU1ZDZhZGU1NmRlOWEwZmMwMDdlODBmZTA0NzA=\r\nContent-Disposition: form-data; name=file; filename=\"fall.png\"\r\n\r\n"},
+ },
+ },
+
+ // Single empty part, ended with --boundary immediately after headers.
+ {
+ name: "single empty part, --boundary",
+ sep: "abc",
+ in: "--abc\r\nFoo: bar\r\n\r\n--abc--",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, ""},
+ },
+ },
+
+ // Single empty part, ended with \r\n--boundary immediately after headers.
+ {
+ name: "single empty part, \r\n--boundary",
+ sep: "abc",
+ in: "--abc\r\nFoo: bar\r\n\r\n\r\n--abc--",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, ""},
+ },
+ },
+
+ // Final part empty.
+ {
+ name: "final part empty",
+ sep: "abc",
+ in: "--abc\r\nFoo: bar\r\n\r\n--abc\r\nFoo2: bar2\r\n\r\n--abc--",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, ""},
+ {textproto.MIMEHeader{"Foo2": {"bar2"}}, ""},
+ },
+ },
+
+ // Final part empty with newlines after final separator.
+ {
+ name: "final part empty then crlf",
+ sep: "abc",
+ in: "--abc\r\nFoo: bar\r\n\r\n--abc--\r\n",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, ""},
+ },
+ },
+
+ // Final part empty with lwsp-chars after final separator.
+ {
+ name: "final part empty then lwsp",
+ sep: "abc",
+ in: "--abc\r\nFoo: bar\r\n\r\n--abc-- \t",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, ""},
+ },
+ },
+
+ // No parts (empty form as submitted by Chrome)
+ {
+ name: "no parts",
+ sep: "----WebKitFormBoundaryQfEAfzFOiSemeHfA",
+ in: "------WebKitFormBoundaryQfEAfzFOiSemeHfA--\r\n",
+ want: []headerBody{},
+ },
+
+ // Part containing data starting with the boundary, but with additional suffix.
+ {
+ name: "fake separator as data",
+ sep: "sep",
+ in: "--sep\r\nFoo: bar\r\n\r\n--sepFAKE\r\n--sep--",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, "--sepFAKE"},
+ },
+ },
+
+ // Part containing a boundary with whitespace following it.
+ {
+ name: "boundary with whitespace",
+ sep: "sep",
+ in: "--sep \r\nFoo: bar\r\n\r\ntext\r\n--sep--",
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, "text"},
+ },
+ },
+
+ // With ignored leading line.
+ {
+ name: "leading line",
+ sep: "MyBoundary",
+ in: strings.Replace(`This is a multi-part message. This line is ignored.
+--MyBoundary
+foo: bar
+
+
+--MyBoundary--`, "\n", "\r\n", -1),
+ want: []headerBody{
+ {textproto.MIMEHeader{"Foo": {"bar"}}, ""},
+ },
+ },
+
+ roundTripParseTest(),
+}
+
+func TestParse(t *testing.T) {
+Cases:
+ for _, tt := range parseTests {
+ r := NewReader(strings.NewReader(tt.in), tt.sep)
+ got := []headerBody{}
+ for {
+ p, err := r.NextPart()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ t.Errorf("in test %q, NextPart: %v", tt.name, err)
+ continue Cases
+ }
+ pbody, err := ioutil.ReadAll(p)
+ if err != nil {
+ t.Errorf("in test %q, error reading part: %v", tt.name, err)
+ continue Cases
+ }
+ got = append(got, headerBody{p.Header, string(pbody)})
+ }
+ if !reflect.DeepEqual(tt.want, got) {
+ t.Errorf("test %q:\n got: %v\nwant: %v", tt.name, got, tt.want)
+ if len(tt.want) != len(got) {
+ t.Errorf("test %q: got %d parts, want %d", tt.name, len(got), len(tt.want))
+ } else if len(got) > 1 {
+ for pi, wantPart := range tt.want {
+ if !reflect.DeepEqual(wantPart, got[pi]) {
+ t.Errorf("test %q, part %d:\n got: %v\nwant: %v", tt.name, pi, got[pi], wantPart)
+ }
+ }
+ }
+ }
+ }
+}
+
+func roundTripParseTest() parseTest {
+ t := parseTest{
+ name: "round trip",
+ want: []headerBody{
+ formData("empty", ""),
+ formData("lf", "\n"),
+ formData("cr", "\r"),
+ formData("crlf", "\r\n"),
+ formData("foo", "bar"),
+ },
+ }
+ var buf bytes.Buffer
+ w := NewWriter(&buf)
+ for _, p := range t.want {
+ pw, err := w.CreatePart(p.header)
+ if err != nil {
+ panic(err)
+ }
+ _, err = pw.Write([]byte(p.body))
+ if err != nil {
+ panic(err)
+ }
+ }
+ w.Close()
+ t.in = buf.String()
+ t.sep = w.Boundary()
+ return t
+}
diff --git a/src/pkg/net/file.go b/src/pkg/net/file.go
index c95d16d64..fc6c6fad8 100644
--- a/src/pkg/net/file.go
+++ b/src/pkg/net/file.go
@@ -89,8 +89,8 @@ func FileConn(f *os.File) (c Conn, err error) {
// FileListener returns a copy of the network listener corresponding
// to the open file f. It is the caller's responsibility to close l
-// when finished. Closing c does not affect l, and closing l does not
-// affect c.
+// when finished. Closing l does not affect f, and closing f does not
+// affect l.
func FileListener(f *os.File) (l Listener, err error) {
fd, err := newFileFD(f)
if err != nil {
diff --git a/src/pkg/net/http/client.go b/src/pkg/net/http/client.go
index 5d450258b..54564e098 100644
--- a/src/pkg/net/http/client.go
+++ b/src/pkg/net/http/client.go
@@ -278,6 +278,11 @@ func (c *Client) Post(url string, bodyType string, body io.Reader) (r *Response,
return nil, err
}
req.Header.Set("Content-Type", bodyType)
+ if c.Jar != nil {
+ for _, cookie := range c.Jar.Cookies(req.URL) {
+ req.AddCookie(cookie)
+ }
+ }
r, err = send(req, c.Transport)
if err == nil && c.Jar != nil {
c.Jar.SetCookies(req.URL, r.Cookies())
diff --git a/src/pkg/net/http/client_test.go b/src/pkg/net/http/client_test.go
index e00b62e59..9b4261b9f 100644
--- a/src/pkg/net/http/client_test.go
+++ b/src/pkg/net/http/client_test.go
@@ -256,6 +256,31 @@ var echoCookiesRedirectHandler = HandlerFunc(func(w ResponseWriter, r *Request)
}
})
+func TestClientSendsCookieFromJar(t *testing.T) {
+ tr := &recordingTransport{}
+ client := &Client{Transport: tr}
+ client.Jar = &TestJar{perURL: make(map[string][]*Cookie)}
+ us := "http://dummy.faketld/"
+ u, _ := url.Parse(us)
+ client.Jar.SetCookies(u, expectedCookies)
+
+ client.Get(us) // Note: doesn't hit network
+ matchReturnedCookies(t, expectedCookies, tr.req.Cookies())
+
+ client.Head(us) // Note: doesn't hit network
+ matchReturnedCookies(t, expectedCookies, tr.req.Cookies())
+
+ client.Post(us, "text/plain", strings.NewReader("body")) // Note: doesn't hit network
+ matchReturnedCookies(t, expectedCookies, tr.req.Cookies())
+
+ client.PostForm(us, url.Values{}) // Note: doesn't hit network
+ matchReturnedCookies(t, expectedCookies, tr.req.Cookies())
+
+ req, _ := NewRequest("GET", us, nil)
+ client.Do(req) // Note: doesn't hit network
+ matchReturnedCookies(t, expectedCookies, tr.req.Cookies())
+}
+
// Just enough correctness for our redirect tests. Uses the URL.Host as the
// scope of all cookies.
type TestJar struct {
diff --git a/src/pkg/net/http/proxy_test.go b/src/pkg/net/http/proxy_test.go
index 9b320b3aa..5ecffafac 100644
--- a/src/pkg/net/http/proxy_test.go
+++ b/src/pkg/net/http/proxy_test.go
@@ -5,6 +5,7 @@
package http
import (
+ "net/url"
"os"
"testing"
)
@@ -46,3 +47,32 @@ func TestUseProxy(t *testing.T) {
}
}
}
+
+var cacheKeysTests = []struct {
+ proxy string
+ scheme string
+ addr string
+ key string
+}{
+ {"", "http", "foo.com", "|http|foo.com"},
+ {"", "https", "foo.com", "|https|foo.com"},
+ {"http://foo.com", "http", "foo.com", "http://foo.com|http|"},
+ {"http://foo.com", "https", "foo.com", "http://foo.com|https|foo.com"},
+}
+
+func TestCacheKeys(t *testing.T) {
+ for _, tt := range cacheKeysTests {
+ var proxy *url.URL
+ if tt.proxy != "" {
+ u, err := url.Parse(tt.proxy)
+ if err != nil {
+ t.Fatal(err)
+ }
+ proxy = u
+ }
+ cm := connectMethod{proxy, tt.scheme, tt.addr}
+ if cm.String() != tt.key {
+ t.Fatalf("{%q, %q, %q} cache key %q; want %q", tt.proxy, tt.scheme, tt.addr, cm.String(), tt.key)
+ }
+ }
+}
diff --git a/src/pkg/net/http/response.go b/src/pkg/net/http/response.go
index b79022097..945ecd8a4 100644
--- a/src/pkg/net/http/response.go
+++ b/src/pkg/net/http/response.go
@@ -202,9 +202,12 @@ func (r *Response) Write(w io.Writer) error {
text = "status code " + strconv.Itoa(r.StatusCode)
}
}
- io.WriteString(w, "HTTP/"+strconv.Itoa(r.ProtoMajor)+".")
- io.WriteString(w, strconv.Itoa(r.ProtoMinor)+" ")
- io.WriteString(w, strconv.Itoa(r.StatusCode)+" "+text+"\r\n")
+ protoMajor, protoMinor := strconv.Itoa(r.ProtoMajor), strconv.Itoa(r.ProtoMinor)
+ statusCode := strconv.Itoa(r.StatusCode) + " "
+ if strings.HasPrefix(text, statusCode) {
+ text = text[len(statusCode):]
+ }
+ io.WriteString(w, "HTTP/"+protoMajor+"."+protoMinor+" "+statusCode+text+"\r\n")
// Process Body,ContentLength,Close,Trailer
tw, err := newTransferWriter(r)
diff --git a/src/pkg/net/http/response_test.go b/src/pkg/net/http/response_test.go
index 165ec3624..6eed4887d 100644
--- a/src/pkg/net/http/response_test.go
+++ b/src/pkg/net/http/response_test.go
@@ -14,6 +14,7 @@ import (
"io/ioutil"
"net/url"
"reflect"
+ "strings"
"testing"
)
@@ -444,3 +445,17 @@ func TestLocationResponse(t *testing.T) {
}
}
}
+
+func TestResponseStatusStutter(t *testing.T) {
+ r := &Response{
+ Status: "123 some status",
+ StatusCode: 123,
+ ProtoMajor: 1,
+ ProtoMinor: 3,
+ }
+ var buf bytes.Buffer
+ r.Write(&buf)
+ if strings.Contains(buf.String(), "123 123") {
+ t.Errorf("stutter in status: %s", buf.String())
+ }
+}
diff --git a/src/pkg/net/http/server.go b/src/pkg/net/http/server.go
index 924ffd348..0572b4ae3 100644
--- a/src/pkg/net/http/server.go
+++ b/src/pkg/net/http/server.go
@@ -31,7 +31,7 @@ import (
// Errors introduced by the HTTP server.
var (
ErrWriteAfterFlush = errors.New("Conn.Write called after Flush")
- ErrBodyNotAllowed = errors.New("http: response status code does not allow body")
+ ErrBodyNotAllowed = errors.New("http: request method or response status code does not allow body")
ErrHijacked = errors.New("Conn has been hijacked")
ErrContentLength = errors.New("Conn.Write wrote more than the declared Content-Length")
)
diff --git a/src/pkg/net/http/transfer.go b/src/pkg/net/http/transfer.go
index 3c8fe7f5b..9e9d84172 100644
--- a/src/pkg/net/http/transfer.go
+++ b/src/pkg/net/http/transfer.go
@@ -71,7 +71,9 @@ func newTransferWriter(r interface{}) (t *transferWriter, err error) {
}
}
case *Response:
- t.Method = rr.Request.Method
+ if rr.Request != nil {
+ t.Method = rr.Request.Method
+ }
t.Body = rr.Body
t.BodyCloser = rr.Body
t.ContentLength = rr.ContentLength
@@ -79,7 +81,7 @@ func newTransferWriter(r interface{}) (t *transferWriter, err error) {
t.TransferEncoding = rr.TransferEncoding
t.Trailer = rr.Trailer
atLeastHTTP11 = rr.ProtoAtLeast(1, 1)
- t.ResponseToHEAD = noBodyExpected(rr.Request.Method)
+ t.ResponseToHEAD = noBodyExpected(t.Method)
}
// Sanitize Body,ContentLength,TransferEncoding
diff --git a/src/pkg/net/http/transport.go b/src/pkg/net/http/transport.go
index 024975946..6efe191eb 100644
--- a/src/pkg/net/http/transport.go
+++ b/src/pkg/net/http/transport.go
@@ -450,10 +450,14 @@ type connectMethod struct {
func (ck *connectMethod) String() string {
proxyStr := ""
+ targetAddr := ck.targetAddr
if ck.proxyURL != nil {
proxyStr = ck.proxyURL.String()
+ if ck.targetScheme == "http" {
+ targetAddr = ""
+ }
}
- return strings.Join([]string{proxyStr, ck.targetScheme, ck.targetAddr}, "|")
+ return strings.Join([]string{proxyStr, ck.targetScheme, targetAddr}, "|")
}
// addr returns the first hop "host:port" to which we need to TCP connect.
diff --git a/src/pkg/net/mail/message.go b/src/pkg/net/mail/message.go
index 0917bbedf..b610ccf3f 100644
--- a/src/pkg/net/mail/message.go
+++ b/src/pkg/net/mail/message.go
@@ -69,11 +69,12 @@ var dateLayouts []string
func init() {
// Generate layouts based on RFC 5322, section 3.3.
- dows := [...]string{"", "Mon, "} // day-of-week
- days := [...]string{"2", "02"} // day = 1*2DIGIT
- years := [...]string{"2006", "06"} // year = 4*DIGIT / 2*DIGIT
- seconds := [...]string{":05", ""} // second
- zones := [...]string{"-0700", "MST"} // zone = (("+" / "-") 4DIGIT) / "GMT" / ...
+ dows := [...]string{"", "Mon, "} // day-of-week
+ days := [...]string{"2", "02"} // day = 1*2DIGIT
+ years := [...]string{"2006", "06"} // year = 4*DIGIT / 2*DIGIT
+ seconds := [...]string{":05", ""} // second
+ // "-0700 (MST)" is not in RFC 5322, but is common.
+ zones := [...]string{"-0700", "MST", "-0700 (MST)"} // zone = (("+" / "-") 4DIGIT) / "GMT" / ...
for _, dow := range dows {
for _, day := range days {
diff --git a/src/pkg/net/mail/message_test.go b/src/pkg/net/mail/message_test.go
index 671ff2efa..fd17eb414 100644
--- a/src/pkg/net/mail/message_test.go
+++ b/src/pkg/net/mail/message_test.go
@@ -95,6 +95,11 @@ func TestDateParsing(t *testing.T) {
"21 Nov 97 09:55:06 GMT",
time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("GMT", 0)),
},
+ // Commonly found format not specified by RFC 5322.
+ {
+ "Fri, 21 Nov 1997 09:55:06 -0600 (MDT)",
+ time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("", -6*60*60)),
+ },
}
for _, test := range tests {
hdr := Header{
diff --git a/src/pkg/net/url/url.go b/src/pkg/net/url/url.go
index b6e79adc2..17bf0d3a3 100644
--- a/src/pkg/net/url/url.go
+++ b/src/pkg/net/url/url.go
@@ -401,11 +401,12 @@ Error:
}
func parseAuthority(authority string) (user *Userinfo, host string, err error) {
- if strings.Index(authority, "@") < 0 {
+ i := strings.LastIndex(authority, "@")
+ if i < 0 {
host = authority
return
}
- userinfo, host := split(authority, '@', true)
+ userinfo, host := authority[:i], authority[i+1:]
if strings.Index(userinfo, ":") < 0 {
if userinfo, err = unescape(userinfo, encodeUserPassword); err != nil {
return
diff --git a/src/pkg/net/url/url_test.go b/src/pkg/net/url/url_test.go
index d8b253142..75e8abe4e 100644
--- a/src/pkg/net/url/url_test.go
+++ b/src/pkg/net/url/url_test.go
@@ -188,6 +188,37 @@ var urltests = []URLTest{
},
"http://user:password@google.com",
},
+ // unescaped @ in username should not confuse host
+ {
+ "http://j@ne:password@google.com",
+ &URL{
+ Scheme: "http",
+ User: UserPassword("j@ne", "password"),
+ Host: "google.com",
+ },
+ "http://j%40ne:password@google.com",
+ },
+ // unescaped @ in password should not confuse host
+ {
+ "http://jane:p@ssword@google.com",
+ &URL{
+ Scheme: "http",
+ User: UserPassword("jane", "p@ssword"),
+ Host: "google.com",
+ },
+ "http://jane:p%40ssword@google.com",
+ },
+ {
+ "http://j@ne:password@google.com/p@th?q=@go",
+ &URL{
+ Scheme: "http",
+ User: UserPassword("j@ne", "password"),
+ Host: "google.com",
+ Path: "/p@th",
+ RawQuery: "q=@go",
+ },
+ "http://j%40ne:password@google.com/p@th?q=@go",
+ },
{
"http://www.google.com/?q=go+language#foo",
&URL{
diff --git a/src/pkg/os/exec/exec.go b/src/pkg/os/exec/exec.go
index bbd04902b..9a8e18170 100644
--- a/src/pkg/os/exec/exec.go
+++ b/src/pkg/os/exec/exec.go
@@ -204,6 +204,12 @@ func (c *Cmd) writerDescriptor(w io.Writer) (f *os.File, err error) {
return pw, nil
}
+func (c *Cmd) closeDescriptors(closers []io.Closer) {
+ for _, fd := range closers {
+ fd.Close()
+ }
+}
+
// Run starts the specified command and waits for it to complete.
//
// The returned error is nil if the command runs, has no problems
@@ -233,6 +239,8 @@ func (c *Cmd) Start() error {
for _, setupFd := range []F{(*Cmd).stdin, (*Cmd).stdout, (*Cmd).stderr} {
fd, err := setupFd(c)
if err != nil {
+ c.closeDescriptors(c.closeAfterStart)
+ c.closeDescriptors(c.closeAfterWait)
return err
}
c.childFiles = append(c.childFiles, fd)
@@ -247,12 +255,12 @@ func (c *Cmd) Start() error {
Sys: c.SysProcAttr,
})
if err != nil {
+ c.closeDescriptors(c.closeAfterStart)
+ c.closeDescriptors(c.closeAfterWait)
return err
}
- for _, fd := range c.closeAfterStart {
- fd.Close()
- }
+ c.closeDescriptors(c.closeAfterStart)
c.errch = make(chan error, len(c.goroutine))
for _, fn := range c.goroutine {
@@ -301,9 +309,7 @@ func (c *Cmd) Wait() error {
}
}
- for _, fd := range c.closeAfterWait {
- fd.Close()
- }
+ c.closeDescriptors(c.closeAfterWait)
if err != nil {
return err
diff --git a/src/pkg/path/filepath/path.go b/src/pkg/path/filepath/path.go
index a4e429bae..815021bd0 100644
--- a/src/pkg/path/filepath/path.go
+++ b/src/pkg/path/filepath/path.go
@@ -320,8 +320,11 @@ func walk(path string, info os.FileInfo, walkFn WalkFunc) error {
}
for _, fileInfo := range list {
- if err = walk(Join(path, fileInfo.Name()), fileInfo, walkFn); err != nil {
- return err
+ err = walk(Join(path, fileInfo.Name()), fileInfo, walkFn)
+ if err != nil {
+ if !fileInfo.IsDir() || err != SkipDir {
+ return err
+ }
}
}
return nil
diff --git a/src/pkg/path/filepath/path_plan9.go b/src/pkg/path/filepath/path_plan9.go
index cf028a75c..59a5812dd 100644
--- a/src/pkg/path/filepath/path_plan9.go
+++ b/src/pkg/path/filepath/path_plan9.go
@@ -12,7 +12,7 @@ func IsAbs(path string) bool {
}
// VolumeName returns the leading volume name on Windows.
-// It returns "" elsewhere
+// It returns "" elsewhere.
func VolumeName(path string) string {
return ""
}
diff --git a/src/pkg/path/filepath/path_test.go b/src/pkg/path/filepath/path_test.go
index b8766588c..070905fd3 100644
--- a/src/pkg/path/filepath/path_test.go
+++ b/src/pkg/path/filepath/path_test.go
@@ -869,3 +869,29 @@ func TestDriveLetterInEvalSymlinks(t *testing.T) {
t.Errorf("Results of EvalSymlinks do not match: %q and %q", flp, fup)
}
}
+
+func TestBug3486(t *testing.T) { // http://code.google.com/p/go/issues/detail?id=3486
+ root, err := filepath.EvalSymlinks(os.Getenv("GOROOT"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ lib := filepath.Join(root, "lib")
+ src := filepath.Join(root, "src")
+ seenSrc := false
+ filepath.Walk(root, func(pth string, info os.FileInfo, err error) error {
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ switch pth {
+ case lib:
+ return filepath.SkipDir
+ case src:
+ seenSrc = true
+ }
+ return nil
+ })
+ if !seenSrc {
+ t.Fatalf("%q not seen", src)
+ }
+}
diff --git a/src/pkg/regexp/regexp.go b/src/pkg/regexp/regexp.go
index 54c53776c..87e6b1c61 100644
--- a/src/pkg/regexp/regexp.go
+++ b/src/pkg/regexp/regexp.go
@@ -512,7 +512,7 @@ func (re *Regexp) replaceAll(bsrc []byte, src string, nmatch int, repl func(dst
}
// ReplaceAll returns a copy of src, replacing matches of the Regexp
-// with the replacement string repl. Inside repl, $ signs are interpreted as
+// with the replacement text repl. Inside repl, $ signs are interpreted as
// in Expand, so for instance $1 represents the text of the first submatch.
func (re *Regexp) ReplaceAll(src, repl []byte) []byte {
n := 2
@@ -726,7 +726,7 @@ func (re *Regexp) FindSubmatch(b []byte) [][]byte {
// the submatch with the corresponding index; other names refer to
// capturing parentheses named with the (?P<name>...) syntax. A
// reference to an out of range or unmatched index or a name that is not
-// present in the regular expression is replaced with an empty string.
+// present in the regular expression is replaced with an empty slice.
//
// In the $name form, name is taken to be as long as possible: $1x is
// equivalent to ${1x}, not ${1}x, and, $10 is equivalent to ${10}, not ${1}0.
diff --git a/src/pkg/regexp/syntax/parse.go b/src/pkg/regexp/syntax/parse.go
index 2df775025..4924e9453 100644
--- a/src/pkg/regexp/syntax/parse.go
+++ b/src/pkg/regexp/syntax/parse.go
@@ -48,6 +48,9 @@ const (
ErrTrailingBackslash ErrorCode = "trailing backslash at end of expression"
)
+// TODO: Export for Go 1.1.
+const errUnexpectedParen ErrorCode = "unexpected )"
+
func (e ErrorCode) String() string {
return string(e)
}
@@ -1168,13 +1171,13 @@ func (p *parser) parseRightParen() error {
n := len(p.stack)
if n < 2 {
- return &Error{ErrInternalError, ""}
+ return &Error{errUnexpectedParen, p.wholeRegexp}
}
re1 := p.stack[n-1]
re2 := p.stack[n-2]
p.stack = p.stack[:n-2]
if re2.Op != opLeftParen {
- return &Error{ErrMissingParen, p.wholeRegexp}
+ return &Error{errUnexpectedParen, p.wholeRegexp}
}
// Restore flags at time of paren.
p.flags = re2.Flags
diff --git a/src/pkg/regexp/syntax/parse_test.go b/src/pkg/regexp/syntax/parse_test.go
index c6e63392c..81fd9dc01 100644
--- a/src/pkg/regexp/syntax/parse_test.go
+++ b/src/pkg/regexp/syntax/parse_test.go
@@ -441,10 +441,18 @@ var invalidRegexps = []string{
`(`,
`)`,
`(a`,
+ `a)`,
+ `(a))`,
`(a|b|`,
+ `a|b|)`,
+ `(a|b|))`,
`(a|b`,
+ `a|b)`,
+ `(a|b))`,
`[a-z`,
`([a-z)`,
+ `[a-z)`,
+ `([a-z]))`,
`x{1001}`,
`x{9876543210}`,
`x{2,1}`,
diff --git a/src/pkg/runtime/alg.c b/src/pkg/runtime/alg.c
index e3c42916e..36973eba3 100644
--- a/src/pkg/runtime/alg.c
+++ b/src/pkg/runtime/alg.c
@@ -5,6 +5,9 @@
#include "runtime.h"
#include "type.h"
+#define M0 (sizeof(uintptr)==4 ? 2860486313UL : 33054211828000289ULL)
+#define M1 (sizeof(uintptr)==4 ? 3267000013UL : 23344194077549503ULL)
+
/*
* map and chan helpers for
* dealing with unknown types
@@ -16,19 +19,13 @@ runtime·memhash(uintptr *h, uintptr s, void *a)
uintptr hash;
b = a;
- if(sizeof(hash) == 4)
- hash = 2860486313U;
- else
- hash = 33054211828000289ULL;
+ hash = M0;
while(s > 0) {
- if(sizeof(hash) == 4)
- hash = (hash ^ *b) * 3267000013UL;
- else
- hash = (hash ^ *b) * 23344194077549503ULL;
+ hash = (hash ^ *b) * M1;
b++;
s--;
}
- *h ^= hash;
+ *h = (*h ^ hash) * M1;
}
void
@@ -252,7 +249,7 @@ runtime·f32hash(uintptr *h, uintptr s, void *a)
hash = runtime·fastrand1(); // any kind of NaN
else
hash = *(uint32*)a;
- *h ^= (*h ^ hash ^ 2860486313U) * 3267000013U;
+ *h = (*h ^ hash ^ M0) * M1;
}
void
@@ -271,14 +268,11 @@ runtime·f64hash(uintptr *h, uintptr s, void *a)
else {
u = *(uint64*)a;
if(sizeof(uintptr) == 4)
- hash = ((uint32)(u>>32) * 3267000013UL) ^ (uint32)u;
+ hash = ((uint32)(u>>32) * M1) ^ (uint32)u;
else
hash = u;
}
- if(sizeof(uintptr) == 4)
- *h = (*h ^ hash ^ 2860486313U) * 3267000013U;
- else
- *h = (*h ^ hash ^ 33054211828000289ULL) * 23344194077549503ULL;
+ *h = (*h ^ hash ^ M0) * M1;
}
void
@@ -357,7 +351,7 @@ void
runtime·interhash(uintptr *h, uintptr s, void *a)
{
USED(s);
- *h ^= runtime·ifacehash(*(Iface*)a);
+ *h = (*h ^ runtime·ifacehash(*(Iface*)a)) * M1;
}
void
@@ -391,7 +385,7 @@ void
runtime·nilinterhash(uintptr *h, uintptr s, void *a)
{
USED(s);
- *h ^= runtime·efacehash(*(Eface*)a);
+ *h = (*h ^ runtime·efacehash(*(Eface*)a)) * M1;
}
void
diff --git a/src/pkg/runtime/extern.go b/src/pkg/runtime/extern.go
index f9c5b8e3d..d93259d7b 100644
--- a/src/pkg/runtime/extern.go
+++ b/src/pkg/runtime/extern.go
@@ -20,7 +20,7 @@ func Goexit()
// Caller reports file and line number information about function invocations on
// the calling goroutine's stack. The argument skip is the number of stack frames
-// to ascend, with 1 identifying the caller of Caller. (For historical reasons the
+// to ascend, with 0 identifying the caller of Caller. (For historical reasons the
// meaning of skip differs between Caller and Callers.) The return values report the
// program counter, file name, and line number within the file of the corresponding
// call. The boolean ok is false if it was not possible to recover the information.
@@ -28,7 +28,8 @@ func Caller(skip int) (pc uintptr, file string, line int, ok bool)
// Callers fills the slice pc with the program counters of function invocations
// on the calling goroutine's stack. The argument skip is the number of stack frames
-// to skip before recording in pc, with 0 starting at the caller of Callers.
+// to skip before recording in pc, with 0 identifying the frame for Callers itself and
+// 1 identifying the caller of Callers.
// It returns the number of entries written to pc.
func Callers(skip int, pc []uintptr) int
diff --git a/src/pkg/runtime/hashmap.c b/src/pkg/runtime/hashmap.c
index 1def96727..63ed4e2a3 100644
--- a/src/pkg/runtime/hashmap.c
+++ b/src/pkg/runtime/hashmap.c
@@ -6,17 +6,24 @@
#include "hashmap.h"
#include "type.h"
+/* Hmap flag values */
+#define IndirectVal (1<<0) /* storing pointers to values */
+#define IndirectKey (1<<1) /* storing pointers to keys */
+#define CanFreeTable (1<<2) /* okay to free subtables */
+#define CanFreeKey (1<<3) /* okay to free pointers to keys */
+
struct Hmap { /* a hash table; initialize with hash_init() */
uint32 count; /* elements in table - must be first */
uint8 datasize; /* amount of data to store in entry */
- uint8 max_power; /* max power of 2 to create sub-tables */
- uint8 indirectval; /* storing pointers to values */
+ uint8 flag;
uint8 valoff; /* offset of value in key+value data block */
int32 changes; /* inc'ed whenever a subtable is created/grown */
uintptr hash0; /* hash seed */
struct hash_subtable *st; /* first-level table */
};
+#define MaxData 255
+
struct hash_entry {
hash_hash_t hash; /* hash value of data */
byte data[1]; /* user data has "datasize" bytes */
@@ -54,6 +61,7 @@ struct hash_subtable {
((struct hash_entry *) (((byte *) (base)) + (byte_offset)))
#define HASH_MAX_PROBES 15 /* max entries to probe before rehashing */
+#define HASH_MAX_POWER 12 /* max power of 2 to create sub-tables */
/* return a hash layer with 2**power empty entries */
static struct hash_subtable *
@@ -82,7 +90,7 @@ hash_subtable_new (Hmap *h, int32 power, int32 used)
}
static void
-init_sizes (int64 hint, int32 *init_power, int32 *max_power)
+init_sizes (int64 hint, int32 *init_power)
{
int32 log = 0;
int32 i;
@@ -98,24 +106,20 @@ init_sizes (int64 hint, int32 *init_power, int32 *max_power)
} else {
*init_power = 12;
}
- *max_power = 12;
}
static void
hash_init (Hmap *h, int32 datasize, int64 hint)
{
int32 init_power;
- int32 max_power;
if(datasize < sizeof (void *))
datasize = sizeof (void *);
datasize = runtime·rnd(datasize, sizeof (void *));
- init_sizes (hint, &init_power, &max_power);
+ init_sizes (hint, &init_power);
h->datasize = datasize;
- h->max_power = max_power;
assert (h->datasize == datasize);
- assert (h->max_power == max_power);
- assert (sizeof (void *) <= h->datasize || h->max_power == 255);
+ assert (sizeof (void *) <= h->datasize);
h->count = 0;
h->changes = 0;
h->st = hash_subtable_new (h, init_power, 0);
@@ -253,7 +257,8 @@ hash_grow (MapType *t, Hmap *h, struct hash_subtable **pst, int32 flags)
used++;
}
}
- free (old_st);
+ if (h->flag & CanFreeTable)
+ free (old_st);
}
static int32
@@ -266,6 +271,7 @@ hash_lookup (MapType *t, Hmap *h, void *data, void **pres)
hash_hash_t e_hash;
struct hash_entry *e;
struct hash_entry *end_e;
+ void *key;
bool eq;
hash = h->hash0;
@@ -290,7 +296,10 @@ hash_lookup (MapType *t, Hmap *h, void *data, void **pres)
e = HASH_OFFSET (e, elemsize);
}
while (e != end_e && ((e_hash = e->hash) ^ hash) < HASH_SUBHASH) {
- if (HASH_DATA_EQ (eq, t, h, data, e->data)) { /* a match */
+ key = e->data;
+ if (h->flag & IndirectKey)
+ key = *(void**)e->data;
+ if (HASH_DATA_EQ (eq, t, h, data, key)) { /* a match */
*pres = e->data;
return (1);
}
@@ -312,6 +321,7 @@ hash_remove (MapType *t, Hmap *h, void *data)
struct hash_entry *e;
struct hash_entry *end_e;
bool eq;
+ void *key;
hash = h->hash0;
(*t->key->alg->hash) (&hash, t->key->size, data);
@@ -335,8 +345,20 @@ hash_remove (MapType *t, Hmap *h, void *data)
e = HASH_OFFSET (e, elemsize);
}
while (e != end_e && ((e_hash = e->hash) ^ hash) < HASH_SUBHASH) {
- if (HASH_DATA_EQ (eq, t, h, data, e->data)) { /* a match */
- if (h->indirectval)
+ key = e->data;
+ if (h->flag & IndirectKey)
+ key = *(void**)e->data;
+ if (HASH_DATA_EQ (eq, t, h, data, key)) { /* a match */
+ // Free key if indirect, but only if reflect can't be
+ // holding a pointer to it. Deletions are rare,
+ // indirect (large) keys are rare, reflect on maps
+ // is rare. So in the rare, rare, rare case of deleting
+ // an indirect key from a map that has been reflected on,
+ // we leave the key for garbage collection instead of
+ // freeing it here.
+ if (h->flag & CanFreeKey)
+ free (key);
+ if (h->flag & IndirectVal)
free (*(void**)((byte*)e->data + h->valoff));
hash_remove_n (st, e, 1);
h->count--;
@@ -385,8 +407,12 @@ hash_insert_internal (MapType *t, struct hash_subtable **pst, int32 flags, hash_
struct hash_entry *ins_e = e;
int32 ins_i = i;
hash_hash_t ins_e_hash;
+ void *key;
while (ins_e != end_e && ((e_hash = ins_e->hash) ^ hash) < HASH_SUBHASH) {
- if (HASH_DATA_EQ (eq, t, h, data, ins_e->data)) { /* a match */
+ key = ins_e->data;
+ if (h->flag & IndirectKey)
+ key = *(void**)key;
+ if (HASH_DATA_EQ (eq, t, h, data, key)) { /* a match */
*pres = ins_e->data;
return (1);
}
@@ -423,7 +449,7 @@ hash_insert_internal (MapType *t, struct hash_subtable **pst, int32 flags, hash_
return (0);
}
h->changes++;
- if (st->power < h->max_power) {
+ if (st->power < HASH_MAX_POWER) {
hash_grow (t, h, pst, flags);
} else {
hash_conv (t, h, st, flags, hash, start_e);
@@ -606,7 +632,7 @@ hash_iter_init (MapType *t, Hmap *h, struct hash_iter *it)
}
static void
-clean_st (struct hash_subtable *st, int32 *slots, int32 *used)
+clean_st (Hmap *h, struct hash_subtable *st, int32 *slots, int32 *used)
{
int32 elemsize = st->datasize + offsetof (struct hash_entry, data[0]);
struct hash_entry *e = st->entry;
@@ -617,13 +643,14 @@ clean_st (struct hash_subtable *st, int32 *slots, int32 *used)
while (e <= last) {
hash_hash_t hash = e->hash;
if ((hash & HASH_MASK) == HASH_SUBHASH) {
- clean_st (*(struct hash_subtable **)e->data, slots, used);
+ clean_st (h, *(struct hash_subtable **)e->data, slots, used);
} else {
lused += (hash != HASH_NIL);
}
e = HASH_OFFSET (e, elemsize);
}
- free (st);
+ if (h->flag & CanFreeTable)
+ free (st);
*slots += lslots;
*used += lused;
}
@@ -634,7 +661,7 @@ hash_destroy (Hmap *h)
int32 slots = 0;
int32 used = 0;
- clean_st (h->st, &slots, &used);
+ clean_st (h, h->st, &slots, &used);
free (h);
}
@@ -677,20 +704,23 @@ hash_visit (Hmap *h, void (*data_visit) (void *arg, int32 level, void *data), vo
/// interfaces to go runtime
//
-// hash requires < 256 bytes of data (key+value) stored inline.
-// Only basic types can be key - biggest is complex128 (16 bytes).
-// Leave some room to grow, just in case.
-enum {
- MaxValsize = 256 - 64
-};
+static void**
+hash_valptr(Hmap *h, void *p)
+{
+ p = (byte*)p + h->valoff;
+ if(h->flag & IndirectVal)
+ p = *(void**)p;
+ return p;
+}
+
static void**
-hash_indirect(Hmap *h, void *p)
+hash_keyptr(Hmap *h, void *p)
{
- if(h->indirectval)
+ if(h->flag & IndirectKey)
p = *(void**)p;
return p;
-}
+}
static int32 debug = 0;
@@ -699,8 +729,8 @@ Hmap*
runtime·makemap_c(MapType *typ, int64 hint)
{
Hmap *h;
- int32 valsize_in_hash;
Type *key, *val;
+ uintptr ksize, vsize;
key = typ->key;
val = typ->elem;
@@ -712,19 +742,29 @@ runtime·makemap_c(MapType *typ, int64 hint)
runtime·throw("runtime.makemap: unsupported map key type");
h = runtime·mal(sizeof(*h));
+ h->flag |= CanFreeTable; /* until reflect gets involved, free is okay */
+
+ ksize = runtime·rnd(key->size, sizeof(void*));
+ vsize = runtime·rnd(val->size, sizeof(void*));
+ if(ksize > MaxData || vsize > MaxData || ksize+vsize > MaxData) {
+ // Either key is too big, or value is, or combined they are.
+ // Prefer to keep the key if possible, because we look at
+ // keys more often than values.
+ if(ksize > MaxData - sizeof(void*)) {
+ // No choice but to indirect the key.
+ h->flag |= IndirectKey;
+ h->flag |= CanFreeKey; /* until reflect gets involved, free is okay */
+ ksize = sizeof(void*);
+ }
+ if(vsize > MaxData - ksize) {
+ // Have to indirect the value.
+ h->flag |= IndirectVal;
+ vsize = sizeof(void*);
+ }
+ }
- valsize_in_hash = val->size;
- if (val->size > MaxValsize) {
- h->indirectval = 1;
- valsize_in_hash = sizeof(void*);
- }
-
- // Align value inside data so that mark-sweep gc can find it.
- h->valoff = key->size;
- if(valsize_in_hash >= sizeof(void*))
- h->valoff = runtime·rnd(key->size, sizeof(void*));
-
- hash_init(h, h->valoff+valsize_in_hash, hint);
+ h->valoff = ksize;
+ hash_init(h, ksize+vsize, hint);
// these calculations are compiler dependent.
// figure out offsets of map call arguments.
@@ -773,7 +813,7 @@ runtime·mapaccess(MapType *t, Hmap *h, byte *ak, byte *av, bool *pres)
res = nil;
if(hash_lookup(t, h, ak, (void**)&res)) {
*pres = true;
- elem->alg->copy(elem->size, av, hash_indirect(h, res+h->valoff));
+ elem->alg->copy(elem->size, av, hash_valptr(h, res));
} else {
*pres = false;
elem->alg->copy(elem->size, av, nil);
@@ -877,10 +917,14 @@ runtime·mapassign(MapType *t, Hmap *h, byte *ak, byte *av)
res = nil;
hit = hash_insert(t, h, ak, (void**)&res);
- if(!hit && h->indirectval)
- *(void**)(res+h->valoff) = runtime·mal(t->elem->size);
- t->key->alg->copy(t->key->size, res, ak);
- t->elem->alg->copy(t->elem->size, hash_indirect(h, res+h->valoff), av);
+ if(!hit) {
+ if(h->flag & IndirectKey)
+ *(void**)res = runtime·mal(t->key->size);
+ if(h->flag & IndirectVal)
+ *(void**)(res+h->valoff) = runtime·mal(t->elem->size);
+ }
+ t->key->alg->copy(t->key->size, hash_keyptr(h, res), ak);
+ t->elem->alg->copy(t->elem->size, hash_valptr(h, res), av);
if(debug) {
runtime·prints("mapassign: map=");
@@ -985,6 +1029,22 @@ runtime·mapiterinit(MapType *t, Hmap *h, struct hash_iter *it)
void
reflect·mapiterinit(MapType *t, Hmap *h, struct hash_iter *it)
{
+ uint8 flag;
+
+ if(h != nil && t->key->size > sizeof(void*)) {
+ // reflect·mapiterkey returns pointers to key data,
+ // and reflect holds them, so we cannot free key data
+ // eagerly anymore. Updating h->flag now is racy,
+ // but it's okay because this is the only possible store
+ // after creation.
+ flag = h->flag;
+ if(flag & IndirectKey)
+ flag &= ~CanFreeKey;
+ else
+ flag &= ~CanFreeTable;
+ h->flag = flag;
+ }
+
it = runtime·mal(sizeof *it);
FLUSH(&it);
runtime·mapiterinit(t, h, it);
@@ -1032,7 +1092,7 @@ runtime·mapiter1(struct hash_iter *it, ...)
runtime·throw("runtime.mapiter1: key:val nil pointer");
key = it->t->key;
- key->alg->copy(key->size, ak, res);
+ key->alg->copy(key->size, ak, hash_keyptr(h, res));
if(debug) {
runtime·prints("mapiter2: iter=");
@@ -1053,7 +1113,7 @@ runtime·mapiterkey(struct hash_iter *it, void *ak)
if(res == nil)
return false;
key = it->t->key;
- key->alg->copy(key->size, ak, res);
+ key->alg->copy(key->size, ak, hash_keyptr(it->h, res));
return true;
}
@@ -1076,6 +1136,7 @@ reflect·mapiterkey(struct hash_iter *it, uintptr key, bool ok)
} else {
tkey = it->t->key;
key = 0;
+ res = (byte*)hash_keyptr(it->h, res);
if(tkey->size <= sizeof(key))
tkey->alg->copy(tkey->size, (byte*)&key, res);
else
@@ -1117,8 +1178,8 @@ runtime·mapiter2(struct hash_iter *it, ...)
runtime·throw("runtime.mapiter2: key:val nil pointer");
h = it->h;
- t->key->alg->copy(t->key->size, ak, res);
- t->elem->alg->copy(t->elem->size, av, hash_indirect(h, res+h->valoff));
+ t->key->alg->copy(t->key->size, ak, hash_keyptr(h, res));
+ t->elem->alg->copy(t->elem->size, av, hash_valptr(h, res));
if(debug) {
runtime·prints("mapiter2: iter=");
diff --git a/src/pkg/runtime/malloc.goc b/src/pkg/runtime/malloc.goc
index fbdd6bb02..9ae3a9d61 100644
--- a/src/pkg/runtime/malloc.goc
+++ b/src/pkg/runtime/malloc.goc
@@ -154,6 +154,7 @@ runtime·free(void *v)
c->local_by_size[sizeclass].nfree++;
runtime·MCache_Free(c, v, sizeclass, size);
}
+ c->local_nfree++;
c->local_alloc -= size;
if(prof)
runtime·MProf_Free(v, size);
diff --git a/src/pkg/runtime/mfinal.c b/src/pkg/runtime/mfinal.c
index c6f2b5421..1fa5ea401 100644
--- a/src/pkg/runtime/mfinal.c
+++ b/src/pkg/runtime/mfinal.c
@@ -150,8 +150,7 @@ runtime·addfinalizer(void *p, void (*f)(void*), int32 nret)
tab = TAB(p);
runtime·lock(tab);
if(f == nil) {
- if(lookfintab(tab, p, true, nil))
- runtime·setblockspecial(p, false);
+ lookfintab(tab, p, true, nil);
runtime·unlock(tab);
return true;
}
diff --git a/src/pkg/runtime/mgc0.c b/src/pkg/runtime/mgc0.c
index e043864c1..e8fb266f4 100644
--- a/src/pkg/runtime/mgc0.c
+++ b/src/pkg/runtime/mgc0.c
@@ -1066,7 +1066,6 @@ runfinq(void)
framecap = framesz;
}
*(void**)frame = f->arg;
- runtime·setblockspecial(f->arg, false);
reflect·call((byte*)f->fn, frame, sizeof(uintptr) + f->nret);
f->fn = nil;
f->arg = nil;
diff --git a/src/pkg/runtime/softfloat_arm.c b/src/pkg/runtime/softfloat_arm.c
index fbe0b0413..bd73cb15b 100644
--- a/src/pkg/runtime/softfloat_arm.c
+++ b/src/pkg/runtime/softfloat_arm.c
@@ -9,10 +9,10 @@
#include "runtime.h"
#define CPSR 14
-#define FLAGS_N (1 << 31)
-#define FLAGS_Z (1 << 30)
-#define FLAGS_C (1 << 29)
-#define FLAGS_V (1 << 28)
+#define FLAGS_N (1U << 31)
+#define FLAGS_Z (1U << 30)
+#define FLAGS_C (1U << 29)
+#define FLAGS_V (1U << 28)
void runtime·abort(void);
void math·sqrtC(uint64, uint64*);
@@ -86,12 +86,24 @@ fstatus(bool nan, int32 cmp)
return FLAGS_C;
}
+// conditions array record the required CPSR cond field for the
+// first 5 pairs of conditional execution opcodes
+// higher 4 bits are must set, lower 4 bits are must clear
+static const uint8 conditions[10/2] = {
+ [0/2] = (FLAGS_Z >> 24) | 0, // 0: EQ (Z set), 1: NE (Z clear)
+ [2/2] = (FLAGS_C >> 24) | 0, // 2: CS/HS (C set), 3: CC/LO (C clear)
+ [4/2] = (FLAGS_N >> 24) | 0, // 4: MI (N set), 5: PL (N clear)
+ [6/2] = (FLAGS_V >> 24) | 0, // 6: VS (V set), 7: VC (V clear)
+ [8/2] = (FLAGS_C >> 24) |
+ (FLAGS_Z >> 28), // 8: HI (C set and Z clear), 9: LS (C clear and Z set)
+};
+
// returns number of words that the fp instruction
// is occupying, 0 if next instruction isn't float.
static uint32
stepflt(uint32 *pc, uint32 *regs)
{
- uint32 i, regd, regm, regn;
+ uint32 i, opc, regd, regm, regn, cpsr;
int32 delta;
uint32 *addr;
uint64 uval;
@@ -102,8 +114,49 @@ stepflt(uint32 *pc, uint32 *regs)
i = *pc;
if(trace)
- runtime·printf("stepflt %p %x\n", pc, i);
+ runtime·printf("stepflt %p %x (cpsr %x)\n", pc, i, regs[CPSR] >> 28);
+
+ opc = i >> 28;
+ if(opc == 14) // common case first
+ goto execute;
+ cpsr = regs[CPSR] >> 28;
+ switch(opc) {
+ case 0: case 1: case 2: case 3: case 4:
+ case 5: case 6: case 7: case 8: case 9:
+ if(((cpsr & (conditions[opc/2] >> 4)) == (conditions[opc/2] >> 4)) &&
+ ((cpsr & (conditions[opc/2] & 0xf)) == 0)) {
+ if(opc & 1) return 1;
+ } else {
+ if(!(opc & 1)) return 1;
+ }
+ break;
+ case 10: // GE (N == V)
+ case 11: // LT (N != V)
+ if((cpsr & (FLAGS_N >> 28)) == (cpsr & (FLAGS_V >> 28))) {
+ if(opc & 1) return 1;
+ } else {
+ if(!(opc & 1)) return 1;
+ }
+ break;
+ case 12: // GT (N == V and Z == 0)
+ case 13: // LE (N != V or Z == 1)
+ if((cpsr & (FLAGS_N >> 28)) == (cpsr & (FLAGS_V >> 28)) &&
+ (cpsr & (FLAGS_Z >> 28)) == 0) {
+ if(opc & 1) return 1;
+ } else {
+ if(!(opc & 1)) return 1;
+ }
+ break;
+ case 14: // AL
+ break;
+ case 15: // shouldn't happen
+ return 0;
+ }
+ if(trace)
+ runtime·printf("conditional %x (cpsr %x) pass\n", opc, cpsr);
+ i = (0xeU << 28) | (i & 0xfffffff);
+execute:
// special cases
if((i&0xfffff000) == 0xe59fb000) {
// load r11 from pc-relative address.
diff --git a/src/pkg/runtime/time.goc b/src/pkg/runtime/time.goc
index a6b835247..b18902f00 100644
--- a/src/pkg/runtime/time.goc
+++ b/src/pkg/runtime/time.goc
@@ -61,8 +61,11 @@ runtime·tsleep(int64 ns)
{
Timer t;
- if(ns <= 0)
+ if(ns <= 0) {
+ g->status = Grunning;
+ g->waitreason = nil;
return;
+ }
t.when = runtime·nanotime() + ns;
t.period = 0;
diff --git a/src/pkg/runtime/vlrt_arm.c b/src/pkg/runtime/vlrt_arm.c
index 50f33710b..ab8050177 100644
--- a/src/pkg/runtime/vlrt_arm.c
+++ b/src/pkg/runtime/vlrt_arm.c
@@ -197,12 +197,14 @@ void
runtime·int64tofloat64(Vlong y, double d)
{
d = _v2d(y);
+ USED(&d); // FLUSH
}
void
runtime·uint64tofloat64(Vlong y, double d)
{
d = _ul2d(y.hi)*4294967296. + _ul2d(y.lo);
+ USED(&d); // FLUSH
}
static void
diff --git a/src/pkg/strconv/itoa.go b/src/pkg/strconv/itoa.go
index ca40dd7ef..67f17d866 100644
--- a/src/pkg/strconv/itoa.go
+++ b/src/pkg/strconv/itoa.go
@@ -4,13 +4,17 @@
package strconv
-// FormatUint returns the string representation of i in the given base.
+// FormatUint returns the string representation of i in the given base,
+// for 2 <= base <= 36. The result uses the lower-case letters 'a' to 'z'
+// for digit values >= 10.
func FormatUint(i uint64, base int) string {
_, s := formatBits(nil, i, base, false, false)
return s
}
-// FormatInt returns the string representation of i in the given base.
+// FormatInt returns the string representation of i in the given base,
+// for 2 <= base <= 36. The result uses the lower-case letters 'a' to 'z'
+// for digit values >= 10.
func FormatInt(i int64, base int) string {
_, s := formatBits(nil, uint64(i), base, i < 0, false)
return s
diff --git a/src/pkg/strings/example_test.go b/src/pkg/strings/example_test.go
index 114171072..733caf5f2 100644
--- a/src/pkg/strings/example_test.go
+++ b/src/pkg/strings/example_test.go
@@ -41,7 +41,6 @@ func ExampleContainsAny() {
func ExampleCount() {
fmt.Println(strings.Count("cheese", "e"))
fmt.Println(strings.Count("five", "")) // before & after each rune
-
// Output:
// 3
// 5
diff --git a/src/pkg/syscall/syscall_linux_arm.go b/src/pkg/syscall/syscall_linux_arm.go
index 48b5d31d7..2f2907945 100644
--- a/src/pkg/syscall/syscall_linux_arm.go
+++ b/src/pkg/syscall/syscall_linux_arm.go
@@ -41,26 +41,28 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error)
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
//sys sendmsg(s int, msg *Msghdr, flags int) (err error)
-//sys Chown(path string, uid int, gid int) (err error)
-//sys Fchown(fd int, uid int, gid int) (err error)
+// 64-bit file system and 32-bit uid calls
+// (16-bit uid calls are not always supported in newer kernels)
+//sys Chown(path string, uid int, gid int) (err error) = SYS_CHOWN32
+//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
//sys Fstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS64
-//sysnb Getegid() (egid int)
-//sysnb Geteuid() (euid int)
-//sysnb Getgid() (gid int)
-//sysnb Getuid() (uid int)
-//sys Lchown(path string, uid int, gid int) (err error)
+//sysnb Getegid() (egid int) = SYS_GETEGID32
+//sysnb Geteuid() (euid int) = SYS_GETEUID32
+//sysnb Getgid() (gid int) = SYS_GETGID32
+//sysnb Getuid() (uid int) = SYS_GETUID32
+//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
//sys Listen(s int, n int) (err error)
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
//sys Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
-//sys Setfsgid(gid int) (err error)
-//sys Setfsuid(uid int) (err error)
-//sysnb Setgid(gid int) (err error)
-//sysnb Setregid(rgid int, egid int) (err error)
-//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
-//sysnb Setresuid(ruid int, euid int, suid int) (err error)
-//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
+//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32
+//sysnb Setgid(gid int) (err error) = SYS_SETGID32
+//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
//sys Shutdown(fd int, how int) (err error)
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
diff --git a/src/pkg/syscall/syscall_windows.go b/src/pkg/syscall/syscall_windows.go
index 47209da8f..6b544f1d4 100644
--- a/src/pkg/syscall/syscall_windows.go
+++ b/src/pkg/syscall/syscall_windows.go
@@ -90,7 +90,9 @@ func (e Errno) Error() string {
b := make([]uint16, 300)
n, err := FormatMessage(flags, 0, uint32(e), langid(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil)
if err != nil {
- return "error " + itoa(int(e)) + " (FormatMessage failed with err=" + itoa(int(err.(Errno))) + ")"
+ // TODO(brainman): Call FormatMessage again asking for "native" error message.
+ // http://code.google.com/p/go/issues/detail?id=3376 must be resolved first.
+ return "winapi error #" + itoa(int(e))
}
// trim terminating \r and \n
for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- {
@@ -127,8 +129,8 @@ func NewCallback(fn interface{}) uintptr
//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff]
//sys CloseHandle(handle Handle) (err error)
//sys GetStdHandle(stdhandle int) (handle Handle, err error) [failretval==InvalidHandle]
-//sys FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW
-//sys FindNextFile(handle Handle, data *Win32finddata) (err error) = FindNextFileW
+//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW
+//sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW
//sys FindClose(handle Handle) (err error)
//sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error)
//sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW
@@ -199,6 +201,7 @@ func NewCallback(fn interface{}) uintptr
//sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW
//sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW
//sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW
+//sys getCurrentProcessId() (pid uint32) = kernel32.getCurrentProcessId
// syscall interface implementation for other packages
@@ -681,9 +684,35 @@ func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) {
}
func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { return EWINDOWS }
-// TODO(brainman): fix all needed for os
+func Getpid() (pid int) { return int(getCurrentProcessId()) }
+
+func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {
+ // NOTE(rsc): The Win32finddata struct is wrong for the system call:
+ // the two paths are each one uint16 short. Use the correct struct,
+ // a win32finddata1, and then copy the results out.
+ // There is no loss of expressivity here, because the final
+ // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that.
+ // For Go 1.1, we might avoid the allocation of win32finddata1 here
+ // by adding a final Bug [2]uint16 field to the struct and then
+ // adjusting the fields in the result directly.
+ var data1 win32finddata1
+ handle, err = findFirstFile1(name, &data1)
+ if err == nil {
+ copyFindData(data, &data1)
+ }
+ return
+}
-func Getpid() (pid int) { return -1 }
+func FindNextFile(handle Handle, data *Win32finddata) (err error) {
+ var data1 win32finddata1
+ err = findNextFile1(handle, &data1)
+ if err == nil {
+ copyFindData(data, &data1)
+ }
+ return
+}
+
+// TODO(brainman): fix all needed for os
func Getppid() (ppid int) { return -1 }
func Fchdir(fd Handle) (err error) { return EWINDOWS }
diff --git a/src/pkg/syscall/syscall_windows_test.go b/src/pkg/syscall/syscall_windows_test.go
new file mode 100644
index 000000000..79cd8f869
--- /dev/null
+++ b/src/pkg/syscall/syscall_windows_test.go
@@ -0,0 +1,50 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package syscall_test
+
+import (
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "syscall"
+ "testing"
+)
+
+func TestWin32finddata(t *testing.T) {
+ dir, err := ioutil.TempDir("", "go-build")
+ if err != nil {
+ t.Fatalf("failed to create temp directory: %v", err)
+ }
+ defer os.RemoveAll(dir)
+
+ path := filepath.Join(dir, "long_name.and_extension")
+ f, err := os.Create(path)
+ if err != nil {
+ t.Fatalf("failed to create %v: %v", path, err)
+ }
+ f.Close()
+
+ type X struct {
+ fd syscall.Win32finddata
+ got byte
+ pad [10]byte // to protect ourselves
+
+ }
+ var want byte = 2 // it is unlikely to have this character in the filename
+ x := X{got: want}
+
+ h, err := syscall.FindFirstFile(syscall.StringToUTF16Ptr(path), &(x.fd))
+ if err != nil {
+ t.Fatalf("FindFirstFile failed: %v", err)
+ }
+ err = syscall.FindClose(h)
+ if err != nil {
+ t.Fatalf("FindClose failed: %v", err)
+ }
+
+ if x.got != want {
+ t.Fatalf("memory corruption: want=%d got=%d", want, x.got)
+ }
+}
diff --git a/src/pkg/syscall/zsyscall_linux_arm.go b/src/pkg/syscall/zsyscall_linux_arm.go
index 1e86d3b7f..b1a59a69e 100644
--- a/src/pkg/syscall/zsyscall_linux_arm.go
+++ b/src/pkg/syscall/zsyscall_linux_arm.go
@@ -1203,7 +1203,7 @@ func sendmsg(s int, msg *Msghdr, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Chown(path string, uid int, gid int) (err error) {
- _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid))
+ _, _, e1 := Syscall(SYS_CHOWN32, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid))
if e1 != 0 {
err = e1
}
@@ -1213,7 +1213,7 @@ func Chown(path string, uid int, gid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fchown(fd int, uid int, gid int) (err error) {
- _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
if e1 != 0 {
err = e1
}
@@ -1243,7 +1243,7 @@ func Fstatfs(fd int, buf *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getegid() (egid int) {
- r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
egid = int(r0)
return
}
@@ -1251,7 +1251,7 @@ func Getegid() (egid int) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Geteuid() (euid int) {
- r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
euid = int(r0)
return
}
@@ -1259,7 +1259,7 @@ func Geteuid() (euid int) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getgid() (gid int) {
- r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
gid = int(r0)
return
}
@@ -1267,7 +1267,7 @@ func Getgid() (gid int) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getuid() (uid int) {
- r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
uid = int(r0)
return
}
@@ -1275,7 +1275,7 @@ func Getuid() (uid int) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Lchown(path string, uid int, gid int) (err error) {
- _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid))
+ _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid))
if e1 != 0 {
err = e1
}
@@ -1327,7 +1327,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setfsgid(gid int) (err error) {
- _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
if e1 != 0 {
err = e1
}
@@ -1337,7 +1337,7 @@ func Setfsgid(gid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setfsuid(uid int) (err error) {
- _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
if e1 != 0 {
err = e1
}
@@ -1347,7 +1347,7 @@ func Setfsuid(uid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setgid(gid int) (err error) {
- _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)
+ _, _, e1 := RawSyscall(SYS_SETGID32, uintptr(gid), 0, 0)
if e1 != 0 {
err = e1
}
@@ -1357,7 +1357,7 @@ func Setgid(gid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setregid(rgid int, egid int) (err error) {
- _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0)
if e1 != 0 {
err = e1
}
@@ -1367,7 +1367,7 @@ func Setregid(rgid int, egid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setresgid(rgid int, egid int, sgid int) (err error) {
- _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid))
if e1 != 0 {
err = e1
}
@@ -1377,7 +1377,7 @@ func Setresgid(rgid int, egid int, sgid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setresuid(ruid int, euid int, suid int) (err error) {
- _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid))
if e1 != 0 {
err = e1
}
@@ -1387,7 +1387,7 @@ func Setresuid(ruid int, euid int, suid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Setreuid(ruid int, euid int) (err error) {
- _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0)
if e1 != 0 {
err = e1
}
diff --git a/src/pkg/syscall/zsyscall_windows_386.go b/src/pkg/syscall/zsyscall_windows_386.go
index 8e6afcf0a..3022ce2e9 100644
--- a/src/pkg/syscall/zsyscall_windows_386.go
+++ b/src/pkg/syscall/zsyscall_windows_386.go
@@ -142,6 +142,7 @@ var (
procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken")
procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation")
procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW")
+ procgetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId")
)
func GetLastError() (lasterr error) {
@@ -308,7 +309,7 @@ func GetStdHandle(stdhandle int) (handle Handle, err error) {
return
}
-func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {
+func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {
r0, _, e1 := Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)
handle = Handle(r0)
if handle == InvalidHandle {
@@ -321,7 +322,7 @@ func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error)
return
}
-func FindNextFile(handle Handle, data *Win32finddata) (err error) {
+func findNextFile1(handle Handle, data *win32finddata1) (err error) {
r1, _, e1 := Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)
if int(r1) == 0 {
if e1 != 0 {
@@ -1600,3 +1601,9 @@ func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {
}
return
}
+
+func getCurrentProcessId() (pid uint32) {
+ r0, _, _ := Syscall(procgetCurrentProcessId.Addr(), 0, 0, 0, 0)
+ pid = uint32(r0)
+ return
+}
diff --git a/src/pkg/syscall/zsyscall_windows_amd64.go b/src/pkg/syscall/zsyscall_windows_amd64.go
index c6ff6fe02..ea0000c32 100644
--- a/src/pkg/syscall/zsyscall_windows_amd64.go
+++ b/src/pkg/syscall/zsyscall_windows_amd64.go
@@ -142,6 +142,7 @@ var (
procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken")
procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation")
procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW")
+ procgetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId")
)
func GetLastError() (lasterr error) {
@@ -308,7 +309,7 @@ func GetStdHandle(stdhandle int) (handle Handle, err error) {
return
}
-func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {
+func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {
r0, _, e1 := Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)
handle = Handle(r0)
if handle == InvalidHandle {
@@ -321,7 +322,7 @@ func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error)
return
}
-func FindNextFile(handle Handle, data *Win32finddata) (err error) {
+func findNextFile1(handle Handle, data *win32finddata1) (err error) {
r1, _, e1 := Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)
if int(r1) == 0 {
if e1 != 0 {
@@ -1600,3 +1601,9 @@ func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {
}
return
}
+
+func getCurrentProcessId() (pid uint32) {
+ r0, _, _ := Syscall(procgetCurrentProcessId.Addr(), 0, 0, 0, 0)
+ pid = uint32(r0)
+ return
+}
diff --git a/src/pkg/syscall/ztypes_windows.go b/src/pkg/syscall/ztypes_windows.go
index 54168bb98..b2dc12e1a 100644
--- a/src/pkg/syscall/ztypes_windows.go
+++ b/src/pkg/syscall/ztypes_windows.go
@@ -347,6 +347,38 @@ type Win32finddata struct {
AlternateFileName [13]uint16
}
+// This is the actual system call structure.
+// Win32finddata is what we committed to in Go 1.
+type win32finddata1 struct {
+ FileAttributes uint32
+ CreationTime Filetime
+ LastAccessTime Filetime
+ LastWriteTime Filetime
+ FileSizeHigh uint32
+ FileSizeLow uint32
+ Reserved0 uint32
+ Reserved1 uint32
+ FileName [MAX_PATH]uint16
+ AlternateFileName [14]uint16
+}
+
+func copyFindData(dst *Win32finddata, src *win32finddata1) {
+ dst.FileAttributes = src.FileAttributes
+ dst.CreationTime = src.CreationTime
+ dst.LastAccessTime = src.LastAccessTime
+ dst.LastWriteTime = src.LastWriteTime
+ dst.FileSizeHigh = src.FileSizeHigh
+ dst.FileSizeLow = src.FileSizeLow
+ dst.Reserved0 = src.Reserved0
+ dst.Reserved1 = src.Reserved1
+
+ // The src is 1 element shorter than dst. Zero that last one.
+ copy(dst.FileName[:], src.FileName[:])
+ dst.FileName[len(dst.FileName)-1] = 0
+ copy(dst.AlternateFileName[:], src.AlternateFileName[:])
+ src.AlternateFileName[len(dst.AlternateFileName)-1] = 0
+}
+
type ByHandleFileInformation struct {
FileAttributes uint32
CreationTime Filetime
diff --git a/src/pkg/text/template/exec.go b/src/pkg/text/template/exec.go
index feb434a3b..aba21ce28 100644
--- a/src/pkg/text/template/exec.go
+++ b/src/pkg/text/template/exec.go
@@ -518,6 +518,13 @@ func (s *state) validateType(value reflect.Value, typ reflect.Type) reflect.Valu
}
}
if !value.Type().AssignableTo(typ) {
+ if value.Kind() == reflect.Interface && !value.IsNil() {
+ value = value.Elem()
+ if value.Type().AssignableTo(typ) {
+ return value
+ }
+ // fallthrough
+ }
// Does one dereference or indirection work? We could do more, as we
// do with method receivers, but that gets messy and method receivers
// are much more constrained, so it makes more sense there than here.
diff --git a/src/pkg/text/template/exec_test.go b/src/pkg/text/template/exec_test.go
index 37d25f470..f4ae50f0e 100644
--- a/src/pkg/text/template/exec_test.go
+++ b/src/pkg/text/template/exec_test.go
@@ -311,6 +311,7 @@ var execTests = []execTest{
{".VariadicFuncInt", "{{call .VariadicFuncInt 33 `he` `llo`}}", "33=<he+llo>", tVal, true},
{"if .BinaryFunc call", "{{ if .BinaryFunc}}{{call .BinaryFunc `1` `2`}}{{end}}", "[1=2]", tVal, true},
{"if not .BinaryFunc call", "{{ if not .BinaryFunc}}{{call .BinaryFunc `1` `2`}}{{else}}No{{end}}", "No", tVal, true},
+ {"Interface Call", `{{stringer .S}}`, "foozle", map[string]interface{}{"S": bytes.NewBufferString("foozle")}, true},
// Erroneous function calls (check args).
{".BinaryFuncTooFew", "{{call .BinaryFunc `1`}}", "", tVal, false},
@@ -507,6 +508,10 @@ func vfunc(V, *V) string {
return "vfunc"
}
+func stringer(s fmt.Stringer) string {
+ return s.String()
+}
+
func testExecute(execTests []execTest, template *Template, t *testing.T) {
b := new(bytes.Buffer)
funcs := FuncMap{
@@ -516,6 +521,7 @@ func testExecute(execTests []execTest, template *Template, t *testing.T) {
"typeOf": typeOf,
"vfunc": vfunc,
"zeroArgs": zeroArgs,
+ "stringer": stringer,
}
for _, test := range execTests {
var tmpl *Template
diff --git a/src/pkg/time/sleep_test.go b/src/pkg/time/sleep_test.go
index 526d58d75..e05773df6 100644
--- a/src/pkg/time/sleep_test.go
+++ b/src/pkg/time/sleep_test.go
@@ -223,3 +223,25 @@ func TestTimerStopStress(t *testing.T) {
}
Sleep(3 * Second)
}
+
+func TestSleepZeroDeadlock(t *testing.T) {
+ // Sleep(0) used to hang, the sequence of events was as follows.
+ // Sleep(0) sets G's status to Gwaiting, but then immediately returns leaving the status.
+ // Then the goroutine calls e.g. new and falls down into the scheduler due to pending GC.
+ // After the GC nobody wakes up the goroutine from Gwaiting status.
+ defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(4))
+ c := make(chan bool)
+ go func() {
+ for i := 0; i < 100; i++ {
+ runtime.GC()
+ }
+ c <- true
+ }()
+ for i := 0; i < 100; i++ {
+ Sleep(0)
+ tmp := make(chan bool, 1)
+ tmp <- true
+ <-tmp
+ }
+ <-c
+}
diff --git a/src/pkg/unicode/maketables.go b/src/pkg/unicode/maketables.go
index 16bc83cea..fcd14fc73 100644
--- a/src/pkg/unicode/maketables.go
+++ b/src/pkg/unicode/maketables.go
@@ -488,7 +488,7 @@ func printCategories() {
func(code rune) bool { return chars[code].category == name })
}
decl.Sort()
- fmt.Println("// The following variables are of type *RangeTable:")
+ fmt.Println("// These variables have type *RangeTable.")
fmt.Println("var (")
for _, d := range decl {
fmt.Print(d)
@@ -771,7 +771,7 @@ func printScriptOrProperty(doProps bool) {
fmt.Print("}\n\n")
}
decl.Sort()
- fmt.Println("// The following variables are of type *RangeTable:")
+ fmt.Println("// These variables have type *RangeTable.")
fmt.Println("var (")
for _, d := range decl {
fmt.Print(d)
diff --git a/src/pkg/unicode/tables.go b/src/pkg/unicode/tables.go
index 5009e6b98..ebd169b09 100644
--- a/src/pkg/unicode/tables.go
+++ b/src/pkg/unicode/tables.go
@@ -2701,7 +2701,7 @@ var _Zs = &RangeTable{
},
}
-// The following variables are of type *RangeTable:
+// These variables have type *RangeTable.
var (
Cc = _Cc // Cc is the set of Unicode characters in category Cc.
Cf = _Cf // Cf is the set of Unicode characters in category Cf.
@@ -4054,7 +4054,7 @@ var _Yi = &RangeTable{
},
}
-// The following variables are of type *RangeTable:
+// These variables have type *RangeTable.
var (
Arabic = _Arabic // Arabic is the set of Unicode characters in script Arabic.
Armenian = _Armenian // Armenian is the set of Unicode characters in script Armenian.
@@ -5116,7 +5116,7 @@ var _White_Space = &RangeTable{
},
}
-// The following variables are of type *RangeTable:
+// These variables have type *RangeTable.
var (
ASCII_Hex_Digit = _ASCII_Hex_Digit // ASCII_Hex_Digit is the set of Unicode characters with property ASCII_Hex_Digit.
Bidi_Control = _Bidi_Control // Bidi_Control is the set of Unicode characters with property Bidi_Control.
diff --git a/src/run.bash b/src/run.bash
index c2a52a078..ca84b7034 100755
--- a/src/run.bash
+++ b/src/run.bash
@@ -24,6 +24,11 @@ else
echo
fi
+# we must unset GOROOT_FINAL before tests, because runtime/debug requires
+# correct access to source code, so if we have GOROOT_FINAL in effect,
+# at least runtime/debug test will fail.
+unset GOROOT_FINAL
+
echo '# Testing packages.'
time go test std -short -timeout=120s
echo
@@ -101,7 +106,7 @@ time go run run.go
echo
echo '# Checking API compatibility.'
-go tool api -c $GOROOT/api/go1.txt
+go tool api -c $GOROOT/api/go1.txt -next $GOROOT/api/next.txt
echo
echo ALL TESTS PASSED
diff --git a/src/run.bat b/src/run.bat
index c7a157972..9a09d435c 100644
--- a/src/run.bat
+++ b/src/run.bat
@@ -25,6 +25,11 @@ if errorlevel 1 goto fail
echo.
:norebuild
+:: we must unset GOROOT_FINAL before tests, because runtime/debug requires
+:: correct access to source code, so if we have GOROOT_FINAL in effect,
+:: at least runtime/debug test will fail.
+set GOROOT_FINAL=
+
echo # Testing packages.
go test std -short -timeout=120s
if errorlevel 1 goto fail
@@ -63,7 +68,7 @@ echo.
if %FAIL%==1 goto fail
echo # Checking API compatibility.
-go tool api -c ..\api\go1.txt
+go tool api -c ..\api\go1.txt -next ..\api\next.txt
if errorlevel 1 goto fail
echo.
diff --git a/test/bigmap.go b/test/bigmap.go
index 37e049846..c5e4f91e1 100644
--- a/test/bigmap.go
+++ b/test/bigmap.go
@@ -4,7 +4,9 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Test behavior of maps with large elements.
+// Internally a map holds elements in up to 255 bytes of key+value.
+// When key or value or both are too large, it uses pointers to key+value
+// instead. Test all the combinations.
package main
@@ -33,4 +35,105 @@ func main() {
cmp(m[1], seq(11, 13))
cmp(m[2], seq(2, 9))
cmp(m[3], seq(3, 17))
+
+
+ {
+ type T [1]byte
+ type V [1]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [100]byte
+ type V [1]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [1]byte
+ type V [100]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [1000]byte
+ type V [1]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [1]byte
+ type V [1000]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [1000]byte
+ type V [1000]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [200]byte
+ type V [1]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [1]byte
+ type V [200]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
+ {
+ type T [200]byte
+ type V [200]byte
+ m := make(map[T]V)
+ m[T{}] = V{1}
+ m[T{1}] = V{2}
+ if x, y := m[T{}][0], m[T{1}][0]; x != 1 || y != 2 {
+ println(x, y)
+ panic("bad map")
+ }
+ }
}
diff --git a/test/fixedbugs/bug441.go b/test/fixedbugs/bug441.go
new file mode 100644
index 000000000..8562bfeef
--- /dev/null
+++ b/test/fixedbugs/bug441.go
@@ -0,0 +1,36 @@
+// run
+
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Was discarding function calls made for arguments named _
+// in inlined functions. Issue 3593.
+
+package main
+
+var did int
+
+func main() {
+ foo(side())
+ foo2(side(), side())
+ foo3(side(), side())
+ T.m1(T(side()))
+ T(1).m2(side())
+ const want = 7
+ if did != want {
+ println("BUG: missing", want-did, "calls")
+ }
+}
+
+func foo(_ int) {}
+func foo2(_, _ int) {}
+func foo3(int, int) {}
+type T int
+func (_ T) m1() {}
+func (t T) m2(_ int) {}
+
+func side() int {
+ did++
+ return 1
+}
diff --git a/test/fixedbugs/bug442.go b/test/fixedbugs/bug442.go
new file mode 100644
index 000000000..1d1a94816
--- /dev/null
+++ b/test/fixedbugs/bug442.go
@@ -0,0 +1,27 @@
+// run
+
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Used to crash generating hash and == functions for struct
+// with leading _ field. Issue 3607.
+
+package main
+
+type T struct {
+ _ int
+ X interface{}
+ _ string
+ Y float64
+}
+
+func main() {
+ m := map[T]int{}
+ m[T{X: 1, Y: 2}] = 1
+ m[T{X: 2, Y: 3}] = 2
+ m[T{X: 1, Y: 2}] = 3 // overwrites first entry
+ if len(m) != 2 {
+ println("BUG")
+ }
+}
diff --git a/test/fixedbugs/bug443.go b/test/fixedbugs/bug443.go
new file mode 100644
index 000000000..b67bd8cb8
--- /dev/null
+++ b/test/fixedbugs/bug443.go
@@ -0,0 +1,17 @@
+// compile
+
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Was failing to compile with 'invalid receiver' due to
+// incomplete type definition evaluation. Issue 3709.
+
+package p
+
+type T1 struct { F *T2 }
+type T2 T1
+
+type T3 T2
+func (*T3) M() // was invalid receiver
+
diff --git a/test/fixedbugs/bug444.go b/test/fixedbugs/bug444.go
new file mode 100644
index 000000000..0bbd16fae
--- /dev/null
+++ b/test/fixedbugs/bug444.go
@@ -0,0 +1,19 @@
+// run
+
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// The no-op conversion here used to confuse the compiler
+// into doing a load-effective-address of nil.
+
+package main
+
+import "reflect"
+
+type T interface {}
+
+func main() {
+ reflect.TypeOf(nil)
+ reflect.TypeOf(T(nil)) // used to fail
+}
diff --git a/test/index.go b/test/index.go
index eb0c45495..f9e2413c1 100644
--- a/test/index.go
+++ b/test/index.go
@@ -31,16 +31,20 @@ import (
type quad struct { x, y, z, w int }
const (
- cj = 11
- ci int = 12
- ci32 int32 = 13
- ci64 int64 = 14
+ cj = 100011
+ ci int = 100012
+ ci8 int8 = 115
+ ci16 int16 = 10016
+ ci32 int32 = 100013
+ ci64 int64 = 100014
ci64big int64 = 1<<31
ci64bigger int64 = 1<<32
chuge = 1<<100
cnj = -2
cni int = -3
+ cni8 int8 = -6
+ cni16 int16 = -7
cni32 int32 = -4
cni64 int64 = -5
cni64big int64 = -1<<31
@@ -48,16 +52,20 @@ const (
cnhuge = -1<<100
)
-var j int = 20
-var i int = 21
-var i32 int32 = 22
-var i64 int64 = 23
+var j int = 100020
+var i int = 100021
+var i8 int8 = 126
+var i16 int16 = 10025
+var i32 int32 = 100022
+var i64 int64 = 100023
var i64big int64 = 1<<31
var i64bigger int64 = 1<<32
var huge uint64 = 1<<64 - 1
var nj int = -10
var ni int = -11
+var ni8 int8 = -14
+var ni16 int16 = -15
var ni32 int32 = -12
var ni64 int64 = -13
var ni64big int64 = -1<<31
@@ -72,6 +80,14 @@ var sq []quad = make([]quad, 10)
var aq [10]quad
var paq *[10]quad = &aq
+var sib []int = make([]int, 100000)
+var aib [100000]int
+var paib *[100000]int = &aib
+
+var sqb []quad = make([]quad, 100000)
+var aqb [100000]quad
+var paqb *[100000]quad = &aqb
+
type T struct {
si []int
ai [10]int
@@ -79,11 +95,18 @@ type T struct {
sq []quad
aq [10]quad
paq *[10]quad
+
+ sib []int
+ aib [100000]int
+ paib *[100000]int
+ sqb []quad
+ aqb [100000]quad
+ paqb *[100000]quad
}
-var t = T{si, ai, pai, sq, aq, paq}
+var t = T{si, ai, pai, sq, aq, paq, sib, aib, paib, sqb, aqb, paqb}
-var pt = &T{si, ai, pai, sq, aq, paq}
+var pt = &T{si, ai, pai, sq, aq, paq, sib, aib, paib, sqb, aqb, paqb}
// test that f panics
func test(f func(), s string) {
@@ -92,11 +115,25 @@ func test(f func(), s string) {
_, file, line, _ := runtime.Caller(2)
bug()
print(file, ":", line, ": ", s, " did not panic\n")
+ } else if !contains(err.(error).Error(), "out of range") {
+ _, file, line, _ := runtime.Caller(2)
+ bug()
+ print(file, ":", line, ": ", s, " unexpected panic: ", err.(error).Error(), "\n")
}
}()
f()
}
+func contains(x, y string) bool {
+ for i := 0; i+len(y) <= len(x); i++ {
+ if x[i:i+len(y)] == y {
+ return true
+ }
+ }
+ return false
+}
+
+
var X interface{}
func use(y interface{}) {
X = y
@@ -147,11 +184,14 @@ func main() {
// Array, pointer to array, slice.
[]string{"a", "pa", "s"},
-
+
// Element is int, element is quad (struct).
// This controls whether we end up in gsubr.c (i) or cgen.c (q).
[]string{"i", "q"},
+ // Small or big len.
+ []string{"", "b"},
+
// Variable or constant.
[]string{"", "c"},
@@ -159,11 +199,11 @@ func main() {
[]string{"", "n"},
// Size of index.
- []string{"j", "i", "i32", "i64", "i64big", "i64bigger", "huge"},
+ []string{"j", "i", "i8", "i16", "i32", "i64", "i64big", "i64bigger", "huge"},
}
forall(choices, func(x []string) {
- p, a, e, c, n, i := x[0], x[1], x[2], x[3], x[4], x[5]
+ p, a, e, big, c, n, i := x[0], x[1], x[2], x[3], x[4], x[5], x[6]
// Pass: dynamic=0, static=1, 2.
// Which cases should be caught statically?
@@ -185,10 +225,15 @@ func main() {
thisPass = 2
}
}
+
+ // If we're using the big-len data, positive int8 and int16 cannot overflow.
+ if big == "b" && n == "" && (i == "i8" || i == "i16") {
+ return
+ }
// Only print the test case if it is appropriate for this pass.
if thisPass == *pass {
- pae := p+a+e
+ pae := p+a+e+big
cni := c+n+i
// Index operation
diff --git a/test/map1.go b/test/map1.go
index 369e49da5..6f1a1c8ac 100644
--- a/test/map1.go
+++ b/test/map1.go
@@ -41,4 +41,22 @@ var (
_ map[[]int]v // ERROR "invalid map key"
_ map[func()]v // ERROR "invalid map key"
_ map[map[int]int]v // ERROR "invalid map key"
+ _ map[T1]v // ERROR "invalid map key"
+ _ map[T2]v // ERROR "invalid map key"
+ _ map[T3]v // ERROR "invalid map key"
+ _ map[T4]v // ERROR "invalid map key"
+ _ map[T5]v
+ _ map[T6]v
+ _ map[T7]v
+ _ map[T8]v
)
+
+type T1 []int
+type T2 struct { F T1 }
+type T3 []T4
+type T4 struct { F T3 }
+
+type T5 *int
+type T6 struct { F T5 }
+type T7 *T4
+type T8 struct { F *T7 }
diff --git a/test/range.go b/test/range.go
index b0f3ae605..68b0c9a2f 100644
--- a/test/range.go
+++ b/test/range.go
@@ -58,6 +58,17 @@ func testslice() {
println("wrong sum ranging over makeslice")
panic("fail")
}
+
+ x := []int{10, 20}
+ y := []int{99}
+ i := 1
+ for i, x[i] = range y {
+ break
+ }
+ if i != 0 || x[0] != 10 || x[1] != 99 {
+ println("wrong parallel assignment", i, x[0], x[1])
+ panic("fail")
+ }
}
func testslice1() {