$54 GRAYBYTE WORDPRESS FILE MANAGER $90

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cpanel/ea-nodejs22/include/node/cppgc/internal/

HOME
Current File : /opt/cpanel/ea-nodejs22/include/node/cppgc/internal//caged-heap.h
// Copyright 2022 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef INCLUDE_CPPGC_INTERNAL_CAGED_HEAP_H_
#define INCLUDE_CPPGC_INTERNAL_CAGED_HEAP_H_

#include <climits>
#include <cstddef>

#include "cppgc/internal/api-constants.h"
#include "cppgc/internal/base-page-handle.h"
#include "v8config.h"  // NOLINT(build/include_directory)

#if defined(CPPGC_CAGED_HEAP)

namespace cppgc {
namespace internal {

class V8_EXPORT CagedHeapBase {
 public:
  V8_INLINE static uintptr_t OffsetFromAddress(const void* address) {
    return reinterpret_cast<uintptr_t>(address) &
           (api_constants::kCagedHeapReservationAlignment - 1);
  }

  V8_INLINE static bool IsWithinCage(const void* address) {
    CPPGC_DCHECK(g_heap_base_);
    return (reinterpret_cast<uintptr_t>(address) &
            ~(api_constants::kCagedHeapReservationAlignment - 1)) ==
           g_heap_base_;
  }

  V8_INLINE static bool AreWithinCage(const void* addr1, const void* addr2) {
#if defined(CPPGC_2GB_CAGE)
    static constexpr size_t kHeapBaseShift = sizeof(uint32_t) * CHAR_BIT - 1;
#else   //! defined(CPPGC_2GB_CAGE)
#if defined(CPPGC_POINTER_COMPRESSION)
    static constexpr size_t kHeapBaseShift =
        31 + api_constants::kPointerCompressionShift;
#else   // !defined(CPPGC_POINTER_COMPRESSION)
    static constexpr size_t kHeapBaseShift = sizeof(uint32_t) * CHAR_BIT;
#endif  // !defined(CPPGC_POINTER_COMPRESSION)
#endif  //! defined(CPPGC_2GB_CAGE)
    static_assert((static_cast<size_t>(1) << kHeapBaseShift) ==
                  api_constants::kCagedHeapMaxReservationSize);
    CPPGC_DCHECK(g_heap_base_);
    return !(((reinterpret_cast<uintptr_t>(addr1) ^ g_heap_base_) |
              (reinterpret_cast<uintptr_t>(addr2) ^ g_heap_base_)) >>
             kHeapBaseShift);
  }

  V8_INLINE static uintptr_t GetBase() { return g_heap_base_; }
  V8_INLINE static size_t GetAgeTableSize() { return g_age_table_size_; }

 private:
  friend class CagedHeap;

  static uintptr_t g_heap_base_;
  static size_t g_age_table_size_;
};

}  // namespace internal
}  // namespace cppgc

#endif  // defined(CPPGC_CAGED_HEAP)

#endif  // INCLUDE_CPPGC_INTERNAL_CAGED_HEAP_H_

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
16 Mar 2026 5.04 PM
root / root
0755
api-constants.h
2.833 KB
17 Jan 2026 1.16 AM
root / root
0644
atomic-entry-flag.h
1.722 KB
17 Jan 2026 1.16 AM
root / root
0644
base-page-handle.h
1.438 KB
17 Jan 2026 1.16 AM
root / root
0644
caged-heap-local-data.h
3.609 KB
17 Jan 2026 1.16 AM
root / root
0644
caged-heap.h
2.211 KB
17 Jan 2026 1.16 AM
root / root
0644
compiler-specific.h
0.995 KB
17 Jan 2026 1.16 AM
root / root
0644
finalizer-trait.h
2.594 KB
17 Jan 2026 1.16 AM
root / root
0644
gc-info.h
6.31 KB
17 Jan 2026 1.16 AM
root / root
0644
logging.h
1.662 KB
17 Jan 2026 1.16 AM
root / root
0644
member-storage.h
8.695 KB
17 Jan 2026 1.16 AM
root / root
0644
name-trait.h
4.082 KB
17 Jan 2026 1.16 AM
root / root
0644
persistent-node.h
5.891 KB
17 Jan 2026 1.16 AM
root / root
0644
pointer-policies.h
8.34 KB
17 Jan 2026 1.16 AM
root / root
0644
write-barrier.h
19.09 KB
17 Jan 2026 1.16 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF