File: datamove.h

package info (click to toggle)
mwavem 2.0-3
  • links: PTS
  • area: non-free
  • in suites: lenny
  • size: 7,188 kB
  • ctags: 6,080
  • sloc: ansic: 52,005; sh: 4,194; makefile: 334
file content (135 lines) | stat: -rw-r--r-- 5,140 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
 *   datamove.h
 *
 *  Written By: Paul Schroeder IBM Corporation
 *
 *  Copyright (C) 1999 IBM Corporation
 *
 * This program is free software; you can redistribute it and/or modify      
 * it under the terms of the GNU General Public License as published by      
 * the Free Software Foundation; either version 2 of the License, or         
 * (at your option) any later version.                                       
 *                                                                           
 * This program is distributed in the hope that it will be useful,           
 * but WITHOUT ANY WARRANTY; without even the implied warranty of            
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             
 * GNU General Public License for more details.                              
 *                                                                           
 * NO WARRANTY                                                               
 * THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR        
 * CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT      
 * LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,      
 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is    
 * solely responsible for determining the appropriateness of using and       
 * distributing the Program and assumes all risks associated with its        
 * exercise of rights under this Agreement, including but not limited to     
 * the risks and costs of program errors, damage to or loss of data,         
 * programs or equipment, and unavailability or interruption of operations.  
 *                                                                           
 * DISCLAIMER OF LIABILITY                                                   
 * NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY   
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL        
 * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND   
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR     
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE    
 * USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED  
 * HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES             
 *                                                                           
 * You should have received a copy of the GNU General Public License         
 * along with this program; if not, write to the Free Software               
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 *                                                                           
 * 
 *  10/23/2000 - Alpha Release 0.1.0
 *            First release to the public
 *
 */
/*    This module contains the definitions used by datamove.c for DMA setup.*/


#ifndef __DATAMOVE_H_
#define __DATAMOVE_H_

/******************************************************************************/
/*  PC2GPC offsets from CNTLBLK*/
/******************************************************************************/
#define PFTCNT    0x0
#define PFTPTR    0x2
#define NPFTCNT   0x4
#define NPFTPTR   0x6
#define MOVECTL   0x8
#define MAXDMAR   0x0A
#define MAXWINQ   0x0C
#define MOVESTAT  0x0E
#define PFTTOTAL  0x10
#define SHADPTR   0x14
#define SHADCNT   0x18
#define PRIVPTR   0x1a
#define PRIVCNT   0x1e
#define PCERRFLG  0x20
#define PTRPUTD   0x22
#define GPCSEG    0x24

enum NadType { NAD_PLAY_DM, NAD_RECORD_DM };

enum NadMessage { NAD_GET_VERSION, NAD_LOADED, NAD_UNLOADING };

#define MAXPFTENTRIES   17

typedef struct Cntlblk
{
   WORD         pftcnt;
   WORD         pftptr;
   WORD         npftcnt;
   WORD         npftptr;
   WORD         movectl;
   WORD         maxdmar;
   WORD         maxwinq;
   WORD         movestat;
   DWORD        pfttotal;
   WORD         shadptr;
   WORD         shadcnt;
   DWORD        privptr;
   WORD         privcnt;
   WORD         pcerrflg;
   WORD         ptrpputd;
   WORD         gpcseg;
} Cntlblk_t;

typedef struct Datamover
{
   DWORD        size;           /* size of this structure*/
   DWORD        ipcHandle;      /* IPC handle owned by this task*/
   DWORD        dspaddrCNTLBLK; /* address in DSTORE of CNTLBLK label*/
   DWORD        pftEntries;     /* max # of entries in the allocated tables*/
   DWORD        pftEntriesUsed; /* # of entries filled in the allocated tables*/
   DWORD        dspaddrPFTTABLE1;  /* address in DSTORE of a table*/
   DWORD        dspaddrPFTTABLE2;  /* address in DSTORE of a table*/
} Datamover_t;

typedef struct NadStream
{
   DWORD        size;           /* size of this structure*/
   DWORD        type;           /* the type of this structure*/
} NadStream_t;

typedef struct NadDatamoverStream
{
   NadStream_t nadStream;
   Datamover_t Datamover;
} NadDatamoverStream_t;

typedef struct pftEntry
{
   DWORD        address;
   WORD         size;
} pftEntry_t;

typedef struct pftptrr
{
   WORD        pftcnt;
   WORD        pftptr;
} pftptr_t;

#endif /* __DATAMOVE_H_ */