Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
1e935d86
Commit
1e935d86
authored
Apr 17, 2014
by
Damien George
Browse files
Merge branch 'master' of github.com:micropython/micropython
parents
729f7b42
4abaa1b1
Changes
4
Hide whitespace changes
Inline
Side-by-side
unix/main.c
View file @
1e935d86
...
...
@@ -357,10 +357,6 @@ int main(int argc, char **argv) {
mp_store_name
(
qstr_from_str
(
"gc"
),
(
mp_obj_t
)
&
pyb_gc_obj
);
#endif
#if MICROPY_MOD_FFI
ffi_init
();
#endif
// Here is some example code to create a class and instance of that class.
// First is the Python, then the C code.
//
...
...
unix/modffi.c
View file @
1e935d86
...
...
@@ -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
);
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
()
{
mp_obj_t
m
=
mp_obj_new_module
(
QSTR_FROM_STR_STATIC
(
"ffi"
));
mp_store_attr
(
m
,
MP_QSTR_open
,
(
mp_obj_t
)
&
mod_ffi_open_obj
);
mp_store_attr
(
m
,
QSTR_FROM_STR_STATIC
(
"callback"
),
(
mp_obj_t
)
&
mod_ffi_callback_obj
);
// there would be as_bytes, but bytes currently is value, not reference type!
mp_store_attr
(
m
,
QSTR_FROM_STR_STATIC
(
"as_bytearray"
),
(
mp_obj_t
)
&
mod_ffi_as_bytearray_obj
);
}
STATIC
const
mp_obj_dict_t
mp_module_ffi_globals
=
{
.
base
=
{
&
mp_type_dict
},
.
map
=
{
.
all_keys_are_qstrs
=
1
,
.
table_is_fixed_array
=
1
,
.
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
,
};
unix/mpconfigport.h
View file @
1e935d86
...
...
@@ -19,7 +19,9 @@
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_ffi
;
#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_microsocket), (mp_obj_t)&mp_module_socket }, \
...
...
unix/qstrdefsport.h
View file @
1e935d86
...
...
@@ -10,10 +10,14 @@ Q(write)
Q
(
makefile
)
Q
(
FileIO
)
Q
(
ffi
)
Q
(
ffimod
)
Q
(
ffifunc
)
Q
(
fficallback
)
Q
(
ffivar
)
Q
(
as_bytearray
)
Q
(
callback
)
Q
(
func
)
Q
(
var
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment