You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
#ifndef TinyGPUDriver_h
|
|
#define TinyGPUDriver_h
|
|
|
|
#include <Availability.h>
|
|
#include <DriverKit/IOService.iig>
|
|
#include <PCIDriverKit/IOPCIDevice.iig>
|
|
#include <DriverKit/IOMemoryMap.iig>
|
|
#include <DriverKit/IODMACommand.iig>
|
|
|
|
struct TinyGPUCreateDMAResp
|
|
{
|
|
IOBufferMemoryDescriptor* sharedBuf;
|
|
IODMACommand* dmaCmd;
|
|
};
|
|
|
|
class TinyGPUDriver: public IOService
|
|
{
|
|
public:
|
|
virtual bool init() override;
|
|
|
|
virtual void free() override;
|
|
|
|
virtual kern_return_t Start(IOService * provider) override;
|
|
|
|
virtual kern_return_t Stop(IOService * provider) override;
|
|
|
|
virtual kern_return_t NewUserClient(uint32_t in_type, IOUserClient** out_user_client) override;
|
|
|
|
kern_return_t MapBar(uint32_t bar, IOMemoryDescriptor** memory) LOCALONLY;
|
|
kern_return_t CreateDMA(size_t size, TinyGPUCreateDMAResp* dmaDesc) LOCALONLY;
|
|
|
|
kern_return_t CfgRead(uint32_t off, uint32_t size, uint32_t* val) LOCALONLY;
|
|
kern_return_t CfgWrite(uint32_t off, uint32_t size, uint32_t val) LOCALONLY;
|
|
kern_return_t ResetDevice() LOCALONLY;
|
|
kern_return_t BarInfo() LOCALONLY;
|
|
};
|
|
|
|
#endif /* TinyGPUDriver_h */
|
|
|