text: #include <stdlib.h>
  #include <string.h>
  #include <stdarg.h>
  #include <stdio.h>
  
  #include <wl_os.h>
  
  void *owl_os_alloc(size_t size)
  {
          return malloc(size);
  }
  
  void *owl_os_realloc(void *ptr, size_t size)
  {
          return realloc(ptr, size);
  }
       
  void owl_os_free(void *p)
  {
          free(p);
  }
  
  void *owl_os_memcpy(void *dst, const void *src, size_t n)
  {
  	return memcpy(dst, src, n);
  }
  
  void *owl_os_memset(void *s, int c, size_t n)
  {
  	return memset(s, c, n);
  }
  
  void *owl_os_memmove(void *dst, const void *src, size_t n)
  {
  	return memmove(dst, src, n);
  }
  
  size_t owl_os_strlen(char *s)
  {
  	return strlen(s);
  }
  
  char *owl_os_strncpy(char *dst, const char *src, size_t n)
  {
  	return strncpy(dst, src, n);
  }
  
  int owl_os_strncmp(const char *s1, const char *s2, size_t n)
  {
  	return strncmp(s1, s2, n);
  }
  
  int owl_os_strcmp(const char *s1, const char *s2)
  {
  	return strcmp(s1, s2);
  }
  
  char *owl_os_strcpy(char *dst, const char *src)
  {
  	return strcpy(dst, src);
  }
  
  char *owl_os_strdup(const char *s)
  {
  	return strdup(s);
  }
  
  char *owl_os_strndup(const char *s, size_t n)
  {
  	return strndup(s, n);
  }
  
  int owl_os_memcmp(const void *s1, const void *s2, size_t n)
  {
  	return memcmp(s1, s2, n);
  }
  
  long int owl_os_strtol(const char *nptr, char **endptr, int base)
  {
  	return strtol(nptr, endptr, base);
  }
  
  char *owl_os_strchr(const char *s, int c)
  {
  	return strchr(s, c);
  }
  
  char *owl_os_strrchr(const char *s, int c)
  {
  	return strrchr(s, c);
  }
  
  int owl_os_strcasecmp(const char *s1, const char *s2)
  {
  	return strcasecmp(s1, s2);
  }
  
  char *owl_os_strstr(const char *haystack, const char *needle)
  {
  	return strstr(haystack, needle);
  }
  
  int owl_os_snprintf(char *str, size_t size, const char *format, ...)
  {
  	int ret;
  	va_list ap;
  	va_start(ap, format);
  	ret = vsniprintf(str, size, format, ap);
  	va_end(ap);
  	return ret;
  }
  
  /* for debugging only, never called if wl_api was built without debug */
  #ifdef CONFIG_OWL
  #include "owl_env.h"
  int owl_os_printf(const char *fmt, ...)
  {
          char *str = NULL;
          va_list args;
          int len;
          char *iter;
  
          va_start(args, fmt);
  
          if ((str = malloc(160)) == NULL)
                  return -1;
  
          if ((len = vsniprintf(str, 160, fmt, args)) < 0) {
                  free(str);
                  return -1;
          }
  
          iter = str;
          while (*iter)
                  owl_putc(*iter++);
  
          free(str);
          return len;
  }
  #endif
  