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