aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/os_dragonfly.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/os_dragonfly.go')
-rw-r--r--src/runtime/os_dragonfly.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/runtime/os_dragonfly.go b/src/runtime/os_dragonfly.go
index e467578c32..fa480be029 100644
--- a/src/runtime/os_dragonfly.go
+++ b/src/runtime/os_dragonfly.go
@@ -296,8 +296,9 @@ func sysargs(argc int32, argv **byte) {
// skip NULL separator
n++
- auxv := (*[1 << 28]uintptr)(add(unsafe.Pointer(argv), uintptr(n)*goarch.PtrSize))
- sysauxv(auxv[:])
+ auxvp := (*[1 << 28]uintptr)(add(unsafe.Pointer(argv), uintptr(n)*goarch.PtrSize))
+ pairs := sysauxv(auxvp[:])
+ auxv = auxvp[: pairs*2 : pairs*2]
}
const (
@@ -305,14 +306,16 @@ const (
_AT_PAGESZ = 6
)
-func sysauxv(auxv []uintptr) {
- for i := 0; auxv[i] != _AT_NULL; i += 2 {
+func sysauxv(auxv []uintptr) (pairs int) {
+ var i int
+ for i = 0; auxv[i] != _AT_NULL; i += 2 {
tag, val := auxv[i], auxv[i+1]
switch tag {
case _AT_PAGESZ:
physPageSize = val
}
}
+ return i / 2
}
// raise sends a signal to the calling thread.