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);
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);
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;
+}
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);
#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];
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);