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

Side by Side Diff: runtime/include/dart_api.h

Issue 2611343002: Cleanup embedder API functions for app snapshots. (Closed)
Patch Set: sync Created 3 years, 11 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
« no previous file with comments | « runtime/bin/main.cc ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 * Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 * for details. All rights reserved. Use of this source code is governed by a 3 * for details. All rights reserved. Use of this source code is governed by a
4 * BSD-style license that can be found in the LICENSE file. 4 * BSD-style license that can be found in the LICENSE file.
5 */ 5 */
6 6
7 #ifndef RUNTIME_INCLUDE_DART_API_H_ 7 #ifndef RUNTIME_INCLUDE_DART_API_H_
8 #define RUNTIME_INCLUDE_DART_API_H_ 8 #define RUNTIME_INCLUDE_DART_API_H_
9 9
10 /** \mainpage Dart Embedding API Reference 10 /** \mainpage Dart Embedding API Reference
(...skipping 3200 matching lines...) Expand 10 before | Expand all | Expand 10 after
3211 Dart_Precompile(Dart_QualifiedFunctionName entry_points[], 3211 Dart_Precompile(Dart_QualifiedFunctionName entry_points[],
3212 uint8_t* jit_feedback, 3212 uint8_t* jit_feedback,
3213 intptr_t jit_feedback_length); 3213 intptr_t jit_feedback_length);
3214 3214
3215 3215
3216 /** 3216 /**
3217 * Creates a precompiled snapshot. 3217 * Creates a precompiled snapshot.
3218 * - A root library must have been loaded. 3218 * - A root library must have been loaded.
3219 * - Dart_Precompile must have been called. 3219 * - Dart_Precompile must have been called.
3220 * 3220 *
3221 * Outputs a vm isolate snapshot, an isolate snapshot, and an assembly file 3221 * Outputs an assembly file defining the symbols kVmIsolateSnapshot,
3222 * defining the symbols kInstructionsSnapshot and kDataSnapshot. The assembly 3222 * kIsolateSnapshot, kInstructionsSnapshot and kDataSnapshot. The assembly
3223 * should be compiled as a static or shared library and linked or loaded by the 3223 * should be compiled as a static or shared library and linked or loaded by the
3224 * embedder. 3224 * embedder.
3225 * Running this snapshot requires a VM compiled with DART_PRECOMPILED_SNAPSHOT. 3225 * Running this snapshot requires a VM compiled with DART_PRECOMPILED_SNAPSHOT.
3226 * The vm isolate snapshot, kInstructionsSnapshot and kDataSnapshot should be 3226 * The kVmIsolateSnapshot, kInstructionsSnapshot and kDataSnapshot should be
3227 * passed as arguments to Dart_Initialize. The isolate snapshot should be 3227 * passed as arguments to Dart_Initialize. The kIsolateSnapshot snapshot should
3228 * passed to Dart_CreateIsolate. 3228 * be passed to Dart_CreateIsolate.
3229 * 3229 *
3230 * The buffers are scope allocated and are only valid until the next call to 3230 * The buffers are scope allocated and are only valid until the next call to
3231 * Dart_ExitScope. 3231 * Dart_ExitScope.
3232 * 3232 *
3233 * \return A valid handle if no error occurs during the operation. 3233 * \return A valid handle if no error occurs during the operation.
3234 */ 3234 */
3235 DART_EXPORT Dart_Handle 3235 DART_EXPORT Dart_Handle
3236 Dart_CreatePrecompiledSnapshotAssembly(uint8_t** assembly_buffer, 3236 Dart_CreateAppAOTSnapshotAsAssembly(uint8_t** assembly_buffer,
3237 intptr_t* assembly_size); 3237 intptr_t* assembly_size);
3238 3238
3239 3239
3240 /** 3240 /**
3241 * Same as Dart_CreatePrecompiledSnapshotAssembly, except the instruction and 3241 * Same as Dart_CreateAppAOTSnapshotAsAssembly, except all the pieces are
3242 * data snapshot pieces are provided directly as bytes that the embedder can 3242 * provided directly as bytes that the embedder can load with mmap. The
3243 * load with mmap. The instructions piece must be loaded with read and 3243 * instructions piece must be loaded with read and execute permissions; the
3244 * execute permissions; the rodata piece may be loaded as read-only. 3244 * other pieces may be loaded as read-only.
3245 */ 3245 */
3246 DART_EXPORT Dart_Handle 3246 DART_EXPORT Dart_Handle
3247 Dart_CreatePrecompiledSnapshotBlob(uint8_t** vm_isolate_snapshot_buffer, 3247 Dart_CreateAppAOTSnapshotAsBlobs(uint8_t** vm_isolate_snapshot_buffer,
3248 intptr_t* vm_isolate_snapshot_size, 3248 intptr_t* vm_isolate_snapshot_size,
3249 uint8_t** isolate_snapshot_buffer, 3249 uint8_t** isolate_snapshot_buffer,
3250 intptr_t* isolate_snapshot_size, 3250 intptr_t* isolate_snapshot_size,
3251 uint8_t** instructions_blob_buffer, 3251 uint8_t** instructions_blob_buffer,
3252 intptr_t* instructions_blob_size, 3252 intptr_t* instructions_blob_size,
3253 uint8_t** rodata_blob_buffer, 3253 uint8_t** rodata_blob_buffer,
3254 intptr_t* rodata_blob_size); 3254 intptr_t* rodata_blob_size);
3255
3256
3257 DART_EXPORT Dart_Handle Dart_PrecompileJIT();
3258 3255
3259 3256
3260 /** 3257 /**
3261 * Creates a snapshot that caches unoptimized code and type feedback for faster 3258 * Creates a snapshot that caches unoptimized code and type feedback for faster
3262 * startup and quicker warmup in a subsequent process. 3259 * startup and quicker warmup in a subsequent process.
3263 * 3260 *
3264 * Outputs a snapshot in four pieces. The vm isolate snapshot, 3261 * Outputs a snapshot in four pieces. The vm isolate snapshot,
3265 * instructions_blob and rodata_blob should be passed as arguments to 3262 * instructions_blob and rodata_blob should be passed as arguments to
3266 * Dart_Initialize. The isolate snapshot should be passed to 3263 * Dart_Initialize. The isolate snapshot should be passed to
3267 * Dart_CreateIsolate. The instructions piece must be loaded with execute 3264 * Dart_CreateIsolate. The instructions piece must be loaded with execute
3268 * permissions; the other pieces may loaded as read-only. 3265 * permissions; the other pieces may loaded as read-only.
3269 * 3266 *
3270 * - Requires the VM to have been started with --load-deferred-eagerly. 3267 * - Requires the VM to have been started with --load-deferred-eagerly.
3271 * - Requires the VM to have not been started with --precompilation. 3268 * - Requires the VM to have not been started with --precompilation.
3272 * - Not supported when targeting IA32. 3269 * - Not supported when targeting IA32.
3273 * - The VM writing the snapshot and the VM reading the snapshot must be the 3270 * - The VM writing the snapshot and the VM reading the snapshot must be the
3274 * same version, must be built in the same DEBUG/RELEASE/PRODUCT mode, must 3271 * same version, must be built in the same DEBUG/RELEASE/PRODUCT mode, must
3275 * be targeting the same architecture, and must both be in checked mode or 3272 * be targeting the same architecture, and must both be in checked mode or
3276 * both in unchecked mode. 3273 * both in unchecked mode.
3277 * 3274 *
3278 * The buffers are scope allocated and are only valid until the next call to 3275 * The buffers are scope allocated and are only valid until the next call to
3279 * Dart_ExitScope. 3276 * Dart_ExitScope.
3280 * 3277 *
3281 * \return A valid handle if no error occurs during the operation. 3278 * \return A valid handle if no error occurs during the operation.
3282 */ 3279 */
3283 DART_EXPORT Dart_Handle 3280 DART_EXPORT Dart_Handle
3284 Dart_CreateAppJITSnapshot(uint8_t** isolate_snapshot_buffer, 3281 Dart_CreateAppJITSnapshotAsBlobs(uint8_t** isolate_snapshot_buffer,
3285 intptr_t* isolate_snapshot_size, 3282 intptr_t* isolate_snapshot_size,
3286 uint8_t** instructions_blob_buffer, 3283 uint8_t** instructions_blob_buffer,
3287 intptr_t* instructions_blob_size, 3284 intptr_t* instructions_blob_size,
3288 uint8_t** rodata_blob_buffer, 3285 uint8_t** rodata_blob_buffer,
3289 intptr_t* rodata_blob_size); 3286 intptr_t* rodata_blob_size);
3290 3287
3291 3288
3292 /** 3289 /**
3293 * Returns whether the VM only supports running from precompiled snapshots and 3290 * Returns whether the VM only supports running from precompiled snapshots and
3294 * not from any other kind of snapshot or from source (that is, the VM was 3291 * not from any other kind of snapshot or from source (that is, the VM was
3295 * compiled with DART_PRECOMPILED_RUNTIME). 3292 * compiled with DART_PRECOMPILED_RUNTIME).
3296 */ 3293 */
3297 DART_EXPORT bool Dart_IsPrecompiledRuntime(); 3294 DART_EXPORT bool Dart_IsPrecompiledRuntime();
3298 3295
3299 3296
3300 /** 3297 /**
3301 * Print a native stack trace. Used for crash handling. 3298 * Print a native stack trace. Used for crash handling.
3302 */ 3299 */
3303 DART_EXPORT void Dart_DumpNativeStackTrace(void* context); 3300 DART_EXPORT void Dart_DumpNativeStackTrace(void* context);
3304 3301
3305 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */ 3302 #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */
OLDNEW
« no previous file with comments | « runtime/bin/main.cc ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698