1 //===- MSFStreamLayout.h - Describes the layout of a stream -----*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLVM_DEBUGINFO_MSF_MSFSTREAMLAYOUT_H 11 #define LLVM_DEBUGINFO_MSF_MSFSTREAMLAYOUT_H 12 13 #include "llvm/Support/Endian.h" 14 15 #include <cstdint> 16 #include <vector> 17 18 namespace llvm { 19 namespace msf { 20 21 /// \brief Describes the layout of a stream in an MSF layout. A "stream" here 22 /// is defined as any logical unit of data which may be arranged inside the MSF 23 /// file as a sequence of (possibly discontiguous) blocks. When we want to read 24 /// from a particular MSF Stream, we fill out a stream layout structure and the 25 /// reader uses it to determine which blocks in the underlying MSF file contain 26 /// the data, so that it can be pieced together in the right order. 27 class MSFStreamLayout { 28 public: 29 uint32_t Length; 30 std::vector<support::ulittle32_t> Blocks; 31 }; 32 } // namespace msf 33 } // namespace llvm 34 35 #endif // LLVM_DEBUGINFO_MSF_MSFSTREAMLAYOUT_H 36