\hypertarget{group__Ecore__Drm__Device__Group}{\section{Device manipulation functions}
\label{group__Ecore__Drm__Device__Group}\index{Device manipulation functions@{Device manipulation functions}}
}


Functions that deal with finding, opening, closing, and otherwise using the D\+R\+M device itself.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$ \hyperlink{group__Ecore__Drm__Device__Group_gaf9e1658486738139b9a4529491232ad3}{ecore\+\_\+drm\+\_\+device\+\_\+find} (const char $\ast$name, const char $\ast$seat)
\begin{DoxyCompactList}\small\item\em Find a drm device in the system. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__Drm__Device__Group_ga7b6c2499677d2790ce867e499c2ffcbc}{ecore\+\_\+drm\+\_\+device\+\_\+free} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Free an Ecore\+\_\+\+Drm\+\_\+\+Device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Drm__Device__Group_gae9b906df82ea0470715f3d5a641bab9a}{ecore\+\_\+drm\+\_\+device\+\_\+open} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Open an Ecore\+\_\+\+Drm\+\_\+\+Device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Drm__Device__Group_gab580315c09ff107c50ece4c7c91e81f7}{ecore\+\_\+drm\+\_\+device\+\_\+close} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Close an Ecore\+\_\+\+Drm\+\_\+\+Device. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Drm__Device__Group_gabb2204e4198e3dd68b5bf14d5d416994}{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get if a given Ecore\+\_\+\+Drm\+\_\+\+Device is master. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Drm__Device__Group_ga5a600f65054a55a4f4bcede86f1bdde8}{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Set a given Ecore\+\_\+\+Drm\+\_\+\+Device to master. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Drm__Device__Group_ga4e49e6ce73820dfe0d9ca59bf8c85ebb}{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Tell a given Ecore\+\_\+\+Drm\+\_\+\+Device to stop being master. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__Drm__Device__Group_ga81247034ca808ae4533db1378ce698ec}{ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the file descriptor of Ecore\+\_\+\+Drm\+\_\+\+Device. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__Drm__Device__Group_ga2d9f0cd9aa89269b95d6e63205aebb8b}{ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev, unsigned int window)
\begin{DoxyCompactList}\small\item\em Set the window of Ecore\+\_\+\+Drm\+\_\+\+Device. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Ecore__Drm__Device__Group_ga88640aeecdf8dc2ca3d6b74fc4deb9bb}{ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get} (\hyperlink{struct__Ecore__Drm__Device}{Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$dev)
\begin{DoxyCompactList}\small\item\em Get the name of the Ecore\+\_\+\+Drm\+\_\+\+Device. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions that deal with finding, opening, closing, and otherwise using the D\+R\+M device itself. 



\subsection{Function Documentation}
\hypertarget{group__Ecore__Drm__Device__Group_gaf9e1658486738139b9a4529491232ad3}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+find@{ecore\+\_\+drm\+\_\+device\+\_\+find}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+find@{ecore\+\_\+drm\+\_\+device\+\_\+find}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+find}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Ecore\+\_\+\+Drm\+\_\+\+Device}$\ast$ ecore\+\_\+drm\+\_\+device\+\_\+find (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name, }
\item[{const char $\ast$}]{seat}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_gaf9e1658486738139b9a4529491232ad3}


Find a drm device in the system. 


\begin{DoxyParams}{Parameters}
{\em name} & The name of the device to find. If N\+U\+L\+L, this function will search for the default drm device. \\
\hline
{\em seat} & The name of the seat where this device may be found. If N\+U\+L\+L, this function will use a default seat name 'seat0'.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An opaque Ecore\+\_\+\+Drm\+\_\+\+Device structure representing the card. 
\end{DoxyReturn}


