Embryo.h File Reference
Embryo virtual machine library. More...
Defines | |
#define | EMBRYO_FUNCTION_NONE 0x7fffffff |
An invalid/non-existant function. | |
#define | EMBRYO_FUNCTION_MAIN -1 |
Start at program entry point. | |
#define | EMBRYO_FUNCTION_CONT -2 |
Continue from last address. | |
#define | EMBRYO_CELL_NONE 0x7fffffff |
An invalid cell reference. | |
#define | EMBRYO_PROGRAM_OK 1 |
Program was run successfully. | |
#define | EMBRYO_PROGRAM_SLEEP 2 |
The program's execution was interrupted by a Small sleep command. | |
#define | EMBRYO_PROGRAM_FAIL 0 |
An error in the program caused it to fail. | |
#define | EMBRYO_FLOAT_TO_CELL(f) ((Embryo_Float_Cell) f).c |
Float to Embryo_Cell. | |
#define | EMBRYO_CELL_TO_FLOAT(c) ((Embryo_Float_Cell) c).f |
Embryo_Cell to float. | |
Enumerations | |
enum | { , EMBRYO_ERROR_ASSERT, EMBRYO_ERROR_STACKERR, EMBRYO_ERROR_BOUNDS, EMBRYO_ERROR_MEMACCESS, EMBRYO_ERROR_INVINSTR, EMBRYO_ERROR_STACKLOW, EMBRYO_ERROR_HEAPLOW, EMBRYO_ERROR_CALLBACK, EMBRYO_ERROR_NATIVE, EMBRYO_ERROR_DIVIDE, EMBRYO_ERROR_SLEEP, EMBRYO_ERROR_MEMORY = 16, EMBRYO_ERROR_FORMAT, EMBRYO_ERROR_VERSION, EMBRYO_ERROR_NOTFOUND, EMBRYO_ERROR_INDEX, EMBRYO_ERROR_DEBUG, EMBRYO_ERROR_INIT, EMBRYO_ERROR_USERDATA, EMBRYO_ERROR_INIT_JIT, EMBRYO_ERROR_PARAMS, EMBRYO_ERROR_DOMAIN } |
Functions | |
EAPI int | embryo_init (void) |
Initialises the Embryo library. | |
EAPI int | embryo_shutdown (void) |
Shuts down the Embryo library. | |
EAPI Embryo_Program * | embryo_program_new (void *data, int size) |
Creates a new Embryo program, with bytecode data that can be freed. | |
EAPI Embryo_Program * | embryo_program_const_new (void *data, int size) |
Creates a new Embryo program, with bytecode data that cannot be freed. | |
EAPI Embryo_Program * | embryo_program_load (char *file) |
Creates a new Embryo program based on the bytecode data stored in the given file. | |
EAPI void | embryo_program_free (Embryo_Program *ep) |
Frees the given Embryo program. | |
EAPI void | embryo_program_native_call_add (Embryo_Program *ep, const char *name, Embryo_Cell(*func)(Embryo_Program *ep, Embryo_Cell *params)) |
Adds a native program call to the given Embryo program. | |
EAPI void | embryo_program_vm_reset (Embryo_Program *ep) |
Resets the current virtual machine session of the given program. | |
EAPI void | embryo_program_vm_push (Embryo_Program *ep) |
Starts a new virtual machine session for the given program. | |
EAPI void | embryo_program_vm_pop (Embryo_Program *ep) |
Frees the current virtual machine session associated with the given program. | |
EAPI void | embryo_swap_16 (unsigned short *v) |
Ensures that the given unsigned short integer is in the small endian format. | |
EAPI void | embryo_swap_32 (unsigned int *v) |
Ensures that the given unsigned integer is in the small endian format. | |
EAPI Embryo_Function | embryo_program_function_find (Embryo_Program *ep, const char *name) |
Returns the function in the given program with the given name. | |
EAPI Embryo_Cell | embryo_program_variable_find (Embryo_Program *ep, const char *name) |
Retrieves the location of the public variable in the given program with the given name. | |
EAPI int | embryo_program_variable_count_get (Embryo_Program *ep) |
Retrieves the number of public variables in the given program. | |
EAPI Embryo_Cell | embryo_program_variable_get (Embryo_Program *ep, int num) |
Retrieves the location of the public variable in the given program with the given identifier. | |
EAPI void | embryo_program_error_set (Embryo_Program *ep, int error) |
Sets the error code for the given program to the given code. | |
EAPI int | embryo_program_error_get (Embryo_Program *ep) |
Retrieves the current error code for the given program. | |
EAPI void | embryo_program_data_set (Embryo_Program *ep, void *data) |
Sets the data associated to the given program. | |
EAPI void * | embryo_program_data_get (Embryo_Program *ep) |
Retrieves the data associated to the given program. | |
EAPI const char * | embryo_error_string_get (int error) |
Retrieves a string describing the given error code. | |
EAPI int | embryo_data_string_length_get (Embryo_Program *ep, Embryo_Cell *str_cell) |
Retrieves the length of the string starting at the given cell. | |
EAPI void | embryo_data_string_get (Embryo_Program *ep, Embryo_Cell *str_cell, char *dst) |
Copies the string starting at the given cell to the given buffer. | |
EAPI void | embryo_data_string_set (Embryo_Program *ep, const char *src, Embryo_Cell *str_cell) |
Copies string in the given buffer into the virtual machine memory starting at the given cell. | |
EAPI Embryo_Cell * | embryo_data_address_get (Embryo_Program *ep, Embryo_Cell addr) |
Retreives a pointer to the address in the virtual machine given by the given cell. | |
EAPI Embryo_Cell | embryo_data_heap_push (Embryo_Program *ep, int cells) |
Increases the size of the heap of the given virtual machine by the given number of Embryo_Cells. | |
EAPI void | embryo_data_heap_pop (Embryo_Program *ep, Embryo_Cell down_to) |
Decreases the size of the heap of the given virtual machine down to the given size. | |
EAPI int | embryo_program_recursion_get (Embryo_Program *ep) |
Returns the number of virtual machines are running for the given program. | |
EAPI int | embryo_program_run (Embryo_Program *ep, Embryo_Function func) |
Runs the given function of the given Embryo program in the current virtual machine. | |
EAPI Embryo_Cell | embryo_program_return_value_get (Embryo_Program *ep) |
Retreives the return value of the last called function of the given program. | |
EAPI void | embryo_program_max_cycle_run_set (Embryo_Program *ep, int max) |
Sets the maximum number of abstract machine cycles any given program run can execute before being put to sleep and returning. | |
EAPI int | embryo_program_max_cycle_run_get (Embryo_Program *ep) |
Retreives the maximum number of abstract machine cycles a program is allowed to run. | |
EAPI int | embryo_parameter_cell_push (Embryo_Program *ep, Embryo_Cell cell) |
Pushes an Embryo_Cell onto the function stack to use as a parameter for the next function that is called in the given program. | |
EAPI int | embryo_parameter_string_push (Embryo_Program *ep, const char *str) |
Pushes a string onto the function stack to use as a parameter for the next function that is called in the given program. | |
EAPI int | embryo_parameter_cell_array_push (Embryo_Program *ep, Embryo_Cell *cells, int num) |
Pushes an array of Embryo_Cells onto the function stack to be used as parameters for the next function that is called in the given program. |
Detailed Description
Embryo virtual machine library.This file includes the routines needed for Embryo library interaction. This is the only file you need to include.
Define Documentation
#define EMBRYO_FUNCTION_CONT -2 |
#define EMBRYO_FUNCTION_MAIN -1 |
Enumeration Type Documentation
anonymous enum |
- Enumerator: