\hypertarget{LCFG_8h}{
\section{LCFG.h File Reference}
\label{LCFG_8h}\index{LCFG.h@{LCFG.h}}
}
Public definitions for the LAT configuration system (LCFG).  


{\tt \#include $<$RIM/RIM.h$>$}\par
\subsection*{Classes}
\begin{CompactItemize}
\item 
struct \hyperlink{struct__LCFG__hsk}{\_\-LCFG\_\-hsk}
\begin{CompactList}\small\item\em Structure to hold LCFG housekeeping information. \item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{LCFG_8h_4730f6a0720be61454684e391bfe4847}{
typedef enum \hyperlink{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0}{\_\-LCFG\_\-source} \hyperlink{LCFG_8h_4730f6a0720be61454684e391bfe4847}{LCFG\_\-source}}
\label{LCFG_8h_4730f6a0720be61454684e391bfe4847}

\begin{CompactList}\small\item\em Identifiers for callers of configure and verify. \item\end{CompactList}\item 
\hypertarget{LCFG_8h_8ddf10c7c5d668c9c28aaabe74278cd0}{
typedef RIM\_\-type \hyperlink{LCFG_8h_8ddf10c7c5d668c9c28aaabe74278cd0}{LCFG\_\-type}}
\label{LCFG_8h_8ddf10c7c5d668c9c28aaabe74278cd0}

\begin{CompactList}\small\item\em Type used to identify components (TEM, TFE etc). \item\end{CompactList}\item 
\hypertarget{LCFG_8h_6a6aa42f86139bc67cca7ce9d6dba08f}{
typedef RIM\_\-addr \hyperlink{LCFG_8h_6a6aa42f86139bc67cca7ce9d6dba08f}{LCFG\_\-addr}}
\label{LCFG_8h_6a6aa42f86139bc67cca7ce9d6dba08f}

\begin{CompactList}\small\item\em Type used to define an address. \item\end{CompactList}\item 
\hypertarget{LCFG_8h_ec0d4bbbf9171f884bdec2f5a9b92b7d}{
typedef struct \hyperlink{struct__LCFG__hsk}{\_\-LCFG\_\-hsk} \hyperlink{LCFG_8h_ec0d4bbbf9171f884bdec2f5a9b92b7d}{LCFG\_\-hsk}}
\label{LCFG_8h_ec0d4bbbf9171f884bdec2f5a9b92b7d}

\begin{CompactList}\small\item\em Structure to hold LCFG housekeeping information. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0}{\_\-LCFG\_\-source} \{ \par
\hyperlink{LCFG_8h_755e7424d1b1ae339370369e7f9e56d082a88b97cd9574f287baf6a2aef0b267}{LCFG\_\-SRC\_\-UNKNOWN} =  0, 
\par
\hyperlink{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0a57af699c84f2beff7295b5ffb2d67db}{LCFG\_\-SRC\_\-LPA} =  1, 
\par
\hyperlink{LCFG_8h_755e7424d1b1ae339370369e7f9e56d05a3ea5a10ac64f13a6d3e07b7ee0a4f5}{LCFG\_\-SRC\_\-LCI} =  2, 
\par
\hyperlink{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0f3ea0bd7a438852e269d2c96030d6739}{LCFG\_\-SRC\_\-COMMAND} =  3
 \}
\begin{CompactList}\small\item\em Identifiers for callers of configure and verify. \item\end{CompactList}\item 
enum \{ \textbf{LCFG\_\-BAD\_\-TYPE} =  RIM\_\-BAD\_\-TYPE
 \}
\begin{CompactList}\small\item\em Value for an unrecognized type. \item\end{CompactList}\item 
enum \{ \par
\textbf{LCFG\_\-BCAST\_\-ADDR} =  RIM\_\-BCAST\_\-ADDR, 
\par
\textbf{N\_\-LCFG\_\-ADDR\_\-CPTS} =  N\_\-RIM\_\-ADDR\_\-CPTS
 \}
\begin{CompactList}\small\item\em Constants associated with addressing LAT component instances. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
unsigned \hyperlink{LCFG_8h_168f2547bce3297f1518094d570e2b02}{LCFG\_\-cache} (unsigned fid)
\begin{CompactList}\small\item\em Read a LAT configuration. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_9c6c20ce16cee2100c76004e7e38361a}{LCFG\_\-capture} (void)
\begin{CompactList}\small\item\em Read the registers of the LAT. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_96d535b7bf6824dd178a155f83c8aed0}{LCFG\_\-configure} (\hyperlink{LCFG_8h_4730f6a0720be61454684e391bfe4847}{LCFG\_\-source} source, unsigned runId)
\begin{CompactList}\small\item\em Configure the LAT using the currently cached configuration. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_71633afb31b2b07346956c328ed74440}{LCFG\_\-consign} (unsigned dst)
\begin{CompactList}\small\item\em Write out the captured data to the SSR. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_e9ff2bb55c5e505df417ca29f3996c96}{LCFG\_\-disableTriggers} (int marker)
\begin{CompactList}\small\item\em Disable triggers. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_4bd3d94f14fe5dc3bc41a75c8a5bbacf}{LCFG\_\-enableTriggers} (int marker)
\begin{CompactList}\small\item\em Enable triggers. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_50aa738d4ef6e58e5dbddd4d33ec9316}{LCFG\_\-getCacheKey} (void)
\begin{CompactList}\small\item\em Return the file key identifying the last cached configuration. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_5a8cf7decfacae67c2346ee7c8b3bbb1}{LCFG\_\-getConfigureKey} (void)
\begin{CompactList}\small\item\em Return the file key identifying the last configuration loaded. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_4cef7c7ef7b4248d43226c88c8db050b}{LCFG\_\-getHskInfo} (\hyperlink{struct__LCFG__hsk}{LCFG\_\-hsk} $\ast$info)
\begin{CompactList}\small\item\em Get LAT configuration housekeeping information. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_a5df83bd89f53219f1e377681e412a5c}{LCFG\_\-getIgnoreKey} (void)
\begin{CompactList}\small\item\em Return the file key identifying the ignore map. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_d0e8d7dec9b9cdc299e52c101ada288a}{LCFG\_\-ignore} (unsigned fid)
\begin{CompactList}\small\item\em Read the ignore map from the file identified by {\em fid\/}. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_cbd895323beaf55d1675b6c0957b0310}{LCFG\_\-initialise} (void)
\begin{CompactList}\small\item\em Allocate the resources required for LCFG. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_a0ac2b42a80d7f100172d1d34b7ab52d}{LCFG\_\-loadAfeConfig} (unsigned int mask, unsigned int value0, unsigned int value1, unsigned int rcMask, unsigned int feMask)
\begin{CompactList}\small\item\em Load the AFE configuration register. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_0b8cd3314b565dd5e14dece4623c2119}{LCFG\_\-loadCfeConfig0} (unsigned int mask, unsigned int value)
\begin{CompactList}\small\item\em Load CFE configuration register 0. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_0286ae33854770748e3ea0f96c48c56a}{LCFG\_\-loadCfeConfig1} (unsigned int mask, unsigned int value0, unsigned int value1, unsigned int cMask)
\begin{CompactList}\small\item\em Load CFE configuration register 1. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_e49b9b6f637786b5267e79a9ed49be20}{LCFG\_\-loadTfeDac} (unsigned int mask, unsigned int value, int nLow, int nHigh)
\begin{CompactList}\small\item\em Load the TFE DAC register. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_f041611ecf14d727e44cc15bd7aa11e0}{LCFG\_\-loadTkrSplits} (int nLow, int nHigh)
\begin{CompactList}\small\item\em Load TKR split values. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_92204bdd832e9726adba9bec5754e0a5}{LCFG\_\-setDirty} (void)
\begin{CompactList}\small\item\em Set the LCFG \char`\"{}dirty\char`\"{} flag. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_767ea58efae30c37ad48a9f8ff579457}{LCFG\_\-sizeofHskInfo} (void)
\begin{CompactList}\small\item\em Get the size of the LAT configuration housekeeping information. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_12ae787e66e22531534aa2cc160c92bb}{LCFG\_\-teardown} (void)
\begin{CompactList}\small\item\em Release the resources acquired by LCFG\_\-initialise. \item\end{CompactList}\item 
unsigned \hyperlink{LCFG_8h_ac624c201ceef6c05021ac672788f6aa}{LCFG\_\-verify} (\hyperlink{LCFG_8h_4730f6a0720be61454684e391bfe4847}{LCFG\_\-source} source, unsigned runId)
\begin{CompactList}\small\item\em Verify that the captured configuration of the LAT matches the in-memory cache. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Public definitions for the LAT configuration system (LCFG). 

\begin{Desc}
\item[Author:]James Swain \& Owen Saxton\end{Desc}
\begin{Desc}
\item[Id]\hyperlink{LCFG_8h}{LCFG.h},v 1.4 2011/03/27 17:14:05 saxton Exp \end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0}{
\index{LCFG.h@{LCFG.h}!\_\-LCFG\_\-source@{\_\-LCFG\_\-source}}
\index{\_\-LCFG\_\-source@{\_\-LCFG\_\-source}!LCFG.h@{LCFG.h}}
\subsubsection[{\_\-LCFG\_\-source}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \_\-LCFG\_\-source}}}
\label{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0}


Identifiers for callers of configure and verify. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCFG\_\-SRC\_\-UNKNOWN@{LCFG\_\-SRC\_\-UNKNOWN}!LCFG.h@{LCFG.h}}\index{LCFG.h@{LCFG.h}!LCFG\_\-SRC\_\-UNKNOWN@{LCFG\_\-SRC\_\-UNKNOWN}}\item[{\em 
\hypertarget{LCFG_8h_755e7424d1b1ae339370369e7f9e56d082a88b97cd9574f287baf6a2aef0b267}{
LCFG\_\-SRC\_\-UNKNOWN}
\label{LCFG_8h_755e7424d1b1ae339370369e7f9e56d082a88b97cd9574f287baf6a2aef0b267}
}]Unknown. \index{LCFG\_\-SRC\_\-LPA@{LCFG\_\-SRC\_\-LPA}!LCFG.h@{LCFG.h}}\index{LCFG.h@{LCFG.h}!LCFG\_\-SRC\_\-LPA@{LCFG\_\-SRC\_\-LPA}}\item[{\em 
\hypertarget{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0a57af699c84f2beff7295b5ffb2d67db}{
LCFG\_\-SRC\_\-LPA}
\label{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0a57af699c84f2beff7295b5ffb2d67db}
}]LPA. \index{LCFG\_\-SRC\_\-LCI@{LCFG\_\-SRC\_\-LCI}!LCFG.h@{LCFG.h}}\index{LCFG.h@{LCFG.h}!LCFG\_\-SRC\_\-LCI@{LCFG\_\-SRC\_\-LCI}}\item[{\em 
\hypertarget{LCFG_8h_755e7424d1b1ae339370369e7f9e56d05a3ea5a10ac64f13a6d3e07b7ee0a4f5}{
LCFG\_\-SRC\_\-LCI}
\label{LCFG_8h_755e7424d1b1ae339370369e7f9e56d05a3ea5a10ac64f13a6d3e07b7ee0a4f5}
}]LCI. \index{LCFG\_\-SRC\_\-COMMAND@{LCFG\_\-SRC\_\-COMMAND}!LCFG.h@{LCFG.h}}\index{LCFG.h@{LCFG.h}!LCFG\_\-SRC\_\-COMMAND@{LCFG\_\-SRC\_\-COMMAND}}\item[{\em 
\hypertarget{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0f3ea0bd7a438852e269d2c96030d6739}{
LCFG\_\-SRC\_\-COMMAND}
\label{LCFG_8h_755e7424d1b1ae339370369e7f9e56d0f3ea0bd7a438852e269d2c96030d6739}
}]Command. \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{LCFG_8h_168f2547bce3297f1518094d570e2b02}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-cache@{LCFG\_\-cache}}
\index{LCFG\_\-cache@{LCFG\_\-cache}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-cache}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-cache (unsigned {\em fid})}}
\label{LCFG_8h_168f2547bce3297f1518094d570e2b02}


Read a LAT configuration. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em fid}]The file ID of the master file containing the file IDs of the LAT configuration files to be read\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LCFG\_\-BADFOPEN}]if the fid, or any of the names the configuration master file contains, does not match a valid file. \item[{\em LCFG\_\-BADTYPE}]if the file contains a bad type identifier \item[{\em LCFG\_\-BADREAD}]if an error occurs while the file is being read \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cacheFid, LCFG\_\-controller::cacheKey, and LCFG\_\-consume().\hypertarget{LCFG_8h_9c6c20ce16cee2100c76004e7e38361a}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-capture@{LCFG\_\-capture}}
\index{LCFG\_\-capture@{LCFG\_\-capture}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-capture}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-capture (void)}}
\label{LCFG_8h_9c6c20ce16cee2100c76004e7e38361a}


