\hypertarget{BFM_8c}{
\section{BFM.c File Reference}
\label{BFM_8c}\index{BFM.c@{BFM.c}}
}
Balloon Flight (VME) Modules, Implementation. 


{\tt \#include $<$bstring.h$>$}\par
{\tt \#include \char`\"{}BBC/SPIN.h\char`\"{}}\par
{\tt \#include \char`\"{}BTU/TEM\_\-ids.h\char`\"{}}\par
{\tt \#include \char`\"{}BTU/TEM.h\char`\"{}}\par
{\tt \#include \char`\"{}BFU/BFM.h\char`\"{}}\par
\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct \hyperlink{struct__BFM__dsc}{\_\-BFM\_\-dsc}
\begin{CompactList}\small\item\em Captures all information about the TEMs and FPGAs.\item\end{CompactList}\item 
struct \hyperlink{struct__BFM__opStatus}{\_\-BFM\_\-op\-Status}
\begin{CompactList}\small\item\em Captures the status of a given operation.\item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{BFM_8c_a0}{
\index{BFM_opId@{BFM\_\-opId}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_opId@{BFM\_\-op\-Id}}
typedef enum \hyperlink{BFM_8c_a49}{\_\-BFM\_\-op\-Id} \hyperlink{BFM_8c_a0}{BFM\_\-op\-Id}}
\label{BFM_8c_a0}

\begin{CompactList}\small\item\em Typedef for enum \_\-BFM\_\-op\-Id.\item\end{CompactList}\item 
\hypertarget{BFM_8c_a1}{
\index{BFM_opMsk@{BFM\_\-opMsk}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_opMsk@{BFM\_\-op\-Msk}}
typedef enum \hyperlink{BFM_8c_a50}{\_\-BFM\_\-op\-Msk} \hyperlink{BFM_8c_a1}{BFM\_\-op\-Msk}}
\label{BFM_8c_a1}

\begin{CompactList}\small\item\em Typedef for enum \_\-BFM\_\-op\-Msk.\item\end{CompactList}\item 
\hypertarget{BFM_8c_a2}{
\index{BFM_opStatus@{BFM\_\-opStatus}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_opStatus@{BFM\_\-op\-Status}}
typedef \hyperlink{struct__BFM__opStatus}{\_\-BFM\_\-op\-Status} \hyperlink{BFM_8c_a2}{BFM\_\-op\-Status}}
\label{BFM_8c_a2}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__BFM__opStatus}{\_\-BFM\_\-op\-Status}.\item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{BFM_8c_a49}{\_\-BFM\_\-op\-Id} \{ \hyperlink{BFM_8c_a49a3}{BFM\_\-C\_\-OP\_\-TEMS\_\-ADD} =  0, 
\hyperlink{BFM_8c_a49a4}{BFM\_\-C\_\-OP\_\-FPGAS\_\-ADD} =  1, 
\hyperlink{BFM_8c_a49a5}{BFM\_\-C\_\-OP\_\-TEMS\_\-PROBE} =  2, 
\hyperlink{BFM_8c_a49a6}{BFM\_\-C\_\-OP\_\-TEMS\_\-PRESET} =  3, 
\hyperlink{BFM_8c_a49a7}{BFM\_\-C\_\-OP\_\-FPGAS\_\-LOAD} =  4, 
\hyperlink{BFM_8c_a49a8}{BFM\_\-C\_\-OP\_\-TEMS\_\-RESET} =  5, 
\hyperlink{BFM_8c_a49a9}{BFM\_\-C\_\-OP\_\-TEMS\_\-READY} =  6, 
\hyperlink{BFM_8c_a49a10}{BFM\_\-C\_\-OP\_\-CNT} =  7
 \}
\begin{CompactList}\small\item\em Enumerates the list of possible operations.\item\end{CompactList}\item 
enum \hyperlink{BFM_8c_a50}{\_\-BFM\_\-op\-Msk} \{ {\bf BFM\_\-M\_\-OP\_\-TEMS\_\-ADD} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-TEMS\_\-ADD), 
{\bf BFM\_\-M\_\-OP\_\-FPGAS\_\-ADD} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-FPGAS\_\-ADD), 
{\bf BFM\_\-M\_\-OP\_\-TEMS\_\-PROBE} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-TEMS\_\-PROBE), 
{\bf BFM\_\-M\_\-OP\_\-TEMS\_\-PRESET} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-TEMS\_\-PRESET), 
{\bf BFM\_\-M\_\-OP\_\-FPGAS\_\-LOAD} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-FPGAS\_\-LOAD), 
{\bf BFM\_\-M\_\-OP\_\-TEMS\_\-RESET} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-TEMS\_\-RESET), 
{\bf BFM\_\-M\_\-OP\_\-TEMS\_\-READY} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-TEMS\_\-READY), 
{\bf BFM\_\-M\_\-OP\_\-MSK} =  (1 $<$$<$ BFM\_\-C\_\-OP\_\-CNT) - 1
 \}
