#ifndef V8_SANDBOX_EXTERNAL_POINTER_INL_H_
#define V8_SANDBOX_EXTERNAL_POINTER_INL_H_
#include "include/v8-internal.h"
#include "src/base/atomic-utils.h"
#include "src/objects/slots-inl.h"
#include "src/sandbox/external-buffer-table-inl.h"
#include "src/sandbox/external-pointer-table-inl.h"
#include "src/sandbox/external-pointer.h"
#include "src/sandbox/isolate-inl.h"
#include "src/sandbox/isolate.h"
namespace v8 {
namespace internal {
template <ExternalPointerTag tag>
inline void ExternalPointerMember<tag>::Init(Address host_address,
IsolateForSandbox isolate,
Address value) { … }
template <ExternalPointerTag tag>
inline Address ExternalPointerMember<tag>::load(
const IsolateForSandbox isolate) const { … }
template <ExternalPointerTag tag>
inline void ExternalPointerMember<tag>::store(IsolateForSandbox isolate,
Address value) { … }
template <ExternalPointerTag tag>
inline ExternalPointer_t ExternalPointerMember<tag>::load_encoded() const { … }
template <ExternalPointerTag tag>
inline void ExternalPointerMember<tag>::store_encoded(ExternalPointer_t value) { … }
template <ExternalPointerTag tag>
V8_INLINE void InitExternalPointerField(Address host_address,
Address field_address,
IsolateForSandbox isolate,
Address value) { … }
template <ExternalPointerTag tag>
V8_INLINE Address ReadExternalPointerField(Address field_address,
IsolateForSandbox isolate) { … }
template <ExternalPointerTag tag>
V8_INLINE void WriteExternalPointerField(Address field_address,
IsolateForSandbox isolate,
Address value) { … }
V8_INLINE void SetupLazilyInitializedExternalPointerField(
Address field_address) { … }
template <ExternalPointerTag tag>
V8_INLINE void WriteLazilyInitializedExternalPointerField(
Address host_address, Address field_address, IsolateForSandbox isolate,
Address value) { … }
}
}
#endif