if-mce.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // SPDX-License-Identifier: Apache-2.0
  2. /*
  3. * Copyright (C) 2014 Intel Corporation
  4. *
  5. */
  6. #define _GNU_SOURCE
  7. #include "if-main.h"
  8. #include "../hal-utils.h"
  9. const btmce_interface_t *if_mce = NULL;
  10. /*
  11. * Callback for get_remote_mas_instances
  12. */
  13. static void btmce_remote_mas_instances_cb(bt_status_t status,
  14. bt_bdaddr_t *bd_addr,
  15. int num_instances,
  16. btmce_mas_instance_t *instances)
  17. {
  18. int i;
  19. haltest_info("%s: status=%s bd_addr=%s num_instance=%d\n", __func__,
  20. bt_status_t2str(status), bdaddr2str(bd_addr),
  21. num_instances);
  22. for (i = 0; i < num_instances; i++)
  23. haltest_info("id=%d scn=%d msg_types=%d name=%s\n",
  24. instances[i].id, instances[i].scn,
  25. instances[i].msg_types, instances[i].p_name);
  26. }
  27. static btmce_callbacks_t mce_cbacks = {
  28. .size = sizeof(mce_cbacks),
  29. .remote_mas_instances_cb = btmce_remote_mas_instances_cb,
  30. };
  31. /* init */
  32. static void init_p(int argc, const char **argv)
  33. {
  34. RETURN_IF_NULL(if_mce);
  35. EXEC(if_mce->init, &mce_cbacks);
  36. }
  37. static void get_remote_mas_instances_c(int argc, const char **argv,
  38. enum_func *enum_func, void **user)
  39. {
  40. if (argc == 3) {
  41. *user = NULL;
  42. *enum_func = enum_devices;
  43. }
  44. }
  45. /* search for MAS instances on remote device */
  46. static void get_remote_mas_instances_p(int argc, const char **argv)
  47. {
  48. bt_bdaddr_t addr;
  49. RETURN_IF_NULL(if_mce);
  50. VERIFY_ADDR_ARG(2, &addr);
  51. EXEC(if_mce->get_remote_mas_instances, &addr);
  52. }
  53. static struct method methods[] = {
  54. STD_METHOD(init),
  55. STD_METHODCH(get_remote_mas_instances, "<addr>"),
  56. END_METHOD
  57. };
  58. const struct interface mce_if = {
  59. .name = "mce",
  60. .methods = methods
  61. };