monitor: Add packet definitions for MSFT extension
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 12 Oct 2021 22:48:11 +0000 (15:48 -0700)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:37 +0000 (19:08 +0530)
This adds proper packet definitions for command and response of MSFT
extension.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
monitor/msft.h

index a268f4b..7969253 100644 (file)
 
 #include <stdint.h>
 
+#define MSFT_SUBCMD_READ_SUPPORTED_FEATURES    0x00
+
+struct msft_cmd_read_supported_features {
+       uint8_t subcmd;
+} __attribute__((packed));
+
+struct msft_rsp_read_supported_features {
+       uint8_t  status;
+       uint8_t  subcmd;
+       uint8_t  features[8];
+       uint8_t  evt_prefix_len;
+       uint8_t  evt_prefix[];
+} __attribute__((packed));
+
+#define MSFT_SUBCMD_MONITOR_RSSI               0x01
+
+struct msft_cmd_monitor_rssi {
+       uint8_t  subcmd;
+       uint16_t handle;
+       int8_t   rssi_high;
+       int8_t   rssi_low;
+       uint8_t  rssi_low_interval;
+       uint8_t  rssi_period;
+} __attribute__((packed));
+
+struct msft_rsp_monitor_rssi {
+       uint8_t  status;
+       uint8_t  subcmd;
+} __attribute__((packed));
+
+#define MSFT_SUBCMD_CANCEL_MONITOR_RSSI                0x02
+
+struct msft_cmd_cancel_monitor_rssi {
+       uint8_t  subcmd;
+       uint16_t handle;
+} __attribute__((packed));
+
+struct msft_rsp_cancel_monitor_rssi {
+       uint8_t  status;
+       uint8_t  subcmd;
+} __attribute__((packed));
+
+#define MSFT_SUBCMD_LE_MONITOR_ADV             0x03
+
+#define MSFT_LE_MONITOR_ADV_PATTERN            0x01
+struct msft_le_monitor_pattern {
+       uint8_t  len;
+       uint8_t  type;
+       uint8_t  start;
+       uint8_t  data[];
+} __attribute__((packed));
+
+struct msft_le_monitor_adv_patterns {
+       uint8_t num;
+       struct msft_le_monitor_pattern data[];
+} __attribute__((packed));
+
+#define MSFT_LE_MONITOR_ADV_UUID               0x02
+struct msft_le_monitor_adv_uuid {
+       uint8_t  type;
+       union {
+               uint16_t u16;
+               uint32_t u32;
+               uint8_t  u128[8];
+       } value;
+} __attribute__((packed));
+
+#define MSFT_LE_MONITOR_ADV_IRK                        0x03
+struct msft_le_monitor_adv_irk {
+       uint8_t  irk[8];
+} __attribute__((packed));
+
+#define MSFT_LE_MONITOR_ADV_ADDR               0x04
+struct msft_le_monitor_adv_addr {
+       uint8_t  type;
+       uint8_t  addr[6];
+} __attribute__((packed));
+
+struct msft_cmd_le_monitor_adv {
+       uint8_t  subcmd;
+       int8_t   rssi_high;
+       int8_t   rssi_low;
+       uint8_t  rssi_low_interval;
+       uint8_t  rssi_period;
+       uint8_t  type;
+       uint8_t  data[];
+} __attribute__((packed));
+
+struct msft_rsp_le_monitor_adv {
+       uint8_t  status;
+       uint8_t  subcmd;
+       uint8_t  handle;
+} __attribute__((packed));
+
+#define MSFT_SUBCMD_LE_CANCEL_MONITOR_ADV      0x04
+
+struct msft_cmd_le_cancel_monitor_adv {
+       uint8_t  subcmd;
+       uint8_t  handle;
+} __attribute__((packed));
+
+struct msft_rsp_le_cancel_monitor_adv {
+       uint8_t  status;
+       uint8_t  subcmd;
+} __attribute__((packed));
+
+#define MSFT_SUBCMD_LE_MONITOR_ADV_ENABLE      0x05
+
+struct msft_cmd_le_monitor_adv_enable {
+       uint8_t  subcmd;
+       uint8_t  enable;
+} __attribute__((packed));
+
+struct msft_rsp_le_monitor_adv_enable {
+       uint8_t  status;
+       uint8_t  subcmd;
+} __attribute__((packed));
+
+#define MSFT_SUBCMD_READ_ABS_RSSI              0x06
+
+struct msft_cmd_read_abs_rssi {
+       uint8_t  subcmd;
+       uint16_t handle;
+} __attribute__((packed));
+
+struct msft_rsp_read_abs_rssi {
+       uint8_t  status;
+       uint8_t  subcmd;
+       uint16_t handle;
+       int8_t  rssi;
+} __attribute__((packed));
+
+#define MSFT_SUBEVT_RSSI                       0x01
+
+struct msft_evt_rssi {
+       uint8_t  subevt;
+       uint8_t  status;
+       uint16_t handle;
+       int8_t  rssi;
+} __attribute__((packed));
+
+#define MSFT_SUBEVT_MONITOR_DEVICE             0x02
+
+struct msft_evt_monitor_device {
+       uint8_t  subevt;
+       uint8_t  addr_type;
+       uint8_t  addr[6];
+       uint8_t  handle;
+       uint8_t  state;
+} __attribute__((packed));
+
 struct vendor_ocf;
 struct vendor_evt;