\begin{CompactList}\small\item\em Enumerates the list of possible operations as masks.\item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
unsigned int \hyperlink{BFM_8c_a19}{set\-Status} (\hyperlink{BFM_8c_a2}{BFM\_\-op\-Status} $\ast$op\-Sts, \hyperlink{BFM_8c_a0}{BFM\_\-op\-Id} op\-Id, \hyperlink{BFM_8h_a1}{BFM\_\-op\-Target} op\-Target, unsigned int target\-Set, unsigned int failures)
\begin{CompactList}\small\item\em Internal routine to complete the operations status block.\item\end{CompactList}\item 
\hypertarget{BFM_8c_a20}{
\index{BFM_get@{BFM\_\-get}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_get@{BFM\_\-get}}
\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$ {\bf BFM\_\-get} (void)}
\label{BFM_8c_a20}

\item 
\hypertarget{BFM_8c_a21}{
\index{BFM_describe@{BFM\_\-describe}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_describe@{BFM\_\-describe}}
unsigned int {\bf BFM\_\-describe} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int request\-Tems, const unsigned vme\-Adrs\mbox{[}TEM\_\-C\_\-CNT\mbox{]}, const struct \_\-TEM\_\-tem\-Dsc $\ast$const tem\-Dscs\mbox{[}TEM\_\-C\_\-CNT\mbox{]}, const struct \_\-FPGA\_\-ttc\-Hdr $\ast$const fpga\-Ttcs\mbox{[}TEM\_\-C\_\-FPGA\_\-CNT\mbox{]}, const struct \_\-TEM\_\-fpga\-Dsc $\ast$const fpga\-Dscs\mbox{[}TEM\_\-C\_\-FPGA\_\-CNT\mbox{]})}
\label{BFM_8c_a21}

\item 
\hypertarget{BFM_8c_a22}{
\index{BFM_initialize@{BFM\_\-initialize}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_initialize@{BFM\_\-initialize}}
unsigned int {\bf BFM\_\-initialize} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a22}

\item 
\hypertarget{BFM_8c_a23}{
\index{BFM_opsAttempted@{BFM\_\-opsAttempted}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_opsAttempted@{BFM\_\-ops\-Attempted}}
unsigned int {\bf BFM\_\-ops\-Attempted} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a23}

\item 
\hypertarget{BFM_8c_a24}{
\index{BFM_opErrors@{BFM\_\-opErrors}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_opErrors@{BFM\_\-op\-Errors}}
unsigned int {\bf BFM\_\-op\-Errors} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a24}

\item 
\hypertarget{BFM_8c_a25}{
\index{BFM_opReport@{BFM\_\-opReport}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_opReport@{BFM\_\-op\-Report}}
void {\bf BFM\_\-op\-Report} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int operations, \hyperlink{BFM_8h_a2}{BFM\_\-op\-Reporter} reporter, void $\ast$parameter)}
\label{BFM_8c_a25}

\item 
\hypertarget{BFM_8c_a26}{
\index{BFM_fpgasL1tCounterClear@{BFM\_\-fpgasL1tCounterClear}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasL1tCounterClear@{BFM\_\-fpgas\-L1t\-Counter\-Clear}}
unsigned int {\bf BFM\_\-fpgas\-L1t\-Counter\-Clear} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List)}
\label{BFM_8c_a26}

\item 
\hypertarget{BFM_8c_a27}{
\index{BFM_fpgasL1tTimerClear@{BFM\_\-fpgasL1tTimerClear}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasL1tTimerClear@{BFM\_\-fpgas\-L1t\-Timer\-Clear}}
unsigned int {\bf BFM\_\-fpgas\-L1t\-Timer\-Clear} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List)}
\label{BFM_8c_a27}

\item 
\hypertarget{BFM_8c_a28}{
\index{BFM_fpgasBistWrite@{BFM\_\-fpgasBistWrite}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasBistWrite@{BFM\_\-fpgas\-Bist\-Write}}
unsigned int {\bf BFM\_\-fpgas\-Bist\-Write} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List, unsigned int bist\-List)}
\label{BFM_8c_a28}

\item 
\hypertarget{BFM_8c_a29}{
\index{BFM_fpgasHfullClrWrite@{BFM\_\-fpgasHfullClrWrite}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasHfullClrWrite@{BFM\_\-fpgas\-Hfull\-Clr\-Write}}
unsigned int {\bf BFM\_\-fpgas\-Hfull\-Clr\-Write} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List, unsigned int hfull\-List)}
\label{BFM_8c_a29}

\item 
\hypertarget{BFM_8c_a30}{
\index{BFM_fpgasHfullEnbWrite@{BFM\_\-fpgasHfullEnbWrite}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasHfullEnbWrite@{BFM\_\-fpgas\-Hfull\-Enb\-Write}}
unsigned int {\bf BFM\_\-fpgas\-Hfull\-Enb\-Write} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List, unsigned int hfull\-List)}
\label{BFM_8c_a30}

\item 
\hypertarget{BFM_8c_a31}{
\index{BFM_fpgasLoaded@{BFM\_\-fpgasLoaded}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasLoaded@{BFM\_\-fpgas\-Loaded}}
unsigned int {\bf BFM\_\-fpgas\-Loaded} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a31}

\item 
\hypertarget{BFM_8c_a32}{
\index{BFM_fpgasLogicClear@{BFM\_\-fpgasLogicClear}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasLogicClear@{BFM\_\-fpgas\-Logic\-Clear}}
unsigned int {\bf BFM\_\-fpgas\-Logic\-Clear} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List)}
\label{BFM_8c_a32}

\item 
\hypertarget{BFM_8c_a33}{
\index{BFM_fpgasTemsGet@{BFM\_\-fpgasTemsGet}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasTemsGet@{BFM\_\-fpgas\-Tems\-Get}}
unsigned int {\bf BFM\_\-fpgas\-Tems\-Get} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List)}
\label{BFM_8c_a33}

\item 
\hypertarget{BFM_8c_a34}{
\index{BFM_temsFpgasGet@{BFM\_\-temsFpgasGet}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsFpgasGet@{BFM\_\-tems\-Fpgas\-Get}}
unsigned int {\bf BFM\_\-tems\-Fpgas\-Get} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int tem\-List)}
\label{BFM_8c_a34}

\item 
\hypertarget{BFM_8c_a35}{
\index{BFM_fpgas@{BFM\_\-fpgas}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgas@{BFM\_\-fpgas}}
const struct \_\-TEM\_\-fpga $\ast$ {\bf BFM\_\-fpgas} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a35}

\item 
\hypertarget{BFM_8c_a36}{
\index{BFM_fpgasRdoBsyMinMaxWrite@{BFM\_\-fpgasRdoBsyMinMaxWrite}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasRdoBsyMinMaxWrite@{BFM\_\-fpgas\-Rdo\-Bsy\-Min\-Max\-Write}}
unsigned int {\bf BFM\_\-fpgas\-Rdo\-Bsy\-Min\-Max\-Write} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List, unsigned int mode\-List)}
\label{BFM_8c_a36}

\item 
\hypertarget{BFM_8c_a37}{
\index{BFM_fpgasRdoModeWrite@{BFM\_\-fpgasRdoModeWrite}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_fpgasRdoModeWrite@{BFM\_\-fpgas\-Rdo\-Mode\-Write}}
unsigned int {\bf BFM\_\-fpgas\-Rdo\-Mode\-Write} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int fpga\-List, unsigned int mode\-List)}
\label{BFM_8c_a37}

\item 
\hypertarget{BFM_8c_a38}{
\index{BFM_tems@{BFM\_\-tems}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_tems@{BFM\_\-tems}}
const struct \_\-TEM\_\-tem $\ast$ {\bf BFM\_\-tems} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a38}

\item 
\hypertarget{BFM_8c_a39}{
\index{BFM_temsFifosReset@{BFM\_\-temsFifosReset}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsFifosReset@{BFM\_\-tems\-Fifos\-Reset}}
unsigned int {\bf BFM\_\-tems\-Fifos\-Reset} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int tem\-List)}
\label{BFM_8c_a39}

\item 
\hypertarget{BFM_8c_a40}{
\index{BFM_temsPresent@{BFM\_\-temsPresent}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsPresent@{BFM\_\-tems\-Present}}
unsigned int {\bf BFM\_\-tems\-Present} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a40}

