@ -11,6 +11,7 @@ import (
"os/exec"
"github.com/shirou/gopsutil/internal/common"
"golang.org/x/sys/unix"
)
func GetPageSize ( ) ( uint64 , error ) {
@ -18,17 +19,7 @@ func GetPageSize() (uint64, error) {
}
func GetPageSizeWithContext ( ctx context . Context ) ( uint64 , error ) {
mib := [ ] int32 { CTLVm , VmUvmexp }
buf , length , err := common . CallSyscall ( mib )
if err != nil {
return 0 , err
}
if length < sizeOfUvmexp {
return 0 , fmt . Errorf ( "short syscall ret %d bytes" , length )
}
var uvmexp Uvmexp
br := bytes . NewReader ( buf )
err = common . Read ( br , binary . LittleEndian , & uvmexp )
uvmexp , err := unix . SysctlUvmexp ( "vm.uvmexp" )
if err != nil {
return 0 , err
}
@ -40,17 +31,7 @@ func VirtualMemory() (*VirtualMemoryStat, error) {
}
func VirtualMemoryWithContext ( ctx context . Context ) ( * VirtualMemoryStat , error ) {
mib := [ ] int32 { CTLVm , VmUvmexp }
buf , length , err := common . CallSyscall ( mib )
if err != nil {
return nil , err
}
if length < sizeOfUvmexp {
return nil , fmt . Errorf ( "short syscall ret %d bytes" , length )
}
var uvmexp Uvmexp
br := bytes . NewReader ( buf )
err = common . Read ( br , binary . LittleEndian , & uvmexp )
uvmexp , err := unix . SysctlUvmexp ( "vm.uvmexp" )
if err != nil {
return nil , err
}
@ -69,8 +50,8 @@ func VirtualMemoryWithContext(ctx context.Context) (*VirtualMemoryStat, error) {
ret . Used = ret . Total - ret . Available
ret . UsedPercent = float64 ( ret . Used ) / float64 ( ret . Total ) * 100.0
mib = [ ] int32 { CTLVfs , VfsGeneric , VfsBcacheStat }
buf , length , err = common . CallSyscall ( mib )
mib : = [ ] int32 { CTLVfs , VfsGeneric , VfsBcacheStat }
buf , length , err : = common . CallSyscall ( mib )
if err != nil {
return nil , err
}
@ -78,7 +59,7 @@ func VirtualMemoryWithContext(ctx context.Context) (*VirtualMemoryStat, error) {
return nil , fmt . Errorf ( "short syscall ret %d bytes" , length )
}
var bcs Bcachestats
br = bytes . NewReader ( buf )
br : = bytes . NewReader ( buf )
err = common . Read ( br , binary . LittleEndian , & bcs )
if err != nil {
return nil , err