Read the registers of the LAT. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there was an error arising from one of the read commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::capture, LCFG\_\-controller::cr, LCFG\_\-decode::cr, LCFG\_\-controller::decode, LCFG\_\-decode::di, LCFG\_\-finishRead(), LCFG\_\-controller::read, and LCFG\_\-controller::rqi.\hypertarget{LCFG_8h_96d535b7bf6824dd178a155f83c8aed0}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-configure@{LCFG\_\-configure}}
\index{LCFG\_\-configure@{LCFG\_\-configure}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-configure}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-configure ({\bf LCFG\_\-source} {\em source}, \/  unsigned {\em runId})}}
\label{LCFG_8h_96d535b7bf6824dd178a155f83c8aed0}


Configure the LAT using the currently cached configuration. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em source}]The identity of the caller (LPA, LCI, command)\item[{\em runId}]The ID of the run associated with an LPA or LCI source\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there are errors arising from the register load commands \end{description}
\end{Desc}


References \_\-LCFG\_\-hsk::appConfig, \_\-LCFG\_\-hsk::appRunId, \_\-LCFG\_\-hsk::appSource, \_\-LCFG\_\-hsk::appStatus, \_\-LCFG\_\-hsk::appTimeSec, \_\-LCFG\_\-hsk::appTimeSub, LCFG\_\-controller::cache, LCFG\_\-controller::cacheFid, LCFG\_\-controller::cacheKey, LCFG\_\-controller::configKey, LCFG\_\-controller::cr, \_\-LCFG\_\-hsk::dirty, LCFG\_\-controller::hsk, LCFG\_\-finishLoad(), and LCFG\_\-controller::load.\hypertarget{LCFG_8h_71633afb31b2b07346956c328ed74440}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-consign@{LCFG\_\-consign}}
\index{LCFG\_\-consign@{LCFG\_\-consign}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-consign}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-consign (unsigned {\em dst})}}
\label{LCFG_8h_71633afb31b2b07346956c328ed74440}


Write out the captured data to the SSR. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em dst}]Ignored\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well. \item[{\em LCFG\_\-BADFOPEN}]if the file cannot be created \item[{\em LCFG\_\-BADWRITE}]if the final write of the buffer failed \item[{\em LCFG\_\-BADCLOSE}]if the file close failed \item[{\em LCFG\_\-BADWRITE}]if either the map or the configuration data write has an error \end{description}
\end{Desc}


References LCFG\_\-controller::capture, LCFG\_\-controller::fpa, and LCFG\_\-record().\hypertarget{LCFG_8h_e9ff2bb55c5e505df417ca29f3996c96}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-disableTriggers@{LCFG\_\-disableTriggers}}
\index{LCFG\_\-disableTriggers@{LCFG\_\-disableTriggers}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-disableTriggers}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-disableTriggers (int {\em marker})}}
\label{LCFG_8h_e9ff2bb55c5e505df417ca29f3996c96}


Disable triggers. 

The window open mask is cleared. If the marker parameter is non-zero, the LAT is first configured to broadcast a trigger message to CPUs upon receipt of a solicited trigger, a solicited trigger is fired, and the configuration restored from the LCFG cache.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em marker}]If non-zero, causes a solicited trigger with this value in the event data.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, and LCFG\_\-setTrigger().\hypertarget{LCFG_8h_4bd3d94f14fe5dc3bc41a75c8a5bbacf}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-enableTriggers@{LCFG\_\-enableTriggers}}
\index{LCFG\_\-enableTriggers@{LCFG\_\-enableTriggers}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-enableTriggers}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-enableTriggers (int {\em marker})}}
\label{LCFG_8h_4bd3d94f14fe5dc3bc41a75c8a5bbacf}


Enable triggers. 

The window open mask is loaded with the value held in the cache. If the marker parameter is non-zero, the LAT is first configured to broadcast a trigger message to CPUs upon receipt of a solicited trigger, a solicited trigger is fired, and the configuration restored from the LCFG cache.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em marker}]If non-zero, causes a solicited trigger with this value in the event data.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, and LCFG\_\-setTrigger().\hypertarget{LCFG_8h_50aa738d4ef6e58e5dbddd4d33ec9316}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-getCacheKey@{LCFG\_\-getCacheKey}}
\index{LCFG\_\-getCacheKey@{LCFG\_\-getCacheKey}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-getCacheKey}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-getCacheKey (void)}}
\label{LCFG_8h_50aa738d4ef6e58e5dbddd4d33ec9316}


