mach64_dri.h revision 32b578d3
132b578d3Smrg/*
232b578d3Smrg * Copyright 2000 Gareth Hughes
332b578d3Smrg * All Rights Reserved.
432b578d3Smrg *
532b578d3Smrg * Permission is hereby granted, free of charge, to any person obtaining a
632b578d3Smrg * copy of this software and associated documentation files (the "Software"),
732b578d3Smrg * to deal in the Software without restriction, including without limitation
832b578d3Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
932b578d3Smrg * and/or sell copies of the Software, and to permit persons to whom the
1032b578d3Smrg * Software is furnished to do so, subject to the following conditions:
1132b578d3Smrg *
1232b578d3Smrg * The above copyright notice and this permission notice (including the next
1332b578d3Smrg * paragraph) shall be included in all copies or substantial portions of the
1432b578d3Smrg * Software.
1532b578d3Smrg *
1632b578d3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1732b578d3Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1832b578d3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1932b578d3Smrg * GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
2032b578d3Smrg * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2132b578d3Smrg * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2232b578d3Smrg */
2332b578d3Smrg
2432b578d3Smrg/*
2532b578d3Smrg * Authors:
2632b578d3Smrg *   Gareth Hughes <gareth@valinux.com>
2732b578d3Smrg *   Leif Delgass <ldelgass@retinalburn.net>
2832b578d3Smrg */
2932b578d3Smrg
3032b578d3Smrg#ifndef __MACH64_DRI_H__
3132b578d3Smrg#define __MACH64_DRI_H__ 1
3232b578d3Smrg
3332b578d3Smrg#include "xf86drm.h"
3432b578d3Smrg
3532b578d3Smrgtypedef struct {
3632b578d3Smrg   drm_handle_t fbHandle;
3732b578d3Smrg
3832b578d3Smrg   drm_handle_t regsHandle;
3932b578d3Smrg   drmSize regsSize;
4032b578d3Smrg
4132b578d3Smrg   int IsPCI;
4232b578d3Smrg
4332b578d3Smrg   drm_handle_t agpHandle;            /* Handle from drmAgpAlloc */
4432b578d3Smrg   unsigned long agpOffset;
4532b578d3Smrg   drmSize agpSize;
4632b578d3Smrg   int agpMode;
4732b578d3Smrg
4832b578d3Smrg   /* DMA descriptor ring */
4932b578d3Smrg   unsigned long     ringStart;        /* Offset into AGP space */
5032b578d3Smrg   drm_handle_t         ringHandle;       /* Handle from drmAddMap */
5132b578d3Smrg   drmSize           ringMapSize;      /* Size of map */
5232b578d3Smrg   int               ringSize;         /* Size of ring (in kB) */
5332b578d3Smrg   drmAddress        ringMap;          /* Map */
5432b578d3Smrg
5532b578d3Smrg   /* vertex buffer data */
5632b578d3Smrg   unsigned long     bufferStart;      /* Offset into AGP space */
5732b578d3Smrg   drm_handle_t         bufferHandle;     /* Handle from drmAddMap */
5832b578d3Smrg   drmSize           bufferMapSize;    /* Size of map */
5932b578d3Smrg   int               bufferSize;       /* Size of buffers (in MB) */
6032b578d3Smrg   drmAddress        bufferMap;        /* Map */
6132b578d3Smrg
6232b578d3Smrg   drmBufMapPtr      drmBuffers;       /* Buffer map */
6332b578d3Smrg   int               numBuffers;       /* Number of buffers */
6432b578d3Smrg
6532b578d3Smrg   /* AGP Texture data */
6632b578d3Smrg   unsigned long     agpTexStart;      /* Offset into AGP space */
6732b578d3Smrg   drm_handle_t         agpTexHandle;     /* Handle from drmAddMap */
6832b578d3Smrg   drmSize           agpTexMapSize;    /* Size of map */
6932b578d3Smrg   int               agpTexSize;       /* Size of AGP tex space (in MB) */
7032b578d3Smrg   drmAddress        agpTexMap;        /* Map */
7132b578d3Smrg   int               log2AGPTexGran;
7232b578d3Smrg
7332b578d3Smrg   int fbX;
7432b578d3Smrg   int fbY;
7532b578d3Smrg   int backX;
7632b578d3Smrg   int backY;
7732b578d3Smrg   int depthX;
7832b578d3Smrg   int depthY;
7932b578d3Smrg
8032b578d3Smrg   int frontOffset;
8132b578d3Smrg   int frontPitch;
8232b578d3Smrg   int backOffset;
8332b578d3Smrg   int backPitch;
8432b578d3Smrg   int depthOffset;
8532b578d3Smrg   int depthPitch;
8632b578d3Smrg
8732b578d3Smrg   int textureOffset;
8832b578d3Smrg   int textureSize;
8932b578d3Smrg   int logTextureGranularity;
9032b578d3Smrg} ATIDRIServerInfoRec, *ATIDRIServerInfoPtr;
9132b578d3Smrg
9232b578d3Smrgtypedef struct {
9332b578d3Smrg   int chipset;
9432b578d3Smrg   int width;
9532b578d3Smrg   int height;
9632b578d3Smrg   int mem;
9732b578d3Smrg   int cpp;
9832b578d3Smrg
9932b578d3Smrg   int IsPCI;
10032b578d3Smrg   int AGPMode;
10132b578d3Smrg
10232b578d3Smrg   unsigned int frontOffset;
10332b578d3Smrg   unsigned int frontPitch;
10432b578d3Smrg
10532b578d3Smrg   unsigned int backOffset;
10632b578d3Smrg   unsigned int backPitch;
10732b578d3Smrg
10832b578d3Smrg   unsigned int depthOffset;
10932b578d3Smrg   unsigned int depthPitch;
11032b578d3Smrg
11132b578d3Smrg   unsigned int textureOffset;
11232b578d3Smrg   unsigned int textureSize;
11332b578d3Smrg   int logTextureGranularity;
11432b578d3Smrg
11532b578d3Smrg   drm_handle_t regs;
11632b578d3Smrg   drmSize regsSize;
11732b578d3Smrg
11832b578d3Smrg   drm_handle_t agp;
11932b578d3Smrg   drmSize agpSize;
12032b578d3Smrg   unsigned int agpTextureOffset;
12132b578d3Smrg   unsigned int agpTextureSize;
12232b578d3Smrg   int logAgpTextureGranularity;
12332b578d3Smrg} ATIDRIRec, *ATIDRIPtr;
12432b578d3Smrg
12532b578d3Smrg#endif /* __MACH64_DRI_H__ */
126