iwyu: //aos/ipc_lib/...

The full include-list for aos/ipc_lib/index.h:
<stdint.h>                     // for uint32_t, UINTPTR_MAX, uint64_t
<atomic>                       // for atomic, memory_order_relaxed, memory_order_acq_rel, memory_order_acquire, memory_order_release
<limits>                       // for numeric_limits
<string>                       // for string
"aos/ipc_lib/shm_observers.h"  // for RunShmObservers
"glog/logging.h"               // for Check_LEImpl, CHECK_LE
namespace aos::ipc_lib::testing { class QueueIndexTest; }  // lines 33-33

The full include-list for aos/ipc_lib/index.h:
<stdint.h>                     // for uint32_t, uint16_t
<atomic>                       // for atomic, memory_order_relaxed, memory_order_acq_rel, memory_order_acquire, memory_order_release
<limits>                       // for numeric_limits
<string>                       // for string
"aos/ipc_lib/shm_observers.h"  // for RunShmObservers
"glog/logging.h"               // for Check_LEImpl, CHECK_LE
namespace aos::ipc_lib::testing { class QueueIndexTest; }  // lines 33-33

The full include-list for aos/ipc_lib/shared_mem.h:
<stddef.h>                        // for ptrdiff_t, size_t
"aos/ipc_lib/shared_mem_types.h"  // for aos_shm_core

The full include-list for aos/ipc_lib/shared_mem.cc:
"aos/ipc_lib/shared_mem.h"
<fcntl.h>                 // for O_RDWR, O_CREAT, O_EXCL
<stdint.h>                // for uint8_t
<sys/mman.h>              // for shm_open, shm_unlink, mmap, munmap, MAP_FAILED, MAP_FIXED, MAP_LOCKED, MAP_POPULATE, MAP_SHARED, PROT_READ, PROT_WRITE
<unistd.h>                // for close, ftruncate
<cassert>                 // for assert
<cerrno>                  // for EEXIST, errno
<cstdio>                  // for printf
<cstdlib>                 // for getenv
<cstring>                 // for memset
<ostream>                 // for operator<<, char_traits, basic_ostream, basic_ostream::operator<<, hex
"aos/ipc_lib/aos_sync.h"  // for aos_mutex, futex_set, futex_wait
"glog/logging.h"          // for ErrnoLogMessage, PCHECK, PLOG, LOG, COMPACT_GOOGLE_LOG_FATAL, COMPACT_GOOGLE_LOG_INFO, LogMessage, LogMessageFatal

The full include-list for aos/ipc_lib/lockless_queue.h:
<stdint.h>                                // for uint32_t
<atomic>                                  // for atomic
<csignal>                                 // for size_t, pid_t, SIGRTMIN, uid_t
<functional>                              // for function
<iosfwd>                                  // for ostream
<optional>                                // for optional
<utility>                                 // for swap
<vector>                                  // for vector
"absl/types/span.h"                       // for Span
"aos/events/context.h"                    // for Context
"aos/ipc_lib/aos_sync.h"                  // for aos_mutex
"aos/ipc_lib/data_alignment.h"            // for kChannelDataRedzone, kChannelDataAlignment, RoundChannelData
"aos/ipc_lib/index.h"                     // for AtomicIndex, AtomicQueueIndex, QueueIndex
"aos/ipc_lib/robust_ownership_tracker.h"  // for RobustOwnershipTracker, ThreadOwnerStatusSnapshot
"aos/time/time.h"                         // for monotonic_clock, realtime_clock
"aos/uuid.h"                              // for UUID
"glog/logging.h"                          // for Check_LTImpl, GetReferenceableValue, Check_GTImpl, DCHECK_LT, DCHECK_GT
namespace aos::ipc_lib { struct LocklessQueueMemory; }  // lines 192-192

The full include-list for aos/ipc_lib/lockless_queue_test.cc:
"aos/ipc_lib/lockless_queue.h"
<sched.h>                                // for cpu_set_t, CPU_CLR, CPU_ISSET, CPU_SETSIZE
<stdio.h>                                // for snprintf, printf, fprintf, stderr
<string.h>                               // for memset
<sys/signalfd.h>                         // for signalfd_siginfo
<algorithm>                              // for max
<chrono>                                 // for duration, operator+, duration_cast, operator-, operator<=>, time_point, milliseconds, operator/, nanoseconds, seconds, chrono
<cinttypes>                              // for uint64_t, uint32_t, PRIu64
<compare>                                // for operator<, operator>, strong_ordering
<csignal>                                // for size_t, SIGRTMAX, SIGRTMIN
<new>                                    // for operator new
<ostream>                                // for char_traits, basic_ostream, basic_ostream::operator<<, operator<<
<random>                                 // for bernoulli_distribution, uniform_int_distribution, mt19937
<ratio>                                  // for ratio
<thread>                                 // for thread
<type_traits>                            // for aligned_storage
"aos/events/epoll.h"                     // for EPoll
"aos/ipc_lib/event.h"                    // for Event
"aos/ipc_lib/lockless_queue_memory.h"    // for LocklessQueueMemory
"aos/ipc_lib/lockless_queue_stepping.h"  // for SharedTid, TestShmRobustness, SUPPORTS_SHM_ROBUSTNESS_TEST
"aos/ipc_lib/queue_racer.h"              // for QueueRacer
"aos/ipc_lib/signalfd.h"                 // for SignalFd
"aos/realtime.h"                         // for SetCurrentThreadAffinity, GetCurrentThreadAffinity, UnsetCurrentThreadRealtimePriority
"aos/util/phased_loop.h"                 // for PhasedLoop
"gflags/gflags.h"                        // for DEFINE_int32
"gtest/gtest.h"                          // for Message, TestInfo, TestPartResult, AssertionResult, TEST_F, EXPECT_EQ, ASSERT_EQ, CmpHelperGE, CmpHelperGT, CmpHelperLE, EXPECT_FALSE, EXPECT_NO_FATAL_FAILURE, EXPECT_GE, EXPECT_GT, EXPECT_LE, EXPECT_TRUE, Test

