user: implement mlibc as the libc, finally.
It's finally done.. Signed-off-by: kaguya <vpshinomiya@protonmail.com>
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#ifndef MLIBC_FENV_H
|
||||
#define MLIBC_FENV_H
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
|
||||
#define FE_DENORMAL 2
|
||||
#define FE_DIVBYZERO 4
|
||||
#define FE_INEXACT 32
|
||||
#define FE_INVALID 1
|
||||
#define FE_OVERFLOW 8
|
||||
#define FE_UNDERFLOW 16
|
||||
|
||||
#define FE_ALL_EXCEPT (FE_DENORMAL | FE_DIVBYZERO | FE_INEXACT | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
|
||||
|
||||
#define FE_TONEAREST 0
|
||||
#define FE_DOWNWARD 0x400
|
||||
#define FE_UPWARD 0x800
|
||||
#define FE_TOWARDZERO 0xC00
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
#define FE_INVALID 1
|
||||
#define FE_DIVBYZERO 2
|
||||
#define FE_OVERFLOW 4
|
||||
#define FE_UNDERFLOW 8
|
||||
#define FE_INEXACT 16
|
||||
|
||||
#define FE_ALL_EXCEPT 31
|
||||
|
||||
#define FE_TONEAREST 0
|
||||
#define FE_UPWARD 0x400000
|
||||
#define FE_DOWNWARD 0x800000
|
||||
#define FE_TOWARDZERO 0xC00000
|
||||
|
||||
#elif defined(__riscv) && __riscv_xlen == 64
|
||||
|
||||
#define FE_INEXACT 1
|
||||
#define FE_UNDERFLOW 2
|
||||
#define FE_OVERFLOW 4
|
||||
#define FE_DIVBYZERO 8
|
||||
#define FE_INVALID 16
|
||||
|
||||
#define FE_ALL_EXCEPT 31
|
||||
|
||||
#define FE_TONEAREST 0
|
||||
#define FE_TOWARDZERO 1
|
||||
#define FE_DOWNWARD 2
|
||||
#define FE_UPWARD 3
|
||||
|
||||
#elif defined (__m68k__)
|
||||
|
||||
#if __HAVE_68881__ || __mcffpu__ || __HAVE_FPU_
|
||||
|
||||
#define FE_INEXACT 8
|
||||
#define FE_DIVBYZERO 16
|
||||
#define FE_UNDERFLOW 32
|
||||
#define FE_OVERFLOW 64
|
||||
#define FE_INVALID 128
|
||||
|
||||
#define FE_ALL_EXCEPT 0xf8
|
||||
|
||||
#define FE_TONEAREST 0
|
||||
#define FE_TOWARDZERO 16
|
||||
#define FE_DOWNWARD 32
|
||||
#define FE_UPWARD 48
|
||||
|
||||
#else
|
||||
|
||||
#define FE_ALL_EXCEPT 0
|
||||
#define FE_TONEAREST 0
|
||||
|
||||
#endif
|
||||
|
||||
#elif defined(__loongarch64)
|
||||
|
||||
#define FE_INEXACT 0x010000
|
||||
#define FE_UNDERFLOW 0x020000
|
||||
#define FE_OVERFLOW 0x040000
|
||||
#define FE_DIVBYZERO 0x080000
|
||||
#define FE_INVALID 0x100000
|
||||
|
||||
#define FE_ALL_EXCEPT (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
|
||||
|
||||
#define FE_TONEAREST 0x000
|
||||
#define FE_TOWARDZERO 0x100
|
||||
#define FE_UPWARD 0x200
|
||||
#define FE_DOWNWARD 0x300
|
||||
|
||||
#else
|
||||
#error Unknown architecture
|
||||
#endif
|
||||
|
||||
#endif /* MLIBC_FENV_H */
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
#ifndef MLIBC_TIME_T
|
||||
#define MLIBC_TIME_T
|
||||
|
||||
typedef long time_t;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
#ifndef MLIBC_TIMESPEC_H
|
||||
#define MLIBC_TIMESPEC_H
|
||||
|
||||
#include <bits/ansi/time_t.h>
|
||||
|
||||
struct timespec {
|
||||
time_t tv_sec;
|
||||
long tv_nsec;
|
||||
};
|
||||
|
||||
#endif /* MLIBC_TIMESPEC_H */
|
||||
|
||||
Reference in New Issue
Block a user