Hi Luiz, >>> 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@xxxxxxxxx> >>> --- >>> include/net/bluetooth/bluetooth.h | 1 + >>> net/bluetooth/lib.c | 71 +++++++++++++++++++++++++++++++ >>> 2 files changed, 72 insertions(+) >>> >>> diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h >>> index 6b48d9e2aab9..cfe6159f26bc 100644 >>> --- a/include/net/bluetooth/bluetooth.h >>> +++ b/include/net/bluetooth/bluetooth.h >>> @@ -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); >>> diff --git a/net/bluetooth/lib.c b/net/bluetooth/lib.c >>> index 5326f41a58b7..469a0c95b6e8 100644 >>> --- a/net/bluetooth/lib.c >>> +++ b/net/bluetooth/lib.c >>> @@ -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); >>> + >> >> why are exporting this? > > Isn't it supposed to be exported since it is part of lib.c? All > functions in this file use it. is it used outside of bluetooth.ko? Regards Marcel