The full include-list for aos/ipc_lib/core_lib.h:
<stddef.h>  // for size_t
<stdint.h>  // for uint8_t

The full include-list for aos/ipc_lib/core_lib.c:
"aos/ipc_lib/core_lib.h"
<assert.h>                        // for assert
<stdio.h>                         // for fprintf, printf, NULL, size_t, stderr
<stdlib.h>                        // for abort
"aos/ipc_lib/aos_sync.h"          // for mutex_grab, mutex_unlock
"aos/ipc_lib/shared_mem_types.h"  // for aos_core, global_core, aos_shm_core

The full include-list for aos/ipc_lib/event_test.cc:
"aos/ipc_lib/event.h"
<chrono>                      // for duration, operator-, milliseconds, time_point, chrono
<memory>                      // for allocator
<thread>                      // for sleep_for, thread, this_thread
"aos/testing/test_logging.h"  // for EnableTestLogging
"aos/time/time.h"             // for monotonic_clock
"gtest/gtest.h"               // for AssertionResult, Message, TestPartResult, TestInfo, CmpHelperGE, EXPECT_FALSE, TEST_F, EXPECT_GE, EXPECT_TRUE, EXPECT_EQ, Test

The full include-list for aos/ipc_lib/aos_sync.h:
<stddef.h>  // for ptrdiff_t
<stdint.h>  // for uint32_t, uintptr_t

The full include-list for aos/ipc_lib/aos_sync.cc:
"aos/ipc_lib/aos_sync.h"
<linux/futex.h>                       // for FUTEX_OWNER_DIED, FUTEX_TID_MASK, robust_list_head, FUTEX_CMP_REQUEUE_PI, FUTEX_LOCK_PI, FUTEX_TRYLOCK_PI, FUTEX_UNLOCK_PI, FUTEX_WAIT, FUTEX_WAIT_REQUEUE_PI, FUTEX_WAKE
<pthread.h>                           // for pthread_atfork
<signal.h>                            // for pid_t
<stdio.h>                             // for printf
<sys/syscall.h>                       // for SYS_futex, SYS_gettid, SYS_set_robust_list
<unistd.h>                            // for syscall, ssize_t
<cassert>                             // for assert
<cerrno>                              // for errno, EINTR, ETIMEDOUT, EAGAIN, EWOULDBLOCK, EDEADLK
<cinttypes>                           // for PRId32
<climits>                             // for INT_MAX
<ostream>                             // for operator<<, char_traits, basic_ostream, basic_ostream::operator<<
"absl/base/call_once.h"               // for call_once, once_flag
"aos/ipc_lib/shm_observers.h"         // for RunShmObservers
"aos/macros.h"                        // for DISALLOW_COPY_AND_ASSIGN
"aos/util/compiler_memory_barrier.h"  // for aos_compiler_memory_barrier
"glog/logging.h"                      // for ErrnoLogMessage, PLOG, COMPACT_GOOGLE_LOG_FATAL, LogMessageFatal, LOG, PCHECK, CHECK, CHECK_NE

The full include-list for aos/ipc_lib/lockless_queue_stepping.h:
<stdlib.h>                      // for abort
<unistd.h>                      // for write, STDERR_FILENO, size_t, pid_t
<cinttypes>                     // for uintptr_t
<functional>                    // for function
<tuple>                         // for tuple
"aos/ipc_lib/lockless_queue.h"  // for LocklessQueueConfiguration

The full include-list for aos/ipc_lib/lockless_queue_stepping.cc:
"aos/ipc_lib/lockless_queue_stepping.h"
<assert.h>                     // for assert
<elf.h>                        // for NT_PRSTATUS
<errno.h>                      // for errno, EINTR
<signal.h>                     // for sigaction, SIGTRAP, SIGSEGV, sa_handler, kill, SA_SIGINFO, SIG_DFL, sa_sigaction, SA_NODEFER, SA_RESTART, SIG_IGN
<string.h>                     // for memcpy, memset
<sys/mman.h>                   // for mmap, PROT_READ, PROT_WRITE, MAP_ANONYMOUS, MAP_FAILED, MAP_SHARED, size_t, mprotect, munmap
<sys/procfs.h>                 // for elf_gregset_t
<sys/ptrace.h>                 // for ptrace, __ptrace_request, PTRACE_GETREGSET, PTRACE_SETREGSET
<sys/syscall.h>                // for SYS_gettid
<sys/uio.h>                    // for iovec
<sys/wait.h>                   // for siginfo_t, waitpid, si_addr
<unistd.h>                     // for pid_t, _exit, fork, syscall
<atomic>                       // for atomic, memory_order_relaxed
<new>                          // for operator new
<optional>                     // for optional, nullopt
<ostream>                      // for operator<<, basic_ostream, basic_ostream::operator<<, hex
<string>                       // for char_traits, allocator, operator+, to_string
<thread>                       // for thread
<utility>                      // for make_pair
"aos/ipc_lib/aos_sync.h"       // for SetRobustListOffset
"aos/ipc_lib/shm_observers.h"  // for SetShmAccessorObservers
"aos/libc/aos_strsignal.h"     // for aos_strsignal
"aos/testing/prevent_exit.h"   // for PreventExit
"glog/logging.h"               // for GetReferenceableValue, Check_NEImpl, ErrnoLogMessage, PCHECK, Check_EQImpl, CHECK_EQ, CHECK_NE, COMPACT_GOOGLE_LOG_FATAL, LOG, LogMessageFatal, CHECK, COMPACT_GOOGLE_LOG_INFO, LogMessage
"gtest/gtest.h"                // for Message, TestPartResult, AssertionResult, FAIL, ADD_FAILURE, Test, ASSERT_TRUE, SCOPED_TRACE

The full include-list for aos/ipc_lib/index.h:
<stdint.h>                     // for uint32_t, UINTPTR_MAX, uint64_t
<atomic>                       // for atomic, memory_order_relaxed, memory_order_acq_rel, memory_order_acquire, memory_order_release
<limits>                       // for numeric_limits
<string>                       // for string
"aos/ipc_lib/shm_observers.h"  // for RunShmObservers
"glog/logging.h"               // for Check_LEImpl, CHECK_LE
namespace aos::ipc_lib::testing { class QueueIndexTest; }  // lines 33-33

The full include-list for aos/ipc_lib/index_test.cc:
"aos/ipc_lib/index.h"
<ostream>         // for operator<<, basic_ostream, hex
"glog/logging.h"  // for COMPACT_GOOGLE_LOG_INFO, LOG, LogMessage
"gtest/gtest.h"   // for Message, TestPartResult, Test, AssertionResult, EXPECT_EQ, TestInfo, EXPECT_TRUE, TEST, TEST_F, EXPECT_FALSE

The full include-list for aos/ipc_lib/print_lockless_queue_memory.cc:
<fcntl.h>                       // for open, O_CLOEXEC, O_RDWR
<sys/mman.h>                    // for mmap, munmap, MAP_FAILED, MAP_SHARED, PROT_READ, PROT_WRITE, size_t
<sys/stat.h>                    // for lstat, stat
<unistd.h>                      // for close, NULL
<ostream>                       // for char_traits, operator<<, basic_ostream
"aos/ipc_lib/lockless_queue.h"  // for PrintLocklessQueueMemory, LocklessQueueMemory
"glog/logging.h"                // for ErrnoLogMessage, PCHECK, Check_NEImpl, CHECK_EQ, CHECK_NE

The full include-list for aos/ipc_lib/eventfd_latency.cc:
<inttypes.h>                     // for PRId64, int64_t
<string.h>                       // for memcpy
<sys/eventfd.h>                  // for eventfd, EFD_CLOEXEC, EFD_NONBLOCK
<unistd.h>                       // for write, close, read
<algorithm>                      // for max
<chrono>                         // for nanoseconds, operator<=>, operator+, duration, operator-, operator/, operator==, microseconds, seconds, chrono, milliseconds, time_point
<compare>                        // for operator>, strong_ordering
<random>                         // for uniform_int_distribution, mt19937
<ratio>                          // for ratio
<thread>                         // for thread, sleep_for
"aos/events/epoll.h"             // for EPoll
"aos/ipc_lib/latency_lib.h"      // for Tracing, TimerThread
"aos/logging/implementations.h"  // for INFO, AOS_LOG
"aos/realtime.h"                 // for MakeCpusetFromCpus, SetCurrentThreadAffinity, SetCurrentThreadRealtimePriority, UnsetCurrentThreadRealtimePriority
"aos/time/time.h"                // for monotonic_clock, sleep_until
"gflags/gflags.h"                // for DEFINE_int32, ParseCommandLineFlags, DEFINE_bool
"glog/logging.h"                 // for ErrnoLogMessage, PCHECK, CHECK_EQ

