[host] app: implement stubs for platform specific guest information

This commit is contained in:
Geoffrey McRae 2022-01-05 21:04:57 +11:00
parent 7ccd202d36
commit fdb38a227e
5 changed files with 58 additions and 4 deletions

View File

@ -85,14 +85,15 @@ enum
KVMFR_RECORD_OSINFO
};
enum
typedef enum
{
KVMFR_OS_LINUX,
KVMFR_OS_BSD,
KVMFR_OS_OSX,
KVMFR_OS_WINDOWS,
KVMFR_OS_OTHER
};
}
KVMFROS;
typedef struct KVMFRRecord_VMInfo
{

View File

@ -21,6 +21,7 @@
#pragma once
#include <stdbool.h>
#include "common/KVMFR.h"
// exit code for user opted to exit looking-glass-host
#define LG_HOST_EXIT_USER 0x10
@ -46,3 +47,13 @@ void os_showMessage(const char * caption, const char * msg);
bool os_blockScreensaver();
bool os_hasSetCursorPos(void);
void os_setCursorPos(int x, int y);
// return the KVMFR OS type
KVMFROS os_getKVMFRType(void);
// returns the OS name & version if possible
const char * os_getOSName(void);
// returns the UUID that was given to the VM, this can be obtained from the
// SMBIOS. Must return exactly 16 bytes or NULL.
const uint8_t * os_getUUID(void);

View File

@ -95,3 +95,20 @@ bool os_hasSetCursorPos(void)
void os_setCursorPos(int x, int y)
{
}
KVMFROS os_getKVMFRType(void)
{
return KVMFR_OS_LINUX;
}
const char * os_getOSName(void)
{
//TODO
return NULL;
}
const uint8_t * os_getUUID(void)
{
//TODO
return NULL;
}

View File

@ -589,3 +589,20 @@ void os_setCursorPos(int x, int y)
{
SetCursorPos(x, y);
}
KVMFROS os_getKVMFRType(void)
{
return KVMFR_OS_WINDOWS;
}
const char * os_getOSName(void)
{
//TODO
return NULL;
}
const uint8_t * os_getUUID(void)
{
//TODO
return NULL;
}

View File

@ -604,6 +604,10 @@ static bool newKVMFRData(KVMFRUserData * dst)
strncpy(vmInfo->capture, app.iface->shortName, sizeof(vmInfo->capture) - 1);
const uint8_t * uuid = os_getUUID();
if (uuid)
memcpy(vmInfo->uuid, uuid, 16);
char * model = allocUserData(dst, 1024, false);
if (!model)
return false;
@ -630,8 +634,12 @@ static bool newKVMFRData(KVMFRUserData * dst)
record->type = KVMFR_RECORD_OSINFO;
record->size = sizeof(*osInfo);
osInfo->os = KVMFR_OS_OTHER;
if (!appendBuffer(dst, record, "Unknown", 8))
osInfo->os = os_getKVMFRType();
const char * osName = os_getOSName();
if (!osName)
osName = "";
if (!appendBuffer(dst, record, osName, strlen(osName) + 1))
return false;
}