\hypertarget{LCBB_8h}{
\section{LCBB.h File Reference}
\label{LCBB_8h}\index{LCBB.h@{LCBB.h}}
}
Defines public methods of the boot mode LCB driver. 

{\tt \#include \char`\"{}PBI/Endianness.h\char`\"{}}\par
{\tt \#include \char`\"{}LCBD/LCB.h\char`\"{}}\par
{\tt \#include \char`\"{}LCBD/LATP.h\char`\"{}}\par


Include dependency graph for LCBB.h:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=178pt]{LCBB_8h__incl}
\end{center}
\end{figure}


This graph shows which files directly or indirectly include this file:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=93pt]{LCBB_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct \hyperlink{struct__LCBB__cfg__latp__bf}{\_\-LCBB\_\-cfg\_\-latp\_\-bf}
\begin{CompactList}\small\item\em Structure to define the LATP configuration information. \item\end{CompactList}\item 
union \hyperlink{union__LCBB__cfg__latp__us}{\_\-LCBB\_\-cfg\_\-latp\_\-us}
\begin{CompactList}\small\item\em Union of the LATp bit field configuration structure with an unsigned short. \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB__cfg__latp__sv}{\_\-LCBB\_\-cfg\_\-latp\_\-sv}
\begin{CompactList}\small\item\em Defines a field selectable structure for those values one wishes to configure. \item\end{CompactList}\item 
union \hyperlink{union__LCBB__latp__cfg}{\_\-LCBB\_\-latp\_\-cfg}
\begin{CompactList}\small\item\em Union of the select/value bit field representation of the LATp configuration bits and an unsigned int. \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB__xtrace__ols__bf}{\_\-LCBB\_\-xtrace\_\-ols\_\-bf}
\begin{CompactList}\small\item\em Defines the bit field representation of the opcode/length/status word. \item\end{CompactList}\item 
union \hyperlink{union__LCBB__xtrace__ols}{\_\-LCBB\_\-xtrace\_\-ols}
\begin{CompactList}\small\item\em Union of the bit field representation of the OLS word and an uninterpretted unsigned short int. \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB__xtrace__rec}{\_\-LCBB\_\-xtrace\_\-rec}
\begin{CompactList}\small\item\em Defines a transaction trace record. \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB__xtrace}{\_\-LCBB\_\-xtrace}
\begin{CompactList}\small\item\em The trace buffer, this holds the transaction count and the last 8 transaction records. \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB__msg__hdr}{\_\-LCBB\_\-msg\_\-hdr}
\begin{CompactList}\small\item\em Layout of an unsolicited event message header. \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB__msg}{\_\-LCBB\_\-msg}
\begin{CompactList}\small\item\em layout of an unsolicited event message \item\end{CompactList}\item 
struct \hyperlink{struct__LCBB}{\_\-LCBB}
\begin{CompactList}\small\item\em Control block for the LCBB driver. \item\end{CompactList}\end{CompactItemize}
\subsection*{Defines}
\begin{CompactItemize}
\item 
\hypertarget{LCBB_8h_a0}{
\#define \hyperlink{LCBB_8h_a0}{LCBB\_\-OK}~0}
\label{LCBB_8h_a0}

\begin{CompactList}\small\item\em Generic success code. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a1}{
\#define \hyperlink{LCBB_8h_a1}{LCBB\_\-XTRACE\_\-REC\_\-CNT}~8}
\label{LCBB_8h_a1}

\begin{CompactList}\small\item\em Count of the number of trace records. \item\end{CompactList}\item 
\#define \hyperlink{LCBB_8h_a2}{LCBB\_\-MSG\_\-CHECK}(\_\-msg)~((\_\-msg) $\rightarrow$ hdr.ed.ui \& LCB\_\-EVT\_\-DSC\_\-STATUS)
\begin{CompactList}\small\item\em Checks the message for both transmit and receive errors. \item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{LCBB_8h_a3}{
typedef enum \hyperlink{LCBB_8h_a88}{\_\-LCBB\_\-CFG\_\-LATP\_\-S} \hyperlink{LCBB_8h_a3}{LCBB\_\-CFG\_\-LATP\_\-S}}
\label{LCBB_8h_a3}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-CFG\_\-LATP\_\-S. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a4}{
typedef enum \hyperlink{LCBB_8h_a89}{\_\-LCBB\_\-CFG\_\-LATP\_\-V} \hyperlink{LCBB_8h_a4}{LCBB\_\-CFG\_\-LATP\_\-V}}
\label{LCBB_8h_a4}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-CFG\_\-LATP\_\-V. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a5}{
typedef enum \hyperlink{LCBB_8h_a90}{\_\-LCBB\_\-CFG\_\-LATP\_\-M} \hyperlink{LCBB_8h_a5}{LCBB\_\-CFG\_\-LATP\_\-M}}
\label{LCBB_8h_a5}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-CFG\_\-LATP\_\-M. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB__cfg__latp__bf}{\_\-LCBB\_\-cfg\_\-latp\_\-bf} \hyperlink{LCBB_8h_a6}{LCBB\_\-cfg\_\-latp\_\-bf}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__cfg__latp__bf}{\_\-LCBB\_\-cfg\_\-latp\_\-bf}. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a7}{
typedef \hyperlink{union__LCBB__cfg__latp__us}{\_\-LCBB\_\-cfg\_\-latp\_\-us} \hyperlink{LCBB_8h_a7}{LCBB\_\-cfg\_\-latp\_\-us}}
\label{LCBB_8h_a7}

\begin{CompactList}\small\item\em Typedef for union \_\-LCBB\_\-latp\_\-us. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB__cfg__latp__sv}{\_\-LCBB\_\-cfg\_\-latp\_\-sv} \hyperlink{LCBB_8h_a8}{LCBB\_\-cfg\_\-latp\_\-sv}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__cfg__latp__sv}{\_\-LCBB\_\-cfg\_\-latp\_\-sv}. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a9}{
typedef \hyperlink{union__LCBB__latp__cfg}{\_\-LCBB\_\-latp\_\-cfg} \hyperlink{LCBB_8h_a9}{LCBB\_\-latp\_\-cfg}}
\label{LCBB_8h_a9}

\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LCBB__latp__cfg}{\_\-LCBB\_\-latp\_\-cfg}. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a10}{
typedef enum \hyperlink{LCBB_8h_a91}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-S} \hyperlink{LCBB_8h_a10}{LCBB\_\-XTRACE\_\-OLS\_\-S}}
\label{LCBB_8h_a10}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-XTRACE\_\-OLS\_\-S. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a11}{
typedef enum \hyperlink{LCBB_8h_a92}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-V} \hyperlink{LCBB_8h_a11}{LCBB\_\-XTRACE\_\-OLS\_\-V}}
\label{LCBB_8h_a11}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-XTRACE\_\-OLS\_\-V. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a12}{
typedef enum \hyperlink{LCBB_8h_a93}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-M} \hyperlink{LCBB_8h_a12}{LCBB\_\-XTRACE\_\-OLS\_\-M}}
\label{LCBB_8h_a12}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-XTRACE\_\-OLS\_\-M. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a13}{
typedef enum \hyperlink{LCBB_8h_a94}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K} \hyperlink{LCBB_8h_a13}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K}}
\label{LCBB_8h_a13}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a14}{
typedef enum \hyperlink{LCBB_8h_a95}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M} \hyperlink{LCBB_8h_a14}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M}}
\label{LCBB_8h_a14}