The full include-list for aos/ipc_lib/signal_stress.cc:
<inttypes.h>                     // for int64_t, uint32_t, PRId64, uint64_t
<sys/signalfd.h>                 // for signalfd_siginfo, signalfd, SFD_CLOEXEC, SFD_NONBLOCK
<unistd.h>                       // for close, getpid, read, NULL
<algorithm>                      // for max
<chrono>                         // for operator<=>, operator+, nanoseconds, duration, operator/, microseconds, seconds, chrono
<compare>                        // for operator>, strong_ordering
<csignal>                        // for sigaddset, sigemptyset, sigqueue, sigval, pthread_sigmask, SIGRTMIN, sigset_t, SIG_BLOCK
<random>                         // for uniform_int_distribution, mt19937
<ratio>                          // for ratio
<thread>                         // for thread
"aos/events/epoll.h"             // for EPoll
"aos/ipc_lib/latency_lib.h"      // for Tracing, TimerThread
"aos/logging/implementations.h"  // for INFO, AOS_LOG
"aos/realtime.h"                 // for MakeCpusetFromCpus, SetCurrentThreadAffinity, SetCurrentThreadRealtimePriority, UnsetCurrentThreadRealtimePriority
"aos/time/time.h"                // for monotonic_clock, sleep_until
"gflags/gflags.h"                // for DEFINE_int32, ParseCommandLineFlags, DEFINE_bool
"glog/logging.h"                 // for ErrnoLogMessage, PCHECK, CHECK_EQ

The full include-list for aos/ipc_lib/event.cc:
"aos/ipc_lib/event.h"
<time.h>                         // for timespec
<chrono>                         // for duration_cast, operator-, nanoseconds, seconds, duration
<ostream>                        // for char_traits, operator<<, basic_ostream
<ratio>                          // for ratio
"aos/type_traits/type_traits.h"  // for shm_ok
"glog/logging.h"                 // for ErrnoLogMessage, PLOG, CHECK_EQ

The full include-list for aos/ipc_lib/named_pipe_latency.cc:
<fcntl.h>                        // for open, O_NOATIME, O_NONBLOCK, FD_CLOEXEC, O_CLOEXEC, O_RDONLY, O_WRONLY
<inttypes.h>                     // for PRId64, int64_t
<string.h>                       // for memcpy, memset
<sys/stat.h>                     // for mkfifo
<unistd.h>                       // for close, write, read
<algorithm>                      // for max
<chrono>                         // for duration, operator<=>, operator+, nanoseconds, operator-, operator/, operator==, microseconds, seconds, chrono, time_point
<compare>                        // for operator>, strong_ordering
<random>                         // for uniform_int_distribution, mt19937
<ratio>                          // for ratio
<thread>                         // for thread
"aos/events/epoll.h"             // for EPoll
"aos/ipc_lib/latency_lib.h"      // for Tracing, TimerThread
"aos/logging/implementations.h"  // for INFO, AOS_LOG
"aos/realtime.h"                 // for MakeCpusetFromCpus, SetCurrentThreadAffinity, SetCurrentThreadRealtimePriority, UnsetCurrentThreadRealtimePriority
"aos/time/time.h"                // for monotonic_clock, sleep_until
"gflags/gflags.h"                // for DEFINE_int32, ParseCommandLineFlags, DEFINE_bool, DEFINE_string
"glog/logging.h"                 // for ErrnoLogMessage, PCHECK, CHECK_EQ

The full include-list for aos/ipc_lib/robust_ownership_tracker.h:
<assert.h>                // for assert
<linux/futex.h>           // for FUTEX_OWNER_DIED, FUTEX_TID_MASK
<stdint.h>                // for uint64_t
<sys/syscall.h>           // for SYS_gettid
<unistd.h>                // for pid_t, syscall
<atomic>                  // for atomic, __atomic_base
<limits>                  // for numeric_limits
<optional>                // for optional
<ostream>                 // for operator<<, basic_ostream::operator<<, basic_ostream
<string>                  // for char_traits, string
"aos/ipc_lib/aos_sync.h"  // for aos_mutex, death_notification_init, death_notification_is_held, death_notification_release, aos_futex
"aos/util/top.h"          // for ProcStat, ReadProcStat
"glog/logging.h"          // for Check_NEImpl, COMPACT_GOOGLE_LOG_ERROR, LOG, LogMessage, CHECK_NE
namespace aos::ipc_lib::testing { class RobustOwnershipTrackerTest; }  // lines 14-14

The full include-list for aos/ipc_lib/robust_ownership_tracker_test.cc:
"aos/ipc_lib/robust_ownership_tracker.h"
<errno.h>        // for EINTR, errno
<stdlib.h>       // for exit, WEXITSTATUS, WIFEXITED
<sys/mman.h>     // for mmap, munmap, MAP_ANONYMOUS, MAP_FAILED, MAP_SHARED, PROT_READ, PROT_WRITE
<sys/wait.h>     // for waitpid, pid_t
"gtest/gtest.h"  // for AssertionResult, Message, TestPartResult, EXPECT_FALSE, TestInfo, CmpHelperNE, EXPECT_TRUE, TEST_F, EXPECT_NE, Test

