Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- HeaderMapTypes.h - Types for the header map format -------*- C++ -*-===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8.  
  9. #ifndef LLVM_CLANG_LEX_HEADERMAPTYPES_H
  10. #define LLVM_CLANG_LEX_HEADERMAPTYPES_H
  11.  
  12. #include <cstdint>
  13.  
  14. namespace clang {
  15.  
  16. enum {
  17.   HMAP_HeaderMagicNumber = ('h' << 24) | ('m' << 16) | ('a' << 8) | 'p',
  18.   HMAP_HeaderVersion = 1,
  19.   HMAP_EmptyBucketKey = 0
  20. };
  21.  
  22. struct HMapBucket {
  23.   uint32_t Key;    // Offset (into strings) of key.
  24.   uint32_t Prefix; // Offset (into strings) of value prefix.
  25.   uint32_t Suffix; // Offset (into strings) of value suffix.
  26. };
  27.  
  28. struct HMapHeader {
  29.   uint32_t Magic;          // Magic word, also indicates byte order.
  30.   uint16_t Version;        // Version number -- currently 1.
  31.   uint16_t Reserved;       // Reserved for future use - zero for now.
  32.   uint32_t StringsOffset;  // Offset to start of string pool.
  33.   uint32_t NumEntries;     // Number of entries in the string table.
  34.   uint32_t NumBuckets;     // Number of buckets (always a power of 2).
  35.   uint32_t MaxValueLength; // Length of longest result path (excluding nul).
  36.   // An array of 'NumBuckets' HMapBucket objects follows this header.
  37.   // Strings follow the buckets, at StringsOffset.
  38. };
  39.  
  40. } // end namespace clang.
  41.  
  42. #endif
  43.