--- /dev/null
+/*
+ * File: stlink.h
+ *
+ * This should contain all the common top level stlink interfaces, regardless
+ * of how the backend does the work....
+ */
+#ifndef STLINK_FLASH_LOADER_H_
+#define STLINK_FLASH_LOADER_H_
+
+#include <stdint.h>
+#include <stddef.h>
+
+#include "stlink.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int stlink_flash_loader_init(stlink_t *sl, flash_loader_t* fl);
+int stlink_flash_loader_write_to_sram(stlink_t *sl, stm32_addr_t* addr, size_t* size);
+int stlink_flash_loader_run(stlink_t *sl, flash_loader_t* fl, stm32_addr_t target, const uint8_t* buf, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STLINK_FLASH_LOADER_H_ */