The full include-list for aos/ipc_lib/memory_mapped_queue.h:
<stddef.h>                      // for size_t
<stdint.h>                      // for uint32_t
<string>                        // for string
<string_view>                   // for string_view
"absl/types/span.h"             // for Span
"aos/configuration.h"           // for Channel, Configuration
"aos/ipc_lib/lockless_queue.h"  // for LocklessQueueConfiguration, LocklessQueueMemory, LocklessQueue

The full include-list for aos/ipc_lib/memory_mapped_queue.cc:
"aos/ipc_lib/memory_mapped_queue.h"
<errno.h>                 // for EEXIST, errno
<fcntl.h>                 // for open, O_CLOEXEC, O_RDWR, O_CREAT, O_EXCL
<sys/mman.h>              // for size_t, mmap, munmap, MAP_FAILED, MAP_SHARED, PROT_READ, PROT_WRITE
<sys/stat.h>              // for fstat, stat
<unistd.h>                // for close, ftruncate, sysconf, NULL, _SC_PAGESIZE
<chrono>                  // for duration, milliseconds
<limits>                  // for numeric_limits
<ostream>                 // for operator<<, basic_ostream, basic_ostream::operator<<
<thread>                  // for sleep_for
"absl/strings/str_cat.h"  // for StrCat
"aos/ipc_lib/index.h"     // for QueueIndex
"aos/util/file.h"         // for MkdirP
"flatbuffers/string.h"    // for String
"glog/logging.h"          // for ErrnoLogMessage, PCHECK, Check_EQImpl, COMPACT_GOOGLE_LOG_INFO, Check_LTImpl, LogMessage, VLOG, CHECK, CHECK_EQ, COMPACT_GOOGLE_LOG_FATAL, LogMessageFatal, CHECK_LT

The full include-list for aos/ipc_lib/lockless_queue.h:
<stdint.h>                                // for uint32_t
<atomic>                                  // for atomic
<csignal>                                 // for size_t, pid_t, SIGRTMIN, uid_t
<functional>                              // for function
<iosfwd>                                  // for ostream
<optional>                                // for optional
<utility>                                 // for swap
<vector>                                  // for vector
"absl/types/span.h"                       // for Span
"aos/events/context.h"                    // for Context
"aos/ipc_lib/aos_sync.h"                  // for aos_mutex
"aos/ipc_lib/data_alignment.h"            // for kChannelDataRedzone, kChannelDataAlignment, RoundChannelData
"aos/ipc_lib/index.h"                     // for AtomicIndex, AtomicQueueIndex, QueueIndex
"aos/ipc_lib/robust_ownership_tracker.h"  // for RobustOwnershipTracker, ThreadOwnerStatusSnapshot
"aos/time/time.h"                         // for monotonic_clock, realtime_clock
"aos/uuid.h"                              // for UUID
"glog/logging.h"                          // for Check_LTImpl, GetReferenceableValue, Check_GTImpl, DCHECK_LT, DCHECK_GT
namespace aos::ipc_lib { struct LocklessQueueMemory; }  // lines 192-192

The full include-list for aos/ipc_lib/lockless_queue.cc:
"aos/ipc_lib/lockless_queue.h"
<linux/futex.h>                        // for FUTEX_OWNER_DIED, FUTEX_TID_MASK
<pwd.h>                                // for getpwuid, passwd
<sched.h>                              // for sched_setscheduler, sched_param, SCHED_FIFO, sched_priority
<string.h>                             // for memcpy, memcmp, memset
<sys/syscall.h>                        // for SYS_rt_tgsigqueueinfo
<sys/types.h>                          // for pid_t, uid_t
<unistd.h>                             // for getpid, getresuid, getuid, syscall
<algorithm>                            // for max, sort
<chrono>                               // for duration, operator<=>, operator-, time_point
<compare>                              // for operator<, strong_ordering
<iomanip>                              // for operator<<, setfill
<iostream>                             // for operator<<, basic_ostream, char_traits, endl, cout, hex, basic_ostream::operator<<, dec, ostream, stringstream
<string>                               // for operator<<, string
<string_view>                          // for string_view
"absl/strings/escaping.h"              // for BytesToHexString
"aos/ipc_lib/lockless_queue_memory.h"  // for LocklessQueueMemory
"aos/util/compiler_memory_barrier.h"   // for aos_compiler_memory_barrier
"gflags/gflags.h"                      // for DECLARE_bool, DEFINE_bool
"glog/logging.h"                       // for COMPACT_GOOGLE_LOG_INFO, LogMessage, VLOG, COMPACT_GOOGLE_LOG_FATAL, LogMessageFatal, Check_EQImpl, Check_LEImpl, CHECK, DCHECK, CHECK_EQ, CHECK_LE, Check_NEImpl, ErrnoLogMessage, PCHECK, CHECK_NE, LOG

