\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 \char`\"{}RIM/RIM.h\char`\"{}}\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]\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{\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{\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}
\hypertarget{LCFG_8h_9c6c20ce16cee2100c76004e7e38361a}{
\index{LCFG.h@{LCFG.h}!LCFG_capture@{LCFG\_\-capture}}
\index{LCFG_capture@{LCFG\_\-capture}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_96d535b7bf6824dd178a155f83c8aed0}{
\index{LCFG.h@{LCFG.h}!LCFG_configure@{LCFG\_\-configure}}
\index{LCFG_configure@{LCFG\_\-configure}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_71633afb31b2b07346956c328ed74440}{
\index{LCFG.h@{LCFG.h}!LCFG_consign@{LCFG\_\-consign}}
\index{LCFG_consign@{LCFG\_\-consign}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_e9ff2bb55c5e505df417ca29f3996c96}{
\index{LCFG.h@{LCFG.h}!LCFG_disableTriggers@{LCFG\_\-disableTriggers}}
\index{LCFG_disableTriggers@{LCFG\_\-disableTriggers}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_4bd3d94f14fe5dc3bc41a75c8a5bbacf}{
\index{LCFG.h@{LCFG.h}!LCFG_enableTriggers@{LCFG\_\-enableTriggers}}
\index{LCFG_enableTriggers@{LCFG\_\-enableTriggers}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_50aa738d4ef6e58e5dbddd4d33ec9316}{
\index{LCFG.h@{LCFG.h}!LCFG_getCacheKey@{LCFG\_\-getCacheKey}}
\index{LCFG_getCacheKey@{LCFG\_\-getCacheKey}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_5a8cf7decfacae67c2346ee7c8b3bbb1}{
\index{LCFG.h@{LCFG.h}!LCFG_getConfigureKey@{LCFG\_\-getConfigureKey}}
\index{LCFG_getConfigureKey@{LCFG\_\-getConfigureKey}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_4cef7c7ef7b4248d43226c88c8db050b}{
\index{LCFG.h@{LCFG.h}!LCFG_getHskInfo@{LCFG\_\-getHskInfo}}
\index{LCFG_getHskInfo@{LCFG\_\-getHskInfo}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_a5df83bd89f53219f1e377681e412a5c}{
\index{LCFG.h@{LCFG.h}!LCFG_getIgnoreKey@{LCFG\_\-getIgnoreKey}}
\index{LCFG_getIgnoreKey@{LCFG\_\-getIgnoreKey}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_d0e8d7dec9b9cdc299e52c101ada288a}{
\index{LCFG.h@{LCFG.h}!LCFG_ignore@{LCFG\_\-ignore}}
\index{LCFG_ignore@{LCFG\_\-ignore}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_cbd895323beaf55d1675b6c0957b0310}{
\index{LCFG.h@{LCFG.h}!LCFG_initialise@{LCFG\_\-initialise}}
\index{LCFG_initialise@{LCFG\_\-initialise}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_a0ac2b42a80d7f100172d1d34b7ab52d}{
\index{LCFG.h@{LCFG.h}!LCFG_loadAfeConfig@{LCFG\_\-loadAfeConfig}}
\index{LCFG_loadAfeConfig@{LCFG\_\-loadAfeConfig}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_0b8cd3314b565dd5e14dece4623c2119}{
\index{LCFG.h@{LCFG.h}!LCFG_loadCfeConfig0@{LCFG\_\-loadCfeConfig0}}
\index{LCFG_loadCfeConfig0@{LCFG\_\-loadCfeConfig0}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_0286ae33854770748e3ea0f96c48c56a}{
\index{LCFG.h@{LCFG.h}!LCFG_loadCfeConfig1@{LCFG\_\-loadCfeConfig1}}
\index{LCFG_loadCfeConfig1@{LCFG\_\-loadCfeConfig1}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_e49b9b6f637786b5267e79a9ed49be20}{
\index{LCFG.h@{LCFG.h}!LCFG_loadTfeDac@{LCFG\_\-loadTfeDac}}
\index{LCFG_loadTfeDac@{LCFG\_\-loadTfeDac}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_f041611ecf14d727e44cc15bd7aa11e0}{
\index{LCFG.h@{LCFG.h}!LCFG_loadTkrSplits@{LCFG\_\-loadTkrSplits}}
\index{LCFG_loadTkrSplits@{LCFG\_\-loadTkrSplits}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_92204bdd832e9726adba9bec5754e0a5}{
\index{LCFG.h@{LCFG.h}!LCFG_setDirty@{LCFG\_\-setDirty}}
\index{LCFG_setDirty@{LCFG\_\-setDirty}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
\hypertarget{LCFG_8h_767ea58efae30c37ad48a9f8ff579457}{
\index{LCFG.h@{LCFG.h}!LCFG_sizeofHskInfo@{LCFG\_\-sizeofHskInfo}}
\index{LCFG_sizeofHskInfo@{LCFG\_\-sizeofHskInfo}!LCFG.h@{LCFG.h}}
\subsubsection{\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{\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}
\hypertarget{LCFG_8h_ac624c201ceef6c05021ac672788f6aa}{
\index{LCFG.h@{LCFG.h}!LCFG_verify@{LCFG\_\-verify}}
\index{LCFG_verify@{LCFG\_\-verify}!LCFG.h@{LCFG.h}}
\subsubsection{\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}