Return the file key identifying the last cached configuration. 

\begin{Desc}
\item[Returns:]The file key for the LCFG master file of the last cached configuration \end{Desc}


References LCFG\_\-controller::cacheKey.\hypertarget{LCFG_8h_5a8cf7decfacae67c2346ee7c8b3bbb1}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-getConfigureKey@{LCFG\_\-getConfigureKey}}
\index{LCFG\_\-getConfigureKey@{LCFG\_\-getConfigureKey}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-getConfigureKey}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-getConfigureKey (void)}}
\label{LCFG_8h_5a8cf7decfacae67c2346ee7c8b3bbb1}


Return the file key identifying the last configuration loaded. 

\begin{Desc}
\item[Returns:]The file key for the LCFG master file of the last configuration loaded \end{Desc}


References LCFG\_\-controller::configKey.\hypertarget{LCFG_8h_4cef7c7ef7b4248d43226c88c8db050b}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-getHskInfo@{LCFG\_\-getHskInfo}}
\index{LCFG\_\-getHskInfo@{LCFG\_\-getHskInfo}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-getHskInfo}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-getHskInfo ({\bf LCFG\_\-hsk} $\ast$ {\em info})}}
\label{LCFG_8h_4cef7c7ef7b4248d43226c88c8db050b}


Get LAT configuration housekeeping information. 

LAT configuration housekeeping information is copied to the supplied area.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em info}]The address of the area to receive the housekeeping information.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]Always success \end{description}
\end{Desc}


References LCFG\_\-controller::hsk.\hypertarget{LCFG_8h_a5df83bd89f53219f1e377681e412a5c}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-getIgnoreKey@{LCFG\_\-getIgnoreKey}}
\index{LCFG\_\-getIgnoreKey@{LCFG\_\-getIgnoreKey}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-getIgnoreKey}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-getIgnoreKey (void)}}
\label{LCFG_8h_a5df83bd89f53219f1e377681e412a5c}


Return the file key identifying the ignore map. 

\begin{Desc}
\item[Returns:]The file key for the ignore file \end{Desc}


References LCFG\_\-controller::ignoreKey.\hypertarget{LCFG_8h_d0e8d7dec9b9cdc299e52c101ada288a}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-ignore@{LCFG\_\-ignore}}
\index{LCFG\_\-ignore@{LCFG\_\-ignore}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-ignore}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-ignore (unsigned {\em fid})}}
\label{LCFG_8h_d0e8d7dec9b9cdc299e52c101ada288a}


Read the ignore map from the file identified by {\em fid\/}. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em fid}]ID of the file containing the map data to use as the ignore map\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \end{description}
\end{Desc}


References LCFG\_\-controller::ignore, LCFG\_\-controller::ignoreFid, LCFG\_\-controller::ignoreKey, and LCFG\_\-consumeMap().\hypertarget{LCFG_8h_cbd895323beaf55d1675b6c0957b0310}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-initialise@{LCFG\_\-initialise}}
\index{LCFG\_\-initialise@{LCFG\_\-initialise}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-initialise}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-initialise (void)}}
\label{LCFG_8h_cbd895323beaf55d1675b6c0957b0310}


Allocate the resources required for LCFG. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]If the control structure was allocated and initialised successfully \item[{\em LCFG\_\-BADALLOC}]If there was an error allocating memory \item[{\em LCFG\_\-FPAINIT}]If fixed packet initialization failed \end{description}
\end{Desc}


References LCFG\_\-controller::buf, LCFG\_\-controller::cache, LCFG\_\-controller::capture, LCFG\_\-controller::cr, LCFG\_\-controller::decode, LCFG\_\-controller::fpa, LCFG\_\-controller::hsk, LCFG\_\-controller::ignore, LCFG\_\-DATAGRAM\_\-SIZE, LCFG\_\-N\_\-DATAGRAMS, LCFG\_\-newDecode(), LCFG\_\-newLoad(), LCFG\_\-newRead(), LCFG\_\-teardown(), LCFG\_\-controller::load, LCFG\_\-controller::read, and LCFG\_\-controller::rqi.\hypertarget{LCFG_8h_a0ac2b42a80d7f100172d1d34b7ab52d}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-loadAfeConfig@{LCFG\_\-loadAfeConfig}}
\index{LCFG\_\-loadAfeConfig@{LCFG\_\-loadAfeConfig}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-loadAfeConfig}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-loadAfeConfig (unsigned int {\em mask}, \/  unsigned int {\em value0}, \/  unsigned int {\em value1}, \/  unsigned int {\em rcMask}, \/  unsigned int {\em feMask})}}
\label{LCFG_8h_a0ac2b42a80d7f100172d1d34b7ab52d}


