hwaccess_x86_msr: rename msr function to msr_xxx

This eliminates the need to redefine the rdmsr and wrmsr symbols,
resulting in more understandable code. The common prefix clarify the
relation between the functions.

Change-Id: Ie5ad54d198312578e0a1ee719eec67b37d2bf6a4
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/62851
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72318
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/hwaccess_x86_msr.c b/hwaccess_x86_msr.c
index 3728061..98e51d4 100644
--- a/hwaccess_x86_msr.c
+++ b/hwaccess_x86_msr.c
@@ -41,7 +41,7 @@
 
 static int fd_msr = -1;
 
-msr_t rdmsr(int addr)
+msr_t msr_read(int addr)
 {
 	uint32_t buf[2];
 	msr_t msr = { 0xffffffff, 0xffffffff };
@@ -68,7 +68,7 @@
 	return msr;
 }
 
-int wrmsr(int addr, msr_t msr)
+int msr_write(int addr, msr_t msr)
 {
 	uint32_t buf[2];
 	buf[0] = msr.lo;
@@ -93,7 +93,7 @@
 	return 0;
 }
 
-int setup_cpu_msr(int cpu)
+int msr_setup(int cpu)
 {
 	char msrfilename[64] = { 0 };
 	snprintf(msrfilename, sizeof(msrfilename), "/dev/cpu/%d/msr", cpu);
@@ -114,7 +114,7 @@
 	return 0;
 }
 
-void cleanup_cpu_msr(void)
+void msr_cleanup(void)
 {
 	if (fd_msr == -1) {
 		msg_pinfo("No MSR initialized.\n");
@@ -127,14 +127,19 @@
 	fd_msr = -1;
 }
 #elif defined(__OpenBSD__) && defined (__i386__) /* This does only work for certain AMD Geode LX systems see amdmsr(4). */
+#include <stdlib.h>
 #include <stdint.h>
 #include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
 #include <sys/ioctl.h>
 #include <machine/amdmsr.h>
 
 static int fd_msr = -1;
 
-msr_t rdmsr(int addr)
+msr_t msr_read(int addr)
 {
 	struct amdmsr_req args;
 
@@ -154,7 +159,7 @@
 	return msr;
 }
 
-int wrmsr(int addr, msr_t msr)
+int msr_write(int addr, msr_t msr)
 {
 	struct amdmsr_req args;
 
@@ -170,7 +175,7 @@
 	return 0;
 }
 
-int setup_cpu_msr(int cpu)
+int msr_setup(int cpu)
 {
 	char msrfilename[64] = { 0 };
 	snprintf(msrfilename, sizeof(msrfilename), "/dev/amdmsr");
@@ -190,7 +195,7 @@
 	return 0;
 }
 
-void cleanup_cpu_msr(void)
+void msr_cleanup(void)
 {
 	if (fd_msr == -1) {
 		msg_pinfo("No MSR initialized.\n");
@@ -222,7 +227,7 @@
 
 static int fd_msr = -1;
 
-msr_t rdmsr(int addr)
+msr_t msr_read(int addr)
 {
 	cpu_msr_args_t args;
 
@@ -242,7 +247,7 @@
 	return msr;
 }
 
-int wrmsr(int addr, msr_t msr)
+int msr_write(int addr, msr_t msr)
 {
 	cpu_msr_args_t args;
 
@@ -258,7 +263,7 @@
 	return 0;
 }
 
-int setup_cpu_msr(int cpu)
+int msr_setup(int cpu)
 {
 	char msrfilename[64] = { 0 };
 	snprintf(msrfilename, sizeof(msrfilename), "/dev/cpu%d", cpu);
@@ -279,7 +284,7 @@
 	return 0;
 }
 
-void cleanup_cpu_msr(void)
+void msr_cleanup(void)
 {
 	if (fd_msr == -1) {
 		msg_pinfo("No MSR initialized.\n");
@@ -293,19 +298,41 @@
 }
 
 #elif defined(__MACH__) && defined(__APPLE__)
-/* rdmsr() and wrmsr() are provided by DirectHW which needs neither setup nor cleanup. */
-int setup_cpu_msr(int cpu)
+/*
+ * DirectHW has identical, but conflicting typedef for msr_t. We redefine msr_t
+ * to directhw_msr_t for DirectHW.
+ * rdmsr() and wrmsr() are provided by DirectHW and need neither setup nor cleanup.
+ */
+#define msr_t directhw_msr_t
+#include <DirectHW/DirectHW.h>
+#undef msr_t
+
+msr_t msr_read(int addr)
+{
+	directhw_msr_t msr;
+	msr = rdmsr(addr);
+	return (msr_t){msr.hi, msr.lo};
+}
+
+int msr_write(int addr, msr_t msr)
+{
+	return wrmsr(addr, (directhw_msr_t){msr.hi, msr.lo});
+}
+
+int msr_setup(int cpu)
 {
 	// Always succeed for now
 	return 0;
 }
 
-void cleanup_cpu_msr(void)
+void msr_cleanup(void)
 {
 	// Nothing, yet.
 }
 #elif defined(__LIBPAYLOAD__)
-msr_t libpayload_rdmsr(int addr)
+#include <arch/msr.h>
+
+msr_t msr_read(int addr)
 {
 	msr_t msr;
 	unsigned long long val = _rdmsr(addr);
@@ -314,41 +341,41 @@
 	return msr;
 }
 
-int libpayload_wrmsr(int addr, msr_t msr)
+int msr_write(int addr, msr_t msr)
 {
 	_wrmsr(addr, msr.lo | ((unsigned long long)msr.hi << 32));
 	return 0;
 }
 
-int setup_cpu_msr(int cpu)
+int msr_setup(int cpu)
 {
 	return 0;
 }
 
-void cleanup_cpu_msr(void)
+void msr_cleanup(void)
 {
 }
 #else
 /* default MSR implementation */
-msr_t rdmsr(int addr)
+msr_t msr_read(int addr)
 {
 	msr_t ret = { 0xffffffff, 0xffffffff };
 
 	return ret;
 }
 
-int wrmsr(int addr, msr_t msr)
+int msr_write(int addr, msr_t msr)
 {
 	return -1;
 }
 
-int setup_cpu_msr(int cpu)
+int msr_setup(int cpu)
 {
 	msg_pinfo("No MSR support for your OS yet.\n");
 	return -1;
 }
 
-void cleanup_cpu_msr(void)
+void msr_cleanup(void)
 {
 	// Nothing, yet.
 }