Commit | Line | Data |
---|---|---|
890a3ee3 AS |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _LINUX_HEX_H | |
3 | #define _LINUX_HEX_H | |
4 | ||
5 | #include <linux/types.h> | |
6 | ||
7 | extern const char hex_asc[]; | |
8 | #define hex_asc_lo(x) hex_asc[((x) & 0x0f)] | |
9 | #define hex_asc_hi(x) hex_asc[((x) & 0xf0) >> 4] | |
10 | ||
11 | static inline char *hex_byte_pack(char *buf, u8 byte) | |
12 | { | |
13 | *buf++ = hex_asc_hi(byte); | |
14 | *buf++ = hex_asc_lo(byte); | |
15 | return buf; | |
16 | } | |
17 | ||
18 | extern const char hex_asc_upper[]; | |
19 | #define hex_asc_upper_lo(x) hex_asc_upper[((x) & 0x0f)] | |
20 | #define hex_asc_upper_hi(x) hex_asc_upper[((x) & 0xf0) >> 4] | |
21 | ||
22 | static inline char *hex_byte_pack_upper(char *buf, u8 byte) | |
23 | { | |
24 | *buf++ = hex_asc_upper_hi(byte); | |
25 | *buf++ = hex_asc_upper_lo(byte); | |
26 | return buf; | |
27 | } | |
28 | ||
29 | extern int hex_to_bin(unsigned char ch); | |
30 | extern int __must_check hex2bin(u8 *dst, const char *src, size_t count); | |
31 | extern char *bin2hex(char *dst, const void *src, size_t count); | |
32 | ||
33 | bool mac_pton(const char *s, u8 *mac); | |
34 | ||
35 | #endif |