\hypertarget{exi_8h}{
\section{libbroadway/include/broadway/exi.h File Reference}
\label{exi_8h}\index{libbroadway/include/broadway/exi.h@{libbroadway/include/broadway/exi.h}}
}
{\ttfamily \#include $<$types.h$>$}\par
{\ttfamily \#include $<$broadway.h$>$}\par
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dce}{exi\_\-clock\_\-t} \{ \par
\hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dceaff21583b318b02481bf7c8b5984edcb8}{EXI\_\-CLOCK\_\-1MHz} =  0, 
\hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dceacb0465f12a8aa5d6de92853419bbac94}{EXI\_\-CLOCK\_\-2MHz}, 
\hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dceacefe9d78194fbb2165dcecc82ddc99d9}{EXI\_\-CLOCK\_\-4MHz}, 
\hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dcea9967b61b5e4349c7ba9683ff92209685}{EXI\_\-CLOCK\_\-8MHz}, 
\par
\hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dceabae2b120a0eadda6db9df097acefa67d}{EXI\_\-CLOCK\_\-16MHz}, 
\hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dcea0b4f1b32a0cd4fb32087d2dd5dd7a679}{EXI\_\-CLOCK\_\-32MHz}
 \}
\item 
enum \hyperlink{exi_8h_afe5d5237c900b99c3c29672ad9a83209}{exi\_\-transfer\_\-t} \{ \hyperlink{exi_8h_afe5d5237c900b99c3c29672ad9a83209a9362b7e6676d1c7c51e1397e1f87a899}{EXI\_\-TRANSFER\_\-READ} =  0, 
\hyperlink{exi_8h_afe5d5237c900b99c3c29672ad9a83209a356dd55a061e5bbc3e5645efa6458d8b}{EXI\_\-TRANSFER\_\-WRITE}, 
\hyperlink{exi_8h_afe5d5237c900b99c3c29672ad9a83209a27171a67261ef7b28b075d77ee6f16a6}{EXI\_\-TRANSFER\_\-READ\_\-WRITE}
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{exi_8h_af0a319cbb57105ea0a49b8818d4dea81}{irq\_\-exi\_\-enable} (u32 irq)
\begin{DoxyCompactList}\small\item\em Enables a specific EXI IRQ. \item\end{DoxyCompactList}\item 
void \hyperlink{exi_8h_a1930adc5e78db22166c78cfeebe2ae2b}{irq\_\-exi\_\-disable} (u32 irq)
\begin{DoxyCompactList}\small\item\em Disables a specific EXI IRQ. \item\end{DoxyCompactList}\item 
int \hyperlink{exi_8h_ad2ed33683eb92b77f374b3b16da2a708}{irq\_\-exi\_\-register\_\-handler} (u32 irqn, int($\ast$exec)(u32 irq, void $\ast$data), void $\ast$data)
\begin{DoxyCompactList}\small\item\em Register an EXI IRQ handler. \item\end{DoxyCompactList}\item 
\hyperlink{structirq__handler__t}{irq\_\-handler\_\-t} \hyperlink{exi_8h_aeeedbd24c78ef420fc826dc7543b9a8e}{irq\_\-exi\_\-get\_\-handler} (u32 irqn)
\begin{DoxyCompactList}\small\item\em Gets an EXI IRQ handler. \item\end{DoxyCompactList}\item 
int \hyperlink{exi_8h_af2351c62dcadbdf60f6e856bd613c9e1}{exi\_\-initialize} (void)
\begin{DoxyCompactList}\small\item\em Initialize the EXI subsystem. \item\end{DoxyCompactList}\item 
int \hyperlink{exi_8h_a93b6db65d0350b15a5957f179814eed9}{exi\_\-shutdown} (void)
\begin{DoxyCompactList}\small\item\em Shut down the EXI subsystem. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_af0a9a0b703565b0b1539150774be2fc5}{exi\_\-set\_\-lock} (BOOL locked)
\begin{DoxyCompactList}\small\item\em Turn on/off EXI clock lock. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a05a53d47977d961aac84d1dc4588617d}{exi\_\-set\_\-clock} (int chan, \hyperlink{exi_8h_a80988d03066bbe38409ee25901b45dce}{exi\_\-clock\_\-t} clk)
\begin{DoxyCompactList}\small\item\em Set EXI clock frequency. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a1761128610fa99df7f9cb1b34d7cab34}{exi\_\-device\_\-select} (int chan, int dev)
\begin{DoxyCompactList}\small\item\em Select EXI device. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a4c9f17460c44298abdd09a7b5c437097}{exi\_\-device\_\-deselect} (int chan, int dev)
\begin{DoxyCompactList}\small\item\em Deselect EXI device. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a97b082f2dfa226df8751c55fe841ccf5}{exi\_\-device\_\-connected} (int chan)
\begin{DoxyCompactList}\small\item\em Checks if a device is connected. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_aabaa0e573d46d98c0e5a33d1a121fb59}{exi\_\-set\_\-dma\_\-address} (int chan, u32 addr)
\begin{DoxyCompactList}\small\item\em Sets DMA start address. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a40a18d6651a3fa4e03e4860e8d6508e3}{exi\_\-set\_\-dma\_\-length} (int chan, u32 len)
\begin{DoxyCompactList}\small\item\em Sets DMA length. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a2dd391b860c99c8b4805958ad98405e8}{exi\_\-set\_\-immediate\_\-length} (int chan, int len)
\begin{DoxyCompactList}\small\item\em Sets Immediate data length. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_aaefa150f7fc1c97c3567d4da46e3a8ba}{exi\_\-transfer} (int chan, \hyperlink{exi_8h_afe5d5237c900b99c3c29672ad9a83209}{exi\_\-transfer\_\-t} type, BOOL dma)
\begin{DoxyCompactList}\small\item\em Perform an EXI transfer. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a9d3d1d41a7accf729adba185b2a1709e}{exi\_\-transfer\_\-ended} (int chan)
\begin{DoxyCompactList}\small\item\em Check if an EXI transfer is complete. \item\end{DoxyCompactList}\item 
u32 \hyperlink{exi_8h_a5a75a7a283936ea130da2e15ca6ac9a4}{exi\_\-immediate\_\-recv} (int chan)
\begin{DoxyCompactList}\small\item\em Get data from an Immediate EXI transfer. \item\end{DoxyCompactList}\item 
BOOL \hyperlink{exi_8h_a30d5a1af3e7add2dfecdffaa02d9b131}{exi\_\-immediate\_\-send} (int chan, u32 data)
\begin{DoxyCompactList}\small\item\em Set data for an Immediate EXI transfer. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
An abstraction of the External Interface (EXI). Fairly low-\/level, so you need to know what you're doing (though if you didn't, why would you be touching this file). 

