#include "src/__support/OSUtil/linux/vdso.h"
#include "hdr/link_macros.h"
#include "hdr/sys_auxv_macros.h"
#include "src/__support/CPP/array.h"
#include "src/__support/CPP/optional.h"
#include "src/__support/CPP/string_view.h"
#include "src/__support/threads/callonce.h"
#include "src/__support/threads/linux/futex_word.h"
#include "src/errno/libc_errno.h"
#include "src/sys/auxv/getauxval.h"
#include <linux/auxvec.h>
namespace LIBC_NAMESPACE_DECL {
namespace vdso {
Symbol::VDSOArray Symbol::global_cache{ … };
CallOnceFlag Symbol::once_flag = …;
namespace {
struct Verdaux { … };
struct Verdef { … };
cpp::string_view find_version(Verdef *verdef, ElfW(Half) * versym,
const char *strtab, size_t idx) { … }
size_t shdr_get_symbol_count(ElfW(Shdr) * vdso_shdr, size_t e_shnum) { … }
struct VDSOSymbolTable { … };
struct PhdrInfo { … };
}
void Symbol::initialize_vdso_global_cache() { … }
}
}