From 7b35000e1163ea183775e6d28b0cc156cb1b8c02 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Tue, 16 Apr 2024 16:18:28 +0200 Subject: [PATCH] Use persistent memory for storing dynamic VID/PID. Signed-off-by: Pol Henarejos --- src/fs/file.c | 3 ++- src/fs/file.h | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/fs/file.c b/src/fs/file.c index bee9812..2fc9633 100644 --- a/src/fs/file.c +++ b/src/fs/file.c @@ -265,6 +265,8 @@ void scan_region(bool persistent) { void wait_flash_finish(); #ifndef ENABLE_EMULATION extern uint16_t usb_vid, usb_pid; +file_t sef_vp = {.fid = EF_VP, .parent = 5, .name = NULL, .type = FILE_TYPE_INTERNAL_EF | FILE_DATA_FLASH | FILE_PERSISTENT, .data = NULL, .ef_structure = FILE_EF_TRANSPARENT, .acl = {0xff}}; +file_t *ef_vp = &sef_vp; #endif void scan_flash() { initialize_flash(false); //soft initialization @@ -282,7 +284,6 @@ void scan_flash() { scan_region(true); scan_region(false); #ifndef ENABLE_EMULATION - file_t *ef_vp = search_dynamic_file(EF_VP); if (file_has_data(ef_vp) && file_get_size(ef_vp) >= 4) { uint8_t *data = file_get_data(ef_vp); usb_vid = (data[0] << 8) | data[1]; diff --git a/src/fs/file.h b/src/fs/file.h index af4d57b..b7d77e9 100644 --- a/src/fs/file.h +++ b/src/fs/file.h @@ -129,4 +129,8 @@ extern int meta_delete(uint16_t fid); extern int meta_add(uint16_t fid, const uint8_t *data, uint16_t len); extern int delete_file(file_t *ef); +#ifndef ENABLE_EMULATION +extern file_t *ef_vp; #endif + +#endif // _FILE_H_