\subsection{Enumeration Type Documentation}
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dce}{
\index{exi.h@{exi.h}!exi\_\-clock\_\-t@{exi\_\-clock\_\-t}}
\index{exi\_\-clock\_\-t@{exi\_\-clock\_\-t}!exi.h@{exi.h}}
\subsubsection[{exi\_\-clock\_\-t}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf exi\_\-clock\_\-t}}}
\label{exi_8h_a80988d03066bbe38409ee25901b45dce}
Clock speeds for an EXI channel to run at. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{EXI\_\-CLOCK\_\-1MHz@{EXI\_\-CLOCK\_\-1MHz}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-CLOCK\_\-1MHz@{EXI\_\-CLOCK\_\-1MHz}}\item[{\em 
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dceaff21583b318b02481bf7c8b5984edcb8}{
EXI\_\-CLOCK\_\-1MHz}
\label{exi_8h_a80988d03066bbe38409ee25901b45dceaff21583b318b02481bf7c8b5984edcb8}
}]1MHz clock \index{EXI\_\-CLOCK\_\-2MHz@{EXI\_\-CLOCK\_\-2MHz}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-CLOCK\_\-2MHz@{EXI\_\-CLOCK\_\-2MHz}}\item[{\em 
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dceacb0465f12a8aa5d6de92853419bbac94}{
EXI\_\-CLOCK\_\-2MHz}
\label{exi_8h_a80988d03066bbe38409ee25901b45dceacb0465f12a8aa5d6de92853419bbac94}
}]2MHz clock \index{EXI\_\-CLOCK\_\-4MHz@{EXI\_\-CLOCK\_\-4MHz}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-CLOCK\_\-4MHz@{EXI\_\-CLOCK\_\-4MHz}}\item[{\em 
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dceacefe9d78194fbb2165dcecc82ddc99d9}{
EXI\_\-CLOCK\_\-4MHz}
\label{exi_8h_a80988d03066bbe38409ee25901b45dceacefe9d78194fbb2165dcecc82ddc99d9}
}]4MHz clock \index{EXI\_\-CLOCK\_\-8MHz@{EXI\_\-CLOCK\_\-8MHz}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-CLOCK\_\-8MHz@{EXI\_\-CLOCK\_\-8MHz}}\item[{\em 
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dcea9967b61b5e4349c7ba9683ff92209685}{
EXI\_\-CLOCK\_\-8MHz}
\label{exi_8h_a80988d03066bbe38409ee25901b45dcea9967b61b5e4349c7ba9683ff92209685}
}]8MHz clock \index{EXI\_\-CLOCK\_\-16MHz@{EXI\_\-CLOCK\_\-16MHz}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-CLOCK\_\-16MHz@{EXI\_\-CLOCK\_\-16MHz}}\item[{\em 
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dceabae2b120a0eadda6db9df097acefa67d}{
EXI\_\-CLOCK\_\-16MHz}
\label{exi_8h_a80988d03066bbe38409ee25901b45dceabae2b120a0eadda6db9df097acefa67d}
}]16MHz clock \index{EXI\_\-CLOCK\_\-32MHz@{EXI\_\-CLOCK\_\-32MHz}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-CLOCK\_\-32MHz@{EXI\_\-CLOCK\_\-32MHz}}\item[{\em 
\hypertarget{exi_8h_a80988d03066bbe38409ee25901b45dcea0b4f1b32a0cd4fb32087d2dd5dd7a679}{
EXI\_\-CLOCK\_\-32MHz}
\label{exi_8h_a80988d03066bbe38409ee25901b45dcea0b4f1b32a0cd4fb32087d2dd5dd7a679}
}]32MHz clock. EXI clock lock must be disabled \end{description}
\end{Desc}

