//===-- xray_records.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. // // This header exposes some record types useful for the XRay in-memory logging // implementation. // //===----------------------------------------------------------------------===// #ifndef XRAY_XRAY_RECORDS_H #define XRAY_XRAY_RECORDS_H #include <cstdint> namespace __xray { enum FileTypes { … }; // FDR mode use of the union field in the XRayFileHeader. struct alignas(16) FdrAdditionalHeaderData { … }; static_assert …; // This data structure is used to describe the contents of the file. We use this // for versioning the supported XRay file formats. struct alignas(32) XRayFileHeader { … } __attribute__((packed)); static_assert …; enum RecordTypes { … }; struct alignas(32) XRayRecord { … } __attribute__((packed)); static_assert …; struct alignas(32) XRayArgPayload { … } __attribute__((packed)); static_assert …; } // namespace __xray #endif // XRAY_XRAY_RECORDS_H