DYNLD(3)                                                 DYNLD(3)

     NAME
          dynld - load kernel module dynamically

     SYNOPSIS
          bind -a #L /dev

          /dev/dynld
          /dev/dynsyms

     DESCRIPTION
          Dynld serves a directory containing two files that control
          dynamic loading of modules.  When a module is loaded,
          dynld(10.2)), checks the module's type against a type pro-
          vided by the driver; the types must match.  Currently the
          only supported module type is that of a device driver, Dev
          defined in dev(10.2)).

          The control file dynld can only be opened by the host owner
          (see eve(10.2)). It accepts the following commands:

          load dev name file [ [ tag ] dep ... ]
               Load a module for device driver name from the given
               file. The optional tag is typically the MD5 or SHA1
               hash of the file's contents, to identify a particular
               version of the driver.

          unload dev name [ file [ tag ] ]
               Unload the device driver identified by the given name,
               optionally qualified by the other parameters.

          When read, dynld returns a list of the currently-loaded
          drivers, one per line, most recent first.  Each line con-
          tain: the module's device type #x used in bind(1); its ker-
          nel address; its total text and data size in bytes; its name
          when loaded; the name of the file from which it was loaded;
          and its tag.

          Dynsyms is a read-only text file that lists, one per line,
          the symbols exported by the running kernel for use by mod-
          ules it loads.  Each line contains: the symbol's kernel
          address, its type signature, and its name.

     SOURCE
          /os/port/devdynld.c

     SEE ALSO
          dynld(10.2), a.out(10.6),

     BUGS
          Dynld does not currently check that a driver is no longer in

     DYNLD(3)                                                 DYNLD(3)

          use before unloading it.