nodemcu-firmware/app/libc/c_stdlib.c

61 lines
1.6 KiB
C
Raw Normal View History

#include "c_stdlib.h"
#include "c_stdio.h"
#include "c_types.h"
#include "c_string.h"
#include "user_interface.h"
// const char *lua_init_value = "print(\"Hello world\")";
const char *lua_init_value = "@init.lua";
// int ICACHE_FLASH_ATTR c_abs(int x){
// return x>0?x:0-x;
// }
// void ICACHE_FLASH_ATTR c_exit(int e){
// }
const char *ICACHE_FLASH_ATTR c_getenv(const char *__string){
if (c_strcmp(__string, "LUA_INIT") == 0){
return lua_init_value;
}
return NULL;
}
// make sure there is enough memory before real malloc, otherwise malloc will panic and reset
void *ICACHE_FLASH_ATTR c_malloc(size_t __size){
if(__size>system_get_free_heap_size()){
NODE_ERR("malloc: not enough memory\n");
return NULL;
}
return (void *)os_malloc(__size);
}
void *ICACHE_FLASH_ATTR c_zalloc(size_t __size){
if(__size>system_get_free_heap_size()){
NODE_ERR("zalloc: not enough memory\n");
return NULL;
}
return (void *)os_zalloc(__size);
}
void ICACHE_FLASH_ATTR c_free(void *p){
// NODE_ERR("free1: %d\n", system_get_free_heap_size());
os_free(p);
// NODE_ERR("-free1: %d\n", system_get_free_heap_size());
}
// int ICACHE_FLASH_ATTR c_rand(void){
// }
// void ICACHE_FLASH_ATTR c_srand(unsigned int __seed){
// }
// int ICACHE_FLASH_ATTR c_atoi(const char *__nptr){
// }
// double ICACHE_FLASH_ATTR c_strtod(const char *__n, char **__end_PTR){
// }
// long ICACHE_FLASH_ATTR c_strtol(const char *__n, char **__end_PTR, int __base){
// }
// unsigned long ICACHE_FLASH_ATTR c_strtoul(const char *__n, char **__end_PTR, int __base){
// }
// long long ICACHE_FLASH_ATTR c_strtoll(const char *__n, char **__end_PTR, int __base){
// }