Skip to content

Commit

Permalink
renamed factorvm to factor_vm
Browse files Browse the repository at this point in the history
  • Loading branch information
phildawes committed Sep 24, 2009
1 parent 0022f5c commit 1c5329c
Show file tree
Hide file tree
Showing 52 changed files with 667 additions and 666 deletions.
48 changes: 24 additions & 24 deletions vm/alien.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace factor

/* gets the address of an object representing a C pointer, with the
intention of storing the pointer across code which may potentially GC. */
char *factorvm::pinned_alien_offset(cell obj)
char *factor_vm::pinned_alien_offset(cell obj)
{
switch(tagged<object>(obj).type())
{
Expand All @@ -25,7 +25,7 @@ char *factorvm::pinned_alien_offset(cell obj)
}

/* make an alien */
cell factorvm::allot_alien(cell delegate_, cell displacement)
cell factor_vm::allot_alien(cell delegate_, cell displacement)
{
gc_root<object> delegate(delegate_,this);
gc_root<alien> new_alien(allot<alien>(sizeof(alien)),this);
Expand All @@ -46,7 +46,7 @@ cell factorvm::allot_alien(cell delegate_, cell displacement)
}

/* make an alien pointing at an offset of another alien */
inline void factorvm::primitive_displaced_alien()
inline void factor_vm::primitive_displaced_alien()
{
cell alien = dpop();
cell displacement = to_cell(dpop());
Expand Down Expand Up @@ -76,7 +76,7 @@ PRIMITIVE(displaced_alien)

/* address of an object representing a C pointer. Explicitly throw an error
if the object is a byte array, as a sanity check. */
inline void factorvm::primitive_alien_address()
inline void factor_vm::primitive_alien_address()
{
box_unsigned_cell((cell)pinned_alien_offset(dpop()));
}
Expand All @@ -87,7 +87,7 @@ PRIMITIVE(alien_address)
}

/* pop ( alien n ) from datastack, return alien's address plus n */
void *factorvm::alien_pointer()
void *factor_vm::alien_pointer()
{
fixnum offset = to_fixnum(dpop());
return unbox_alien() + offset;
Expand Down Expand Up @@ -121,7 +121,7 @@ DEFINE_ALIEN_ACCESSOR(double,double,box_double,to_double)
DEFINE_ALIEN_ACCESSOR(cell,void *,box_alien,pinned_alien_offset)

/* open a native library and push a handle */
inline void factorvm::primitive_dlopen()
inline void factor_vm::primitive_dlopen()
{
gc_root<byte_array> path(dpop(),this);
path.untag_check(this);
Expand All @@ -137,7 +137,7 @@ PRIMITIVE(dlopen)
}

/* look up a symbol in a native library */
inline void factorvm::primitive_dlsym()
inline void factor_vm::primitive_dlsym()
{
gc_root<object> library(dpop(),this);
gc_root<byte_array> name(dpop(),this);
Expand All @@ -164,7 +164,7 @@ PRIMITIVE(dlsym)
}

/* close a native library handle */
inline void factorvm::primitive_dlclose()
inline void factor_vm::primitive_dlclose()
{
dll *d = untag_check<dll>(dpop());
if(d->dll != NULL)
Expand All @@ -176,7 +176,7 @@ PRIMITIVE(dlclose)
PRIMITIVE_GETVM()->primitive_dlclose();
}

inline void factorvm::primitive_dll_validp()
inline void factor_vm::primitive_dll_validp()
{
cell library = dpop();
if(library == F)
Expand All @@ -191,7 +191,7 @@ PRIMITIVE(dll_validp)
}

/* gets the address of an object representing a C pointer */
char *factorvm::alien_offset(cell obj)
char *factor_vm::alien_offset(cell obj)
{
switch(tagged<object>(obj).type())
{
Expand All @@ -212,82 +212,82 @@ char *factorvm::alien_offset(cell obj)
}
}

VM_C_API char *alien_offset(cell obj, factorvm *myvm)
VM_C_API char *alien_offset(cell obj, factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->alien_offset(obj);
}

/* pop an object representing a C pointer */
char *factorvm::unbox_alien()
char *factor_vm::unbox_alien()
{
return alien_offset(dpop());
}

VM_C_API char *unbox_alien(factorvm *myvm)
VM_C_API char *unbox_alien(factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->unbox_alien();
}

/* make an alien and push */
void factorvm::box_alien(void *ptr)
void factor_vm::box_alien(void *ptr)
{
if(ptr == NULL)
dpush(F);
else
dpush(allot_alien(F,(cell)ptr));
}

VM_C_API void box_alien(void *ptr, factorvm *myvm)
VM_C_API void box_alien(void *ptr, factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->box_alien(ptr);
}

/* for FFI calls passing structs by value */
void factorvm::to_value_struct(cell src, void *dest, cell size)
void factor_vm::to_value_struct(cell src, void *dest, cell size)
{
memcpy(dest,alien_offset(src),size);
}

VM_C_API void to_value_struct(cell src, void *dest, cell size, factorvm *myvm)
VM_C_API void to_value_struct(cell src, void *dest, cell size, factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->to_value_struct(src,dest,size);
}

/* for FFI callbacks receiving structs by value */
void factorvm::box_value_struct(void *src, cell size)
void factor_vm::box_value_struct(void *src, cell size)
{
byte_array *bytes = allot_byte_array(size);
memcpy(bytes->data<void>(),src,size);
dpush(tag<byte_array>(bytes));
}

VM_C_API void box_value_struct(void *src, cell size,factorvm *myvm)
VM_C_API void box_value_struct(void *src, cell size,factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->box_value_struct(src,size);
}

/* On some x86 OSes, structs <= 8 bytes are returned in registers. */
void factorvm::box_small_struct(cell x, cell y, cell size)
void factor_vm::box_small_struct(cell x, cell y, cell size)
{
cell data[2];
data[0] = x;
data[1] = y;
box_value_struct(data,size);
}

VM_C_API void box_small_struct(cell x, cell y, cell size, factorvm *myvm)
VM_C_API void box_small_struct(cell x, cell y, cell size, factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->box_small_struct(x,y,size);
}

/* On OS X/PPC, complex numbers are returned in registers. */
void factorvm::box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size)
void factor_vm::box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size)
{
cell data[4];
data[0] = x1;
Expand All @@ -297,13 +297,13 @@ void factorvm::box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size)
box_value_struct(data,size);
}

