Commit 5535b4e6 authored by Yuval Pavel Zholkover's avatar Yuval Pavel Zholkover Committed by Tobias Klauser

unix: FreeBSD 12 ino64 support

Background:
The 64-bit inode project was merged into the upcoming FreeBSD 12 release.
It changes the ABI for structs holding inodes: stat, statfs, dirent.
New system call numbers were introduced which accept the new struct layouts,
the old ones were marked as COMPAT11.
Their equivalent libc wrappers are using ELF symbol versioning.
The new wrappers have moved from @FBSD_1.0 to @FBSD_1.5.

Backward and forward compatability is achieved by always using the new struct
layouts while converting the old struct instance to the new layout on old kernels.
https://svnweb.freebsd.org/base?view=revision&revision=318736
https://svnweb.freebsd.org/base?view=revision&revision=320278

The same approach is used for Go:
The new Stat_t, Statfs_t and Dirent types hold 64-bit inodes and additional ABI
changes, they are generated from their C definitions in FreeBSD-12 using cgo -godefs.
Each type has an unexported *_freebsd11 counterpart generated the same way.
Previous directly exposed syscalls like Fstat have now a wrapper in place calling
either fstat or fstat_freebsd12 zsyscall wrapper based on the kern.osreldate.
If an old syscall needs to be used, then the returned *_freebsd11 result is converted
to the new layout before returning from the wrapper.

Introduce supportsABI() call to check the kern.osreldate sysctl for the ABI version.
Drop the old struct stat8 definition in favour of the <sys/stat.h> version.
Run the mktypes part of GOOS=freebsd GOARCH={386,amd64,arm} ./mkall.sh
on FreeBSD-12.0-ALPHA6 (r338675), updating all types except Kevent.

Expose Mknodat, both COMPAT11 version (currently missing) and the FreeBSD 12 one.
Some COMPAT11 syscalls have no direct FreeBSD 12 counterpart, in those cases
an *at(AT_FDCWD, ...) is used instead.

Updates golang/go#22448

Change-Id: I87940b88ae358db88103cdcd06f9cafbf4694cfc
Reviewed-on: https://go-review.googlesource.com/c/136816
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarGiovanni Bajo <rasky@develer.com>
Reviewed-by: 's avatarTobias Klauser <tobias.klauser@gmail.com>
parent eda9bb28
...@@ -13,9 +13,34 @@ ...@@ -13,9 +13,34 @@
package unix package unix
import ( import (
"sync"
"unsafe" "unsafe"
) )
const (
SYS_FSTAT_FREEBSD12 = 551 // { int fstat(int fd, _Out_ struct stat *sb); }
SYS_FSTATAT_FREEBSD12 = 552 // { int fstatat(int fd, _In_z_ char *path, \
SYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \
SYS_STATFS_FREEBSD12 = 555 // { int statfs(_In_z_ char *path, \
SYS_FSTATFS_FREEBSD12 = 556 // { int fstatfs(int fd, \
SYS_GETFSSTAT_FREEBSD12 = 557 // { int getfsstat( \
SYS_MKNODAT_FREEBSD12 = 559 // { int mknodat(int fd, _In_z_ char *path, \
)
// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.
var (
osreldateOnce sync.Once
osreldate uint32
)
// INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h
const _ino64First = 1200031
func supportsABI(ver uint32) bool {
osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
return osreldate >= ver
}
// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
type SockaddrDatalink struct { type SockaddrDatalink struct {
Len uint8 Len uint8
...@@ -121,17 +146,39 @@ func Getwd() (string, error) { ...@@ -121,17 +146,39 @@ func Getwd() (string, error) {
} }
func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
var _p0 unsafe.Pointer var (
var bufsize uintptr _p0 unsafe.Pointer
bufsize uintptr
oldBuf []statfs_freebsd11_t
needsConvert bool
)
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) if supportsABI(_ino64First) {
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) _p0 = unsafe.Pointer(&buf[0])
bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
} else {
n := len(buf)
oldBuf = make([]statfs_freebsd11_t, n)
_p0 = unsafe.Pointer(&oldBuf[0])
bufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n)
needsConvert = true
}
} }
r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) var sysno uintptr = SYS_GETFSSTAT
if supportsABI(_ino64First) {
sysno = SYS_GETFSSTAT_FREEBSD12
}
r0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags))
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = e1 err = e1
} }
if e1 == 0 && needsConvert {
for i := range oldBuf {
buf[i].convertFrom(&oldBuf[i])
}
}
return return
} }
...@@ -225,6 +272,234 @@ func Uname(uname *Utsname) error { ...@@ -225,6 +272,234 @@ func Uname(uname *Utsname) error {
return nil return nil
} }
func Stat(path string, st *Stat_t) (err error) {
var oldStat stat_freebsd11_t
if supportsABI(_ino64First) {
return fstatat_freebsd12(AT_FDCWD, path, st, 0)
}
err = stat(path, &oldStat)
if err != nil {
return err
}
st.convertFrom(&oldStat)
return nil
}
func Lstat(path string, st *Stat_t) (err error) {
var oldStat stat_freebsd11_t
if supportsABI(_ino64First) {
return fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)
}
err = lstat(path, &oldStat)
if err != nil {
return err
}
st.convertFrom(&oldStat)
return nil
}
func Fstat(fd int, st *Stat_t) (err error) {
var oldStat stat_freebsd11_t
if supportsABI(_ino64First) {
return fstat_freebsd12(fd, st)
}
err = fstat(fd, &oldStat)
if err != nil {
return err
}
st.convertFrom(&oldStat)
return nil
}
func Fstatat(fd int, path string, st *Stat_t, flags int) (err error) {
var oldStat stat_freebsd11_t
if supportsABI(_ino64First) {
return fstatat_freebsd12(fd, path, st, flags)
}
err = fstatat(fd, path, &oldStat, flags)
if err != nil {
return err
}
st.convertFrom(&oldStat)
return nil
}
func Statfs(path string, st *Statfs_t) (err error) {
var oldStatfs statfs_freebsd11_t
if supportsABI(_ino64First) {
return statfs_freebsd12(path, st)
}
err = statfs(path, &oldStatfs)
if err != nil {
return err
}
st.convertFrom(&oldStatfs)
return nil
}
func Fstatfs(fd int, st *Statfs_t) (err error) {
var oldStatfs statfs_freebsd11_t
if supportsABI(_ino64First) {
return fstatfs_freebsd12(fd, st)
}
err = fstatfs(fd, &oldStatfs)
if err != nil {
return err
}
st.convertFrom(&oldStatfs)
return nil
}
func Getdents(fd int, buf []byte) (n int, err error) {
return Getdirentries(fd, buf, nil)
}
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
if supportsABI(_ino64First) {
return getdirentries_freebsd12(fd, buf, basep)
}
// The old syscall entries are smaller than the new. Use 1/4 of the original
// buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c).
oldBufLen := roundup(len(buf)/4, _dirblksiz)
oldBuf := make([]byte, oldBufLen)
n, err = getdirentries(fd, oldBuf, basep)
if err == nil && n > 0 {
n = convertFromDirents11(buf, oldBuf[:n])
}
return
}
func Mknod(path string, mode uint32, dev uint64) (err error) {
var oldDev int
if supportsABI(_ino64First) {
return mknodat_freebsd12(AT_FDCWD, path, mode, dev)
}
oldDev = int(dev)
return mknod(path, mode, oldDev)
}
func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {
var oldDev int
if supportsABI(_ino64First) {
return mknodat_freebsd12(fd, path, mode, dev)
}
oldDev = int(dev)
return mknodat(fd, path, mode, oldDev)
}
// round x to the nearest multiple of y, larger or equal to x.
//
// from /usr/include/sys/param.h Macros for counting and rounding.
// #define roundup(x, y) ((((x)+((y)-1))/(y))*(y))
func roundup(x, y int) int {
return ((x + y - 1) / y) * y
}
func (s *Stat_t) convertFrom(old *stat_freebsd11_t) {
*s = Stat_t{
Dev: uint64(old.Dev),
Ino: uint64(old.Ino),
Nlink: uint64(old.Nlink),
Mode: old.Mode,
Uid: old.Uid,
Gid: old.Gid,
Rdev: uint64(old.Rdev),
Atim: old.Atim,
Mtim: old.Mtim,
Ctim: old.Ctim,
Birthtim: old.Birthtim,
Size: old.Size,
Blocks: old.Blocks,
Blksize: old.Blksize,
Flags: old.Flags,
Gen: uint64(old.Gen),
}
}
func (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) {
*s = Statfs_t{
Version: _statfsVersion,
Type: old.Type,
Flags: old.Flags,
Bsize: old.Bsize,
Iosize: old.Iosize,
Blocks: old.Blocks,
Bfree: old.Bfree,
Bavail: old.Bavail,
Files: old.Files,
Ffree: old.Ffree,
Syncwrites: old.Syncwrites,
Asyncwrites: old.Asyncwrites,
Syncreads: old.Syncreads,
Asyncreads: old.Asyncreads,
// Spare
Namemax: old.Namemax,
Owner: old.Owner,
Fsid: old.Fsid,
// Charspare
// Fstypename
// Mntfromname
// Mntonname
}
sl := old.Fstypename[:]
n := clen(*(*[]byte)(unsafe.Pointer(&sl)))
copy(s.Fstypename[:], old.Fstypename[:n])
sl = old.Mntfromname[:]
n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
copy(s.Mntfromname[:], old.Mntfromname[:n])
sl = old.Mntonname[:]
n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
copy(s.Mntonname[:], old.Mntonname[:n])
}
func convertFromDirents11(buf []byte, old []byte) int {
const (
fixedSize = int(unsafe.Offsetof(Dirent{}.Name))
oldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name))
)
dstPos := 0
srcPos := 0
for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) {
dstDirent := (*Dirent)(unsafe.Pointer(&buf[dstPos]))
srcDirent := (*dirent_freebsd11)(unsafe.Pointer(&old[srcPos]))
reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8)
if dstPos+reclen > len(buf) {
break
}
dstDirent.Fileno = uint64(srcDirent.Fileno)
dstDirent.Off = 0
dstDirent.Reclen = uint16(reclen)
dstDirent.Type = srcDirent.Type
dstDirent.Pad0 = 0
dstDirent.Namlen = uint16(srcDirent.Namlen)
dstDirent.Pad1 = 0
copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen])
padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen]
for i := range padding {
padding[i] = 0
}
dstPos += int(dstDirent.Reclen)
srcPos += int(srcDirent.Reclen)
}
return dstPos
}
/* /*
* Exposed directly * Exposed directly
*/ */
...@@ -264,13 +539,16 @@ func Uname(uname *Utsname) error { ...@@ -264,13 +539,16 @@ func Uname(uname *Utsname) error {
//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) //sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
//sys Flock(fd int, how int) (err error) //sys Flock(fd int, how int) (err error)
//sys Fpathconf(fd int, name int) (val int, err error) //sys Fpathconf(fd int, name int) (val int, err error)
//sys Fstat(fd int, stat *Stat_t) (err error) //sys fstat(fd int, stat *stat_freebsd11_t) (err error)
//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) //sys fstat_freebsd12(fd int, stat *Stat_t) (err error)
//sys Fstatfs(fd int, stat *Statfs_t) (err error) //sys fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error)
//sys fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error)
//sys fstatfs(fd int, stat *statfs_freebsd11_t) (err error)
//sys fstatfs_freebsd12(fd int, stat *Statfs_t) (err error)
//sys Fsync(fd int) (err error) //sys Fsync(fd int) (err error)
//sys Ftruncate(fd int, length int64) (err error) //sys Ftruncate(fd int, length int64) (err error)
//sys Getdents(fd int, buf []byte) (n int, err error) //sys getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) //sys getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error)
//sys Getdtablesize() (size int) //sys Getdtablesize() (size int)
//sysnb Getegid() (egid int) //sysnb Getegid() (egid int)
//sysnb Geteuid() (uid int) //sysnb Geteuid() (uid int)
...@@ -292,11 +570,13 @@ func Uname(uname *Utsname) error { ...@@ -292,11 +570,13 @@ func Uname(uname *Utsname) error {
//sys Link(path string, link string) (err error) //sys Link(path string, link string) (err error)
//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) //sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
//sys Listen(s int, backlog int) (err error) //sys Listen(s int, backlog int) (err error)
//sys Lstat(path string, stat *Stat_t) (err error) //sys lstat(path string, stat *stat_freebsd11_t) (err error)
//sys Mkdir(path string, mode uint32) (err error) //sys Mkdir(path string, mode uint32) (err error)
//sys Mkdirat(dirfd int, path string, mode uint32) (err error) //sys Mkdirat(dirfd int, path string, mode uint32) (err error)
//sys Mkfifo(path string, mode uint32) (err error) //sys Mkfifo(path string, mode uint32) (err error)
//sys Mknod(path string, mode uint32, dev int) (err error) //sys mknod(path string, mode uint32, dev int) (err error)
//sys mknodat(fd int, path string, mode uint32, dev int) (err error)
//sys mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) //sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
//sys Open(path string, mode int, perm uint32) (fd int, err error) //sys Open(path string, mode int, perm uint32) (fd int, err error)
//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) //sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error)
...@@ -326,8 +606,9 @@ func Uname(uname *Utsname) error { ...@@ -326,8 +606,9 @@ func Uname(uname *Utsname) error {
//sysnb Setsid() (pid int, err error) //sysnb Setsid() (pid int, err error)
//sysnb Settimeofday(tp *Timeval) (err error) //sysnb Settimeofday(tp *Timeval) (err error)
//sysnb Setuid(uid int) (err error) //sysnb Setuid(uid int) (err error)
//sys Stat(path string, stat *Stat_t) (err error) //sys stat(path string, stat *stat_freebsd11_t) (err error)
//sys Statfs(path string, stat *Statfs_t) (err error) //sys statfs(path string, stat *statfs_freebsd11_t) (err error)
//sys statfs_freebsd12(path string, stat *Statfs_t) (err error)
//sys Symlink(path string, link string) (err error) //sys Symlink(path string, link string) (err error)
//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) //sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
//sys Sync() (err error) //sys Sync() (err error)
...@@ -382,6 +663,7 @@ func Uname(uname *Utsname) error { ...@@ -382,6 +663,7 @@ func Uname(uname *Utsname) error {
// Kqueue_portset // Kqueue_portset
// Getattrlist // Getattrlist
// Setattrlist // Setattrlist
// Getdents
// Getdirentriesattr // Getdirentriesattr
// Searchfs // Searchfs
// Delete // Delete
......
...@@ -14,7 +14,11 @@ Input to cgo -godefs. See README.md ...@@ -14,7 +14,11 @@ Input to cgo -godefs. See README.md
package unix package unix
/* /*
#define KERNEL #define _WANT_FREEBSD11_STAT 1
#define _WANT_FREEBSD11_STATFS 1
#define _WANT_FREEBSD11_DIRENT 1
#define _WANT_FREEBSD11_KEVENT 1
#include <dirent.h> #include <dirent.h>
#include <fcntl.h> #include <fcntl.h>
#include <poll.h> #include <poll.h>
...@@ -63,50 +67,6 @@ struct sockaddr_any { ...@@ -63,50 +67,6 @@ struct sockaddr_any {
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
}; };
// This structure is a duplicate of stat on FreeBSD 8-STABLE.
// See /usr/include/sys/stat.h.
struct stat8 {
#undef st_atimespec st_atim
#undef st_mtimespec st_mtim
#undef st_ctimespec st_ctim
#undef st_birthtimespec st_birthtim
__dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
__dev_t st_rdev;
#if __BSD_VISIBLE
struct timespec st_atimespec;
struct timespec st_mtimespec;
struct timespec st_ctimespec;
#else
time_t st_atime;
long __st_atimensec;
time_t st_mtime;
long __st_mtimensec;
time_t st_ctime;
long __st_ctimensec;
#endif
off_t st_size;
blkcnt_t st_blocks;
blksize_t st_blksize;
fflags_t st_flags;
__uint32_t st_gen;
__int32_t st_lspare;
#if __BSD_VISIBLE
struct timespec st_birthtimespec;
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec));
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec));
#else
time_t st_birthtime;
long st_birthtimensec;
unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec));
unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec));
#endif
};
// This structure is a duplicate of if_data on FreeBSD 8-STABLE. // This structure is a duplicate of if_data on FreeBSD 8-STABLE.
// See /usr/include/net/if.h. // See /usr/include/net/if.h.
struct if_data8 { struct if_data8 {
...@@ -189,14 +149,25 @@ type _Gid_t C.gid_t ...@@ -189,14 +149,25 @@ type _Gid_t C.gid_t
// Files // Files
type Stat_t C.struct_stat8 const (
_statfsVersion = C.STATFS_VERSION
_dirblksiz = C.DIRBLKSIZ
)
type Stat_t C.struct_stat
type stat_freebsd11_t C.struct_freebsd11_stat
type Statfs_t C.struct_statfs type Statfs_t C.struct_statfs
type statfs_freebsd11_t C.struct_freebsd11_statfs
type Flock_t C.struct_flock type Flock_t C.struct_flock
type Dirent C.struct_dirent type Dirent C.struct_dirent
type dirent_freebsd11 C.struct_freebsd11_dirent
type Fsid C.struct_fsid type Fsid C.struct_fsid
// File system limits // File system limits
...@@ -279,7 +250,7 @@ const ( ...@@ -279,7 +250,7 @@ const (
// Events (kqueue, kevent) // Events (kqueue, kevent)
type Kevent_t C.struct_kevent type Kevent_t C.struct_kevent_freebsd11
// Select // Select
......
...@@ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { ...@@ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstat(fd int, stat *Stat_t) (err error) { func fstat(fd int, stat *stat_freebsd11_t) (err error) {
_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -922,7 +922,17 @@ func Fstat(fd int, stat *Stat_t) (err error) { ...@@ -922,7 +922,17 @@ func Fstat(fd int, stat *Stat_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -937,7 +947,22 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { ...@@ -937,7 +947,22 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstatfs(fd int, stat *Statfs_t) (err error) { func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -947,6 +972,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { ...@@ -947,6 +972,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fsync(fd int) (err error) { func Fsync(fd int) (err error) {
_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
if e1 != 0 { if e1 != 0 {
...@@ -967,14 +1002,14 @@ func Ftruncate(fd int, length int64) (err error) { ...@@ -967,14 +1002,14 @@ func Ftruncate(fd int, length int64) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) _p0 = unsafe.Pointer(&buf[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -984,14 +1019,14 @@ func Getdents(fd int, buf []byte) (n int, err error) { ...@@ -984,14 +1019,14 @@ func Getdents(fd int, buf []byte) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) _p0 = unsafe.Pointer(&buf[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -1222,7 +1257,7 @@ func Listen(s int, backlog int) (err error) { ...@@ -1222,7 +1257,7 @@ func Listen(s int, backlog int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Lstat(path string, stat *Stat_t) (err error) { func lstat(path string, stat *stat_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1282,7 +1317,7 @@ func Mkfifo(path string, mode uint32) (err error) { ...@@ -1282,7 +1317,7 @@ func Mkfifo(path string, mode uint32) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Mknod(path string, mode uint32, dev int) (err error) { func mknod(path string, mode uint32, dev int) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1297,6 +1332,36 @@ func Mknod(path string, mode uint32, dev int) (err error) { ...@@ -1297,6 +1332,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mknodat(fd int, path string, mode uint32, dev int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Nanosleep(time *Timespec, leftover *Timespec) (err error) { func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
if e1 != 0 { if e1 != 0 {
...@@ -1687,7 +1752,7 @@ func Setuid(uid int) (err error) { ...@@ -1687,7 +1752,7 @@ func Setuid(uid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Stat(path string, stat *Stat_t) (err error) { func stat(path string, stat *stat_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1702,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) { ...@@ -1702,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Statfs(path string, stat *Statfs_t) (err error) { func statfs(path string, stat *statfs_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1717,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) { ...@@ -1717,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Symlink(path string, link string) (err error) { func Symlink(path string, link string) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
......
...@@ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { ...@@ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstat(fd int, stat *Stat_t) (err error) { func fstat(fd int, stat *stat_freebsd11_t) (err error) {
_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -922,7 +922,17 @@ func Fstat(fd int, stat *Stat_t) (err error) { ...@@ -922,7 +922,17 @@ func Fstat(fd int, stat *Stat_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -937,7 +947,22 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { ...@@ -937,7 +947,22 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstatfs(fd int, stat *Statfs_t) (err error) { func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -947,6 +972,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { ...@@ -947,6 +972,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fsync(fd int) (err error) { func Fsync(fd int) (err error) {
_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
if e1 != 0 { if e1 != 0 {
...@@ -967,14 +1002,14 @@ func Ftruncate(fd int, length int64) (err error) { ...@@ -967,14 +1002,14 @@ func Ftruncate(fd int, length int64) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) _p0 = unsafe.Pointer(&buf[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -984,14 +1019,14 @@ func Getdents(fd int, buf []byte) (n int, err error) { ...@@ -984,14 +1019,14 @@ func Getdents(fd int, buf []byte) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) _p0 = unsafe.Pointer(&buf[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -1222,7 +1257,7 @@ func Listen(s int, backlog int) (err error) { ...@@ -1222,7 +1257,7 @@ func Listen(s int, backlog int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Lstat(path string, stat *Stat_t) (err error) { func lstat(path string, stat *stat_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1282,7 +1317,7 @@ func Mkfifo(path string, mode uint32) (err error) { ...@@ -1282,7 +1317,7 @@ func Mkfifo(path string, mode uint32) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Mknod(path string, mode uint32, dev int) (err error) { func mknod(path string, mode uint32, dev int) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1297,6 +1332,36 @@ func Mknod(path string, mode uint32, dev int) (err error) { ...@@ -1297,6 +1332,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mknodat(fd int, path string, mode uint32, dev int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Nanosleep(time *Timespec, leftover *Timespec) (err error) { func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
if e1 != 0 { if e1 != 0 {
...@@ -1687,7 +1752,7 @@ func Setuid(uid int) (err error) { ...@@ -1687,7 +1752,7 @@ func Setuid(uid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Stat(path string, stat *Stat_t) (err error) { func stat(path string, stat *stat_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1702,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) { ...@@ -1702,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Statfs(path string, stat *Statfs_t) (err error) { func statfs(path string, stat *statfs_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1717,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) { ...@@ -1717,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Symlink(path string, link string) (err error) { func Symlink(path string, link string) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
......
...@@ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { ...@@ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstat(fd int, stat *Stat_t) (err error) { func fstat(fd int, stat *stat_freebsd11_t) (err error) {
_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -922,7 +922,17 @@ func Fstat(fd int, stat *Stat_t) (err error) { ...@@ -922,7 +922,17 @@ func Fstat(fd int, stat *Stat_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -937,7 +947,22 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { ...@@ -937,7 +947,22 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fstatfs(fd int, stat *Statfs_t) (err error) { func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) {
_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -947,6 +972,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) { ...@@ -947,6 +972,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Fsync(fd int) (err error) { func Fsync(fd int) (err error) {
_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
if e1 != 0 { if e1 != 0 {
...@@ -967,14 +1002,14 @@ func Ftruncate(fd int, length int64) (err error) { ...@@ -967,14 +1002,14 @@ func Ftruncate(fd int, length int64) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdents(fd int, buf []byte) (n int, err error) { func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) _p0 = unsafe.Pointer(&buf[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -984,14 +1019,14 @@ func Getdents(fd int, buf []byte) (n int, err error) { ...@@ -984,14 +1019,14 @@ func Getdents(fd int, buf []byte) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
_p0 = unsafe.Pointer(&buf[0]) _p0 = unsafe.Pointer(&buf[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
n = int(r0) n = int(r0)
if e1 != 0 { if e1 != 0 {
err = errnoErr(e1) err = errnoErr(e1)
...@@ -1222,7 +1257,7 @@ func Listen(s int, backlog int) (err error) { ...@@ -1222,7 +1257,7 @@ func Listen(s int, backlog int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Lstat(path string, stat *Stat_t) (err error) { func lstat(path string, stat *stat_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1282,7 +1317,7 @@ func Mkfifo(path string, mode uint32) (err error) { ...@@ -1282,7 +1317,7 @@ func Mkfifo(path string, mode uint32) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Mknod(path string, mode uint32, dev int) (err error) { func mknod(path string, mode uint32, dev int) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1297,6 +1332,36 @@ func Mknod(path string, mode uint32, dev int) (err error) { ...@@ -1297,6 +1332,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mknodat(fd int, path string, mode uint32, dev int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Nanosleep(time *Timespec, leftover *Timespec) (err error) { func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)
if e1 != 0 { if e1 != 0 {
...@@ -1687,7 +1752,7 @@ func Setuid(uid int) (err error) { ...@@ -1687,7 +1752,7 @@ func Setuid(uid int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Stat(path string, stat *Stat_t) (err error) { func stat(path string, stat *stat_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1702,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) { ...@@ -1702,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Statfs(path string, stat *Statfs_t) (err error) { func statfs(path string, stat *statfs_freebsd11_t) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
if err != nil { if err != nil {
...@@ -1717,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) { ...@@ -1717,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Symlink(path string, link string) (err error) { func Symlink(path string, link string) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
......
...@@ -56,28 +56,84 @@ type Rlimit struct { ...@@ -56,28 +56,84 @@ type Rlimit struct {
type _Gid_t uint32 type _Gid_t uint32
const (
_statfsVersion = 0x20140518
_dirblksiz = 0x400
)
type Stat_t struct { type Stat_t struct {
Dev uint32 Dev uint64
Ino uint32 Ino uint64
Mode uint16 Nlink uint64
Nlink uint16 Mode uint16
Uid uint32 _0 int16
Gid uint32 Uid uint32
Rdev uint32 Gid uint32
Atimespec Timespec _1 int32
Mtimespec Timespec Rdev uint64
Ctimespec Timespec Atim_ext int32
Size int64 Atim Timespec
Blocks int64 Mtim_ext int32
Blksize int32 Mtim Timespec
Flags uint32 Ctim_ext int32
Gen uint32 Ctim Timespec
Lspare int32 Btim_ext int32
Birthtimespec Timespec Birthtim Timespec
Pad_cgo_0 [8]byte Size int64
Blocks int64
Blksize int32
Flags uint32
Gen uint64
Spare [10]uint64
}
type stat_freebsd11_t struct {
Dev uint32
Ino uint32
Mode uint16
Nlink uint16
Uid uint32
Gid uint32
Rdev uint32
Atim Timespec
Mtim Timespec
Ctim Timespec
Size int64
Blocks int64
Blksize int32
Flags uint32
Gen uint32
Lspare int32
Birthtim Timespec
_ [8]byte
} }
type Statfs_t struct { 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 statfs_freebsd11_t struct {
Version uint32 Version uint32
Type uint32 Type uint32
Flags uint64 Flags uint64
...@@ -112,6 +168,17 @@ type Flock_t struct { ...@@ -112,6 +168,17 @@ type Flock_t struct {
} }
type Dirent struct { type Dirent struct {
Fileno uint64
Off int64
Reclen uint16
Type uint8
Pad0 uint8
Namlen uint16
Pad1 uint16
Name [256]int8
}
type dirent_freebsd11 struct {
Fileno uint32 Fileno uint32
Reclen uint16 Reclen uint16
Type uint8 Type uint8
...@@ -272,7 +339,7 @@ type Kevent_t struct { ...@@ -272,7 +339,7 @@ type Kevent_t struct {
} }
type FdSet struct { type FdSet struct {
X__fds_bits [32]uint32 _ [32]uint32
} }
const ( const (
...@@ -288,53 +355,53 @@ const ( ...@@ -288,53 +355,53 @@ const (
) )
type ifMsghdr struct { type ifMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Data ifData Data ifData
} }
type IfMsghdr struct { type IfMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Data IfData Data IfData
} }
type ifData struct { type ifData struct {
Type uint8 Type uint8
Physical uint8 Physical uint8
Addrlen uint8 Addrlen uint8
Hdrlen uint8 Hdrlen uint8
Link_state uint8 Link_state uint8
Vhid uint8 Vhid uint8
Datalen uint16 Datalen uint16
Mtu uint32 Mtu uint32
Metric uint32 Metric uint32
Baudrate uint64 Baudrate uint64
Ipackets uint64 Ipackets uint64
Ierrors uint64 Ierrors uint64
Opackets uint64 Opackets uint64
Oerrors uint64 Oerrors uint64
Collisions uint64 Collisions uint64
Ibytes uint64 Ibytes uint64
Obytes uint64 Obytes uint64
Imcasts uint64 Imcasts uint64
Omcasts uint64 Omcasts uint64
Iqdrops uint64 Iqdrops uint64
Oqdrops uint64 Oqdrops uint64
Noproto uint64 Noproto uint64
Hwassist uint64 Hwassist uint64
X__ifi_epoch [8]byte _ [8]byte
X__ifi_lastchange [16]byte _ [16]byte
} }
type IfData struct { type IfData struct {
...@@ -366,24 +433,24 @@ type IfData struct { ...@@ -366,24 +433,24 @@ type IfData struct {
} }
type IfaMsghdr struct { type IfaMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Metric int32 Metric int32
} }
type IfmaMsghdr struct { type IfmaMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
} }
type IfAnnounceMsghdr struct { type IfAnnounceMsghdr struct {
...@@ -396,19 +463,19 @@ type IfAnnounceMsghdr struct { ...@@ -396,19 +463,19 @@ type IfAnnounceMsghdr struct {
} }
type RtMsghdr struct { type RtMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Flags int32 Flags int32
Addrs int32 Addrs int32
Pid int32 Pid int32
Seq int32 Seq int32
Errno int32 Errno int32
Fmask int32 Fmask int32
Inits uint32 Inits uint32
Rmx RtMetrics Rmx RtMetrics
} }
type RtMetrics struct { type RtMetrics struct {
...@@ -465,18 +532,18 @@ type BpfInsn struct { ...@@ -465,18 +532,18 @@ type BpfInsn struct {
} }
type BpfHdr struct { type BpfHdr struct {
Tstamp Timeval Tstamp Timeval
Caplen uint32 Caplen uint32
Datalen uint32 Datalen uint32
Hdrlen uint16 Hdrlen uint16
Pad_cgo_0 [2]byte _ [2]byte
} }
type BpfZbufHeader struct { type BpfZbufHeader struct {
Kernel_gen uint32 Kernel_gen uint32
Kernel_len uint32 Kernel_len uint32
User_gen uint32 User_gen uint32
X_bzh_pad [5]uint32 _ [5]uint32
} }
type Termios struct { type Termios struct {
......
...@@ -56,27 +56,79 @@ type Rlimit struct { ...@@ -56,27 +56,79 @@ type Rlimit struct {
type _Gid_t uint32 type _Gid_t uint32
const (
_statfsVersion = 0x20140518
_dirblksiz = 0x400
)
type Stat_t struct { type Stat_t struct {
Dev uint32 Dev uint64
Ino uint32 Ino uint64
Mode uint16 Nlink uint64
Nlink uint16 Mode uint16
Uid uint32 _0 int16
Gid uint32 Uid uint32
Rdev uint32 Gid uint32
Atimespec Timespec _1 int32
Mtimespec Timespec Rdev uint64
Ctimespec Timespec Atim Timespec
Size int64 Mtim Timespec
Blocks int64 Ctim Timespec
Blksize int32 Birthtim Timespec
Flags uint32 Size int64
Gen uint32 Blocks int64
Lspare int32 Blksize int32
Birthtimespec Timespec Flags uint32
Gen uint64
Spare [10]uint64
}
type stat_freebsd11_t struct {
Dev uint32
Ino uint32
Mode uint16
Nlink uint16
Uid uint32
Gid uint32
Rdev uint32
Atim Timespec
Mtim Timespec
Ctim Timespec
Size int64
Blocks int64
Blksize int32
Flags uint32
Gen uint32
Lspare int32
Birthtim Timespec
} }
type Statfs_t struct { 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 statfs_freebsd11_t struct {
Version uint32 Version uint32
Type uint32 Type uint32
Flags uint64 Flags uint64
...@@ -102,16 +154,27 @@ type Statfs_t struct { ...@@ -102,16 +154,27 @@ type Statfs_t struct {
} }
type Flock_t struct { type Flock_t struct {
Start int64 Start int64
Len int64 Len int64
Pid int32 Pid int32
Type int16 Type int16
Whence int16 Whence int16
Sysid int32 Sysid int32
Pad_cgo_0 [4]byte _ [4]byte
} }
type Dirent struct { type Dirent struct {
Fileno uint64
Off int64
Reclen uint16
Type uint8
Pad0 uint8
Namlen uint16
Pad1 uint16
Name [256]int8
}
type dirent_freebsd11 struct {
Fileno uint32 Fileno uint32
Reclen uint16 Reclen uint16
Type uint8 Type uint8
...@@ -212,10 +275,10 @@ type IPv6Mreq struct { ...@@ -212,10 +275,10 @@ type IPv6Mreq struct {
type Msghdr struct { type Msghdr struct {
Name *byte Name *byte
Namelen uint32 Namelen uint32
Pad_cgo_0 [4]byte _ [4]byte
Iov *Iovec Iov *Iovec
Iovlen int32 Iovlen int32
Pad_cgo_1 [4]byte _ [4]byte
Control *byte Control *byte
Controllen uint32 Controllen uint32
Flags int32 Flags int32
...@@ -274,7 +337,7 @@ type Kevent_t struct { ...@@ -274,7 +337,7 @@ type Kevent_t struct {
} }
type FdSet struct { type FdSet struct {
X__fds_bits [16]uint64 _ [16]uint64
} }
const ( const (
...@@ -290,53 +353,53 @@ const ( ...@@ -290,53 +353,53 @@ const (
) )
type ifMsghdr struct { type ifMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Data ifData Data ifData
} }
type IfMsghdr struct { type IfMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Data IfData Data IfData
} }
type ifData struct { type ifData struct {
Type uint8 Type uint8
Physical uint8 Physical uint8
Addrlen uint8 Addrlen uint8
Hdrlen uint8 Hdrlen uint8
Link_state uint8 Link_state uint8
Vhid uint8 Vhid uint8
Datalen uint16 Datalen uint16
Mtu uint32 Mtu uint32
Metric uint32 Metric uint32
Baudrate uint64 Baudrate uint64
Ipackets uint64 Ipackets uint64
Ierrors uint64 Ierrors uint64
Opackets uint64 Opackets uint64
Oerrors uint64 Oerrors uint64
Collisions uint64 Collisions uint64
Ibytes uint64 Ibytes uint64
Obytes uint64 Obytes uint64
Imcasts uint64 Imcasts uint64
Omcasts uint64 Omcasts uint64
Iqdrops uint64 Iqdrops uint64
Oqdrops uint64 Oqdrops uint64
Noproto uint64 Noproto uint64
Hwassist uint64 Hwassist uint64
X__ifi_epoch [8]byte _ [8]byte
X__ifi_lastchange [16]byte _ [16]byte
} }
type IfData struct { type IfData struct {
...@@ -368,24 +431,24 @@ type IfData struct { ...@@ -368,24 +431,24 @@ type IfData struct {
} }
type IfaMsghdr struct { type IfaMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Metric int32 Metric int32
} }
type IfmaMsghdr struct { type IfmaMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
} }
type IfAnnounceMsghdr struct { type IfAnnounceMsghdr struct {
...@@ -398,19 +461,19 @@ type IfAnnounceMsghdr struct { ...@@ -398,19 +461,19 @@ type IfAnnounceMsghdr struct {
} }
type RtMsghdr struct { type RtMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Flags int32 Flags int32
Addrs int32 Addrs int32
Pid int32 Pid int32
Seq int32 Seq int32
Errno int32 Errno int32
Fmask int32 Fmask int32
Inits uint64 Inits uint64
Rmx RtMetrics Rmx RtMetrics
} }
type RtMetrics struct { type RtMetrics struct {
...@@ -455,9 +518,9 @@ type BpfZbuf struct { ...@@ -455,9 +518,9 @@ type BpfZbuf struct {
} }
type BpfProgram struct { type BpfProgram struct {
Len uint32 Len uint32
Pad_cgo_0 [4]byte _ [4]byte
Insns *BpfInsn Insns *BpfInsn
} }
type BpfInsn struct { type BpfInsn struct {
...@@ -468,18 +531,18 @@ type BpfInsn struct { ...@@ -468,18 +531,18 @@ type BpfInsn struct {
} }
type BpfHdr struct { type BpfHdr struct {
Tstamp Timeval Tstamp Timeval
Caplen uint32 Caplen uint32
Datalen uint32 Datalen uint32
Hdrlen uint16 Hdrlen uint16
Pad_cgo_0 [6]byte _ [6]byte
} }
type BpfZbufHeader struct { type BpfZbufHeader struct {
Kernel_gen uint32 Kernel_gen uint32
Kernel_len uint32 Kernel_len uint32
User_gen uint32 User_gen uint32
X_bzh_pad [5]uint32 _ [5]uint32
} }
type Termios struct { type Termios struct {
......
...@@ -21,15 +21,15 @@ type ( ...@@ -21,15 +21,15 @@ type (
) )
type Timespec struct { type Timespec struct {
Sec int64 Sec int64
Nsec int32 Nsec int32
Pad_cgo_0 [4]byte _ [4]byte
} }
type Timeval struct { type Timeval struct {
Sec int64 Sec int64
Usec int32 Usec int32
Pad_cgo_0 [4]byte _ [4]byte
} }
type Rusage struct { type Rusage struct {
...@@ -58,27 +58,79 @@ type Rlimit struct { ...@@ -58,27 +58,79 @@ type Rlimit struct {
type _Gid_t uint32 type _Gid_t uint32
const (
_statfsVersion = 0x20140518
_dirblksiz = 0x400
)
type Stat_t struct { type Stat_t struct {
Dev uint32 Dev uint64
Ino uint32 Ino uint64
Mode uint16 Nlink uint64
Nlink uint16 Mode uint16
Uid uint32 _0 int16
Gid uint32 Uid uint32
Rdev uint32 Gid uint32
Atimespec Timespec _1 int32
Mtimespec Timespec Rdev uint64
Ctimespec Timespec Atim Timespec
Size int64 Mtim Timespec
Blocks int64 Ctim Timespec
Blksize int32 Birthtim Timespec
Flags uint32 Size int64
Gen uint32 Blocks int64
Lspare int32 Blksize int32
Birthtimespec Timespec Flags uint32
Gen uint64
Spare [10]uint64
}
type stat_freebsd11_t struct {
Dev uint32
Ino uint32
Mode uint16
Nlink uint16
Uid uint32
Gid uint32
Rdev uint32
Atim Timespec
Mtim Timespec
Ctim Timespec
Size int64
Blocks int64
Blksize int32
Flags uint32
Gen uint32
Lspare int32
Birthtim Timespec
} }
type Statfs_t struct { 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 statfs_freebsd11_t struct {
Version uint32 Version uint32
Type uint32 Type uint32
Flags uint64 Flags uint64
...@@ -104,16 +156,27 @@ type Statfs_t struct { ...@@ -104,16 +156,27 @@ type Statfs_t struct {
} }
type Flock_t struct { type Flock_t struct {
Start int64 Start int64
Len int64 Len int64
Pid int32 Pid int32
Type int16 Type int16
Whence int16 Whence int16
Sysid int32 Sysid int32
Pad_cgo_0 [4]byte _ [4]byte
} }
type Dirent struct { type Dirent struct {
Fileno uint64
Off int64
Reclen uint16
Type uint8
Pad0 uint8
Namlen uint16
Pad1 uint16
Name [256]int8
}
type dirent_freebsd11 struct {
Fileno uint32 Fileno uint32
Reclen uint16 Reclen uint16
Type uint8 Type uint8
...@@ -274,7 +337,7 @@ type Kevent_t struct { ...@@ -274,7 +337,7 @@ type Kevent_t struct {
} }
type FdSet struct { type FdSet struct {
X__fds_bits [32]uint32 _ [32]uint32
} }
const ( const (
...@@ -290,53 +353,53 @@ const ( ...@@ -290,53 +353,53 @@ const (
) )
type ifMsghdr struct { type ifMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Data ifData Data ifData
} }
type IfMsghdr struct { type IfMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Data IfData Data IfData
} }
type ifData struct { type ifData struct {
Type uint8 Type uint8
Physical uint8 Physical uint8
Addrlen uint8 Addrlen uint8
Hdrlen uint8 Hdrlen uint8
Link_state uint8 Link_state uint8
Vhid uint8 Vhid uint8
Datalen uint16 Datalen uint16
Mtu uint32 Mtu uint32
Metric uint32 Metric uint32
Baudrate uint64 Baudrate uint64
Ipackets uint64 Ipackets uint64
Ierrors uint64 Ierrors uint64
Opackets uint64 Opackets uint64
Oerrors uint64 Oerrors uint64
Collisions uint64 Collisions uint64
Ibytes uint64 Ibytes uint64
Obytes uint64 Obytes uint64
Imcasts uint64 Imcasts uint64
Omcasts uint64 Omcasts uint64
Iqdrops uint64 Iqdrops uint64
Oqdrops uint64 Oqdrops uint64
Noproto uint64 Noproto uint64
Hwassist uint64 Hwassist uint64
X__ifi_epoch [8]byte _ [8]byte
X__ifi_lastchange [16]byte _ [16]byte
} }
type IfData struct { type IfData struct {
...@@ -363,30 +426,30 @@ type IfData struct { ...@@ -363,30 +426,30 @@ type IfData struct {
Iqdrops uint32 Iqdrops uint32
Noproto uint32 Noproto uint32
Hwassist uint32 Hwassist uint32
Pad_cgo_0 [4]byte _ [4]byte
Epoch int64 Epoch int64
Lastchange Timeval Lastchange Timeval
} }
type IfaMsghdr struct { type IfaMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Metric int32 Metric int32
} }
type IfmaMsghdr struct { type IfmaMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Addrs int32 Addrs int32
Flags int32 Flags int32
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
} }
type IfAnnounceMsghdr struct { type IfAnnounceMsghdr struct {
...@@ -399,19 +462,19 @@ type IfAnnounceMsghdr struct { ...@@ -399,19 +462,19 @@ type IfAnnounceMsghdr struct {
} }
type RtMsghdr struct { type RtMsghdr struct {
Msglen uint16 Msglen uint16
Version uint8 Version uint8
Type uint8 Type uint8
Index uint16 Index uint16
Pad_cgo_0 [2]byte _ [2]byte
Flags int32 Flags int32
Addrs int32 Addrs int32
Pid int32 Pid int32
Seq int32 Seq int32
Errno int32 Errno int32
Fmask int32 Fmask int32
Inits uint32 Inits uint32
Rmx RtMetrics Rmx RtMetrics
} }
type RtMetrics struct { type RtMetrics struct {
...@@ -468,18 +531,18 @@ type BpfInsn struct { ...@@ -468,18 +531,18 @@ type BpfInsn struct {
} }
type BpfHdr struct { type BpfHdr struct {
Tstamp Timeval Tstamp Timeval
Caplen uint32 Caplen uint32
Datalen uint32 Datalen uint32
Hdrlen uint16 Hdrlen uint16
Pad_cgo_0 [6]byte _ [6]byte
} }
type BpfZbufHeader struct { type BpfZbufHeader struct {
Kernel_gen uint32 Kernel_gen uint32
Kernel_len uint32 Kernel_len uint32
User_gen uint32 User_gen uint32
X_bzh_pad [5]uint32 _ [5]uint32
} }
type Termios struct { type Termios struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment