ddmmaarreeqq() -- Accessible Kernel Routine

#iinncclluuddee <ssyyss/bbuuff.hh>
vvooiidd
ddmmaarreeqq(_b_p, _i_o_p, _d_e_v, _r_e_q)
BBUUFF *_b_p;
IIOO *_i_o_p;
ddeevv_tt _d_e_v;
iinntt _r_e_q;

ddmmaarreeqq(), like iioorreeqq(), queues an  I/O request through the block routine of
a device driver.   _b_p points to the BBUUFF structure  for the I/O.  _i_o_p points
to an  IIOO structure.  _d_e_v is  the device to access.   Finally, _r_e_q requests
the type of I/O: it must be either BBRREEAADD or BBWWRRIITTEE.

ddmmaarreeqq() converts  I/O requests  that straddle  DMA boundaries into  two or
three non-straddling  requests.  It converts  block DMA straddles  into two
non-straddling  I/O requests;  it converts other  DMA straddles  into three
non-straddling  I/O requests,  where  the DMA-straddling  block is  handled
through the  buffer cache.   Note that the  driver's block routine  must be
able to function with the smaller I/O requests.

_S_e_e _A_l_s_o
aacccceessssiibbllee kkeerrnneell rroouuttiinneess, iioorreeqq()
