Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
include
asm
mach
dma.h
Go to the documentation of this file.
1
/*
2
* arch/arm/include/asm/mach/dma.h
3
*
4
* Copyright (C) 1998-2000 Russell King
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation.
9
*
10
* This header file describes the interface between the generic DMA handler
11
* (dma.c) and the architecture-specific DMA backends (dma-*.c)
12
*/
13
14
struct
dma_struct
;
15
typedef
struct
dma_struct
dma_t
;
16
17
struct
dma_ops
{
18
int
(*
request
)(
unsigned
int
,
dma_t
*);
/* optional */
19
void
(*
free
)(
unsigned
int
,
dma_t
*);
/* optional */
20
void
(*
enable
)(
unsigned
int
,
dma_t
*);
/* mandatory */
21
void
(*
disable
)(
unsigned
int
,
dma_t
*);
/* mandatory */
22
int
(*
residue
)(
unsigned
int
,
dma_t
*);
/* optional */
23
int
(*
setspeed
)(
unsigned
int
,
dma_t
*,
int
);
/* optional */
24
const
char
*
type
;
25
};
26
27
struct
dma_struct
{
28
void
*
addr
;
/* single DMA address */
29
unsigned
long
count
;
/* single DMA size */
30
struct
scatterlist
buf
;
/* single DMA */
31
int
sgcount
;
/* number of DMA SG */
32
struct
scatterlist
*
sg
;
/* DMA Scatter-Gather List */
33
34
unsigned
int
active
:1;
/* Transfer active */
35
unsigned
int
invalid
:1;
/* Address/Count changed */
36
37
unsigned
int
dma_mode
;
/* DMA mode */
38
int
speed
;
/* DMA speed */
39
40
unsigned
int
lock
;
/* Device is allocated */
41
const
char
*
device_id
;
/* Device name */
42
43
const
struct
dma_ops
*
d_ops
;
44
};
45
46
/*
47
* isa_dma_add - add an ISA-style DMA channel
48
*/
49
extern
int
isa_dma_add
(
unsigned
int
,
dma_t
*
dma
);
50
51
/*
52
* Add the ISA DMA controller. Always takes channels 0-7.
53
*/
54
extern
void
isa_init_dma
(
void
);
Generated on Thu Jan 10 2013 12:49:28 for Linux Kernel by
1.8.2