| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* SPDX-License-Identifier: LGPL-2.1-or-later */
- /*
- *
- * BlueZ - Bluetooth protocol stack for Linux
- *
- * Copyright (C) 2011-2014 Intel Corporation
- * Copyright (C) 2002-2010 Marcel Holtmann <marcel@holtmann.org>
- *
- *
- */
- #define RFCOMM_SABM 0x2f
- #define RFCOMM_DISC 0x43
- #define RFCOMM_UA 0x63
- #define RFCOMM_DM 0x0f
- #define RFCOMM_UIH 0xef
- #define RFCOMM_GET_TYPE(control) ((control) & 0xef)
- #define RFCOMM_GET_DLCI(address) ((address & 0xfc) >> 2)
- #define RFCOMM_GET_CHANNEL(address) ((address & 0xf8) >> 3)
- #define RFCOMM_GET_DIR(address) ((address & 0x04) >> 2)
- #define RFCOMM_TEST_EA(length) ((length & 0x01))
- struct rfcomm_hdr {
- uint8_t address;
- uint8_t control;
- uint8_t length;
- } __attribute__((packed));
- struct rfcomm_cmd {
- uint8_t address;
- uint8_t control;
- uint8_t length;
- uint8_t fcs;
- } __attribute__((packed));
- #define RFCOMM_TEST 0x08
- #define RFCOMM_FCON 0x28
- #define RFCOMM_FCOFF 0x18
- #define RFCOMM_MSC 0x38
- #define RFCOMM_RPN 0x24
- #define RFCOMM_RLS 0x14
- #define RFCOMM_PN 0x20
- #define RFCOMM_NSC 0x04
- #define RFCOMM_TEST_CR(type) ((type & 0x02))
- #define RFCOMM_GET_MCC_TYPE(type) ((type & 0xfc) >> 2)
- struct rfcomm_mcc {
- uint8_t type;
- uint8_t length;
- } __attribute__((packed));
- struct rfcomm_msc {
- uint8_t dlci;
- uint8_t v24_sig;
- } __attribute__((packed));
- struct rfcomm_pn {
- uint8_t dlci;
- uint8_t flow_ctrl;
- uint8_t priority;
- uint8_t ack_timer;
- uint16_t mtu;
- uint8_t max_retrans;
- uint8_t credits;
- } __attribute__((packed));
|