1209139Srpaulo/*
2209139Srpaulo * wpa_supplicant/hostapd / Empty OS specific functions
3209139Srpaulo * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
4209139Srpaulo *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7209139Srpaulo *
8209139Srpaulo * This file can be used as a starting point when adding a new OS target. The
9209139Srpaulo * functions here do not really work as-is since they are just empty or only
10209139Srpaulo * return an error value. os_internal.c can be used as another starting point
11209139Srpaulo * or reference since it has example implementation of many of these functions.
12209139Srpaulo */
13209139Srpaulo
14209139Srpaulo#include "includes.h"
15209139Srpaulo
16209139Srpaulo#include "os.h"
17209139Srpaulo
18209139Srpaulovoid os_sleep(os_time_t sec, os_time_t usec)
19209139Srpaulo{
20209139Srpaulo}
21209139Srpaulo
22209139Srpaulo
23209139Srpauloint os_get_time(struct os_time *t)
24209139Srpaulo{
25209139Srpaulo	return -1;
26209139Srpaulo}
27209139Srpaulo
28209139Srpaulo
29281806Srpauloint os_get_reltime(struct os_reltime *t)
30281806Srpaulo{
31281806Srpaulo	return -1;
32281806Srpaulo}
33281806Srpaulo
34281806Srpaulo
35209139Srpauloint os_mktime(int year, int month, int day, int hour, int min, int sec,
36209139Srpaulo	      os_time_t *t)
37209139Srpaulo{
38209139Srpaulo	return -1;
39209139Srpaulo}
40209139Srpaulo
41252726Srpauloint os_gmtime(os_time_t t, struct os_tm *tm)
42252726Srpaulo{
43252726Srpaulo	return -1;
44252726Srpaulo}
45209139Srpaulo
46252726Srpaulo
47209139Srpauloint os_daemonize(const char *pid_file)
48209139Srpaulo{
49209139Srpaulo	return -1;
50209139Srpaulo}
51209139Srpaulo
52209139Srpaulo
53209139Srpaulovoid os_daemonize_terminate(const char *pid_file)
54209139Srpaulo{
55209139Srpaulo}
56209139Srpaulo
57209139Srpaulo
58209139Srpauloint os_get_random(unsigned char *buf, size_t len)
59209139Srpaulo{
60209139Srpaulo	return -1;
61209139Srpaulo}
62209139Srpaulo
63209139Srpaulo
64209139Srpaulounsigned long os_random(void)
65209139Srpaulo{
66209139Srpaulo	return 0;
67209139Srpaulo}
68209139Srpaulo
69209139Srpaulo
70209139Srpaulochar * os_rel2abs_path(const char *rel_path)
71209139Srpaulo{
72209139Srpaulo	return NULL; /* strdup(rel_path) can be used here */
73209139Srpaulo}
74209139Srpaulo
75209139Srpaulo
76209139Srpauloint os_program_init(void)
77209139Srpaulo{
78209139Srpaulo	return 0;
79209139Srpaulo}
80209139Srpaulo
81209139Srpaulo
82209139Srpaulovoid os_program_deinit(void)
83209139Srpaulo{
84209139Srpaulo}
85209139Srpaulo
86209139Srpaulo
87209139Srpauloint os_setenv(const char *name, const char *value, int overwrite)
88209139Srpaulo{
89209139Srpaulo	return -1;
90209139Srpaulo}
91209139Srpaulo
92209139Srpaulo
93209139Srpauloint os_unsetenv(const char *name)
94209139Srpaulo{
95209139Srpaulo	return -1;
96209139Srpaulo}
97209139Srpaulo
98209139Srpaulo
99209139Srpaulochar * os_readfile(const char *name, size_t *len)
100209139Srpaulo{
101209139Srpaulo	return NULL;
102209139Srpaulo}
103209139Srpaulo
104209139Srpaulo
105289549Srpauloint os_fdatasync(FILE *stream)
106289549Srpaulo{
107289549Srpaulo	return 0;
108289549Srpaulo}
109289549Srpaulo
110289549Srpaulo
111209139Srpaulovoid * os_zalloc(size_t size)
112209139Srpaulo{
113209139Srpaulo	return NULL;
114209139Srpaulo}
115209139Srpaulo
116209139Srpaulo
117346981Scyvoid * os_memdup(const void *src, size_t n)
118346981Scy{
119346981Scy	return NULL;
120346981Scy}
121346981Scy
122346981Scy
123209139Srpaulo#ifdef OS_NO_C_LIB_DEFINES
124209139Srpaulovoid * os_malloc(size_t size)
125209139Srpaulo{
126209139Srpaulo	return NULL;
127209139Srpaulo}
128209139Srpaulo
129209139Srpaulo
130209139Srpaulovoid * os_realloc(void *ptr, size_t size)
131209139Srpaulo{
132209139Srpaulo	return NULL;
133209139Srpaulo}
134209139Srpaulo
135209139Srpaulo
136209139Srpaulovoid os_free(void *ptr)
137209139Srpaulo{
138209139Srpaulo}
139209139Srpaulo
140209139Srpaulo
141209139Srpaulovoid * os_memcpy(void *dest, const void *src, size_t n)
142209139Srpaulo{
143209139Srpaulo	return dest;
144209139Srpaulo}
145209139Srpaulo
146209139Srpaulo
147209139Srpaulovoid * os_memmove(void *dest, const void *src, size_t n)
148209139Srpaulo{
149209139Srpaulo	return dest;
150209139Srpaulo}
151209139Srpaulo
152209139Srpaulo
153209139Srpaulovoid * os_memset(void *s, int c, size_t n)
154209139Srpaulo{
155209139Srpaulo	return s;
156209139Srpaulo}
157209139Srpaulo
158209139Srpaulo
159209139Srpauloint os_memcmp(const void *s1, const void *s2, size_t n)
160209139Srpaulo{
161209139Srpaulo	return 0;
162209139Srpaulo}
163209139Srpaulo
164209139Srpaulo
165209139Srpaulochar * os_strdup(const char *s)
166209139Srpaulo{
167209139Srpaulo	return NULL;
168209139Srpaulo}
169209139Srpaulo
170209139Srpaulo
171209139Srpaulosize_t os_strlen(const char *s)
172209139Srpaulo{
173209139Srpaulo	return 0;
174209139Srpaulo}
175209139Srpaulo
176209139Srpaulo
177209139Srpauloint os_strcasecmp(const char *s1, const char *s2)
178209139Srpaulo{
179209139Srpaulo	/*
180209139Srpaulo	 * Ignoring case is not required for main functionality, so just use
181209139Srpaulo	 * the case sensitive version of the function.
182209139Srpaulo	 */
183209139Srpaulo	return os_strcmp(s1, s2);
184209139Srpaulo}
185209139Srpaulo
186209139Srpaulo
187209139Srpauloint os_strncasecmp(const char *s1, const char *s2, size_t n)
188209139Srpaulo{
189209139Srpaulo	/*
190209139Srpaulo	 * Ignoring case is not required for main functionality, so just use
191209139Srpaulo	 * the case sensitive version of the function.
192209139Srpaulo	 */
193209139Srpaulo	return os_strncmp(s1, s2, n);
194209139Srpaulo}
195209139Srpaulo
196209139Srpaulo
197209139Srpaulochar * os_strchr(const char *s, int c)
198209139Srpaulo{
199209139Srpaulo	return NULL;
200209139Srpaulo}
201209139Srpaulo
202209139Srpaulo
203209139Srpaulochar * os_strrchr(const char *s, int c)
204209139Srpaulo{
205209139Srpaulo	return NULL;
206209139Srpaulo}
207209139Srpaulo
208209139Srpaulo
209209139Srpauloint os_strcmp(const char *s1, const char *s2)
210209139Srpaulo{
211209139Srpaulo	return 0;
212209139Srpaulo}
213209139Srpaulo
214209139Srpaulo
215209139Srpauloint os_strncmp(const char *s1, const char *s2, size_t n)
216209139Srpaulo{
217209139Srpaulo	return 0;
218209139Srpaulo}
219209139Srpaulo
220209139Srpaulo
221209139Srpaulosize_t os_strlcpy(char *dest, const char *src, size_t size)
222209139Srpaulo{
223209139Srpaulo	return 0;
224209139Srpaulo}
225209139Srpaulo
226209139Srpaulo
227281806Srpauloint os_memcmp_const(const void *a, const void *b, size_t len)
228281806Srpaulo{
229281806Srpaulo	return 0;
230281806Srpaulo}
231281806Srpaulo
232209139Srpaulochar * os_strstr(const char *haystack, const char *needle)
233209139Srpaulo{
234209139Srpaulo	return NULL;
235209139Srpaulo}
236209139Srpaulo
237209139Srpaulo
238209139Srpauloint os_snprintf(char *str, size_t size, const char *format, ...)
239209139Srpaulo{
240209139Srpaulo	return 0;
241209139Srpaulo}
242209139Srpaulo#endif /* OS_NO_C_LIB_DEFINES */
243281806Srpaulo
244281806Srpaulo
245281806Srpauloint os_exec(const char *program, const char *arg, int wait_completion)
246281806Srpaulo{
247281806Srpaulo	return -1;
248281806Srpaulo}
249