\begin{CompactList}\small\item\em Typedef for enum \_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M. \item\end{CompactList}\item 
\hypertarget{LCBB_8h_a15}{
typedef \hyperlink{struct__LCBB__xtrace__ols__bf}{\_\-LCBB\_\-xtrace\_\-ols\_\-bf} \hyperlink{LCBB_8h_a15}{LCBB\_\-xtrace\_\-ols\_\-bf}}
\label{LCBB_8h_a15}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__xtrace__ols__bf}{\_\-LCBB\_\-xtrace\_\-ols\_\-bf}. \item\end{CompactList}\item 
typedef \hyperlink{union__LCBB__xtrace__ols}{\_\-LCBB\_\-xtrace\_\-ols} \hyperlink{LCBB_8h_a16}{LCBB\_\-xtrace\_\-ols}
\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LCBB__xtrace__ols}{\_\-LCBB\_\-xtrace\_\-ols}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB__xtrace__rec}{\_\-LCBB\_\-xtrace\_\-rec} \hyperlink{LCBB_8h_a17}{LCBB\_\-xtrace\_\-rec}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__xtrace__rec}{\_\-LCBB\_\-xtrace\_\-rec}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB__xtrace}{\_\-LCBB\_\-xtrace} \hyperlink{LCBB_8h_a18}{LCBB\_\-xtrace}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__xtrace}{\_\-LCBB\_\-xtrace}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB__msg__hdr}{\_\-LCBB\_\-msg\_\-hdr} \hyperlink{LCBB_8h_a19}{LCBB\_\-msg\_\-hdr}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__msg__hdr}{\_\-LCBB\_\-msg\_\-hdr}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB__msg}{\_\-LCBB\_\-msg} \hyperlink{LCBB_8h_a20}{LCBB\_\-msg}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LCBB__msg}{\_\-LCBB\_\-msg}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LCBB}{\_\-LCBB} $\ast$ \hyperlink{LCBB_8h_a21}{LCBB}
\begin{CompactList}\small\item\em Typedef for a pointer to struct. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{LCBB_8h_a88}{\_\-LCBB\_\-CFG\_\-LATP\_\-S} \{ \par
\hyperlink{LCBB_8h_a88a22}{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER0} =  1, 
\par
\hyperlink{LCBB_8h_a88a23}{LCBB\_\-CFG\_\-LATP\_\-S\_\-EVT\_\-ENABLE} =  1, 
\par
\hyperlink{LCBB_8h_a88a24}{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER1} =  1, 
\par
\hyperlink{LCBB_8h_a88a25}{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER2} =  1, 
\par
\hyperlink{LCBB_8h_a88a26}{LCBB\_\-CFG\_\-LATP\_\-S\_\-HDR\_\-PARITY} =  1, 
\par
\hyperlink{LCBB_8h_a88a27}{LCBB\_\-CFG\_\-LATP\_\-S\_\-PAYLOAD\_\-PARITY} =  1, 
\par
\hyperlink{LCBB_8h_a88a28}{LCBB\_\-CFG\_\-LATP\_\-S\_\-PAUSE\_\-TEST} =  1, 
\par
\hyperlink{LCBB_8h_a88a29}{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER3} =  1, 
\par
\hyperlink{LCBB_8h_a88a30}{LCBB\_\-CFG\_\-LATP\_\-S\_\-BOARD\_\-ID} =  5, 
\par
\hyperlink{LCBB_8h_a88a31}{LCBB\_\-CFG\_\-LATP\_\-S\_\-MUST\_\-BE\_\-1} =  1, 
\par
\hyperlink{LCBB_8h_a88a32}{LCBB\_\-CFG\_\-LATP\_\-S\_\-BYTE\_\-WIDE} =  1, 
\par
\hyperlink{LCBB_8h_a88a33}{LCBB\_\-CFG\_\-LATP\_\-S\_\-RESET} =  1
 \}
\begin{CompactList}\small\item\em Size of each of the bit fields in the LATp configuration word. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a89}{\_\-LCBB\_\-CFG\_\-LATP\_\-V} \{ \par
\hyperlink{LCBB_8h_a89a34}{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER0} =  0, 
\par
\hyperlink{LCBB_8h_a89a35}{LCBB\_\-CFG\_\-LATP\_\-V\_\-EVT\_\-ENABLE} =  1, 
\par
\hyperlink{LCBB_8h_a89a36}{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER1} =  2, 
\par
\hyperlink{LCBB_8h_a89a37}{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER2} =  3, 
\par
\hyperlink{LCBB_8h_a89a38}{LCBB\_\-CFG\_\-LATP\_\-V\_\-HDR\_\-PARITY} =  4, 
\par
\hyperlink{LCBB_8h_a89a39}{LCBB\_\-CFG\_\-LATP\_\-V\_\-PAYLOAD\_\-PARITY} =  5, 
\par
\hyperlink{LCBB_8h_a89a40}{LCBB\_\-CFG\_\-LATP\_\-V\_\-PAUSE\_\-TEST} =  6, 
\par
\hyperlink{LCBB_8h_a89a41}{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER3} =  7, 
\par
\hyperlink{LCBB_8h_a89a42}{LCBB\_\-CFG\_\-LATP\_\-V\_\-BOARD\_\-ID} =  8, 
\par
\hyperlink{LCBB_8h_a89a43}{LCBB\_\-CFG\_\-LATP\_\-V\_\-MUST\_\-BE\_\-1} =  13, 
\par
\hyperlink{LCBB_8h_a89a44}{LCBB\_\-CFG\_\-LATP\_\-V\_\-BYTE\_\-WIDE} =  14, 
\par
\hyperlink{LCBB_8h_a89a45}{LCBB\_\-CFG\_\-LATP\_\-V\_\-RESET} =  15
 \}
\begin{CompactList}\small\item\em Right justified bit offset of each of the bit fields in the LATp configuration word. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a90}{\_\-LCBB\_\-CFG\_\-LATP\_\-M} \{ \par
\hyperlink{LCBB_8h_a90a46}{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER0} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-USER0 ), 
\par
\hyperlink{LCBB_8h_a90a47}{LCBB\_\-CFG\_\-LATP\_\-M\_\-EVT\_\-ENABLE} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-EVT\_\-ENABLE ), 
\par
\hyperlink{LCBB_8h_a90a48}{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER1} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-USER1 ), 
\par
\hyperlink{LCBB_8h_a90a49}{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER2} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-USER2 ), 
\par
\hyperlink{LCBB_8h_a90a50}{LCBB\_\-CFG\_\-LATP\_\-M\_\-HDR\_\-PARITY} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-HDR\_\-PARITY ), 
\par
\hyperlink{LCBB_8h_a90a51}{LCBB\_\-CFG\_\-LATP\_\-M\_\-PAYLOAD\_\-PARITY} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-PAYLOAD\_\-PARITY), 
\par
\hyperlink{LCBB_8h_a90a52}{LCBB\_\-CFG\_\-LATP\_\-M\_\-PAUSE\_\-TEST} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-PAUSE\_\-TEST ), 
\par
\hyperlink{LCBB_8h_a90a53}{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER3} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-USER3 ), 
\par
\hyperlink{LCBB_8h_a90a54}{LCBB\_\-CFG\_\-LATP\_\-M\_\-BOARD\_\-ID} =  (0x1f $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-BOARD\_\-ID ), 
\par
\hyperlink{LCBB_8h_a90a55}{LCBB\_\-CFG\_\-LATP\_\-M\_\-MUST\_\-BE\_\-1} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-MUST\_\-BE\_\-1 ), 
\par
\hyperlink{LCBB_8h_a90a56}{LCBB\_\-CFG\_\-LATP\_\-M\_\-BYTE\_\-WIDE} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-BYTE\_\-WIDE ), 
\par
\hyperlink{LCBB_8h_a90a57}{LCBB\_\-CFG\_\-LATP\_\-M\_\-RESET} =  (1 $<$$<$ LCBB\_\-CFG\_\-LATP\_\-V\_\-RESET )
 \}
\begin{CompactList}\small\item\em In place masks for each of the bit fields in the LATp configuration word. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a91}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-S} \{ \par
\hyperlink{LCBB_8h_a91a58}{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-OPCODE} =  4, 
\par
\hyperlink{LCBB_8h_a91a59}{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-LENGTH} =  10, 
\par
\hyperlink{LCBB_8h_a91a60}{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-STATUS} =  2
 \}
\begin{CompactList}\small\item\em Defines the size, in bits, of the opcode/length/status fields. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a92}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-V} \{ \par
\hyperlink{LCBB_8h_a92a61}{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-OPCODE} =  0, 
\par
\hyperlink{LCBB_8h_a92a62}{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-LENGTH} =  4, 
\par
\hyperlink{LCBB_8h_a92a63}{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-STATUS} =  14
 \}
\begin{CompactList}\small\item\em Defines the right offset, in bits of the opcode/length/status fields. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a93}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-M} \{ \par
\hyperlink{LCBB_8h_a93a64}{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-OPCODE} =  0x000f, 
\par
\hyperlink{LCBB_8h_a93a65}{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-LENGTH} =  0x3ff0, 
\par
\hyperlink{LCBB_8h_a93a66}{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-STATUS} =  0xc000
 \}
\begin{CompactList}\small\item\em Defines the in place masks of the opcode/length/status fields. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a94}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K} \{ \par
\hyperlink{LCBB_8h_a94a67}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-SUCCESS} =  0, 
\par
\hyperlink{LCBB_8h_a94a68}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-ROGUE} =  1, 
\par
\hyperlink{LCBB_8h_a94a69}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-NULL} =  2, 
\par
\hyperlink{LCBB_8h_a94a70}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-TIMEOUT} =  3
 \}
