FTEQW
Documentation of the FTE engine source tree.
qvm.c File Reference

Typedefs

typedef enum vm_type_e vm_type_t
 
typedef struct vmHeader_s vmHeader_t
 
typedef struct qvm_s qvm_t
 
typedef enum qvm_op_e qvm_op_t
 

Enumerations

enum  vm_type_e { VM_NONE , VM_NATIVE , VM_BYTECODE , VM_BUILTIN }
 
enum  qvm_op_e {
  OP_UNDEF , OP_NOP , OP_BREAK , OP_ENTER ,
  OP_LEAVE , OP_CALL , OP_PUSH , OP_POP ,
  OP_CONST , OP_LOCAL , OP_JUMP , OP_EQ ,
  OP_NE , OP_LTI , OP_LEI , OP_GTI ,
  OP_GEI , OP_LTU , OP_LEU , OP_GTU ,
  OP_GEU , OP_EQF , OP_NEF , OP_LTF ,
  OP_LEF , OP_GTF , OP_GEF , OP_LOAD1 ,
  OP_LOAD2 , OP_LOAD4 , OP_STORE1 , OP_STORE2 ,
  OP_STORE4 , OP_ARG , OP_BLOCK_COPY , OP_SEX8 ,
  OP_SEX16 , OP_NEGI , OP_ADD , OP_SUB ,
  OP_DIVI , OP_DIVU , OP_MODI , OP_MODU ,
  OP_MULI , OP_MULU , OP_BAND , OP_BOR ,
  OP_BXOR , OP_BCOM , OP_LSH , OP_RSHI ,
  OP_RSHU , OP_NEGF , OP_ADDF , OP_SUBF ,
  OP_DIVF , OP_MULF , OP_CVIF , OP_CVFI
}
 

Functions

qboolean QVM_LoadDLL (vm_t *vm, const char *name, qboolean binroot, void **vmMain, sys_calldll_t syscall)
 
void QVM_UnloadDLL (dllhandle_t *handle)
 
qboolean QVM_LoadVM (vm_t *vm, const char *name, sys_callqvm_t syscall)
 
void QVM_UnLoadVM (qvm_t *qvm)
 
int QVM_ExecVM (qvm_t *qvm, int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
 
int QVM_ExecVM (register qvm_t *qvm, int command, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
 
void VM_PrintInfo (vm_t *vm)
 
const char * VM_GetFilename (vm_t *vm)
 
vm_tVM_CreateBuiltin (const char *name, sys_calldll_t syscalldll, qintptr_t(*init)(qintptr_t *args))
 
vm_tVM_Create (const char *dllname, sys_calldll_t syscalldll, const char *qvmname, sys_callqvm_t syscallqvm)
 
void VM_Destroy (vm_t *vm)
 
voidVM_MemoryBase (vm_t *vm)
 
quintptr_t VM_MemoryMask (vm_t *vm)
 
qboolean VM_NonNative (vm_t *vm)
 
qintptr_t VARGS VM_Call (vm_t *vm, qintptr_t instruction,...)
 

Typedef Documentation

◆ qvm_op_t

typedef enum qvm_op_e qvm_op_t

◆ qvm_t

typedef struct qvm_s qvm_t

◆ vm_type_t

typedef enum vm_type_e vm_type_t

◆ vmHeader_t

typedef struct vmHeader_s vmHeader_t

Enumeration Type Documentation

◆ qvm_op_e

enum qvm_op_e
Enumerator
OP_UNDEF 
OP_NOP 
OP_BREAK 
OP_ENTER 
OP_LEAVE 
OP_CALL 
OP_PUSH 
OP_POP 
OP_CONST 
OP_LOCAL 
OP_JUMP 
OP_EQ 
OP_NE 
OP_LTI 
OP_LEI 
OP_GTI 
OP_GEI 
OP_LTU 
OP_LEU 
OP_GTU 
OP_GEU 
OP_EQF 
OP_NEF 
OP_LTF 
OP_LEF 
OP_GTF 
OP_GEF 
OP_LOAD1 
OP_LOAD2 
OP_LOAD4 
OP_STORE1 
OP_STORE2 
OP_STORE4 
OP_ARG 
OP_BLOCK_COPY 
OP_SEX8 
OP_SEX16 
OP_NEGI 
OP_ADD 
OP_SUB 
OP_DIVI 
OP_DIVU 
OP_MODI 
OP_MODU 
OP_MULI 
OP_MULU 
OP_BAND 
OP_BOR 
OP_BXOR 
OP_BCOM 
OP_LSH 
OP_RSHI 
OP_RSHU 
OP_NEGF 
OP_ADDF 
OP_SUBF 
OP_DIVF 
OP_MULF 
OP_CVIF 
OP_CVFI 

◆ vm_type_e

enum vm_type_e
Enumerator
VM_NONE 
VM_NATIVE 
VM_BYTECODE 
VM_BUILTIN 

Function Documentation

◆ QVM_ExecVM() [1/2]

int QVM_ExecVM ( qvm_t qvm,
int  command,
int  arg0,
int  arg1,
int  arg2,
int  arg3,
int  arg4,
int  arg5,
int  arg6,
int  arg7 
)

◆ QVM_ExecVM() [2/2]

int QVM_ExecVM ( register qvm_t qvm,
int  command,
int  arg0,
int  arg1,
int  arg2,
int  arg3,
int  arg4,
int  arg5,
int  arg6,
int  arg7 
)

◆ QVM_LoadDLL()

qboolean QVM_LoadDLL ( vm_t vm,
const char *  name,
qboolean  binroot,
void **  vmMain,
sys_calldll_t  syscall 
)

◆ QVM_LoadVM()

qboolean QVM_LoadVM ( vm_t vm,
const char *  name,
sys_callqvm_t  syscall 
)

◆ QVM_UnloadDLL()

void QVM_UnloadDLL ( dllhandle_t *  handle)

◆ QVM_UnLoadVM()

void QVM_UnLoadVM ( qvm_t qvm)

◆ VM_Call()

qintptr_t VARGS VM_Call ( vm_t vm,
qintptr_t  instruction,
  ... 
)

◆ VM_Create()

vm_t * VM_Create ( const char *  dllname,
sys_calldll_t  syscalldll,
const char *  qvmname,
sys_callqvm_t  syscallqvm 
)

◆ VM_CreateBuiltin()

vm_t * VM_CreateBuiltin ( const char *  name,
sys_calldll_t  syscalldll,
qintptr_t(*)(qintptr_t *args)  init 
)

◆ VM_Destroy()

void VM_Destroy ( vm_t vm)

◆ VM_GetFilename()

const char * VM_GetFilename ( vm_t vm)

◆ VM_MemoryBase()

void * VM_MemoryBase ( vm_t vm)

◆ VM_MemoryMask()

quintptr_t VM_MemoryMask ( vm_t vm)

◆ VM_NonNative()

qboolean VM_NonNative ( vm_t vm)

◆ VM_PrintInfo()

void VM_PrintInfo ( vm_t vm)