Merge pull request #495 from xushiwei/q
patch library: syscall, os, os/exec; demo: cexec; oslookpath
This commit is contained in:
20
_demo/cexec/exec.go
Normal file
20
_demo/cexec/exec.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"runtime"
|
||||||
|
"unsafe"
|
||||||
|
|
||||||
|
"github.com/goplus/llgo/c"
|
||||||
|
"github.com/goplus/llgo/c/os"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ls := c.Str("ls")
|
||||||
|
args := []*c.Char{ls, c.Str("-l"), nil}
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
ls = c.Str("dir")
|
||||||
|
args = []*c.Char{ls, nil}
|
||||||
|
}
|
||||||
|
|
||||||
|
os.Execvp(ls, unsafe.SliceData(args))
|
||||||
|
}
|
||||||
19
_demo/oslookpath/lookpath.go
Normal file
19
_demo/oslookpath/lookpath.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os/exec"
|
||||||
|
"runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ls := "ls"
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
ls = "dir"
|
||||||
|
}
|
||||||
|
lspath, _ := exec.LookPath(ls)
|
||||||
|
if lspath != "" {
|
||||||
|
ls = lspath
|
||||||
|
}
|
||||||
|
fmt.Println(ls)
|
||||||
|
}
|
||||||
26
_demo/sysexec/exec.go
Normal file
26
_demo/sysexec/exec.go
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os/exec"
|
||||||
|
"runtime"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
ls := "ls"
|
||||||
|
args := []string{"ls", "-l"}
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
ls = "dir"
|
||||||
|
args = nil
|
||||||
|
}
|
||||||
|
lspath, _ := exec.LookPath(ls)
|
||||||
|
if lspath != "" {
|
||||||
|
ls = lspath
|
||||||
|
}
|
||||||
|
err := syscall.Exec(ls, args, nil)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("syscall.Exec error:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
42
c/os/os.go
42
c/os/os.go
@@ -24,6 +24,7 @@ import (
|
|||||||
_ "unsafe"
|
_ "unsafe"
|
||||||
|
|
||||||
"github.com/goplus/llgo/c"
|
"github.com/goplus/llgo/c"
|
||||||
|
"github.com/goplus/llgo/c/syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -40,7 +41,10 @@ type (
|
|||||||
GidT C.gid_t
|
GidT C.gid_t
|
||||||
OffT C.off_t
|
OffT C.off_t
|
||||||
DevT C.dev_t
|
DevT C.dev_t
|
||||||
StatT C.struct_stat
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
StatT = syscall.Stat_t
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:linkname Errno errno
|
//go:linkname Errno errno
|
||||||
@@ -104,8 +108,8 @@ func Chroot(path *c.Char) c.Int
|
|||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
//go:linkname Environ C.environ
|
//go:linkname Environ environ
|
||||||
func Environ() **c.Char
|
var Environ **c.Char
|
||||||
|
|
||||||
//go:linkname Getenv C.getenv
|
//go:linkname Getenv C.getenv
|
||||||
func Getenv(name *c.Char) *c.Char
|
func Getenv(name *c.Char) *c.Char
|
||||||
@@ -204,6 +208,38 @@ func Isatty(fd c.Int) c.Int
|
|||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Execl(const char *path, const char *arg0, ..., /*, (char *)0, */)
|
||||||
|
//
|
||||||
|
// Execl requires the full path of the program to be provided.
|
||||||
|
//
|
||||||
|
//go:linkname Execl C.execl
|
||||||
|
func Execl(path *c.Char, __llgo_va_list ...any) c.Int
|
||||||
|
|
||||||
|
// Execle(const char *path, const char *arg0, ..., /* (char *)0, char *const envp[] */)
|
||||||
|
//
|
||||||
|
//go:linkname Execle C.execle
|
||||||
|
func Execle(path *c.Char, __llgo_va_list ...any) c.Int
|
||||||
|
|
||||||
|
// Execlp(const char *file, const char *arg0, ..., /*, (char *)0, */)
|
||||||
|
//
|
||||||
|
// Execlp only needs to provide the program name and it will search for the program in the
|
||||||
|
// paths specified in the PATH environment variable.
|
||||||
|
//
|
||||||
|
//go:linkname Execlp C.execlp
|
||||||
|
func Execlp(file *c.Char, __llgo_va_list ...any) c.Int
|
||||||
|
|
||||||
|
//go:linkname Execv C.execv
|
||||||
|
func Execv(path *c.Char, argv **c.Char) c.Int
|
||||||
|
|
||||||
|
//go:linkname Execve C.execve
|
||||||
|
func Execve(path *c.Char, argv **c.Char, envp **c.Char) c.Int
|
||||||
|
|
||||||
|
//go:linkname Execvp C.execvp
|
||||||
|
func Execvp(file *c.Char, argv **c.Char) c.Int
|
||||||
|
|
||||||
|
//go:linkname Fork C.fork
|
||||||
|
func Fork() c.Int
|
||||||
|
|
||||||
//go:linkname Kill C.kill
|
//go:linkname Kill C.kill
|
||||||
func Kill(pid c.Int, sig c.Int) c.Int
|
func Kill(pid c.Int, sig c.Int) c.Int
|
||||||
|
|
||||||
|
|||||||
21
c/syscall/syscall.go
Normal file
21
c/syscall/syscall.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
LLGoPackage = "decl"
|
||||||
|
)
|
||||||
10
c/syscall/unix/at_sysnum_darwin.go
Normal file
10
c/syscall/unix/at_sysnum_darwin.go
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
// Copyright 2018 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 unix
|
||||||
|
|
||||||
|
const AT_REMOVEDIR = 0x80
|
||||||
|
const AT_SYMLINK_NOFOLLOW = 0x0020
|
||||||
|
|
||||||
|
const UTIME_OMIT = -0x2
|
||||||
16
c/syscall/unix/at_sysnum_dragonfly.go
Normal file
16
c/syscall/unix/at_sysnum_dragonfly.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2018 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 unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
|
||||||
|
const openatTrap uintptr = syscall.SYS_OPENAT
|
||||||
|
const fstatatTrap uintptr = syscall.SYS_FSTATAT
|
||||||
|
|
||||||
|
const AT_REMOVEDIR = 0x2
|
||||||
|
const AT_SYMLINK_NOFOLLOW = 0x1
|
||||||
|
|
||||||
|
const UTIME_OMIT = -0x1
|
||||||
18
c/syscall/unix/at_sysnum_freebsd.go
Normal file
18
c/syscall/unix/at_sysnum_freebsd.go
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Copyright 2018 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 unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const (
|
||||||
|
AT_REMOVEDIR = 0x800
|
||||||
|
AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
|
||||||
|
UTIME_OMIT = -0x2
|
||||||
|
|
||||||
|
unlinkatTrap uintptr = syscall.SYS_UNLINKAT
|
||||||
|
openatTrap uintptr = syscall.SYS_OPENAT
|
||||||
|
posixFallocateTrap uintptr = syscall.SYS_POSIX_FALLOCATE
|
||||||
|
)
|
||||||
11
c/syscall/unix/at_sysnum_fstatat64_linux.go
Normal file
11
c/syscall/unix/at_sysnum_fstatat64_linux.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
//go:build arm || mips || mipsle || 386
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const fstatatTrap uintptr = syscall.SYS_FSTATAT64
|
||||||
11
c/syscall/unix/at_sysnum_fstatat_linux.go
Normal file
11
c/syscall/unix/at_sysnum_fstatat_linux.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
//go:build arm64 || riscv64
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const fstatatTrap uintptr = syscall.SYS_FSTATAT
|
||||||
19
c/syscall/unix/at_sysnum_linux.go
Normal file
19
c/syscall/unix/at_sysnum_linux.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// Copyright 2018 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 unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
|
||||||
|
const openatTrap uintptr = syscall.SYS_OPENAT
|
||||||
|
|
||||||
|
const (
|
||||||
|
AT_EACCESS = 0x200
|
||||||
|
AT_FDCWD = -0x64
|
||||||
|
AT_REMOVEDIR = 0x200
|
||||||
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
|
||||||
|
UTIME_OMIT = 0x3ffffffe
|
||||||
|
)
|
||||||
16
c/syscall/unix/at_sysnum_netbsd.go
Normal file
16
c/syscall/unix/at_sysnum_netbsd.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2018 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 unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
|
||||||
|
const openatTrap uintptr = syscall.SYS_OPENAT
|
||||||
|
const fstatatTrap uintptr = syscall.SYS_FSTATAT
|
||||||
|
|
||||||
|
const AT_REMOVEDIR = 0x800
|
||||||
|
const AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
|
||||||
|
const UTIME_OMIT = (1 << 30) - 2
|
||||||
11
c/syscall/unix/at_sysnum_newfstatat_linux.go
Normal file
11
c/syscall/unix/at_sysnum_newfstatat_linux.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
//go:build amd64 || mips64 || mips64le || ppc64 || ppc64le || s390x
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const fstatatTrap uintptr = syscall.SYS_NEWFSTATAT
|
||||||
16
c/syscall/unix/at_sysnum_openbsd.go
Normal file
16
c/syscall/unix/at_sysnum_openbsd.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2018 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 unix
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
const unlinkatTrap uintptr = syscall.SYS_UNLINKAT
|
||||||
|
const openatTrap uintptr = syscall.SYS_OPENAT
|
||||||
|
const fstatatTrap uintptr = syscall.SYS_FSTATAT
|
||||||
|
|
||||||
|
const AT_REMOVEDIR = 0x08
|
||||||
|
const AT_SYMLINK_NOFOLLOW = 0x02
|
||||||
|
|
||||||
|
const UTIME_OMIT = -0x1
|
||||||
288
c/syscall/ztypes_aix_ppc64.go
Normal file
288
c/syscall/ztypes_aix_ppc64.go
Normal file
@@ -0,0 +1,288 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs types_aix.go | go run mkpost.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x3ff
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval32 struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timezone struct {
|
||||||
|
Minuteswest int32
|
||||||
|
Dsttime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Pid_t int32
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Sysid uint32
|
||||||
|
Pid int32
|
||||||
|
Vfs int32
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink int16
|
||||||
|
Flag uint16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
Ssize int32
|
||||||
|
Atim StTimespec_t
|
||||||
|
Mtim StTimespec_t
|
||||||
|
Ctim StTimespec_t
|
||||||
|
Blksize int64
|
||||||
|
Blocks int64
|
||||||
|
Vfstype int32
|
||||||
|
Vfs uint32
|
||||||
|
Type uint32
|
||||||
|
Gen uint32
|
||||||
|
Reserved [9]uint32
|
||||||
|
Padto_ll uint32
|
||||||
|
Size int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Version int32
|
||||||
|
Type int32
|
||||||
|
Bsize uint64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid64_t
|
||||||
|
Vfstype int32
|
||||||
|
Fsize uint64
|
||||||
|
Vfsnumber int32
|
||||||
|
Vfsoff int32
|
||||||
|
Vfslen int32
|
||||||
|
Vfsvers int32
|
||||||
|
Fname [32]uint8
|
||||||
|
Fpack [32]uint8
|
||||||
|
Name_max int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid64_t struct {
|
||||||
|
Val [2]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type StTimespec_t struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Offset uint64
|
||||||
|
Ino uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Name [256]uint8
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [1023]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [120]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [1012]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x404
|
||||||
|
SizeofSockaddrUnix = 0x401
|
||||||
|
SizeofSockaddrDatalink = 0x80
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsgHdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Addrlen uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [32]uint8
|
||||||
|
Nodename [32]uint8
|
||||||
|
Release [32]uint8
|
||||||
|
Version [32]uint8
|
||||||
|
Machine [32]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x2
|
||||||
|
_AT_REMOVEDIR = 0x1
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x1
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [16]uint8
|
||||||
|
}
|
||||||
466
c/syscall/ztypes_darwin_amd64.go
Normal file
466
c/syscall/ztypes_darwin_amd64.go
Normal file
@@ -0,0 +1,466 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_darwin.go
|
||||||
|
|
||||||
|
//go:build amd64 && darwin
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval32 struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev int32
|
||||||
|
Mode uint16
|
||||||
|
Nlink uint16
|
||||||
|
Ino uint64
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Lspare int32
|
||||||
|
Qspare [2]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Bsize uint32
|
||||||
|
Iosize int32
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Owner uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint32
|
||||||
|
Fssubtype uint32
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Reserved [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fstore_t struct {
|
||||||
|
Flags uint32
|
||||||
|
Posmode int32
|
||||||
|
Offset int64
|
||||||
|
Length int64
|
||||||
|
Bytesalloc int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Radvisory_t struct {
|
||||||
|
Offset int64
|
||||||
|
Count int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fbootstraptransfer_t struct {
|
||||||
|
Offset int64
|
||||||
|
Length uint64
|
||||||
|
Buffer *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Log2phys_t struct {
|
||||||
|
Flags uint32
|
||||||
|
Contigbytes int64
|
||||||
|
Devoffset int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Seekoff uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [1024]int8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex uint32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x14
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x70
|
||||||
|
SizeofIfData = 0x60
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfmaMsghdr2 = 0x14
|
||||||
|
SizeofRtMsghdr = 0x5c
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Typelen uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Recvquota uint8
|
||||||
|
Xmitquota uint8
|
||||||
|
Unused1 uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Recvtiming uint32
|
||||||
|
Xmittiming uint32
|
||||||
|
Lastchange Timeval32
|
||||||
|
Unused2 uint32
|
||||||
|
Hwassist uint32
|
||||||
|
Reserved1 uint32
|
||||||
|
Reserved2 uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr2 struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Refcount int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Expire int32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pksent uint32
|
||||||
|
Filler [4]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval32
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x2
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint64
|
||||||
|
Oflag uint64
|
||||||
|
Cflag uint64
|
||||||
|
Lflag uint64
|
||||||
|
Cc [20]uint8
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Ispeed uint64
|
||||||
|
Ospeed uint64
|
||||||
|
}
|
||||||
466
c/syscall/ztypes_darwin_arm64.go
Normal file
466
c/syscall/ztypes_darwin_arm64.go
Normal file
@@ -0,0 +1,466 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_darwin.go
|
||||||
|
|
||||||
|
//go:build arm64 && darwin
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval32 struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev int32
|
||||||
|
Mode uint16
|
||||||
|
Nlink uint16
|
||||||
|
Ino uint64
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Lspare int32
|
||||||
|
Qspare [2]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Bsize uint32
|
||||||
|
Iosize int32
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Owner uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint32
|
||||||
|
Fssubtype uint32
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Reserved [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fstore_t struct {
|
||||||
|
Flags uint32
|
||||||
|
Posmode int32
|
||||||
|
Offset int64
|
||||||
|
Length int64
|
||||||
|
Bytesalloc int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Radvisory_t struct {
|
||||||
|
Offset int64
|
||||||
|
Count int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fbootstraptransfer_t struct {
|
||||||
|
Offset int64
|
||||||
|
Length uint64
|
||||||
|
Buffer *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Log2phys_t struct {
|
||||||
|
Flags uint32
|
||||||
|
Contigbytes int64
|
||||||
|
Devoffset int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Seekoff uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [1024]int8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex uint32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x14
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x70
|
||||||
|
SizeofIfData = 0x60
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfmaMsghdr2 = 0x14
|
||||||
|
SizeofRtMsghdr = 0x5c
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Typelen uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Recvquota uint8
|
||||||
|
Xmitquota uint8
|
||||||
|
Unused1 uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Recvtiming uint32
|
||||||
|
Xmittiming uint32
|
||||||
|
Lastchange Timeval32
|
||||||
|
Unused2 uint32
|
||||||
|
Hwassist uint32
|
||||||
|
Reserved1 uint32
|
||||||
|
Reserved2 uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr2 struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Refcount int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Expire int32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pksent uint32
|
||||||
|
Filler [4]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval32
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x2
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint64
|
||||||
|
Oflag uint64
|
||||||
|
Cflag uint64
|
||||||
|
Lflag uint64
|
||||||
|
Cc [20]uint8
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Ispeed uint64
|
||||||
|
Ospeed uint64
|
||||||
|
}
|
||||||
453
c/syscall/ztypes_dragonfly_amd64.go
Normal file
453
c/syscall/ztypes_dragonfly_amd64.go
Normal file
@@ -0,0 +1,453 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_dragonfly.go
|
||||||
|
|
||||||
|
//go:build amd64 && dragonfly
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur int64
|
||||||
|
Max int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Dev uint32
|
||||||
|
Mode uint16
|
||||||
|
Padding1 uint16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint32
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Lspare int32
|
||||||
|
Qspare1 int64
|
||||||
|
Qspare2 int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Spare2 int64
|
||||||
|
Bsize int64
|
||||||
|
Iosize int64
|
||||||
|
Blocks int64
|
||||||
|
Bfree int64
|
||||||
|
Bavail int64
|
||||||
|
Files int64
|
||||||
|
Ffree int64
|
||||||
|
Fsid Fsid
|
||||||
|
Owner uint32
|
||||||
|
Type int32
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Syncwrites int64
|
||||||
|
Asyncwrites int64
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntonname [80]int8
|
||||||
|
Syncreads int64
|
||||||
|
Asyncreads int64
|
||||||
|
Spares1 int16
|
||||||
|
Mntfromname [80]int8
|
||||||
|
Spares2 int16
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Spare [2]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Unused1 uint8
|
||||||
|
Unused2 uint32
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
Rcf uint16
|
||||||
|
Route [16]uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x36
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0xb0
|
||||||
|
SizeofIfData = 0xa0
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x98
|
||||||
|
SizeofRtMetrics = 0x70
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Recvquota uint8
|
||||||
|
Xmitquota uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Link_state uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Unused uint64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits uint64
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Pksent uint64
|
||||||
|
Expire uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Mssopt uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Msl uint64
|
||||||
|
Iwmaxsegs uint64
|
||||||
|
Iwcapsegs uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = 0xfffafdcd
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
519
c/syscall/ztypes_freebsd_386.go
Normal file
519
c/syscall/ztypes_freebsd_386.go
Normal file
@@ -0,0 +1,519 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs types_freebsd.go | go run mkpost.go
|
||||||
|
|
||||||
|
//go:build 386 && freebsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int32
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur int64
|
||||||
|
Max int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
_statfsVersion = 0x20140518
|
||||||
|
_dirblksiz = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint16
|
||||||
|
Padding0 int16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Padding1 int32
|
||||||
|
Rdev uint64
|
||||||
|
Atim_ext int32
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtim_ext int32
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctim_ext int32
|
||||||
|
Ctimespec Timespec
|
||||||
|
Btim_ext int32
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Version uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint64
|
||||||
|
Bsize uint64
|
||||||
|
Iosize uint64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail int64
|
||||||
|
Files uint64
|
||||||
|
Ffree int64
|
||||||
|
Syncwrites uint64
|
||||||
|
Asyncwrites uint64
|
||||||
|
Syncreads uint64
|
||||||
|
Asyncreads uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
Namemax uint32
|
||||||
|
Owner uint32
|
||||||
|
Fsid Fsid
|
||||||
|
Charspare [80]int8
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Sysid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Pad0 uint8
|
||||||
|
Namlen uint16
|
||||||
|
Pad1 uint16
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [46]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x36
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint32
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int32
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
X__fds_bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofIfMsghdr = 0x64
|
||||||
|
SizeofIfMsghdr = 0x60
|
||||||
|
sizeofIfData = 0x54
|
||||||
|
SizeofIfData = 0x50
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x5c
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type ifMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data ifData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type ifData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Vhid uint8
|
||||||
|
Baudrate_pf uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int32
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Spare_char1 uint8
|
||||||
|
Spare_char2 uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Hwassist uint32
|
||||||
|
Epoch int32
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Fmask int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Expire uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pksent uint32
|
||||||
|
Weight uint32
|
||||||
|
Filler [3]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfZbuf = 0xc
|
||||||
|
SizeofBpfProgram = 0x8
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
SizeofBpfZbufHeader = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbuf struct {
|
||||||
|
Bufa *byte
|
||||||
|
Bufb *byte
|
||||||
|
Buflen uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbufHeader struct {
|
||||||
|
Kernel_gen uint32
|
||||||
|
Kernel_len uint32
|
||||||
|
User_gen uint32
|
||||||
|
X_bzh_pad [5]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_SYMLINK_FOLLOW = 0x400
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
519
c/syscall/ztypes_freebsd_amd64.go
Normal file
519
c/syscall/ztypes_freebsd_amd64.go
Normal file
@@ -0,0 +1,519 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs types_freebsd.go | go run mkpost.go
|
||||||
|
|
||||||
|
//go:build amd64 && freebsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur int64
|
||||||
|
Max int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
_statfsVersion = 0x20140518
|
||||||
|
_dirblksiz = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint16
|
||||||
|
Padding0 int16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Padding1 int32
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Version uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint64
|
||||||
|
Bsize uint64
|
||||||
|
Iosize uint64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail int64
|
||||||
|
Files uint64
|
||||||
|
Ffree int64
|
||||||
|
Syncwrites uint64
|
||||||
|
Asyncwrites uint64
|
||||||
|
Syncreads uint64
|
||||||
|
Asyncreads uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
Namemax uint32
|
||||||
|
Owner uint32
|
||||||
|
Fsid Fsid
|
||||||
|
Charspare [80]int8
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Sysid int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Pad0 uint8
|
||||||
|
Namlen uint16
|
||||||
|
Pad1 uint16
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [46]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x36
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
X__fds_bits [16]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofIfMsghdr = 0xa8
|
||||||
|
SizeofIfMsghdr = 0xa8
|
||||||
|
sizeofIfData = 0x98
|
||||||
|
SizeofIfData = 0x98
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x98
|
||||||
|
SizeofRtMetrics = 0x70
|
||||||
|
)
|
||||||
|
|
||||||
|
type ifMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data ifData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type ifData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Vhid uint8
|
||||||
|
Baudrate_pf uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Spare_char1 uint8
|
||||||
|
Spare_char2 uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Fmask int32
|
||||||
|
Inits uint64
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Expire uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Pksent uint64
|
||||||
|
Weight uint64
|
||||||
|
Filler [3]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfZbuf = 0x18
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
SizeofBpfZbufHeader = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbuf struct {
|
||||||
|
Bufa *byte
|
||||||
|
Bufb *byte
|
||||||
|
Buflen uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbufHeader struct {
|
||||||
|
Kernel_gen uint32
|
||||||
|
Kernel_len uint32
|
||||||
|
User_gen uint32
|
||||||
|
X_bzh_pad [5]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_SYMLINK_FOLLOW = 0x400
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
519
c/syscall/ztypes_freebsd_arm.go
Normal file
519
c/syscall/ztypes_freebsd_arm.go
Normal file
@@ -0,0 +1,519 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs -- -fsigned-char types_freebsd.go
|
||||||
|
|
||||||
|
//go:build arm && freebsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur int64
|
||||||
|
Max int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
_statfsVersion = 0x20140518
|
||||||
|
_dirblksiz = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint16
|
||||||
|
Padding0 int16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Padding1 int32
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Version uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint64
|
||||||
|
Bsize uint64
|
||||||
|
Iosize uint64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail int64
|
||||||
|
Files uint64
|
||||||
|
Ffree int64
|
||||||
|
Syncwrites uint64
|
||||||
|
Asyncwrites uint64
|
||||||
|
Syncreads uint64
|
||||||
|
Asyncreads uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
Namemax uint32
|
||||||
|
Owner uint32
|
||||||
|
Fsid Fsid
|
||||||
|
Charspare [80]int8
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Sysid int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Pad0 uint8
|
||||||
|
Namlen uint16
|
||||||
|
Pad1 uint16
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [46]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x36
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint32
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int32
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
X__fds_bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofIfMsghdr = 0x70
|
||||||
|
SizeofIfMsghdr = 0x70
|
||||||
|
sizeofIfData = 0x60
|
||||||
|
SizeofIfData = 0x60
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x5c
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type ifMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data ifData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type ifData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Vhid uint8
|
||||||
|
Baudrate_pf uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Spare_char1 uint8
|
||||||
|
Spare_char2 uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Hwassist uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Fmask int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Expire uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pksent uint32
|
||||||
|
Weight uint32
|
||||||
|
Filler [3]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfZbuf = 0xc
|
||||||
|
SizeofBpfProgram = 0x8
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
SizeofBpfZbufHeader = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbuf struct {
|
||||||
|
Bufa *byte
|
||||||
|
Bufb *byte
|
||||||
|
Buflen uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbufHeader struct {
|
||||||
|
Kernel_gen uint32
|
||||||
|
Kernel_len uint32
|
||||||
|
User_gen uint32
|
||||||
|
X_bzh_pad [5]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_SYMLINK_FOLLOW = 0x400
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
519
c/syscall/ztypes_freebsd_arm64.go
Normal file
519
c/syscall/ztypes_freebsd_arm64.go
Normal file
@@ -0,0 +1,519 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs types_freebsd.go | go run mkpost.go
|
||||||
|
|
||||||
|
//go:build arm64 && freebsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur int64
|
||||||
|
Max int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
_statfsVersion = 0x20140518
|
||||||
|
_dirblksiz = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint16
|
||||||
|
Padding0 int16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Padding1 int32
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Version uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint64
|
||||||
|
Bsize uint64
|
||||||
|
Iosize uint64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail int64
|
||||||
|
Files uint64
|
||||||
|
Ffree int64
|
||||||
|
Syncwrites uint64
|
||||||
|
Asyncwrites uint64
|
||||||
|
Syncreads uint64
|
||||||
|
Asyncreads uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
Namemax uint32
|
||||||
|
Owner uint32
|
||||||
|
Fsid Fsid
|
||||||
|
Charspare [80]int8
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Sysid int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Pad0 uint8
|
||||||
|
Namlen uint16
|
||||||
|
Pad1 uint16
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [46]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x36
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
X__fds_bits [16]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofIfMsghdr = 0xa8
|
||||||
|
SizeofIfMsghdr = 0xa8
|
||||||
|
sizeofIfData = 0x98
|
||||||
|
SizeofIfData = 0x98
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x98
|
||||||
|
SizeofRtMetrics = 0x70
|
||||||
|
)
|
||||||
|
|
||||||
|
type ifMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data ifData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type ifData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Vhid uint8
|
||||||
|
Baudrate_pf uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Spare_char1 uint8
|
||||||
|
Spare_char2 uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Fmask int32
|
||||||
|
Inits uint64
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Expire uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Pksent uint64
|
||||||
|
Weight uint64
|
||||||
|
Filler [3]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfZbuf = 0x18
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
SizeofBpfZbufHeader = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbuf struct {
|
||||||
|
Bufa *byte
|
||||||
|
Bufb *byte
|
||||||
|
Buflen uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbufHeader struct {
|
||||||
|
Kernel_gen uint32
|
||||||
|
Kernel_len uint32
|
||||||
|
User_gen uint32
|
||||||
|
X_bzh_pad [5]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_SYMLINK_FOLLOW = 0x400
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
519
c/syscall/ztypes_freebsd_riscv64.go
Normal file
519
c/syscall/ztypes_freebsd_riscv64.go
Normal file
@@ -0,0 +1,519 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs types_freebsd.go | go run mkpost.go
|
||||||
|
|
||||||
|
//go:build riscv64 && freebsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur int64
|
||||||
|
Max int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
_statfsVersion = 0x20140518
|
||||||
|
_dirblksiz = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint16
|
||||||
|
Padding0 int16
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Padding1 int32
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Version uint32
|
||||||
|
Type uint32
|
||||||
|
Flags uint64
|
||||||
|
Bsize uint64
|
||||||
|
Iosize uint64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail int64
|
||||||
|
Files uint64
|
||||||
|
Ffree int64
|
||||||
|
Syncwrites uint64
|
||||||
|
Asyncwrites uint64
|
||||||
|
Syncreads uint64
|
||||||
|
Asyncreads uint64
|
||||||
|
Spare [10]uint64
|
||||||
|
Namemax uint32
|
||||||
|
Owner uint32
|
||||||
|
Fsid Fsid
|
||||||
|
Charspare [80]int8
|
||||||
|
Fstypename [16]int8
|
||||||
|
Mntfromname [1024]int8
|
||||||
|
Mntonname [1024]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Sysid int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Pad0 uint8
|
||||||
|
Namlen uint16
|
||||||
|
Pad1 uint16
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [46]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x36
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
X__fds_bits [16]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofIfMsghdr = 0xa8
|
||||||
|
SizeofIfMsghdr = 0xa8
|
||||||
|
sizeofIfData = 0x98
|
||||||
|
SizeofIfData = 0x98
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofIfmaMsghdr = 0x10
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x98
|
||||||
|
SizeofRtMetrics = 0x70
|
||||||
|
)
|
||||||
|
|
||||||
|
type ifMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data ifData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type ifData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Vhid uint8
|
||||||
|
Baudrate_pf uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Physical uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Spare_char1 uint8
|
||||||
|
Spare_char2 uint8
|
||||||
|
Datalen uint8
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Hwassist uint64
|
||||||
|
Epoch int64
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfmaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Fmask int32
|
||||||
|
Inits uint64
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Expire uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Pksent uint64
|
||||||
|
Weight uint64
|
||||||
|
Filler [3]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfZbuf = 0x18
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
SizeofBpfZbufHeader = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbuf struct {
|
||||||
|
Bufa *byte
|
||||||
|
Bufb *byte
|
||||||
|
Buflen uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp Timeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfZbufHeader struct {
|
||||||
|
Kernel_gen uint32
|
||||||
|
Kernel_len uint32
|
||||||
|
User_gen uint32
|
||||||
|
X_bzh_pad [5]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_SYMLINK_FOLLOW = 0x400
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
700
c/syscall/ztypes_linux_386.go
Normal file
700
c/syscall/ztypes_linux_386.go
Normal file
@@ -0,0 +1,700 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
//go:build 386 && linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int32
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Offset int32
|
||||||
|
Freq int32
|
||||||
|
Maxerror int32
|
||||||
|
Esterror int32
|
||||||
|
Status int32
|
||||||
|
Constant int32
|
||||||
|
Precision int32
|
||||||
|
Tolerance int32
|
||||||
|
Time Timeval
|
||||||
|
Tick int32
|
||||||
|
Ppsfreq int32
|
||||||
|
Jitter int32
|
||||||
|
Shift int32
|
||||||
|
Stabil int32
|
||||||
|
Jitcnt int32
|
||||||
|
Calcnt int32
|
||||||
|
Errcnt int32
|
||||||
|
Stbcnt int32
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_0 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int32
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int32
|
||||||
|
Stime int32
|
||||||
|
Cutime int32
|
||||||
|
Cstime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int32
|
||||||
|
Modtime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
X__pad1 uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
X__st_ino uint32
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
X__pad2 uint16
|
||||||
|
Pad_cgo_1 [2]byte
|
||||||
|
Size int64
|
||||||
|
Blksize int32
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Ino uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int32
|
||||||
|
Bsize int32
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int32
|
||||||
|
Frsize int32
|
||||||
|
Flags int32
|
||||||
|
Spare [4]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x1d
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Ebx int32
|
||||||
|
Ecx int32
|
||||||
|
Edx int32
|
||||||
|
Esi int32
|
||||||
|
Edi int32
|
||||||
|
Ebp int32
|
||||||
|
Eax int32
|
||||||
|
Xds int32
|
||||||
|
Xes int32
|
||||||
|
Xfs int32
|
||||||
|
Xgs int32
|
||||||
|
Orig_eax int32
|
||||||
|
Eip int32
|
||||||
|
Xcs int32
|
||||||
|
Eflags int32
|
||||||
|
Esp int32
|
||||||
|
Xss int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int32
|
||||||
|
Loads [3]uint32
|
||||||
|
Totalram uint32
|
||||||
|
Freeram uint32
|
||||||
|
Sharedram uint32
|
||||||
|
Bufferram uint32
|
||||||
|
Totalswap uint32
|
||||||
|
Freeswap uint32
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Totalhigh uint32
|
||||||
|
Freehigh uint32
|
||||||
|
Unit uint32
|
||||||
|
X_f [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Tinode uint32
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
VINTR = 0x0
|
||||||
|
VQUIT = 0x1
|
||||||
|
VERASE = 0x2
|
||||||
|
VKILL = 0x3
|
||||||
|
VEOF = 0x4
|
||||||
|
VTIME = 0x5
|
||||||
|
VMIN = 0x6
|
||||||
|
VSWTC = 0x7
|
||||||
|
VSTART = 0x8
|
||||||
|
VSTOP = 0x9
|
||||||
|
VSUSP = 0xa
|
||||||
|
VEOL = 0xb
|
||||||
|
VREPRINT = 0xc
|
||||||
|
VDISCARD = 0xd
|
||||||
|
VWERASE = 0xe
|
||||||
|
VLNEXT = 0xf
|
||||||
|
VEOL2 = 0x10
|
||||||
|
IGNBRK = 0x1
|
||||||
|
BRKINT = 0x2
|
||||||
|
IGNPAR = 0x4
|
||||||
|
PARMRK = 0x8
|
||||||
|
INPCK = 0x10
|
||||||
|
ISTRIP = 0x20
|
||||||
|
INLCR = 0x40
|
||||||
|
IGNCR = 0x80
|
||||||
|
ICRNL = 0x100
|
||||||
|
IUCLC = 0x200
|
||||||
|
IXON = 0x400
|
||||||
|
IXANY = 0x800
|
||||||
|
IXOFF = 0x1000
|
||||||
|
IMAXBEL = 0x2000
|
||||||
|
IUTF8 = 0x4000
|
||||||
|
OPOST = 0x1
|
||||||
|
OLCUC = 0x2
|
||||||
|
ONLCR = 0x4
|
||||||
|
OCRNL = 0x8
|
||||||
|
ONOCR = 0x10
|
||||||
|
ONLRET = 0x20
|
||||||
|
OFILL = 0x40
|
||||||
|
OFDEL = 0x80
|
||||||
|
B0 = 0x0
|
||||||
|
B50 = 0x1
|
||||||
|
B75 = 0x2
|
||||||
|
B110 = 0x3
|
||||||
|
B134 = 0x4
|
||||||
|
B150 = 0x5
|
||||||
|
B200 = 0x6
|
||||||
|
B300 = 0x7
|
||||||
|
B600 = 0x8
|
||||||
|
B1200 = 0x9
|
||||||
|
B1800 = 0xa
|
||||||
|
B2400 = 0xb
|
||||||
|
B4800 = 0xc
|
||||||
|
B9600 = 0xd
|
||||||
|
B19200 = 0xe
|
||||||
|
B38400 = 0xf
|
||||||
|
CSIZE = 0x30
|
||||||
|
CS5 = 0x0
|
||||||
|
CS6 = 0x10
|
||||||
|
CS7 = 0x20
|
||||||
|
CS8 = 0x30
|
||||||
|
CSTOPB = 0x40
|
||||||
|
CREAD = 0x80
|
||||||
|
PARENB = 0x100
|
||||||
|
PARODD = 0x200
|
||||||
|
HUPCL = 0x400
|
||||||
|
CLOCAL = 0x800
|
||||||
|
B57600 = 0x1001
|
||||||
|
B115200 = 0x1002
|
||||||
|
B230400 = 0x1003
|
||||||
|
B460800 = 0x1004
|
||||||
|
B500000 = 0x1005
|
||||||
|
B576000 = 0x1006
|
||||||
|
B921600 = 0x1007
|
||||||
|
B1000000 = 0x1008
|
||||||
|
B1152000 = 0x1009
|
||||||
|
B1500000 = 0x100a
|
||||||
|
B2000000 = 0x100b
|
||||||
|
B2500000 = 0x100c
|
||||||
|
B3000000 = 0x100d
|
||||||
|
B3500000 = 0x100e
|
||||||
|
B4000000 = 0x100f
|
||||||
|
ISIG = 0x1
|
||||||
|
ICANON = 0x2
|
||||||
|
XCASE = 0x4
|
||||||
|
ECHO = 0x8
|
||||||
|
ECHOE = 0x10
|
||||||
|
ECHOK = 0x20
|
||||||
|
ECHONL = 0x40
|
||||||
|
NOFLSH = 0x80
|
||||||
|
TOSTOP = 0x100
|
||||||
|
ECHOCTL = 0x200
|
||||||
|
ECHOPRT = 0x400
|
||||||
|
ECHOKE = 0x800
|
||||||
|
FLUSHO = 0x1000
|
||||||
|
PENDIN = 0x4000
|
||||||
|
IEXTEN = 0x8000
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
)
|
||||||
718
c/syscall/ztypes_linux_amd64.go
Normal file
718
c/syscall/ztypes_linux_amd64.go
Normal file
@@ -0,0 +1,718 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
//go:build amd64 && linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
X__pad0 int32
|
||||||
|
Rdev uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int64
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__unused [3]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x1d
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
R15 uint64
|
||||||
|
R14 uint64
|
||||||
|
R13 uint64
|
||||||
|
R12 uint64
|
||||||
|
Rbp uint64
|
||||||
|
Rbx uint64
|
||||||
|
R11 uint64
|
||||||
|
R10 uint64
|
||||||
|
R9 uint64
|
||||||
|
R8 uint64
|
||||||
|
Rax uint64
|
||||||
|
Rcx uint64
|
||||||
|
Rdx uint64
|
||||||
|
Rsi uint64
|
||||||
|
Rdi uint64
|
||||||
|
Orig_rax uint64
|
||||||
|
Rip uint64
|
||||||
|
Cs uint64
|
||||||
|
Eflags uint64
|
||||||
|
Rsp uint64
|
||||||
|
Ss uint64
|
||||||
|
Fs_base uint64
|
||||||
|
Gs_base uint64
|
||||||
|
Ds uint64
|
||||||
|
Es uint64
|
||||||
|
Fs uint64
|
||||||
|
Gs uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]byte
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
VINTR = 0x0
|
||||||
|
VQUIT = 0x1
|
||||||
|
VERASE = 0x2
|
||||||
|
VKILL = 0x3
|
||||||
|
VEOF = 0x4
|
||||||
|
VTIME = 0x5
|
||||||
|
VMIN = 0x6
|
||||||
|
VSWTC = 0x7
|
||||||
|
VSTART = 0x8
|
||||||
|
VSTOP = 0x9
|
||||||
|
VSUSP = 0xa
|
||||||
|
VEOL = 0xb
|
||||||
|
VREPRINT = 0xc
|
||||||
|
VDISCARD = 0xd
|
||||||
|
VWERASE = 0xe
|
||||||
|
VLNEXT = 0xf
|
||||||
|
VEOL2 = 0x10
|
||||||
|
IGNBRK = 0x1
|
||||||
|
BRKINT = 0x2
|
||||||
|
IGNPAR = 0x4
|
||||||
|
PARMRK = 0x8
|
||||||
|
INPCK = 0x10
|
||||||
|
ISTRIP = 0x20
|
||||||
|
INLCR = 0x40
|
||||||
|
IGNCR = 0x80
|
||||||
|
ICRNL = 0x100
|
||||||
|
IUCLC = 0x200
|
||||||
|
IXON = 0x400
|
||||||
|
IXANY = 0x800
|
||||||
|
IXOFF = 0x1000
|
||||||
|
IMAXBEL = 0x2000
|
||||||
|
IUTF8 = 0x4000
|
||||||
|
OPOST = 0x1
|
||||||
|
OLCUC = 0x2
|
||||||
|
ONLCR = 0x4
|
||||||
|
OCRNL = 0x8
|
||||||
|
ONOCR = 0x10
|
||||||
|
ONLRET = 0x20
|
||||||
|
OFILL = 0x40
|
||||||
|
OFDEL = 0x80
|
||||||
|
B0 = 0x0
|
||||||
|
B50 = 0x1
|
||||||
|
B75 = 0x2
|
||||||
|
B110 = 0x3
|
||||||
|
B134 = 0x4
|
||||||
|
B150 = 0x5
|
||||||
|
B200 = 0x6
|
||||||
|
B300 = 0x7
|
||||||
|
B600 = 0x8
|
||||||
|
B1200 = 0x9
|
||||||
|
B1800 = 0xa
|
||||||
|
B2400 = 0xb
|
||||||
|
B4800 = 0xc
|
||||||
|
B9600 = 0xd
|
||||||
|
B19200 = 0xe
|
||||||
|
B38400 = 0xf
|
||||||
|
CSIZE = 0x30
|
||||||
|
CS5 = 0x0
|
||||||
|
CS6 = 0x10
|
||||||
|
CS7 = 0x20
|
||||||
|
CS8 = 0x30
|
||||||
|
CSTOPB = 0x40
|
||||||
|
CREAD = 0x80
|
||||||
|
PARENB = 0x100
|
||||||
|
PARODD = 0x200
|
||||||
|
HUPCL = 0x400
|
||||||
|
CLOCAL = 0x800
|
||||||
|
B57600 = 0x1001
|
||||||
|
B115200 = 0x1002
|
||||||
|
B230400 = 0x1003
|
||||||
|
B460800 = 0x1004
|
||||||
|
B500000 = 0x1005
|
||||||
|
B576000 = 0x1006
|
||||||
|
B921600 = 0x1007
|
||||||
|
B1000000 = 0x1008
|
||||||
|
B1152000 = 0x1009
|
||||||
|
B1500000 = 0x100a
|
||||||
|
B2000000 = 0x100b
|
||||||
|
B2500000 = 0x100c
|
||||||
|
B3000000 = 0x100d
|
||||||
|
B3500000 = 0x100e
|
||||||
|
B4000000 = 0x100f
|
||||||
|
ISIG = 0x1
|
||||||
|
ICANON = 0x2
|
||||||
|
XCASE = 0x4
|
||||||
|
ECHO = 0x8
|
||||||
|
ECHOE = 0x10
|
||||||
|
ECHOK = 0x20
|
||||||
|
ECHONL = 0x40
|
||||||
|
NOFLSH = 0x80
|
||||||
|
TOSTOP = 0x100
|
||||||
|
ECHOCTL = 0x200
|
||||||
|
ECHOPRT = 0x400
|
||||||
|
ECHOKE = 0x800
|
||||||
|
FLUSHO = 0x1000
|
||||||
|
PENDIN = 0x4000
|
||||||
|
IEXTEN = 0x8000
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
)
|
||||||
689
c/syscall/ztypes_linux_arm.go
Normal file
689
c/syscall/ztypes_linux_arm.go
Normal file
@@ -0,0 +1,689 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
//go:build arm && linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int32
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Offset int32
|
||||||
|
Freq int32
|
||||||
|
Maxerror int32
|
||||||
|
Esterror int32
|
||||||
|
Status int32
|
||||||
|
Constant int32
|
||||||
|
Precision int32
|
||||||
|
Tolerance int32
|
||||||
|
Time Timeval
|
||||||
|
Tick int32
|
||||||
|
Ppsfreq int32
|
||||||
|
Jitter int32
|
||||||
|
Shift int32
|
||||||
|
Stabil int32
|
||||||
|
Jitcnt int32
|
||||||
|
Calcnt int32
|
||||||
|
Errcnt int32
|
||||||
|
Stbcnt int32
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_0 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int32
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int32
|
||||||
|
Stime int32
|
||||||
|
Cutime int32
|
||||||
|
Cstime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int32
|
||||||
|
Modtime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
X__pad1 uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
X__st_ino uint32
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
X__pad2 uint16
|
||||||
|
Pad_cgo_1 [6]byte
|
||||||
|
Size int64
|
||||||
|
Blksize int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Ino uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int32
|
||||||
|
Bsize int32
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int32
|
||||||
|
Frsize int32
|
||||||
|
Flags int32
|
||||||
|
Spare [4]int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]uint8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x1d
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Uregs [18]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int32
|
||||||
|
Loads [3]uint32
|
||||||
|
Totalram uint32
|
||||||
|
Freeram uint32
|
||||||
|
Sharedram uint32
|
||||||
|
Bufferram uint32
|
||||||
|
Totalswap uint32
|
||||||
|
Freeswap uint32
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Totalhigh uint32
|
||||||
|
Freehigh uint32
|
||||||
|
Unit uint32
|
||||||
|
X_f [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]uint8
|
||||||
|
Nodename [65]uint8
|
||||||
|
Release [65]uint8
|
||||||
|
Version [65]uint8
|
||||||
|
Machine [65]uint8
|
||||||
|
Domainname [65]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Tinode uint32
|
||||||
|
Fname [6]uint8
|
||||||
|
Fpack [6]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
PadFd int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
VINTR = 0x0
|
||||||
|
VQUIT = 0x1
|
||||||
|
VERASE = 0x2
|
||||||
|
VKILL = 0x3
|
||||||
|
VEOF = 0x4
|
||||||
|
VTIME = 0x5
|
||||||
|
VMIN = 0x6
|
||||||
|
VSWTC = 0x7
|
||||||
|
VSTART = 0x8
|
||||||
|
VSTOP = 0x9
|
||||||
|
VSUSP = 0xa
|
||||||
|
VEOL = 0xb
|
||||||
|
VREPRINT = 0xc
|
||||||
|
VDISCARD = 0xd
|
||||||
|
VWERASE = 0xe
|
||||||
|
VLNEXT = 0xf
|
||||||
|
VEOL2 = 0x10
|
||||||
|
IGNBRK = 0x1
|
||||||
|
BRKINT = 0x2
|
||||||
|
IGNPAR = 0x4
|
||||||
|
PARMRK = 0x8
|
||||||
|
INPCK = 0x10
|
||||||
|
ISTRIP = 0x20
|
||||||
|
INLCR = 0x40
|
||||||
|
IGNCR = 0x80
|
||||||
|
ICRNL = 0x100
|
||||||
|
IUCLC = 0x200
|
||||||
|
IXON = 0x400
|
||||||
|
IXANY = 0x800
|
||||||
|
IXOFF = 0x1000
|
||||||
|
IMAXBEL = 0x2000
|
||||||
|
IUTF8 = 0x4000
|
||||||
|
OPOST = 0x1
|
||||||
|
OLCUC = 0x2
|
||||||
|
ONLCR = 0x4
|
||||||
|
OCRNL = 0x8
|
||||||
|
ONOCR = 0x10
|
||||||
|
ONLRET = 0x20
|
||||||
|
OFILL = 0x40
|
||||||
|
OFDEL = 0x80
|
||||||
|
B0 = 0x0
|
||||||
|
B50 = 0x1
|
||||||
|
B75 = 0x2
|
||||||
|
B110 = 0x3
|
||||||
|
B134 = 0x4
|
||||||
|
B150 = 0x5
|
||||||
|
B200 = 0x6
|
||||||
|
B300 = 0x7
|
||||||
|
B600 = 0x8
|
||||||
|
B1200 = 0x9
|
||||||
|
B1800 = 0xa
|
||||||
|
B2400 = 0xb
|
||||||
|
B4800 = 0xc
|
||||||
|
B9600 = 0xd
|
||||||
|
B19200 = 0xe
|
||||||
|
B38400 = 0xf
|
||||||
|
CSIZE = 0x30
|
||||||
|
CS5 = 0x0
|
||||||
|
CS6 = 0x10
|
||||||
|
CS7 = 0x20
|
||||||
|
CS8 = 0x30
|
||||||
|
CSTOPB = 0x40
|
||||||
|
CREAD = 0x80
|
||||||
|
PARENB = 0x100
|
||||||
|
PARODD = 0x200
|
||||||
|
HUPCL = 0x400
|
||||||
|
CLOCAL = 0x800
|
||||||
|
B57600 = 0x1001
|
||||||
|
B115200 = 0x1002
|
||||||
|
B230400 = 0x1003
|
||||||
|
B460800 = 0x1004
|
||||||
|
B500000 = 0x1005
|
||||||
|
B576000 = 0x1006
|
||||||
|
B921600 = 0x1007
|
||||||
|
B1000000 = 0x1008
|
||||||
|
B1152000 = 0x1009
|
||||||
|
B1500000 = 0x100a
|
||||||
|
B2000000 = 0x100b
|
||||||
|
B2500000 = 0x100c
|
||||||
|
B3000000 = 0x100d
|
||||||
|
B3500000 = 0x100e
|
||||||
|
B4000000 = 0x100f
|
||||||
|
ISIG = 0x1
|
||||||
|
ICANON = 0x2
|
||||||
|
XCASE = 0x4
|
||||||
|
ECHO = 0x8
|
||||||
|
ECHOE = 0x10
|
||||||
|
ECHOK = 0x20
|
||||||
|
ECHONL = 0x40
|
||||||
|
NOFLSH = 0x80
|
||||||
|
TOSTOP = 0x100
|
||||||
|
ECHOCTL = 0x200
|
||||||
|
ECHOPRT = 0x400
|
||||||
|
ECHOKE = 0x800
|
||||||
|
FLUSHO = 0x1000
|
||||||
|
PENDIN = 0x4000
|
||||||
|
IEXTEN = 0x8000
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
)
|
||||||
603
c/syscall/ztypes_linux_arm64.go
Normal file
603
c/syscall/ztypes_linux_arm64.go
Normal file
@@ -0,0 +1,603 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs -- -fsigned-char types_linux.go
|
||||||
|
|
||||||
|
//go:build arm64 && linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
X__pad1 uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int32
|
||||||
|
X__pad2 int32
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__glibc_reserved [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x24
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Regs [31]uint64
|
||||||
|
Sp uint64
|
||||||
|
Pc uint64
|
||||||
|
Pstate uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
_ int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
635
c/syscall/ztypes_linux_loong64.go
Normal file
635
c/syscall/ztypes_linux_loong64.go
Normal file
@@ -0,0 +1,635 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs types_linux.go | go run mkpost.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_0 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
X__pad1 uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int32
|
||||||
|
X__pad2 int32
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__glibc_reserved [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type statxTimestamp struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec uint32
|
||||||
|
X__reserved int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type statx_t struct {
|
||||||
|
Mask uint32
|
||||||
|
Blksize uint32
|
||||||
|
Attributes uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Mode uint16
|
||||||
|
X__spare0 [1]uint16
|
||||||
|
Ino uint64
|
||||||
|
Size uint64
|
||||||
|
Blocks uint64
|
||||||
|
Attributes_mask uint64
|
||||||
|
Atime statxTimestamp
|
||||||
|
Btime statxTimestamp
|
||||||
|
Ctime statxTimestamp
|
||||||
|
Mtime statxTimestamp
|
||||||
|
Rdev_major uint32
|
||||||
|
Rdev_minor uint32
|
||||||
|
Dev_major uint32
|
||||||
|
Dev_minor uint32
|
||||||
|
Mnt_id uint64
|
||||||
|
X__spare2 uint64
|
||||||
|
X__spare3 [12]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x3a
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Regs [32]uint64
|
||||||
|
Orig_a0 uint64
|
||||||
|
Era uint64
|
||||||
|
Badv uint64
|
||||||
|
Reserved [10]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptracePsw struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptraceFpregs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptracePer struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]int8
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
X_padFd int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
_AT_EMPTY_PATH = 0x1000
|
||||||
|
_AT_NO_AUTOMOUNT = 0x800
|
||||||
|
_STATX_BASIC_STATS = 0x7ff
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
599
c/syscall/ztypes_linux_mips.go
Normal file
599
c/syscall/ztypes_linux_mips.go
Normal file
@@ -0,0 +1,599 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int32
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Offset int32
|
||||||
|
Freq int32
|
||||||
|
Maxerror int32
|
||||||
|
Esterror int32
|
||||||
|
Status int32
|
||||||
|
Constant int32
|
||||||
|
Precision int32
|
||||||
|
Tolerance int32
|
||||||
|
Time Timeval
|
||||||
|
Tick int32
|
||||||
|
Ppsfreq int32
|
||||||
|
Jitter int32
|
||||||
|
Shift int32
|
||||||
|
Stabil int32
|
||||||
|
Jitcnt int32
|
||||||
|
Calcnt int32
|
||||||
|
Errcnt int32
|
||||||
|
Stbcnt int32
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_0 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int32
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int32
|
||||||
|
Stime int32
|
||||||
|
Cutime int32
|
||||||
|
Cstime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int32
|
||||||
|
Modtime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint32
|
||||||
|
Pad1 [3]int32
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint32
|
||||||
|
Pad2 [3]int32
|
||||||
|
Size int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Blksize int32
|
||||||
|
Pad4 int32
|
||||||
|
Blocks int64
|
||||||
|
Pad5 [14]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int32
|
||||||
|
Bsize int32
|
||||||
|
Frsize int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int32
|
||||||
|
Flags int32
|
||||||
|
Spare [5]int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x27
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Regs [109]uint32
|
||||||
|
U_tsize uint32
|
||||||
|
U_dsize uint32
|
||||||
|
U_ssize uint32
|
||||||
|
Start_code uint32
|
||||||
|
Start_data uint32
|
||||||
|
Start_stack uint32
|
||||||
|
Signal int32
|
||||||
|
U_ar0 *byte
|
||||||
|
Magic uint32
|
||||||
|
U_comm [32]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int32
|
||||||
|
Loads [3]uint32
|
||||||
|
Totalram uint32
|
||||||
|
Freeram uint32
|
||||||
|
Sharedram uint32
|
||||||
|
Bufferram uint32
|
||||||
|
Totalswap uint32
|
||||||
|
Freeswap uint32
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Totalhigh uint32
|
||||||
|
Freehigh uint32
|
||||||
|
Unit uint32
|
||||||
|
X_f [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Tinode uint32
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
PadFd int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x540d
|
||||||
|
TCSETS = 0x540e
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
606
c/syscall/ztypes_linux_mips64.go
Normal file
606
c/syscall/ztypes_linux_mips64.go
Normal file
@@ -0,0 +1,606 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint32
|
||||||
|
Pad1 [3]int32
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint32
|
||||||
|
Pad2 [3]uint32
|
||||||
|
Size int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Blksize uint32
|
||||||
|
Pad4 uint32
|
||||||
|
Blocks int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Frsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Flags int64
|
||||||
|
Spare [5]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x22
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Regs [102]uint64
|
||||||
|
U_tsize uint64
|
||||||
|
U_dsize uint64
|
||||||
|
U_ssize uint64
|
||||||
|
Start_code uint64
|
||||||
|
Start_data uint64
|
||||||
|
Start_stack uint64
|
||||||
|
Signal int64
|
||||||
|
U_ar0 uint64
|
||||||
|
Magic uint64
|
||||||
|
U_comm [32]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
_ int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x540d
|
||||||
|
TCSETS = 0x540e
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
606
c/syscall/ztypes_linux_mips64le.go
Normal file
606
c/syscall/ztypes_linux_mips64le.go
Normal file
@@ -0,0 +1,606 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint32
|
||||||
|
Pad1 [3]int32
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint32
|
||||||
|
Pad2 [3]uint32
|
||||||
|
Size int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Blksize uint32
|
||||||
|
Pad4 uint32
|
||||||
|
Blocks int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Frsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Flags int64
|
||||||
|
Spare [5]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x22
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Regs [102]uint64
|
||||||
|
U_tsize uint64
|
||||||
|
U_dsize uint64
|
||||||
|
U_ssize uint64
|
||||||
|
Start_code uint64
|
||||||
|
Start_data uint64
|
||||||
|
Start_stack uint64
|
||||||
|
Signal int64
|
||||||
|
U_ar0 uint64
|
||||||
|
Magic uint64
|
||||||
|
U_comm [32]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
_ int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x540d
|
||||||
|
TCSETS = 0x540e
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
599
c/syscall/ztypes_linux_mipsle.go
Normal file
599
c/syscall/ztypes_linux_mipsle.go
Normal file
@@ -0,0 +1,599 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int32
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Offset int32
|
||||||
|
Freq int32
|
||||||
|
Maxerror int32
|
||||||
|
Esterror int32
|
||||||
|
Status int32
|
||||||
|
Constant int32
|
||||||
|
Precision int32
|
||||||
|
Tolerance int32
|
||||||
|
Time Timeval
|
||||||
|
Tick int32
|
||||||
|
Ppsfreq int32
|
||||||
|
Jitter int32
|
||||||
|
Shift int32
|
||||||
|
Stabil int32
|
||||||
|
Jitcnt int32
|
||||||
|
Calcnt int32
|
||||||
|
Errcnt int32
|
||||||
|
Stbcnt int32
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_0 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int32
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int32
|
||||||
|
Stime int32
|
||||||
|
Cutime int32
|
||||||
|
Cstime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int32
|
||||||
|
Modtime int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint32
|
||||||
|
Pad1 [3]int32
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint32
|
||||||
|
Pad2 [3]int32
|
||||||
|
Size int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Blksize int32
|
||||||
|
Pad4 int32
|
||||||
|
Blocks int64
|
||||||
|
Pad5 [14]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int32
|
||||||
|
Bsize int32
|
||||||
|
Frsize int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int32
|
||||||
|
Flags int32
|
||||||
|
Spare [5]int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x27
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Regs [109]uint32
|
||||||
|
U_tsize uint32
|
||||||
|
U_dsize uint32
|
||||||
|
U_ssize uint32
|
||||||
|
Start_code uint32
|
||||||
|
Start_data uint32
|
||||||
|
Start_stack uint32
|
||||||
|
Signal int32
|
||||||
|
U_ar0 *byte
|
||||||
|
Magic uint32
|
||||||
|
U_comm [32]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int32
|
||||||
|
Loads [3]uint32
|
||||||
|
Totalram uint32
|
||||||
|
Freeram uint32
|
||||||
|
Sharedram uint32
|
||||||
|
Bufferram uint32
|
||||||
|
Totalswap uint32
|
||||||
|
Freeswap uint32
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Totalhigh uint32
|
||||||
|
Freehigh uint32
|
||||||
|
Unit uint32
|
||||||
|
X_f [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]int8
|
||||||
|
Nodename [65]int8
|
||||||
|
Release [65]int8
|
||||||
|
Version [65]int8
|
||||||
|
Machine [65]int8
|
||||||
|
Domainname [65]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Tinode uint32
|
||||||
|
Fname [6]int8
|
||||||
|
Fpack [6]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
PadFd int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x540d
|
||||||
|
TCSETS = 0x540e
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
613
c/syscall/ztypes_linux_ppc64.go
Normal file
613
c/syscall/ztypes_linux_ppc64.go
Normal file
@@ -0,0 +1,613 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
//go:build ppc64 && linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
X__pad2 int32
|
||||||
|
Rdev uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int64
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__unused4 uint64
|
||||||
|
X__unused5 uint64
|
||||||
|
X__unused6 uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]uint8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x22
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Gpr [32]uint64
|
||||||
|
Nip uint64
|
||||||
|
Msr uint64
|
||||||
|
Orig_gpr3 uint64
|
||||||
|
Ctr uint64
|
||||||
|
Link uint64
|
||||||
|
Xer uint64
|
||||||
|
Ccr uint64
|
||||||
|
Softe uint64
|
||||||
|
Trap uint64
|
||||||
|
Dar uint64
|
||||||
|
Dsisr uint64
|
||||||
|
Result uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]uint8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]uint8
|
||||||
|
Nodename [65]uint8
|
||||||
|
Release [65]uint8
|
||||||
|
Version [65]uint8
|
||||||
|
Machine [65]uint8
|
||||||
|
Domainname [65]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]uint8
|
||||||
|
Fpack [6]uint8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
X_padFd int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x1000
|
||||||
|
OLCUC = 0x4
|
||||||
|
TCGETS = 0x402c7413
|
||||||
|
TCSETS = 0x802c7414
|
||||||
|
XCASE = 0x4000
|
||||||
|
)
|
||||||
613
c/syscall/ztypes_linux_ppc64le.go
Normal file
613
c/syscall/ztypes_linux_ppc64le.go
Normal file
@@ -0,0 +1,613 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
//go:build ppc64le && linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
X__pad2 int32
|
||||||
|
Rdev uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int64
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__glibc_reserved4 uint64
|
||||||
|
X__glibc_reserved5 uint64
|
||||||
|
X__glibc_reserved6 uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]uint8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x22
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
Name [0]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Gpr [32]uint64
|
||||||
|
Nip uint64
|
||||||
|
Msr uint64
|
||||||
|
Orig_gpr3 uint64
|
||||||
|
Ctr uint64
|
||||||
|
Link uint64
|
||||||
|
Xer uint64
|
||||||
|
Ccr uint64
|
||||||
|
Softe uint64
|
||||||
|
Trap uint64
|
||||||
|
Dar uint64
|
||||||
|
Dsisr uint64
|
||||||
|
Result uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]uint8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]uint8
|
||||||
|
Nodename [65]uint8
|
||||||
|
Release [65]uint8
|
||||||
|
Version [65]uint8
|
||||||
|
Machine [65]uint8
|
||||||
|
Domainname [65]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]uint8
|
||||||
|
Fpack [6]uint8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
X_padFd int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x1000
|
||||||
|
OLCUC = 0x4
|
||||||
|
TCGETS = 0x402c7413
|
||||||
|
TCSETS = 0x802c7414
|
||||||
|
XCASE = 0x4000
|
||||||
|
)
|
||||||
627
c/syscall/ztypes_linux_riscv64.go
Normal file
627
c/syscall/ztypes_linux_riscv64.go
Normal file
@@ -0,0 +1,627 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
_ [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
X__pad1 uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int32
|
||||||
|
X__pad2 int32
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__glibc_reserved [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]uint8
|
||||||
|
_ [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x26
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Pc uint64
|
||||||
|
Ra uint64
|
||||||
|
Sp uint64
|
||||||
|
Gp uint64
|
||||||
|
Tp uint64
|
||||||
|
T0 uint64
|
||||||
|
T1 uint64
|
||||||
|
T2 uint64
|
||||||
|
S0 uint64
|
||||||
|
S1 uint64
|
||||||
|
A0 uint64
|
||||||
|
A1 uint64
|
||||||
|
A2 uint64
|
||||||
|
A3 uint64
|
||||||
|
A4 uint64
|
||||||
|
A5 uint64
|
||||||
|
A6 uint64
|
||||||
|
A7 uint64
|
||||||
|
S2 uint64
|
||||||
|
S3 uint64
|
||||||
|
S4 uint64
|
||||||
|
S5 uint64
|
||||||
|
S6 uint64
|
||||||
|
S7 uint64
|
||||||
|
S8 uint64
|
||||||
|
S9 uint64
|
||||||
|
S10 uint64
|
||||||
|
S11 uint64
|
||||||
|
T3 uint64
|
||||||
|
T4 uint64
|
||||||
|
T5 uint64
|
||||||
|
T6 uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptracePsw struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptraceFpregs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptracePer struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]uint8
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]uint8
|
||||||
|
Nodename [65]uint8
|
||||||
|
Release [65]uint8
|
||||||
|
Version [65]uint8
|
||||||
|
Machine [65]uint8
|
||||||
|
Domainname [65]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]uint8
|
||||||
|
Fpack [6]uint8
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
_ int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [19]uint8
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
627
c/syscall/ztypes_linux_s390x.go
Normal file
627
c/syscall/ztypes_linux_s390x.go
Normal file
@@ -0,0 +1,627 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go | go run mkpost.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
_ [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
_ [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
_ [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
_ [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint64
|
||||||
|
Mode uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
_ int32
|
||||||
|
Rdev uint64
|
||||||
|
Size int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Blksize int64
|
||||||
|
Blocks int64
|
||||||
|
_ [3]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type uint32
|
||||||
|
Bsize uint32
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen uint32
|
||||||
|
Frsize uint32
|
||||||
|
Flags uint32
|
||||||
|
Spare [4]uint32
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]uint8
|
||||||
|
_ [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
_ [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrLinklayer struct {
|
||||||
|
Family uint16
|
||||||
|
Protocol uint16
|
||||||
|
Ifindex int32
|
||||||
|
Hatype uint16
|
||||||
|
Pkttype uint8
|
||||||
|
Halen uint8
|
||||||
|
Addr [8]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrNetlink struct {
|
||||||
|
Family uint16
|
||||||
|
Pad uint16
|
||||||
|
Pid uint32
|
||||||
|
Groups uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreqn struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Address [4]byte /* in_addr */
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
_ [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet4Pktinfo struct {
|
||||||
|
Ifindex int32
|
||||||
|
Spec_dst [4]byte /* in_addr */
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Data [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ucred struct {
|
||||||
|
Pid int32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
_ [2]byte
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x70
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrLinklayer = 0x14
|
||||||
|
SizeofSockaddrNetlink = 0xc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPMreqn = 0xc
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
SizeofInet4Pktinfo = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
SizeofUcred = 0xc
|
||||||
|
SizeofTCPInfo = 0x68
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFA_UNSPEC = 0x0
|
||||||
|
IFA_ADDRESS = 0x1
|
||||||
|
IFA_LOCAL = 0x2
|
||||||
|
IFA_LABEL = 0x3
|
||||||
|
IFA_BROADCAST = 0x4
|
||||||
|
IFA_ANYCAST = 0x5
|
||||||
|
IFA_CACHEINFO = 0x6
|
||||||
|
IFA_MULTICAST = 0x7
|
||||||
|
IFLA_UNSPEC = 0x0
|
||||||
|
IFLA_ADDRESS = 0x1
|
||||||
|
IFLA_BROADCAST = 0x2
|
||||||
|
IFLA_IFNAME = 0x3
|
||||||
|
IFLA_MTU = 0x4
|
||||||
|
IFLA_LINK = 0x5
|
||||||
|
IFLA_QDISC = 0x6
|
||||||
|
IFLA_STATS = 0x7
|
||||||
|
IFLA_COST = 0x8
|
||||||
|
IFLA_PRIORITY = 0x9
|
||||||
|
IFLA_MASTER = 0xa
|
||||||
|
IFLA_WIRELESS = 0xb
|
||||||
|
IFLA_PROTINFO = 0xc
|
||||||
|
IFLA_TXQLEN = 0xd
|
||||||
|
IFLA_MAP = 0xe
|
||||||
|
IFLA_WEIGHT = 0xf
|
||||||
|
IFLA_OPERSTATE = 0x10
|
||||||
|
IFLA_LINKMODE = 0x11
|
||||||
|
IFLA_LINKINFO = 0x12
|
||||||
|
IFLA_NET_NS_PID = 0x13
|
||||||
|
IFLA_IFALIAS = 0x14
|
||||||
|
IFLA_MAX = 0x27
|
||||||
|
RT_SCOPE_UNIVERSE = 0x0
|
||||||
|
RT_SCOPE_SITE = 0xc8
|
||||||
|
RT_SCOPE_LINK = 0xfd
|
||||||
|
RT_SCOPE_HOST = 0xfe
|
||||||
|
RT_SCOPE_NOWHERE = 0xff
|
||||||
|
RT_TABLE_UNSPEC = 0x0
|
||||||
|
RT_TABLE_COMPAT = 0xfc
|
||||||
|
RT_TABLE_DEFAULT = 0xfd
|
||||||
|
RT_TABLE_MAIN = 0xfe
|
||||||
|
RT_TABLE_LOCAL = 0xff
|
||||||
|
RT_TABLE_MAX = 0xffffffff
|
||||||
|
RTA_UNSPEC = 0x0
|
||||||
|
RTA_DST = 0x1
|
||||||
|
RTA_SRC = 0x2
|
||||||
|
RTA_IIF = 0x3
|
||||||
|
RTA_OIF = 0x4
|
||||||
|
RTA_GATEWAY = 0x5
|
||||||
|
RTA_PRIORITY = 0x6
|
||||||
|
RTA_PREFSRC = 0x7
|
||||||
|
RTA_METRICS = 0x8
|
||||||
|
RTA_MULTIPATH = 0x9
|
||||||
|
RTA_FLOW = 0xb
|
||||||
|
RTA_CACHEINFO = 0xc
|
||||||
|
RTA_TABLE = 0xf
|
||||||
|
RTN_UNSPEC = 0x0
|
||||||
|
RTN_UNICAST = 0x1
|
||||||
|
RTN_LOCAL = 0x2
|
||||||
|
RTN_BROADCAST = 0x3
|
||||||
|
RTN_ANYCAST = 0x4
|
||||||
|
RTN_MULTICAST = 0x5
|
||||||
|
RTN_BLACKHOLE = 0x6
|
||||||
|
RTN_UNREACHABLE = 0x7
|
||||||
|
RTN_PROHIBIT = 0x8
|
||||||
|
RTN_THROW = 0x9
|
||||||
|
RTN_NAT = 0xa
|
||||||
|
RTN_XRESOLVE = 0xb
|
||||||
|
RTNLGRP_NONE = 0x0
|
||||||
|
RTNLGRP_LINK = 0x1
|
||||||
|
RTNLGRP_NOTIFY = 0x2
|
||||||
|
RTNLGRP_NEIGH = 0x3
|
||||||
|
RTNLGRP_TC = 0x4
|
||||||
|
RTNLGRP_IPV4_IFADDR = 0x5
|
||||||
|
RTNLGRP_IPV4_MROUTE = 0x6
|
||||||
|
RTNLGRP_IPV4_ROUTE = 0x7
|
||||||
|
RTNLGRP_IPV4_RULE = 0x8
|
||||||
|
RTNLGRP_IPV6_IFADDR = 0x9
|
||||||
|
RTNLGRP_IPV6_MROUTE = 0xa
|
||||||
|
RTNLGRP_IPV6_ROUTE = 0xb
|
||||||
|
RTNLGRP_IPV6_IFINFO = 0xc
|
||||||
|
RTNLGRP_IPV6_PREFIX = 0x12
|
||||||
|
RTNLGRP_IPV6_RULE = 0x13
|
||||||
|
RTNLGRP_ND_USEROPT = 0x14
|
||||||
|
SizeofNlMsghdr = 0x10
|
||||||
|
SizeofNlMsgerr = 0x14
|
||||||
|
SizeofRtGenmsg = 0x1
|
||||||
|
SizeofNlAttr = 0x4
|
||||||
|
SizeofRtAttr = 0x4
|
||||||
|
SizeofIfInfomsg = 0x10
|
||||||
|
SizeofIfAddrmsg = 0x8
|
||||||
|
SizeofRtMsg = 0xc
|
||||||
|
SizeofRtNexthop = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type NlMsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Type uint16
|
||||||
|
Flags uint16
|
||||||
|
Seq uint32
|
||||||
|
Pid uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlMsgerr struct {
|
||||||
|
Error int32
|
||||||
|
Msg NlMsghdr
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtGenmsg struct {
|
||||||
|
Family uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type NlAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtAttr struct {
|
||||||
|
Len uint16
|
||||||
|
Type uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfInfomsg struct {
|
||||||
|
Family uint8
|
||||||
|
X__ifi_pad uint8
|
||||||
|
Type uint16
|
||||||
|
Index int32
|
||||||
|
Flags uint32
|
||||||
|
Change uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAddrmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Prefixlen uint8
|
||||||
|
Flags uint8
|
||||||
|
Scope uint8
|
||||||
|
Index uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsg struct {
|
||||||
|
Family uint8
|
||||||
|
Dst_len uint8
|
||||||
|
Src_len uint8
|
||||||
|
Tos uint8
|
||||||
|
Table uint8
|
||||||
|
Protocol uint8
|
||||||
|
Scope uint8
|
||||||
|
Type uint8
|
||||||
|
Flags uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtNexthop struct {
|
||||||
|
Len uint16
|
||||||
|
Flags uint8
|
||||||
|
Hops uint8
|
||||||
|
Ifindex int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockFilter = 0x8
|
||||||
|
SizeofSockFprog = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
_ [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Psw PtracePsw
|
||||||
|
Gprs [16]uint64
|
||||||
|
Acrs [16]uint32
|
||||||
|
Orig_gpr2 uint64
|
||||||
|
Fp_regs PtraceFpregs
|
||||||
|
Per_info PtracePer
|
||||||
|
Ieee_instruction_pointer uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type PtracePsw struct {
|
||||||
|
Mask uint64
|
||||||
|
Addr uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type PtraceFpregs struct {
|
||||||
|
Fpc uint32
|
||||||
|
_ [4]byte
|
||||||
|
Fprs [16]float64
|
||||||
|
}
|
||||||
|
|
||||||
|
type PtracePer struct {
|
||||||
|
Control_regs [0]uint64
|
||||||
|
_ [24]byte
|
||||||
|
_ [8]byte
|
||||||
|
Starting_addr uint64
|
||||||
|
Ending_addr uint64
|
||||||
|
Perc_atmid uint16
|
||||||
|
_ [6]byte
|
||||||
|
Address uint64
|
||||||
|
Access_id uint8
|
||||||
|
_ [7]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
_ [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]uint8
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]uint8
|
||||||
|
Nodename [65]uint8
|
||||||
|
Release [65]uint8
|
||||||
|
Version [65]uint8
|
||||||
|
Machine [65]uint8
|
||||||
|
Domainname [65]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
_ [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]uint8
|
||||||
|
Fpack [6]uint8
|
||||||
|
_ [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
_ int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type pollFd struct {
|
||||||
|
Fd int32
|
||||||
|
Events int16
|
||||||
|
Revents int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
_ [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
408
c/syscall/ztypes_netbsd_386.go
Normal file
408
c/syscall/ztypes_netbsd_386.go
Normal file
@@ -0,0 +1,408 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_netbsd.go
|
||||||
|
|
||||||
|
//go:build 386 && netbsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Mode uint32
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Spare [2]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t [0]byte
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [512]int8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__fsid_val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x14
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint32
|
||||||
|
Filter uint32
|
||||||
|
Flags uint32
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x98
|
||||||
|
SizeofIfData = 0x84
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x78
|
||||||
|
SizeofRtMetrics = 0x50
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
Link_state int32
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Lastchange Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Expire int64
|
||||||
|
Pksent int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool [0]byte
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x80
|
||||||
|
SizeofBpfProgram = 0x8
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint64
|
||||||
|
Drop uint64
|
||||||
|
Capt uint64
|
||||||
|
Padding [13]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysctlnode struct {
|
||||||
|
Flags uint32
|
||||||
|
Num int32
|
||||||
|
Name [32]int8
|
||||||
|
Ver uint32
|
||||||
|
X__rsvd uint32
|
||||||
|
Un [16]byte
|
||||||
|
X_sysctl_size [8]byte
|
||||||
|
X_sysctl_func [8]byte
|
||||||
|
X_sysctl_parent [8]byte
|
||||||
|
X_sysctl_desc [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type sigset struct {
|
||||||
|
X__bits [4]uint32
|
||||||
|
}
|
||||||
415
c/syscall/ztypes_netbsd_amd64.go
Normal file
415
c/syscall/ztypes_netbsd_amd64.go
Normal file
@@ -0,0 +1,415 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_netbsd.go
|
||||||
|
|
||||||
|
//go:build amd64 && netbsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Mode uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Spare [2]uint32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t [0]byte
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [512]int8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__fsid_val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x14
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter uint32
|
||||||
|
Flags uint32
|
||||||
|
Fflags uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Data int64
|
||||||
|
Udata int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x98
|
||||||
|
SizeofIfData = 0x88
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x78
|
||||||
|
SizeofRtMetrics = 0x50
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
Link_state int32
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Lastchange Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Expire int64
|
||||||
|
Pksent int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool [0]byte
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x80
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint64
|
||||||
|
Drop uint64
|
||||||
|
Capt uint64
|
||||||
|
Padding [13]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysctlnode struct {
|
||||||
|
Flags uint32
|
||||||
|
Num int32
|
||||||
|
Name [32]int8
|
||||||
|
Ver uint32
|
||||||
|
X__rsvd uint32
|
||||||
|
Un [16]byte
|
||||||
|
X_sysctl_size [8]byte
|
||||||
|
X_sysctl_func [8]byte
|
||||||
|
X_sysctl_parent [8]byte
|
||||||
|
X_sysctl_desc [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type sigset struct {
|
||||||
|
X__bits [4]uint32
|
||||||
|
}
|
||||||
413
c/syscall/ztypes_netbsd_arm.go
Normal file
413
c/syscall/ztypes_netbsd_arm.go
Normal file
@@ -0,0 +1,413 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_netbsd.go
|
||||||
|
|
||||||
|
//go:build arm && netbsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Mode uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Spare [2]uint32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t [0]byte
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [512]int8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__fsid_val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x14
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint32
|
||||||
|
Filter uint32
|
||||||
|
Flags uint32
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x98
|
||||||
|
SizeofIfData = 0x88
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x78
|
||||||
|
SizeofRtMetrics = 0x50
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
Link_state int32
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Lastchange Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Expire int64
|
||||||
|
Pksent int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool [0]byte
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x80
|
||||||
|
SizeofBpfProgram = 0x8
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint64
|
||||||
|
Drop uint64
|
||||||
|
Capt uint64
|
||||||
|
Padding [13]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysctlnode struct {
|
||||||
|
Flags uint32
|
||||||
|
Num int32
|
||||||
|
Name [32]int8
|
||||||
|
Ver uint32
|
||||||
|
X__rsvd uint32
|
||||||
|
Un [16]byte
|
||||||
|
X_sysctl_size [8]byte
|
||||||
|
X_sysctl_func [8]byte
|
||||||
|
X_sysctl_parent [8]byte
|
||||||
|
X_sysctl_desc [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type sigset struct {
|
||||||
|
X__bits [4]uint32
|
||||||
|
}
|
||||||
415
c/syscall/ztypes_netbsd_arm64.go
Normal file
415
c/syscall/ztypes_netbsd_arm64.go
Normal file
@@ -0,0 +1,415 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_netbsd.go
|
||||||
|
|
||||||
|
//go:build arm64 && netbsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Mode uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rdev uint64
|
||||||
|
Atimespec Timespec
|
||||||
|
Mtimespec Timespec
|
||||||
|
Ctimespec Timespec
|
||||||
|
Birthtimespec Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Spare [2]uint32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t [0]byte
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Reclen uint16
|
||||||
|
Namlen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [512]int8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
X__fsid_val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [12]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x14
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter uint32
|
||||||
|
Flags uint32
|
||||||
|
Fflags uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Data int64
|
||||||
|
Udata int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x98
|
||||||
|
SizeofIfData = 0x88
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x18
|
||||||
|
SizeofRtMsghdr = 0x78
|
||||||
|
SizeofRtMetrics = 0x50
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
Link_state int32
|
||||||
|
Mtu uint64
|
||||||
|
Metric uint64
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Lastchange Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Name [16]int8
|
||||||
|
What uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint64
|
||||||
|
Mtu uint64
|
||||||
|
Hopcount uint64
|
||||||
|
Recvpipe uint64
|
||||||
|
Sendpipe uint64
|
||||||
|
Ssthresh uint64
|
||||||
|
Rtt uint64
|
||||||
|
Rttvar uint64
|
||||||
|
Expire int64
|
||||||
|
Pksent int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool [0]byte
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x80
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint64
|
||||||
|
Drop uint64
|
||||||
|
Capt uint64
|
||||||
|
Padding [13]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysctlnode struct {
|
||||||
|
Flags uint32
|
||||||
|
Num int32
|
||||||
|
Name [32]int8
|
||||||
|
Ver uint32
|
||||||
|
X__rsvd uint32
|
||||||
|
Un [16]byte
|
||||||
|
X_sysctl_size [8]byte
|
||||||
|
X_sysctl_func [8]byte
|
||||||
|
X_sysctl_parent [8]byte
|
||||||
|
X_sysctl_desc [8]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type sigset struct {
|
||||||
|
X__bits [4]uint32
|
||||||
|
}
|
||||||
451
c/syscall/ztypes_openbsd_386.go
Normal file
451
c/syscall/ztypes_openbsd_386.go
Normal file
@@ -0,0 +1,451 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_openbsd.go
|
||||||
|
|
||||||
|
//go:build 386 && openbsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Mode uint32
|
||||||
|
Dev int32
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
X__st_birthtim Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
F_flags uint32
|
||||||
|
F_bsize uint32
|
||||||
|
F_iosize uint32
|
||||||
|
F_blocks uint64
|
||||||
|
F_bfree uint64
|
||||||
|
F_bavail int64
|
||||||
|
F_files uint64
|
||||||
|
F_ffree uint64
|
||||||
|
F_favail int64
|
||||||
|
F_syncwrites uint64
|
||||||
|
F_syncreads uint64
|
||||||
|
F_asyncwrites uint64
|
||||||
|
F_asyncreads uint64
|
||||||
|
F_fsid Fsid
|
||||||
|
F_namemax uint32
|
||||||
|
F_owner uint32
|
||||||
|
F_ctime uint64
|
||||||
|
F_fstypename [16]int8
|
||||||
|
F_mntonname [90]int8
|
||||||
|
F_mntfromname [90]int8
|
||||||
|
F_mntfromspec [90]int8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Mount_info [160]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Namlen uint8
|
||||||
|
X__d_padding [4]uint8
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [24]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x20
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint32
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0xec
|
||||||
|
SizeofIfData = 0xd4
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x1a
|
||||||
|
SizeofRtMsghdr = 0x60
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Xflags int32
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Pad uint32
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Capabilities uint32
|
||||||
|
Lastchange Timeval
|
||||||
|
Mclpool [7]Mclpool
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
What uint16
|
||||||
|
Name [16]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Priority uint8
|
||||||
|
Mpls uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Fmask int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Pksent uint64
|
||||||
|
Expire int64
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Refcnt uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pad uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool struct {
|
||||||
|
Grown int32
|
||||||
|
Alive uint16
|
||||||
|
Hwm uint16
|
||||||
|
Cwm uint16
|
||||||
|
Lwm uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x8
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec uint32
|
||||||
|
Usec uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
458
c/syscall/ztypes_openbsd_amd64.go
Normal file
458
c/syscall/ztypes_openbsd_amd64.go
Normal file
@@ -0,0 +1,458 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_openbsd.go
|
||||||
|
|
||||||
|
//go:build amd64 && openbsd
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Mode uint32
|
||||||
|
Dev int32
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize uint32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
X__st_birthtim Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
F_flags uint32
|
||||||
|
F_bsize uint32
|
||||||
|
F_iosize uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
F_blocks uint64
|
||||||
|
F_bfree uint64
|
||||||
|
F_bavail int64
|
||||||
|
F_files uint64
|
||||||
|
F_ffree uint64
|
||||||
|
F_favail int64
|
||||||
|
F_syncwrites uint64
|
||||||
|
F_syncreads uint64
|
||||||
|
F_asyncwrites uint64
|
||||||
|
F_asyncreads uint64
|
||||||
|
F_fsid Fsid
|
||||||
|
F_namemax uint32
|
||||||
|
F_owner uint32
|
||||||
|
F_ctime uint64
|
||||||
|
F_fstypename [16]int8
|
||||||
|
F_mntonname [90]int8
|
||||||
|
F_mntfromname [90]int8
|
||||||
|
F_mntfromspec [90]int8
|
||||||
|
Pad_cgo_1 [2]byte
|
||||||
|
Mount_info [160]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Namlen uint8
|
||||||
|
X__d_padding [4]uint8
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [24]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x20
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0xf8
|
||||||
|
SizeofIfData = 0xe0
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x1a
|
||||||
|
SizeofRtMsghdr = 0x60
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Xflags int32
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Pad uint32
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Capabilities uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Lastchange Timeval
|
||||||
|
Mclpool [7]Mclpool
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
What uint16
|
||||||
|
Name [16]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Priority uint8
|
||||||
|
Mpls uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Fmask int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Pksent uint64
|
||||||
|
Expire int64
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Refcnt uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pad uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool struct {
|
||||||
|
Grown int32
|
||||||
|
Alive uint16
|
||||||
|
Hwm uint16
|
||||||
|
Cwm uint16
|
||||||
|
Lwm uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec uint32
|
||||||
|
Usec uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
450
c/syscall/ztypes_openbsd_arm.go
Normal file
450
c/syscall/ztypes_openbsd_arm.go
Normal file
@@ -0,0 +1,450 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs -- -fsigned-char types_openbsd.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int32
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int32
|
||||||
|
Ixrss int32
|
||||||
|
Idrss int32
|
||||||
|
Isrss int32
|
||||||
|
Minflt int32
|
||||||
|
Majflt int32
|
||||||
|
Nswap int32
|
||||||
|
Inblock int32
|
||||||
|
Oublock int32
|
||||||
|
Msgsnd int32
|
||||||
|
Msgrcv int32
|
||||||
|
Nsignals int32
|
||||||
|
Nvcsw int32
|
||||||
|
Nivcsw int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Mode uint32
|
||||||
|
Dev int32
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
X__st_birthtim Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
F_flags uint32
|
||||||
|
F_bsize uint32
|
||||||
|
F_iosize uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
F_blocks uint64
|
||||||
|
F_bfree uint64
|
||||||
|
F_bavail int64
|
||||||
|
F_files uint64
|
||||||
|
F_ffree uint64
|
||||||
|
F_favail int64
|
||||||
|
F_syncwrites uint64
|
||||||
|
F_syncreads uint64
|
||||||
|
F_asyncwrites uint64
|
||||||
|
F_asyncreads uint64
|
||||||
|
F_fsid Fsid
|
||||||
|
F_namemax uint32
|
||||||
|
F_owner uint32
|
||||||
|
F_ctime uint64
|
||||||
|
F_fstypename [16]int8
|
||||||
|
F_mntonname [90]int8
|
||||||
|
F_mntfromname [90]int8
|
||||||
|
F_mntfromspec [90]int8
|
||||||
|
Pad_cgo_1 [2]byte
|
||||||
|
Mount_info [160]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Namlen uint8
|
||||||
|
X__d_padding [4]uint8
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [24]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x20
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint32
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0xa8
|
||||||
|
SizeofIfData = 0x90
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x1a
|
||||||
|
SizeofRtMsghdr = 0x60
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Xflags int32
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Rdomain uint32
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Oqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Capabilities uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
What uint16
|
||||||
|
Name [16]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Priority uint8
|
||||||
|
Mpls uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Fmask int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Pksent uint64
|
||||||
|
Expire int64
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Refcnt uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pad uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool struct{}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x8
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec uint32
|
||||||
|
Usec uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
443
c/syscall/ztypes_openbsd_arm64.go
Normal file
443
c/syscall/ztypes_openbsd_arm64.go
Normal file
@@ -0,0 +1,443 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs -- -fsigned-char types_openbsd.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Mode uint32
|
||||||
|
Dev int32
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
X__st_birthtim Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
F_flags uint32
|
||||||
|
F_bsize uint32
|
||||||
|
F_iosize uint32
|
||||||
|
F_blocks uint64
|
||||||
|
F_bfree uint64
|
||||||
|
F_bavail int64
|
||||||
|
F_files uint64
|
||||||
|
F_ffree uint64
|
||||||
|
F_favail int64
|
||||||
|
F_syncwrites uint64
|
||||||
|
F_syncreads uint64
|
||||||
|
F_asyncwrites uint64
|
||||||
|
F_asyncreads uint64
|
||||||
|
F_fsid Fsid
|
||||||
|
F_namemax uint32
|
||||||
|
F_owner uint32
|
||||||
|
F_ctime uint64
|
||||||
|
F_fstypename [16]int8
|
||||||
|
F_mntonname [90]int8
|
||||||
|
F_mntfromname [90]int8
|
||||||
|
F_mntfromspec [90]int8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Mount_info [160]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Namlen uint8
|
||||||
|
X__d_padding [4]uint8
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [24]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x20
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0xa8
|
||||||
|
SizeofIfData = 0x90
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x1a
|
||||||
|
SizeofRtMsghdr = 0x60
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Xflags int32
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Rdomain uint32
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Oqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Capabilities uint32
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
What uint16
|
||||||
|
Name [16]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Priority uint8
|
||||||
|
Mpls uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Fmask int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Pksent uint64
|
||||||
|
Expire int64
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Refcnt uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pad uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool struct{}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec uint32
|
||||||
|
Usec uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
443
c/syscall/ztypes_openbsd_mips64.go
Normal file
443
c/syscall/ztypes_openbsd_mips64.go
Normal file
@@ -0,0 +1,443 @@
|
|||||||
|
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
|
||||||
|
// cgo -godefs -- -fsigned-char types_openbsd.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Mode uint32
|
||||||
|
Dev int32
|
||||||
|
Ino uint64
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev int32
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Size int64
|
||||||
|
Blocks int64
|
||||||
|
Blksize int32
|
||||||
|
Flags uint32
|
||||||
|
Gen uint32
|
||||||
|
X__st_birthtim Timespec
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
F_flags uint32
|
||||||
|
F_bsize uint32
|
||||||
|
F_iosize uint32
|
||||||
|
F_blocks uint64
|
||||||
|
F_bfree uint64
|
||||||
|
F_bavail int64
|
||||||
|
F_files uint64
|
||||||
|
F_ffree uint64
|
||||||
|
F_favail int64
|
||||||
|
F_syncwrites uint64
|
||||||
|
F_syncreads uint64
|
||||||
|
F_asyncwrites uint64
|
||||||
|
F_asyncreads uint64
|
||||||
|
F_fsid Fsid
|
||||||
|
F_namemax uint32
|
||||||
|
F_owner uint32
|
||||||
|
F_ctime uint64
|
||||||
|
F_fstypename [16]int8
|
||||||
|
F_mntonname [90]int8
|
||||||
|
F_mntfromname [90]int8
|
||||||
|
F_mntfromspec [90]int8
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Mount_info [160]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Pid int32
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Fileno uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Namlen uint8
|
||||||
|
X__d_padding [4]uint8
|
||||||
|
Name [256]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Fsid struct {
|
||||||
|
Val [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
pathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Path [104]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [24]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Len uint8
|
||||||
|
Family uint8
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [92]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint32
|
||||||
|
Control *byte
|
||||||
|
Controllen uint32
|
||||||
|
Flags int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
Filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
SizeofSockaddrAny = 0x6c
|
||||||
|
SizeofSockaddrUnix = 0x6a
|
||||||
|
SizeofSockaddrDatalink = 0x20
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x20
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PTRACE_TRACEME = 0x0
|
||||||
|
PTRACE_CONT = 0x7
|
||||||
|
PTRACE_KILL = 0x8
|
||||||
|
)
|
||||||
|
|
||||||
|
type Kevent_t struct {
|
||||||
|
Ident uint64
|
||||||
|
Filter int16
|
||||||
|
Flags uint16
|
||||||
|
Fflags uint32
|
||||||
|
Data int64
|
||||||
|
Udata *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [32]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0xa8
|
||||||
|
SizeofIfData = 0x90
|
||||||
|
SizeofIfaMsghdr = 0x18
|
||||||
|
SizeofIfAnnounceMsghdr = 0x1a
|
||||||
|
SizeofRtMsghdr = 0x60
|
||||||
|
SizeofRtMetrics = 0x38
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Xflags int32
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Link_state uint8
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Rdomain uint32
|
||||||
|
Baudrate uint64
|
||||||
|
Ipackets uint64
|
||||||
|
Ierrors uint64
|
||||||
|
Opackets uint64
|
||||||
|
Oerrors uint64
|
||||||
|
Collisions uint64
|
||||||
|
Ibytes uint64
|
||||||
|
Obytes uint64
|
||||||
|
Imcasts uint64
|
||||||
|
Omcasts uint64
|
||||||
|
Iqdrops uint64
|
||||||
|
Oqdrops uint64
|
||||||
|
Noproto uint64
|
||||||
|
Capabilities uint32
|
||||||
|
Lastchange Timeval
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Pad1 uint8
|
||||||
|
Pad2 uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfAnnounceMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
What uint16
|
||||||
|
Name [16]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Hdrlen uint16
|
||||||
|
Index uint16
|
||||||
|
Tableid uint16
|
||||||
|
Priority uint8
|
||||||
|
Mpls uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Fmask int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Pksent uint64
|
||||||
|
Expire int64
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Refcnt uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pad uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mclpool struct{}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x8
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint32
|
||||||
|
Drop uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec uint32
|
||||||
|
Usec uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [20]uint8
|
||||||
|
Ispeed int32
|
||||||
|
Ospeed int32
|
||||||
|
}
|
||||||
376
c/syscall/ztypes_solaris_amd64.go
Normal file
376
c/syscall/ztypes_solaris_amd64.go
Normal file
@@ -0,0 +1,376 @@
|
|||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_solaris.go
|
||||||
|
|
||||||
|
//go:build amd64 && solaris
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x400
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval32 struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Pid_t int32
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
S_IFMT = 0xf000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
S_IRWXG = 0x38
|
||||||
|
S_IRWXO = 0x7
|
||||||
|
)
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
Size int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
Blksize int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Blocks int64
|
||||||
|
Fstype [16]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flock_t struct {
|
||||||
|
Type int16
|
||||||
|
Whence int16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Start int64
|
||||||
|
Len int64
|
||||||
|
Sysid int32
|
||||||
|
Pid int32
|
||||||
|
Pad [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Name [1]int8
|
||||||
|
Pad_cgo_0 [5]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet4 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Addr [4]byte /* in_addr */
|
||||||
|
Zero [8]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrInet6 struct {
|
||||||
|
Family uint16
|
||||||
|
Port uint16
|
||||||
|
Flowinfo uint32
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Scope_id uint32
|
||||||
|
X__sin6_src_id uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrUnix struct {
|
||||||
|
Family uint16
|
||||||
|
Path [108]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrDatalink struct {
|
||||||
|
Family uint16
|
||||||
|
Index uint16
|
||||||
|
Type uint8
|
||||||
|
Nlen uint8
|
||||||
|
Alen uint8
|
||||||
|
Slen uint8
|
||||||
|
Data [244]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddr struct {
|
||||||
|
Family uint16
|
||||||
|
Data [14]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [236]int8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *int8
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPMreq struct {
|
||||||
|
Multiaddr [4]byte /* in_addr */
|
||||||
|
Interface [4]byte /* in_addr */
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6Mreq struct {
|
||||||
|
Multiaddr [16]byte /* in6_addr */
|
||||||
|
Interface uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Msghdr struct {
|
||||||
|
Name *byte
|
||||||
|
Namelen uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Accrights *int8
|
||||||
|
Accrightslen int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint32
|
||||||
|
Level int32
|
||||||
|
Type int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Inet6Pktinfo struct {
|
||||||
|
Addr [16]byte /* in6_addr */
|
||||||
|
Ifindex uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IPv6MTUInfo struct {
|
||||||
|
Addr RawSockaddrInet6
|
||||||
|
Mtu uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type ICMPv6Filter struct {
|
||||||
|
X__icmp6_filt [8]uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofSockaddrInet4 = 0x10
|
||||||
|
SizeofSockaddrInet6 = 0x20
|
||||||
|
SizeofSockaddrAny = 0xfc
|
||||||
|
SizeofSockaddrUnix = 0x6e
|
||||||
|
SizeofSockaddrDatalink = 0xfc
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofIPMreq = 0x8
|
||||||
|
SizeofIPv6Mreq = 0x14
|
||||||
|
SizeofMsghdr = 0x30
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
SizeofInet6Pktinfo = 0x14
|
||||||
|
SizeofIPv6MTUInfo = 0x24
|
||||||
|
SizeofICMPv6Filter = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [1024]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofIfMsghdr = 0x54
|
||||||
|
SizeofIfData = 0x44
|
||||||
|
SizeofIfaMsghdr = 0x14
|
||||||
|
SizeofRtMsghdr = 0x4c
|
||||||
|
SizeofRtMetrics = 0x28
|
||||||
|
)
|
||||||
|
|
||||||
|
type IfMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Data IfData
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfData struct {
|
||||||
|
Type uint8
|
||||||
|
Addrlen uint8
|
||||||
|
Hdrlen uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
Mtu uint32
|
||||||
|
Metric uint32
|
||||||
|
Baudrate uint32
|
||||||
|
Ipackets uint32
|
||||||
|
Ierrors uint32
|
||||||
|
Opackets uint32
|
||||||
|
Oerrors uint32
|
||||||
|
Collisions uint32
|
||||||
|
Ibytes uint32
|
||||||
|
Obytes uint32
|
||||||
|
Imcasts uint32
|
||||||
|
Omcasts uint32
|
||||||
|
Iqdrops uint32
|
||||||
|
Noproto uint32
|
||||||
|
Lastchange Timeval32
|
||||||
|
}
|
||||||
|
|
||||||
|
type IfaMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Addrs int32
|
||||||
|
Flags int32
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Metric int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMsghdr struct {
|
||||||
|
Msglen uint16
|
||||||
|
Version uint8
|
||||||
|
Type uint8
|
||||||
|
Index uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
Flags int32
|
||||||
|
Addrs int32
|
||||||
|
Pid int32
|
||||||
|
Seq int32
|
||||||
|
Errno int32
|
||||||
|
Use int32
|
||||||
|
Inits uint32
|
||||||
|
Rmx RtMetrics
|
||||||
|
}
|
||||||
|
|
||||||
|
type RtMetrics struct {
|
||||||
|
Locks uint32
|
||||||
|
Mtu uint32
|
||||||
|
Hopcount uint32
|
||||||
|
Expire uint32
|
||||||
|
Recvpipe uint32
|
||||||
|
Sendpipe uint32
|
||||||
|
Ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Pksent uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
SizeofBpfVersion = 0x4
|
||||||
|
SizeofBpfStat = 0x80
|
||||||
|
SizeofBpfProgram = 0x10
|
||||||
|
SizeofBpfInsn = 0x8
|
||||||
|
SizeofBpfHdr = 0x14
|
||||||
|
)
|
||||||
|
|
||||||
|
type BpfVersion struct {
|
||||||
|
Major uint16
|
||||||
|
Minor uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfStat struct {
|
||||||
|
Recv uint64
|
||||||
|
Drop uint64
|
||||||
|
Capt uint64
|
||||||
|
Padding [13]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfProgram struct {
|
||||||
|
Len uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Insns *BpfInsn
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfInsn struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfTimeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type BpfHdr struct {
|
||||||
|
Tstamp BpfTimeval
|
||||||
|
Caplen uint32
|
||||||
|
Datalen uint32
|
||||||
|
Hdrlen uint16
|
||||||
|
Pad_cgo_0 [2]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = 0xffd19553
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Cc [19]uint8
|
||||||
|
Pad_cgo_0 [1]byte
|
||||||
|
}
|
||||||
@@ -531,7 +531,8 @@ func ignoreName(name string) bool {
|
|||||||
|
|
||||||
func supportedInternal(name string) bool {
|
func supportedInternal(name string) bool {
|
||||||
return strings.HasPrefix(name, "abi.") || strings.HasPrefix(name, "bytealg.") ||
|
return strings.HasPrefix(name, "abi.") || strings.HasPrefix(name, "bytealg.") ||
|
||||||
strings.HasPrefix(name, "reflectlite.")
|
strings.HasPrefix(name, "oserror.") || strings.HasPrefix(name, "reflectlite.") ||
|
||||||
|
strings.HasPrefix(name, "syscall/execenv.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -673,13 +673,12 @@ func canSkipToBuild(pkgPath string) bool {
|
|||||||
type none struct{}
|
type none struct{}
|
||||||
|
|
||||||
var hasAltPkg = map[string]none{
|
var hasAltPkg = map[string]none{
|
||||||
"errors": {},
|
|
||||||
"fmt": {},
|
"fmt": {},
|
||||||
"internal/abi": {},
|
"internal/abi": {},
|
||||||
"internal/bytealg": {},
|
"internal/bytealg": {},
|
||||||
|
"internal/oserror": {},
|
||||||
"internal/reflectlite": {},
|
"internal/reflectlite": {},
|
||||||
"io": {},
|
"internal/syscall/execenv": {},
|
||||||
"io/fs": {},
|
|
||||||
"math": {},
|
"math": {},
|
||||||
"math/cmplx": {},
|
"math/cmplx": {},
|
||||||
"reflect": {},
|
"reflect": {},
|
||||||
@@ -688,6 +687,7 @@ var hasAltPkg = map[string]none{
|
|||||||
"syscall": {},
|
"syscall": {},
|
||||||
"time": {},
|
"time": {},
|
||||||
"os": {},
|
"os": {},
|
||||||
|
"os/exec": {},
|
||||||
"runtime": {},
|
"runtime": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package errors
|
|
||||||
|
|
||||||
// llgo:skipall
|
|
||||||
import (
|
|
||||||
_ "unsafe"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Unwrap returns the result of calling the Unwrap method on err, if err's
|
|
||||||
// type contains an Unwrap method returning error.
|
|
||||||
// Otherwise, Unwrap returns nil.
|
|
||||||
//
|
|
||||||
// Unwrap only calls a method of the form "Unwrap() error".
|
|
||||||
// In particular Unwrap does not unwrap errors returned by [Join].
|
|
||||||
func Unwrap(err error) error {
|
|
||||||
u, ok := err.(interface {
|
|
||||||
Unwrap() error
|
|
||||||
})
|
|
||||||
if !ok {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return u.Unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
// New returns an error that formats as the given text.
|
|
||||||
// Each call to New returns a distinct error value even if the text is identical.
|
|
||||||
func New(text string) error {
|
|
||||||
return &errorString{text}
|
|
||||||
}
|
|
||||||
|
|
||||||
// errorString is a trivial implementation of error.
|
|
||||||
type errorString struct {
|
|
||||||
s string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *errorString) Error() string {
|
|
||||||
return e.s
|
|
||||||
}
|
|
||||||
|
|
||||||
// ErrUnsupported indicates that a requested operation cannot be performed,
|
|
||||||
// because it is unsupported. For example, a call to [os.Link] when using a
|
|
||||||
// file system that does not support hard links.
|
|
||||||
//
|
|
||||||
// Functions and methods should not return this error but should instead
|
|
||||||
// return an error including appropriate context that satisfies
|
|
||||||
//
|
|
||||||
// errors.Is(err, errors.ErrUnsupported)
|
|
||||||
//
|
|
||||||
// either by directly wrapping ErrUnsupported or by implementing an Is method.
|
|
||||||
//
|
|
||||||
// Functions and methods should document the cases in which an error
|
|
||||||
// wrapping this will be returned.
|
|
||||||
var ErrUnsupported = New("unsupported operation")
|
|
||||||
@@ -2,11 +2,14 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
package syscall
|
// Package oserror defines errors values used in the os package.
|
||||||
|
//
|
||||||
|
// These types are defined here to permit the syscall package to reference them.
|
||||||
|
package oserror
|
||||||
|
|
||||||
|
// llgo:skipall
|
||||||
import "errors"
|
import "errors"
|
||||||
|
|
||||||
// from internal/oserror
|
|
||||||
var (
|
var (
|
||||||
ErrInvalid = errors.New("invalid argument")
|
ErrInvalid = errors.New("invalid argument")
|
||||||
ErrPermission = errors.New("permission denied")
|
ErrPermission = errors.New("permission denied")
|
||||||
20
internal/lib/internal/syscall/execenv/execenv_default.go
Normal file
20
internal/lib/internal/syscall/execenv/execenv_default.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
// Copyright 2020 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.
|
||||||
|
|
||||||
|
//go:build !windows
|
||||||
|
|
||||||
|
package execenv
|
||||||
|
|
||||||
|
// llgo:skipall
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
// Default will return the default environment
|
||||||
|
// variables based on the process attributes
|
||||||
|
// provided.
|
||||||
|
//
|
||||||
|
// Defaults to syscall.Environ() on all platforms
|
||||||
|
// other than Windows.
|
||||||
|
func Default(sys *syscall.SysProcAttr) ([]string, error) {
|
||||||
|
return syscall.Environ(), nil
|
||||||
|
}
|
||||||
48
internal/lib/internal/syscall/execenv/execenv_windows.go
Normal file
48
internal/lib/internal/syscall/execenv/execenv_windows.go
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
// Copyright 2020 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.
|
||||||
|
|
||||||
|
//go:build windows
|
||||||
|
|
||||||
|
package execenv
|
||||||
|
|
||||||
|
// llgo:skipall
|
||||||
|
import (
|
||||||
|
"internal/syscall/windows"
|
||||||
|
"syscall"
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Default will return the default environment
|
||||||
|
// variables based on the process attributes
|
||||||
|
// provided.
|
||||||
|
//
|
||||||
|
// If the process attributes contain a token, then
|
||||||
|
// the environment variables will be sourced from
|
||||||
|
// the defaults for that user token, otherwise they
|
||||||
|
// will be sourced from syscall.Environ().
|
||||||
|
func Default(sys *syscall.SysProcAttr) (env []string, err error) {
|
||||||
|
if sys == nil || sys.Token == 0 {
|
||||||
|
return syscall.Environ(), nil
|
||||||
|
}
|
||||||
|
var blockp *uint16
|
||||||
|
err = windows.CreateEnvironmentBlock(&blockp, sys.Token, false)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer windows.DestroyEnvironmentBlock(blockp)
|
||||||
|
|
||||||
|
const size = unsafe.Sizeof(*blockp)
|
||||||
|
for *blockp != 0 { // environment block ends with empty string
|
||||||
|
// find NUL terminator
|
||||||
|
end := unsafe.Add(unsafe.Pointer(blockp), size)
|
||||||
|
for *(*uint16)(end) != 0 {
|
||||||
|
end = unsafe.Add(end, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
entry := unsafe.Slice(blockp, (uintptr(end)-uintptr(unsafe.Pointer(blockp)))/2)
|
||||||
|
env = append(env, syscall.UTF16ToString(entry))
|
||||||
|
blockp = (*uint16)(unsafe.Add(end, size))
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
172
internal/lib/os/exec.go
Normal file
172
internal/lib/os/exec.go
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"runtime"
|
||||||
|
"sync"
|
||||||
|
"sync/atomic"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ErrProcessDone indicates a Process has finished.
|
||||||
|
var ErrProcessDone = errors.New("os: process already finished")
|
||||||
|
|
||||||
|
// Process stores the information about a process created by StartProcess.
|
||||||
|
type Process struct {
|
||||||
|
Pid int
|
||||||
|
handle uintptr // handle is accessed atomically on Windows
|
||||||
|
isdone atomic.Bool // process has been successfully waited on
|
||||||
|
sigMu sync.RWMutex // avoid race between wait and signal
|
||||||
|
}
|
||||||
|
|
||||||
|
func newProcess(pid int, handle uintptr) *Process {
|
||||||
|
p := &Process{Pid: pid, handle: handle}
|
||||||
|
runtime.SetFinalizer(p, (*Process).Release)
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) setDone() {
|
||||||
|
p.isdone.Store(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) done() bool {
|
||||||
|
return p.isdone.Load()
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProcAttr holds the attributes that will be applied to a new process
|
||||||
|
// started by StartProcess.
|
||||||
|
type ProcAttr struct {
|
||||||
|
// If Dir is non-empty, the child changes into the directory before
|
||||||
|
// creating the process.
|
||||||
|
Dir string
|
||||||
|
// If Env is non-nil, it gives the environment variables for the
|
||||||
|
// new process in the form returned by Environ.
|
||||||
|
// If it is nil, the result of Environ will be used.
|
||||||
|
Env []string
|
||||||
|
// Files specifies the open files inherited by the new process. The
|
||||||
|
// first three entries correspond to standard input, standard output, and
|
||||||
|
// standard error. An implementation may support additional entries,
|
||||||
|
// depending on the underlying operating system. A nil entry corresponds
|
||||||
|
// to that file being closed when the process starts.
|
||||||
|
// On Unix systems, StartProcess will change these File values
|
||||||
|
// to blocking mode, which means that SetDeadline will stop working
|
||||||
|
// and calling Close will not interrupt a Read or Write.
|
||||||
|
Files []*File
|
||||||
|
|
||||||
|
// Operating system-specific process creation attributes.
|
||||||
|
// Note that setting this field means that your program
|
||||||
|
// may not execute properly or even compile on some
|
||||||
|
// operating systems.
|
||||||
|
Sys *syscall.SysProcAttr
|
||||||
|
}
|
||||||
|
|
||||||
|
// A Signal represents an operating system signal.
|
||||||
|
// The usual underlying implementation is operating system-dependent:
|
||||||
|
// on Unix it is syscall.Signal.
|
||||||
|
type Signal interface {
|
||||||
|
String() string
|
||||||
|
Signal() // to distinguish from other Stringers
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindProcess looks for a running process by its pid.
|
||||||
|
//
|
||||||
|
// The Process it returns can be used to obtain information
|
||||||
|
// about the underlying operating system process.
|
||||||
|
//
|
||||||
|
// On Unix systems, FindProcess always succeeds and returns a Process
|
||||||
|
// for the given pid, regardless of whether the process exists. To test whether
|
||||||
|
// the process actually exists, see whether p.Signal(syscall.Signal(0)) reports
|
||||||
|
// an error.
|
||||||
|
func FindProcess(pid int) (*Process, error) {
|
||||||
|
return findProcess(pid)
|
||||||
|
}
|
||||||
|
|
||||||
|
// StartProcess starts a new process with the program, arguments and attributes
|
||||||
|
// specified by name, argv and attr. The argv slice will become os.Args in the
|
||||||
|
// new process, so it normally starts with the program name.
|
||||||
|
//
|
||||||
|
// If the calling goroutine has locked the operating system thread
|
||||||
|
// with runtime.LockOSThread and modified any inheritable OS-level
|
||||||
|
// thread state (for example, Linux or Plan 9 name spaces), the new
|
||||||
|
// process will inherit the caller's thread state.
|
||||||
|
//
|
||||||
|
// StartProcess is a low-level interface. The os/exec package provides
|
||||||
|
// higher-level interfaces.
|
||||||
|
//
|
||||||
|
// If there is an error, it will be of type *PathError.
|
||||||
|
func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error) {
|
||||||
|
return startProcess(name, argv, attr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Release releases any resources associated with the Process p,
|
||||||
|
// rendering it unusable in the future.
|
||||||
|
// Release only needs to be called if Wait is not.
|
||||||
|
func (p *Process) Release() error {
|
||||||
|
return p.release()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kill causes the Process to exit immediately. Kill does not wait until
|
||||||
|
// the Process has actually exited. This only kills the Process itself,
|
||||||
|
// not any other processes it may have started.
|
||||||
|
func (p *Process) Kill() error {
|
||||||
|
return p.kill()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait waits for the Process to exit, and then returns a
|
||||||
|
// ProcessState describing its status and an error, if any.
|
||||||
|
// Wait releases any resources associated with the Process.
|
||||||
|
// On most operating systems, the Process must be a child
|
||||||
|
// of the current process or an error will be returned.
|
||||||
|
func (p *Process) Wait() (*ProcessState, error) {
|
||||||
|
return p.wait()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Signal sends a signal to the Process.
|
||||||
|
// Sending Interrupt on Windows is not implemented.
|
||||||
|
func (p *Process) Signal(sig Signal) error {
|
||||||
|
return p.signal(sig)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UserTime returns the user CPU time of the exited process and its children.
|
||||||
|
func (p *ProcessState) UserTime() time.Duration {
|
||||||
|
return p.userTime()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SystemTime returns the system CPU time of the exited process and its children.
|
||||||
|
func (p *ProcessState) SystemTime() time.Duration {
|
||||||
|
return p.systemTime()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Exited reports whether the program has exited.
|
||||||
|
// On Unix systems this reports true if the program exited due to calling exit,
|
||||||
|
// but false if the program terminated due to a signal.
|
||||||
|
func (p *ProcessState) Exited() bool {
|
||||||
|
return p.exited()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Success reports whether the program exited successfully,
|
||||||
|
// such as with exit status 0 on Unix.
|
||||||
|
func (p *ProcessState) Success() bool {
|
||||||
|
return p.success()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sys returns system-dependent exit information about
|
||||||
|
// the process. Convert it to the appropriate underlying
|
||||||
|
// type, such as syscall.WaitStatus on Unix, to access its contents.
|
||||||
|
func (p *ProcessState) Sys() any {
|
||||||
|
return p.sys()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SysUsage returns system-dependent resource usage information about
|
||||||
|
// the exited process. Convert it to the appropriate underlying
|
||||||
|
// type, such as *syscall.Rusage on Unix, to access its contents.
|
||||||
|
// (On Unix, *syscall.Rusage matches struct rusage as defined in the
|
||||||
|
// getrusage(2) manual page.)
|
||||||
|
func (p *ProcessState) SysUsage() any {
|
||||||
|
return p.sysUsage()
|
||||||
|
}
|
||||||
1238
internal/lib/os/exec/exec.go
Normal file
1238
internal/lib/os/exec/exec.go
Normal file
File diff suppressed because it is too large
Load Diff
66
internal/lib/os/exec/lp_plan9.go
Normal file
66
internal/lib/os/exec/lp_plan9.go
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
package exec
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"io/fs"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ErrNotFound is the error resulting if a path search failed to find an executable file.
|
||||||
|
var ErrNotFound = errors.New("executable file not found in $path")
|
||||||
|
|
||||||
|
func findExecutable(file string) error {
|
||||||
|
d, err := os.Stat(file)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if m := d.Mode(); !m.IsDir() && m&0111 != 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return fs.ErrPermission
|
||||||
|
}
|
||||||
|
|
||||||
|
// LookPath searches for an executable named file in the
|
||||||
|
// directories named by the path environment variable.
|
||||||
|
// If file begins with "/", "#", "./", or "../", it is tried
|
||||||
|
// directly and the path is not consulted.
|
||||||
|
// On success, the result is an absolute path.
|
||||||
|
//
|
||||||
|
// In older versions of Go, LookPath could return a path relative to the current directory.
|
||||||
|
// As of Go 1.19, LookPath will instead return that path along with an error satisfying
|
||||||
|
// errors.Is(err, ErrDot). See the package documentation for more details.
|
||||||
|
func LookPath(file string) (string, error) {
|
||||||
|
// skip the path lookup for these prefixes
|
||||||
|
skip := []string{"/", "#", "./", "../"}
|
||||||
|
|
||||||
|
for _, p := range skip {
|
||||||
|
if strings.HasPrefix(file, p) {
|
||||||
|
err := findExecutable(file)
|
||||||
|
if err == nil {
|
||||||
|
return file, nil
|
||||||
|
}
|
||||||
|
return "", &Error{file, err}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
path := os.Getenv("path")
|
||||||
|
for _, dir := range filepath.SplitList(path) {
|
||||||
|
path := filepath.Join(dir, file)
|
||||||
|
if err := findExecutable(path); err == nil {
|
||||||
|
if !filepath.IsAbs(path) {
|
||||||
|
if execerrdot.Value() != "0" {
|
||||||
|
return path, &Error{file, ErrDot}
|
||||||
|
}
|
||||||
|
execerrdot.IncNonDefault()
|
||||||
|
}
|
||||||
|
return path, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", &Error{file, ErrNotFound}
|
||||||
|
}
|
||||||
84
internal/lib/os/exec/lp_unix.go
Normal file
84
internal/lib/os/exec/lp_unix.go
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
//go:build unix
|
||||||
|
|
||||||
|
package exec
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"io/fs"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ErrNotFound is the error resulting if a path search failed to find an executable file.
|
||||||
|
var ErrNotFound = errors.New("executable file not found in $PATH")
|
||||||
|
|
||||||
|
func findExecutable(file string) error {
|
||||||
|
d, err := os.Stat(file)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
m := d.Mode()
|
||||||
|
if m.IsDir() {
|
||||||
|
return syscall.EISDIR
|
||||||
|
}
|
||||||
|
err = unixEaccess(file, unix_X_OK)
|
||||||
|
// ENOSYS means Eaccess is not available or not implemented.
|
||||||
|
// EPERM can be returned by Linux containers employing seccomp.
|
||||||
|
// In both cases, fall back to checking the permission bits.
|
||||||
|
if err == nil || (err != syscall.ENOSYS && err != syscall.EPERM) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if m&0111 != 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return fs.ErrPermission
|
||||||
|
}
|
||||||
|
|
||||||
|
// LookPath searches for an executable named file in the
|
||||||
|
// directories named by the PATH environment variable.
|
||||||
|
// If file contains a slash, it is tried directly and the PATH is not consulted.
|
||||||
|
// Otherwise, on success, the result is an absolute path.
|
||||||
|
//
|
||||||
|
// In older versions of Go, LookPath could return a path relative to the current directory.
|
||||||
|
// As of Go 1.19, LookPath will instead return that path along with an error satisfying
|
||||||
|
// errors.Is(err, ErrDot). See the package documentation for more details.
|
||||||
|
func LookPath(file string) (string, error) {
|
||||||
|
// NOTE(rsc): I wish we could use the Plan 9 behavior here
|
||||||
|
// (only bypass the path if file begins with / or ./ or ../)
|
||||||
|
// but that would not match all the Unix shells.
|
||||||
|
|
||||||
|
if strings.Contains(file, "/") {
|
||||||
|
err := findExecutable(file)
|
||||||
|
if err == nil {
|
||||||
|
return file, nil
|
||||||
|
}
|
||||||
|
return "", &Error{file, err}
|
||||||
|
}
|
||||||
|
path := os.Getenv("PATH")
|
||||||
|
for _, dir := range filepath.SplitList(path) {
|
||||||
|
if dir == "" {
|
||||||
|
// Unix shell semantics: path element "" means "."
|
||||||
|
dir = "."
|
||||||
|
}
|
||||||
|
path := filepath.Join(dir, file)
|
||||||
|
if err := findExecutable(path); err == nil {
|
||||||
|
if !filepath.IsAbs(path) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if execerrdot.Value() != "0" {
|
||||||
|
return path, &Error{file, ErrDot}
|
||||||
|
}
|
||||||
|
execerrdot.IncNonDefault()
|
||||||
|
*/
|
||||||
|
panic("todo: exec.LookPath: !filepath.IsAbs(path)")
|
||||||
|
}
|
||||||
|
return path, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", &Error{file, ErrNotFound}
|
||||||
|
}
|
||||||
23
internal/lib/os/exec/lp_wasm.go
Normal file
23
internal/lib/os/exec/lp_wasm.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// Copyright 2018 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.
|
||||||
|
|
||||||
|
//go:build wasm
|
||||||
|
|
||||||
|
package exec
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ErrNotFound is the error resulting if a path search failed to find an executable file.
|
||||||
|
var ErrNotFound = errors.New("executable file not found in $PATH")
|
||||||
|
|
||||||
|
// LookPath searches for an executable named file in the
|
||||||
|
// directories named by the PATH environment variable.
|
||||||
|
// If file contains a slash, it is tried directly and the PATH is not consulted.
|
||||||
|
// The result may be an absolute path or a path relative to the current directory.
|
||||||
|
func LookPath(file string) (string, error) {
|
||||||
|
// Wasm can not execute processes, so act as if there are no executables at all.
|
||||||
|
return "", &Error{file, ErrNotFound}
|
||||||
|
}
|
||||||
145
internal/lib/os/exec/lp_windows.go
Normal file
145
internal/lib/os/exec/lp_windows.go
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
package exec
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"io/fs"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"syscall"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ErrNotFound is the error resulting if a path search failed to find an executable file.
|
||||||
|
var ErrNotFound = errors.New("executable file not found in %PATH%")
|
||||||
|
|
||||||
|
func chkStat(file string) error {
|
||||||
|
d, err := os.Stat(file)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if d.IsDir() {
|
||||||
|
return fs.ErrPermission
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func hasExt(file string) bool {
|
||||||
|
i := strings.LastIndex(file, ".")
|
||||||
|
if i < 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return strings.LastIndexAny(file, `:\/`) < i
|
||||||
|
}
|
||||||
|
|
||||||
|
func findExecutable(file string, exts []string) (string, error) {
|
||||||
|
if len(exts) == 0 {
|
||||||
|
return file, chkStat(file)
|
||||||
|
}
|
||||||
|
if hasExt(file) {
|
||||||
|
if chkStat(file) == nil {
|
||||||
|
return file, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, e := range exts {
|
||||||
|
if f := file + e; chkStat(f) == nil {
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", fs.ErrNotExist
|
||||||
|
}
|
||||||
|
|
||||||
|
// LookPath searches for an executable named file in the
|
||||||
|
// directories named by the PATH environment variable.
|
||||||
|
// LookPath also uses PATHEXT environment variable to match
|
||||||
|
// a suitable candidate.
|
||||||
|
// If file contains a slash, it is tried directly and the PATH is not consulted.
|
||||||
|
// Otherwise, on success, the result is an absolute path.
|
||||||
|
//
|
||||||
|
// In older versions of Go, LookPath could return a path relative to the current directory.
|
||||||
|
// As of Go 1.19, LookPath will instead return that path along with an error satisfying
|
||||||
|
// errors.Is(err, ErrDot). See the package documentation for more details.
|
||||||
|
func LookPath(file string) (string, error) {
|
||||||
|
var exts []string
|
||||||
|
x := os.Getenv(`PATHEXT`)
|
||||||
|
if x != "" {
|
||||||
|
for _, e := range strings.Split(strings.ToLower(x), `;`) {
|
||||||
|
if e == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if e[0] != '.' {
|
||||||
|
e = "." + e
|
||||||
|
}
|
||||||
|
exts = append(exts, e)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
exts = []string{".com", ".exe", ".bat", ".cmd"}
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.ContainsAny(file, `:\/`) {
|
||||||
|
f, err := findExecutable(file, exts)
|
||||||
|
if err == nil {
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
return "", &Error{file, err}
|
||||||
|
}
|
||||||
|
|
||||||
|
// On Windows, creating the NoDefaultCurrentDirectoryInExePath
|
||||||
|
// environment variable (with any value or no value!) signals that
|
||||||
|
// path lookups should skip the current directory.
|
||||||
|
// In theory we are supposed to call NeedCurrentDirectoryForExePathW
|
||||||
|
// "as the registry location of this environment variable can change"
|
||||||
|
// but that seems exceedingly unlikely: it would break all users who
|
||||||
|
// have configured their environment this way!
|
||||||
|
// https://docs.microsoft.com/en-us/windows/win32/api/processenv/nf-processenv-needcurrentdirectoryforexepathw
|
||||||
|
// See also go.dev/issue/43947.
|
||||||
|
var (
|
||||||
|
dotf string
|
||||||
|
dotErr error
|
||||||
|
)
|
||||||
|
if _, found := syscall.Getenv("NoDefaultCurrentDirectoryInExePath"); !found {
|
||||||
|
if f, err := findExecutable(filepath.Join(".", file), exts); err == nil {
|
||||||
|
if execerrdot.Value() == "0" {
|
||||||
|
execerrdot.IncNonDefault()
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
dotf, dotErr = f, &Error{file, ErrDot}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
path := os.Getenv("path")
|
||||||
|
for _, dir := range filepath.SplitList(path) {
|
||||||
|
if f, err := findExecutable(filepath.Join(dir, file), exts); err == nil {
|
||||||
|
if dotErr != nil {
|
||||||
|
// https://go.dev/issue/53536: if we resolved a relative path implicitly,
|
||||||
|
// and it is the same executable that would be resolved from the explicit %PATH%,
|
||||||
|
// prefer the explicit name for the executable (and, likely, no error) instead
|
||||||
|
// of the equivalent implicit name with ErrDot.
|
||||||
|
//
|
||||||
|
// Otherwise, return the ErrDot for the implicit path as soon as we find
|
||||||
|
// out that the explicit one doesn't match.
|
||||||
|
dotfi, dotfiErr := os.Lstat(dotf)
|
||||||
|
fi, fiErr := os.Lstat(f)
|
||||||
|
if dotfiErr != nil || fiErr != nil || !os.SameFile(dotfi, fi) {
|
||||||
|
return dotf, dotErr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !filepath.IsAbs(f) {
|
||||||
|
if execerrdot.Value() != "0" {
|
||||||
|
return f, &Error{file, ErrDot}
|
||||||
|
}
|
||||||
|
execerrdot.IncNonDefault()
|
||||||
|
}
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if dotErr != nil {
|
||||||
|
return dotf, dotErr
|
||||||
|
}
|
||||||
|
return "", &Error{file, ErrNotFound}
|
||||||
|
}
|
||||||
13
internal/lib/os/exec/unix_constants.go
Normal file
13
internal/lib/os/exec/unix_constants.go
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 2022 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.
|
||||||
|
|
||||||
|
//go:build unix
|
||||||
|
|
||||||
|
package exec
|
||||||
|
|
||||||
|
const (
|
||||||
|
unix_R_OK = 0x4
|
||||||
|
unix_W_OK = 0x2
|
||||||
|
unix_X_OK = 0x1
|
||||||
|
)
|
||||||
15
internal/lib/os/exec/unix_eaccess_linux.go
Normal file
15
internal/lib/os/exec/unix_eaccess_linux.go
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
// Copyright 2022 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 exec
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
|
||||||
|
"github.com/goplus/llgo/c/syscall/unix"
|
||||||
|
)
|
||||||
|
|
||||||
|
func unixEaccess(path string, mode uint32) error {
|
||||||
|
return syscall.Faccessat(unix.AT_FDCWD, path, mode, unix.AT_EACCESS)
|
||||||
|
}
|
||||||
13
internal/lib/os/exec/unix_eaccess_other.go
Normal file
13
internal/lib/os/exec/unix_eaccess_other.go
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 2022 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.
|
||||||
|
|
||||||
|
//go:build unix && !linux
|
||||||
|
|
||||||
|
package exec
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
func unixEaccess(path string, mode uint32) error {
|
||||||
|
return syscall.ENOSYS
|
||||||
|
}
|
||||||
149
internal/lib/os/exec_plan9.go
Normal file
149
internal/lib/os/exec_plan9.go
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"internal/itoa"
|
||||||
|
"runtime"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// The only signal values guaranteed to be present in the os package
|
||||||
|
// on all systems are Interrupt (send the process an interrupt) and
|
||||||
|
// Kill (force the process to exit). Interrupt is not implemented on
|
||||||
|
// Windows; using it with os.Process.Signal will return an error.
|
||||||
|
var (
|
||||||
|
Interrupt Signal = syscall.Note("interrupt")
|
||||||
|
Kill Signal = syscall.Note("kill")
|
||||||
|
)
|
||||||
|
|
||||||
|
func startProcess(name string, argv []string, attr *ProcAttr) (p *Process, err error) {
|
||||||
|
sysattr := &syscall.ProcAttr{
|
||||||
|
Dir: attr.Dir,
|
||||||
|
Env: attr.Env,
|
||||||
|
Sys: attr.Sys,
|
||||||
|
}
|
||||||
|
|
||||||
|
sysattr.Files = make([]uintptr, 0, len(attr.Files))
|
||||||
|
for _, f := range attr.Files {
|
||||||
|
sysattr.Files = append(sysattr.Files, f.Fd())
|
||||||
|
}
|
||||||
|
|
||||||
|
pid, h, e := syscall.StartProcess(name, argv, sysattr)
|
||||||
|
if e != nil {
|
||||||
|
return nil, &PathError{Op: "fork/exec", Path: name, Err: e}
|
||||||
|
}
|
||||||
|
|
||||||
|
return newProcess(pid, h), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) writeProcFile(file string, data string) error {
|
||||||
|
f, e := OpenFile("/proc/"+itoa.Itoa(p.Pid)+"/"+file, O_WRONLY, 0)
|
||||||
|
if e != nil {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
_, e = f.Write([]byte(data))
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) signal(sig Signal) error {
|
||||||
|
if p.done() {
|
||||||
|
return ErrProcessDone
|
||||||
|
}
|
||||||
|
if e := p.writeProcFile("note", sig.String()); e != nil {
|
||||||
|
return NewSyscallError("signal", e)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) kill() error {
|
||||||
|
return p.signal(Kill)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) wait() (ps *ProcessState, err error) {
|
||||||
|
var waitmsg syscall.Waitmsg
|
||||||
|
|
||||||
|
if p.Pid == -1 {
|
||||||
|
return nil, ErrInvalid
|
||||||
|
}
|
||||||
|
err = syscall.WaitProcess(p.Pid, &waitmsg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, NewSyscallError("wait", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
p.setDone()
|
||||||
|
ps = &ProcessState{
|
||||||
|
pid: waitmsg.Pid,
|
||||||
|
status: &waitmsg,
|
||||||
|
}
|
||||||
|
return ps, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) release() error {
|
||||||
|
// NOOP for Plan 9.
|
||||||
|
p.Pid = -1
|
||||||
|
// no need for a finalizer anymore
|
||||||
|
runtime.SetFinalizer(p, nil)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func findProcess(pid int) (p *Process, err error) {
|
||||||
|
// NOOP for Plan 9.
|
||||||
|
return newProcess(pid, 0), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProcessState stores information about a process, as reported by Wait.
|
||||||
|
type ProcessState struct {
|
||||||
|
pid int // The process's id.
|
||||||
|
status *syscall.Waitmsg // System-dependent status info.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pid returns the process id of the exited process.
|
||||||
|
func (p *ProcessState) Pid() int {
|
||||||
|
return p.pid
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) exited() bool {
|
||||||
|
return p.status.Exited()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) success() bool {
|
||||||
|
return p.status.ExitStatus() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) sys() any {
|
||||||
|
return p.status
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) sysUsage() any {
|
||||||
|
return p.status
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) userTime() time.Duration {
|
||||||
|
return time.Duration(p.status.Time[0]) * time.Millisecond
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) systemTime() time.Duration {
|
||||||
|
return time.Duration(p.status.Time[1]) * time.Millisecond
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) String() string {
|
||||||
|
if p == nil {
|
||||||
|
return "<nil>"
|
||||||
|
}
|
||||||
|
return "exit status: " + p.status.Msg
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExitCode returns the exit code of the exited process, or -1
|
||||||
|
// if the process hasn't exited or was terminated by a signal.
|
||||||
|
func (p *ProcessState) ExitCode() int {
|
||||||
|
// return -1 if the process hasn't started.
|
||||||
|
if p == nil {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return p.status.ExitStatus()
|
||||||
|
}
|
||||||
139
internal/lib/os/exec_posix.go
Normal file
139
internal/lib/os/exec_posix.go
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//go:build unix || (js && wasm) || wasip1 || windows
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
|
||||||
|
"github.com/goplus/llgo/internal/lib/internal/syscall/execenv"
|
||||||
|
)
|
||||||
|
|
||||||
|
// The only signal values guaranteed to be present in the os package on all
|
||||||
|
// systems are os.Interrupt (send the process an interrupt) and os.Kill (force
|
||||||
|
// the process to exit). On Windows, sending os.Interrupt to a process with
|
||||||
|
// os.Process.Signal is not implemented; it will return an error instead of
|
||||||
|
// sending a signal.
|
||||||
|
var (
|
||||||
|
Interrupt Signal = syscall.SIGINT
|
||||||
|
Kill Signal = syscall.SIGKILL
|
||||||
|
)
|
||||||
|
|
||||||
|
func startProcess(name string, argv []string, attr *ProcAttr) (p *Process, err error) {
|
||||||
|
// If there is no SysProcAttr (ie. no Chroot or changed
|
||||||
|
// UID/GID), double-check existence of the directory we want
|
||||||
|
// to chdir into. We can make the error clearer this way.
|
||||||
|
if attr != nil && attr.Sys == nil && attr.Dir != "" {
|
||||||
|
if _, err := Stat(attr.Dir); err != nil {
|
||||||
|
pe := err.(*PathError)
|
||||||
|
pe.Op = "chdir"
|
||||||
|
return nil, pe
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sysattr := &syscall.ProcAttr{
|
||||||
|
Dir: attr.Dir,
|
||||||
|
Env: attr.Env,
|
||||||
|
Sys: attr.Sys,
|
||||||
|
}
|
||||||
|
if sysattr.Env == nil {
|
||||||
|
sysattr.Env, err = execenv.Default(sysattr.Sys)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sysattr.Files = make([]uintptr, 0, len(attr.Files))
|
||||||
|
for _, f := range attr.Files {
|
||||||
|
sysattr.Files = append(sysattr.Files, f.Fd())
|
||||||
|
}
|
||||||
|
|
||||||
|
pid, h, e := syscall.StartProcess(name, argv, sysattr)
|
||||||
|
|
||||||
|
// TODO(xsw):
|
||||||
|
// Make sure we don't run the finalizers of attr.Files.
|
||||||
|
// runtime.KeepAlive(attr)
|
||||||
|
|
||||||
|
if e != nil {
|
||||||
|
return nil, &PathError{Op: "fork/exec", Path: name, Err: e}
|
||||||
|
}
|
||||||
|
|
||||||
|
return newProcess(pid, h), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) kill() error {
|
||||||
|
return p.Signal(Kill)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProcessState stores information about a process, as reported by Wait.
|
||||||
|
type ProcessState struct {
|
||||||
|
pid int // The process's id.
|
||||||
|
status syscall.WaitStatus // System-dependent status info.
|
||||||
|
rusage *syscall.Rusage
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pid returns the process id of the exited process.
|
||||||
|
func (p *ProcessState) Pid() int {
|
||||||
|
return p.pid
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) exited() bool {
|
||||||
|
return p.status.Exited()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) success() bool {
|
||||||
|
return p.status.ExitStatus() == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) sys() any {
|
||||||
|
return p.status
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) sysUsage() any {
|
||||||
|
return p.rusage
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) String() string {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if p == nil {
|
||||||
|
return "<nil>"
|
||||||
|
}
|
||||||
|
status := p.Sys().(syscall.WaitStatus)
|
||||||
|
res := ""
|
||||||
|
switch {
|
||||||
|
case status.Exited():
|
||||||
|
code := status.ExitStatus()
|
||||||
|
if runtime.GOOS == "windows" && uint(code) >= 1<<16 { // windows uses large hex numbers
|
||||||
|
res = "exit status " + uitox(uint(code))
|
||||||
|
} else { // unix systems use small decimal integers
|
||||||
|
res = "exit status " + itoa.Itoa(code) // unix
|
||||||
|
}
|
||||||
|
case status.Signaled():
|
||||||
|
res = "signal: " + status.Signal().String()
|
||||||
|
case status.Stopped():
|
||||||
|
res = "stop signal: " + status.StopSignal().String()
|
||||||
|
if status.StopSignal() == syscall.SIGTRAP && status.TrapCause() != 0 {
|
||||||
|
res += " (trap " + itoa.Itoa(status.TrapCause()) + ")"
|
||||||
|
}
|
||||||
|
case status.Continued():
|
||||||
|
res = "continued"
|
||||||
|
}
|
||||||
|
if status.CoreDump() {
|
||||||
|
res += " (core dumped)"
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
*/
|
||||||
|
panic("todo: os.ProcessState.String")
|
||||||
|
}
|
||||||
|
|
||||||
|
// ExitCode returns the exit code of the exited process, or -1
|
||||||
|
// if the process hasn't exited or was terminated by a signal.
|
||||||
|
func (p *ProcessState) ExitCode() int {
|
||||||
|
// return -1 if the process hasn't started.
|
||||||
|
if p == nil {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return p.status.ExitStatus()
|
||||||
|
}
|
||||||
109
internal/lib/os/exec_unix.go
Normal file
109
internal/lib/os/exec_unix.go
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//go:build unix || (js && wasm) || wasip1
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"runtime"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (p *Process) wait() (ps *ProcessState, err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if p.Pid == -1 {
|
||||||
|
return nil, syscall.EINVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we can block until Wait4 will succeed immediately, do so.
|
||||||
|
ready, err := p.blockUntilWaitable()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if ready {
|
||||||
|
// Mark the process done now, before the call to Wait4,
|
||||||
|
// so that Process.signal will not send a signal.
|
||||||
|
p.setDone()
|
||||||
|
// Acquire a write lock on sigMu to wait for any
|
||||||
|
// active call to the signal method to complete.
|
||||||
|
p.sigMu.Lock()
|
||||||
|
p.sigMu.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
status syscall.WaitStatus
|
||||||
|
rusage syscall.Rusage
|
||||||
|
pid1 int
|
||||||
|
e error
|
||||||
|
)
|
||||||
|
for {
|
||||||
|
pid1, e = syscall.Wait4(p.Pid, &status, 0, &rusage)
|
||||||
|
if e != syscall.EINTR {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if e != nil {
|
||||||
|
return nil, NewSyscallError("wait", e)
|
||||||
|
}
|
||||||
|
if pid1 != 0 {
|
||||||
|
p.setDone()
|
||||||
|
}
|
||||||
|
ps = &ProcessState{
|
||||||
|
pid: pid1,
|
||||||
|
status: status,
|
||||||
|
rusage: &rusage,
|
||||||
|
}
|
||||||
|
return ps, nil
|
||||||
|
*/
|
||||||
|
panic("todo: os.Process.wait")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) signal(sig Signal) error {
|
||||||
|
if p.Pid == -1 {
|
||||||
|
return errors.New("os: process already released")
|
||||||
|
}
|
||||||
|
if p.Pid == 0 {
|
||||||
|
return errors.New("os: process not initialized")
|
||||||
|
}
|
||||||
|
p.sigMu.RLock()
|
||||||
|
defer p.sigMu.RUnlock()
|
||||||
|
if p.done() {
|
||||||
|
return ErrProcessDone
|
||||||
|
}
|
||||||
|
s, ok := sig.(syscall.Signal)
|
||||||
|
if !ok {
|
||||||
|
return errors.New("os: unsupported signal type")
|
||||||
|
}
|
||||||
|
if e := syscall.Kill(p.Pid, s); e != nil {
|
||||||
|
if e == syscall.ESRCH {
|
||||||
|
return ErrProcessDone
|
||||||
|
}
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) release() error {
|
||||||
|
// NOOP for unix.
|
||||||
|
p.Pid = -1
|
||||||
|
// no need for a finalizer anymore
|
||||||
|
runtime.SetFinalizer(p, nil)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func findProcess(pid int) (p *Process, err error) {
|
||||||
|
// NOOP for unix.
|
||||||
|
return newProcess(pid, 0), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) userTime() time.Duration {
|
||||||
|
return time.Duration(p.rusage.Utime.Nano()) * time.Nanosecond
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) systemTime() time.Duration {
|
||||||
|
return time.Duration(p.rusage.Stime.Nano()) * time.Nanosecond
|
||||||
|
}
|
||||||
183
internal/lib/os/exec_windows.go
Normal file
183
internal/lib/os/exec_windows.go
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"internal/syscall/windows"
|
||||||
|
"runtime"
|
||||||
|
"sync/atomic"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (p *Process) wait() (ps *ProcessState, err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
handle := atomic.LoadUintptr(&p.handle)
|
||||||
|
s, e := syscall.WaitForSingleObject(syscall.Handle(handle), syscall.INFINITE)
|
||||||
|
switch s {
|
||||||
|
case syscall.WAIT_OBJECT_0:
|
||||||
|
break
|
||||||
|
case syscall.WAIT_FAILED:
|
||||||
|
return nil, NewSyscallError("WaitForSingleObject", e)
|
||||||
|
default:
|
||||||
|
return nil, errors.New("os: unexpected result from WaitForSingleObject")
|
||||||
|
}
|
||||||
|
var ec uint32
|
||||||
|
e = syscall.GetExitCodeProcess(syscall.Handle(handle), &ec)
|
||||||
|
if e != nil {
|
||||||
|
return nil, NewSyscallError("GetExitCodeProcess", e)
|
||||||
|
}
|
||||||
|
var u syscall.Rusage
|
||||||
|
e = syscall.GetProcessTimes(syscall.Handle(handle), &u.CreationTime, &u.ExitTime, &u.KernelTime, &u.UserTime)
|
||||||
|
if e != nil {
|
||||||
|
return nil, NewSyscallError("GetProcessTimes", e)
|
||||||
|
}
|
||||||
|
p.setDone()
|
||||||
|
// NOTE(brainman): It seems that sometimes process is not dead
|
||||||
|
// when WaitForSingleObject returns. But we do not know any
|
||||||
|
// other way to wait for it. Sleeping for a while seems to do
|
||||||
|
// the trick sometimes.
|
||||||
|
// See https://golang.org/issue/25965 for details.
|
||||||
|
defer time.Sleep(5 * time.Millisecond)
|
||||||
|
defer p.Release()
|
||||||
|
return &ProcessState{p.Pid, syscall.WaitStatus{ExitCode: ec}, &u}, nil
|
||||||
|
*/
|
||||||
|
panic("todo: os.Process.wait")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) signal(sig Signal) error {
|
||||||
|
handle := atomic.LoadUintptr(&p.handle)
|
||||||
|
if handle == uintptr(syscall.InvalidHandle) {
|
||||||
|
return syscall.EINVAL
|
||||||
|
}
|
||||||
|
if p.done() {
|
||||||
|
return ErrProcessDone
|
||||||
|
}
|
||||||
|
if sig == Kill {
|
||||||
|
var terminationHandle syscall.Handle
|
||||||
|
e := syscall.DuplicateHandle(^syscall.Handle(0), syscall.Handle(handle), ^syscall.Handle(0), &terminationHandle, syscall.PROCESS_TERMINATE, false, 0)
|
||||||
|
if e != nil {
|
||||||
|
return NewSyscallError("DuplicateHandle", e)
|
||||||
|
}
|
||||||
|
runtime.KeepAlive(p)
|
||||||
|
defer syscall.CloseHandle(terminationHandle)
|
||||||
|
e = syscall.TerminateProcess(syscall.Handle(terminationHandle), 1)
|
||||||
|
return NewSyscallError("TerminateProcess", e)
|
||||||
|
}
|
||||||
|
// TODO(rsc): Handle Interrupt too?
|
||||||
|
return syscall.Errno(syscall.EWINDOWS)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Process) release() error {
|
||||||
|
handle := atomic.SwapUintptr(&p.handle, uintptr(syscall.InvalidHandle))
|
||||||
|
if handle == uintptr(syscall.InvalidHandle) {
|
||||||
|
return syscall.EINVAL
|
||||||
|
}
|
||||||
|
e := syscall.CloseHandle(syscall.Handle(handle))
|
||||||
|
if e != nil {
|
||||||
|
return NewSyscallError("CloseHandle", e)
|
||||||
|
}
|
||||||
|
// no need for a finalizer anymore
|
||||||
|
runtime.SetFinalizer(p, nil)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func findProcess(pid int) (p *Process, err error) {
|
||||||
|
const da = syscall.STANDARD_RIGHTS_READ |
|
||||||
|
syscall.PROCESS_QUERY_INFORMATION | syscall.SYNCHRONIZE
|
||||||
|
h, e := syscall.OpenProcess(da, false, uint32(pid))
|
||||||
|
if e != nil {
|
||||||
|
return nil, NewSyscallError("OpenProcess", e)
|
||||||
|
}
|
||||||
|
return newProcess(pid, uintptr(h)), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
cmd := windows.UTF16PtrToString(syscall.GetCommandLine())
|
||||||
|
if len(cmd) == 0 {
|
||||||
|
arg0, _ := Executable()
|
||||||
|
Args = []string{arg0}
|
||||||
|
} else {
|
||||||
|
Args = commandLineToArgv(cmd)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// appendBSBytes appends n '\\' bytes to b and returns the resulting slice.
|
||||||
|
func appendBSBytes(b []byte, n int) []byte {
|
||||||
|
for ; n > 0; n-- {
|
||||||
|
b = append(b, '\\')
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// readNextArg splits command line string cmd into next
|
||||||
|
// argument and command line remainder.
|
||||||
|
func readNextArg(cmd string) (arg []byte, rest string) {
|
||||||
|
var b []byte
|
||||||
|
var inquote bool
|
||||||
|
var nslash int
|
||||||
|
for ; len(cmd) > 0; cmd = cmd[1:] {
|
||||||
|
c := cmd[0]
|
||||||
|
switch c {
|
||||||
|
case ' ', '\t':
|
||||||
|
if !inquote {
|
||||||
|
return appendBSBytes(b, nslash), cmd[1:]
|
||||||
|
}
|
||||||
|
case '"':
|
||||||
|
b = appendBSBytes(b, nslash/2)
|
||||||
|
if nslash%2 == 0 {
|
||||||
|
// use "Prior to 2008" rule from
|
||||||
|
// http://daviddeley.com/autohotkey/parameters/parameters.htm
|
||||||
|
// section 5.2 to deal with double double quotes
|
||||||
|
if inquote && len(cmd) > 1 && cmd[1] == '"' {
|
||||||
|
b = append(b, c)
|
||||||
|
cmd = cmd[1:]
|
||||||
|
}
|
||||||
|
inquote = !inquote
|
||||||
|
} else {
|
||||||
|
b = append(b, c)
|
||||||
|
}
|
||||||
|
nslash = 0
|
||||||
|
continue
|
||||||
|
case '\\':
|
||||||
|
nslash++
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
b = appendBSBytes(b, nslash)
|
||||||
|
nslash = 0
|
||||||
|
b = append(b, c)
|
||||||
|
}
|
||||||
|
return appendBSBytes(b, nslash), ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// commandLineToArgv splits a command line into individual argument
|
||||||
|
// strings, following the Windows conventions documented
|
||||||
|
// at http://daviddeley.com/autohotkey/parameters/parameters.htm#WINARGV
|
||||||
|
func commandLineToArgv(cmd string) []string {
|
||||||
|
var args []string
|
||||||
|
for len(cmd) > 0 {
|
||||||
|
if cmd[0] == ' ' || cmd[0] == '\t' {
|
||||||
|
cmd = cmd[1:]
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
var arg []byte
|
||||||
|
arg, cmd = readNextArg(cmd)
|
||||||
|
args = append(args, string(arg))
|
||||||
|
}
|
||||||
|
return args
|
||||||
|
}
|
||||||
|
|
||||||
|
func ftToDuration(ft *syscall.Filetime) time.Duration {
|
||||||
|
n := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime) // in 100-nanosecond intervals
|
||||||
|
return time.Duration(n*100) * time.Nanosecond
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) userTime() time.Duration {
|
||||||
|
return ftToDuration(&p.rusage.UserTime)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProcessState) systemTime() time.Duration {
|
||||||
|
return ftToDuration(&p.rusage.KernelTime)
|
||||||
|
}
|
||||||
@@ -217,6 +217,7 @@ func setStickyBit(name string) error {
|
|||||||
}
|
}
|
||||||
return Chmod(name, fi.Mode()|ModeSticky)
|
return Chmod(name, fi.Mode()|ModeSticky)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Open opens the named file for reading. If successful, methods on
|
// Open opens the named file for reading. If successful, methods on
|
||||||
// the returned file can be used for reading; the associated file
|
// the returned file can be used for reading; the associated file
|
||||||
@@ -242,7 +243,6 @@ func Create(name string) (*File, error) {
|
|||||||
// methods on the returned File can be used for I/O.
|
// methods on the returned File can be used for I/O.
|
||||||
// If there is an error, it will be of type *PathError.
|
// If there is an error, it will be of type *PathError.
|
||||||
func OpenFile(name string, flag int, perm FileMode) (*File, error) {
|
func OpenFile(name string, flag int, perm FileMode) (*File, error) {
|
||||||
testlog.Open(name)
|
|
||||||
f, err := openFileNolog(name, flag, perm)
|
f, err := openFileNolog(name, flag, perm)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -252,6 +252,7 @@ func OpenFile(name string, flag int, perm FileMode) (*File, error) {
|
|||||||
return f, nil
|
return f, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
// lstat is overridden in tests.
|
// lstat is overridden in tests.
|
||||||
var lstat = Lstat
|
var lstat = Lstat
|
||||||
|
|
||||||
|
|||||||
201
internal/lib/os/file_unix.go
Normal file
201
internal/lib/os/file_unix.go
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//go:build unix || (js && wasm) || wasip1
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Fd returns the integer Unix file descriptor referencing the open file.
|
||||||
|
// If f is closed, the file descriptor becomes invalid.
|
||||||
|
// If f is garbage collected, a finalizer may close the file descriptor,
|
||||||
|
// making it invalid; see runtime.SetFinalizer for more information on when
|
||||||
|
// a finalizer might be run. On Unix systems this will cause the SetDeadline
|
||||||
|
// methods to stop working.
|
||||||
|
// Because file descriptors can be reused, the returned file descriptor may
|
||||||
|
// only be closed through the Close method of f, or by its finalizer during
|
||||||
|
// garbage collection. Otherwise, during garbage collection the finalizer
|
||||||
|
// may close an unrelated file descriptor with the same (reused) number.
|
||||||
|
//
|
||||||
|
// As an alternative, see the f.SyscallConn method.
|
||||||
|
func (f *File) Fd() uintptr {
|
||||||
|
if f == nil {
|
||||||
|
return ^(uintptr(0))
|
||||||
|
}
|
||||||
|
|
||||||
|
return f.fd
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewFile returns a new File with the given file descriptor and
|
||||||
|
// name. The returned value will be nil if fd is not a valid file
|
||||||
|
// descriptor. On Unix systems, if the file descriptor is in
|
||||||
|
// non-blocking mode, NewFile will attempt to return a pollable File
|
||||||
|
// (one for which the SetDeadline methods work).
|
||||||
|
//
|
||||||
|
// After passing it to NewFile, fd may become invalid under the same
|
||||||
|
// conditions described in the comments of the Fd method, and the same
|
||||||
|
// constraints apply.
|
||||||
|
func NewFile(fd uintptr, name string) *File {
|
||||||
|
return &File{fd: fd, name: name}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO(xsw):
|
||||||
|
// NewFile returns a new File with the given file descriptor and
|
||||||
|
// name. The returned value will be nil if fd is not a valid file
|
||||||
|
// descriptor. On Unix systems, if the file descriptor is in
|
||||||
|
// non-blocking mode, NewFile will attempt to return a pollable File
|
||||||
|
// (one for which the SetDeadline methods work).
|
||||||
|
//
|
||||||
|
// After passing it to NewFile, fd may become invalid under the same
|
||||||
|
// conditions described in the comments of the Fd method, and the same
|
||||||
|
// constraints apply.
|
||||||
|
func NewFile(fd uintptr, name string) *File {
|
||||||
|
fdi := int(fd)
|
||||||
|
if fdi < 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
kind := kindNewFile
|
||||||
|
appendMode := false
|
||||||
|
if flags, err := unix.Fcntl(fdi, syscall.F_GETFL, 0); err == nil {
|
||||||
|
if unix.HasNonblockFlag(flags) {
|
||||||
|
kind = kindNonBlock
|
||||||
|
}
|
||||||
|
appendMode = flags&syscall.O_APPEND != 0
|
||||||
|
}
|
||||||
|
f := newFile(fdi, name, kind)
|
||||||
|
f.appendMode = appendMode
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
|
||||||
|
// net_newUnixFile is a hidden entry point called by net.conn.File.
|
||||||
|
// This is used so that a nonblocking network connection will become
|
||||||
|
// blocking if code calls the Fd method. We don't want that for direct
|
||||||
|
// calls to NewFile: passing a nonblocking descriptor to NewFile should
|
||||||
|
// remain nonblocking if you get it back using Fd. But for net.conn.File
|
||||||
|
// the call to NewFile is hidden from the user. Historically in that case
|
||||||
|
// the Fd method has returned a blocking descriptor, and we want to
|
||||||
|
// retain that behavior because existing code expects it and depends on it.
|
||||||
|
//
|
||||||
|
//-go:linkname net_newUnixFile net.newUnixFile
|
||||||
|
func net_newUnixFile(fd int, name string) *File {
|
||||||
|
if fd < 0 {
|
||||||
|
panic("invalid FD")
|
||||||
|
}
|
||||||
|
|
||||||
|
f := newFile(fd, name, kindNonBlock)
|
||||||
|
f.nonblock = true // tell Fd to return blocking descriptor
|
||||||
|
return f
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// newFileKind describes the kind of file to newFile.
|
||||||
|
type newFileKind int
|
||||||
|
|
||||||
|
const (
|
||||||
|
// kindNewFile means that the descriptor was passed to us via NewFile.
|
||||||
|
kindNewFile newFileKind = iota
|
||||||
|
// kindOpenFile means that the descriptor was opened using
|
||||||
|
// Open, Create, or OpenFile (without O_NONBLOCK).
|
||||||
|
kindOpenFile
|
||||||
|
// kindPipe means that the descriptor was opened using Pipe.
|
||||||
|
kindPipe
|
||||||
|
// kindNonBlock means that the descriptor is already in
|
||||||
|
// non-blocking mode.
|
||||||
|
kindNonBlock
|
||||||
|
// kindNoPoll means that we should not put the descriptor into
|
||||||
|
// non-blocking mode, because we know it is not a pipe or FIFO.
|
||||||
|
// Used by openFdAt for directories.
|
||||||
|
kindNoPoll
|
||||||
|
)
|
||||||
|
|
||||||
|
// TODO(xsw):
|
||||||
|
// func sigpipe() // implemented in package runtime
|
||||||
|
|
||||||
|
// epipecheck raises SIGPIPE if we get an EPIPE error on standard
|
||||||
|
// output or standard error. See the SIGPIPE docs in os/signal, and
|
||||||
|
// issue 11845.
|
||||||
|
func epipecheck(file *File, e error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if e == syscall.EPIPE && file.stdoutOrErr {
|
||||||
|
sigpipe()
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
panic("todo: os.epipecheck")
|
||||||
|
}
|
||||||
|
|
||||||
|
// DevNull is the name of the operating system's “null device.”
|
||||||
|
// On Unix-like systems, it is "/dev/null"; on Windows, "NUL".
|
||||||
|
const DevNull = "/dev/null"
|
||||||
|
|
||||||
|
// openFileNolog is the Unix implementation of OpenFile.
|
||||||
|
// Changes here should be reflected in openFdAt, if relevant.
|
||||||
|
func openFileNolog(name string, flag int, perm FileMode) (*File, error) {
|
||||||
|
panic("todo: os.openFileNolog")
|
||||||
|
}
|
||||||
|
|
||||||
|
func tempDir() string {
|
||||||
|
dir := Getenv("TMPDIR")
|
||||||
|
if dir == "" {
|
||||||
|
if runtime.GOOS == "android" {
|
||||||
|
dir = "/data/local/tmp"
|
||||||
|
} else {
|
||||||
|
dir = "/tmp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dir
|
||||||
|
}
|
||||||
|
|
||||||
|
type unixDirent struct {
|
||||||
|
parent string
|
||||||
|
name string
|
||||||
|
typ FileMode
|
||||||
|
info FileInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *unixDirent) Name() string { return d.name }
|
||||||
|
func (d *unixDirent) IsDir() bool { return d.typ.IsDir() }
|
||||||
|
func (d *unixDirent) Type() FileMode { return d.typ }
|
||||||
|
|
||||||
|
func (d *unixDirent) Info() (FileInfo, error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if d.info != nil {
|
||||||
|
return d.info, nil
|
||||||
|
}
|
||||||
|
return lstat(d.parent + "/" + d.name)
|
||||||
|
*/
|
||||||
|
panic("todo: os.unixDirent.Info")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *unixDirent) String() string {
|
||||||
|
/* TODO(xsw):
|
||||||
|
return fs.FormatDirEntry(d)
|
||||||
|
*/
|
||||||
|
panic("todo: os.unixDirent.String")
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO(xsw):
|
||||||
|
func newUnixDirent(parent, name string, typ FileMode) (DirEntry, error) {
|
||||||
|
ude := &unixDirent{
|
||||||
|
parent: parent,
|
||||||
|
name: name,
|
||||||
|
typ: typ,
|
||||||
|
}
|
||||||
|
if typ != ^FileMode(0) && !testingForceReadDirLstat {
|
||||||
|
return ude, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
info, err := lstat(parent + "/" + name)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
ude.typ = info.Mode().Type()
|
||||||
|
ude.info = info
|
||||||
|
return ude, nil
|
||||||
|
}
|
||||||
|
*/
|
||||||
@@ -147,7 +147,11 @@ func Clearenv()
|
|||||||
|
|
||||||
// TODO(xsw):
|
// TODO(xsw):
|
||||||
// func DirFS(dir string) fs.FS
|
// func DirFS(dir string) fs.FS
|
||||||
// func Environ() []string
|
|
||||||
|
func Environ() []string {
|
||||||
|
panic("todo: os.Environ")
|
||||||
|
}
|
||||||
|
|
||||||
// func Executable() (string, error)
|
// func Executable() (string, error)
|
||||||
|
|
||||||
func Exit(code int) {
|
func Exit(code int) {
|
||||||
@@ -202,7 +206,6 @@ func Getwd() (dir string, err error) {
|
|||||||
// func Hostname() (name string, err error)
|
// func Hostname() (name string, err error)
|
||||||
// func IsExist(err error) bool
|
// func IsExist(err error) bool
|
||||||
// func IsNotExist(err error) bool
|
// func IsNotExist(err error) bool
|
||||||
// func IsPathSeparator(c uint8) bool
|
|
||||||
// func IsPermission(err error) bool
|
// func IsPermission(err error) bool
|
||||||
// func IsTimeout(err error) bool
|
// func IsTimeout(err error) bool
|
||||||
|
|
||||||
@@ -283,7 +286,10 @@ func Mkdir(name string, perm FileMode) error {
|
|||||||
// func MkdirAll(path string, perm FileMode) error
|
// func MkdirAll(path string, perm FileMode) error
|
||||||
// func MkdirTemp(dir, pattern string) (string, error)
|
// func MkdirTemp(dir, pattern string) (string, error)
|
||||||
// func NewSyscallError(syscall string, err error) error
|
// func NewSyscallError(syscall string, err error) error
|
||||||
// func Pipe() (r *File, w *File, err error)
|
func Pipe() (r *File, w *File, err error) {
|
||||||
|
panic("todo: os.Pipe")
|
||||||
|
}
|
||||||
|
|
||||||
// func ReadFile(name string) ([]byte, error)
|
// func ReadFile(name string) ([]byte, error)
|
||||||
|
|
||||||
func Readlink(name string) (string, error) {
|
func Readlink(name string) (string, error) {
|
||||||
|
|||||||
19
internal/lib/os/path_plan9.go
Normal file
19
internal/lib/os/path_plan9.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
const (
|
||||||
|
PathSeparator = '/' // OS-specific path separator
|
||||||
|
PathListSeparator = '\000' // OS-specific path list separator
|
||||||
|
)
|
||||||
|
|
||||||
|
// IsPathSeparator reports whether c is a directory separator character.
|
||||||
|
func IsPathSeparator(c uint8) bool {
|
||||||
|
return PathSeparator == c
|
||||||
|
}
|
||||||
|
|
||||||
|
func fixRootDirectory(p string) string {
|
||||||
|
return p
|
||||||
|
}
|
||||||
75
internal/lib/os/path_unix.go
Normal file
75
internal/lib/os/path_unix.go
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
//go:build unix || (js && wasm) || wasip1
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
const (
|
||||||
|
PathSeparator = '/' // OS-specific path separator
|
||||||
|
PathListSeparator = ':' // OS-specific path list separator
|
||||||
|
)
|
||||||
|
|
||||||
|
// IsPathSeparator reports whether c is a directory separator character.
|
||||||
|
func IsPathSeparator(c uint8) bool {
|
||||||
|
return PathSeparator == c
|
||||||
|
}
|
||||||
|
|
||||||
|
// basename removes trailing slashes and the leading directory name from path name.
|
||||||
|
func basename(name string) string {
|
||||||
|
i := len(name) - 1
|
||||||
|
// Remove trailing slashes
|
||||||
|
for ; i > 0 && name[i] == '/'; i-- {
|
||||||
|
name = name[:i]
|
||||||
|
}
|
||||||
|
// Remove leading directory name
|
||||||
|
for i--; i >= 0; i-- {
|
||||||
|
if name[i] == '/' {
|
||||||
|
name = name[i+1:]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
|
||||||
|
// splitPath returns the base name and parent directory.
|
||||||
|
func splitPath(path string) (string, string) {
|
||||||
|
// if no better parent is found, the path is relative from "here"
|
||||||
|
dirname := "."
|
||||||
|
|
||||||
|
// Remove all but one leading slash.
|
||||||
|
for len(path) > 1 && path[0] == '/' && path[1] == '/' {
|
||||||
|
path = path[1:]
|
||||||
|
}
|
||||||
|
|
||||||
|
i := len(path) - 1
|
||||||
|
|
||||||
|
// Remove trailing slashes.
|
||||||
|
for ; i > 0 && path[i] == '/'; i-- {
|
||||||
|
path = path[:i]
|
||||||
|
}
|
||||||
|
|
||||||
|
// if no slashes in path, base is path
|
||||||
|
basename := path
|
||||||
|
|
||||||
|
// Remove leading directory path
|
||||||
|
for i--; i >= 0; i-- {
|
||||||
|
if path[i] == '/' {
|
||||||
|
if i == 0 {
|
||||||
|
dirname = path[:1]
|
||||||
|
} else {
|
||||||
|
dirname = path[:i]
|
||||||
|
}
|
||||||
|
basename = path[i+1:]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return dirname, basename
|
||||||
|
}
|
||||||
|
|
||||||
|
func fixRootDirectory(p string) string {
|
||||||
|
return p
|
||||||
|
}
|
||||||
227
internal/lib/os/path_windows.go
Normal file
227
internal/lib/os/path_windows.go
Normal file
@@ -0,0 +1,227 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
const (
|
||||||
|
PathSeparator = '\\' // OS-specific path separator
|
||||||
|
PathListSeparator = ';' // OS-specific path list separator
|
||||||
|
)
|
||||||
|
|
||||||
|
// IsPathSeparator reports whether c is a directory separator character.
|
||||||
|
func IsPathSeparator(c uint8) bool {
|
||||||
|
// NOTE: Windows accepts / as path separator.
|
||||||
|
return c == '\\' || c == '/'
|
||||||
|
}
|
||||||
|
|
||||||
|
// basename removes trailing slashes and the leading
|
||||||
|
// directory name and drive letter from path name.
|
||||||
|
func basename(name string) string {
|
||||||
|
// Remove drive letter
|
||||||
|
if len(name) == 2 && name[1] == ':' {
|
||||||
|
name = "."
|
||||||
|
} else if len(name) > 2 && name[1] == ':' {
|
||||||
|
name = name[2:]
|
||||||
|
}
|
||||||
|
i := len(name) - 1
|
||||||
|
// Remove trailing slashes
|
||||||
|
for ; i > 0 && (name[i] == '/' || name[i] == '\\'); i-- {
|
||||||
|
name = name[:i]
|
||||||
|
}
|
||||||
|
// Remove leading directory name
|
||||||
|
for i--; i >= 0; i-- {
|
||||||
|
if name[i] == '/' || name[i] == '\\' {
|
||||||
|
name = name[i+1:]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return name
|
||||||
|
}
|
||||||
|
|
||||||
|
func isAbs(path string) (b bool) {
|
||||||
|
v := volumeName(path)
|
||||||
|
if v == "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
path = path[len(v):]
|
||||||
|
if path == "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return IsPathSeparator(path[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
func volumeName(path string) (v string) {
|
||||||
|
if len(path) < 2 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
// with drive letter
|
||||||
|
c := path[0]
|
||||||
|
if path[1] == ':' &&
|
||||||
|
('0' <= c && c <= '9' || 'a' <= c && c <= 'z' ||
|
||||||
|
'A' <= c && c <= 'Z') {
|
||||||
|
return path[:2]
|
||||||
|
}
|
||||||
|
// is it UNC
|
||||||
|
if l := len(path); l >= 5 && IsPathSeparator(path[0]) && IsPathSeparator(path[1]) &&
|
||||||
|
!IsPathSeparator(path[2]) && path[2] != '.' {
|
||||||
|
// first, leading `\\` and next shouldn't be `\`. its server name.
|
||||||
|
for n := 3; n < l-1; n++ {
|
||||||
|
// second, next '\' shouldn't be repeated.
|
||||||
|
if IsPathSeparator(path[n]) {
|
||||||
|
n++
|
||||||
|
// third, following something characters. its share name.
|
||||||
|
if !IsPathSeparator(path[n]) {
|
||||||
|
if path[n] == '.' {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
for ; n < l; n++ {
|
||||||
|
if IsPathSeparator(path[n]) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return path[:n]
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func fromSlash(path string) string {
|
||||||
|
// Replace each '/' with '\\' if present
|
||||||
|
var pathbuf []byte
|
||||||
|
var lastSlash int
|
||||||
|
for i, b := range path {
|
||||||
|
if b == '/' {
|
||||||
|
if pathbuf == nil {
|
||||||
|
pathbuf = make([]byte, len(path))
|
||||||
|
}
|
||||||
|
copy(pathbuf[lastSlash:], path[lastSlash:i])
|
||||||
|
pathbuf[i] = '\\'
|
||||||
|
lastSlash = i + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if pathbuf == nil {
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
|
||||||
|
copy(pathbuf[lastSlash:], path[lastSlash:])
|
||||||
|
return string(pathbuf)
|
||||||
|
}
|
||||||
|
|
||||||
|
func dirname(path string) string {
|
||||||
|
vol := volumeName(path)
|
||||||
|
i := len(path) - 1
|
||||||
|
for i >= len(vol) && !IsPathSeparator(path[i]) {
|
||||||
|
i--
|
||||||
|
}
|
||||||
|
dir := path[len(vol) : i+1]
|
||||||
|
last := len(dir) - 1
|
||||||
|
if last > 0 && IsPathSeparator(dir[last]) {
|
||||||
|
dir = dir[:last]
|
||||||
|
}
|
||||||
|
if dir == "" {
|
||||||
|
dir = "."
|
||||||
|
}
|
||||||
|
return vol + dir
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is set via go:linkname on runtime.canUseLongPaths, and is true when the OS
|
||||||
|
// supports opting into proper long path handling without the need for fixups.
|
||||||
|
var canUseLongPaths bool
|
||||||
|
|
||||||
|
// fixLongPath returns the extended-length (\\?\-prefixed) form of
|
||||||
|
// path when needed, in order to avoid the default 260 character file
|
||||||
|
// path limit imposed by Windows. If path is not easily converted to
|
||||||
|
// the extended-length form (for example, if path is a relative path
|
||||||
|
// or contains .. elements), or is short enough, fixLongPath returns
|
||||||
|
// path unmodified.
|
||||||
|
//
|
||||||
|
// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath
|
||||||
|
func fixLongPath(path string) string {
|
||||||
|
if canUseLongPaths {
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
// Do nothing (and don't allocate) if the path is "short".
|
||||||
|
// Empirically (at least on the Windows Server 2013 builder),
|
||||||
|
// the kernel is arbitrarily okay with < 248 bytes. That
|
||||||
|
// matches what the docs above say:
|
||||||
|
// "When using an API to create a directory, the specified
|
||||||
|
// path cannot be so long that you cannot append an 8.3 file
|
||||||
|
// name (that is, the directory name cannot exceed MAX_PATH
|
||||||
|
// minus 12)." Since MAX_PATH is 260, 260 - 12 = 248.
|
||||||
|
//
|
||||||
|
// The MSDN docs appear to say that a normal path that is 248 bytes long
|
||||||
|
// will work; empirically the path must be less then 248 bytes long.
|
||||||
|
if len(path) < 248 {
|
||||||
|
// Don't fix. (This is how Go 1.7 and earlier worked,
|
||||||
|
// not automatically generating the \\?\ form)
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
|
||||||
|
// The extended form begins with \\?\, as in
|
||||||
|
// \\?\c:\windows\foo.txt or \\?\UNC\server\share\foo.txt.
|
||||||
|
// The extended form disables evaluation of . and .. path
|
||||||
|
// elements and disables the interpretation of / as equivalent
|
||||||
|
// to \. The conversion here rewrites / to \ and elides
|
||||||
|
// . elements as well as trailing or duplicate separators. For
|
||||||
|
// simplicity it avoids the conversion entirely for relative
|
||||||
|
// paths or paths containing .. elements. For now,
|
||||||
|
// \\server\share paths are not converted to
|
||||||
|
// \\?\UNC\server\share paths because the rules for doing so
|
||||||
|
// are less well-specified.
|
||||||
|
if len(path) >= 2 && path[:2] == `\\` {
|
||||||
|
// Don't canonicalize UNC paths.
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
if !isAbs(path) {
|
||||||
|
// Relative path
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
|
||||||
|
const prefix = `\\?`
|
||||||
|
|
||||||
|
pathbuf := make([]byte, len(prefix)+len(path)+len(`\`))
|
||||||
|
copy(pathbuf, prefix)
|
||||||
|
n := len(path)
|
||||||
|
r, w := 0, len(prefix)
|
||||||
|
for r < n {
|
||||||
|
switch {
|
||||||
|
case IsPathSeparator(path[r]):
|
||||||
|
// empty block
|
||||||
|
r++
|
||||||
|
case path[r] == '.' && (r+1 == n || IsPathSeparator(path[r+1])):
|
||||||
|
// /./
|
||||||
|
r++
|
||||||
|
case r+1 < n && path[r] == '.' && path[r+1] == '.' && (r+2 == n || IsPathSeparator(path[r+2])):
|
||||||
|
// /../ is currently unhandled
|
||||||
|
return path
|
||||||
|
default:
|
||||||
|
pathbuf[w] = '\\'
|
||||||
|
w++
|
||||||
|
for ; r < n && !IsPathSeparator(path[r]); r++ {
|
||||||
|
pathbuf[w] = path[r]
|
||||||
|
w++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// A drive's root directory needs a trailing \
|
||||||
|
if w == len(`\\?\c:`) {
|
||||||
|
pathbuf[w] = '\\'
|
||||||
|
w++
|
||||||
|
}
|
||||||
|
return string(pathbuf[:w])
|
||||||
|
}
|
||||||
|
|
||||||
|
// fixRootDirectory fixes a reference to a drive's root directory to
|
||||||
|
// have the required trailing slash.
|
||||||
|
func fixRootDirectory(p string) string {
|
||||||
|
if len(p) == len(`\\?\c:`) {
|
||||||
|
if IsPathSeparator(p[0]) && IsPathSeparator(p[1]) && p[2] == '?' && IsPathSeparator(p[3]) && p[5] == ':' {
|
||||||
|
return p + `\`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return p
|
||||||
|
}
|
||||||
19
internal/lib/os/stat.go
Normal file
19
internal/lib/os/stat.go
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// Copyright 2017 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 os
|
||||||
|
|
||||||
|
// Stat returns a FileInfo describing the named file.
|
||||||
|
// If there is an error, it will be of type *PathError.
|
||||||
|
func Stat(name string) (FileInfo, error) {
|
||||||
|
return statNolog(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lstat returns a FileInfo describing the named file.
|
||||||
|
// If the file is a symbolic link, the returned FileInfo
|
||||||
|
// describes the symbolic link. Lstat makes no attempt to follow the link.
|
||||||
|
// If there is an error, it will be of type *PathError.
|
||||||
|
func Lstat(name string) (FileInfo, error) {
|
||||||
|
return lstatNolog(name)
|
||||||
|
}
|
||||||
42
internal/lib/os/stat_darwin.go
Normal file
42
internal/lib/os/stat_darwin.go
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func fillFileStatFromSys(fs *fileStat, name string) {
|
||||||
|
fs.name = basename(name)
|
||||||
|
fs.size = fs.sys.Size
|
||||||
|
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
|
||||||
|
fs.mode = FileMode(fs.sys.Mode & 0777)
|
||||||
|
switch fs.sys.Mode & syscall.S_IFMT {
|
||||||
|
case syscall.S_IFBLK, syscall.S_IFWHT:
|
||||||
|
fs.mode |= ModeDevice
|
||||||
|
case syscall.S_IFCHR:
|
||||||
|
fs.mode |= ModeDevice | ModeCharDevice
|
||||||
|
case syscall.S_IFDIR:
|
||||||
|
fs.mode |= ModeDir
|
||||||
|
case syscall.S_IFIFO:
|
||||||
|
fs.mode |= ModeNamedPipe
|
||||||
|
case syscall.S_IFLNK:
|
||||||
|
fs.mode |= ModeSymlink
|
||||||
|
case syscall.S_IFREG:
|
||||||
|
// nothing to do
|
||||||
|
case syscall.S_IFSOCK:
|
||||||
|
fs.mode |= ModeSocket
|
||||||
|
}
|
||||||
|
if fs.sys.Mode&syscall.S_ISGID != 0 {
|
||||||
|
fs.mode |= ModeSetgid
|
||||||
|
}
|
||||||
|
if fs.sys.Mode&syscall.S_ISUID != 0 {
|
||||||
|
fs.mode |= ModeSetuid
|
||||||
|
}
|
||||||
|
if fs.sys.Mode&syscall.S_ISVTX != 0 {
|
||||||
|
fs.mode |= ModeSticky
|
||||||
|
}
|
||||||
|
}
|
||||||
42
internal/lib/os/stat_linux.go
Normal file
42
internal/lib/os/stat_linux.go
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func fillFileStatFromSys(fs *fileStat, name string) {
|
||||||
|
fs.name = basename(name)
|
||||||
|
fs.size = fs.sys.Size
|
||||||
|
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
|
||||||
|
fs.mode = FileMode(fs.sys.Mode & 0777)
|
||||||
|
switch fs.sys.Mode & syscall.S_IFMT {
|
||||||
|
case syscall.S_IFBLK:
|
||||||
|
fs.mode |= ModeDevice
|
||||||
|
case syscall.S_IFCHR:
|
||||||
|
fs.mode |= ModeDevice | ModeCharDevice
|
||||||
|
case syscall.S_IFDIR:
|
||||||
|
fs.mode |= ModeDir
|
||||||
|
case syscall.S_IFIFO:
|
||||||
|
fs.mode |= ModeNamedPipe
|
||||||
|
case syscall.S_IFLNK:
|
||||||
|
fs.mode |= ModeSymlink
|
||||||
|
case syscall.S_IFREG:
|
||||||
|
// nothing to do
|
||||||
|
case syscall.S_IFSOCK:
|
||||||
|
fs.mode |= ModeSocket
|
||||||
|
}
|
||||||
|
if fs.sys.Mode&syscall.S_ISGID != 0 {
|
||||||
|
fs.mode |= ModeSetgid
|
||||||
|
}
|
||||||
|
if fs.sys.Mode&syscall.S_ISUID != 0 {
|
||||||
|
fs.mode |= ModeSetuid
|
||||||
|
}
|
||||||
|
if fs.sys.Mode&syscall.S_ISVTX != 0 {
|
||||||
|
fs.mode |= ModeSticky
|
||||||
|
}
|
||||||
|
}
|
||||||
53
internal/lib/os/stat_unix.go
Normal file
53
internal/lib/os/stat_unix.go
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
// Copyright 2016 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.
|
||||||
|
|
||||||
|
//go:build unix || (js && wasm) || wasip1
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
import "syscall"
|
||||||
|
|
||||||
|
// Stat returns the FileInfo structure describing file.
|
||||||
|
// If there is an error, it will be of type *PathError.
|
||||||
|
func (f *File) Stat() (FileInfo, error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if f == nil {
|
||||||
|
return nil, ErrInvalid
|
||||||
|
}
|
||||||
|
var fs fileStat
|
||||||
|
err := os.Fstat(c.Int(f.fd), &fs.sys)
|
||||||
|
if err != 0 {
|
||||||
|
return nil, &PathError{Op: "stat", Path: f.name, Err: syscall.Errno(err)}
|
||||||
|
}
|
||||||
|
fillFileStatFromSys(&fs, f.name)
|
||||||
|
return &fs, nil
|
||||||
|
*/
|
||||||
|
panic("todo: os.File.Stat")
|
||||||
|
}
|
||||||
|
|
||||||
|
// statNolog stats a file with no test logging.
|
||||||
|
func statNolog(name string) (FileInfo, error) {
|
||||||
|
var fs fileStat
|
||||||
|
err := ignoringEINTR(func() error {
|
||||||
|
return syscall.Stat(name, &fs.sys)
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, &PathError{Op: "stat", Path: name, Err: err}
|
||||||
|
}
|
||||||
|
fillFileStatFromSys(&fs, name)
|
||||||
|
return &fs, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// lstatNolog lstats a file with no test logging.
|
||||||
|
func lstatNolog(name string) (FileInfo, error) {
|
||||||
|
var fs fileStat
|
||||||
|
err := ignoringEINTR(func() error {
|
||||||
|
return syscall.Lstat(name, &fs.sys)
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, &PathError{Op: "lstat", Path: name, Err: err}
|
||||||
|
}
|
||||||
|
fillFileStatFromSys(&fs, name)
|
||||||
|
return &fs, nil
|
||||||
|
}
|
||||||
@@ -22,19 +22,7 @@ type File struct {
|
|||||||
fd uintptr
|
fd uintptr
|
||||||
name string
|
name string
|
||||||
appendMode bool
|
appendMode bool
|
||||||
}
|
nonblock bool
|
||||||
|
|
||||||
// NewFile returns a new File with the given file descriptor and
|
|
||||||
// name. The returned value will be nil if fd is not a valid file
|
|
||||||
// descriptor. On Unix systems, if the file descriptor is in
|
|
||||||
// non-blocking mode, NewFile will attempt to return a pollable File
|
|
||||||
// (one for which the SetDeadline methods work).
|
|
||||||
//
|
|
||||||
// After passing it to NewFile, fd may become invalid under the same
|
|
||||||
// conditions described in the comments of the Fd method, and the same
|
|
||||||
// constraints apply.
|
|
||||||
func NewFile(fd uintptr, name string) *File {
|
|
||||||
return &File{fd: fd, name: name}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// write writes len(b) bytes to the File.
|
// write writes len(b) bytes to the File.
|
||||||
@@ -118,10 +106,8 @@ const (
|
|||||||
ModePerm = fs.ModePerm // Unix permission bits, 0o777
|
ModePerm = fs.ModePerm // Unix permission bits, 0o777
|
||||||
)
|
)
|
||||||
|
|
||||||
/* TODO(xsw):
|
|
||||||
func (fs *fileStat) Name() string { return fs.name }
|
func (fs *fileStat) Name() string { return fs.name }
|
||||||
func (fs *fileStat) IsDir() bool { return fs.Mode().IsDir() }
|
func (fs *fileStat) IsDir() bool { return fs.Mode().IsDir() }
|
||||||
*/
|
|
||||||
|
|
||||||
// SameFile reports whether fi1 and fi2 describe the same file.
|
// SameFile reports whether fi1 and fi2 describe the same file.
|
||||||
// For example, on Unix this means that the device and inode fields
|
// For example, on Unix this means that the device and inode fields
|
||||||
@@ -130,13 +116,10 @@ func (fs *fileStat) IsDir() bool { return fs.Mode().IsDir() }
|
|||||||
// SameFile only applies to results returned by this package's Stat.
|
// SameFile only applies to results returned by this package's Stat.
|
||||||
// It returns false in other cases.
|
// It returns false in other cases.
|
||||||
func SameFile(fi1, fi2 FileInfo) bool {
|
func SameFile(fi1, fi2 FileInfo) bool {
|
||||||
/*
|
|
||||||
fs1, ok1 := fi1.(*fileStat)
|
fs1, ok1 := fi1.(*fileStat)
|
||||||
fs2, ok2 := fi2.(*fileStat)
|
fs2, ok2 := fi2.(*fileStat)
|
||||||
if !ok1 || !ok2 {
|
if !ok1 || !ok2 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return sameFile(fs1, fs2)
|
return sameFile(fs1, fs2)
|
||||||
*/
|
|
||||||
panic("todo")
|
|
||||||
}
|
}
|
||||||
|
|||||||
30
internal/lib/os/types_plan9.go
Normal file
30
internal/lib/os/types_plan9.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
|
||||||
|
type fileStat struct {
|
||||||
|
name string
|
||||||
|
size int64
|
||||||
|
mode FileMode
|
||||||
|
modTime time.Time
|
||||||
|
sys any
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) Size() int64 { return fs.size }
|
||||||
|
func (fs *fileStat) Mode() FileMode { return fs.mode }
|
||||||
|
func (fs *fileStat) ModTime() time.Time { return fs.modTime }
|
||||||
|
func (fs *fileStat) Sys() any { return fs.sys }
|
||||||
|
|
||||||
|
func sameFile(fs1, fs2 *fileStat) bool {
|
||||||
|
a := fs1.sys.(*syscall.Dir)
|
||||||
|
b := fs2.sys.(*syscall.Dir)
|
||||||
|
return a.Qid.Path == b.Qid.Path && a.Type == b.Type && a.Dev == b.Dev
|
||||||
|
}
|
||||||
30
internal/lib/os/types_unix.go
Normal file
30
internal/lib/os/types_unix.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//go:build !windows && !plan9
|
||||||
|
|
||||||
|
package os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
|
||||||
|
type fileStat struct {
|
||||||
|
name string
|
||||||
|
size int64
|
||||||
|
mode FileMode
|
||||||
|
modTime time.Time
|
||||||
|
sys syscall.Stat_t
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) Size() int64 { return fs.size }
|
||||||
|
func (fs *fileStat) Mode() FileMode { return fs.mode }
|
||||||
|
func (fs *fileStat) ModTime() time.Time { return fs.modTime }
|
||||||
|
func (fs *fileStat) Sys() any { return &fs.sys }
|
||||||
|
|
||||||
|
func sameFile(fs1, fs2 *fileStat) bool {
|
||||||
|
return fs1.sys.Dev == fs2.sys.Dev && fs1.sys.Ino == fs2.sys.Ino
|
||||||
|
}
|
||||||
241
internal/lib/os/types_windows.go
Normal file
241
internal/lib/os/types_windows.go
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
// Copyright 2009 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 os
|
||||||
|
|
||||||
|
import (
|
||||||
|
"internal/syscall/windows"
|
||||||
|
"sync"
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A fileStat is the implementation of FileInfo returned by Stat and Lstat.
|
||||||
|
type fileStat struct {
|
||||||
|
name string
|
||||||
|
|
||||||
|
// from ByHandleFileInformation, Win32FileAttributeData and Win32finddata
|
||||||
|
FileAttributes uint32
|
||||||
|
CreationTime syscall.Filetime
|
||||||
|
LastAccessTime syscall.Filetime
|
||||||
|
LastWriteTime syscall.Filetime
|
||||||
|
FileSizeHigh uint32
|
||||||
|
FileSizeLow uint32
|
||||||
|
|
||||||
|
// from Win32finddata
|
||||||
|
ReparseTag uint32
|
||||||
|
|
||||||
|
// what syscall.GetFileType returns
|
||||||
|
filetype uint32
|
||||||
|
|
||||||
|
// used to implement SameFile
|
||||||
|
sync.Mutex
|
||||||
|
path string
|
||||||
|
vol uint32
|
||||||
|
idxhi uint32
|
||||||
|
idxlo uint32
|
||||||
|
appendNameToPath bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// newFileStatFromGetFileInformationByHandle calls GetFileInformationByHandle
|
||||||
|
// to gather all required information about the file handle h.
|
||||||
|
func newFileStatFromGetFileInformationByHandle(path string, h syscall.Handle) (fs *fileStat, err error) {
|
||||||
|
var d syscall.ByHandleFileInformation
|
||||||
|
err = syscall.GetFileInformationByHandle(h, &d)
|
||||||
|
if err != nil {
|
||||||
|
return nil, &PathError{Op: "GetFileInformationByHandle", Path: path, Err: err}
|
||||||
|
}
|
||||||
|
|
||||||
|
var ti windows.FILE_ATTRIBUTE_TAG_INFO
|
||||||
|
err = windows.GetFileInformationByHandleEx(h, windows.FileAttributeTagInfo, (*byte)(unsafe.Pointer(&ti)), uint32(unsafe.Sizeof(ti)))
|
||||||
|
if err != nil {
|
||||||
|
if errno, ok := err.(syscall.Errno); ok && errno == windows.ERROR_INVALID_PARAMETER {
|
||||||
|
// It appears calling GetFileInformationByHandleEx with
|
||||||
|
// FILE_ATTRIBUTE_TAG_INFO fails on FAT file system with
|
||||||
|
// ERROR_INVALID_PARAMETER. Clear ti.ReparseTag in that
|
||||||
|
// instance to indicate no symlinks are possible.
|
||||||
|
ti.ReparseTag = 0
|
||||||
|
} else {
|
||||||
|
return nil, &PathError{Op: "GetFileInformationByHandleEx", Path: path, Err: err}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return &fileStat{
|
||||||
|
name: basename(path),
|
||||||
|
FileAttributes: d.FileAttributes,
|
||||||
|
CreationTime: d.CreationTime,
|
||||||
|
LastAccessTime: d.LastAccessTime,
|
||||||
|
LastWriteTime: d.LastWriteTime,
|
||||||
|
FileSizeHigh: d.FileSizeHigh,
|
||||||
|
FileSizeLow: d.FileSizeLow,
|
||||||
|
vol: d.VolumeSerialNumber,
|
||||||
|
idxhi: d.FileIndexHigh,
|
||||||
|
idxlo: d.FileIndexLow,
|
||||||
|
ReparseTag: ti.ReparseTag,
|
||||||
|
// fileStat.path is used by os.SameFile to decide if it needs
|
||||||
|
// to fetch vol, idxhi and idxlo. But these are already set,
|
||||||
|
// so set fileStat.path to "" to prevent os.SameFile doing it again.
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// newFileStatFromWin32finddata copies all required information
|
||||||
|
// from syscall.Win32finddata d into the newly created fileStat.
|
||||||
|
func newFileStatFromWin32finddata(d *syscall.Win32finddata) *fileStat {
|
||||||
|
fs := &fileStat{
|
||||||
|
FileAttributes: d.FileAttributes,
|
||||||
|
CreationTime: d.CreationTime,
|
||||||
|
LastAccessTime: d.LastAccessTime,
|
||||||
|
LastWriteTime: d.LastWriteTime,
|
||||||
|
FileSizeHigh: d.FileSizeHigh,
|
||||||
|
FileSizeLow: d.FileSizeLow,
|
||||||
|
}
|
||||||
|
if d.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT != 0 {
|
||||||
|
// Per https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw:
|
||||||
|
// “If the dwFileAttributes member includes the FILE_ATTRIBUTE_REPARSE_POINT
|
||||||
|
// attribute, this member specifies the reparse point tag. Otherwise, this
|
||||||
|
// value is undefined and should not be used.”
|
||||||
|
fs.ReparseTag = d.Reserved0
|
||||||
|
}
|
||||||
|
return fs
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) isSymlink() bool {
|
||||||
|
// As of https://go.dev/cl/86556, we treat MOUNT_POINT reparse points as
|
||||||
|
// symlinks because otherwise certain directory junction tests in the
|
||||||
|
// path/filepath package would fail.
|
||||||
|
//
|
||||||
|
// However,
|
||||||
|
// https://learn.microsoft.com/en-us/windows/win32/fileio/hard-links-and-junctions
|
||||||
|
// seems to suggest that directory junctions should be treated like hard
|
||||||
|
// links, not symlinks.
|
||||||
|
//
|
||||||
|
// TODO(bcmills): Get more input from Microsoft on what the behavior ought to
|
||||||
|
// be for MOUNT_POINT reparse points.
|
||||||
|
|
||||||
|
return fs.ReparseTag == syscall.IO_REPARSE_TAG_SYMLINK ||
|
||||||
|
fs.ReparseTag == windows.IO_REPARSE_TAG_MOUNT_POINT
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) Size() int64 {
|
||||||
|
return int64(fs.FileSizeHigh)<<32 + int64(fs.FileSizeLow)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) Mode() (m FileMode) {
|
||||||
|
if fs.FileAttributes&syscall.FILE_ATTRIBUTE_READONLY != 0 {
|
||||||
|
m |= 0444
|
||||||
|
} else {
|
||||||
|
m |= 0666
|
||||||
|
}
|
||||||
|
if fs.isSymlink() {
|
||||||
|
return m | ModeSymlink
|
||||||
|
}
|
||||||
|
if fs.FileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
|
||||||
|
m |= ModeDir | 0111
|
||||||
|
}
|
||||||
|
switch fs.filetype {
|
||||||
|
case syscall.FILE_TYPE_PIPE:
|
||||||
|
m |= ModeNamedPipe
|
||||||
|
case syscall.FILE_TYPE_CHAR:
|
||||||
|
m |= ModeDevice | ModeCharDevice
|
||||||
|
}
|
||||||
|
if fs.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT != 0 && m&ModeType == 0 {
|
||||||
|
m |= ModeIrregular
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) ModTime() time.Time {
|
||||||
|
return time.Unix(0, fs.LastWriteTime.Nanoseconds())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sys returns syscall.Win32FileAttributeData for file fs.
|
||||||
|
func (fs *fileStat) Sys() any {
|
||||||
|
return &syscall.Win32FileAttributeData{
|
||||||
|
FileAttributes: fs.FileAttributes,
|
||||||
|
CreationTime: fs.CreationTime,
|
||||||
|
LastAccessTime: fs.LastAccessTime,
|
||||||
|
LastWriteTime: fs.LastWriteTime,
|
||||||
|
FileSizeHigh: fs.FileSizeHigh,
|
||||||
|
FileSizeLow: fs.FileSizeLow,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *fileStat) loadFileId() error {
|
||||||
|
fs.Lock()
|
||||||
|
defer fs.Unlock()
|
||||||
|
if fs.path == "" {
|
||||||
|
// already done
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
var path string
|
||||||
|
if fs.appendNameToPath {
|
||||||
|
path = fs.path + `\` + fs.name
|
||||||
|
} else {
|
||||||
|
path = fs.path
|
||||||
|
}
|
||||||
|
pathp, err := syscall.UTF16PtrFromString(path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Per https://learn.microsoft.com/en-us/windows/win32/fileio/reparse-points-and-file-operations,
|
||||||
|
// “Applications that use the CreateFile function should specify the
|
||||||
|
// FILE_FLAG_OPEN_REPARSE_POINT flag when opening the file if it is a reparse
|
||||||
|
// point.”
|
||||||
|
//
|
||||||
|
// And per https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew,
|
||||||
|
// “If the file is not a reparse point, then this flag is ignored.”
|
||||||
|
//
|
||||||
|
// So we set FILE_FLAG_OPEN_REPARSE_POINT unconditionally, since we want
|
||||||
|
// information about the reparse point itself.
|
||||||
|
//
|
||||||
|
// If the file is a symlink, the symlink target should have already been
|
||||||
|
// resolved when the fileStat was created, so we don't need to worry about
|
||||||
|
// resolving symlink reparse points again here.
|
||||||
|
attrs := uint32(syscall.FILE_FLAG_BACKUP_SEMANTICS | syscall.FILE_FLAG_OPEN_REPARSE_POINT)
|
||||||
|
|
||||||
|
h, err := syscall.CreateFile(pathp, 0, 0, nil, syscall.OPEN_EXISTING, attrs, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer syscall.CloseHandle(h)
|
||||||
|
var i syscall.ByHandleFileInformation
|
||||||
|
err = syscall.GetFileInformationByHandle(h, &i)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fs.path = ""
|
||||||
|
fs.vol = i.VolumeSerialNumber
|
||||||
|
fs.idxhi = i.FileIndexHigh
|
||||||
|
fs.idxlo = i.FileIndexLow
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// saveInfoFromPath saves full path of the file to be used by os.SameFile later,
|
||||||
|
// and set name from path.
|
||||||
|
func (fs *fileStat) saveInfoFromPath(path string) error {
|
||||||
|
fs.path = path
|
||||||
|
if !isAbs(fs.path) {
|
||||||
|
var err error
|
||||||
|
fs.path, err = syscall.FullPath(fs.path)
|
||||||
|
if err != nil {
|
||||||
|
return &PathError{Op: "FullPath", Path: path, Err: err}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fs.name = basename(path)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func sameFile(fs1, fs2 *fileStat) bool {
|
||||||
|
e := fs1.loadFileId()
|
||||||
|
if e != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
e = fs2.loadFileId()
|
||||||
|
if e != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return fs1.vol == fs2.vol && fs1.idxhi == fs2.idxhi && fs1.idxlo == fs2.idxlo
|
||||||
|
}
|
||||||
11
internal/lib/runtime/mfinal.go
Normal file
11
internal/lib/runtime/mfinal.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
// Garbage collector: finalizers and block profiling.
|
||||||
|
|
||||||
|
package runtime
|
||||||
|
|
||||||
|
func SetFinalizer(obj any, finalizer any) {
|
||||||
|
panic("todo: runtime.SetFinalizer")
|
||||||
|
}
|
||||||
319
internal/lib/syscall/exec_libc.go
Normal file
319
internal/lib/syscall/exec_libc.go
Normal file
@@ -0,0 +1,319 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
//go:build aix || solaris
|
||||||
|
|
||||||
|
// This file handles forkAndExecInChild function for OS using libc syscall like AIX or Solaris.
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
import (
|
||||||
|
"runtime"
|
||||||
|
"unsafe"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SysProcAttr struct {
|
||||||
|
Chroot string // Chroot.
|
||||||
|
Credential *Credential // Credential.
|
||||||
|
Setsid bool // Create session.
|
||||||
|
// Setpgid sets the process group ID of the child to Pgid,
|
||||||
|
// or, if Pgid == 0, to the new child's process ID.
|
||||||
|
Setpgid bool
|
||||||
|
// Setctty sets the controlling terminal of the child to
|
||||||
|
// file descriptor Ctty. Ctty must be a descriptor number
|
||||||
|
// in the child process: an index into ProcAttr.Files.
|
||||||
|
// This is only meaningful if Setsid is true.
|
||||||
|
Setctty bool
|
||||||
|
Noctty bool // Detach fd 0 from controlling terminal
|
||||||
|
Ctty int // Controlling TTY fd
|
||||||
|
// Foreground places the child process group in the foreground.
|
||||||
|
// This implies Setpgid. The Ctty field must be set to
|
||||||
|
// the descriptor of the controlling TTY.
|
||||||
|
// Unlike Setctty, in this case Ctty must be a descriptor
|
||||||
|
// number in the parent process.
|
||||||
|
Foreground bool
|
||||||
|
Pgid int // Child's process group ID if Setpgid.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implemented in runtime package.
|
||||||
|
func runtime_BeforeFork()
|
||||||
|
func runtime_AfterFork()
|
||||||
|
func runtime_AfterForkInChild()
|
||||||
|
|
||||||
|
func chdir(path uintptr) (err Errno)
|
||||||
|
func chroot1(path uintptr) (err Errno)
|
||||||
|
func closeFD(fd uintptr) (err Errno)
|
||||||
|
func dup2child(old uintptr, new uintptr) (val uintptr, err Errno)
|
||||||
|
func execve(path uintptr, argv uintptr, envp uintptr) (err Errno)
|
||||||
|
func exit(code uintptr)
|
||||||
|
func fcntl1(fd uintptr, cmd uintptr, arg uintptr) (val uintptr, err Errno)
|
||||||
|
func forkx(flags uintptr) (pid uintptr, err Errno)
|
||||||
|
func getpid() (pid uintptr, err Errno)
|
||||||
|
func ioctl(fd uintptr, req uintptr, arg uintptr) (err Errno)
|
||||||
|
func setgid(gid uintptr) (err Errno)
|
||||||
|
func setgroups1(ngid uintptr, gid uintptr) (err Errno)
|
||||||
|
func setrlimit1(which uintptr, lim unsafe.Pointer) (err Errno)
|
||||||
|
func setsid() (pid uintptr, err Errno)
|
||||||
|
func setuid(uid uintptr) (err Errno)
|
||||||
|
func setpgid(pid uintptr, pgid uintptr) (err Errno)
|
||||||
|
func write1(fd uintptr, buf uintptr, nbyte uintptr) (n uintptr, err Errno)
|
||||||
|
|
||||||
|
// syscall defines this global on our behalf to avoid a build dependency on other platforms
|
||||||
|
func init() {
|
||||||
|
execveLibc = execve
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fork, dup fd onto 0..len(fd), and exec(argv0, argvv, envv) in child.
|
||||||
|
// If a dup or exec fails, write the errno error to pipe.
|
||||||
|
// (Pipe is close-on-exec so if exec succeeds, it will be closed.)
|
||||||
|
// In the child, this function must not acquire any locks, because
|
||||||
|
// they might have been locked at the time of the fork. This means
|
||||||
|
// no rescheduling, no malloc calls, and no new stack segments.
|
||||||
|
//
|
||||||
|
// We call hand-crafted syscalls, implemented in
|
||||||
|
// ../runtime/syscall_solaris.go, rather than generated libc wrappers
|
||||||
|
// because we need to avoid lazy-loading the functions (might malloc,
|
||||||
|
// split the stack, or acquire mutexes). We can't call RawSyscall
|
||||||
|
// because it's not safe even for BSD-subsystem calls.
|
||||||
|
//
|
||||||
|
//go:norace
|
||||||
|
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
|
||||||
|
// Declare all variables at top in case any
|
||||||
|
// declarations require heap allocation (e.g., err1).
|
||||||
|
var (
|
||||||
|
r1 uintptr
|
||||||
|
err1 Errno
|
||||||
|
nextfd int
|
||||||
|
i int
|
||||||
|
pgrp _Pid_t
|
||||||
|
cred *Credential
|
||||||
|
ngroups, groups uintptr
|
||||||
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
|
// guard against side effects of shuffling fds below.
|
||||||
|
// Make sure that nextfd is beyond any currently open files so
|
||||||
|
// that we can't run the risk of overwriting any of them.
|
||||||
|
fd := make([]int, len(attr.Files))
|
||||||
|
nextfd = len(attr.Files)
|
||||||
|
for i, ufd := range attr.Files {
|
||||||
|
if nextfd < int(ufd) {
|
||||||
|
nextfd = int(ufd)
|
||||||
|
}
|
||||||
|
fd[i] = int(ufd)
|
||||||
|
}
|
||||||
|
nextfd++
|
||||||
|
|
||||||
|
// About to call fork.
|
||||||
|
// No more allocation or calls of non-assembly functions.
|
||||||
|
runtime_BeforeFork()
|
||||||
|
r1, err1 = forkx(0x1) // FORK_NOSIGCHLD
|
||||||
|
if err1 != 0 {
|
||||||
|
runtime_AfterFork()
|
||||||
|
return 0, err1
|
||||||
|
}
|
||||||
|
|
||||||
|
if r1 != 0 {
|
||||||
|
// parent; return PID
|
||||||
|
runtime_AfterFork()
|
||||||
|
return int(r1), 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fork succeeded, now in child.
|
||||||
|
|
||||||
|
// Session ID
|
||||||
|
if sys.Setsid {
|
||||||
|
_, err1 = setsid()
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set process group
|
||||||
|
if sys.Setpgid || sys.Foreground {
|
||||||
|
// Place child in process group.
|
||||||
|
err1 = setpgid(0, uintptr(sys.Pgid))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.Foreground {
|
||||||
|
pgrp = _Pid_t(sys.Pgid)
|
||||||
|
if pgrp == 0 {
|
||||||
|
r1, err1 = getpid()
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
|
||||||
|
pgrp = _Pid_t(r1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place process group in foreground.
|
||||||
|
err1 = ioctl(uintptr(sys.Ctty), uintptr(TIOCSPGRP), uintptr(unsafe.Pointer(&pgrp)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore the signal mask. We do this after TIOCSPGRP to avoid
|
||||||
|
// having the kernel send a SIGTTOU signal to the process group.
|
||||||
|
runtime_AfterForkInChild()
|
||||||
|
|
||||||
|
// Chroot
|
||||||
|
if chroot != nil {
|
||||||
|
err1 = chroot1(uintptr(unsafe.Pointer(chroot)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// User and groups
|
||||||
|
if cred = sys.Credential; cred != nil {
|
||||||
|
ngroups = uintptr(len(cred.Groups))
|
||||||
|
groups = uintptr(0)
|
||||||
|
if ngroups > 0 {
|
||||||
|
groups = uintptr(unsafe.Pointer(&cred.Groups[0]))
|
||||||
|
}
|
||||||
|
if !cred.NoSetGroups {
|
||||||
|
err1 = setgroups1(ngroups, groups)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
err1 = setgid(uintptr(cred.Gid))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
err1 = setuid(uintptr(cred.Uid))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chdir
|
||||||
|
if dir != nil {
|
||||||
|
err1 = chdir(uintptr(unsafe.Pointer(dir)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass 1: look for fd[i] < i and move those up above len(fd)
|
||||||
|
// so that pass 2 won't stomp on an fd it needs later.
|
||||||
|
if pipe < nextfd {
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "illumos", "solaris":
|
||||||
|
_, err1 = fcntl1(uintptr(pipe), _F_DUP2FD_CLOEXEC, uintptr(nextfd))
|
||||||
|
default:
|
||||||
|
_, err1 = dup2child(uintptr(pipe), uintptr(nextfd))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
_, err1 = fcntl1(uintptr(nextfd), F_SETFD, FD_CLOEXEC)
|
||||||
|
}
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pipe = nextfd
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
for i = 0; i < len(fd); i++ {
|
||||||
|
if fd[i] >= 0 && fd[i] < i {
|
||||||
|
if nextfd == pipe { // don't stomp on pipe
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "illumos", "solaris":
|
||||||
|
_, err1 = fcntl1(uintptr(fd[i]), _F_DUP2FD_CLOEXEC, uintptr(nextfd))
|
||||||
|
default:
|
||||||
|
_, err1 = dup2child(uintptr(fd[i]), uintptr(nextfd))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
_, err1 = fcntl1(uintptr(nextfd), F_SETFD, FD_CLOEXEC)
|
||||||
|
}
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
fd[i] = nextfd
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass 2: dup fd[i] down onto i.
|
||||||
|
for i = 0; i < len(fd); i++ {
|
||||||
|
if fd[i] == -1 {
|
||||||
|
closeFD(uintptr(i))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if fd[i] == i {
|
||||||
|
// dup2(i, i) won't clear close-on-exec flag on Linux,
|
||||||
|
// probably not elsewhere either.
|
||||||
|
_, err1 = fcntl1(uintptr(fd[i]), F_SETFD, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// The new fd is created NOT close-on-exec,
|
||||||
|
// which is exactly what we want.
|
||||||
|
_, err1 = dup2child(uintptr(fd[i]), uintptr(i))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// By convention, we don't close-on-exec the fds we are
|
||||||
|
// started with, so if len(fd) < 3, close 0, 1, 2 as needed.
|
||||||
|
// Programs that know they inherit fds >= 3 will need
|
||||||
|
// to set them close-on-exec.
|
||||||
|
for i = len(fd); i < 3; i++ {
|
||||||
|
closeFD(uintptr(i))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach fd 0 from tty
|
||||||
|
if sys.Noctty {
|
||||||
|
err1 = ioctl(0, uintptr(TIOCNOTTY), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the controlling TTY to Ctty
|
||||||
|
if sys.Setctty {
|
||||||
|
// On AIX, TIOCSCTTY is undefined
|
||||||
|
if TIOCSCTTY == 0 {
|
||||||
|
err1 = ENOSYS
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
err1 = ioctl(uintptr(sys.Ctty), uintptr(TIOCSCTTY), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
setrlimit1(RLIMIT_NOFILE, unsafe.Pointer(&rlim))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Time to exec.
|
||||||
|
err1 = execve(
|
||||||
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
uintptr(unsafe.Pointer(&argv[0])),
|
||||||
|
uintptr(unsafe.Pointer(&envv[0])))
|
||||||
|
|
||||||
|
childerror:
|
||||||
|
// send error code on pipe
|
||||||
|
write1(uintptr(pipe), uintptr(unsafe.Pointer(&err1)), unsafe.Sizeof(err1))
|
||||||
|
for {
|
||||||
|
exit(253)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ioctlPtr(fd, req uintptr, arg unsafe.Pointer) (err Errno) {
|
||||||
|
return ioctl(fd, req, uintptr(arg))
|
||||||
|
}
|
||||||
290
internal/lib/syscall/exec_libc2.go
Normal file
290
internal/lib/syscall/exec_libc2.go
Normal file
@@ -0,0 +1,290 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
//go:build darwin || (openbsd && !mips64)
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
type SysProcAttr struct {
|
||||||
|
Chroot string // Chroot.
|
||||||
|
Credential *Credential // Credential.
|
||||||
|
Ptrace bool // Enable tracing.
|
||||||
|
Setsid bool // Create session.
|
||||||
|
// Setpgid sets the process group ID of the child to Pgid,
|
||||||
|
// or, if Pgid == 0, to the new child's process ID.
|
||||||
|
Setpgid bool
|
||||||
|
// Setctty sets the controlling terminal of the child to
|
||||||
|
// file descriptor Ctty. Ctty must be a descriptor number
|
||||||
|
// in the child process: an index into ProcAttr.Files.
|
||||||
|
// This is only meaningful if Setsid is true.
|
||||||
|
Setctty bool
|
||||||
|
Noctty bool // Detach fd 0 from controlling terminal
|
||||||
|
Ctty int // Controlling TTY fd
|
||||||
|
// Foreground places the child process group in the foreground.
|
||||||
|
// This implies Setpgid. The Ctty field must be set to
|
||||||
|
// the descriptor of the controlling TTY.
|
||||||
|
// Unlike Setctty, in this case Ctty must be a descriptor
|
||||||
|
// number in the parent process.
|
||||||
|
Foreground bool
|
||||||
|
Pgid int // Child's process group ID if Setpgid.
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Implemented in runtime package.
|
||||||
|
func runtime_BeforeFork()
|
||||||
|
func runtime_AfterFork()
|
||||||
|
func runtime_AfterForkInChild()
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Fork, dup fd onto 0..len(fd), and exec(argv0, argvv, envv) in child.
|
||||||
|
// If a dup or exec fails, write the errno error to pipe.
|
||||||
|
// (Pipe is close-on-exec so if exec succeeds, it will be closed.)
|
||||||
|
// In the child, this function must not acquire any locks, because
|
||||||
|
// they might have been locked at the time of the fork. This means
|
||||||
|
// no rescheduling, no malloc calls, and no new stack segments.
|
||||||
|
// For the same reason compiler does not race instrument it.
|
||||||
|
// The calls to rawSyscall are okay because they are assembly
|
||||||
|
// functions that do not grow the stack.
|
||||||
|
//
|
||||||
|
//go:norace
|
||||||
|
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err1 Errno) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Declare all variables at top in case any
|
||||||
|
// declarations require heap allocation (e.g., err1).
|
||||||
|
var (
|
||||||
|
r1 uintptr
|
||||||
|
nextfd int
|
||||||
|
i int
|
||||||
|
err error
|
||||||
|
pgrp _C_int
|
||||||
|
cred *Credential
|
||||||
|
ngroups, groups uintptr
|
||||||
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
|
// guard against side effects of shuffling fds below.
|
||||||
|
// Make sure that nextfd is beyond any currently open files so
|
||||||
|
// that we can't run the risk of overwriting any of them.
|
||||||
|
fd := make([]int, len(attr.Files))
|
||||||
|
nextfd = len(attr.Files)
|
||||||
|
for i, ufd := range attr.Files {
|
||||||
|
if nextfd < int(ufd) {
|
||||||
|
nextfd = int(ufd)
|
||||||
|
}
|
||||||
|
fd[i] = int(ufd)
|
||||||
|
}
|
||||||
|
nextfd++
|
||||||
|
|
||||||
|
// About to call fork.
|
||||||
|
// No more allocation or calls of non-assembly functions.
|
||||||
|
runtime_BeforeFork()
|
||||||
|
r1, _, err1 = rawSyscall(abi.FuncPCABI0(libc_fork_trampoline), 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
runtime_AfterFork()
|
||||||
|
return 0, err1
|
||||||
|
}
|
||||||
|
|
||||||
|
if r1 != 0 {
|
||||||
|
// parent; return PID
|
||||||
|
runtime_AfterFork()
|
||||||
|
return int(r1), 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fork succeeded, now in child.
|
||||||
|
|
||||||
|
// Enable tracing if requested.
|
||||||
|
if sys.Ptrace {
|
||||||
|
if err = ptrace(PTRACE_TRACEME, 0, 0, 0); err != nil {
|
||||||
|
err1 = err.(Errno)
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Session ID
|
||||||
|
if sys.Setsid {
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_setsid_trampoline), 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set process group
|
||||||
|
if sys.Setpgid || sys.Foreground {
|
||||||
|
// Place child in process group.
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_setpgid_trampoline), 0, uintptr(sys.Pgid), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.Foreground {
|
||||||
|
// This should really be pid_t, however _C_int (aka int32) is
|
||||||
|
// generally equivalent.
|
||||||
|
pgrp = _C_int(sys.Pgid)
|
||||||
|
if pgrp == 0 {
|
||||||
|
r1, _, err1 = rawSyscall(abi.FuncPCABI0(libc_getpid_trampoline), 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pgrp = _C_int(r1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place process group in foreground.
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_ioctl_trampoline), uintptr(sys.Ctty), uintptr(TIOCSPGRP), uintptr(unsafe.Pointer(&pgrp)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore the signal mask. We do this after TIOCSPGRP to avoid
|
||||||
|
// having the kernel send a SIGTTOU signal to the process group.
|
||||||
|
runtime_AfterForkInChild()
|
||||||
|
|
||||||
|
// Chroot
|
||||||
|
if chroot != nil {
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_chroot_trampoline), uintptr(unsafe.Pointer(chroot)), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// User and groups
|
||||||
|
if cred = sys.Credential; cred != nil {
|
||||||
|
ngroups = uintptr(len(cred.Groups))
|
||||||
|
groups = uintptr(0)
|
||||||
|
if ngroups > 0 {
|
||||||
|
groups = uintptr(unsafe.Pointer(&cred.Groups[0]))
|
||||||
|
}
|
||||||
|
if !cred.NoSetGroups {
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_setgroups_trampoline), ngroups, groups, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_setgid_trampoline), uintptr(cred.Gid), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_setuid_trampoline), uintptr(cred.Uid), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chdir
|
||||||
|
if dir != nil {
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_chdir_trampoline), uintptr(unsafe.Pointer(dir)), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass 1: look for fd[i] < i and move those up above len(fd)
|
||||||
|
// so that pass 2 won't stomp on an fd it needs later.
|
||||||
|
if pipe < nextfd {
|
||||||
|
if runtime.GOOS == "openbsd" {
|
||||||
|
_, _, err1 = rawSyscall(dupTrampoline, uintptr(pipe), uintptr(nextfd), O_CLOEXEC)
|
||||||
|
} else {
|
||||||
|
_, _, err1 = rawSyscall(dupTrampoline, uintptr(pipe), uintptr(nextfd), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_fcntl_trampoline), uintptr(nextfd), F_SETFD, FD_CLOEXEC)
|
||||||
|
}
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pipe = nextfd
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
for i = 0; i < len(fd); i++ {
|
||||||
|
if fd[i] >= 0 && fd[i] < i {
|
||||||
|
if nextfd == pipe { // don't stomp on pipe
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
if runtime.GOOS == "openbsd" {
|
||||||
|
_, _, err1 = rawSyscall(dupTrampoline, uintptr(fd[i]), uintptr(nextfd), O_CLOEXEC)
|
||||||
|
} else {
|
||||||
|
_, _, err1 = rawSyscall(dupTrampoline, uintptr(fd[i]), uintptr(nextfd), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_fcntl_trampoline), uintptr(nextfd), F_SETFD, FD_CLOEXEC)
|
||||||
|
}
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
fd[i] = nextfd
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass 2: dup fd[i] down onto i.
|
||||||
|
for i = 0; i < len(fd); i++ {
|
||||||
|
if fd[i] == -1 {
|
||||||
|
rawSyscall(abi.FuncPCABI0(libc_close_trampoline), uintptr(i), 0, 0)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if fd[i] == i {
|
||||||
|
// dup2(i, i) won't clear close-on-exec flag on Linux,
|
||||||
|
// probably not elsewhere either.
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_fcntl_trampoline), uintptr(fd[i]), F_SETFD, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// The new fd is created NOT close-on-exec,
|
||||||
|
// which is exactly what we want.
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_dup2_trampoline), uintptr(fd[i]), uintptr(i), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// By convention, we don't close-on-exec the fds we are
|
||||||
|
// started with, so if len(fd) < 3, close 0, 1, 2 as needed.
|
||||||
|
// Programs that know they inherit fds >= 3 will need
|
||||||
|
// to set them close-on-exec.
|
||||||
|
for i = len(fd); i < 3; i++ {
|
||||||
|
rawSyscall(abi.FuncPCABI0(libc_close_trampoline), uintptr(i), 0, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach fd 0 from tty
|
||||||
|
if sys.Noctty {
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_ioctl_trampoline), 0, uintptr(TIOCNOTTY), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the controlling TTY to Ctty
|
||||||
|
if sys.Setctty {
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_ioctl_trampoline), uintptr(sys.Ctty), uintptr(TIOCSCTTY), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(RLIMIT_NOFILE), uintptr(unsafe.Pointer(&rlim)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Time to exec.
|
||||||
|
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_execve_trampoline),
|
||||||
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
uintptr(unsafe.Pointer(&argv[0])),
|
||||||
|
uintptr(unsafe.Pointer(&envv[0])))
|
||||||
|
|
||||||
|
childerror:
|
||||||
|
// send error code on pipe
|
||||||
|
rawSyscall(abi.FuncPCABI0(libc_write_trampoline), uintptr(pipe), uintptr(unsafe.Pointer(&err1)), unsafe.Sizeof(err1))
|
||||||
|
for {
|
||||||
|
rawSyscall(abi.FuncPCABI0(libc_exit_trampoline), 253, 0, 0)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.forkAndExecInChild")
|
||||||
|
}
|
||||||
733
internal/lib/syscall/exec_linux.go
Normal file
733
internal/lib/syscall/exec_linux.go
Normal file
@@ -0,0 +1,733 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
//go:build linux
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
// Linux unshare/clone/clone2/clone3 flags, architecture-independent,
|
||||||
|
// copied from linux/sched.h.
|
||||||
|
const (
|
||||||
|
CLONE_VM = 0x00000100 // set if VM shared between processes
|
||||||
|
CLONE_FS = 0x00000200 // set if fs info shared between processes
|
||||||
|
CLONE_FILES = 0x00000400 // set if open files shared between processes
|
||||||
|
CLONE_SIGHAND = 0x00000800 // set if signal handlers and blocked signals shared
|
||||||
|
CLONE_PIDFD = 0x00001000 // set if a pidfd should be placed in parent
|
||||||
|
CLONE_PTRACE = 0x00002000 // set if we want to let tracing continue on the child too
|
||||||
|
CLONE_VFORK = 0x00004000 // set if the parent wants the child to wake it up on mm_release
|
||||||
|
CLONE_PARENT = 0x00008000 // set if we want to have the same parent as the cloner
|
||||||
|
CLONE_THREAD = 0x00010000 // Same thread group?
|
||||||
|
CLONE_NEWNS = 0x00020000 // New mount namespace group
|
||||||
|
CLONE_SYSVSEM = 0x00040000 // share system V SEM_UNDO semantics
|
||||||
|
CLONE_SETTLS = 0x00080000 // create a new TLS for the child
|
||||||
|
CLONE_PARENT_SETTID = 0x00100000 // set the TID in the parent
|
||||||
|
CLONE_CHILD_CLEARTID = 0x00200000 // clear the TID in the child
|
||||||
|
CLONE_DETACHED = 0x00400000 // Unused, ignored
|
||||||
|
CLONE_UNTRACED = 0x00800000 // set if the tracing process can't force CLONE_PTRACE on this clone
|
||||||
|
CLONE_CHILD_SETTID = 0x01000000 // set the TID in the child
|
||||||
|
CLONE_NEWCGROUP = 0x02000000 // New cgroup namespace
|
||||||
|
CLONE_NEWUTS = 0x04000000 // New utsname namespace
|
||||||
|
CLONE_NEWIPC = 0x08000000 // New ipc namespace
|
||||||
|
CLONE_NEWUSER = 0x10000000 // New user namespace
|
||||||
|
CLONE_NEWPID = 0x20000000 // New pid namespace
|
||||||
|
CLONE_NEWNET = 0x40000000 // New network namespace
|
||||||
|
CLONE_IO = 0x80000000 // Clone io context
|
||||||
|
|
||||||
|
// Flags for the clone3() syscall.
|
||||||
|
|
||||||
|
CLONE_CLEAR_SIGHAND = 0x100000000 // Clear any signal handler and reset to SIG_DFL.
|
||||||
|
CLONE_INTO_CGROUP = 0x200000000 // Clone into a specific cgroup given the right permissions.
|
||||||
|
|
||||||
|
// Cloning flags intersect with CSIGNAL so can be used with unshare and clone3
|
||||||
|
// syscalls only:
|
||||||
|
|
||||||
|
CLONE_NEWTIME = 0x00000080 // New time namespace
|
||||||
|
)
|
||||||
|
|
||||||
|
// SysProcIDMap holds Container ID to Host ID mappings used for User Namespaces in Linux.
|
||||||
|
// See user_namespaces(7).
|
||||||
|
type SysProcIDMap struct {
|
||||||
|
ContainerID int // Container ID.
|
||||||
|
HostID int // Host ID.
|
||||||
|
Size int // Size.
|
||||||
|
}
|
||||||
|
|
||||||
|
type SysProcAttr struct {
|
||||||
|
Chroot string // Chroot.
|
||||||
|
Credential *Credential // Credential.
|
||||||
|
// Ptrace tells the child to call ptrace(PTRACE_TRACEME).
|
||||||
|
// Call runtime.LockOSThread before starting a process with this set,
|
||||||
|
// and don't call UnlockOSThread until done with PtraceSyscall calls.
|
||||||
|
Ptrace bool
|
||||||
|
Setsid bool // Create session.
|
||||||
|
// Setpgid sets the process group ID of the child to Pgid,
|
||||||
|
// or, if Pgid == 0, to the new child's process ID.
|
||||||
|
Setpgid bool
|
||||||
|
// Setctty sets the controlling terminal of the child to
|
||||||
|
// file descriptor Ctty. Ctty must be a descriptor number
|
||||||
|
// in the child process: an index into ProcAttr.Files.
|
||||||
|
// This is only meaningful if Setsid is true.
|
||||||
|
Setctty bool
|
||||||
|
Noctty bool // Detach fd 0 from controlling terminal
|
||||||
|
Ctty int // Controlling TTY fd
|
||||||
|
// Foreground places the child process group in the foreground.
|
||||||
|
// This implies Setpgid. The Ctty field must be set to
|
||||||
|
// the descriptor of the controlling TTY.
|
||||||
|
// Unlike Setctty, in this case Ctty must be a descriptor
|
||||||
|
// number in the parent process.
|
||||||
|
Foreground bool
|
||||||
|
Pgid int // Child's process group ID if Setpgid.
|
||||||
|
// Pdeathsig, if non-zero, is a signal that the kernel will send to
|
||||||
|
// the child process when the creating thread dies. Note that the signal
|
||||||
|
// is sent on thread termination, which may happen before process termination.
|
||||||
|
// There are more details at https://go.dev/issue/27505.
|
||||||
|
Pdeathsig Signal
|
||||||
|
Cloneflags uintptr // Flags for clone calls (Linux only)
|
||||||
|
Unshareflags uintptr // Flags for unshare calls (Linux only)
|
||||||
|
UidMappings []SysProcIDMap // User ID mappings for user namespaces.
|
||||||
|
GidMappings []SysProcIDMap // Group ID mappings for user namespaces.
|
||||||
|
// GidMappingsEnableSetgroups enabling setgroups syscall.
|
||||||
|
// If false, then setgroups syscall will be disabled for the child process.
|
||||||
|
// This parameter is no-op if GidMappings == nil. Otherwise for unprivileged
|
||||||
|
// users this should be set to false for mappings work.
|
||||||
|
GidMappingsEnableSetgroups bool
|
||||||
|
AmbientCaps []uintptr // Ambient capabilities (Linux only)
|
||||||
|
UseCgroupFD bool // Whether to make use of the CgroupFD field.
|
||||||
|
CgroupFD int // File descriptor of a cgroup to put the new process into.
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
none = [...]byte{'n', 'o', 'n', 'e', 0}
|
||||||
|
slash = [...]byte{'/', 0}
|
||||||
|
)
|
||||||
|
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Implemented in runtime package.
|
||||||
|
func runtime_BeforeFork()
|
||||||
|
func runtime_AfterFork()
|
||||||
|
func runtime_AfterForkInChild()
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Fork, dup fd onto 0..len(fd), and exec(argv0, argvv, envv) in child.
|
||||||
|
// If a dup or exec fails, write the errno error to pipe.
|
||||||
|
// (Pipe is close-on-exec so if exec succeeds, it will be closed.)
|
||||||
|
// In the child, this function must not acquire any locks, because
|
||||||
|
// they might have been locked at the time of the fork. This means
|
||||||
|
// no rescheduling, no malloc calls, and no new stack segments.
|
||||||
|
// For the same reason compiler does not race instrument it.
|
||||||
|
// The calls to RawSyscall are okay because they are assembly
|
||||||
|
// functions that do not grow the stack.
|
||||||
|
//
|
||||||
|
//go:norace
|
||||||
|
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Set up and fork. This returns immediately in the parent or
|
||||||
|
// if there's an error.
|
||||||
|
upid, err, mapPipe, locked := forkAndExecInChild1(argv0, argv, envv, chroot, dir, attr, sys, pipe)
|
||||||
|
if locked {
|
||||||
|
runtime_AfterFork()
|
||||||
|
}
|
||||||
|
if err != 0 {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// parent; return PID
|
||||||
|
pid = int(upid)
|
||||||
|
|
||||||
|
if sys.UidMappings != nil || sys.GidMappings != nil {
|
||||||
|
Close(mapPipe[0])
|
||||||
|
var err2 Errno
|
||||||
|
// uid/gid mappings will be written after fork and unshare(2) for user
|
||||||
|
// namespaces.
|
||||||
|
if sys.Unshareflags&CLONE_NEWUSER == 0 {
|
||||||
|
if err := writeUidGidMappings(pid, sys); err != nil {
|
||||||
|
err2 = err.(Errno)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RawSyscall(SYS_WRITE, uintptr(mapPipe[1]), uintptr(unsafe.Pointer(&err2)), unsafe.Sizeof(err2))
|
||||||
|
Close(mapPipe[1])
|
||||||
|
}
|
||||||
|
|
||||||
|
return pid, 0
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.forkAndExecInChild")
|
||||||
|
}
|
||||||
|
|
||||||
|
const _LINUX_CAPABILITY_VERSION_3 = 0x20080522
|
||||||
|
|
||||||
|
type capHeader struct {
|
||||||
|
version uint32
|
||||||
|
pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type capData struct {
|
||||||
|
effective uint32
|
||||||
|
permitted uint32
|
||||||
|
inheritable uint32
|
||||||
|
}
|
||||||
|
type caps struct {
|
||||||
|
hdr capHeader
|
||||||
|
data [2]capData
|
||||||
|
}
|
||||||
|
|
||||||
|
// See CAP_TO_INDEX in linux/capability.h:
|
||||||
|
func capToIndex(cap uintptr) uintptr { return cap >> 5 }
|
||||||
|
|
||||||
|
// See CAP_TO_MASK in linux/capability.h:
|
||||||
|
func capToMask(cap uintptr) uint32 { return 1 << uint(cap&31) }
|
||||||
|
|
||||||
|
// cloneArgs holds arguments for clone3 Linux syscall.
|
||||||
|
type cloneArgs struct {
|
||||||
|
flags uint64 // Flags bit mask
|
||||||
|
pidFD uint64 // Where to store PID file descriptor (int *)
|
||||||
|
childTID uint64 // Where to store child TID, in child's memory (pid_t *)
|
||||||
|
parentTID uint64 // Where to store child TID, in parent's memory (pid_t *)
|
||||||
|
exitSignal uint64 // Signal to deliver to parent on child termination
|
||||||
|
stack uint64 // Pointer to lowest byte of stack
|
||||||
|
stackSize uint64 // Size of stack
|
||||||
|
tls uint64 // Location of new TLS
|
||||||
|
setTID uint64 // Pointer to a pid_t array (since Linux 5.5)
|
||||||
|
setTIDSize uint64 // Number of elements in set_tid (since Linux 5.5)
|
||||||
|
cgroup uint64 // File descriptor for target cgroup of child (since Linux 5.7)
|
||||||
|
}
|
||||||
|
|
||||||
|
// forkAndExecInChild1 implements the body of forkAndExecInChild up to
|
||||||
|
// the parent's post-fork path. This is a separate function so we can
|
||||||
|
// separate the child's and parent's stack frames if we're using
|
||||||
|
// vfork.
|
||||||
|
//
|
||||||
|
// This is go:noinline because the point is to keep the stack frames
|
||||||
|
// of this and forkAndExecInChild separate.
|
||||||
|
//
|
||||||
|
//go:noinline
|
||||||
|
//go:norace
|
||||||
|
//go:nocheckptr
|
||||||
|
func forkAndExecInChild1(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid uintptr, err1 Errno, mapPipe [2]int, locked bool) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Defined in linux/prctl.h starting with Linux 4.3.
|
||||||
|
const (
|
||||||
|
PR_CAP_AMBIENT = 0x2f
|
||||||
|
PR_CAP_AMBIENT_RAISE = 0x2
|
||||||
|
)
|
||||||
|
|
||||||
|
// vfork requires that the child not touch any of the parent's
|
||||||
|
// active stack frames. Hence, the child does all post-fork
|
||||||
|
// processing in this stack frame and never returns, while the
|
||||||
|
// parent returns immediately from this frame and does all
|
||||||
|
// post-fork processing in the outer frame.
|
||||||
|
//
|
||||||
|
// Declare all variables at top in case any
|
||||||
|
// declarations require heap allocation (e.g., err2).
|
||||||
|
// ":=" should not be used to declare any variable after
|
||||||
|
// the call to runtime_BeforeFork.
|
||||||
|
//
|
||||||
|
// NOTE(bcmills): The allocation behavior described in the above comment
|
||||||
|
// seems to lack a corresponding test, and it may be rendered invalid
|
||||||
|
// by an otherwise-correct change in the compiler.
|
||||||
|
var (
|
||||||
|
err2 Errno
|
||||||
|
nextfd int
|
||||||
|
i int
|
||||||
|
caps caps
|
||||||
|
fd1, flags uintptr
|
||||||
|
puid, psetgroups, pgid []byte
|
||||||
|
uidmap, setgroups, gidmap []byte
|
||||||
|
clone3 *cloneArgs
|
||||||
|
pgrp int32
|
||||||
|
dirfd int
|
||||||
|
cred *Credential
|
||||||
|
ngroups, groups uintptr
|
||||||
|
c uintptr
|
||||||
|
)
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
|
||||||
|
if sys.UidMappings != nil {
|
||||||
|
puid = []byte("/proc/self/uid_map\000")
|
||||||
|
uidmap = formatIDMappings(sys.UidMappings)
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.GidMappings != nil {
|
||||||
|
psetgroups = []byte("/proc/self/setgroups\000")
|
||||||
|
pgid = []byte("/proc/self/gid_map\000")
|
||||||
|
|
||||||
|
if sys.GidMappingsEnableSetgroups {
|
||||||
|
setgroups = []byte("allow\000")
|
||||||
|
} else {
|
||||||
|
setgroups = []byte("deny\000")
|
||||||
|
}
|
||||||
|
gidmap = formatIDMappings(sys.GidMappings)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Record parent PID so child can test if it has died.
|
||||||
|
ppid, _ := rawSyscallNoError(SYS_GETPID, 0, 0, 0)
|
||||||
|
|
||||||
|
// Guard against side effects of shuffling fds below.
|
||||||
|
// Make sure that nextfd is beyond any currently open files so
|
||||||
|
// that we can't run the risk of overwriting any of them.
|
||||||
|
fd := make([]int, len(attr.Files))
|
||||||
|
nextfd = len(attr.Files)
|
||||||
|
for i, ufd := range attr.Files {
|
||||||
|
if nextfd < int(ufd) {
|
||||||
|
nextfd = int(ufd)
|
||||||
|
}
|
||||||
|
fd[i] = int(ufd)
|
||||||
|
}
|
||||||
|
nextfd++
|
||||||
|
|
||||||
|
// Allocate another pipe for parent to child communication for
|
||||||
|
// synchronizing writing of User ID/Group ID mappings.
|
||||||
|
if sys.UidMappings != nil || sys.GidMappings != nil {
|
||||||
|
if err := forkExecPipe(mapPipe[:]); err != nil {
|
||||||
|
err1 = err.(Errno)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
flags = sys.Cloneflags
|
||||||
|
if sys.Cloneflags&CLONE_NEWUSER == 0 && sys.Unshareflags&CLONE_NEWUSER == 0 {
|
||||||
|
flags |= CLONE_VFORK | CLONE_VM
|
||||||
|
}
|
||||||
|
// Whether to use clone3.
|
||||||
|
if sys.UseCgroupFD {
|
||||||
|
clone3 = &cloneArgs{
|
||||||
|
flags: uint64(flags) | CLONE_INTO_CGROUP,
|
||||||
|
exitSignal: uint64(SIGCHLD),
|
||||||
|
cgroup: uint64(sys.CgroupFD),
|
||||||
|
}
|
||||||
|
} else if flags&CLONE_NEWTIME != 0 {
|
||||||
|
clone3 = &cloneArgs{
|
||||||
|
flags: uint64(flags),
|
||||||
|
exitSignal: uint64(SIGCHLD),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// About to call fork.
|
||||||
|
// No more allocation or calls of non-assembly functions.
|
||||||
|
runtime_BeforeFork()
|
||||||
|
locked = true
|
||||||
|
if clone3 != nil {
|
||||||
|
pid, err1 = rawVforkSyscall(_SYS_clone3, uintptr(unsafe.Pointer(clone3)), unsafe.Sizeof(*clone3))
|
||||||
|
} else {
|
||||||
|
flags |= uintptr(SIGCHLD)
|
||||||
|
if runtime.GOARCH == "s390x" {
|
||||||
|
// On Linux/s390, the first two arguments of clone(2) are swapped.
|
||||||
|
pid, err1 = rawVforkSyscall(SYS_CLONE, 0, flags)
|
||||||
|
} else {
|
||||||
|
pid, err1 = rawVforkSyscall(SYS_CLONE, flags, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err1 != 0 || pid != 0 {
|
||||||
|
// If we're in the parent, we must return immediately
|
||||||
|
// so we're not in the same stack frame as the child.
|
||||||
|
// This can at most use the return PC, which the child
|
||||||
|
// will not modify, and the results of
|
||||||
|
// rawVforkSyscall, which must have been written after
|
||||||
|
// the child was replaced.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fork succeeded, now in child.
|
||||||
|
|
||||||
|
// Enable the "keep capabilities" flag to set ambient capabilities later.
|
||||||
|
if len(sys.AmbientCaps) > 0 {
|
||||||
|
_, _, err1 = RawSyscall6(SYS_PRCTL, PR_SET_KEEPCAPS, 1, 0, 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait for User ID/Group ID mappings to be written.
|
||||||
|
if sys.UidMappings != nil || sys.GidMappings != nil {
|
||||||
|
if _, _, err1 = RawSyscall(SYS_CLOSE, uintptr(mapPipe[1]), 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pid, _, err1 = RawSyscall(SYS_READ, uintptr(mapPipe[0]), uintptr(unsafe.Pointer(&err2)), unsafe.Sizeof(err2))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
if pid != unsafe.Sizeof(err2) {
|
||||||
|
err1 = EINVAL
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
if err2 != 0 {
|
||||||
|
err1 = err2
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Session ID
|
||||||
|
if sys.Setsid {
|
||||||
|
_, _, err1 = RawSyscall(SYS_SETSID, 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set process group
|
||||||
|
if sys.Setpgid || sys.Foreground {
|
||||||
|
// Place child in process group.
|
||||||
|
_, _, err1 = RawSyscall(SYS_SETPGID, 0, uintptr(sys.Pgid), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.Foreground {
|
||||||
|
pgrp = int32(sys.Pgid)
|
||||||
|
if pgrp == 0 {
|
||||||
|
pid, _ = rawSyscallNoError(SYS_GETPID, 0, 0, 0)
|
||||||
|
|
||||||
|
pgrp = int32(pid)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Place process group in foreground.
|
||||||
|
_, _, err1 = RawSyscall(SYS_IOCTL, uintptr(sys.Ctty), uintptr(TIOCSPGRP), uintptr(unsafe.Pointer(&pgrp)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore the signal mask. We do this after TIOCSPGRP to avoid
|
||||||
|
// having the kernel send a SIGTTOU signal to the process group.
|
||||||
|
runtime_AfterForkInChild()
|
||||||
|
|
||||||
|
// Unshare
|
||||||
|
if sys.Unshareflags != 0 {
|
||||||
|
_, _, err1 = RawSyscall(SYS_UNSHARE, sys.Unshareflags, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.Unshareflags&CLONE_NEWUSER != 0 && sys.GidMappings != nil {
|
||||||
|
dirfd = int(_AT_FDCWD)
|
||||||
|
if fd1, _, err1 = RawSyscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(&psetgroups[0])), uintptr(O_WRONLY), 0, 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pid, _, err1 = RawSyscall(SYS_WRITE, uintptr(fd1), uintptr(unsafe.Pointer(&setgroups[0])), uintptr(len(setgroups)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
if _, _, err1 = RawSyscall(SYS_CLOSE, uintptr(fd1), 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
|
||||||
|
if fd1, _, err1 = RawSyscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(&pgid[0])), uintptr(O_WRONLY), 0, 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pid, _, err1 = RawSyscall(SYS_WRITE, uintptr(fd1), uintptr(unsafe.Pointer(&gidmap[0])), uintptr(len(gidmap)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
if _, _, err1 = RawSyscall(SYS_CLOSE, uintptr(fd1), 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.Unshareflags&CLONE_NEWUSER != 0 && sys.UidMappings != nil {
|
||||||
|
dirfd = int(_AT_FDCWD)
|
||||||
|
if fd1, _, err1 = RawSyscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(&puid[0])), uintptr(O_WRONLY), 0, 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pid, _, err1 = RawSyscall(SYS_WRITE, uintptr(fd1), uintptr(unsafe.Pointer(&uidmap[0])), uintptr(len(uidmap)))
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
if _, _, err1 = RawSyscall(SYS_CLOSE, uintptr(fd1), 0, 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The unshare system call in Linux doesn't unshare mount points
|
||||||
|
// mounted with --shared. Systemd mounts / with --shared. For a
|
||||||
|
// long discussion of the pros and cons of this see debian bug 739593.
|
||||||
|
// The Go model of unsharing is more like Plan 9, where you ask
|
||||||
|
// to unshare and the namespaces are unconditionally unshared.
|
||||||
|
// To make this model work we must further mark / as MS_PRIVATE.
|
||||||
|
// This is what the standard unshare command does.
|
||||||
|
if sys.Unshareflags&CLONE_NEWNS == CLONE_NEWNS {
|
||||||
|
_, _, err1 = RawSyscall6(SYS_MOUNT, uintptr(unsafe.Pointer(&none[0])), uintptr(unsafe.Pointer(&slash[0])), 0, MS_REC|MS_PRIVATE, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chroot
|
||||||
|
if chroot != nil {
|
||||||
|
_, _, err1 = RawSyscall(SYS_CHROOT, uintptr(unsafe.Pointer(chroot)), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// User and groups
|
||||||
|
if cred = sys.Credential; cred != nil {
|
||||||
|
ngroups = uintptr(len(cred.Groups))
|
||||||
|
groups = uintptr(0)
|
||||||
|
if ngroups > 0 {
|
||||||
|
groups = uintptr(unsafe.Pointer(&cred.Groups[0]))
|
||||||
|
}
|
||||||
|
if !(sys.GidMappings != nil && !sys.GidMappingsEnableSetgroups && ngroups == 0) && !cred.NoSetGroups {
|
||||||
|
_, _, err1 = RawSyscall(_SYS_setgroups, ngroups, groups, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_, _, err1 = RawSyscall(sys_SETGID, uintptr(cred.Gid), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
_, _, err1 = RawSyscall(sys_SETUID, uintptr(cred.Uid), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(sys.AmbientCaps) != 0 {
|
||||||
|
// Ambient capabilities were added in the 4.3 kernel,
|
||||||
|
// so it is safe to always use _LINUX_CAPABILITY_VERSION_3.
|
||||||
|
caps.hdr.version = _LINUX_CAPABILITY_VERSION_3
|
||||||
|
|
||||||
|
if _, _, err1 = RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(&caps.hdr)), uintptr(unsafe.Pointer(&caps.data[0])), 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c = range sys.AmbientCaps {
|
||||||
|
// Add the c capability to the permitted and inheritable capability mask,
|
||||||
|
// otherwise we will not be able to add it to the ambient capability mask.
|
||||||
|
caps.data[capToIndex(c)].permitted |= capToMask(c)
|
||||||
|
caps.data[capToIndex(c)].inheritable |= capToMask(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, _, err1 = RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(&caps.hdr)), uintptr(unsafe.Pointer(&caps.data[0])), 0); err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c = range sys.AmbientCaps {
|
||||||
|
_, _, err1 = RawSyscall6(SYS_PRCTL, PR_CAP_AMBIENT, uintptr(PR_CAP_AMBIENT_RAISE), c, 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chdir
|
||||||
|
if dir != nil {
|
||||||
|
_, _, err1 = RawSyscall(SYS_CHDIR, uintptr(unsafe.Pointer(dir)), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parent death signal
|
||||||
|
if sys.Pdeathsig != 0 {
|
||||||
|
_, _, err1 = RawSyscall6(SYS_PRCTL, PR_SET_PDEATHSIG, uintptr(sys.Pdeathsig), 0, 0, 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
|
||||||
|
// Signal self if parent is already dead. This might cause a
|
||||||
|
// duplicate signal in rare cases, but it won't matter when
|
||||||
|
// using SIGKILL.
|
||||||
|
pid, _ = rawSyscallNoError(SYS_GETPPID, 0, 0, 0)
|
||||||
|
if pid != ppid {
|
||||||
|
pid, _ = rawSyscallNoError(SYS_GETPID, 0, 0, 0)
|
||||||
|
_, _, err1 = RawSyscall(SYS_KILL, pid, uintptr(sys.Pdeathsig), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass 1: look for fd[i] < i and move those up above len(fd)
|
||||||
|
// so that pass 2 won't stomp on an fd it needs later.
|
||||||
|
if pipe < nextfd {
|
||||||
|
_, _, err1 = RawSyscall(SYS_DUP3, uintptr(pipe), uintptr(nextfd), O_CLOEXEC)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
pipe = nextfd
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
for i = 0; i < len(fd); i++ {
|
||||||
|
if fd[i] >= 0 && fd[i] < i {
|
||||||
|
if nextfd == pipe { // don't stomp on pipe
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
_, _, err1 = RawSyscall(SYS_DUP3, uintptr(fd[i]), uintptr(nextfd), O_CLOEXEC)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
fd[i] = nextfd
|
||||||
|
nextfd++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass 2: dup fd[i] down onto i.
|
||||||
|
for i = 0; i < len(fd); i++ {
|
||||||
|
if fd[i] == -1 {
|
||||||
|
RawSyscall(SYS_CLOSE, uintptr(i), 0, 0)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if fd[i] == i {
|
||||||
|
// dup2(i, i) won't clear close-on-exec flag on Linux,
|
||||||
|
// probably not elsewhere either.
|
||||||
|
_, _, err1 = RawSyscall(fcntl64Syscall, uintptr(fd[i]), F_SETFD, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// The new fd is created NOT close-on-exec,
|
||||||
|
// which is exactly what we want.
|
||||||
|
_, _, err1 = RawSyscall(SYS_DUP3, uintptr(fd[i]), uintptr(i), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// By convention, we don't close-on-exec the fds we are
|
||||||
|
// started with, so if len(fd) < 3, close 0, 1, 2 as needed.
|
||||||
|
// Programs that know they inherit fds >= 3 will need
|
||||||
|
// to set them close-on-exec.
|
||||||
|
for i = len(fd); i < 3; i++ {
|
||||||
|
RawSyscall(SYS_CLOSE, uintptr(i), 0, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Detach fd 0 from tty
|
||||||
|
if sys.Noctty {
|
||||||
|
_, _, err1 = RawSyscall(SYS_IOCTL, 0, uintptr(TIOCNOTTY), 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the controlling TTY to Ctty
|
||||||
|
if sys.Setctty {
|
||||||
|
_, _, err1 = RawSyscall(SYS_IOCTL, uintptr(sys.Ctty), uintptr(TIOCSCTTY), 1)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore original rlimit.
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
rawSetrlimit(RLIMIT_NOFILE, &rlim)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enable tracing if requested.
|
||||||
|
// Do this right before exec so that we don't unnecessarily trace the runtime
|
||||||
|
// setting up after the fork. See issue #21428.
|
||||||
|
if sys.Ptrace {
|
||||||
|
_, _, err1 = RawSyscall(SYS_PTRACE, uintptr(PTRACE_TRACEME), 0, 0)
|
||||||
|
if err1 != 0 {
|
||||||
|
goto childerror
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Time to exec.
|
||||||
|
_, _, err1 = RawSyscall(SYS_EXECVE,
|
||||||
|
uintptr(unsafe.Pointer(argv0)),
|
||||||
|
uintptr(unsafe.Pointer(&argv[0])),
|
||||||
|
uintptr(unsafe.Pointer(&envv[0])))
|
||||||
|
|
||||||
|
childerror:
|
||||||
|
// send error code on pipe
|
||||||
|
RawSyscall(SYS_WRITE, uintptr(pipe), uintptr(unsafe.Pointer(&err1)), unsafe.Sizeof(err1))
|
||||||
|
for {
|
||||||
|
RawSyscall(SYS_EXIT, 253, 0, 0)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.forkAndExecInChild1")
|
||||||
|
}
|
||||||
|
|
||||||
|
func formatIDMappings(idMap []SysProcIDMap) []byte {
|
||||||
|
/* TODO(xsw):
|
||||||
|
var data []byte
|
||||||
|
for _, im := range idMap {
|
||||||
|
data = append(data, itoa.Itoa(im.ContainerID)+" "+itoa.Itoa(im.HostID)+" "+itoa.Itoa(im.Size)+"\n"...)
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.formatIDMappings")
|
||||||
|
}
|
||||||
|
|
||||||
|
// writeIDMappings writes the user namespace User ID or Group ID mappings to the specified path.
|
||||||
|
func writeIDMappings(path string, idMap []SysProcIDMap) error {
|
||||||
|
/* TODO(xsw):
|
||||||
|
fd, err := Open(path, O_RDWR, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := Write(fd, formatIDMappings(idMap)); err != nil {
|
||||||
|
Close(fd)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := Close(fd); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.writeIDMappings")
|
||||||
|
}
|
||||||
|
|
||||||
|
// writeSetgroups writes to /proc/PID/setgroups "deny" if enable is false
|
||||||
|
// and "allow" if enable is true.
|
||||||
|
// This is needed since kernel 3.19, because you can't write gid_map without
|
||||||
|
// disabling setgroups() system call.
|
||||||
|
func writeSetgroups(pid int, enable bool) error {
|
||||||
|
/* TODO(xsw):
|
||||||
|
sgf := "/proc/" + itoa.Itoa(pid) + "/setgroups"
|
||||||
|
fd, err := Open(sgf, O_RDWR, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var data []byte
|
||||||
|
if enable {
|
||||||
|
data = []byte("allow")
|
||||||
|
} else {
|
||||||
|
data = []byte("deny")
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := Write(fd, data); err != nil {
|
||||||
|
Close(fd)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return Close(fd)
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.writeSetgroups")
|
||||||
|
}
|
||||||
|
|
||||||
|
// writeUidGidMappings writes User ID and Group ID mappings for user namespaces
|
||||||
|
// for a process and it is called from the parent process.
|
||||||
|
func writeUidGidMappings(pid int, sys *SysProcAttr) error {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if sys.UidMappings != nil {
|
||||||
|
uidf := "/proc/" + itoa.Itoa(pid) + "/uid_map"
|
||||||
|
if err := writeIDMappings(uidf, sys.UidMappings); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if sys.GidMappings != nil {
|
||||||
|
// If the kernel is too old to support /proc/PID/setgroups, writeSetGroups will return ENOENT; this is OK.
|
||||||
|
if err := writeSetgroups(pid, sys.GidMappingsEnableSetgroups); err != nil && err != ENOENT {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
gidf := "/proc/" + itoa.Itoa(pid) + "/gid_map"
|
||||||
|
if err := writeIDMappings(gidf, sys.GidMappings); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.writeUidGidMappings")
|
||||||
|
}
|
||||||
283
internal/lib/syscall/exec_unix.go
Normal file
283
internal/lib/syscall/exec_unix.go
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//go:build unix
|
||||||
|
|
||||||
|
// Fork, exec, wait, etc.
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ForkLock is used to synchronize creation of new file descriptors
|
||||||
|
// with fork.
|
||||||
|
//
|
||||||
|
// We want the child in a fork/exec sequence to inherit only the
|
||||||
|
// file descriptors we intend. To do that, we mark all file
|
||||||
|
// descriptors close-on-exec and then, in the child, explicitly
|
||||||
|
// unmark the ones we want the exec'ed program to keep.
|
||||||
|
// Unix doesn't make this easy: there is, in general, no way to
|
||||||
|
// allocate a new file descriptor close-on-exec. Instead you
|
||||||
|
// have to allocate the descriptor and then mark it close-on-exec.
|
||||||
|
// If a fork happens between those two events, the child's exec
|
||||||
|
// will inherit an unwanted file descriptor.
|
||||||
|
//
|
||||||
|
// This lock solves that race: the create new fd/mark close-on-exec
|
||||||
|
// operation is done holding ForkLock for reading, and the fork itself
|
||||||
|
// is done holding ForkLock for writing. At least, that's the idea.
|
||||||
|
// There are some complications.
|
||||||
|
//
|
||||||
|
// Some system calls that create new file descriptors can block
|
||||||
|
// for arbitrarily long times: open on a hung NFS server or named
|
||||||
|
// pipe, accept on a socket, and so on. We can't reasonably grab
|
||||||
|
// the lock across those operations.
|
||||||
|
//
|
||||||
|
// It is worse to inherit some file descriptors than others.
|
||||||
|
// If a non-malicious child accidentally inherits an open ordinary file,
|
||||||
|
// that's not a big deal. On the other hand, if a long-lived child
|
||||||
|
// accidentally inherits the write end of a pipe, then the reader
|
||||||
|
// of that pipe will not see EOF until that child exits, potentially
|
||||||
|
// causing the parent program to hang. This is a common problem
|
||||||
|
// in threaded C programs that use popen.
|
||||||
|
//
|
||||||
|
// Luckily, the file descriptors that are most important not to
|
||||||
|
// inherit are not the ones that can take an arbitrarily long time
|
||||||
|
// to create: pipe returns instantly, and the net package uses
|
||||||
|
// non-blocking I/O to accept on a listening socket.
|
||||||
|
// The rules for which file descriptor-creating operations use the
|
||||||
|
// ForkLock are as follows:
|
||||||
|
//
|
||||||
|
// - Pipe. Use pipe2 if available. Otherwise, does not block,
|
||||||
|
// so use ForkLock.
|
||||||
|
// - Socket. Use SOCK_CLOEXEC if available. Otherwise, does not
|
||||||
|
// block, so use ForkLock.
|
||||||
|
// - Open. Use O_CLOEXEC if available. Otherwise, may block,
|
||||||
|
// so live with the race.
|
||||||
|
// - Dup. Use F_DUPFD_CLOEXEC or dup3 if available. Otherwise,
|
||||||
|
// does not block, so use ForkLock.
|
||||||
|
var ForkLock sync.RWMutex
|
||||||
|
|
||||||
|
func CloseOnExec(fd int) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
fcntl(fd, F_SETFD, FD_CLOEXEC)
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.CloseOnExec")
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetNonblock(fd int, nonblocking bool) (err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
flag, err := fcntl(fd, F_GETFL, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if nonblocking {
|
||||||
|
flag |= O_NONBLOCK
|
||||||
|
} else {
|
||||||
|
flag &^= O_NONBLOCK
|
||||||
|
}
|
||||||
|
_, err = fcntl(fd, F_SETFL, flag)
|
||||||
|
return err
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.SetNonblock")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Credential holds user and group identities to be assumed
|
||||||
|
// by a child process started by StartProcess.
|
||||||
|
type Credential struct {
|
||||||
|
Uid uint32 // User ID.
|
||||||
|
Gid uint32 // Group ID.
|
||||||
|
Groups []uint32 // Supplementary group IDs.
|
||||||
|
NoSetGroups bool // If true, don't set supplementary groups
|
||||||
|
}
|
||||||
|
|
||||||
|
// ProcAttr holds attributes that will be applied to a new process started
|
||||||
|
// by StartProcess.
|
||||||
|
type ProcAttr struct {
|
||||||
|
Dir string // Current working directory.
|
||||||
|
Env []string // Environment.
|
||||||
|
Files []uintptr // File descriptors.
|
||||||
|
Sys *SysProcAttr
|
||||||
|
}
|
||||||
|
|
||||||
|
var zeroProcAttr ProcAttr
|
||||||
|
var zeroSysProcAttr SysProcAttr
|
||||||
|
|
||||||
|
func forkExec(argv0 string, argv []string, attr *ProcAttr) (pid int, err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
var p [2]int
|
||||||
|
var n int
|
||||||
|
var err1 Errno
|
||||||
|
var wstatus WaitStatus
|
||||||
|
|
||||||
|
if attr == nil {
|
||||||
|
attr = &zeroProcAttr
|
||||||
|
}
|
||||||
|
sys := attr.Sys
|
||||||
|
if sys == nil {
|
||||||
|
sys = &zeroSysProcAttr
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert args to C form.
|
||||||
|
argv0p, err := BytePtrFromString(argv0)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
argvp, err := SlicePtrFromStrings(argv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
envvp, err := SlicePtrFromStrings(attr.Env)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime.GOOS == "freebsd" || runtime.GOOS == "dragonfly") && len(argv) > 0 && len(argv[0]) > len(argv0) {
|
||||||
|
argvp[0] = argv0p
|
||||||
|
}
|
||||||
|
|
||||||
|
var chroot *byte
|
||||||
|
if sys.Chroot != "" {
|
||||||
|
chroot, err = BytePtrFromString(sys.Chroot)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var dir *byte
|
||||||
|
if attr.Dir != "" {
|
||||||
|
dir, err = BytePtrFromString(attr.Dir)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Both Setctty and Foreground use the Ctty field,
|
||||||
|
// but they give it slightly different meanings.
|
||||||
|
if sys.Setctty && sys.Foreground {
|
||||||
|
return 0, errorspkg.New("both Setctty and Foreground set in SysProcAttr")
|
||||||
|
}
|
||||||
|
if sys.Setctty && sys.Ctty >= len(attr.Files) {
|
||||||
|
return 0, errorspkg.New("Setctty set but Ctty not valid in child")
|
||||||
|
}
|
||||||
|
|
||||||
|
acquireForkLock()
|
||||||
|
|
||||||
|
// Allocate child status pipe close on exec.
|
||||||
|
if err = forkExecPipe(p[:]); err != nil {
|
||||||
|
releaseForkLock()
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kick off child.
|
||||||
|
pid, err1 = forkAndExecInChild(argv0p, argvp, envvp, chroot, dir, attr, sys, p[1])
|
||||||
|
if err1 != 0 {
|
||||||
|
Close(p[0])
|
||||||
|
Close(p[1])
|
||||||
|
releaseForkLock()
|
||||||
|
return 0, Errno(err1)
|
||||||
|
}
|
||||||
|
releaseForkLock()
|
||||||
|
|
||||||
|
// Read child error status from pipe.
|
||||||
|
Close(p[1])
|
||||||
|
for {
|
||||||
|
n, err = readlen(p[0], (*byte)(unsafe.Pointer(&err1)), int(unsafe.Sizeof(err1)))
|
||||||
|
if err != EINTR {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Close(p[0])
|
||||||
|
if err != nil || n != 0 {
|
||||||
|
if n == int(unsafe.Sizeof(err1)) {
|
||||||
|
err = Errno(err1)
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
|
err = EPIPE
|
||||||
|
}
|
||||||
|
|
||||||
|
// Child failed; wait for it to exit, to make sure
|
||||||
|
// the zombies don't accumulate.
|
||||||
|
_, err1 := Wait4(pid, &wstatus, 0, nil)
|
||||||
|
for err1 == EINTR {
|
||||||
|
_, err1 = Wait4(pid, &wstatus, 0, nil)
|
||||||
|
}
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read got EOF, so pipe closed on exec, so exec succeeded.
|
||||||
|
return pid, nil
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.forkExec")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Combination of fork and exec, careful to be thread safe.
|
||||||
|
func ForkExec(argv0 string, argv []string, attr *ProcAttr) (pid int, err error) {
|
||||||
|
return forkExec(argv0, argv, attr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// StartProcess wraps ForkExec for package os.
|
||||||
|
func StartProcess(argv0 string, argv []string, attr *ProcAttr) (pid int, handle uintptr, err error) {
|
||||||
|
pid, err = forkExec(argv0, argv, attr)
|
||||||
|
return pid, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Implemented in runtime package.
|
||||||
|
func runtime_BeforeExec()
|
||||||
|
func runtime_AfterExec()
|
||||||
|
|
||||||
|
// execveLibc is non-nil on OS using libc syscall, set to execve in exec_libc.go; this
|
||||||
|
// avoids a build dependency for other platforms.
|
||||||
|
var execveLibc func(path uintptr, argv uintptr, envp uintptr) Errno
|
||||||
|
var execveDarwin func(path *byte, argv **byte, envp **byte) error
|
||||||
|
var execveOpenBSD func(path *byte, argv **byte, envp **byte) error
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Exec invokes the execve(2) system call.
|
||||||
|
func Exec(argv0 string, argv []string, envv []string) (err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
argv0p, err := BytePtrFromString(argv0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
argvp, err := SlicePtrFromStrings(argv)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
envvp, err := SlicePtrFromStrings(envv)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
runtime_BeforeExec()
|
||||||
|
|
||||||
|
rlim, rlimOK := origRlimitNofile.Load().(Rlimit)
|
||||||
|
if rlimOK && rlim.Cur != 0 {
|
||||||
|
Setrlimit(RLIMIT_NOFILE, &rlim)
|
||||||
|
}
|
||||||
|
|
||||||
|
var err1 error
|
||||||
|
if runtime.GOOS == "solaris" || runtime.GOOS == "illumos" || runtime.GOOS == "aix" {
|
||||||
|
// RawSyscall should never be used on Solaris, illumos, or AIX.
|
||||||
|
err1 = execveLibc(
|
||||||
|
uintptr(unsafe.Pointer(argv0p)),
|
||||||
|
uintptr(unsafe.Pointer(&argvp[0])),
|
||||||
|
uintptr(unsafe.Pointer(&envvp[0])))
|
||||||
|
} else if runtime.GOOS == "darwin" || runtime.GOOS == "ios" {
|
||||||
|
// Similarly on Darwin.
|
||||||
|
err1 = execveDarwin(argv0p, &argvp[0], &envvp[0])
|
||||||
|
} else if runtime.GOOS == "openbsd" && (runtime.GOARCH == "386" || runtime.GOARCH == "amd64" || runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
|
||||||
|
// Similarly on OpenBSD.
|
||||||
|
err1 = execveOpenBSD(argv0p, &argvp[0], &envvp[0])
|
||||||
|
} else {
|
||||||
|
_, _, err1 = RawSyscall(SYS_EXECVE,
|
||||||
|
uintptr(unsafe.Pointer(argv0p)),
|
||||||
|
uintptr(unsafe.Pointer(&argvp[0])),
|
||||||
|
uintptr(unsafe.Pointer(&envvp[0])))
|
||||||
|
}
|
||||||
|
runtime_AfterExec()
|
||||||
|
return err1
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.Exec")
|
||||||
|
}
|
||||||
@@ -22,8 +22,40 @@ import (
|
|||||||
|
|
||||||
"github.com/goplus/llgo/c"
|
"github.com/goplus/llgo/c"
|
||||||
"github.com/goplus/llgo/c/os"
|
"github.com/goplus/llgo/c/os"
|
||||||
|
"github.com/goplus/llgo/c/syscall"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Timespec syscall.Timespec
|
||||||
|
type Timeval syscall.Timeval
|
||||||
|
|
||||||
|
// Unix returns the time stored in ts as seconds plus nanoseconds.
|
||||||
|
func (ts *Timespec) Unix() (sec int64, nsec int64) {
|
||||||
|
return int64(ts.Sec), int64(ts.Nsec)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unix returns the time stored in tv as seconds plus nanoseconds.
|
||||||
|
func (tv *Timeval) Unix() (sec int64, nsec int64) {
|
||||||
|
return int64(tv.Sec), int64(tv.Usec) * 1000
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nano returns the time stored in ts as nanoseconds.
|
||||||
|
func (ts *Timespec) Nano() int64 {
|
||||||
|
return int64(ts.Sec)*1e9 + int64(ts.Nsec)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nano returns the time stored in tv as nanoseconds.
|
||||||
|
func (tv *Timeval) Nano() int64 {
|
||||||
|
return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000
|
||||||
|
}
|
||||||
|
|
||||||
|
func Getpagesize() int {
|
||||||
|
panic("todo: syscall.Getpagesize")
|
||||||
|
}
|
||||||
|
|
||||||
|
func Exit(code int) {
|
||||||
|
os.Exit(c.Int(code))
|
||||||
|
}
|
||||||
|
|
||||||
func Getcwd(buf []byte) (n int, err error) {
|
func Getcwd(buf []byte) (n int, err error) {
|
||||||
ptr := unsafe.Pointer(unsafe.SliceData(buf))
|
ptr := unsafe.Pointer(unsafe.SliceData(buf))
|
||||||
ret := os.Getcwd(ptr, uintptr(len(buf)))
|
ret := os.Getcwd(ptr, uintptr(len(buf)))
|
||||||
@@ -92,3 +124,21 @@ func Close(fd int) (err error) {
|
|||||||
}
|
}
|
||||||
return Errno(os.Errno)
|
return Errno(os.Errno)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Stat_t = syscall.Stat_t
|
||||||
|
|
||||||
|
func Lstat(path string, stat *Stat_t) (err error) {
|
||||||
|
ret := os.Lstat(c.AllocaCStr(path), stat)
|
||||||
|
if ret == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return Errno(os.Errno)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Stat(path string, stat *Stat_t) (err error) {
|
||||||
|
ret := os.Stat(c.AllocaCStr(path), stat)
|
||||||
|
if ret == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return Errno(os.Errno)
|
||||||
|
}
|
||||||
|
|||||||
503
internal/lib/syscall/syscall_bsd.go
Normal file
503
internal/lib/syscall/syscall_bsd.go
Normal file
@@ -0,0 +1,503 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//go:build darwin || dragonfly || freebsd || netbsd || openbsd
|
||||||
|
|
||||||
|
// BSD system call wrappers shared by *BSD based systems
|
||||||
|
// including OS X (Darwin) and FreeBSD. Like the other
|
||||||
|
// syscall_*.go files it is compiled as Go code but also
|
||||||
|
// used as input to mksyscall which parses the //sys
|
||||||
|
// lines and generates system call stubs.
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
func Getgroups() (gids []int, err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
n, err := getgroups(0, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if n == 0 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sanity check group count. Max is 16 on BSD.
|
||||||
|
if n < 0 || n > 1000 {
|
||||||
|
return nil, EINVAL
|
||||||
|
}
|
||||||
|
|
||||||
|
a := make([]_Gid_t, n)
|
||||||
|
n, err = getgroups(n, &a[0])
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
gids = make([]int, n)
|
||||||
|
for i, v := range a[0:n] {
|
||||||
|
gids[i] = int(v)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.Getgroups")
|
||||||
|
}
|
||||||
|
|
||||||
|
func Setgroups(gids []int) (err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
if len(gids) == 0 {
|
||||||
|
return setgroups(0, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
a := make([]_Gid_t, len(gids))
|
||||||
|
for i, v := range gids {
|
||||||
|
a[i] = _Gid_t(v)
|
||||||
|
}
|
||||||
|
return setgroups(len(a), &a[0])
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.Setgroups")
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadDirent(fd int, buf []byte) (n int, err error) {
|
||||||
|
/* TODO(xsw):
|
||||||
|
// Final argument is (basep *uintptr) and the syscall doesn't take nil.
|
||||||
|
// 64 bits should be enough. (32 bits isn't even on 386). Since the
|
||||||
|
// actual system call is getdirentries64, 64 is a good guess.
|
||||||
|
// TODO(rsc): Can we use a single global basep for all calls?
|
||||||
|
var base = (*uintptr)(unsafe.Pointer(new(uint64)))
|
||||||
|
return Getdirentries(fd, buf, base)
|
||||||
|
*/
|
||||||
|
panic("todo: syscall.ReadDirent")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait status is 7 bits at bottom, either 0 (exited),
|
||||||
|
// 0x7F (stopped), or a signal number that caused an exit.
|
||||||
|
// The 0x80 bit is whether there was a core dump.
|
||||||
|
// An extra number (exit code, signal causing a stop)
|
||||||
|
// is in the high bits.
|
||||||
|
|
||||||
|
type WaitStatus uint32
|
||||||
|
|
||||||
|
const (
|
||||||
|
mask = 0x7F
|
||||||
|
core = 0x80
|
||||||
|
shift = 8
|
||||||
|
|
||||||
|
exited = 0
|
||||||
|
stopped = 0x7F
|
||||||
|
)
|
||||||
|
|
||||||
|
func (w WaitStatus) Exited() bool { return w&mask == exited }
|
||||||
|
|
||||||
|
func (w WaitStatus) ExitStatus() int {
|
||||||
|
if w&mask != exited {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return int(w >> shift)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }
|
||||||
|
|
||||||
|
func (w WaitStatus) Signal() Signal {
|
||||||
|
sig := Signal(w & mask)
|
||||||
|
if sig == stopped || sig == 0 {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return sig
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
|
||||||
|
|
||||||
|
func (w WaitStatus) Stopped() bool { return w&mask == stopped && Signal(w>>shift) != SIGSTOP }
|
||||||
|
|
||||||
|
func (w WaitStatus) Continued() bool { return w&mask == stopped && Signal(w>>shift) == SIGSTOP }
|
||||||
|
|
||||||
|
func (w WaitStatus) StopSignal() Signal {
|
||||||
|
if !w.Stopped() {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return Signal(w>>shift) & 0xFF
|
||||||
|
}
|
||||||
|
|
||||||
|
func (w WaitStatus) TrapCause() int { return -1 }
|
||||||
|
|
||||||
|
/* TODO(xsw):
|
||||||
|
func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
|
||||||
|
var status _C_int
|
||||||
|
wpid, err = wait4(pid, &status, options, rusage)
|
||||||
|
if wstatus != nil {
|
||||||
|
*wstatus = WaitStatus(status)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
if sa.Port < 0 || sa.Port > 0xFFFF {
|
||||||
|
return nil, 0, EINVAL
|
||||||
|
}
|
||||||
|
sa.raw.Len = SizeofSockaddrInet4
|
||||||
|
sa.raw.Family = AF_INET
|
||||||
|
p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
|
||||||
|
p[0] = byte(sa.Port >> 8)
|
||||||
|
p[1] = byte(sa.Port)
|
||||||
|
sa.raw.Addr = sa.Addr
|
||||||
|
return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
if sa.Port < 0 || sa.Port > 0xFFFF {
|
||||||
|
return nil, 0, EINVAL
|
||||||
|
}
|
||||||
|
sa.raw.Len = SizeofSockaddrInet6
|
||||||
|
sa.raw.Family = AF_INET6
|
||||||
|
p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
|
||||||
|
p[0] = byte(sa.Port >> 8)
|
||||||
|
p[1] = byte(sa.Port)
|
||||||
|
sa.raw.Scope_id = sa.ZoneId
|
||||||
|
sa.raw.Addr = sa.Addr
|
||||||
|
return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
name := sa.Name
|
||||||
|
n := len(name)
|
||||||
|
if n >= len(sa.raw.Path) || n == 0 {
|
||||||
|
return nil, 0, EINVAL
|
||||||
|
}
|
||||||
|
sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL
|
||||||
|
sa.raw.Family = AF_UNIX
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
sa.raw.Path[i] = int8(name[i])
|
||||||
|
}
|
||||||
|
return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {
|
||||||
|
if sa.Index == 0 {
|
||||||
|
return nil, 0, EINVAL
|
||||||
|
}
|
||||||
|
sa.raw.Len = sa.Len
|
||||||
|
sa.raw.Family = AF_LINK
|
||||||
|
sa.raw.Index = sa.Index
|
||||||
|
sa.raw.Type = sa.Type
|
||||||
|
sa.raw.Nlen = sa.Nlen
|
||||||
|
sa.raw.Alen = sa.Alen
|
||||||
|
sa.raw.Slen = sa.Slen
|
||||||
|
sa.raw.Data = sa.Data
|
||||||
|
return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
|
||||||
|
switch rsa.Addr.Family {
|
||||||
|
case AF_LINK:
|
||||||
|
pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrDatalink)
|
||||||
|
sa.Len = pp.Len
|
||||||
|
sa.Family = pp.Family
|
||||||
|
sa.Index = pp.Index
|
||||||
|
sa.Type = pp.Type
|
||||||
|
sa.Nlen = pp.Nlen
|
||||||
|
sa.Alen = pp.Alen
|
||||||
|
sa.Slen = pp.Slen
|
||||||
|
sa.Data = pp.Data
|
||||||
|
return sa, nil
|
||||||
|
|
||||||
|
case AF_UNIX:
|
||||||
|
pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
|
||||||
|
if pp.Len < 2 || pp.Len > SizeofSockaddrUnix {
|
||||||
|
return nil, EINVAL
|
||||||
|
}
|
||||||
|
sa := new(SockaddrUnix)
|
||||||
|
|
||||||
|
// Some BSDs include the trailing NUL in the length, whereas
|
||||||
|
// others do not. Work around this by subtracting the leading
|
||||||
|
// family and len. The path is then scanned to see if a NUL
|
||||||
|
// terminator still exists within the length.
|
||||||
|
n := int(pp.Len) - 2 // subtract leading Family, Len
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
if pp.Path[i] == 0 {
|
||||||
|
// found early NUL; assume Len included the NUL
|
||||||
|
// or was overestimating.
|
||||||
|
n = i
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))
|
||||||
|
return sa, nil
|
||||||
|
|
||||||
|
case AF_INET:
|
||||||
|
pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrInet4)
|
||||||
|
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
|
||||||
|
sa.Port = int(p[0])<<8 + int(p[1])
|
||||||
|
sa.Addr = pp.Addr
|
||||||
|
return sa, nil
|
||||||
|
|
||||||
|
case AF_INET6:
|
||||||
|
pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
|
||||||
|
sa := new(SockaddrInet6)
|
||||||
|
p := (*[2]byte)(unsafe.Pointer(&pp.Port))
|
||||||
|
sa.Port = int(p[0])<<8 + int(p[1])
|
||||||
|
sa.ZoneId = pp.Scope_id
|
||||||
|
sa.Addr = pp.Addr
|
||||||
|
return sa, nil
|
||||||
|
}
|
||||||
|
return nil, EAFNOSUPPORT
|
||||||
|
}
|
||||||
|
|
||||||
|
func Accept(fd int) (nfd int, sa Sockaddr, err error) {
|
||||||
|
var rsa RawSockaddrAny
|
||||||
|
var len _Socklen = SizeofSockaddrAny
|
||||||
|
nfd, err = accept(fd, &rsa, &len)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 {
|
||||||
|
// Accepted socket has no address.
|
||||||
|
// This is likely due to a bug in xnu kernels,
|
||||||
|
// where instead of ECONNABORTED error socket
|
||||||
|
// is accepted, but has no address.
|
||||||
|
Close(nfd)
|
||||||
|
return 0, nil, ECONNABORTED
|
||||||
|
}
|
||||||
|
sa, err = anyToSockaddr(&rsa)
|
||||||
|
if err != nil {
|
||||||
|
Close(nfd)
|
||||||
|
nfd = 0
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func Getsockname(fd int) (sa Sockaddr, err error) {
|
||||||
|
var rsa RawSockaddrAny
|
||||||
|
var len _Socklen = SizeofSockaddrAny
|
||||||
|
if err = getsockname(fd, &rsa, &len); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be
|
||||||
|
// reported upstream.
|
||||||
|
if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {
|
||||||
|
rsa.Addr.Family = AF_UNIX
|
||||||
|
rsa.Addr.Len = SizeofSockaddrUnix
|
||||||
|
}
|
||||||
|
return anyToSockaddr(&rsa)
|
||||||
|
}
|
||||||
|
|
||||||
|
//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
|
||||||
|
|
||||||
|
func GetsockoptByte(fd, level, opt int) (value byte, err error) {
|
||||||
|
var n byte
|
||||||
|
vallen := _Socklen(1)
|
||||||
|
err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {
|
||||||
|
vallen := _Socklen(4)
|
||||||
|
err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)
|
||||||
|
return value, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {
|
||||||
|
var value IPMreq
|
||||||
|
vallen := _Socklen(SizeofIPMreq)
|
||||||
|
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||||
|
return &value, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
|
||||||
|
var value IPv6Mreq
|
||||||
|
vallen := _Socklen(SizeofIPv6Mreq)
|
||||||
|
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||||
|
return &value, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
|
||||||
|
var value IPv6MTUInfo
|
||||||
|
vallen := _Socklen(SizeofIPv6MTUInfo)
|
||||||
|
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||||
|
return &value, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
|
||||||
|
var value ICMPv6Filter
|
||||||
|
vallen := _Socklen(SizeofICMPv6Filter)
|
||||||
|
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||||
|
return &value, err
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
|
||||||
|
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
|
||||||
|
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
||||||
|
|
||||||
|
func recvmsgRaw(fd int, p, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {
|
||||||
|
var msg Msghdr
|
||||||
|
msg.Name = (*byte)(unsafe.Pointer(rsa))
|
||||||
|
msg.Namelen = uint32(SizeofSockaddrAny)
|
||||||
|
var iov Iovec
|
||||||
|
if len(p) > 0 {
|
||||||
|
iov.Base = &p[0]
|
||||||
|
iov.SetLen(len(p))
|
||||||
|
}
|
||||||
|
var dummy byte
|
||||||
|
if len(oob) > 0 {
|
||||||
|
// receive at least one normal byte
|
||||||
|
if len(p) == 0 {
|
||||||
|
iov.Base = &dummy
|
||||||
|
iov.SetLen(1)
|
||||||
|
}
|
||||||
|
msg.Control = &oob[0]
|
||||||
|
msg.SetControllen(len(oob))
|
||||||
|
}
|
||||||
|
msg.Iov = &iov
|
||||||
|
msg.Iovlen = 1
|
||||||
|
if n, err = recvmsg(fd, &msg, flags); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
oobn = int(msg.Controllen)
|
||||||
|
recvflags = int(msg.Flags)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
|
||||||
|
|
||||||
|
func sendmsgN(fd int, p, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {
|
||||||
|
var msg Msghdr
|
||||||
|
msg.Name = (*byte)(ptr)
|
||||||
|
msg.Namelen = uint32(salen)
|
||||||
|
var iov Iovec
|
||||||
|
if len(p) > 0 {
|
||||||
|
iov.Base = &p[0]
|
||||||
|
iov.SetLen(len(p))
|
||||||
|
}
|
||||||
|
var dummy byte
|
||||||
|
if len(oob) > 0 {
|
||||||
|
// send at least one normal byte
|
||||||
|
if len(p) == 0 {
|
||||||
|
iov.Base = &dummy
|
||||||
|
iov.SetLen(1)
|
||||||
|
}
|
||||||
|
msg.Control = &oob[0]
|
||||||
|
msg.SetControllen(len(oob))
|
||||||
|
}
|
||||||
|
msg.Iov = &iov
|
||||||
|
msg.Iovlen = 1
|
||||||
|
if n, err = sendmsg(fd, &msg, flags); err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
if len(oob) > 0 && len(p) == 0 {
|
||||||
|
n = 0
|
||||||
|
}
|
||||||
|
return n, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)
|
||||||
|
|
||||||
|
func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {
|
||||||
|
var change, event unsafe.Pointer
|
||||||
|
if len(changes) > 0 {
|
||||||
|
change = unsafe.Pointer(&changes[0])
|
||||||
|
}
|
||||||
|
if len(events) > 0 {
|
||||||
|
event = unsafe.Pointer(&events[0])
|
||||||
|
}
|
||||||
|
return kevent(kq, change, len(changes), event, len(events), timeout)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Sysctl(name string) (value string, err error) {
|
||||||
|
// Translate name to mib number.
|
||||||
|
mib, err := nametomib(name)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find size.
|
||||||
|
n := uintptr(0)
|
||||||
|
if err = sysctl(mib, nil, &n, nil, 0); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if n == 0 {
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read into buffer of that size.
|
||||||
|
buf := make([]byte, n)
|
||||||
|
if err = sysctl(mib, &buf[0], &n, nil, 0); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Throw away terminating NUL.
|
||||||
|
if n > 0 && buf[n-1] == '\x00' {
|
||||||
|
n--
|
||||||
|
}
|
||||||
|
return string(buf[0:n]), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func SysctlUint32(name string) (value uint32, err error) {
|
||||||
|
// Translate name to mib number.
|
||||||
|
mib, err := nametomib(name)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read into buffer of that size.
|
||||||
|
n := uintptr(4)
|
||||||
|
buf := make([]byte, 4)
|
||||||
|
if err = sysctl(mib, &buf[0], &n, nil, 0); err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
if n != 4 {
|
||||||
|
return 0, EIO
|
||||||
|
}
|
||||||
|
return *(*uint32)(unsafe.Pointer(&buf[0])), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys utimes(path string, timeval *[2]Timeval) (err error)
|
||||||
|
|
||||||
|
func Utimes(path string, tv []Timeval) (err error) {
|
||||||
|
if len(tv) != 2 {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
|
||||||
|
}
|
||||||
|
|
||||||
|
func UtimesNano(path string, ts []Timespec) error {
|
||||||
|
if len(ts) != 2 {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
err := utimensat(_AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||||
|
if err != ENOSYS {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Not as efficient as it could be because Timespec and
|
||||||
|
// Timeval have different types in the different OSes
|
||||||
|
tv := [2]Timeval{
|
||||||
|
NsecToTimeval(TimespecToNsec(ts[0])),
|
||||||
|
NsecToTimeval(TimespecToNsec(ts[1])),
|
||||||
|
}
|
||||||
|
return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys futimes(fd int, timeval *[2]Timeval) (err error)
|
||||||
|
|
||||||
|
func Futimes(fd int, tv []Timeval) (err error) {
|
||||||
|
if len(tv) != 2 {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys fcntl(fd int, cmd int, arg int) (val int, err error)
|
||||||
|
|
||||||
|
var mapper = &mmapper{
|
||||||
|
active: make(map[*byte][]byte),
|
||||||
|
mmap: mmap,
|
||||||
|
munmap: munmap,
|
||||||
|
}
|
||||||
|
|
||||||
|
func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
|
||||||
|
return mapper.Mmap(fd, offset, length, prot, flags)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Munmap(b []byte) (err error) {
|
||||||
|
return mapper.Munmap(b)
|
||||||
|
}
|
||||||
|
*/
|
||||||
16
internal/lib/syscall/syscall_linux.go
Normal file
16
internal/lib/syscall/syscall_linux.go
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
// Linux system calls.
|
||||||
|
// This file is compiled as ordinary Go code,
|
||||||
|
// but it is also input to mksyscall,
|
||||||
|
// which parses the //sys lines and generates system call stubs.
|
||||||
|
// Note that sometimes we use a lowercase //sys name and
|
||||||
|
// wrap it in our own nicer implementation.
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
|
||||||
|
panic("todo: syscall.Faccessat")
|
||||||
|
}
|
||||||
@@ -1,18 +1,8 @@
|
|||||||
/*
|
// Copyright 2009 The Go Authors. All rights reserved.
|
||||||
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
// Use of this source code is governed by a BSD-style
|
||||||
*
|
// license that can be found in the LICENSE file.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
//go:build unix
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
@@ -20,7 +10,7 @@ import (
|
|||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
"github.com/goplus/llgo/c"
|
"github.com/goplus/llgo/c"
|
||||||
"github.com/goplus/llgo/internal/lib/errors"
|
"github.com/goplus/llgo/internal/lib/internal/oserror"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -38,14 +28,15 @@ func (e Errno) Error() string {
|
|||||||
|
|
||||||
func (e Errno) Is(target error) bool {
|
func (e Errno) Is(target error) bool {
|
||||||
switch target {
|
switch target {
|
||||||
case ErrPermission:
|
case oserror.ErrPermission:
|
||||||
return e == EACCES || e == EPERM
|
return e == EACCES || e == EPERM
|
||||||
case ErrExist:
|
case oserror.ErrExist:
|
||||||
return e == EEXIST || e == ENOTEMPTY
|
return e == EEXIST || e == ENOTEMPTY
|
||||||
case ErrNotExist:
|
case oserror.ErrNotExist:
|
||||||
return e == ENOENT
|
return e == ENOENT
|
||||||
case errors.ErrUnsupported:
|
// TODO(xsw): go1.21
|
||||||
return e == ENOSYS || e == ENOTSUP || e == EOPNOTSUPP
|
// case errors.ErrUnsupported:
|
||||||
|
// return e == ENOSYS || e == ENOTSUP || e == EOPNOTSUPP
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1021,6 +1021,36 @@ func unixTime(sec int64, nsec int32) Time {
|
|||||||
return Time{uint64(nsec), sec + unixToInternal, Local}
|
return Time{uint64(nsec), sec + unixToInternal, Local}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unix returns the local Time corresponding to the given Unix time,
|
||||||
|
// sec seconds and nsec nanoseconds since January 1, 1970 UTC.
|
||||||
|
// It is valid to pass nsec outside the range [0, 999999999].
|
||||||
|
// Not all sec values have a corresponding time value. One such
|
||||||
|
// value is 1<<63-1 (the largest int64 value).
|
||||||
|
func Unix(sec int64, nsec int64) Time {
|
||||||
|
if nsec < 0 || nsec >= 1e9 {
|
||||||
|
n := nsec / 1e9
|
||||||
|
sec += n
|
||||||
|
nsec -= n * 1e9
|
||||||
|
if nsec < 0 {
|
||||||
|
nsec += 1e9
|
||||||
|
sec--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return unixTime(sec, int32(nsec))
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnixMilli returns the local Time corresponding to the given Unix time,
|
||||||
|
// msec milliseconds since January 1, 1970 UTC.
|
||||||
|
func UnixMilli(msec int64) Time {
|
||||||
|
return Unix(msec/1e3, (msec%1e3)*1e6)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnixMicro returns the local Time corresponding to the given Unix time,
|
||||||
|
// usec microseconds since January 1, 1970 UTC.
|
||||||
|
func UnixMicro(usec int64) Time {
|
||||||
|
return Unix(usec/1e6, (usec%1e6)*1e3)
|
||||||
|
}
|
||||||
|
|
||||||
func isLeap(year int) bool {
|
func isLeap(year int) bool {
|
||||||
return year%4 == 0 && (year%100 != 0 || year%400 == 0)
|
return year%4 == 0 && (year%100 != 0 || year%400 == 0)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user