via_xvmc.h revision 7e6fb56f
16086d97eSmrg/***************************************************************************** 2fc5a983dSmrg * VIA Unichrome XvMC extension X server driver. 3fc5a983dSmrg * 471ba42d0Smrg * Copyright (c) 2004 The Unichrome project. All rights reserved. 5fc5a983dSmrg * 6fc5a983dSmrg * Permission is hereby granted, free of charge, to any person obtaining a 7fc5a983dSmrg * copy of this software and associated documentation files (the "Software"), 8fc5a983dSmrg * to deal in the Software without restriction, including without limitation 9fc5a983dSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10fc5a983dSmrg * and/or sell copies of the Software, and to permit persons to whom the 11fc5a983dSmrg * Software is furnished to do so, subject to the following conditions: 12fc5a983dSmrg * 13fc5a983dSmrg * The above copyright notice and this permission notice shall be included in 14fc5a983dSmrg * all copies or substantial portions of the Software. 15fc5a983dSmrg * 166086d97eSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 176086d97eSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18fc5a983dSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19fc5a983dSmrg * AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20fc5a983dSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21fc5a983dSmrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22fc5a983dSmrg * DEALINGS IN THE SOFTWARE. 23f3561b8bSmrg * 24f3561b8bSmrg */ 25f3561b8bSmrg 26f3561b8bSmrg#ifndef _VIA_XVMC_H 27f3561b8bSmrg#define _VIA_XVMC_H 1 28f3561b8bSmrg 29f3561b8bSmrg#include "via_drm.h" 30f3561b8bSmrg 31f3561b8bSmrg/* 32f3561b8bSmrg * This file contains the common definitions between the XvMC lib and the 33f3561b8bSmrg * X server side. It is referenced also by the XvMC lib. Make sure any 34f3561b8bSmrg * structure change is reflected also in a change in minor version number!! 35f3561b8bSmrg */ 36f3561b8bSmrg 37f3561b8bSmrg#define VIAXVMC_MAJOR 0 38f3561b8bSmrg#define VIAXVMC_MINOR 10 39f3561b8bSmrg#define VIAXVMC_PL 0 40f3561b8bSmrg#define VIA_NUM_XVMC_ATTRIBUTES 6 41f3561b8bSmrg#define VIA_XVMC_VALID 0x80000000 42f3561b8bSmrg 43f3561b8bSmrg/* 44f3561b8bSmrg * Commands that client submits through XvPutImage: 45f3561b8bSmrg */ 46f3561b8bSmrg 47f3561b8bSmrg#define VIA_XVMC_COMMAND_FDISPLAY 0 48f3561b8bSmrg#define VIA_XVMC_COMMAND_DISPLAY 1 49f3561b8bSmrg#define VIA_XVMC_COMMAND_UNDISPLAY 2 50f3561b8bSmrg#define VIA_XVMC_COMMAND_ATTRIBUTES 3 51f3561b8bSmrg 52f3561b8bSmrgtypedef drm_via_sarea_t ViaXvMCSAreaPriv; 53f3561b8bSmrg 54f3561b8bSmrgtypedef struct 55f3561b8bSmrg{ 56f3561b8bSmrg INT32 attribute; 57f3561b8bSmrg INT32 value; 58f3561b8bSmrg} ViaAttrPair; 59f3561b8bSmrg 60fc5a983dSmrgtypedef struct 61f3561b8bSmrg{ 62fc5a983dSmrg unsigned numAttr; 63fc5a983dSmrg ViaAttrPair attributes[VIA_NUM_XVMC_ATTRIBUTES]; 64f3561b8bSmrg} ViaXvMCAttrHolder; 65f3561b8bSmrg 66f3561b8bSmrg/* 67f3561b8bSmrg * Passed from client to X server during overlay updates. 68f3561b8bSmrg */ 69f3561b8bSmrg 70f3561b8bSmrgtypedef struct 71f3561b8bSmrg{ 72f3561b8bSmrg unsigned command; 73fc5a983dSmrg unsigned ctxNo; 74fc5a983dSmrg unsigned srfNo; 75f3561b8bSmrg unsigned subPicNo; 76f3561b8bSmrg ViaXvMCAttrHolder attrib; 77f3561b8bSmrg unsigned pad; 78f3561b8bSmrg} ViaXvMCCommandBuffer; 79f3561b8bSmrg 80f3561b8bSmrg/* 81f3561b8bSmrg * Passed from X server to client at context creation. 82f3561b8bSmrg */ 83f3561b8bSmrg 84f3561b8bSmrgtypedef struct 85f3561b8bSmrg{ 86f3561b8bSmrg unsigned int ctxNo; 87f3561b8bSmrg unsigned int major, minor, pl; 88f3561b8bSmrg unsigned xvmc_port; 89f3561b8bSmrg unsigned int fbOffset; 90f3561b8bSmrg unsigned int fbSize; 91f3561b8bSmrg unsigned int mmioOffset; 92f3561b8bSmrg unsigned int mmioSize; 93f3561b8bSmrg unsigned int sAreaSize; 94f3561b8bSmrg unsigned int sAreaPrivOffset; 95f3561b8bSmrg ViaXvMCAttrHolder initAttrs; 96f3561b8bSmrg int useAGP; 97f3561b8bSmrg unsigned int chipId; 98f3561b8bSmrg unsigned int screen; 99f3561b8bSmrg unsigned int depth; 100f3561b8bSmrg unsigned int stride; 101f3561b8bSmrg unsigned int pad; 102f3561b8bSmrg} ViaXvMCCreateContextRec; 103f3561b8bSmrg 104f3561b8bSmrg#endif 105f3561b8bSmrg