unleashed-firmware/lib/ibutton/ibutton_key.c
あく acc39a4bc0
Api Symbols: replace asserts with checks (#3507)
* Api Symbols: replace asserts with checks
* Api Symbols: replace asserts with checks part 2
* Update no args function signatures with void, to help compiler to track incorrect usage
* More unavoidable void
* Update PVS config and code to make it happy
* Format sources
* nfc: fix checks
* dead code cleanup & include fixes

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2024-03-19 23:43:52 +09:00

52 lines
1.2 KiB
C

#include "ibutton_key_i.h"
#include <furi.h>
struct iButtonKey {
iButtonProtocolId protocol_id;
iButtonProtocolData* protocol_data;
size_t protocol_data_size;
};
iButtonKey* ibutton_key_alloc(size_t data_size) {
iButtonKey* key = malloc(sizeof(iButtonKey));
key->protocol_id = iButtonProtocolIdInvalid;
key->protocol_data = malloc(data_size);
key->protocol_data_size = data_size;
return key;
}
void ibutton_key_free(iButtonKey* key) {
furi_check(key);
free(key->protocol_data);
free(key);
}
void ibutton_key_reset(iButtonKey* key) {
furi_check(key);
key->protocol_id = iButtonProtocolIdInvalid;
memset(key->protocol_data, 0, key->protocol_data_size);
}
iButtonProtocolId ibutton_key_get_protocol_id(const iButtonKey* key) {
furi_check(key);
return key->protocol_id;
}
void ibutton_key_set_protocol_id(iButtonKey* key, iButtonProtocolId protocol_id) {
furi_check(key);
key->protocol_id = protocol_id;
}
iButtonProtocolData* ibutton_key_get_protocol_data(const iButtonKey* key) {
return key->protocol_data;
}
size_t ibutton_key_get_protocol_data_size(const iButtonKey* key) {
return key->protocol_data_size;
}