diff options
Diffstat (limited to 'erts/emulator/beam/erl_bits.h')
-rw-r--r-- | erts/emulator/beam/erl_bits.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_bits.h b/erts/emulator/beam/erl_bits.h index 25aff39047..5ac6dd9ca7 100644 --- a/erts/emulator/beam/erl_bits.h +++ b/erts/emulator/beam/erl_bits.h @@ -182,7 +182,10 @@ Eterm erts_bs_get_utf8(ErlBinMatchBuffer* mb); Eterm erts_bs_get_utf16(ErlBinMatchBuffer* mb, Uint flags); Eterm erts_bs_append(Process* p, Eterm* reg, Uint live, Eterm build_size_term, Uint extra_words, Uint unit); +Eterm erts_bs_append_checked(Process* p, Eterm* reg, Uint live, Uint size, + Uint extra_words, Uint unit); Eterm erts_bs_private_append(Process* p, Eterm bin, Eterm sz, Uint unit); +Eterm erts_bs_private_append_checked(Process* p, Eterm bin, Uint size, Uint unit); Eterm erts_bs_init_writable(Process* p, Eterm sz); /* @@ -204,7 +207,7 @@ Eterm erts_extract_sub_binary(Eterm **hp, Eterm base_bin, byte *base_data, #define EXTRACT_SUB_BIN_HEAP_NEED (heap_bin_size(ERL_ONHEAP_BIN_LIMIT)) /* - * Flags for bs_get_* / bs_put_* / bs_init* instructions. + * Flags for bs_create_bin / bs_get_* / bs_put_* / bs_init* instructions. */ #define BSF_ALIGNED 1 /* Field is guaranteed to be byte-aligned. */ @@ -213,4 +216,24 @@ Eterm erts_extract_sub_binary(Eterm **hp, Eterm base_bin, byte *base_data, #define BSF_EXACT 8 /* Size in bs_init is exact. */ #define BSF_NATIVE 16 /* Native endian. */ +/* + * Binary construction operations. + */ + +#define BSC_APPEND 0 +#define BSC_PRIVATE_APPEND 1 +#define BSC_BINARY 2 +#define BSC_BINARY_FIXED_SIZE 3 +#define BSC_BINARY_ALL 4 +#define BSC_FLOAT 5 +#define BSC_FLOAT_FIXED_SIZE 6 +#define BSC_INTEGER 7 +#define BSC_INTEGER_FIXED_SIZE 8 +#define BSC_STRING 9 +#define BSC_UTF8 10 +#define BSC_UTF16 11 +#define BSC_UTF32 12 + +#define BSC_NUM_ARGS 5 + #endif /* __ERL_BITS_H__ */ |