\hypertarget{exi_8h_afe5d5237c900b99c3c29672ad9a83209}{
\index{exi.h@{exi.h}!exi\_\-transfer\_\-t@{exi\_\-transfer\_\-t}}
\index{exi\_\-transfer\_\-t@{exi\_\-transfer\_\-t}!exi.h@{exi.h}}
\subsubsection[{exi\_\-transfer\_\-t}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf exi\_\-transfer\_\-t}}}
\label{exi_8h_afe5d5237c900b99c3c29672ad9a83209}
Transfer modes for an EXI channel to use. \begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{EXI\_\-TRANSFER\_\-READ@{EXI\_\-TRANSFER\_\-READ}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-TRANSFER\_\-READ@{EXI\_\-TRANSFER\_\-READ}}\item[{\em 
\hypertarget{exi_8h_afe5d5237c900b99c3c29672ad9a83209a9362b7e6676d1c7c51e1397e1f87a899}{
EXI\_\-TRANSFER\_\-READ}
\label{exi_8h_afe5d5237c900b99c3c29672ad9a83209a9362b7e6676d1c7c51e1397e1f87a899}
}]Read \index{EXI\_\-TRANSFER\_\-WRITE@{EXI\_\-TRANSFER\_\-WRITE}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-TRANSFER\_\-WRITE@{EXI\_\-TRANSFER\_\-WRITE}}\item[{\em 
\hypertarget{exi_8h_afe5d5237c900b99c3c29672ad9a83209a356dd55a061e5bbc3e5645efa6458d8b}{
EXI\_\-TRANSFER\_\-WRITE}
\label{exi_8h_afe5d5237c900b99c3c29672ad9a83209a356dd55a061e5bbc3e5645efa6458d8b}
}]Write \index{EXI\_\-TRANSFER\_\-READ\_\-WRITE@{EXI\_\-TRANSFER\_\-READ\_\-WRITE}!exi.h@{exi.h}}\index{exi.h@{exi.h}!EXI\_\-TRANSFER\_\-READ\_\-WRITE@{EXI\_\-TRANSFER\_\-READ\_\-WRITE}}\item[{\em 
\hypertarget{exi_8h_afe5d5237c900b99c3c29672ad9a83209a27171a67261ef7b28b075d77ee6f16a6}{
EXI\_\-TRANSFER\_\-READ\_\-WRITE}
\label{exi_8h_afe5d5237c900b99c3c29672ad9a83209a27171a67261ef7b28b075d77ee6f16a6}
}]Read and Write (invalid for DMA) \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{exi_8h_a97b082f2dfa226df8751c55fe841ccf5}{
\index{exi.h@{exi.h}!exi\_\-device\_\-connected@{exi\_\-device\_\-connected}}
\index{exi\_\-device\_\-connected@{exi\_\-device\_\-connected}!exi.h@{exi.h}}
\subsubsection[{exi\_\-device\_\-connected}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-device\_\-connected (int {\em chan})}}
\label{exi_8h_a97b082f2dfa226df8751c55fe841ccf5}


