\hypertarget{BFI_8h}{
\section{BFI.h File Reference}
\label{BFI_8h}\index{BFI.h@{BFI.h}}
}
Balloon Flight Interrupt Handling, Interface. 


{\tt \#include \char`\"{}BTU/TEM\_\-ids.h\char`\"{}}\par
{\tt \#include \char`\"{}BTU/TEM\_\-tem\-Int.h\char`\"{}}\par
\subsection*{Defines}
\begin{CompactItemize}
\item 
\hypertarget{BFI_8h_a0}{
\index{BFI_V_INTSRC@{BFI\_\-V\_\-INTSRC}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INTSRC@{BFI\_\-V\_\-INTSRC}}
\#define \hyperlink{BFI_8h_a0}{BFI\_\-V\_\-INTSRC}(\_\-tem, \_\-src)\ (BFI\_\-V\_\-INT\_\-SRC\_\- \#\# \_\-tem + TEM\_\-V\_\-TEM\_\-INT\_\-SRC\_\- \#\#\_\-src - 1)}
\label{BFI_8h_a0}

\begin{CompactList}\small\item\em Internal macro to generate the names of each interrupt in the global interrupt mask.\item\end{CompactList}\item 
\hypertarget{BFI_8h_a1}{
\index{BFI_M_INTSRC@{BFI\_\-M\_\-INTSRC}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INTSRC@{BFI\_\-M\_\-INTSRC}}
\#define \hyperlink{BFI_8h_a1}{BFI\_\-M\_\-INTSRC}(\_\-tem, \_\-src)\ (1 $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-\#\#\_\-tem\#\#\_\-\#\#\_\-src)}
\label{BFI_8h_a1}

\begin{CompactList}\small\item\em Internal macro to generate the names of each interrupt, as a mask, in the global interrupt mask.\item\end{CompactList}\item 
\hypertarget{BFI_8h_a2}{
\index{BFI_M_INTERRSRCTEM@{BFI\_\-M\_\-INTERRSRCTEM}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INTERRSRCTEM@{BFI\_\-M\_\-INTERRSRCTEM}}
\#define \hyperlink{BFI_8h_a2}{BFI\_\-M\_\-INTERRSRCTEM}(\_\-tem, \_\-src)\ (1 $<$$<$ BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-\#\#\_\-tem\#\#\_\-\#\#\_\-src)}
\label{BFI_8h_a2}

\begin{CompactList}\small\item\em Internal macro to generate the names of each interrupt in the global error source interrupt mask.\item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef enum \hyperlink{BFI_8h_a116}{\_\-BFI\_\-V\_\-int\-Src} \hyperlink{BFI_8h_a3}{BFI\_\-V\_\-int\-Src}
\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-V\_\-int.\item\end{CompactList}\item 
typedef enum \hyperlink{BFI_8h_a117}{\_\-BFI\_\-M\_\-int\-Src} \hyperlink{BFI_8h_a4}{BFI\_\-M\_\-int\-Src}
\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-int\-Src\-Msk.\item\end{CompactList}\item 
typedef enum \hyperlink{BFI_8h_a118}{\_\-BFI\_\-V\_\-int\-Src\-Tem} \hyperlink{BFI_8h_a5}{BFI\_\-V\_\-int\-Src\-Tem}
\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-V\_\-int\-Src\-Tem.\item\end{CompactList}\item 
typedef enum \hyperlink{BFI_8h_a119}{\_\-BFI\_\-M\_\-int\-Src\-Tem} \hyperlink{BFI_8h_a6}{BFI\_\-M\_\-int\-Src\-Tem}
\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-M\_\-int\-Src\-Tem.\item\end{CompactList}\item 
\hypertarget{BFI_8h_a7}{
\index{BFI_V_intSrcGbl@{BFI\_\-V\_\-intSrcGbl}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_intSrcGbl@{BFI\_\-V\_\-int\-Src\-Gbl}}
typedef enum \hyperlink{BFI_8h_a120}{\_\-BFI\_\-V\_\-int\-Src\-Gbl} \hyperlink{BFI_8h_a7}{BFI\_\-V\_\-int\-Src\-Gbl}}
\label{BFI_8h_a7}

\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-int\-Src\-Gbl.\item\end{CompactList}\item 
\hypertarget{BFI_8h_a8}{
\index{BFI_M_intSrcGbl@{BFI\_\-M\_\-intSrcGbl}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_intSrcGbl@{BFI\_\-M\_\-int\-Src\-Gbl}}
typedef enum \hyperlink{BFI_8h_a121}{\_\-BFI\_\-M\_\-int\-Src\-Gbl} \hyperlink{BFI_8h_a8}{BFI\_\-M\_\-int\-Src\-Gbl}}
\label{BFI_8h_a8}

\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-Mint\-Src\-Gbl.\item\end{CompactList}\item 
\hypertarget{BFI_8h_a9}{
\index{BFI_V_intErrSrcTem@{BFI\_\-V\_\-intErrSrcTem}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_intErrSrcTem@{BFI\_\-V\_\-int\-Err\-Src\-Tem}}
typedef enum \hyperlink{BFI_8h_a122}{\_\-BFI\_\-V\_\-int\-Err\-Src\-Tem} \hyperlink{BFI_8h_a9}{BFI\_\-V\_\-int\-Err\-Src\-Tem}}
\label{BFI_8h_a9}

\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-V\_\-int\-Err\-Src\-Gbl.\item\end{CompactList}\item 
typedef enum \hyperlink{BFI_8h_a123}{\_\-BFI\_\-M\_\-int\-Err\-Src\-Tem} \hyperlink{BFI_8h_a10}{BFI\_\-M\_\-int\-Err\-Src\-Tem}
\begin{CompactList}\small\item\em Typedef for enum \_\-BFI\_\-M\_\-int\-Err\-Src\-Tem.\item\end{CompactList}\item 
\hypertarget{BFI_8h_a11}{
\index{BFI_group@{BFI\_\-group}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_group@{BFI\_\-group}}
typedef int \hyperlink{BFI_8h_a11}{BFI\_\-group}}
\label{BFI_8h_a11}

\begin{CompactList}\small\item\em Typedef to hide the implementation type of a BFI\_\-group.\item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{BFI_8h_a116}{\_\-BFI\_\-V\_\-int\-Src} \{ \hyperlink{BFI_8h_a116a12}{BFI\_\-V\_\-INT\_\-SRC\_\-ERROR} =  (TEM\_\-V\_\-TEM\_\-INT\_\-SRC\_\-ERROR - 1), 
\hyperlink{BFI_8h_a116a13}{BFI\_\-V\_\-INT\_\-SRC\_\-HFIFO} =  (TEM\_\-V\_\-TEM\_\-INT\_\-SRC\_\-HFIFO - 1), 
\hyperlink{BFI_8h_a116a14}{BFI\_\-V\_\-INT\_\-SRC\_\-L1T} =  (TEM\_\-V\_\-TEM\_\-INT\_\-SRC\_\-L1T   - 1), 
\hyperlink{BFI_8h_a116a15}{BFI\_\-V\_\-INT\_\-SRC\_\-HSK} =  (TEM\_\-V\_\-TEM\_\-INT\_\-SRC\_\-HSK   - 1), 
\hyperlink{BFI_8h_a116a16}{BFI\_\-K\_\-INT\_\-SRC\_\-CNT} =  (TEM\_\-K\_\-TEM\_\-INT\_\-SRC\_\-CNT)
 \}
\begin{CompactList}\small\item\em Defines the bit positions of each TEM interrupt.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a117}{\_\-BFI\_\-M\_\-int\-Src} \{ \hyperlink{BFI_8h_a117a17}{BFI\_\-M\_\-INT\_\-SRC\_\-ERROR} =  (1 $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-ERROR), 
\hyperlink{BFI_8h_a117a18}{BFI\_\-M\_\-INT\_\-SRC\_\-HFIFO} =  (1 $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-HFIFO), 
\hyperlink{BFI_8h_a117a19}{BFI\_\-M\_\-INT\_\-SRC\_\-L1T} =  (1 $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-L1T), 
\hyperlink{BFI_8h_a117a20}{BFI\_\-M\_\-INT\_\-SRC\_\-HSK} =  (1 $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-HSK), 
\hyperlink{BFI_8h_a117a21}{BFI\_\-M\_\-INT\_\-SRC\_\-ALL} =  (1 $<$$<$ BFI\_\-K\_\-INT\_\-SRC\_\-CNT) - 1
 \}
\begin{CompactList}\small\item\em Defines the masks of each TEM interrupt.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a118}{\_\-BFI\_\-V\_\-int\-Src\-Tem} \{ \hyperlink{BFI_8h_a118a22}{BFI\_\-V\_\-INT\_\-SRC\_\-ACD} =  (BFI\_\-K\_\-INT\_\-SRC\_\-CNT $\ast$ TEM\_\-C\_\-ACD), 
\hyperlink{BFI_8h_a118a23}{BFI\_\-V\_\-INT\_\-SRC\_\-TKR} =  (BFI\_\-K\_\-INT\_\-SRC\_\-CNT $\ast$ TEM\_\-C\_\-TKR), 
\hyperlink{BFI_8h_a118a24}{BFI\_\-V\_\-INT\_\-SRC\_\-CAL} =  (BFI\_\-K\_\-INT\_\-SRC\_\-CNT $\ast$ TEM\_\-C\_\-CAL), 
\hyperlink{BFI_8h_a118a25}{BFI\_\-V\_\-INT\_\-SRC\_\-LTC} =  (BFI\_\-K\_\-INT\_\-SRC\_\-CNT $\ast$ TEM\_\-C\_\-LTC), 
\hyperlink{BFI_8h_a118a26}{BFI\_\-K\_\-INT\_\-SRC\_\-TEMS} =  (BFI\_\-K\_\-INT\_\-SRC\_\-CNT $\ast$ TEM\_\-C\_\-CNT)
 \}
\begin{CompactList}\small\item\em Defines the bit positions for the start of each set of TEM interrupts within the global interrupt mask.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a119}{\_\-BFI\_\-M\_\-int\-Src\-Tem} \{ {\bf BFI\_\-M\_\-INT\_\-SRC\_\-ACD} =  (BFI\_\-M\_\-INT\_\-SRC\_\-ALL $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-ACD), 
{\bf BFI\_\-M\_\-INT\_\-SRC\_\-TKR} =  (BFI\_\-M\_\-INT\_\-SRC\_\-ALL $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-TKR), 
{\bf BFI\_\-M\_\-INT\_\-SRC\_\-CAL} =  (BFI\_\-M\_\-INT\_\-SRC\_\-ALL $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-CAL), 
{\bf BFI\_\-M\_\-INT\_\-SRC\_\-LTC} =  (BFI\_\-M\_\-INT\_\-SRC\_\-ALL $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-LTC), 
{\bf BFI\_\-M\_\-INT\_\-SRC\_\-TEMS}
 \}
\begin{CompactList}\small\item\em Defines the masks for each set of TEM interrupts within the global interrupt mask.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a120}{\_\-BFI\_\-V\_\-int\-Src\-Gbl} \{ \hyperlink{BFI_8h_a120a32}{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-ERROR} =  BFI\_\-V\_\-INTSRC(ACD, ERROR), 
\hyperlink{BFI_8h_a120a33}{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HFIFO} =  BFI\_\-V\_\-INTSRC(ACD, HFIFO), 
\hyperlink{BFI_8h_a120a34}{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-L1T} =  BFI\_\-V\_\-INTSRC(ACD, L1T), 
\hyperlink{BFI_8h_a120a35}{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HSK} =  BFI\_\-V\_\-INTSRC(ACD, HSK), 
\hyperlink{BFI_8h_a120a36}{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-ERROR} =  BFI\_\-V\_\-INTSRC(TKR, ERROR), 
\hyperlink{BFI_8h_a120a37}{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HFIFO} =  BFI\_\-V\_\-INTSRC(TKR, HFIFO), 
\hyperlink{BFI_8h_a120a38}{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-L1T} =  BFI\_\-V\_\-INTSRC(TKR, L1T), 
\hyperlink{BFI_8h_a120a39}{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HSK} =  BFI\_\-V\_\-INTSRC(TKR, HSK), 
\hyperlink{BFI_8h_a120a40}{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-ERROR} =  BFI\_\-V\_\-INTSRC(CAL, ERROR), 
\hyperlink{BFI_8h_a120a41}{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HFIFO} =  BFI\_\-V\_\-INTSRC(CAL, HFIFO), 
\hyperlink{BFI_8h_a120a42}{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-L1T} =  BFI\_\-V\_\-INTSRC(CAL, L1T), 
\hyperlink{BFI_8h_a120a43}{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HSK} =  BFI\_\-V\_\-INTSRC(CAL, HSK), 
\hyperlink{BFI_8h_a120a44}{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-ERROR} =  BFI\_\-V\_\-INTSRC(LTC, ERROR), 
\hyperlink{BFI_8h_a120a45}{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HFIFO} =  BFI\_\-V\_\-INTSRC(LTC, HFIFO), 
\hyperlink{BFI_8h_a120a46}{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-L1T} =  BFI\_\-V\_\-INTSRC(LTC, L1T), 
\hyperlink{BFI_8h_a120a47}{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HSK} =  BFI\_\-V\_\-INTSRC(LTC, HSK), 
\hyperlink{BFI_8h_a120a48}{BFI\_\-K\_\-INT\_\-SRC\_\-TEM\_\-CNT} =  BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HSK+1, 
\hyperlink{BFI_8h_a120a49}{BFI\_\-V\_\-INT\_\-SRC\_\-SOFT\_\-BASE} =  BFI\_\-K\_\-INT\_\-SRC\_\-TEM\_\-CNT, 
\hyperlink{BFI_8h_a120a50}{BFI\_\-K\_\-INT\_\-SRC\_\-SOFT\_\-CNT} =  31 - BFI\_\-V\_\-INT\_\-SRC\_\-SOFT\_\-BASE, 
\hyperlink{BFI_8h_a120a51}{BFI\_\-V\_\-INT\_\-SRC\_\-TO} =  31
 \}
\begin{CompactList}\small\item\em Defines the bit position for each interrupt source within the global interrupt mask.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a121}{\_\-BFI\_\-M\_\-int\-Src\-Gbl} \{ \hyperlink{BFI_8h_a121a52}{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-ERROR} =  BFI\_\-M\_\-INTSRC(ACD, ERROR), 
\hyperlink{BFI_8h_a121a53}{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HFIFO} =  BFI\_\-M\_\-INTSRC(ACD, HFIFO), 
\hyperlink{BFI_8h_a121a54}{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-L1T} =  BFI\_\-M\_\-INTSRC(ACD, L1T), 
\hyperlink{BFI_8h_a121a55}{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HSK} =  BFI\_\-M\_\-INTSRC(ACD, HSK), 
\hyperlink{BFI_8h_a121a56}{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-ERROR} =  BFI\_\-M\_\-INTSRC(TKR, ERROR), 
\hyperlink{BFI_8h_a121a57}{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HFIFO} =  BFI\_\-M\_\-INTSRC(TKR, HFIFO), 
\hyperlink{BFI_8h_a121a58}{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-L1T} =  BFI\_\-M\_\-INTSRC(TKR, L1T), 
\hyperlink{BFI_8h_a121a59}{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HSK} =  BFI\_\-M\_\-INTSRC(TKR, HSK), 
\hyperlink{BFI_8h_a121a60}{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-ERROR} =  BFI\_\-M\_\-INTSRC(CAL, ERROR), 
\hyperlink{BFI_8h_a121a61}{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HFIFO} =  BFI\_\-M\_\-INTSRC(CAL, HFIFO), 
\hyperlink{BFI_8h_a121a62}{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-L1T} =  BFI\_\-M\_\-INTSRC(CAL, L1T), 
\hyperlink{BFI_8h_a121a63}{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HSK} =  BFI\_\-M\_\-INTSRC(CAL, HSK), 
\hyperlink{BFI_8h_a121a64}{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-ERROR} =  BFI\_\-M\_\-INTSRC(LTC, ERROR), 
\hyperlink{BFI_8h_a121a65}{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HFIFO} =  BFI\_\-M\_\-INTSRC(LTC, HFIFO), 
\hyperlink{BFI_8h_a121a66}{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-L1T} =  BFI\_\-M\_\-INTSRC(LTC, L1T), 
\hyperlink{BFI_8h_a121a67}{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HSK} =  BFI\_\-M\_\-INTSRC(LTC, HSK), 
\hyperlink{BFI_8h_a121a68}{BFI\_\-M\_\-INT\_\-SRC\_\-TEM\_\-ALL} =  (1$<$$<$BFI\_\-K\_\-INT\_\-SRC\_\-TEM\_\-CNT)-1, 
\hyperlink{BFI_8h_a121a69}{BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-BASE} =  (1$<$$<$BFI\_\-V\_\-INT\_\-SRC\_\-SOFT\_\-BASE), 
\hyperlink{BFI_8h_a121a70}{BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-ALL}, 
\hyperlink{BFI_8h_a121a71}{BFI\_\-M\_\-INT\_\-SRC\_\-TO} =  (1 $<$$<$ BFI\_\-V\_\-INT\_\-SRC\_\-TO)
 \}
