bluetooth: ioctls always pass size on Haiku.

This commit is contained in:
Augustin Cavalier
2018-11-18 14:42:09 -05:00
parent 59ecfa6cb6
commit 2897df9676
3 changed files with 0 additions and 27 deletions
-7
View File
@@ -42,13 +42,6 @@ const char* BluetoothError(uint8 error);
#define HCI_FEATURES_SIZE 8 /* LMP features */
#define HCI_DEVICE_NAME_SIZE 248 /* unit name size */
/* Device drivers need to take this into account
* when receiving ioctls. Only applies to R5 builds
* in deprecation process
*/
#define BT_IOCTLS_PASS_SIZE
// HCI Packet types
#define HCI_2DH1 0x0002
#define HCI_3DH1 0x0004
@@ -618,16 +618,11 @@ device_control(void* cookie, uint32 msg, void* params, size_t size)
switch (msg) {
case ISSUE_BT_COMMAND:
#ifdef BT_IOCTLS_PASS_SIZE
if (size == 0) {
TRACE("%s: Invalid size control\n", __func__);
err = B_BAD_VALUE;
break;
}
#else
size = (*((size_t*)params));
(*(size_t**)&params)++;
#endif
// TODO: Reuse from some TXcompleted queue
// snbuf = snb_create(size);
-15
View File
@@ -16,22 +16,11 @@ inline void* buildCommand(uint8 ogf, uint8 ocf, void** param, size_t psize,
CALLED();
struct hci_command_header* header;
#ifdef BT_IOCTLS_PASS_SIZE
header = (struct hci_command_header*) malloc(psize
+ sizeof(struct hci_command_header));
*outsize = psize + sizeof(struct hci_command_header);
#else
size_t* size = (size_t*)malloc(psize + sizeof(struct hci_command_header)
+ sizeof(size_t));
*outsize = psize + sizeof(struct hci_command_header) + sizeof(size_t);
*size = psize + sizeof(struct hci_command_header);
header = (struct hci_command_header*) (((uint8*)size)+4);
#endif
if (header != NULL) {
header->opcode = B_HOST_TO_LENDIAN_INT16(PACK_OPCODE(ogf, ocf));
header->clen = psize;
@@ -39,11 +28,7 @@ inline void* buildCommand(uint8 ogf, uint8 ocf, void** param, size_t psize,
*param = ((uint8*)header) + sizeof(struct hci_command_header);
}
}
#ifdef BT_IOCTLS_PASS_SIZE
return header;
#else
return (void*)size;
#endif
}