\begin{CompactList}\small\item\em Defines the values for the transaction status field in the OLS (opcode, length, status) field of the trace buffer. \item\end{CompactList}\item 
enum \hyperlink{LCBB_8h_a95}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M} \{ \par
\hyperlink{LCBB_8h_a95a71}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-SUCCESS}, 
\par
\hyperlink{LCBB_8h_a95a72}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-ROGUE}, 
\par
\hyperlink{LCBB_8h_a95a73}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-NULL}, 
\par
\hyperlink{LCBB_8h_a95a74}{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-TIMEOUT}
 \}
\begin{CompactList}\small\item\em Defines the in place masks for the transaction status field in the OLS (opcode, length, status) field of the trace buffer. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
\hyperlink{struct__LCBB}{LCBB} \hyperlink{LCBB_8h_a75}{LCBB\_\-configure} (unsigned int latp, void $\ast$request\-List, void $\ast$result\-List, void $\ast$circ\-Buffer)
\begin{CompactList}\small\item\em Returns a pointer to the LCB control structure, with the specified configuration parameters. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a76}{LCBB\_\-init} (\hyperlink{struct__LCBB}{LCBB} lcb)
\begin{CompactList}\small\item\em Initializes the LCB structure for polled mode. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a77}{LCBB\_\-start} (\hyperlink{struct__LCBB}{LCBB} lcb)
\begin{CompactList}\small\item\em Enables the LCB for taking event data. \item\end{CompactList}\item 
unsigned char $\ast$ \hyperlink{LCBB_8h_a78}{LCBB\_\-locate} (\hyperlink{struct__LCBB}{LCBB} lcb)
\begin{CompactList}\small\item\em Returns a pointer to payload. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a79}{LCBB\_\-send} (\hyperlink{struct__LCBB}{LCBB} lcb, unsigned int dst, unsigned int proto, int nbytes)
\begin{CompactList}\small\item\em Sends the data. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a80}{LCBB\_\-check} (\hyperlink{struct__LCBB}{LCBB} lcb, \hyperlink{struct__LCBB__msg}{LCBB\_\-msg} $\ast$msg)
\begin{CompactList}\small\item\em Maps the LCB error codes to a LCB message code. \item\end{CompactList}\item 
\hyperlink{struct__LCBB__msg}{LCBB\_\-msg} $\ast$ \hyperlink{LCBB_8h_a81}{LCBB\_\-receive} (\hyperlink{struct__LCBB}{LCBB} lcb)
\begin{CompactList}\small\item\em Reads the event FIFO for descriptors. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a82}{LCBB\_\-free} (\hyperlink{struct__LCBB}{LCBB} lcb, \hyperlink{struct__LCBB__msg}{LCBB\_\-msg} $\ast$msg)
\item 
unsigned int \hyperlink{LCBB_8h_a83}{LCBB\_\-mark\_\-time} (\hyperlink{struct__LCBB}{LCBB} lcb, unsigned short int stall)
\begin{CompactList}\small\item\em Issues a Mark Time command to the LCB. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a84}{LCBB\_\-lat\_\-reset} (\hyperlink{struct__LCBB}{LCBB} lcb, unsigned short int stall)
\begin{CompactList}\small\item\em Issues a LAT reset. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a85}{LCBB\_\-csr\_\-access} (\hyperlink{struct__LCBB}{LCBB} lcb, unsigned int value, unsigned int field\_\-select, unsigned short int timeout, unsigned int $\ast$prv, unsigned int $\ast$cur)
\begin{CompactList}\small\item\em Does an access of the LATp CSR register. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a86}{LCBB\_\-faults\_\-access} (\hyperlink{struct__LCBB}{LCBB} lcb, unsigned int value, unsigned int field\_\-select, unsigned short int timeout, unsigned int $\ast$prv, unsigned int $\ast$cur)
\begin{CompactList}\small\item\em Does an access of the LATp CSR register. \item\end{CompactList}\item 
unsigned int \hyperlink{LCBB_8h_a87}{LCBB\_\-rxstats\_\-access} (\hyperlink{struct__LCBB}{LCBB} lcb, unsigned int value, unsigned int field\_\-select, unsigned short int timeout, unsigned int $\ast$prv, unsigned int $\ast$cur)
\begin{CompactList}\small\item\em Does an access of the LATp Receive Statistics/Status register. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Defines public methods of the boot mode LCB driver. 

\begin{Desc}
\item[Author:]Curt Brune -- \href{mailto:curt@slac.stanford.edu}{\tt curt@slac.stanford.edu} 

JJRussell -- \href{mailto:russell@slac.stanford.edu}{\tt russell@slac.stanford.edu}\end{Desc}


\footnotesize\begin{verbatim}  CVS $Id
\end{verbatim}
\normalsize


\subsection{Define Documentation}
\hypertarget{LCBB_8h_a2}{
\index{LCBB.h@{LCBB.h}!LCBB_MSG_CHECK@{LCBB\_\-MSG\_\-CHECK}}
\index{LCBB_MSG_CHECK@{LCBB\_\-MSG\_\-CHECK}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-MSG\_\-CHECK]{\setlength{\rightskip}{0pt plus 5cm}\#define LCBB\_\-MSG\_\-CHECK(\_\-msg)~((\_\-msg) $\rightarrow$ hdr.ed.ui \& LCB\_\-EVT\_\-DSC\_\-STATUS)}}
\label{LCBB_8h_a2}


Checks the message for both transmit and receive errors. 

\begin{Desc}
\item[Returns:]Non-zero if there are errors, else 0 if OK\end{Desc}
This macro checks an event descriptor for both transmit and receive errors. It is meant to be used as a quickie test. The user should see\begin{Desc}
\item[See also:]\hyperlink{LCBB_8h_a80}{LCBB\_\-check} to map the status of a message into a standard LCB message code.\end{Desc}


\subsection{Typedef Documentation}
\hypertarget{LCBB_8h_a21}{
\index{LCBB.h@{LCBB.h}!LCBB@{LCBB}}
\index{LCBB@{LCBB}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB}{LCBB}}}
\label{LCBB_8h_a21}


Typedef for a pointer to struct. 

\begin{Desc}
\item[See also:]\hyperlink{struct__LCBB}{\_\-LCBB}\end{Desc}
Normally one would not expose this structure, but given that the only customer for this code is the primary boot code for the EPU and that in this context the code is physically linked in (not exported as a shareable, the need for high modularity diminishes somewhat.

Keeping this in mind, it would still serve the user of the LCBB driver to avoid directly reference this structure. The alternative of providing many access routines to get at this data seemed to low in a cost to benefits analysis.\hypertarget{LCBB_8h_a6}{
\index{LCBB.h@{LCBB.h}!LCBB_cfg_latp_bf@{LCBB\_\-cfg\_\-latp\_\-bf}}
\index{LCBB_cfg_latp_bf@{LCBB\_\-cfg\_\-latp\_\-bf}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-cfg\_\-latp\_\-bf]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__cfg__latp__bf}{LCBB\_\-cfg\_\-latp\_\-bf}}}
\label{LCBB_8h_a6}


Typedef for struct \hyperlink{struct__LCBB__cfg__latp__bf}{\_\-LCBB\_\-cfg\_\-latp\_\-bf}. 

\begin{Desc}
\item[]For the most part, these set bits in the LATp side CSR. In general, the boot code when running on the EPU does not set any of these bits. The boot code, when running on the SIU will likely set the following fields\end{Desc}
\begin{itemize}
\item byte\_\-wide\item board\_\-id\item event\_\-enable\end{itemize}
\hypertarget{LCBB_8h_a8}{
\index{LCBB.h@{LCBB.h}!LCBB_cfg_latp_sv@{LCBB\_\-cfg\_\-latp\_\-sv}}
\index{LCBB_cfg_latp_sv@{LCBB\_\-cfg\_\-latp\_\-sv}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-cfg\_\-latp\_\-sv]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__cfg__latp__sv}{LCBB\_\-cfg\_\-latp\_\-sv}}}
\label{LCBB_8h_a8}


Typedef for struct \hyperlink{struct__LCBB__cfg__latp__sv}{\_\-LCBB\_\-cfg\_\-latp\_\-sv}. 

This structure consists of two identical bit fields. The upper portion contains a bit mask of those values one wishes to alter. The lower portion contains a bit mask of the values of the alterable fields.\hypertarget{LCBB_8h_a20}{
\index{LCBB.h@{LCBB.h}!LCBB_msg@{LCBB\_\-msg}}
\index{LCBB_msg@{LCBB\_\-msg}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-msg]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__msg}{LCBB\_\-msg}}}
\label{LCBB_8h_a20}