The full include-list for aos/ipc_lib/futex_latency.cc:
<inttypes.h>                     // for uint32_t, PRId64, int64_t
<signal.h>                       // for SIGRTMIN
<algorithm>                      // for max
<chrono>                         // for duration, operator<=>, operator+, nanoseconds, operator-, operator/, operator==, microseconds, seconds, chrono, time_point
<compare>                        // for operator>, strong_ordering
<random>                         // for uniform_int_distribution, mt19937
<ratio>                          // for ratio
<thread>                         // for thread
"aos/condition.h"                // for Condition
"aos/ipc_lib/latency_lib.h"      // for TimerThread, Tracing
"aos/logging/implementations.h"  // for INFO, AOS_LOG
"aos/mutex/mutex.h"              // for MutexLocker, Mutex
"aos/realtime.h"                 // for MakeCpusetFromCpus, SetCurrentThreadAffinity, SetCurrentThreadRealtimePriority, UnsetCurrentThreadRealtimePriority
"aos/time/time.h"                // for monotonic_clock, sleep_until
"gflags/gflags.h"                // for DEFINE_int32, ParseCommandLineFlags, DEFINE_bool
"glog/logging.h"                 // for CHECK, COMPACT_GOOGLE_LOG_FATAL, LogMessageFatal

The full include-list for aos/ipc_lib/queue_racer.h:
<stdint.h>                      // for uint32_t, uint64_t
<atomic>                        // for atomic
<chrono>                        // for nanoseconds
<cstring>                       // for size_t, memset
<functional>                    // for function
<vector>                        // for vector
"aos/ipc_lib/index.h"           // for QueueIndex
"aos/ipc_lib/lockless_queue.h"  // for LocklessQueue, LocklessQueueSender, LocklessQueueMemorySize, LocklessQueueReader
"aos/time/time.h"               // for monotonic_clock, realtime_clock
"aos/uuid.h"                    // for UUID
namespace aos::ipc_lib { struct ThreadState; }  // lines 10-10

The full include-list for aos/ipc_lib/queue_racer.cc:
"aos/ipc_lib/queue_racer.h"
<stdio.h>               // for fprintf, stderr
<algorithm>             // for find
<cinttypes>             // for uint64_t, uint32_t, uint8_t, PRIu64
<cstring>               // for memcpy, memset, size_t
<limits>                // for numeric_limits
<optional>              // for optional
<ostream>               // for char_traits, operator<<, basic_ostream
<thread>                // for thread
"absl/types/span.h"     // for Span
"aos/events/context.h"  // for Context
"aos/ipc_lib/event.h"   // for Event
"glog/logging.h"        // for Check_GEImpl, CHECK, COMPACT_GOOGLE_LOG_FATAL, LogMessageFatal, CHECK_GE
"gtest/gtest.h"         // for Message, TestPartResult, ASSERT_EQ, CmpHelperGE, AssertionResult, CmpHelperGT, CmpHelperLE, CmpHelperNE, EXPECT_GE, EXPECT_EQ, ASSERT_GT, ASSERT_LE, ASSERT_TRUE, EXPECT_NE

The full include-list for aos/ipc_lib/signalfd.h:
<signal.h>          // for sigset_t
<sys/signalfd.h>    // for signalfd_siginfo
<initializer_list>  // for initializer_list

The full include-list for aos/ipc_lib/signalfd.cc:
"aos/ipc_lib/signalfd.h"
<string.h>          // for memcmp
<sys/types.h>       // for size_t
<unistd.h>          // for close, read
<csignal>           // for sigset_t, pthread_sigmask, sigaddset, sigandset, sigdelset, sigemptyset, sigismember, SIG_BLOCK, SIG_UNBLOCK, _NSIG
<initializer_list>  // for initializer_list
<ostream>           // for operator<<
"glog/logging.h"    // for CHECK_EQ, Check_NEImpl, ErrnoLogMessage, PCHECK, CHECK_NE, COMPACT_GOOGLE_LOG_FATAL, LOG, LogMessageFatal

