diff options
Diffstat (limited to 'keyboards/cipulot/common/eeprom_tools.h')
-rw-r--r-- | keyboards/cipulot/common/eeprom_tools.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/keyboards/cipulot/common/eeprom_tools.h b/keyboards/cipulot/common/eeprom_tools.h new file mode 100644 index 0000000000..b3c90d8759 --- /dev/null +++ b/keyboards/cipulot/common/eeprom_tools.h @@ -0,0 +1,26 @@ +/* Copyright 2023 Cipulot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#pragma once + +#include "eeprom.h" + +#if (EECONFIG_KB_DATA_SIZE) > 0 +# define EEPROM_KB_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_KB_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) +#endif + +#if (EECONFIG_USER_DATA_SIZE) > 0 +# define EEPROM_USER_PARTIAL_UPDATE(__struct, __field) eeprom_update_block(&(__struct.__field), (void *)((void *)(EECONFIG_USER_DATABLOCK) + offsetof(typeof(__struct), __field)), sizeof(__struct.__field)) +#endif |