Typedef for struct \hyperlink{struct__LCBB__msg}{\_\-LCBB\_\-msg}. 

This is structure of a received bulk message. The first 3 32-bit words of the structure are available to user. The 4rth word contains the original event descriptor exactly as it was read from the EVENT Q. It should be intact when the message is freed.\hypertarget{LCBB_8h_a19}{
\index{LCBB.h@{LCBB.h}!LCBB_msg_hdr@{LCBB\_\-msg\_\-hdr}}
\index{LCBB_msg_hdr@{LCBB\_\-msg\_\-hdr}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-msg\_\-hdr]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__msg__hdr}{LCBB\_\-msg\_\-hdr}}}
\label{LCBB_8h_a19}


Typedef for struct \hyperlink{struct__LCBB__msg__hdr}{\_\-LCBB\_\-msg\_\-hdr}. 

This is structure of outlining the LCBB driver's use of the pad area left by the driver before each received bulk message. The size of this area must be LCB\_\-EVT\_\-PAD\_\-SIZE, as defined in \hyperlink{LCB_8h}{LCB.h}. This is checked for at compile time in \hyperlink{LCBB_8c}{LCBB.c}\hypertarget{LCBB_8h_a18}{
\index{LCBB.h@{LCBB.h}!LCBB_xtrace@{LCBB\_\-xtrace}}
\index{LCBB_xtrace@{LCBB\_\-xtrace}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-xtrace]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__xtrace}{LCBB\_\-xtrace}}}
\label{LCBB_8h_a18}


Typedef for struct \hyperlink{struct__LCBB__xtrace}{\_\-LCBB\_\-xtrace}. 

\begin{Desc}
\item[]The trace records are stored in circular buffer fashion with the most recent buffer located by taking the cnt \% 0.\end{Desc}
\hypertarget{LCBB_8h_a16}{
\index{LCBB.h@{LCBB.h}!LCBB_xtrace_ols@{LCBB\_\-xtrace\_\-ols}}
\index{LCBB_xtrace_ols@{LCBB\_\-xtrace\_\-ols}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-xtrace\_\-ols]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{union__LCBB__xtrace__ols}{LCBB\_\-xtrace\_\-ols}}}
\label{LCBB_8h_a16}


Typedef for union \hyperlink{union__LCBB__xtrace__ols}{\_\-LCBB\_\-xtrace\_\-ols}. 

\begin{Desc}
\item[]The OLS word of a transaction trace record packs three fields into a 16 bit unsigned short int\begin{enumerate}
\item The opcode of the transaction (4 bits)\item The length, in units of 8-byte cells) of the transaction (10 bits)\item The disposal status of the transaction (2 bits) \end{enumerate}
\end{Desc}
\begin{Desc}
\item[]The first two fields, the opcode and the length, are taken directly from the command header word, essentially just compressing out the MBZ bits. The disposal status can be one of four values (see LCBB\_\-XTRACE\_\-OLS\_\-K\_\-STATUS).\end{Desc}
\hypertarget{LCBB_8h_a17}{
\index{LCBB.h@{LCBB.h}!LCBB_xtrace_rec@{LCBB\_\-xtrace\_\-rec}}
\index{LCBB_xtrace_rec@{LCBB\_\-xtrace\_\-rec}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-xtrace\_\-rec]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__xtrace__rec}{LCBB\_\-xtrace\_\-rec}}}
\label{LCBB_8h_a17}


Typedef for struct \hyperlink{struct__LCBB__xtrace__rec}{\_\-LCBB\_\-xtrace\_\-rec}. 

\begin{Desc}
\item[]The LCBB driver keeps a trace buffer of the last N (currently 8) transactions. This keeps track of useful information about the history of whats going on. It may prove to be useful in both testing and in diagnostics.\end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{LCBB_8h_a90}{
\index{LCBB.h@{LCBB.h}!_LCBB_CFG_LATP_M@{\_\-LCBB\_\-CFG\_\-LATP\_\-M}}
\index{_LCBB_CFG_LATP_M@{\_\-LCBB\_\-CFG\_\-LATP\_\-M}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-CFG\_\-LATP\_\-M]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a90}{\_\-LCBB\_\-CFG\_\-LATP\_\-M}}}
\label{LCBB_8h_a90}


In place masks for each of the bit fields in the LATp configuration word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_CFG_LATP_M_USER0@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER0}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_USER0@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER0}}\item[{\em 
\hypertarget{LCBB_8h_a90a46}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-USER0}
\label{LCBB_8h_a90a46}
}]User field 0, in place bit mask \index{LCBB_CFG_LATP_M_EVT_ENABLE@{LCBB\_\-CFG\_\-LATP\_\-M\_\-EVT\_\-ENABLE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_EVT_ENABLE@{LCBB\_\-CFG\_\-LATP\_\-M\_\-EVT\_\-ENABLE}}\item[{\em 
\hypertarget{LCBB_8h_a90a47}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-EVT\_\-ENABLE}
\label{LCBB_8h_a90a47}
}]Event enable, in place bit mask \index{LCBB_CFG_LATP_M_USER1@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER1}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_USER1@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER1}}\item[{\em 
\hypertarget{LCBB_8h_a90a48}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-USER1}
\label{LCBB_8h_a90a48}
}]User field 1, in place bit mask \index{LCBB_CFG_LATP_M_USER2@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER2}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_USER2@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER2}}\item[{\em 
\hypertarget{LCBB_8h_a90a49}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-USER2}
\label{LCBB_8h_a90a49}
}]User field 2, in place bit mask \index{LCBB_CFG_LATP_M_HDR_PARITY@{LCBB\_\-CFG\_\-LATP\_\-M\_\-HDR\_\-PARITY}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_HDR_PARITY@{LCBB\_\-CFG\_\-LATP\_\-M\_\-HDR\_\-PARITY}}\item[{\em 
\hypertarget{LCBB_8h_a90a50}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-HDR\_\-PARITY}
\label{LCBB_8h_a90a50}
}]Header parity, in place bit mask \index{LCBB_CFG_LATP_M_PAYLOAD_PARITY@{LCBB\_\-CFG\_\-LATP\_\-M\_\-PAYLOAD\_\-PARITY}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_PAYLOAD_PARITY@{LCBB\_\-CFG\_\-LATP\_\-M\_\-PAYLOAD\_\-PARITY}}\item[{\em 
\hypertarget{LCBB_8h_a90a51}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-PAYLOAD\_\-PARITY}
\label{LCBB_8h_a90a51}
}]Payload parity, in place bit mask \index{LCBB_CFG_LATP_M_PAUSE_TEST@{LCBB\_\-CFG\_\-LATP\_\-M\_\-PAUSE\_\-TEST}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_PAUSE_TEST@{LCBB\_\-CFG\_\-LATP\_\-M\_\-PAUSE\_\-TEST}}\item[{\em 
\hypertarget{LCBB_8h_a90a52}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-PAUSE\_\-TEST}
\label{LCBB_8h_a90a52}
}]Pause test, in place bit mask \index{LCBB_CFG_LATP_M_USER3@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER3}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_USER3@{LCBB\_\-CFG\_\-LATP\_\-M\_\-USER3}}\item[{\em 
\hypertarget{LCBB_8h_a90a53}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-USER3}
\label{LCBB_8h_a90a53}
}]User field 3, in place bit mask \index{LCBB_CFG_LATP_M_BOARD_ID@{LCBB\_\-CFG\_\-LATP\_\-M\_\-BOARD\_\-ID}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_BOARD_ID@{LCBB\_\-CFG\_\-LATP\_\-M\_\-BOARD\_\-ID}}\item[{\em 
\hypertarget{LCBB_8h_a90a54}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-BOARD\_\-ID}
\label{LCBB_8h_a90a54}
}]Board LATp adr, in place bit mask \index{LCBB_CFG_LATP_M_MUST_BE_1@{LCBB\_\-CFG\_\-LATP\_\-M\_\-MUST\_\-BE\_\-1}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_MUST_BE_1@{LCBB\_\-CFG\_\-LATP\_\-M\_\-MUST\_\-BE\_\-1}}\item[{\em 
\hypertarget{LCBB_8h_a90a55}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-MUST\_\-BE\_\-1}
\label{LCBB_8h_a90a55}
}]Not settable, in place bit mask \index{LCBB_CFG_LATP_M_BYTE_WIDE@{LCBB\_\-CFG\_\-LATP\_\-M\_\-BYTE\_\-WIDE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_BYTE_WIDE@{LCBB\_\-CFG\_\-LATP\_\-M\_\-BYTE\_\-WIDE}}\item[{\em 
\hypertarget{LCBB_8h_a90a56}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-BYTE\_\-WIDE}
\label{LCBB_8h_a90a56}
}]Bit/Byte path, in place bit mask \index{LCBB_CFG_LATP_M_RESET@{LCBB\_\-CFG\_\-LATP\_\-M\_\-RESET}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_M_RESET@{LCBB\_\-CFG\_\-LATP\_\-M\_\-RESET}}\item[{\em 
\hypertarget{LCBB_8h_a90a57}{
LCBB\_\-CFG\_\-LATP\_\-M\_\-RESET}
\label{LCBB_8h_a90a57}
}]LATp reset, in place bit mask \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a88}{
\index{LCBB.h@{LCBB.h}!_LCBB_CFG_LATP_S@{\_\-LCBB\_\-CFG\_\-LATP\_\-S}}
\index{_LCBB_CFG_LATP_S@{\_\-LCBB\_\-CFG\_\-LATP\_\-S}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-CFG\_\-LATP\_\-S]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a88}{\_\-LCBB\_\-CFG\_\-LATP\_\-S}}}
\label{LCBB_8h_a88}