Checks if a device is connected. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to check for a device on. (0 $\sim$ 2) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if there is a device, FALSE if there is not a device 
\end{DoxyReturn}
\hypertarget{exi_8h_a4c9f17460c44298abdd09a7b5c437097}{
\index{exi.h@{exi.h}!exi\_\-device\_\-deselect@{exi\_\-device\_\-deselect}}
\index{exi\_\-device\_\-deselect@{exi\_\-device\_\-deselect}!exi.h@{exi.h}}
\subsubsection[{exi\_\-device\_\-deselect}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-device\_\-deselect (int {\em chan}, \/  int {\em dev})}}
\label{exi_8h_a4c9f17460c44298abdd09a7b5c437097}


Deselect EXI device. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to deselect a device for. (0 $\sim$ 2) \item[{\em dev}]device number to deselect. (0 $\sim$ 2) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a05a53d47977d961aac84d1dc4588617d}{exi\_\-set\_\-clock()}, \hyperlink{exi_8h_a1761128610fa99df7f9cb1b34d7cab34}{exi\_\-device\_\-select()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a1761128610fa99df7f9cb1b34d7cab34}{
\index{exi.h@{exi.h}!exi\_\-device\_\-select@{exi\_\-device\_\-select}}
\index{exi\_\-device\_\-select@{exi\_\-device\_\-select}!exi.h@{exi.h}}
\subsubsection[{exi\_\-device\_\-select}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-device\_\-select (int {\em chan}, \/  int {\em dev})}}
\label{exi_8h_a1761128610fa99df7f9cb1b34d7cab34}


Select EXI device. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to select a device for. (0 $\sim$ 2) \item[{\em dev}]device number to select. (0 $\sim$ 2) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a05a53d47977d961aac84d1dc4588617d}{exi\_\-set\_\-clock()}, \hyperlink{exi_8h_a4c9f17460c44298abdd09a7b5c437097}{exi\_\-device\_\-deselect()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a5a75a7a283936ea130da2e15ca6ac9a4}{
\index{exi.h@{exi.h}!exi\_\-immediate\_\-recv@{exi\_\-immediate\_\-recv}}
\index{exi\_\-immediate\_\-recv@{exi\_\-immediate\_\-recv}!exi.h@{exi.h}}
\subsubsection[{exi\_\-immediate\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}u32 exi\_\-immediate\_\-recv (int {\em chan})}}
\label{exi_8h_a5a75a7a283936ea130da2e15ca6ac9a4}


