Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mruby_mbed_web mirb_mbed
variable.h
00001 /* 00002 ** mruby/variable.h - mruby variables 00003 ** 00004 ** See Copyright Notice in mruby.h 00005 */ 00006 00007 #ifndef MRUBY_VARIABLE_H 00008 #define MRUBY_VARIABLE_H 00009 00010 #if defined(__cplusplus) 00011 extern "C" { 00012 #endif 00013 00014 typedef struct global_variable { 00015 int counter; 00016 mrb_value *data; 00017 mrb_value (*getter)(void); 00018 void (*setter)(void); 00019 /* void (*marker)(); */ 00020 /* int block_trace; */ 00021 /* struct trace_var *trace; */ 00022 } global_variable; 00023 00024 struct global_entry { 00025 global_variable *var; 00026 mrb_sym id; 00027 }; 00028 00029 mrb_value mrb_vm_special_get(mrb_state*, mrb_sym); 00030 void mrb_vm_special_set(mrb_state*, mrb_sym, mrb_value); 00031 mrb_value mrb_vm_iv_get(mrb_state*, mrb_sym); 00032 void mrb_vm_iv_set(mrb_state*, mrb_sym, mrb_value); 00033 mrb_value mrb_vm_cv_get(mrb_state*, mrb_sym); 00034 void mrb_vm_cv_set(mrb_state*, mrb_sym, mrb_value); 00035 mrb_value mrb_vm_const_get(mrb_state*, mrb_sym); 00036 void mrb_vm_const_set(mrb_state*, mrb_sym, mrb_value); 00037 MRB_API mrb_value mrb_const_get(mrb_state*, mrb_value, mrb_sym); 00038 MRB_API void mrb_const_set(mrb_state*, mrb_value, mrb_sym, mrb_value); 00039 MRB_API mrb_bool mrb_const_defined(mrb_state*, mrb_value, mrb_sym); 00040 MRB_API void mrb_const_remove(mrb_state*, mrb_value, mrb_sym); 00041 00042 MRB_API mrb_bool mrb_iv_p(mrb_state *mrb, mrb_sym sym); 00043 MRB_API void mrb_iv_check(mrb_state *mrb, mrb_sym sym); 00044 MRB_API mrb_value mrb_obj_iv_get(mrb_state *mrb, struct RObject *obj, mrb_sym sym); 00045 MRB_API void mrb_obj_iv_set(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v); 00046 MRB_API mrb_bool mrb_obj_iv_defined(mrb_state *mrb, struct RObject *obj, mrb_sym sym); 00047 MRB_API void mrb_obj_iv_ifnone(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v); 00048 MRB_API mrb_value mrb_iv_get(mrb_state *mrb, mrb_value obj, mrb_sym sym); 00049 MRB_API void mrb_iv_set(mrb_state *mrb, mrb_value obj, mrb_sym sym, mrb_value v); 00050 MRB_API mrb_bool mrb_iv_defined(mrb_state*, mrb_value, mrb_sym); 00051 MRB_API mrb_value mrb_iv_remove(mrb_state *mrb, mrb_value obj, mrb_sym sym); 00052 MRB_API void mrb_iv_copy(mrb_state *mrb, mrb_value dst, mrb_value src); 00053 MRB_API mrb_bool mrb_const_defined_at(mrb_state *mrb, mrb_value mod, mrb_sym id); 00054 MRB_API mrb_value mrb_gv_get(mrb_state *mrb, mrb_sym sym); 00055 MRB_API void mrb_gv_set(mrb_state *mrb, mrb_sym sym, mrb_value val); 00056 MRB_API void mrb_gv_remove(mrb_state *mrb, mrb_sym sym); 00057 MRB_API mrb_value mrb_cv_get(mrb_state *mrb, mrb_value mod, mrb_sym sym); 00058 MRB_API void mrb_mod_cv_set(mrb_state *mrb, struct RClass * c, mrb_sym sym, mrb_value v); 00059 MRB_API void mrb_cv_set(mrb_state *mrb, mrb_value mod, mrb_sym sym, mrb_value v); 00060 MRB_API mrb_bool mrb_cv_defined(mrb_state *mrb, mrb_value mod, mrb_sym sym); 00061 mrb_value mrb_obj_iv_inspect(mrb_state*, struct RObject*); 00062 mrb_value mrb_mod_constants(mrb_state *mrb, mrb_value mod); 00063 mrb_value mrb_f_global_variables(mrb_state *mrb, mrb_value self); 00064 mrb_value mrb_obj_instance_variables(mrb_state*, mrb_value); 00065 mrb_value mrb_mod_class_variables(mrb_state*, mrb_value); 00066 mrb_value mrb_mod_cv_get(mrb_state *mrb, struct RClass * c, mrb_sym sym); 00067 mrb_bool mrb_mod_cv_defined(mrb_state *mrb, struct RClass * c, mrb_sym sym); 00068 mrb_sym mrb_class_sym(mrb_state *mrb, struct RClass *c, struct RClass *outer); 00069 00070 /* GC functions */ 00071 void mrb_gc_mark_gv(mrb_state*); 00072 void mrb_gc_free_gv(mrb_state*); 00073 void mrb_gc_mark_iv(mrb_state*, struct RObject*); 00074 size_t mrb_gc_mark_iv_size(mrb_state*, struct RObject*); 00075 void mrb_gc_free_iv(mrb_state*, struct RObject*); 00076 00077 #if defined(__cplusplus) 00078 } /* extern "C" { */ 00079 #endif 00080 00081 #endif /* MRUBY_VARIABLE_H */ 00082
Generated on Tue Jul 12 2022 18:00:35 by
1.7.2