src/pmc/nci.pmc - NCI PMC


The vtable functions for the Native Call Interface, to call native C functions.


static nci_thunk_t build_func(PARROT_INTERP, PMC *obj, Parrot_NCI_attributes *nci)
Actually build the NCI thunk.
METHOD get_multisig()
Return the MMD signature PMC, if any or PMCNULL.
void init()
Initializes the NCI with a NULL function pointer.
void set_pmc_keyed(PMC *key, PMC *p)
void set_pmc_keyed_str(STRING *key, PMC *p)
Call the equivalent set_pointer* function.
void set_pointer_keyed(PMC *key, void *func)
Sets the specified function pointer and signature (*key).
void set_pointer_keyed_str(STRING *key, void *func)
Sets the specified function pointer and siganture as described in the string key.
void mark()
Mark any referenced strings and PMCs.
PMC *clone()
Creates and returns a clone of the NCI.
INTVAL defined()
Returns whether the NCI is defined.
opcode_t *invoke(void *next)
Calls the associated C function, returning *next. If the invocant is a class, the PMC arguments are shifted down.
INTVAL get_integer()
Returns the function pointer as an integer.
INTVAL get_bool()
Returns the boolean value of the pointer.
METHOD arity()
Return the arity of the NCI (the number of arguments).