compat-api.h revision 18781e08
1de2362d3Smrg/* 2de2362d3Smrg * Copyright 2012 Red Hat, Inc. 3de2362d3Smrg * 4de2362d3Smrg * Permission is hereby granted, free of charge, to any person obtaining a 5de2362d3Smrg * copy of this software and associated documentation files (the "Software"), 6de2362d3Smrg * to deal in the Software without restriction, including without limitation 7de2362d3Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8de2362d3Smrg * and/or sell copies of the Software, and to permit persons to whom the 9de2362d3Smrg * Software is furnished to do so, subject to the following conditions: 10de2362d3Smrg * 11de2362d3Smrg * The above copyright notice and this permission notice (including the next 12de2362d3Smrg * paragraph) shall be included in all copies or substantial portions of the 13de2362d3Smrg * Software. 14de2362d3Smrg * 15de2362d3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16de2362d3Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17de2362d3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18de2362d3Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19de2362d3Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20de2362d3Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21de2362d3Smrg * DEALINGS IN THE SOFTWARE. 22de2362d3Smrg * 23de2362d3Smrg * Author: Dave Airlie <airlied@redhat.com> 24de2362d3Smrg */ 25de2362d3Smrg 26de2362d3Smrg/* this file provides API compat between server post 1.13 and pre it, 27de2362d3Smrg it should be reused inside as many drivers as possible */ 28de2362d3Smrg#ifndef COMPAT_API_H 29de2362d3Smrg#define COMPAT_API_H 30de2362d3Smrg 31de2362d3Smrg#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR 32de2362d3Smrg#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] 33de2362d3Smrg#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p 34de2362d3Smrg#endif 35de2362d3Smrg 36de2362d3Smrg#ifndef XF86_HAS_SCRN_CONV 37de2362d3Smrg#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] 38de2362d3Smrg#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] 39de2362d3Smrg#endif 40de2362d3Smrg 41de2362d3Smrg#ifndef XF86_SCRN_INTERFACE 42de2362d3Smrg 43de2362d3Smrg#define SCRN_ARG_TYPE int 44de2362d3Smrg#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] 45de2362d3Smrg 46de2362d3Smrg#define SCREEN_ARG_TYPE int 47de2362d3Smrg#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] 48de2362d3Smrg 49de2362d3Smrg#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv 50de2362d3Smrg 51de2362d3Smrg#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask 52de2362d3Smrg#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask 53de2362d3Smrg 54de2362d3Smrg#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen 55de2362d3Smrg#define CLOSE_SCREEN_ARGS scrnIndex, pScreen 56de2362d3Smrg 57de2362d3Smrg#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags 58de2362d3Smrg 59de2362d3Smrg#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags 60de2362d3Smrg 61de2362d3Smrg#define FREE_SCREEN_ARGS_DECL int arg, int flags 62de2362d3Smrg 63de2362d3Smrg#define VT_FUNC_ARGS_DECL int arg, int flags 64de2362d3Smrg#define VT_FUNC_ARGS(flags) pScrn->scrnIndex, (flags) 65de2362d3Smrg 66de2362d3Smrg#define XF86_ENABLEDISABLEFB_ARG(x) ((x)->scrnIndex) 67de2362d3Smrg#else 68de2362d3Smrg#define SCRN_ARG_TYPE ScrnInfoPtr 69de2362d3Smrg#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) 70de2362d3Smrg 71de2362d3Smrg#define SCREEN_ARG_TYPE ScreenPtr 72de2362d3Smrg#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) 73de2362d3Smrg 74de2362d3Smrg#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv 75de2362d3Smrg 7618781e08Smrg#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0) 7718781e08Smrg#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout 7818781e08Smrg#define BLOCKHANDLER_ARGS arg, pTimeout 7918781e08Smrg#else 80de2362d3Smrg#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask 81de2362d3Smrg#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask 8218781e08Smrg#endif 83de2362d3Smrg 84de2362d3Smrg#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen 85de2362d3Smrg#define CLOSE_SCREEN_ARGS pScreen 86de2362d3Smrg 87de2362d3Smrg#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y 88de2362d3Smrg#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode 89de2362d3Smrg 90de2362d3Smrg#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg 91de2362d3Smrg 92de2362d3Smrg#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg 93de2362d3Smrg#define VT_FUNC_ARGS(flags) pScrn 94de2362d3Smrg 95de2362d3Smrg#define XF86_ENABLEDISABLEFB_ARG(x) (x) 96de2362d3Smrg 97de2362d3Smrg#endif 98de2362d3Smrg 99de2362d3Smrg#endif 100