SourcePawn::IVirtualMachine Class Reference

#include <sp_vm_api.h>

List of all members.


Detailed Description

Outlines the interface a Virtual Machine (JIT) must expose.

Definition at line 532 of file sp_vm_api.h.

Public Member Functions

virtual unsigned int GetAPIVersion ()=0
 Returns the current API version.
virtual const char * GetVMName ()=0
 Returns the string name of a VM implementation.
virtual ICompilationStartCompilation (sp_plugin_t *plugin)=0
 Begins a new compilation.
virtual bool SetCompilationOption (ICompilation *co, const char *key, const char *val)=0
 Sets a compilation option.
virtual sp_context_tCompileToContext (ICompilation *co, int *err)=0
 Finalizes a compilation into a new sp_context_t. Note: This will free the ICompilation pointer.
virtual void AbortCompilation (ICompilation *co)=0
 Aborts a compilation and frees the ICompilation pointer.
virtual void FreeContext (sp_context_t *ctx)=0
 Frees any internal variable usage on a context.
virtual int ContextExecute (sp_context_t *ctx, uint32_t code_addr, cell_t *result)=0
 Calls the "execute" function on a context.
virtual bool FunctionLookup (const sp_context_t *ctx, uint32_t code_addr, unsigned int *result)=0
 Given a context and a code address, returns the index of the function.
virtual unsigned int FunctionCount (const sp_context_t *ctx)=0
 Returns the number of functions defined in the context.
virtual const char * GetVersionString ()=0
 Returns a version string.
virtual const char * GetCPUOptimizations ()=0
 Returns a string describing optimizations.


Member Function Documentation

virtual ICompilation* SourcePawn::IVirtualMachine::StartCompilation ( sp_plugin_t plugin  )  [pure virtual]

Begins a new compilation.

Parameters:
plugin Pointer to a plugin structure.
Returns:
New compilation pointer.

virtual bool SourcePawn::IVirtualMachine::SetCompilationOption ( ICompilation co,
const char *  key,
const char *  val 
) [pure virtual]

Sets a compilation option.

Parameters:
co Pointer to a compilation.
key Option key name.
val Option value string.
Returns:
True if option could be set, false otherwise.

virtual sp_context_t* SourcePawn::IVirtualMachine::CompileToContext ( ICompilation co,
int *  err 
) [pure virtual]

Finalizes a compilation into a new sp_context_t. Note: This will free the ICompilation pointer.

Parameters:
co Compilation pointer.
err Filled with error code on exit.
Returns:
New plugin context.

virtual void SourcePawn::IVirtualMachine::AbortCompilation ( ICompilation co  )  [pure virtual]

Aborts a compilation and frees the ICompilation pointer.

Parameters:
co Compilation pointer.

virtual void SourcePawn::IVirtualMachine::FreeContext ( sp_context_t ctx  )  [pure virtual]

Frees any internal variable usage on a context.

Parameters:
ctx Context structure pointer.

virtual int SourcePawn::IVirtualMachine::ContextExecute ( sp_context_t ctx,
uint32_t  code_addr,
cell_t *  result 
) [pure virtual]

Calls the "execute" function on a context.

Parameters:
ctx Executes a function in a context.
code_addr Index into the code section.
result Pointer to store result into.
Returns:
Error code (if any).

virtual bool SourcePawn::IVirtualMachine::FunctionLookup ( const sp_context_t ctx,
uint32_t  code_addr,
unsigned int *  result 
) [pure virtual]

Given a context and a code address, returns the index of the function.

Parameters:
ctx Context to search.
code_addr Index into the code section.
result Pointer to store result into.
Returns:
True if code index is valid, false otherwise.

virtual unsigned int SourcePawn::IVirtualMachine::FunctionCount ( const sp_context_t ctx  )  [pure virtual]

Returns the number of functions defined in the context.

Parameters:
ctx Context to search.
Returns:
Number of functions.

virtual const char* SourcePawn::IVirtualMachine::GetVersionString (  )  [pure virtual]

Returns a version string.

Returns:
Versioning string.

virtual const char* SourcePawn::IVirtualMachine::GetCPUOptimizations (  )  [pure virtual]

Returns a string describing optimizations.

Returns:
String describing CPU specific optimizations.


The documentation for this class was generated from the following file:
Generated on Thu Jan 4 13:34:37 2007 for SourcePawn JIT by  doxygen 1.5.1-p1