VM_C_API void box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size, factorvm *myvm)
VM_C_API void box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size, factor_vm *myvm)
{
ASSERTVM();
return VM_PTR->box_medium_struct(x1, x2, x3, x4, size);
}

inline void factorvm::primitive_vm_ptr()
inline void factor_vm::primitive_vm_ptr()
{
box_alien(this);
}
Expand Down
14 changes: 7 additions & 7 deletions vm/alien.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ PRIMITIVE(dll_validp);

PRIMITIVE(vm_ptr);

VM_C_API char *alien_offset(cell object, factorvm *vm);
VM_C_API char *unbox_alien(factorvm *vm);
VM_C_API void box_alien(void *ptr, factorvm *vm);
VM_C_API void to_value_struct(cell src, void *dest, cell size, factorvm *vm);
VM_C_API void box_value_struct(void *src, cell size,factorvm *vm);
VM_C_API void box_small_struct(cell x, cell y, cell size,factorvm *vm);
VM_C_API void box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size,factorvm *vm);
VM_C_API char *alien_offset(cell object, factor_vm *vm);
VM_C_API char *unbox_alien(factor_vm *vm);
VM_C_API void box_alien(void *ptr, factor_vm *vm);
VM_C_API void to_value_struct(cell src, void *dest, cell size, factor_vm *vm);
VM_C_API void box_value_struct(void *src, cell size,factor_vm *vm);
VM_C_API void box_small_struct(cell x, cell y, cell size,factor_vm *vm);
VM_C_API void box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size,factor_vm *vm);

}
16 changes: 8 additions & 8 deletions vm/arrays.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace factor
{

/* make a new array with an initial element */
array *factorvm::allot_array(cell capacity, cell fill_)
array *factor_vm::allot_array(cell capacity, cell fill_)
{
gc_root<object> fill(fill_,this);
gc_root<array> new_array(allot_array_internal<array>(capacity),this);
Expand All @@ -24,7 +24,7 @@ array *factorvm::allot_array(cell capacity, cell fill_)
}

/* push a new array on the stack */
inline void factorvm::primitive_array()
inline void factor_vm::primitive_array()
{
cell initial = dpop();
cell size = unbox_array_size();
Expand All @@ -36,15 +36,15 @@ PRIMITIVE(array)
PRIMITIVE_GETVM()->primitive_array();
}

cell factorvm::allot_array_1(cell obj_)
cell factor_vm::allot_array_1(cell obj_)
{
gc_root<object> obj(obj_,this);
gc_root<array> a(allot_array_internal<array>(1),this);
set_array_nth(a.untagged(),0,obj.value());
return a.value();
}

cell factorvm::allot_array_2(cell v1_, cell v2_)
cell factor_vm::allot_array_2(cell v1_, cell v2_)
{
gc_root<object> v1(v1_,this);
gc_root<object> v2(v2_,this);
Expand All @@ -54,7 +54,7 @@ cell factorvm::allot_array_2(cell v1_, cell v2_)
return a.value();
}

cell factorvm::allot_array_4(cell v1_, cell v2_, cell v3_, cell v4_)
cell factor_vm::allot_array_4(cell v1_, cell v2_, cell v3_, cell v4_)
{
gc_root<object> v1(v1_,this);
gc_root<object> v2(v2_,this);
Expand All @@ -68,7 +68,7 @@ cell factorvm::allot_array_4(cell v1_, cell v2_, cell v3_, cell v4_)
return a.value();
}

inline void factorvm::primitive_resize_array()
inline void factor_vm::primitive_resize_array()
{
array* a = untag_check<array>(dpop());
cell capacity = unbox_array_size();
Expand All @@ -82,7 +82,7 @@ PRIMITIVE(resize_array)

void growable_array::add(cell elt_)
{
factorvm* myvm = elements.myvm;
factor_vm* myvm = elements.myvm;
gc_root<object> elt(elt_,myvm);
if(count == array_capacity(elements.untagged()))
elements = myvm->reallot_array(elements.untagged(),count * 2);
Expand All @@ -92,7 +92,7 @@ void growable_array::add(cell elt_)

void growable_array::trim()
{
factorvm *myvm = elements.myvm;
factor_vm *myvm = elements.myvm;
elements = myvm->reallot_array(elements.untagged(),count);
}

Expand Down
Loading

0 comments on commit 1c5329c

Please sign in to comment.