2 * Copyright 2014 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
7 #ifndef PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
8 #define PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_
12 #include "ppapi/c/ppp.h"
14 struct PP_StartFunctions
{
15 int32_t (*PPP_InitializeModule
)(PP_Module module_id
,
16 PPB_GetInterface get_browser_interface
);
17 void (*PPP_ShutdownModule
)(void);
18 const void* (*PPP_GetInterface
)(const char* interface_name
);
21 struct PP_ThreadFunctions
{
23 * This is a cut-down version of pthread_create()/pthread_join().
24 * We omit thread creation attributes and the thread's return value.
26 * We use uintptr_t as the thread ID type because pthread_t is not
27 * part of the stable ABI; a user thread library might choose an
28 * arbitrary size for its own pthread_t.
30 int (*thread_create
)(uintptr_t* tid
,
31 void (*func
)(void* thread_argument
),
32 void* thread_argument
);
33 int (*thread_join
)(uintptr_t tid
);
36 #define NACL_IRT_PPAPIHOOK_v0_1 "nacl-irt-ppapihook-0.1"
37 struct nacl_irt_ppapihook
{
38 int (*ppapi_start
)(const struct PP_StartFunctions
*);
39 void (*ppapi_register_thread_creator
)(const struct PP_ThreadFunctions
*);
42 #endif // PPAPI_NACL_IRT_PUBLIC_IRT_PPAPI_H_