bif.c
Include dependency graph for bif.c:
Defines
-
RAISE_ERROR(error_type_atom) ctx->x[0] = ERROR_ATOM
; \
ctx->x[1] = (error_type_atom); \
return
term_invalid_term();
-
RAISE_ERROR_BIF(fail_label, error_type_atom)
if (fail_label == 0) { \
ctx->x[0] =
ERROR_ATOM; \
ctx->x[1] = (error_type_atom); \
} \
return
term_invalid_term();
-
VALIDATE_VALUE_BIF(fail_label, value, verify_function) if (UNLIKELY(!verify_function((value)))) { \
RAISE_ERROR_BIF(fail_label, BADARG_ATOM
); \
}
Typedefs
-
typedef int64_t (*bitwise_op)(int64_t a, int64_t b)
-
typedef int64_t (*bitshift_op)(int64_t a, avm_int_t b)
Functions
-
const struct ExportedFunction *bif_registry_get_handler(AtomString module, AtomString function, int arity)
-
static inline term make_boxed_int(Context *ctx, uint32_t fail_label, uint32_t live, avm_int_t value)
-
static inline term make_boxed_int64(Context *ctx, uint32_t fail_label, uint32_t live, avm_int64_t value)
-
static inline term make_maybe_boxed_int(Context *ctx, uint32_t fail_label, uint32_t live, avm_int_t value)
-
static inline term make_maybe_boxed_int64(Context *ctx, uint32_t fail_label, uint32_t live, avm_int64_t value)
-
static term add_overflow_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term add_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term sub_overflow_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term sub_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term mul_overflow_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term mul_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term div_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static term rem_boxed_helper(Context *ctx, uint32_t fail_label, uint32_t live, term arg1, term arg2)
-
static inline term bitwise_helper(Context *ctx, uint32_t fail_label, int live, term arg1, term arg2, bitwise_op op)
-
static inline int64_t bor(int64_t a, int64_t b)
-
static inline int64_t band(int64_t a, int64_t b)
-
static inline int64_t bxor(int64_t a, int64_t b)
-
static inline term bitshift_helper(Context *ctx, uint32_t fail_label, int live, term arg1, term arg2, bitshift_op op)
-
static inline int64_t bsl(int64_t a, avm_int_t b)
-
static inline int64_t bsr(int64_t a, avm_int_t b)