/******************************************************************************
版权所有：	
文件名称：	rt_clib.h
文件版本：	01.01
创建作者：	sunxi
创建日期：	2020-03-30
功能说明：	标准C库的接口.
其它说明：
修改记录：
*/
#ifndef _RT_CLIB_H
#define _RT_CLIB_H
/*------------------------------- 头文件 --------------------------------------
*/
#include "limits.h"

/*------------------------------- 宏定义 --------------------------------------
*/
//linux内核中的sprintf不支持浮点打印
//rt_sprintf支持浮点打印。
#define rt_sprintf sprintf

//正负浮点数四舍五入，float double类型自适应
#define rt_round(f) ((f<0)?(f-0.5):(f+0.5))
#if 1
//#define USHORT_MAX	((unsigned short)(~0U))
//#define SHORT_MAX	((signed short)(USHORT_MAX>>1))
#define SHORT_MIN	(-SHORT_MAX - 1)
#if 0 // sunxi 20220425 csky-toolchain/lib/gcc/csky-linux-gnuabiv2/6.3.0/include-fixed/limits.h 已经定义了
#define INT_MAX		((int)(~0U>>1))
#define INT_MIN		(-INT_MAX - 1)
#define UINT_MAX	(~0U)
#define LONG_MAX	((long)(~0UL>>1))
#define LONG_MIN	(-LONG_MAX - 1)
#define ULONG_MAX	(~0UL)
#define LLONG_MAX	((long long)(~0ULL>>1))
#define LLONG_MIN	(-LLONG_MAX - 1)
#define ULLONG_MAX	(~0ULL)
#endif
#endif


/*------------------------------ 类型结构 -------------------------------------
*/


/*------------------------------ 函数声明 -------------------------------------
*/
#if 0
void abort(void);
void * bsearch(const void *key, const void *base0, int nmemb, int size, int (*compar)(const void *, const void *));
long strtol(const char *nptr, char **endptr, int base);
unsigned long strtoul(const char *nptr, char **endptr, int base);
long atol(const char *str);
long atoi(const char *str);
#endif

float sqrtf(float x);

float  atan2f (float y, float x);



int rt_sprintf(char * buf, const char *fmt, ...);

void swap32(void *p);
void swap16(void *p);

#endif //_RT_CLIB_H

/*------------------------------ 文件结束 -------------------------------------
*/
