# include <sys/ioctl.h>
#endif
+#ifdef HAVE_BLUETOOTH_H
+# include <netbt/l2cap.h>
+# include <netbt/rfcomm.h>
+# include <netbt/hci.h>
+# include <netbt/sco.h>
+#endif
#if defined(__sgi) && _COMPILER_VERSION>700 && !_SGIAPI
/* make sure that the reentrant (gethostbyaddr_r etc)
# define BTPROTO_SCO BLUETOOTH_PROTO_SCO
# define SOL_HCI SOL_HCI_RAW
# define HCI_FILTER SO_HCI_RAW_FILTER
+# define HCI_DATA_DIR SO_HCI_RAW_DIRECTION
# define sockaddr_l2 sockaddr_l2cap
# define sockaddr_rc sockaddr_rfcomm
# define hci_dev hci_node
# define bt_sco bt
# define bt_hci bt
# define bt_cid bt_channel
+# define SOL_L2CAP BTPROTO_L2CAP
+# define SOL_RFCOMM BTPROTO_RFCOMM
# define SOL_HCI BTPROTO_HCI
+# define SOL_SCO BTPROTO_SCO
# define HCI_DATA_DIR SO_HCI_DIRECTION
# define _BT_L2_MEMB(sa, memb) ((sa)->bt_##memb)
# define _BT_RC_MEMB(sa, memb) ((sa)->bt_##memb)
ADD_INT_MACRO(m, AF_BLUETOOTH);
#ifdef BTPROTO_L2CAP
ADD_INT_MACRO(m, BTPROTO_L2CAP);
+ ADD_INT_MACRO(m, SOL_L2CAP);
#if defined(BDADDR_BREDR)
ADD_INT_MACRO(m, BDADDR_BREDR);
ADD_INT_MACRO(m, BDADDR_LE_PUBLIC);
ADD_INT_MACRO(m, BDADDR_LE_RANDOM);
#endif
+#ifdef SO_L2CAP_IMTU
+ ADD_INT_MACRO(m, SO_L2CAP_IMTU);
+ ADD_INT_MACRO(m, SO_L2CAP_OMTU);
+ ADD_INT_MACRO(m, SO_L2CAP_FLUSH);
+#endif
+#ifdef SO_L2CAP_IQOS
+ ADD_INT_MACRO(m, SO_L2CAP_IQOS);
+ ADD_INT_MACRO(m, SO_L2CAP_OQOS);
+#endif
+#ifdef SO_L2CAP_ENCRYPTED
+ ADD_INT_MACRO(m, SO_L2CAP_ENCRYPTED);
+#endif
+#ifdef L2CAP_LM
+ ADD_INT_MACRO(m, L2CAP_LM);
+ ADD_INT_MACRO(m, L2CAP_LM_MASTER);
+ ADD_INT_MACRO(m, L2CAP_LM_AUTH);
+ ADD_INT_MACRO(m, L2CAP_LM_ENCRYPT);
+ ADD_INT_MACRO(m, L2CAP_LM_TRUSTED);
+ ADD_INT_MACRO(m, L2CAP_LM_RELIABLE);
+ ADD_INT_MACRO(m, L2CAP_LM_SECURE);
+#endif
+#ifdef SO_L2CAP_LM
+ ADD_INT_MACRO(m, SO_L2CAP_LM);
+ ADD_INT_MACRO(m, L2CAP_LM_AUTH);
+ ADD_INT_MACRO(m, L2CAP_LM_ENCRYPT);
+ ADD_INT_MACRO(m, L2CAP_LM_SECURE);
+#endif
#endif /* BTPROTO_L2CAP */
#ifdef BTPROTO_HCI
ADD_INT_MACRO(m, BTPROTO_HCI);
ADD_INT_MACRO(m, SOL_HCI);
-#if defined(HCI_CHANNEL_RAW)
+#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
+ ADD_INT_MACRO(m, HCI_DEV_NONE);
ADD_INT_MACRO(m, HCI_CHANNEL_RAW);
ADD_INT_MACRO(m, HCI_CHANNEL_USER);
ADD_INT_MACRO(m, HCI_CHANNEL_MONITOR);
ADD_INT_MACRO(m, HCI_CHANNEL_CONTROL);
ADD_INT_MACRO(m, HCI_CHANNEL_LOGGING);
#endif
-#if defined(HCI_FILTER)
+#ifdef HCI_FILTER
ADD_INT_MACRO(m, HCI_FILTER);
#endif
-#if defined(HCI_TIME_STAMP)
- ADD_INT_MACRO(m, HCI_TIME_STAMP);
+#ifdef HCI_DATA_DIR
ADD_INT_MACRO(m, HCI_DATA_DIR);
#endif
+#ifdef HCI_TIME_STAMP
+ ADD_INT_MACRO(m, HCI_TIME_STAMP);
+#endif
+#ifdef SO_HCI_EVT_FILTER
+ ADD_INT_MACRO(m, SO_HCI_EVT_FILTER);
+ ADD_INT_MACRO(m, SO_HCI_PKT_FILTER);
+#endif
#endif /* BTPROTO_HCI */
#ifdef BTPROTO_RFCOMM
ADD_INT_MACRO(m, BTPROTO_RFCOMM);
+ ADD_INT_MACRO(m, SOL_RFCOMM);
+#ifdef SO_RFCOMM_MTU
+ ADD_INT_MACRO(m, SO_RFCOMM_MTU);
+ ADD_INT_MACRO(m, SO_RFCOMM_FC_INFO);
+#endif
+#ifdef SO_RFCOMM_LM
+ ADD_INT_MACRO(m, SO_RFCOMM_LM);
+ ADD_INT_MACRO(m, RFCOMM_LM_AUTH);
+ ADD_INT_MACRO(m, RFCOMM_LM_ENCRYPT);
+ ADD_INT_MACRO(m, RFCOMM_LM_SECURE);
+#endif
+#ifdef MS_WINDOWS_DESKTOP
+ ADD_INT_MACRO(m, SO_BTH_ENCRYPT);
+ ADD_INT_MACRO(m, SO_BTH_MTU);
+ ADD_INT_MACRO(m, SO_BTH_MTU_MAX);
+ ADD_INT_MACRO(m, SO_BTH_MTU_MIN);
+#endif
#endif /* BTPROTO_RFCOMM */
ADD_STR_CONST(m, "BDADDR_ANY", "00:00:00:00:00:00");
ADD_STR_CONST(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF");
#ifdef BTPROTO_SCO
ADD_INT_MACRO(m, BTPROTO_SCO);
+ ADD_INT_MACRO(m, SOL_SCO);
+#ifdef SO_SCO_MTU
+ ADD_INT_MACRO(m, SO_SCO_MTU);
+#endif
+#ifdef SO_SCO_CONNINFO
+ ADD_INT_MACRO(m, SO_SCO_CONNINFO);
+#endif
+#ifdef SO_SCO_HANDLE
+ ADD_INT_MACRO(m, SO_SCO_HANDLE);
+#endif
#endif /* BTPROTO_SCO */
+#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
+ ADD_INT_MACRO(m, SOL_BLUETOOTH);
+ ADD_INT_MACRO(m, BT_SECURITY);
+ ADD_INT_MACRO(m, BT_SECURITY_SDP);
+ ADD_INT_MACRO(m, BT_SECURITY_LOW);
+ ADD_INT_MACRO(m, BT_SECURITY_MEDIUM);
+ ADD_INT_MACRO(m, BT_SECURITY_HIGH);
+#ifdef BT_SECURITY_FIPS
+ ADD_INT_MACRO(m, BT_SECURITY_FIPS);
+#endif
+#ifdef BT_DEFER_SETUP
+ ADD_INT_MACRO(m, BT_DEFER_SETUP);
+#endif
+ ADD_INT_MACRO(m, BT_FLUSHABLE);
+ ADD_INT_MACRO(m, BT_FLUSHABLE_OFF);
+ ADD_INT_MACRO(m, BT_FLUSHABLE_ON);
+ ADD_INT_MACRO(m, BT_POWER);
+ ADD_INT_MACRO(m, BT_POWER_FORCE_ACTIVE_OFF);
+ ADD_INT_MACRO(m, BT_POWER_FORCE_ACTIVE_ON);
+ ADD_INT_MACRO(m, BT_CHANNEL_POLICY);
+ ADD_INT_MACRO(m, BT_CHANNEL_POLICY_BREDR_ONLY);
+ ADD_INT_MACRO(m, BT_CHANNEL_POLICY_BREDR_PREFERRED);
+ ADD_INT_MACRO(m, BT_CHANNEL_POLICY_BREDR_PREFERRED);
+ ADD_INT_MACRO(m, BT_VOICE);
+ ADD_INT_MACRO(m, BT_VOICE_TRANSPARENT);
+ ADD_INT_MACRO(m, BT_VOICE_CVSD_16BIT);
+#ifdef BT_VOICE_TRANSPARENT_16BIT
+ ADD_INT_MACRO(m, BT_VOICE_TRANSPARENT_16BIT);
+#endif
+ ADD_INT_MACRO(m, BT_SNDMTU);
+ ADD_INT_MACRO(m, BT_RCVMTU);
+ ADD_INT_MACRO(m, BT_PHY);
+ ADD_INT_MACRO(m, BT_PHY_BR_1M_1SLOT);
+ ADD_INT_MACRO(m, BT_PHY_BR_1M_3SLOT);
+ ADD_INT_MACRO(m, BT_PHY_BR_1M_5SLOT);
+ ADD_INT_MACRO(m, BT_PHY_EDR_2M_1SLOT);
+ ADD_INT_MACRO(m, BT_PHY_EDR_2M_3SLOT);
+ ADD_INT_MACRO(m, BT_PHY_EDR_2M_5SLOT);
+ ADD_INT_MACRO(m, BT_PHY_EDR_3M_1SLOT);
+ ADD_INT_MACRO(m, BT_PHY_EDR_3M_3SLOT);
+ ADD_INT_MACRO(m, BT_PHY_EDR_3M_5SLOT);
+ ADD_INT_MACRO(m, BT_PHY_LE_1M_TX);
+ ADD_INT_MACRO(m, BT_PHY_LE_1M_RX);
+ ADD_INT_MACRO(m, BT_PHY_LE_2M_TX);
+ ADD_INT_MACRO(m, BT_PHY_LE_2M_RX);
+ ADD_INT_MACRO(m, BT_PHY_LE_CODED_TX);
+ ADD_INT_MACRO(m, BT_PHY_LE_CODED_RX);
+ ADD_INT_MACRO(m, BT_MODE);
+ ADD_INT_MACRO(m, BT_MODE_BASIC);
+ ADD_INT_MACRO(m, BT_MODE_ERTM);
+ ADD_INT_MACRO(m, BT_MODE_STREAMING);
+ ADD_INT_MACRO(m, BT_MODE_LE_FLOWCTL);
+ ADD_INT_MACRO(m, BT_MODE_EXT_FLOWCTL);
+ ADD_INT_MACRO(m, BT_PKT_STATUS);
+ ADD_INT_MACRO(m, BT_ISO_QOS);
+ ADD_INT_MACRO(m, BT_CODEC);
+#endif /* HAVE_BLUETOOTH_BLUETOOTH_H */
#endif /* USE_BLUETOOTH */
#ifdef AF_CAN