60ceec3ece44b8ea43680c92686a8551fabe710b
[keystone-rtos/netapi.git] / ti / runtime / netapi / demo / src / navl_external_posix.c
1 #include <navl/navl.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <ctype.h>
5 #include <string.h>
6 #include <time.h>
7 #include <arpa/inet.h>
8 #include <sys/time.h>
9 #include <math.h>
10 #include <pthread.h>
11 #include <unistd.h>
12 #include <stdarg.h>
13 #include <sys/types.h>
14 #include <sys/socket.h>
15 #include <netinet/in.h>
16 #include <arpa/inet.h>
19 int malloc_inst=0;
20 int malloc_bytes=0;
21 void* our_malloc(size_t n)
22 {
23     malloc_inst+=1;
24     malloc_bytes+= n;
25     return (malloc(n));
26 }
27 int null_log_message(const char *level, const char *func, const char *format, ... )
28 {
29     return 0;
30 }
32 int printf_log_message(const char *level, const char *func, const char *format, ... )
33 {
34     int res = 0;
35     char buf[4096];
36     va_list va;
37     va_start(va, format);
39     res = snprintf(buf, 4096, "%s: %s: ", level, func);
40     res += vsnprintf(buf + res, 4096 - res, format, va);
41         navl_diag_printf(buf);
42     va_end(va);
43     return res;
44 }
46 void bind_navl_externals()
47 {
48     /* memory allocation */
49     navl_malloc_local = our_malloc;
50     navl_free_local = free;
51     navl_malloc_shared = our_malloc;
52     navl_free_shared = free;
54     /* ctype */
55     navl_islower = islower;
56     navl_isupper = isupper;
57     navl_tolower = tolower;
58     navl_toupper = toupper;
59     navl_isalnum = isalnum;
60     navl_isspace = isspace;
61     navl_isdigit = isdigit;
63     /* string functions */
64     navl_atoi = atoi;
65     navl_memcpy = memcpy;
66     navl_memcmp = memcmp;
67     navl_memset = memset;
68     navl_strcasecmp = strcasecmp;
69     navl_strchr = (const char* (*)(const char*, int))strchr;
70     navl_strrchr = (const char* (*)(const char*, int))strrchr;
71     navl_strcmp = strcmp;
72     navl_strncmp = strncmp;
73     navl_strcpy = strcpy;
74     navl_strncpy = strncpy;
75     navl_strerror = strerror;
76     navl_strftime = (size_t (*)(char*, size_t, const char*, const struct navl_tm*))strftime;
77     navl_strlen = strlen;
78     navl_strpbrk = (const char* (*)(const char*, const char*))strpbrk;
79     navl_strstr = (const char* (*)(const char*, const char*))strstr;
80     navl_strtol = strtol;
82     /* input/output */
83     navl_printf = printf;
84     navl_sprintf = sprintf;
85     navl_snprintf = snprintf;
86     navl_sscanf = sscanf;
87     navl_putchar = putchar;
88     navl_puts = puts;
89     navl_diag_printf = printf;
91     /* time */
92     navl_gettimeofday = (int (*)(struct navl_timeval*, void*))gettimeofday;
93     navl_mktime = (navl_time_t (*)(struct navl_tm*))mktime;
95     /* math */
96     navl_log = log;
97     navl_fabs = fabs;
99 #if 0
100     /* network */
101 #ifndef __mips__
102     navl_htonl = htonl;
103     navl_htons = htons;
104     navl_ntohl = ntohl;
105     navl_ntohs = ntohs;
106 #endif
107 #endif
108     /* system */
109     navl_abort = abort;
110     navl_get_thread_id = (unsigned long (*)(void))pthread_self;
112     /* navl specific */
113 #ifdef DEBUG
114     navl_log_message = printf_log_message;
115 #else
116     navl_log_message = null_log_message;
117 #endif