Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1148)

Side by Side Diff: src/trusted/plugin/pnacl_thread_args.h

Issue 7799028: Remove src/trusted/plugin (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: fix gyp file for necessary -I Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/trusted/plugin/pnacl_srpc_lib.cc ('k') | src/trusted/plugin/ppapi.def » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Native Client Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_THREAD_ARGS_H_
6 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_THREAD_ARGS_H_
7
8 #include "native_client/src/trusted/plugin/plugin_error.h"
9
10 #include "ppapi/cpp/completion_callback.h"
11
12 namespace plugin {
13
14 class BrowserInterface;
15 class NaClSubprocess;
16 class PnaclCoordinator;
17
18 // Base structure for storing pnacl helper thread arguments.
19 struct PnaclThreadArgs {
20 PnaclThreadArgs(NaClSubprocess* subprocess_,
21 BrowserInterface* browser_,
22 pp::CompletionCallback finish_cb_)
23 : should_die(false),
24 subprocess(subprocess_),
25 browser(browser_),
26 finish_cb(finish_cb_) {
27 }
28
29 // Bool to signal to the thread that it should end whenever possible.
30 bool should_die;
31
32 // SRPC Nexe subprocess that does the work.
33 NaClSubprocess* subprocess;
34 // Browser Interface for SRPC setup.
35 BrowserInterface* browser;
36
37 // Callback to run when task is completed or an error has occurred.
38 pp::CompletionCallback finish_cb;
39
40 ErrorInfo error_info;
41 };
42
43 //----------------------------------------------------------------------
44 // Helper thread arguments.
45
46 // TODO(jvoung): Move these to the compile / link files when we separate
47 // those bits from pnacl_coordinator.
48
49 // Arguments needed to run LLVM in a separate thread, to go from
50 // bitcode -> object file. This prevents LLVM from blocking the main thread.
51 struct DoTranslateArgs : PnaclThreadArgs {
52 DoTranslateArgs(NaClSubprocess* subprocess_,
53 BrowserInterface* browser_,
54 pp::CompletionCallback finish_cb_,
55 nacl::DescWrapper* pexe_fd_)
56 : PnaclThreadArgs(subprocess_, browser_, finish_cb_),
57 pexe_fd(pexe_fd_),
58 obj_fd(kNaClSrpcInvalidImcDesc),
59 obj_len(-1) {
60 }
61
62 // Borrowed references which must outlive the thread.
63 nacl::DescWrapper* pexe_fd;
64
65 // Output.
66 NaClSrpcImcDescType obj_fd;
67 int32_t obj_len;
68 };
69
70 // Arguments needed to run LD in a separate thread, to go from
71 // object file -> nexe.
72 struct DoLinkArgs : PnaclThreadArgs {
73 DoLinkArgs(NaClSubprocess* subprocess_,
74 BrowserInterface* browser_,
75 pp::CompletionCallback finish_cb_,
76 PnaclCoordinator* coordinator_,
77 nacl::DescWrapper* obj_fd_,
78 int32_t obj_len_)
79 : PnaclThreadArgs(subprocess_, browser_, finish_cb_),
80 coordinator(coordinator_),
81 obj_fd(obj_fd_),
82 obj_len(obj_len_),
83 nexe_fd(kNaClSrpcInvalidImcDesc) {
84 }
85 PnaclCoordinator* coordinator; // Punch hole in abstraction.
86
87 // Borrowed references which must outlive the thread.
88 nacl::DescWrapper* obj_fd;
89 int32_t obj_len;
90
91 // Output.
92 NaClSrpcImcDescType nexe_fd;
93 };
94
95
96 } // namespace plugin;
97 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_THREAD_ARGS_H_
OLDNEW
« no previous file with comments | « src/trusted/plugin/pnacl_srpc_lib.cc ('k') | src/trusted/plugin/ppapi.def » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698