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
18void os_sleep(os_time_t sec, os_time_t usec)
19{
20}
21
22
23int os_get_time(struct os_time *t)
24{
25	return -1;
26}
27
28
29int os_mktime(int year, int month, int day, int hour, int min, int sec,
30	      os_time_t *t)
31{
32	return -1;
33}
34
35int os_gmtime(os_time_t t, struct os_tm *tm)
36{
37	return -1;
38}
39
40
41int os_daemonize(const char *pid_file)
42{
43	return -1;
44}
45
46
47void os_daemonize_terminate(const char *pid_file)
48{
49}
50
51
52int os_get_random(unsigned char *buf, size_t len)
53{
54	return -1;
55}
56
57
58unsigned long os_random(void)
59{
60	return 0;
61}
62
63
64char * os_rel2abs_path(const char *rel_path)
65{
66	return NULL; /* strdup(rel_path) can be used here */
67}
68
69
70int os_program_init(void)
71{
72	return 0;
73}
74
75
76void os_program_deinit(void)
77{
78}
79
80
81int os_setenv(const char *name, const char *value, int overwrite)
82{
83	return -1;
84}
85
86
87int os_unsetenv(const char *name)
88{
89	return -1;
90}
91
92
93char * os_readfile(const char *name, size_t *len)
94{
95	return NULL;
96}
97
98
99void * os_zalloc(size_t size)
100{
101	return NULL;
102}
103
104
105#ifdef OS_NO_C_LIB_DEFINES
106void * os_malloc(size_t size)
107{
108	return NULL;
109}
110
111
112void * os_realloc(void *ptr, size_t size)
113{
114	return NULL;
115}
116
117
118void os_free(void *ptr)
119{
120}
121
122
123void * os_memcpy(void *dest, const void *src, size_t n)
124{
125	return dest;
126}
127
128
129void * os_memmove(void *dest, const void *src, size_t n)
130{
131	return dest;
132}
133
134
135void * os_memset(void *s, int c, size_t n)
136{
137	return s;
138}
139
140
141int os_memcmp(const void *s1, const void *s2, size_t n)
142{
143	return 0;
144}
145
146
147char * os_strdup(const char *s)
148{
149	return NULL;
150}
151
152
153size_t os_strlen(const char *s)
154{
155	return 0;
156}
157
158
159int os_strcasecmp(const char *s1, const char *s2)
160{
161	/*
162	 * Ignoring case is not required for main functionality, so just use
163	 * the case sensitive version of the function.
164	 */
165	return os_strcmp(s1, s2);
166}
167
168
169int os_strncasecmp(const char *s1, const char *s2, size_t n)
170{
171	/*
172	 * Ignoring case is not required for main functionality, so just use
173	 * the case sensitive version of the function.
174	 */
175	return os_strncmp(s1, s2, n);
176}
177
178
179char * os_strchr(const char *s, int c)
180{
181	return NULL;
182}
183
184
185char * os_strrchr(const char *s, int c)
186{
187	return NULL;
188}
189
190
191int os_strcmp(const char *s1, const char *s2)
192{
193	return 0;
194}
195
196
197int os_strncmp(const char *s1, const char *s2, size_t n)
198{
199	return 0;
200}
201
202
203char * os_strncpy(char *dest, const char *src, size_t n)
204{
205	return dest;
206}
207
208
209size_t os_strlcpy(char *dest, const char *src, size_t size)
210{
211	return 0;
212}
213
214
215char * os_strstr(const char *haystack, const char *needle)
216{
217	return NULL;
218}
219
220
221int os_snprintf(char *str, size_t size, const char *format, ...)
222{
223	return 0;
224}
225#endif /* OS_NO_C_LIB_DEFINES */
226