Size of each of the bit fields in the LATp configuration word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_CFG_LATP_S_USER0@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER0}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_USER0@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER0}}\item[{\em 
\hypertarget{LCBB_8h_a88a22}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-USER0}
\label{LCBB_8h_a88a22}
}]User field 0, size in bits \index{LCBB_CFG_LATP_S_EVT_ENABLE@{LCBB\_\-CFG\_\-LATP\_\-S\_\-EVT\_\-ENABLE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_EVT_ENABLE@{LCBB\_\-CFG\_\-LATP\_\-S\_\-EVT\_\-ENABLE}}\item[{\em 
\hypertarget{LCBB_8h_a88a23}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-EVT\_\-ENABLE}
\label{LCBB_8h_a88a23}
}]Event enable, size in bits \index{LCBB_CFG_LATP_S_USER1@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER1}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_USER1@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER1}}\item[{\em 
\hypertarget{LCBB_8h_a88a24}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-USER1}
\label{LCBB_8h_a88a24}
}]User field 1, size in bits \index{LCBB_CFG_LATP_S_USER2@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER2}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_USER2@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER2}}\item[{\em 
\hypertarget{LCBB_8h_a88a25}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-USER2}
\label{LCBB_8h_a88a25}
}]User field 2, size in bits \index{LCBB_CFG_LATP_S_HDR_PARITY@{LCBB\_\-CFG\_\-LATP\_\-S\_\-HDR\_\-PARITY}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_HDR_PARITY@{LCBB\_\-CFG\_\-LATP\_\-S\_\-HDR\_\-PARITY}}\item[{\em 
\hypertarget{LCBB_8h_a88a26}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-HDR\_\-PARITY}
\label{LCBB_8h_a88a26}
}]Header parity, size in bits \index{LCBB_CFG_LATP_S_PAYLOAD_PARITY@{LCBB\_\-CFG\_\-LATP\_\-S\_\-PAYLOAD\_\-PARITY}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_PAYLOAD_PARITY@{LCBB\_\-CFG\_\-LATP\_\-S\_\-PAYLOAD\_\-PARITY}}\item[{\em 
\hypertarget{LCBB_8h_a88a27}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-PAYLOAD\_\-PARITY}
\label{LCBB_8h_a88a27}
}]Payload parity,size in bits \index{LCBB_CFG_LATP_S_PAUSE_TEST@{LCBB\_\-CFG\_\-LATP\_\-S\_\-PAUSE\_\-TEST}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_PAUSE_TEST@{LCBB\_\-CFG\_\-LATP\_\-S\_\-PAUSE\_\-TEST}}\item[{\em 
\hypertarget{LCBB_8h_a88a28}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-PAUSE\_\-TEST}
\label{LCBB_8h_a88a28}
}]Pause test, size in bits \index{LCBB_CFG_LATP_S_USER3@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER3}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_USER3@{LCBB\_\-CFG\_\-LATP\_\-S\_\-USER3}}\item[{\em 
\hypertarget{LCBB_8h_a88a29}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-USER3}
\label{LCBB_8h_a88a29}
}]User field 3, size in bits \index{LCBB_CFG_LATP_S_BOARD_ID@{LCBB\_\-CFG\_\-LATP\_\-S\_\-BOARD\_\-ID}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_BOARD_ID@{LCBB\_\-CFG\_\-LATP\_\-S\_\-BOARD\_\-ID}}\item[{\em 
\hypertarget{LCBB_8h_a88a30}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-BOARD\_\-ID}
\label{LCBB_8h_a88a30}
}]Board LATp adr,size in bits \index{LCBB_CFG_LATP_S_MUST_BE_1@{LCBB\_\-CFG\_\-LATP\_\-S\_\-MUST\_\-BE\_\-1}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_MUST_BE_1@{LCBB\_\-CFG\_\-LATP\_\-S\_\-MUST\_\-BE\_\-1}}\item[{\em 
\hypertarget{LCBB_8h_a88a31}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-MUST\_\-BE\_\-1}
\label{LCBB_8h_a88a31}
}]Not settable, size in bits \index{LCBB_CFG_LATP_S_BYTE_WIDE@{LCBB\_\-CFG\_\-LATP\_\-S\_\-BYTE\_\-WIDE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_BYTE_WIDE@{LCBB\_\-CFG\_\-LATP\_\-S\_\-BYTE\_\-WIDE}}\item[{\em 
\hypertarget{LCBB_8h_a88a32}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-BYTE\_\-WIDE}
\label{LCBB_8h_a88a32}
}]Bit/Byte path, size in bits \index{LCBB_CFG_LATP_S_RESET@{LCBB\_\-CFG\_\-LATP\_\-S\_\-RESET}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_S_RESET@{LCBB\_\-CFG\_\-LATP\_\-S\_\-RESET}}\item[{\em 
\hypertarget{LCBB_8h_a88a33}{
LCBB\_\-CFG\_\-LATP\_\-S\_\-RESET}
\label{LCBB_8h_a88a33}
}]LATp reset, size in bits \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a89}{
\index{LCBB.h@{LCBB.h}!_LCBB_CFG_LATP_V@{\_\-LCBB\_\-CFG\_\-LATP\_\-V}}
\index{_LCBB_CFG_LATP_V@{\_\-LCBB\_\-CFG\_\-LATP\_\-V}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-CFG\_\-LATP\_\-V]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a89}{\_\-LCBB\_\-CFG\_\-LATP\_\-V}}}
\label{LCBB_8h_a89}


