1209139Srpaulo/* 2209139Srpaulo * wpa_supplicant/hostapd / Empty OS specific functions 3209139Srpaulo * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi> 4209139Srpaulo * 5252726Srpaulo * This software may be distributed under the terms of the BSD license. 6252726Srpaulo * See README for more details. 7209139Srpaulo * 8209139Srpaulo * This file can be used as a starting point when adding a new OS target. The 9209139Srpaulo * functions here do not really work as-is since they are just empty or only 10209139Srpaulo * return an error value. os_internal.c can be used as another starting point 11209139Srpaulo * or reference since it has example implementation of many of these functions. 12209139Srpaulo */ 13209139Srpaulo 14209139Srpaulo#include "includes.h" 15209139Srpaulo 16209139Srpaulo#include "os.h" 17209139Srpaulo 18209139Srpaulovoid os_sleep(os_time_t sec, os_time_t usec) 19209139Srpaulo{ 20209139Srpaulo} 21209139Srpaulo 22209139Srpaulo 23209139Srpauloint os_get_time(struct os_time *t) 24209139Srpaulo{ 25209139Srpaulo return -1; 26209139Srpaulo} 27209139Srpaulo 28209139Srpaulo 29281806Srpauloint os_get_reltime(struct os_reltime *t) 30281806Srpaulo{ 31281806Srpaulo return -1; 32281806Srpaulo} 33281806Srpaulo 34281806Srpaulo 35209139Srpauloint os_mktime(int year, int month, int day, int hour, int min, int sec, 36209139Srpaulo os_time_t *t) 37209139Srpaulo{ 38209139Srpaulo return -1; 39209139Srpaulo} 40209139Srpaulo 41252726Srpauloint os_gmtime(os_time_t t, struct os_tm *tm) 42252726Srpaulo{ 43252726Srpaulo return -1; 44252726Srpaulo} 45209139Srpaulo 46252726Srpaulo 47209139Srpauloint os_daemonize(const char *pid_file) 48209139Srpaulo{ 49209139Srpaulo return -1; 50209139Srpaulo} 51209139Srpaulo 52209139Srpaulo 53209139Srpaulovoid os_daemonize_terminate(const char *pid_file) 54209139Srpaulo{ 55209139Srpaulo} 56209139Srpaulo 57209139Srpaulo 58209139Srpauloint os_get_random(unsigned char *buf, size_t len) 59209139Srpaulo{ 60209139Srpaulo return -1; 61209139Srpaulo} 62209139Srpaulo 63209139Srpaulo 64209139Srpaulounsigned long os_random(void) 65209139Srpaulo{ 66209139Srpaulo return 0; 67209139Srpaulo} 68209139Srpaulo 69209139Srpaulo 70209139Srpaulochar * os_rel2abs_path(const char *rel_path) 71209139Srpaulo{ 72209139Srpaulo return NULL; /* strdup(rel_path) can be used here */ 73209139Srpaulo} 74209139Srpaulo 75209139Srpaulo 76209139Srpauloint os_program_init(void) 77209139Srpaulo{ 78209139Srpaulo return 0; 79209139Srpaulo} 80209139Srpaulo 81209139Srpaulo 82209139Srpaulovoid os_program_deinit(void) 83209139Srpaulo{ 84209139Srpaulo} 85209139Srpaulo 86209139Srpaulo 87209139Srpauloint os_setenv(const char *name, const char *value, int overwrite) 88209139Srpaulo{ 89209139Srpaulo return -1; 90209139Srpaulo} 91209139Srpaulo 92209139Srpaulo 93209139Srpauloint os_unsetenv(const char *name) 94209139Srpaulo{ 95209139Srpaulo return -1; 96209139Srpaulo} 97209139Srpaulo 98209139Srpaulo 99209139Srpaulochar * os_readfile(const char *name, size_t *len) 100209139Srpaulo{ 101209139Srpaulo return NULL; 102209139Srpaulo} 103209139Srpaulo 104209139Srpaulo 105289549Srpauloint os_fdatasync(FILE *stream) 106289549Srpaulo{ 107289549Srpaulo return 0; 108289549Srpaulo} 109289549Srpaulo 110289549Srpaulo 111209139Srpaulovoid * os_zalloc(size_t size) 112209139Srpaulo{ 113209139Srpaulo return NULL; 114209139Srpaulo} 115209139Srpaulo 116209139Srpaulo 117346981Scyvoid * os_memdup(const void *src, size_t n) 118346981Scy{ 119346981Scy return NULL; 120346981Scy} 121346981Scy 122346981Scy 123209139Srpaulo#ifdef OS_NO_C_LIB_DEFINES 124209139Srpaulovoid * os_malloc(size_t size) 125209139Srpaulo{ 126209139Srpaulo return NULL; 127209139Srpaulo} 128209139Srpaulo 129209139Srpaulo 130209139Srpaulovoid * os_realloc(void *ptr, size_t size) 131209139Srpaulo{ 132209139Srpaulo return NULL; 133209139Srpaulo} 134209139Srpaulo 135209139Srpaulo 136209139Srpaulovoid os_free(void *ptr) 137209139Srpaulo{ 138209139Srpaulo} 139209139Srpaulo 140209139Srpaulo 141209139Srpaulovoid * os_memcpy(void *dest, const void *src, size_t n) 142209139Srpaulo{ 143209139Srpaulo return dest; 144209139Srpaulo} 145209139Srpaulo 146209139Srpaulo 147209139Srpaulovoid * os_memmove(void *dest, const void *src, size_t n) 148209139Srpaulo{ 149209139Srpaulo return dest; 150209139Srpaulo} 151209139Srpaulo 152209139Srpaulo 153209139Srpaulovoid * os_memset(void *s, int c, size_t n) 154209139Srpaulo{ 155209139Srpaulo return s; 156209139Srpaulo} 157209139Srpaulo 158209139Srpaulo 159209139Srpauloint os_memcmp(const void *s1, const void *s2, size_t n) 160209139Srpaulo{ 161209139Srpaulo return 0; 162209139Srpaulo} 163209139Srpaulo 164209139Srpaulo 165209139Srpaulochar * os_strdup(const char *s) 166209139Srpaulo{ 167209139Srpaulo return NULL; 168209139Srpaulo} 169209139Srpaulo 170209139Srpaulo 171209139Srpaulosize_t os_strlen(const char *s) 172209139Srpaulo{ 173209139Srpaulo return 0; 174209139Srpaulo} 175209139Srpaulo 176209139Srpaulo 177209139Srpauloint os_strcasecmp(const char *s1, const char *s2) 178209139Srpaulo{ 179209139Srpaulo /* 180209139Srpaulo * Ignoring case is not required for main functionality, so just use 181209139Srpaulo * the case sensitive version of the function. 182209139Srpaulo */ 183209139Srpaulo return os_strcmp(s1, s2); 184209139Srpaulo} 185209139Srpaulo 186209139Srpaulo 187209139Srpauloint os_strncasecmp(const char *s1, const char *s2, size_t n) 188209139Srpaulo{ 189209139Srpaulo /* 190209139Srpaulo * Ignoring case is not required for main functionality, so just use 191209139Srpaulo * the case sensitive version of the function. 192209139Srpaulo */ 193209139Srpaulo return os_strncmp(s1, s2, n); 194209139Srpaulo} 195209139Srpaulo 196209139Srpaulo 197209139Srpaulochar * os_strchr(const char *s, int c) 198209139Srpaulo{ 199209139Srpaulo return NULL; 200209139Srpaulo} 201209139Srpaulo 202209139Srpaulo 203209139Srpaulochar * os_strrchr(const char *s, int c) 204209139Srpaulo{ 205209139Srpaulo return NULL; 206209139Srpaulo} 207209139Srpaulo 208209139Srpaulo 209209139Srpauloint os_strcmp(const char *s1, const char *s2) 210209139Srpaulo{ 211209139Srpaulo return 0; 212209139Srpaulo} 213209139Srpaulo 214209139Srpaulo 215209139Srpauloint os_strncmp(const char *s1, const char *s2, size_t n) 216209139Srpaulo{ 217209139Srpaulo return 0; 218209139Srpaulo} 219209139Srpaulo 220209139Srpaulo 221209139Srpaulosize_t os_strlcpy(char *dest, const char *src, size_t size) 222209139Srpaulo{ 223209139Srpaulo return 0; 224209139Srpaulo} 225209139Srpaulo 226209139Srpaulo 227281806Srpauloint os_memcmp_const(const void *a, const void *b, size_t len) 228281806Srpaulo{ 229281806Srpaulo return 0; 230281806Srpaulo} 231281806Srpaulo 232209139Srpaulochar * os_strstr(const char *haystack, const char *needle) 233209139Srpaulo{ 234209139Srpaulo return NULL; 235209139Srpaulo} 236209139Srpaulo 237209139Srpaulo 238209139Srpauloint os_snprintf(char *str, size_t size, const char *format, ...) 239209139Srpaulo{ 240209139Srpaulo return 0; 241209139Srpaulo} 242209139Srpaulo#endif /* OS_NO_C_LIB_DEFINES */ 243281806Srpaulo 244281806Srpaulo 245281806Srpauloint os_exec(const char *program, const char *arg, int wait_completion) 246281806Srpaulo{ 247281806Srpaulo return -1; 248281806Srpaulo} 249