xref: /qemu/fsdev/9p-marshal.c (revision 9edc6313)
1829dd286SWei Liu /*
2829dd286SWei Liu  * 9p backend
3829dd286SWei Liu  *
4829dd286SWei Liu  * Copyright IBM, Corp. 2010
5829dd286SWei Liu  *
6829dd286SWei Liu  * Authors:
7829dd286SWei Liu  *  Anthony Liguori   <aliguori@us.ibm.com>
8829dd286SWei Liu  *
9829dd286SWei Liu  * This work is licensed under the terms of the GNU GPL, version 2.  See
10829dd286SWei Liu  * the COPYING file in the top-level directory.
11829dd286SWei Liu  *
12829dd286SWei Liu  */
13829dd286SWei Liu 
14fbc04127SPeter Maydell #include "qemu/osdep.h"
15829dd286SWei Liu #include <glib/gprintf.h>
16829dd286SWei Liu #include <dirent.h>
17829dd286SWei Liu #include <utime.h>
18829dd286SWei Liu 
19829dd286SWei Liu #include "9p-marshal.h"
20829dd286SWei Liu 
2142bdeb04SChristian Schoenebeck P9ARRAY_DEFINE_TYPE(V9fsString, v9fs_string_free);
2242bdeb04SChristian Schoenebeck 
v9fs_string_free(V9fsString * str)23829dd286SWei Liu void v9fs_string_free(V9fsString *str)
24829dd286SWei Liu {
25829dd286SWei Liu     g_free(str->data);
26829dd286SWei Liu     str->data = NULL;
27829dd286SWei Liu     str->size = 0;
28829dd286SWei Liu }
29829dd286SWei Liu 
30*9edc6313SMarc-André Lureau void G_GNUC_PRINTF(2, 3)
v9fs_string_sprintf(V9fsString * str,const char * fmt,...)31829dd286SWei Liu v9fs_string_sprintf(V9fsString *str, const char *fmt, ...)
32829dd286SWei Liu {
33829dd286SWei Liu     va_list ap;
34829dd286SWei Liu 
35829dd286SWei Liu     v9fs_string_free(str);
36829dd286SWei Liu 
37829dd286SWei Liu     va_start(ap, fmt);
38829dd286SWei Liu     str->size = g_vasprintf(&str->data, fmt, ap);
39829dd286SWei Liu     va_end(ap);
40829dd286SWei Liu }
41829dd286SWei Liu 
v9fs_string_copy(V9fsString * lhs,V9fsString * rhs)42829dd286SWei Liu void v9fs_string_copy(V9fsString *lhs, V9fsString *rhs)
43829dd286SWei Liu {
44829dd286SWei Liu     v9fs_string_free(lhs);
45829dd286SWei Liu     v9fs_string_sprintf(lhs, "%s", rhs->data);
46829dd286SWei Liu }
47