\hypertarget{tpg_8h}{
\section{tpg.h File Reference}
\label{tpg_8h}\index{tpg.h@{tpg.h}}
}
Trigger Pattern Generator command-line user interface.  


\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef \hyperlink{struct__TPG}{\_\-TPG} \hyperlink{tpg_8h_a0}{TPG}
\item 
typedef enum \hyperlink{tpg_8h_a20}{\_\-tem\-Trg} \hyperlink{tpg_8h_a1}{tem\-Trg}
\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{tpg_8h_a20}{\_\-tem\-Trg} \{ \par
\hyperlink{tpg_8h_a20a3}{TPG\_\-BUSY} =  0, 
\par
\hyperlink{tpg_8h_a20a4}{TPG\_\-TIAR} =  1, 
\par
\hyperlink{tpg_8h_a20a5}{TPG\_\-CALHI} =  2, 
\par
\hyperlink{tpg_8h_a20a6}{TPG\_\-CALLO} =  3, 
\par
\hyperlink{tpg_8h_a20a7}{TPG\_\-N\_\-TRG} =  4
 \}
\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
\hyperlink{struct__TPG}{TPG} $\ast$ \hyperlink{tpg_8h_a8}{TPGnew} (unsigned $\ast$comm\-Addr)
\begin{CompactList}\small\item\em Calls calloc to allocate memory for the struct and associated buffers then sets the buffer pointers to the correct offsets. \item\end{CompactList}\item 
void \hyperlink{tpg_8h_a9}{TPGclear} (\hyperlink{struct__TPG}{TPG} $\ast$this)
\begin{CompactList}\small\item\em Sets all the buffers to 0. \item\end{CompactList}\item 
void \hyperlink{tpg_8h_a10}{TPGclear\-Buf} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned buffer\-Id)
\begin{CompactList}\small\item\em Sets the buffer indicated by {\em buffer\-Id\/} to 0. \item\end{CompactList}\item 
unsigned \hyperlink{tpg_8h_a11}{TPGset\-TEM} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned tem\_\-id, \hyperlink{tpg_8h_a1}{tem\-Trg} trg, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions)
\item 
unsigned \hyperlink{tpg_8h_a12}{TPGset\-VETO} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned free\_\-id, unsigned veto\_\-id, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions)
\item 
unsigned \hyperlink{tpg_8h_a13}{TPGset\-CNO} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned free\_\-id, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions)
\item 
unsigned \hyperlink{tpg_8h_a14}{TPGset\-TEMv} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned tem\_\-id, \hyperlink{tpg_8h_a1}{tem\-Trg} trg, unsigned start, unsigned $\ast$pattern, unsigned pat\_\-len, unsigned repetitions)
\item 
unsigned \hyperlink{tpg_8h_a15}{TPGset\-VETOv} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned free\_\-id, unsigned veto\_\-id, unsigned start, unsigned $\ast$pattern, unsigned pat\_\-len, unsigned repetitions)
\item 
unsigned \hyperlink{tpg_8h_a16}{TPGset\-CNOv} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned free\_\-id, unsigned start, unsigned $\ast$pattern, unsigned pat\_\-len, unsigned repetitions)
\item 
unsigned \hyperlink{tpg_8h_a17}{TPGstart} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned char $\ast$clk\-Delay)
\item 
unsigned \hyperlink{tpg_8h_a18}{TPGdump} (\hyperlink{struct__TPG}{TPG} $\ast$this, unsigned buffer\-Id)
\item 
int \hyperlink{tpg_8h_a19}{TPGmsg\-Init} (void)
\end{CompactItemize}
\subsection*{Variables}
\begin{CompactItemize}
\item 
unsigned \hyperlink{tpg_8h_a2}{TPG\_\-LASTWORD}
\end{CompactItemize}


\subsection{Detailed Description}
Trigger Pattern Generator command-line user interface. 

\begin{Desc}
\item[Author:]James Swain -- \href{mailto:jswain@slac.stanford.edu}{\tt jswain@slac.stanford.edu} \end{Desc}


\subsection{Typedef Documentation}
\hypertarget{tpg_8h_a1}{
\index{tpg.h@{tpg.h}!temTrg@{temTrg}}
\index{temTrg@{temTrg}!tpg.h@{tpg.h}}
\subsubsection[temTrg]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{tpg_8h_a1}{tem\-Trg}}}
\label{tpg_8h_a1}


