18dbcf02cSchristos /*
28dbcf02cSchristos * wpa_supplicant/hostapd / Empty OS specific functions
38dbcf02cSchristos * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
48dbcf02cSchristos *
5e604d861Schristos * This software may be distributed under the terms of the BSD license.
6e604d861Schristos * See README for more details.
78dbcf02cSchristos *
88dbcf02cSchristos * This file can be used as a starting point when adding a new OS target. The
98dbcf02cSchristos * functions here do not really work as-is since they are just empty or only
108dbcf02cSchristos * return an error value. os_internal.c can be used as another starting point
118dbcf02cSchristos * or reference since it has example implementation of many of these functions.
128dbcf02cSchristos */
138dbcf02cSchristos
148dbcf02cSchristos #include "includes.h"
158dbcf02cSchristos
168dbcf02cSchristos #include "os.h"
178dbcf02cSchristos
os_sleep(os_time_t sec,os_time_t usec)188dbcf02cSchristos void os_sleep(os_time_t sec, os_time_t usec)
198dbcf02cSchristos {
208dbcf02cSchristos }
218dbcf02cSchristos
228dbcf02cSchristos
os_get_time(struct os_time * t)238dbcf02cSchristos int os_get_time(struct os_time *t)
248dbcf02cSchristos {
258dbcf02cSchristos return -1;
268dbcf02cSchristos }
278dbcf02cSchristos
288dbcf02cSchristos
os_get_reltime(struct os_reltime * t)293c260e60Schristos int os_get_reltime(struct os_reltime *t)
303c260e60Schristos {
313c260e60Schristos return -1;
323c260e60Schristos }
333c260e60Schristos
343c260e60Schristos
os_mktime(int year,int month,int day,int hour,int min,int sec,os_time_t * t)358dbcf02cSchristos int os_mktime(int year, int month, int day, int hour, int min, int sec,
368dbcf02cSchristos os_time_t *t)
378dbcf02cSchristos {
388dbcf02cSchristos return -1;
398dbcf02cSchristos }
408dbcf02cSchristos
os_gmtime(os_time_t t,struct os_tm * tm)41111b9fd8Schristos int os_gmtime(os_time_t t, struct os_tm *tm)
42111b9fd8Schristos {
43111b9fd8Schristos return -1;
44111b9fd8Schristos }
45111b9fd8Schristos
468dbcf02cSchristos
os_daemonize(const char * pid_file)478dbcf02cSchristos int os_daemonize(const char *pid_file)
488dbcf02cSchristos {
498dbcf02cSchristos return -1;
508dbcf02cSchristos }
518dbcf02cSchristos
528dbcf02cSchristos
os_daemonize_terminate(const char * pid_file)538dbcf02cSchristos void os_daemonize_terminate(const char *pid_file)
548dbcf02cSchristos {
558dbcf02cSchristos }
568dbcf02cSchristos
578dbcf02cSchristos
os_get_random(unsigned char * buf,size_t len)588dbcf02cSchristos int os_get_random(unsigned char *buf, size_t len)
598dbcf02cSchristos {
608dbcf02cSchristos return -1;
618dbcf02cSchristos }
628dbcf02cSchristos
638dbcf02cSchristos
os_random(void)648dbcf02cSchristos unsigned long os_random(void)
658dbcf02cSchristos {
668dbcf02cSchristos return 0;
678dbcf02cSchristos }
688dbcf02cSchristos
698dbcf02cSchristos
os_rel2abs_path(const char * rel_path)708dbcf02cSchristos char * os_rel2abs_path(const char *rel_path)
718dbcf02cSchristos {
728dbcf02cSchristos return NULL; /* strdup(rel_path) can be used here */
738dbcf02cSchristos }
748dbcf02cSchristos
758dbcf02cSchristos
os_program_init(void)768dbcf02cSchristos int os_program_init(void)
778dbcf02cSchristos {
788dbcf02cSchristos return 0;
798dbcf02cSchristos }
808dbcf02cSchristos
818dbcf02cSchristos
os_program_deinit(void)828dbcf02cSchristos void os_program_deinit(void)
838dbcf02cSchristos {
848dbcf02cSchristos }
858dbcf02cSchristos
868dbcf02cSchristos
os_setenv(const char * name,const char * value,int overwrite)878dbcf02cSchristos int os_setenv(const char *name, const char *value, int overwrite)
888dbcf02cSchristos {
898dbcf02cSchristos return -1;
908dbcf02cSchristos }
918dbcf02cSchristos
928dbcf02cSchristos
os_unsetenv(const char * name)938dbcf02cSchristos int os_unsetenv(const char *name)
948dbcf02cSchristos {
958dbcf02cSchristos return -1;
968dbcf02cSchristos }
978dbcf02cSchristos
988dbcf02cSchristos
os_readfile(const char * name,size_t * len)998dbcf02cSchristos char * os_readfile(const char *name, size_t *len)
1008dbcf02cSchristos {
1018dbcf02cSchristos return NULL;
1028dbcf02cSchristos }
1038dbcf02cSchristos
1048dbcf02cSchristos
os_fdatasync(FILE * stream)10536ebd06eSchristos int os_fdatasync(FILE *stream)
10636ebd06eSchristos {
10736ebd06eSchristos return 0;
10836ebd06eSchristos }
10936ebd06eSchristos
11036ebd06eSchristos
os_zalloc(size_t size)1118dbcf02cSchristos void * os_zalloc(size_t size)
1128dbcf02cSchristos {
1138dbcf02cSchristos return NULL;
1148dbcf02cSchristos }
1158dbcf02cSchristos
1168dbcf02cSchristos
os_memdup(const void * src,size_t n)117*0a73ee0aSchristos void * os_memdup(const void *src, size_t n)
118*0a73ee0aSchristos {
119*0a73ee0aSchristos return NULL;
120*0a73ee0aSchristos }
121*0a73ee0aSchristos
122*0a73ee0aSchristos
1238dbcf02cSchristos #ifdef OS_NO_C_LIB_DEFINES
os_malloc(size_t size)1248dbcf02cSchristos void * os_malloc(size_t size)
1258dbcf02cSchristos {
1268dbcf02cSchristos return NULL;
1278dbcf02cSchristos }
1288dbcf02cSchristos
1298dbcf02cSchristos
os_realloc(void * ptr,size_t size)1308dbcf02cSchristos void * os_realloc(void *ptr, size_t size)
1318dbcf02cSchristos {
1328dbcf02cSchristos return NULL;
1338dbcf02cSchristos }
1348dbcf02cSchristos
1358dbcf02cSchristos
os_free(void * ptr)1368dbcf02cSchristos void os_free(void *ptr)
1378dbcf02cSchristos {
1388dbcf02cSchristos }
1398dbcf02cSchristos
1408dbcf02cSchristos
os_memcpy(void * dest,const void * src,size_t n)1418dbcf02cSchristos void * os_memcpy(void *dest, const void *src, size_t n)
1428dbcf02cSchristos {
1438dbcf02cSchristos return dest;
1448dbcf02cSchristos }
1458dbcf02cSchristos
1468dbcf02cSchristos
os_memmove(void * dest,const void * src,size_t n)1478dbcf02cSchristos void * os_memmove(void *dest, const void *src, size_t n)
1488dbcf02cSchristos {
1498dbcf02cSchristos return dest;
1508dbcf02cSchristos }
1518dbcf02cSchristos
1528dbcf02cSchristos
os_memset(void * s,int c,size_t n)1538dbcf02cSchristos void * os_memset(void *s, int c, size_t n)
1548dbcf02cSchristos {
1558dbcf02cSchristos return s;
1568dbcf02cSchristos }
1578dbcf02cSchristos
1588dbcf02cSchristos
os_memcmp(const void * s1,const void * s2,size_t n)1598dbcf02cSchristos int os_memcmp(const void *s1, const void *s2, size_t n)
1608dbcf02cSchristos {
1618dbcf02cSchristos return 0;
1628dbcf02cSchristos }
1638dbcf02cSchristos
1648dbcf02cSchristos
os_strdup(const char * s)1658dbcf02cSchristos char * os_strdup(const char *s)
1668dbcf02cSchristos {
1678dbcf02cSchristos return NULL;
1688dbcf02cSchristos }
1698dbcf02cSchristos
1708dbcf02cSchristos
os_strlen(const char * s)1718dbcf02cSchristos size_t os_strlen(const char *s)
1728dbcf02cSchristos {
1738dbcf02cSchristos return 0;
1748dbcf02cSchristos }
1758dbcf02cSchristos
1768dbcf02cSchristos
os_strcasecmp(const char * s1,const char * s2)1778dbcf02cSchristos int os_strcasecmp(const char *s1, const char *s2)
1788dbcf02cSchristos {
1798dbcf02cSchristos /*
1808dbcf02cSchristos * Ignoring case is not required for main functionality, so just use
1818dbcf02cSchristos * the case sensitive version of the function.
1828dbcf02cSchristos */
1838dbcf02cSchristos return os_strcmp(s1, s2);
1848dbcf02cSchristos }
1858dbcf02cSchristos
1868dbcf02cSchristos
os_strncasecmp(const char * s1,const char * s2,size_t n)1878dbcf02cSchristos int os_strncasecmp(const char *s1, const char *s2, size_t n)
1888dbcf02cSchristos {
1898dbcf02cSchristos /*
1908dbcf02cSchristos * Ignoring case is not required for main functionality, so just use
1918dbcf02cSchristos * the case sensitive version of the function.
1928dbcf02cSchristos */
1938dbcf02cSchristos return os_strncmp(s1, s2, n);
1948dbcf02cSchristos }
1958dbcf02cSchristos
1968dbcf02cSchristos
os_strchr(const char * s,int c)1978dbcf02cSchristos char * os_strchr(const char *s, int c)
1988dbcf02cSchristos {
1998dbcf02cSchristos return NULL;
2008dbcf02cSchristos }
2018dbcf02cSchristos
2028dbcf02cSchristos
os_strrchr(const char * s,int c)2038dbcf02cSchristos char * os_strrchr(const char *s, int c)
2048dbcf02cSchristos {
2058dbcf02cSchristos return NULL;
2068dbcf02cSchristos }
2078dbcf02cSchristos
2088dbcf02cSchristos
os_strcmp(const char * s1,const char * s2)2098dbcf02cSchristos int os_strcmp(const char *s1, const char *s2)
2108dbcf02cSchristos {
2118dbcf02cSchristos return 0;
2128dbcf02cSchristos }
2138dbcf02cSchristos
2148dbcf02cSchristos
os_strncmp(const char * s1,const char * s2,size_t n)2158dbcf02cSchristos int os_strncmp(const char *s1, const char *s2, size_t n)
2168dbcf02cSchristos {
2178dbcf02cSchristos return 0;
2188dbcf02cSchristos }
2198dbcf02cSchristos
2208dbcf02cSchristos
os_strlcpy(char * dest,const char * src,size_t size)2218dbcf02cSchristos size_t os_strlcpy(char *dest, const char *src, size_t size)
2228dbcf02cSchristos {
2238dbcf02cSchristos return 0;
2248dbcf02cSchristos }
2258dbcf02cSchristos
2268dbcf02cSchristos
os_memcmp_const(const void * a,const void * b,size_t len)2273c260e60Schristos int os_memcmp_const(const void *a, const void *b, size_t len)
2283c260e60Schristos {
2293c260e60Schristos return 0;
2303c260e60Schristos }
2313c260e60Schristos
os_strstr(const char * haystack,const char * needle)2328dbcf02cSchristos char * os_strstr(const char *haystack, const char *needle)
2338dbcf02cSchristos {
2348dbcf02cSchristos return NULL;
2358dbcf02cSchristos }
2368dbcf02cSchristos
2378dbcf02cSchristos
os_snprintf(char * str,size_t size,const char * format,...)2388dbcf02cSchristos int os_snprintf(char *str, size_t size, const char *format, ...)
2398dbcf02cSchristos {
2408dbcf02cSchristos return 0;
2418dbcf02cSchristos }
2428dbcf02cSchristos #endif /* OS_NO_C_LIB_DEFINES */
243bb610346Schristos
244bb610346Schristos
os_exec(const char * program,const char * arg,int wait_completion)245bb610346Schristos int os_exec(const char *program, const char *arg, int wait_completion)
246bb610346Schristos {
247bb610346Schristos return -1;
248bb610346Schristos }
249