rfcomm.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. *
  4. * BlueZ - Bluetooth protocol stack for Linux
  5. *
  6. * Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
  7. * Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
  8. *
  9. *
  10. */
  11. #ifndef __RFCOMM_H
  12. #define __RFCOMM_H
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #include <sys/socket.h>
  17. /* RFCOMM defaults */
  18. #define RFCOMM_DEFAULT_MTU 127
  19. #define RFCOMM_PSM 3
  20. /* RFCOMM socket address */
  21. struct sockaddr_rc {
  22. sa_family_t rc_family;
  23. bdaddr_t rc_bdaddr;
  24. uint8_t rc_channel;
  25. };
  26. /* RFCOMM socket options */
  27. #define RFCOMM_CONNINFO 0x02
  28. struct rfcomm_conninfo {
  29. uint16_t hci_handle;
  30. uint8_t dev_class[3];
  31. };
  32. #define RFCOMM_LM 0x03
  33. #define RFCOMM_LM_MASTER 0x0001
  34. #define RFCOMM_LM_AUTH 0x0002
  35. #define RFCOMM_LM_ENCRYPT 0x0004
  36. #define RFCOMM_LM_TRUSTED 0x0008
  37. #define RFCOMM_LM_RELIABLE 0x0010
  38. #define RFCOMM_LM_SECURE 0x0020
  39. /* RFCOMM TTY support */
  40. #define RFCOMM_MAX_DEV 256
  41. #define RFCOMMCREATEDEV _IOW('R', 200, int)
  42. #define RFCOMMRELEASEDEV _IOW('R', 201, int)
  43. #define RFCOMMGETDEVLIST _IOR('R', 210, int)
  44. #define RFCOMMGETDEVINFO _IOR('R', 211, int)
  45. struct rfcomm_dev_req {
  46. int16_t dev_id;
  47. uint32_t flags;
  48. bdaddr_t src;
  49. bdaddr_t dst;
  50. uint8_t channel;
  51. };
  52. #define RFCOMM_REUSE_DLC 0
  53. #define RFCOMM_RELEASE_ONHUP 1
  54. #define RFCOMM_HANGUP_NOW 2
  55. #define RFCOMM_TTY_ATTACHED 3
  56. struct rfcomm_dev_info {
  57. int16_t id;
  58. uint32_t flags;
  59. uint16_t state;
  60. bdaddr_t src;
  61. bdaddr_t dst;
  62. uint8_t channel;
  63. };
  64. struct rfcomm_dev_list_req {
  65. uint16_t dev_num;
  66. struct rfcomm_dev_info dev_info[0];
  67. };
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71. #endif /* __RFCOMM_H */