IOFramebufferUserClient.h [plain text]
#ifndef _IOKIT_IOFRAMEBUFFERUSERCLIENT_H
#define _IOKIT_IOFRAMEBUFFERUSERCLIENT_H
#include <IOKit/IOUserClient.h>
#include <IOKit/graphics/IOFramebuffer.h>
#include <IOKit/pci/IOAGPDevice.h>
class IOFramebufferUserClient : public IOUserClient
{
OSDeclareDefaultStructors(IOFramebufferUserClient)
private:
IONotifier * powerRootNotifier;
IONotifier * frameBufferNotifier;
IOExternalMethod externals[ 18 ];
public:
IOFramebuffer * owner;
mach_port_t WSnotificationPort; void * notificationMsg;
bool WSKnowsWeAreOff; bool ackRoot; bool ackFrameBuffer; void * PMrefcon;
virtual IOReturn clientClose( void );
virtual IOService * getService( void );
virtual IOReturn clientMemoryForType( UInt32 type,
IOOptionBits * options, IOMemoryDescriptor ** memory );
virtual IOExternalMethod * getExternalMethodForIndex( UInt32 index );
virtual IOReturn registerNotificationPort( mach_port_t, UInt32, UInt32 );
virtual IOReturn getNotificationSemaphore( UInt32 interruptType,
semaphore_t * semaphore );
static IOFramebufferUserClient * withTask( task_t owningTask );
virtual bool start( IOService * provider );
virtual IOReturn setProperties( OSObject * properties );
virtual IOReturn acknowledgeNotification(void);
};
class IOGraphicsEngineClient : public IOUserClient
{
OSDeclareDefaultStructors(IOGraphicsEngineClient)
private:
IOFramebuffer * owner;
task_t owningTask;
IOAGPDevice * agpDev;
bool haveAGP;
OSArray * descriptors;
IOExternalMethod externals[ 4 ];
public:
virtual IOReturn clientClose( void );
virtual void free();
virtual IOService * getService( void );
virtual IOReturn clientMemoryForType( UInt32 type,
IOOptionBits * options, IOMemoryDescriptor ** memory );
virtual IOExternalMethod * getExternalMethodForIndex( UInt32 index );
static IOGraphicsEngineClient * withTask( task_t owningTask );
virtual bool start( IOService * provider );
virtual IOReturn addUserRange( vm_address_t start, vm_size_t length,
UInt32 aperture, IOPhysicalAddress * phys );
virtual IOReturn createAGPSpace( IOOptionBits options,
IOPhysicalLength length,
IOPhysicalAddress * address,
IOPhysicalLength * lengthOut );
virtual IOReturn commitAGPMemory( vm_address_t start,
vm_size_t length, IOOptionBits options,
void ** ref, IOByteCount * offset );
virtual IOReturn releaseAGPMemory( void * ref );
};
class IOFramebufferSharedUserClient : public IOUserClient
{
OSDeclareDefaultStructors(IOFramebufferSharedUserClient)
private:
IOFramebuffer * owner;
IOExternalMethod externals[ 0 ];
public:
virtual void free();
virtual void release() const;
virtual IOReturn clientClose( void );
virtual IOService * getService( void );
virtual IOReturn clientMemoryForType( UInt32 type,
IOOptionBits * options, IOMemoryDescriptor ** memory );
virtual IOReturn getNotificationSemaphore( UInt32 notification_type,
semaphore_t * semaphore );
virtual IOExternalMethod * getExternalMethodForIndex( UInt32 index );
static IOFramebufferSharedUserClient * withTask( task_t owningTask );
virtual bool start( IOService * provider );
};
#endif