1 /* 2 * %CopyrightBegin% 3 * 4 * Copyright Ericsson AB 2009-2017. All Rights Reserved. 5 * 6 * The contents of this file are subject to the Erlang Public License, 7 * Version 1.1, (the "License"); you may not use this file except in 8 * compliance with the License. You should have received a copy of the 9 * Erlang Public License along with this software. If not, it can be 10 * retrieved online at http://www.erlang.org/. 11 * 12 * Software distributed under the License is distributed on an "AS IS" 13 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 14 * the License for the specific language governing rights and limitations 15 * under the License. 16 * 17 * %CopyrightEnd% 18 */ 19 20 #if !defined(ERL_NIF_API_FUNC_DECL) && !defined(ERL_NIF_API_FUNC_MACRO) 21 # error This file should not be included directly 22 #endif 23 24 #ifdef ERL_NIF_API_FUNC_DECL 25 ERL_NIF_API_FUNC_DECL(void*,enif_priv_data,(ErlNifEnv*)); 26 ERL_NIF_API_FUNC_DECL(void*,enif_alloc,(size_t size)); 27 ERL_NIF_API_FUNC_DECL(void,enif_free,(void* ptr)); 28 ERL_NIF_API_FUNC_DECL(int,enif_is_atom,(ErlNifEnv*, ERL_NIF_TERM term)); 29 ERL_NIF_API_FUNC_DECL(int,enif_is_binary,(ErlNifEnv*, ERL_NIF_TERM term)); 30 ERL_NIF_API_FUNC_DECL(int,enif_is_ref,(ErlNifEnv*, ERL_NIF_TERM term)); 31 ERL_NIF_API_FUNC_DECL(int,enif_inspect_binary,(ErlNifEnv*, ERL_NIF_TERM bin_term, ErlNifBinary* bin)); 32 ERL_NIF_API_FUNC_DECL(int,enif_alloc_binary,(size_t size, ErlNifBinary* bin)); 33 ERL_NIF_API_FUNC_DECL(int,enif_realloc_binary,(ErlNifBinary* bin, size_t size)); 34 ERL_NIF_API_FUNC_DECL(void,enif_release_binary,(ErlNifBinary* bin)); 35 ERL_NIF_API_FUNC_DECL(int,enif_get_int,(ErlNifEnv*, ERL_NIF_TERM term, int* ip)); 36 ERL_NIF_API_FUNC_DECL(int,enif_get_ulong,(ErlNifEnv*, ERL_NIF_TERM term, unsigned long* ip)); 37 ERL_NIF_API_FUNC_DECL(int,enif_get_double,(ErlNifEnv*, ERL_NIF_TERM term, double* dp)); 38 ERL_NIF_API_FUNC_DECL(int,enif_get_list_cell,(ErlNifEnv* env, ERL_NIF_TERM term, ERL_NIF_TERM* head, ERL_NIF_TERM* tail)); 39 ERL_NIF_API_FUNC_DECL(int,enif_get_tuple,(ErlNifEnv* env, ERL_NIF_TERM tpl, int* arity, const ERL_NIF_TERM** array)); 40 ERL_NIF_API_FUNC_DECL(int,enif_is_identical,(ERL_NIF_TERM lhs, ERL_NIF_TERM rhs)); 41 ERL_NIF_API_FUNC_DECL(int,enif_compare,(ERL_NIF_TERM lhs, ERL_NIF_TERM rhs)); 42 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_binary,(ErlNifEnv* env, ErlNifBinary* bin)); 43 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_badarg,(ErlNifEnv* env)); 44 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_int,(ErlNifEnv* env, int i)); 45 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_ulong,(ErlNifEnv* env, unsigned long i)); 46 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_double,(ErlNifEnv* env, double d)); 47 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_atom,(ErlNifEnv* env, const char* name)); 48 ERL_NIF_API_FUNC_DECL(int,enif_make_existing_atom,(ErlNifEnv* env, const char* name, ERL_NIF_TERM* atom, ErlNifCharEncoding)); 49 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_tuple,(ErlNifEnv* env, unsigned cnt, ...)); 50 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_list,(ErlNifEnv* env, unsigned cnt, ...)); 51 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_list_cell,(ErlNifEnv* env, ERL_NIF_TERM car, ERL_NIF_TERM cdr)); 52 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_string,(ErlNifEnv* env, const char* string, ErlNifCharEncoding)); 53 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_ref,(ErlNifEnv* env)); 54 55 ERL_NIF_API_FUNC_DECL(ErlNifMutex*,enif_mutex_create,(char *name)); 56 ERL_NIF_API_FUNC_DECL(void,enif_mutex_destroy,(ErlNifMutex *mtx)); 57 ERL_NIF_API_FUNC_DECL(int,enif_mutex_trylock,(ErlNifMutex *mtx)); 58 ERL_NIF_API_FUNC_DECL(void,enif_mutex_lock,(ErlNifMutex *mtx)); 59 ERL_NIF_API_FUNC_DECL(void,enif_mutex_unlock,(ErlNifMutex *mtx)); 60 ERL_NIF_API_FUNC_DECL(ErlNifCond*,enif_cond_create,(char *name)); 61 ERL_NIF_API_FUNC_DECL(void,enif_cond_destroy,(ErlNifCond *cnd)); 62 ERL_NIF_API_FUNC_DECL(void,enif_cond_signal,(ErlNifCond *cnd)); 63 ERL_NIF_API_FUNC_DECL(void,enif_cond_broadcast,(ErlNifCond *cnd)); 64 ERL_NIF_API_FUNC_DECL(void,enif_cond_wait,(ErlNifCond *cnd, ErlNifMutex *mtx)); 65 ERL_NIF_API_FUNC_DECL(ErlNifRWLock*,enif_rwlock_create,(char *name)); 66 ERL_NIF_API_FUNC_DECL(void,enif_rwlock_destroy,(ErlNifRWLock *rwlck)); 67 ERL_NIF_API_FUNC_DECL(int,enif_rwlock_tryrlock,(ErlNifRWLock *rwlck)); 68 ERL_NIF_API_FUNC_DECL(void,enif_rwlock_rlock,(ErlNifRWLock *rwlck)); 69 ERL_NIF_API_FUNC_DECL(void,enif_rwlock_runlock,(ErlNifRWLock *rwlck)); 70 ERL_NIF_API_FUNC_DECL(int,enif_rwlock_tryrwlock,(ErlNifRWLock *rwlck)); 71 ERL_NIF_API_FUNC_DECL(void,enif_rwlock_rwlock,(ErlNifRWLock *rwlck)); 72 ERL_NIF_API_FUNC_DECL(void,enif_rwlock_rwunlock,(ErlNifRWLock *rwlck)); 73 ERL_NIF_API_FUNC_DECL(int,enif_tsd_key_create,(char *name, ErlNifTSDKey *key)); 74 ERL_NIF_API_FUNC_DECL(void,enif_tsd_key_destroy,(ErlNifTSDKey key)); 75 ERL_NIF_API_FUNC_DECL(void,enif_tsd_set,(ErlNifTSDKey key, void *data)); 76 ERL_NIF_API_FUNC_DECL(void*,enif_tsd_get,(ErlNifTSDKey key)); 77 ERL_NIF_API_FUNC_DECL(ErlNifThreadOpts*,enif_thread_opts_create,(char *name)); 78 ERL_NIF_API_FUNC_DECL(void,enif_thread_opts_destroy,(ErlNifThreadOpts *opts)); 79 ERL_NIF_API_FUNC_DECL(int,enif_thread_create,(char *name,ErlNifTid *tid,void * (*func)(void *),void *args,ErlNifThreadOpts *opts)); 80 ERL_NIF_API_FUNC_DECL(ErlNifTid,enif_thread_self,(void)); 81 ERL_NIF_API_FUNC_DECL(int,enif_equal_tids,(ErlNifTid tid1, ErlNifTid tid2)); 82 ERL_NIF_API_FUNC_DECL(void,enif_thread_exit,(void *resp)); 83 ERL_NIF_API_FUNC_DECL(int,enif_thread_join,(ErlNifTid, void **respp)); 84 85 ERL_NIF_API_FUNC_DECL(void*,enif_realloc,(void* ptr, size_t size)); 86 ERL_NIF_API_FUNC_DECL(void,enif_system_info,(ErlNifSysInfo *sip, size_t si_size)); 87 ERL_NIF_API_FUNC_DECL(int,enif_fprintf,(void/* FILE* */ *filep, const char *format, ...)); 88 ERL_NIF_API_FUNC_DECL(int,enif_inspect_iolist_as_binary,(ErlNifEnv*, ERL_NIF_TERM term, ErlNifBinary* bin)); 89 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_sub_binary,(ErlNifEnv*, ERL_NIF_TERM bin_term, size_t pos, size_t size)); 90 ERL_NIF_API_FUNC_DECL(int,enif_get_string,(ErlNifEnv*, ERL_NIF_TERM list, char* buf, unsigned len, ErlNifCharEncoding)); 91 ERL_NIF_API_FUNC_DECL(int,enif_get_atom,(ErlNifEnv*, ERL_NIF_TERM atom, char* buf, unsigned len, ErlNifCharEncoding)); 92 ERL_NIF_API_FUNC_DECL(int,enif_is_fun,(ErlNifEnv*, ERL_NIF_TERM term)); 93 ERL_NIF_API_FUNC_DECL(int,enif_is_pid,(ErlNifEnv*, ERL_NIF_TERM term)); 94 ERL_NIF_API_FUNC_DECL(int,enif_is_port,(ErlNifEnv*, ERL_NIF_TERM term)); 95 ERL_NIF_API_FUNC_DECL(int,enif_get_uint,(ErlNifEnv*, ERL_NIF_TERM term, unsigned* ip)); 96 ERL_NIF_API_FUNC_DECL(int,enif_get_long,(ErlNifEnv*, ERL_NIF_TERM term, long* ip)); 97 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_uint,(ErlNifEnv*, unsigned i)); 98 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_long,(ErlNifEnv*, long i)); 99 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_tuple_from_array,(ErlNifEnv*, const ERL_NIF_TERM arr[], unsigned cnt)); 100 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_list_from_array,(ErlNifEnv*, const ERL_NIF_TERM arr[], unsigned cnt)); 101 ERL_NIF_API_FUNC_DECL(int,enif_is_empty_list,(ErlNifEnv*, ERL_NIF_TERM term)); 102 ERL_NIF_API_FUNC_DECL(ErlNifResourceType*,enif_open_resource_type,(ErlNifEnv*, const char* module_str, const char* name_str, void (*dtor)(ErlNifEnv*,void *), ErlNifResourceFlags flags, ErlNifResourceFlags* tried)); 103 ERL_NIF_API_FUNC_DECL(void*,enif_alloc_resource,(ErlNifResourceType* type, size_t size)); 104 ERL_NIF_API_FUNC_DECL(void,enif_release_resource,(void* obj)); 105 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_resource,(ErlNifEnv*, void* obj)); 106 ERL_NIF_API_FUNC_DECL(int,enif_get_resource,(ErlNifEnv*, ERL_NIF_TERM term, ErlNifResourceType* type, void** objp)); 107 ERL_NIF_API_FUNC_DECL(size_t,enif_sizeof_resource,(void* obj)); 108 ERL_NIF_API_FUNC_DECL(unsigned char*,enif_make_new_binary,(ErlNifEnv*,size_t size,ERL_NIF_TERM* termp)); 109 ERL_NIF_API_FUNC_DECL(int,enif_is_list,(ErlNifEnv*, ERL_NIF_TERM term)); 110 ERL_NIF_API_FUNC_DECL(int,enif_is_tuple,(ErlNifEnv*, ERL_NIF_TERM term)); 111 ERL_NIF_API_FUNC_DECL(int,enif_get_atom_length,(ErlNifEnv*, ERL_NIF_TERM atom, unsigned* len, ErlNifCharEncoding)); 112 ERL_NIF_API_FUNC_DECL(int,enif_get_list_length,(ErlNifEnv* env, ERL_NIF_TERM term, unsigned* len)); 113 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM, enif_make_atom_len,(ErlNifEnv* env, const char* name, size_t len)); 114 ERL_NIF_API_FUNC_DECL(int, enif_make_existing_atom_len,(ErlNifEnv* env, const char* name, size_t len, ERL_NIF_TERM* atom, ErlNifCharEncoding)); 115 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_string_len,(ErlNifEnv* env, const char* string, size_t len, ErlNifCharEncoding)); 116 ERL_NIF_API_FUNC_DECL(ErlNifEnv*,enif_alloc_env,(void)); 117 ERL_NIF_API_FUNC_DECL(void,enif_free_env,(ErlNifEnv* env)); 118 ERL_NIF_API_FUNC_DECL(void,enif_clear_env,(ErlNifEnv* env)); 119 ERL_NIF_API_FUNC_DECL(int,enif_send,(ErlNifEnv* env, const ErlNifPid* to_pid, ErlNifEnv* msg_env, ERL_NIF_TERM msg)); 120 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_copy,(ErlNifEnv* dst_env, ERL_NIF_TERM src_term)); 121 ERL_NIF_API_FUNC_DECL(ErlNifPid*,enif_self,(ErlNifEnv* caller_env, ErlNifPid* pid)); 122 ERL_NIF_API_FUNC_DECL(int,enif_get_local_pid,(ErlNifEnv* env, ERL_NIF_TERM, ErlNifPid* pid)); 123 ERL_NIF_API_FUNC_DECL(void,enif_keep_resource,(void* obj)); 124 ERL_NIF_API_FUNC_DECL(ERL_NIF_TERM,enif_make_resource_binary,(ErlNifEnv*,void* obj,const void* data, size_t size)); 125 126 /* 127 ** Add last to keep compatibility on Windows!!! 128 */ 129 #endif 130 131 #ifdef ERL_NIF_API_FUNC_MACRO 132 # define enif_priv_data ERL_NIF_API_FUNC_MACRO(enif_priv_data) 133 # define enif_alloc ERL_NIF_API_FUNC_MACRO(enif_alloc) 134 # define enif_free ERL_NIF_API_FUNC_MACRO(enif_free) 135 # define enif_is_atom ERL_NIF_API_FUNC_MACRO(enif_is_atom) 136 # define enif_is_binary ERL_NIF_API_FUNC_MACRO(enif_is_binary) 137 # define enif_is_ref ERL_NIF_API_FUNC_MACRO(enif_is_ref) 138 # define enif_inspect_binary ERL_NIF_API_FUNC_MACRO(enif_inspect_binary) 139 # define enif_alloc_binary ERL_NIF_API_FUNC_MACRO(enif_alloc_binary) 140 # define enif_realloc_binary ERL_NIF_API_FUNC_MACRO(enif_realloc_binary) 141 # define enif_release_binary ERL_NIF_API_FUNC_MACRO(enif_release_binary) 142 # define enif_get_int ERL_NIF_API_FUNC_MACRO(enif_get_int) 143 # define enif_get_ulong ERL_NIF_API_FUNC_MACRO(enif_get_ulong) 144 # define enif_get_double ERL_NIF_API_FUNC_MACRO(enif_get_double) 145 # define enif_get_tuple ERL_NIF_API_FUNC_MACRO(enif_get_tuple) 146 # define enif_get_list_cell ERL_NIF_API_FUNC_MACRO(enif_get_list_cell) 147 # define enif_is_identical ERL_NIF_API_FUNC_MACRO(enif_is_identical) 148 # define enif_compare ERL_NIF_API_FUNC_MACRO(enif_compare) 149 150 # define enif_make_binary ERL_NIF_API_FUNC_MACRO(enif_make_binary) 151 # define enif_make_badarg ERL_NIF_API_FUNC_MACRO(enif_make_badarg) 152 # define enif_make_int ERL_NIF_API_FUNC_MACRO(enif_make_int) 153 # define enif_make_ulong ERL_NIF_API_FUNC_MACRO(enif_make_ulong) 154 # define enif_make_double ERL_NIF_API_FUNC_MACRO(enif_make_double) 155 # define enif_make_atom ERL_NIF_API_FUNC_MACRO(enif_make_atom) 156 # define enif_make_existing_atom ERL_NIF_API_FUNC_MACRO(enif_make_existing_atom) 157 # define enif_make_tuple ERL_NIF_API_FUNC_MACRO(enif_make_tuple) 158 # define enif_make_list ERL_NIF_API_FUNC_MACRO(enif_make_list) 159 # define enif_make_list_cell ERL_NIF_API_FUNC_MACRO(enif_make_list_cell) 160 # define enif_make_string ERL_NIF_API_FUNC_MACRO(enif_make_string) 161 # define enif_make_ref ERL_NIF_API_FUNC_MACRO(enif_make_ref) 162 163 # define enif_mutex_create ERL_NIF_API_FUNC_MACRO(enif_mutex_create) 164 # define enif_mutex_destroy ERL_NIF_API_FUNC_MACRO(enif_mutex_destroy) 165 # define enif_mutex_trylock ERL_NIF_API_FUNC_MACRO(enif_mutex_trylock) 166 # define enif_mutex_lock ERL_NIF_API_FUNC_MACRO(enif_mutex_lock) 167 # define enif_mutex_unlock ERL_NIF_API_FUNC_MACRO(enif_mutex_unlock) 168 # define enif_cond_create ERL_NIF_API_FUNC_MACRO(enif_cond_create) 169 # define enif_cond_destroy ERL_NIF_API_FUNC_MACRO(enif_cond_destroy) 170 # define enif_cond_signal ERL_NIF_API_FUNC_MACRO(enif_cond_signal) 171 # define enif_cond_broadcast ERL_NIF_API_FUNC_MACRO(enif_cond_broadcast) 172 # define enif_cond_wait ERL_NIF_API_FUNC_MACRO(enif_cond_wait) 173 # define enif_rwlock_create ERL_NIF_API_FUNC_MACRO(enif_rwlock_create) 174 # define enif_rwlock_destroy ERL_NIF_API_FUNC_MACRO(enif_rwlock_destroy) 175 # define enif_rwlock_tryrlock ERL_NIF_API_FUNC_MACRO(enif_rwlock_tryrlock) 176 # define enif_rwlock_rlock ERL_NIF_API_FUNC_MACRO(enif_rwlock_rlock) 177 # define enif_rwlock_runlock ERL_NIF_API_FUNC_MACRO(enif_rwlock_runlock) 178 # define enif_rwlock_tryrwlock ERL_NIF_API_FUNC_MACRO(enif_rwlock_tryrwlock) 179 # define enif_rwlock_rwlock ERL_NIF_API_FUNC_MACRO(enif_rwlock_rwlock) 180 # define enif_rwlock_rwunlock ERL_NIF_API_FUNC_MACRO(enif_rwlock_rwunlock) 181 # define enif_tsd_key_create ERL_NIF_API_FUNC_MACRO(enif_tsd_key_create) 182 # define enif_tsd_key_destroy ERL_NIF_API_FUNC_MACRO(enif_tsd_key_destroy) 183 # define enif_tsd_set ERL_NIF_API_FUNC_MACRO(enif_tsd_set) 184 # define enif_tsd_get ERL_NIF_API_FUNC_MACRO(enif_tsd_get) 185 # define enif_thread_opts_create ERL_NIF_API_FUNC_MACRO(enif_thread_opts_create) 186 # define enif_thread_opts_destroy ERL_NIF_API_FUNC_MACRO(enif_thread_opts_destroy) 187 # define enif_thread_create ERL_NIF_API_FUNC_MACRO(enif_thread_create) 188 # define enif_thread_self ERL_NIF_API_FUNC_MACRO(enif_thread_self) 189 # define enif_equal_tids ERL_NIF_API_FUNC_MACRO(enif_equal_tids) 190 # define enif_thread_exit ERL_NIF_API_FUNC_MACRO(enif_thread_exit) 191 # define enif_thread_join ERL_NIF_API_FUNC_MACRO(enif_thread_join) 192 193 # define enif_realloc ERL_NIF_API_FUNC_MACRO(enif_realloc) 194 # define enif_system_info ERL_NIF_API_FUNC_MACRO(enif_system_info) 195 # define enif_fprintf ERL_NIF_API_FUNC_MACRO(enif_fprintf) 196 # define enif_inspect_iolist_as_binary ERL_NIF_API_FUNC_MACRO(enif_inspect_iolist_as_binary) 197 # define enif_make_sub_binary ERL_NIF_API_FUNC_MACRO(enif_make_sub_binary) 198 # define enif_get_string ERL_NIF_API_FUNC_MACRO(enif_get_string) 199 # define enif_get_atom ERL_NIF_API_FUNC_MACRO(enif_get_atom) 200 # define enif_is_fun ERL_NIF_API_FUNC_MACRO(enif_is_fun) 201 # define enif_is_pid ERL_NIF_API_FUNC_MACRO(enif_is_pid) 202 # define enif_is_port ERL_NIF_API_FUNC_MACRO(enif_is_port) 203 # define enif_get_uint ERL_NIF_API_FUNC_MACRO(enif_get_uint) 204 # define enif_get_long ERL_NIF_API_FUNC_MACRO(enif_get_long) 205 # define enif_make_uint ERL_NIF_API_FUNC_MACRO(enif_make_uint) 206 # define enif_make_long ERL_NIF_API_FUNC_MACRO(enif_make_long) 207 # define enif_make_tuple_from_array ERL_NIF_API_FUNC_MACRO(enif_make_tuple_from_array) 208 # define enif_make_list_from_array ERL_NIF_API_FUNC_MACRO(enif_make_list_from_array) 209 # define enif_is_empty_list ERL_NIF_API_FUNC_MACRO(enif_is_empty_list) 210 # define enif_open_resource_type ERL_NIF_API_FUNC_MACRO(enif_open_resource_type) 211 # define enif_alloc_resource ERL_NIF_API_FUNC_MACRO(enif_alloc_resource) 212 # define enif_release_resource ERL_NIF_API_FUNC_MACRO(enif_release_resource) 213 # define enif_make_resource ERL_NIF_API_FUNC_MACRO(enif_make_resource) 214 # define enif_get_resource ERL_NIF_API_FUNC_MACRO(enif_get_resource) 215 # define enif_sizeof_resource ERL_NIF_API_FUNC_MACRO(enif_sizeof_resource) 216 # define enif_make_new_binary ERL_NIF_API_FUNC_MACRO(enif_make_new_binary) 217 # define enif_is_list ERL_NIF_API_FUNC_MACRO(enif_is_list) 218 # define enif_is_tuple ERL_NIF_API_FUNC_MACRO(enif_is_tuple) 219 # define enif_get_atom_length ERL_NIF_API_FUNC_MACRO(enif_get_atom_length) 220 # define enif_get_list_length ERL_NIF_API_FUNC_MACRO(enif_get_list_length) 221 # define enif_make_atom_len ERL_NIF_API_FUNC_MACRO(enif_make_atom_len) 222 # define enif_make_existing_atom_len ERL_NIF_API_FUNC_MACRO(enif_make_existing_atom_len) 223 # define enif_make_string_len ERL_NIF_API_FUNC_MACRO(enif_make_string_len) 224 # define enif_alloc_env ERL_NIF_API_FUNC_MACRO(enif_alloc_env) 225 # define enif_free_env ERL_NIF_API_FUNC_MACRO(enif_free_env) 226 # define enif_clear_env ERL_NIF_API_FUNC_MACRO(enif_clear_env) 227 # define enif_send ERL_NIF_API_FUNC_MACRO(enif_send) 228 # define enif_make_copy ERL_NIF_API_FUNC_MACRO(enif_make_copy) 229 # define enif_self ERL_NIF_API_FUNC_MACRO(enif_self) 230 # define enif_get_local_pid ERL_NIF_API_FUNC_MACRO(enif_get_local_pid) 231 # define enif_keep_resource ERL_NIF_API_FUNC_MACRO(enif_keep_resource) 232 # define enif_make_resource_binary ERL_NIF_API_FUNC_MACRO(enif_make_resource_binary) 233 #endif 234 235 #ifndef enif_make_list1 236 # define enif_make_list1(ENV,E1) enif_make_list(ENV,1,E1) 237 # define enif_make_list2(ENV,E1,E2) enif_make_list(ENV,2,E1,E2) 238 # define enif_make_list3(ENV,E1,E2,E3) enif_make_list(ENV,3,E1,E2,E3) 239 # define enif_make_list4(ENV,E1,E2,E3,E4) enif_make_list(ENV,4,E1,E2,E3,E4) 240 # define enif_make_list5(ENV,E1,E2,E3,E4,E5) enif_make_list(ENV,5,E1,E2,E3,E4,E5) 241 # define enif_make_list6(ENV,E1,E2,E3,E4,E5,E6) enif_make_list(ENV,6,E1,E2,E3,E4,E5,E6) 242 # define enif_make_list7(ENV,E1,E2,E3,E4,E5,E6,E7) enif_make_list(ENV,7,E1,E2,E3,E4,E5,E6,E7) 243 # define enif_make_list8(ENV,E1,E2,E3,E4,E5,E6,E7,E8) enif_make_list(ENV,8,E1,E2,E3,E4,E5,E6,E7,E8) 244 # define enif_make_list9(ENV,E1,E2,E3,E4,E5,E6,E7,E8,E9) enif_make_list(ENV,9,E1,E2,E3,E4,E5,E6,E7,E8,E9) 245 # define enif_make_tuple1(ENV,E1) enif_make_tuple(ENV,1,E1) 246 # define enif_make_tuple2(ENV,E1,E2) enif_make_tuple(ENV,2,E1,E2) 247 # define enif_make_tuple3(ENV,E1,E2,E3) enif_make_tuple(ENV,3,E1,E2,E3) 248 # define enif_make_tuple4(ENV,E1,E2,E3,E4) enif_make_tuple(ENV,4,E1,E2,E3,E4) 249 # define enif_make_tuple5(ENV,E1,E2,E3,E4,E5) enif_make_tuple(ENV,5,E1,E2,E3,E4,E5) 250 # define enif_make_tuple6(ENV,E1,E2,E3,E4,E5,E6) enif_make_tuple(ENV,6,E1,E2,E3,E4,E5,E6) 251 # define enif_make_tuple7(ENV,E1,E2,E3,E4,E5,E6,E7) enif_make_tuple(ENV,7,E1,E2,E3,E4,E5,E6,E7) 252 # define enif_make_tuple8(ENV,E1,E2,E3,E4,E5,E6,E7,E8) enif_make_tuple(ENV,8,E1,E2,E3,E4,E5,E6,E7,E8) 253 # define enif_make_tuple9(ENV,E1,E2,E3,E4,E5,E6,E7,E8,E9) enif_make_tuple(ENV,9,E1,E2,E3,E4,E5,E6,E7,E8,E9) 254 255 # define enif_make_pid(ENV, PID) ((const ERL_NIF_TERM)((PID)->pid)) 256 #endif 257 258