The full include-list for aos/ipc_lib/ipc_comparison.cc:
<arpa/inet.h>                    // for htonl
<errno.h>                        // for ENOENT, errno
<fcntl.h>                        // for fcntl, open, O_CREAT, O_EXCL, O_NONBLOCK, O_RDWR, F_GETFL, F_SETFL, O_RDONLY, O_WRONLY
<inttypes.h>                     // for PRId32
<mqueue.h>                       // for mq_close, mq_receive, mq_send, size_t, mq_attr, mqd_t, mq_open, mq_unlink, ssize_t
<netinet/in.h>                   // for sockaddr_in, INADDR_LOOPBACK, IPPROTO_TCP, in_addr
<netinet/tcp.h>                  // for TCP_NODELAY
<pthread.h>                      // for pthread_cond_broadcast, pthread_cond_destroy, pthread_cond_init, pthread_cond_wait, pthread_condattr_destroy, pthread_condattr_init, pthread_condattr_setpshared, pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock, pthread_mutex_unlock, pthread_mutexattr_destroy, pthread_mutexattr_init, pthread_mutexattr_setprotocol, pthread_mutexattr_setpshared, PTHREAD_PROCESS_SHARED, PTHREAD_PRIO_INHERIT, pthread_cond_t, pthread_condattr_t, pthread_mutex_t, pthread_mutexattr_t
<semaphore.h>                    // for sem_t, sem_close, sem_destroy, sem_init, sem_open, sem_post, sem_unlink, sem_wait, SEM_FAILED
<stdio.h>                        // for fprintf, stderr
<string.h>                       // for memcpy, memset
<sys/eventfd.h>                  // for eventfd
<sys/ipc.h>                      // for IPC_PRIVATE
<sys/msg.h>                      // for msgget, msgrcv, msgsnd
<sys/sem.h>                      // for sembuf, semop, semget
<sys/socket.h>                   // for socket, AF_INET, bind, connect, getsockname, setsockopt, sockaddr, socketpair, SOCK_DGRAM, SOCK_STREAM, accept, listen, AF_UNIX, SOCK_SEQPACKET
<sys/stat.h>                     // for mkfifo, S_IRUSR, S_IWUSR
<unistd.h>                       // for close, pipe, read, write, unlink
<atomic>                         // for atomic
<chrono>                         // for operator-, operator/, operator<=>, chrono, milliseconds, nanoseconds, seconds
<compare>                        // for operator>=, strong_ordering
<cstdint>                        // for uint8_t, uint64_t, int32_t
<memory>                         // for unique_ptr, allocator
<string>                         // for operator==, char_traits, basic_string, operator+, string
<thread>                         // for sleep_for, thread
<utility>                        // for move
"aos/condition.h"                // for Condition
"aos/init.h"                     // for InitGoogle
"aos/ipc_lib/event.h"            // for Event
"aos/logging/implementations.h"  // for AOS_PCHECK, AOS_PRCHECK, FATAL, AOS_PLOG, INFO, LogImplCheck_EQ, LogImplCheck_LE, AOS_LOG, AOS_CHECK, AOS_CHECK_EQ, AOS_CHECK_LE
"aos/mutex/mutex.h"              // for Mutex
"aos/realtime.h"                 // for MakeCpusetFromCpus, SetCurrentThreadAffinity, SetCurrentThreadRealtimePriority
"aos/time/time.h"                // for monotonic_clock, DurationInSeconds
"gflags/gflags.h"                // for DEFINE_int32, SetUsageMessage, ShowUsageWithFlags, DEFINE_string

The full include-list for aos/ipc_lib/shm_base.h:
<string_view>      // for string_view
"gflags/gflags.h"  // for DECLARE_string

The full include-list for aos/ipc_lib/shm_base.cc:
"aos/ipc_lib/shm_base.h"
<string>  // for operator+, string

The full include-list for aos/ipc_lib/index.h:
<stdint.h>                     // for uint32_t, uint16_t
<atomic>                       // for atomic, memory_order_relaxed, memory_order_acq_rel, memory_order_acquire, memory_order_release
<limits>                       // for numeric_limits
<string>                       // for string
"aos/ipc_lib/shm_observers.h"  // for RunShmObservers
"glog/logging.h"               // for Check_LEImpl, CHECK_LE
namespace aos::ipc_lib::testing { class QueueIndexTest; }  // lines 33-33

The full include-list for aos/ipc_lib/index_test.cc:
"aos/ipc_lib/index.h"
<ostream>         // for operator<<, basic_ostream, hex
"glog/logging.h"  // for COMPACT_GOOGLE_LOG_INFO, LOG, LogMessage
"gtest/gtest.h"   // for Message, TestPartResult, Test, AssertionResult, EXPECT_EQ, TestInfo, EXPECT_TRUE, TEST, TEST_F, EXPECT_FALSE

The full include-list for aos/ipc_lib/signalfd.h:
<signal.h>          // for sigset_t
<sys/signalfd.h>    // for signalfd_siginfo
<initializer_list>  // for initializer_list

The full include-list for aos/ipc_lib/signalfd_test.cc:
"aos/ipc_lib/signalfd.h"
<memory>                      // for allocator
<thread>                      // for thread
"aos/testing/test_logging.h"  // for EnableTestLogging
"glog/logging.h"              // for ErrnoLogMessage, PCHECK, CHECK_EQ
"gtest/gtest.h"               // for Test, AssertionResult, TestInfo, Message, TestPartResult, TEST, ASSERT_FALSE, ASSERT_TRUE, DeathTest, EXPECT_DEATH

