44 * The MIT License (MIT)
55 *
66 * Copyright (c) 2015 Damien P. George
7+ * Copyright (c) 2015 Daniel Campora
78 *
89 * Permission is hereby granted, free of charge, to any person obtaining a copy
910 * of this software and associated documentation files (the "Software"), to deal
2829
2930#include "py/runtime0.h"
3031#include "py/runtime.h"
32+ #include "py/mpconfig.h"
3133
3234#define MP_EXT_VERSION_MAJOR (0)
3335#define MP_EXT_VERSION_MINOR (0)
3436#define MP_EXT_VERSION_SUBMINOR (1)
3537#define MP_EXT_ARCH_X86 (1)
3638#define MP_EXT_ARCH_X64 (2)
37- #define MP_EXT_ARCH_ARM (3)
38- #define MP_EXT_ARCH_THUMB2 (4)
39+ #define MP_EXT_ARCH_THUMB2 (3)
40+ #define MP_EXT_ARCH_ARM (4)
3941
40- // TODO auto-detect current arch
42+ #if defined( __i386__ )
4143#define MP_EXT_ARCH_CURRENT (MP_EXT_ARCH_X86)
44+ #elif defined(__x86_64__ )
45+ #define MP_EXT_ARCH_CURRENT (MP_EXT_ARCH_X64)
46+ #elif defined(__thumb2__ )
47+ #define MP_EXT_ARCH_CURRENT (MP_EXT_ARCH_THUMB2)
48+ #elif defined(__arm__ )
49+ #define MP_EXT_ARCH_CURRENT (MP_EXT_ARCH_ARM)
50+ #endif
4251
4352#define MP_EXT_HEADER \
4453 __attribute__((section(".mpyheader"))) \
@@ -60,6 +69,7 @@ typedef struct _mp_ext_table_t {
6069 void (* mp_store_global )(qstr qst , mp_obj_t obj );
6170 mp_obj_t (* mp_obj_new_list )(mp_uint_t n , mp_obj_t * items );
6271 mp_obj_t (* mp_binary_op )(mp_uint_t op , mp_obj_t lhs , mp_obj_t rhs );
72+ mp_int_t (* mp_obj_get_int )(mp_const_obj_t arg );
6373} mp_ext_table_t ;
6474
6575void mp_extern_load (const char * ext_name , mp_obj_dict_t * globals );
0 commit comments