In fact, there were many cases for which this worked. Patch nesting was
supported directly by SetFunction(), which returned address to jump on, when
your patch is finished. Everithing worked pretty well, if patches were
written carefully (i.e. they left input and output to/from function legal).
The only problem was with removing patches. This is also what was managers
used for. Some of them patched SetPatch() by the way :-)
As a result, I see this approach best of all possible. It is very dangerous
to scan binary code and replace one code (or part of it) with another, as
you are never sure, that this is really this instruction. Even if it works
now, it will not work forever....
> So the end result is that if you have >1 bug fix patch you'd need
> to reboot
> anyway, nullifying the reason for the whole mechanism.
This is not really true. Of course there are problems with poorly written
patches, but it is possible to chain them.
> I'm aware that there were some 'managers' that handled patch
> nesting better
> the default, but I never saw a perfect one in the many years that
> I used an
That's because none of them was wide standard, so not all patches supported
them (which was usually necessary). If they would exist from the beginning
of Amiga, things would be different (slightly :-)
> (The machine may be a memory, but the OS lives on in my mind :-)
I undertand it very well. Real hackers OS. We will never more have such a
toy to play with.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
Please read the FAQ at http://www.tux.org/lkml/