diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2012-12-17 02:03:22 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-17 02:03:22 +0100 |
commit | 747c74538fcd1130ab038d944c0e4861c93ab42e (patch) | |
tree | 59ef9eee8779ce7ee06af3e385672aaa6da286f3 /emulator/btdev.h | |
parent | 81ae935d1b0ea951090c30fb0d7825a61ba9b611 (diff) | |
download | bluez-747c74538fcd1130ab038d944c0e4861c93ab42e.tar.gz |
emulator: Add support for custom HCI command handling
Diffstat (limited to 'emulator/btdev.h')
-rw-r--r-- | emulator/btdev.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/emulator/btdev.h b/emulator/btdev.h index 1a4be372a..8c4afc751 100644 --- a/emulator/btdev.h +++ b/emulator/btdev.h @@ -24,6 +24,32 @@ #include <stdint.h> +#define BTDEV_RESPONSE_DEFAULT 0 +#define BTDEV_RESPONSE_COMMAND_STATUS 1 +#define BTDEV_RESPONSE_COMMAND_COMPLETE 2 + +typedef struct btdev_callback * btdev_callback; + +void btdev_command_response(btdev_callback callback, uint8_t response, + uint8_t status, const void *data, uint8_t len); + +#define btdev_command_default(callback) \ + btdev_command_response(callback, \ + BTDEV_RESPONSE_DEFAULT, 0x00, NULL, 0); + +#define btdev_command_status(callback, status) \ + btdev_command_response(callback, \ + BTDEV_RESPONSE_COMMAND_STATUS, status, NULL, 0); + +#define btdev_command_complete(callback, data, len) \ + btdev_command_response(callback, \ + BTDEV_RESPONSE_COMMAND_COMPLETE, 0x00, data, len); + + +typedef void (*btdev_command_func) (uint16_t opcode, + const void *data, uint8_t len, + btdev_callback callback, void *user_data); + typedef void (*btdev_send_func) (const void *data, uint16_t len, void *user_data); @@ -40,6 +66,9 @@ void btdev_destroy(struct btdev *btdev); void btdev_set_bdaddr(struct btdev *btdev, uint8_t *bdaddr); +void btdev_set_command_handler(struct btdev *btdev, btdev_command_func handler, + void *user_data); + void btdev_set_send_handler(struct btdev *btdev, btdev_send_func handler, void *user_data); |