16d49e1aeSJan Lentfer /*
26d49e1aeSJan Lentfer * wpa_supplicant/hostapd / Empty OS specific functions
36d49e1aeSJan Lentfer * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
46d49e1aeSJan Lentfer *
53ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license.
63ff40c12SJohn 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
os_sleep(os_time_t sec,os_time_t usec)186d49e1aeSJan Lentfer void os_sleep(os_time_t sec, os_time_t usec)
196d49e1aeSJan Lentfer {
206d49e1aeSJan Lentfer }
216d49e1aeSJan Lentfer
226d49e1aeSJan Lentfer
os_get_time(struct os_time * t)236d49e1aeSJan Lentfer int os_get_time(struct os_time *t)
246d49e1aeSJan Lentfer {
256d49e1aeSJan Lentfer return -1;
266d49e1aeSJan Lentfer }
276d49e1aeSJan Lentfer
286d49e1aeSJan Lentfer
os_get_reltime(struct os_reltime * t)293ff40c12SJohn Marino int os_get_reltime(struct os_reltime *t)
303ff40c12SJohn Marino {
313ff40c12SJohn Marino return -1;
323ff40c12SJohn Marino }
333ff40c12SJohn Marino
343ff40c12SJohn Marino
os_mktime(int year,int month,int day,int hour,int min,int sec,os_time_t * t)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
os_gmtime(os_time_t t,struct os_tm * tm)413ff40c12SJohn Marino int os_gmtime(os_time_t t, struct os_tm *tm)
423ff40c12SJohn Marino {
433ff40c12SJohn Marino return -1;
443ff40c12SJohn Marino }
453ff40c12SJohn Marino
466d49e1aeSJan Lentfer
os_daemonize(const char * pid_file)476d49e1aeSJan Lentfer int os_daemonize(const char *pid_file)
486d49e1aeSJan Lentfer {
496d49e1aeSJan Lentfer return -1;
506d49e1aeSJan Lentfer }
516d49e1aeSJan Lentfer
526d49e1aeSJan Lentfer
os_daemonize_terminate(const char * pid_file)536d49e1aeSJan Lentfer void os_daemonize_terminate(const char *pid_file)
546d49e1aeSJan Lentfer {
556d49e1aeSJan Lentfer }
566d49e1aeSJan Lentfer
576d49e1aeSJan Lentfer
os_get_random(unsigned char * buf,size_t len)586d49e1aeSJan Lentfer int os_get_random(unsigned char *buf, size_t len)
596d49e1aeSJan Lentfer {
606d49e1aeSJan Lentfer return -1;
616d49e1aeSJan Lentfer }
626d49e1aeSJan Lentfer
636d49e1aeSJan Lentfer
os_random(void)646d49e1aeSJan Lentfer unsigned long os_random(void)
656d49e1aeSJan Lentfer {
666d49e1aeSJan Lentfer return 0;
676d49e1aeSJan Lentfer }
686d49e1aeSJan Lentfer
696d49e1aeSJan Lentfer
os_rel2abs_path(const char * rel_path)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
os_program_init(void)766d49e1aeSJan Lentfer int os_program_init(void)
776d49e1aeSJan Lentfer {
786d49e1aeSJan Lentfer return 0;
796d49e1aeSJan Lentfer }
806d49e1aeSJan Lentfer
816d49e1aeSJan Lentfer
os_program_deinit(void)826d49e1aeSJan Lentfer void os_program_deinit(void)
836d49e1aeSJan Lentfer {
846d49e1aeSJan Lentfer }
856d49e1aeSJan Lentfer
866d49e1aeSJan Lentfer
os_setenv(const char * name,const char * value,int overwrite)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
os_unsetenv(const char * name)936d49e1aeSJan Lentfer int os_unsetenv(const char *name)
946d49e1aeSJan Lentfer {
956d49e1aeSJan Lentfer return -1;
966d49e1aeSJan Lentfer }
976d49e1aeSJan Lentfer
986d49e1aeSJan Lentfer
os_readfile(const char * name,size_t * len)996d49e1aeSJan Lentfer char * os_readfile(const char *name, size_t *len)
1006d49e1aeSJan Lentfer {
1016d49e1aeSJan Lentfer return NULL;
1026d49e1aeSJan Lentfer }
1036d49e1aeSJan Lentfer
1046d49e1aeSJan Lentfer
os_fdatasync(FILE * stream)105*a1157835SDaniel Fojt int os_fdatasync(FILE *stream)
106*a1157835SDaniel Fojt {
107*a1157835SDaniel Fojt return 0;
108*a1157835SDaniel Fojt }
109*a1157835SDaniel Fojt
110*a1157835SDaniel Fojt
os_zalloc(size_t size)1116d49e1aeSJan Lentfer void * os_zalloc(size_t size)
1126d49e1aeSJan Lentfer {
1136d49e1aeSJan Lentfer return NULL;
1146d49e1aeSJan Lentfer }
1156d49e1aeSJan Lentfer
1166d49e1aeSJan Lentfer
os_memdup(const void * src,size_t n)117*a1157835SDaniel Fojt void * os_memdup(const void *src, size_t n)
118*a1157835SDaniel Fojt {
119*a1157835SDaniel Fojt return NULL;
120*a1157835SDaniel Fojt }
121*a1157835SDaniel Fojt
122*a1157835SDaniel Fojt
1236d49e1aeSJan Lentfer #ifdef OS_NO_C_LIB_DEFINES
os_malloc(size_t size)1246d49e1aeSJan Lentfer void * os_malloc(size_t size)
1256d49e1aeSJan Lentfer {
1266d49e1aeSJan Lentfer return NULL;
1276d49e1aeSJan Lentfer }
1286d49e1aeSJan Lentfer
1296d49e1aeSJan Lentfer
os_realloc(void * ptr,size_t size)1306d49e1aeSJan Lentfer void * os_realloc(void *ptr, size_t size)
1316d49e1aeSJan Lentfer {
1326d49e1aeSJan Lentfer return NULL;
1336d49e1aeSJan Lentfer }
1346d49e1aeSJan Lentfer
1356d49e1aeSJan Lentfer
os_free(void * ptr)1366d49e1aeSJan Lentfer void os_free(void *ptr)
1376d49e1aeSJan Lentfer {
1386d49e1aeSJan Lentfer }
1396d49e1aeSJan Lentfer
1406d49e1aeSJan Lentfer
os_memcpy(void * dest,const void * src,size_t n)1416d49e1aeSJan Lentfer void * os_memcpy(void *dest, const void *src, size_t n)
1426d49e1aeSJan Lentfer {
1436d49e1aeSJan Lentfer return dest;
1446d49e1aeSJan Lentfer }
1456d49e1aeSJan Lentfer
1466d49e1aeSJan Lentfer
os_memmove(void * dest,const void * src,size_t n)1476d49e1aeSJan Lentfer void * os_memmove(void *dest, const void *src, size_t n)
1486d49e1aeSJan Lentfer {
1496d49e1aeSJan Lentfer return dest;
1506d49e1aeSJan Lentfer }
1516d49e1aeSJan Lentfer
1526d49e1aeSJan Lentfer
os_memset(void * s,int c,size_t n)1536d49e1aeSJan Lentfer void * os_memset(void *s, int c, size_t n)
1546d49e1aeSJan Lentfer {
1556d49e1aeSJan Lentfer return s;
1566d49e1aeSJan Lentfer }
1576d49e1aeSJan Lentfer
1586d49e1aeSJan Lentfer
os_memcmp(const void * s1,const void * s2,size_t n)1596d49e1aeSJan Lentfer int os_memcmp(const void *s1, const void *s2, size_t n)
1606d49e1aeSJan Lentfer {
1616d49e1aeSJan Lentfer return 0;
1626d49e1aeSJan Lentfer }
1636d49e1aeSJan Lentfer
1646d49e1aeSJan Lentfer
os_strdup(const char * s)1656d49e1aeSJan Lentfer char * os_strdup(const char *s)
1666d49e1aeSJan Lentfer {
1676d49e1aeSJan Lentfer return NULL;
1686d49e1aeSJan Lentfer }
1696d49e1aeSJan Lentfer
1706d49e1aeSJan Lentfer
os_strlen(const char * s)1716d49e1aeSJan Lentfer size_t os_strlen(const char *s)
1726d49e1aeSJan Lentfer {
1736d49e1aeSJan Lentfer return 0;
1746d49e1aeSJan Lentfer }
1756d49e1aeSJan Lentfer
1766d49e1aeSJan Lentfer
os_strcasecmp(const char * s1,const char * s2)1776d49e1aeSJan Lentfer int os_strcasecmp(const char *s1, const char *s2)
1786d49e1aeSJan Lentfer {
1796d49e1aeSJan Lentfer /*
1806d49e1aeSJan Lentfer * Ignoring case is not required for main functionality, so just use
1816d49e1aeSJan Lentfer * the case sensitive version of the function.
1826d49e1aeSJan Lentfer */
1836d49e1aeSJan Lentfer return os_strcmp(s1, s2);
1846d49e1aeSJan Lentfer }
1856d49e1aeSJan Lentfer
1866d49e1aeSJan Lentfer
os_strncasecmp(const char * s1,const char * s2,size_t n)1876d49e1aeSJan Lentfer int os_strncasecmp(const char *s1, const char *s2, size_t n)
1886d49e1aeSJan Lentfer {
1896d49e1aeSJan Lentfer /*
1906d49e1aeSJan Lentfer * Ignoring case is not required for main functionality, so just use
1916d49e1aeSJan Lentfer * the case sensitive version of the function.
1926d49e1aeSJan Lentfer */
1936d49e1aeSJan Lentfer return os_strncmp(s1, s2, n);
1946d49e1aeSJan Lentfer }
1956d49e1aeSJan Lentfer
1966d49e1aeSJan Lentfer
os_strchr(const char * s,int c)1976d49e1aeSJan Lentfer char * os_strchr(const char *s, int c)
1986d49e1aeSJan Lentfer {
1996d49e1aeSJan Lentfer return NULL;
2006d49e1aeSJan Lentfer }
2016d49e1aeSJan Lentfer
2026d49e1aeSJan Lentfer
os_strrchr(const char * s,int c)2036d49e1aeSJan Lentfer char * os_strrchr(const char *s, int c)
2046d49e1aeSJan Lentfer {
2056d49e1aeSJan Lentfer return NULL;
2066d49e1aeSJan Lentfer }
2076d49e1aeSJan Lentfer
2086d49e1aeSJan Lentfer
os_strcmp(const char * s1,const char * s2)2096d49e1aeSJan Lentfer int os_strcmp(const char *s1, const char *s2)
2106d49e1aeSJan Lentfer {
2116d49e1aeSJan Lentfer return 0;
2126d49e1aeSJan Lentfer }
2136d49e1aeSJan Lentfer
2146d49e1aeSJan Lentfer
os_strncmp(const char * s1,const char * s2,size_t n)2156d49e1aeSJan Lentfer int os_strncmp(const char *s1, const char *s2, size_t n)
2166d49e1aeSJan Lentfer {
2176d49e1aeSJan Lentfer return 0;
2186d49e1aeSJan Lentfer }
2196d49e1aeSJan Lentfer
2206d49e1aeSJan Lentfer
os_strlcpy(char * dest,const char * src,size_t size)2216d49e1aeSJan Lentfer size_t os_strlcpy(char *dest, const char *src, size_t size)
2226d49e1aeSJan Lentfer {
2236d49e1aeSJan Lentfer return 0;
2246d49e1aeSJan Lentfer }
2256d49e1aeSJan Lentfer
2266d49e1aeSJan Lentfer
os_memcmp_const(const void * a,const void * b,size_t len)227*a1157835SDaniel Fojt int os_memcmp_const(const void *a, const void *b, size_t len)
228*a1157835SDaniel Fojt {
229*a1157835SDaniel Fojt return 0;
230*a1157835SDaniel Fojt }
231*a1157835SDaniel Fojt
os_strstr(const char * haystack,const char * needle)2326d49e1aeSJan Lentfer char * os_strstr(const char *haystack, const char *needle)
2336d49e1aeSJan Lentfer {
2346d49e1aeSJan Lentfer return NULL;
2356d49e1aeSJan Lentfer }
2366d49e1aeSJan Lentfer
2376d49e1aeSJan Lentfer
os_snprintf(char * str,size_t size,const char * format,...)2386d49e1aeSJan Lentfer int os_snprintf(char *str, size_t size, const char *format, ...)
2396d49e1aeSJan Lentfer {
2406d49e1aeSJan Lentfer return 0;
2416d49e1aeSJan Lentfer }
2426d49e1aeSJan Lentfer #endif /* OS_NO_C_LIB_DEFINES */
243*a1157835SDaniel Fojt
244*a1157835SDaniel Fojt
os_exec(const char * program,const char * arg,int wait_completion)245*a1157835SDaniel Fojt int os_exec(const char *program, const char *arg, int wait_completion)
246*a1157835SDaniel Fojt {
247*a1157835SDaniel Fojt return -1;
248*a1157835SDaniel Fojt }
249