summaryrefslogtreecommitdiff
path: root/vendor/github.com/power-devops/perfstat/lparstat.go
blob: 470a1af2f91b5d764eb480efaaea371f6f9f26ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//go:build aix
// +build aix

package perfstat

/*
#cgo LDFLAGS: -lperfstat

#include <libperfstat.h>
#include <sys/dr.h>
*/
import "C"

import (
	"fmt"
	"unsafe"
)

func PartitionStat() (*PartitionConfig, error) {
	var part C.perfstat_partition_config_t

	rc := C.perfstat_partition_config(nil, &part, C.sizeof_perfstat_partition_config_t, 1)
	if rc != 1 {
		return nil, fmt.Errorf("perfstat_partition_config() error")
	}
	p := perfstatpartitionconfig2partitionconfig(part)
	return &p, nil

}

func LparInfo() (*PartitionInfo, error) {
	var pinfo C.lpar_info_format2_t

	rc := C.lpar_get_info(C.LPAR_INFO_FORMAT2, unsafe.Pointer(&pinfo), C.sizeof_lpar_info_format2_t)
	if rc != 0 {
		return nil, fmt.Errorf("lpar_get_info() error")
	}
	p := lparinfo2partinfo(pinfo)
	return &p, nil
}