@@ -1674,8 +1674,8 @@ static void vs_read_supported_commands(struct net_buf *buf,
1674
1674
/* Set Version Information, Supported Commands, Supported Features. */
1675
1675
rp -> commands [0 ] |= BIT (0 ) | BIT (1 ) | BIT (2 );
1676
1676
#if defined(CONFIG_BT_CTLR_HCI_VS_EXT )
1677
- /* Write BD_ADDR */
1678
- rp -> commands [0 ] |= BIT (5 );
1677
+ /* Write BD_ADDR, Read Build Info */
1678
+ rp -> commands [0 ] |= BIT (5 ) | BIT ( 7 ) ;
1679
1679
/* Read Static Addresses, Read Key Hierarchy Roots */
1680
1680
rp -> commands [1 ] |= BIT (0 ) | BIT (1 );
1681
1681
#endif /* CONFIG_BT_CTLR_HCI_VS_EXT */
@@ -1704,6 +1704,29 @@ static void vs_write_bd_addr(struct net_buf *buf, struct net_buf **evt)
1704
1704
ccst -> status = 0x00 ;
1705
1705
}
1706
1706
1707
+ static void vs_read_build_info (struct net_buf * buf , struct net_buf * * evt )
1708
+ {
1709
+ struct bt_hci_rp_vs_read_build_info * rp ;
1710
+
1711
+ #define BUILD_TIMESTAMP " " __DATE__ " " __TIME__
1712
+
1713
+ #define HCI_VS_BUILD_INFO "Zephyr OS v" \
1714
+ KERNEL_VERSION_STRING BUILD_TIMESTAMP CONFIG_BT_CTLR_HCI_VS_BUILD_INFO
1715
+
1716
+ const char build_info [] = HCI_VS_BUILD_INFO ;
1717
+
1718
+ #define BUILD_INFO_EVT_LEN (sizeof(struct bt_hci_evt_hdr) + \
1719
+ sizeof(struct bt_hci_evt_cmd_complete) + \
1720
+ sizeof(struct bt_hci_rp_vs_read_build_info) + \
1721
+ sizeof(build_info))
1722
+
1723
+ BUILD_ASSERT (CONFIG_BT_RX_BUF_LEN >= BUILD_INFO_EVT_LEN );
1724
+
1725
+ rp = cmd_complete (evt , sizeof (* rp ) + sizeof (build_info ));
1726
+ rp -> status = 0x00 ;
1727
+ memcpy (rp -> info , build_info , sizeof (build_info ));
1728
+ }
1729
+
1707
1730
static void vs_read_static_addrs (struct net_buf * buf , struct net_buf * * evt )
1708
1731
{
1709
1732
struct bt_hci_rp_vs_read_static_addrs * rp ;
@@ -1809,6 +1832,10 @@ static int vendor_cmd_handle(u16_t ocf, struct net_buf *cmd,
1809
1832
break ;
1810
1833
1811
1834
#if defined(CONFIG_BT_CTLR_HCI_VS_EXT )
1835
+ case BT_OCF (BT_HCI_OP_VS_READ_BUILD_INFO ):
1836
+ vs_read_build_info (cmd , evt );
1837
+ break ;
1838
+
1812
1839
case BT_OCF (BT_HCI_OP_VS_WRITE_BD_ADDR ):
1813
1840
vs_write_bd_addr (cmd , evt );
1814
1841
break ;
0 commit comments