Commit e49f2bb1 authored by Johny Mattsson's avatar Johny Mattsson
Browse files

Remove conflicting libc, rename c_xx and os_xx to xx.

c_strtod and c_getenv are kept since strtod doesn't appear in the SDK's libc,
and we want our own c_getenv to initialize the Lua main anyway.
parent 3a3e9ee0
......@@ -13,15 +13,15 @@ typedef size_t ( *read_fn )(int fd, void *ptr, size_t len);
*
* Typical usage (if not using the crypto_xxxx() functions below):
* digest_mech_info_t *mi = crypto_digest_mech (chosen_algorithm);
* void *ctx = os_malloc (mi->ctx_size);
* void *ctx = malloc (mi->ctx_size);
* mi->create (ctx);
* mi->update (ctx, data, len);
* ...
* uint8_t *digest = os_malloc (mi->digest_size);
* uint8_t *digest = malloc (mi->digest_size);
* mi->finalize (digest, ctx);
* ...
* os_free (ctx);
* os_free (digest);
* free (ctx);
* free (digest);
*/
typedef struct
{
......
......@@ -33,7 +33,7 @@
#include "mech.h"
#include "sdk-aes.h"
#include "c_string.h"
#include <string.h>
/* ----- AES ---------------------------------------------------------- */
......@@ -58,7 +58,7 @@ static bool do_aes (crypto_op_t *co, bool with_cbc)
char iv[AES_BLOCKSIZE] = { 0 };
if (with_cbc && co->ivlen)
c_memcpy (iv, co->iv, co->ivlen < AES_BLOCKSIZE ? co->ivlen : AES_BLOCKSIZE);
memcpy (iv, co->iv, co->ivlen < AES_BLOCKSIZE ? co->ivlen : AES_BLOCKSIZE);
const char *src = co->data;
char *dst = co->out;
......@@ -68,7 +68,7 @@ static bool do_aes (crypto_op_t *co, bool with_cbc)
{
char block[AES_BLOCKSIZE] = { 0 };
size_t n = left > AES_BLOCKSIZE ? AES_BLOCKSIZE : left;
c_memcpy (block, src, n);
memcpy (block, src, n);
if (with_cbc && co->op == OP_ENCRYPT)
{
......
......@@ -29,7 +29,7 @@
#include "user_interface.h"
#include "platform.h"
#include "c_stdio.h"
#include <stdio.h>
#include "dht.h"
#ifndef LOW
......
......@@ -33,7 +33,7 @@ LOCAL void ICACHE_RAM_ATTR key_intr_handler(void *arg);
struct single_key_param *ICACHE_FLASH_ATTR
key_init_single(uint8 gpio_id, uint32 gpio_name, uint8 gpio_func, key_function long_press, key_function short_press)
{
struct single_key_param *single_key = (struct single_key_param *)os_zalloc(sizeof(struct single_key_param));
struct single_key_param *single_key = (struct single_key_param *)zalloc(sizeof(struct single_key_param));
single_key->gpio_id = gpio_id;
single_key->gpio_name = gpio_name;
......
......@@ -12,8 +12,8 @@
#include "platform.h"
#include "c_types.h"
#include "../libc/c_stdlib.h"
#include "../libc/c_stdio.h"
#include <stdlib.h>
#include <stdio.h>
#include "driver/rotary.h"
#include "user_interface.h"
#include "esp_system.h"
......@@ -88,7 +88,7 @@ int rotary_close(uint32_t channel)
rotary_clear_pin(d->phase_b_pin);
rotary_clear_pin(d->press_pin);
os_free(d);
free(d);
set_gpio_bits();
......@@ -178,7 +178,7 @@ static uint32_t ICACHE_RAM_ATTR rotary_interrupt(uint32_t ret_gpio_status)
if (HAS_QUEUE_SPACE(d)) {
QUEUE_STATUS(d, new_status);
if (!task_queued) {
if (task_post_medium(d->tasknumber, (os_param_t) &task_queued)) {
if (task_post_medium(d->tasknumber, (task_param_t) &task_queued)) {
task_queued = 1;
}
}
......@@ -208,7 +208,7 @@ int rotary_setup(uint32_t channel, int phase_a, int phase_b, int press, task_han
}
}
DATA *d = (DATA *) os_zalloc(sizeof(DATA));
DATA *d = (DATA *) zalloc(sizeof(DATA));
if (!d) {
return -1;
}
......
......@@ -650,7 +650,7 @@ void ICACHE_FLASH_ATTR
void ICACHE_FLASH_ATTR
spi_task_init(void)
{
spiQueue = (os_event_t*)os_malloc(sizeof(os_event_t)*SPI_QUEUE_LEN);
spiQueue = (os_event_t*)malloc(sizeof(os_event_t)*SPI_QUEUE_LEN);
system_os_task(spi_task,USER_TASK_PRIO_1,spiQueue,SPI_QUEUE_LEN);
}
......
......@@ -42,7 +42,7 @@ static char * ICACHE_FLASH_ATTR esp_strdup( const char * str )
{
return(NULL);
}
char * new_str = (char *) os_malloc( os_strlen( str ) + 1 ); /* 1 for null character */
char * new_str = (char *) malloc( os_strlen( str ) + 1 ); /* 1 for null character */
if ( new_str == NULL )
{
HTTPCLIENT_DEBUG( "esp_strdup: malloc error" );
......@@ -132,7 +132,7 @@ static void ICACHE_FLASH_ATTR http_receive_callback( void * arg, char * buf, uns
/* Let's do the equivalent of a realloc(). */
const int new_size = req->buffer_size + len;
char * new_buffer;
if ( new_size > BUFFER_SIZE_MAX || NULL == (new_buffer = (char *) os_malloc( new_size ) ) )
if ( new_size > BUFFER_SIZE_MAX || NULL == (new_buffer = (char *) malloc( new_size ) ) )
{
HTTPCLIENT_DEBUG( "Response too long (%d)\n", new_size );
req->buffer[0] = '\0'; /* Discard the buffer to avoid using an incomplete response. */
......@@ -149,7 +149,7 @@ static void ICACHE_FLASH_ATTR http_receive_callback( void * arg, char * buf, uns
os_memcpy( new_buffer + req->buffer_size - 1 /*overwrite the null character*/, buf, len ); /* Append new data. */
new_buffer[new_size - 1] = '\0'; /* Make sure there is an end of string. */
os_free( req->buffer );
free( req->buffer );
req->buffer = new_buffer;
req->buffer_size = new_size;
}
......@@ -174,7 +174,7 @@ static void ICACHE_FLASH_ATTR http_send_callback( void * arg )
else
#endif
espconn_send( conn, (uint8_t *) req->post_data, strlen( req->post_data ) );
os_free( req->post_data );
free( req->post_data );
req->post_data = NULL;
}
}
......@@ -198,7 +198,7 @@ static void ICACHE_FLASH_ATTR http_connect_callback( void * arg )
if(req->headers == NULL) /* Avoid NULL pointer, it may cause exception */
{
req->headers = (char *)os_malloc(sizeof(char));
req->headers = (char *)malloc(sizeof(char));
req->headers[0] = '\0';
}
......@@ -221,7 +221,7 @@ static void ICACHE_FLASH_ATTR http_connect_callback( void * arg )
#endif
espconn_send( conn, (uint8_t *) buf, len );
if(req->headers != NULL)
os_free( req->headers );
free( req->headers );
req->headers = NULL;
HTTPCLIENT_DEBUG( "Sending request header\n" );
}
......@@ -239,7 +239,7 @@ static void ICACHE_FLASH_ATTR http_disconnect_callback( void * arg )
if ( conn->proto.tcp != NULL )
{
os_free( conn->proto.tcp );
free( conn->proto.tcp );
}
if ( conn->reverse != NULL )
{
......@@ -295,16 +295,16 @@ static void ICACHE_FLASH_ATTR http_disconnect_callback( void * arg )
req->callback_handle( body, http_status, req->buffer );
}
if (req->buffer) {
os_free( req->buffer );
free( req->buffer );
}
os_free( req->hostname );
os_free( req->method );
os_free( req->path );
os_free( req );
free( req->hostname );
free( req->method );
free( req->path );
free( req );
}
/* Fix memory leak. */
espconn_delete( conn );
os_free( conn );
free( conn );
}
......@@ -349,16 +349,16 @@ static void ICACHE_FLASH_ATTR http_dns_callback( const char * hostname, ip_addr_
{
req->callback_handle( "", -1, "" );
}
os_free( req );
free( req );
}
else
{
HTTPCLIENT_DEBUG( "DNS found %s " IPSTR "\n", hostname, IP2STR( addr ) );
struct espconn * conn = (struct espconn *) os_zalloc( sizeof(struct espconn) );
struct espconn * conn = (struct espconn *) zalloc( sizeof(struct espconn) );
conn->type = ESPCONN_TCP;
conn->state = ESPCONN_NONE;
conn->proto.tcp = (esp_tcp *) os_zalloc( sizeof(esp_tcp) );
conn->proto.tcp = (esp_tcp *) zalloc( sizeof(esp_tcp) );
conn->proto.tcp->local_port = espconn_port();
conn->proto.tcp->remote_port = req->port;
conn->reverse = req;
......@@ -393,7 +393,7 @@ void ICACHE_FLASH_ATTR http_raw_request( const char * hostname, int port, bool s
{
HTTPCLIENT_DEBUG( "DNS request\n" );
request_args_t * req = (request_args_t *) os_zalloc( sizeof(request_args_t) );
request_args_t * req = (request_args_t *) zalloc( sizeof(request_args_t) );
req->hostname = esp_strdup( hostname );
req->port = port;
req->secure = secure;
......@@ -402,7 +402,7 @@ void ICACHE_FLASH_ATTR http_raw_request( const char * hostname, int port, bool s
req->headers = esp_strdup( headers );
req->post_data = esp_strdup( post_data );
req->buffer_size = 1;
req->buffer = (char *) os_malloc( 1 );
req->buffer = (char *) malloc( 1 );
req->buffer[0] = '\0'; /* Empty string. */
req->callback_handle = callback_handle;
req->timeout = HTTP_REQUEST_TIMEOUT_MS;
......
#ifndef READLINE_APP_H
#define READLINE_APP_H
#include <stdbool.h>
bool uart_getc(char *c);
#endif /* READLINE_APP_H */
......@@ -5,6 +5,7 @@
#include "eagle_soc.h"
#include "c_types.h"
#include "os_type.h"
#include "task/task.h"
#define RX_BUFF_SIZE 0x100
#define TX_BUFF_SIZE 100
......@@ -101,7 +102,7 @@ typedef struct {
int buff_uart_no; //indicate which uart use tx/rx buffer
} UartDevice;
void uart_init(UartBautRate uart0_br, UartBautRate uart1_br, os_signal_t sig_input);
void uart_init(UartBautRate uart0_br, UartBautRate uart1_br, task_handle_t sig_input);
void uart0_alt(uint8 on);
void uart0_sendStr(const char *str);
void uart0_putc(const char c);
......
......@@ -38,13 +38,13 @@ extern void luaL_assertfail(const char *file, int line, const char *message);
#define NODE_ERROR
#ifdef NODE_DEBUG
#define NODE_DBG c_printf
#define NODE_DBG printf
#else
#define NODE_DBG
#endif /* NODE_DEBUG */
#ifdef NODE_ERROR
#define NODE_ERR c_printf
#define NODE_ERR printf
#else
#define NODE_ERR
#endif /* NODE_ERROR */
......
#############################################################
# Required variables for each makefile
# Discard this section from all parent makefiles
# Expected variables (with automatic defaults):
# CSRCS (all "C" files in the dir)
# SUBDIRS (all subdirs with a Makefile)
# GEN_LIBS - list of libs to be generated ()
# GEN_IMAGES - list of images to be generated ()
# COMPONENTS_xxx - a list of libs/objs in the form
# subdir/lib to be extracted and rolled up into
# a generated lib/image xxx.a ()
#
ifndef PDIR
GEN_LIBS = liblibc.a
endif
#############################################################
# Configuration i.e. compile options etc.
# Target specific stuff (defines etc.) goes in here!
# Generally values applying to a tree are captured in the
# makefile at its root level - these are then overridden
# for a subtree within the makefile rooted therein
#
#DEFINES +=
#############################################################
# Recursion Magic - Don't touch this!!
#
# Each subtree potentially has an include directory
# corresponding to the common APIs applicable to modules
# rooted at that subtree. Accordingly, the INCLUDE PATH
# of a module can only contain the include directories up
# its parent path, and not its siblings
#
# Required for each makefile to inherit from the parent
#
INCLUDES := $(INCLUDES) -I $(PDIR)include
INCLUDES += -I ./
PDIR := ../$(PDIR)
sinclude $(PDIR)Makefile
#include "c_ctype.h"
#include "c_types.h"
// int isalnum(int c){}
// int isalpha(int c){}
// int iscntrl(int c){}
// int isdigit(int c){}
// // int isgraph(int c){}
// int islower(int c){}
// int isprint(int c){}
// int ispunct(int c){}
// int isspace(int c){}
// int isupper(int c){}
// int isxdigit(int c){}
// int tolower(int c){}
// int toupper(int c){}
#ifndef _C_CTYPE_H_
#define _C_CTYPE_H_
#if 0
int isalnum(int);
int isalpha(int);
int iscntrl(int);
int isdigit(int);
// int isgraph(int);
int islower(int);
int isprint(int);
int ispunct(int);
int isspace(int);
int isupper(int);
int isxdigit(int);
int tolower(int);
int toupper(int);
#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
// int isblank(int);
#endif
#ifndef __STRICT_ANSI__
// int isascii(int);
// int toascii(int);
#define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a')
#define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A')
#endif
#define _U 01
#define _L 02
#define _N 04
#define _S 010
#define _P 020
#define _C 040
#define _X 0100
#define _B 0200
/* For C++ backward-compatibility only. */
// extern char _ctype_[];
#endif
#endif /* _C_CTYPE_H_ */
#ifndef __c_errno_h
#define __c_errno_h
#include <errno.h>
// #ifndef errno
// extern int errno;
// #endif
// #define EDOM 1
// #define ERANGE 2
// #define EILSEQ 4
// #define ESIGNUM 3
// #define EINVAL 5
// #define ENOMEM 6
#endif
/* end of c_errno.h */
#ifndef __c_fcntl_h
#define __c_fcntl_h
#include <fcntl.h>
#endif
/* end of c_fcntl.h */
#ifndef __c_limits_h
#define __c_limits_h
#include <limits.h>
#if 0
#define CHAR_BIT 8
/* max number of bits for smallest object that is not a bit-field (byte) */
#define SCHAR_MIN (-128)
/* mimimum value for an object of type signed char */
#define SCHAR_MAX 127
/* maximum value for an object of type signed char */
#define UCHAR_MAX 255
/* maximum value for an object of type unsigned char */
#ifdef __FEATURE_SIGNED_CHAR
#define CHAR_MIN (-128)
/* minimum value for an object of type char */
#define CHAR_MAX 127
/* maximum value for an object of type char */
#else
#define CHAR_MIN 0
/* minimum value for an object of type char */
#define CHAR_MAX 255
/* maximum value for an object of type char */
#endif
#define SHRT_MIN (-0x8000)
/* minimum value for an object of type short int */
#define SHRT_MAX 0x7fff
/* maximum value for an object of type short int */
#define USHRT_MAX 65535
/* maximum value for an object of type unsigned short int */
#define INT_MIN (~0x7fffffff) /* -2147483648 and 0x80000000 are unsigned */
/* minimum value for an object of type int */
#define INT_MAX 0x7fffffff
/* maximum value for an object of type int */
#define UINT_MAX 0xffffffffU
/* maximum value for an object of type unsigned int */
#define LONG_MIN (~0x7fffffffL)
/* minimum value for an object of type long int */
#define LONG_MAX 0x7fffffffL
/* maximum value for an object of type long int */
#define ULONG_MAX 0xffffffffUL
/* maximum value for an object of type unsigned long int */
#if !defined(__STRICT_ANSI__) || (defined(__STDC_VERSION__) && 199901L <= __STDC_VERSION__)
#define LLONG_MIN (~0x7fffffffffffffffLL)
/* minimum value for an object of type long long int */
#define LLONG_MAX 0x7fffffffffffffffLL
/* maximum value for an object of type long long int */
#define ULLONG_MAX 0xffffffffffffffffULL
/* maximum value for an object of type unsigned long int */
#endif
#endif
#endif
/* end of c_limits.h */
/*
c_locale.h
Values appropriate for the formatting of monetary and other
numberic quantities.
*/
#ifndef _C_LOCALE_H_
#define _C_LOCALE_H_
#include <locale.h>
#if 0
#ifndef NULL
#define NULL 0
#endif
#define LC_ALL 0
#define LC_COLLATE 1
#define LC_CTYPE 2
#define LC_MONETARY 3
#define LC_NUMERIC 4
#define LC_TIME 5
#define LC_MESSAGES 6
struct lconv
{
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
char int_n_cs_precedes;
char int_n_sep_by_space;
char int_n_sign_posn;
char int_p_cs_precedes;
char int_p_sep_by_space;
char int_p_sign_posn;
};
#ifndef _REENT_ONLY
// char *setlocale(int category, const char *locale);
struct lconv *localeconv(void);
#endif
// struct _reent;
// char *_setlocale_r(struct _reent *, int category, const char *locale);
// struct lconv *_localeconv_r(struct _reent *);
#endif
#endif /* _C_LOCALE_H_ */
#include "c_math.h"
#include "c_types.h"
#include "user_config.h"
double floor(double x)
{
return (double) (x < 0.f ? (((int) x) - 1) : ((int) x));
}
#define MAXEXP 2031 /* (MAX_EXP * 16) - 1 */
#define MINEXP -2047 /* (MIN_EXP * 16) - 1 */
#define HUGE MAXFLOAT
double a1[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR =
{
1.0,
0.95760328069857365,
0.91700404320467123,
0.87812608018664974,
0.84089641525371454,
0.80524516597462716,
0.77110541270397041,
0.73841307296974966,
0.70710678118654752,
0.67712777346844637,
0.64841977732550483,
0.62092890603674203,
0.59460355750136054,
0.56939431737834583,
0.54525386633262883,
0.52213689121370692,
0.50000000000000000
};
double a2[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR =
{
0.24114209503420288E-17,
0.92291566937243079E-18,
-0.15241915231122319E-17,
-0.35421849765286817E-17,
-0.31286215245415074E-17,
-0.44654376565694490E-17,
0.29306999570789681E-17,
0.11260851040933474E-17
};
double p1 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.833333333333332114e-1;
double p2 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.125000000005037992e-1;
double p3 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.223214212859242590e-2;
double p4 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.434457756721631196e-3;
double q1 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.693147180559945296e0;
double q2 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.240226506959095371e0;
double q3 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.555041086640855953e-1;
double q4 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.961812905951724170e-2;
double q5 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.133335413135857847e-2;
double q6 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.154002904409897646e-3;
double q7 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.149288526805956082e-4;
double k ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.442695040888963407;
double pow(double x, double y)
{
double frexp(), g, ldexp(), r, u1, u2, v, w, w1, w2, y1, y2, z;
int iw1, m, p;
if (y == 0.0)
return (1.0);
if (x <= 0.0)
{
if (x == 0.0)
{
if (y > 0.0)
return (x);
//cmemsg(FP_POWO, &y);
//return(HUGE);
}
else
{
//cmemsg(FP_POWN, &x);
x = -x;
}
}
g = frexp(x, &m);
p = 0;
if (g <= a1[8])
p = 8;
if (g <= a1[p + 4])
p += 4;
if (g <= a1[p + 2])
p += 2;
p++;
z = ((g - a1[p]) - a2[p / 2]) / (g + a1[p]);
z += z;
v = z * z;
r = (((p4 * v + p3) * v + p2) * v + p1) * v * z;
r += k * r;
u2 = (r + z * k) + z;
u1 = 0.0625 * (double)(16 * m - p);
y1 = 0.0625 * (double)((int)(16.0 * y));
y2 = y - y1;
w = u2 * y + u1 * y2;
w1 = 0.0625 * (double)((int)(16.0 * w));
w2 = w - w1;
w = w1 + u1 * y1;
w1 = 0.0625 * (double)((int)(16.0 * w));
w2 += (w - w1);
w = 0.0625 * (double)((int)(16.0 * w2));
iw1 = 16.0 * (w1 + w);
w2 -= w;
while (w2 > 0.0)
{
iw1++;
w2 -= 0.0625;
}
if (iw1 > MAXEXP)
{
//cmemsg(FP_POWO, &y);
return (HUGE);
}
if (iw1 < MINEXP)
{
//cmemsg(FP_POWU, &y);
return (0.0);
}
m = iw1 / 16;
if (iw1 >= 0)
m++;
p = 16 * m - iw1;
z = ((((((q7 * w2 + q6) * w2 + q5) * w2 + q4) * w2 + q3) * w2 + q2) * w2 + q1) * w2;
z = a1[p] + a1[p] * z;
return (ldexp(z, m));
}
#if 0
#ifndef __math_68881
double atan(double x)
{
return x;
}
double cos(double x)
{
return x;
}
double sin(double x)
{
return x;
}
double tan(double x)
{
return x;
}
double tanh(double x)
{
return x;
}
double frexp(double x, int *y)
{
return x;
}
double modf(double x, double *y)
{
return x;
}
double ceil(double x)
{
return x;
}
double fabs(double x)
{
return x;
}
double floor(double x)
{
return x;
}
#endif /* ! defined (__math_68881) */
/* Non reentrant ANSI C functions. */
#ifndef _REENT_ONLY
#ifndef __math_68881
double acos(double x)
{
return x;
}
double asin(double x)
{
return x;
}
double atan2(double x, double y)
{
return x;
}
double cosh(double x)
{
return x;
}
double sinh(double x)
{
return x;
}
double exp(double x)
{
return x;
}
double ldexp(double x, int y)
{
return x;
}
double log(double x)
{
return x;
}
double log10(double x)
{
return x;
}
double pow(double x, double y)
{
return x;
}
double sqrt(double x)
{
return x;
}
double fmod(double x, double y)
{
return x;
}
#endif /* ! defined (__math_68881) */
#endif /* ! defined (_REENT_ONLY) */
#endif
#ifndef _C_MATH_H_
#define _C_MATH_H_
#include <math.h>
double floor(double);
double pow(double, double);
#if 0
#ifndef HUGE_VAL
#define HUGE_VAL (1.0e99)
#endif
#ifndef HUGE_VALF
#define HUGE_VALF (1.0e999999999F)
#endif
#if !defined(HUGE_VALL) && defined(_HAVE_LONG_DOUBLE)
#define HUGE_VALL (1.0e999999999L)
#endif
#if !defined(INFINITY)
#define INFINITY (HUGE_VALF)
#endif
/* Reentrant ANSI C functions. */
#ifndef __math_68881
// double atan(double);
// double cos(double);
// double sin(double);
// double tan(double);
// double tanh(double);
// double frexp(double, int *);
// double modf(double, double *);
// double ceil(double);
// double fabs(double);
// double floor(double);
#endif /* ! defined (__math_68881) */
/* Non reentrant ANSI C functions. */
#ifndef _REENT_ONLY
#ifndef __math_68881
// double acos(double);
// double asin(double);
// double atan2(double, double);
// double cosh(double);
// double sinh(double);
// double exp(double);
// double ldexp(double, int);
// double log(double);
// double log10(double);
// double pow(double, double);
// double sqrt(double);
// double fmod(double, double);
#endif /* ! defined (__math_68881) */
#endif /* ! defined (_REENT_ONLY) */
#endif
#endif /* _MATH_H_ */
#ifndef _C_SIGNAL_H_
#define _C_SIGNAL_H_
#include <signal.h>
#endif /* _C_SIGNAL_H_ */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment