12345678910111213141516171819202122232425262728293031323334353637383940 |
- /*
- * QEMU Module Infrastructure
- *
- * Copyright IBM, Corp. 2009
- *
- * Authors:
- * Anthony Liguori <aliguori@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2. See
- * the COPYING file in the top-level directory.
- *
- */
- #ifndef QEMU_MODULE_H
- #define QEMU_MODULE_H
- /* This should not be used directly. Use block_init etc. instead. */
- #define module_init(function, type) \
- static void __attribute__((constructor)) do_qemu_init_ ## function(void) { \
- register_module_init(function, type); \
- }
- typedef enum {
- MODULE_INIT_BLOCK,
- MODULE_INIT_MACHINE,
- MODULE_INIT_QAPI,
- MODULE_INIT_QOM,
- MODULE_INIT_MAX
- } module_init_type;
- #define block_init(function) module_init(function, MODULE_INIT_BLOCK)
- #define machine_init(function) module_init(function, MODULE_INIT_MACHINE)
- #define qapi_init(function) module_init(function, MODULE_INIT_QAPI)
- #define type_init(function) module_init(function, MODULE_INIT_QOM)
- void register_module_init(void (*fn)(void), module_init_type type);
- void module_call_init(module_init_type type);
- #endif
|