Skip to content

Commit

Permalink
Bluetooth: Add bt_status
Browse files Browse the repository at this point in the history
This adds bt_status which can be used to convert Unix errno to
Bluetooth status.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
  • Loading branch information
Vudentz committed Jul 22, 2022
1 parent 1bbf402 commit ca2045e
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/net/bluetooth/bluetooth.h
Original file line number Diff line number Diff line change
Expand Up @@ -521,6 +521,7 @@ static inline struct sk_buff *bt_skb_sendmmsg(struct sock *sk,
}

int bt_to_errno(u16 code);
__u8 bt_status(int err);

void hci_sock_set_flag(struct sock *sk, int nr);
void hci_sock_clear_flag(struct sock *sk, int nr);
Expand Down
71 changes: 71 additions & 0 deletions net/bluetooth/lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,77 @@ int bt_to_errno(__u16 code)
}
EXPORT_SYMBOL(bt_to_errno);

/* Unix errno to Bluetooth error codes mapping */
__u8 bt_status(int err)
{
/* Don't convert if already positive value */
if (err >= 0)
return err;

switch (err) {
case -EBADRQC:
return 0x01;

case -ENOTCONN:
return 0x02;

case -EIO:
return 0x03;

case -EHOSTDOWN:
return 0x04;

case -EACCES:
return 0x05;

case -EBADE:
return 0x06;

case -ENOMEM:
return 0x07;

case -ETIMEDOUT:
return 0x08;

case -EMLINK:
return 0x09;

case EALREADY:
return 0x0b;

case -EBUSY:
return 0x0c;

case -ECONNREFUSED:
return 0x0d;

case -EOPNOTSUPP:
return 0x11;

case -EINVAL:
return 0x12;

case -ECONNRESET:
return 0x13;

case -ECONNABORTED:
return 0x16;

case ELOOP:
return 0x17;

case -EPROTONOSUPPORT:
return 0x1a;

case -EPROTO:
return 0x19;

default:
return 0x1f;
}
}
EXPORT_SYMBOL(bt_status);

void bt_info(const char *format, ...)
{
struct va_format vaf;
Expand Down

0 comments on commit ca2045e

Please sign in to comment.