From: Karel Zak Date: Wed, 15 Jul 2020 11:07:15 +0000 (+0200) Subject: lscpu: add lscpu_cpus_loopup_by_type(), improve readability X-Git-Tag: v2.37-rc1~362 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9c5b106b01da6ec5f5d6de77a9497ad9842c8833;p=thirdparty%2Futil-linux.git lscpu: add lscpu_cpus_loopup_by_type(), improve readability Signed-off-by: Karel Zak --- diff --git a/sys-utils/lscpu-api.h b/sys-utils/lscpu-api.h index 1d979e787d..0b35bc5a3f 100644 --- a/sys-utils/lscpu-api.h +++ b/sys-utils/lscpu-api.h @@ -173,7 +173,7 @@ struct lscpu_cputype *lscpu_cputype_get_default(struct lscpu_cxt *cxt); int lscpu_read_cpuinfo(struct lscpu_cxt *cxt); int lscpu_read_cpulists(struct lscpu_cxt *cxt); -int lscpu_read_extra(struct lscpu_cxt *cxt); +int lscpu_read_archext(struct lscpu_cxt *cxt); int lscpu_read_vulnerabilities(struct lscpu_cxt *cxt); int lscpu_read_numas(struct lscpu_cxt *cxt); @@ -190,6 +190,7 @@ int lscpu_add_cpu(struct lscpu_cxt *cxt, struct lscpu_cpu *cpu, struct lscpu_cputype *ct); int lscpu_cpus_apply_type(struct lscpu_cxt *cxt, struct lscpu_cputype *type); +struct lscpu_cpu *lscpu_cpus_loopup_by_type(struct lscpu_cxt *cxt, struct lscpu_cputype *ct); void lscpu_decode_arm(struct lscpu_cxt *cxt); diff --git a/sys-utils/lscpu-cpu.c b/sys-utils/lscpu-cpu.c index 81e3f691c6..f31dcba4d5 100644 --- a/sys-utils/lscpu-cpu.c +++ b/sys-utils/lscpu-cpu.c @@ -75,3 +75,16 @@ int lscpu_cpus_apply_type(struct lscpu_cxt *cxt, struct lscpu_cputype *type) return 0; } +/* returns first CPU which represents the type */ +struct lscpu_cpu *lscpu_cpus_loopup_by_type(struct lscpu_cxt *cxt, struct lscpu_cputype *ct) +{ + size_t i; + + for (i = 0; i < cxt->ncpus; i++) { + struct lscpu_cpu *cpu = cxt->cpus[i]; + + if (cpu->type == ct) + return cpu; + } + return NULL; +} diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c index 632b5c4cfc..a931321545 100644 --- a/sys-utils/lscpu-cputype.c +++ b/sys-utils/lscpu-cputype.c @@ -343,7 +343,6 @@ static int cpuinfo_parse_line( struct lscpu_cputype **ct, break; default: /* set value as a string and cleanup */ - fprintf(stderr, "str=%s\n", str); strdup_to_offset(stru, pat->offset, v); data = (char **) ((char *) stru + pat->offset); rtrim_whitespace((unsigned char *) *data); @@ -553,7 +552,7 @@ static int strbe16toh(const char *buf, int offset) #endif /* some extra information for the default CPU type */ -int lscpu_read_extra(struct lscpu_cxt *cxt) +int lscpu_read_archext(struct lscpu_cxt *cxt) { FILE *f; char buf[BUFSIZ]; @@ -810,9 +809,10 @@ int main(int argc, char **argv) cxt->arch = lscpu_read_architecture(cxt); lscpu_read_cpulists(cxt); - lscpu_read_extra(cxt); + lscpu_read_archext(cxt); lscpu_read_vulnerabilities(cxt); lscpu_read_numas(cxt); + lscpu_decode_arm(cxt); cxt->virt = lscpu_read_virtualization(cxt);