1 /*
2  * wpa_supplicant/hostapd / Empty OS specific functions
3  * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  *
8  * This file can be used as a starting point when adding a new OS target. The
9  * functions here do not really work as-is since they are just empty or only
10  * return an error value. os_internal.c can be used as another starting point
11  * or reference since it has example implementation of many of these functions.
12  */
13 
14 #include "includes.h"
15 
16 #include "os.h"
17 
18 void os_sleep(os_time_t sec, os_time_t usec)
19 {
20 }
21 
22 
23 int os_get_time(struct os_time *t)
24 {
25 	return -1;
26 }
27 
28 
29 int os_get_reltime(struct os_reltime *t)
30 {
31 	return -1;
32 }
33 
34 
35 int os_mktime(int year, int month, int day, int hour, int min, int sec,
36 	      os_time_t *t)
37 {
38 	return -1;
39 }
40 
41 int os_gmtime(os_time_t t, struct os_tm *tm)
42 {
43 	return -1;
44 }
45 
46 
47 int os_daemonize(const char *pid_file)
48 {
49 	return -1;
50 }
51 
52 
53 void os_daemonize_terminate(const char *pid_file)
54 {
55 }
56 
57 
58 int os_get_random(unsigned char *buf, size_t len)
59 {
60 	return -1;
61 }
62 
63 
64 unsigned long os_random(void)
65 {
66 	return 0;
67 }
68 
69 
70 char * os_rel2abs_path(const char *rel_path)
71 {
72 	return NULL; /* strdup(rel_path) can be used here */
73 }
74 
75 
76 int os_program_init(void)
77 {
78 	return 0;
79 }
80 
81 
82 void os_program_deinit(void)
83 {
84 }
85 
86 
87 int os_setenv(const char *name, const char *value, int overwrite)
88 {
89 	return -1;
90 }
91 
92 
93 int os_unsetenv(const char *name)
94 {
95 	return -1;
96 }
97 
98 
99 char * os_readfile(const char *name, size_t *len)
100 {
101 	return NULL;
102 }
103 
104 
105 int os_fdatasync(FILE *stream)
106 {
107 	return 0;
108 }
109 
110 
111 void * os_zalloc(size_t size)
112 {
113 	return NULL;
114 }
115 
116 
117 void * os_memdup(const void *src, size_t n)
118 {
119 	return NULL;
120 }
121 
122 
123 #ifdef OS_NO_C_LIB_DEFINES
124 void * os_malloc(size_t size)
125 {
126 	return NULL;
127 }
128 
129 
130 void * os_realloc(void *ptr, size_t size)
131 {
132 	return NULL;
133 }
134 
135 
136 void os_free(void *ptr)
137 {
138 }
139 
140 
141 void * os_memcpy(void *dest, const void *src, size_t n)
142 {
143 	return dest;
144 }
145 
146 
147 void * os_memmove(void *dest, const void *src, size_t n)
148 {
149 	return dest;
150 }
151 
152 
153 void * os_memset(void *s, int c, size_t n)
154 {
155 	return s;
156 }
157 
158 
159 int os_memcmp(const void *s1, const void *s2, size_t n)
160 {
161 	return 0;
162 }
163 
164 
165 char * os_strdup(const char *s)
166 {
167 	return NULL;
168 }
169 
170 
171 size_t os_strlen(const char *s)
172 {
173 	return 0;
174 }
175 
176 
177 int os_strcasecmp(const char *s1, const char *s2)
178 {
179 	/*
180 	 * Ignoring case is not required for main functionality, so just use
181 	 * the case sensitive version of the function.
182 	 */
183 	return os_strcmp(s1, s2);
184 }
185 
186 
187 int os_strncasecmp(const char *s1, const char *s2, size_t n)
188 {
189 	/*
190 	 * Ignoring case is not required for main functionality, so just use
191 	 * the case sensitive version of the function.
192 	 */
193 	return os_strncmp(s1, s2, n);
194 }
195 
196 
197 char * os_strchr(const char *s, int c)
198 {
199 	return NULL;
200 }
201 
202 
203 char * os_strrchr(const char *s, int c)
204 {
205 	return NULL;
206 }
207 
208 
209 int os_strcmp(const char *s1, const char *s2)
210 {
211 	return 0;
212 }
213 
214 
215 int os_strncmp(const char *s1, const char *s2, size_t n)
216 {
217 	return 0;
218 }
219 
220 
221 size_t os_strlcpy(char *dest, const char *src, size_t size)
222 {
223 	return 0;
224 }
225 
226 
227 int os_memcmp_const(const void *a, const void *b, size_t len)
228 {
229 	return 0;
230 }
231 
232 char * os_strstr(const char *haystack, const char *needle)
233 {
234 	return NULL;
235 }
236 
237 
238 int os_snprintf(char *str, size_t size, const char *format, ...)
239 {
240 	return 0;
241 }
242 #endif /* OS_NO_C_LIB_DEFINES */
243 
244 
245 int os_exec(const char *program, const char *arg, int wait_completion)
246 {
247 	return -1;
248 }
249