[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEN][ACM] Clean up ACM interface to use explicitly-sized types
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID c1163951ee2f9f63522b9cab8e83d2d318da9894 # Parent 43f1d77bc7addfd623d842a721b4898a2436bcf9 [XEN][ACM] Clean up ACM interface to use explicitly-sized types and guest handles. Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx> --- tools/python/xen/lowlevel/acm/acm.c | 2 +- xen/acm/acm_policy.c | 16 ++++++++-------- xen/include/public/acm_ops.h | 20 ++++++++++---------- 3 files changed, 19 insertions(+), 19 deletions(-) diff -r 43f1d77bc7ad -r c1163951ee2f tools/python/xen/lowlevel/acm/acm.c --- a/tools/python/xen/lowlevel/acm/acm.c Fri Jun 09 16:19:42 2006 +0100 +++ b/tools/python/xen/lowlevel/acm/acm.c Fri Jun 09 16:26:05 2006 +0100 @@ -52,7 +52,7 @@ void * __getssid(int domid, uint32_t *bu } memset(buf, 0, SSID_BUFFER_SIZE); getssid.interface_version = ACM_INTERFACE_VERSION; - getssid.ssidbuf = buf; + set_xen_guest_handle(getssid.ssidbuf, buf); getssid.ssidbuf_size = SSID_BUFFER_SIZE; getssid.get_ssid_by = DOMAINID; getssid.id.domainid = domid; diff -r 43f1d77bc7ad -r c1163951ee2f xen/acm/acm_policy.c --- a/xen/acm/acm_policy.c Fri Jun 09 16:19:42 2006 +0100 +++ b/xen/acm/acm_policy.c Fri Jun 09 16:26:05 2006 +0100 @@ -32,7 +32,7 @@ #include <acm/acm_endian.h> int -acm_set_policy(void *buf, u32 buf_size, int isuserbuffer) +acm_set_policy(XEN_GUEST_HANDLE(void) buf, u32 buf_size, int isuserbuffer) { u8 *policy_buffer = NULL; struct acm_policy_buffer *pol; @@ -45,7 +45,7 @@ acm_set_policy(void *buf, u32 buf_size, return -ENOMEM; if (isuserbuffer) { - if (copy_from_user(policy_buffer, buf, buf_size)) + if (copy_from_guest(policy_buffer, buf, buf_size)) { printk("%s: Error copying!\n",__func__); goto error_free; @@ -116,7 +116,7 @@ acm_set_policy(void *buf, u32 buf_size, } int -acm_get_policy(void *buf, u32 buf_size) +acm_get_policy(XEN_GUEST_HANDLE(void) buf, u32 buf_size) { u8 *policy_buffer; int ret; @@ -162,7 +162,7 @@ acm_get_policy(void *buf, u32 buf_size) goto error_free_unlock; bin_pol->len = htonl(ntohl(bin_pol->len) + ret); - if (copy_to_user(buf, policy_buffer, ntohl(bin_pol->len))) + if (copy_to_guest(buf, policy_buffer, ntohl(bin_pol->len))) goto error_free_unlock; read_unlock(&acm_bin_pol_rwlock); @@ -177,7 +177,7 @@ acm_get_policy(void *buf, u32 buf_size) } int -acm_dump_statistics(void *buf, u16 buf_size) +acm_dump_statistics(XEN_GUEST_HANDLE(void) buf, u16 buf_size) { /* send stats to user space */ u8 *stats_buffer; @@ -208,7 +208,7 @@ acm_dump_statistics(void *buf, u16 buf_s memcpy(stats_buffer, &acm_stats, sizeof(struct acm_stats_buffer)); - if (copy_to_user(buf, stats_buffer, sizeof(struct acm_stats_buffer) + len1 + len2)) + if (copy_to_guest(buf, stats_buffer, sizeof(struct acm_stats_buffer) + len1 + len2)) goto error_lock_free; read_unlock(&acm_bin_pol_rwlock); @@ -223,7 +223,7 @@ acm_dump_statistics(void *buf, u16 buf_s int -acm_get_ssid(ssidref_t ssidref, u8 *buf, u16 buf_size) +acm_get_ssid(ssidref_t ssidref, XEN_GUEST_HANDLE(void) buf, u16 buf_size) { /* send stats to user space */ u8 *ssid_buffer; @@ -272,7 +272,7 @@ acm_get_ssid(ssidref_t ssidref, u8 *buf, acm_ssid->len += ret; acm_ssid->secondary_max_types = ret; - if (copy_to_user(buf, ssid_buffer, acm_ssid->len)) + if (copy_to_guest(buf, ssid_buffer, acm_ssid->len)) goto error_free_unlock; read_unlock(&acm_bin_pol_rwlock); diff -r 43f1d77bc7ad -r c1163951ee2f xen/include/public/acm_ops.h --- a/xen/include/public/acm_ops.h Fri Jun 09 16:19:42 2006 +0100 +++ b/xen/include/public/acm_ops.h Fri Jun 09 16:26:05 2006 +0100 @@ -17,7 +17,7 @@ * This makes sure that old versions of acm tools will stop working in a * well-defined way (rather than crashing the machine, for instance). */ -#define ACM_INTERFACE_VERSION 0xAAAA0007 +#define ACM_INTERFACE_VERSION 0xAAAA0008 /************************************************************************/ @@ -33,7 +33,7 @@ struct acm_setpolicy { struct acm_setpolicy { /* IN */ uint32_t interface_version; - void *pushcache; + XEN_GUEST_HANDLE(void) pushcache; uint32_t pushcache_size; }; @@ -42,7 +42,7 @@ struct acm_getpolicy { struct acm_getpolicy { /* IN */ uint32_t interface_version; - void *pullcache; + XEN_GUEST_HANDLE(void) pullcache; uint32_t pullcache_size; }; @@ -51,7 +51,7 @@ struct acm_dumpstats { struct acm_dumpstats { /* IN */ uint32_t interface_version; - void *pullcache; + XEN_GUEST_HANDLE(void) pullcache; uint32_t pullcache_size; }; @@ -61,12 +61,12 @@ struct acm_getssid { struct acm_getssid { /* IN */ uint32_t interface_version; - enum get_type get_ssid_by; + uint32_t get_ssid_by; union { domaintype_t domainid; ssidref_t ssidref; } id; - void *ssidbuf; + XEN_GUEST_HANDLE(void) ssidbuf; uint32_t ssidbuf_size; }; @@ -74,8 +74,8 @@ struct acm_getdecision { struct acm_getdecision { /* IN */ uint32_t interface_version; - enum get_type get_decision_by1; - enum get_type get_decision_by2; + uint32_t get_decision_by1; + uint32_t get_decision_by2; union { domaintype_t domainid; ssidref_t ssidref; @@ -84,9 +84,9 @@ struct acm_getdecision { domaintype_t domainid; ssidref_t ssidref; } id2; - enum acm_hook_type hook; + uint32_t hook; /* OUT */ - int acm_decision; + uint32_t acm_decision; }; #endif /* __XEN_PUBLIC_ACM_OPS_H__ */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |