Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:01:49

0001 /**
0002  * \file drm_sarea.h
0003  * \brief SAREA definitions
0004  *
0005  * \author Michel Dänzer <michel@daenzer.net>
0006  */
0007 
0008 /*
0009  * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
0010  * All Rights Reserved.
0011  *
0012  * Permission is hereby granted, free of charge, to any person obtaining a
0013  * copy of this software and associated documentation files (the "Software"),
0014  * to deal in the Software without restriction, including without limitation
0015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
0016  * and/or sell copies of the Software, and to permit persons to whom the
0017  * Software is furnished to do so, subject to the following conditions:
0018  *
0019  * The above copyright notice and this permission notice (including the next
0020  * paragraph) shall be included in all copies or substantial portions of the
0021  * Software.
0022  *
0023  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0024  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0025  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
0026  * TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
0027  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
0028  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0029  * OTHER DEALINGS IN THE SOFTWARE.
0030  */
0031 
0032 #ifndef _DRM_SAREA_H_
0033 #define _DRM_SAREA_H_
0034 
0035 #include "drm.h"
0036 
0037 #if defined(__cplusplus)
0038 extern "C" {
0039 #endif
0040 
0041 /* SAREA area needs to be at least a page */
0042 #if defined(__alpha__)
0043 #define SAREA_MAX                       0x2000U
0044 #elif defined(__mips__)
0045 #define SAREA_MAX                       0x4000U
0046 #elif defined(__ia64__)
0047 #define SAREA_MAX                       0x10000U    /* 64kB */
0048 #else
0049 /* Intel 830M driver needs at least 8k SAREA */
0050 #define SAREA_MAX                       0x2000U
0051 #endif
0052 
0053 /** Maximum number of drawables in the SAREA */
0054 #define SAREA_MAX_DRAWABLES     256
0055 
0056 #define SAREA_DRAWABLE_CLAIMED_ENTRY    0x80000000
0057 
0058 /** SAREA drawable */
0059 struct drm_sarea_drawable {
0060     unsigned int stamp;
0061     unsigned int flags;
0062 };
0063 
0064 /** SAREA frame */
0065 struct drm_sarea_frame {
0066     unsigned int x;
0067     unsigned int y;
0068     unsigned int width;
0069     unsigned int height;
0070     unsigned int fullscreen;
0071 };
0072 
0073 /** SAREA */
0074 struct drm_sarea {
0075     /** first thing is always the DRM locking structure */
0076     struct drm_hw_lock lock;
0077     /** \todo Use readers/writer lock for drm_sarea::drawable_lock */
0078     struct drm_hw_lock drawable_lock;
0079     struct drm_sarea_drawable drawableTable[SAREA_MAX_DRAWABLES];   /**< drawables */
0080     struct drm_sarea_frame frame;   /**< frame */
0081     drm_context_t dummy_context;
0082 };
0083 
0084 typedef struct drm_sarea_drawable drm_sarea_drawable_t;
0085 typedef struct drm_sarea_frame drm_sarea_frame_t;
0086 typedef struct drm_sarea drm_sarea_t;
0087 
0088 #if defined(__cplusplus)
0089 }
0090 #endif
0091 
0092 #endif              /* _DRM_SAREA_H_ */