Minidriver support

The IFS Restoration was designed to be compatible with minidrivers. Any copies of data made during IFS restoration will include periodic polls to the minidriver handler (if enabled) based on the value specified by the mdriver_max variable:

unsigned mdriver_max = KILO(16);

This value specifies how many bytes will be copied from flash to RAM before the minidriver handler will be polled. For more information, see the Instant Device Activation User's Guide.

Similarly, IFS Restoration will perform the potentially lengthy operation of performing a checksum on the entire IFS (if enabled). To ensure that the minidriver handler is periodically polled, a polling value is defined:

unsigned mdriver_cksum_max = KILO(500);

This value specifies how many bytes of the IFS checksum will be performed before the minidriver handler will be polled. The default value is set to be much larger than the mdriver_max variable since it's assumed that the checksum (adding bytes in RAM) will be much faster than copying bytes from flash to RAM.