\begin{CompactList}\small\item\em Defines the masks for each interrupt source within the global interrupt mask.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a122}{\_\-BFI\_\-V\_\-int\-Err\-Src\-Tem} \{ \hyperlink{BFI_8h_a122a72}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO} =   0, 
\hyperlink{BFI_8h_a122a73}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY} =   1, 
\hyperlink{BFI_8h_a122a74}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY} =   2, 
\hyperlink{BFI_8h_a122a75}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT} =   3, 
\hyperlink{BFI_8h_a122a76}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO} =   4, 
\hyperlink{BFI_8h_a122a77}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT} =   5, 
\hyperlink{BFI_8h_a122a78}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP} =   6, 
\hyperlink{BFI_8h_a122a79}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE} =   7, 
\hyperlink{BFI_8h_a122a80}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO} =   8, 
\hyperlink{BFI_8h_a122a81}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY} =   9, 
\hyperlink{BFI_8h_a122a82}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY} =  10, 
\hyperlink{BFI_8h_a122a83}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT} =  11, 
\hyperlink{BFI_8h_a122a84}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO} =  12, 
\hyperlink{BFI_8h_a122a85}{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO} =  13
 \}
\begin{CompactList}\small\item\em Defines the bit positions of each TEM error interrupt source.\item\end{CompactList}\item 
enum \hyperlink{BFI_8h_a123}{\_\-BFI\_\-M\_\-int\-Err\-Src\-Tem} \{ \hyperlink{BFI_8h_a123a86}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO} =   BFI\_\-M\_\-INTERRSRCTEM(ACD, DFIFO), 
\hyperlink{BFI_8h_a123a87}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY} =   BFI\_\-M\_\-INTERRSRCTEM(ACD, RDOBSY), 
\hyperlink{BFI_8h_a123a88}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY} =   BFI\_\-M\_\-INTERRSRCTEM(ACD, RDOLNGBSY), 
\hyperlink{BFI_8h_a123a89}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT} =   BFI\_\-M\_\-INTERRSRCTEM(ACD, RDOTMOUT), 
\hyperlink{BFI_8h_a123a90}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO} =   BFI\_\-M\_\-INTERRSRCTEM(TKR, DFIFO), 
\hyperlink{BFI_8h_a123a91}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP} =   BFI\_\-M\_\-INTERRSRCTEM(TKR, 8DEEP), 
\hyperlink{BFI_8h_a123a92}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE} =   BFI\_\-M\_\-INTERRSRCTEM(TKR, CABLE), 
\hyperlink{BFI_8h_a123a93}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT} =   BFI\_\-M\_\-INTERRSRCTEM(TKR, RDOTMOUT), 
\hyperlink{BFI_8h_a123a94}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO} =   BFI\_\-M\_\-INTERRSRCTEM(CAL, DFIFO), 
\hyperlink{BFI_8h_a123a95}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY} =   BFI\_\-M\_\-INTERRSRCTEM(CAL, RDOBSY), 
\hyperlink{BFI_8h_a123a96}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY} =   BFI\_\-M\_\-INTERRSRCTEM(CAL, RDOLNGBSY), 
\hyperlink{BFI_8h_a123a97}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT} =   BFI\_\-M\_\-INTERRSRCTEM(CAL, RDOTMOUT), 
\hyperlink{BFI_8h_a123a98}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO} =  BFI\_\-M\_\-INTERRSRCTEM(LTC, DFIFO), 
\hyperlink{BFI_8h_a123a99}{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO} =  BFI\_\-M\_\-INTERRSRCTEM(L1T, DFIFO)
 \}
\begin{CompactList}\small\item\em Defines the TEM error interrupt sources in terms of a bit mask.\item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
int \hyperlink{BFI_8h_a100}{BFI\_\-connect} (void)
\begin{CompactList}\small\item\em Connects all interrupts to their specified handlers.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a101}{BFI\_\-evt\-Thresholds\-Set} (unsigned int tem\-List, const unsigned int $\ast$thresholds)
\begin{CompactList}\small\item\em Sets the event threshold for the specified set of TEMS.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a102}{BFI\_\-errors\-Gather} (unsigned int irpts)
\begin{CompactList}\small\item\em Returns a 32 bit mask with the reason for the error interrupts decoded.\item\end{CompactList}\item 
\hyperlink{BFI_8h_a11}{BFI\_\-group} \hyperlink{BFI_8h_a103}{BFI\_\-group\-Add} (unsigned int irpts)
\begin{CompactList}\small\item\em Defines a group to consist of the specified list of interrupts to service.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a104}{BFI\_\-group\-Disable} (\hyperlink{BFI_8h_a11}{BFI\_\-group} group, unsigned int disable\-Ints)
\begin{CompactList}\small\item\em Disables the specified list of interrupts for the specified group.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a105}{BFI\_\-group\-Enable} (\hyperlink{BFI_8h_a11}{BFI\_\-group} group, unsigned int enable\-Ints)
\begin{CompactList}\small\item\em Disables the specified list of interrupts for the specified group.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a106}{BFI\_\-group\-Pend} (\hyperlink{BFI_8h_a11}{BFI\_\-group} group, int timeout)
\begin{CompactList}\small\item\em Waits for the firing of any interrupt associated with the specified synchronization group.\item\end{CompactList}\item 
int \hyperlink{BFI_8h_a107}{BFI\_\-group\-Signal} (\hyperlink{BFI_8h_a11}{BFI\_\-group} group, unsigned int irpts)
\begin{CompactList}\small\item\em Allows one to set a soft interrupt on the specified synchronization group.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a108}{BFI\_\-init} (const struct \hyperlink{struct__BFM__dsc}{\_\-BFM\_\-dsc} $\ast$bfm, unsigned int tem\-List, const unsigned int $\ast$levels, const unsigned int $\ast$base)
\begin{CompactList}\small\item\em Initializes the system service context. Each active TEM has an interrupt level and a base vector assigned to it.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a109}{BFI\_\-master\-Disable} (unsigned int tem\-List)
\begin{CompactList}\small\item\em Disables the master interrupt enable for the specified list of TEMs.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a110}{BFI\_\-master\-Enable} (unsigned int tem\-List)
\begin{CompactList}\small\item\em Enables the master interrupt enable for the specified list of TEMs.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a111}{BFI\_\-master\-Reset} (unsigned int tem\-List)
\begin{CompactList}\small\item\em Reset the master interrupt enable for the specified list of TEMs. This effectively clears all pending interrupts.\item\end{CompactList}\item 
int \hyperlink{BFI_8h_a112}{BFI\_\-min\-Events\-Get} (unsigned int tem\-List, unsigned int $\ast$nevts)
\begin{CompactList}\small\item\em Returns the minimum number of events pending from the specified list of tems, ie {\em tem\-List}.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a113}{BFI\_\-trim} (unsigned int tem\-List, unsigned int int\-List)
\begin{CompactList}\small\item\em Convenience routine to trim the interrupt sources associated with unused TEMs from the list.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a114}{BFI\_\-vme\-Disable} (unsigned int tem\-List)
\begin{CompactList}\small\item\em Disables the VME interrupt for the specified list of TEMs.\item\end{CompactList}\item 
unsigned int \hyperlink{BFI_8h_a115}{BFI\_\-vme\-Enable} (unsigned int tem\-List)
\begin{CompactList}\small\item\em Enables the VME interrupt for the specified list of TEMs.\item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Balloon Flight Interrupt Handling, Interface.



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


\subsection{Typedef Documentation}
\hypertarget{BFI_8h_a10}{
\index{BFI.h@{BFI.h}!BFI_M_intErrSrcTem@{BFI\_\-M\_\-intErrSrcTem}}
\index{BFI_M_intErrSrcTem@{BFI\_\-M\_\-intErrSrcTem}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-M\_\-intErrSrcTem]{\setlength{\rightskip}{0pt plus 5cm}BFI\_\-M\_\-int\-Err\-Src\-Tem}}
\label{BFI_8h_a10}