References D\+B\+G, eeze\+\_\+udev\+\_\+find\+\_\+by\+\_\+type(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+devpath(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+parent\+\_\+filtered(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+property(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+sysattr(), eeze\+\_\+udev\+\_\+syspath\+\_\+get\+\_\+sysnum(), E\+E\+Z\+E\+\_\+\+U\+D\+E\+V\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+R\+M, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H, E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E, eina\+\_\+stringshare\+\_\+add(), eina\+\_\+stringshare\+\_\+del(), and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__Drm__Device__Group_ga7b6c2499677d2790ce867e499c2ffcbc}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+free@{ecore\+\_\+drm\+\_\+device\+\_\+free}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+free@{ecore\+\_\+drm\+\_\+device\+\_\+free}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\+\_\+drm\+\_\+device\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_ga7b6c2499677d2790ce867e499c2ffcbc}


Free an Ecore\+\_\+\+Drm\+\_\+\+Device. 

This function will cleanup and free any previously allocated Ecore\+\_\+\+Drm\+\_\+\+Device.


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to free \\
\hline
\end{DoxyParams}


References ecore\+\_\+drm\+\_\+output\+\_\+free(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E, and eina\+\_\+stringshare\+\_\+del().

\hypertarget{group__Ecore__Drm__Device__Group_gae9b906df82ea0470715f3d5a641bab9a}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+open@{ecore\+\_\+drm\+\_\+device\+\_\+open}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+open@{ecore\+\_\+drm\+\_\+device\+\_\+open}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+open}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+drm\+\_\+device\+\_\+open (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_gae9b906df82ea0470715f3d5a641bab9a}


Open an Ecore\+\_\+\+Drm\+\_\+\+Device. 

This function will open an existing Ecore\+\_\+\+Drm\+\_\+\+Device for use.


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to try and open\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E on failure 
\end{DoxyReturn}


References D\+B\+G, E\+C\+O\+R\+E\+\_\+\+F\+D\+\_\+\+R\+E\+A\+D, ecore\+\_\+idle\+\_\+enterer\+\_\+add(), ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+add(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+T\+R\+U\+E, and E\+R\+R.

\hypertarget{group__Ecore__Drm__Device__Group_gab580315c09ff107c50ece4c7c91e81f7}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+close@{ecore\+\_\+drm\+\_\+device\+\_\+close}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+close@{ecore\+\_\+drm\+\_\+device\+\_\+close}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+close}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+drm\+\_\+device\+\_\+close (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_gab580315c09ff107c50ece4c7c91e81f7}


Close an Ecore\+\_\+\+Drm\+\_\+\+Device. 

This function will close a previously opened Ecore\+\_\+\+Drm\+\_\+\+Device


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to free\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E on failure 
\end{DoxyReturn}


References ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+del(), E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__Drm__Device__Group_gabb2204e4198e3dd68b5bf14d5d416994}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get@{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get@{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_gabb2204e4198e3dd68b5bf14d5d416994}


Get if a given Ecore\+\_\+\+Drm\+\_\+\+Device is master. 

This function will check if the given drm device is set to master


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to check\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E if device is master, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E otherwise 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__Drm__Device__Group_ga5a600f65054a55a4f4bcede86f1bdde8}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set@{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set@{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_ga5a600f65054a55a4f4bcede86f1bdde8}


Set a given Ecore\+\_\+\+Drm\+\_\+\+Device to master. 

This function will attempt to set a given drm device to be master


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to set\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E on failure 
\end{DoxyReturn}


References D\+B\+G, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__Drm__Device__Group_ga4e49e6ce73820dfe0d9ca59bf8c85ebb}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop@{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop@{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} ecore\+\_\+drm\+\_\+device\+\_\+master\+\_\+drop (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_ga4e49e6ce73820dfe0d9ca59bf8c85ebb}


Tell a given Ecore\+\_\+\+Drm\+\_\+\+Device to stop being master. 

This function will attempt to ask a drm device to stop being master


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to set\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E on success, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E on failure 
\end{DoxyReturn}


References D\+B\+G, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.

\hypertarget{group__Ecore__Drm__Device__Group_ga81247034ca808ae4533db1378ce698ec}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get@{ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get@{ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}int ecore\+\_\+drm\+\_\+device\+\_\+fd\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_ga81247034ca808ae4533db1378ce698ec}


Get the file descriptor of Ecore\+\_\+\+Drm\+\_\+\+Device. 

This function will get the file descriptor of drm device


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to get\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
fd value on success, -\/1 on failure 
\end{DoxyReturn}
\hypertarget{group__Ecore__Drm__Device__Group_ga2d9f0cd9aa89269b95d6e63205aebb8b}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set@{ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set@{ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void ecore\+\_\+drm\+\_\+device\+\_\+window\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev, }
\item[{unsigned int}]{window}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_ga2d9f0cd9aa89269b95d6e63205aebb8b}


Set the window of Ecore\+\_\+\+Drm\+\_\+\+Device. 

This function will set the window for given drm device


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device for which window is set \\
\hline
{\em window} & The window to set\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+10 
\end{DoxySince}
\hypertarget{group__Ecore__Drm__Device__Group_ga88640aeecdf8dc2ca3d6b74fc4deb9bb}{\index{Device manipulation functions@{Device manipulation functions}!ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get@{ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get}}
\index{ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get@{ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get}!Device manipulation functions@{Device manipulation functions}}
\subsubsection[{ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ ecore\+\_\+drm\+\_\+device\+\_\+name\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Drm\+\_\+\+Device} $\ast$}]{dev}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Drm__Device__Group_ga88640aeecdf8dc2ca3d6b74fc4deb9bb}


Get the name of the Ecore\+\_\+\+Drm\+\_\+\+Device. 

This function will return the name of Ecore\+\_\+\+Drm\+\_\+\+Device


\begin{DoxyParams}{Parameters}
{\em dev} & The Ecore\+\_\+\+Drm\+\_\+\+Device to get name\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
device name on success, N\+U\+L\+L on failure
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+10 
\end{DoxySince}
