Message ID | 20220211145153.2861415-3-eesposit@redhat.com |
---|---|
State | New |
Headers | show |
Series | block layer: split block APIs in global state and I/O | expand |
Am 11.02.2022 um 15:51 hat Emanuele Giuseppe Esposito geschrieben: > Righ now, IO_CODE and IO_OR_GS_CODE are nop, as there isn't > really a way to check that a function is only called in I/O. > On the other side, we can use qemu_in_main_thread to check if > we are in the main loop. > > Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> > --- > include/qemu/main-loop.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h > index bc42b5939d..77adc51627 100644 > --- a/include/qemu/main-loop.h > +++ b/include/qemu/main-loop.h > @@ -269,6 +269,15 @@ bool qemu_mutex_iothread_locked(void); > */ > bool qemu_in_main_thread(void); > > +/* Mark and check that the function is part of the global state API. */ > +#define GLOBAL_STATE_CODE() assert(qemu_in_main_thread()) > + > +/* Mark and check that the function is part of the I/O API. */ > +#define IO_CODE() /* nop */ > + > +/* Mark and check that the function is part of the "I/O OR GS" API. */ > +#define IO_OR_GS_CODE() /* nop */ > + I don't think it is actually a problem with the current macro expansions and the places where they are used are limited, but if you have to respin, I'd consider wrapping things in the usual do { ... } while (0) just to be sure. Kevin
diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h index bc42b5939d..77adc51627 100644 --- a/include/qemu/main-loop.h +++ b/include/qemu/main-loop.h @@ -269,6 +269,15 @@ bool qemu_mutex_iothread_locked(void); */ bool qemu_in_main_thread(void); +/* Mark and check that the function is part of the global state API. */ +#define GLOBAL_STATE_CODE() assert(qemu_in_main_thread()) + +/* Mark and check that the function is part of the I/O API. */ +#define IO_CODE() /* nop */ + +/* Mark and check that the function is part of the "I/O OR GS" API. */ +#define IO_OR_GS_CODE() /* nop */ + /** * qemu_mutex_lock_iothread: Lock the main loop mutex. *
Righ now, IO_CODE and IO_OR_GS_CODE are nop, as there isn't really a way to check that a function is only called in I/O. On the other side, we can use qemu_in_main_thread to check if we are in the main loop. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> --- include/qemu/main-loop.h | 9 +++++++++ 1 file changed, 9 insertions(+)