Source File
syscall_darwin.go
Belonging Package
golang.org/x/sys/unix
package unix
import (
)
type SockaddrCtl struct {
ID uint32
Unit uint32
raw RawSockaddrCtl
}
func ( *SockaddrCtl) () (unsafe.Pointer, _Socklen, error) {
.raw.Sc_len = SizeofSockaddrCtl
.raw.Sc_family = AF_SYSTEM
.raw.Ss_sysaddr = AF_SYS_CONTROL
.raw.Sc_id = .ID
.raw.Sc_unit = .Unit
return unsafe.Pointer(&.raw), SizeofSockaddrCtl, nil
}
func ( int, *RawSockaddrAny) (Sockaddr, error) {
switch .Addr.Family {
case AF_SYSTEM:
:= (*RawSockaddrCtl)(unsafe.Pointer())
if .Ss_sysaddr == AF_SYS_CONTROL {
:= new(SockaddrCtl)
.ID = .Sc_id
.Unit = .Sc_unit
return , nil
}
}
return nil, EAFNOSUPPORT
}
const SYS___SYSCTL = SYS_SYSCTL
var [CTL_MAXNAME + 2]_C_int
:= uintptr(CTL_MAXNAME) *
:= (*byte)(unsafe.Pointer(&[0]))
, := ByteSliceFromString()
if != nil {
return nil,
}
if = sysctl([]_C_int{0, 3}, , &, &[0], uintptr(len())); != nil {
return nil,
}
return [0 : /], nil
}
func ( []byte) (uint64, bool) {
return readInt(, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))
}
func ( []byte) (uint64, bool) {
return readInt(, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))
}
func ( []byte) (uint64, bool) {
return readInt(, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
}
func ( int) ( error) { return ptrace(PT_ATTACH, , 0, 0) }
func ( int) ( error) { return ptrace(PT_DETACH, , 0, 0) }
type attrList struct {
bitmapCount uint16
_ uint16
CommonAttr uint32
VolAttr uint32
DirAttr uint32
FileAttr uint32
Forkattr uint32
}
return setxattr(, , xattrPointer(), len(), 0, )
}
func ( string, string, []byte, int) ( error) {
return setxattr(, , xattrPointer(), len(), 0, |XATTR_NOFOLLOW)
}
return removexattr(, , 0)
}
func ( string, string) ( error) {
return removexattr(, , XATTR_NOFOLLOW)
}
func ( int, string) ( error) {
return fremovexattr(, , 0)
}
func ( string, []byte) ( int, error) {
return listxattr(, xattrPointer(), len(), 0)
}
func ( string, []byte) ( int, error) {
return listxattr(, xattrPointer(), len(), XATTR_NOFOLLOW)
}
func ( int, []byte) ( int, error) {
return flistxattr(, xattrPointer(), len(), 0)
}
func ( string, []Timespec, int) error {
, := BytePtrFromString()
if != nil {
return
}
var attrList
.bitmapCount = ATTR_BIT_MAP_COUNT
.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME
:= [2]Timespec{[1], [0]}
:= 0
if &AT_SYMLINK_NOFOLLOW != 0 {
|= FSOPT_NOFOLLOW
}
return setattrlist(
,
unsafe.Pointer(&),
unsafe.Pointer(&),
unsafe.Sizeof(),
)
}
return ENOSYS
}
func ( *Utsname) error {
:= []_C_int{CTL_KERN, KERN_OSTYPE}
:= unsafe.Sizeof(.Sysname)
if := sysctl(, &.Sysname[0], &, nil, 0); != nil {
return
}
= []_C_int{CTL_KERN, KERN_HOSTNAME}
= unsafe.Sizeof(.Nodename)
if := sysctl(, &.Nodename[0], &, nil, 0); != nil {
return
}
= []_C_int{CTL_KERN, KERN_OSRELEASE}
= unsafe.Sizeof(.Release)
if := sysctl(, &.Release[0], &, nil, 0); != nil {
return
}
= []_C_int{CTL_KERN, KERN_VERSION}
= unsafe.Sizeof(.Version)
if := sysctl(, &.Version[0], &, nil, 0); != nil {
return
}
for , := range .Version {
if == '\n' || == '\t' {
if == len(.Version)-1 {
.Version[] = 0
} else {
.Version[] = ' '
}
}
}
= []_C_int{CTL_HW, HW_MACHINE}
= unsafe.Sizeof(.Machine)
if := sysctl(, &.Machine[0], &, nil, 0); != nil {
return
}
return nil
}
func ( int, int, *int64, int) ( int, error) {
if raceenabled {
raceReleaseMerge(unsafe.Pointer(&ioSync))
}
var = int64()
= sendfile(, , *, &, nil, 0)
= int()
return
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |