1/*
2 * This file is part of the MicroPython project, http://micropython.org/
3 *
4 * The MIT License (MIT)
5 *
6 * Copyright (c) 2013, 2014 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#ifndef MICROPY_INCLUDED_PY_BUILTIN_H
27#define MICROPY_INCLUDED_PY_BUILTIN_H
28
29#include "py/obj.h"
30
31mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args);
32mp_obj_t mp_builtin_open(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs);
33mp_obj_t mp_micropython_mem_info(size_t n_args, const mp_obj_t *args);
34
35MP_DECLARE_CONST_FUN_OBJ_VAR(mp_builtin___build_class___obj);
36MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin___import___obj);
37MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin___repl_print___obj);
38MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_abs_obj);
39MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_all_obj);
40MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_any_obj);
41MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_bin_obj);
42MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_callable_obj);
43MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_compile_obj);
44MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_chr_obj);
45MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_delattr_obj);
46MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_dir_obj);
47MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_divmod_obj);
48MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_eval_obj);
49MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_exec_obj);
50MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_execfile_obj);
51MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_getattr_obj);
52MP_DECLARE_CONST_FUN_OBJ_3(mp_builtin_setattr_obj);
53MP_DECLARE_CONST_FUN_OBJ_0(mp_builtin_globals_obj);
54MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_hasattr_obj);
55MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_hash_obj);
56MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_help_obj);
57MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_hex_obj);
58MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_id_obj);
59MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_isinstance_obj);
60MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_issubclass_obj);
61MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_iter_obj);
62MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_len_obj);
63MP_DECLARE_CONST_FUN_OBJ_0(mp_builtin_locals_obj);
64MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_max_obj);
65MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_min_obj);
66#if MICROPY_PY_BUILTINS_NEXT2
67MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_next_obj);
68#else
69MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_next_obj);
70#endif
71MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_oct_obj);
72MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_ord_obj);
73MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_pow_obj);
74MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_print_obj);
75MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_repr_obj);
76MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_round_obj);
77MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_sorted_obj);
78MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_sum_obj);
79// Defined by a port, but declared here for simplicity
80MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_input_obj);
81MP_DECLARE_CONST_FUN_OBJ_KW(mp_builtin_open_obj);
82
83MP_DECLARE_CONST_FUN_OBJ_2(mp_namedtuple_obj);
84
85MP_DECLARE_CONST_FUN_OBJ_2(mp_op_contains_obj);
86MP_DECLARE_CONST_FUN_OBJ_2(mp_op_getitem_obj);
87MP_DECLARE_CONST_FUN_OBJ_3(mp_op_setitem_obj);
88MP_DECLARE_CONST_FUN_OBJ_2(mp_op_delitem_obj);
89
90extern const mp_obj_module_t mp_module___main__;
91extern const mp_obj_module_t mp_module_builtins;
92extern const mp_obj_module_t mp_module_uarray;
93extern const mp_obj_module_t mp_module_collections;
94extern const mp_obj_module_t mp_module_io;
95extern const mp_obj_module_t mp_module_math;
96extern const mp_obj_module_t mp_module_cmath;
97extern const mp_obj_module_t mp_module_micropython;
98extern const mp_obj_module_t mp_module_ustruct;
99extern const mp_obj_module_t mp_module_sys;
100extern const mp_obj_module_t mp_module_gc;
101extern const mp_obj_module_t mp_module_thread;
102
103extern const mp_obj_dict_t mp_module_builtins_globals;
104
105// extmod modules
106extern const mp_obj_module_t mp_module_uasyncio;
107extern const mp_obj_module_t mp_module_uerrno;
108extern const mp_obj_module_t mp_module_uctypes;
109extern const mp_obj_module_t mp_module_uzlib;
110extern const mp_obj_module_t mp_module_ujson;
111extern const mp_obj_module_t mp_module_ure;
112extern const mp_obj_module_t mp_module_uheapq;
113extern const mp_obj_module_t mp_module_uhashlib;
114extern const mp_obj_module_t mp_module_ucryptolib;
115extern const mp_obj_module_t mp_module_ubinascii;
116extern const mp_obj_module_t mp_module_urandom;
117extern const mp_obj_module_t mp_module_uselect;
118extern const mp_obj_module_t mp_module_ussl;
119extern const mp_obj_module_t mp_module_utimeq;
120extern const mp_obj_module_t mp_module_machine;
121extern const mp_obj_module_t mp_module_lwip;
122extern const mp_obj_module_t mp_module_uwebsocket;
123extern const mp_obj_module_t mp_module_webrepl;
124extern const mp_obj_module_t mp_module_framebuf;
125extern const mp_obj_module_t mp_module_btree;
126extern const mp_obj_module_t mp_module_ubluetooth;
127
128extern const char MICROPY_PY_BUILTINS_HELP_TEXT[];
129
130#endif // MICROPY_INCLUDED_PY_BUILTIN_H
131