enums representing the four different TEM trigger signals \hypertarget{tpg_8h_a0}{
\index{tpg.h@{tpg.h}!TPG@{TPG}}
\index{TPG@{TPG}!tpg.h@{tpg.h}}
\subsubsection[TPG]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__TPG}{TPG}}}
\label{tpg_8h_a0}


typedef for the TPG structure containing pattern buffers and gnat\-Handles for the COMM boards 

\subsection{Enumeration Type Documentation}
\hypertarget{tpg_8h_a20}{
\index{tpg.h@{tpg.h}!_temTrg@{\_\-temTrg}}
\index{_temTrg@{\_\-temTrg}!tpg.h@{tpg.h}}
\subsubsection[\_\-temTrg]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{tpg_8h_a20}{\_\-tem\-Trg}}}
\label{tpg_8h_a20}


\begin{Desc}
\item[Enumeration values: ]\par
\begin{description}
\index{TPG_BUSY@{TPG\_\-BUSY}!tpg.h@{tpg.h}}\index{tpg.h@{tpg.h}!TPG_BUSY@{TPG\_\-BUSY}}\item[{\em 
\hypertarget{tpg_8h_a20a3}{
{\em TPG\_\-BUSY}}
\label{tpg_8h_a20a3}
}]TEM Busy signal \index{TPG_TIAR@{TPG\_\-TIAR}!tpg.h@{tpg.h}}\index{tpg.h@{tpg.h}!TPG_TIAR@{TPG\_\-TIAR}}\item[{\em 
\hypertarget{tpg_8h_a20a4}{
{\em TPG\_\-TIAR}}
\label{tpg_8h_a20a4}
}]TEM Three-In-A-Row \index{TPG_CALHI@{TPG\_\-CALHI}!tpg.h@{tpg.h}}\index{tpg.h@{tpg.h}!TPG_CALHI@{TPG\_\-CALHI}}\item[{\em 
\hypertarget{tpg_8h_a20a5}{
{\em TPG\_\-CALHI}}
\label{tpg_8h_a20a5}
}]TEM CAL HI \index{TPG_CALLO@{TPG\_\-CALLO}!tpg.h@{tpg.h}}\index{tpg.h@{tpg.h}!TPG_CALLO@{TPG\_\-CALLO}}\item[{\em 
\hypertarget{tpg_8h_a20a6}{
{\em TPG\_\-CALLO}}
\label{tpg_8h_a20a6}
}]TEM CAL LO \index{TPG_N_TRG@{TPG\_\-N\_\-TRG}!tpg.h@{tpg.h}}\index{tpg.h@{tpg.h}!TPG_N_TRG@{TPG\_\-N\_\-TRG}}\item[{\em 
\hypertarget{tpg_8h_a20a7}{
{\em TPG\_\-N\_\-TRG}}
\label{tpg_8h_a20a7}
}]Number of Trigger inputs from a TEM \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{tpg_8h_a9}{
\index{tpg.h@{tpg.h}!TPGclear@{TPGclear}}
\index{TPGclear@{TPGclear}!tpg.h@{tpg.h}}
\subsubsection[TPGclear]{\setlength{\rightskip}{0pt plus 5cm}void TPGclear (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this})}}
\label{tpg_8h_a9}


Sets all the buffers to 0. 

void \hyperlink{tpg_8c_a2}{TPGclear(TPG$\ast$ this)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure to clear \end{description}
\end{Desc}
\hypertarget{tpg_8h_a10}{
\index{tpg.h@{tpg.h}!TPGclearBuf@{TPGclearBuf}}
\index{TPGclearBuf@{TPGclearBuf}!tpg.h@{tpg.h}}
\subsubsection[TPGclearBuf]{\setlength{\rightskip}{0pt plus 5cm}void TPGclear\-Buf (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em buffer\-Id})}}
\label{tpg_8h_a10}


Sets the buffer indicated by {\em buffer\-Id\/} to 0. 

void \hyperlink{tpg_8c_a3}{TPGclear\-Buf(TPG$\ast$ this, unsigned buffer\-Id)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure containing buffer to clear \item[{\em buffer\-Id}]ID of the buffer to clear \end{description}
\end{Desc}
\hypertarget{tpg_8h_a18}{
\index{tpg.h@{tpg.h}!TPGdump@{TPGdump}}
\index{TPGdump@{TPGdump}!tpg.h@{tpg.h}}
\subsubsection[TPGdump]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGdump (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em buffer\-Id})}}
\label{tpg_8h_a18}


unsigned \hyperlink{tpg_8c_a11}{TPGdump(TPG$\ast$ this, unsigned buffer\-Id)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG struct to use to configure COMM I/O boards \item[{\em buffer\-Id}]Buffer to dump, 0 ... TPG\_\-N\_\-BOARDS \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Print out the bit patterns in the buffer \end{Desc}
\hypertarget{tpg_8h_a19}{
\index{tpg.h@{tpg.h}!TPGmsgInit@{TPGmsgInit}}
\index{TPGmsgInit@{TPGmsgInit}!tpg.h@{tpg.h}}
\subsubsection[TPGmsgInit]{\setlength{\rightskip}{0pt plus 5cm}int TPGmsg\-Init (void)}}
\label{tpg_8h_a19}


int \hyperlink{tpg_8c_a18}{TPGmsg\-Init(void)} \begin{Desc}
\item[Returns:]0 on success, -1 on failure  Starts a simple printf MSG processor \end{Desc}
\hypertarget{tpg_8h_a8}{
\index{tpg.h@{tpg.h}!TPGnew@{TPGnew}}
\index{TPGnew@{TPGnew}!tpg.h@{tpg.h}}
\subsubsection[TPGnew]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__TPG}{TPG}$\ast$ TPGnew (unsigned $\ast$ {\em comm\-Addr})}}
\label{tpg_8h_a8}


Calls calloc to allocate memory for the struct and associated buffers then sets the buffer pointers to the correct offsets. 

TPG$\ast$ \hyperlink{tpg_8c_a1}{TPGnew(unsigned$\ast$ comm\-Addr)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em comm\-Addr}]Array of addresses (TPG\_\-N\_\-BOARDS long) of the COMM I/O boards \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]Ptr to a new TPG structure containing ptrs to buffers and gnat\-Handles \end{Desc}
\hypertarget{tpg_8h_a13}{
\index{tpg.h@{tpg.h}!TPGsetCNO@{TPGsetCNO}}
\index{TPGsetCNO@{TPGsetCNO}!tpg.h@{tpg.h}}
\subsubsection[TPGsetCNO]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGset\-CNO (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em free\_\-id}, unsigned {\em start}, unsigned {\em pattern}, unsigned {\em pat\_\-len}, unsigned {\em repetitions})}}
\label{tpg_8h_a13}


unsigned \hyperlink{tpg_8c_a6}{TPGset\-CNO(TPG$\ast$ this, unsigned free\_\-id, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure being modified \item[{\em free\_\-id}]FREE being targeted (gives tgt board), 0 ... 3 \item[{\em start}]Start bit for the pattern, 0 ... (32$\ast$1024)-1 \item[{\em pattern}]Up to 32 bit pattern to use (LSB first) \item[{\em pat\_\-len}]Pattern length 1 ... 32 \item[{\em repetitions}]Number of times to repeat the same pattern on this channel, use 0 to request as many reps as will fit in remaining FIFO depth \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Places the {\em pat\_\-len\/} LSBs of {\em pattern\/} into the channel and buffer indicated by {\em free\_\-id\/} and {\em veto\_\-id\/} \end{Desc}
\hypertarget{tpg_8h_a16}{
\index{tpg.h@{tpg.h}!TPGsetCNOv@{TPGsetCNOv}}
\index{TPGsetCNOv@{TPGsetCNOv}!tpg.h@{tpg.h}}
\subsubsection[TPGsetCNOv]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGset\-CNOv (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em free\_\-id}, unsigned {\em start}, unsigned $\ast$ {\em pattern}, unsigned {\em pat\_\-len}, unsigned {\em repetitions})}}
\label{tpg_8h_a16}


