[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/2] Introduce 64 bit integer write interface to xenstore



On Wed, 3 Apr 2013, Felipe Franciosi wrote:
> The current implementation of xen_backend only provides 32 bit integer
> functions to write to xenstore. This patch adds two functions that
> allow writing 64 bit integers (one generic function and another for
> the backend only).
> 
> This patch also fixes the size of the char arrays used to represent
> these integers as strings (originally 32 bytes, however no more than
> 12 bytes are needed for 32 bit integers and no more than 21 bytes are
> needed for 64 bit integers).
> 
> Signed-off-by: Felipe Franciosi <felipe@xxxxxxxxxxxx>

Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>


>  hw/xen_backend.c |   15 ++++++++++++++-
>  hw/xen_backend.h |    2 ++
>  2 files changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/xen_backend.c b/hw/xen_backend.c
> index 24381b5..02693d7 100644
> --- a/hw/xen_backend.c
> +++ b/hw/xen_backend.c
> @@ -85,12 +85,20 @@ char *xenstore_read_str(const char *base, const char 
> *node)
>  
>  int xenstore_write_int(const char *base, const char *node, int ival)
>  {
> -    char val[32];
> +    char val[12];
>  
>      snprintf(val, sizeof(val), "%d", ival);
>      return xenstore_write_str(base, node, val);
>  }
>  
> +int xenstore_write_int64(const char *base, const char *node, int64_t ival)
> +{
> +    char val[21];
> +
> +    snprintf(val, sizeof(val), "%"PRId64, ival);
> +    return xenstore_write_str(base, node, val);
> +}
> +
>  int xenstore_read_int(const char *base, const char *node, int *ival)
>  {
>      char *val;
> @@ -114,6 +122,11 @@ int xenstore_write_be_int(struct XenDevice *xendev, 
> const char *node, int ival)
>      return xenstore_write_int(xendev->be, node, ival);
>  }
>  
> +int xenstore_write_be_int64(struct XenDevice *xendev, const char *node, 
> int64_t ival)
> +{
> +    return xenstore_write_int64(xendev->be, node, ival);
> +}
> +
>  char *xenstore_read_be_str(struct XenDevice *xendev, const char *node)
>  {
>      return xenstore_read_str(xendev->be, node);
> diff --git a/hw/xen_backend.h b/hw/xen_backend.h
> index 6d5c699..d04b985 100644
> --- a/hw/xen_backend.h
> +++ b/hw/xen_backend.h
> @@ -63,11 +63,13 @@ extern const char *xen_protocol;
>  /* xenstore helper functions */
>  int xenstore_write_str(const char *base, const char *node, const char *val);
>  int xenstore_write_int(const char *base, const char *node, int ival);
> +int xenstore_write_int64(const char *base, const char *node, int64_t ival);
>  char *xenstore_read_str(const char *base, const char *node);
>  int xenstore_read_int(const char *base, const char *node, int *ival);
>  
>  int xenstore_write_be_str(struct XenDevice *xendev, const char *node, const 
> char *val);
>  int xenstore_write_be_int(struct XenDevice *xendev, const char *node, int 
> ival);
> +int xenstore_write_be_int64(struct XenDevice *xendev, const char *node, 
> int64_t ival);
>  char *xenstore_read_be_str(struct XenDevice *xendev, const char *node);
>  int xenstore_read_be_int(struct XenDevice *xendev, const char *node, int 
> *ival);
>  char *xenstore_read_fe_str(struct XenDevice *xendev, const char *node);
> -- 
> 1.7.10.4
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.