blob: 8b4ebd92e2220bb0d6e8095806b5111f68ffcdde [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001
2/******************************************************************************
3*(C) Copyright 2015 Marvell International Ltd.
4* All Rights Reserved
5******************************************************************************/
6
7#ifndef __CHL_UTIL__
8#define __CHL_UTIL__
9
10#define _FILE_ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
11
12#ifdef LOGCAT
13#define CHL_PRINTF(f_, ...) RDBGMSG("%s:%d " f_, _FILE_ , \
14 __LINE__, ##__VA_ARGS__)
15#define CHL_DBG(f_, ...) RDBGMSG("%s:%d " f_, _FILE_ , __LINE__, ##__VA_ARGS__)
16#define CHL_INFO(f_, ...) RINFOMSG("%s:%d " f_, _FILE_ , __LINE__, ##__VA_ARGS__)
17#define CHL_WARN(f_, ...) RWARNMSG("%s:%d " f_, _FILE_ , __LINE__, ##__VA_ARGS__)
18#define CHL_ERR(f_, ...) RERRMSG("%s:%d " f_, _FILE_ , __LINE__, ##__VA_ARGS__)
19#else
20#define CHL_PRINTF(f_, ...) printf("%s:%d " f_, _FILE_ , __LINE__, ##__VA_ARGS__)
21#define CHL_DBG(f_, ...) CHL_PRINTF(f_, ##__VA_ARGS__)
22#define CHL_INFO(f_, ...) CHL_PRINTF(f_, ##__VA_ARGS__)
23#define CHL_WARN(f_, ...) CHL_PRINTF("WARNING: " f_, ##__VA_ARGS__)
24#define CHL_ERR(f_, ...) CHL_PRINTF("ERROR: " f_, ##__VA_ARGS__)
25#endif
26
27#define max(a,b) \
28 ({ __typeof__ (a) _a = (a); \
29 __typeof__ (b) _b = (b); \
30 _a > _b ? _a : _b; })
31
32int validate_ip(const char *addr, int family);
33int get_global_ipv6(const char *ifname, char *addr, int *prefix);
34bool str_starts_with(const char *prefix, const char *str);
35void cid_to_ccinet(int cid, char *ccinet);
36void cid_to_section(int cid, char *wan);
37void cid_to_section6(int cid, char *wan6);
38#endif