Load the AFE configuration register. 

The AFE configuration register is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em mask}]Mask of bits to be changed from the configuration.\item[{\em value0}]The value to be masked and merged with the configuration value for front-ends not selected by the RC and FE masks.\item[{\em value1}]The value to be masked and merged with the configuration value for front-ends selected by the RC and FE masks.\item[{\em rcMask}]Mask of bits, one per RC, specifying which RCs are selected.\item[{\em feMask}]Mask of bits, one per FE, specifying which FEs within selected RCs are selected.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, LCFG\_\-finishLoad(), and LCFG\_\-controller::load.\hypertarget{LCFG_8h_0b8cd3314b565dd5e14dece4623c2119}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-loadCfeConfig0@{LCFG\_\-loadCfeConfig0}}
\index{LCFG\_\-loadCfeConfig0@{LCFG\_\-loadCfeConfig0}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-loadCfeConfig0}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-loadCfeConfig0 (unsigned int {\em mask}, \/  unsigned int {\em value})}}
\label{LCFG_8h_0b8cd3314b565dd5e14dece4623c2119}


Load CFE configuration register 0. 

CFE configuration register 0 is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em mask}]Mask of bits to be changed from the configuration.\item[{\em value}]The value to be masked and merged with the configuration value.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, LCFG\_\-finishLoad(), and LCFG\_\-controller::load.\hypertarget{LCFG_8h_0286ae33854770748e3ea0f96c48c56a}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-loadCfeConfig1@{LCFG\_\-loadCfeConfig1}}
\index{LCFG\_\-loadCfeConfig1@{LCFG\_\-loadCfeConfig1}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-loadCfeConfig1}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-loadCfeConfig1 (unsigned int {\em mask}, \/  unsigned int {\em value0}, \/  unsigned int {\em value1}, \/  unsigned int {\em cMask})}}
\label{LCFG_8h_0286ae33854770748e3ea0f96c48c56a}


Load CFE configuration register 1. 

CFE configuration register 1 is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em mask}]Mask of bits to be changed from the configuration.\item[{\em value0}]The value to be masked and merged with the configuration value for front-ends whose bit is clear in the column mask.\item[{\em value1}]The value to be masked and merged with the configuration value for front-ends whose bit is set in the column mask.\item[{\em cMask}]Mask of bits, one per column, specifying which value is to be used for loading the config register.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, LCFG\_\-finishLoad(), and LCFG\_\-controller::load.\hypertarget{LCFG_8h_e49b9b6f637786b5267e79a9ed49be20}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-loadTfeDac@{LCFG\_\-loadTfeDac}}
\index{LCFG\_\-loadTfeDac@{LCFG\_\-loadTfeDac}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-loadTfeDac}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-loadTfeDac (unsigned int {\em mask}, \/  unsigned int {\em value}, \/  int {\em nLow}, \/  int {\em nHigh})}}
\label{LCFG_8h_e49b9b6f637786b5267e79a9ed49be20}


Load the TFE DAC register. 

The TFE DAC register is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em mask}]Mask of bits to be changed from the configuration.\item[{\em value}]The value to be masked and merged with the configuration value.\item[{\em nLow}]Number of TFEs talking on the low side, or -1 if the configured values are being used.\item[{\em nHigh}]Number of TFEs talking on the high side, or -1 if the configured values are being used.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, LCFG\_\-finishLoad(), and LCFG\_\-controller::load.\hypertarget{LCFG_8h_f041611ecf14d727e44cc15bd7aa11e0}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-loadTkrSplits@{LCFG\_\-loadTkrSplits}}
\index{LCFG\_\-loadTkrSplits@{LCFG\_\-loadTkrSplits}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-loadTkrSplits}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-loadTkrSplits (int {\em nLow}, \/  int {\em nHigh})}}
\label{LCFG_8h_f041611ecf14d727e44cc15bd7aa11e0}


Load TKR split values. 

The tracker RC and FE registers are loaded to reflect the given split values.

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em nLow}]Number of TFEs to talk on the low side, or -1 if the configured values are to be used.\item[{\em nHigh}]Number of TFEs to talk on the high side, or -1 if the configured values are to be used.\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]if all goes well \item[{\em LEM\_\-$\ast$}]if there is an error arising from one of the register load commands \end{description}
\end{Desc}


References LCFG\_\-controller::cache, LCFG\_\-controller::cr, LCFG\_\-finishLoad(), and LCFG\_\-controller::load.\hypertarget{LCFG_8h_92204bdd832e9726adba9bec5754e0a5}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-setDirty@{LCFG\_\-setDirty}}
\index{LCFG\_\-setDirty@{LCFG\_\-setDirty}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-setDirty}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-setDirty (void)}}
\label{LCFG_8h_92204bdd832e9726adba9bec5754e0a5}


Set the LCFG \char`\"{}dirty\char`\"{} flag. 

This routine is used to indicate that a register whose value is normally managed by LCFG has had its value changed externally, e.g. by LRA.

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]Always success. \end{description}
\end{Desc}


References \_\-LCFG\_\-hsk::dirty, and LCFG\_\-controller::hsk.\hypertarget{LCFG_8h_767ea58efae30c37ad48a9f8ff579457}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-sizeofHskInfo@{LCFG\_\-sizeofHskInfo}}
\index{LCFG\_\-sizeofHskInfo@{LCFG\_\-sizeofHskInfo}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-sizeofHskInfo}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-sizeofHskInfo (void)}}
\label{LCFG_8h_767ea58efae30c37ad48a9f8ff579457}


Get the size of the LAT configuration housekeeping information. 

The size of the LAT configuration housekeeping information block is returned.

\begin{Desc}
\item[Returns:]The size (in bytes) of the housekeeping information. \end{Desc}
\hypertarget{LCFG_8h_12ae787e66e22531534aa2cc160c92bb}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-teardown@{LCFG\_\-teardown}}
\index{LCFG\_\-teardown@{LCFG\_\-teardown}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-teardown}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-teardown (void)}}
\label{LCFG_8h_12ae787e66e22531534aa2cc160c92bb}


Release the resources acquired by LCFG\_\-initialise. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]This function cannot fail - the return code is for future expansion \end{description}
\end{Desc}


References LCFG\_\-controller::buf, LCFG\_\-controller::cache, LCFG\_\-controller::capture, LCFG\_\-controller::cr, LCFG\_\-controller::decode, LCFG\_\-controller::fpa, LCFG\_\-controller::hsk, LCFG\_\-controller::ignore, LCFG\_\-deleteDecode(), LCFG\_\-deleteLoad(), LCFG\_\-deleteRead(), LCFG\_\-controller::load, LCFG\_\-controller::read, and LCFG\_\-controller::rqi.

Referenced by LCFG\_\-initialise().\hypertarget{LCFG_8h_ac624c201ceef6c05021ac672788f6aa}{
\index{LCFG.h@{LCFG.h}!LCFG\_\-verify@{LCFG\_\-verify}}
\index{LCFG\_\-verify@{LCFG\_\-verify}!LCFG.h@{LCFG.h}}
\subsubsection[{LCFG\_\-verify}]{\setlength{\rightskip}{0pt plus 5cm}unsigned LCFG\_\-verify ({\bf LCFG\_\-source} {\em source}, \/  unsigned {\em runId})}}
\label{LCFG_8h_ac624c201ceef6c05021ac672788f6aa}


Verify that the captured configuration of the LAT matches the in-memory cache. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em source}]The identity of the caller (LPA, LCI, command)\item[{\em runId}]The ID of the run associated with an LPA or LCI source\end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCFG\_\-SUCCESS}]If the current LAT state matches the cached LAT state \item[{\em LCFG\_\-DIFFER}]If the current LAT state differs from the cached LAT state \end{description}
\end{Desc}


References \_\-LCFG\_\-hsk::appConfig, LCFG\_\-controller::cache, LCFG\_\-controller::capture, LCFG\_\-controller::hsk, LCFG\_\-controller::ignore, LCFG\_\-controller::ignoreFid, \_\-LCFG\_\-hsk::verConfig, \_\-LCFG\_\-hsk::verIgnore, \_\-LCFG\_\-hsk::verRunId, \_\-LCFG\_\-hsk::verSource, \_\-LCFG\_\-hsk::verStatus, \_\-LCFG\_\-hsk::verTimeSec, and \_\-LCFG\_\-hsk::verTimeSub.