//===--- RuntimeInternals.h - Runtime Internal Structures -------*- C++ -*-===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// // // Runtime data structures that Reflection inspects externally. // // FIXME: Ideally the original definitions would be templatized on a Runtime // parameter and we could use the original definitions in both the runtime and // in Reflection. // //===----------------------------------------------------------------------===// #ifndef SWIFT_REFLECTION_RUNTIME_INTERNALS_H #define SWIFT_REFLECTION_RUNTIME_INTERNALS_H namespace swift { namespace reflection { template struct ConformanceNode { typename Runtime::StoredPointer Left, Right; typename Runtime::StoredPointer Type; typename Runtime::StoredPointer Proto; typename Runtime::StoredPointer Description; typename Runtime::StoredSize FailureGeneration; }; template struct MetadataAllocation { uint16_t Tag; typename Runtime::StoredPointer Ptr; unsigned Size; }; template struct MetadataCacheNode { typename Runtime::StoredPointer Left; typename Runtime::StoredPointer Right; }; template struct ConcurrentHashMap { typename Runtime::StoredSize ReaderCount; typename Runtime::StoredSize ElementCount; typename Runtime::StoredPointer Elements; typename Runtime::StoredPointer Indices; // We'll ignore the remaining fields for now.... }; template struct ConformanceCacheEntry { typename Runtime::StoredPointer Type; typename Runtime::StoredPointer Proto; typename Runtime::StoredPointer Witness; }; } // end namespace reflection } // end namespace swift #endif // SWIFT_REFLECTION_RUNTIME_INTERNALS_H