func DiskStatsCopy0(major, minor uint64) *info.PerDiskStats { disk := info.PerDiskStats{ Major: major, Minor: minor, } disk.Stats = make(map[string]uint64) return &disk }
func DiskStatsCopy(blkio_stats []cgroups.BlkioStatEntry) (stat []info.PerDiskStats) { if len(blkio_stats) == 0 { return } type DiskKey struct { Major uint64 Minor uint64 } disk_stat := make(map[DiskKey]*info.PerDiskStats) for i := range blkio_stats { major := blkio_stats[i].Major minor := blkio_stats[i].Minor disk_key := DiskKey{ Major: major, Minor: minor, } diskp, ok := disk_stat[disk_key] if !ok { disk := info.PerDiskStats{ Major: major, Minor: minor, } disk.Stats = make(map[string]uint64) diskp = &disk disk_stat[disk_key] = diskp } op := blkio_stats[i].Op if op == "" { op = "Count" } diskp.Stats[op] = blkio_stats[i].Value } i := 0 stat = make([]info.PerDiskStats, len(disk_stat)) for _, disk := range disk_stat { stat[i] = *disk i++ } return }