[PATCH] interceptors-0.3, kernel 2.3.8

Alexander Maryanchick (Sasha@GDev.msk.ru)
Wed, 23 Jun 1999 22:10:26 +0400


--=====================_5763469==_
Content-Type: text/plain; charset="us-ascii"; format=flowed

It's very difficult to extend kernel functionality
without recompiling. "Interceptors" can help :-).

description:
_SAFE_ way to intercept kernel events.
Two exported functions:
previous = register_interceptor( handler, type );
unregister_interceptor( handler, type );
Currently supported operations to intercept:
character device
block device (in this version file operations only)
system calls
Goals:
simple STREAMS replacement (with almost ZERO performance loss!)
provides new functionality for modules.
some existing patches may now be distributed as modules.
Tested:
Slightly, on i386 only.
The patch is against 2.3.8.

Best regards.

Alexander.
--=====================_5763469==_
Content-Type: application/octet-stream; name="intercept.patch.gz";
x-mac-type="477A6970"; x-mac-creator="477A6970"
Content-Transfer-Encoding: x-uuencode
Content-Disposition: attachment; filename="intercept.patch.gz"

begin 600 intercept.patch.gz
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
!````
`
end

--=====================_5763469==_--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/