1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>blk_rq_map_user_iov</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The Linux Kernel API"><link rel="up" href="blkdev.html" title="Chapter&#160;14.&#160;Block Devices"><link rel="prev" href="API---blk-end-bidi-request.html" title="__blk_end_bidi_request"><link rel="next" href="API-blk-rq-unmap-user.html" title="blk_rq_unmap_user"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">blk_rq_map_user_iov</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API---blk-end-bidi-request.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;14.&#160;Block Devices</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-blk-rq-unmap-user.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-blk-rq-map-user-iov"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>blk_rq_map_user_iov &#8212; 
2  map user data to a request, for REQ_TYPE_BLOCK_PC usage
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">blk_rq_map_user_iov </b>(</code></td><td>struct request_queue * <var class="pdparam">q</var>, </td></tr><tr><td>&#160;</td><td>struct request * <var class="pdparam">rq</var>, </td></tr><tr><td>&#160;</td><td>struct rq_map_data * <var class="pdparam">map_data</var>, </td></tr><tr><td>&#160;</td><td>const struct iov_iter * <var class="pdparam">iter</var>, </td></tr><tr><td>&#160;</td><td>gfp_t <var class="pdparam">gfp_mask</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1128295996"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>q</code></em></span></dt><dd><p>
4     request queue where request should be inserted
5    </p></dd><dt><span class="term"><em class="parameter"><code>rq</code></em></span></dt><dd><p>
6     request to map data to
7    </p></dd><dt><span class="term"><em class="parameter"><code>map_data</code></em></span></dt><dd><p>
8     pointer to the rq_map_data holding pages (if necessary)
9    </p></dd><dt><span class="term"><em class="parameter"><code>iter</code></em></span></dt><dd><p>
10     iovec iterator
11    </p></dd><dt><span class="term"><em class="parameter"><code>gfp_mask</code></em></span></dt><dd><p>
12     memory allocation flags
13    </p></dd></dl></div></div><div class="refsect1"><a name="idp1128301724"></a><h2>Description</h2><p>
14   Data will be mapped directly for zero copy I/O, if possible. Otherwise
15   a kernel bounce buffer is used.
16   </p><p>
17
18   A matching <code class="function">blk_rq_unmap_user</code> must be issued at the end of I/O, while
19   still in process context.
20</p></div><div class="refsect1"><a name="idp1128303020"></a><h2>Note</h2><p>
21   The mapped bio may need to be bounced through <code class="function">blk_queue_bounce</code>
22   before being submitted to the device, as pages mapped may be out of
23   reach. It's the callers responsibility to make sure this happens. The
24   original bio must be passed back in to <code class="function">blk_rq_unmap_user</code> for proper
25   unmapping.
26</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API---blk-end-bidi-request.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="blkdev.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-blk-rq-unmap-user.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">__blk_end_bidi_request</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">blk_rq_unmap_user</span></td></tr></table></div></body></html>
27