static void cmd_host_irq_stats(struct vmm_chardev *cdev) { const char *irq_name; u32 num, cpu, stats, count = vmm_host_irq_count(); struct vmm_host_irq *irq; struct vmm_host_irq_chip *chip; vmm_cprintf(cdev, "-----------------------------------"); for_each_online_cpu(cpu) { vmm_cprintf(cdev, "------------"); } vmm_cprintf(cdev, "\n"); vmm_cprintf(cdev, " %-7s %-15s %-10s", "IRQ#", "Name", "Chip"); for_each_online_cpu(cpu) { vmm_cprintf(cdev, " CPU%-8d", cpu); } vmm_cprintf(cdev, "\n"); vmm_cprintf(cdev, "-----------------------------------"); for_each_online_cpu(cpu) { vmm_cprintf(cdev, "------------"); } vmm_cprintf(cdev, "\n"); for (num = 0; num < count; num++) { irq = vmm_host_irq_get(num); irq_name = vmm_host_irq_get_name(irq); if (vmm_host_irq_is_disabled(irq) || !irq_name) { continue; } chip = vmm_host_irq_get_chip(irq); if (!chip || !chip->name) { continue; } vmm_cprintf(cdev, " %-7d %-15s %-10s", num, irq_name, chip->name); for_each_online_cpu(cpu) { stats = vmm_host_irq_get_count(irq, cpu); vmm_cprintf(cdev, " %-11d", stats); } vmm_cprintf(cdev, "\n"); } vmm_cprintf(cdev, "-----------------------------------"); for_each_online_cpu(cpu) { vmm_cprintf(cdev, "------------"); } vmm_cprintf(cdev, "\n"); }
static void irq_stats_print(struct vmm_chardev *cdev, u32 irqno) { struct vmm_host_irq *irq; struct vmm_host_irq_chip *chip; const char *irq_name; u32 cpu, stats; irq = vmm_host_irq_get(irqno); irq_name = vmm_host_irq_get_name(irq); if (vmm_host_irq_is_disabled(irq) || !irq_name) { return; } chip = vmm_host_irq_get_chip(irq); if (!chip || !chip->name) { return; } vmm_cprintf(cdev, " %-5d %-20s %-13s", irqno, irq_name, chip->name); for_each_online_cpu(cpu) { stats = vmm_host_irq_get_count(irq, cpu); vmm_cprintf(cdev, " %-10d", stats); } vmm_cprintf(cdev, "\n"); }