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