lscpu: remove obsolete code

This is the first step in conversion from old lscpu to the new code.
The patch removes obsolete code from lscpu.c and lscpu.h. The old
output code in lscpu.c is temporary disabled by #ifdef due to
incompatibility between old and new internal APIs -- this will be
changed later by small steps to make all all the changes review-able.

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2020-08-19 12:43:48 +02:00
parent 3d590f8ea1
commit f9ac021032
3 changed files with 18 additions and 1483 deletions

View File

@ -390,24 +390,16 @@ endif
if BUILD_LSCPU
usrbin_exec_PROGRAMS += lscpu
lscpu_SOURCES = \
sys-utils/lscpu.c \
sys-utils/lscpu.h \
sys-utils/lscpu-arm.c \
sys-utils/lscpu-dmi.c
lscpu_SOURCES = sys-utils/lscpu.c \
sys-utils/lscpu-cputype.c \
sys-utils/lscpu-cpu.c \
sys-utils/lscpu-topology.c \
sys-utils/lscpu-virt.c \
sys-utils/lscpu-arm.c \
sys-utils/lscpu-api.h
lscpu_LDADD = $(LDADD) libcommon.la libsmartcols.la $(RTAS_LIBS)
lscpu_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
dist_man_MANS += sys-utils/lscpu.1
check_PROGRAMS += test_cputype
test_cputype_SOURCES = sys-utils/lscpu-cputype.c \
sys-utils/lscpu-cpu.c \
sys-utils/lscpu-topology.c \
sys-utils/lscpu-virt.c \
sys-utils/lscpu-arm.c \
sys-utils/lscpu-api.h
test_cputype_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_CPUTYPE
test_cputype_LDADD = $(LDADD) libcommon.la
endif
if BUILD_CHCPU

File diff suppressed because it is too large Load Diff

View File

@ -39,151 +39,6 @@ enum {
HYPER_WSL,
};
/* CPU modes */
enum {
MODE_32BIT = (1 << 1),
MODE_64BIT = (1 << 2)
};
/* cache(s) description */
struct cpu_cache {
char *name;
char *type;
char *allocation_policy;
char *write_policy;
int level;
uint64_t size;
unsigned int ways_of_associativity;
unsigned int physical_line_partition;
unsigned int number_of_sets;
unsigned int coherency_line_size;
int nsharedmaps;
cpu_set_t **sharedmaps;
};
/* dispatching modes */
enum {
DISP_HORIZONTAL = 0,
DISP_VERTICAL = 1
};
/* cpu polarization */
enum {
POLAR_UNKNOWN = 0,
POLAR_VLOW,
POLAR_VMEDIUM,
POLAR_VHIGH,
POLAR_HORIZONTAL
};
struct polarization_modes {
char *parsable;
char *readable;
};
struct cpu_vulnerability {
char *name;
char *text;
};
/* global description */
struct lscpu_desc {
const char *prefix; /* path to /sys and /proc snapshot or NULL */
struct path_cxt *syscpu; /* _PATH_SYS_CPU path handler */
struct path_cxt *procfs; /* /proc path handler */
char *arch;
char *vendor;
char *machinetype; /* s390 */
char *family;
char *model;
char *modelname;
char *revision; /* alternative for model (ppc) */
char *cpu; /* alternative for modelname (ppc, sparc) */
char *virtflag; /* virtualization flag (vmx, svm) */
char *hypervisor; /* hypervisor software */
int hyper; /* hypervisor vendor ID */
int virtype; /* VIRT_PARA|FULL|NONE ? */
char *mhz;
char *dynamic_mhz; /* dynamic mega hertz (s390) */
char *static_mhz; /* static mega hertz (s390) */
char **maxmhz; /* maximum mega hertz */
char **minmhz; /* minimum mega hertz */
char *stepping;
char *bogomips;
char *flags;
char *mtid; /* maximum thread id (s390) */
char *addrsz; /* address sizes */
int dispatching; /* none, horizontal or vertical */
int freqboost; /* -1 if not available */
int mode; /* rm, lm or/and tm */
int ncpuspos; /* maximal possible CPUs */
int ncpus; /* number of present CPUs */
cpu_set_t *present; /* mask with present CPUs */
cpu_set_t *online; /* mask with online CPUs */
int nthreads; /* number of online threads */
int ncaches;
struct cpu_cache *caches;
int necaches; /* extra caches (s390) */
struct cpu_cache *ecaches;
struct cpu_vulnerability *vuls; /* array of CPU vulnerabilities */
int nvuls; /* number of CPU vulnerabilities */
/*
* All maps are sequentially indexed (0..ncpuspos), the array index
* does not have match with cpuX number as presented by kernel. You
* have to use real_cpu_num() to get the real cpuX number.
*
* For example, the possible system CPUs are: 1,3,5, it means that
* ncpuspos=3, so all arrays are in range 0..3.
*/
int *idx2cpunum; /* mapping index to CPU num */
int nnodes; /* number of NUMA modes */
int *idx2nodenum; /* Support for discontinuous nodes */
cpu_set_t **nodemaps; /* array with NUMA nodes */
/* drawers -- based on drawer_siblings (internal kernel map of cpuX's
* hardware threads within the same drawer */
int ndrawers; /* number of all online drawers */
cpu_set_t **drawermaps; /* unique drawer_siblings */
int *drawerids; /* physical drawer ids */
/* books -- based on book_siblings (internal kernel map of cpuX's
* hardware threads within the same book */
int nbooks; /* number of all online books */
cpu_set_t **bookmaps; /* unique book_siblings */
int *bookids; /* physical book ids */
/* sockets -- based on core_siblings (internal kernel map of cpuX's
* hardware threads within the same physical_package_id (socket)) */
int nsockets; /* number of all online sockets */
cpu_set_t **socketmaps; /* unique core_siblings */
int *socketids; /* physical socket ids */
/* cores -- based on thread_siblings (internal kernel map of cpuX's
* hardware threads within the same core as cpuX) */
int ncores; /* number of all online cores */
cpu_set_t **coremaps; /* unique thread_siblings */
int *coreids; /* physical core ids */
int *polarization; /* cpu polarization */
int *addresses; /* physical cpu addresses */
int *configured; /* cpu configured */
int physsockets; /* Physical sockets (modules) */
int physchips; /* Physical chips */
int physcoresperchip; /* Physical cores per chip */
};
enum {
OUTPUT_SUMMARY = 0, /* default */
OUTPUT_PARSABLE, /* -p */
@ -191,59 +46,4 @@ enum {
OUTPUT_CACHES /* -C */
};
enum {
SYSTEM_LIVE = 0, /* analyzing a live system */
SYSTEM_SNAPSHOT, /* analyzing a snapshot of a different system */
};
struct lscpu_modifier {
int mode; /* OUTPUT_* */
int system; /* SYSTEM_* */
unsigned int hex:1, /* print CPU masks rather than CPU lists */
compat:1, /* use backwardly compatible format */
online:1, /* print online CPUs */
offline:1, /* print offline CPUs */
json:1, /* JSON output format */
bytes:1, /* output sizes in bytes */
physical:1; /* use physical numbers */
};
extern int read_hypervisor_dmi(void);
extern void arm_cpu_decode(struct lscpu_desc *desc, struct lscpu_modifier *mod);
#define _PATH_SYS_DMI "/sys/firmware/dmi/tables/DMI"
struct lscpu_dmi_header
{
uint8_t type;
uint8_t length;
uint16_t handle;
uint8_t *data;
};
static inline void to_dmi_header(struct lscpu_dmi_header *h, uint8_t *data)
{
h->type = data[0];
h->length = data[1];
memcpy(&h->handle, data + 2, sizeof(h->handle));
h->data = data;
}
static inline char *dmi_string(const struct lscpu_dmi_header *dm, uint8_t s)
{
char *bp = (char *)dm->data;
if (!s || !bp)
return NULL;
bp += dm->length;
while (s > 1 && *bp) {
bp += strlen(bp);
bp++;
s--;
}
return !*bp ? NULL : bp;
}
#endif /* LSCPU_H */