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 void * os_zalloc(size_t size)
106 {
107 	return NULL;
108 }
109 
110 
111 #ifdef OS_NO_C_LIB_DEFINES
112 void * os_malloc(size_t size)
113 {
114 	return NULL;
115 }
116 
117 
118 void * os_realloc(void *ptr, size_t size)
119 {
120 	return NULL;
121 }
122 
123 
124 void os_free(void *ptr)
125 {
126 }
127 
128 
129 void * os_memcpy(void *dest, const void *src, size_t n)
130 {
131 	return dest;
132 }
133 
134 
135 void * os_memmove(void *dest, const void *src, size_t n)
136 {
137 	return dest;
138 }
139 
140 
141 void * os_memset(void *s, int c, size_t n)
142 {
143 	return s;
144 }
145 
146 
147 int os_memcmp(const void *s1, const void *s2, size_t n)
148 {
149 	return 0;
150 }
151 
152 
153 char * os_strdup(const char *s)
154 {
155 	return NULL;
156 }
157 
158 
159 size_t os_strlen(const char *s)
160 {
161 	return 0;
162 }
163 
164 
165 int os_strcasecmp(const char *s1, const char *s2)
166 {
167 	/*
168 	 * Ignoring case is not required for main functionality, so just use
169 	 * the case sensitive version of the function.
170 	 */
171 	return os_strcmp(s1, s2);
172 }
173 
174 
175 int os_strncasecmp(const char *s1, const char *s2, size_t n)
176 {
177 	/*
178 	 * Ignoring case is not required for main functionality, so just use
179 	 * the case sensitive version of the function.
180 	 */
181 	return os_strncmp(s1, s2, n);
182 }
183 
184 
185 char * os_strchr(const char *s, int c)
186 {
187 	return NULL;
188 }
189 
190 
191 char * os_strrchr(const char *s, int c)
192 {
193 	return NULL;
194 }
195 
196 
197 int os_strcmp(const char *s1, const char *s2)
198 {
199 	return 0;
200 }
201 
202 
203 int os_strncmp(const char *s1, const char *s2, size_t n)
204 {
205 	return 0;
206 }
207 
208 
209 char * os_strncpy(char *dest, const char *src, size_t n)
210 {
211 	return dest;
212 }
213 
214 
215 size_t os_strlcpy(char *dest, const char *src, size_t size)
216 {
217 	return 0;
218 }
219 
220 
221 char * os_strstr(const char *haystack, const char *needle)
222 {
223 	return NULL;
224 }
225 
226 
227 int os_snprintf(char *str, size_t size, const char *format, ...)
228 {
229 	return 0;
230 }
231 #endif /* OS_NO_C_LIB_DEFINES */
232