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