| M E M _ A L L O C J U M P T A B L E ( )
| | | | | SOURCE: qdev_autodocs.txt 1.163 (12/09/2014) English AMIGA - MEM_#?
----------------------------------------------------------------------------
NAME
mem_allocjumptable() - Allocates new jump table for
use with LBS.
SYNOPSIS
jtab = mem_allocjumptable(slots, flags);
struct Library **mem_allocjumptable(LONG, LONG);
FUNCTION
With this function it is possible to allocate fresh
jump table so it can be used (after preparation) in
a program in place of main jump table of a certain
OS library.
INPUTS
slots - Size of table expressed in number of slots.
A single slot is 6 bytes wide. Public funcs
start at slot 5 (30th byte). Passing 0-4
will return jump table that has 4 slots.
flags - Allocate/import flags. At the time of alloc
it is possible to tell how source jump tab.
should be imported. By default (if 0) calls
will be QDEV_MEM_LBS_FRELCALL.
RETURNS
Returns ptr to another pointer that references jump
table or NULL if there is not enough memory.
BASES
SysBase
NOTES
Do not use 'SetFunction()' on this very jump table!
There are special functions to alter its contents.
Local jump tables also allocate call tables! These
are slots that contain methods reponsible for func
calls.
Some words on flags. With QDEV_MEM_LBS_FRELCALL the
call table will reference offsets. This means that
if someone does 'SetFunction()' on a real base (the
source) this jump table will resolve swapped func.
With QDEV_MEM_LBS_FABSCALL jump table gets imported
with offsets being already resolved/cached. Thusly
changes to source library base will not be visible.
SEE ALSO
mem_freejumptable(), mem_swapjumptable(),
mem_importjumptable(), mem_filljumptable(),
mem_setdatajtslot(), mem_setaddrjtslot(),
mem_addrfrombase()
EXAMPLE
None.
BUGS
None known.
----------------------------------------------------------------------------
| |
| |