lparstat.go 785 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //go:build aix
  2. // +build aix
  3. package perfstat
  4. /*
  5. #cgo LDFLAGS: -lperfstat
  6. #include <libperfstat.h>
  7. #include <sys/dr.h>
  8. */
  9. import "C"
  10. import (
  11. "fmt"
  12. "unsafe"
  13. )
  14. func PartitionStat() (*PartitionConfig, error) {
  15. var part C.perfstat_partition_config_t
  16. rc := C.perfstat_partition_config(nil, &part, C.sizeof_perfstat_partition_config_t, 1)
  17. if rc != 1 {
  18. return nil, fmt.Errorf("perfstat_partition_config() error")
  19. }
  20. p := perfstatpartitionconfig2partitionconfig(part)
  21. return &p, nil
  22. }
  23. func LparInfo() (*PartitionInfo, error) {
  24. var pinfo C.lpar_info_format2_t
  25. rc := C.lpar_get_info(C.LPAR_INFO_FORMAT2, unsafe.Pointer(&pinfo), C.sizeof_lpar_info_format2_t)
  26. if rc != 0 {
  27. return nil, fmt.Errorf("lpar_get_info() error")
  28. }
  29. p := lparinfo2partinfo(pinfo)
  30. return &p, nil
  31. }