mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-15 07:22:46 +00:00
coroutine: Move coroutine_fn to qemu/osdep.h, trim includes
block/block-hmp-cmds.h and qemu/co-shared-resource.h use coroutine_fn without including qemu/coroutine.h. They compile only if it's already included from elsewhere. I could fix that, but pulling in qemu/coroutine.h and everything it includes just for a macro that expands into nothing feels silly. Instead, move the macro to qemu/osdep.h. Inclusions of qemu/coroutine.h just for coroutine_fn become superfluous. Drop them. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20221221131435.3851212-3-armbru@redhat.com>
This commit is contained in:
parent
2379247810
commit
af7f8eb591
|
@ -25,8 +25,6 @@
|
||||||
#ifndef BLOCK_AIO_TASK_H
|
#ifndef BLOCK_AIO_TASK_H
|
||||||
#define BLOCK_AIO_TASK_H
|
#define BLOCK_AIO_TASK_H
|
||||||
|
|
||||||
#include "qemu/coroutine.h"
|
|
||||||
|
|
||||||
typedef struct AioTaskPool AioTaskPool;
|
typedef struct AioTaskPool AioTaskPool;
|
||||||
typedef struct AioTask AioTask;
|
typedef struct AioTask AioTask;
|
||||||
typedef int coroutine_fn (*AioTaskFunc)(AioTask *task);
|
typedef int coroutine_fn (*AioTaskFunc)(AioTask *task);
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include "block/aio.h"
|
#include "block/aio.h"
|
||||||
#include "block/aio-wait.h"
|
#include "block/aio-wait.h"
|
||||||
#include "qemu/iov.h"
|
#include "qemu/iov.h"
|
||||||
#include "qemu/coroutine.h"
|
|
||||||
#include "block/accounting.h"
|
#include "block/accounting.h"
|
||||||
#include "qemu/hbitmap.h"
|
#include "qemu/hbitmap.h"
|
||||||
#include "qemu/transactions.h"
|
#include "qemu/transactions.h"
|
||||||
|
|
|
@ -23,8 +23,6 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/clang-tsa.h"
|
#include "qemu/clang-tsa.h"
|
||||||
|
|
||||||
#include "qemu/coroutine.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Graph Lock API
|
* Graph Lock API
|
||||||
* This API provides a rwlock used to protect block layer
|
* This API provides a rwlock used to protect block layer
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#define HMP_H
|
#define HMP_H
|
||||||
|
|
||||||
#include "qemu/readline.h"
|
#include "qemu/readline.h"
|
||||||
#include "qemu/coroutine.h"
|
|
||||||
#include "qapi/qapi-types-common.h"
|
#include "qapi/qapi-types-common.h"
|
||||||
|
|
||||||
bool hmp_handle_error(Monitor *mon, Error *err);
|
bool hmp_handle_error(Monitor *mon, Error *err);
|
||||||
|
|
|
@ -26,23 +26,19 @@
|
||||||
* waiting for events to complete.
|
* waiting for events to complete.
|
||||||
*
|
*
|
||||||
* These functions are re-entrant and may be used outside the global mutex.
|
* These functions are re-entrant and may be used outside the global mutex.
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mark a function that executes in coroutine context
|
|
||||||
*
|
*
|
||||||
* Functions that execute in coroutine context cannot be called directly from
|
* Functions that execute in coroutine context cannot be called
|
||||||
* normal functions. In the future it would be nice to enable compiler or
|
* directly from normal functions. Use @coroutine_fn to mark such
|
||||||
* static checker support for catching such errors. This annotation might make
|
* functions. For example:
|
||||||
* it possible and in the meantime it serves as documentation.
|
|
||||||
*
|
|
||||||
* For example:
|
|
||||||
*
|
*
|
||||||
* static void coroutine_fn foo(void) {
|
* static void coroutine_fn foo(void) {
|
||||||
* ....
|
* ....
|
||||||
* }
|
* }
|
||||||
|
*
|
||||||
|
* In the future it would be nice to have the compiler or a static
|
||||||
|
* checker catch misuse of such functions. This annotation might make
|
||||||
|
* it possible and in the meantime it serves as documentation.
|
||||||
*/
|
*/
|
||||||
#define coroutine_fn
|
|
||||||
|
|
||||||
typedef struct Coroutine Coroutine;
|
typedef struct Coroutine Coroutine;
|
||||||
|
|
||||||
|
|
|
@ -157,6 +157,22 @@ extern "C" {
|
||||||
|
|
||||||
#include "qemu/typedefs.h"
|
#include "qemu/typedefs.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mark a function that executes in coroutine context
|
||||||
|
*
|
||||||
|
* Functions that execute in coroutine context cannot be called directly from
|
||||||
|
* normal functions. In the future it would be nice to enable compiler or
|
||||||
|
* static checker support for catching such errors. This annotation might make
|
||||||
|
* it possible and in the meantime it serves as documentation.
|
||||||
|
*
|
||||||
|
* For example:
|
||||||
|
*
|
||||||
|
* static void coroutine_fn foo(void) {
|
||||||
|
* ....
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
#define coroutine_fn
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For mingw, as of v6.0.0, the function implementing the assert macro is
|
* For mingw, as of v6.0.0, the function implementing the assert macro is
|
||||||
* not marked as noreturn, so the compiler cannot delete code following an
|
* not marked as noreturn, so the compiler cannot delete code following an
|
||||||
|
|
Loading…
Reference in a new issue