NAME ^

src/pmc/nci.pmc - Native Call Interface

DESCRIPTION ^

The vtable functions for the native C call functions.

Invoking an NCI function changes some registers according to PDD 3.

The caller has to preserve registers if needed.

Methods ^

METHOD PMC *get_multisig()

Return the MMD signature PMC, if any or a Null PMC.

METHOD PMC *set_raw_nci_ptr(void *func)

Sets the specified function pointer and raw flag.

void init()

Initializes the NCI with a NULL function pointer.

void set_pointer_keyed_str(STRING *key, void *func)

Sets the specified function pointer and signature (*key).

void destroy()

Destroys the NCI, freeing any allocated memory.

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.

SEE ALSO ^

docs/pdds/pdd03_calling_conventions.pod.

HISTORY ^

Initial revision by sean 2002/08/04.


parrot