diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-04-17 03:27:43 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-04-17 03:38:45 +0300 |
commit | f200c30d53f7fa0239e4ef48ffcbfcad5cf5406f (patch) | |
tree | a105fb103d51cafdd9efff0373ce9f040d3295ce /unix/modffi.c | |
parent | 8865b22b5121934d5e9a0c5c5a541bb1e75740be (diff) | |
download | micropython-f200c30d53f7fa0239e4ef48ffcbfcad5cf5406f.tar.gz micropython-f200c30d53f7fa0239e4ef48ffcbfcad5cf5406f.zip |
modffi: Support float types.
Diffstat (limited to 'unix/modffi.c')
-rw-r--r-- | unix/modffi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/unix/modffi.c b/unix/modffi.c index cb6a4424f3..f2bd6fcecf 100644 --- a/unix/modffi.c +++ b/unix/modffi.c @@ -61,6 +61,8 @@ STATIC ffi_type *char2ffi_type(char c) case 'I': return &ffi_type_uint; case 'l': return &ffi_type_slong; case 'L': return &ffi_type_ulong; + case 'f': return &ffi_type_float; + case 'd': return &ffi_type_double; case 'p': case 's': return &ffi_type_pointer; case 'v': return &ffi_type_void; @@ -92,6 +94,14 @@ STATIC mp_obj_t return_ffi_value(ffi_arg val, char type) } case 'v': return mp_const_none; + case 'f': { + float *p = (float*)&val; + return mp_obj_new_float(*p); + } + case 'd': { + double *p = (double*)&val; + return mp_obj_new_float(*p); + } default: return mp_obj_new_int(val); } |