16d49e1aeSJan Lentfer /* 26d49e1aeSJan Lentfer * wpa_supplicant/hostapd / Empty OS specific functions 36d49e1aeSJan Lentfer * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi> 46d49e1aeSJan Lentfer * 5*3ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 6*3ff40c12SJohn Marino * See README for more details. 76d49e1aeSJan Lentfer * 86d49e1aeSJan Lentfer * This file can be used as a starting point when adding a new OS target. The 96d49e1aeSJan Lentfer * functions here do not really work as-is since they are just empty or only 106d49e1aeSJan Lentfer * return an error value. os_internal.c can be used as another starting point 116d49e1aeSJan Lentfer * or reference since it has example implementation of many of these functions. 126d49e1aeSJan Lentfer */ 136d49e1aeSJan Lentfer 146d49e1aeSJan Lentfer #include "includes.h" 156d49e1aeSJan Lentfer 166d49e1aeSJan Lentfer #include "os.h" 176d49e1aeSJan Lentfer 186d49e1aeSJan Lentfer void os_sleep(os_time_t sec, os_time_t usec) 196d49e1aeSJan Lentfer { 206d49e1aeSJan Lentfer } 216d49e1aeSJan Lentfer 226d49e1aeSJan Lentfer 236d49e1aeSJan Lentfer int os_get_time(struct os_time *t) 246d49e1aeSJan Lentfer { 256d49e1aeSJan Lentfer return -1; 266d49e1aeSJan Lentfer } 276d49e1aeSJan Lentfer 286d49e1aeSJan Lentfer 29*3ff40c12SJohn Marino int os_get_reltime(struct os_reltime *t) 30*3ff40c12SJohn Marino { 31*3ff40c12SJohn Marino return -1; 32*3ff40c12SJohn Marino } 33*3ff40c12SJohn Marino 34*3ff40c12SJohn Marino 356d49e1aeSJan Lentfer int os_mktime(int year, int month, int day, int hour, int min, int sec, 366d49e1aeSJan Lentfer os_time_t *t) 376d49e1aeSJan Lentfer { 386d49e1aeSJan Lentfer return -1; 396d49e1aeSJan Lentfer } 406d49e1aeSJan Lentfer 41*3ff40c12SJohn Marino int os_gmtime(os_time_t t, struct os_tm *tm) 42*3ff40c12SJohn Marino { 43*3ff40c12SJohn Marino return -1; 44*3ff40c12SJohn Marino } 45*3ff40c12SJohn Marino 466d49e1aeSJan Lentfer 476d49e1aeSJan Lentfer int os_daemonize(const char *pid_file) 486d49e1aeSJan Lentfer { 496d49e1aeSJan Lentfer return -1; 506d49e1aeSJan Lentfer } 516d49e1aeSJan Lentfer 526d49e1aeSJan Lentfer 536d49e1aeSJan Lentfer void os_daemonize_terminate(const char *pid_file) 546d49e1aeSJan Lentfer { 556d49e1aeSJan Lentfer } 566d49e1aeSJan Lentfer 576d49e1aeSJan Lentfer 586d49e1aeSJan Lentfer int os_get_random(unsigned char *buf, size_t len) 596d49e1aeSJan Lentfer { 606d49e1aeSJan Lentfer return -1; 616d49e1aeSJan Lentfer } 626d49e1aeSJan Lentfer 636d49e1aeSJan Lentfer 646d49e1aeSJan Lentfer unsigned long os_random(void) 656d49e1aeSJan Lentfer { 666d49e1aeSJan Lentfer return 0; 676d49e1aeSJan Lentfer } 686d49e1aeSJan Lentfer 696d49e1aeSJan Lentfer 706d49e1aeSJan Lentfer char * os_rel2abs_path(const char *rel_path) 716d49e1aeSJan Lentfer { 726d49e1aeSJan Lentfer return NULL; /* strdup(rel_path) can be used here */ 736d49e1aeSJan Lentfer } 746d49e1aeSJan Lentfer 756d49e1aeSJan Lentfer 766d49e1aeSJan Lentfer int os_program_init(void) 776d49e1aeSJan Lentfer { 786d49e1aeSJan Lentfer return 0; 796d49e1aeSJan Lentfer } 806d49e1aeSJan Lentfer 816d49e1aeSJan Lentfer 826d49e1aeSJan Lentfer void os_program_deinit(void) 836d49e1aeSJan Lentfer { 846d49e1aeSJan Lentfer } 856d49e1aeSJan Lentfer 866d49e1aeSJan Lentfer 876d49e1aeSJan Lentfer int os_setenv(const char *name, const char *value, int overwrite) 886d49e1aeSJan Lentfer { 896d49e1aeSJan Lentfer return -1; 906d49e1aeSJan Lentfer } 916d49e1aeSJan Lentfer 926d49e1aeSJan Lentfer 936d49e1aeSJan Lentfer int os_unsetenv(const char *name) 946d49e1aeSJan Lentfer { 956d49e1aeSJan Lentfer return -1; 966d49e1aeSJan Lentfer } 976d49e1aeSJan Lentfer 986d49e1aeSJan Lentfer 996d49e1aeSJan Lentfer char * os_readfile(const char *name, size_t *len) 1006d49e1aeSJan Lentfer { 1016d49e1aeSJan Lentfer return NULL; 1026d49e1aeSJan Lentfer } 1036d49e1aeSJan Lentfer 1046d49e1aeSJan Lentfer 1056d49e1aeSJan Lentfer void * os_zalloc(size_t size) 1066d49e1aeSJan Lentfer { 1076d49e1aeSJan Lentfer return NULL; 1086d49e1aeSJan Lentfer } 1096d49e1aeSJan Lentfer 1106d49e1aeSJan Lentfer 1116d49e1aeSJan Lentfer #ifdef OS_NO_C_LIB_DEFINES 1126d49e1aeSJan Lentfer void * os_malloc(size_t size) 1136d49e1aeSJan Lentfer { 1146d49e1aeSJan Lentfer return NULL; 1156d49e1aeSJan Lentfer } 1166d49e1aeSJan Lentfer 1176d49e1aeSJan Lentfer 1186d49e1aeSJan Lentfer void * os_realloc(void *ptr, size_t size) 1196d49e1aeSJan Lentfer { 1206d49e1aeSJan Lentfer return NULL; 1216d49e1aeSJan Lentfer } 1226d49e1aeSJan Lentfer 1236d49e1aeSJan Lentfer 1246d49e1aeSJan Lentfer void os_free(void *ptr) 1256d49e1aeSJan Lentfer { 1266d49e1aeSJan Lentfer } 1276d49e1aeSJan Lentfer 1286d49e1aeSJan Lentfer 1296d49e1aeSJan Lentfer void * os_memcpy(void *dest, const void *src, size_t n) 1306d49e1aeSJan Lentfer { 1316d49e1aeSJan Lentfer return dest; 1326d49e1aeSJan Lentfer } 1336d49e1aeSJan Lentfer 1346d49e1aeSJan Lentfer 1356d49e1aeSJan Lentfer void * os_memmove(void *dest, const void *src, size_t n) 1366d49e1aeSJan Lentfer { 1376d49e1aeSJan Lentfer return dest; 1386d49e1aeSJan Lentfer } 1396d49e1aeSJan Lentfer 1406d49e1aeSJan Lentfer 1416d49e1aeSJan Lentfer void * os_memset(void *s, int c, size_t n) 1426d49e1aeSJan Lentfer { 1436d49e1aeSJan Lentfer return s; 1446d49e1aeSJan Lentfer } 1456d49e1aeSJan Lentfer 1466d49e1aeSJan Lentfer 1476d49e1aeSJan Lentfer int os_memcmp(const void *s1, const void *s2, size_t n) 1486d49e1aeSJan Lentfer { 1496d49e1aeSJan Lentfer return 0; 1506d49e1aeSJan Lentfer } 1516d49e1aeSJan Lentfer 1526d49e1aeSJan Lentfer 1536d49e1aeSJan Lentfer char * os_strdup(const char *s) 1546d49e1aeSJan Lentfer { 1556d49e1aeSJan Lentfer return NULL; 1566d49e1aeSJan Lentfer } 1576d49e1aeSJan Lentfer 1586d49e1aeSJan Lentfer 1596d49e1aeSJan Lentfer size_t os_strlen(const char *s) 1606d49e1aeSJan Lentfer { 1616d49e1aeSJan Lentfer return 0; 1626d49e1aeSJan Lentfer } 1636d49e1aeSJan Lentfer 1646d49e1aeSJan Lentfer 1656d49e1aeSJan Lentfer int os_strcasecmp(const char *s1, const char *s2) 1666d49e1aeSJan Lentfer { 1676d49e1aeSJan Lentfer /* 1686d49e1aeSJan Lentfer * Ignoring case is not required for main functionality, so just use 1696d49e1aeSJan Lentfer * the case sensitive version of the function. 1706d49e1aeSJan Lentfer */ 1716d49e1aeSJan Lentfer return os_strcmp(s1, s2); 1726d49e1aeSJan Lentfer } 1736d49e1aeSJan Lentfer 1746d49e1aeSJan Lentfer 1756d49e1aeSJan Lentfer int os_strncasecmp(const char *s1, const char *s2, size_t n) 1766d49e1aeSJan Lentfer { 1776d49e1aeSJan Lentfer /* 1786d49e1aeSJan Lentfer * Ignoring case is not required for main functionality, so just use 1796d49e1aeSJan Lentfer * the case sensitive version of the function. 1806d49e1aeSJan Lentfer */ 1816d49e1aeSJan Lentfer return os_strncmp(s1, s2, n); 1826d49e1aeSJan Lentfer } 1836d49e1aeSJan Lentfer 1846d49e1aeSJan Lentfer 1856d49e1aeSJan Lentfer char * os_strchr(const char *s, int c) 1866d49e1aeSJan Lentfer { 1876d49e1aeSJan Lentfer return NULL; 1886d49e1aeSJan Lentfer } 1896d49e1aeSJan Lentfer 1906d49e1aeSJan Lentfer 1916d49e1aeSJan Lentfer char * os_strrchr(const char *s, int c) 1926d49e1aeSJan Lentfer { 1936d49e1aeSJan Lentfer return NULL; 1946d49e1aeSJan Lentfer } 1956d49e1aeSJan Lentfer 1966d49e1aeSJan Lentfer 1976d49e1aeSJan Lentfer int os_strcmp(const char *s1, const char *s2) 1986d49e1aeSJan Lentfer { 1996d49e1aeSJan Lentfer return 0; 2006d49e1aeSJan Lentfer } 2016d49e1aeSJan Lentfer 2026d49e1aeSJan Lentfer 2036d49e1aeSJan Lentfer int os_strncmp(const char *s1, const char *s2, size_t n) 2046d49e1aeSJan Lentfer { 2056d49e1aeSJan Lentfer return 0; 2066d49e1aeSJan Lentfer } 2076d49e1aeSJan Lentfer 2086d49e1aeSJan Lentfer 2096d49e1aeSJan Lentfer char * os_strncpy(char *dest, const char *src, size_t n) 2106d49e1aeSJan Lentfer { 2116d49e1aeSJan Lentfer return dest; 2126d49e1aeSJan Lentfer } 2136d49e1aeSJan Lentfer 2146d49e1aeSJan Lentfer 2156d49e1aeSJan Lentfer size_t os_strlcpy(char *dest, const char *src, size_t size) 2166d49e1aeSJan Lentfer { 2176d49e1aeSJan Lentfer return 0; 2186d49e1aeSJan Lentfer } 2196d49e1aeSJan Lentfer 2206d49e1aeSJan Lentfer 2216d49e1aeSJan Lentfer char * os_strstr(const char *haystack, const char *needle) 2226d49e1aeSJan Lentfer { 2236d49e1aeSJan Lentfer return NULL; 2246d49e1aeSJan Lentfer } 2256d49e1aeSJan Lentfer 2266d49e1aeSJan Lentfer 2276d49e1aeSJan Lentfer int os_snprintf(char *str, size_t size, const char *format, ...) 2286d49e1aeSJan Lentfer { 2296d49e1aeSJan Lentfer return 0; 2306d49e1aeSJan Lentfer } 2316d49e1aeSJan Lentfer #endif /* OS_NO_C_LIB_DEFINES */ 232