Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/node/cppgc/internal/api-constants.h
$ cat -n /usr/include/node/cppgc/internal/api-constants.h 1 // Copyright 2020 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef INCLUDE_CPPGC_INTERNAL_API_CONSTANTS_H_ 6 #define INCLUDE_CPPGC_INTERNAL_API_CONSTANTS_H_ 7 8 #include
9 #include
10 11 #include "v8config.h" // NOLINT(build/include_directory) 12 13 namespace cppgc { 14 namespace internal { 15 16 // Embedders should not rely on this code! 17 18 // Internal constants to avoid exposing internal types on the API surface. 19 namespace api_constants { 20 21 constexpr size_t kKB = 1024; 22 constexpr size_t kMB = kKB * 1024; 23 constexpr size_t kGB = kMB * 1024; 24 25 // Offset of the uint16_t bitfield from the payload contaning the 26 // in-construction bit. This is subtracted from the payload pointer to get 27 // to the right bitfield. 28 static constexpr size_t kFullyConstructedBitFieldOffsetFromPayload = 29 2 * sizeof(uint16_t); 30 // Mask for in-construction bit. 31 static constexpr uint16_t kFullyConstructedBitMask = uint16_t{1}; 32 33 static constexpr size_t kPageSize = size_t{1} << 17; 34 35 #if defined(V8_HOST_ARCH_ARM64) && defined(V8_OS_DARWIN) 36 constexpr size_t kGuardPageSize = 0; 37 #else 38 constexpr size_t kGuardPageSize = 4096; 39 #endif 40 41 static constexpr size_t kLargeObjectSizeThreshold = kPageSize / 2; 42 43 #if defined(CPPGC_POINTER_COMPRESSION) 44 #if defined(CPPGC_ENABLE_LARGER_CAGE) 45 constexpr unsigned kPointerCompressionShift = 3; 46 #else // !defined(CPPGC_ENABLE_LARGER_CAGE) 47 constexpr unsigned kPointerCompressionShift = 1; 48 #endif // !defined(CPPGC_ENABLE_LARGER_CAGE) 49 #endif // !defined(CPPGC_POINTER_COMPRESSION) 50 51 #if defined(CPPGC_CAGED_HEAP) 52 #if defined(CPPGC_2GB_CAGE) 53 constexpr size_t kCagedHeapDefaultReservationSize = 54 static_cast
(2) * kGB; 55 constexpr size_t kCagedHeapMaxReservationSize = 56 kCagedHeapDefaultReservationSize; 57 #else // !defined(CPPGC_2GB_CAGE) 58 constexpr size_t kCagedHeapDefaultReservationSize = 59 static_cast
(4) * kGB; 60 #if defined(CPPGC_POINTER_COMPRESSION) 61 constexpr size_t kCagedHeapMaxReservationSize = 62 size_t{1} << (31 + kPointerCompressionShift); 63 #else // !defined(CPPGC_POINTER_COMPRESSION) 64 constexpr size_t kCagedHeapMaxReservationSize = 65 kCagedHeapDefaultReservationSize; 66 #endif // !defined(CPPGC_POINTER_COMPRESSION) 67 #endif // !defined(CPPGC_2GB_CAGE) 68 constexpr size_t kCagedHeapReservationAlignment = kCagedHeapMaxReservationSize; 69 #endif // defined(CPPGC_CAGED_HEAP) 70 71 static constexpr size_t kDefaultAlignment = sizeof(void*); 72 73 // Maximum support alignment for a type as in `alignof(T)`. 74 static constexpr size_t kMaxSupportedAlignment = 2 * kDefaultAlignment; 75 76 // Granularity of heap allocations. 77 constexpr size_t kAllocationGranularity = sizeof(void*); 78 79 // Default cacheline size. 80 constexpr size_t kCachelineSize = 64; 81 82 } // namespace api_constants 83 84 } // namespace internal 85 } // namespace cppgc 86 87 #endif // INCLUDE_CPPGC_INTERNAL_API_CONSTANTS_H_
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2026 MyWebUniversity.com ™