From 44db3b49091238d897acf996384fdd90ff774702 Mon Sep 17 00:00:00 2001 From: Nathan Patrizi Date: Thu, 14 May 2026 20:04:35 +0100 Subject: [PATCH] freebsd_network: Add usbd_xfer_get_frame_buffer function Required by certain drivers such as urtw. Change-Id: Ifc36461844d4e149ce3355f0260449a6f2310628 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10978 Reviewed-by: waddlesplash --- src/libs/compat/freebsd_network/compat/dev/usb/usbdi.h | 1 + src/libs/compat/freebsd_network/usb.cpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/libs/compat/freebsd_network/compat/dev/usb/usbdi.h b/src/libs/compat/freebsd_network/compat/dev/usb/usbdi.h index c5f816e75a..bfeb0b2165 100644 --- a/src/libs/compat/freebsd_network/compat/dev/usb/usbdi.h +++ b/src/libs/compat/freebsd_network/compat/dev/usb/usbdi.h @@ -391,6 +391,7 @@ void usbd_xfer_set_priv(struct usb_xfer* xfer, void* ptr); uint8_t usbd_xfer_state(struct usb_xfer *xfer); usb_frlength_t usbd_xfer_max_len(struct usb_xfer *xfer); struct usb_page_cache *usbd_xfer_get_frame(struct usb_xfer *, usb_frcount_t); +void* usbd_xfer_get_frame_buffer(struct usb_xfer *xfer, usb_frcount_t frindex); void usbd_xfer_set_frames(struct usb_xfer *xfer, usb_frcount_t n); void usbd_xfer_set_frame_data(struct usb_xfer *xfer, usb_frcount_t frindex, void *ptr, usb_frlength_t len); diff --git a/src/libs/compat/freebsd_network/usb.cpp b/src/libs/compat/freebsd_network/usb.cpp index 4be2c0e1b8..4c1a34dace 100644 --- a/src/libs/compat/freebsd_network/usb.cpp +++ b/src/libs/compat/freebsd_network/usb.cpp @@ -545,6 +545,13 @@ usbd_xfer_get_frame(struct usb_xfer* xfer, usb_frcount_t frindex) } +extern "C" void * +usbd_xfer_get_frame_buffer(struct usb_xfer *xfer, usb_frcount_t frindex) +{ + return usbd_xfer_get_frame(xfer, frindex)->buffer; +} + + extern "C" void usbd_frame_zero(struct usb_page_cache* cache, usb_frlength_t offset, usb_frlength_t len)