/* * Copyright 2014 The Chromium Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_ #define PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_ #include <stddef.h> #include "ppapi/c/ppp.h" struct PP_StartFunctions { int32_t (*PPP_InitializeModule)(PP_Module module_id, PPB_GetInterface get_browser_interface); void (*PPP_ShutdownModule)(void); const void* (*PPP_GetInterface)(const char* interface_name); }; struct PP_ThreadFunctions { /* * This is a cut-down version of pthread_create()/pthread_join(). * We omit thread creation attributes and the thread's return value. * * We use uintptr_t as the thread ID type because pthread_t is not * part of the stable ABI; a user thread library might choose an * arbitrary size for its own pthread_t. */ int (*thread_create)(uintptr_t* tid, void (*func)(void* thread_argument), void* thread_argument); int (*thread_join)(uintptr_t tid); }; #define NACL_IRT_PPAPIHOOK_v0_1 "nacl-irt-ppapihook-0.1" struct nacl_irt_ppapihook { int (*ppapi_start)(const struct PP_StartFunctions*); void (*ppapi_register_thread_creator)(const struct PP_ThreadFunctions*); }; #endif // PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_