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.