add rccd2 for PPC3 TAS2557 app end-system integration
[tas2557sw-android/tas2557-stereo-util.git] / rccd2 / include / utils.h
1 #ifndef UTILS_H_
2 #define UTILS_H_
4 #include <stdio.h>
5 #include <getopt.h>
7 #include "host_compile.h"
9 extern int verbose;
10 void error(char *fmt, ...);
11 void warn(char *fmt, ...);
12 void dbg(const char *f, int ln, char *fmt, ...);
14 #define warn_once(f, ...) do {                              \
15                                 static int prn_out__ = 0;   \
16                                 if (!prn_out__)  {          \
17                                     warn(f, ##__VA_ARGS__); \
18                                     prn_out__ = 1;          \
19                                 }                           \
20                             } while (0)
22     
23 #define DBG(f, ...) dbg(__FILE__, __LINE__, f, ##__VA_ARGS__)
24 #define DBGF(f, ...) dbg(__FUNCTION__, __LINE__, f, ##__VA_ARGS__)
26 #define ARRAY_LEN(x) ((int)(sizeof(x)/sizeof((x)[0])))
27 #define MAX2(x, y)(((x)>(y))?(x):(y))
28 #define MIN2(x, y)(((x)<(y))?(x):(y))
31 #ifdef WIN32
32 char *strcasestr(const char *haystack, const char *needle);
33 #endif
35 #define ALLOC(x) safe_alloc(__FUNCTION__, __FILE__, __LINE__, x)
36 #define REALLOC(x, n) do { \
37         (x) = realloc((x), n); \
38         if (!(x)) { \
39             error("out of memory: request for %d bytes in %s() [%s:%d]", \
40                 n, __FUNCTION__, __FILE__, __LINE__); \
41         } \
42     } while (0)
44 void *safe_alloc(const char *fn, const char *file,  int ln, int n);
45 void safe_snprintf(char *str, size_t size, const char *format, ...);
47 int flt2fix(char *s);
48 void *slurp(const char *f, int *np);
50 char *make_opts(const struct option *opts);
51 char *change_extn(const char *fname, char *ext);
52 char *get_extn(const char *fname);
53 double clkspec(const char *mclk);
55 void add_path(char *path);
56 FILE *loc_and_open(char *file);
57 int file_exists(const char *path);
59 int split(const char *s, char ***flds);
60 void free_flds(char **flds, int n);
63 #ifndef __ARMEL__
64 // No regexp library installed for Linux/Android
65 //int grok_reg_spec(const char *exp, union aic_register *r);
66 #endif
68 #endif