+#endif\r
+}\r
+\r
+static inline void Bluetooth_SignalPacket_InformationRequest(Bluetooth_ACL_Header_t* ACLPacketHeader,\r
+ Bluetooth_DataPacket_Header_t* DataHeader,\r
+ Bluetooth_SignalCommand_Header_t* SignalCommandHeader)\r
+{\r
+ Bluetooth_SignalCommand_InformationRequest_t InformationRequest;\r
+\r
+ Pipe_Read_Stream_LE(&InformationRequest, sizeof(InformationRequest));\r
+\r
+#if (ACL_DEBUG_LEVEL > 0)\r
+ BT_ACL_DEBUG("<< Information Request", NULL);\r
+#endif\r
+#if (ACL_DEBUG_LEVEL > 1)\r
+ BT_ACL_DEBUG("-- Info Type: 0x%04X", InformationRequest.InfoType);\r
+#endif\r
+ \r
+ Pipe_ClearIN();\r
+ Pipe_Freeze();\r
+ Pipe_SelectPipe(BLUETOOTH_DATA_OUT_PIPE);\r
+ Pipe_Unfreeze();\r
+ \r
+ Bluetooth_SignalCommand_InformationResponse_t InformationResponse;\r
+ uint8_t ResponseData[4];\r
+ uint8_t ResponseLen;\r
+\r
+ switch (InformationRequest.InfoType)\r
+ {\r
+ case BT_INFOREQ_MTU: \r
+ InformationResponse.Result = BT_INFORMATION_SUCCESSFUL;\r
+ ResponseLen = 2;\r
+ \r
+ *((uint16_t*)&ResponseData) = 65533;\r
+ break;\r
+ case BT_INFOREQ_EXTENDEDFEATURES:\r
+ InformationResponse.Result = BT_INFORMATION_SUCCESSFUL;\r
+ ResponseLen = 4;\r
+ \r
+ *((uint32_t*)&ResponseData) = 0;\r
+ break;\r
+ default:\r
+ InformationResponse.Result = BT_INFORMATION_NOTSUPPORTED;\r
+ ResponseLen = 0;\r
+ break;\r
+ }\r
+ \r
+ ACLPacketHeader->DataLength = sizeof(*DataHeader) + sizeof(*SignalCommandHeader) + sizeof(InformationResponse) +\r
+ ResponseLen;\r
+ DataHeader->PayloadLength = sizeof(*SignalCommandHeader) + sizeof(InformationResponse) + ResponseLen;\r
+ DataHeader->DestinationChannel = BT_CHANNEL_SIGNALING;\r
+ SignalCommandHeader->Code = BT_SIGNAL_INFORMATION_RESPONSE;\r
+ SignalCommandHeader->Length = sizeof(InformationResponse) + ResponseLen;\r
+ \r
+ Pipe_Write_Stream_LE(ACLPacketHeader, sizeof(*ACLPacketHeader));\r
+ Pipe_Write_Stream_LE(DataHeader, sizeof(*DataHeader));\r
+ Pipe_Write_Stream_LE(SignalCommandHeader, sizeof(*SignalCommandHeader));\r
+ Pipe_Write_Stream_LE(&InformationResponse, sizeof(InformationResponse));\r
+ Pipe_Write_Stream_LE(ResponseData, ResponseLen);\r
+ \r
+ Pipe_ClearOUT(); \r
+ Pipe_Freeze();\r
+\r
+#if (ACL_DEBUG_LEVEL > 1)\r
+ BT_ACL_DEBUG("Packet Sent", NULL);\r
+ BT_ACL_DEBUG("-- Connection Handle: 0x%04X", (ACLPacketHeader->ConnectionHandle & 0x0FFF));\r
+ BT_ACL_DEBUG("-- Data Length: 0x%04X", ACLPacketHeader->DataLength);\r
+ BT_ACL_DEBUG("-- Destination Channel: 0x%04X", DataHeader->DestinationChannel);\r
+ BT_ACL_DEBUG("-- Payload Length: 0x%04X", DataHeader->PayloadLength); \r
+#endif\r
+#if (ACL_DEBUG_LEVEL > 0)\r
+ BT_ACL_DEBUG(">> L2CAP Information Response", NULL); \r
+#endif\r
+#if (ACL_DEBUG_LEVEL > 1)\r
+ BT_ACL_DEBUG("-- Result: 0x%02X", InformationResponse.Result);\r
+#endif\r