On Tue, Sep 15, 2020 at 03:10:06PM +0100, Paul Durrant wrote: > From: Paul Durrant <[email protected]> > > ... and use it to define libxl_device_disk_safe_remove(). > > This patch builds on the existent macro magic by using a new value of the > 'force' field in in libxl__ao_device. > It is currently defined as an int but is used in a boolean manner where > 1 means the operation is forced and 0 means it is not (but is actually forced > after a 10s time-out). In adding a third value, this patch re-defines 'force' > as a struct type (libxl__force) with a single 'flag' field taking an > enumerated value: > > LIBXL__FORCE_AUTO - corresponding to the old 0 value > LIBXL__FORCE_ON - corresponding to the old 1 value > LIBXL__FORCE_OFF - the new value > > The LIBXL_DEFINE_DEVICE_REMOVE() macro is then modified to define the > libxl_device_<type>_remove() and libxl_device_<type>_destroy() functions, > setting LIBXL__FORCE_AUTO and LIBXL__FORCE_ON (respectively) in the > libxl__ao_device passed to libxl__initiate_device_generic_remove() and a > new macro, LIBXL_DEFINE_DEVICE_SAFE_REMOVE(), is defined that sets > LIBXL__FORCE_OFF instead. This macro is used to define the new > libxl_device_disk_safe_remove() function. > > Signed-off-by: Paul Durrant <[email protected]>
Reviewed-by: Wei Liu <[email protected]>
