|
|
coherent
ddmmaarreeqq() -- Accessible Kernel Routine #iinncclluuddee <ssyyss/bbuuff.hh> vvooiidd ddmmaarreeqq(_b_p, _i_o_p, _d_e_v, _r_e_q) BBUUFF *_b_p; IIOO *_i_o_p; ddeevv_tt _d_e_v; iinntt _r_e_q; ddmmaarreeqq(), like iioorreeqq(), queues an I/O request through the block routine of a device driver. _b_p points to the BBUUFF structure for the I/O. _i_o_p points to an IIOO structure. _d_e_v is the device to access. Finally, _r_e_q requests the type of I/O: it must be either BBRREEAADD or BBWWRRIITTEE. ddmmaarreeqq() 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 aacccceessssiibbllee kkeerrnneell rroouuttiinneess, iioorreeqq()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.