96 lines
3.7 KiB
Plaintext
96 lines
3.7 KiB
Plaintext
|
#
|
||
|
# Copyright (c) 1993 Terrence R. Lambert.
|
||
|
# All rights reserved.
|
||
|
#
|
||
|
# Redistribution and use in source and binary forms, with or without
|
||
|
# modification, are permitted provided that the following conditions
|
||
|
# are met:
|
||
|
# 1. Redistributions of source code must retain the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer.
|
||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer in the
|
||
|
# documentation and/or other materials provided with the distribution.
|
||
|
# 3. All advertising materials mentioning features or use of this software
|
||
|
# must display the following acknowledgement:
|
||
|
# This product includes software developed by Terrence R. Lambert.
|
||
|
# 4. The name Terrence R. Lambert may not be used to endorse or promote
|
||
|
# products derived from this software without specific prior written
|
||
|
# permission.
|
||
|
#
|
||
|
# THIS SOFTWARE IS PROVIDED BY TERRENCE R. LAMBERT ``AS IS'' AND ANY
|
||
|
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE TERRENCE R. LAMBERT BE LIABLE
|
||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||
|
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||
|
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
# SUCH DAMAGE.
|
||
|
#
|
||
|
# $NetBSD: README,v 1.1 2000/12/11 13:48:12 jdolecek Exp $
|
||
|
#
|
||
|
|
||
|
1.0 Overview
|
||
|
|
||
|
This is the README file for the sample loaded system call.
|
||
|
|
||
|
|
||
|
2.0 Directions
|
||
|
|
||
|
To test the module, do the following:
|
||
|
|
||
|
make load
|
||
|
|
||
|
A load message (the copyright) will be printed on the console.
|
||
|
|
||
|
cd test
|
||
|
make load
|
||
|
|
||
|
The system call prints a message on the console when called.
|
||
|
This message will be printed when running "make load" in
|
||
|
the "test" subdirectory.
|
||
|
|
||
|
|
||
|
3.0 Recovering resources
|
||
|
|
||
|
The system call consumes 8 pages of memory when loaded; it
|
||
|
can be freed up by unloading it. To unload it, type the
|
||
|
following from the directory this file is in:
|
||
|
|
||
|
cd module
|
||
|
make unload
|
||
|
|
||
|
The system call will be unloaded by name.
|
||
|
|
||
|
4.0 System call modules
|
||
|
|
||
|
System calls as loadable modules use one of two approaches.
|
||
|
|
||
|
If the system call slot is unspecified (-1), it will attempt
|
||
|
to locate (and allocate) the next free call slot that points
|
||
|
to the address of the "lkmnosys" function (an alias for the
|
||
|
"nosys" function). It replaces this with the user's call;
|
||
|
the user can tell which slot was allocated using the "modstat"
|
||
|
command (the call slot is indicated by the value of "Off").
|
||
|
|
||
|
If the system call slot is specified, it will replace that
|
||
|
specific call (assuming it is in range of the entries in the
|
||
|
sysent[] table). Care should be taken when replacing system
|
||
|
calls. Good candiates are calls which the user is attempting
|
||
|
to repair or make POSIX compliant. It is possible to replace
|
||
|
all calls, although care should be taken with the "ioctl()"
|
||
|
call, as it is the interface for the lkm loader.
|
||
|
|
||
|
When unloaded, the system call module replaces the previous
|
||
|
contents of the call slot it was loaded in. If this was an
|
||
|
allocable slot, it is now reallocable; if it was a particular
|
||
|
call slot, the previous function is restored.
|
||
|
|
||
|
The directory ./sample/syscall contains a sample implementation
|
||
|
of a loadable system call.
|
||
|
|
||
|
|
||
|
5.0 END OF DOCUMENT
|