#include <bss_relocs.h>
Definition at line 13 of file bss_relocs.h.
◆ Relocation
Enumerator |
---|
DRT_GetFfiCallbackMetadata | |
DRT_ExitTemporaryIsolate | |
EndOfVmEntries | |
EndOfIsolateGroupEntries | |
Definition at line 18 of file bss_relocs.h.
18 : intptr_t {
19 DRT_GetFfiCallbackMetadata,
20 DRT_ExitTemporaryIsolate,
21 EndOfVmEntries,
22
23
24 EndOfIsolateGroupEntries = EndOfVmEntries,
25 };
◆ Initialize()
void dart::BSS::Initialize |
( |
Thread * |
current, |
|
|
uword * |
bss, |
|
|
bool |
vm |
|
) |
| |
|
static |
Definition at line 30 of file bss_relocs.cc.
30 {
31
34 bss_start);
37 bss_start);
38}
@ DRT_GetFfiCallbackMetadata
@ DRT_ExitTemporaryIsolate
static void InitializeBSSEntry(BSS::Relocation relocation, uword new_value, uword *bss_start)
Thread * DLRT_GetFfiCallbackMetadata(FfiCallbackMetadata::Trampoline trampoline, uword *out_entry_point, uword *out_trampoline_type)
void DLRT_ExitTemporaryIsolate()
◆ InitializeBSSEntry()
Definition at line 12 of file bss_relocs.cc.
14 {
15 std::atomic<uword>* slot = reinterpret_cast<std::atomic<uword>*>(
17 uword old_value = slot->load(std::memory_order_relaxed);
18
19
20
21
22
23 if (old_value == new_value) return;
24 if (!slot->compare_exchange_strong(old_value, new_value,
25 std::memory_order_relaxed)) {
27 }
28}
#define RELEASE_ASSERT(cond)
static constexpr intptr_t RelocationIndex(Relocation reloc)
◆ RelocationIndex()
static constexpr intptr_t dart::BSS::RelocationIndex |
( |
Relocation |
reloc | ) |
|
|
inlinestaticconstexpr |
Definition at line 33 of file bss_relocs.h.
33 {
34 return static_cast<intptr_t>(reloc);
35 }
◆ kIsolateGroupEntryCount
constexpr intptr_t dart::BSS::kIsolateGroupEntryCount |
|
staticconstexpr |
Initial value:=
@ EndOfIsolateGroupEntries
Definition at line 30 of file bss_relocs.h.
◆ kVmEntryCount
constexpr intptr_t dart::BSS::kVmEntryCount |
|
staticconstexpr |
The documentation for this class was generated from the following files: