#include "nls.h"
#include "pathnames.h"
#include "ttyutils.h"
+#include "xalloc.h"
#define DEF_SORT_FUNC sort_count
#define IRQ_NAME_LEN 4
/* NAME + ':' + 11 bytes/cpu + IRQ_DESC_LEN */
bufferlen = IRQ_NAME_LEN + 1 + smp_num_cpus * 11 + IRQ_DESC_LEN;
- buffer = malloc(bufferlen);
- if (!buffer)
- goto out;
+ buffer = xmalloc(bufferlen);
+ stat = xcalloc(1, sizeof(*stat));
- stat = calloc(1, sizeof(*stat));
- if (!stat)
- goto free_buf;
-
- stat->irq_info = malloc(sizeof(*stat->irq_info) * IRQ_INFO_LEN);
- if (!stat->irq_info)
- goto free_stat;
+ stat->irq_info = xmalloc(sizeof(*stat->irq_info) * IRQ_INFO_LEN);
stat->nr_irq_info = IRQ_INFO_LEN;
irqfile = fopen(_PATH_PROC_INTERRUPTS, "r");
continue;
curr = stat->irq_info + stat->nr_irq++;
- memset(curr, 0x00, sizeof(*curr));
+ memset(curr, 0, sizeof(*curr));
memcpy(curr->irq, buffer, tmp - buffer);
tmp += 1;
if (stat->nr_irq == stat->nr_irq_info) {
stat->nr_irq_info *= 2;
- stat->irq_info = realloc(stat->irq_info,
- sizeof(*stat->irq_info) * stat->nr_irq_info);
+ stat->irq_info = xrealloc(stat->irq_info,
+ sizeof(*stat->irq_info) * stat->nr_irq_info);
}
}
close_file:
fclose(irqfile);
free_stat:
- if (stat)
- free(stat->irq_info);
+ free(stat->irq_info);
free(stat);
- free_buf:
free(buffer);
- out:
return NULL;
}
attroff(A_REVERSE);
size = sizeof(*stat->irq_info) * stat->nr_irq;
- result = malloc(size);
+ result = xmalloc(size);
memcpy(result, stat->irq_info, size);
if (!last_stat) {