11145ef852a4e230e1f642eecd8de155f2b26bc53jkummerow@chromium.org/*
29e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * wpa_supplicant/hostapd / Empty OS specific functions
39e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
49e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org *
59e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * This software may be distributed under the terms of the BSD license.
69e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * See README for more details.
79e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org *
89e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * This file can be used as a starting point when adding a new OS target. The
99e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * functions here do not really work as-is since they are just empty or only
109e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * return an error value. os_internal.c can be used as another starting point
119e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org * or reference since it has example implementation of many of these functions.
129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org */
139e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
149e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#include "includes.h"
159e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
169e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#include "os.h"
179e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
189e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid os_sleep(os_time_t sec, os_time_t usec)
199e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
209e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
219e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
229e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
239e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_get_time(struct os_time *t)
249e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
259e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
269e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
279e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
289e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
299e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_get_reltime(struct os_reltime *t)
309e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
319e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
329e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
339e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
349e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
359e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_mktime(int year, int month, int day, int hour, int min, int sec,
369e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	      os_time_t *t)
379e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
389e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
399e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
409e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
419e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_gmtime(os_time_t t, struct os_tm *tm)
429e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
439e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
449e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
459e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
469e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
479e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_daemonize(const char *pid_file)
489e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
499e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
509e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
519e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
529e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
539e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid os_daemonize_terminate(const char *pid_file)
549e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
559e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
569e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
579e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
589e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_get_random(unsigned char *buf, size_t len)
599e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
609e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
619e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
629e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
639e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
649e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgunsigned long os_random(void)
659e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
669e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
679e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
689e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
699e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
709e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgchar * os_rel2abs_path(const char *rel_path)
719e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
72c03a1924dcc113678c0ebe58aa7d3c855a657719yangguo@chromium.org	return NULL; /* strdup(rel_path) can be used here */
739e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
749e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
759e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
769e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_program_init(void)
779e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
789e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
794a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org}
804a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org
814a9f6553038df6b893b3d3ccae351723f4cbbae7yangguo@chromium.org
829e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid os_program_deinit(void)
839e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
849e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
859e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
869e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
879e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_setenv(const char *name, const char *value, int overwrite)
88c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com{
89c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com	return -1;
90c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com}
919e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
929e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
939e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_unsetenv(const char *name)
949e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
959e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return -1;
969e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
97c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com
98c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com
99c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.comchar * os_readfile(const char *name, size_t *len)
1004d3fe4e246b0312eba361689f288ddf8dd516960danno@chromium.org{
1014d3fe4e246b0312eba361689f288ddf8dd516960danno@chromium.org	return NULL;
1029e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1039e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1049e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1059e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid * os_zalloc(size_t size)
1069e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1079e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return NULL;
1089e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1099e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1109e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1119e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#ifdef OS_NO_C_LIB_DEFINES
1129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid * os_malloc(size_t size)
1139e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1149e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return NULL;
1159e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1169e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1179e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1189e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid * os_realloc(void *ptr, size_t size)
1199e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1209e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return NULL;
1219e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1229e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1239e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1249e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid os_free(void *ptr)
1259e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1263847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com}
1273847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com
1283847bd5ff857259e945a01d75fdb383e2351d166erik.corry@gmail.com
1299e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid * os_memcpy(void *dest, const void *src, size_t n)
1309e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1319e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return dest;
1329e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1339e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1349e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
135e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgvoid * os_memmove(void *dest, const void *src, size_t n)
1369e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1379e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return dest;
1389e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1399e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1409e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1419e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgvoid * os_memset(void *s, int c, size_t n)
142ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com{
143ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com	return s;
144ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com}
1459e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1469e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1479e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_memcmp(const void *s1, const void *s2, size_t n)
1489e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1499e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
1509e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1519e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1529e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1539e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgchar * os_strdup(const char *s)
1549e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1559e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return NULL;
1569e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1579e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1589e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1599e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgsize_t os_strlen(const char *s)
1609e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1614efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org	return 0;
162ed49e965b5cafa35395084dbfb79f4e07930f10ferik.corry@gmail.com}
1634efbdb18fa3063085682c44cc77cf5254cb3d75dsvenpanne@chromium.org
1649e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1659e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_strcasecmp(const char *s1, const char *s2)
1669e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1677304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org	/*
1687304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org	 * Ignoring case is not required for main functionality, so just use
1697304bcac06a6a63b9f3dcebac2eeceada87ca146vegorov@chromium.org	 * the case sensitive version of the function.
17034e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org	 */
17134e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org	return os_strcmp(s1, s2);
17234e60787ea1e76f3ee49e859f71f036170c21f0elrn@chromium.org}
1737c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org
1747c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.org
1757c2628c3f0353f0558760c3ca442f934263ea766kmillikin@chromium.orgint os_strncasecmp(const char *s1, const char *s2, size_t n)
176ea91cc579ade536e3a08498a8157921dd4f533d1ager@chromium.org{
177ea91cc579ade536e3a08498a8157921dd4f533d1ager@chromium.org	/*
1789e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	 * Ignoring case is not required for main functionality, so just use
1799e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	 * the case sensitive version of the function.
1809e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	 */
1819e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return os_strncmp(s1, s2, n);
18231b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org}
18331b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org
18431b1277ec3b8cd17acb01c66d85a456159072157kmillikin@chromium.org
1859e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgchar * os_strchr(const char *s, int c)
1869e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1879e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return NULL;
188f705b5034dc5bc422ac1019b591469a7d0534772mstarzinger@chromium.org}
189f705b5034dc5bc422ac1019b591469a7d0534772mstarzinger@chromium.org
190b228be01a466e0ba4d8389148671d196b2081f76mstarzinger@chromium.org
191e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.orgchar * os_strrchr(const char *s, int c)
192e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org{
193b228be01a466e0ba4d8389148671d196b2081f76mstarzinger@chromium.org	return NULL;
1949e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
1959e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1969e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
1979e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_strcmp(const char *s1, const char *s2)
1989e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
1999e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
2009e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
2019e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2029e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2039e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_strncmp(const char *s1, const char *s2, size_t n)
2049e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
2059e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
2069e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
2079e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2089e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2099e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgchar * os_strncpy(char *dest, const char *src, size_t n)
2109e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
2119e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return dest;
2129e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
2139e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
214c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com
215c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.comsize_t os_strlcpy(char *dest, const char *src, size_t size)
216c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com{
217c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com	return 0;
218c3b670ff19220959730d7886892bc4beb95d2ebaerik.corry@gmail.com}
2194d3fe4e246b0312eba361689f288ddf8dd516960danno@chromium.org
2204d3fe4e246b0312eba361689f288ddf8dd516960danno@chromium.org
2219e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_memcmp_const(const void *a, const void *b, size_t len)
2229e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
2239e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
2249e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
2259e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2269e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgchar * os_strstr(const char *haystack, const char *needle)
2279e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
2289e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return NULL;
2299e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
2309e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2319e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org
2329e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.orgint os_snprintf(char *str, size_t size, const char *format, ...)
2339e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org{
2349e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org	return 0;
2359e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org}
2369e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org#endif /* OS_NO_C_LIB_DEFINES */
2379e3e0b618a14a05efd7d66f20bac4423dd3a1a2ffschneider@chromium.org