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