On Wednesday, July 29, 2015 3:50:02 PM, "Yang Hongyang" <yan...@cn.fujitsu.com> wrote: > > On 07/29/2015 09:33 PM, Thomas Huth wrote: > > On Wednesday, July 29, 2015 12:51:46 PM, > > "Yang Hongyang" <yan...@cn.fujitsu.com> wrote: > >> > >> This is mostly the same with init/cleanup of netdev object. > >> > >> Signed-off-by: Yang Hongyang <yan...@cn.fujitsu.com> > >> --- > >> include/net/filter.h | 21 ++++++++ > >> include/qemu/typedefs.h | 1 + > >> net/filter.c | 131 > >> ++++++++++++++++++++++++++++++++++++++++++++++++ > >> qapi-schema.json | 30 +++++++++++ > >> 4 files changed, 183 insertions(+) > >> > > [...] > >> diff --git a/net/filter.c b/net/filter.c > >> index 4e40f08..e6fdc26 100644 > >> --- a/net/filter.c > >> +++ b/net/filter.c > >> @@ -6,10 +6,141 @@ > >> */ > >> > >> #include "qemu-common.h" > >> +#include "qapi-visit.h" > >> +#include "qapi/qmp/qerror.h" > >> +#include "qemu/error-report.h" > >> +#include "qapi-visit.h" > >> +#include "qapi/opts-visitor.h" > >> +#include "qapi/dealloc-visitor.h" > >> +#include "qemu/config-file.h" > >> + > >> #include "net/filter.h" > >> +#include "net/net.h" > >> + > >> +static QTAILQ_HEAD(, NetFilterState) net_filters; > >> + > >> +NetFilterState *qemu_new_net_filter(NetFilterInfo *info, > >> + NetClientState *netdev, > >> + const char *model, > >> + const char *name) > >> +{ > >> + NetFilterState *nf; > >> + > >> + assert(info->size >= sizeof(NetFilterState)); > >> + > >> + nf = g_malloc0(info->size); > >> + nf->info = info; > >> + nf->model = g_strdup(model); > >> + nf->name = g_strdup(name); > >> + nf->netdev = netdev; > >> + QTAILQ_INSERT_TAIL(&net_filters, nf, next); > >> + /* TODO: attach netfilter to netdev */ > >> + > >> + return nf; > >> +} > >> + > >> +static __attribute__((unused)) void > >> qemu_cleanup_net_filter(NetFilterState > >> *nf) > > > > Maybe rather add this function in the patch you really need it? Then you > > could > > avoid the ugly attribute-unused here. > > It will be removed in the next patch. I put cleanup here in order to pair > with the new function, and could be easy to review...
You could also use another trick: Use "static inline" instead of "static __attribute__((unused))" ... then GCC also does not complain about unused static functions! Thomas