mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-11-04 12:59:07 +01:00
Add bootloader extension
This commit is contained in:
committed by
Kyle Schwarz
parent
4db27aa187
commit
6ac041cadc
@@ -0,0 +1,37 @@
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/stl.h>
|
||||
#include <pybind11/functional.h>
|
||||
|
||||
#include "icsneo/device/extensions/bootloader/api.h"
|
||||
#include "icsneo/device/extensions/bootloader/parser/fwloader.h"
|
||||
|
||||
namespace icsneo {
|
||||
|
||||
struct BootloaderNamespace {};
|
||||
|
||||
void init_bootloader(pybind11::module_& m) {
|
||||
// Dummy class to act as Bootloader namespace
|
||||
pybind11::classh<BootloaderNamespace> bootloader(m, "Bootloader");
|
||||
|
||||
// Opaque handle returned by FWLoader.load and consumed by update
|
||||
pybind11::classh<Bootloader::FWRepo>(bootloader, "FWRepo");
|
||||
|
||||
pybind11::classh<Bootloader::FWLoader>(bootloader, "FWLoader")
|
||||
.def_static("load", &Bootloader::FWLoader::Load, pybind11::arg("path"), pybind11::call_guard<pybind11::gil_scoped_release>());
|
||||
|
||||
bootloader.def_static("update",
|
||||
[](Device& device, const Bootloader::FWRepo& fw, Bootloader::Logger logger, bool alreadyInBootloader, bool forceFlash) {
|
||||
if(!logger) {
|
||||
logger = [](Device::OpenStatusType, const std::string&, std::optional<double>) { return Device::OpenDirective::Continue; };
|
||||
}
|
||||
return Bootloader::update(device, fw, logger, alreadyInBootloader, forceFlash);
|
||||
},
|
||||
pybind11::arg("device"),
|
||||
pybind11::arg("fw"),
|
||||
pybind11::arg("logger") = pybind11::none(),
|
||||
pybind11::arg("already_in_bootloader") = false,
|
||||
pybind11::arg("force_flash") = false,
|
||||
pybind11::call_guard<pybind11::gil_scoped_release>());
|
||||
}
|
||||
|
||||
} // namespace icsneo
|
||||
Reference in New Issue
Block a user