package common

import "github.com/shirou/gopsutil/v4/internal/common"

SPDX-License-Identifier: BSD-3-Clause

SPDX-License-Identifier: BSD-3-Clause

SPDX-License-Identifier: BSD-3-Clause

SPDX-License-Identifier: BSD-3-Clause

SPDX-License-Identifier: BSD-3-Clause

Index

Constants

const (
	IOKit          = "/System/Library/Frameworks/IOKit.framework/IOKit"
	CoreFoundation = "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation"
	System         = "/usr/lib/libSystem.B.dylib"
)

library paths

const (
	IOServiceGetMatchingServiceSym       = "IOServiceGetMatchingService"
	IOServiceGetMatchingServicesSym      = "IOServiceGetMatchingServices"
	IOServiceMatchingSym                 = "IOServiceMatching"
	IOServiceOpenSym                     = "IOServiceOpen"
	IOServiceCloseSym                    = "IOServiceClose"
	IOIteratorNextSym                    = "IOIteratorNext"
	IORegistryEntryGetNameSym            = "IORegistryEntryGetName"
	IORegistryEntryGetParentEntrySym     = "IORegistryEntryGetParentEntry"
	IORegistryEntryCreateCFPropertySym   = "IORegistryEntryCreateCFProperty"
	IORegistryEntryCreateCFPropertiesSym = "IORegistryEntryCreateCFProperties"
	IOObjectConformsToSym                = "IOObjectConformsTo"
	IOObjectReleaseSym                   = "IOObjectRelease"
	IOConnectCallStructMethodSym         = "IOConnectCallStructMethod"

	IOHIDEventSystemClientCreateSym       = "IOHIDEventSystemClientCreate"
	IOHIDEventSystemClientSetMatchingSym  = "IOHIDEventSystemClientSetMatching"
	IOHIDServiceClientCopyEventSym        = "IOHIDServiceClientCopyEvent"
	IOHIDServiceClientCopyPropertySym     = "IOHIDServiceClientCopyProperty"
	IOHIDEventGetFloatValueSym            = "IOHIDEventGetFloatValue"
	IOHIDEventSystemClientCopyServicesSym = "IOHIDEventSystemClientCopyServices"
)
const (
	KIOMainPortDefault = 0

	KIOHIDEventTypeTemperature = 15

	KNilOptions = 0
)
const (
	KIOMediaWholeKey = "Media"
	KIOServicePlane  = "IOService"
)
const (
	CFGetTypeIDSym               = "CFGetTypeID"
	CFNumberCreateSym            = "CFNumberCreate"
	CFNumberGetValueSym          = "CFNumberGetValue"
	CFDictionaryCreateSym        = "CFDictionaryCreate"
	CFDictionaryAddValueSym      = "CFDictionaryAddValue"
	CFDictionaryGetValueSym      = "CFDictionaryGetValue"
	CFArrayGetCountSym           = "CFArrayGetCount"
	CFArrayGetValueAtIndexSym    = "CFArrayGetValueAtIndex"
	CFStringCreateMutableSym     = "CFStringCreateMutable"
	CFStringGetLengthSym         = "CFStringGetLength"
	CFStringGetCStringSym        = "CFStringGetCString"
	CFStringCreateWithCStringSym = "CFStringCreateWithCString"
	CFDataGetLengthSym           = "CFDataGetLength"
	CFDataGetBytePtrSym          = "CFDataGetBytePtr"
	CFReleaseSym                 = "CFRelease"
)
const (
	KCFStringEncodingUTF8 = 0x08000100
	KCFNumberSInt64Type   = 4
	KCFNumberIntType      = 9
	KCFAllocatorDefault   = 0
)
const (
	HostProcessorInfoSym = "host_processor_info"
	HostStatisticsSym    = "host_statistics"
	MachHostSelfSym      = "mach_host_self"
	MachTaskSelfSym      = "mach_task_self"
	MachTimeBaseInfoSym  = "mach_timebase_info"
	VMDeallocateSym      = "vm_deallocate"
)
const (
	CTL_KERN       = 1
	KERN_ARGMAX    = 8
	KERN_PROCARGS2 = 49

	HOST_VM_INFO       = 2
	HOST_CPU_LOAD_INFO = 3

	HOST_VM_INFO_COUNT = 0xf
)
const (
	SysctlSym      = "sysctl"
	ProcPidPathSym = "proc_pidpath"
	ProcPidInfoSym = "proc_pidinfo"
)
const (
	MAXPATHLEN               = 1024
	PROC_PIDPATHINFO_MAXSIZE = 4 * MAXPATHLEN
	PROC_PIDTASKINFO         = 4
	PROC_PIDVNODEPATHINFO    = 9
)
const (
	KSMCUserClientOpen  = 0
	KSMCUserClientClose = 1
	KSMCHandleYPCEvent  = 2
	KSMCReadKey         = 5
	KSMCWriteKey        = 6
	KSMCGetKeyCount     = 7
	KSMCGetKeyFromIndex = 8
	KSMCGetKeyInfo      = 9
)
const (
	KSMCSuccess     = 0
	KSMCError       = 1
	KSMCKeyNotFound = 132
)
const (
	KERN_SUCCESS = 0
)