The full include-list for aos/ipc_lib/robust_ownership_tracker.h:
<assert.h>                // for assert
<linux/futex.h>           // for FUTEX_OWNER_DIED, FUTEX_TID_MASK
<stdint.h>                // for uint64_t
<sys/syscall.h>           // for SYS_gettid
<unistd.h>                // for pid_t, syscall
<atomic>                  // for atomic, __atomic_base
<limits>                  // for numeric_limits
<optional>                // for optional
<ostream>                 // for operator<<, basic_ostream::operator<<, basic_ostream
<string>                  // for char_traits, string
"aos/ipc_lib/aos_sync.h"  // for aos_mutex, death_notification_init, death_notification_is_held, death_notification_release, aos_futex
"aos/util/top.h"          // for ProcStat, ReadProcStat
"glog/logging.h"          // for Check_NEImpl, COMPACT_GOOGLE_LOG_ERROR, LOG, LogMessage, CHECK_NE
namespace aos::ipc_lib::testing { class RobustOwnershipTrackerTest; }  // lines 14-14

The full include-list for aos/ipc_lib/robust_ownership_tracker.cc:
"aos/ipc_lib/robust_ownership_tracker.h"

The full include-list for aos/ipc_lib/latency_lib.h:
<fcntl.h>          // for open, O_CLOEXEC, O_TRUNC, O_WRONLY
<string.h>         // for strlen
<unistd.h>         // for write, close
"aos/time/time.h"  // for monotonic_clock
"glog/logging.h"   // for ErrnoLogMessage, PCHECK

The full include-list for aos/ipc_lib/latency_lib.cc:
"aos/ipc_lib/latency_lib.h"
<algorithm>              // for max
<chrono>                 // for operator<=>, nanoseconds, operator+, operator-, chrono, microseconds
<compare>                // for operator>, strong_ordering
<random>                 // for uniform_int_distribution, mt19937
"aos/logging/logging.h"  // for INFO, AOS_LOG
"aos/realtime.h"         // for SetCurrentThreadRealtimePriority
"aos/time/time.h"        // for monotonic_clock, sleep_until

The full include-list for aos/ipc_lib/lockless_queue_death_test.cc:
<stdio.h>                                 // for snprintf
<sys/mman.h>                              // for size_t
<chrono>                                  // for chrono, milliseconds
<cinttypes>                               // for uint32_t
<functional>                              // for reference_wrapper, function, ref
<memory>                                  // for allocator
<optional>                                // for optional
<ostream>                                 // for char_traits, operator<<, basic_ostream, basic_ostream::operator<<
"aos/events/context.h"                    // for Context
"aos/ipc_lib/index.h"                     // for AtomicQueueIndex, Index, QueueIndex
"aos/ipc_lib/lockless_queue.h"            // for LocklessQueueSender, LocklessQueueConfiguration, LocklessQueueMessageDataSize, LocklessQueueReader, PrintLocklessQueueMemory, LocklessQueuePinner, LocklessQueue, Message, PretendThatOwnerIsDeadForTesting, Sender
"aos/ipc_lib/lockless_queue_memory.h"     // for LocklessQueueMemory
"aos/ipc_lib/lockless_queue_stepping.h"   // for SharedTid, TestShmRobustness, SUPPORTS_SHM_ROBUSTNESS_TEST
"aos/ipc_lib/robust_ownership_tracker.h"  // for RobustOwnershipTracker
"aos/testing/test_logging.h"              // for EnableTestLogging
"aos/time/time.h"                         // for monotonic_clock, realtime_clock
"aos/uuid.h"                              // for UUID
"glog/logging.h"                          // for COMPACT_GOOGLE_LOG_INFO, LOG, LogMessage, CHECK, CHECK_EQ, COMPACT_GOOGLE_LOG_FATAL, LogMessageFatal
"gtest/gtest.h"                           // for Test, Message, TestPartResult, CmpHelperGT, ASSERT_EQ, EXPECT_EQ, TestInfo, EXPECT_GT, TEST

The full include-list for aos/ipc_lib/lockless_queue_memory.h:
<stdint.h>                      // for uint32_t
<sys/types.h>                   // for uid_t
<cstddef>                       // for size_t, max_align_t
"aos/ipc_lib/aos_sync.h"        // for aos_mutex
"aos/ipc_lib/index.h"           // for AtomicIndex, Index, QueueIndex, AtomicQueueIndex
"aos/ipc_lib/lockless_queue.h"  // for LocklessQueueConfiguration, Pinner, Sender, Watcher, Message

Signed-off-by: Stephan Pleines <pleines.stephan@gmail.com>
Change-Id: I6e96143ec7c640f95bf7bf8966d9a15d685e89a3
diff --git a/aos/ipc_lib/queue_racer.cc b/aos/ipc_lib/queue_racer.cc
index 2797c24..67ed6c5 100644
--- a/aos/ipc_lib/queue_racer.cc
+++ b/aos/ipc_lib/queue_racer.cc
@@ -1,11 +1,20 @@
 #include "aos/ipc_lib/queue_racer.h"
 
+#include <stdio.h>
+
+#include <algorithm>
 #include <cinttypes>
 #include <cstring>
 #include <limits>
+#include <optional>
+#include <ostream>
+#include <thread>
 
+#include "absl/types/span.h"
+#include "glog/logging.h"
 #include "gtest/gtest.h"
 
+#include "aos/events/context.h"
 #include "aos/ipc_lib/event.h"
 
 namespace aos::ipc_lib {