Typedef for enum \_\-BFI\_\-M\_\-int\-Err\-Src\-Tem.



 The error interrrupt from each TEM can be due to a variety of reasons. Some, such as the data FIFO overflow are common to all TEMs. Others are specific to an individual TEM. While the interrupt is delivered on a TEM-by-TEM basis, the source of the interrupts maps more closely with a data source, ie a TEM. Except for the LTC, 4 bits are used for each source. (Needed to save space.) \hypertarget{BFI_8h_a4}{
\index{BFI.h@{BFI.h}!BFI_M_intSrc@{BFI\_\-M\_\-intSrc}}
\index{BFI_M_intSrc@{BFI\_\-M\_\-intSrc}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-M\_\-intSrc]{\setlength{\rightskip}{0pt plus 5cm}BFI\_\-M\_\-int\-Src}}
\label{BFI_8h_a4}


Typedef for enum \_\-BFI\_\-int\-Src\-Msk.



 These are the masks for each TEM interrupt. See BFI\_\-V\_\-int\-Src for the corresponding bit positions

The global interrupt mask consists of a set of these 4 interrupts for each TEM. The sets are laid out in order, by TEM id, ie ACD first, then TKR, then CAL, and finally LTC. See \_\-BFI\_\-int\-Src\-Tem for these definitions. \hypertarget{BFI_8h_a6}{
\index{BFI.h@{BFI.h}!BFI_M_intSrcTem@{BFI\_\-M\_\-intSrcTem}}
\index{BFI_M_intSrcTem@{BFI\_\-M\_\-intSrcTem}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-M\_\-intSrcTem]{\setlength{\rightskip}{0pt plus 5cm}BFI\_\-M\_\-int\-Src\-Tem}}
\label{BFI_8h_a6}


Typedef for enum \_\-BFI\_\-M\_\-int\-Src\-Tem.



 These are the mask for each TEM interrupt. See BFI\_\-V\_\-int\-Src\-Tem for the corresponding masks.

The global interrupt mask consists of two collections of interrupt sources. The first of these sets of consists of the 4 interrupts (ERR, L1T, HFULL, PPS) for each TEM. The sets are laid out in order, by TEM id, ie ACD, first, then TKR, then CAL, and finally LTC. These occupy the lower 16 bits of the interrupt source mask. (Of course, no programmer will every refer to these sources by number, they will use the symbolics.)

The upper 16 bits consist of a set of soft interrupts. These used to allow software signals to be set and handled in much the same manner as the hardware signals. For example, one could define a group to pend on all the hardware interrupts related to event taking (L1T, HFULL, ERR) and also to define a soft interrrupt which would deliver a run control message. The user could then pend on this group and, by examining the interrupt mask, make a decision on what to do, take more events or stop the run. \hypertarget{BFI_8h_a3}{
\index{BFI.h@{BFI.h}!BFI_V_intSrc@{BFI\_\-V\_\-intSrc}}
\index{BFI_V_intSrc@{BFI\_\-V\_\-intSrc}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-V\_\-intSrc]{\setlength{\rightskip}{0pt plus 5cm}BFI\_\-V\_\-int\-Src}}
\label{BFI_8h_a3}


Typedef for enum \_\-BFI\_\-V\_\-int.



 These are the bit positions for each TEM interrupt. See BFI\_\-M\_\-int\-Src for the corresponding mask definitions.

The global interrupt mask consists of a set of these 4 interrupts for each TEM. The sets are laid out in order, by TEM id, ie ACD first, then TKR, then CAL, and finally LTC. See \_\-BFI\_\-int\-Src\-Tem for these definitions. \hypertarget{BFI_8h_a5}{
\index{BFI.h@{BFI.h}!BFI_V_intSrcTem@{BFI\_\-V\_\-intSrcTem}}
\index{BFI_V_intSrcTem@{BFI\_\-V\_\-intSrcTem}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-V\_\-intSrcTem]{\setlength{\rightskip}{0pt plus 5cm}BFI\_\-V\_\-int\-Src\-Tem}}
\label{BFI_8h_a5}


Typedef for enum \_\-BFI\_\-V\_\-int\-Src\-Tem.



 These are the starting bit positions for each TEM interrupts. See BFI\_\-M\_\-int\-Src\-Tem\-Msk for the corresponding masks.

The global interrupt mask consists of a set of these 4 interrupts for each TEM. The sets are laid out in order, by TEM id, ie ACD first, then TKR, then CAL, and finally LTC. 

\subsection{Enumeration Type Documentation}
\hypertarget{BFI_8h_a123}{
\index{BFI.h@{BFI.h}!_BFI_M_intErrSrcTem@{\_\-BFI\_\-M\_\-intErrSrcTem}}
\index{_BFI_M_intErrSrcTem@{\_\-BFI\_\-M\_\-intErrSrcTem}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-M\_\-intErrSrcTem]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-M\_\-int\-Err\-Src\-Tem}}
\label{BFI_8h_a123}


Defines the TEM error interrupt sources in terms of a bit mask.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_M_INT_ERR_SRC_ACD_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_ACD_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a123a86}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO}}
\label{BFI_8h_a123a86}
}]Data FIFO overflow \index{BFI_M_INT_ERR_SRC_ACD_RDOBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_ACD_RDOBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY}}\item[{\em 
\hypertarget{BFI_8h_a123a87}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY}}
\label{BFI_8h_a123a87}
}]Readout busy \index{BFI_M_INT_ERR_SRC_ACD_RDOLNGBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_ACD_RDOLNGBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY}}\item[{\em 
\hypertarget{BFI_8h_a123a88}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY}}
\label{BFI_8h_a123a88}
}]Readout long busy \index{BFI_M_INT_ERR_SRC_ACD_RDOTMOUT@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_ACD_RDOTMOUT@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT}}\item[{\em 
\hypertarget{BFI_8h_a123a89}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT}}
\label{BFI_8h_a123a89}
}]Readout timeout \index{BFI_M_INT_ERR_SRC_TKR_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_TKR_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a123a90}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO}}
\label{BFI_8h_a123a90}
}]Data FIFO overflow \index{BFI_M_INT_ERR_SRC_TKR_8DEEP@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_TKR_8DEEP@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP}}\item[{\em 
\hypertarget{BFI_8h_a123a91}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP}}
\label{BFI_8h_a123a91}
}]8 Deep Fifo overflow \index{BFI_M_INT_ERR_SRC_TKR_CABLE@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_TKR_CABLE@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE}}\item[{\em 
\hypertarget{BFI_8h_a123a92}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE}}
\label{BFI_8h_a123a92}
}]Cable Disconnect \index{BFI_M_INT_ERR_SRC_TKR_RDOTMOUT@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_TKR_RDOTMOUT@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT}}\item[{\em 
\hypertarget{BFI_8h_a123a93}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT}}
\label{BFI_8h_a123a93}
}]Readout timeout \index{BFI_M_INT_ERR_SRC_CAL_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_CAL_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a123a94}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO}}
\label{BFI_8h_a123a94}
}]Data FIFO overflow \index{BFI_M_INT_ERR_SRC_CAL_RDOBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_CAL_RDOBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY}}\item[{\em 
\hypertarget{BFI_8h_a123a95}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY}}
\label{BFI_8h_a123a95}
}]Readout busy \index{BFI_M_INT_ERR_SRC_CAL_RDOLNGBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_CAL_RDOLNGBSY@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY}}\item[{\em 
\hypertarget{BFI_8h_a123a96}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY}}
\label{BFI_8h_a123a96}
}]Readout long busy \index{BFI_M_INT_ERR_SRC_CAL_RDOTMOUT@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_CAL_RDOTMOUT@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT}}\item[{\em 
\hypertarget{BFI_8h_a123a97}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT}}
\label{BFI_8h_a123a97}
}]Readout timeout \index{BFI_M_INT_ERR_SRC_LTC_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_LTC_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a123a98}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO}}
\label{BFI_8h_a123a98}
}]Data FIFO overflow \index{BFI_M_INT_ERR_SRC_L1T_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_ERR_SRC_L1T_DFIFO@{BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a123a99}{
{\em BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO}}
\label{BFI_8h_a123a99}
}]Data FIFO overflow \end{description}
\end{Desc}

\hypertarget{BFI_8h_a117}{
\index{BFI.h@{BFI.h}!_BFI_M_intSrc@{\_\-BFI\_\-M\_\-intSrc}}
\index{_BFI_M_intSrc@{\_\-BFI\_\-M\_\-intSrc}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-M\_\-intSrc]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-M\_\-int\-Src}}
\label{BFI_8h_a117}


Defines the masks of each TEM interrupt.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_M_INT_SRC_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a117a17}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-ERROR}}
\label{BFI_8h_a117a17}
}]ERROR interrupt, relative mask \index{BFI_M_INT_SRC_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a117a18}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-HFIFO}}
\label{BFI_8h_a117a18}
}]HALF FULL FIFO interrupt, relative mask \index{BFI_M_INT_SRC_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a117a19}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-L1T}}
\label{BFI_8h_a117a19}
}]L1T interrupt, relative mask \index{BFI_M_INT_SRC_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a117a20}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-HSK}}
\label{BFI_8h_a117a20}
}]HOUSEKEEPING interrupt, relative mask \index{BFI_M_INT_SRC_ALL@{BFI\_\-M\_\-INT\_\-SRC\_\-ALL}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_ALL@{BFI\_\-M\_\-INT\_\-SRC\_\-ALL}}\item[{\em 
\hypertarget{BFI_8h_a117a21}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-ALL}}
\label{BFI_8h_a117a21}
}]ALL (for one TEM) interrupt mask \end{description}
\end{Desc}

\hypertarget{BFI_8h_a121}{
\index{BFI.h@{BFI.h}!_BFI_M_intSrcGbl@{\_\-BFI\_\-M\_\-intSrcGbl}}
\index{_BFI_M_intSrcGbl@{\_\-BFI\_\-M\_\-intSrcGbl}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-M\_\-intSrcGbl]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-M\_\-int\-Src\-Gbl}}
\label{BFI_8h_a121}


Defines the masks for each interrupt source within the global interrupt mask.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_M_INT_SRC_ACD_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_ACD_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a121a52}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-ERROR}}
\label{BFI_8h_a121a52}
}]ACD ERROR interrupt, as a mask \index{BFI_M_INT_SRC_ACD_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_ACD_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a121a53}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HFIFO}}
\label{BFI_8h_a121a53}
}]ACD HALF FIFO FULL interrupt, as a mask \index{BFI_M_INT_SRC_ACD_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_ACD_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a121a54}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-L1T}}
\label{BFI_8h_a121a54}
}]ACD L1T interrupt, as a mask \index{BFI_M_INT_SRC_ACD_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_ACD_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a121a55}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-ACD\_\-HSK}}
\label{BFI_8h_a121a55}
}]ACD HOUSEKEEPING interrupt, as a mask \index{BFI_M_INT_SRC_TKR_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_TKR_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a121a56}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-ERROR}}
\label{BFI_8h_a121a56}
}]TKR ERROR interrupt, as a mask \index{BFI_M_INT_SRC_TKR_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_TKR_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a121a57}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HFIFO}}
\label{BFI_8h_a121a57}
}]TKR HALF FIFO FULL interrupt, as a mask \index{BFI_M_INT_SRC_TKR_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_TKR_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a121a58}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-L1T}}
\label{BFI_8h_a121a58}
}]TKR L1T interrupt, as a mask \index{BFI_M_INT_SRC_TKR_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_TKR_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a121a59}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-TKR\_\-HSK}}
\label{BFI_8h_a121a59}
}]TKR HOUSEKEEPING interrupt, as a mask \index{BFI_M_INT_SRC_CAL_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_CAL_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a121a60}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-ERROR}}
\label{BFI_8h_a121a60}
}]CAL ERROR interrupt, as a mask \index{BFI_M_INT_SRC_CAL_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_CAL_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a121a61}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HFIFO}}
\label{BFI_8h_a121a61}
}]CAL HALF FIFO FULL interrupt, as a mask \index{BFI_M_INT_SRC_CAL_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_CAL_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a121a62}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-L1T}}
\label{BFI_8h_a121a62}
}]CAL L1T interrupt, as a mask \index{BFI_M_INT_SRC_CAL_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_CAL_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a121a63}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-CAL\_\-HSK}}
\label{BFI_8h_a121a63}
}]CAL HOUSEKEEPING interrupt, as a mask \index{BFI_M_INT_SRC_LTC_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_LTC_ERROR@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a121a64}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-ERROR}}
\label{BFI_8h_a121a64}
}]LTC ERROR interrupt, as a mask \index{BFI_M_INT_SRC_LTC_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_LTC_HFIFO@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a121a65}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HFIFO}}
\label{BFI_8h_a121a65}
}]LTC HALF FIFO FULL interrupt, as a mask \index{BFI_M_INT_SRC_LTC_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_LTC_L1T@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a121a66}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-L1T}}
\label{BFI_8h_a121a66}
}]LTC L1T interrupt, as a mask \index{BFI_M_INT_SRC_LTC_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_LTC_HSK@{BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a121a67}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-LTC\_\-HSK}}
\label{BFI_8h_a121a67}
}]LTC HOUSEKEEPING interrupt, as a mask \index{BFI_M_INT_SRC_TEM_ALL@{BFI\_\-M\_\-INT\_\-SRC\_\-TEM\_\-ALL}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_TEM_ALL@{BFI\_\-M\_\-INT\_\-SRC\_\-TEM\_\-ALL}}\item[{\em 
\hypertarget{BFI_8h_a121a68}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-TEM\_\-ALL}}
\label{BFI_8h_a121a68}
}]ALL TEM interrupts as a mask \index{BFI_M_INT_SRC_SOFT_BASE@{BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-BASE}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_SOFT_BASE@{BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-BASE}}\item[{\em 
\hypertarget{BFI_8h_a121a69}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-BASE}}
\label{BFI_8h_a121a69}
}]Base of Soft interrupts \index{BFI_M_INT_SRC_SOFT_ALL@{BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-ALL}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_SOFT_ALL@{BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-ALL}}\item[{\em 
\hypertarget{BFI_8h_a121a70}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-SOFT\_\-ALL}}
\label{BFI_8h_a121a70}
}]SOFT INTERRUPT SOURCE ALL \index{BFI_M_INT_SRC_TO@{BFI\_\-M\_\-INT\_\-SRC\_\-TO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_M_INT_SRC_TO@{BFI\_\-M\_\-INT\_\-SRC\_\-TO}}\item[{\em 
\hypertarget{BFI_8h_a121a71}{
{\em BFI\_\-M\_\-INT\_\-SRC\_\-TO}}
\label{BFI_8h_a121a71}
}]TIMEOUT signal \end{description}
\end{Desc}

\hypertarget{BFI_8h_a122}{
\index{BFI.h@{BFI.h}!_BFI_V_intErrSrcTem@{\_\-BFI\_\-V\_\-intErrSrcTem}}
\index{_BFI_V_intErrSrcTem@{\_\-BFI\_\-V\_\-intErrSrcTem}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-V\_\-intErrSrcTem]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-V\_\-int\-Err\-Src\-Tem}}
\label{BFI_8h_a122}


Defines the bit positions of each TEM error interrupt source.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_V_INT_ERR_SRC_ACD_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_ACD_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a122a72}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-DFIFO}}
\label{BFI_8h_a122a72}
}]Data FIFO overflow \index{BFI_V_INT_ERR_SRC_ACD_RDOBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_ACD_RDOBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY}}\item[{\em 
\hypertarget{BFI_8h_a122a73}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOBSY}}
\label{BFI_8h_a122a73}
}]Readout busy \index{BFI_V_INT_ERR_SRC_ACD_RDOLNGBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_ACD_RDOLNGBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY}}\item[{\em 
\hypertarget{BFI_8h_a122a74}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOLNGBSY}}
\label{BFI_8h_a122a74}
}]Readout long busy \index{BFI_V_INT_ERR_SRC_ACD_RDOTMOUT@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_ACD_RDOTMOUT@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT}}\item[{\em 
\hypertarget{BFI_8h_a122a75}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-ACD\_\-RDOTMOUT}}
\label{BFI_8h_a122a75}
}]Readout timeout \index{BFI_V_INT_ERR_SRC_TKR_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_TKR_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a122a76}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-DFIFO}}
\label{BFI_8h_a122a76}
}]Data FIFO overflow \index{BFI_V_INT_ERR_SRC_TKR_RDOTMOUT@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_TKR_RDOTMOUT@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT}}\item[{\em 
\hypertarget{BFI_8h_a122a77}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-RDOTMOUT}}
\label{BFI_8h_a122a77}
}]Readout timeout \index{BFI_V_INT_ERR_SRC_TKR_8DEEP@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_TKR_8DEEP@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP}}\item[{\em 
\hypertarget{BFI_8h_a122a78}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-8DEEP}}
\label{BFI_8h_a122a78}
}]8 Deep Fifo overflow \index{BFI_V_INT_ERR_SRC_TKR_CABLE@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_TKR_CABLE@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE}}\item[{\em 
\hypertarget{BFI_8h_a122a79}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TKR\_\-CABLE}}
\label{BFI_8h_a122a79}
}]Cable Disconnect \index{BFI_V_INT_ERR_SRC_CAL_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_CAL_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a122a80}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-DFIFO}}
\label{BFI_8h_a122a80}
}]Data FIFO overflow \index{BFI_V_INT_ERR_SRC_CAL_RDOBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_CAL_RDOBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY}}\item[{\em 
\hypertarget{BFI_8h_a122a81}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOBSY}}
\label{BFI_8h_a122a81}
}]Readout busy \index{BFI_V_INT_ERR_SRC_CAL_RDOLNGBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_CAL_RDOLNGBSY@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY}}\item[{\em 
\hypertarget{BFI_8h_a122a82}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOLNGBSY}}
\label{BFI_8h_a122a82}
}]Readout long busy \index{BFI_V_INT_ERR_SRC_CAL_RDOTMOUT@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_CAL_RDOTMOUT@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT}}\item[{\em 
\hypertarget{BFI_8h_a122a83}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-CAL\_\-RDOTMOUT}}
\label{BFI_8h_a122a83}
}]Readout timeout \index{BFI_V_INT_ERR_SRC_LTC_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_LTC_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a122a84}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-LTC\_\-DFIFO}}
\label{BFI_8h_a122a84}
}]Data FIFO overflow \index{BFI_V_INT_ERR_SRC_L1T_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_ERR_SRC_L1T_DFIFO@{BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO}}\item[{\em 
\hypertarget{BFI_8h_a122a85}{
{\em BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-L1T\_\-DFIFO}}
\label{BFI_8h_a122a85}
}]Data FIFO overflow \end{description}
\end{Desc}

\hypertarget{BFI_8h_a116}{
\index{BFI.h@{BFI.h}!_BFI_V_intSrc@{\_\-BFI\_\-V\_\-intSrc}}
\index{_BFI_V_intSrc@{\_\-BFI\_\-V\_\-intSrc}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-V\_\-intSrc]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-V\_\-int\-Src}}
\label{BFI_8h_a116}


Defines the bit positions of each TEM interrupt.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_V_INT_SRC_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a116a12}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-ERROR}}
\label{BFI_8h_a116a12}
}]ERROR interrupt, relative bit position \index{BFI_V_INT_SRC_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a116a13}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-HFIFO}}
\label{BFI_8h_a116a13}
}]HALF FULL FIFO interrupt, relative bit position \index{BFI_V_INT_SRC_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a116a14}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-L1T}}
\label{BFI_8h_a116a14}
}]L1T interrupt, relative bit position \index{BFI_V_INT_SRC_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a116a15}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-HSK}}
\label{BFI_8h_a116a15}
}]HOUSEKEEPING interrupt, relative bit position \index{BFI_K_INT_SRC_CNT@{BFI\_\-K\_\-INT\_\-SRC\_\-CNT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_K_INT_SRC_CNT@{BFI\_\-K\_\-INT\_\-SRC\_\-CNT}}\item[{\em 
\hypertarget{BFI_8h_a116a16}{
{\em BFI\_\-K\_\-INT\_\-SRC\_\-CNT}}
\label{BFI_8h_a116a16}
}]NUMBER of interrupts for one TEM \end{description}
\end{Desc}

\hypertarget{BFI_8h_a120}{
\index{BFI.h@{BFI.h}!_BFI_V_intSrcGbl@{\_\-BFI\_\-V\_\-intSrcGbl}}
\index{_BFI_V_intSrcGbl@{\_\-BFI\_\-V\_\-intSrcGbl}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-V\_\-intSrcGbl]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-V\_\-int\-Src\-Gbl}}
\label{BFI_8h_a120}


Defines the bit position for each interrupt source within the global interrupt mask.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_V_INT_SRC_ACD_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_ACD_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a120a32}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-ERROR}}
\label{BFI_8h_a120a32}
}]ACD ERROR interrupt, as a bit position \index{BFI_V_INT_SRC_ACD_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_ACD_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a120a33}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HFIFO}}
\label{BFI_8h_a120a33}
}]ACD HALF FULL FIFO interrupt, as a bit position \index{BFI_V_INT_SRC_ACD_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_ACD_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a120a34}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-L1T}}
\label{BFI_8h_a120a34}
}]ACD L1T interrupt, as a bit position \index{BFI_V_INT_SRC_ACD_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_ACD_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a120a35}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-ACD\_\-HSK}}
\label{BFI_8h_a120a35}
}]ACD HOUSEKEEPING interrupt, as a bit position \index{BFI_V_INT_SRC_TKR_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_TKR_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a120a36}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-ERROR}}
\label{BFI_8h_a120a36}
}]TKR ERROR interrupt, as a bit position \index{BFI_V_INT_SRC_TKR_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_TKR_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a120a37}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HFIFO}}
\label{BFI_8h_a120a37}
}]TKR HALF FULL FIFO interrupt, as a bit position \index{BFI_V_INT_SRC_TKR_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_TKR_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a120a38}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-L1T}}
\label{BFI_8h_a120a38}
}]TKR L1T interrupt, as a bit position \index{BFI_V_INT_SRC_TKR_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_TKR_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a120a39}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-TKR\_\-HSK}}
\label{BFI_8h_a120a39}
}]TKR HOUSEKEEPING interrupt, as a bit position \index{BFI_V_INT_SRC_CAL_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_CAL_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a120a40}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-ERROR}}
\label{BFI_8h_a120a40}
}]CAL ERROR interrupt, as a bit position \index{BFI_V_INT_SRC_CAL_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_CAL_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a120a41}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HFIFO}}
\label{BFI_8h_a120a41}
}]CAL HALF FULL FIFO interrupt, as a bit position \index{BFI_V_INT_SRC_CAL_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_CAL_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a120a42}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-L1T}}
\label{BFI_8h_a120a42}
}]CAL L1T interrupt, as a bit position \index{BFI_V_INT_SRC_CAL_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_CAL_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a120a43}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-CAL\_\-HSK}}
\label{BFI_8h_a120a43}
}]CAL HOUSEKEEPING interrupt, as a bit position \index{BFI_V_INT_SRC_LTC_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-ERROR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_LTC_ERROR@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-ERROR}}\item[{\em 
\hypertarget{BFI_8h_a120a44}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-ERROR}}
\label{BFI_8h_a120a44}
}]LTC ERROR interrupt, as a bit position \index{BFI_V_INT_SRC_LTC_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HFIFO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_LTC_HFIFO@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HFIFO}}\item[{\em 
\hypertarget{BFI_8h_a120a45}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HFIFO}}
\label{BFI_8h_a120a45}
}]LTC HALF FULL FIFO interrupt, as a bit position \index{BFI_V_INT_SRC_LTC_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-L1T}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_LTC_L1T@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-L1T}}\item[{\em 
\hypertarget{BFI_8h_a120a46}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-L1T}}
\label{BFI_8h_a120a46}
}]LTC L1T interrupt, as a bit position \index{BFI_V_INT_SRC_LTC_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HSK}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_LTC_HSK@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HSK}}\item[{\em 
\hypertarget{BFI_8h_a120a47}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-LTC\_\-HSK}}
\label{BFI_8h_a120a47}
}]LTC ERROR interrupt, as a bit position \index{BFI_K_INT_SRC_TEM_CNT@{BFI\_\-K\_\-INT\_\-SRC\_\-TEM\_\-CNT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_K_INT_SRC_TEM_CNT@{BFI\_\-K\_\-INT\_\-SRC\_\-TEM\_\-CNT}}\item[{\em 
\hypertarget{BFI_8h_a120a48}{
{\em BFI\_\-K\_\-INT\_\-SRC\_\-TEM\_\-CNT}}
\label{BFI_8h_a120a48}
}]Count of all TEM interrupts \index{BFI_V_INT_SRC_SOFT_BASE@{BFI\_\-V\_\-INT\_\-SRC\_\-SOFT\_\-BASE}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_SOFT_BASE@{BFI\_\-V\_\-INT\_\-SRC\_\-SOFT\_\-BASE}}\item[{\em 
\hypertarget{BFI_8h_a120a49}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-SOFT\_\-BASE}}
\label{BFI_8h_a120a49}
}]Base of the soft interrupts \index{BFI_K_INT_SRC_SOFT_CNT@{BFI\_\-K\_\-INT\_\-SRC\_\-SOFT\_\-CNT}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_K_INT_SRC_SOFT_CNT@{BFI\_\-K\_\-INT\_\-SRC\_\-SOFT\_\-CNT}}\item[{\em 
\hypertarget{BFI_8h_a120a50}{
{\em BFI\_\-K\_\-INT\_\-SRC\_\-SOFT\_\-CNT}}
\label{BFI_8h_a120a50}
}]Count of the number of soft interrupts \index{BFI_V_INT_SRC_TO@{BFI\_\-V\_\-INT\_\-SRC\_\-TO}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_TO@{BFI\_\-V\_\-INT\_\-SRC\_\-TO}}\item[{\em 
\hypertarget{BFI_8h_a120a51}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-TO}}
\label{BFI_8h_a120a51}
}]The timeout signal \end{description}
\end{Desc}

