On Mon, Mar 07, 2016 at 06:12:38AM +0100, Andrew Jones wrote: > On Mon, Mar 07, 2016 at 12:23:28PM +0800, Peter Xu wrote: > > +#ifdef CONFIG_KVM > > +/* > > + * This is merely the same as kvm_create_device(). The only > > + * difference is we are using raw fds rather than KVMState, so that > > + * we can use it even without kvm_state initialized. > > + */ > > +static int kvm_create_device_fds(int kvm_fd, int vmfd, > > + uint64_t type, bool test) > > I don't think we need this helper function. Who else will call it? > Particularly without test==true? Anyway, I think three ioctls directly > called from qmp_query_gic_capability should be OK.
Right. However, I would still consider using a helper function if you would not mind. E.g, how about this: #ifdef CONFIG_KVM /* Test whether KVM support specific device. */ static inline int kvm_support_device(int vmfd, uint64_t type) { struct kvm_create_device create_dev = { .type = type, .fd = -1, .flags = KVM_CREATE_DEVICE_TEST, }; return ioctl(vmfd, KVM_CREATE_DEVICE, &create_dev); } #endif Thanks. Peter