lscpu: add lscpu_cpus_loopup_by_type(), improve readability

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2020-07-15 13:07:15 +02:00
parent 504de58512
commit 9c5b106b01
3 changed files with 18 additions and 4 deletions

View File

@ -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);

View File

@ -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;
}

View File

@ -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);