NAME
ndiscvt —
convert Windows® NDIS
drivers for use with NetBSD
SYNOPSIS
ndiscvt |
[-O]
[-i
inffile]
[-n
devname]
[-o
outfile] -s
sysfile |
DESCRIPTION
The
ndiscvt utility transforms a Windows® NDIS driver
into a data file which is used to build an ndis compatibility driver module.
Windows® drivers consist of two main parts: a
.SYS
file, which contains the actual driver executable code, and an
.INF file, which provides the Windows® installer with
device identifier information and a list of driver-specific registry keys. The
ndiscvt utility can convert these files into a header file
that is compiled into
if_ndis.c to create an object code
module that can be linked into the
NetBSD kernel.
The
.INF file is typically required since only it contains
device identification data such as PCI vendor and device IDs or PCMCIA
indentifier strings. The
.INF file may be optionally omitted
however, in which case the
ndiscvt utility will only perform
the conversion of the
.SYS file. This is useful for
debugging purposes only.
OPTIONS
The options are as follows:
-
-
- -i
inffile
- Open and parse the specified .INF file
when performing conversion. The ndiscvt utility will
parse this file and emit a device identification structure and registry
key configuration structures which will be used by the ndis driver and
ndisapi kernel subsystem. If this is omitted, ndiscvt
will emit a dummy configuration structure only.
-
-
- -n
devname
- Specify an alternate name for the network device/interface
which will be created when the driver is instantiated. If you need to load
more than one NDIS driver into your system (i.e., if you have two
different network cards in your system which require NDIS driver support),
each module you create must have a unique name. Device can not be larger
than
IFNAMSIZ
. If no name is specified, the driver
will use the default a default name
(“ndis
”).
-
-
- -O
- Generate both an ndis_driver_data.h file
and an ndis_driver.data.o file. The latter file will
contain a copy of the Windows® .SYS driver image
encoded as a NetBSD ELF object file (created with
objcopy(1)). Turning the
Windows® driver image directly into an object code file saves disk
space and compilation time.
-
-
- -o
outfile
- Specify the output file in which to place the resulting
data. This can be any file pathname. If outfile is a
single dash (‘-’), the data will be written
to the standard output. The if_ndis.c module expects to
find the driver data in a file called
ndis_driver_data.h, so it is recommended that this name
be used.
-
-
- -s
sysfile
- Open and parse the specified .SYS file.
This file must contain a Windows® driver image. The
ndiscvt utility will perform some manipulation of the
sections within the executable file to make runtime linking within the
kernel a little easier and then convert the image into a data array.
SEE ALSO
ld(1),
objcopy(1),
ndis(4)
HISTORY
The
ndiscvt utility first appeared in
FreeBSD
5.3.
AUTHORS
The
ndiscvt utility was written by
Bill
Paul
<
wpaul@windriver.com>.
The
lex(1) and
yacc(1) .INF
file parser was written by
Matthew Dodd
<
mdodd@FreeBSD.org>.