13157ba21SRui Paulo /* 23157ba21SRui Paulo * wpa_supplicant/hostapd / Empty OS specific functions 33157ba21SRui Paulo * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi> 43157ba21SRui Paulo * 5f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6f05cddf9SRui Paulo * See README for more details. 73157ba21SRui Paulo * 83157ba21SRui Paulo * This file can be used as a starting point when adding a new OS target. The 93157ba21SRui Paulo * functions here do not really work as-is since they are just empty or only 103157ba21SRui Paulo * return an error value. os_internal.c can be used as another starting point 113157ba21SRui Paulo * or reference since it has example implementation of many of these functions. 123157ba21SRui Paulo */ 133157ba21SRui Paulo 143157ba21SRui Paulo #include "includes.h" 153157ba21SRui Paulo 163157ba21SRui Paulo #include "os.h" 173157ba21SRui Paulo 183157ba21SRui Paulo void os_sleep(os_time_t sec, os_time_t usec) 193157ba21SRui Paulo { 203157ba21SRui Paulo } 213157ba21SRui Paulo 223157ba21SRui Paulo 233157ba21SRui Paulo int os_get_time(struct os_time *t) 243157ba21SRui Paulo { 253157ba21SRui Paulo return -1; 263157ba21SRui Paulo } 273157ba21SRui Paulo 283157ba21SRui Paulo 29*5b9c547cSRui Paulo int os_get_reltime(struct os_reltime *t) 30*5b9c547cSRui Paulo { 31*5b9c547cSRui Paulo return -1; 32*5b9c547cSRui Paulo } 33*5b9c547cSRui Paulo 34*5b9c547cSRui Paulo 353157ba21SRui Paulo int os_mktime(int year, int month, int day, int hour, int min, int sec, 363157ba21SRui Paulo os_time_t *t) 373157ba21SRui Paulo { 383157ba21SRui Paulo return -1; 393157ba21SRui Paulo } 403157ba21SRui Paulo 41f05cddf9SRui Paulo int os_gmtime(os_time_t t, struct os_tm *tm) 42f05cddf9SRui Paulo { 43f05cddf9SRui Paulo return -1; 44f05cddf9SRui Paulo } 45f05cddf9SRui Paulo 463157ba21SRui Paulo 473157ba21SRui Paulo int os_daemonize(const char *pid_file) 483157ba21SRui Paulo { 493157ba21SRui Paulo return -1; 503157ba21SRui Paulo } 513157ba21SRui Paulo 523157ba21SRui Paulo 533157ba21SRui Paulo void os_daemonize_terminate(const char *pid_file) 543157ba21SRui Paulo { 553157ba21SRui Paulo } 563157ba21SRui Paulo 573157ba21SRui Paulo 583157ba21SRui Paulo int os_get_random(unsigned char *buf, size_t len) 593157ba21SRui Paulo { 603157ba21SRui Paulo return -1; 613157ba21SRui Paulo } 623157ba21SRui Paulo 633157ba21SRui Paulo 643157ba21SRui Paulo unsigned long os_random(void) 653157ba21SRui Paulo { 663157ba21SRui Paulo return 0; 673157ba21SRui Paulo } 683157ba21SRui Paulo 693157ba21SRui Paulo 703157ba21SRui Paulo char * os_rel2abs_path(const char *rel_path) 713157ba21SRui Paulo { 723157ba21SRui Paulo return NULL; /* strdup(rel_path) can be used here */ 733157ba21SRui Paulo } 743157ba21SRui Paulo 753157ba21SRui Paulo 763157ba21SRui Paulo int os_program_init(void) 773157ba21SRui Paulo { 783157ba21SRui Paulo return 0; 793157ba21SRui Paulo } 803157ba21SRui Paulo 813157ba21SRui Paulo 823157ba21SRui Paulo void os_program_deinit(void) 833157ba21SRui Paulo { 843157ba21SRui Paulo } 853157ba21SRui Paulo 863157ba21SRui Paulo 873157ba21SRui Paulo int os_setenv(const char *name, const char *value, int overwrite) 883157ba21SRui Paulo { 893157ba21SRui Paulo return -1; 903157ba21SRui Paulo } 913157ba21SRui Paulo 923157ba21SRui Paulo 933157ba21SRui Paulo int os_unsetenv(const char *name) 943157ba21SRui Paulo { 953157ba21SRui Paulo return -1; 963157ba21SRui Paulo } 973157ba21SRui Paulo 983157ba21SRui Paulo 993157ba21SRui Paulo char * os_readfile(const char *name, size_t *len) 1003157ba21SRui Paulo { 1013157ba21SRui Paulo return NULL; 1023157ba21SRui Paulo } 1033157ba21SRui Paulo 1043157ba21SRui Paulo 1053157ba21SRui Paulo void * os_zalloc(size_t size) 1063157ba21SRui Paulo { 1073157ba21SRui Paulo return NULL; 1083157ba21SRui Paulo } 1093157ba21SRui Paulo 1103157ba21SRui Paulo 1113157ba21SRui Paulo #ifdef OS_NO_C_LIB_DEFINES 1123157ba21SRui Paulo void * os_malloc(size_t size) 1133157ba21SRui Paulo { 1143157ba21SRui Paulo return NULL; 1153157ba21SRui Paulo } 1163157ba21SRui Paulo 1173157ba21SRui Paulo 1183157ba21SRui Paulo void * os_realloc(void *ptr, size_t size) 1193157ba21SRui Paulo { 1203157ba21SRui Paulo return NULL; 1213157ba21SRui Paulo } 1223157ba21SRui Paulo 1233157ba21SRui Paulo 1243157ba21SRui Paulo void os_free(void *ptr) 1253157ba21SRui Paulo { 1263157ba21SRui Paulo } 1273157ba21SRui Paulo 1283157ba21SRui Paulo 1293157ba21SRui Paulo void * os_memcpy(void *dest, const void *src, size_t n) 1303157ba21SRui Paulo { 1313157ba21SRui Paulo return dest; 1323157ba21SRui Paulo } 1333157ba21SRui Paulo 1343157ba21SRui Paulo 1353157ba21SRui Paulo void * os_memmove(void *dest, const void *src, size_t n) 1363157ba21SRui Paulo { 1373157ba21SRui Paulo return dest; 1383157ba21SRui Paulo } 1393157ba21SRui Paulo 1403157ba21SRui Paulo 1413157ba21SRui Paulo void * os_memset(void *s, int c, size_t n) 1423157ba21SRui Paulo { 1433157ba21SRui Paulo return s; 1443157ba21SRui Paulo } 1453157ba21SRui Paulo 1463157ba21SRui Paulo 1473157ba21SRui Paulo int os_memcmp(const void *s1, const void *s2, size_t n) 1483157ba21SRui Paulo { 1493157ba21SRui Paulo return 0; 1503157ba21SRui Paulo } 1513157ba21SRui Paulo 1523157ba21SRui Paulo 1533157ba21SRui Paulo char * os_strdup(const char *s) 1543157ba21SRui Paulo { 1553157ba21SRui Paulo return NULL; 1563157ba21SRui Paulo } 1573157ba21SRui Paulo 1583157ba21SRui Paulo 1593157ba21SRui Paulo size_t os_strlen(const char *s) 1603157ba21SRui Paulo { 1613157ba21SRui Paulo return 0; 1623157ba21SRui Paulo } 1633157ba21SRui Paulo 1643157ba21SRui Paulo 1653157ba21SRui Paulo int os_strcasecmp(const char *s1, const char *s2) 1663157ba21SRui Paulo { 1673157ba21SRui Paulo /* 1683157ba21SRui Paulo * Ignoring case is not required for main functionality, so just use 1693157ba21SRui Paulo * the case sensitive version of the function. 1703157ba21SRui Paulo */ 1713157ba21SRui Paulo return os_strcmp(s1, s2); 1723157ba21SRui Paulo } 1733157ba21SRui Paulo 1743157ba21SRui Paulo 1753157ba21SRui Paulo int os_strncasecmp(const char *s1, const char *s2, size_t n) 1763157ba21SRui Paulo { 1773157ba21SRui Paulo /* 1783157ba21SRui Paulo * Ignoring case is not required for main functionality, so just use 1793157ba21SRui Paulo * the case sensitive version of the function. 1803157ba21SRui Paulo */ 1813157ba21SRui Paulo return os_strncmp(s1, s2, n); 1823157ba21SRui Paulo } 1833157ba21SRui Paulo 1843157ba21SRui Paulo 1853157ba21SRui Paulo char * os_strchr(const char *s, int c) 1863157ba21SRui Paulo { 1873157ba21SRui Paulo return NULL; 1883157ba21SRui Paulo } 1893157ba21SRui Paulo 1903157ba21SRui Paulo 1913157ba21SRui Paulo char * os_strrchr(const char *s, int c) 1923157ba21SRui Paulo { 1933157ba21SRui Paulo return NULL; 1943157ba21SRui Paulo } 1953157ba21SRui Paulo 1963157ba21SRui Paulo 1973157ba21SRui Paulo int os_strcmp(const char *s1, const char *s2) 1983157ba21SRui Paulo { 1993157ba21SRui Paulo return 0; 2003157ba21SRui Paulo } 2013157ba21SRui Paulo 2023157ba21SRui Paulo 2033157ba21SRui Paulo int os_strncmp(const char *s1, const char *s2, size_t n) 2043157ba21SRui Paulo { 2053157ba21SRui Paulo return 0; 2063157ba21SRui Paulo } 2073157ba21SRui Paulo 2083157ba21SRui Paulo 2093157ba21SRui Paulo char * os_strncpy(char *dest, const char *src, size_t n) 2103157ba21SRui Paulo { 2113157ba21SRui Paulo return dest; 2123157ba21SRui Paulo } 2133157ba21SRui Paulo 2143157ba21SRui Paulo 2153157ba21SRui Paulo size_t os_strlcpy(char *dest, const char *src, size_t size) 2163157ba21SRui Paulo { 2173157ba21SRui Paulo return 0; 2183157ba21SRui Paulo } 2193157ba21SRui Paulo 2203157ba21SRui Paulo 221*5b9c547cSRui Paulo int os_memcmp_const(const void *a, const void *b, size_t len) 222*5b9c547cSRui Paulo { 223*5b9c547cSRui Paulo return 0; 224*5b9c547cSRui Paulo } 225*5b9c547cSRui Paulo 2263157ba21SRui Paulo char * os_strstr(const char *haystack, const char *needle) 2273157ba21SRui Paulo { 2283157ba21SRui Paulo return NULL; 2293157ba21SRui Paulo } 2303157ba21SRui Paulo 2313157ba21SRui Paulo 2323157ba21SRui Paulo int os_snprintf(char *str, size_t size, const char *format, ...) 2333157ba21SRui Paulo { 2343157ba21SRui Paulo return 0; 2353157ba21SRui Paulo } 2363157ba21SRui Paulo #endif /* OS_NO_C_LIB_DEFINES */ 237*5b9c547cSRui Paulo 238*5b9c547cSRui Paulo 239*5b9c547cSRui Paulo int os_exec(const char *program, const char *arg, int wait_completion) 240*5b9c547cSRui Paulo { 241*5b9c547cSRui Paulo return -1; 242*5b9c547cSRui Paulo } 243