NDISCVT(8)            NetBSD/i386 System Manager's Manual           NDISCVT(8)

NAME
     ndiscvt -- convert Windows(R) NDIS drivers for use with NetBSD

SYNOPSIS
     ndiscvt [-O] [-i inffile] [-n devname] [-o outfile] -s sysfile

DESCRIPTION
     The ndiscvt utility transforms a Windows(R) NDIS driver into a data file
     which is used to build an ndis compatibility driver module.  Windows(R)
     drivers consist of two main parts: a .SYS file, which contains the actual
     driver executable code, and an .INF file, which provides the Windows(R)
     installer with device identifier information and a list of driver-spe-
     cific 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 mod-
     ule that can be linked into the NetBSD kernel.

     The .INF file is typically required since only it contains device identi-
     fication 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 perform-
                          ing 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 subsys-
                          tem.  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 con-
                          tain a copy of the Windows(R) .SYS driver image
                          encoded as a NetBSD ELF object file (created with
                          objcopy(1)).  Turning the Windows(R) 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 mod-
                          ule 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(R) driver image.  The ndiscvt
                          utility will perform some manipulation of the sec-
                          tions 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>.

NetBSD 5.0_STABLE              December 24, 2007             NetBSD 5.0_STABLE