Get data from an Immediate EXI transfer. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to get data from. (0 $\sim$ 2) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
The data retrieved from the EXI transfer. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a30d5a1af3e7add2dfecdffaa02d9b131}{exi\_\-immediate\_\-send()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a30d5a1af3e7add2dfecdffaa02d9b131}{
\index{exi.h@{exi.h}!exi\_\-immediate\_\-send@{exi\_\-immediate\_\-send}}
\index{exi\_\-immediate\_\-send@{exi\_\-immediate\_\-send}!exi.h@{exi.h}}
\subsubsection[{exi\_\-immediate\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-immediate\_\-send (int {\em chan}, \/  u32 {\em data})}}
\label{exi_8h_a30d5a1af3e7add2dfecdffaa02d9b131}


Set data for an Immediate EXI transfer. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to get data from. (0 $\sim$ 2) \item[{\em data}]the data sent during the EXI transfer. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a5a75a7a283936ea130da2e15ca6ac9a4}{exi\_\-immediate\_\-recv()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_af2351c62dcadbdf60f6e856bd613c9e1}{
\index{exi.h@{exi.h}!exi\_\-initialize@{exi\_\-initialize}}
\index{exi\_\-initialize@{exi\_\-initialize}!exi.h@{exi.h}}
\subsubsection[{exi\_\-initialize}]{\setlength{\rightskip}{0pt plus 5cm}int exi\_\-initialize (void)}}
\label{exi_8h_af2351c62dcadbdf60f6e856bd613c9e1}


Initialize the EXI subsystem. 

Initializes the EXI subsystem, registers the handler for the EXI interrupt and performs all other required initialization tasks. \begin{DoxyReturn}{Returns}
If initialization was successful, returns 1. Otherwise 0. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a93b6db65d0350b15a5957f179814eed9}{exi\_\-shutdown()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a05a53d47977d961aac84d1dc4588617d}{
\index{exi.h@{exi.h}!exi\_\-set\_\-clock@{exi\_\-set\_\-clock}}
\index{exi\_\-set\_\-clock@{exi\_\-set\_\-clock}!exi.h@{exi.h}}
\subsubsection[{exi\_\-set\_\-clock}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-set\_\-clock (int {\em chan}, \/  {\bf exi\_\-clock\_\-t} {\em clk})}}
\label{exi_8h_a05a53d47977d961aac84d1dc4588617d}


