\hypertarget{pci__user_8c}{}\doxysection{dev/pci/pci\+\_\+user.c File Reference}
\label{pci__user_8c}\index{dev/pci/pci\_user.c@{dev/pci/pci\_user.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include \char`\"{}opt\+\_\+bus.\+h\char`\"{}}\newline
{\ttfamily \#include $<$sys/types.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/module.\+h$>$}\newline
{\ttfamily \#include $<$sys/linker.\+h$>$}\newline
{\ttfamily \#include $<$sys/fcntl.\+h$>$}\newline
{\ttfamily \#include $<$sys/conf.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/mman.\+h$>$}\newline
{\ttfamily \#include $<$sys/proc.\+h$>$}\newline
{\ttfamily \#include $<$sys/queue.\+h$>$}\newline
{\ttfamily \#include $<$sys/rwlock.\+h$>$}\newline
{\ttfamily \#include $<$sys/sglist.\+h$>$}\newline
{\ttfamily \#include $<$vm/vm.\+h$>$}\newline
{\ttfamily \#include $<$vm/pmap.\+h$>$}\newline
{\ttfamily \#include $<$vm/vm\+\_\+extern.\+h$>$}\newline
{\ttfamily \#include $<$vm/vm\+\_\+map.\+h$>$}\newline
{\ttfamily \#include $<$vm/vm\+\_\+object.\+h$>$}\newline
{\ttfamily \#include $<$vm/vm\+\_\+page.\+h$>$}\newline
{\ttfamily \#include $<$vm/vm\+\_\+pager.\+h$>$}\newline
{\ttfamily \#include $<$sys/bus.\+h$>$}\newline
{\ttfamily \#include $<$machine/bus.\+h$>$}\newline
{\ttfamily \#include $<$sys/rman.\+h$>$}\newline
{\ttfamily \#include $<$machine/resource.\+h$>$}\newline
{\ttfamily \#include $<$sys/pciio.\+h$>$}\newline
{\ttfamily \#include $<$dev/pci/pcireg.\+h$>$}\newline
{\ttfamily \#include $<$dev/pci/pcivar.\+h$>$}\newline
{\ttfamily \#include \char`\"{}pcib\+\_\+if.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}pci\+\_\+if.\+h\char`\"{}}\newline
Include dependency graph for pci\+\_\+user.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d3/d2a/pci__user_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
union \mbox{\hyperlink{unionpci__conf__union}{pci\+\_\+conf\+\_\+union}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{pci__user_8c_a179aefdc629a2cf4d2cb5a737ca86eb6}{PVE\+\_\+\+NEXT\+\_\+\+LEN}}(pve,  datalen)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{pci__user_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static int \mbox{\hyperlink{pci__user_8c_a893e16d401c7bc23823166b918eb355d}{pci\+\_\+open}} (struct cdev $\ast$\mbox{\hyperlink{pcib__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, int oflags, int devtype, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{pci__user_8c_a042017a688d55f891e3cbb660ed44e79}{pci\+\_\+close}} (struct cdev $\ast$\mbox{\hyperlink{pcib__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, int flag, int devtype, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{pci__user_8c_a8d1454e5d62494c735fd6755daa875a1}{pci\+\_\+conf\+\_\+match\+\_\+native}} (struct pci\+\_\+match\+\_\+conf $\ast$matches, int num\+\_\+matches, struct pci\+\_\+conf $\ast$match\+\_\+buf)
\item 
static int \mbox{\hyperlink{pci__user_8c_aff7b7a3a794eae928454bc908f8647bd}{pci\+\_\+conf\+\_\+match}} (u\+\_\+long cmd, struct pci\+\_\+match\+\_\+conf $\ast$matches, int num\+\_\+matches, struct pci\+\_\+conf $\ast$match\+\_\+buf)
\item 
static int \mbox{\hyperlink{pci__user_8c_a611bb645a3b24db41f7d7a8d1b531b96}{pci\+\_\+list\+\_\+vpd}} (device\+\_\+t \mbox{\hyperlink{pcib__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, struct pci\+\_\+list\+\_\+vpd\+\_\+io $\ast$lvio)
\item 
static size\+\_\+t \mbox{\hyperlink{pci__user_8c_af138def531e813c1618ceefa4dc21262}{pci\+\_\+match\+\_\+conf\+\_\+size}} (u\+\_\+long cmd)
\item 
static size\+\_\+t \mbox{\hyperlink{pci__user_8c_a51d377062014b2aa7ef49fa81fb2da8b}{pci\+\_\+conf\+\_\+size}} (u\+\_\+long cmd)
\item 
static void \mbox{\hyperlink{pci__user_8c_af942c84273ba5a7f310a54dc92b8bce8}{pci\+\_\+conf\+\_\+io\+\_\+init}} (struct pci\+\_\+conf\+\_\+io $\ast$cio, caddr\+\_\+t \mbox{\hyperlink{pcib__if_8m_aa1cf91039f621340f15bcd4c95f582ef}{data}}, u\+\_\+long cmd)
\item 
static void \mbox{\hyperlink{pci__user_8c_a1ef45aa3155a1a8466b9e9dce26f3a92}{pci\+\_\+conf\+\_\+io\+\_\+update\+\_\+data}} (const struct pci\+\_\+conf\+\_\+io $\ast$cio, caddr\+\_\+t \mbox{\hyperlink{pcib__if_8m_aa1cf91039f621340f15bcd4c95f582ef}{data}}, u\+\_\+long cmd)
\item 
static void \mbox{\hyperlink{pci__user_8c_addc6ed3bd319d9e6003bf759dac83ac0}{pci\+\_\+conf\+\_\+for\+\_\+copyout}} (const struct pci\+\_\+conf $\ast$pcp, union \mbox{\hyperlink{unionpci__conf__union}{pci\+\_\+conf\+\_\+union}} $\ast$pcup, u\+\_\+long cmd)
\item 
static int \mbox{\hyperlink{pci__user_8c_aeb1f5c39bc8f29f8d9f683e2fd47612f}{pci\+\_\+bar\+\_\+mmap}} (device\+\_\+t pcidev, struct pci\+\_\+bar\+\_\+mmap $\ast$pbm)
\item 
static int \mbox{\hyperlink{pci__user_8c_af280ffe1a2d68839c41b91bc88df4a56}{pci\+\_\+bar\+\_\+io}} (device\+\_\+t pcidev, struct pci\+\_\+bar\+\_\+ioreq $\ast$pbi)
\item 
static int \mbox{\hyperlink{pci__user_8c_ac495ae4afbb987d6dc41c82fefb59836}{pci\+\_\+ioctl}} (struct cdev $\ast$\mbox{\hyperlink{pcib__if_8m_a5b84348f4a546955afe3156099e597f4}{dev}}, u\+\_\+long cmd, caddr\+\_\+t \mbox{\hyperlink{pcib__if_8m_aa1cf91039f621340f15bcd4c95f582ef}{data}}, int flag, struct thread $\ast$td)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static d\+\_\+open\+\_\+t \mbox{\hyperlink{pci__user_8c_a9096b77d473b39327083841d12a30190}{pci\+\_\+open}}
\item 
static d\+\_\+close\+\_\+t \mbox{\hyperlink{pci__user_8c_add8bd3c25aa38f9c1fe6d94906c14a35}{pci\+\_\+close}}
\item 
static d\+\_\+ioctl\+\_\+t \mbox{\hyperlink{pci__user_8c_a6ef7717061f09f98db5dddc547fd3fca}{pci\+\_\+ioctl}}
\item 
struct cdevsw \mbox{\hyperlink{pci__user_8c_a48c115f34551e0915f67f3c36642c0ee}{pcicdev}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{pci__user_8c_a179aefdc629a2cf4d2cb5a737ca86eb6}\label{pci__user_8c_a179aefdc629a2cf4d2cb5a737ca86eb6}} 
\index{pci\_user.c@{pci\_user.c}!PVE\_NEXT\_LEN@{PVE\_NEXT\_LEN}}
\index{PVE\_NEXT\_LEN@{PVE\_NEXT\_LEN}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{PVE\_NEXT\_LEN}{PVE\_NEXT\_LEN}}
{\footnotesize\ttfamily \#define PVE\+\_\+\+NEXT\+\_\+\+LEN(\begin{DoxyParamCaption}\item[{}]{pve,  }\item[{}]{datalen }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        ((\textcolor{keyword}{struct }pci\_vpd\_element *)((\textcolor{keywordtype}{char} *)(pve) +                     \(\backslash\)}
\DoxyCodeLine{            \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} pci\_vpd\_element) + (datalen)))}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{pci__user_8c_source_l00556}{556}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{pci__user_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{pci__user_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{pci\_user.c@{pci\_user.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{pci__user_8c_af280ffe1a2d68839c41b91bc88df4a56}\label{pci__user_8c_af280ffe1a2d68839c41b91bc88df4a56}} 
\index{pci\_user.c@{pci\_user.c}!pci\_bar\_io@{pci\_bar\_io}}
\index{pci\_bar\_io@{pci\_bar\_io}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_bar\_io()}{pci\_bar\_io()}}
{\footnotesize\ttfamily static int pci\+\_\+bar\+\_\+io (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{pcidev,  }\item[{struct pci\+\_\+bar\+\_\+ioreq $\ast$}]{pbi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00928}{928}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pcireg_8h_source_l00220}{PCI\+\_\+\+BAR\+\_\+\+MEM}}, \mbox{\hyperlink{pci_8c_source_l03162}{pci\+\_\+find\+\_\+bar()}}, \mbox{\hyperlink{pcireg_8h_source_l00216}{PCIR\+\_\+\+BAR}}, \mbox{\hyperlink{pcivar_8h_source_l00063}{pci\+\_\+map\+::pm\+\_\+size}}, \mbox{\hyperlink{pcivar_8h_source_l00062}{pci\+\_\+map\+::pm\+\_\+value}}, \mbox{\hyperlink{pci__if_8m_source_l00249}{type}}, and \mbox{\hyperlink{pci__dw__if_8m_source_l00043}{width}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=257pt]{d1/dfd/pci__user_8c_af280ffe1a2d68839c41b91bc88df4a56_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=239pt]{d1/dfd/pci__user_8c_af280ffe1a2d68839c41b91bc88df4a56_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_aeb1f5c39bc8f29f8d9f683e2fd47612f}\label{pci__user_8c_aeb1f5c39bc8f29f8d9f683e2fd47612f}} 
\index{pci\_user.c@{pci\_user.c}!pci\_bar\_mmap@{pci\_bar\_mmap}}
\index{pci\_bar\_mmap@{pci\_bar\_mmap}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_bar\_mmap()}{pci\_bar\_mmap()}}
{\footnotesize\ttfamily static int pci\+\_\+bar\+\_\+mmap (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{pcidev,  }\item[{struct pci\+\_\+bar\+\_\+mmap $\ast$}]{pbm }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00851}{851}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pcib__if_8m_source_l00165}{addr}}, \mbox{\hyperlink{pci_8c_source_l03176}{pci\+\_\+bar\+\_\+enabled()}}, \mbox{\hyperlink{pcireg_8h_source_l00220}{PCI\+\_\+\+BAR\+\_\+\+MEM}}, \mbox{\hyperlink{pci_8c_source_l03162}{pci\+\_\+find\+\_\+bar()}}, \mbox{\hyperlink{pcireg_8h_source_l00229}{PCIM\+\_\+\+BAR\+\_\+\+MEM\+\_\+\+BASE}}, \mbox{\hyperlink{pcivar_8h_source_l00063}{pci\+\_\+map\+::pm\+\_\+size}}, and \mbox{\hyperlink{pcivar_8h_source_l00062}{pci\+\_\+map\+::pm\+\_\+value}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=301pt]{d1/dfd/pci__user_8c_aeb1f5c39bc8f29f8d9f683e2fd47612f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=262pt]{d1/dfd/pci__user_8c_aeb1f5c39bc8f29f8d9f683e2fd47612f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_a042017a688d55f891e3cbb660ed44e79}\label{pci__user_8c_a042017a688d55f891e3cbb660ed44e79}} 
\index{pci\_user.c@{pci\_user.c}!pci\_close@{pci\_close}}
\index{pci\_close@{pci\_close}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_close()}{pci\_close()}}
{\footnotesize\ttfamily static int pci\+\_\+close (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{flag,  }\item[{int}]{devtype,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00143}{143}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.

\mbox{\Hypertarget{pci__user_8c_addc6ed3bd319d9e6003bf759dac83ac0}\label{pci__user_8c_addc6ed3bd319d9e6003bf759dac83ac0}} 
\index{pci\_user.c@{pci\_user.c}!pci\_conf\_for\_copyout@{pci\_conf\_for\_copyout}}
\index{pci\_conf\_for\_copyout@{pci\_conf\_for\_copyout}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_conf\_for\_copyout()}{pci\_conf\_for\_copyout()}}
{\footnotesize\ttfamily static void pci\+\_\+conf\+\_\+for\+\_\+copyout (\begin{DoxyParamCaption}\item[{const struct pci\+\_\+conf $\ast$}]{pcp,  }\item[{union \mbox{\hyperlink{unionpci__conf__union}{pci\+\_\+conf\+\_\+union}} $\ast$}]{pcup,  }\item[{u\+\_\+long}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00775}{775}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pci__user_8c_source_l00508}{pci\+\_\+conf\+\_\+union\+::pc}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=293pt]{d1/dfd/pci__user_8c_addc6ed3bd319d9e6003bf759dac83ac0_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_af942c84273ba5a7f310a54dc92b8bce8}\label{pci__user_8c_af942c84273ba5a7f310a54dc92b8bce8}} 
\index{pci\_user.c@{pci\_user.c}!pci\_conf\_io\_init@{pci\_conf\_io\_init}}
\index{pci\_conf\_io\_init@{pci\_conf\_io\_init}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_conf\_io\_init()}{pci\_conf\_io\_init()}}
{\footnotesize\ttfamily static void pci\+\_\+conf\+\_\+io\+\_\+init (\begin{DoxyParamCaption}\item[{struct pci\+\_\+conf\+\_\+io $\ast$}]{cio,  }\item[{caddr\+\_\+t}]{data,  }\item[{u\+\_\+long}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00695}{695}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pci__if_8m_source_l00198}{data}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=265pt]{d1/dfd/pci__user_8c_af942c84273ba5a7f310a54dc92b8bce8_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_a1ef45aa3155a1a8466b9e9dce26f3a92}\label{pci__user_8c_a1ef45aa3155a1a8466b9e9dce26f3a92}} 
\index{pci\_user.c@{pci\_user.c}!pci\_conf\_io\_update\_data@{pci\_conf\_io\_update\_data}}
\index{pci\_conf\_io\_update\_data@{pci\_conf\_io\_update\_data}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_conf\_io\_update\_data()}{pci\_conf\_io\_update\_data()}}
{\footnotesize\ttfamily static void pci\+\_\+conf\+\_\+io\+\_\+update\+\_\+data (\begin{DoxyParamCaption}\item[{const struct pci\+\_\+conf\+\_\+io $\ast$}]{cio,  }\item[{caddr\+\_\+t}]{data,  }\item[{u\+\_\+long}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00734}{734}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pci__if_8m_source_l00198}{data}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=310pt]{d1/dfd/pci__user_8c_a1ef45aa3155a1a8466b9e9dce26f3a92_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_aff7b7a3a794eae928454bc908f8647bd}\label{pci__user_8c_aff7b7a3a794eae928454bc908f8647bd}} 
\index{pci\_user.c@{pci\_user.c}!pci\_conf\_match@{pci\_conf\_match}}
\index{pci\_conf\_match@{pci\_conf\_match}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_conf\_match()}{pci\_conf\_match()}}
{\footnotesize\ttfamily static int pci\+\_\+conf\+\_\+match (\begin{DoxyParamCaption}\item[{u\+\_\+long}]{cmd,  }\item[{struct pci\+\_\+match\+\_\+conf $\ast$}]{matches,  }\item[{int}]{num\+\_\+matches,  }\item[{struct pci\+\_\+conf $\ast$}]{match\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00521}{521}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pci__user_8c_source_l00156}{pci\+\_\+conf\+\_\+match\+\_\+native()}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=338pt]{d1/dfd/pci__user_8c_aff7b7a3a794eae928454bc908f8647bd_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=266pt]{d1/dfd/pci__user_8c_aff7b7a3a794eae928454bc908f8647bd_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_a8d1454e5d62494c735fd6755daa875a1}\label{pci__user_8c_a8d1454e5d62494c735fd6755daa875a1}} 
\index{pci\_user.c@{pci\_user.c}!pci\_conf\_match\_native@{pci\_conf\_match\_native}}
\index{pci\_conf\_match\_native@{pci\_conf\_match\_native}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_conf\_match\_native()}{pci\_conf\_match\_native()}}
{\footnotesize\ttfamily static int pci\+\_\+conf\+\_\+match\+\_\+native (\begin{DoxyParamCaption}\item[{struct pci\+\_\+match\+\_\+conf $\ast$}]{matches,  }\item[{int}]{num\+\_\+matches,  }\item[{struct pci\+\_\+conf $\ast$}]{match\+\_\+buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00156}{156}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l00521}{pci\+\_\+conf\+\_\+match()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/dfd/pci__user_8c_a8d1454e5d62494c735fd6755daa875a1_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_a51d377062014b2aa7ef49fa81fb2da8b}\label{pci__user_8c_a51d377062014b2aa7ef49fa81fb2da8b}} 
\index{pci\_user.c@{pci\_user.c}!pci\_conf\_size@{pci\_conf\_size}}
\index{pci\_conf\_size@{pci\_conf\_size}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_conf\_size()}{pci\_conf\_size()}}
{\footnotesize\ttfamily static size\+\_\+t pci\+\_\+conf\+\_\+size (\begin{DoxyParamCaption}\item[{u\+\_\+long}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00670}{670}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=255pt]{d1/dfd/pci__user_8c_a51d377062014b2aa7ef49fa81fb2da8b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_ac495ae4afbb987d6dc41c82fefb59836}\label{pci__user_8c_ac495ae4afbb987d6dc41c82fefb59836}} 
\index{pci\_user.c@{pci\_user.c}!pci\_ioctl@{pci\_ioctl}}
\index{pci\_ioctl@{pci\_ioctl}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_ioctl()}{pci\_ioctl()}}
{\footnotesize\ttfamily static int pci\+\_\+ioctl (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{u\+\_\+long}]{cmd,  }\item[{caddr\+\_\+t}]{data,  }\item[{int}]{flag,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l01014}{1014}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pci__if_8m_source_l00198}{data}}, \mbox{\hyperlink{pci__if_8m_source_l00267}{name}}, \mbox{\hyperlink{pci_8c_source_l03176}{pci\+\_\+bar\+\_\+enabled()}}, \mbox{\hyperlink{pci__user_8c_source_l00928}{pci\+\_\+bar\+\_\+io()}}, \mbox{\hyperlink{pci__user_8c_source_l00851}{pci\+\_\+bar\+\_\+mmap()}}, \mbox{\hyperlink{pci__user_8c_source_l00775}{pci\+\_\+conf\+\_\+for\+\_\+copyout()}}, \mbox{\hyperlink{pci__user_8c_source_l00695}{pci\+\_\+conf\+\_\+io\+\_\+init()}}, \mbox{\hyperlink{pci__user_8c_source_l00734}{pci\+\_\+conf\+\_\+io\+\_\+update\+\_\+data()}}, \mbox{\hyperlink{pci__user_8c_source_l00521}{pci\+\_\+conf\+\_\+match()}}, \mbox{\hyperlink{pci__user_8c_source_l00670}{pci\+\_\+conf\+\_\+size()}}, \mbox{\hyperlink{pci_8c_source_l00334}{pci\+\_\+devq}}, \mbox{\hyperlink{pci_8c_source_l03162}{pci\+\_\+find\+\_\+bar()}}, \mbox{\hyperlink{pci_8c_source_l00449}{pci\+\_\+find\+\_\+dbsf()}}, \mbox{\hyperlink{pci_8c_source_l00335}{pci\+\_\+generation}}, \mbox{\hyperlink{pci__user_8c_source_l00561}{pci\+\_\+list\+\_\+vpd()}}, \mbox{\hyperlink{pci__user_8c_source_l00645}{pci\+\_\+match\+\_\+conf\+\_\+size()}}, \mbox{\hyperlink{pci_8c_source_l00336}{pci\+\_\+numdevs}}, \mbox{\hyperlink{pcivar_8h_source_l00063}{pci\+\_\+map\+::pm\+\_\+size}}, and \mbox{\hyperlink{pcivar_8h_source_l00062}{pci\+\_\+map\+::pm\+\_\+value}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/dfd/pci__user_8c_ac495ae4afbb987d6dc41c82fefb59836_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_a611bb645a3b24db41f7d7a8d1b531b96}\label{pci__user_8c_a611bb645a3b24db41f7d7a8d1b531b96}} 
\index{pci\_user.c@{pci\_user.c}!pci\_list\_vpd@{pci\_list\_vpd}}
\index{pci\_list\_vpd@{pci\_list\_vpd}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_list\_vpd()}{pci\_list\_vpd()}}
{\footnotesize\ttfamily static int pci\+\_\+list\+\_\+vpd (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{struct pci\+\_\+list\+\_\+vpd\+\_\+io $\ast$}]{lvio }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00561}{561}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



References \mbox{\hyperlink{pcib__if_8m_source_l00109}{dev}}, \mbox{\hyperlink{pcivar_8h_source_l00069}{vpd\+\_\+readonly\+::keyword}}, \mbox{\hyperlink{pcivar_8h_source_l00075}{vpd\+\_\+write\+::keyword}}, \mbox{\hyperlink{pcivar_8h_source_l00071}{vpd\+\_\+readonly\+::len}}, \mbox{\hyperlink{pcivar_8h_source_l00078}{vpd\+\_\+write\+::len}}, \mbox{\hyperlink{pci_8c_source_l01429}{pci\+\_\+fetch\+\_\+vpd\+\_\+list()}}, \mbox{\hyperlink{pci__user_8c_source_l00556}{PVE\+\_\+\+NEXT\+\_\+\+LEN}}, \mbox{\hyperlink{pcivar_8h_source_l00070}{vpd\+\_\+readonly\+::value}}, \mbox{\hyperlink{pcivar_8h_source_l00076}{vpd\+\_\+write\+::value}}, \mbox{\hyperlink{pcivar_8h_source_l00084}{pcicfg\+\_\+vpd\+::vpd\+\_\+ident}}, \mbox{\hyperlink{pcivar_8h_source_l00082}{pcicfg\+\_\+vpd\+::vpd\+\_\+reg}}, \mbox{\hyperlink{pcivar_8h_source_l00085}{pcicfg\+\_\+vpd\+::vpd\+\_\+rocnt}}, \mbox{\hyperlink{pcivar_8h_source_l00086}{pcicfg\+\_\+vpd\+::vpd\+\_\+ros}}, \mbox{\hyperlink{pcivar_8h_source_l00088}{pcicfg\+\_\+vpd\+::vpd\+\_\+w}}, and \mbox{\hyperlink{pcivar_8h_source_l00087}{pcicfg\+\_\+vpd\+::vpd\+\_\+wcnt}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/dfd/pci__user_8c_a611bb645a3b24db41f7d7a8d1b531b96_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=247pt]{d1/dfd/pci__user_8c_a611bb645a3b24db41f7d7a8d1b531b96_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_af138def531e813c1618ceefa4dc21262}\label{pci__user_8c_af138def531e813c1618ceefa4dc21262}} 
\index{pci\_user.c@{pci\_user.c}!pci\_match\_conf\_size@{pci\_match\_conf\_size}}
\index{pci\_match\_conf\_size@{pci\_match\_conf\_size}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_match\_conf\_size()}{pci\_match\_conf\_size()}}
{\footnotesize\ttfamily static size\+\_\+t pci\+\_\+match\+\_\+conf\+\_\+size (\begin{DoxyParamCaption}\item[{u\+\_\+long}]{cmd }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00645}{645}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



Referenced by \mbox{\hyperlink{pci__user_8c_source_l01014}{pci\+\_\+ioctl()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=291pt]{d1/dfd/pci__user_8c_af138def531e813c1618ceefa4dc21262_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{pci__user_8c_a893e16d401c7bc23823166b918eb355d}\label{pci__user_8c_a893e16d401c7bc23823166b918eb355d}} 
\index{pci\_user.c@{pci\_user.c}!pci\_open@{pci\_open}}
\index{pci\_open@{pci\_open}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_open()}{pci\_open()}}
{\footnotesize\ttfamily static int pci\+\_\+open (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{oflags,  }\item[{int}]{devtype,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00129}{129}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{pci__user_8c_add8bd3c25aa38f9c1fe6d94906c14a35}\label{pci__user_8c_add8bd3c25aa38f9c1fe6d94906c14a35}} 
\index{pci\_user.c@{pci\_user.c}!pci\_close@{pci\_close}}
\index{pci\_close@{pci\_close}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_close}{pci\_close}}
{\footnotesize\ttfamily d\+\_\+close\+\_\+t pci\+\_\+close\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00116}{116}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.

\mbox{\Hypertarget{pci__user_8c_a6ef7717061f09f98db5dddc547fd3fca}\label{pci__user_8c_a6ef7717061f09f98db5dddc547fd3fca}} 
\index{pci\_user.c@{pci\_user.c}!pci\_ioctl@{pci\_ioctl}}
\index{pci\_ioctl@{pci\_ioctl}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_ioctl}{pci\_ioctl}}
{\footnotesize\ttfamily d\+\_\+ioctl\+\_\+t pci\+\_\+ioctl\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00117}{117}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.

\mbox{\Hypertarget{pci__user_8c_a9096b77d473b39327083841d12a30190}\label{pci__user_8c_a9096b77d473b39327083841d12a30190}} 
\index{pci\_user.c@{pci\_user.c}!pci\_open@{pci\_open}}
\index{pci\_open@{pci\_open}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pci\_open}{pci\_open}}
{\footnotesize\ttfamily d\+\_\+open\+\_\+t pci\+\_\+open\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{pci__user_8c_source_l00115}{115}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.

\mbox{\Hypertarget{pci__user_8c_a48c115f34551e0915f67f3c36642c0ee}\label{pci__user_8c_a48c115f34551e0915f67f3c36642c0ee}} 
\index{pci\_user.c@{pci\_user.c}!pcicdev@{pcicdev}}
\index{pcicdev@{pcicdev}!pci\_user.c@{pci\_user.c}}
\doxysubsubsection{\texorpdfstring{pcicdev}{pcicdev}}
{\footnotesize\ttfamily struct cdevsw pcicdev}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .d\_version =    D\_VERSION,}
\DoxyCodeLine{        .d\_flags =      0,}
\DoxyCodeLine{        .d\_open =       \mbox{\hyperlink{pci__user_8c_a9096b77d473b39327083841d12a30190}{pci\_open}},}
\DoxyCodeLine{        .d\_close =      \mbox{\hyperlink{pci__user_8c_add8bd3c25aa38f9c1fe6d94906c14a35}{pci\_close}},}
\DoxyCodeLine{        .d\_ioctl =      \mbox{\hyperlink{pci__user_8c_a6ef7717061f09f98db5dddc547fd3fca}{pci\_ioctl}},}
\DoxyCodeLine{        .d\_name =       \textcolor{stringliteral}{"{}pci"{}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{pci__user_8c_source_l00119}{119}} of file \mbox{\hyperlink{pci__user_8c_source}{pci\+\_\+user.\+c}}.



Referenced by \mbox{\hyperlink{pci_8c_source_l06005}{pci\+\_\+modevent()}}.

