in sigar_aix.go [244:273]
func (self *Swap) Get() error {
ps := C.perfstat_pagingspace_t{}
id := C.perfstat_id_t{}
id.name[0] = 0
for {
// errno can be set during perfstat_pagingspace's call even
// if it succeeds. Thus, only check it when the result is -1.
if r, err := C.perfstat_pagingspace(&id, &ps, C.sizeof_perfstat_pagingspace_t, 1); r == -1 && err != nil {
return fmt.Errorf("perfstat_memory_total: %s", err)
}
if ps.active != 1 {
continue
}
// convert MB sizes to bytes
self.Total += uint64(ps.mb_size) * 1024 * 1024
self.Used += uint64(ps.mb_used) * 1024 * 1024
if id.name[0] == 0 {
break
}
}
self.Free = self.Total - self.Used
return nil
}