Emulex Logo
OneCore™ Storage SDK Release 11.2
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
main.doxygen
Go to the documentation of this file.
1 /** @mainpage Overview
2  *
3  * This is the API reference documentation for the OneCore Storage User Space
4  * iSCSI Target RAMD driver (Uspace ocs_iscsi_ramd).<br>
5  *
6  * The Uspace ocs_iscsi_ramd driver uses the Emulex RAMD target back-end (usually called "RAMD").
7  * It implements a non-persistent RAM disk
8  * backing store. The driver implements a number of SCSI commands,
9  * and appears to initiators as a valid SCSI block device.
10  * There is no initiator functionality provided for this driver.
11  *
12  * The Uspace ocs_iscsi_ramd driver uses the same front-end (base driver) and
13  * target (Emulex RAMD) components as the Linux ocs_iscsi_ramd driver.
14  * The one exception is the PCI sub-component under the Linux OS component.
15  * For user space drivers, the PCI functionality is managed in the
16  * <a href="kernel_mod_overview.html">Kernel Module</a>.
17  *
18  * Figure&nbsp;1 shows the framework for the Uspace ocs_iscsi_ramd driver.
19  *
20  * <img src="elx_uspace_ocs_iscsi_ramd_block.jpg" alt="Figure 1 - Uspace ocs_iscsi_ramd Driver High-Level Block Diagram"/>
21  *
22  * For detailed information about the driver architecture and design, also see
23  * the <i><a href="../../../../../doc/ocs_driver_design_manual.pdf" target="_blank">OneCore Storage Driver Design Manual</a></i>.
24  * For instructions on building and installing the Uspace ocs_iscsi_ramd driver, see the
25  * “User Space Linux iSCSI Target RAMD Driver (Uspace ocs_iscsi_ramd)” section under “Building and Installing”
26  * in the <i><a href="../../../../../doc/ocs_sdk_quick_start_guide.pdf" target="_blank">OneCore Storage SDK Quick Start Guide</a></i>.
27  *
28  *
29  * @section component_desc Component APIs
30  *
31  * As shown in Figure 1, the Uspace ocs_iscsi_ramd driver is composed of multiple component layers.
32  * Each component layer provides its own set of APIs that are described in the following sections.
33  *
34  * <h2><a href="ramd_api_overview.html">Back-end Target APIs and State Machine Functions</a></h2>
35  * \li \ref scsi_api_target
36  * \li \ref scsi_cmd
37  * \li \ref io_sm
38  * \li \ref ramdisc
39  *
40  * <h2><a href="iscsi_transport_api_overview.html">Transport APIs and State Machine Functions</a></h2>
41  * \li \ref scsi_api_base
42  * \li \ref iscsi_main
43  * \li \ref cxn_mgnt
44  * \li \ref cxn_sm
45  *
46  * <h2><a href="iscsi_hal_api_overview.html">Hardware Abstraction Layer (HAL) APIs</a></h2>
47  * \li \ref devInitShutdown
48  * \li \ref domain
49  * \li \ref port
50  * \li \ref node
51  * \li \ref io
52  * \li \ref interrupt
53  *
54  * <h2><a href="iscsi_sli4_api_overview.html">SLI-4 APIs</a></h2>
55  * \li \ref sli
56  * \li \ref sli_iscsi
57  * \li \ref sli_be3_iscsi
58  *
59  * <h2><a href="uspace_linux_os_overview.html">OS APIs</a></h2>
60  * \li \ref os
61  *
62  * <h2><a href="kernel_mod_overview.html">Kernel Module</a></h2>
63  * \li \ref kernel_mod_overview
64  *
65  * <h2><a href="mgmt_api_overview.html">Management APIs</a></h2>
66  * \li \ref mgmt
67  *
68  * <h2><a href="iscsi_general_purpose_overview.html">General Purpose APIs</a></h2>
69  * \li \ref debug
70  *
71  */
72 
73 /**
74  * @page kernel_mod_overview Kernel Module Overview
75  *
76  * <div class="overview">
77  * <img src="elx_uspace_ocs_iscsi_ramd_kernel.jpg" alt="Kernel Module" title="Kernel Module" align="right"/>
78  * The Uspace ocs_iscsi_ramd driver includes a small kernel module (ocs_uspace.ko).
79  * This kernel module provides access to PCI resources, as well as managing DMA
80  * memory buffers.<br> <br>
81  * Kernel module functionality includes:
82  * - Read/write PCI configuration space registers
83  * - Read/write per PCI function BAR memory regions
84  * - Mapping of per PCI function BAR memory regions to user space
85  * - Allocation of and freeing of kernel resident DMA buffers, mapping buffers to
86  * user space
87  * - DMA buffer synchronization (maintaining cache coherency)
88  * - Wait on interrupt
89  *
90  * The files for the kernel module are located in the
91  * <a href="../../../../linux/ocs_uspace/" target="_blank">
92  * driver/linux/ocs_uspace/</a> directory.
93  * </div>
94  *
95  */
96