Right justified bit offset of each of the bit fields in the LATp configuration word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_CFG_LATP_V_USER0@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER0}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_USER0@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER0}}\item[{\em 
\hypertarget{LCBB_8h_a89a34}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-USER0}
\label{LCBB_8h_a89a34}
}]User field 0, right offset \index{LCBB_CFG_LATP_V_EVT_ENABLE@{LCBB\_\-CFG\_\-LATP\_\-V\_\-EVT\_\-ENABLE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_EVT_ENABLE@{LCBB\_\-CFG\_\-LATP\_\-V\_\-EVT\_\-ENABLE}}\item[{\em 
\hypertarget{LCBB_8h_a89a35}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-EVT\_\-ENABLE}
\label{LCBB_8h_a89a35}
}]Event enable, right offset \index{LCBB_CFG_LATP_V_USER1@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER1}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_USER1@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER1}}\item[{\em 
\hypertarget{LCBB_8h_a89a36}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-USER1}
\label{LCBB_8h_a89a36}
}]User field 1, right offset \index{LCBB_CFG_LATP_V_USER2@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER2}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_USER2@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER2}}\item[{\em 
\hypertarget{LCBB_8h_a89a37}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-USER2}
\label{LCBB_8h_a89a37}
}]User field 2, right offset \index{LCBB_CFG_LATP_V_HDR_PARITY@{LCBB\_\-CFG\_\-LATP\_\-V\_\-HDR\_\-PARITY}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_HDR_PARITY@{LCBB\_\-CFG\_\-LATP\_\-V\_\-HDR\_\-PARITY}}\item[{\em 
\hypertarget{LCBB_8h_a89a38}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-HDR\_\-PARITY}
\label{LCBB_8h_a89a38}
}]Header parity, right offset \index{LCBB_CFG_LATP_V_PAYLOAD_PARITY@{LCBB\_\-CFG\_\-LATP\_\-V\_\-PAYLOAD\_\-PARITY}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_PAYLOAD_PARITY@{LCBB\_\-CFG\_\-LATP\_\-V\_\-PAYLOAD\_\-PARITY}}\item[{\em 
\hypertarget{LCBB_8h_a89a39}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-PAYLOAD\_\-PARITY}
\label{LCBB_8h_a89a39}
}]Payload parity,right offset \index{LCBB_CFG_LATP_V_PAUSE_TEST@{LCBB\_\-CFG\_\-LATP\_\-V\_\-PAUSE\_\-TEST}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_PAUSE_TEST@{LCBB\_\-CFG\_\-LATP\_\-V\_\-PAUSE\_\-TEST}}\item[{\em 
\hypertarget{LCBB_8h_a89a40}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-PAUSE\_\-TEST}
\label{LCBB_8h_a89a40}
}]Pause test, right offset \index{LCBB_CFG_LATP_V_USER3@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER3}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_USER3@{LCBB\_\-CFG\_\-LATP\_\-V\_\-USER3}}\item[{\em 
\hypertarget{LCBB_8h_a89a41}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-USER3}
\label{LCBB_8h_a89a41}
}]User field 3, right offset \index{LCBB_CFG_LATP_V_BOARD_ID@{LCBB\_\-CFG\_\-LATP\_\-V\_\-BOARD\_\-ID}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_BOARD_ID@{LCBB\_\-CFG\_\-LATP\_\-V\_\-BOARD\_\-ID}}\item[{\em 
\hypertarget{LCBB_8h_a89a42}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-BOARD\_\-ID}
\label{LCBB_8h_a89a42}
}]Board LATp adr,right offset \index{LCBB_CFG_LATP_V_MUST_BE_1@{LCBB\_\-CFG\_\-LATP\_\-V\_\-MUST\_\-BE\_\-1}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_MUST_BE_1@{LCBB\_\-CFG\_\-LATP\_\-V\_\-MUST\_\-BE\_\-1}}\item[{\em 
\hypertarget{LCBB_8h_a89a43}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-MUST\_\-BE\_\-1}
\label{LCBB_8h_a89a43}
}]Not settable, right offset \index{LCBB_CFG_LATP_V_BYTE_WIDE@{LCBB\_\-CFG\_\-LATP\_\-V\_\-BYTE\_\-WIDE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_BYTE_WIDE@{LCBB\_\-CFG\_\-LATP\_\-V\_\-BYTE\_\-WIDE}}\item[{\em 
\hypertarget{LCBB_8h_a89a44}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-BYTE\_\-WIDE}
\label{LCBB_8h_a89a44}
}]Bit/Byte path, right offset \index{LCBB_CFG_LATP_V_RESET@{LCBB\_\-CFG\_\-LATP\_\-V\_\-RESET}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_CFG_LATP_V_RESET@{LCBB\_\-CFG\_\-LATP\_\-V\_\-RESET}}\item[{\em 
\hypertarget{LCBB_8h_a89a45}{
LCBB\_\-CFG\_\-LATP\_\-V\_\-RESET}
\label{LCBB_8h_a89a45}
}]LATp reset, right offset \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a93}{
\index{LCBB.h@{LCBB.h}!_LCBB_XTRACE_OLS_M@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-M}}
\index{_LCBB_XTRACE_OLS_M@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-M}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-XTRACE\_\-OLS\_\-M]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a93}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-M}}}
\label{LCBB_8h_a93}


Defines the in place masks of the opcode/length/status fields. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_XTRACE_M_OLS_OPCODE@{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-OPCODE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_M_OLS_OPCODE@{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-OPCODE}}\item[{\em 
\hypertarget{LCBB_8h_a93a64}{
LCBB\_\-XTRACE\_\-M\_\-OLS\_\-OPCODE}
\label{LCBB_8h_a93a64}
}]Opcode field, in place mask \index{LCBB_XTRACE_M_OLS_LENGTH@{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-LENGTH}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_M_OLS_LENGTH@{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-LENGTH}}\item[{\em 
\hypertarget{LCBB_8h_a93a65}{
LCBB\_\-XTRACE\_\-M\_\-OLS\_\-LENGTH}
\label{LCBB_8h_a93a65}
}]Length field, in place mask \index{LCBB_XTRACE_M_OLS_STATUS@{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-STATUS}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_M_OLS_STATUS@{LCBB\_\-XTRACE\_\-M\_\-OLS\_\-STATUS}}\item[{\em 
\hypertarget{LCBB_8h_a93a66}{
LCBB\_\-XTRACE\_\-M\_\-OLS\_\-STATUS}
\label{LCBB_8h_a93a66}
}]Status field, in place mask \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a91}{
\index{LCBB.h@{LCBB.h}!_LCBB_XTRACE_OLS_S@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-S}}
\index{_LCBB_XTRACE_OLS_S@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-S}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-XTRACE\_\-OLS\_\-S]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a91}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-S}}}
\label{LCBB_8h_a91}


Defines the size, in bits, of the opcode/length/status fields. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_XTRACE_S_OLS_OPCODE@{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-OPCODE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_S_OLS_OPCODE@{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-OPCODE}}\item[{\em 
\hypertarget{LCBB_8h_a91a58}{
LCBB\_\-XTRACE\_\-S\_\-OLS\_\-OPCODE}
\label{LCBB_8h_a91a58}
}]Opcode field, size in bits \index{LCBB_XTRACE_S_OLS_LENGTH@{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-LENGTH}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_S_OLS_LENGTH@{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-LENGTH}}\item[{\em 
\hypertarget{LCBB_8h_a91a59}{
LCBB\_\-XTRACE\_\-S\_\-OLS\_\-LENGTH}
\label{LCBB_8h_a91a59}
}]Length field, size in bits \index{LCBB_XTRACE_S_OLS_STATUS@{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-STATUS}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_S_OLS_STATUS@{LCBB\_\-XTRACE\_\-S\_\-OLS\_\-STATUS}}\item[{\em 
\hypertarget{LCBB_8h_a91a60}{
LCBB\_\-XTRACE\_\-S\_\-OLS\_\-STATUS}
\label{LCBB_8h_a91a60}
}]Status field, size in bits \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a94}{
\index{LCBB.h@{LCBB.h}!_LCBB_XTRACE_OLS_STATUS_K@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K}}
\index{_LCBB_XTRACE_OLS_STATUS_K@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a94}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K}}}
\label{LCBB_8h_a94}


Defines the values for the transaction status field in the OLS (opcode, length, status) field of the trace buffer. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_XTRACE_OLS_STATUS_K_SUCCESS@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-SUCCESS}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_K_SUCCESS@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-SUCCESS}}\item[{\em 
\hypertarget{LCBB_8h_a94a67}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-SUCCESS}
\label{LCBB_8h_a94a67}
}]Transaction was successful \index{LCBB_XTRACE_OLS_STATUS_K_ROGUE@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-ROGUE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_K_ROGUE@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-ROGUE}}\item[{\em 
\hypertarget{LCBB_8h_a94a68}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-ROGUE}
\label{LCBB_8h_a94a68}
}]Transaction was a rogue \index{LCBB_XTRACE_OLS_STATUS_K_NULL@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-NULL}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_K_NULL@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-NULL}}\item[{\em 
\hypertarget{LCBB_8h_a94a69}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-NULL}
\label{LCBB_8h_a94a69}
}]Transaction was a NULL dsc \index{LCBB_XTRACE_OLS_STATUS_K_TIMEOUT@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-TIMEOUT}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_K_TIMEOUT@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-TIMEOUT}}\item[{\em 
\hypertarget{LCBB_8h_a94a70}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-K\_\-TIMEOUT}
\label{LCBB_8h_a94a70}
}]Transaction timed out \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a95}{
\index{LCBB.h@{LCBB.h}!_LCBB_XTRACE_OLS_STATUS_M@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M}}
\index{_LCBB_XTRACE_OLS_STATUS_M@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a95}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M}}}
\label{LCBB_8h_a95}


