forked from mirrors/linux
		
	Bluetooth: Add bt_status
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>
This commit is contained in:
		
							parent
							
								
									1bbf4023cf
								
							
						
					
					
						commit
						ca2045e059
					
				
					 2 changed files with 72 additions and 0 deletions
				
			
		| 
						 | 
					@ -521,6 +521,7 @@ static inline struct sk_buff *bt_skb_sendmmsg(struct sock *sk,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int bt_to_errno(u16 code);
 | 
					int bt_to_errno(u16 code);
 | 
				
			||||||
 | 
					__u8 bt_status(int err);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void hci_sock_set_flag(struct sock *sk, int nr);
 | 
					void hci_sock_set_flag(struct sock *sk, int nr);
 | 
				
			||||||
void hci_sock_clear_flag(struct sock *sk, int nr);
 | 
					void hci_sock_clear_flag(struct sock *sk, int nr);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -135,6 +135,77 @@ int bt_to_errno(__u16 code)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL(bt_to_errno);
 | 
					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, ...)
 | 
					void bt_info(const char *format, ...)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct va_format vaf;
 | 
						struct va_format vaf;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue