@@ -150,6 +150,23 @@ mp_obj_t sdcardio_sdcard_readblocks(mp_obj_t self_in, mp_obj_t start_block_in, m
150150
151151MP_DEFINE_CONST_FUN_OBJ_3 (sdcardio_sdcard_readblocks_obj , sdcardio_sdcard_readblocks );
152152
153+ //| def sync(self) -> None:
154+ //| """Ensure all blocks written are actually committed to the SD card
155+ //|
156+ //| :return: None"""
157+ //| ...
158+ mp_obj_t sdcardio_sdcard_sync (mp_obj_t self_in ) {
159+ sdcardio_sdcard_obj_t * self = (sdcardio_sdcard_obj_t * )self_in ;
160+ int result = common_hal_sdcardio_sdcard_sync (self );
161+ if (result < 0 ) {
162+ mp_raise_OSError (- result );
163+ }
164+ return mp_const_none ;
165+ }
166+
167+ MP_DEFINE_CONST_FUN_OBJ_1 (sdcardio_sdcard_sync_obj , sdcardio_sdcard_sync );
168+
169+
153170//| def writeblocks(self, start_block: int, buf: ReadableBuffer) -> None:
154171//|
155172//| """Write one or more blocks to the card
@@ -177,6 +194,7 @@ STATIC const mp_rom_map_elem_t sdcardio_sdcard_locals_dict_table[] = {
177194 { MP_ROM_QSTR (MP_QSTR_count ), MP_ROM_PTR (& sdcardio_sdcard_count_obj ) },
178195 { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& sdcardio_sdcard_deinit_obj ) },
179196 { MP_ROM_QSTR (MP_QSTR_readblocks ), MP_ROM_PTR (& sdcardio_sdcard_readblocks_obj ) },
197+ { MP_ROM_QSTR (MP_QSTR_sync ), MP_ROM_PTR (& sdcardio_sdcard_sync_obj ) },
180198 { MP_ROM_QSTR (MP_QSTR_writeblocks ), MP_ROM_PTR (& sdcardio_sdcard_writeblocks_obj ) },
181199};
182200STATIC MP_DEFINE_CONST_DICT (sdcardio_sdcard_locals_dict , sdcardio_sdcard_locals_dict_table );
0 commit comments