OneCore™ Storage SDK Release 11.2
User Space iSCSI Target RAMD Driver (Uspace ocs_iscsi_ramd)
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 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
main.doxygen