Nick,

Some devices need in-kernel drivers, but in your case it sounds like you would 
do better with a purely user-space solution.

Have a look at these documents to get you started:
• Accessing Hardware From Applications 
<https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Intro/AH_Intro.html
 
<https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/AccessingHardware/AH_Intro/AH_Intro.html>>
• USB Device Interface Guide  
<https://developer.apple.com/library/Mac/documentation/DeviceDrivers/Conceptual/USBBook/USBIntro/USBIntro.html
 
<https://developer.apple.com/library/Mac/documentation/DeviceDrivers/Conceptual/USBBook/USBIntro/USBIntro.html>>
• USBPrivateDataSample 
<https://developer.apple.com/library/mac/samplecode/USBPrivateDataSample/Introduction/Intro.html>
• I/O Kit Framework Reference (look for the IOUSB* objects): 
<https://developer.apple.com/library/Mac/documentation/Darwin/Reference/IOKit/_index.html>

Also, just to make sure no existing in-kernel driver is already claiming your 
device, run "/usr/sbin/ioreg -l” while your device is attached.  Search the 
output for your device ID so you can locate the relevant entry.  Then make sure 
it is a leaf node of the registry (meaning no other driver has opened it and 
stacked on top of it).

Cheers,
 - Dean


> On Oct 21, 2014, at 2:39 AM, nick <[email protected]> wrote:
> 
> Hi Alex,
> 
> Sorry to bother you again, I didn’t get any message back since yesterday. Is 
> there anything wrong?
> Thanks.
> 
> Nick
> 
>> On Oct 20, 2014, at 5:16 PM, Nick Yao <[email protected]> wrote:
>> 
>> Dear Alex,
>> 
>>      From my experiences in Windows and Linux, whenever an new device is
>> plugged in, we always have to install the device driver, which lives
>> in kernel spaces.  So why does not Mac need a device driver lives in
>> kernel space?
>> 
>> Thanks
>> 
>> Nick
>> 
>> On 10/20/14, Nick Yao <[email protected]> wrote:
>>> Dear Alex,
>>> 
>>> Thanks a lot.
>>> Our goal is relatively simple.
>>> We have an IC with one USB interface and two I2C interfaces.
>>> Our goal is to  use usb to transfer data from PC to i2c devices (maybe
>>> a camera or e2prom),  and vice versa.
>>> My leader has already achieved it on Windows and Linux by writing
>>> corresponding OS driver.
>>> So he thinks it should be done in the same way by writing a device
>>> driver on MAC.
>>> and that's the reason I get the task.
>>> 
>>> Have I answered your question?
>>> 
>>> Nick
>>> 
>>> On 10/20/14, Alexander von Below <[email protected]> wrote:
>>>> Hello Nick,
>>>> 
>>>> in order to help you, I need to understand what your primary goal is. I
>>>> have
>>>> developed a lot of USB code, and rarely found it necessary for it to live
>>>> in
>>>> Kernel space. If your code does not need to live in Kernel space, that
>>>> would
>>>> immediately solve your issue, correct?
>>>> 
>>>> Alex
>>>> 
>>>> 
>>>> Am 20.10.2014 um 09:29 schrieb Nick Yao <[email protected]>:
>>>> 
>>>>> Dear Alex
>>>>> add subject.
>>>>> My leader has assigned the driver task to me. So It's kind of an order.
>>>>> I just want to know the interface through which upper applications
>>>>> talk to device driver.
>>>>> I cannot find these interfaces in IOKit Classes.
>>>>> 
>>>>> Thanks.
>>>>> 
>>>>> Nick
>>>>> 
>>>>> On 10/20/14, Alexander von Below <[email protected]> wrote:
>>>>>> Exactly what is your goal? Why does your USB code need to live in
>>>>>> kernel
>>>>>> space in the first place?
>>>>>> 
>>>>>> Alex
>>>>>> 
>>>>>> Von meinem iPhone gesendet
>>>>>> 
>>>>>>> Am 20.10.2014 um 09:00 schrieb Nick Yao <[email protected]>:
>>>>>>> 
>>>>>>> Hello experts,
>>>>>>> 
>>>>>>>  I'm new to MAC development with some linux device driver
>>>>>>> experience, and I am working on developing an usb device driver.
>>>>>>>  I have already read iokit fundamental, but still very confused.
>>>>>>>  how does kext get request form upper applications?Every base
>>>>>>> Class in iokit  have different functions.
>>>>>>>  It gives me the expression that iokit does't expose the same
>>>>>>> uniform interface to upper applications.
>>>>>>>  Is there anything like read/write file operations functions in
>>>>>>> Linux?
>>>>>>> 
>>>>>>> 
>>>>>>> Thanks.
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>> Usb mailing list      ([email protected])
>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>> https://lists.apple.com/mailman/options/usb/below%40mac.com
>>>>>>> 
>>>>>>> This email sent to [email protected]
>>>>>> 
>>>> 
>>>> 
>>> 
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Usb mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/usb/dean.reece%40apple.com
> 
> This email sent to [email protected]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to