xemu/include/qemu
Markus Armbruster ec150c7e09 include: Make headers more self-contained
Back in 2016, we discussed[1] rules for headers, and these were
generally liked:

1. Have a carefully curated header that's included everywhere first.  We
   got that already thanks to Peter: osdep.h.

2. Headers should normally include everything they need beyond osdep.h.
   If exceptions are needed for some reason, they must be documented in
   the header.  If all that's needed from a header is typedefs, put
   those into qemu/typedefs.h instead of including the header.

3. Cyclic inclusion is forbidden.

This patch gets include/ closer to obeying 2.

It's actually extracted from my "[RFC] Baby steps towards saner
headers" series[2], which demonstrates a possible path towards
checking 2 automatically.  It passes the RFC test there.

[1] Message-ID: <87h9g8j57d.fsf@blackfin.pond.sub.org>
    https://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg03345.html
[2] Message-Id: <20190711122827.18970-1-armbru@redhat.com>
    https://lists.nongnu.org/archive/html/qemu-devel/2019-07/msg02715.html

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20190812052359.30071-2-armbru@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-08-16 13:31:51 +02:00
..
atomic128.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
atomic.h include/qemu/atomic.h: Add signal_barrier 2019-07-14 12:19:00 +02:00
base64.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
bcd.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
bitmap.h bitmap: Add bitmap_copy_with_{src|dst}_offset() 2019-07-15 15:39:02 +02:00
bitops.h vnc: replace hweight_long() with ctpopl() 2017-05-12 12:36:02 +02:00
bswap.h include/qemu/bswap.h: Use __builtin_memcpy() in accessor functions 2019-04-09 18:34:21 +02:00
buffer.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
compiler.h QEMU_PACKED: Remove gcc_struct attribute in Windows non x86 targets 2019-05-07 12:55:02 +01:00
config-file.h Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
coroutine_int.h coroutine: avoid co_queue_wakeup recursion 2018-03-27 13:05:28 +01:00
coroutine.h block: Add missing locking in bdrv_co_drain_bh_cb() 2018-09-25 15:50:15 +02:00
cpuid.h util: Introduce include/qemu/cpuid.h 2017-07-24 12:42:55 +01:00
crc32c.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ctype.h qemu-common: Move qemu_isalnum() etc. to qemu/ctype.h 2019-06-11 20:22:09 +02:00
cutils.h include: Include fprintf-fn.h only where needed 2019-04-18 22:18:59 +02:00
drm.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
envlist.h
error-report.h monitor error: Make printf()-like functions return a value 2019-04-18 22:18:59 +02:00
event_notifier.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fifo8.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
fifo32.h hw: Clean up includes 2016-06-07 18:19:23 +03:00
filemonitor.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
futex.h futex: add missing header guards 2017-10-16 20:57:13 +03:00
guest-random.h util: Add qemu_guest_getrandom and associated routines 2019-05-22 12:38:54 -04:00
hbitmap.h Revert "hbitmap: Add @advance param to hbitmap_iter_next()" 2019-01-15 18:26:50 -05:00
help_option.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
host-utils.h includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" 2018-12-12 10:01:13 +01:00
id.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
int128.h tcg: Add atomic128 helpers 2016-10-26 08:29:01 -07:00
iov.h block: enhance QEMUIOVector structure 2019-02-22 09:42:13 +00:00
iova-tree.h util: remove redundant include of glib.h and add osdep.h 2018-06-29 12:22:28 +01:00
jhash.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
job.h blockjob: Lie better in child_job_drained_poll() 2018-09-25 15:50:15 +02:00
lockable.h lockable: workaround GCC link issue with ASAN 2018-03-06 14:01:27 +01:00
log-for-trace.h log-for-trace.h: Split out parts of log.h used by trace.h 2018-03-12 11:10:20 +00:00
log.h tcg: Optionally log FPU state in TCG -d cpu logging 2018-05-15 14:58:44 +01:00
main-loop.h slirp: replace global polling with per-instance & notifier 2019-02-07 15:49:08 +02:00
memfd.h hostmem-memfd: add checks before adding hostmem-memfd & properties 2018-10-02 18:47:55 +02:00
mmap-alloc.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
module.h tests: qgraph API for the qtest driver framework 2019-03-07 17:28:24 +01:00
notify.h
option_int.h qemu/queue.h: simplify reverse access to QTAILQ 2019-01-11 15:46:55 +01:00
option.h option: Make option help nicer to read 2018-11-05 15:17:48 +01:00
osdep.h osdep: Fix mingw compilation regarding stdio formats 2019-05-07 12:55:03 +01:00
path.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
pmem.h Clean up decorations and whitespace around header guards 2019-05-13 08:58:55 +02:00
processor.h Drop remaining bits of ia64 host support 2018-02-05 18:09:45 +01:00
qdist.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-print.h qemu-print: New qemu_fprintf(), qemu_vfprintf() 2019-04-18 22:18:59 +02:00
qht.h qht: constify qht_statistics_init 2018-09-26 08:55:54 -07:00
qsp.h qsp: Simplify how qsp_report() prints 2019-04-18 22:18:59 +02:00
queue.h queue: fix QTAILQ_FOREACH_REVERSE_SAFE 2019-02-05 16:50:21 +01:00
range.h Don't talk about the LGPL if the file is licensed under the GPL 2019-01-30 10:51:20 +01:00
ratelimit.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
rcu_queue.h qemu/queue.h: reimplement QTAILQ without pointer-to-pointers 2019-01-11 15:46:55 +01:00
rcu.h membarrier: introduce qemu/sys_membarrier.h 2018-03-12 16:12:47 +01:00
readline.h readline: add a free function 2018-01-16 14:54:50 +01:00
seqlock.h seqlock: add QemuLockable support 2018-08-23 18:46:25 +02:00
sockets.h sockets: move fd_is_socket() into common sockets code 2018-03-13 18:06:06 +00:00
stats64.h Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
sys_membarrier.h Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
systemd.h Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
thread-posix.h qsp: QEMU's Synchronization Profiler 2018-08-23 18:46:25 +02:00
thread-win32.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
thread.h include/qemu/thread.h: Document qemu_thread_atexit* API 2018-11-06 21:35:06 +01:00
throttle-options.h block: add throttle block filter driver 2017-09-06 10:12:02 +02:00
throttle.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
timed-average.h include: Clean up includes 2016-02-23 12:43:05 +00:00
timer.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
typedefs.h hw/devices: Move TI touchscreen declarations into a new header 2019-04-29 17:57:21 +01:00
unicode.h json: Reject invalid UTF-8 sequences 2018-08-24 20:26:37 +02:00
units.h block: Eliminate the S_1KiB, S_2KiB, ... macros 2019-02-01 13:46:45 +01:00
uri.h Remove unused function declarations 2016-09-15 15:32:22 +03:00
uuid.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vfio-helpers.h Clean up includes 2018-12-20 10:29:08 +01:00
win_dump_defs.h dump: move Windows dump structures definitions 2018-10-02 19:09:12 +02:00
xattr.h include: Fix typos found by codespell 2017-01-24 23:26:52 +03:00
xxhash.h xxhash: match output against the original xxhash32 2018-12-17 06:04:44 +03:00