xref: /qemu/include/qemu-main.h (revision 513823e7521a09ed7ad1e32e6454bac3b2cbf52d)
1 /*
2  * This work is licensed under the terms of the GNU GPL, version 2 or later.
3  * See the COPYING file in the top-level directory.
4  */
5 #ifndef QEMU_MAIN_H
6 #define QEMU_MAIN_H
7 
8 /*
9  * The function to run on the main (initial) thread of the process.
10  * NULL means QEMU's main event loop.
11  * When non-NULL, QEMU's main event loop will run on a purposely created
12  * thread, after which the provided function pointer will be invoked on
13  * the initial thread.
14  * This is useful on platforms which treat the main thread as special
15  * (macOS/Darwin) and/or require all UI API calls to occur from the main
16  * thread. Those platforms can initialise it to a specific function,
17  * while UI implementations may reset it to NULL during their init if they
18  * will handle system and UI events on the main thread via QEMU's own main
19  * event loop.
20  */
21 extern int (*qemu_main)(void);
22 
23 #endif /* QEMU_MAIN_H */
24