mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-07-04 05:06:58 -04:00
362 lines
22 KiB
C
362 lines
22 KiB
C
/*****< rfcommt.h >************************************************************/
|
|
/* Copyright 2000 - 2014 Stonestreet One. */
|
|
/* All Rights Reserved. */
|
|
/* */
|
|
/* RFCOMMT - Bluetooth RFCOMM Type Definitions/Constants. */
|
|
/* */
|
|
/* Author: Damon Lange */
|
|
/* */
|
|
/*** MODIFICATION HISTORY *****************************************************/
|
|
/* */
|
|
/* mm/dd/yy F. Lastname Description of Modification */
|
|
/* -------- ----------- ------------------------------------------------*/
|
|
/* 09/11/00 D. Lange Initial creation. */
|
|
/******************************************************************************/
|
|
#ifndef __RFCOMMTH__
|
|
#define __RFCOMMTH__
|
|
|
|
#include "BTTypes.h"
|
|
#include "L2CAPTyp.h"
|
|
|
|
/* Bluetooth Type Definitions. */
|
|
|
|
/* The following Constant represents the RFCOMM Protocol, Protocol */
|
|
/* Service Multiplexor (PSM) value when RFCOMM runs over the L2CAP */
|
|
/* Protocol (which is the only defined mechanism). */
|
|
#define RFCOMM_PROTOCOL_SERVICE_MULTIPLEXOR 0x03
|
|
|
|
/* The following Constants represent the defined Bluetooth RFCOMM */
|
|
/* Server Channel ID Minimum and Maximum Values. */
|
|
#define RFCOMM_MINIMUM_SERVER_CHANNEL_ID 0x01
|
|
#define RFCOMM_MAXIMUM_SERVER_CHANNEL_ID 0x1E
|
|
|
|
/* The following MACRO is a utility MACRO that exists to aid code */
|
|
/* readability of testing whether or not a specified Server Channel */
|
|
/* ID Value is valid. The first parameter to this MACRO is the */
|
|
/* Server Channel ID Value to verify. This MACRO returns a boolean */
|
|
/* value based upon whether or not the specified Server Channel ID */
|
|
/* Value is valid. This MACRO returns a boolean TRUE if the */
|
|
/* specified Server Channel ID is valid, or a boolean FALSE if the */
|
|
/* specified Server Channel ID Value is invalid. */
|
|
#define RFCOMM_VALID_SERVER_CHANNEL_ID(_x) (((_x) >= RFCOMM_MINIMUM_SERVER_CHANNEL_ID) && ((_x) <= RFCOMM_MAXIMUM_SERVER_CHANNEL_ID))
|
|
|
|
/* The following Constants represent the defined Bluetooth RFCOMM */
|
|
/* Server Channel ID Minimum and Maximum Values. */
|
|
#define RFCOMM_MINIMUM_DLCI (RFCOMM_MINIMUM_SERVER_CHANNEL_ID << 1)
|
|
#define RFCOMM_MAXIMUM_DLCI (RFCOMM_MAXIMUM_SERVER_CHANNEL_ID << 1)
|
|
|
|
/* The following MACRO is a utility MACRO that exists to aid code */
|
|
/* readability of testing whether or not a specified DLCI Value is */
|
|
/* valid. The first parameter to this MACRO is the DLCI value to */
|
|
/* verify. This MACRO returns a boolean value based upon whether or */
|
|
/* not the specified DLCI Value is valid. This MACRO returns a */
|
|
/* boolean TRUE if the specified DLCI is valid, or a boolean FALSE */
|
|
/* if the specified DLCI Value is invalid. */
|
|
/* * NOTE * This MACRO does NOT consider the Control DLCI to be a */
|
|
/* valid DLCI Value !!!! */
|
|
#define RFCOMM_VALID_DLCI(_x) (((_x) >= RFCOMM_MINIMUM_DLCI) && ((_x) <= RFCOMM_MAXIMUM_DLCI))
|
|
|
|
/* The following specified the DLCI on which the Control Channel */
|
|
/* resides. */
|
|
#define RFCOMM_CONTROL_DLCI 0x00
|
|
#define RFCOMM_CONTROL_CHANNEL 0x00
|
|
#define RFCOMM_PENDING_CHANNEL 0xFF
|
|
|
|
#define RFCOMM_SESSION_INITIATOR 0x01
|
|
|
|
/* The following constants represent the RFCOMM Frame types that are */
|
|
/* supported. These are the base values of each command. Bit 3 of */
|
|
/* each command will have the P/F bit inserted prior to transmission.*/
|
|
/* The P/F bit is used to indicate direction. */
|
|
#define RFCOMM_FRAME_TYPE_DM 0x0F
|
|
#define RFCOMM_FRAME_TYPE_SABM 0x2F
|
|
#define RFCOMM_FRAME_TYPE_DISC 0x43
|
|
#define RFCOMM_FRAME_TYPE_UA 0x63
|
|
#define RFCOMM_FRAME_TYPE_UIH 0xEF
|
|
|
|
/* The following constants represent the Minimum, Maximum, and */
|
|
/* Default values for RFCOMM Frame Sizes (in Bytes). */
|
|
#define RFCOMM_FRAME_SIZE_MINIMUM_VALUE 23
|
|
#define RFCOMM_FRAME_SIZE_MAXIMUM_VALUE 32767
|
|
#define RFCOMM_FRAME_SIZE_DEFAULT_VALUE 127
|
|
|
|
/* The following constants represent RFCOMM Open Status. These */
|
|
/* constants represent the result of a previous Open Request. */
|
|
#define RFCOMM_CONNECT_RESULT_CONNECTION_SUCCESSFUL 0x00
|
|
#define RFCOMM_CONNECT_RESULT_CONNECTION_TIMEOUT 0x01
|
|
#define RFCOMM_CONNECT_RESULT_CONNECTION_REFUSED 0x02
|
|
|
|
/* The following constants represent RFCOMM control commands. These */
|
|
/* commands are transfered on DCLI 0, the Control Channel, to */
|
|
/* negotiate and control the operation of a DLCI */
|
|
#define RFCOMM_CONTROL_MESSAGE_NSC (0x04 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_TEST (0x08 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_RLS (0x14 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_FCOFF (0x18 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_PN (0x20 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_RPN (0x24 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_FCON (0x28 << 2)
|
|
#define RFCOMM_CONTROL_MESSAGE_MSC (0x38 << 2)
|
|
|
|
/* The following constants represent RFCOMM parametes supplied during*/
|
|
/* a port negotiation. These represent those paramters that have */
|
|
/* fixed values. */
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_USE_HIU_FRAMES 0x00
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_CFC_NOT_SUPPORTED 0x00
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_CFC_MASK 0xF0
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_CFC_SUPPORTED_REQUEST 0xF0
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_CFC_SUPPORTED_RESPONSE 0xE0
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_ACKNOWLEDGMENT_TIMER 0x00
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_NUMBER_OF_RETRANSMISSIONS 0x00
|
|
#define RFCOMM_PORT_NEGOTIATION_PARAMETER_INITIAL_CREDIT_MASK 0x07
|
|
|
|
/* The following constants reprsent the bit pattern to be used in the*/
|
|
/* Port Negotiation command. Note: The binary pattern for some */
|
|
/* parameters may be packed into a byte. The constants provided for */
|
|
/* packed parameters here represents the bit pattern that has been */
|
|
/* shifted to its proper position in the packed byte. */
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_2400 0x00
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_4800 0x01
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_7200 0x02
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_9600 0x03
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_19200 0x04
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_38400 0x05
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_57600 0x06
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_115200 0x07
|
|
#define RFCOMM_RPN_PARAMETER_BAUD_230400 0x08
|
|
|
|
#define RFCOMM_RPN_PARAMETER_DATA_FORMAT_DATA_BITS_MASK 0x03
|
|
#define RFCOMM_RPN_PARAMETER_DATA_BITS_5 0x00
|
|
#define RFCOMM_RPN_PARAMETER_DATA_BITS_6 0x02
|
|
#define RFCOMM_RPN_PARAMETER_DATA_BITS_7 0x01
|
|
#define RFCOMM_RPN_PARAMETER_DATA_BITS_8 0x03
|
|
|
|
#define RFCOMM_RPN_PARAMETER_DATA_FORMAT_STOP_BITS_MASK 0x04
|
|
#define RFCOMM_RPN_PARAMETER_STOP_BITS_1 0x00
|
|
#define RFCOMM_RPN_PARAMETER_STOP_BITS_1_5 0x04
|
|
|
|
#define RFCOMM_RPN_PARAMETER_DATA_FORMAT_PARITY_MASK 0x38
|
|
#define RFCOMM_RPN_PARAMETER_PARITY_DISABLED 0x00
|
|
#define RFCOMM_RPN_PARAMETER_PARITY_ODD 0x08
|
|
#define RFCOMM_RPN_PARAMETER_PARITY_EVEN 0x28
|
|
#define RFCOMM_RPN_PARAMETER_PARITY_MARK 0x18
|
|
#define RFCOMM_RPN_PARAMETER_PARITY_SPACE 0x38
|
|
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_MASK 0x3F
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_DISABLED 0x00
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_XON_XOFF_ON_INPUT 0x01
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_XON_XOFF_ON_OUTPUT 0x02
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_RTR_ON_INPUT 0x04
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_RTR_ON_OUTPUT 0x08
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_RTC_ON_INPUT 0x10
|
|
#define RFCOMM_RPN_PARAMETER_FLOW_CONTROL_RTC_ON_OUTPUT 0x20
|
|
|
|
#define RFCOMM_RPN_PARAMETER_DEFAULT_XON_CHARACTER 0x11
|
|
|
|
#define RFCOMM_RPN_PARAMETER_DEFAULT_XOFF_CHARACTER 0x13
|
|
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_BIT_RATE 0x0001
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_DATA_BITS 0x0002
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_STOP_BITS 0x0004
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_PARITY 0x0008
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_PARITY_TYPE 0x0010
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_XON_CHARACTER 0x0020
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_XOFF_CHARACTER 0x0040
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_XON_XOFF_ON_INPUT 0x0100
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_XON_XOFF_ON_OUTPUT 0x0200
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_RTR_ON_INPUT 0x0400
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_RTR_ON_OUTPUT 0x0800
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_RTC_ON_INPUT 0x1000
|
|
#define RFCOMM_RPN_PARAMETER_PARAMETER_MASK_NEGOTIATE_RTC_ON_OUTPUT 0x2000
|
|
|
|
/* The following constants reprsent the bit pattern to be used in the*/
|
|
/* Remote Line Status command. Note: The binary pattern for some */
|
|
/* parameters may be packed into a byte. The constants provided for */
|
|
/* packed parameters here represents the bit pattern that has been */
|
|
/* shifted to its proper position in the packed byte. */
|
|
#define RFCOMM_RLS_PARAMETER_NO_ERROR 0x00
|
|
#define RFCOMM_RLS_PARAMETER_OVERRUN_ERROR 0x03
|
|
#define RFCOMM_RLS_PARAMETER_PARITY_ERROR 0x05
|
|
#define RFCOMM_RLS_PARAMETER_FRAMING_ERROR 0x09
|
|
|
|
/* The following constants reprsent the bit masks to be used in the */
|
|
/* Modem Status command. Note: The binary pattern for some */
|
|
/* parameters may be packed into a byte. The constants provided for */
|
|
/* packed parameters here represents the bit pattern that has been */
|
|
/* shifted to its proper position in the packed byte. */
|
|
#define RFCOMM_MSC_PARAMETER_FC_BIT 0x02
|
|
#define RFCOMM_MSC_PARAMETER_RTC_BIT 0x04
|
|
#define RFCOMM_MSC_PARAMETER_RTR_BIT 0x08
|
|
#define RFCOMM_MSC_PARAMETER_IC_BIT 0x40
|
|
#define RFCOMM_MSC_PARAMETER_DV_BIT 0x80
|
|
#define RFCOMM_MSC_PARAMETER_BREAK_SIGNAL_PRESENT 0x02
|
|
|
|
/* The following constants represent the RFCOMM Break Signal Timeout */
|
|
/* Interval, Maximum, and Minimum values. */
|
|
/* * NOTE * The Break Timeout Internval is specified in Milliseconds.*/
|
|
#define RFCOMM_BREAK_TIMEOUT_INTERVAL 0xC8
|
|
|
|
#define RFCOMM_BREAK_SIGNAL_DETECTED 0x00
|
|
#define RFCOMM_BREAK_SIGNAL_MINIMUM 0x00
|
|
#define RFCOMM_BREAK_SIGNAL_MAXIMUM 0x0F
|
|
|
|
/* RFCOMM SDP Protocol UUID's. */
|
|
|
|
/* The following MACRO is a utility MACRO that assigns the RFCOMM */
|
|
/* Bluetooth Universally Unique Identifier (RFCOMM_UUID_16) to the */
|
|
/* specified UUID_16_t variable. This MACRO accepts one parameter */
|
|
/* which is the UUID_16_t variable that is receive the RFCOMM_UUID_16*/
|
|
/* Constant value. */
|
|
#define SDP_ASSIGN_RFCOMM_UUID_16(_x) ASSIGN_SDP_UUID_16((_x), 0x00, 0x03)
|
|
|
|
/* The following MACRO is a utility MACRO that assigns the RFCOMM */
|
|
/* Bluetooth Universally Unique Identifier (RFCOMM_UUID_32) to the */
|
|
/* specified UUID_32_t variable. This MACRO accepts one parameter */
|
|
/* which is the UUID_32_t variable that is receive the RFCOMM_UUID_32*/
|
|
/* Constant value. */
|
|
#define SDP_ASSIGN_RFCOMM_UUID_32(_x) ASSIGN_SDP_UUID_32((_x), 0x00, 0x00, 0x00, 0x03)
|
|
|
|
/* The following MACRO is a utility MACRO that assigns the RFCOMM */
|
|
/* Bluetooth Universally Unique Identifier (RFCOMM_UID_128) to the */
|
|
/* specified UUID_128_t variable. This MACRO accepts one parameter */
|
|
/* which is the UUID_128_t variable that is receive the */
|
|
/* RFCOMM_UUID_128 Constant value. */
|
|
#define SDP_ASSIGN_RFCOMM_UUID_128(_x) ASSIGN_SDP_UUID_128((_x), 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB)
|
|
|
|
/* The following definition is the assigned Bluetooth RFCOMM Server */
|
|
/* Protocol Name. */
|
|
#define RFCOMM_SERVER_PROTOCOL_NAME "com.bt"
|
|
|
|
/* The following Constants represent the defined Bluetooth RFCOMM */
|
|
/* Option Type Designator Values. */
|
|
#define RFCOMM_OPEN_PARAMS_OPTION_TYPE_MAX_FRAME_SIZE 0x01
|
|
#define RFCOMM_OPEN_PARAMS_OPTION_TYPE_INITIAL_CREDITS 0x02
|
|
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_Frame_Header_t
|
|
{
|
|
NonAlignedByte_t Address;
|
|
NonAlignedByte_t Control;
|
|
} __PACKED_STRUCT_END__ RFCOMM_Frame_Header_t;
|
|
|
|
#define RFCOMM_FRAME_HEADER_SIZE (sizeof(RFCOMM_Frame_Header_t))
|
|
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_Control_Frame_t
|
|
{
|
|
RFCOMM_Frame_Header_t FrameHeader;
|
|
NonAlignedByte_t Length;
|
|
NonAlignedByte_t FCS;
|
|
} __PACKED_STRUCT_END__ RFCOMM_Control_Frame_t;
|
|
|
|
#define RFCOMM_CONTROL_FRAME_SIZE (sizeof(RFCOMM_Control_Frame_t))
|
|
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_Control_Frame_2_Byte_Length_t
|
|
{
|
|
RFCOMM_Frame_Header_t FrameHeader;
|
|
NonAlignedByte_t FrameLengthLow;
|
|
NonAlignedByte_t FrameLengthHigh;
|
|
NonAlignedByte_t FCS;
|
|
} __PACKED_STRUCT_END__ RFCOMM_Control_Frame_2_Byte_Length_t;
|
|
|
|
#define RFCOMM_CONTROL_FRAME_2_BYTE_LENGTH_SIZE (sizeof(RFCOMM_Control_Frame_2_Byte_Length_t))
|
|
|
|
/* A UIH Frame can have a varying amount of data. The UIH Frame must*/
|
|
/* not exceed the Maximum Frame Size that was set when the */
|
|
/* Connection was negotiated. */
|
|
/* * NOTE * The FCS Member in this structure should NOT be used to */
|
|
/* access the FCS value. It's place in this structure is */
|
|
/* ONLY to show the programmer that the FCS Member follows */
|
|
/* the Variable Data Member which is of varying length. */
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_UIH_Frame_Header_t
|
|
{
|
|
RFCOMM_Frame_Header_t FrameHeader;
|
|
NonAlignedByte_t FrameLengthLow;
|
|
NonAlignedByte_t FrameLengthHigh;
|
|
NonAlignedByte_t Variable_Data[1];
|
|
NonAlignedByte_t FCS;
|
|
} __PACKED_STRUCT_END__ RFCOMM_UIH_Frame_Header_t;
|
|
|
|
/* A UIH Frame can have a varying amount of data. The UIH frame must*/
|
|
/* not exceed the Maximum Frame Size that was set when the connection*/
|
|
/* was negotiated. */
|
|
/* * NOTE * The FCS Member in this structure should NOT be used to */
|
|
/* access the FCS value. It's place in this structure is */
|
|
/* ONLY to show the programmer that the FCS Member follows */
|
|
/* the Variable Data Member which is of varying length. */
|
|
#define RFCOMM_UIH_FRAME_SIZE(_x) (sizeof(RFCOMM_UIH_Frame_Header_t)-sizeof(NonAlignedByte_t)+(unsigned int)(_x))
|
|
|
|
/* A UIH Frame can have a varying amount of data. The UIH frame must*/
|
|
/* not exceed the Maximum Frame Size that was set when the connection*/
|
|
/* was negotiated. This MACRO is a utility MACRO that returns the */
|
|
/* size of the UIH Frame Header that goes before the UIH Frame Data. */
|
|
#define RFCOMM_UIH_FRAME_HEADER_SIZE (sizeof(RFCOMM_UIH_Frame_Header_t)-sizeof(NonAlignedByte_t)-sizeof(NonAlignedByte_t))
|
|
|
|
/* The following structure is used when sending UIH Message over the */
|
|
/* Control Channel. This is different from the above structure in */
|
|
/* that the length of the data that is sent in this frame can be held*/
|
|
/* in a single byte. This also includes a Type field that is used to*/
|
|
/* indicate the type of control information that is contained in the */
|
|
/* message. */
|
|
/* * NOTE * The FCS Member in this structure should NOT be used to */
|
|
/* access the FCS value. It's place in this structure is */
|
|
/* ONLY to show the programmer that the FCS Member follows */
|
|
/* the Variable Data Member which is of varying length. */
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_UIH_Message_Header_t
|
|
{
|
|
RFCOMM_Frame_Header_t FrameHeader;
|
|
NonAlignedByte_t FrameLength;
|
|
NonAlignedByte_t Type;
|
|
NonAlignedWord_t Length;
|
|
NonAlignedByte_t Variable_Data[1];
|
|
NonAlignedByte_t FCS;
|
|
} __PACKED_STRUCT_END__ RFCOMM_UIH_Message_Header_t;
|
|
|
|
/* A UIH Message have a varying amount of data. The UIH message must*/
|
|
/* not exceed the Maximum Frame Size that was set when the connection*/
|
|
/* was negotiated. NOTE: The FCS field was added to the structure to*/
|
|
/* indiacte that this extra byte is contained in the frame. However,*/
|
|
/* the FCS fields should not be used to access the FCS byte since it */
|
|
/* will be in a variable position within the frame due to that */
|
|
/* variable size of the data. */
|
|
#define RFCOMM_UIH_MESSAGE_SIZE(_x) (sizeof(RFCOMM_UIH_Message_Header_t)-sizeof(NonAlignedByte_t)+(unsigned int)(_x))
|
|
|
|
/* A UIH Message can have a varying amount of data. The UIH Message */
|
|
/* must not exceed the Maximum Frame Size that was set when the */
|
|
/* connection was negotiated. This MACRO is a utility MACRO that */
|
|
/* returns the size of the UIH Message Header that goes before the */
|
|
/* UIH Message Data. */
|
|
#define RFCOMM_UIH_MESSAGE_HEADER_SIZE (sizeof(RFCOMM_UIH_Message_Header_t)-sizeof(NonAlignedByte_t)-sizeof(NonAlignedByte_t))
|
|
|
|
/* The following structure contains the Remote Negotiation */
|
|
/* Parameters that are used with the DLCI Parameter Negotiation */
|
|
/* Command (PN). */
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_PN_Message_Data_t
|
|
{
|
|
NonAlignedByte_t DLCI;
|
|
NonAlignedByte_t FlowType;
|
|
NonAlignedByte_t Priority;
|
|
NonAlignedByte_t AcknowledgementTimer;
|
|
NonAlignedWord_t FrameSize;
|
|
NonAlignedByte_t Retransmission;
|
|
NonAlignedByte_t Credits;
|
|
} __PACKED_STRUCT_END__ RFCOMM_PN_Message_Data_t;
|
|
|
|
#define RFCOMM_PN_MESSAGE_DATA_SIZE (sizeof(RFCOMM_PN_Message_Data_t))
|
|
|
|
/* The following structure contains the Remote Negotiation */
|
|
/* Parameters that are used with the Remote Port Negotiation Command */
|
|
/* (RPN). */
|
|
typedef __PACKED_STRUCT_BEGIN__ struct _tagRFCOMM_RPN_Message_Data_t
|
|
{
|
|
NonAlignedByte_t DLCI;
|
|
NonAlignedByte_t BaudRate;
|
|
NonAlignedByte_t DataFormat;
|
|
NonAlignedByte_t FlowControl;
|
|
NonAlignedByte_t XOnCharacter;
|
|
NonAlignedByte_t XOffCharacter;
|
|
NonAlignedWord_t ParameterMask;
|
|
} __PACKED_STRUCT_END__ RFCOMM_RPN_Message_Data_t;
|
|
|
|
#define RFCOMM_RPN_MESSAGE_DATA_SIZE (sizeof(RFCOMM_RPN_Message_Data_t))
|
|
|
|
#endif
|