Set EXI clock frequency. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to set the clock frequency of. (0 $\sim$ 2) \item[{\em freq}]exi\_\-clock\_\-t enumeration specifying the clock to operate at. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_af0a9a0b703565b0b1539150774be2fc5}{exi\_\-set\_\-lock()}, \hyperlink{exi_8h_a1761128610fa99df7f9cb1b34d7cab34}{exi\_\-device\_\-select()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_aabaa0e573d46d98c0e5a33d1a121fb59}{
\index{exi.h@{exi.h}!exi\_\-set\_\-dma\_\-address@{exi\_\-set\_\-dma\_\-address}}
\index{exi\_\-set\_\-dma\_\-address@{exi\_\-set\_\-dma\_\-address}!exi.h@{exi.h}}
\subsubsection[{exi\_\-set\_\-dma\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-set\_\-dma\_\-address (int {\em chan}, \/  u32 {\em addr})}}
\label{exi_8h_aabaa0e573d46d98c0e5a33d1a121fb59}


Sets DMA start address. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to set the DMA start address for. (0 $\sim$ 2) \item[{\em addr}]address to set as the start address for DMA. (32byte aligned) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a40a18d6651a3fa4e03e4860e8d6508e3}{exi\_\-set\_\-dma\_\-length()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a40a18d6651a3fa4e03e4860e8d6508e3}{
\index{exi.h@{exi.h}!exi\_\-set\_\-dma\_\-length@{exi\_\-set\_\-dma\_\-length}}
\index{exi\_\-set\_\-dma\_\-length@{exi\_\-set\_\-dma\_\-length}!exi.h@{exi.h}}
\subsubsection[{exi\_\-set\_\-dma\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-set\_\-dma\_\-length (int {\em chan}, \/  u32 {\em len})}}
\label{exi_8h_a40a18d6651a3fa4e03e4860e8d6508e3}


Sets DMA length. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to set the DMA length for. (0 $\sim$ 2) \item[{\em len}]length of the DMA. (32byte aligned) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_aabaa0e573d46d98c0e5a33d1a121fb59}{exi\_\-set\_\-dma\_\-address()}, \hyperlink{exi_8h_a2dd391b860c99c8b4805958ad98405e8}{exi\_\-set\_\-immediate\_\-length()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a2dd391b860c99c8b4805958ad98405e8}{
\index{exi.h@{exi.h}!exi\_\-set\_\-immediate\_\-length@{exi\_\-set\_\-immediate\_\-length}}
\index{exi\_\-set\_\-immediate\_\-length@{exi\_\-set\_\-immediate\_\-length}!exi.h@{exi.h}}
\subsubsection[{exi\_\-set\_\-immediate\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-set\_\-immediate\_\-length (int {\em chan}, \/  int {\em len})}}
\label{exi_8h_a2dd391b860c99c8b4805958ad98405e8}


Sets Immediate data length. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to set the length of immediate data. (0 $\sim$ 2) \item[{\em len}]length of immediate data. (1 $\sim$ 4) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if setting was successful, FALSE otherwise. 
\end{DoxyReturn}
\hypertarget{exi_8h_af0a9a0b703565b0b1539150774be2fc5}{
\index{exi.h@{exi.h}!exi\_\-set\_\-lock@{exi\_\-set\_\-lock}}
\index{exi\_\-set\_\-lock@{exi\_\-set\_\-lock}!exi.h@{exi.h}}
\subsubsection[{exi\_\-set\_\-lock}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-set\_\-lock (BOOL {\em locked})}}
\label{exi_8h_af0a9a0b703565b0b1539150774be2fc5}


Turn on/off EXI clock lock. 


\begin{DoxyParams}{Parameters}
\item[{\em locked}]TRUE to lock EXI clock, FALSE to unlock it. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns the old EXI clock lock status. 
\end{DoxyReturn}
\hypertarget{exi_8h_a93b6db65d0350b15a5957f179814eed9}{
\index{exi.h@{exi.h}!exi\_\-shutdown@{exi\_\-shutdown}}
\index{exi\_\-shutdown@{exi\_\-shutdown}!exi.h@{exi.h}}
\subsubsection[{exi\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int exi\_\-shutdown (void)}}
\label{exi_8h_a93b6db65d0350b15a5957f179814eed9}


Shut down the EXI subsystem. 

Shuts down the EXI subsystem, unregisters the handler for the EXI interrupt and performs all other required shut down tasks. \begin{DoxyReturn}{Returns}
If shut down was successful, returns 1. Otherwise 0. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_af2351c62dcadbdf60f6e856bd613c9e1}{exi\_\-initialize()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_aaefa150f7fc1c97c3567d4da46e3a8ba}{
\index{exi.h@{exi.h}!exi\_\-transfer@{exi\_\-transfer}}
\index{exi\_\-transfer@{exi\_\-transfer}!exi.h@{exi.h}}
\subsubsection[{exi\_\-transfer}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-transfer (int {\em chan}, \/  {\bf exi\_\-transfer\_\-t} {\em type}, \/  BOOL {\em dma})}}
\label{exi_8h_aaefa150f7fc1c97c3567d4da46e3a8ba}


Perform an EXI transfer. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to transfer on. (0 $\sim$ 2) \item[{\em type}]exi\_\-transfer\_\-t enumeration specifying the transfer type. \item[{\em dma}]TRUE if this is a DMA, FALSE for an immediate transfer. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if transfer was successfully started, FALSE otherwise. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a9d3d1d41a7accf729adba185b2a1709e}{exi\_\-transfer\_\-ended()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a9d3d1d41a7accf729adba185b2a1709e}{
\index{exi.h@{exi.h}!exi\_\-transfer\_\-ended@{exi\_\-transfer\_\-ended}}
\index{exi\_\-transfer\_\-ended@{exi\_\-transfer\_\-ended}!exi.h@{exi.h}}
\subsubsection[{exi\_\-transfer\_\-ended}]{\setlength{\rightskip}{0pt plus 5cm}BOOL exi\_\-transfer\_\-ended (int {\em chan})}}
\label{exi_8h_a9d3d1d41a7accf729adba185b2a1709e}


Check if an EXI transfer is complete. 


