#ifndef V8_SANDBOX_INDIRECT_POINTER_INL_H_
#define V8_SANDBOX_INDIRECT_POINTER_INL_H_
#include "include/v8-internal.h"
#include "src/base/atomic-utils.h"
#include "src/sandbox/code-pointer-table-inl.h"
#include "src/sandbox/indirect-pointer.h"
#include "src/sandbox/isolate-inl.h"
#include "src/sandbox/trusted-pointer-table-inl.h"
namespace v8 {
namespace internal {
V8_INLINE void InitSelfIndirectPointerField(Address field_address,
IsolateForSandbox isolate,
Tagged<HeapObject> host,
IndirectPointerTag tag) { … }
namespace {
#ifdef V8_ENABLE_SANDBOX
template <IndirectPointerTag tag>
V8_INLINE Tagged<Object> ResolveTrustedPointerHandle(
IndirectPointerHandle handle, IsolateForSandbox isolate) { … }
V8_INLINE Tagged<Object> ResolveCodePointerHandle(
IndirectPointerHandle handle) { … }
#endif
}
template <IndirectPointerTag tag>
V8_INLINE Tagged<Object> ReadIndirectPointerField(Address field_address,
IsolateForSandbox isolate,
AcquireLoadTag) { … }
template <IndirectPointerTag tag>
V8_INLINE void WriteIndirectPointerField(Address field_address,
Tagged<ExposedTrustedObject> value,
ReleaseStoreTag) { … }
}
}
#endif