Defines the in place masks for the transaction status field in the OLS (opcode, length, status) field of the trace buffer. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_XTRACE_OLS_STATUS_M_SUCCESS@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-SUCCESS}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_M_SUCCESS@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-SUCCESS}}\item[{\em 
\hypertarget{LCBB_8h_a95a71}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-SUCCESS}
\label{LCBB_8h_a95a71}
}]Transaction was successful, in place mask \index{LCBB_XTRACE_OLS_STATUS_M_ROGUE@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-ROGUE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_M_ROGUE@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-ROGUE}}\item[{\em 
\hypertarget{LCBB_8h_a95a72}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-ROGUE}
\label{LCBB_8h_a95a72}
}]Transaction was a rogue, in place mask \index{LCBB_XTRACE_OLS_STATUS_M_NULL@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-NULL}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_M_NULL@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-NULL}}\item[{\em 
\hypertarget{LCBB_8h_a95a73}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-NULL}
\label{LCBB_8h_a95a73}
}]Transacction was a null, in place mask \index{LCBB_XTRACE_OLS_STATUS_M_TIMEOUT@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-TIMEOUT}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_STATUS_M_TIMEOUT@{LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-TIMEOUT}}\item[{\em 
\hypertarget{LCBB_8h_a95a74}{
LCBB\_\-XTRACE\_\-OLS\_\-STATUS\_\-M\_\-TIMEOUT}
\label{LCBB_8h_a95a74}
}]Transaction timed out, in place mask \end{description}
\end{Desc}

\hypertarget{LCBB_8h_a92}{
\index{LCBB.h@{LCBB.h}!_LCBB_XTRACE_OLS_V@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-V}}
\index{_LCBB_XTRACE_OLS_V@{\_\-LCBB\_\-XTRACE\_\-OLS\_\-V}!LCBB.h@{LCBB.h}}
\subsubsection[\_\-LCBB\_\-XTRACE\_\-OLS\_\-V]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LCBB_8h_a92}{\_\-LCBB\_\-XTRACE\_\-OLS\_\-V}}}
\label{LCBB_8h_a92}


Defines the right offset, in bits of the opcode/length/status fields. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBB_XTRACE_OLS_V_OPCODE@{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-OPCODE}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_V_OPCODE@{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-OPCODE}}\item[{\em 
\hypertarget{LCBB_8h_a92a61}{
LCBB\_\-XTRACE\_\-OLS\_\-V\_\-OPCODE}
\label{LCBB_8h_a92a61}
}]Opcode field, right offset, in bits \index{LCBB_XTRACE_OLS_V_LENGTH@{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-LENGTH}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_V_LENGTH@{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-LENGTH}}\item[{\em 
\hypertarget{LCBB_8h_a92a62}{
LCBB\_\-XTRACE\_\-OLS\_\-V\_\-LENGTH}
\label{LCBB_8h_a92a62}
}]Length field, right offset, in bits \index{LCBB_XTRACE_OLS_V_STATUS@{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-STATUS}!LCBB.h@{LCBB.h}}\index{LCBB.h@{LCBB.h}!LCBB_XTRACE_OLS_V_STATUS@{LCBB\_\-XTRACE\_\-OLS\_\-V\_\-STATUS}}\item[{\em 
\hypertarget{LCBB_8h_a92a63}{
LCBB\_\-XTRACE\_\-OLS\_\-V\_\-STATUS}
\label{LCBB_8h_a92a63}
}]Status field, right offset, in bits \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{LCBB_8h_a80}{
\index{LCBB.h@{LCBB.h}!LCBB_check@{LCBB\_\-check}}
\index{LCBB_check@{LCBB\_\-check}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-check]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-check (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, \hyperlink{struct__LCBB__msg}{LCBB\_\-msg} $\ast$ {\em msg})}}
\label{LCBB_8h_a80}


Maps the LCB error codes to a LCB message code. 

\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em LCBB\_\-OK}]if message is okay \item[{\em LCB}]message code if not\end{description}
\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCB structure \item[{\em msg}]The LCB message\end{description}
\end{Desc}
\begin{Desc}
\item[]This maps the LCB transfer and receive errors into standard LCBB message codes. If there are no transfer or receive errors, LCBB\_\-OK is returned.\end{Desc}
\hypertarget{LCBB_8h_a75}{
\index{LCBB.h@{LCBB.h}!LCBB_configure@{LCBB\_\-configure}}
\index{LCBB_configure@{LCBB\_\-configure}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-configure]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB}{LCBB} LCBB\_\-configure (unsigned int {\em latp}, void $\ast$ {\em request\-List}, void $\ast$ {\em result\-List}, void $\ast$ {\em circ\-Buffer})}}
\label{LCBB_8h_a75}


Returns a pointer to the LCB control structure, with the specified configuration parameters. 

\begin{Desc}
\item[Returns:]A pointer to the LCB control structure\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em latp}]The LATp configuration information presented as 16 select bits and 16 value bits. Only those bits with their corresponding select bits set will be altered. \item[{\em request\-List}]An array of 4096 bytes aligned on a 512 byte boundary. This memory will be used to construct request lists. It is from this memory that space for LCB-to-LCB traffic,\end{description}
\end{Desc}
\begin{Desc}
\item[See also:]\hyperlink{LCBB_8h_a79}{LCBB\_\-send}, is carved. \end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em result\-List}]As array of 4096 bytes aligned on a 16 byte boundary. This memory will be used to hold result lists. \item[{\em circ\-Buffer}]An array of LCB\_\-CIRC\_\-BUFFER\_\-TOTAL (640Kbytes) align on a LCB\_\-CIRC\_\-BUFFER\_\-ALIGN (1Mbyte) boundary. This memory will be used to hold incoming 'event' traffic.\end{description}
\end{Desc}
\begin{Desc}
\item[]The last three parameters are self-explanatory. The {\em latp\/} parameter deserves some special attention. There are a number of values that configure the LATp side behaviour of the LCB. The {\em latp\/} parameter provides a method of altering only those values that the caller wishes. It does this by defining the lower 16 bits as the value bits and the upper 16 bits as the selection bits. Only value bits with corresponding field selection bits set will be altered.\end{Desc}
\begin{Desc}
\item[]The set-up of this parameter is largely determined by whether the LCB is acting as a commander (SIU) or a responder (EPU). A typical configuration might be\end{Desc}


\footnotesize\begin{verbatim}                           SIU     EPU
       commander             1       -
       evt_path              -       -
       cmd_path              -       -
       hdr_parity            -       -
       payload_parity        -       -
       pause_test            -       -
       pause_stick           -       -
       board_id              v       -
       byte_wide             v       -
\end{verbatim}
\normalsize


\begin{Desc}
\item[]Where the {\em v's\/} represent a configurable value and the @ -'s represent bits that should not be altered. The corresponding code would look like for an SIU would look like\end{Desc}


\footnotesize\begin{verbatim}      LCBB_latp_cfg  latp;

      latp.ui                  = 0;
      latp.sv.value.command    = 1;
      latp.sv.value.board_id   = board_id;
      latp.sv.value.byte_wide  = 1;
      latp.sv.select.command   = LCBB_LATP_SELECT;
      latp.sv.select.board_id  = LCBB_LATP_SELECT;
      latp.sv.select.byte_wide = LCBB_LATP_SELECT;
      LCBB_configure (latp.ui,
                      requestList,
                      resultList,
                      circBuffer);
\end{verbatim}
\normalsize


\begin{Desc}
\item[]The EPU would simple passs a 0, since it does wish to alter any fields.\end{Desc}
\begin{Desc}
\item[Note:]For the most current usage of these bits, see the corresponding fields in the LCB\_\-csr definitions (\hyperlink{LCB__cr_8h}{LCB\_\-cr.h}). Some of these bits have only have meaning in on the SIU or EPU and some only have meaning when not in a system with a GASU. An example of the latter is the commander select. In a GASU based system, this functionality is set on the\end{Desc}
\hypertarget{LCBB_8h_a85}{
\index{LCBB.h@{LCBB.h}!LCBB_csr_access@{LCBB\_\-csr\_\-access}}
\index{LCBB_csr_access@{LCBB\_\-csr\_\-access}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-csr\_\-access]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-csr\_\-access (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, unsigned int {\em value}, unsigned int {\em field\_\-select}, unsigned short int {\em timeout}, unsigned int $\ast$ {\em prv}, unsigned int $\ast$ {\em cur})}}
\label{LCBB_8h_a85}


Does an access of the LATp CSR register. 

\begin{Desc}
\item[Returns:]Status\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to the LCBB control structure \item[{\em value}]The value to write to the register \item[{\em field\_\-select}]A bit map indicating which fields of {\em value\/} should be written to the register. \item[{\em timeout}]The number of 20MHz ticks that the LCB should wait for a response before timing out. \item[{\em prv}]A pointer to receive the previous value \item[{\em cur}]A pointer to receive the current value\end{description}
\end{Desc}
\hypertarget{LCBB_8h_a86}{
\index{LCBB.h@{LCBB.h}!LCBB_faults_access@{LCBB\_\-faults\_\-access}}
\index{LCBB_faults_access@{LCBB\_\-faults\_\-access}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-faults\_\-access]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-faults\_\-access (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, unsigned int {\em value}, unsigned int {\em field\_\-select}, unsigned short int {\em timeout}, unsigned int $\ast$ {\em prv}, unsigned int $\ast$ {\em cur})}}
\label{LCBB_8h_a86}


