| // clang-format off |
| const KnownTrampoline kKnownTrampolines[] = { |
| {"__clone_for_fork", GetTrampolineFunc<auto(void) -> int32_t>(), reinterpret_cast<void*>(DoThunk___clone_for_fork)}, |
| {"__get_thread_stack_top", DoCustomTrampoline___get_thread_stack_top, reinterpret_cast<void*>(DoBadThunk)}, |
| {"__pthread_cleanup_pop", GetTrampolineFunc<auto(void*, int32_t) -> void>(), reinterpret_cast<void*>(NULL)}, |
| {"__pthread_cleanup_push", DoCustomTrampoline___pthread_cleanup_push, reinterpret_cast<void*>(DoBadThunk)}, |
| {"__system_properties_init", GetTrampolineFunc<auto(void) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_add", GetTrampolineFunc<auto(void*, uint32_t, void*, uint32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_area_init", GetTrampolineFunc<auto(void) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_area_serial", GetTrampolineFunc<auto(void) -> uint32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_find", GetTrampolineFunc<auto(void*) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_find_nth", GetTrampolineFunc<auto(uint32_t) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_foreach", DoCustomTrampoline___system_property_foreach, reinterpret_cast<void*>(DoBadThunk)}, |
| {"__system_property_get", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_read", GetTrampolineFunc<auto(void*, void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_read_callback", DoCustomTrampoline___system_property_read_callback, reinterpret_cast<void*>(DoBadThunk)}, |
| {"__system_property_serial", GetTrampolineFunc<auto(void*) -> uint32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_set", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_set_filename", GetTrampolineFunc<auto(void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_update", GetTrampolineFunc<auto(void*, void*, uint32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_wait", GetTrampolineFunc<auto(void*, uint32_t, void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"__system_property_wait_any", GetTrampolineFunc<auto(uint32_t) -> uint32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"_longjmp", GetTrampolineFunc<auto(void*, int32_t) -> void>(), reinterpret_cast<void*>(DoThunk__longjmp)}, |
| {"_setjmp", GetTrampolineFunc<auto(void*) -> int32_t>(), reinterpret_cast<void*>(DoThunk__setjmp)}, |
| {"android_getaddrinfofornet", GetTrampolineFunc<auto(void*, void*, void*, uint32_t, uint32_t, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"android_getaddrinfofornetcontext", GetTrampolineFunc<auto(void*, void*, void*, void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"android_mallopt", GetTrampolineFunc<auto(int32_t, void*, size_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"android_set_abort_message", GetTrampolineFunc<auto(void*) -> void>(), reinterpret_cast<void*>(NULL)}, |
| {"clock_getres", GetTrampolineFunc<auto(int32_t, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"clock_gettime", GetTrampolineFunc<auto(int32_t, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"freeaddrinfo", GetTrampolineFunc<auto(void*) -> void>(), reinterpret_cast<void*>(NULL)}, |
| {"gai_strerror", GetTrampolineFunc<auto(int32_t) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"getaddrinfo", GetTrampolineFunc<auto(void*, void*, void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"gethostbyaddr", GetTrampolineFunc<auto(void*, int32_t, int32_t) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"gethostbyname", GetTrampolineFunc<auto(void*) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"getnameinfo", GetTrampolineFunc<auto(void*, int32_t, void*, int32_t, void*, int32_t, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"gettimeofday", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"longjmp", GetTrampolineFunc<auto(void*, int32_t) -> void>(), reinterpret_cast<void*>(DoThunk_longjmp)}, |
| {"memcmp", GetTrampolineFunc<auto(void*, void*, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"memcpy", GetTrampolineFunc<auto(void*, void*, int32_t) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"memset", GetTrampolineFunc<auto(void*, int32_t, int32_t) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"native_bridge___cxa_thread_atexit_impl", DoCustomTrampoline_native_bridge___cxa_thread_atexit_impl, reinterpret_cast<void*>(DoBadThunk)}, |
| {"native_bridge_aligned_alloc", GetTrampolineFunc<auto(size_t, size_t) -> void*>(), reinterpret_cast<void*>(aligned_alloc)}, |
| {"native_bridge_calloc", GetTrampolineFunc<auto(size_t, size_t) -> void*>(), reinterpret_cast<void*>(calloc)}, |
| {"native_bridge_exit", GetTrampolineFunc<auto(int32_t) -> void>(), reinterpret_cast<void*>(exit)}, |
| {"native_bridge_free", GetTrampolineFunc<auto(void*) -> void>(), reinterpret_cast<void*>(free)}, |
| {"native_bridge_mallinfo", DoCustomTrampoline_native_bridge_mallinfo, reinterpret_cast<void*>(DoBadThunk)}, |
| {"native_bridge_malloc", GetTrampolineFunc<auto(size_t) -> void*>(), reinterpret_cast<void*>(malloc)}, |
| {"native_bridge_malloc_disable", GetTrampolineFunc<auto(void) -> void>(), reinterpret_cast<void*>(malloc_disable)}, |
| {"native_bridge_malloc_enable", GetTrampolineFunc<auto(void) -> void>(), reinterpret_cast<void*>(malloc_enable)}, |
| {"native_bridge_malloc_info_helper", DoCustomTrampoline_native_bridge_malloc_info_helper, reinterpret_cast<void*>(DoBadThunk)}, |
| {"native_bridge_malloc_iterate", DoCustomTrampoline_native_bridge_malloc_iterate, reinterpret_cast<void*>(DoBadThunk)}, |
| {"native_bridge_malloc_usable_size", GetTrampolineFunc<auto(void*) -> size_t>(), reinterpret_cast<void*>(malloc_usable_size)}, |
| {"native_bridge_mallopt", GetTrampolineFunc<auto(int32_t, int32_t) -> int32_t>(), reinterpret_cast<void*>(mallopt)}, |
| {"native_bridge_memalign", GetTrampolineFunc<auto(size_t, size_t) -> void*>(), reinterpret_cast<void*>(memalign)}, |
| {"native_bridge_posix_memalign", GetTrampolineFunc<auto(void*, size_t, size_t) -> int32_t>(), reinterpret_cast<void*>(posix_memalign)}, |
| {"native_bridge_realloc", GetTrampolineFunc<auto(void*, size_t) -> void*>(), reinterpret_cast<void*>(realloc)}, |
| {"pthread_attr_destroy", GetTrampolineFunc<auto(void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getdetachstate", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getguardsize", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getinheritsched", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getschedparam", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getschedpolicy", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getscope", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getstack", GetTrampolineFunc<auto(void*, void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_getstacksize", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_init", GetTrampolineFunc<auto(void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setdetachstate", GetTrampolineFunc<auto(void*, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setguardsize", GetTrampolineFunc<auto(void*, size_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setinheritsched", GetTrampolineFunc<auto(void*, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setschedparam", GetTrampolineFunc<auto(void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setschedpolicy", GetTrampolineFunc<auto(void*, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setscope", GetTrampolineFunc<auto(void*, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setstack", GetTrampolineFunc<auto(void*, void*, size_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_attr_setstacksize", GetTrampolineFunc<auto(void*, size_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_create", DoCustomTrampoline_pthread_create, reinterpret_cast<void*>(DoBadThunk)}, |
| {"pthread_detach", GetTrampolineFunc<auto(long) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_exit", GetTrampolineFunc<auto(void*) -> void>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_getattr_np", DoCustomTrampoline_pthread_getattr_np, reinterpret_cast<void*>(DoBadThunk)}, |
| {"pthread_getcpuclockid", GetTrampolineFunc<auto(long, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_getname_np", GetTrampolineFunc<auto(long, void*, long) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_getschedparam", GetTrampolineFunc<auto(long, void*, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_getspecific", GetTrampolineFunc<auto(int32_t) -> void*>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_gettid_np", GetTrampolineFunc<auto(long) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_join", DoCustomTrampoline_pthread_join, reinterpret_cast<void*>(DoBadThunk)}, |
| {"pthread_key_create", DoCustomTrampoline_pthread_key_create, reinterpret_cast<void*>(DoBadThunk)}, |
| {"pthread_key_delete", GetTrampolineFunc<auto(int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_kill", GetTrampolineFunc<auto(long, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_setname_np", GetTrampolineFunc<auto(long, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_setschedparam", GetTrampolineFunc<auto(long, int32_t, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_setschedprio", GetTrampolineFunc<auto(long, int32_t) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_setspecific", GetTrampolineFunc<auto(int32_t, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"pthread_sigqueue", GetTrampolineFunc<auto(long, int32_t, void*) -> int32_t>(), reinterpret_cast<void*>(NULL)}, |
| {"setjmp", GetTrampolineFunc<auto(void*) -> int32_t>(), reinterpret_cast<void*>(DoThunk_setjmp)}, |
| {"siglongjmp", GetTrampolineFunc<auto(void*, int32_t) -> void>(), reinterpret_cast<void*>(DoThunk_siglongjmp)}, |
| {"sigsetjmp", GetTrampolineFunc<auto(void*, int32_t) -> int32_t>(), reinterpret_cast<void*>(DoThunk_sigsetjmp)}, |
| {"time", GetTrampolineFunc<auto(void*) -> long>(), reinterpret_cast<void*>(NULL)}, |
| }; // kKnownTrampolines |
| const KnownVariable kKnownVariables[] = { |
| {"environ", sizeof(void*)}, |
| }; // kKnownVariables |
| // clang-format on |