On 6/14/21 4:14 AM, Paolo Bonzini wrote:
On 12/06/21 01:33, Richard Henderson wrote:
- unknown_lock_type))
+/* Auxiliary macros to simplify QEMU_MAKE_LOCABLE. */
+#define QEMU_LOCK_FUNC(x) ((QemuLockUnlockFunc *) \
+ _Generic((x), QemuMutex *: qemu_mutex_lock, \
+ QemuRecMutex *: qemu_rec_mutex_lock, \
+ CoMutex *: qemu_co_mutex_lock, \
+ QemuSpin *: qemu_spin_lock))
+
+#define QEMU_UNLOCK_FUNC(x) ((QemuLockUnlockFunc *) \
+ _Generic((x), QemuMutex *: qemu_mutex_unlock, \
+ QemuRecMutex *: qemu_rec_mutex_unlock, \
+ CoMutex *: qemu_co_mutex_unlock, \
+ QemuSpin *: qemu_spin_unlock))
These are not needed anymore, are they?
Otherwise I agree that it's both more and less complicated. The duplication between
QEMU_MAKE_LOCKABLE_NONNULL and QEMU_MAKE_LOCKABLE is tolerable.
Yep, I didn't notice that they were only used by MAKE_LOCKABLE.
r~