unsigned TPGset\-CNOv(TPG$\ast$ this, unsigned free\_\-id, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions) \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure being modified \item[{\em free\_\-id}]FREE being targeted (gives tgt board), 0 ... 3 \item[{\em start}]Start bit for the pattern, 0 ... (32$\ast$1024)-1 \item[{\em pattern}]Up to 32 bit pattern to use (LSB first) \item[{\em pat\_\-len}]Pattern length 1 ... (32$\ast$1024) - 1 \item[{\em repetitions}]Number of times to repeat the same pattern on this channel, use 0 to request as many reps as will fit in remaining FIFO depth \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Places the {\em pat\_\-len\/} LSBs of {\em pattern\/} into the channel and buffer indicated by {\em free\_\-id\/} and {\em veto\_\-id\/} \end{Desc}
\hypertarget{tpg_8h_a11}{
\index{tpg.h@{tpg.h}!TPGsetTEM@{TPGsetTEM}}
\index{TPGsetTEM@{TPGsetTEM}!tpg.h@{tpg.h}}
\subsubsection[TPGsetTEM]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGset\-TEM (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em tem\_\-id}, \hyperlink{tpg_8h_a1}{tem\-Trg} {\em trg}, unsigned {\em start}, unsigned {\em pattern}, unsigned {\em pat\_\-len}, unsigned {\em repetitions})}}
\label{tpg_8h_a11}


unsigned \hyperlink{tpg_8c_a4}{TPGset\-TEM(TPG$\ast$ this, unsigned tem\_\-id, tem\-Trg   trg, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure being modified \item[{\em tem\_\-id}]TEM being targeted (gives channel range), 0 ... 3 \item[{\em trg}]TEM trg being targeted, (gives channel number), 0 ... 3, use tem\-Trg \item[{\em start}]Start bit for the pattern, 0 ... (32$\ast$1024)-1 \item[{\em pattern}]Up to 32 bit pattern to use (LSB first) \item[{\em pat\_\-len}]Pattern length 1 ... 32 \item[{\em repetitions}]Number of times to repeat the same pattern on this channel, use 0 to request as many reps as will fit in remaining FIFO depth \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Places the {\em pat\_\-len\/} LSBs of {\em pattern\/} into the channel and buffer indicated by {\em tem\_\-id\/} and {\em trg\/} \end{Desc}
\hypertarget{tpg_8h_a14}{
\index{tpg.h@{tpg.h}!TPGsetTEMv@{TPGsetTEMv}}
\index{TPGsetTEMv@{TPGsetTEMv}!tpg.h@{tpg.h}}
\subsubsection[TPGsetTEMv]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGset\-TEMv (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em tem\_\-id}, \hyperlink{tpg_8h_a1}{tem\-Trg} {\em trg}, unsigned {\em start}, unsigned $\ast$ {\em pattern}, unsigned {\em pat\_\-len}, unsigned {\em repetitions})}}
\label{tpg_8h_a14}


unsigned \hyperlink{tpg_8c_a7}{TPGset\-TEMv(TPG$\ast$ this, unsigned tem\_\-id, tem\-Trg   trg, unsigned start, unsigned$\ast$ pattern, unsigned pat\_\-len, unsigned repetitions)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure being modified \item[{\em tem\_\-id}]TEM being targeted (gives channel range), 0 ... 3 \item[{\em trg}]TEM trg being targeted, (gives channel number), 0 ... 3, use tem\-Trg \item[{\em start}]Start bit for the pattern, 0 ... (32$\ast$1024)-1 \item[{\em pattern}]Up to 32 bit pattern to use (LSB first) \item[{\em pat\_\-len}]Pattern length 1 ... (32$\ast$1024) - 1 \item[{\em repetitions}]Number of times to repeat the same pattern on this channel, use 0 to request as many reps as will fit in remaining FIFO depth \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Places the {\em pat\_\-len\/} LSBs of {\em pattern\/} into the channel and buffer indicated by {\em tem\_\-id\/} and {\em trg\/} \end{Desc}
\hypertarget{tpg_8h_a12}{
\index{tpg.h@{tpg.h}!TPGsetVETO@{TPGsetVETO}}
\index{TPGsetVETO@{TPGsetVETO}!tpg.h@{tpg.h}}
\subsubsection[TPGsetVETO]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGset\-VETO (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em free\_\-id}, unsigned {\em veto\_\-id}, unsigned {\em start}, unsigned {\em pattern}, unsigned {\em pat\_\-len}, unsigned {\em repetitions})}}
\label{tpg_8h_a12}


