MCPcopy Create free account
hub / github.com/CANopenNode/CANopenNode / CO_storage_init

Function CO_storage_init

storage/CO_storage.c:132–163  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

130}
131
132CO_ReturnError_t
133CO_storage_init(CO_storage_t* storage, CO_CANmodule_t* CANmodule, OD_entry_t* OD_1010_StoreParameters,
134 OD_entry_t* OD_1011_RestoreDefaultParameters,
135 ODR_t (*store)(CO_storage_entry_t* entry, CO_CANmodule_t* CANmodule),
136 ODR_t (*restore)(CO_storage_entry_t* entry, CO_CANmodule_t* CANmodule), CO_storage_entry_t* entries,
137 uint8_t entriesCount) {
138 /* verify arguments */
139 if ((storage == NULL) || (CANmodule == NULL) || (OD_1010_StoreParameters == NULL)
140 || (OD_1011_RestoreDefaultParameters == NULL) || (store == NULL) || (restore == NULL) || (entries == NULL)) {
141 return CO_ERROR_ILLEGAL_ARGUMENT;
142 }
143
144 /* Configure object variables */
145 storage->CANmodule = CANmodule;
146 storage->store = store;
147 storage->restore = restore;
148 storage->entries = entries;
149 storage->entriesCount = entriesCount;
150
151 /* configure extensions */
152 storage->OD_1010_extension.object = storage;
153 storage->OD_1010_extension.read = OD_readOriginal;
154 storage->OD_1010_extension.write = OD_write_1010;
155 (void)OD_extension_init(OD_1010_StoreParameters, &storage->OD_1010_extension);
156
157 storage->OD_1011_extension.object = storage;
158 storage->OD_1011_extension.read = OD_readOriginal;
159 storage->OD_1011_extension.write = OD_write_1011;
160 (void)OD_extension_init(OD_1011_RestoreDefaultParameters, &storage->OD_1011_extension);
161
162 return CO_ERROR_NO;
163}
164
165#endif /* (CO_CONFIG_STORAGE) & CO_CONFIG_STORAGE_ENABLE */

Callers 2

CO_storageBlank_initFunction · 0.85
CO_storageEeprom_initFunction · 0.85

Calls 1

OD_extension_initFunction · 0.85

Tested by

no test coverage detected