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