+ * @param main_env the main backend environment
+ * @param emit_commons if non-zero, emit commons (non-local uninitialized entities)
+ * @param only_emit_marked if non-zero, external allocated entities that do not have
+ * its visited flag set are ignored
+ */
+void be_gas_emit_decls(const be_main_env_t *main_env,
+ int only_emit_marked_entities);
+
+/**
+ * Emit an entity (the entities name or a block label)
+ */
+void be_gas_emit_entity(ir_entity *entity);
+
+/**
+ * Switch the current output section to the given out.
+ *
+ * @param section the new output section
+ */
+void be_gas_emit_switch_section(be_gas_section_t section);
+
+/**
+ * emit assembler instructions necessary before starting function code
+ */
+void be_gas_emit_function_prolog(ir_entity *entity, unsigned alignment);
+
+void be_gas_emit_function_epilog(ir_entity *entity);
+
+/**
+ * Return the label prefix for labeled blocks.