summaryrefslogtreecommitdiffstats
path: root/drivers/staging/unisys/visorbus/visorchipset.c
diff options
context:
space:
mode:
authorDavid Kershner2015-05-13 19:22:10 +0200
committerGreg Kroah-Hartman2015-05-24 22:28:55 +0200
commit5f3a7e364608e9be2e97725f86bd14ff827b5c6a (patch)
tree6e7fe03566ffea347bb332a161452108e0f95d7f /drivers/staging/unisys/visorbus/visorchipset.c
parentstaging: unisys: get rid of sparstop (diff)
downloadkernel-qcow2-linux-5f3a7e364608e9be2e97725f86bd14ff827b5c6a.tar.gz
kernel-qcow2-linux-5f3a7e364608e9be2e97725f86bd14ff827b5c6a.tar.xz
kernel-qcow2-linux-5f3a7e364608e9be2e97725f86bd14ff827b5c6a.zip
staging: unisys: remove remaining utility headers
remove uisqueue.h, uisthread.h, and uisutils.h replace HOSTADDRESS with u64 remove "uisutils.h" from header list in visorchipset.c Signed-off-by: David Kershner <david.kershner@unisys.com> Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/unisys/visorbus/visorchipset.c')
-rw-r--r--drivers/staging/unisys/visorbus/visorchipset.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index e6d7075ab8fb..b96a40cf9124 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -26,14 +26,15 @@
#include <linux/uuid.h>
#include <linux/crash_dump.h>
+#include "channel_guid.h"
#include "controlvmchannel.h"
#include "controlvmcompletionstatus.h"
#include "guestlinuxdebug.h"
#include "periodic_work.h"
-#include "uisutils.h"
#include "version.h"
#include "visorbus.h"
#include "visorbus_private.h"
+#include "vmcallinterface.h"
#define CURRENT_FILE_PC VISOR_CHIPSET_PC_visorchipset_main_c
@@ -1856,6 +1857,22 @@ handle_command(struct controlvm_message inmsg, u64 channel_addr)
return true;
}
+static inline unsigned int
+issue_vmcall_io_controlvm_addr(u64 *control_addr, u32 *control_bytes)
+{
+ struct vmcall_io_controlvm_addr_params params;
+ int result = VMCALL_SUCCESS;
+ u64 physaddr;
+
+ physaddr = virt_to_phys(&params);
+ ISSUE_IO_VMCALL(VMCALL_IO_CONTROLVM_ADDR, physaddr, result);
+ if (VMCALL_SUCCESSFUL(result)) {
+ *control_addr = params.address;
+ *control_bytes = params.channel_bytes;
+ }
+ return result;
+}
+
static u64 controlvm_get_channel_address(void)
{
u64 addr = 0;
@@ -2239,6 +2256,24 @@ visorchipset_mmap(struct file *file, struct vm_area_struct *vma)
return 0;
}
+static inline s64 issue_vmcall_query_guest_virtual_time_offset(void)
+{
+ u64 result = VMCALL_SUCCESS;
+ u64 physaddr = 0;
+
+ ISSUE_IO_VMCALL(VMCALL_QUERY_GUEST_VIRTUAL_TIME_OFFSET, physaddr,
+ result);
+ return result;
+}
+
+static inline int issue_vmcall_update_physical_time(u64 adjustment)
+{
+ int result = VMCALL_SUCCESS;
+
+ ISSUE_IO_VMCALL(VMCALL_UPDATE_PHYSICAL_TIME, adjustment, result);
+ return result;
+}
+
static long visorchipset_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{