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 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 int os_memcmp_const(const void *a, const void *b, size_t len) 222 { 223 return 0; 224 } 225 226 char * os_strstr(const char *haystack, const char *needle) 227 { 228 return NULL; 229 } 230 231 232 int os_snprintf(char *str, size_t size, const char *format, ...) 233 { 234 return 0; 235 } 236 #endif /* OS_NO_C_LIB_DEFINES */ 237