4
4
* The MIT License (MIT)
5
5
*
6
6
* Copyright (c) 2015 Damien P. George
7
+ * Copyright (c) 2015 Daniel Campora
7
8
*
8
9
* Permission is hereby granted, free of charge, to any person obtaining a copy
9
10
* of this software and associated documentation files (the "Software"), to deal
28
29
29
30
#include "py/runtime0.h"
30
31
#include "py/runtime.h"
32
+ #include "py/mpconfig.h"
31
33
32
34
#define MP_EXT_VERSION_MAJOR (0)
33
35
#define MP_EXT_VERSION_MINOR (0)
34
36
#define MP_EXT_VERSION_SUBMINOR (1)
35
37
#define MP_EXT_ARCH_X86 (1)
36
38
#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)
39
41
40
- // TODO auto-detect current arch
42
+ #if defined( __i386__ )
41
43
#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
42
51
43
52
#define MP_EXT_HEADER \
44
53
__attribute__((section(".mpyheader"))) \
@@ -60,6 +69,7 @@ typedef struct _mp_ext_table_t {
60
69
void (* mp_store_global )(qstr qst , mp_obj_t obj );
61
70
mp_obj_t (* mp_obj_new_list )(mp_uint_t n , mp_obj_t * items );
62
71
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 );
63
73
} mp_ext_table_t ;
64
74
65
75
void mp_extern_load (const char * ext_name , mp_obj_dict_t * globals );
0 commit comments