This is a port of the mruby/c tutorial Chapter 03 to the mbed environment.
For details, refer to the following.
http://www.s-itoc.jp/activity/research/mrubyc/mrubyc_tutorial/436
Note:There is a change in rtt0.h from the original source in the mruby/c. It was necessary for inclusion in C ++ source.
mrubyc/alloc.h@0:33feccbba3ff, 2017-02-15 (annotated)
- Committer:
- tk_takateku
- Date:
- Wed Feb 15 01:03:35 2017 +0000
- Revision:
- 0:33feccbba3ff
Commit before publishing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tk_takateku | 0:33feccbba3ff | 1 | /*! @file |
tk_takateku | 0:33feccbba3ff | 2 | @brief |
tk_takateku | 0:33feccbba3ff | 3 | mrubyc memory management. |
tk_takateku | 0:33feccbba3ff | 4 | |
tk_takateku | 0:33feccbba3ff | 5 | <pre> |
tk_takateku | 0:33feccbba3ff | 6 | Copyright (C) 2015 Kyushu Institute of Technology. |
tk_takateku | 0:33feccbba3ff | 7 | Copyright (C) 2015 Shimane IT Open-Innovation Center. |
tk_takateku | 0:33feccbba3ff | 8 | |
tk_takateku | 0:33feccbba3ff | 9 | This file is distributed under BSD 3-Clause License. |
tk_takateku | 0:33feccbba3ff | 10 | |
tk_takateku | 0:33feccbba3ff | 11 | Memory management for objects in mruby/c. |
tk_takateku | 0:33feccbba3ff | 12 | |
tk_takateku | 0:33feccbba3ff | 13 | </pre> |
tk_takateku | 0:33feccbba3ff | 14 | */ |
tk_takateku | 0:33feccbba3ff | 15 | |
tk_takateku | 0:33feccbba3ff | 16 | #ifndef MRBC_SRC_ALLOC_H_ |
tk_takateku | 0:33feccbba3ff | 17 | #define MRBC_SRC_ALLOC_H_ |
tk_takateku | 0:33feccbba3ff | 18 | |
tk_takateku | 0:33feccbba3ff | 19 | #include <stdint.h> |
tk_takateku | 0:33feccbba3ff | 20 | #include "vm.h" // for mruby/c |
tk_takateku | 0:33feccbba3ff | 21 | |
tk_takateku | 0:33feccbba3ff | 22 | #ifdef __cplusplus |
tk_takateku | 0:33feccbba3ff | 23 | extern "C" { |
tk_takateku | 0:33feccbba3ff | 24 | #endif |
tk_takateku | 0:33feccbba3ff | 25 | |
tk_takateku | 0:33feccbba3ff | 26 | void mrbc_init_alloc(void); |
tk_takateku | 0:33feccbba3ff | 27 | uint8_t *mrbc_raw_alloc(uint32_t size); |
tk_takateku | 0:33feccbba3ff | 28 | uint8_t *mrbc_raw_realloc(uint8_t *ptr, uint32_t size); |
tk_takateku | 0:33feccbba3ff | 29 | void mrbc_raw_free(void *ptr); |
tk_takateku | 0:33feccbba3ff | 30 | |
tk_takateku | 0:33feccbba3ff | 31 | void mrbc_alloc_debug(void); |
tk_takateku | 0:33feccbba3ff | 32 | |
tk_takateku | 0:33feccbba3ff | 33 | // for mruby/c |
tk_takateku | 0:33feccbba3ff | 34 | uint8_t *mrbc_alloc(mrb_vm *vm, int size); |
tk_takateku | 0:33feccbba3ff | 35 | uint8_t *mrbc_realloc(mrb_vm *vm, void *ptr, int size); |
tk_takateku | 0:33feccbba3ff | 36 | void mrbc_free(mrb_vm *vm, void *ptr); |
tk_takateku | 0:33feccbba3ff | 37 | void mrbc_free_all(mrb_vm *vm); |
tk_takateku | 0:33feccbba3ff | 38 | |
tk_takateku | 0:33feccbba3ff | 39 | #ifdef __cplusplus |
tk_takateku | 0:33feccbba3ff | 40 | } |
tk_takateku | 0:33feccbba3ff | 41 | #endif |
tk_takateku | 0:33feccbba3ff | 42 | #endif |
tk_takateku | 0:33feccbba3ff | 43 |