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  * FC/FCoE Target RAMD driver (Uspace ocs fc_ramd).<br>
5  *
6  * The Uspace ocs_fc_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_fc_ramd driver uses the same front-end (base driver) and
13  * target (Emulex RAMD) components as the Linux ocs_fc_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_fc_ramd driver.
19  *
20  * <img src="elx_uspace_ocs_fc_ramd_block.jpg" alt="Figure 1 - Uspace ocs_fc_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_fc_ramd driver, see the
25  * “User Space Linux FC/FCoE Target RAMD Driver (Uspace ocs_fc_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_fc_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="fc_transport_api_overview.html">Transport APIs and State Machine Functions</a></h2>
41  * \li \ref scsi_api_base
42  * \li \ref domain_sm
43  * \li \ref sport_sm
44  * \li \ref device_sm
45  * \li \ref p2p_sm
46  * \li \ref fabric_sm
47  * \li \ref ns_sm
48  * \li \ref unsol
49  * \li \ref els_api
50  *
51  * <h2><a href="fc_hal_api_overview.html">Hardware Abstraction Layer (HAL) APIs</a></h2>
52  * \li \ref devInitShutdown
53  * \li \ref domain
54  * \li \ref port
55  * \li \ref node
56  * \li \ref io
57  * \li \ref interrupt
58  *
59  * <h2><a href="fc_sli4_api_overview.html">SLI-4 APIs</a></h2>
60  * \li \ref sli
61  * \li \ref sli_fc
62  *
63  * <h2><a href="uspace_linux_os_overview.html">OS APIs</a></h2>
64  * \li \ref os
65  *
66  * <h2><a href="kernel_mod_overview.html">Kernel Module</a></h2>
67  * \li \ref kernel_mod_overview
68  *
69  * <h2><a href="mgmt_api_overview.html">Management APIs</a></h2>
70  * \li \ref mgmt
71  *
72  * <h2><a href="fc_general_purpose_overview.html">General Purpose APIs</a></h2>
73  * \li \ref spv
74  * \li \ref debug
75  *
76  */
77 
78  /**
79  * @page kernel_mod_overview Kernel Module Overview
80  *
81  * <div class="overview">
82  * <img src="elx_uspace_ocs_fc_ramd_kernel.jpg" alt="Kernel Module" title="Kernel Module" align="right"/>
83  * The Uspace ocs_fc_ramd driver includes a small kernel module (ocs_uspace.ko).
84  * This kernel module provides access to PCI resources, as well as managing DMA
85  * memory buffers.<br> <br>
86  * Kernel module functionality includes:
87  * - Read/write PCI configuration space registers
88  * - Read/write per PCI function BAR memory regions
89  * - Mapping of per PCI function BAR memory regions to user space
90  * - Allocation of and freeing of kernel resident DMA buffers, mapping buffers to
91  * user space
92  * - DMA buffer synchronization (maintaining cache coherency)
93  * - Wait on interrupt
94  *
95  * The files for the kernel module are located in the
96  * <a href="../../../../linux/ocs_uspace/" target="_blank">
97  * driver/linux/ocs_uspace/</a> directory.
98  * </div>
99  *
100  */
101