\item 
\hypertarget{BFM_8c_a41}{
\index{BFM_temsReadied@{BFM\_\-temsReadied}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsReadied@{BFM\_\-tems\-Readied}}
unsigned int {\bf BFM\_\-tems\-Readied} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a41}

\item 
\hypertarget{BFM_8c_a42}{
\index{BFM_temsScopeBitClear@{BFM\_\-temsScopeBitClear}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsScopeBitClear@{BFM\_\-tems\-Scope\-Bit\-Clear}}
unsigned int {\bf BFM\_\-tems\-Scope\-Bit\-Clear} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int tem\-List)}
\label{BFM_8c_a42}

\item 
\hypertarget{BFM_8c_a43}{
\index{BFM_temsScopeBitSet@{BFM\_\-temsScopeBitSet}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsScopeBitSet@{BFM\_\-tems\-Scope\-Bit\-Set}}
unsigned int {\bf BFM\_\-tems\-Scope\-Bit\-Set} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int tem\-List)}
\label{BFM_8c_a43}

\item 
\hypertarget{BFM_8c_a44}{
\index{BFM_temsScopeBitToggle@{BFM\_\-temsScopeBitToggle}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_temsScopeBitToggle@{BFM\_\-tems\-Scope\-Bit\-Toggle}}
unsigned int {\bf BFM\_\-tems\-Scope\-Bit\-Toggle} (\hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm, unsigned int tem\-List)}
\label{BFM_8c_a44}

\item 
\hypertarget{BFM_8c_a45}{
\index{BFM_vmeAdrsByTem@{BFM\_\-vmeAdrsByTem}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_vmeAdrsByTem@{BFM\_\-vme\-Adrs\-By\-Tem}}
const unsigned int $\ast$ {\bf BFM\_\-vme\-Adrs\-By\-Tem} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a45}

\item 
\hypertarget{BFM_8c_a46}{
\index{BFM_vmeAdrsByFpga@{BFM\_\-vmeAdrsByFpga}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_vmeAdrsByFpga@{BFM\_\-vme\-Adrs\-By\-Fpga}}
const unsigned int $\ast$ {\bf BFM\_\-vme\-Adrs\-By\-Fpga} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a46}

\item 
\hypertarget{BFM_8c_a47}{
\index{BFM_lclAdrsByTem@{BFM\_\-lclAdrsByTem}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_lclAdrsByTem@{BFM\_\-lcl\-Adrs\-By\-Tem}}
volatile unsigned int $\ast$const $\ast$ {\bf BFM\_\-lcl\-Adrs\-By\-Tem} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a47}

\item 
\hypertarget{BFM_8c_a48}{
\index{BFM_lclAdrsByFpga@{BFM\_\-lclAdrsByFpga}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_lclAdrsByFpga@{BFM\_\-lcl\-Adrs\-By\-Fpga}}
volatile unsigned int $\ast$const $\ast$ {\bf BFM\_\-lcl\-Adrs\-By\-Fpga} (const \hyperlink{BFM_8h_a0}{BFM\_\-dsc} $\ast$bfm)}
\label{BFM_8c_a48}

\end{CompactItemize}


\subsection{Detailed Description}
Balloon Flight (VME) Modules, Implementation.



\begin{Desc}
\item[Author: ]\par
JJRussell - \href{mailto:russell@slac.stanford.edu}{\tt russell@slac.stanford.edu}\end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{BFM_8c_a49}{
\index{BFM.c@{BFM.c}!_BFM_opId@{\_\-BFM\_\-opId}}
\index{_BFM_opId@{\_\-BFM\_\-opId}!BFM.c@{BFM.c}}
\subsubsection[\_\-BFM\_\-opId]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFM\_\-op\-Id}}
\label{BFM_8c_a49}


