Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ dma(7) — Interactive 3.2r4.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

dma(7)  —  

NAME

dma − Generic DMA driver

SYNOPSIS

dmacheck(chan, paddr, count)
int chan;
paddr_t paddr;
int count;
dmareq(chan, paddr, count, rflag)
int chan;
paddr_t paddr;
int count;
char rflag;
dmadisable(chan)
int chan;

DESCRIPTION

Chan is the channel number that is to be used.  Paddr is the physical address of the user buffer that is to be transferred or checked.  Count is the number of bytes in the user buffer at the specified physical address that is to be transferred.  Rflag is TRUE if the transfer is from the device to memory, and is FALSE if the transfer is from memory to the device. 

The DMA driver is a UNIX System device driver that programs the Intel 8237A-5 chips based on a specified channel. 

Dmacheck checks the alignment of the buffer and the count based on the channel number specified. This routine is usually called before the transfer is initiated to check the validity of the user buffer. 

Dmareq initiates a DMA transfer. This routine is called to actually transfer to or from a device that supports DMA.  This routine is usually called at interrupt time and hence the buffer has to be in memory, that is, it cannot cause a page fault. The interrupt routine of a driver usually breaks up a user buffer into smaller buffers aligned on page boundaries and calls this routine to transfer these smaller buffers. The buffer has to be checked for alignment using dmacheck before this routine is called. 

Dmadisable disables the specified channel. This routine is called by the driver after all transfers of the user buffer have occurred. 

FILES

None. 

\*U  —  Version 1.0

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026