1 /* 2 * wpa_supplicant/hostapd / Empty OS specific functions 3 * Copyright (c) 2005-2006, Jouni Malinen <j (at) 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 int os_fdatasync(FILE *stream) 106 { 107 return 0; 108 } 109 110 111 void * os_zalloc(size_t size) 112 { 113 return NULL; 114 } 115 116 117 #ifdef OS_NO_C_LIB_DEFINES 118 void * os_malloc(size_t size) 119 { 120 return NULL; 121 } 122 123 124 void * os_realloc(void *ptr, size_t size) 125 { 126 return NULL; 127 } 128 129 130 void os_free(void *ptr) 131 { 132 } 133 134 135 void * os_memcpy(void *dest, const void *src, size_t n) 136 { 137 return dest; 138 } 139 140 141 void * os_memmove(void *dest, const void *src, size_t n) 142 { 143 return dest; 144 } 145 146 147 void * os_memset(void *s, int c, size_t n) 148 { 149 return s; 150 } 151 152 153 int os_memcmp(const void *s1, const void *s2, size_t n) 154 { 155 return 0; 156 } 157 158 159 char * os_strdup(const char *s) 160 { 161 return NULL; 162 } 163 164 165 size_t os_strlen(const char *s) 166 { 167 return 0; 168 } 169 170 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 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 191 char * os_strchr(const char *s, int c) 192 { 193 return NULL; 194 } 195 196 197 char * os_strrchr(const char *s, int c) 198 { 199 return NULL; 200 } 201 202 203 int os_strcmp(const char *s1, const char *s2) 204 { 205 return 0; 206 } 207 208 209 int os_strncmp(const char *s1, const char *s2, size_t n) 210 { 211 return 0; 212 } 213 214 215 char * os_strncpy(char *dest, const char *src, size_t n) 216 { 217 return dest; 218 } 219 220 221 size_t os_strlcpy(char *dest, const char *src, size_t size) 222 { 223 return 0; 224 } 225 226 227 int os_memcmp_const(const void *a, const void *b, size_t len) 228 { 229 return 0; 230 } 231 232 char * os_strstr(const char *haystack, const char *needle) 233 { 234 return NULL; 235 } 236 237 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 245 int os_exec(const char *program, const char *arg, int wait_completion) 246 { 247 return -1; 248 } 249