[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 2/7] libxl: Add to libxl__domain_type a new return value (LIBXL_DOMAIN_TYPE_NOTFOUND)
On Mon, 2015-03-23 at 14:20 -0400, Konrad Rzeszutek Wilk wrote: > So that the callers can distinguish between an error and > an domain not found. The exposed API calls that are effected > by this are: libxl_domain_[remus_start,suspend,unpause,cdrom_insert, > set_vcpuonline] > > We add an helper function to deal with the two types of errors: > libxl_domain_type2err. However for libxl_[pci,dom].c we just add > the extra check for LIBXL_DOMAIN_TYPE_NOTFOUND for simplicity > reasons. > > Suggested-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Did I? Anyway, I'm not terribly keen on the approach taken here, sorry, in particular extending libxl_domain_type with a subset of the libxl_error codes and the shenanigans which are needed to convert between them. Off hand I can think of 3 possible alternative solutions: Arrange that the -ve error values in libxl_domain_type directly correspond to an appropriate libxl_error code, allowing code to do if (type < 0) return type; if (type < 0) { rc = type ; goto out } type stuff. Change the prototype of libxl__domain_type to always return a libxl rc and on success return the type via a pointer argument. Change the return type of libxl_domain_type to an int and return either a LIBXL_DOMAIN_TYPE_FOO or an ERROR_*. They all have downsides (I don't much like the implicit cast between domain type and error code, changing the prototype will probably be disruptive, changing the return type means gcc can't catch missing switch statements for us). Perhaps you or my fellow maintainers have a better idea or a preference for one of the above? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |