BLK_QUEUE_DMA_DRAIN(9) Block Devices BLK_QUEUE_DMA_DRAIN(9)NAME
blk_queue_dma_drain - Set up a drain buffer for excess dma.
SYNOPSIS
int blk_queue_dma_drain(struct request_queue * q, dma_drain_needed_fn * dma_drain_needed, void * buf, unsigned int size);
ARGUMENTS
q
the request queue for the device
dma_drain_needed
fn which returns non-zero if drain is necessary
buf
physically contiguous buffer
size
size of the buffer in bytes
DESCRIPTION
Some devices have excess DMA problems and can't simply discard (or zero fill) the unwanted piece of the transfer. They have to have a real
area of memory to transfer it into. The use case for this is ATAPI devices in DMA mode. If the packet command causes a transfer bigger than
the transfer size some HBAs will lock up if there aren't DMA elements to contain the excess transfer. What this API does is adjust the
queue so that the buf is always appended silently to the scatterlist.
NOTE
This routine adjusts max_hw_segments to make room for appending the drain buffer. If you call blk_queue_max_segments after calling this
routine, you must set the limit to one fewer than your device can support otherwise there won't be room for the drain buffer.
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 BLK_QUEUE_DMA_DRAIN(9)
Check Out this Related Man Page
ddi_iomin(9F) Kernel Functions for Drivers ddi_iomin(9F)NAME
ddi_iomin - find minimum alignment and transfer size for DMA
SYNOPSIS
#include <sys/conf.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>
int ddi_iomin(dev_info_t *dip, int initial, int streaming);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).
PARAMETERS
dip A pointer to the device's dev_info structure.
initial The initial minimum DMA transfer size in bytes. This may be zero or an appropriate dlim_minxfer value for device's
ddi_dma_lim structure (see ddi_dma_lim_sparc(9S) or ddi_dma_lim_x86(9S)). This value must be a power of two.
streaming This argument, if non-zero, indicates that the returned value should be modified to account for streaming mode accesses
(see ddi_dma_req(9S) for a discussion of streaming versus non-streaming access mode).
DESCRIPTION
ddi_iomin(), finds out the minimum DMA transfer size for the device pointed to by dip. This provides a mechanism by which a driver can
determine the effects of underlying caches as well as intervening bus adapters on the granularity of a DMA transfer.
RETURN VALUES
ddi_iomin() returns the minimum DMA transfer size for the calling device, or it returns zero, which means that you cannot get there from
here.
CONTEXT
This function can be called from user or interrupt context.
SEE ALSO ddi_dma_devalign(9F), ddi_dma_setup(9F), ddi_dma_sync(9F), ddi_dma_lim_sparc(9S), ddi_dma_lim_x86(9S), ddi_dma_req(9S)
Writing Device Drivers
SunOS 5.10 1 Feb 1994 ddi_iomin(9F)
Hi all,
I want to create a new user and grant him ONLY transfer files access to a specific directory where he can only upload and read the files. He should be restricted to this activity only.
Regards (6 Replies)
Hi everyone,
I know the following questions are noobish questions but I am asking them because I am confused about the basics of history behind UNIX and LINUX.
Ok onto business, my questions are-:
Was/Is UNIX ever an open source operating system ?
If UNIX was... (21 Replies)
Hi,
Last 2 weeks I have searched many forums and i haven't found the answer for the question:
How to get all command output to Putty title?
Needed it for other programs to know when some jobs on a server is done and is it done right or wrong. Plink stdout and stdin wasn't working, i used many... (1 Reply)
anyone have any idea how do to this with auth_attr?
I suspect if I grant him
solaris.device.:RO::Device Allocation::help=DevAllocHeader.html
that will work but I'm unsure. Just looking for a second opinion. (10 Replies)
I am looking for a stable, reliable system to replace my current Windows systems in the home. These are simple systems that I purchased from the local Big Box store.
I have heard many good things about Unix and it's various children and it sounds like a good option to me. I have worked... (2 Replies)
We have a lot of scripts using cut as :
cut -c 0-8 --works for cut (GNU coreutils) 5.97, but does not work for cut (GNU coreutils) 8.4.
Gives error -
cut: fields and positions are numbered from 1
Try `cut --help' for more information.
The position needs to start with 1 for later... (6 Replies)
I've got a problem with a proxy configuration. We have an LDAP group that lists all users who are authorised to use the proxy to FTP (usually Filezilla) out to the world, and by implication those not in the group should be denied. My users are delighted that this has been enabled and those that... (9 Replies)
hi folks,
how to using tar with exclude directory and compress it using tar.Z
i only know how to exclude dir only with this command below:
tar -cvf /varios/restore/test.tar -X excludefile.txt /jfma/test1/
how to compress it using 1 command?
Thanx
Please use CODE tags as... (6 Replies)
Hello All,
I had recently learnt a bit of Docker(which provides containerization process).
Here are some of my learning points from it.
Let us start first with very basic question:
What is Docker:
Docker is a platform for sysadmins and developers to DEPLOY, DEVELOP and RUN applications ... (7 Replies)
What is the point of this? Whenever I close my shell it appends to the history file without adding this. I have never seen it overwrite my history file.
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend (3 Replies)
Hello for all,
I am testing the behavior of a 32 bit application running on Solaris 5.10 (SPARC), and realize it reaches 4GB of memory and then crashes.
It doesn't matter the amount of used memory as application is intended to perform many transactions; rather, what I want to achieve is to... (2 Replies)