👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

Linux 2.6 - man page for erl_prim_loader (linux section 3erl)

erl_prim_loader(3erl)		     Erlang Module Definition		    erl_prim_loader(3erl)

NAME
       erl_prim_loader - Low Level Erlang Loader

DESCRIPTION
       erl_prim_loader	is  used  to load all Erlang modules into the system. The start script is
       also fetched with this low level loader.

       erl_prim_loader knows about the environment and how to fetch modules.  The  loader  could,
       for  example,  fetch files using the file system (with absolute file names as input), or a
       database (where the binary format of a module is stored).

       The -loader Loader command line flag can  be  used  to  choose  the  method  used  by  the
       erl_prim_loader . Two Loader methods are supported by the Erlang runtime system: efile and
       inet . If another loader is required, then it has to  be  implemented  by  the  user.  The
       Loader  provided  by  the  user must fulfill the protocol defined below, and it is started
       with the erl_prim_loader by evaluating open_port({spawn,Loader},[binary]) .

   Warning:
       The support for loading of code from archive files is experimental. The	sole  purpose  of
       releasing  it  before it is ready is to obtain early feedback. The file format, semantics,
       interfaces etc. may  be	changed  in  a	future	release.  The  functions  list_dir/1  and
       read_file_info/1 as well as the flag -loader_debug are also experimental

EXPORTS
       start(Id, Loader, Hosts) -> {ok, Pid} | {error, What}

	      Types  Id = term()
		     Loader = atom() | string()
		     Hosts = [Host]
		     Host = atom()
		     Pid = pid()
		     What = term()

	      Starts  the  Erlang  low	level loader. This function is called by the init process
	      (and module). The init process reads the command line flags -id Id , -loader Loader
	      , and -hosts Hosts . These are the arguments supplied to the start/3 function.

	      If -loader is not given, the default loader is efile which tells the system to read
	      from the file system.

	      If -loader is inet , the -id Id , -hosts Hosts , and -setcookie Cookie  flags  must
	      also  be	supplied.  Hosts identifies hosts which this node can contact in order to
	      load modules. One Erlang runtime system with  a  erl_boot_server	process  must  be
	      started  on  each  of  hosts  given  in  Hosts in order to answer the requests. See
	      erl_boot_server(3erl) .

	      If -loader is something else, the given port program is started. The  port  program
	      is supposed to follow the protocol specified below.

       get_file(Filename) -> {ok, Bin, FullName} | error

	      Types  Filename = string()
		     Bin = binary()
		     FullName = string()

	      This  function  fetches  a  file	using the low level loader. Filename is either an
	      absolute file name or just the name of the file, for example "lists.beam" .  If  an
	      internal	path  is set to the loader, this path is used to find the file. If a user
	      supplied loader is used, the path can be stripped off if it is  obsolete,  and  the
	      loader  does not use a path. FullName is the complete name of the fetched file. Bin
	      is the contents of the file as a binary.

	      The Filename can also be a file  in  an  archive.  For  example  /otp/root/lib/mne-
	      sia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia_backup.beam   See  code(3erl)  about  archive
	      files.

       get_path() -> {ok, Path}

	      Types  Path = [Dir]
		     Dir = string()

	      This function gets the path set in the loader. The path is set by the init  process
	      according to information found in the start script.

       list_dir(Dir) -> {ok, Filenames} | error

	      Types  Dir = name()
		     Filenames = [Filename]
		     Filename = string()

	      Lists  all  the files in a directory. Returns {ok, Filenames} if successful. Other-
	      wise, it returns error . Filenames is a list of the names of all the files  in  the
	      directory. The names are not sorted.

	      The  Dir	can  also  be  a  directory in an archive. For example /otp/root/lib/mne-
	      sia-4.4.7.ez/mnesia-4.4.7/ebin See code(3erl) about archive files.

       read_file_info(Filename) -> {ok, FileInfo} | error

	      Types  Filename = name()
		     FileInfo = #file_info{}

	      Retrieves information about a file. Returns {ok, FileInfo} if successful, otherwise
	      error  .	FileInfo  is  a  record  file_info  ,  defined in the Kernel include file
	      file.hrl . Include the following directive in the module from which the function is
	      called:

	      -include_lib("kernel/include/file.hrl").

	      See file(3erl) for more info about the record file_info .

	      The  Filename  can  also	be  a  file in an archive. For example /otp/root/lib/mne-
	      sia-4.4.7.ez/mnesia-4.4.7/ebin/mnesia_backup.beam  See  code(3erl)  about   archive
	      files.

       set_path(Path) -> ok

	      Types  Path = [Dir]
		     Dir = string()

	      This  function sets the path of the loader if init interprets a path command in the
	      start script.

PROTOCOL
       The following protocol must be followed if a user provided loader port  program	is  used.
       The  Loader  port program is started with the command open_port({spawn,Loader},[binary]) .
       The protocol is as follows:

       Function 	 Send		    Receive
       -------------------------------------------------------------
       get_file 	 [102 | FileName]   [121 | BinaryFile] (on success)
					    [122]	       (failure)

       stop		 eof		    terminate

COMMAND LINE FLAGS
       The erl_prim_loader module interprets the following command line flags:

	 -loader Loader :
	   Specifies the name of the loader used by erl_prim_loader . Loader can  be  efile  (use
	   the	local  file system), or inet (load using the boot_server on another Erlang node).
	   If Loader is user defined, the defined Loader port program is started.

	   If the -loader flag is omitted, it defaults to efile .

	 -loader_debug :
	   Makes the efile loader write some debug information, such as the reason for	failures,
	   while it handles files.

	 -hosts Hosts :
	   Specifies  which other Erlang nodes the inet loader can use. This flag is mandatory if
	   the -loader inet flag is present. On each host, there must be on Erlang node with  the
	   erl_boot_server  which  handles  the  load  requests.  Hosts is a list of IP addresses
	   (hostnames are not acceptable).

	 -id Id :
	   Specifies the identity of the Erlang runtime system. If the system runs as a  distrib-
	   uted  node, Id must be identical to the name supplied with the -sname or -name distri-
	   bution flags.

	 -setcookie Cookie :
	   Specifies the cookie of the Erlang runtime system.  This  flag  is  mandatory  if  the
	   -loader inet flag is present.

SEE ALSO
       init(3erl) , erl_boot_server(3erl)

Ericsson AB				    erts 5.8.3			    erl_prim_loader(3erl)


All times are GMT -4. The time now is 03:58 AM.



All times are GMT -4. The time now is 03:58 AM.

Unix & Linux Forums Content CopyrightŠ1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password