|
|
1.1 root 1: ddmmaarreeqq() -- Accessible Kernel Routine
2:
3: #iinncclluuddee <ssyyss/bbuuff.hh>
4: vvooiidd
5: ddmmaarreeqq(_b_p, _i_o_p, _d_e_v, _r_e_q)
6: BBUUFF *_b_p;
7: IIOO *_i_o_p;
8: ddeevv_tt _d_e_v;
9: iinntt _r_e_q;
10:
11: ddmmaarreeqq(), like iioorreeqq(), queues an I/O request through the block routine of
12: a device driver. _b_p points to the BBUUFF structure for the I/O. _i_o_p points
13: to an IIOO structure. _d_e_v is the device to access. Finally, _r_e_q requests
14: the type of I/O: it must be either BBRREEAADD or BBWWRRIITTEE.
15:
16: ddmmaarreeqq() converts I/O requests that straddle DMA boundaries into two or
17: three non-straddling requests. It converts block DMA straddles into two
18: non-straddling I/O requests; it converts other DMA straddles into three
19: non-straddling I/O requests, where the DMA-straddling block is handled
20: through the buffer cache. Note that the driver's block routine must be
21: able to function with the smaller I/O requests.
22:
23: _S_e_e _A_l_s_o
24: aacccceessssiibbllee kkeerrnneell rroouuttiinneess, iioorreeqq()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.