1 /* -*- Mode: C; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the Mozilla Public License Version 2.0.
7 // See license.mkd for licensing and copyright information.
8 // -------------------------------------------------------------------------*/
11 * Virtual machine booting.
16 #ifndef SQUIRRELJME_BOOT_H
17 #define SQUIRRELJME_BOOT_H
23 #ifndef SJME_CXX_IS_EXTERNED
24 #define SJME_CXX_IS_EXTERNED
25 #define SJME_CXX_SQUIRRELJME_BOOT_H
27 #endif /* #ifdef SJME_CXX_IS_EXTERNED */
28 #endif /* #ifdef __cplusplus */
30 /*--------------------------------------------------------------------------*/
33 * Boots the virtual machine.
35 * @param config The configuration to use.
36 * @param outState The output state of the virtual machine.
37 * @param argc The number of arguments passed to the executable.
38 * @param argv The command line arguments passed to the executable.
39 * @return The booted virtual machine.
42 sjme_jboolean
sjme_nvm_boot(
43 sjme_attrInNotNull
const sjme_nvm_bootConfig
* config
,
44 sjme_attrOutNotNull sjme_nvm_state
** outState
,
45 sjme_attrInValue
int argc
,
46 sjme_attrInNullable
char** argv
) sjme_attrCheckReturn
;
49 * Destroys the virtual machine.
51 * @param state The state to destroy.
52 * @return If destruction was successful.
55 sjme_jboolean
sjme_nvm_destroy(
56 sjme_attrInNotNull sjme_nvm_state
* state
,
57 sjme_attrOutNullable sjme_jint
* exitCode
)
60 /*--------------------------------------------------------------------------*/
64 #ifdef SJME_CXX_SQUIRRELJME_BOOT_H
66 #undef SJME_CXX_SQUIRRELJME_BOOT_H
67 #undef SJME_CXX_IS_EXTERNED
68 #endif /* #ifdef SJME_CXX_SQUIRRELJME_BOOT_H */
69 #endif /* #ifdef __cplusplus */
71 #endif /* SQUIRRELJME_BOOT_H */