On Fri, May 23, 2014 at 08:49:19AM -0600, Alex Williamson wrote: >On Fri, 2014-05-23 at 14:30 +0200, Alexander Graf wrote: >> On 23.05.14 13:58, Gavin Shan wrote: >> > On Fri, May 23, 2014 at 08:52:23AM +0200, Alexander Graf wrote: >> >>> Am 23.05.2014 um 05:23 schrieb Alex Williamson <alex.williamson@xxxxxxxxxx>: >> >>>> On Fri, 2014-05-23 at 10:37 +1000, Gavin Shan wrote: >> >>>>> On Fri, May 23, 2014 at 10:17:30AM +1000, Gavin Shan wrote: >> >>>>>> On Thu, May 22, 2014 at 11:55:29AM +0200, Alexander Graf wrote: >> >>>>>> On 22.05.14 10:23, Gavin Shan wrote: .../... > >If there's a reason to use something other than _IO+argsz+flags, we can >discuss it, but this is not it. > If I just need a command, need I define a struct for the command, or I should pass "NULL" for the 3rd parameter of ioctl() ? struct foo { uint32_t argsz; uint32_t flags; }; >> > Also, I need keep the return value from >> > ioctl() less or equal to 0 ? :-) >> >> Usually return values are >> >> < 0 means error >> == 0 means success >> > 0 means return payload > >Agree, >0 only makes sense if the return value of the ioctl can be >expressed as a positive int, ex. VFIO_EEH_ERROR_COUNT (if such a thing >was needed). Thanks, > What if I have to return "0" ? For "0", I need have a field in the data struct to carry it. For "> 0", to carry it with return value from ioctl(). Why not make it unified to have additional field in the data struct to carry the return values. In this case, ioctl() just returns: < 0: error == 0: success, check return value from the data struct. Thanks, Gavin -- To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html