status codes

Variables

var (
	Timeout    = 3 * time.Second
	ErrTimeout = errors.New("command timed out")
)
var BigEndian bigEndian

BigEndian is the big-endian implementation of ByteOrder.

var ErrNotImplementedError = errors.New("not implemented yet")
var LittleEndian littleEndian

LittleEndian is the little-endian implementation of ByteOrder.

Functions

func ByteToString

func ByteToString(orig []byte) string

func CallLsofWithContext

func CallLsofWithContext(ctx context.Context, invoke Invoker, pid int32, args ...string) ([]string, error)

func CallSyscall

func CallSyscall(mib []int32) ([]byte, uint64, error)

func DoSysctrlWithContext

func DoSysctrlWithContext(ctx context.Context, mib string) ([]string, error)

func GetEnv

func GetEnv(key string, dfault string, combineWith ...string) string

GetEnv retrieves the environment variable key. If it does not exist it returns the default.

func GetEnvWithContext

func GetEnvWithContext(ctx context.Context, key string, dfault string, combineWith ...string) string

GetEnvWithContext retrieves the environment variable key. If it does not exist it returns the default. The context may optionally contain a map superseding os.EnvKey.

func GetFunc

func GetFunc[T any](lib *Library, symbol string) T

func GoString

func GoString(cStr *byte) string

https://github.com/ebitengine/purego/blob/main/internal/strings/strings.go#L26

func HexToUint32

func HexToUint32(hex string) uint32

Parse Hex to uint32 without error

func HostDev

func HostDev(combineWith ...string) string

func HostDevWithContext

func HostDevWithContext(ctx context.Context, combineWith ...string) string

func HostEtc

func HostEtc(combineWith ...string) string

func HostEtcWithContext

func HostEtcWithContext(ctx context.Context, combineWith ...string) string

func HostProc

func HostProc(combineWith ...string) string

func HostProcMountInfoWithContext

func HostProcMountInfoWithContext(ctx context.Context, combineWith ...string) string

func HostProcWithContext

func HostProcWithContext(ctx context.Context, combineWith ...string) string

func HostRoot

func HostRoot(combineWith ...string) string

func HostRootWithContext

func HostRootWithContext(ctx context.Context, combineWith ...string) string

func HostRun

func HostRun(combineWith ...string) string

func HostRunWithContext

func HostRunWithContext(ctx context.Context, combineWith ...string) string

func HostSys

func HostSys(combineWith ...string) string

func HostSysWithContext

func HostSysWithContext(ctx context.Context, combineWith ...string) string

func HostVar

func HostVar(combineWith ...string) string

func HostVarWithContext

func HostVarWithContext(ctx context.Context, combineWith ...string) string

func IntContains

func IntContains(target []int, src int) bool

IntContains checks the src in any int of the target int slice.

func IntToString

func IntToString(orig []int8) string

func IsLittleEndian

func IsLittleEndian() bool

IsLittleEndian checks if the current platform uses little-endian. copied from https://github.com/ntrrg/ntgo/blob/v0.8.0/runtime/infrastructure.go#L16 (MIT License)

func PathExists

func PathExists(filename string) bool

func PathExistsWithContents

func PathExistsWithContents(filename string) bool

PathExistsWithContents returns the filename exists and it is not empty

func Read

func Read(r io.Reader, order ByteOrder, data interface{}) error

Read reads structured binary data from r into data. Data must be a pointer to a fixed-size value or a slice of fixed-size values. Bytes read from r are decoded using the specified byte order and written to successive fields of the data. When reading into structs, the field data for fields with blank (_) field names is skipped; i.e., blank field names may be used for padding. When reading into a struct, all non-blank fields must be exported.

func ReadFile

func ReadFile(filename string) (string, error)

ReadFile reads contents from a file

func ReadInts

func ReadInts(filename string) ([]int64, error)

ReadInts reads contents from single line file and returns them as []int32.

func ReadLine

func ReadLine(filename string, prefix string) (string, error)

ReadLine reads a file and returns the first occurrence of a line that is prefixed with prefix.

func ReadLines

func ReadLines(filename string) ([]string, error)

ReadLines reads contents from a file and splits them by new lines. A convenience wrapper to ReadLinesOffsetN(filename, 0, -1).

func ReadLinesOffsetN

func ReadLinesOffsetN(filename string, offset uint, n int) ([]string, error)

ReadLinesOffsetN reads contents from file and splits them by new line. The offset tells at which line number to start. The count determines the number of lines to read (starting from offset): n >= 0: at most n lines n < 0: whole file

func Round

func Round(val float64, n int) float64

Round places rounds the number 'val' to 'n' decimal places

func Size

func Size(v interface{}) int

Size returns how many bytes Write would generate to encode the value v, which must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. If v is neither of these, Size returns -1.

func Sleep

func Sleep(ctx context.Context, interval time.Duration) error

Sleep awaits for provided interval. Can be interrupted by context cancellation.

func StringsContains

func StringsContains(target []string, src string) bool

StringsContains checks the src in any string of the target string slice

func StringsHas

func StringsHas(target []string, src string) bool

StringsHas checks the target string slice contains src or not

func UintToString

func UintToString(orig []uint8) string

func Write

func Write(w io.Writer, order ByteOrder, data interface{}) error

Write writes the binary representation of data into w. Data must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. Bytes written to w are encoded using the specified byte order and read from successive fields of the data. When writing structs, zero values are written for fields with blank (_) field names.

Types

type ByteOrder

type ByteOrder interface {
	Uint16([]byte) uint16
	Uint32([]byte) uint32
	Uint64([]byte) uint64
	PutUint16([]byte, uint16)
	PutUint32([]byte, uint32)
	PutUint64([]byte, uint64)
	String() string
}

A ByteOrder specifies how to convert byte sequences into 16-, 32-, or 64-bit unsigned integers.

type CFArrayGetCountFunc

type CFArrayGetCountFunc func(theArray uintptr) int32

CoreFoundation functions and symbols.

type CFArrayGetValueAtIndexFunc

type CFArrayGetValueAtIndexFunc func(theArray uintptr, index int32) unsafe.Pointer

CoreFoundation functions and symbols.

type CFDataGetBytePtrFunc

type CFDataGetBytePtrFunc func(theData uintptr) unsafe.Pointer

CoreFoundation functions and symbols.

type CFDataGetLengthFunc

type CFDataGetLengthFunc func(theData uintptr) int32

CoreFoundation functions and symbols.

type CFDictionaryAddValueFunc

type CFDictionaryAddValueFunc func(theDict, key, value uintptr)

CoreFoundation functions and symbols.

type CFDictionaryCreateFunc

type CFDictionaryCreateFunc func(allocator uintptr, keys, values *unsafe.Pointer, numValues int32,
	keyCallBacks, valueCallBacks uintptr) unsafe.Pointer

CoreFoundation functions and symbols.

type CFDictionaryGetValueFunc

type CFDictionaryGetValueFunc func(theDict, key uintptr) unsafe.Pointer

CoreFoundation functions and symbols.

type CFGetTypeIDFunc

type CFGetTypeIDFunc func(cf uintptr) int32

CoreFoundation functions and symbols.

type CFNumberCreateFunc

type CFNumberCreateFunc func(allocator uintptr, theType int32, valuePtr uintptr) unsafe.Pointer

CoreFoundation functions and symbols.

type CFNumberGetValueFunc

type CFNumberGetValueFunc func(num uintptr, theType int32, valuePtr uintptr) bool

CoreFoundation functions and symbols.

type CFReleaseFunc

type CFReleaseFunc func(cf uintptr)

CoreFoundation functions and symbols.

type CFStringCreateMutableFunc

type CFStringCreateMutableFunc func(alloc uintptr, maxLength int32) unsafe.Pointer

CoreFoundation functions and symbols.

type CFStringCreateWithCStringFunc

type CFStringCreateWithCStringFunc func(alloc uintptr, cStr string, encoding uint32) unsafe.Pointer

CoreFoundation functions and symbols.

type CFStringGetCStringFunc

type CFStringGetCStringFunc func(theString uintptr, buffer *byte, bufferSize int32, encoding uint32)

CoreFoundation functions and symbols.

type CFStringGetLengthFunc

type CFStringGetLengthFunc func(theString uintptr) int32

CoreFoundation functions and symbols.

type FakeInvoke

type FakeInvoke struct {
	Suffix string // Suffix species expected file name suffix such as "fail"
	Error  error  // If Error specified, return the error.
}

func (FakeInvoke) Command

func (i FakeInvoke) Command(name string, arg ...string) ([]byte, error)

Command in FakeInvoke returns from expected file if exists.

func (FakeInvoke) CommandWithContext

func (i FakeInvoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error)

type HostProcessorInfoFunc

type HostProcessorInfoFunc func(host uint32, flavor int32, outProcessorCount *uint32, outProcessorInfo uintptr,
	outProcessorInfoCnt *uint32) int

type HostStatisticsFunc

type HostStatisticsFunc func(host uint32, flavor int32, hostInfoOut uintptr, hostInfoOutCnt *uint32) int

type IOConnectCallStructMethodFunc

type IOConnectCallStructMethodFunc func(connection, selector uint32, inputStruct, inputStructCnt, outputStruct uintptr, outputStructCnt *uintptr) int

IOKit functions and symbols.

type IOHIDEventGetFloatValueFunc

type IOHIDEventGetFloatValueFunc func(event uintptr, field int32) float64

IOKit functions and symbols.

type IOHIDEventSystemClientCopyServicesFunc

type IOHIDEventSystemClientCopyServicesFunc func(client uintptr) unsafe.Pointer

IOKit functions and symbols.

type IOHIDEventSystemClientCreateFunc

type IOHIDEventSystemClientCreateFunc func(allocator uintptr) unsafe.Pointer

IOKit functions and symbols.

type IOHIDEventSystemClientSetMatchingFunc

type IOHIDEventSystemClientSetMatchingFunc func(client, match uintptr) int

IOKit functions and symbols.

type IOHIDServiceClientCopyEventFunc

type IOHIDServiceClientCopyEventFunc func(service uintptr, eventType int64,
	options int32, timeout int64) unsafe.Pointer

IOKit functions and symbols.

type IOHIDServiceClientCopyPropertyFunc

type IOHIDServiceClientCopyPropertyFunc func(service, property uintptr) unsafe.Pointer

IOKit functions and symbols.

type IOIteratorNextFunc

type IOIteratorNextFunc func(iterator uint32) uint32

IOKit functions and symbols.

type IOObjectConformsToFunc

type IOObjectConformsToFunc func(object uint32, className string) bool

IOKit functions and symbols.

type IOObjectReleaseFunc

type IOObjectReleaseFunc func(object uint32) int

IOKit functions and symbols.

type IORegistryEntryCreateCFPropertiesFunc

type IORegistryEntryCreateCFPropertiesFunc func(entry uint32, properties unsafe.Pointer, allocator uintptr, options uint32) int

IOKit functions and symbols.

type IORegistryEntryCreateCFPropertyFunc

type IORegistryEntryCreateCFPropertyFunc func(entry uint32, key, allocator uintptr, options uint32) unsafe.Pointer

IOKit functions and symbols.

type IORegistryEntryGetNameFunc

type IORegistryEntryGetNameFunc func(entry uint32, name *byte) int

IOKit functions and symbols.

type IORegistryEntryGetParentEntryFunc

type IORegistryEntryGetParentEntryFunc func(entry uint32, plane string, parent *uint32) int

IOKit functions and symbols.

type IOServiceCloseFunc

type IOServiceCloseFunc func(connect uint32) int

IOKit functions and symbols.

type IOServiceGetMatchingServiceFunc

type IOServiceGetMatchingServiceFunc func(mainPort uint32, matching uintptr) uint32

IOKit functions and symbols.

type IOServiceGetMatchingServicesFunc

type IOServiceGetMatchingServicesFunc func(mainPort uint32, matching uintptr, existing *uint32) int

IOKit functions and symbols.

type IOServiceMatchingFunc

type IOServiceMatchingFunc func(name string) unsafe.Pointer

IOKit functions and symbols.

type IOServiceOpenFunc

type IOServiceOpenFunc func(service, owningTask, connType uint32, connect *uint32) int

IOKit functions and symbols.

type Invoke

type Invoke struct{}

func (Invoke) Command

func (i Invoke) Command(name string, arg ...string) ([]byte, error)

func (Invoke) CommandWithContext

func (i Invoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error)

type Invoker

type Invoker interface {
	Command(string, ...string) ([]byte, error)
	CommandWithContext(context.Context, string, ...string) ([]byte, error)
}

type Library

type Library struct {
	// contains filtered or unexported fields
}

Library represents a dynamic library loaded by purego.

func NewLibrary

func NewLibrary(path string) (*Library, error)

func (*Library) Close

func (lib *Library) Close()

func (*Library) Dlsym

func (lib *Library) Dlsym(symbol string) (uintptr, error)

type MachHostSelfFunc

type MachHostSelfFunc func() uint32

type MachTaskSelfFunc

type MachTaskSelfFunc func() uint32

type MachTimeBaseInfo

type MachTimeBaseInfo struct {
	Numer uint32
	Denom uint32
}

Kernel functions and symbols.

type MachTimeBaseInfoFunc

type MachTimeBaseInfoFunc func(info uintptr) int

type ProcPidInfoFunc

type ProcPidInfoFunc func(pid, flavor int32, arg uint64, buffer uintptr, bufferSize int32) int32

System functions and symbols.

type ProcPidPathFunc

type ProcPidPathFunc func(pid int32, buffer uintptr, bufferSize uint32) int32

System functions and symbols.

type SMC

type SMC struct {
	// contains filtered or unexported fields
}

SMC represents a SMC instance.

func NewSMC

func NewSMC(ioKit *Library) (*SMC, error)

func (*SMC) CallStruct

func (s *SMC) CallStruct(selector uint32, inputStruct, inputStructCnt, outputStruct uintptr, outputStructCnt *uintptr) int

func (*SMC) Close

func (s *SMC) Close() error

type VMDeallocateFunc

type VMDeallocateFunc func(targetTask uint32, vmAddress, vmSize uintptr) int

type Warnings

type Warnings struct {
	List    []error
	Verbose bool
}

func (*Warnings) Add

func (w *Warnings) Add(err error)

func (*Warnings) Error

func (w *Warnings) Error() string

func (*Warnings) Reference

func (w *Warnings) Reference() error

Source Files

binary.go common.go common_darwin.go common_unix.go endian.go sleep.go warnings.go

Version
v4.24.9
Published
Oct 1, 2024
Platform
darwin/amd64
Imports
21 packages
Last checked
1 second ago

Tools for package owners.