* Fixed queue_isochronous in USB3.h to match the actual v3 API.

* Changed the usb module accordingly. Isochronous is all still left ToDo though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18700 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz
2006-08-29 18:25:34 +00:00
parent 7fb6186f3c
commit 1bad4a4ef9
3 changed files with 17 additions and 8 deletions
+2 -1
View File
@@ -141,7 +141,8 @@ IsochronousPipe::IsochronousPipe(BusManager *bus, int8 deviceAddress,
status_t
IsochronousPipe::QueueIsochronous(void *data, size_t dataLength,
rlea *rleArray, uint16 bufferDurationMS, usb_callback_func callback,
usb_iso_packet_descriptor *packetDesc, uint32 packetCount,
uint32 *startingFrameNumber, uint32 flags, usb_callback_func callback,
void *callbackCookie)
{
return B_ERROR;
+11 -5
View File
@@ -9,6 +9,7 @@
#include <util/kernel_cpp.h>
#include "usb_p.h"
#include <USB_rle.h>
Stack *gUSBStack = NULL;
@@ -266,16 +267,18 @@ queue_bulk_v(usb_pipe pipe, iovec *vector, size_t vectorCount,
status_t
queue_isochronous(usb_pipe pipe, void *data, size_t dataLength,
rlea *rleArray, uint16 bufferDurationMS, usb_callback_func callback,
usb_iso_packet_descriptor *packetDesc, uint32 packetCount,
uint32 *startingFrameNumber, uint32 flags, usb_callback_func callback,
void *callbackCookie)
{
TRACE(("usb_module: queue_isochronous(0x%08x, 0x%08x, %d, 0x%08x, %d, 0x%08x, 0x%08x)\n", pipe, data, dataLength, rleArray, bufferDurationMS, callback, callbackCookie));
TRACE(("usb_module: queue_isochronous(0x%08x, 0x%08x, %d, 0x%08x, %d, 0x%08x, 0x%08x, 0x%08x, 0x%08x)\n", pipe, data, dataLength, packetDesc, packetCount, startingFrameNumber, flags, callback, callbackCookie));
Object *object = gUSBStack->GetObject(pipe);
if (!object || (object->Type() & USB_OBJECT_ISO_PIPE) == 0)
return B_BAD_VALUE;
return ((IsochronousPipe *)object)->QueueIsochronous(data, dataLength,
rleArray, bufferDurationMS, callback, callbackCookie);
packetDesc, packetCount, startingFrameNumber, flags, callback,
callbackCookie);
}
@@ -477,8 +480,11 @@ queue_isochronous_v2(const void *pipe, void *data, size_t dataLength,
rlea *rleArray, uint16 bufferDurationMS, usb_callback_func callback,
void *callbackCookie)
{
return queue_isochronous((usb_id)pipe, data, dataLength, rleArray,
bufferDurationMS, callback, callbackCookie);
// ToDo: convert rlea to usb_iso_packet_descriptor
// ToDo: use a flag to indicate that the callback shall produce a rlea
usb_iso_packet_descriptor *packetDesc = NULL;
return queue_isochronous((usb_id)pipe, data, dataLength, packetDesc, 0,
NULL, 0, callback, callbackCookie);
}
+4 -2
View File
@@ -322,8 +322,10 @@ virtual uint32 Type() { return USB_OBJECT_PIPE | USB_OBJECT_ISO_PIPE; };
status_t QueueIsochronous(void *data,
size_t dataLength,
rlea *rleArray,
uint16 bufferDurationMS,
usb_iso_packet_descriptor *packetDesc,
uint32 packetCount,
uint32 *startingFrameNumber,
uint32 flags,
usb_callback_func callback,
void *callbackCookie);
};