Contents | < Browse | Browse >
e x e c . l i b r a r y SetFunction
__________________________________________________________________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
REPORT The function offset must be negative
SEVERITY Level 3
EXPLANATION You must provide a negative function offset!
DEADLY has no effect.
__________________________________________________________________________
REPORT Requested function does not exist
SEVERITY Level 3
EXPLANATION The library does not have a function with that offset. If
you want to patch functions which are only available in
later OS versions, you must make sure that you have the
right version number before applying the patch!
DEADLY has no effect.
__________________________________________________________________________
REPORT Your patch is called before SetFunction() returns
SEVERITY Level 2
EXPLANATION This is a lack of the AutoDocs, so be careful. If you use
the SetFunction()'s result to build a chain, you must not
patch CacheClearU() and SumLibrary() since SetFunction()
will call these function after writing the new vector, but
before returning to the client!
If there is no extra Forbid()/Disable(), you also must not
patch Supervisor() and Schedule()! (Like all private functions,
you shouldn't patch Schedule() anyhow!)
DEADLY has no effect.
__________________________________________________________________________
REPORT Forbid() missing
SEVERITY Level 2
EXPLANATION You should generally forbid the task scheduling when you
are about to patch the system. There is a slight probab-
ility that your patched function is called by another task
while you are still building up the chain.
If you are patching functions which can be called by
interrupts, make sure to also Disable() the system for
the time that your patch is not completed.
BTW: don't forget to clear the instruction cache when you
have finished the chaining.
DEADLY has no effect.