%
% x-kernel v3.3
%
% Copyright (c) 1996,1993,1991,1990  Arizona Board of Regents
%

\subsection{ROM Files}\label{rom_files}

ROM files allow specification of runtime options for protocols and
various subsystems.  When a protocol instance or {\xk} subsystem
initializes, it typically scans a list of user-provided options in the
ROM file to see if it should adjust its default parameters for that
particular instantiation.  ROM options are used for a variety of
purposes, such as providing initial values for databases, specifying
numbers of network shepherd threads, and providing IP gateway
information.

Each ROM file entry consists of a single line.  The first field in
each line specifies the particular protocol or subsystem that should
interpret that line.  The rest of the fields are specific to that
particular protocol or subsystem.  Comments can be added following a
{\var \#}.  For example, given the following ROM file:

\begin{verbatim}
      #
      # Example ROM file
      #

      simeth port 1234

      arp 192.12.69.49 192.12.69.1 1234
      arp 192.12.69.45 192.12.69.1 9876

      prottbl /usr/xkernel/etc/prottbl.nonstd
\end{verbatim}

\noindent
the SIMETH protocol will interpret the first line, the ARP protocol
will interpret the second and third lines, and the protocol table
subsystem will interpret the last line.

The exact method for indicating where the {\xk} should find its ROM
files is specific to the individual platforms and is documented for
each platform in Section~\ref{config_examp}.

Protocols that provide ROM file configurable options will describe the
format of these options in their man pages in Appendix~\ref{prot_specs}.
