xref: /openbmc/qemu/rust/qemu-api/wrapper.h (revision 43ba160cb4bbb193560eb0d2d7decc4b5fc599fe)
11ae4ca04SPaolo Bonzini /*
21ae4ca04SPaolo Bonzini  * QEMU System Emulator
31ae4ca04SPaolo Bonzini  *
41ae4ca04SPaolo Bonzini  * Copyright (c) 2024 Linaro Ltd.
51ae4ca04SPaolo Bonzini  *
61ae4ca04SPaolo Bonzini  * Authors: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
71ae4ca04SPaolo Bonzini  *
81ae4ca04SPaolo Bonzini  * Permission is hereby granted, free of charge, to any person obtaining a copy
91ae4ca04SPaolo Bonzini  * of this software and associated documentation files (the "Software"), to deal
101ae4ca04SPaolo Bonzini  * in the Software without restriction, including without limitation the rights
111ae4ca04SPaolo Bonzini  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
121ae4ca04SPaolo Bonzini  * copies of the Software, and to permit persons to whom the Software is
131ae4ca04SPaolo Bonzini  * furnished to do so, subject to the following conditions:
141ae4ca04SPaolo Bonzini  *
151ae4ca04SPaolo Bonzini  * The above copyright notice and this permission notice shall be included in
161ae4ca04SPaolo Bonzini  * all copies or substantial portions of the Software.
171ae4ca04SPaolo Bonzini  *
181ae4ca04SPaolo Bonzini  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
191ae4ca04SPaolo Bonzini  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
201ae4ca04SPaolo Bonzini  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
211ae4ca04SPaolo Bonzini  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
221ae4ca04SPaolo Bonzini  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
231ae4ca04SPaolo Bonzini  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
241ae4ca04SPaolo Bonzini  * THE SOFTWARE.
251ae4ca04SPaolo Bonzini  */
261ae4ca04SPaolo Bonzini 
271ae4ca04SPaolo Bonzini 
281ae4ca04SPaolo Bonzini /*
291ae4ca04SPaolo Bonzini  * This header file is meant to be used as input to the `bindgen` application
301ae4ca04SPaolo Bonzini  * in order to generate C FFI compatible Rust bindings.
311ae4ca04SPaolo Bonzini  */
321ae4ca04SPaolo Bonzini 
331ae4ca04SPaolo Bonzini #ifndef __CLANG_STDATOMIC_H
341ae4ca04SPaolo Bonzini #define __CLANG_STDATOMIC_H
351ae4ca04SPaolo Bonzini /*
361ae4ca04SPaolo Bonzini  * Fix potential missing stdatomic.h error in case bindgen does not insert the
371ae4ca04SPaolo Bonzini  * correct libclang header paths on its own. We do not use stdatomic.h symbols
381ae4ca04SPaolo Bonzini  * in QEMU code, so it's fine to declare dummy types instead.
391ae4ca04SPaolo Bonzini  */
401ae4ca04SPaolo Bonzini typedef enum memory_order {
411ae4ca04SPaolo Bonzini   memory_order_relaxed,
421ae4ca04SPaolo Bonzini   memory_order_consume,
431ae4ca04SPaolo Bonzini   memory_order_acquire,
441ae4ca04SPaolo Bonzini   memory_order_release,
451ae4ca04SPaolo Bonzini   memory_order_acq_rel,
461ae4ca04SPaolo Bonzini   memory_order_seq_cst,
471ae4ca04SPaolo Bonzini } memory_order;
481ae4ca04SPaolo Bonzini #endif /* __CLANG_STDATOMIC_H */
491ae4ca04SPaolo Bonzini 
501ae4ca04SPaolo Bonzini #include "qemu/osdep.h"
51*ab810022SBernhard Beschow #include "qemu/log.h"
52*ab810022SBernhard Beschow #include "qemu/log-for-trace.h"
531ae4ca04SPaolo Bonzini #include "qemu/module.h"
541ae4ca04SPaolo Bonzini #include "qemu-io.h"
551ae4ca04SPaolo Bonzini #include "system/system.h"
561ae4ca04SPaolo Bonzini #include "hw/sysbus.h"
571ae4ca04SPaolo Bonzini #include "system/memory.h"
581ae4ca04SPaolo Bonzini #include "chardev/char-fe.h"
591ae4ca04SPaolo Bonzini #include "hw/clock.h"
601ae4ca04SPaolo Bonzini #include "hw/qdev-clock.h"
611ae4ca04SPaolo Bonzini #include "hw/qdev-properties.h"
621ae4ca04SPaolo Bonzini #include "hw/qdev-properties-system.h"
631ae4ca04SPaolo Bonzini #include "hw/irq.h"
641ae4ca04SPaolo Bonzini #include "qapi/error.h"
651ae4ca04SPaolo Bonzini #include "qapi/error-internal.h"
661ae4ca04SPaolo Bonzini #include "migration/vmstate.h"
671ae4ca04SPaolo Bonzini #include "chardev/char-serial.h"
681ae4ca04SPaolo Bonzini #include "exec/memattrs.h"
691ae4ca04SPaolo Bonzini #include "qemu/timer.h"
701ae4ca04SPaolo Bonzini #include "system/address-spaces.h"
711ae4ca04SPaolo Bonzini #include "hw/char/pl011.h"
72