diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..8b042cb --- /dev/null +++ b/.clang-format @@ -0,0 +1 @@ +{ BasedOnStyle: Chromium, UseTab: Never, IndentWidth: 4, TabWidth: 4, ColumnLimit: 120 } \ No newline at end of file diff --git a/src/ens/ens_error.h b/src/ens/ens_error.h index 213ce22..2e6f91d 100644 --- a/src/ens/ens_error.h +++ b/src/ens/ens_error.h @@ -1,8 +1,8 @@ #ifndef ENS_ERROR_H #define ENS_ERROR_H -#define ENS_INTERR 1 // internal error -#define ENS_NOENT 2 // entry not found or invalid -#define ENS_INVARG 3 // invalid argument +#define ENS_INTERR 1 // internal error +#define ENS_NOENT 2 // entry not found or invalid +#define ENS_INVARG 3 // invalid argument #endif \ No newline at end of file diff --git a/src/ens/ens_fs.c b/src/ens/ens_fs.c index 08f79b4..72cdbed 100644 --- a/src/ens/ens_fs.c +++ b/src/ens/ens_fs.c @@ -1,10 +1,10 @@ #include #include -#include #include +#include -#include "ens_fs.h" #include "ens_error.h" +#include "ens_fs.h" #define SEED 42 @@ -15,7 +15,7 @@ int ens_fs_init(ens_fs_t* fs, uint8_t id, uint64_t entry_size) { } // check, if entry size is multiple of flash_area_align - if((entry_size % flash_area_align(fs->area)) != 0) { + if ((entry_size % flash_area_align(fs->area)) != 0) { flash_area_close(fs->area); return -ENS_INVARG; } @@ -36,10 +36,9 @@ int ens_fs_init(ens_fs_t* fs, uint8_t id, uint64_t entry_size) { } int ens_fs_read(ens_fs_t* fs, uint64_t id, void* dist) { - // read the entry from flash uint64_t offset = id * fs->entry_size; - if(flash_area_read(fs->area, offset, dist, fs->entry_size)) { + if (flash_area_read(fs->area, offset, dist, fs->entry_size)) { // opening of flash area was not successful return -ENS_INTERR; } @@ -48,7 +47,7 @@ int ens_fs_read(ens_fs_t* fs, uint64_t id, void* dist) { uint8_t* obj = dist; uint8_t metadata = crc7_be(SEED, obj, fs->entry_size - 1) | 1; int isInvalid = memcmp(&obj[fs->entry_size - 1], &metadata, 1); - if(isInvalid) { + if (isInvalid) { // if checksum is not equal to calculated checksum or if deleted flag is not 1, set memory to 0 memset(dist, 0, fs->entry_size); // we do not know, if object got deleted or data is corrupt @@ -59,13 +58,12 @@ int ens_fs_read(ens_fs_t* fs, uint64_t id, void* dist) { } int ens_fs_write(ens_fs_t* fs, uint64_t id, void* data) { - // set CRC and not-deleted-flag uint8_t* obj = data; obj[fs->entry_size - 1] = crc7_be(SEED, obj, fs->entry_size - 1) | 1; uint64_t offset = id * fs->entry_size; - if(flash_area_write(fs->area, offset, data, fs->entry_size)) { + if (flash_area_write(fs->area, offset, data, fs->entry_size)) { // writing to flash was not successful return -ENS_INTERR; } @@ -74,18 +72,17 @@ int ens_fs_write(ens_fs_t* fs, uint64_t id, void* data) { } int ens_fs_delete(ens_fs_t* fs, uint64_t id) { - uint8_t data[fs->entry_size]; uint64_t offset = id * fs->entry_size; - if(flash_area_read(fs->area, offset, data, fs->entry_size)) { + if (flash_area_read(fs->area, offset, data, fs->entry_size)) { // reading was not successful return -ENS_INTERR; } // set memory to 0, so not-deleted flag is 0 memset(data, 0, fs->entry_size); - if(flash_area_write(fs->area, offset, data, fs->entry_size)) { + if (flash_area_write(fs->area, offset, data, fs->entry_size)) { // writing was not successful return -ENS_INTERR; } @@ -94,12 +91,11 @@ int ens_fs_delete(ens_fs_t* fs, uint64_t id) { } int ens_fs_page_erase(ens_fs_t* fs, uint64_t offset, uint64_t sector_count) { - // calculate the next page start before (or at) the given offset uint64_t start = (offset - offset % fs->sector_size) * fs->entry_size; // erase given amount of pages, starting for the given offset - if(flash_area_erase(fs->area, start, fs->sector_size * sector_count)) { + if (flash_area_erase(fs->area, start, fs->sector_size * sector_count)) { return -ENS_INTERR; } diff --git a/src/ens/records.c b/src/ens/records.c index 63a0885..94652aa 100644 --- a/src/ens/records.c +++ b/src/ens/records.c @@ -69,14 +69,14 @@ int ens_records_iterator_init_timerange(record_iterator_t* iterator, uint32_t* t // try to find the oldest contact in our timerange record_t start_rec; int rc = load_contact(&start_rec, oldest_sn); - if(rc) { + if (rc) { return rc; } // if starting timestamp lies in our bounds, perform binary search - if(start_rec.timestamp < *ts_start) { + if (start_rec.timestamp < *ts_start) { rc = find_record_via_binary_search(&start_rec, *ts_start, oldest_sn, latest_sn); - if(rc) { + if (rc) { return rc; } } @@ -84,14 +84,14 @@ int ens_records_iterator_init_timerange(record_iterator_t* iterator, uint32_t* t // try to find the newest contact within out timerange record_t end_rec; rc = load_contact(&end_rec, latest_sn); - if(rc) { + if (rc) { return rc; } // if ending timestamp lies in our bounds, perform binary search - if(end_rec.timestamp > *ts_end) { + if (end_rec.timestamp > *ts_end) { rc = find_record_via_binary_search(&end_rec, *ts_end, oldest_sn, latest_sn); - if(rc) { + if (rc) { return rc; } } diff --git a/src/ens/records.h b/src/ens/records.h index dbe28c3..3b8f505 100644 --- a/src/ens/records.h +++ b/src/ens/records.h @@ -24,8 +24,6 @@ int ens_records_iterator_init_range(record_iterator_t* iterator, record_sequence_number_t* opt_start, record_sequence_number_t* opt_end); -// TODO: This function should call with the relevant start and end sequence numbers (retrieved through e.g. binary -// search / metadata) // TODO: Do we guarantee that higher sequence numbers have at least our timestamp and lower sequence numbers up to our // timestamp? int ens_records_iterator_init_timerange(record_iterator_t* iterator, uint32_t* ts_start, uint32_t* ts_end); diff --git a/src/ens/sequencenumber.h b/src/ens/sequencenumber.h index e594aeb..5ba4795 100644 --- a/src/ens/sequencenumber.h +++ b/src/ens/sequencenumber.h @@ -11,7 +11,7 @@ typedef uint32_t record_sequence_number_t; /** * Mask a given sequence number to get rid of MSB. * TODO: maybe as #define? - * + * * @param sn sequence number to mask * @return masked sequence number */ @@ -19,7 +19,7 @@ record_sequence_number_t sn_mask(record_sequence_number_t sn); /** * Compare to sequence numbers for equality. - * + * * @param a first sequence number * @param b second sequence number * @return 1, if sequence numbers are equal, 0 otherwise. diff --git a/src/ens/storage.c b/src/ens/storage.c index 68498bb..fe89f02 100644 --- a/src/ens/storage.c +++ b/src/ens/storage.c @@ -72,7 +72,8 @@ int init_contact_storage(void) { struct flash_pages_info info; // define the nvs file system info_fs.offset = FLASH_AREA_OFFSET(storage); - rc = flash_get_page_info_by_offs(device_get_binding(DT_CHOSEN_ZEPHYR_FLASH_CONTROLLER_LABEL), info_fs.offset, &info); + rc = + flash_get_page_info_by_offs(device_get_binding(DT_CHOSEN_ZEPHYR_FLASH_CONTROLLER_LABEL), info_fs.offset, &info); if (rc) { // Error during retrieval of page information @@ -118,7 +119,6 @@ int load_contact(record_t* dest, record_sequence_number_t sn) { } int add_contact(record_t* src) { - // Check, if next sn would be at start of page record_sequence_number_t potential_next_sn = sn_increment(get_latest_sequence_number()); storage_id_t potential_next_id = convert_sn_to_storage_id(potential_next_sn); diff --git a/src/ens/storage.h b/src/ens/storage.h index 8d7a37e..33bd3c7 100644 --- a/src/ens/storage.h +++ b/src/ens/storage.h @@ -2,8 +2,8 @@ #define CONTACT_STORAGE_H #include "../contacts.h" // Requires contact_t in contacts.h! -#include "sequencenumber.h" #include "../covid_types.h" +#include "sequencenumber.h" typedef uint16_t storage_id_t;