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