Add the missing HCI error codes
diff --git a/include/hci.h b/include/hci.h
index 2f959fe..e7f0459 100644
--- a/include/hci.h
+++ b/include/hci.h
@@ -186,6 +186,15 @@
 #define HCI_QOS_NOT_SUPPORTED			0x27
 #define HCI_INSTANT_PASSED			0x28
 #define HCI_PAIRING_NOT_SUPPORTED		0x29
+#define HCI_TRANSACTION_COLLISION		0x2a
+#define HCI_QOS_UNACCEPTABLE_PARAMETER		0x2c
+#define HCI_QOS_REJECTED			0x2d
+#define HCI_CLASSIFICATION_NOT_SUPPORTED	0x2e
+#define HCI_INSUFFICIENT_SECURITY		0x2f
+#define HCI_PARAMETER_OUT_OF_RANGE		0x30
+#define HCI_ROLE_SWITCH_PENDING			0x32
+#define HCI_SLOT_VIOLATION			0x34
+#define HCI_ROLE_SWITCH_FAILED			0x35
 
 /* ACL flags */
 #define ACL_CONT		0x01
diff --git a/src/bluetooth.c b/src/bluetooth.c
index 00639d2..20a1aee 100644
--- a/src/bluetooth.c
+++ b/src/bluetooth.c
@@ -133,19 +133,25 @@
 	case HCI_ACL_CONNECTION_EXISTS:
 		return EALREADY;
 	case HCI_COMMAND_DISALLOWED:
+	case HCI_TRANSACTION_COLLISION:
+	case HCI_ROLE_SWITCH_PENDING:
 		return EBUSY;
 	case HCI_REJECTED_LIMITED_RESOURCES:
-	case HCI_REJECTED_SECURITY:
 	case HCI_REJECTED_PERSONAL:
+	case HCI_QOS_REJECTED:
 		return ECONNREFUSED;
 	case HCI_HOST_TIMEOUT:
 		return ETIMEDOUT;
 	case HCI_UNSUPPORTED_FEATURE:
 	case HCI_QOS_NOT_SUPPORTED:
 	case HCI_PAIRING_NOT_SUPPORTED:
+	case HCI_CLASSIFICATION_NOT_SUPPORTED:
 	case HCI_UNSUPPORTED_LMP_PARAMETER_VALUE:
+	case HCI_PARAMETER_OUT_OF_RANGE:
+	case HCI_QOS_UNACCEPTABLE_PARAMETER:
 		return EOPNOTSUPP;
 	case HCI_INVALID_PARAMETERS:
+	case HCI_SLOT_VIOLATION:
 		return EINVAL;
 	case HCI_OE_USER_ENDED_CONNECTION:
 	case HCI_OE_LOW_RESOURCES:
@@ -155,7 +161,9 @@
 		return ECONNABORTED;
 	case HCI_REPEATED_ATTEMPTS:
 		return ELOOP;
+	case HCI_REJECTED_SECURITY:
 	case HCI_PAIRING_NOT_ALLOWED:
+	case HCI_INSUFFICIENT_SECURITY:
 		return EACCES;
 	case HCI_UNSUPPORTED_REMOTE_FEATURE:
 		return EPROTONOSUPPORT;