/* * Copyright (c) 1999-2000 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this * file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_LICENSE_HEADER_END@ */ #ifndef _IOKIT_IOGRAPHICSINTERFACE_H #define _IOKIT_IOGRAPHICSINTERFACE_H #ifdef KERNEL #define NO_CFPLUGIN 1 #endif #ifndef NO_CFPLUGIN #include #endif /* ! NO_CFPLUGIN */ #define IOGA_COMPAT 1 #include #define kIOGraphicsAcceleratorTypeID \ (CFUUIDGetConstantUUIDWithBytes(NULL, \ 0xAC, 0xCF, 0x00, 0x00, \ 0x00, 0x00, \ 0x00, 0x00, \ 0x00, 0x00, \ 0x00, 0x0a, 0x27, 0x89, 0x90, 0x4e)) // IOGraphicsAcceleratorType objects must implement the // IOGraphicsAcceleratorInterface #define kIOGraphicsAcceleratorInterfaceID \ (CFUUIDGetConstantUUIDWithBytes(NULL, \ 0x67, 0x66, 0xE9, 0x4A, \ 0x00, 0x00, \ 0x00, 0x00, \ 0x00, 0x00, \ 0x00, 0x0a, 0x27, 0x89, 0x90, 0x4e)) /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ typedef IOReturn (*IOBlitAccumulatePtr)(void *thisPointer, SInt32 a, SInt32 b, SInt32 c, SInt32 d, SInt32 e, SInt32 f ); #ifdef IOGA_COMPAT typedef IOReturn (*IOBlitProcPtr)(void *thisPointer, IOOptionBits options, IOBlitType type, IOBlitSourceDestType sourceDestType, IOBlitOperation * operation, void * source, void * destination, IOBlitCompletionToken * completionToken ); #endif typedef IOReturn (*IOBlitterPtr)(void *thisPointer, IOOptionBits options, IOBlitType type, IOBlitSourceType sourceType, IOBlitOperation * operation, void * source ); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef NO_CFPLUGIN typedef struct IOGraphicsAcceleratorInterfaceStruct { IUNKNOWN_C_GUTS; IOCFPLUGINBASE; IOReturn (*Reset) (void *thisPointer, IOOptionBits options); IOReturn (*CopyCapabilities) (void *thisPointer, FourCharCode select, CFTypeRef * capabilities); #ifdef IOGA_COMPAT IOReturn (*GetBlitProc) (void *thisPointer, IOOptionBits options, IOBlitType type, IOBlitSourceDestType sourceDestType, IOBlitProcPtr * blitProc ); #else void * __gaInterfaceReserved0; #endif IOReturn (*Flush) (void *thisPointer, IOOptionBits options); #ifdef IOGA_COMPAT IOReturn (*WaitForCompletion) (void *thisPointer, IOOptionBits options, IOBlitCompletionToken completionToken); #else void * __gaInterfaceReserved1; #endif IOReturn (*Synchronize) (void *thisPointer, UInt32 options, UInt32 x, UInt32 y, UInt32 w, UInt32 h ); IOReturn (*GetBeamPosition) (void *thisPointer, IOOptionBits options, SInt32 * position); IOReturn (*AllocateSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, void * cgsSurfaceID ); IOReturn (*FreeSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface); IOReturn (*LockSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, vm_address_t * address ); IOReturn (*UnlockSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, IOOptionBits * swapFlags); IOReturn (*SwapSurface) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface, IOOptionBits * swapFlags); IOReturn (*SetDestination) (void *thisPointer, IOOptionBits options, IOBlitSurface * surface ); IOReturn (*GetBlitter) (void *thisPointer, IOOptionBits options, IOBlitType type, IOBlitSourceType sourceType, IOBlitterPtr * blitter ); IOReturn (*WaitComplete) (void *thisPointer, IOOptionBits options); void * __gaInterfaceReserved[ 24 ]; } IOGraphicsAcceleratorInterface; #endif /* ! NO_CFPLUGIN */ /* Helper function for plugin use */ IOReturn IOAccelFindAccelerator( io_service_t framebuffer, io_service_t * pAccelerator, UInt32 * pFramebufferIndex ); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #endif /* !_IOKIT_IOGRAPHICSINTERFACE_H */