\begin{DoxyParams}{Parameters}
\item[{\em chan}]EXI channel to check for completion. (0 $\sim$ 2) \end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE if transfer is complete, FALSE if transfer is still in progress. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_aaefa150f7fc1c97c3567d4da46e3a8ba}{exi\_\-transfer()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_a1930adc5e78db22166c78cfeebe2ae2b}{
\index{exi.h@{exi.h}!irq\_\-exi\_\-disable@{irq\_\-exi\_\-disable}}
\index{irq\_\-exi\_\-disable@{irq\_\-exi\_\-disable}!exi.h@{exi.h}}
\subsubsection[{irq\_\-exi\_\-disable}]{\setlength{\rightskip}{0pt plus 5cm}void irq\_\-exi\_\-disable (u32 {\em irq})}}
\label{exi_8h_a1930adc5e78db22166c78cfeebe2ae2b}


Disables a specific EXI IRQ. 


\begin{DoxyParams}{Parameters}
\item[{\em irq}]the IRQ to disable \end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_af0a319cbb57105ea0a49b8818d4dea81}{irq\_\-exi\_\-enable()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_af0a319cbb57105ea0a49b8818d4dea81}{
\index{exi.h@{exi.h}!irq\_\-exi\_\-enable@{irq\_\-exi\_\-enable}}
\index{irq\_\-exi\_\-enable@{irq\_\-exi\_\-enable}!exi.h@{exi.h}}
\subsubsection[{irq\_\-exi\_\-enable}]{\setlength{\rightskip}{0pt plus 5cm}void irq\_\-exi\_\-enable (u32 {\em irq})}}
\label{exi_8h_af0a319cbb57105ea0a49b8818d4dea81}


Enables a specific EXI IRQ. 


\begin{DoxyParams}{Parameters}
\item[{\em irq}]the IRQ to enable \end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_a1930adc5e78db22166c78cfeebe2ae2b}{irq\_\-exi\_\-disable()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_aeeedbd24c78ef420fc826dc7543b9a8e}{
\index{exi.h@{exi.h}!irq\_\-exi\_\-get\_\-handler@{irq\_\-exi\_\-get\_\-handler}}
\index{irq\_\-exi\_\-get\_\-handler@{irq\_\-exi\_\-get\_\-handler}!exi.h@{exi.h}}
\subsubsection[{irq\_\-exi\_\-get\_\-handler}]{\setlength{\rightskip}{0pt plus 5cm}{\bf irq\_\-handler\_\-t} irq\_\-exi\_\-get\_\-handler (u32 {\em irqn})}}
\label{exi_8h_aeeedbd24c78ef420fc826dc7543b9a8e}


Gets an EXI IRQ handler. 

Gets the IRQ handler information for a EXI IRQ. 
\begin{DoxyParams}{Parameters}
\item[{\em irqn}]the IRQ whose handler is to be returned. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
The \hyperlink{structirq__handler__t}{irq\_\-handler\_\-t} structure containing information about the handler. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_ad2ed33683eb92b77f374b3b16da2a708}{irq\_\-exi\_\-register\_\-handler()} 
\end{DoxySeeAlso}
\hypertarget{exi_8h_ad2ed33683eb92b77f374b3b16da2a708}{
\index{exi.h@{exi.h}!irq\_\-exi\_\-register\_\-handler@{irq\_\-exi\_\-register\_\-handler}}
\index{irq\_\-exi\_\-register\_\-handler@{irq\_\-exi\_\-register\_\-handler}!exi.h@{exi.h}}
\subsubsection[{irq\_\-exi\_\-register\_\-handler}]{\setlength{\rightskip}{0pt plus 5cm}int irq\_\-exi\_\-register\_\-handler (u32 {\em irqn}, \/  int($\ast$)(u32 irq, void $\ast$data) {\em exec}, \/  void $\ast$ {\em data})}}
\label{exi_8h_ad2ed33683eb92b77f374b3b16da2a708}


Register an EXI IRQ handler. 


\begin{DoxyParams}{Parameters}
\item[{\em irqn}]the IRQ whose handle is to be registered. \item[{\em exec}]the callback to be called when the IRQ fires. Pass NULL to unregister the IRQ. \item[{\em data}]the data to be passed to the IRQ when it fires. \end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns 1 on success, 0 on failure. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{exi_8h_aeeedbd24c78ef420fc826dc7543b9a8e}{irq\_\-exi\_\-get\_\-handler()} 
\end{DoxySeeAlso}
