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_ */
|