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