24#if defined(_WIN32) || defined(__CYGWIN__)
25#define INFIX_EMIT_API __declspec(dllexport)
27#define INFIX_EMIT_API __attribute__((visibility("default")))
INFIX_EMIT_API void emit_destroy(emit_context_t *ctx)
Definition emit.c:127
INFIX_EMIT_API infix_status emit_create(emit_context_t **out_ctx, emit_architecture_t arch, emit_format_t format)
Definition emit.c:110
INFIX_EMIT_API infix_status emit_create_label(emit_context_t *ctx, const char *name)
Definition emit.c:236
emit_section_flags_t
Definition emit.h:41
@ EMIT_SECTION_FLAG_ALLOC
Definition emit.h:43
@ EMIT_SECTION_FLAG_EXECUTE
Definition emit.h:45
@ EMIT_SECTION_FLAG_WRITE
Definition emit.h:44
@ EMIT_SECTION_FLAG_NONE
Definition emit.h:42
INFIX_EMIT_API infix_status emit_get_offset(const emit_context_t *ctx, uint64_t *out_offset)
Definition emit.c:518
INFIX_EMIT_API infix_status emit_emit_label(emit_context_t *ctx, const char *name)
Definition emit.c:205
INFIX_EMIT_API infix_status emit_emit_u8(emit_context_t *ctx, uint8_t value)
Definition emit.c:282
emit_architecture_t
Definition emit.h:30
@ EMIT_ARCH_X86_64
Definition emit.h:31
@ EMIT_ARCH_AARCH64
Definition emit.h:32
INFIX_EMIT_API infix_status emit_begin_section(emit_context_t *ctx, const char *name)
Definition emit.c:156
INFIX_EMIT_API infix_status emit_emit_u16(emit_context_t *ctx, uint16_t value)
Definition emit.c:286
emit_format_t
Definition emit.h:35
@ EMIT_FORMAT_BINARY
Definition emit.h:36
@ EMIT_FORMAT_PE
Definition emit.h:38
@ EMIT_FORMAT_ELF
Definition emit.h:37
INFIX_EMIT_API infix_status emit_define_symbol(emit_context_t *ctx, const char *name, emit_visibility_t visibility, bool is_function)
Definition emit.c:174
#define INFIX_EMIT_API
Definition emit.h:27
emit_state_t
Definition emit.h:54
@ EMIT_STATE_SECTION_INACTIVE
Definition emit.h:57
@ EMIT_STATE_IDLE
Definition emit.h:55
@ EMIT_STATE_SECTION_ACTIVE
Definition emit.h:56
INFIX_EMIT_API infix_status emit_emit_u64(emit_context_t *ctx, uint64_t value)
Definition emit.c:299
INFIX_EMIT_API infix_status emit_align(emit_context_t *ctx, uint64_t alignment)
Definition emit.c:311
INFIX_EMIT_API infix_status emit_emit_u32(emit_context_t *ctx, uint32_t value)
Definition emit.c:291
INFIX_EMIT_API infix_status emit_add_section(emit_context_t *ctx, const char *name, emit_section_flags_t flags)
Definition emit.c:132
emit_visibility_t
Definition emit.h:48
@ EMIT_VISIBILITY_DEFAULT
Definition emit.h:49
@ EMIT_VISIBILITY_HIDDEN
Definition emit.h:50
@ EMIT_VISIBILITY_PROTECTED
Definition emit.h:51
INFIX_EMIT_API infix_status emit_get_binary(const emit_context_t *ctx, const uint8_t **out_data, size_t *out_size)
Definition emit.c:492
infix_status
Enumerates the possible status codes returned by infix API functions.
Definition infix.h:435
The public interface for the infix FFI library.
Definition emit_internals.h:50
emit_format_t format
Definition emit_internals.h:52
emit_architecture_t arch
Definition emit_internals.h:51