\hypertarget{BFI_8h_a118}{
\index{BFI.h@{BFI.h}!_BFI_V_intSrcTem@{\_\-BFI\_\-V\_\-intSrcTem}}
\index{_BFI_V_intSrcTem@{\_\-BFI\_\-V\_\-intSrcTem}!BFI.h@{BFI.h}}
\subsubsection[\_\-BFI\_\-V\_\-intSrcTem]{\setlength{\rightskip}{0pt plus 5cm}enum \_\-BFI\_\-V\_\-int\-Src\-Tem}}
\label{BFI_8h_a118}


Defines the bit positions for the start of each set of TEM interrupts within the global interrupt mask.

\begin{Desc}
\item[Enumeration values:]\par
\begin{description}
\index{BFI_V_INT_SRC_ACD@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_ACD@{BFI\_\-V\_\-INT\_\-SRC\_\-ACD}}\item[{\em 
\hypertarget{BFI_8h_a118a22}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-ACD}}
\label{BFI_8h_a118a22}
}]ACD right justified starting bit position \index{BFI_V_INT_SRC_TKR@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_TKR@{BFI\_\-V\_\-INT\_\-SRC\_\-TKR}}\item[{\em 
\hypertarget{BFI_8h_a118a23}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-TKR}}
\label{BFI_8h_a118a23}
}]TKR right justified starting bit position \index{BFI_V_INT_SRC_CAL@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_CAL@{BFI\_\-V\_\-INT\_\-SRC\_\-CAL}}\item[{\em 
\hypertarget{BFI_8h_a118a24}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-CAL}}
\label{BFI_8h_a118a24}
}]CAL right justified starting bit position \index{BFI_V_INT_SRC_LTC@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_V_INT_SRC_LTC@{BFI\_\-V\_\-INT\_\-SRC\_\-LTC}}\item[{\em 
\hypertarget{BFI_8h_a118a25}{
{\em BFI\_\-V\_\-INT\_\-SRC\_\-LTC}}
\label{BFI_8h_a118a25}
}]LTC right justified starting bit position \index{BFI_K_INT_SRC_TEMS@{BFI\_\-K\_\-INT\_\-SRC\_\-TEMS}!BFI.h@{BFI.h}}\index{BFI.h@{BFI.h}!BFI_K_INT_SRC_TEMS@{BFI\_\-K\_\-INT\_\-SRC\_\-TEMS}}\item[{\em 
\hypertarget{BFI_8h_a118a26}{
{\em BFI\_\-K\_\-INT\_\-SRC\_\-TEMS}}
\label{BFI_8h_a118a26}
}]Count of all TEM interrupts \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{BFI_8h_a100}{
\index{BFI.h@{BFI.h}!BFI_connect@{BFI\_\-connect}}
\index{BFI_connect@{BFI\_\-connect}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-connect]{\setlength{\rightskip}{0pt plus 5cm}int BFI\_\-connect (void)}}
\label{BFI_8h_a100}


Connects all interrupts to their specified handlers.

\begin{Desc}
\item[Returns: ]\par
A list of TEMs that failed to properly connect\end{Desc}
Connects all interrupts to their specified handlers. The context parameter is the Interrupt Control Word. This word contains the following 3 pieces of information



\footnotesize\begin{verbatim}
       1. The ID of the TEM to service.
       2. The bit mask of interrupts that need servicing
       3. The bit mask of group ids  that perform the servicing.
  \end{verbatim}\normalsize 


All active interrupts must have one and only one group associated with them.

{\bf NOTE} \par
 {\bf ----} \par
 Due to the way Vx\-Works handles interrupt connects, it makes sense to connect to an interrupt once and only once. This, in turn, leads to the situation where all must be connected at the same time. \hypertarget{BFI_8h_a102}{
\index{BFI.h@{BFI.h}!BFI_errorsGather@{BFI\_\-errorsGather}}
\index{BFI_errorsGather@{BFI\_\-errorsGather}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-errorsGather]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-errors\-Gather (unsigned int {\em irpts})}}
\label{BFI_8h_a102}


Returns a 32 bit mask with the reason for the error interrupts decoded.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
irpts}]The active interrupts.\end{description}
\end{Desc}
Each active TEM error interrupt bit is examined for the source of the error. These reasons are combined into a 32 summary error reason word. The mapping of this word is defined by the enumeration BFI\_\-V\_\-INT\_\-ERR\_\-SRC\_\-TEM and BFI\_\-M\_\-INT\_\-ERR\_\-SRC\_\-TEM.

\begin{Desc}
\item[Warning: ]\par
 It is assumed that {\em irpts} will contain interrupts only active TEMs/\end{Desc}
\begin{Desc}
\item[Warning: ]\par
 This routine is somewhat kludged together. It does not use the usual BTUD database to locate the error bits. If those bits move about, then this routine needs to be modified and recompiled. \end{Desc}
\hypertarget{BFI_8h_a101}{
\index{BFI.h@{BFI.h}!BFI_evtThresholdsSet@{BFI\_\-evtThresholdsSet}}
\index{BFI_evtThresholdsSet@{BFI\_\-evtThresholdsSet}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-evtThresholdsSet]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-evt\-Thresholds\-Set (unsigned int {\em tem\-List}, const unsigned int $\ast$ {\em thresholds})}}
\label{BFI_8h_a101}


Sets the event threshold for the specified set of TEMS.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of TEMs, expressed as a bit mask, to set thresholds for. \item[{\em 
thresholds}]An array of thresholds, indexed by TEM ID. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of TEMs requested but not set.\end{Desc}
While in practice it makes no sense to set the thresholds on the various TEMs to different values, this routine does allow it. Being a low level routine it does not force a certain policy. Bizarre as it may seem, one could imagine a test case which would like to do this. \hypertarget{BFI_8h_a103}{
\index{BFI.h@{BFI.h}!BFI_groupAdd@{BFI\_\-groupAdd}}
\index{BFI_groupAdd@{BFI\_\-groupAdd}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-groupAdd]{\setlength{\rightskip}{0pt plus 5cm}int BFI\_\-group\-Add (unsigned int {\em irpts})}}
\label{BFI_8h_a103}


Defines a group to consist of the specified list of interrupts to service.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
irpts}]The list of interrupts, expressed as a bit mask, to service. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
A handle used to access the group \end{Desc}
\hypertarget{BFI_8h_a104}{
\index{BFI.h@{BFI.h}!BFI_groupDisable@{BFI\_\-groupDisable}}
\index{BFI_groupDisable@{BFI\_\-groupDisable}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-groupDisable]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-group\-Disable (\hyperlink{BFI_8h_a11}{BFI\_\-group} {\em group}, unsigned int {\em disable})}}
\label{BFI_8h_a104}


Disables the specified list of interrupts for the specified group.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
group}]The group to disable the interrupts for. \item[{\em 
disable}]The list of interrupts, expressed as a bit mask, to disable. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of serviceable interrupts which could not be disabled \end{Desc}
\hypertarget{BFI_8h_a105}{
\index{BFI.h@{BFI.h}!BFI_groupEnable@{BFI\_\-groupEnable}}
\index{BFI_groupEnable@{BFI\_\-groupEnable}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-groupEnable]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-group\-Enable (\hyperlink{BFI_8h_a11}{BFI\_\-group} {\em group}, unsigned int {\em enable})}}
\label{BFI_8h_a105}


