mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
Clean up arch_get_xen_caps() to not use sprintf().
Based on a patch from Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
1 parent
46b860ba4b
commit
ba8fa1be9e
2 files changed
+34
-49
No files matched your search
@@ -547,18 +547,19 @@ printk("num_online_cpus=%d, max_cpus=%d\n",num_online_cpus(),max_cpus);
|
||||
|
||||
void arch_get_xen_caps(xen_capabilities_info_t info)
|
||||
{
|
||||
char *p=info;
|
||||
int major = xen_major_version();
|
||||
int minor = xen_minor_version();
|
||||
char s[32];
|
||||
|
||||
p += snprintf(p,sizeof(info), "xen-%d.%d-ia64 ", major, minor);
|
||||
info[0] = '\0';
|
||||
|
||||
snprintf(s, sizeof(s), "xen-%d.%d-ia54 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
|
||||
if (vmx_enabled)
|
||||
p += snprintf(p,sizeof(info) - (p - info),"hvm-%d.%d-ia64 ", major, minor);
|
||||
|
||||
*(p-1) = 0;
|
||||
|
||||
BUG_ON((p-info)>sizeof(xen_capabilities_info_t));
|
||||
|
||||
{
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-ia64 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
}
|
||||
}
|
||||
|
||||
+25
-41
@@ -802,69 +802,53 @@ void __init __start_xen(multiboot_info_t *mbi)
|
||||
|
||||
void arch_get_xen_caps(xen_capabilities_info_t info)
|
||||
{
|
||||
char *p = info;
|
||||
int i = 0;
|
||||
int major = xen_major_version();
|
||||
int minor = xen_minor_version();
|
||||
char s[32];
|
||||
|
||||
info[0] = '\0';
|
||||
|
||||
#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
|
||||
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t),
|
||||
"xen-%d.%d-x86_32 ", major, minor);
|
||||
p += i;
|
||||
if ( hvm_enabled ) {
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t) - i,
|
||||
"hvm-%d.%d-x86_32 ", major, minor);
|
||||
p += i;
|
||||
snprintf(s, sizeof(s), "xen-%d.%d-x86_32 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
if ( hvm_enabled )
|
||||
{
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-x86_32 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
}
|
||||
|
||||
#elif defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
|
||||
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t),
|
||||
"xen-%d.%d-x86_32p ", major, minor);
|
||||
p += i;
|
||||
snprintf(s, sizeof(s), "xen-%d.%d-x86_32p ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
if ( hvm_enabled )
|
||||
{
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t),
|
||||
"hvm-%d.%d-x86_32 ", major, minor);
|
||||
p += i;
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t) - i,
|
||||
"hvm-%d.%d-x86_32p ", major, minor);
|
||||
p += i;
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-x86_32 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-x86_32p ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
}
|
||||
|
||||
#elif defined(CONFIG_X86_64)
|
||||
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t),
|
||||
"xen-%d.%d-x86_64 ", major, minor);
|
||||
p += i;
|
||||
snprintf(s, sizeof(s), "xen-%d.%d-x86_64 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
#ifdef CONFIG_COMPAT
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t) - i,
|
||||
"xen-%d.%d-x86_32p ", major, minor);
|
||||
p += i;
|
||||
snprintf(s, sizeof(s), "xen-%d.%d-x86_32p ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
#endif
|
||||
if ( hvm_enabled )
|
||||
{
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t) - i,
|
||||
"hvm-%d.%d-x86_32 ", major, minor);
|
||||
p += i;
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t) - i,
|
||||
"hvm-%d.%d-x86_32p ", major, minor);
|
||||
p += i;
|
||||
i = snprintf(p, sizeof(xen_capabilities_info_t) - i,
|
||||
"hvm-%d.%d-x86_64 ", major, minor);
|
||||
p += i;
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-x86_32 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-x86_32p ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
snprintf(s, sizeof(s), "hvm-%d.%d-x86_64 ", major, minor);
|
||||
safe_strcat(info, s);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
p++;
|
||||
|
||||
#endif
|
||||
|
||||
*(p-1) = 0;
|
||||
|
||||
BUG_ON((p - info) > sizeof(xen_capabilities_info_t));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||