aboutsummaryrefslogtreecommitdiff
path: root/NK_C_API.cc
diff options
context:
space:
mode:
authorRobin Krahl <me@robin-krahl.de>2019-01-14 20:52:25 +0100
committerRobin Krahl <me@robin-krahl.de>2019-01-14 20:52:25 +0100
commit46a94679152da263e3e805ec2073359ae60ce6ab (patch)
treea0df3fe26993c091428c4b63bb6bbf62d174d3fd /NK_C_API.cc
parent1f3da5c76acb20b2183ac52373ed3b0b63e1151e (diff)
downloadlibnitrokey-feature/sd-usage-data-struct.tar.gz
libnitrokey-feature/sd-usage-data-struct.tar.bz2
Add NK_get_SD_usage_data function to C APIfeature/sd-usage-data-struct
The NK_get_SD_usage_data function returns the minimum and maximum write level for the SD card. This function cannot be tested due to the missing struct support in the Python tests.
Diffstat (limited to 'NK_C_API.cc')
-rw-r--r--NK_C_API.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/NK_C_API.cc b/NK_C_API.cc
index 7d0a10e..5e95303 100644
--- a/NK_C_API.cc
+++ b/NK_C_API.cc
@@ -687,6 +687,23 @@ extern "C" {
return 0;
}
+ NK_C_API int NK_get_SD_usage_data(struct NK_SD_usage_data* out) {
+ if (out == nullptr)
+ return -1;
+ auto m = NitrokeyManager::instance();
+ auto result = get_with_status([&]() {
+ return m->get_SD_usage_data();
+ }, std::make_pair<uint8_t, uint8_t>(0, 0));
+ auto error_code = std::get<0>(result);
+ if (error_code != 0)
+ return error_code;
+
+ auto data = std::get<1>(result);
+ out->write_level_min = std::get<0>(data);
+ out->write_level_max = std::get<1>(data);
+
+ return 0;
+ }
NK_C_API char* NK_get_SD_usage_data_as_string() {
auto m = NitrokeyManager::instance();