106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //
 | |
| //  HackRFDriver.cpp
 | |
| //  HackRFDriver
 | |
| //
 | |
| //  Created by maddiefuzz on 7/28/22.
 | |
| //
 | |
| 
 | |
| #include <os/log.h>
 | |
| 
 | |
| #include <DriverKit/IOUserServer.h>
 | |
| #include <DriverKit/IOLib.h>
 | |
| #include <USBDriverKit/IOUSBHostInterface.h>
 | |
| #include <USBDriverKit/IOUSBHostPipe.h>
 | |
| #include <USBDriverKit/IOUSBHostDevice.h>
 | |
| 
 | |
| 
 | |
| #include "HackRFDriver.h"
 | |
| 
 | |
| struct HackRFDriver_IVars
 | |
| {
 | |
|     IOUSBHostInterface *interface;
 | |
|     IOUSBHostDevice *device;
 | |
|     IOUSBHostPipe *inPipe;
 | |
|     OSAction *ioCompleteCallback;
 | |
|     IOBufferMemoryDescriptor *inData;
 | |
|     uint16_t maxPacketSize;
 | |
| };
 | |
| 
 | |
| static const uint32_t kMyEndpointAddress = 1;
 | |
| 
 | |
| kern_return_t
 | |
| IMPL(HackRFDriver, Start)
 | |
| {
 | |
|     kern_return_t ret;
 | |
|     
 | |
|     ret = Start(provider, SUPERDISPATCH);
 | |
|     
 | |
|     os_log(OS_LOG_DEFAULT, "Beginning Start function...");
 | |
|     
 | |
|     os_log(OS_LOG_DEFAULT, "All the start stuff went good, captain.");
 | |
|     
 | |
|     return ret;
 | |
| }
 | |
| 
 | |
| kern_return_t
 | |
| IMPL(HackRFDriver, Stop)
 | |
| {
 | |
|     kern_return_t ret;
 | |
|     ret = Stop(provider, SUPERDISPATCH);
 | |
|     os_log(OS_LOG_DEFAULT, "Goodbye World");
 | |
|     return ret;
 | |
| }
 | |
| 
 | |
| void HackRFDriver::free()
 | |
| {
 | |
|     return;
 | |
| }
 | |
| 
 | |
| bool HackRFDriver::init()
 | |
| {
 | |
|     if(!super::init()) {
 | |
|         return false;
 | |
|     }
 | |
|     
 | |
|     ivars = IONewZero(HackRFDriver_IVars, 1);
 | |
|     if(!ivars) {
 | |
|         return false;
 | |
|     }
 | |
|     
 | |
|     os_log(OS_LOG_DEFAULT, "HackRFDriver Init Function Called.");
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| //kern_return_t HackRFDriver::CopyDescriptor(uint8_t type, uint16_t *length, uint8_t index, uint16_t languageID, uint8_t requestType, uint8_t requestRecipient, uint8_t *descriptor)
 | |
| //{
 | |
| //    return 0;
 | |
| //}
 | |
| //
 | |
| //const IOUSBDeviceDescriptor * HackRFDriver::CopyDeviceDescriptor(void)
 | |
| //{
 | |
| //    return NULL;
 | |
| //}
 | |
| //
 | |
| //const IOUSBStringDescriptor * HackRFDriver::CopyStringDescriptor(uint8_t index)
 | |
| //{
 | |
| //    return NULL;
 | |
| //}
 | |
| //
 | |
| //const IOUSBStringDescriptor * HackRFDriver::CopyStringDescriptor(uint8_t index, uint16_t languageID)
 | |
| //{
 | |
| //    return NULL;
 | |
| //}
 | |
| //
 | |
| //const IOUSBBOSDescriptor * CopyCapabilityDescriptors(void)
 | |
| //{
 | |
| //    return NULL;
 | |
| //}
 | |
| 
 | |
| //kern_return_t
 | |
| //IMPL(HackRFDriver, CopyDescriptor)
 | |
| //{
 | |
| //    kern_return_t ret;
 | |
| //    ret = CopyDescriptor(0, 0, 0, 0, 0, 0, 0);
 | |
| //    return ret;
 | |
| //}
 |