|
|
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.