LCOV - code coverage report
Current view: top level - zephyr/bluetooth - gap.h Coverage Total Hit
Test: new.info Lines: 93.9 % 429 403
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            1 : /** @file
       2              :  *  @brief Bluetooth Generic Access Profile defines and Assigned Numbers.
       3              :  */
       4              : 
       5              : /*
       6              :  * Copyright (c) 2019 Nordic Semiconductor ASA
       7              :  *
       8              :  * SPDX-License-Identifier: Apache-2.0
       9              :  */
      10              : 
      11              : #ifndef ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
      12              : #define ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_
      13              : 
      14              : #include <zephyr/bluetooth/byteorder.h>
      15              : #include <zephyr/sys/util_macro.h>
      16              : 
      17              : #ifdef __cplusplus
      18              : extern "C" {
      19              : #endif
      20              : 
      21              : /**
      22              :  * @brief Bluetooth Generic Access Profile defines and Assigned Numbers.
      23              :  * @defgroup bt_gap_defines Defines and Assigned Numbers
      24              :  * @ingroup bt_gap
      25              :  * @{
      26              :  */
      27              : 
      28              : /**
      29              :  * @name Company Identifiers (see Bluetooth Assigned Numbers)
      30              :  * @{
      31              :  */
      32            1 : #define BT_COMP_ID_LF           0x05f1 /**< The Linux Foundation */
      33              : /**
      34              :  * @}
      35              :  */
      36              : 
      37              : /**
      38              :  * @name EIR/AD data type definitions
      39              :  * @{
      40              :  */
      41            1 : #define BT_DATA_FLAGS                    0x01 /**< AD flags */
      42            1 : #define BT_DATA_UUID16_SOME              0x02 /**< 16-bit UUID, more available */
      43            1 : #define BT_DATA_UUID16_ALL               0x03 /**< 16-bit UUID, all listed */
      44            1 : #define BT_DATA_UUID32_SOME              0x04 /**< 32-bit UUID, more available */
      45            1 : #define BT_DATA_UUID32_ALL               0x05 /**< 32-bit UUID, all listed */
      46            1 : #define BT_DATA_UUID128_SOME             0x06 /**< 128-bit UUID, more available */
      47            1 : #define BT_DATA_UUID128_ALL              0x07 /**< 128-bit UUID, all listed */
      48            1 : #define BT_DATA_NAME_SHORTENED           0x08 /**< Shortened name */
      49            1 : #define BT_DATA_NAME_COMPLETE            0x09 /**< Complete name */
      50            1 : #define BT_DATA_TX_POWER                 0x0a /**< Tx Power */
      51            1 : #define BT_DATA_DEVICE_CLASS             0x0d /**< Class of Device */
      52            1 : #define BT_DATA_SIMPLE_PAIRING_HASH_C192 0x0e /**< Simple Pairing Hash C-192 */
      53            1 : #define BT_DATA_SIMPLE_PAIRING_RAND_C192 0x0f /**< Simple Pairing Randomizer R-192 */
      54            1 : #define BT_DATA_DEVICE_ID                0x10 /**< Device ID (Profile) */
      55            1 : #define BT_DATA_SM_TK_VALUE              0x10 /**< Security Manager TK Value */
      56            1 : #define BT_DATA_SM_OOB_FLAGS             0x11 /**< Security Manager OOB Flags */
      57            1 : #define BT_DATA_PERIPHERAL_INT_RANGE     0x12 /**< Peripheral Connection Interval Range */
      58            1 : #define BT_DATA_SOLICIT16                0x14 /**< Solicit UUIDs, 16-bit */
      59            1 : #define BT_DATA_SOLICIT128               0x15 /**< Solicit UUIDs, 128-bit */
      60            1 : #define BT_DATA_SVC_DATA16               0x16 /**< Service data, 16-bit UUID */
      61            1 : #define BT_DATA_PUB_TARGET_ADDR          0x17 /**< Public Target Address */
      62            1 : #define BT_DATA_RAND_TARGET_ADDR         0x18 /**< Random Target Address */
      63            1 : #define BT_DATA_GAP_APPEARANCE           0x19 /**< GAP appearance */
      64            1 : #define BT_DATA_ADV_INT                  0x1a /**< Advertising Interval */
      65            1 : #define BT_DATA_LE_BT_DEVICE_ADDRESS     0x1b /**< LE Bluetooth Device Address */
      66            1 : #define BT_DATA_LE_ROLE                  0x1c /**< LE Role */
      67            1 : #define BT_DATA_SIMPLE_PAIRING_HASH      0x1d /**< Simple Pairing Hash C256 */
      68            1 : #define BT_DATA_SIMPLE_PAIRING_RAND      0x1e /**< Simple Pairing Randomizer R256 */
      69            1 : #define BT_DATA_SOLICIT32                0x1f /**< Solicit UUIDs, 32-bit */
      70            1 : #define BT_DATA_SVC_DATA32               0x20 /**< Service data, 32-bit UUID */
      71            1 : #define BT_DATA_SVC_DATA128              0x21 /**< Service data, 128-bit UUID */
      72            1 : #define BT_DATA_LE_SC_CONFIRM_VALUE      0x22 /**< LE SC Confirmation Value */
      73            1 : #define BT_DATA_LE_SC_RANDOM_VALUE       0x23 /**< LE SC Random Value */
      74            1 : #define BT_DATA_URI                      0x24 /**< URI */
      75            1 : #define BT_DATA_INDOOR_POS               0x25 /**< Indoor Positioning */
      76            1 : #define BT_DATA_TRANS_DISCOVER_DATA      0x26 /**< Transport Discovery Data */
      77            1 : #define BT_DATA_LE_SUPPORTED_FEATURES    0x27 /**< LE Supported Features */
      78            1 : #define BT_DATA_CHANNEL_MAP_UPDATE_IND   0x28 /**< Channel Map Update Indication */
      79            1 : #define BT_DATA_MESH_PROV                0x29 /**< Mesh Provisioning PDU */
      80            1 : #define BT_DATA_MESH_MESSAGE             0x2a /**< Mesh Networking PDU */
      81            1 : #define BT_DATA_MESH_BEACON              0x2b /**< Mesh Beacon */
      82            1 : #define BT_DATA_BIG_INFO                 0x2c /**< BIGInfo */
      83            1 : #define BT_DATA_BROADCAST_CODE           0x2d /**< Broadcast Code */
      84            1 : #define BT_DATA_CSIS_RSI                 0x2e /**< CSIS Random Set ID type */
      85            1 : #define BT_DATA_ADV_INT_LONG             0x2f /**< Advertising Interval long */
      86            1 : #define BT_DATA_BROADCAST_NAME           0x30 /**< Broadcast Name */
      87            1 : #define BT_DATA_ENCRYPTED_AD_DATA        0x31 /**< Encrypted Advertising Data */
      88            1 : #define BT_DATA_PAWR_TIMING_INFO         0x32 /**< Periodic Advertising Response Timing Info */
      89            1 : #define BT_DATA_ESL                      0x34 /**< Electronic Shelf Label Profile */
      90            1 : #define BT_DATA_3D_INFO                  0x3D /**< 3D Information Data */
      91              : 
      92            1 : #define BT_DATA_MANUFACTURER_DATA        0xff /**< Manufacturer Specific Data */
      93              : 
      94            1 : #define BT_LE_AD_LIMITED                 0x01 /**< Limited Discoverable */
      95            1 : #define BT_LE_AD_GENERAL                 0x02 /**< General Discoverable */
      96            1 : #define BT_LE_AD_NO_BREDR                0x04 /**< BR/EDR not supported */
      97              : /**
      98              :  * @}
      99              :  */
     100              : 
     101              : /**
     102              :  * @name Appearance Values
     103              :  *
     104              :  * Last Modified on 2023-01-05
     105              :  * @{
     106              :  */
     107              : /** Generic Unknown */
     108            1 : #define BT_APPEARANCE_UNKNOWN                               0x0000
     109              : /** Generic Phone */
     110            1 : #define BT_APPEARANCE_GENERIC_PHONE                         0x0040
     111              : /** Generic Computer */
     112            1 : #define BT_APPEARANCE_GENERIC_COMPUTER                      0x0080
     113              : /** Desktop Workstation */
     114            1 : #define BT_APPEARANCE_COMPUTER_DESKTOP_WORKSTATION          0x0081
     115              : /** Server-class Computer */
     116            1 : #define BT_APPEARANCE_COMPUTER_SERVER_CLASS                 0x0082
     117              : /** Laptop */
     118            1 : #define BT_APPEARANCE_COMPUTER_LAPTOP                       0x0083
     119              : /** Handheld PC/PDA (clamshell) */
     120            1 : #define BT_APPEARANCE_COMPUTER_HANDHELD_PCPDA               0x0084
     121              : /** PalmĀ­size PC/PDA */
     122            1 : #define BT_APPEARANCE_COMPUTER_PALMSIZE_PCPDA               0x0085
     123              : /** Wearable computer (watch size) */
     124            1 : #define BT_APPEARANCE_COMPUTER_WEARABLE_COMPUTER            0x0086
     125              : /** Tablet */
     126            1 : #define BT_APPEARANCE_COMPUTER_TABLET                       0x0087
     127              : /** Docking Station */
     128            1 : #define BT_APPEARANCE_COMPUTER_DOCKING_STATION              0x0088
     129              : /** All in One */
     130            1 : #define BT_APPEARANCE_COMPUTER_ALL_IN_ONE                   0x0089
     131              : /** Blade Server */
     132            1 : #define BT_APPEARANCE_COMPUTER_BLADE_SERVER                 0x008A
     133              : /** Convertible */
     134            1 : #define BT_APPEARANCE_COMPUTER_CONVERTIBLE                  0x008B
     135              : /** Detachable */
     136            1 : #define BT_APPEARANCE_COMPUTER_DETACHABLE                   0x008C
     137              : /** IoT Gateway */
     138            1 : #define BT_APPEARANCE_COMPUTER_IOT_GATEWAY                  0x008D
     139              : /** Mini PC */
     140            1 : #define BT_APPEARANCE_COMPUTER_MINI_PC                      0x008E
     141              : /** Stick PC */
     142            1 : #define BT_APPEARANCE_COMPUTER_STICK_PC                     0x008F
     143              : /** Generic Watch */
     144            1 : #define BT_APPEARANCE_GENERIC_WATCH                         0x00C0
     145              : /** Sports Watch */
     146            1 : #define BT_APPEARANCE_SPORTS_WATCH                          0x00C1
     147              : /** Smartwatch */
     148            1 : #define BT_APPEARANCE_SMARTWATCH                            0x00C2
     149              : /** Generic Clock */
     150            1 : #define BT_APPEARANCE_GENERIC_CLOCK                         0x0100
     151              : /** Generic Display */
     152            1 : #define BT_APPEARANCE_GENERIC_DISPLAY                       0x0140
     153              : /** Generic Remote Control */
     154            1 : #define BT_APPEARANCE_GENERIC_REMOTE                        0x0180
     155              : /** Generic Eye-glasses */
     156            1 : #define BT_APPEARANCE_GENERIC_EYEGLASSES                    0x01C0
     157              : /** Generic Tag */
     158            1 : #define BT_APPEARANCE_GENERIC_TAG                           0x0200
     159              : /** Generic Keyring */
     160            1 : #define BT_APPEARANCE_GENERIC_KEYRING                       0x0240
     161              : /** Generic Media Player */
     162            1 : #define BT_APPEARANCE_GENERIC_MEDIA_PLAYER                  0x0280
     163              : /** Generic Barcode Scanner */
     164            1 : #define BT_APPEARANCE_GENERIC_BARCODE_SCANNER               0x02C0
     165              : /** Generic Thermometer */
     166            1 : #define BT_APPEARANCE_GENERIC_THERMOMETER                   0x0300
     167              : /** Ear Thermometer */
     168            1 : #define BT_APPEARANCE_THERMOMETER_EAR                       0x0301
     169              : /** Generic Heart Rate Sensor */
     170            1 : #define BT_APPEARANCE_GENERIC_HEART_RATE                    0x0340
     171              : /** Heart Rate Belt */
     172            1 : #define BT_APPEARANCE_HEART_RATE_BELT                       0x0341
     173              : /** Generic Blood Pressure */
     174            1 : #define BT_APPEARANCE_GENERIC_BLOOD_PRESSURE                0x0380
     175              : /** Arm Blood Pressure */
     176            1 : #define BT_APPEARANCE_BLOOD_PRESSURE_ARM                    0x0381
     177              : /** Wrist Blood Pressure */
     178            1 : #define BT_APPEARANCE_BLOOD_PRESSURE_WRIST                  0x0382
     179              : /** Generic Human Interface Device */
     180            1 : #define BT_APPEARANCE_GENERIC_HID                           0x03C0
     181              : /** Keyboard */
     182            1 : #define BT_APPEARANCE_HID_KEYBOARD                          0x03C1
     183              : /** Mouse */
     184            1 : #define BT_APPEARANCE_HID_MOUSE                             0x03C2
     185              : /** Joystick */
     186            1 : #define BT_APPEARANCE_HID_JOYSTICK                          0x03C3
     187              : /** Gamepad */
     188            1 : #define BT_APPEARANCE_HID_GAMEPAD                           0x03C4
     189              : /** Digitizer Tablet */
     190            1 : #define BT_APPEARANCE_HID_DIGITIZER_TABLET                  0x03C5
     191              : /** Card Reader */
     192            1 : #define BT_APPEARANCE_HID_CARD_READER                       0x03C6
     193              : /** Digital Pen */
     194            1 : #define BT_APPEARANCE_HID_DIGITAL_PEN                       0x03C7
     195              : /** Barcode Scanner */
     196            1 : #define BT_APPEARANCE_HID_BARCODE_SCANNER                   0x03C8
     197              : /** Touchpad */
     198            1 : #define BT_APPEARANCE_HID_TOUCHPAD                          0x03C9
     199              : /** Presentation Remote */
     200            1 : #define BT_APPEARANCE_HID_PRESENTATION_REMOTE               0x03CA
     201              : /** Generic Glucose Meter */
     202            1 : #define BT_APPEARANCE_GENERIC_GLUCOSE                       0x0400
     203              : /** Generic Running Walking Sensor */
     204            1 : #define BT_APPEARANCE_GENERIC_WALKING                       0x0440
     205              : /** In-Shoe Running Walking Sensor */
     206            1 : #define BT_APPEARANCE_WALKING_IN_SHOE                       0x0441
     207              : /** On-Shoe Running Walking Sensor */
     208            1 : #define BT_APPEARANCE_WALKING_ON_SHOE                       0x0442
     209              : /** On-Hip Running Walking Sensor */
     210            1 : #define BT_APPEARANCE_WALKING_ON_HIP                        0x0443
     211              : /** Generic Cycling */
     212            1 : #define BT_APPEARANCE_GENERIC_CYCLING                       0x0480
     213              : /** Cycling Computer */
     214            1 : #define BT_APPEARANCE_CYCLING_COMPUTER                      0x0481
     215              : /** Speed Sensor */
     216            1 : #define BT_APPEARANCE_CYCLING_SPEED                         0x0482
     217              : /** Cadence Sensor */
     218            1 : #define BT_APPEARANCE_CYCLING_CADENCE                       0x0483
     219              : /** Power Sensor */
     220            1 : #define BT_APPEARANCE_CYCLING_POWER                         0x0484
     221              : /** Speed and Cadence Sensor */
     222            1 : #define BT_APPEARANCE_CYCLING_SPEED_CADENCE                 0x0485
     223              : /** Generic Control Device */
     224            1 : #define BT_APPEARANCE_GENERIC_CONTROL_DEVICE                0x04C0
     225              : /** Switch */
     226            1 : #define BT_APPEARANCE_CONTROL_SWITCH                        0x04C1
     227              : /** Multi-switch */
     228            1 : #define BT_APPEARANCE_CONTROL_MULTI_SWITCH                  0x04C2
     229              : /** Button */
     230            1 : #define BT_APPEARANCE_CONTROL_BUTTON                        0x04C3
     231              : /** Slider */
     232            1 : #define BT_APPEARANCE_CONTROL_SLIDER                        0x04C4
     233              : /** Rotary Switch */
     234            1 : #define BT_APPEARANCE_CONTROL_ROTARY_SWITCH                 0x04C5
     235              : /** Touch Panel */
     236            1 : #define BT_APPEARANCE_CONTROL_TOUCH_PANEL                   0x04C6
     237              : /** Single Switch */
     238            1 : #define BT_APPEARANCE_CONTROL_SINGLE_SWITCH                 0x04C7
     239              : /** Double Switch */
     240            1 : #define BT_APPEARANCE_CONTROL_DOUBLE_SWITCH                 0x04C8
     241              : /** Triple Switch */
     242            1 : #define BT_APPEARANCE_CONTROL_TRIPLE_SWITCH                 0x04C9
     243              : /** Battery Switch */
     244            1 : #define BT_APPEARANCE_CONTROL_BATTERY_SWITCH                0x04CA
     245              : /** Energy Harvesting Switch */
     246            1 : #define BT_APPEARANCE_CONTROL_ENERGY_HARVESTING_SWITCH      0x04CB
     247              : /** Push Button */
     248            1 : #define BT_APPEARANCE_CONTROL_PUSH_BUTTON                   0x04CC
     249              : /** Generic Network Device */
     250            1 : #define BT_APPEARANCE_GENERIC_NETWORK_DEVICE                0x0500
     251              : /** Access Point */
     252            1 : #define BT_APPEARANCE_NETWORK_ACCESS_POINT                  0x0501
     253              : /** Mesh Device */
     254            1 : #define BT_APPEARANCE_NETWORK_MESH_DEVICE                   0x0502
     255              : /** Mesh Network Proxy */
     256            1 : #define BT_APPEARANCE_NETWORK_MESH_PROXY                    0x0503
     257              : /** Generic Sensor */
     258            1 : #define BT_APPEARANCE_GENERIC_SENSOR                        0x0540
     259              : /** Motion Sensor */
     260            1 : #define BT_APPEARANCE_SENSOR_MOTION                         0x0541
     261              : /** Air quality Sensor */
     262            1 : #define BT_APPEARANCE_SENSOR_AIR_QUALITY                    0x0542
     263              : /** Temperature Sensor */
     264            1 : #define BT_APPEARANCE_SENSOR_TEMPERATURE                    0x0543
     265              : /** Humidity Sensor */
     266            1 : #define BT_APPEARANCE_SENSOR_HUMIDITY                       0x0544
     267              : /** Leak Sensor */
     268            1 : #define BT_APPEARANCE_SENSOR_LEAK                           0x0545
     269              : /** Smoke Sensor */
     270            1 : #define BT_APPEARANCE_SENSOR_SMOKE                          0x0546
     271              : /** Occupancy Sensor */
     272            1 : #define BT_APPEARANCE_SENSOR_OCCUPANCY                      0x0547
     273              : /** Contact Sensor */
     274            1 : #define BT_APPEARANCE_SENSOR_CONTACT                        0x0548
     275              : /** Carbon Monoxide Sensor */
     276            1 : #define BT_APPEARANCE_SENSOR_CARBON_MONOXIDE                0x0549
     277              : /** Carbon Dioxide Sensor */
     278            1 : #define BT_APPEARANCE_SENSOR_CARBON_DIOXIDE                 0x054A
     279              : /** Ambient Light Sensor */
     280            1 : #define BT_APPEARANCE_SENSOR_AMBIENT_LIGHT                  0x054B
     281              : /** Energy Sensor */
     282            1 : #define BT_APPEARANCE_SENSOR_ENERGY                         0x054C
     283              : /** Color Light Sensor */
     284            1 : #define BT_APPEARANCE_SENSOR_COLOR_LIGHT                    0x054D
     285              : /** Rain Sensor */
     286            1 : #define BT_APPEARANCE_SENSOR_RAIN                           0x054E
     287              : /** Fire Sensor */
     288            1 : #define BT_APPEARANCE_SENSOR_FIRE                           0x054F
     289              : /** Wind Sensor */
     290            1 : #define BT_APPEARANCE_SENSOR_WIND                           0x0550
     291              : /** Proximity Sensor */
     292            1 : #define BT_APPEARANCE_SENSOR_PROXIMITY                      0x0551
     293              : /** Multi-Sensor */
     294            1 : #define BT_APPEARANCE_SENSOR_MULTI                          0x0552
     295              : /** Flush Mounted Sensor */
     296            1 : #define BT_APPEARANCE_SENSOR_FLUSH_MOUNTED                  0x0553
     297              : /** Ceiling Mounted Sensor */
     298            1 : #define BT_APPEARANCE_SENSOR_CEILING_MOUNTED                0x0554
     299              : /** Wall Mounted Sensor */
     300            1 : #define BT_APPEARANCE_SENSOR_WALL_MOUNTED                   0x0555
     301              : /** Multisensor */
     302            1 : #define BT_APPEARANCE_MULTISENSOR                           0x0556
     303              : /** Energy Meter */
     304            1 : #define BT_APPEARANCE_SENSOR_ENERGY_METER                   0x0557
     305              : /** Flame Detector */
     306            1 : #define BT_APPEARANCE_SENSOR_FLAME_DETECTOR                 0x0558
     307              : /** Vehicle Tire Pressure Sensor */
     308            1 : #define BT_APPEARANCE_SENSOR_VEHICLE_TIRE_PRESSURE          0x0559
     309              : /** Generic Light Fixtures */
     310            1 : #define BT_APPEARANCE_GENERIC_LIGHT_FIXTURES                0x0580
     311              : /** Wall Light */
     312            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_WALL                   0x0581
     313              : /** Ceiling Light */
     314            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_CEILING                0x0582
     315              : /** Floor Light */
     316            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_FLOOR                  0x0583
     317              : /** Cabinet Light */
     318            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_CABINET                0x0584
     319              : /** Desk Light */
     320            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_DESK                   0x0585
     321              : /** Troffer Light */
     322            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_TROFFER                0x0586
     323              : /** Pendant Light */
     324            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_PENDANT                0x0587
     325              : /** In-ground Light */
     326            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_IN_GROUND              0x0588
     327              : /** Flood Light */
     328            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_FLOOD                  0x0589
     329              : /** Underwater Light */
     330            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_UNDERWATER             0x058A
     331              : /** Bollard with Light */
     332            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_BOLLARD_WITH           0x058B
     333              : /** Pathway Light */
     334            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_PATHWAY                0x058C
     335              : /** Garden Light */
     336            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_GARDEN                 0x058D
     337              : /** Pole-top Light */
     338            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_POLE_TOP               0x058E
     339              : /** Spotlight */
     340            1 : #define BT_APPEARANCE_SPOT_LIGHT                            0x058F
     341              : /** Linear Light */
     342            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_LINEAR                 0x0590
     343              : /** Street Light */
     344            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_STREET                 0x0591
     345              : /** Shelves Light */
     346            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_SHELVES                0x0592
     347              : /** Bay Light */
     348            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_BAY                    0x0593
     349              : /** Emergency Exit Light */
     350            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_EMERGENCY_EXIT         0x0594
     351              : /** Light Controller */
     352            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_CONTROLLER             0x0595
     353              : /** Light Driver */
     354            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_DRIVER                 0x0596
     355              : /** Bulb */
     356            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_BULB                   0x0597
     357              : /** Low-bay Light */
     358            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_LOW_BAY                0x0598
     359              : /** High-bay Light */
     360            1 : #define BT_APPEARANCE_LIGHT_FIXTURES_HIGH_BAY               0x0599
     361              : /** Generic Fan */
     362            1 : #define BT_APPEARANCE_GENERIC_FAN                           0x05C0
     363              : /** Ceiling Fan */
     364            1 : #define BT_APPEARANCE_FAN_CEILING                           0x05C1
     365              : /** Axial Fan */
     366            1 : #define BT_APPEARANCE_FAN_AXIAL                             0x05C2
     367              : /** Exhaust Fan */
     368            1 : #define BT_APPEARANCE_FAN_EXHAUST                           0x05C3
     369              : /** Pedestal Fan */
     370            1 : #define BT_APPEARANCE_FAN_PEDESTAL                          0x05C4
     371              : /** Desk Fan */
     372            1 : #define BT_APPEARANCE_FAN_DESK                              0x05C5
     373              : /** Wall Fan */
     374            1 : #define BT_APPEARANCE_FAN_WALL                              0x05C6
     375              : /** Generic HVAC */
     376            1 : #define BT_APPEARANCE_GENERIC_HVAC                          0x0600
     377              : /** Thermostat */
     378            1 : #define BT_APPEARANCE_HVAC_THERMOSTAT                       0x0601
     379              : /** Humidifier */
     380            1 : #define BT_APPEARANCE_HVAC_HUMIDIFIER                       0x0602
     381              : /** De-humidifier */
     382            1 : #define BT_APPEARANCE_HVAC_DEHUMIDIFIER                     0x0603
     383              : /** Heater */
     384            1 : #define BT_APPEARANCE_HVAC_HEATER                           0x0604
     385              : /** Radiator */
     386            1 : #define BT_APPEARANCE_HVAC_RADIATOR                         0x0605
     387              : /** Boiler */
     388            1 : #define BT_APPEARANCE_HVAC_BOILER                           0x0606
     389              : /** Heat Pump */
     390            1 : #define BT_APPEARANCE_HVAC_HEAT_PUMP                        0x0607
     391              : /** Infrared Heater */
     392            1 : #define BT_APPEARANCE_HVAC_INFRARED_HEATER                  0x0608
     393              : /** Radiant Panel Heater */
     394            1 : #define BT_APPEARANCE_HVAC_RADIANT_PANEL_HEATER             0x0609
     395              : /** Fan Heater */
     396            1 : #define BT_APPEARANCE_HVAC_FAN_HEATER                       0x060A
     397              : /** Air Curtain */
     398            1 : #define BT_APPEARANCE_HVAC_AIR_CURTAIN                      0x060B
     399              : /** Generic Air Conditioning */
     400            1 : #define BT_APPEARANCE_GENERIC_AIR_CONDITIONING              0x0640
     401              : /** Generic Humidifier */
     402            1 : #define BT_APPEARANCE_GENERIC_HUMIDIFIER                    0x0680
     403              : /** Generic Heating */
     404            1 : #define BT_APPEARANCE_GENERIC_HEATING                       0x06C0
     405              : /** Radiator */
     406            1 : #define BT_APPEARANCE_HEATING_RADIATOR                      0x06C1
     407              : /** Boiler */
     408            1 : #define BT_APPEARANCE_HEATING_BOILER                        0x06C2
     409              : /** Heat Pump */
     410            1 : #define BT_APPEARANCE_HEATING_HEAT_PUMP                     0x06C3
     411              : /** Infrared Heater */
     412            1 : #define BT_APPEARANCE_HEATING_INFRARED_HEATER               0x06C4
     413              : /** Radiant Panel Heater */
     414            1 : #define BT_APPEARANCE_HEATING_RADIANT_PANEL_HEATER          0x06C5
     415              : /** Fan Heater */
     416            1 : #define BT_APPEARANCE_HEATING_FAN_HEATER                    0x06C6
     417              : /** Air Curtain */
     418            1 : #define BT_APPEARANCE_HEATING_AIR_CURTAIN                   0x06C7
     419              : /** Generic Access Control */
     420            1 : #define BT_APPEARANCE_GENERIC_ACCESS_CONTROL                0x0700
     421              : /** Access Door */
     422            1 : #define BT_APPEARANCE_CONTROL_ACCESS_DOOR                   0x0701
     423              : /** Garage Door */
     424            1 : #define BT_APPEARANCE_CONTROL_GARAGE_DOOR                   0x0702
     425              : /** Emergency Exit Door */
     426            1 : #define BT_APPEARANCE_CONTROL_EMERGENCY_EXIT_DOOR           0x0703
     427              : /** Access Lock */
     428            1 : #define BT_APPEARANCE_CONTROL_ACCESS_LOCK                   0x0704
     429              : /** Elevator */
     430            1 : #define BT_APPEARANCE_CONTROL_ELEVATOR                      0x0705
     431              : /** Window */
     432            1 : #define BT_APPEARANCE_CONTROL_WINDOW                        0x0706
     433              : /** Entrance Gate */
     434            1 : #define BT_APPEARANCE_CONTROL_ENTRANCE_GATE                 0x0707
     435              : /** Door Lock */
     436            1 : #define BT_APPEARANCE_CONTROL_DOOR_LOCK                     0x0708
     437              : /** Locker */
     438            1 : #define BT_APPEARANCE_CONTROL_LOCKER                        0x0709
     439              : /** Generic Motorized Device */
     440            1 : #define BT_APPEARANCE_GENERIC_MOTORIZED_DEVICE              0x0740
     441              : /** Motorized Gate */
     442            1 : #define BT_APPEARANCE_MOTORIZED_GATE                        0x0741
     443              : /** Awning */
     444            1 : #define BT_APPEARANCE_MOTORIZED_AWNING                      0x0742
     445              : /** Blinds or Shades */
     446            1 : #define BT_APPEARANCE_MOTORIZED_BLINDS_OR_SHADES            0x0743
     447              : /** Curtains */
     448            1 : #define BT_APPEARANCE_MOTORIZED_CURTAINS                    0x0744
     449              : /** Screen */
     450            1 : #define BT_APPEARANCE_MOTORIZED_SCREEN                      0x0745
     451              : /** Generic Power Device */
     452            1 : #define BT_APPEARANCE_GENERIC_POWER_DEVICE                  0x0780
     453              : /** Power Outlet */
     454            1 : #define BT_APPEARANCE_POWER_OUTLET                          0x0781
     455              : /** Power Strip */
     456            1 : #define BT_APPEARANCE_POWER_STRIP                           0x0782
     457              : /** Plug */
     458            1 : #define BT_APPEARANCE_POWER_PLUG                            0x0783
     459              : /** Power Supply */
     460            1 : #define BT_APPEARANCE_POWER_SUPPLY                          0x0784
     461              : /** LED Driver */
     462            1 : #define BT_APPEARANCE_POWER_LED_DRIVER                      0x0785
     463              : /** Fluorescent Lamp Gear */
     464            1 : #define BT_APPEARANCE_POWER_FLUORESCENT_LAMP_GEAR           0x0786
     465              : /** HID Lamp Gear */
     466            1 : #define BT_APPEARANCE_POWER_HID_LAMP_GEAR                   0x0787
     467              : /** Charge Case */
     468            1 : #define BT_APPEARANCE_POWER_CHARGE_CASE                     0x0788
     469              : /** Power Bank */
     470            1 : #define BT_APPEARANCE_POWER_POWER_BANK                      0x0789
     471              : /** Generic Light Source */
     472            1 : #define BT_APPEARANCE_GENERIC_LIGHT_SOURCE                  0x07C0
     473              : /** Incandescent Light Bulb */
     474            1 : #define BT_APPEARANCE_LIGHT_SOURCE_INCANDESCENT_BULB        0x07C1
     475              : /** LED Lamp */
     476            1 : #define BT_APPEARANCE_LIGHT_SOURCE_LED_LAMP                 0x07C2
     477              : /** HID Lamp */
     478            1 : #define BT_APPEARANCE_LIGHT_SOURCE_HID_LAMP                 0x07C3
     479              : /** Fluorescent Lamp */
     480            1 : #define BT_APPEARANCE_LIGHT_SOURCE_FLUORESCENT_LAMP         0x07C4
     481              : /** LED Array */
     482            1 : #define BT_APPEARANCE_LIGHT_SOURCE_LED_ARRAY                0x07C5
     483              : /** Multi-Color LED Array */
     484            1 : #define BT_APPEARANCE_LIGHT_SOURCE_MULTICOLOR_LED_ARRAY     0x07C6
     485              : /** Low voltage halogen */
     486            1 : #define BT_APPEARANCE_LIGHT_SOURCE_LOW_VOLTAGE_HALOGEN      0x07C7
     487              : /** Organic light emitting diode */
     488            1 : #define BT_APPEARANCE_LIGHT_SOURCE_OLED                     0x07C8
     489              : /** Generic Window Covering */
     490            1 : #define BT_APPEARANCE_GENERIC_WINDOW_COVERING               0x0800
     491              : /** Window Shades */
     492            1 : #define BT_APPEARANCE_WINDOW_SHADES                         0x0801
     493              : /** Window Blinds */
     494            1 : #define BT_APPEARANCE_WINDOW_BLINDS                         0x0802
     495              : /** Window Awning */
     496            1 : #define BT_APPEARANCE_WINDOW_AWNING                         0x0803
     497              : /** Window Curtain */
     498            1 : #define BT_APPEARANCE_WINDOW_CURTAIN                        0x0804
     499              : /** Exterior Shutter */
     500            1 : #define BT_APPEARANCE_WINDOW_EXTERIOR_SHUTTER               0x0805
     501              : /** Exterior Screen */
     502            1 : #define BT_APPEARANCE_WINDOW_EXTERIOR_SCREEN                0x0806
     503              : /** Generic Audio Sink */
     504            1 : #define BT_APPEARANCE_GENERIC_AUDIO_SINK                    0x0840
     505              : /** Standalone Speaker */
     506            1 : #define BT_APPEARANCE_AUDIO_SINK_STANDALONE_SPEAKER         0x0841
     507              : /** Soundbar */
     508            1 : #define BT_APPEARANCE_AUDIO_SINK_SOUNDBAR                   0x0842
     509              : /** Bookshelf Speaker */
     510            1 : #define BT_APPEARANCE_AUDIO_SINK_BOOKSHELF_SPEAKER          0x0843
     511              : /** Standmounted Speaker */
     512            1 : #define BT_APPEARANCE_AUDIO_SINK_STANDMOUNTED_SPEAKER       0x0844
     513              : /** Speakerphone */
     514            1 : #define BT_APPEARANCE_AUDIO_SINK_SPEAKERPHONE               0x0845
     515              : /** Generic Audio Source */
     516            1 : #define BT_APPEARANCE_GENERIC_AUDIO_SOURCE                  0x0880
     517              : /** Microphone */
     518            1 : #define BT_APPEARANCE_AUDIO_SOURCE_MICROPHONE               0x0881
     519              : /** Alarm */
     520            1 : #define BT_APPEARANCE_AUDIO_SOURCE_ALARM                    0x0882
     521              : /** Bell */
     522            1 : #define BT_APPEARANCE_AUDIO_SOURCE_BELL                     0x0883
     523              : /** Horn */
     524            1 : #define BT_APPEARANCE_AUDIO_SOURCE_HORN                     0x0884
     525              : /** Broadcasting Device */
     526            1 : #define BT_APPEARANCE_AUDIO_SOURCE_BROADCASTING_DEVICE      0x0885
     527              : /** Service Desk */
     528            1 : #define BT_APPEARANCE_AUDIO_SOURCE_SERVICE_DESK             0x0886
     529              : /** Kiosk */
     530            1 : #define BT_APPEARANCE_AUDIO_SOURCE_KIOSK                    0x0887
     531              : /** Broadcasting Room */
     532            1 : #define BT_APPEARANCE_AUDIO_SOURCE_BROADCASTING_ROOM        0x0888
     533              : /** Auditorium */
     534            1 : #define BT_APPEARANCE_AUDIO_SOURCE_AUDITORIUM               0x0889
     535              : /** Generic Motorized Vehicle */
     536            1 : #define BT_APPEARANCE_GENERIC_MOTORIZED_VEHICLE             0x08C0
     537              : /** Car */
     538            1 : #define BT_APPEARANCE_VEHICLE_CAR                           0x08C1
     539              : /** Large Goods Vehicle */
     540            1 : #define BT_APPEARANCE_VEHICLE_LARGE_GOODS                   0x08C2
     541              : /** 2-Wheeled Vehicle */
     542            1 : #define BT_APPEARANCE_VEHICLE_TWO_WHEELED                   0x08C3
     543              : /** Motorbike */
     544            1 : #define BT_APPEARANCE_VEHICLE_MOTORBIKE                     0x08C4
     545              : /** Scooter */
     546            1 : #define BT_APPEARANCE_VEHICLE_SCOOTER                       0x08C5
     547              : /** Moped */
     548            1 : #define BT_APPEARANCE_VEHICLE_MOPED                         0x08C6
     549              : /** 3-Wheeled Vehicle */
     550            1 : #define BT_APPEARANCE_VEHICLE_THREE_WHEELED                 0x08C7
     551              : /** Light Vehicle */
     552            1 : #define BT_APPEARANCE_VEHICLE_LIGHT                         0x08C8
     553              : /** Quad Bike */
     554            1 : #define BT_APPEARANCE_VEHICLE_QUAD_BIKE                     0x08C9
     555              : /** Minibus */
     556            1 : #define BT_APPEARANCE_VEHICLE_MINIBUS                       0x08CA
     557              : /** Bus */
     558            1 : #define BT_APPEARANCE_VEHICLE_BUS                           0x08CB
     559              : /** Trolley */
     560            1 : #define BT_APPEARANCE_VEHICLE_TROLLEY                       0x08CC
     561              : /** Agricultural Vehicle */
     562            1 : #define BT_APPEARANCE_VEHICLE_AGRICULTURAL                  0x08CD
     563              : /** Camper/Caravan */
     564            1 : #define BT_APPEARANCE_VEHICLE_CAMPER_OR_CARAVAN             0x08CE
     565              : /** Recreational Vehicle/Motor Home */
     566            1 : #define BT_APPEARANCE_VEHICLE_RECREATIONAL                  0x08CF
     567              : /** Generic Domestic Appliance */
     568            1 : #define BT_APPEARANCE_GENERIC_DOMESTIC_APPLIANCE            0x0900
     569              : /** Refrigerator */
     570            1 : #define BT_APPEARANCE_APPLIANCE_REFRIGERATOR                0x0901
     571              : /** Freezer */
     572            1 : #define BT_APPEARANCE_APPLIANCE_FREEZER                     0x0902
     573              : /** Oven */
     574            1 : #define BT_APPEARANCE_APPLIANCE_OVEN                        0x0903
     575              : /** Microwave */
     576            1 : #define BT_APPEARANCE_APPLIANCE_MICROWAVE                   0x0904
     577              : /** Toaster */
     578            1 : #define BT_APPEARANCE_APPLIANCE_TOASTER                     0x0905
     579              : /** Washing Machine */
     580            1 : #define BT_APPEARANCE_APPLIANCE_WASHING_MACHINE             0x0906
     581              : /** Dryer */
     582            1 : #define BT_APPEARANCE_APPLIANCE_DRYER                       0x0907
     583              : /** Coffee maker */
     584            1 : #define BT_APPEARANCE_APPLIANCE_COFFEE_MAKER                0x0908
     585              : /** Clothes iron */
     586            1 : #define BT_APPEARANCE_APPLIANCE_CLOTHES_IRON                0x0909
     587              : /** Curling iron */
     588            1 : #define BT_APPEARANCE_APPLIANCE_CURLING_IRON                0x090A
     589              : /** Hair dryer */
     590            1 : #define BT_APPEARANCE_APPLIANCE_HAIR_DRYER                  0x090B
     591              : /** Vacuum cleaner */
     592            1 : #define BT_APPEARANCE_APPLIANCE_VACUUM_CLEANER              0x090C
     593              : /** Robotic vacuum cleaner */
     594            1 : #define BT_APPEARANCE_APPLIANCE_ROBOTIC_VACUUM_CLEANER      0x090D
     595              : /** Rice cooker */
     596            1 : #define BT_APPEARANCE_APPLIANCE_RICE_COOKER                 0x090E
     597              : /** Clothes steamer */
     598            1 : #define BT_APPEARANCE_APPLIANCE_CLOTHES_STEAMER             0x090F
     599              : /** Generic Wearable Audio Device */
     600            1 : #define BT_APPEARANCE_GENERIC_WEARABLE_AUDIO_DEVICE         0x0940
     601              : /** Earbud */
     602            1 : #define BT_APPEARANCE_WEARABLE_AUDIO_DEVICE_EARBUD          0x0941
     603              : /** Headset */
     604            1 : #define BT_APPEARANCE_WEARABLE_AUDIO_DEVICE_HEADSET         0x0942
     605              : /** Headphones */
     606            1 : #define BT_APPEARANCE_WEARABLE_AUDIO_DEVICE_HEADPHONES      0x0943
     607              : /** Neck Band */
     608            1 : #define BT_APPEARANCE_WEARABLE_AUDIO_DEVICE_NECK_BAND       0x0944
     609              : /** Generic Aircraft */
     610            1 : #define BT_APPEARANCE_GENERIC_AIRCRAFT                      0x0980
     611              : /** Light Aircraft */
     612            1 : #define BT_APPEARANCE_AIRCRAFT_LIGHT                        0x0981
     613              : /** Microlight */
     614            1 : #define BT_APPEARANCE_AIRCRAFT_MICROLIGHT                   0x0982
     615              : /** Paraglider */
     616            1 : #define BT_APPEARANCE_AIRCRAFT_PARAGLIDER                   0x0983
     617              : /** Large Passenger Aircraft */
     618            1 : #define BT_APPEARANCE_AIRCRAFT_LARGE_PASSENGER              0x0984
     619              : /** Generic AV Equipment */
     620            1 : #define BT_APPEARANCE_GENERIC_AV_EQUIPMENT                  0x09C0
     621              : /** Amplifier */
     622            1 : #define BT_APPEARANCE_AV_EQUIPMENT_AMPLIFIER                0x09C1
     623              : /** Receiver */
     624            1 : #define BT_APPEARANCE_AV_EQUIPMENT_RECEIVER                 0x09C2
     625              : /** Radio */
     626            1 : #define BT_APPEARANCE_AV_EQUIPMENT_RADIO                    0x09C3
     627              : /** Tuner */
     628            1 : #define BT_APPEARANCE_AV_EQUIPMENT_TUNER                    0x09C4
     629              : /** Turntable */
     630            1 : #define BT_APPEARANCE_AV_EQUIPMENT_TURNTABLE                0x09C5
     631              : /** CD Player */
     632            1 : #define BT_APPEARANCE_AV_EQUIPMENT_CD_PLAYER                0x09C6
     633              : /** DVD Player */
     634            1 : #define BT_APPEARANCE_AV_EQUIPMENT_DVD_PLAYER               0x09C7
     635              : /** Bluray Player */
     636            1 : #define BT_APPEARANCE_AV_EQUIPMENT_BLURAY_PLAYER            0x09C8
     637              : /** Optical Disc Player */
     638            1 : #define BT_APPEARANCE_AV_EQUIPMENT_OPTICAL_DISC_PLAYER      0x09C9
     639              : /** Set-Top Box */
     640            1 : #define BT_APPEARANCE_AV_EQUIPMENT_SET_TOP_BOX              0x09CA
     641              : /** Generic Display Equipment */
     642            1 : #define BT_APPEARANCE_GENERIC_DISPLAY_EQUIPMENT             0x0A00
     643              : /** Television */
     644            1 : #define BT_APPEARANCE_DISPLAY_EQUIPMENT_TELEVISION          0x0A01
     645              : /** Monitor */
     646            1 : #define BT_APPEARANCE_DISPLAY_EQUIPMENT_MONITOR             0x0A02
     647              : /** Projector */
     648            1 : #define BT_APPEARANCE_DISPLAY_EQUIPMENT_PROJECTOR           0x0A03
     649              : /** Generic Hearing aid */
     650            1 : #define BT_APPEARANCE_GENERIC_HEARING_AID                   0x0A40
     651              : /** In-ear hearing aid */
     652            1 : #define BT_APPEARANCE_HEARING_AID_IN_EAR                    0x0A41
     653              : /** Behind-ear hearing aid */
     654            1 : #define BT_APPEARANCE_HEARING_AID_BEHIND_EAR                0x0A42
     655              : /** Cochlear Implant */
     656            1 : #define BT_APPEARANCE_HEARING_AID_COCHLEAR_IMPLANT          0x0A43
     657              : /** Generic Gaming */
     658            1 : #define BT_APPEARANCE_GENERIC_GAMING                        0x0A80
     659              : /** Home Video Game Console */
     660            1 : #define BT_APPEARANCE_HOME_VIDEO_GAME_CONSOLE               0x0A81
     661              : /** Portable handheld console */
     662            1 : #define BT_APPEARANCE_PORTABLE_HANDHELD_CONSOLE             0x0A82
     663              : /** Generic Signage */
     664            1 : #define BT_APPEARANCE_GENERIC_SIGNAGE                       0x0AC0
     665              : /** Digital Signage */
     666            1 : #define BT_APPEARANCE_SIGNAGE_DIGITAL                       0x0AC1
     667              : /** Electronic Label */
     668            1 : #define BT_APPEARANCE_SIGNAGE_ELECTRONIC_LABEL              0x0AC2
     669              : /** Generic Pulse Oximeter */
     670            1 : #define BT_APPEARANCE_GENERIC_PULSE_OXIMETER                0x0C40
     671              : /** Fingertip Pulse Oximeter */
     672            1 : #define BT_APPEARANCE_PULSE_OXIMETER_FINGERTIP              0x0C41
     673              : /** Wrist Worn Pulse Oximeter */
     674            1 : #define BT_APPEARANCE_PULSE_OXIMETER_WRIST                  0x0C42
     675              : /** Generic Weight Scale */
     676            1 : #define BT_APPEARANCE_GENERIC_WEIGHT_SCALE                  0x0C80
     677              : /** Generic Personal Mobility Device */
     678            1 : #define BT_APPEARANCE_GENERIC_PERSONAL_MOBILITY_DEVICE      0x0CC0
     679              : /** Powered Wheelchair */
     680            1 : #define BT_APPEARANCE_MOBILITY_POWERED_WHEELCHAIR           0x0CC1
     681              : /** Mobility Scooter */
     682            1 : #define BT_APPEARANCE_MOBILITY_SCOOTER                      0x0CC2
     683              : /** Continuous Glucose Monitor */
     684            1 : #define BT_APPEARANCE_CONTINUOUS_GLUCOSE_MONITOR            0x0D00
     685              : /** Generic Insulin Pump */
     686            1 : #define BT_APPEARANCE_GENERIC_INSULIN_PUMP                  0x0D40
     687              : /** Insulin Pump, durable pump */
     688            1 : #define BT_APPEARANCE_INSULIN_PUMP_DURABLE                  0x0D41
     689              : /** Insulin Pump, patch pump */
     690            1 : #define BT_APPEARANCE_INSULIN_PUMP_PATCH                    0x0D44
     691              : /** Insulin Pen */
     692            1 : #define BT_APPEARANCE_INSULIN_PEN                           0x0D48
     693              : /** Generic Medication Delivery */
     694            1 : #define BT_APPEARANCE_GENERIC_MEDICATION_DELIVERY           0x0D80
     695              : /** Generic Spirometer */
     696            1 : #define BT_APPEARANCE_GENERIC_SPIROMETER                    0x0DC0
     697              : /** Handheld Spirometer */
     698            1 : #define BT_APPEARANCE_SPIROMETER_HANDHELD                   0x0DC1
     699              : /** Generic Outdoor Sports Activity */
     700            1 : #define BT_APPEARANCE_GENERIC_OUTDOOR_SPORTS                0x1440
     701              : /** Location Display */
     702            1 : #define BT_APPEARANCE_OUTDOOR_SPORTS_LOCATION               0x1441
     703              : /** Location and Navigation Display */
     704            1 : #define BT_APPEARANCE_OUTDOOR_SPORTS_LOCATION_AND_NAV       0x1442
     705              : /** Location Pod */
     706            1 : #define BT_APPEARANCE_OUTDOOR_SPORTS_LOCATION_POD           0x1443
     707              : /** Location and Navigation Pod */
     708            1 : #define BT_APPEARANCE_OUTDOOR_SPORTS_LOCATION_POD_AND_NAV   0x1444
     709              : /**
     710              :  * @}
     711              :  */
     712              : 
     713              : /**
     714              :  * @name Defined GAP timers
     715              :  * @{
     716              :  */
     717            0 : #define BT_GAP_SCAN_FAST_INTERVAL_MIN           0x0030  /* 30 ms    */
     718            0 : #define BT_GAP_SCAN_FAST_INTERVAL               0x0060  /* 60 ms    */
     719            0 : #define BT_GAP_SCAN_FAST_WINDOW                 0x0030  /* 30 ms    */
     720            0 : #define BT_GAP_SCAN_SLOW_INTERVAL_1             0x0800  /* 1.28 s   */
     721            0 : #define BT_GAP_SCAN_SLOW_WINDOW_1               0x0012  /* 11.25 ms */
     722            0 : #define BT_GAP_SCAN_SLOW_INTERVAL_2             0x1000  /* 2.56 s   */
     723            0 : #define BT_GAP_SCAN_SLOW_WINDOW_2               0x0012  /* 11.25 ms */
     724            0 : #define BT_GAP_ADV_FAST_INT_MIN_1               0x0030  /* 30 ms    */
     725            0 : #define BT_GAP_ADV_FAST_INT_MAX_1               0x0060  /* 60 ms    */
     726            0 : #define BT_GAP_ADV_FAST_INT_MIN_2               0x00a0  /* 100 ms   */
     727            0 : #define BT_GAP_ADV_FAST_INT_MAX_2               0x00f0  /* 150 ms   */
     728            0 : #define BT_GAP_ADV_SLOW_INT_MIN                 0x0640  /* 1 s      */
     729            0 : #define BT_GAP_ADV_SLOW_INT_MAX                 0x0780  /* 1.2 s    */
     730            0 : #define BT_GAP_PER_ADV_FAST_INT_MIN_1           0x0018  /* 30 ms    */
     731            0 : #define BT_GAP_PER_ADV_FAST_INT_MAX_1           0x0030  /* 60 ms    */
     732            0 : #define BT_GAP_PER_ADV_FAST_INT_MIN_2           0x0050  /* 100 ms   */
     733            0 : #define BT_GAP_PER_ADV_FAST_INT_MAX_2           0x0078  /* 150 ms   */
     734            0 : #define BT_GAP_PER_ADV_SLOW_INT_MIN             0x0320  /* 1 s      */
     735            0 : #define BT_GAP_PER_ADV_SLOW_INT_MAX             0x03C0  /* 1.2 s    */
     736            0 : #define BT_GAP_INIT_CONN_INT_MIN                0x0018  /* 30 ms    */
     737            0 : #define BT_GAP_INIT_CONN_INT_MAX                0x0028  /* 50 ms    */
     738              : /**
     739              :  * @}
     740              :  */
     741              : 
     742              : /** LE PHY types */
     743            1 : enum bt_gap_le_phy {
     744              :         /** Convenience macro for when no PHY is set. */
     745              :         BT_GAP_LE_PHY_NONE                    = 0,
     746              :         /** LE 1M PHY */
     747              :         BT_GAP_LE_PHY_1M                      = BIT(0),
     748              :          /** LE 2M PHY */
     749              :         BT_GAP_LE_PHY_2M                      = BIT(1),
     750              :         /** LE Coded PHY, coding scheme not specified */
     751              :         BT_GAP_LE_PHY_CODED                   = BIT(2),
     752              :         /** LE Coded S=8 PHY. Only used for advertising reports
     753              :          * when Kconfig BT_EXT_ADV_CODING_SELECTION is enabled.
     754              :          */
     755              :         BT_GAP_LE_PHY_CODED_S8                = BIT(3),
     756              :         /** LE Coded S=2 PHY. Only used for advertising reports
     757              :          * when Kconfig BT_EXT_ADV_CODING_SELECTION is enabled.
     758              :          */
     759              :         BT_GAP_LE_PHY_CODED_S2                = BIT(4),
     760              : };
     761              : 
     762              : /** Advertising PDU types */
     763            1 : enum bt_gap_adv_type {
     764              :         /** Scannable and connectable advertising. */
     765              :         BT_GAP_ADV_TYPE_ADV_IND               = 0x00,
     766              :         /** Directed connectable advertising. */
     767              :         BT_GAP_ADV_TYPE_ADV_DIRECT_IND        = 0x01,
     768              :         /** Non-connectable and scannable advertising. */
     769              :         BT_GAP_ADV_TYPE_ADV_SCAN_IND          = 0x02,
     770              :         /** Non-connectable and non-scannable advertising. */
     771              :         BT_GAP_ADV_TYPE_ADV_NONCONN_IND       = 0x03,
     772              :         /** Additional advertising data requested by an active scanner. */
     773              :         BT_GAP_ADV_TYPE_SCAN_RSP              = 0x04,
     774              :         /** Extended advertising, see advertising properties. */
     775              :         BT_GAP_ADV_TYPE_EXT_ADV               = 0x05,
     776              : };
     777              : 
     778              : /** Advertising PDU properties */
     779            1 : enum bt_gap_adv_prop {
     780              :         /** Connectable advertising. */
     781              :         BT_GAP_ADV_PROP_CONNECTABLE           = BIT(0),
     782              :         /** Scannable advertising. */
     783              :         BT_GAP_ADV_PROP_SCANNABLE             = BIT(1),
     784              :         /** Directed advertising. */
     785              :         BT_GAP_ADV_PROP_DIRECTED              = BIT(2),
     786              :         /** Additional advertising data requested by an active scanner. */
     787              :         BT_GAP_ADV_PROP_SCAN_RESPONSE         = BIT(3),
     788              :         /** Extended advertising. */
     789              :         BT_GAP_ADV_PROP_EXT_ADV               = BIT(4),
     790              : };
     791              : 
     792              : /** Maximum advertising data length. */
     793            1 : #define BT_GAP_ADV_MAX_ADV_DATA_LEN             31
     794              : /** Maximum extended advertising data length.
     795              :  *
     796              :  *  @note The maximum advertising data length that can be sent by an extended
     797              :  *        advertiser is defined by the controller.
     798              :  */
     799            1 : #define BT_GAP_ADV_MAX_EXT_ADV_DATA_LEN         1650
     800              : 
     801            0 : #define BT_GAP_TX_POWER_INVALID                 0x7f
     802            0 : #define BT_GAP_RSSI_INVALID                     0x7f
     803            0 : #define BT_GAP_SID_INVALID                      0xff
     804            0 : #define BT_GAP_NO_TIMEOUT                       0x0000
     805              : 
     806              : /* The maximum allowed high duty cycle directed advertising timeout, 1.28
     807              :  * seconds in 10 ms unit.
     808              :  */
     809            0 : #define BT_GAP_ADV_HIGH_DUTY_CYCLE_MAX_TIMEOUT  128
     810              : 
     811              : /** Default data length */
     812            1 : #define BT_GAP_DATA_LEN_DEFAULT                 0x001b /* 27 bytes */
     813              : /** Maximum data length */
     814            1 : #define BT_GAP_DATA_LEN_MAX                     0x00fb /* 251 bytes */
     815              : 
     816              : /** Default data time */
     817            1 : #define BT_GAP_DATA_TIME_DEFAULT                0x0148 /* 328 us */
     818              : /** Maximum data time */
     819            1 : #define BT_GAP_DATA_TIME_MAX                    0x4290 /* 17040 us */
     820              : 
     821              : /** Minimum advertising set number */
     822            1 : #define BT_GAP_SID_MIN                          0x00
     823              : /** Maximum advertising set number */
     824            1 : #define BT_GAP_SID_MAX                          0x0F
     825              : /** Maximum number of consecutive periodic advertisement events that can be
     826              :  *  skipped after a successful receive.
     827              :  */
     828            1 : #define BT_GAP_PER_ADV_MAX_SKIP                 0x01F3
     829              : /** Minimum Periodic Advertising Timeout (N * 10 ms) */
     830            1 : #define BT_GAP_PER_ADV_MIN_TIMEOUT              0x000A /* 100 ms */
     831              : /** Maximum Periodic Advertising Timeout (N * 10 ms) */
     832            1 : #define BT_GAP_PER_ADV_MAX_TIMEOUT              0x4000 /* 163.84 s */
     833              : /** Minimum Periodic Advertising Interval (N * 1.25 ms) */
     834            1 : #define BT_GAP_PER_ADV_MIN_INTERVAL             0x0006 /* 7.5 ms */
     835              : /** Maximum Periodic Advertising Interval (N * 1.25 ms) */
     836            1 : #define BT_GAP_PER_ADV_MAX_INTERVAL             0xFFFF /* 81.91875 s */
     837              : 
     838              : /**
     839              :  * @brief Convert periodic advertising interval (N * 0.625 ms) to microseconds
     840              :  *
     841              :  * Value range of @p _interval is @ref BT_LE_ADV_INTERVAL_MIN to @ref BT_LE_ADV_INTERVAL_MAX
     842              :  */
     843            1 : #define BT_GAP_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 625U))
     844              : 
     845              : /**
     846              :  * @brief Convert periodic advertising interval (N * 0.625 ms) to milliseconds
     847              :  *
     848              :  * Value range of @p _interval is @ref BT_LE_ADV_INTERVAL_MIN to @ref BT_LE_ADV_INTERVAL_MAX
     849              :  *
     850              :  * @note When intervals cannot be represented in milliseconds, this will round down.
     851              :  * For example BT_GAP_ADV_INTERVAL_TO_MS(0x0021) will become 20 ms instead of 20.625 ms
     852              :  */
     853            1 : #define BT_GAP_ADV_INTERVAL_TO_MS(_interval) (BT_GAP_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
     854              : 
     855              : /**
     856              :  * @brief Convert isochronous interval (N * 1.25 ms) to microseconds
     857              :  *
     858              :  * Value range of @p _interval is @ref BT_HCI_ISO_INTERVAL_MIN to @ref BT_HCI_ISO_INTERVAL_MAX
     859              :  */
     860            1 : #define BT_GAP_ISO_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
     861              : 
     862              : /**
     863              :  * @brief Convert isochronous interval (N * 1.25 ms) to milliseconds
     864              :  *
     865              :  * Value range of @p _interval is @ref BT_HCI_ISO_INTERVAL_MIN to @ref BT_HCI_ISO_INTERVAL_MAX
     866              :  *
     867              :  * @note When intervals cannot be represented in milliseconds, this will round down.
     868              :  * For example BT_GAP_ISO_INTERVAL_TO_MS(0x0005) will become 6 ms instead of 6.25 ms
     869              :  */
     870            1 : #define BT_GAP_ISO_INTERVAL_TO_MS(_interval) (BT_GAP_ISO_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
     871              : 
     872              : /** @brief Convert periodic advertising interval (N * 1.25 ms) to microseconds *
     873              :  *
     874              :  * Value range of @p _interval is @ref BT_HCI_LE_PER_ADV_INTERVAL_MIN to @ref
     875              :  * BT_HCI_LE_PER_ADV_INTERVAL_MAX
     876              :  */
     877            1 : #define BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) ((uint32_t)((_interval) * 1250U))
     878              : 
     879              : /**
     880              :  * @brief Convert periodic advertising interval (N * 1.25 ms) to milliseconds
     881              :  *
     882              :  * @note When intervals cannot be represented in milliseconds, this will round down.
     883              :  * For example BT_GAP_PER_ADV_INTERVAL_TO_MS(0x0009) will become 11 ms instead of 11.25 ms
     884              :  */
     885            1 : #define BT_GAP_PER_ADV_INTERVAL_TO_MS(_interval)                                                   \
     886              :         (BT_GAP_PER_ADV_INTERVAL_TO_US(_interval) / USEC_PER_MSEC)
     887              : 
     888              : /**
     889              :  * @brief Convert microseconds to advertising interval units (0.625 ms)
     890              :  *
     891              :  * Value range of @p _interval is 20000 to 1024000
     892              :  *
     893              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
     894              :  * For example BT_GAP_US_TO_ADV_INTERVAL(21000) will become 20625 microseconds
     895              :  */
     896            1 : #define BT_GAP_US_TO_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
     897              : 
     898              : /**
     899              :  * @brief Convert milliseconds to advertising interval units (0.625 ms)
     900              :  *
     901              :  * Value range of @p _interval is 20 to 1024
     902              :  *
     903              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
     904              :  * For example BT_GAP_MS_TO_ADV_INTERVAL(21) will become 20.625 milliseconds
     905              :  */
     906            1 : #define BT_GAP_MS_TO_ADV_INTERVAL(_interval)                                                       \
     907              :         (BT_GAP_US_TO_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
     908              : 
     909              : /**
     910              :  * @brief Convert microseconds to periodic advertising interval units (1.25 ms)
     911              :  *
     912              :  * Value range of @p _interval is 7500 to 81918750
     913              :  *
     914              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
     915              :  * For example BT_GAP_US_TO_PER_ADV_INTERVAL(11000) will become 10000 microseconds
     916              :  */
     917            1 : #define BT_GAP_US_TO_PER_ADV_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
     918              : 
     919              : /**
     920              :  * @brief Convert milliseconds to periodic advertising interval units (1.25 ms)
     921              :  *
     922              :  * Value range of @p _interval is 7.5 to 81918.75
     923              :  *
     924              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
     925              :  * For example BT_GAP_MS_TO_PER_ADV_INTERVAL(11) will become 10 milliseconds
     926              :  */
     927            1 : #define BT_GAP_MS_TO_PER_ADV_INTERVAL(_interval)                                                   \
     928              :         (BT_GAP_US_TO_PER_ADV_INTERVAL((_interval) * USEC_PER_MSEC))
     929              : 
     930              : /**
     931              :  * @brief Convert milliseconds to periodic advertising sync timeout units (10 ms)
     932              :  *
     933              :  * Value range of @p _timeout is 100 to 163840
     934              :  *
     935              :  * @note If @p _timeout is not a multiple of the unit, it will round down to nearest.
     936              :  * For example BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(4005) will become 4000 milliseconds
     937              :  */
     938            1 : #define BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
     939              : 
     940              : /**
     941              :  * @brief Convert microseconds to periodic advertising sync timeout units (10 ms)
     942              :  *
     943              :  * Value range of @p _timeout is 100000 to 163840000
     944              :  *
     945              :  * @note If @p _timeout is not a multiple of the unit, it will round down to nearest.
     946              :  * For example BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT(4005000) will become 4000000 microseconds
     947              :  */
     948            1 : #define BT_GAP_US_TO_PER_ADV_SYNC_TIMEOUT(_timeout)                                                \
     949              :         (BT_GAP_MS_TO_PER_ADV_SYNC_TIMEOUT((_timeout) / USEC_PER_MSEC))
     950              : 
     951              : /**
     952              :  * @brief Convert microseconds to scan interval units (0.625 ms)
     953              :  *
     954              :  * Value range of @p _interval is 2500 to 40959375 if @kconfig{CONFIG_BT_EXT_ADV} else
     955              :  * 2500 to 10240000
     956              :  *
     957              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
     958              :  * For example BT_GAP_US_TO_SCAN_INTERVAL(21000) will become 20625 microseconds
     959              :  */
     960            1 : #define BT_GAP_US_TO_SCAN_INTERVAL(_interval) ((uint16_t)((_interval) / 625U))
     961              : 
     962              : /**
     963              :  * @brief Convert milliseconds to scan interval units (0.625 ms)
     964              :  *
     965              :  * Value range of @p _interval is 2.5 to 40959.375 if @kconfig{CONFIG_BT_EXT_ADV} else
     966              :  * 2500 to 10240
     967              :  *
     968              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
     969              :  * For example BT_GAP_MS_TO_SCAN_INTERVAL(21) will become 20.625 milliseconds
     970              :  */
     971            1 : #define BT_GAP_MS_TO_SCAN_INTERVAL(_interval)                                                      \
     972              :         (BT_GAP_US_TO_SCAN_INTERVAL((_interval) * USEC_PER_MSEC))
     973              : 
     974              : /**
     975              :  * @brief Convert microseconds to scan window units (0.625 ms)
     976              :  *
     977              :  * Value range of @p _window is 2500 to 40959375 if @kconfig{CONFIG_BT_EXT_ADV} else
     978              :  * 2500 to 10240000
     979              :  *
     980              :  * @note If @p _window is not a multiple of the unit, it will round down to nearest.
     981              :  * For example BT_GAP_US_TO_SCAN_WINDOW(21000) will become 20625 microseconds
     982              :  */
     983            1 : #define BT_GAP_US_TO_SCAN_WINDOW(_window) ((uint16_t)((_window) / 625U))
     984              : 
     985              : /**
     986              :  * @brief Convert milliseconds to scan window units (0.625 ms)
     987              :  *
     988              :  * Value range of @p _window is 2.5 to 40959.375 if @kconfig{CONFIG_BT_EXT_ADV} else
     989              :  * 2500 to 10240
     990              :  *
     991              :  * @note If @p _window is not a multiple of the unit, it will round down to nearest.
     992              :  * For example BT_GAP_MS_TO_SCAN_WINDOW(21) will become 20.625 milliseconds
     993              :  */
     994            1 : #define BT_GAP_MS_TO_SCAN_WINDOW(_window) (BT_GAP_US_TO_SCAN_WINDOW((_window) * USEC_PER_MSEC))
     995              : 
     996              : /**
     997              :  * @brief Convert microseconds to connection interval units (1.25 ms)
     998              :  *
     999              :  * Value range of @p _interval is 7500 to 4000000
    1000              :  *
    1001              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
    1002              :  * For example BT_GAP_US_TO_CONN_INTERVAL(21000) will become 20000 microseconds
    1003              :  */
    1004            1 : #define BT_GAP_US_TO_CONN_INTERVAL(_interval) ((uint16_t)((_interval) / 1250U))
    1005              : 
    1006              : /**
    1007              :  * @brief Convert milliseconds to connection interval units (1.25 ms)
    1008              :  *
    1009              :  * Value range of @p _interval is 7.5 to 4000
    1010              :  *
    1011              :  * @note If @p _interval is not a multiple of the unit, it will round down to nearest.
    1012              :  * For example BT_GAP_MS_TO_CONN_INTERVAL(21) will become 20 milliseconds
    1013              :  */
    1014            1 : #define BT_GAP_MS_TO_CONN_INTERVAL(_interval)                                                      \
    1015              :         (BT_GAP_US_TO_CONN_INTERVAL((_interval) * USEC_PER_MSEC))
    1016              : 
    1017              : /**
    1018              :  * @brief Convert milliseconds to connection supervision timeout units (10 ms)
    1019              :  *
    1020              :  * Value range of @p _timeout is 100 to 32000
    1021              :  *
    1022              :  * @note If @p _timeout is not a multiple of the unit, it will round down to nearest.
    1023              :  * For example BT_GAP_MS_TO_CONN_TIMEOUT(4005) will become 4000 milliseconds
    1024              :  */
    1025            1 : #define BT_GAP_MS_TO_CONN_TIMEOUT(_timeout) ((uint16_t)((_timeout) / 10U))
    1026              : 
    1027              : /**
    1028              :  * @brief Convert microseconds to connection supervision timeout units (10 ms)
    1029              : 
    1030              :  * Value range of @p _timeout is 100000 to 32000000
    1031              :  *
    1032              :  * @note If @p _timeout is not a multiple of the unit, it will round down to nearest.
    1033              :  * For example BT_GAP_MS_TO_CONN_TIMEOUT(4005000) will become 4000000 microseconds
    1034              :  */
    1035            1 : #define BT_GAP_US_TO_CONN_TIMEOUT(_timeout) (BT_GAP_MS_TO_CONN_TIMEOUT((_timeout) / USEC_PER_MSEC))
    1036              : 
    1037              : /**
    1038              :  * @brief Convert milliseconds to connection event length units (0.625)
    1039              :  *
    1040              :  * Value range of @p _event_len is 0 to 40959375
    1041              :  *
    1042              :  * @note If @p _event_len is not a multiple of the unit, it will round down to nearest.
    1043              :  * For example BT_GAP_US_TO_CONN_EVENT_LEN(21000) will become 20625 milliseconds
    1044              :  */
    1045            1 : #define BT_GAP_US_TO_CONN_EVENT_LEN(_event_len) ((uint16_t)((_event_len) / 625U))
    1046              : 
    1047              : /**
    1048              :  * @brief Convert milliseconds to connection event length units (0.625)
    1049              :  *
    1050              :  * Value range of @p _event_len is 0 to 40959.375
    1051              :  *
    1052              :  * @note If @p _event_len is not a multiple of the unit, it will round down to nearest.
    1053              :  * For example BT_GAP_MS_TO_CONN_EVENT_LEN(21) will become 20.625 milliseconds
    1054              :  */
    1055            1 : #define BT_GAP_MS_TO_CONN_EVENT_LEN(_event_len)                                                    \
    1056              :         (BT_GAP_US_TO_CONN_EVENT_LEN((_event_len) * USEC_PER_MSEC))
    1057              : 
    1058              : /** Constant Tone Extension (CTE) types */
    1059            1 : enum bt_gap_cte {
    1060              :         /** Angle of Arrival */
    1061              :         BT_GAP_CTE_AOA = 0x00,
    1062              :         /** Angle of Departure with 1 us slots */
    1063              :         BT_GAP_CTE_AOD_1US = 0x01,
    1064              :         /** Angle of Departure with 2 us slots */
    1065              :         BT_GAP_CTE_AOD_2US = 0x02,
    1066              :         /** No extensions */
    1067              :         BT_GAP_CTE_NONE = 0xFF,
    1068              : };
    1069              : 
    1070              : /** @brief Peripheral sleep clock accuracy (SCA) in ppm (parts per million) */
    1071            1 : enum bt_gap_sca {
    1072              :         BT_GAP_SCA_UNKNOWN = 0,   /**< Unknown */
    1073              :         BT_GAP_SCA_251_500 = 0,   /**< 251 ppm to 500 ppm */
    1074              :         BT_GAP_SCA_151_250 = 1,   /**< 151 ppm to 250 ppm */
    1075              :         BT_GAP_SCA_101_150 = 2,   /**< 101 ppm to 150 ppm */
    1076              :         BT_GAP_SCA_76_100 = 3,    /**< 76 ppm to 100 ppm */
    1077              :         BT_GAP_SCA_51_75 = 4,     /**< 51 ppm to 75 ppm */
    1078              :         BT_GAP_SCA_31_50 = 5,     /**< 31 ppm to 50 ppm */
    1079              :         BT_GAP_SCA_21_30 = 6,     /**< 21 ppm to 30 ppm */
    1080              :         BT_GAP_SCA_0_20 = 7,      /**< 0 ppm to 20 ppm */
    1081              : };
    1082              : 
    1083              : /**
    1084              :  * @brief Encode 40 least significant bits of 64-bit LE Supported Features into array values
    1085              :  *        in little-endian format.
    1086              :  *
    1087              :  * Helper macro to encode 40 least significant bits of 64-bit LE Supported Features value into
    1088              :  * advertising data. The number of bits that are encoded is a number of LE Supported Features
    1089              :  * defined by BT 5.3 Core specification.
    1090              :  *
    1091              :  * Example of how to encode the `0x000000DFF00DF00D` into advertising data.
    1092              :  *
    1093              :  * @code
    1094              :  * BT_DATA_BYTES(BT_DATA_LE_SUPPORTED_FEATURES, BT_LE_SUPP_FEAT_40_ENCODE(0x000000DFF00DF00D))
    1095              :  * @endcode
    1096              :  *
    1097              :  * @param w64 LE Supported Features value (64-bits)
    1098              :  *
    1099              :  * @return The comma separated values for LE Supported Features value that
    1100              :  *         may be used directly as an argument for @ref BT_DATA_BYTES.
    1101              :  */
    1102            1 : #define BT_LE_SUPP_FEAT_40_ENCODE(w64) BT_BYTES_LIST_LE40(w64)
    1103              : 
    1104              : /** @brief Encode 4 least significant bytes of 64-bit LE Supported Features into
    1105              :  *         4 bytes long array of values in little-endian format.
    1106              :  *
    1107              :  *  Helper macro to encode 64-bit LE Supported Features value into advertising
    1108              :  *  data. The macro encodes 4 least significant bytes into advertising data.
    1109              :  *  Other 4 bytes are not encoded.
    1110              :  *
    1111              :  *  Example of how to encode the `0x000000DFF00DF00D` into advertising data.
    1112              :  *
    1113              :  *  @code
    1114              :  *  BT_DATA_BYTES(BT_DATA_LE_SUPPORTED_FEATURES, BT_LE_SUPP_FEAT_32_ENCODE(0x000000DFF00DF00D))
    1115              :  *  @endcode
    1116              :  *
    1117              :  * @param w64 LE Supported Features value (64-bits)
    1118              :  *
    1119              :  * @return The comma separated values for LE Supported Features value that
    1120              :  *         may be used directly as an argument for @ref BT_DATA_BYTES.
    1121              :  */
    1122            1 : #define BT_LE_SUPP_FEAT_32_ENCODE(w64) BT_BYTES_LIST_LE32(w64)
    1123              : 
    1124              : /**
    1125              :  * @brief Encode 3 least significant bytes of 64-bit LE Supported Features into
    1126              :  *        3 bytes long array of values in little-endian format.
    1127              :  *
    1128              :  * Helper macro to encode 64-bit LE Supported Features value into advertising
    1129              :  * data. The macro encodes 3 least significant bytes into advertising data.
    1130              :  * Other 5 bytes are not encoded.
    1131              :  *
    1132              :  * Example of how to encode the `0x000000DFF00DF00D` into advertising data.
    1133              :  *
    1134              :  * @code
    1135              :  * BT_DATA_BYTES(BT_DATA_LE_SUPPORTED_FEATURES, BT_LE_SUPP_FEAT_24_ENCODE(0x000000DFF00DF00D))
    1136              :  * @endcode
    1137              :  *
    1138              :  * @param w64 LE Supported Features value (64-bits)
    1139              :  *
    1140              :  * @return The comma separated values for LE Supported Features value that
    1141              :  *         may be used directly as an argument for @ref BT_DATA_BYTES.
    1142              :  */
    1143            1 : #define BT_LE_SUPP_FEAT_24_ENCODE(w64) BT_BYTES_LIST_LE24(w64)
    1144              : 
    1145              : /**
    1146              :  * @brief Encode 2 least significant bytes of 64-bit LE Supported Features into
    1147              :  *        2 bytes long array of values in little-endian format.
    1148              :  *
    1149              :  * Helper macro to encode 64-bit LE Supported Features value into advertising
    1150              :  * data. The macro encodes 3 least significant bytes into advertising data.
    1151              :  * Other 6 bytes are not encoded.
    1152              :  *
    1153              :  * Example of how to encode the `0x000000DFF00DF00D` into advertising data.
    1154              :  *
    1155              :  * @code
    1156              :  * BT_DATA_BYTES(BT_DATA_LE_SUPPORTED_FEATURES, BT_LE_SUPP_FEAT_16_ENCODE(0x000000DFF00DF00D))
    1157              :  * @endcode
    1158              :  *
    1159              :  * @param w64 LE Supported Features value (64-bits)
    1160              :  *
    1161              :  * @return The comma separated values for LE Supported Features value that
    1162              :  *         may be used directly as an argument for @ref BT_DATA_BYTES.
    1163              :  */
    1164            1 : #define BT_LE_SUPP_FEAT_16_ENCODE(w64) BT_BYTES_LIST_LE16(w64)
    1165              : 
    1166              : /**
    1167              :  * @brief Encode the least significant byte of 64-bit LE Supported Features into
    1168              :  *        single byte long array.
    1169              :  *
    1170              :  * Helper macro to encode 64-bit LE Supported Features value into advertising
    1171              :  * data. The macro encodes the least significant byte into advertising data.
    1172              :  * Other 7 bytes are not encoded.
    1173              :  *
    1174              :  * Example of how to encode the `0x000000DFF00DF00D` into advertising data.
    1175              :  *
    1176              :  * @code
    1177              :  * BT_DATA_BYTES(BT_DATA_LE_SUPPORTED_FEATURES, BT_LE_SUPP_FEAT_8_ENCODE(0x000000DFF00DF00D))
    1178              :  * @endcode
    1179              :  *
    1180              :  * @param w64 LE Supported Features value (64-bits)
    1181              :  *
    1182              :  * @return The value of least significant byte of LE Supported Features value
    1183              :  *         that may be used directly as an argument for @ref BT_DATA_BYTES.
    1184              :  */
    1185            1 : #define BT_LE_SUPP_FEAT_8_ENCODE(w64) \
    1186              :         (((w64) >> 0) & 0xFF)
    1187              : 
    1188              : /**
    1189              :  * @brief Validate whether LE Supported Features value does not use bits that are reserved for
    1190              :  *        future use.
    1191              :  *
    1192              :  * Helper macro to check if @p w64 has zeros as bits 40-63. The macro is compliant with BT 5.3
    1193              :  * Core Specification where bits 0-40 has assigned values. In case of invalid value, build time
    1194              :  * error is reported.
    1195              :  */
    1196            1 : #define BT_LE_SUPP_FEAT_VALIDATE(w64) \
    1197              :         BUILD_ASSERT(!((w64) & (~BIT64_MASK(40))), \
    1198              :                      "RFU bit in LE Supported Features are not zeros.")
    1199              : 
    1200              : /**
    1201              :  * @}
    1202              :  */
    1203              : 
    1204              : #ifdef __cplusplus
    1205              : }
    1206              : #endif
    1207              : 
    1208              : #endif /* ZEPHYR_INCLUDE_BLUETOOTH_GAP_H_ */
        

Generated by: LCOV version 2.0-1