[Ericsson AB]

erl_ddll

MODULE

erl_ddll

MODULE SUMMARY

Dynamic Driver Loader and Linker

DESCRIPTION

The erl_ddll module can load and link a linked-in driver, if run-time loading and linking of shared objects, or dynamic libraries, is supported by the underlying operating system.

EXPORTS

load_driver(Path, Name) -> ok | {error, ErrorDesc}

Types:

Path = Name = string() | atom()
ErrorDesc = term()

Loads and links the dynamic driver Name. Path is a file path to the directory containing the driver. Name must be a sharable object/dynamic library. Two drivers with different Paths cannot be loaded under the same name. The number of dynamically loadable drivers is limited by the size of driver_tab in driver_tab.c.

unload_driver(Name) -> ok | {error, ErrorDesc}

Types:

Name = string() | atom()
Reason = term()

Unloads the dynamic driver Name. This will fail if any port programs are running the code that is being unloaded. Linked-in drivers cannot be unloaded. The process must previously have called load_driver/1 for the driver.

There is no guarantee that the memory where the driver was loaded is freed. This depends on the underlying operating system.

loaded_drivers() -> {ok, Drivers}

Types:

Drivers = [Driver()]
 Driver = string()

Returns a list of all the available drivers, both (statically) linked-in and dynamically loaded ones.

format_error(ErrorDesc) -> string()

Types:

ErrorDesc -- see below

Takes an ErrorDesc returned by load_driver/2 or unload_driver/1 and returns a string which describes the error or warning.

SEE ALSO

erl_driver(4), driver_entry(4)

AUTHORS

Jan-Erik Dahlin - support@erlang.ericsson.se
Jakob Cederlund - support@erlang.ericsson.se

kernel 2.11.2
Copyright © 1991-2006 Ericsson AB