SCI provides a common interface across intel storage controller hardware. This includes abstracting differences between Physical PCI functions and Virtual PCI functions. The SCI is comprised of four primary components\+:
\begin{DoxyEnumerate}
\item SCI Base classes
\item SCI Core
\item SCI Framework
\end{DoxyEnumerate}

It is important to recognize that no component, object, or functionality in SCI directly allocates memory from the operating system. It is expected that the SCI User (OS specific driver code) allocates and frees all memory from and to the operating system itself.

The C language is utilized to implement SCI. Although C is not an object oriented language the SCI driver components, methods, and structures are modeled and organized following object oriented principles.

The Unified Modeling Language is utilized to present graphical depictions of the SCI classes and their relationships.

The following figure denotes the meanings of the colors utilized in UML diagrams throughout this document. 
\begin{DoxyImage}
\includegraphics[width=8cm]{object_color_key}
\doxyfigcaption{Object Color Legend}
\end{DoxyImage}


The following figure denotes the meanings for input and output arrows that are utilized to define parameters for methods defined in this specification. 
\begin{DoxyImage}
\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{arrow_image}
\doxyfigcaption{Method Parameter Symbol Definition}
\end{DoxyImage}
 