Disables the specified list of interrupts for the specified group.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
group}]The group to disable the interrupts for. \item[{\em 
enable}]The list of interrupts, expressed as a bit mask, to disable. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of serviceable interrupts which could not be enabled \end{Desc}
\hypertarget{BFI_8h_a106}{
\index{BFI.h@{BFI.h}!BFI_groupPend@{BFI\_\-groupPend}}
\index{BFI_groupPend@{BFI\_\-groupPend}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-groupPend]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-group\-Pend (\hyperlink{BFI_8h_a11}{BFI\_\-group} {\em group}, int {\em timeout})}}
\label{BFI_8h_a106}


Waits for the firing of any interrupt associated with the specified synchronization group.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
group}]The group to pend on. \item[{\em 
timeout}]A timeout. If specified as $>$0, then a timeout interrupt will be delivered upon expiration. If specified as -1, the timeout is infinite. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
A bit mask of interrupts that need to be serviced \end{Desc}
\hypertarget{BFI_8h_a107}{
\index{BFI.h@{BFI.h}!BFI_groupSignal@{BFI\_\-groupSignal}}
\index{BFI_groupSignal@{BFI\_\-groupSignal}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-groupSignal]{\setlength{\rightskip}{0pt plus 5cm}int BFI\_\-group\-Signal (\hyperlink{BFI_8h_a11}{BFI\_\-group} {\em group}, unsigned int {\em irpts})}}
\label{BFI_8h_a107}


Allows one to set a soft interrupt on the specified synchronization group.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
group}]The group to set the soft interrupt on. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
Status\end{Desc}
This mechanism allows the software to deliver a signal to a group. These signals act just about the same way as an interrupt, but whereas interrupts are global, soft interrupts are private to a group. That means the same soft interrupt number can be reused across multiple groups. The signalling is confined to within that group.

One could have implemented a different scheme where a software interrupt was associated with one and only one group, but there seemed to be no real advantage and it was more complicated. The only advantage I could think of was if the same soft interrupt was associated with multiple groups, allowing a kind of broadcast wake-up capability. This was an interesting idea, but did not mirror the usage of hard interrupts being constrained to be connected with only one group.

Currently the only failure mode is if the sem\-Give fails. If one specifies interrupts other than soft interrupts, they are quietly pitched on the ground, that is only the soft interrupts in the {\em irpts} will be signalled, any other bits are ignored. \hypertarget{BFI_8h_a108}{
\index{BFI.h@{BFI.h}!BFI_init@{BFI\_\-init}}
\index{BFI_init@{BFI\_\-init}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-init]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-init (const struct \hyperlink{struct__BFM__dsc}{\_\-BFM\_\-dsc} $\ast$ {\em bfm}, unsigned int {\em tem\-List}, const unsigned int $\ast$ {\em levels}, const unsigned int $\ast$ {\em base})}}
\label{BFI_8h_a108}


Initializes the system service context. Each active TEM has an interrupt level and a base vector assigned to it.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
bfm}]Handle to the Balloon Flight Tems description \item[{\em 
tem\-List}]List of tems to make the assign for. If specified as -1, then all actives TEMs will be assigned. \item[{\em 
levels}]An array, indexed by TEM number, giving the VME interrupt level to assign to each TEM. The level must be a number in the range 0-7. \item[{\em 
base}]An array, indexed by TEM number, giving the base vector to assign to each TEM. The base vector must be a number selected from the set of 0x60, 0x80, 0x\-A0, 0x\-C0 \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
List of TEMs successfully initialized \end{Desc}
\hypertarget{BFI_8h_a109}{
\index{BFI.h@{BFI.h}!BFI_masterDisable@{BFI\_\-masterDisable}}
\index{BFI_masterDisable@{BFI\_\-masterDisable}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-masterDisable]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-master\-Disable (unsigned int {\em tem\-List})}}
\label{BFI_8h_a109}


Disables the master interrupt enable for the specified list of TEMs.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of target TEMs \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of TEMs for which the operation failed. \end{Desc}
\hypertarget{BFI_8h_a110}{
\index{BFI.h@{BFI.h}!BFI_masterEnable@{BFI\_\-masterEnable}}
\index{BFI_masterEnable@{BFI\_\-masterEnable}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-masterEnable]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-master\-Enable (unsigned int {\em tem\-List})}}
\label{BFI_8h_a110}


Enables the master interrupt enable for the specified list of TEMs.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of target TEMs \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of TEMs for which the operation failed. \end{Desc}
\hypertarget{BFI_8h_a111}{
\index{BFI.h@{BFI.h}!BFI_masterReset@{BFI\_\-masterReset}}
\index{BFI_masterReset@{BFI\_\-masterReset}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-masterReset]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-master\-Reset (unsigned int {\em tem\-List})}}
\label{BFI_8h_a111}


Reset the master interrupt enable for the specified list of TEMs. This effectively clears all pending interrupts.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of target TEMs \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of TEMs for which the operation failed.\end{Desc}
Since a master reset clears all pending interrupts, this service will likely be used at initialization time or when the system is in an error condition. \hypertarget{BFI_8h_a112}{
\index{BFI.h@{BFI.h}!BFI_minEventsGet@{BFI\_\-minEventsGet}}
\index{BFI_minEventsGet@{BFI\_\-minEventsGet}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-minEventsGet]{\setlength{\rightskip}{0pt plus 5cm}int BFI\_\-min\-Events\-Get (unsigned int {\em tem\-List}, unsigned int $\ast$ {\em nevts})}}
\label{BFI_8h_a112}


Returns the minimum number of events pending from the specified list of tems, ie {\em tem\-List}.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of TEMS to search. A -1 searches all the active TEMS. \item[{\em 
nevts}]Filled in with the number of events in each TEM. This may be specified as NULL. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The minimum number or pending events.\end{Desc}
Finds the minimum number of events pending amongst the specified list of TEMs. This number is the maximum number of events that can be safely read. The search is always limited to the list of active TEMs. \hypertarget{BFI_8h_a113}{
\index{BFI.h@{BFI.h}!BFI_trim@{BFI\_\-trim}}
\index{BFI_trim@{BFI\_\-trim}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-trim]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-trim (unsigned int {\em tem\-List}, unsigned int {\em int\-List})}}
\label{BFI_8h_a113}


Convenience routine to trim the interrupt sources associated with unused TEMs from the list.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of TEMs whose interrupts should be {\bf preserved}. \item[{\em 
int\-List}]The list of interrupts to trim. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The trimmed list of interrupts. This represents the set of active interrupts in the system. \end{Desc}
\hypertarget{BFI_8h_a114}{
\index{BFI.h@{BFI.h}!BFI_vmeDisable@{BFI\_\-vmeDisable}}
\index{BFI_vmeDisable@{BFI\_\-vmeDisable}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-vmeDisable]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-vme\-Disable (unsigned int {\em tem\-List})}}
\label{BFI_8h_a114}


Disables the VME interrupt for the specified list of TEMs.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of target TEMs \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of TEMs for which the operation failed.\end{Desc}
Disables the VME interrupt for the specified list of TEMs. Technically what is disabled is an VME interrupt level, but, there is a one to one correspondence of a VME interrupt level with a TEM. \hypertarget{BFI_8h_a115}{
\index{BFI.h@{BFI.h}!BFI_vmeEnable@{BFI\_\-vmeEnable}}
\index{BFI_vmeEnable@{BFI\_\-vmeEnable}!BFI.h@{BFI.h}}
\subsubsection[BFI\_\-vmeEnable]{\setlength{\rightskip}{0pt plus 5cm}unsigned int BFI\_\-vme\-Enable (unsigned int {\em tem\-List})}}
\label{BFI_8h_a115}


Enables the VME interrupt for the specified list of TEMs.

\begin{Desc}
\item[Parameters: ]\par
\begin{description}
\item[{\em 
tem\-List}]The list of target TEMs \end{description}
\end{Desc}
\begin{Desc}
\item[Returns: ]\par
The list of TEMs for which the operation failed.\end{Desc}
Ensables the VME interrupt for the specified list of TEMs. Technically what is enabled is an VME interrupt level, but, there is a one to one correspondence of a VME interrupt level with a TEM. 