Merge branch 'master' of github.com:micropython/micropython
This commit is contained in:
commit
1e935d8689
@ -357,10 +357,6 @@ int main(int argc, char **argv) {
|
|||||||
mp_store_name(qstr_from_str("gc"), (mp_obj_t)&pyb_gc_obj);
|
mp_store_name(qstr_from_str("gc"), (mp_obj_t)&pyb_gc_obj);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MICROPY_MOD_FFI
|
|
||||||
ffi_init();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Here is some example code to create a class and instance of that class.
|
// Here is some example code to create a class and instance of that class.
|
||||||
// First is the Python, then the C code.
|
// First is the Python, then the C code.
|
||||||
//
|
//
|
||||||
|
@ -365,11 +365,26 @@ mp_obj_t mod_ffi_as_bytearray(mp_obj_t ptr, mp_obj_t size) {
|
|||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_2(mod_ffi_as_bytearray_obj, mod_ffi_as_bytearray);
|
MP_DEFINE_CONST_FUN_OBJ_2(mod_ffi_as_bytearray_obj, mod_ffi_as_bytearray);
|
||||||
|
|
||||||
|
STATIC const mp_map_elem_t mp_module_ffi_globals_table[] = {
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_ffi) },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_open), (mp_obj_t)&mod_ffi_open_obj },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_callback), (mp_obj_t)&mod_ffi_callback_obj },
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_as_bytearray), (mp_obj_t)&mod_ffi_as_bytearray_obj },
|
||||||
|
};
|
||||||
|
|
||||||
void ffi_init() {
|
STATIC const mp_obj_dict_t mp_module_ffi_globals = {
|
||||||
mp_obj_t m = mp_obj_new_module(QSTR_FROM_STR_STATIC("ffi"));
|
.base = {&mp_type_dict},
|
||||||
mp_store_attr(m, MP_QSTR_open, (mp_obj_t)&mod_ffi_open_obj);
|
.map = {
|
||||||
mp_store_attr(m, QSTR_FROM_STR_STATIC("callback"), (mp_obj_t)&mod_ffi_callback_obj);
|
.all_keys_are_qstrs = 1,
|
||||||
// there would be as_bytes, but bytes currently is value, not reference type!
|
.table_is_fixed_array = 1,
|
||||||
mp_store_attr(m, QSTR_FROM_STR_STATIC("as_bytearray"), (mp_obj_t)&mod_ffi_as_bytearray_obj);
|
.used = sizeof(mp_module_ffi_globals_table) / sizeof(mp_map_elem_t),
|
||||||
}
|
.alloc = sizeof(mp_module_ffi_globals_table) / sizeof(mp_map_elem_t),
|
||||||
|
.table = (mp_map_elem_t*)mp_module_ffi_globals_table,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const mp_obj_module_t mp_module_ffi = {
|
||||||
|
.base = { &mp_type_module },
|
||||||
|
.name = MP_QSTR_ffi,
|
||||||
|
.globals = (mp_obj_dict_t*)&mp_module_ffi_globals,
|
||||||
|
};
|
||||||
|
@ -19,7 +19,9 @@
|
|||||||
|
|
||||||
extern const struct _mp_obj_module_t mp_module_time;
|
extern const struct _mp_obj_module_t mp_module_time;
|
||||||
extern const struct _mp_obj_module_t mp_module_socket;
|
extern const struct _mp_obj_module_t mp_module_socket;
|
||||||
|
extern const struct _mp_obj_module_t mp_module_ffi;
|
||||||
#define MICROPY_EXTRA_BUILTIN_MODULES \
|
#define MICROPY_EXTRA_BUILTIN_MODULES \
|
||||||
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_ffi), (mp_obj_t)&mp_module_ffi }, \
|
||||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_time }, \
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_time }, \
|
||||||
{ MP_OBJ_NEW_QSTR(MP_QSTR_microsocket), (mp_obj_t)&mp_module_socket }, \
|
{ MP_OBJ_NEW_QSTR(MP_QSTR_microsocket), (mp_obj_t)&mp_module_socket }, \
|
||||||
|
|
||||||
|
@ -10,10 +10,14 @@ Q(write)
|
|||||||
Q(makefile)
|
Q(makefile)
|
||||||
|
|
||||||
Q(FileIO)
|
Q(FileIO)
|
||||||
|
|
||||||
|
Q(ffi)
|
||||||
Q(ffimod)
|
Q(ffimod)
|
||||||
Q(ffifunc)
|
Q(ffifunc)
|
||||||
Q(fficallback)
|
Q(fficallback)
|
||||||
Q(ffivar)
|
Q(ffivar)
|
||||||
|
Q(as_bytearray)
|
||||||
|
Q(callback)
|
||||||
Q(func)
|
Q(func)
|
||||||
Q(var)
|
Q(var)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user