Does an access of the LATp CSR register. 

\begin{Desc}
\item[Returns:]Status\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to the LCBB control structure \item[{\em value}]The value to write to the register \item[{\em field\_\-select}]A bit map indicating which fields of {\em value\/} should be written to the register. \item[{\em timeout}]The number of 20MHz ticks that the LCB should wait for a response before timing out. \item[{\em prv}]A pointer to receive the previous value \item[{\em cur}]A pointer to receive the current value\end{description}
\end{Desc}
\hypertarget{LCBB_8h_a82}{
\index{LCBB.h@{LCBB.h}!LCBB_free@{LCBB\_\-free}}
\index{LCBB_free@{LCBB\_\-free}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-free]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-free (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, \hyperlink{struct__LCBB__msg}{LCBB\_\-msg} $\ast$ {\em msg})}}
\label{LCBB_8h_a82}


\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCB structure \item[{\em msg}]Pointer to a pointer to a message\end{description}
\end{Desc}
\hypertarget{LCBB_8h_a76}{
\index{LCBB.h@{LCBB.h}!LCBB_init@{LCBB\_\-init}}
\index{LCBB_init@{LCBB\_\-init}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-init]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-init (\hyperlink{struct__LCBB}{LCBB} {\em lcb})}}
\label{LCBB_8h_a76}


Initializes the LCB structure for polled mode. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCB structure \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]LCBB\_\-OK for success\end{Desc}
\begin{Desc}
\item[]Probe the PCI bus looking for the LCB. When the board is found store the mapping for the PCI I/O space and PCI Memory space.\end{Desc}
\hypertarget{LCBB_8h_a84}{
\index{LCBB.h@{LCBB.h}!LCBB_lat_reset@{LCBB\_\-lat\_\-reset}}
\index{LCBB_lat_reset@{LCBB\_\-lat\_\-reset}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-lat\_\-reset]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-lat\_\-reset (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, unsigned short int {\em stall})}}
\label{LCBB_8h_a84}


Issues a LAT reset. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to the LCBB control structure \item[{\em stall}]The stall time, in units of 20MHz ticks until the next command can be issued.\end{description}
\end{Desc}
\begin{Desc}
\item[]It would be rare to issue a LAT reset in the context of the boot code, but it has been included for completeness.\end{Desc}
\hypertarget{LCBB_8h_a78}{
\index{LCBB.h@{LCBB.h}!LCBB_locate@{LCBB\_\-locate}}
\index{LCBB_locate@{LCBB\_\-locate}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-locate]{\setlength{\rightskip}{0pt plus 5cm}unsigned char$\ast$ LCBB\_\-locate (\hyperlink{struct__LCBB}{LCBB} {\em lcb})}}
\label{LCBB_8h_a78}


Returns a pointer to payload. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCB structure \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Pointer to store the payload\end{Desc}
The pointer is guaranteed to be 32-bit aligned.

\begin{Desc}
\item[Warning:]It is the user responsibility to limit the transfer to LCB\_\-TRANSFER\_\-MAX bytes.\end{Desc}
\hypertarget{LCBB_8h_a83}{
\index{LCBB.h@{LCBB.h}!LCBB_mark_time@{LCBB\_\-mark\_\-time}}
\index{LCBB_mark_time@{LCBB\_\-mark\_\-time}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-mark\_\-time]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-mark\_\-time (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, unsigned short int {\em stall})}}
\label{LCBB_8h_a83}


Issues a Mark Time command to the LCB. 

\begin{Desc}
\item[Returns:]Status\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to the LCBB control structure \item[{\em stall}]The amount of time to stall, in units of 20MHz ticks\end{description}
\end{Desc}
\begin{Desc}
\item[]It would be rare that a mark time command would be issued in the boot code environment. Mainly, this is a command to meter out items in a command list. The one possible use is as a 'innocous' command to see if the LATp side of the LCB is alive; {\em i.e\/}. a probe usage.\end{Desc}
\hypertarget{LCBB_8h_a81}{
\index{LCBB.h@{LCBB.h}!LCBB_receive@{LCBB\_\-receive}}
\index{LCBB_receive@{LCBB\_\-receive}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-receive]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LCBB__msg}{LCBB\_\-msg}$\ast$ LCBB\_\-receive (\hyperlink{struct__LCBB}{LCBB} {\em lcb})}}
\label{LCBB_8h_a81}


Reads the event FIFO for descriptors. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCBB structure \end{description}
\end{Desc}
\begin{Desc}
\item[Return values:]
\begin{description}
\item[{\em If}]there is a message, a pointer to the received message \item[{\em If}]these is no message, NUL,\end{description}
\end{Desc}
\begin{Desc}
\item[]Call this function to check if any event data has been received. When a descriptor is found the LCBB\_\-msg pointer is initialized and the event descriptor read from the FIFO is returned. Since this is a non-blocking routine, it is meant to be used in a polling mode style, returning a non-NULL LCBB\_\-msg pointer only when there is a message available. Note that the user data starts {\em after\/} the pad area, defined bu LCB\_\-msg\_\-hdr.\end{Desc}
\begin{Desc}
\item[]The caller of this function {\em must\/} absolutely check the event descriptor for errors before trying to use the LCBB\_\-msg pointer. This can be done either by the user directly accessing the status fields in the event descriptor (stored in the LCBB\_\-msg itself) or by using the LCBB\_\-check function.\end{Desc}
\hypertarget{LCBB_8h_a87}{
\index{LCBB.h@{LCBB.h}!LCBB_rxstats_access@{LCBB\_\-rxstats\_\-access}}
\index{LCBB_rxstats_access@{LCBB\_\-rxstats\_\-access}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-rxstats\_\-access]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-rxstats\_\-access (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, unsigned int {\em value}, unsigned int {\em field\_\-select}, unsigned short int {\em timeout}, unsigned int $\ast$ {\em prv}, unsigned int $\ast$ {\em cur})}}
\label{LCBB_8h_a87}


Does an access of the LATp Receive Statistics/Status register. 

\begin{Desc}
\item[Returns:]Status\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to the LCBB control structure \item[{\em value}]The value to write to the register \item[{\em field\_\-select}]A bit map indicating which fields of {\em value\/} should be written to the register. \item[{\em timeout}]The number of 20MHz ticks that the LCB should wait for a response before timing out. \item[{\em prv}]A pointer to receive the previous value \item[{\em cur}]A pointer to receive the current value\end{description}
\end{Desc}
\hypertarget{LCBB_8h_a79}{
\index{LCBB.h@{LCBB.h}!LCBB_send@{LCBB\_\-send}}
\index{LCBB_send@{LCBB\_\-send}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-send]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-send (\hyperlink{struct__LCBB}{LCBB} {\em lcb}, unsigned int {\em dst}, unsigned int {\em proto}, int {\em nbytes})}}
\label{LCBB_8h_a79}


Sends the data. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCBB structure \item[{\em dst}]LATp destination fabric address, physical \item[{\em proto}]2-bit LATp protocol to use when sending bulk data \item[{\em nbytes}]The number of bytes to send. Note that this length must include the 4 bytes of the LATP packet header \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]LCBB\_\-OK for success\end{Desc}
\begin{Desc}
\item[Warning:]Make sure the {\em nbytes\/} parameter includes the length of the data plus the 4 bytes of the LATP packet header word. This was a struggle, trying to define whether the length word should be only the length of what has traditionally been called the user data (excludes the the LATp header and the word that the EBM would fill) or whether it should include the 4 bytes of the LATp and EBM word. In the end, the decision was driven by the fact that the numbers floating around describing the limits on the data transfer size have been quoted as including the 4 bytes.\end{Desc}
\hypertarget{LCBB_8h_a77}{
\index{LCBB.h@{LCBB.h}!LCBB_start@{LCBB\_\-start}}
\index{LCBB_start@{LCBB\_\-start}!LCBB.h@{LCBB.h}}
\subsubsection[LCBB\_\-start]{\setlength{\rightskip}{0pt plus 5cm}unsigned int LCBB\_\-start (\hyperlink{struct__LCBB}{LCBB} {\em lcb})}}
\label{LCBB_8h_a77}


Enables the LCB for taking event data. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em lcb}]Pointer to private LCBB structure \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]LCBB\_\-OK for success\end{Desc}
