Slashdot Mirror


Software Patents on Memory Allocators?

Emery Berger asks: "I'm a PhD. student at the University of Texas and the author of Hoard, an open source memory allocator for multiprocessors. After posting information about the latest pre-release to the Hoard mailing list, I received a cease-and-desist letter from Microquill, Inc., which markets memory management software, calling for me to stop distributing Hoard. They are claiming that my latest version of Hoard, which does DLL patching when running on Windows, infringes on their patent (which actually dynamically rewrites arbitrary executables). Because DLL patching is prior art and my technique is quite different from theirs, I think I'm in the clear. However, if anyone knows of systems from 1996 or earlier based on DLL patching (or any dynamic rewriting of a running executable), especially to change the memory allocator, that would really help."

1 of 21 comments (clear)

  1. SetFunction() from AmigaOS by Gadzinka · · Score: 3, Insightful
    It is a quote from AmigaOS exec.library autodocs:

    NAME

    SetFunction -- change a function vector in a library

    SYNOPSIS

    oldFunc = SetFunction(library, funcOffset, funcEntry)

    APTR SetFunction(struct Library *,LONG,APTR);

    FUNCTION

    SetFunction is a functional way of changing where vectors in a library point. They are changed in such a way that the checksumming process will never falsely declare a library to be invalid.

    WARNING

    If you use SetFunction on a function that can be called from interrupts, you are obligated to provide your own arbitration.

    NOTE

    SetFunction cannot be used on non-standard libraries like pre-V36 dos.library. Here you must manually Forbid(), preserve all 6 original bytes, set the new vector, SumLibrary(), then Permit().

    This function was heavily used and abused by the system programmers on AmigaOS (e.g. for transparent decompression of data) since its erlieast days, which is mid-eighties AFAIR.

    I believe it counts as prior art.

    Robert
    --
    Bastard Operator From 193.219.28.162