cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright (c) 2009 Tiago Vignatti
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Permission is hereby granted, free of charge, to any person
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * obtaining a copy of this software and associated documentation
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * files (the "Software"), to deal in the Software without
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * restriction, including without limitation the rights to use,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * copy, modify, merge, publish, distribute, sublicense, and/or sell
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * copies of the Software, and to permit persons to whom the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Software is furnished to do so, subject to the following
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * conditions:
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * The above copyright notice and this permission notice shall be
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * included in all copies or substantial portions of the Software.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * OTHER DEALINGS IN THE SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef __XF86VGAARBITER_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define __XF86VGAARBITER_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "screenint.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "misc.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "xf86.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* Functions */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void xf86VGAarbiterInit(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void xf86VGAarbiterFini(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid xf86VGAarbiterScrnInit(ScrnInfoPtr pScrn);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern Bool xf86VGAarbiterWrapFunctions(void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void xf86VGAarbiterLock(ScrnInfoPtr pScrn);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern void xf86VGAarbiterUnlock(ScrnInfoPtr pScrn);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* allow a driver to remove itself from arbiter - really should be
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * done in the kernel though */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT void xf86VGAarbiterDeviceDecodes(ScrnInfoPtr pScrn);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/* DRI and arbiter are really not possible together,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * you really want to remove the card from arbitration if you can */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern _X_EXPORT Bool xf86VGAarbiterAllowDRI(ScreenPtr pScreen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* __XF86VGAARBITER_H */