Hi all,

I am trying to understand how FreeBSD's usb transfers work compared to OpenBSD 
by using the rum(4) driver. I am a little confused how the FreeBSD side works.

On the OpenBSD side, it seems that after allocating the pipes, you use 
usbd_setup_xfer and usbd_transfer(). As an example, look at OpenBSD's 
/usr/src/sys/dev/usb/if_rum.c, starting on line 2027-2029, I believe that 
corresponds to FreeBSD's /usr/src/sys/dev/usb/wlan/if_rum.c, line 2607 
(rum_setup_tx_list) which goes to 807. In this function, I see that it adds 
rum_tx_data (tx_data[i] to the end of tx_free. However, how does it actually 
send the data? I believe this occurs in the callback functions, specifically 
with the usbd_transfer_submit function, but I am not certain how that is 
triggered, especially when it is triggered by the driver, such as in a send 
function.

Please assist.
Thank you!

Links below to make it easy to follow:
OpenBSD:
https://github.com/openbsd/src/blob/2e342c845e9966c26657b08851237fc18e7b5ff5/sys/dev/usb/if_rum.c#L2024

FreeBSD:
1. 
https://github.com/freebsd/freebsd/blob/499b2b565264824f2139ebcb5d1c97404a17e7e6/sys/dev/usb/wlan/if_rum.c#L2607
2. 
https://github.com/freebsd/freebsd/blob/499b2b565264824f2139ebcb5d1c97404a17e7e6/sys/dev/usb/wlan/if_rum.c#L807

--
Farhan Khan
PGP Fingerprint: 1312 89CE 663E 1EB2 179C 1C83 C41D 2281 F8DA C0DE

_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to