* 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:
@@ -141,7 +141,8 @@ IsochronousPipe::IsochronousPipe(BusManager *bus, int8 deviceAddress,
|
|||||||
|
|
||||||
status_t
|
status_t
|
||||||
IsochronousPipe::QueueIsochronous(void *data, size_t dataLength,
|
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)
|
void *callbackCookie)
|
||||||
{
|
{
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#include <util/kernel_cpp.h>
|
#include <util/kernel_cpp.h>
|
||||||
#include "usb_p.h"
|
#include "usb_p.h"
|
||||||
|
#include <USB_rle.h>
|
||||||
|
|
||||||
|
|
||||||
Stack *gUSBStack = NULL;
|
Stack *gUSBStack = NULL;
|
||||||
@@ -266,16 +267,18 @@ queue_bulk_v(usb_pipe pipe, iovec *vector, size_t vectorCount,
|
|||||||
|
|
||||||
status_t
|
status_t
|
||||||
queue_isochronous(usb_pipe pipe, void *data, size_t dataLength,
|
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)
|
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);
|
Object *object = gUSBStack->GetObject(pipe);
|
||||||
if (!object || (object->Type() & USB_OBJECT_ISO_PIPE) == 0)
|
if (!object || (object->Type() & USB_OBJECT_ISO_PIPE) == 0)
|
||||||
return B_BAD_VALUE;
|
return B_BAD_VALUE;
|
||||||
|
|
||||||
return ((IsochronousPipe *)object)->QueueIsochronous(data, dataLength,
|
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,
|
rlea *rleArray, uint16 bufferDurationMS, usb_callback_func callback,
|
||||||
void *callbackCookie)
|
void *callbackCookie)
|
||||||
{
|
{
|
||||||
return queue_isochronous((usb_id)pipe, data, dataLength, rleArray,
|
// ToDo: convert rlea to usb_iso_packet_descriptor
|
||||||
bufferDurationMS, callback, callbackCookie);
|
// 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -322,8 +322,10 @@ virtual uint32 Type() { return USB_OBJECT_PIPE | USB_OBJECT_ISO_PIPE; };
|
|||||||
|
|
||||||
status_t QueueIsochronous(void *data,
|
status_t QueueIsochronous(void *data,
|
||||||
size_t dataLength,
|
size_t dataLength,
|
||||||
rlea *rleArray,
|
usb_iso_packet_descriptor *packetDesc,
|
||||||
uint16 bufferDurationMS,
|
uint32 packetCount,
|
||||||
|
uint32 *startingFrameNumber,
|
||||||
|
uint32 flags,
|
||||||
usb_callback_func callback,
|
usb_callback_func callback,
|
||||||
void *callbackCookie);
|
void *callbackCookie);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user