-record(func, { name = undefined, % real name type = void, % method type params = [], % arguments to the function where = both, % C code and/or erlang id = undefined, % Integer alt = undefined, % Function alternative ext = undefined % Have ARB or other extension } ). -record(arg, { name = undefined, type = undefined, in = true, where = both, % both in c and erl or only in either alt = undefined }). -record(type, { name = undefined, % typename base = undefined, % basename int, char, float .. size = 4, % in bytes by_val = true, % or false = by_ref single = true, % Single or array (list) ref = undefined, % {pointer, N} mod = [] % const ... } ). -record(def, {name, val, type}). %% type=hex, int, string -define(error(What), erlang:error({{?MODULE,?LINE},{get(current_func)},What})). -define(warning(Str,Args), io:format("~p:~p Warning:"++Str, [?MODULE,?LINE] ++ Args)).