Enumerates the list of possible operations.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFM_C_OP_TEMS_ADD@{BFM\_\-C\_\-OP\_\-TEMS\_\-ADD}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_TEMS_ADD@{BFM\_\-C\_\-OP\_\-TEMS\_\-ADD}}\item[{\em 
\hypertarget{BFM_8c_a49a3}{
{\em BFM\_\-C\_\-OP\_\-TEMS\_\-ADD}}
\label{BFM_8c_a49a3}
}]Add a TEM to the list of known TEMs \index{BFM_C_OP_FPGAS_ADD@{BFM\_\-C\_\-OP\_\-FPGAS\_\-ADD}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_FPGAS_ADD@{BFM\_\-C\_\-OP\_\-FPGAS\_\-ADD}}\item[{\em 
\hypertarget{BFM_8c_a49a4}{
{\em BFM\_\-C\_\-OP\_\-FPGAS\_\-ADD}}
\label{BFM_8c_a49a4}
}]Add a FPGA to the list of known FPGAs \index{BFM_C_OP_TEMS_PROBE@{BFM\_\-C\_\-OP\_\-TEMS\_\-PROBE}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_TEMS_PROBE@{BFM\_\-C\_\-OP\_\-TEMS\_\-PROBE}}\item[{\em 
\hypertarget{BFM_8c_a49a5}{
{\em BFM\_\-C\_\-OP\_\-TEMS\_\-PROBE}}
\label{BFM_8c_a49a5}
}]Probe VME bus to check TEM presence \index{BFM_C_OP_TEMS_PRESET@{BFM\_\-C\_\-OP\_\-TEMS\_\-PRESET}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_TEMS_PRESET@{BFM\_\-C\_\-OP\_\-TEMS\_\-PRESET}}\item[{\em 
\hypertarget{BFM_8c_a49a6}{
{\em BFM\_\-C\_\-OP\_\-TEMS\_\-PRESET}}
\label{BFM_8c_a49a6}
}]TEMs =$>$ known state, before load \index{BFM_C_OP_FPGAS_LOAD@{BFM\_\-C\_\-OP\_\-FPGAS\_\-LOAD}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_FPGAS_LOAD@{BFM\_\-C\_\-OP\_\-FPGAS\_\-LOAD}}\item[{\em 
\hypertarget{BFM_8c_a49a7}{
{\em BFM\_\-C\_\-OP\_\-FPGAS\_\-LOAD}}
\label{BFM_8c_a49a7}
}]Loads the FPGAs on a TEM board \index{BFM_C_OP_TEMS_RESET@{BFM\_\-C\_\-OP\_\-TEMS\_\-RESET}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_TEMS_RESET@{BFM\_\-C\_\-OP\_\-TEMS\_\-RESET}}\item[{\em 
\hypertarget{BFM_8c_a49a8}{
{\em BFM\_\-C\_\-OP\_\-TEMS\_\-RESET}}
\label{BFM_8c_a49a8}
}]TEMS =$>$ nto a known state, after load \index{BFM_C_OP_TEMS_READY@{BFM\_\-C\_\-OP\_\-TEMS\_\-READY}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_TEMS_READY@{BFM\_\-C\_\-OP\_\-TEMS\_\-READY}}\item[{\em 
\hypertarget{BFM_8c_a49a9}{
{\em BFM\_\-C\_\-OP\_\-TEMS\_\-READY}}
\label{BFM_8c_a49a9}
}]Readies a TEM for use \index{BFM_C_OP_CNT@{BFM\_\-C\_\-OP\_\-CNT}!BFM.c@{BFM.c}}\index{BFM.c@{BFM.c}!BFM_C_OP_CNT@{BFM\_\-C\_\-OP\_\-CNT}}\item[{\em 
\hypertarget{BFM_8c_a49a10}{
{\em BFM\_\-C\_\-OP\_\-CNT}}
\label{BFM_8c_a49a10}
}]A count of the total number of ops \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{BFM_8c_a19}{
\index{BFM.c@{BFM.c}!setStatus@{setStatus}}
\index{setStatus@{setStatus}!BFM.c@{BFM.c}}
\subsubsection[setStatus]{\setlength{\rightskip}{0pt plus 5cm}unsigned int set\-Status (\hyperlink{BFM_8c_a2}{BFM\_\-op\-Status} $\ast$ {\em op\-Sts}, \hyperlink{BFM_8c_a0}{BFM\_\-op\-Id} {\em op\-Id}, \hyperlink{BFM_8h_a1}{BFM\_\-op\-Target} {\em op\-Target}, unsigned int {\em successes}, unsigned int {\em failures})\hspace{0.3cm}{\tt  \mbox{[}inline, static\mbox{]}}}}
\label{BFM_8c_a19}


Internal routine to complete the operations status block.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
op\-Sts}]The operation status block to complete. \item[{\em 
op\-Id}]The operation id number. \item[{\em 
op\-Target}]The target type of the operation (TEM or FPGA). \item[{\em 
target\-Set}]The target set, expressed as a bit mask, that the operation was attempted on. \item[{\em 
failures}]The target set, expressed as a bit mask, that the operations failed on. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
Either 0, if no failures, or the operation id expressed as a bit mask. This is used to generate summary information. \end{Desc}
