X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/b522e35965ab19206ab76f83026fb42f052a2d92..a8871c7fba73307226bd13e2cad4c840c850e6f1:/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h diff --git a/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h b/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h index 18592ec1c..2df8c225d 100644 --- a/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h +++ b/Demos/Host/Incomplete/BluetoothHost/Lib/SDP.h @@ -60,14 +60,6 @@ #define SDP_PDU_SERVICEATTRIBUTERESPONSE 0x05 #define SDP_PDU_SERVICESEARCHATTRIBUTEREQUEST 0x06 #define SDP_PDU_SERVICESEARCHATTRIBUTERESPONSE 0x07 - - /** Convenience macro - read a pointer out of PROGMEM space. - * - * \param[in] x Address of the pointer to read - * - * \return Pointer retrieved from PROGMEM space - */ - #define pgm_read_ptr(x) (void*)pgm_read_word(x) /* Enums: */ /** Data sizes for SDP Data Element headers, to indicate the size of the data contained in the element. When creating @@ -118,7 +110,8 @@ * \param[in, out] BufferPos Current position in the buffer where the data is to be written to * \param[in] Data Data to write to the buffer */ - static inline void SDP_WriteData8(void** BufferPos, uint8_t Data) + static inline void SDP_WriteData8(void** BufferPos, + const uint8_t Data) { *((uint8_t*)*BufferPos) = Data; *BufferPos += sizeof(uint8_t); @@ -129,7 +122,8 @@ * \param[in, out] BufferPos Current position in the buffer where the data is to be written to * \param[in] Data Data to write to the buffer */ - static inline void SDP_WriteData16(void** BufferPos, uint16_t Data) + static inline void SDP_WriteData16(void** BufferPos, + const uint16_t Data) { *((uint16_t*)*BufferPos) = SwapEndian_16(Data); *BufferPos += sizeof(uint16_t); @@ -140,13 +134,14 @@ * \param[in, out] BufferPos Current position in the buffer where the data is to be written to * \param[in] Data Data to write to the buffer */ - static inline void SDP_WriteData32(void** BufferPos, uint32_t Data) + static inline void SDP_WriteData32(void** BufferPos, + const uint32_t Data) { *((uint32_t*)*BufferPos) = SwapEndian_32(Data); *BufferPos += sizeof(uint32_t); } - /** Reads 8 bits of raw data frpm the given buffer, incrementing the buffer position afterwards. + /** Reads 8 bits of raw data from the given buffer, incrementing the buffer position afterwards. * * \param[in, out] BufferPos Current position in the buffer where the data is to be read from * @@ -154,13 +149,13 @@ */ static inline uint8_t SDP_ReadData8(const void** BufferPos) { - uint8_t Data = *((uint8_t*)*BufferPos); + uint8_t Data = *((const uint8_t*)*BufferPos); *BufferPos += sizeof(uint8_t); return Data; } - /** Reads 16 bits of raw data frpm the given buffer, incrementing the buffer position afterwards. + /** Reads 16 bits of raw data from the given buffer, incrementing the buffer position afterwards. * * \param[in, out] BufferPos Current position in the buffer where the data is to be read from * @@ -168,13 +163,13 @@ */ static inline uint16_t SDP_ReadData16(const void** BufferPos) { - uint16_t Data = SwapEndian_16(*((uint16_t*)*BufferPos)); + uint16_t Data = SwapEndian_16(*((const uint16_t*)*BufferPos)); *BufferPos += sizeof(uint16_t); return Data; } - /** Reads 32 bits of raw data frpm the given buffer, incrementing the buffer position afterwards. + /** Reads 32 bits of raw data from the given buffer, incrementing the buffer position afterwards. * * \param[in, out] BufferPos Current position in the buffer where the data is to be read from * @@ -182,7 +177,7 @@ */ static inline uint32_t SDP_ReadData32(const void** BufferPos) { - uint32_t Data = SwapEndian_32(*((uint32_t*)*BufferPos)); + uint32_t Data = SwapEndian_32(*((const uint32_t*)*BufferPos)); *BufferPos += sizeof(uint32_t); return Data; @@ -198,7 +193,7 @@ * * \param[in, out] BufferPos Pointer to a buffer where the container header is to be placed * - * \return Pointer to the 16-bit size value of the contaner header, which has been pre-zeroed + * \return Pointer to the 16-bit size value of the container header, which has been pre-zeroed */ static inline uint16_t* SDP_AddSequence16(void** BufferPos) { @@ -211,29 +206,44 @@ } /* Function Prototypes: */ - void SDP_Initialize(void); - void SDP_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel); + void SDP_ProcessPacket(void* Data, + Bluetooth_Channel_t* const Channel); #if defined(INCLUDE_FROM_SERVICEDISCOVERYPROTOCOL_C) - static void SDP_ProcessServiceSearch(const SDP_PDUHeader_t* const SDPHeader, Bluetooth_Channel_t* const Channel); - static void SDP_ProcessServiceAttribute(const SDP_PDUHeader_t* const SDPHeader, Bluetooth_Channel_t* const Channel); - static void SDP_ProcessServiceSearchAttribute(const SDP_PDUHeader_t* const SDPHeader, Bluetooth_Channel_t* const Channel); - - static uint16_t SDP_AddListedAttributesToResponse(const ServiceAttributeTable_t* AttributeTable, uint16_t AttributeList[][2], - const uint8_t TotalAttributes, void** const BufferPos); - static uint16_t SDP_AddAttributeToResponse(const uint16_t AttributeID, const void* AttributeValue, void** ResponseBuffer); - static void* SDP_GetAttributeValue(const ServiceAttributeTable_t* AttributeTable, const uint16_t AttributeID); - - static bool SDP_SearchServiceTable(uint8_t UUIDList[][UUID_SIZE_BYTES], const uint8_t TotalUUIDs, + static void SDP_ProcessServiceSearch(const SDP_PDUHeader_t* const SDPHeader, + Bluetooth_Channel_t* const Channel); + static void SDP_ProcessServiceAttribute(const SDP_PDUHeader_t* const SDPHeader, + Bluetooth_Channel_t* const Channel); + static void SDP_ProcessServiceSearchAttribute(const SDP_PDUHeader_t* const SDPHeader, + Bluetooth_Channel_t* const Channel); + + static uint16_t SDP_AddListedAttributesToResponse(const ServiceAttributeTable_t* AttributeTable, + uint16_t AttributeList[][2], + const uint8_t TotalAttributes, + void** const BufferPos); + static uint16_t SDP_AddAttributeToResponse(const uint16_t AttributeID, + const void* AttributeValue, + void** ResponseBuffer); + static void* SDP_GetAttributeValue(const ServiceAttributeTable_t* AttributeTable, + const uint16_t AttributeID); + + static bool SDP_SearchServiceTable(uint8_t UUIDList[][UUID_SIZE_BYTES], + const uint8_t TotalUUIDs, const ServiceAttributeTable_t* CurrAttributeTable); - static void SDP_CheckUUIDMatch(uint8_t UUIDList[][UUID_SIZE_BYTES], const uint8_t TotalUUIDs, bool UUIDMatch[], + static void SDP_CheckUUIDMatch(uint8_t UUIDList[][UUID_SIZE_BYTES], + const uint8_t TotalUUIDs, + uint16_t* const UUIDMatchFlags, const void* CurrAttribute); - static uint8_t SDP_GetAttributeList(uint16_t AttributeList[][2], const void** const CurrentParameter); - static uint8_t SDP_GetUUIDList(uint8_t UUIDList[][UUID_SIZE_BYTES], const void** const CurrentParameter); + static uint8_t SDP_GetAttributeList(uint16_t AttributeList[][2], + const void** const CurrentParameter); + static uint8_t SDP_GetUUIDList(uint8_t UUIDList[][UUID_SIZE_BYTES], + const void** const CurrentParameter); - static uint32_t SDP_GetLocalAttributeContainerSize(const void* const AttributeData, uint8_t* const HeaderSize); - static uint32_t SDP_GetDataElementSize(const void** const AttributeHeader, uint8_t* const ElementHeaderSize); + static uint32_t SDP_GetLocalAttributeContainerSize(const void* const AttributeData, + uint8_t* const HeaderSize); + static uint32_t SDP_GetDataElementSize(const void** const AttributeHeader, + uint8_t* const ElementHeaderSize); #endif #endif