1 /* 2 * This file is part of the MicroPython project, http://micropython.org/ 3 * 4 * The MIT License (MIT) 5 * 6 * Copyright (c) 2015 Damien P. George 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining a copy 9 * of this software and associated documentation files (the "Software"), to deal 10 * in the Software without restriction, including without limitation the rights 11 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 * copies of the Software, and to permit persons to whom the Software is 13 * furnished to do so, subject to the following conditions: 14 * 15 * The above copyright notice and this permission notice shall be included in 16 * all copies or substantial portions of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 * THE SOFTWARE. 25 */ 26 27 // options to control how MicroPython is built 28 29 // Prevent the rest of the default mpconfigport.h being used. 30 #define MICROPY_UNIX_MINIMAL (1) 31 32 #define MICROPY_ALLOC_QSTR_CHUNK_INIT (64) 33 #define MICROPY_ALLOC_PARSE_RULE_INIT (8) 34 #define MICROPY_ALLOC_PARSE_RULE_INC (8) 35 #define MICROPY_ALLOC_PARSE_RESULT_INIT (8) 36 #define MICROPY_ALLOC_PARSE_RESULT_INC (8) 37 #define MICROPY_ALLOC_PARSE_CHUNK_INIT (64) 38 #define MICROPY_ALLOC_PATH_MAX (PATH_MAX) 39 #define MICROPY_ENABLE_GC (1) 40 #define MICROPY_GC_ALLOC_THRESHOLD (0) 41 #define MICROPY_ENABLE_FINALISER (0) 42 #define MICROPY_STACK_CHECK (0) 43 #define MICROPY_COMP_CONST (0) 44 #define MICROPY_MEM_STATS (0) 45 #define MICROPY_DEBUG_PRINTERS (0) 46 #define MICROPY_READER_POSIX (1) 47 #define MICROPY_HELPER_REPL (1) 48 #define MICROPY_HELPER_LEXER_UNIX (1) 49 #define MICROPY_ENABLE_SOURCE_LINE (0) 50 #define MICROPY_ERROR_REPORTING (MICROPY_ERROR_REPORTING_TERSE) 51 #define MICROPY_WARNINGS (0) 52 #define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (0) 53 #define MICROPY_KBD_EXCEPTION (1) 54 #define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_NONE) 55 #define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_NONE) 56 #define MICROPY_STREAMS_NON_BLOCK (0) 57 #define MICROPY_OPT_COMPUTED_GOTO (0) 58 #define MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE (0) 59 #define MICROPY_CAN_OVERRIDE_BUILTINS (0) 60 #define MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG (0) 61 #define MICROPY_CPYTHON_COMPAT (0) 62 #define MICROPY_PY_BUILTINS_BYTEARRAY (0) 63 #define MICROPY_PY_BUILTINS_MEMORYVIEW (0) 64 #define MICROPY_PY_BUILTINS_COMPILE (0) 65 #define MICROPY_PY_BUILTINS_ENUMERATE (0) 66 #define MICROPY_PY_BUILTINS_FILTER (0) 67 #define MICROPY_PY_BUILTINS_FROZENSET (0) 68 #define MICROPY_PY_BUILTINS_REVERSED (0) 69 #define MICROPY_PY_BUILTINS_SET (0) 70 #define MICROPY_PY_BUILTINS_SLICE (0) 71 #define MICROPY_PY_BUILTINS_STR_COUNT (0) 72 #define MICROPY_PY_BUILTINS_STR_OP_MODULO (0) 73 #define MICROPY_PY_BUILTINS_STR_UNICODE (0) 74 #define MICROPY_PY_BUILTINS_PROPERTY (0) 75 #define MICROPY_PY_BUILTINS_MIN_MAX (0) 76 #define MICROPY_PY___FILE__ (0) 77 #define MICROPY_PY_MICROPYTHON_MEM_INFO (0) 78 #define MICROPY_PY_GC (0) 79 #define MICROPY_PY_GC_COLLECT_RETVAL (0) 80 #define MICROPY_PY_ARRAY (0) 81 #define MICROPY_PY_COLLECTIONS (0) 82 #define MICROPY_PY_MATH (0) 83 #define MICROPY_PY_CMATH (0) 84 #define MICROPY_PY_IO (0) 85 #define MICROPY_PY_IO_FILEIO (0) 86 #define MICROPY_PY_STRUCT (0) 87 #define MICROPY_PY_SYS (1) 88 #define MICROPY_PY_SYS_EXIT (0) 89 #define MICROPY_PY_SYS_PLATFORM "linux" 90 #define MICROPY_PY_SYS_MAXSIZE (0) 91 #define MICROPY_PY_SYS_STDFILES (0) 92 #define MICROPY_PY_CMATH (0) 93 #define MICROPY_PY_UCTYPES (0) 94 #define MICROPY_PY_UTIME (0) 95 #define MICROPY_PY_UZLIB (0) 96 #define MICROPY_PY_UJSON (0) 97 #define MICROPY_PY_URE (0) 98 #define MICROPY_PY_UHEAPQ (0) 99 #define MICROPY_PY_UHASHLIB (0) 100 #define MICROPY_PY_UBINASCII (0) 101 102 extern const struct _mp_obj_module_t mp_module_os; 103 104 #define MICROPY_PORT_BUILTIN_MODULES \ 105 { MP_ROM_QSTR(MP_QSTR_uos), MP_ROM_PTR(&mp_module_os) }, \ 106 107 #define MICROPY_PORT_ROOT_POINTERS \ 108 109 ////////////////////////////////////////// 110 // Do not change anything beyond this line 111 ////////////////////////////////////////// 112 113 #if !(defined(MICROPY_GCREGS_SETJMP) || defined(__x86_64__) || defined(__i386__) || defined(__thumb2__) || defined(__thumb__) || defined(__arm__)) 114 // Fall back to setjmp() implementation for discovery of GC pointers in registers. 115 #define MICROPY_GCREGS_SETJMP (1) 116 #endif 117 118 // type definitions for the specific machine 119 120 #ifdef __LP64__ 121 typedef long mp_int_t; // must be pointer size 122 typedef unsigned long mp_uint_t; // must be pointer size 123 #else 124 // These are definitions for machines where sizeof(int) == sizeof(void*), 125 // regardless for actual size. 126 typedef int mp_int_t; // must be pointer size 127 typedef unsigned int mp_uint_t; // must be pointer size 128 #endif 129 130 // Cannot include <sys/types.h>, as it may lead to symbol name clashes 131 #if _FILE_OFFSET_BITS == 64 && !defined(__LP64__) 132 typedef long long mp_off_t; 133 #else 134 typedef long mp_off_t; 135 #endif 136 137 // We need to provide a declaration/definition of alloca() 138 #ifdef __FreeBSD__ 139 #include <stdlib.h> 140 #else 141 #include <alloca.h> 142 #endif 143