From 37bec0b3971efa18f6fcc405edfb4272d215752d Mon Sep 17 00:00:00 2001 From: Jacob Garber Date: Fri, 28 Jun 2019 10:10:37 -0600 Subject: payloads/coreinfo: Use fixed-width integers for cpuid This function executes the cpuid instruction, which takes a 32 bit input value (idx), and then stores output in eax, ebx, ecx, and edx, which are all 32 bit registers. Update the prototype to use fixed-width integers, and update all usage calls appropriately. Change-Id: I15876fa35628d3a505864fb49be4fdab1fd19f4a Signed-off-by: Jacob Garber Reviewed-on: https://review.coreboot.org/c/coreboot/+/33862 Tested-by: build bot (Jenkins) Reviewed-by: HAOUAS Elyes --- payloads/coreinfo/coreinfo.h | 3 +-- payloads/coreinfo/cpuinfo_module.c | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/payloads/coreinfo/coreinfo.h b/payloads/coreinfo/coreinfo.h index 073c5f9a87..03e59c9bb1 100644 --- a/payloads/coreinfo/coreinfo.h +++ b/payloads/coreinfo/coreinfo.h @@ -27,8 +27,7 @@ struct coreinfo_module { int (*handle) (int); }; -extern void docpuid(int, unsigned long *, unsigned long *, unsigned long *, - unsigned long *); +extern void docpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx); void print_module_title(WINDOW *win, const char *title); diff --git a/payloads/coreinfo/cpuinfo_module.c b/payloads/coreinfo/cpuinfo_module.c index 0ea2dfce46..94379f3077 100644 --- a/payloads/coreinfo/cpuinfo_module.c +++ b/payloads/coreinfo/cpuinfo_module.c @@ -85,7 +85,7 @@ static const char *amd_cap_extended_ecx_flags[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; -static unsigned long vendor; +static uint32_t vendor; static unsigned int cpu_khz; static void decode_flags(WINDOW *win, unsigned long reg, const char **flags, @@ -114,7 +114,7 @@ static void decode_flags(WINDOW *win, unsigned long reg, const char **flags, static void get_features(WINDOW *win, int *row) { - unsigned long eax, ebx, ecx, edx; + uint32_t eax, ebx, ecx, edx; int lrow = *row; wmove(win, lrow++, 1); @@ -150,12 +150,12 @@ static void get_features(WINDOW *win, int *row) static void do_name(WINDOW *win, int row) { char name[49], *p; - unsigned long eax, ebx, ecx, edx; - int i, t; + uint32_t eax, ebx, ecx, edx; + int t; p = name; - for (i = 0x80000002; i <= 0x80000004; i++) { + for (uint32_t i = 0x80000002; i <= 0x80000004; i++) { docpuid(i, &eax, &ebx, &ecx, &edx); if (eax == 0) @@ -176,7 +176,7 @@ static void do_name(WINDOW *win, int row) static int cpuinfo_module_redraw(WINDOW *win) { - unsigned long eax, ebx, ecx, edx; + uint32_t eax, ebx, ecx, edx; unsigned int brand; char *vstr; int row = 2; -- cgit v1.2.3