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

Side by Side Diff: src/untrusted/irt/irt_dev.h

Issue 984713003: Add an IRT interface for subzero/compiler to serve_translate_requests. (Closed) Base URL: https://chromium.googlesource.com/native_client/src/native_client.git@master
Patch Set: add a log_fatal for now, to marshal back Created 5 years, 9 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. 2 * Copyright (c) 2013 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 #ifndef NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_ 6 #ifndef NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_
7 #define NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_ 7 #define NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_
8 8
9 #include <stdarg.h> 9 #include <stdarg.h>
10 #include <stddef.h> 10 #include <stddef.h>
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 * success or a non-zero value on error. 131 * success or a non-zero value on error.
132 */ 132 */
133 #define NACL_IRT_PRIVATE_PNACL_TRANSLATOR_LINK_v0_1 \ 133 #define NACL_IRT_PRIVATE_PNACL_TRANSLATOR_LINK_v0_1 \
134 "nacl-irt-private-pnacl-translator-link-0.1" 134 "nacl-irt-private-pnacl-translator-link-0.1"
135 struct nacl_irt_private_pnacl_translator_link { 135 struct nacl_irt_private_pnacl_translator_link {
136 void (*serve_link_request)(int (*func)(int nexe_fd, 136 void (*serve_link_request)(int (*func)(int nexe_fd,
137 const int *obj_file_fds, 137 const int *obj_file_fds,
138 int obj_file_fd_count)); 138 int obj_file_fd_count));
139 }; 139 };
140 140
141 /*
142 * This is an internal interface, for use by PNaCl's subzero translator for
Jim Stichnoth 2015/03/23 18:13:40 Sorry for the pedantry - can we capitalize Subzero
jvoung (off chromium) 2015/03/23 21:18:55 Alright, well if we are going with a shared pnacl-
143 * communicating with the browser.
144 *
145 * serve_translate_request(funcs) loops waiting for sequences of requests
146 * via IPC, and then calls the appropriate callback to handle the IPC,
147 * on the same thread.
148 *
149 * (*) init_callback is used to initialze the translation process
Jim Stichnoth 2015/03/23 18:13:40 initialize
jvoung (off chromium) 2015/03/23 21:18:55 Done.
150 * with configuration info:
151 * |num_threads| is the number of recommended *translate* threads
152 * to use (there may be other worker threads).
Jim Stichnoth 2015/03/23 18:13:40 Mention that num_threads=0 means completely sequen
jvoung (off chromium) 2015/03/23 21:18:55 Hmm, alright added that conditional on pnacl-sz. I
153 * |obj_file_fd| is the FD for writing an output object file.
154 * |cmd_flags| is \0 delimited set of command-line flags.
155 * |cmd_flags_len| is the length of the |cmd_flags| array.
156 * (*) data_callback is invoked to stream additional bitcode data
157 * to the translator.
158 * (*) end_callback is invoked to signal the end of the data stream.
159 * This must block until translation is actually complete and
160 * the translator process can be terminated.
161 *
162 * All callbacks return zero on success or a non-zero value on error.
163 * TODO(jvoung): Add error output.
164 */
165 struct PNaClSubzeroFunctions {
Mark Seaborn 2015/03/23 18:09:38 Nit: Use lower_case_with_underscores, following th
jvoung (off chromium) 2015/03/23 21:18:55 Done.
166 int (*init_callback)(uint32_t num_threads,
167 int obj_file_fd,
Mark Seaborn 2015/03/23 18:15:56 So I guess this is specific to Subzero? llc would
Jim Stichnoth 2015/03/23 18:21:16 Subzero doesn't need to resort to module splitting
jvoung (off chromium) 2015/03/23 21:18:55 Right. Alright, I guess Petr is close enough to u
168 const char *cmd_flags, size_t cmd_flags_len);
169
170 int (*data_callback)(unsigned char *data, size_t num_bytes);
171 // TODO(jvoung): UMA out-arg vector, or have a separate method
172 // for that?
173 int (*end_callback)(void);
174 };
175
176 #define NACL_IRT_PRIVATE_PNACL_TRANSLATOR_SUBZERO_v0_1 \
177 "nacl-irt-private-pnacl-trnalsator-subzero-0.1"
Mark Seaborn 2015/03/23 18:09:38 "translator" typo Can you avoid naming this after
Jim Stichnoth 2015/03/23 18:13:40 translator
jvoung (off chromium) 2015/03/23 21:18:55 Done.
178 struct nacl_irt_private_pnacl_translator_subzero {
179 void (*serve_translate_request)(const struct PNaClSubzeroFunctions *funcs);
180 void (*log_fatal)(const char *message);
181 };
182
141 #if defined(__cplusplus) 183 #if defined(__cplusplus)
142 } 184 }
143 #endif 185 #endif
144 186
145 #endif /* NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H */ 187 #endif /* NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698