The syscall numbers for Linux were out of date, so with the release of
the 4.10 kernel, now seemed like a reasonable time to update them. Note
that this change is mostly additive except that it removes some invalid
syscalls for arm, and it removes all constants that refer to either the
syscall base or total number of syscalls. Previous versions had only
removed some of them.
The updated syscall numbers were pulled directly from a header build
of the 4.10 kernel. This required some minor adjustements to the sysnum
generating perl script and is why the comments at the tops of the
generated files look slightly different. I could include the script I
used to do this, but right now it cannot generate the zerrors and ztypes
files.
Change-Id: Id94b967eb917f8f87500f818f2e494df9bccf2e0
Reviewed-on: https://go-review.googlesource.com/37570
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TestSysctlUint64 was using vm.max_kernel_address which is only 64bit
on 64bit machines or 32bit machines with PAE. Switch to using
security.mac.labeled which is a SYSCTL_UQUAD so 64bit on all platforms.
Also:
* Correct typo in test name.
Fixesgolang/go#15186
Change-Id: I88b5b6ee6a04dec0730bca1e1f0e282f3c18d20d
Reviewed-on: https://go-review.googlesource.com/36058
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
These functions are redeclared in gccgo builds, so move them
to separate files with the "!gccgo" build constraint.
Fixesgolang/go#18312
Change-Id: I868cfb77fc394e5e96cee78af0f3abf43db6082a
Reviewed-on: https://go-review.googlesource.com/34379
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Introduce OpenRemoteKey function that opens some
root registry keys on remote computer.
Also add PERFORMANCE_DATA key, since it is one of
root keys accessible via OpenRemoteKey.
Change-Id: I738fdfee52a34acd4dc09ddb91fcf0e4c707bd83
Reviewed-on: https://go-review.googlesource.com/33814
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This fixes I8dc87401bb1025c2404e7304ecc4561edd67a452, which failed to
include the changes for s390x and sparc64, breaking the build for them.
Change-Id: I4899350580c36e4efbec9801345b5e32d624c849
Reviewed-on: https://go-review.googlesource.com/31185
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
CL 24551 introduced //go:uintptrescapes comment to make
syscall.Proc.Call and syscall.LazyProc.Call parameters escape.
Use new comment in this package too.
Updates golang/go#16035.
Change-Id: I57ec3b4778195ca4a1ce9a8eec331f0f69285926
Reviewed-on: https://go-review.googlesource.com/24870
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit adds linux/s390x support to the unix package. It is
based on the changes made to the syscall package in
https://golang.org/cl/20961/. It also adds mkpost.go which is
used to cleanup the API generated by cgo -godefs.
The biggest departure that is made with the syscall package is
the use of the -fsigned-char flag to force signed chars. We
couldn't do this in the syscall package because of the need to
maintain compatibility with the gccgo implementation of the syscall
package (gccgo has supported s390x for a longer time than the Go
toolchain). The unix package does not have this constraint.
Using the -fsigned-char flag makes the API look more like the one
generated on amd64 and arm64 and also more consistent with itself
(the syscall package represents chars using both int8 and uint8
types, the sys package will only ever use int8). Unfortunately it
also means that applications transitioning from the syscall package
to the unix package will see a different API on s390x which might
be confusing. I think the tradeoff is worth it though.
Change-Id: I40b90c18ed787e74ba7a2ebd004bd6bd1ba6279a
Reviewed-on: https://go-review.googlesource.com/23045
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Pause is a legacy syscall not available on linux-arm64. Use ppoll with
all args as 0 to emulate - this is the way musl libc does Pause when the
pause syscall isn't available.
With the changes in syscall_linux* and regenerating zsyscall_linux*,
this calling Pause on linux-arm64 works and returns EINTR as expected.
Change-Id: I88236290313f18c742d826e759e86ff260a8b383
Reviewed-on: https://go-review.googlesource.com/22014
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
These constants are used for fadvise() on Linux and were missing from
the ztypes_linux_*.go files.
Including the bluetooth headers is necessary so that cgo can resolve
struct sockaddr_hci.
Fixesgolang/go#15114
Change-Id: I1538b5a7b9b24f910c0520d446b2fa5bd8a09013
Reviewed-on: https://go-review.googlesource.com/21753
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Tried to generate them with mkerrors.sh by including
bluetooth/bluetooth.h, but it introduces way much more
than necessary stuff.
Change-Id: I380f66892f55dbe4cbfc76a0e3f9817f81d269b9
Reviewed-on: https://go-review.googlesource.com/21675
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
If we want new secure DLL approach to be adopted, we should make
conversion as simple as possible to explain and implement.
I think that replacing
syscall.NewLazyDLL(...) -> windows.NewLazySystemDLL(...)
is easier than
syscall.NewLazyDLL(...) -> &windows.LazyDLL{Name: ..., System: true}
So I propose we introduce convenience function NewLazySystemDLL.
$GOROOT/src/mksyscall_windows.go changes in the following CL.
Change-Id: If3432aff301c347cb355e4e837834696191b2219
Reviewed-on: https://go-review.googlesource.com/21592
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>