unsigned \hyperlink{tpg_8c_a5}{TPGset\-VETO(TPG$\ast$ this, unsigned free\_\-id, unsigned veto\_\-id, unsigned start, unsigned pattern, unsigned pat\_\-len, unsigned repetitions)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure being modified \item[{\em free\_\-id}]FREE being targeted (gives tgt board), 0 ... 3 \item[{\em veto\_\-id}]VETO bit being targeted, (gives channel number), 0 ... 17 \item[{\em start}]Start bit for the pattern, 0 ... (32$\ast$1024)-1 \item[{\em pattern}]Up to 32 bit pattern to use (LSB first) \item[{\em pat\_\-len}]Pattern length 1 ... 32 \item[{\em repetitions}]Number of times to repeat the same pattern on this channel, use 0 to request as many reps as will fit in remaining FIFO depth \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Places the {\em pat\_\-len\/} LSBs of {\em pattern\/} into the channel and buffer indicated by {\em free\_\-id\/} and {\em veto\_\-id\/} \end{Desc}
\hypertarget{tpg_8h_a15}{
\index{tpg.h@{tpg.h}!TPGsetVETOv@{TPGsetVETOv}}
\index{TPGsetVETOv@{TPGsetVETOv}!tpg.h@{tpg.h}}
\subsubsection[TPGsetVETOv]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGset\-VETOv (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned {\em free\_\-id}, unsigned {\em veto\_\-id}, unsigned {\em start}, unsigned $\ast$ {\em pattern}, unsigned {\em pat\_\-len}, unsigned {\em repetitions})}}
\label{tpg_8h_a15}


unsigned \hyperlink{tpg_8c_a8}{TPGset\-VETOv(TPG$\ast$ this, unsigned free\_\-id, unsigned veto\_\-id, unsigned start, unsigned$\ast$ pattern, unsigned pat\_\-len, unsigned repetitions)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG structure being modified \item[{\em free\_\-id}]FREE being targeted (gives tgt board), 0 ... 3 \item[{\em veto\_\-id}]VETO bit being targeted, (gives channel number), 0 ... 17 \item[{\em start}]Start bit for the pattern, 0 ... (32$\ast$1024)-1 \item[{\em pattern}]Up to 32 bit pattern to use (LSB first) \item[{\em pat\_\-len}]Pattern length 1 ... (32$\ast$1024) - 1 \item[{\em repetitions}]Number of times to repeat the same pattern on this channel, use 0 to request as many reps as will fit in remaining FIFO depth \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Places the {\em pat\_\-len\/} LSBs of {\em pattern\/} into the channel and buffer indicated by {\em free\_\-id\/} and {\em veto\_\-id\/} \end{Desc}
\hypertarget{tpg_8h_a17}{
\index{tpg.h@{tpg.h}!TPGstart@{TPGstart}}
\index{TPGstart@{TPGstart}!tpg.h@{tpg.h}}
\subsubsection[TPGstart]{\setlength{\rightskip}{0pt plus 5cm}unsigned TPGstart (\hyperlink{struct__TPG}{TPG} $\ast$ {\em this}, unsigned char $\ast$ {\em clk\-Delay})}}
\label{tpg_8h_a17}


unsigned \hyperlink{tpg_8c_a10}{TPGstart(TPG$\ast$ this, unsigned char$\ast$ clk\-Delay)} \begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em this}]TPG struct to use to configure COMM I/O boards \item[{\em clk\-Delay}]Array of (6 bit) clock delays (TPG\_\-N\_\-BOARDS long) for the COMM I/O boards, to remove clock skew. \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]One of TPG\_\-msgs, TPG\_\-SUCCESS if all goes well.  Use Programmed I/O to fill the COMM board FIFOs, then start the sequence \end{Desc}


\subsection{Variable Documentation}
\hypertarget{tpg_8h_a2}{
\index{tpg.h@{tpg.h}!TPG_LASTWORD@{TPG\_\-LASTWORD}}
\index{TPG_LASTWORD@{TPG\_\-LASTWORD}!tpg.h@{tpg.h}}
\subsubsection[TPG\_\-LASTWORD]{\setlength{\rightskip}{0pt plus 5cm}unsigned \hyperlink{tpg_8c_a0}{TPG\_\-LASTWORD} ()}}
\label{tpg_8h_a2}


first bit of last word of a pattern 