Home | History | Annotate | Download | only in utils
      1 /*
      2  * wpa_supplicant/hostapd / Empty OS specific functions
      3  * Copyright (c) 2005-2006, Jouni Malinen <j (at) w1.fi>
      4  *
      5  * This software may be distributed under the terms of the BSD license.
      6  * See README for more details.
      7  *
      8  * This file can be used as a starting point when adding a new OS target. The
      9  * functions here do not really work as-is since they are just empty or only
     10  * return an error value. os_internal.c can be used as another starting point
     11  * or reference since it has example implementation of many of these functions.
     12  */
     13 
     14 #include "includes.h"
     15 
     16 #include "os.h"
     17 
     18 void os_sleep(os_time_t sec, os_time_t usec)
     19 {
     20 }
     21 
     22 
     23 int os_get_time(struct os_time *t)
     24 {
     25 	return -1;
     26 }
     27 
     28 
     29 int os_get_reltime(struct os_reltime *t)
     30 {
     31 	return -1;
     32 }
     33 
     34 
     35 int os_mktime(int year, int month, int day, int hour, int min, int sec,
     36 	      os_time_t *t)
     37 {
     38 	return -1;
     39 }
     40 
     41 int os_gmtime(os_time_t t, struct os_tm *tm)
     42 {
     43 	return -1;
     44 }
     45 
     46 
     47 int os_daemonize(const char *pid_file)
     48 {
     49 	return -1;
     50 }
     51 
     52 
     53 void os_daemonize_terminate(const char *pid_file)
     54 {
     55 }
     56 
     57 
     58 int os_get_random(unsigned char *buf, size_t len)
     59 {
     60 	return -1;
     61 }
     62 
     63 
     64 unsigned long os_random(void)
     65 {
     66 	return 0;
     67 }
     68 
     69 
     70 char * os_rel2abs_path(const char *rel_path)
     71 {
     72 	return NULL; /* strdup(rel_path) can be used here */
     73 }
     74 
     75 
     76 int os_program_init(void)
     77 {
     78 	return 0;
     79 }
     80 
     81 
     82 void os_program_deinit(void)
     83 {
     84 }
     85 
     86 
     87 int os_setenv(const char *name, const char *value, int overwrite)
     88 {
     89 	return -1;
     90 }
     91 
     92 
     93 int os_unsetenv(const char *name)
     94 {
     95 	return -1;
     96 }
     97 
     98 
     99 char * os_readfile(const char *name, size_t *len)
    100 {
    101 	return NULL;
    102 }
    103 
    104 
    105 int os_fdatasync(FILE *stream)
    106 {
    107 	return 0;
    108 }
    109 
    110 
    111 void * os_zalloc(size_t size)
    112 {
    113 	return NULL;
    114 }
    115 
    116 
    117 void * os_memdup(const void *src, size_t n)
    118 {
    119 	return NULL;
    120 }
    121 
    122 
    123 #ifdef OS_NO_C_LIB_DEFINES
    124 void * os_malloc(size_t size)
    125 {
    126 	return NULL;
    127 }
    128 
    129 
    130 void * os_realloc(void *ptr, size_t size)
    131 {
    132 	return NULL;
    133 }
    134 
    135 
    136 void os_free(void *ptr)
    137 {
    138 }
    139 
    140 
    141 void * os_memcpy(void *dest, const void *src, size_t n)
    142 {
    143 	return dest;
    144 }
    145 
    146 
    147 void * os_memmove(void *dest, const void *src, size_t n)
    148 {
    149 	return dest;
    150 }
    151 
    152 
    153 void * os_memset(void *s, int c, size_t n)
    154 {
    155 	return s;
    156 }
    157 
    158 
    159 int os_memcmp(const void *s1, const void *s2, size_t n)
    160 {
    161 	return 0;
    162 }
    163 
    164 
    165 char * os_strdup(const char *s)
    166 {
    167 	return NULL;
    168 }
    169 
    170 
    171 size_t os_strlen(const char *s)
    172 {
    173 	return 0;
    174 }
    175 
    176 
    177 int os_strcasecmp(const char *s1, const char *s2)
    178 {
    179 	/*
    180 	 * Ignoring case is not required for main functionality, so just use
    181 	 * the case sensitive version of the function.
    182 	 */
    183 	return os_strcmp(s1, s2);
    184 }
    185 
    186 
    187 int os_strncasecmp(const char *s1, const char *s2, size_t n)
    188 {
    189 	/*
    190 	 * Ignoring case is not required for main functionality, so just use
    191 	 * the case sensitive version of the function.
    192 	 */
    193 	return os_strncmp(s1, s2, n);
    194 }
    195 
    196 
    197 char * os_strchr(const char *s, int c)
    198 {
    199 	return NULL;
    200 }
    201 
    202 
    203 char * os_strrchr(const char *s, int c)
    204 {
    205 	return NULL;
    206 }
    207 
    208 
    209 int os_strcmp(const char *s1, const char *s2)
    210 {
    211 	return 0;
    212 }
    213 
    214 
    215 int os_strncmp(const char *s1, const char *s2, size_t n)
    216 {
    217 	return 0;
    218 }
    219 
    220 
    221 char * os_strncpy(char *dest, const char *src, size_t n)
    222 {
    223 	return dest;
    224 }
    225 
    226 
    227 size_t os_strlcpy(char *dest, const char *src, size_t size)
    228 {
    229 	return 0;
    230 }
    231 
    232 
    233 int os_memcmp_const(const void *a, const void *b, size_t len)
    234 {
    235 	return 0;
    236 }
    237 
    238 char * os_strstr(const char *haystack, const char *needle)
    239 {
    240 	return NULL;
    241 }
    242 
    243 
    244 int os_snprintf(char *str, size_t size, const char *format, ...)
    245 {
    246 	return 0;
    247 }
    248 #endif /* OS_NO_C_LIB_DEFINES */
    249 
    250 
    251 int os_exec(const char *program, const char *arg, int wait_completion)
    252 {
    253 	return -1;
    254 }
    255