5#ifndef V8_SANDBOX_EXTERNAL_POINTER_INL_H_
6#define V8_SANDBOX_EXTERNAL_POINTER_INL_H_
21template <ExternalPo
interTag tag>
29template <ExternalPo
interTag tag>
36template <ExternalPo
interTag tag>
43template <ExternalPo
interTag tag>
48template <ExternalPo
interTag tag>
53template <ExternalPo
interTag tag>
58#ifdef V8_ENABLE_SANDBOX
60 ExternalPointerTable& table = isolate.GetExternalPointerTableFor(tag);
62 isolate.GetExternalPointerTableSpaceFor(tag, host_address), value, tag);
73template <ExternalPo
interTagRange tag_range>
76#ifdef V8_ENABLE_SANDBOX
85 return isolate.GetExternalPointerTableFor(tag_range).Get(
handle, tag_range);
91template <ExternalPo
interTag tag>
95#ifdef V8_ENABLE_SANDBOX
100 isolate.GetExternalPointerTableFor(tag).Set(
handle, value, tag);
static void Release_Store(T *addr, typename std::remove_reference< T >::type new_value)
static T Relaxed_Load(T *addr)
ExternalPointer_t load_encoded() const
void store_encoded(ExternalPointer_t value)
void store(IsolateForSandbox isolate, Address value)
void Init(Address host_address, IsolateForSandbox isolate, Address value)
Address load(const IsolateForSandbox isolate) const
V8_INLINE Dest bit_cast(Source const &source)
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
V8_INLINE void WriteExternalPointerField(Address field_address, IsolateForSandbox isolate, Address value)
static void WriteMaybeUnalignedValue(Address p, V value)
V8_INLINE Address ReadExternalPointerField(Address field_address, IsolateForSandbox isolate)
Address ExternalPointer_t
@ kExternalPointerNullTag
V8_INLINE void InitExternalPointerField(Address host_address, Address field_address, IsolateForSandbox isolate, Address value)
uint32_t ExternalPointerHandle
V8_INLINE void SetupLazilyInitializedExternalPointerField(Address field_address)
static V ReadMaybeUnalignedValue(Address p)