func()

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
}