rfcomm.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:2k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. /*
  2.  *
  3.  *  BlueZ - Bluetooth protocol stack for Linux
  4.  *
  5.  *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
  6.  *  Copyright (C) 2002-2008  Marcel Holtmann <marcel@holtmann.org>
  7.  *
  8.  *
  9.  *  This program is free software; you can redistribute it and/or modify
  10.  *  it under the terms of the GNU General Public License as published by
  11.  *  the Free Software Foundation; either version 2 of the License, or
  12.  *  (at your option) any later version.
  13.  *
  14.  *  This program is distributed in the hope that it will be useful,
  15.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *  GNU General Public License for more details.
  18.  *
  19.  *  You should have received a copy of the GNU General Public License
  20.  *  along with this program; if not, write to the Free Software
  21.  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  22.  *
  23.  */
  24. #ifndef __RFCOMM_H
  25. #define __RFCOMM_H
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29. #include <sys/socket.h>
  30. /* RFCOMM defaults */
  31. #define RFCOMM_DEFAULT_MTU 127
  32. #define RFCOMM_PSM 3
  33. #define RFCOMM_CONN_TIMEOUT (HZ * 30)
  34. #define RFCOMM_DISC_TIMEOUT (HZ * 20)
  35. /* RFCOMM socket address */
  36. struct sockaddr_rc {
  37. sa_family_t rc_family;
  38. bdaddr_t rc_bdaddr;
  39. uint8_t rc_channel;
  40. };
  41. /* RFCOMM socket options */
  42. #define RFCOMM_CONNINFO 0x02
  43. struct rfcomm_conninfo {
  44. uint16_t hci_handle;
  45. uint8_t dev_class[3];
  46. };
  47. #define RFCOMM_LM 0x03
  48. #define RFCOMM_LM_MASTER 0x0001
  49. #define RFCOMM_LM_AUTH 0x0002
  50. #define RFCOMM_LM_ENCRYPT 0x0004
  51. #define RFCOMM_LM_TRUSTED 0x0008
  52. #define RFCOMM_LM_RELIABLE 0x0010
  53. #define RFCOMM_LM_SECURE 0x0020
  54. /* RFCOMM TTY support */
  55. #define RFCOMM_MAX_DEV 256
  56. #define RFCOMMCREATEDEV _IOW('R', 200, int)
  57. #define RFCOMMRELEASEDEV _IOW('R', 201, int)
  58. #define RFCOMMGETDEVLIST _IOR('R', 210, int)
  59. #define RFCOMMGETDEVINFO _IOR('R', 211, int)
  60. struct rfcomm_dev_req {
  61. int16_t dev_id;
  62. uint32_t flags;
  63. bdaddr_t src;
  64. bdaddr_t dst;
  65. uint8_t channel;
  66. };
  67. #define RFCOMM_REUSE_DLC 0
  68. #define RFCOMM_RELEASE_ONHUP 1
  69. #define RFCOMM_HANGUP_NOW 2
  70. #define RFCOMM_TTY_ATTACHED 3
  71. struct rfcomm_dev_info {
  72. int16_t id;
  73. uint32_t flags;
  74. uint16_t state;
  75. bdaddr_t src;
  76. bdaddr_t dst;
  77. uint8_t channel;
  78. };
  79. struct rfcomm_dev_list_req {
  80. uint16_t dev_num;
  81. struct rfcomm_dev_info dev_info[0];
  82. };
  83. #ifdef __cplusplus
  84. }
  85. #endif
  86. #endif /* __RFCOMM_H */