Advertisement
e4ch

wasm.h

Mar 11th, 2018
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.88 KB | None | 0 0
  1. #ifndef WASM_H_GENERATED_
  2. #define WASM_H_GENERATED_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6.  
  7. #ifndef WASM_RT_INCLUDED_
  8. #define WASM_RT_INCLUDED_
  9.  
  10. #include <stdint.h>
  11.  
  12. #ifndef WASM_RT_MAX_CALL_STACK_DEPTH
  13. #define WASM_RT_MAX_CALL_STACK_DEPTH 500
  14. #endif
  15.  
  16. #ifndef WASM_RT_MODULE_PREFIX
  17. #define WASM_RT_MODULE_PREFIX
  18. #endif
  19.  
  20. #define WASM_RT_PASTE_(x, y) x ## y
  21. #define WASM_RT_PASTE(x, y) WASM_RT_PASTE_(x, y)
  22. #define WASM_RT_ADD_PREFIX(x) WASM_RT_PASTE(WASM_RT_MODULE_PREFIX, x)
  23.  
  24. #define WASM_RT_DEFINE_EXTERNAL(decl, target) decl = &target;
  25.  
  26. /* TODO(binji): only use stdint.h types in header */
  27. typedef uint8_t u8;
  28. typedef int8_t s8;
  29. typedef uint16_t u16;
  30. typedef int16_t s16;
  31. typedef uint32_t u32;
  32. typedef int32_t s32;
  33. typedef uint64_t u64;
  34. typedef int64_t s64;
  35. typedef float f32;
  36. typedef double f64;
  37.  
  38. typedef enum {
  39.   WASM_RT_TRAP_NONE,
  40.   WASM_RT_TRAP_OOB,
  41.   WASM_RT_TRAP_INT_OVERFLOW,
  42.   WASM_RT_TRAP_DIV_BY_ZERO,
  43.   WASM_RT_TRAP_INVALID_CONVERSION,
  44.   WASM_RT_TRAP_UNREACHABLE,
  45.   WASM_RT_TRAP_CALL_INDIRECT,
  46.   WASM_RT_TRAP_EXHAUSTION,
  47. } wasm_rt_trap_t;
  48.  
  49. typedef enum {
  50.   WASM_RT_I32,
  51.   WASM_RT_I64,
  52.   WASM_RT_F32,
  53.   WASM_RT_F64,
  54. } wasm_rt_type_t;
  55.  
  56. typedef void (*wasm_rt_anyfunc_t)(void);
  57.  
  58. typedef struct {
  59.   uint32_t func_type;
  60.   wasm_rt_anyfunc_t func;
  61. } wasm_rt_elem_t;
  62.  
  63. typedef struct {
  64.   uint8_t* data;
  65.   uint32_t pages, max_pages;
  66.   uint32_t size;
  67. } wasm_rt_memory_t;
  68.  
  69. typedef struct {
  70.   wasm_rt_elem_t* data;
  71.   uint32_t max_size;
  72.   uint32_t size;
  73. } wasm_rt_table_t;
  74.  
  75. extern void wasm_rt_trap(wasm_rt_trap_t) __attribute__((noreturn));
  76. extern uint32_t wasm_rt_register_func_type(uint32_t params, uint32_t results, ...);
  77. extern void wasm_rt_allocate_memory(wasm_rt_memory_t*, uint32_t initial_pages, uint32_t max_pages);
  78. extern uint32_t wasm_rt_grow_memory(wasm_rt_memory_t*, uint32_t pages);
  79. extern void wasm_rt_allocate_table(wasm_rt_table_t*, uint32_t elements, uint32_t max_elements);
  80. extern uint32_t wasm_rt_call_stack_depth;
  81.  
  82. #endif  /* WASM_RT_INCLUDED_ */
  83.  
  84. extern void WASM_RT_ADD_PREFIX(init)(void);
  85.  
  86. /* import: 'env' '__extjs_93b9872dc3d816765ab0e68585457a4b8d33560b' */
  87. extern u32 (*Z_envZ___extjs_93b9872dc3d816765ab0e68585457a4b8d33560bZ_ii)(u32);
  88. /* import: 'env' '__extjs_ff5103e6cc179d13b4c7a785bdce2708fd559fc0' */
  89. extern u32 (*Z_envZ___extjs_ff5103e6cc179d13b4c7a785bdce2708fd559fc0Z_ii)(u32);
  90. /* import: 'env' '__extjs_72fc447820458c720c68d0d8e078ede631edd723' */
  91. extern u32 (*Z_envZ___extjs_72fc447820458c720c68d0d8e078ede631edd723Z_iiii)(u32, u32, u32);
  92. /* import: 'env' '__extjs_db0226ae1bbecd407e9880ee28ddc70fc3322d9c' */
  93. extern u32 (*Z_envZ___extjs_db0226ae1bbecd407e9880ee28ddc70fc3322d9cZ_ii)(u32);
  94. /* import: 'env' '__extjs_dc2fd915bd92f9e9c6a3bd15174f1414eee3dbaf' */
  95. extern u32 (*Z_envZ___extjs_dc2fd915bd92f9e9c6a3bd15174f1414eee3dbafZ_iv)(void);
  96. /* import: 'env' '__extjs_9f22d4ca7bc938409787341b7db181f8dd41e6df' */
  97. extern u32 (*Z_envZ___extjs_9f22d4ca7bc938409787341b7db181f8dd41e6dfZ_ii)(u32);
  98. /* import: 'env' '__extjs_80d6d56760c65e49b7be8b6b01c1ea861b046bf0' */
  99. extern u32 (*Z_envZ___extjs_80d6d56760c65e49b7be8b6b01c1ea861b046bf0Z_ii)(u32);
  100. /* import: 'env' '__extjs_8b7b1f5eaf1493b2194834f765bc30a8a8954d15' */
  101. extern u32 (*Z_envZ___extjs_8b7b1f5eaf1493b2194834f765bc30a8a8954d15Z_iii)(u32, u32);
  102. /* import: 'env' '__extjs_97495987af1720d8a9a923fa4683a7b683e3acd6' */
  103. extern u32 (*Z_envZ___extjs_97495987af1720d8a9a923fa4683a7b683e3acd6Z_iii)(u32, u32);
  104. /* import: 'env' '__web_on_grow' */
  105. extern void (*Z_envZ___web_on_growZ_vv)(void);
  106.  
  107. /* export: 'main' */
  108. extern u32 (*WASM_RT_ADD_PREFIX(Z_mainZ_iii))(u32, u32);
  109. /* export: '__web_malloc' */
  110. extern u32 (*WASM_RT_ADD_PREFIX(Z___web_mallocZ_ii))(u32);
  111. /* export: '__web_free' */
  112. extern void (*WASM_RT_ADD_PREFIX(Z___web_freeZ_vii))(u32, u32);
  113. /* export: '__web_table' */
  114. extern wasm_rt_table_t (*WASM_RT_ADD_PREFIX(Z___web_table));
  115. /* export: 'memory' */
  116. extern wasm_rt_memory_t (*WASM_RT_ADD_PREFIX(Z_memory));
  117. #ifdef __cplusplus
  118. }
  119. #endif
  120.  
  121. #endif  /* WASM_H_GENERATED_ */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement