1*cb14a3feSDimitry Andric#include <zircon/features.h> 2*cb14a3feSDimitry Andric#include <zircon/syscalls.h> 3*cb14a3feSDimitry Andric 4*cb14a3feSDimitry Andricstatic void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) { 5*cb14a3feSDimitry Andric // This ensures the vDSO is a direct link-time dependency of anything that 6*cb14a3feSDimitry Andric // needs this initializer code. 7*cb14a3feSDimitry Andric#pragma comment(lib, "zircon") 8*cb14a3feSDimitry Andric uint32_t features; 9*cb14a3feSDimitry Andric zx_status_t status = _zx_system_get_features(ZX_FEATURE_KIND_CPU, &features); 10*cb14a3feSDimitry Andric __aarch64_have_lse_atomics = 11*cb14a3feSDimitry Andric status == ZX_OK && (features & ZX_ARM64_FEATURE_ISA_ATOMICS) != 0; 12*cb14a3feSDimitry Andric} 13