xref: /nrf52832-nimble/rt-thread/components/libc/compilers/newlib/libc.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  * 2017/10/15     bernard      the first version
9*10465441SEvalZero  */
10*10465441SEvalZero #ifndef __RTT_LIBC_H__
11*10465441SEvalZero #define __RTT_LIBC_H__
12*10465441SEvalZero 
13*10465441SEvalZero #include <stdio.h>
14*10465441SEvalZero #include <stdint.h>
15*10465441SEvalZero #include <string.h>
16*10465441SEvalZero #include <sys/time.h>
17*10465441SEvalZero 
18*10465441SEvalZero #ifndef _EXFUN
19*10465441SEvalZero #define _EXFUN(name, proto)		name proto
20*10465441SEvalZero #endif
21*10465441SEvalZero 
22*10465441SEvalZero #define MILLISECOND_PER_SECOND  1000UL
23*10465441SEvalZero #define MICROSECOND_PER_SECOND  1000000UL
24*10465441SEvalZero #define NANOSECOND_PER_SECOND   1000000000UL
25*10465441SEvalZero 
26*10465441SEvalZero #define MILLISECOND_PER_TICK    (MILLISECOND_PER_SECOND / RT_TICK_PER_SECOND)
27*10465441SEvalZero #define MICROSECOND_PER_TICK    (MICROSECOND_PER_SECOND / RT_TICK_PER_SECOND)
28*10465441SEvalZero #define NANOSECOND_PER_TICK     (NANOSECOND_PER_SECOND  / RT_TICK_PER_SECOND)
29*10465441SEvalZero 
30*10465441SEvalZero int libc_system_init(void);
31*10465441SEvalZero int libc_stdio_set_console(const char* device_name, int mode);
32*10465441SEvalZero int libc_stdio_get_console(void);
33*10465441SEvalZero 
34*10465441SEvalZero /* some time related function */
35*10465441SEvalZero int libc_set_time(const struct timespec *time);
36*10465441SEvalZero int libc_get_time(struct timespec *time);
37*10465441SEvalZero int libc_time_to_tick(const struct timespec *time);
38*10465441SEvalZero 
39*10465441SEvalZero #endif
40