int dispatching; /* -1 if not evailable, DIST_* */
int freqboost; /* -1 if not evailable */
- int *configured; /* cpu configured */
int physsockets; /* Physical sockets (modules) */
int physchips; /* Physical chips */
int physcoresperchip; /* Physical cores per chip */
int polarization; /* POLAR_* */
int address; /* physical cpu address */
+ int configured; /* cpu configured */
};
struct lscpu_arch {
return 0;
}
+static int read_configure(struct lscpu_cxt *cxt, struct lscpu_cpu *cpu)
+{
+ struct path_cxt *sys = cxt->syscpu;
+ int num = cpu->logical_id;
+
+ if (ul_path_accessf(sys, F_OK, "cpu%d/configure", num) != 0)
+ return 0;
+
+ ul_path_readf_s32(sys, &cpu->configured, "cpu%d/configure", num);
+ return 0;
+}
+
int lscpu_read_topology(struct lscpu_cxt *cxt)
{
size_t i;
rc = read_polarization(cxt, cpu);
if (!rc)
rc = read_address(cxt, cpu);
+ if (!rc)
+ rc = read_configure(cxt, cpu);
}
return rc;