Re: [PATCH 1/3] Bluetooth: Add bt_status

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?
> 
> Currently not, I just thought it would be convenient to have it
> accessible for the drivers as well since it is complementary to
> bt_to_errno.

drivers should really not need this. They should not have to look at HCI error status. They are pure transport drivers.

Regards

Marcel




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux