//===-- xray_buffer_queue.h ------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file is a part of XRay, a dynamic runtime instrumentation system. // // Defines the interface for a buffer queue implementation. // //===----------------------------------------------------------------------===// #ifndef XRAY_BUFFER_QUEUE_H #define XRAY_BUFFER_QUEUE_H #include "sanitizer_common/sanitizer_atomic.h" #include "sanitizer_common/sanitizer_common.h" #include "sanitizer_common/sanitizer_mutex.h" #include "xray_defs.h" #include <cstddef> #include <cstdint> namespace __xray { /// BufferQueue implements a circular queue of fixed sized buffers (much like a /// freelist) but is concerned with making it quick to initialise, finalise, and /// get from or return buffers to the queue. This is one key component of the /// "flight data recorder" (FDR) mode to support ongoing XRay function call /// trace collection. class BufferQueue { … }; } // namespace __xray #endif // XRAY_BUFFER_QUEUE_H