#ifndef V8_SANDBOX_JS_DISPATCH_TABLE_INL_H_
#define V8_SANDBOX_JS_DISPATCH_TABLE_INL_H_
#include "src/common/code-memory-access-inl.h"
#include "src/objects/objects-inl.h"
#include "src/sandbox/external-entity-table-inl.h"
#include "src/sandbox/js-dispatch-table.h"
#ifdef V8_ENABLE_SANDBOX
namespace v8 {
namespace internal {
void JSDispatchEntry::MakeJSDispatchEntry(Address object, Address entrypoint,
uint16_t parameter_count,
bool mark_as_alive) { … }
Address JSDispatchEntry::GetEntrypoint() const { … }
Address JSDispatchEntry::GetCodePointer() const { … }
uint16_t JSDispatchEntry::GetParameterCount() const { … }
Tagged<Code> JSDispatchTable::GetCode(JSDispatchHandle handle) { … }
void JSDispatchTable::SetCode(JSDispatchHandle handle, Tagged<Code> new_code) { … }
bool JSDispatchTable::HasCode(JSDispatchHandle handle) { … }
JSDispatchHandle JSDispatchTable::AllocateAndInitializeEntry(
Space* space, uint16_t parameter_count) { … }
JSDispatchHandle JSDispatchTable::AllocateAndInitializeEntry(
Space* space, uint16_t parameter_count, Tagged<Code> new_code,
Address new_entrypoint) { … }
void JSDispatchEntry::SetCodeAndEntrypointPointer(Address new_object,
Address new_entrypoint) { … }
void JSDispatchEntry::MakeFreelistEntry(uint32_t next_entry_index) { … }
bool JSDispatchEntry::IsFreelistEntry() const { … }
uint32_t JSDispatchEntry::GetNextFreelistEntryIndex() const { … }
void JSDispatchEntry::Mark() { … }
void JSDispatchEntry::Unmark() { … }
bool JSDispatchEntry::IsMarked() const { … }
Address JSDispatchTable::GetEntrypoint(JSDispatchHandle handle) { … }
Address JSDispatchTable::GetCodeAddress(JSDispatchHandle handle) { … }
uint16_t JSDispatchTable::GetParameterCount(JSDispatchHandle handle) { … }
void JSDispatchTable::Mark(JSDispatchHandle handle) { … }
#ifdef DEBUG
void JSDispatchTable::VerifyEntry(JSDispatchHandle handle, Space* space,
Space* ro_space) { … }
#endif
template <typename Callback>
void JSDispatchTable::IterateActiveEntriesIn(Space* space, Callback callback) { … }
template <typename Callback>
void JSDispatchTable::IterateMarkedEntriesIn(Space* space, Callback callback) { … }
}
}
#endif
#endif