mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-08 07:21:27 +00:00
xen/sysfs: Use XENVER_guest_handle to query UUID
This hypercall has been present since Xen 3.1, and is the preferred method for a domain to obtain its UUID. Fall back to the xenstore method if using an older version of Xen (which returns -ENOSYS). Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
parent
b8b0f559c7
commit
5c13f80677
2 changed files with 15 additions and 1 deletions
|
@ -114,7 +114,7 @@ static void xen_sysfs_version_destroy(void)
|
||||||
|
|
||||||
/* UUID */
|
/* UUID */
|
||||||
|
|
||||||
static ssize_t uuid_show(struct hyp_sysfs_attr *attr, char *buffer)
|
static ssize_t uuid_show_fallback(struct hyp_sysfs_attr *attr, char *buffer)
|
||||||
{
|
{
|
||||||
char *vm, *val;
|
char *vm, *val;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -135,6 +135,17 @@ static ssize_t uuid_show(struct hyp_sysfs_attr *attr, char *buffer)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ssize_t uuid_show(struct hyp_sysfs_attr *attr, char *buffer)
|
||||||
|
{
|
||||||
|
xen_domain_handle_t uuid;
|
||||||
|
int ret;
|
||||||
|
ret = HYPERVISOR_xen_version(XENVER_guest_handle, uuid);
|
||||||
|
if (ret)
|
||||||
|
return uuid_show_fallback(attr, buffer);
|
||||||
|
ret = sprintf(buffer, "%pU\n", uuid);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
HYPERVISOR_ATTR_RO(uuid);
|
HYPERVISOR_ATTR_RO(uuid);
|
||||||
|
|
||||||
static int __init xen_sysfs_uuid_init(void)
|
static int __init xen_sysfs_uuid_init(void)
|
||||||
|
|
|
@ -60,4 +60,7 @@ struct xen_feature_info {
|
||||||
/* arg == NULL; returns host memory page size. */
|
/* arg == NULL; returns host memory page size. */
|
||||||
#define XENVER_pagesize 7
|
#define XENVER_pagesize 7
|
||||||
|
|
||||||
|
/* arg == xen_domain_handle_t. */
|
||||||
|
#define XENVER_guest_handle 8
|
||||||
|
|
||||||
#endif /* __XEN_PUBLIC_VERSION_H__ */
|
#endif /* __XEN_PUBLIC_VERSION_H__ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue