forked from M-Labs/artiq
runtime: expose more libm functions
This commit is contained in:
parent
c6f0c4dca4
commit
d8cd5023f6
|
@ -67,10 +67,48 @@ static mut API: &'static [(&'static str, *const ())] = &[
|
||||||
api!(memcmp, extern { fn memcmp(a: *const u8, b: *mut u8, size: usize); }),
|
api!(memcmp, extern { fn memcmp(a: *const u8, b: *mut u8, size: usize); }),
|
||||||
|
|
||||||
/* libm */
|
/* libm */
|
||||||
api!(sqrt),
|
// commented out functions are not available with the libm used here, but are available in NAR3.
|
||||||
api!(round),
|
api!(acos),
|
||||||
|
api!(acosh),
|
||||||
|
api!(asin),
|
||||||
|
api!(asinh),
|
||||||
|
api!(atan),
|
||||||
|
api!(atan2),
|
||||||
|
api!(atanh),
|
||||||
|
api!(cbrt),
|
||||||
|
api!(ceil),
|
||||||
|
api!(cos),
|
||||||
|
api!(cosh),
|
||||||
|
api!(erf),
|
||||||
|
api!(erfc),
|
||||||
|
api!(exp),
|
||||||
|
//api!(exp2),
|
||||||
|
//api!(exp10),
|
||||||
|
api!(expm1),
|
||||||
|
api!(fabs),
|
||||||
api!(floor),
|
api!(floor),
|
||||||
|
//api!(fma),
|
||||||
api!(fmod),
|
api!(fmod),
|
||||||
|
api!(hypot),
|
||||||
|
api!(j0),
|
||||||
|
api!(j1),
|
||||||
|
api!(jn),
|
||||||
|
api!(lgamma),
|
||||||
|
api!(log),
|
||||||
|
//api!(log2),
|
||||||
|
api!(log10),
|
||||||
|
api!(pow),
|
||||||
|
api!(round),
|
||||||
|
api!(sin),
|
||||||
|
api!(sinh),
|
||||||
|
api!(sqrt),
|
||||||
|
api!(tan),
|
||||||
|
api!(tanh),
|
||||||
|
//api!(tgamma),
|
||||||
|
//api!(trunc),
|
||||||
|
api!(y0),
|
||||||
|
api!(y1),
|
||||||
|
api!(yn),
|
||||||
|
|
||||||
/* exceptions */
|
/* exceptions */
|
||||||
api!(_Unwind_Resume = ::unwind::_Unwind_Resume),
|
api!(_Unwind_Resume = ::unwind::_Unwind_Resume),
|
||||||
|
|
|
@ -15,7 +15,7 @@ void send_to_core_log(struct slice str);
|
||||||
void send_to_rtio_log(struct slice data);
|
void send_to_rtio_log(struct slice data);
|
||||||
|
|
||||||
#define KERNELCPU_EXEC_ADDRESS 0x40800000
|
#define KERNELCPU_EXEC_ADDRESS 0x40800000
|
||||||
#define KERNELCPU_PAYLOAD_ADDRESS 0x40840000
|
#define KERNELCPU_PAYLOAD_ADDRESS 0x40860000
|
||||||
#define KERNELCPU_LAST_ADDRESS 0x4fffffff
|
#define KERNELCPU_LAST_ADDRESS 0x4fffffff
|
||||||
#define KSUPPORT_HEADER_SIZE 0x80
|
#define KSUPPORT_HEADER_SIZE 0x80
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,12 @@ ENTRY(_reset_handler)
|
||||||
* code/data/heap, then comes kernel memory.
|
* code/data/heap, then comes kernel memory.
|
||||||
* Next 4M of main memory are reserved for
|
* Next 4M of main memory are reserved for
|
||||||
* the background RPC queue.
|
* the background RPC queue.
|
||||||
* First 256K of kernel memory are for support code.
|
* First 384K of kernel memory are for support code.
|
||||||
* Support code is loaded at ORIGIN-0x80 so that ELF headers
|
* Support code is loaded at ORIGIN-0x80 so that ELF headers
|
||||||
* are also loaded.
|
* are also loaded.
|
||||||
*/
|
*/
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ksupport (RWX) : ORIGIN = 0x40800000, LENGTH = 0x40000
|
ksupport (RWX) : ORIGIN = 0x40800000, LENGTH = 0x60000
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Kernel stack is at the end of main RAM. */
|
/* Kernel stack is at the end of main RAM. */
|
||||||
|
|
|
@ -2,7 +2,7 @@ use core::fmt;
|
||||||
use dyld;
|
use dyld;
|
||||||
|
|
||||||
pub const KERNELCPU_EXEC_ADDRESS: usize = 0x40800000;
|
pub const KERNELCPU_EXEC_ADDRESS: usize = 0x40800000;
|
||||||
pub const KERNELCPU_PAYLOAD_ADDRESS: usize = 0x40840000;
|
pub const KERNELCPU_PAYLOAD_ADDRESS: usize = 0x40860000;
|
||||||
pub const KERNELCPU_LAST_ADDRESS: usize = 0x4fffffff;
|
pub const KERNELCPU_LAST_ADDRESS: usize = 0x4fffffff;
|
||||||
pub const KSUPPORT_HEADER_SIZE: usize = 0x80;
|
pub const KSUPPORT_HEADER_SIZE: usize = 0x80;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue