typedef enum {
S_IDLE,
S_READ,
- S_VERIFY,
S_CRC,
S_WRITE,
- S_COMMIT,
+ S_SYNC,
S_ERASE,
} stm25p_block_req_t;
return newRequest( id );
}
- command error_t Read.verify[ uint8_t id ]() {
- m_req.req = S_VERIFY;
- return newRequest( id );
- }
-
command error_t Read.computeCrc[ uint8_t id ]( storage_addr_t addr,
storage_len_t len,
uint16_t crc ) {
return newRequest( id );
}
- command error_t Write.commit[ uint8_t id ]() {
- m_req.req = S_COMMIT;
+ command error_t Write.sync[ uint8_t id ]() {
+ m_req.req = S_SYNC;
return newRequest( id );
}
case S_ERASE:
call Sector.erase[ id ]( 0, call Sector.getNumSectors[ id ]() );
break;
- case S_COMMIT: case S_VERIFY:
+ case S_SYNC:
signalDone( id, 0, SUCCESS );
break;
case S_IDLE:
m_block_state[ id ].buf,
m_block_state[ id ].len, error );
break;
- case S_VERIFY:
- signal Read.verifyDone[ id ]( error );
- break;
case S_CRC:
signal Read.computeCrcDone[ id ]( m_block_state[ id ].addr,
m_block_state[ id ].len, crc, error );
m_block_state[ id ].buf,
m_block_state[ id ].len, error );
break;
- case S_COMMIT:
- signal Write.commitDone[ id ]( error );
+ case S_SYNC:
+ signal Write.syncDone[ id ]( error );
break;
case S_ERASE:
signal Write.eraseDone[ id ]( error );
default event void Read.readDone[ uint8_t id ]( storage_addr_t addr, void* buf, storage_len_t len, error_t error ) {}
default event void Read.computeCrcDone[ uint8_t id ]( storage_addr_t addr, storage_len_t len, uint16_t crc, error_t error ) {}
- default event void Read.verifyDone[ uint8_t id ]( error_t error ) {}
default event void Write.writeDone[ uint8_t id ]( storage_addr_t addr, void* buf, storage_len_t len, error_t error ) {}
default event void Write.eraseDone[ uint8_t id ]( error_t error ) {}
- default event void Write.commitDone[ uint8_t id ]( error_t error ) {}
+ default event void Write.syncDone[ uint8_t id ]( error_t error ) {}
default command storage_addr_t Sector.getPhysicalAddress[ uint8_t id ]( storage_addr_t addr ) { return 0xffffffff; }
default command uint8_t Sector.getNumSectors[ uint8_t id ]() { return 0; }
default command error_t Sector.erase[ uint8_t id ]( uint8_t sector, uint8_t num_sectors ) { return FAIL; }
default command error_t Sector.computeCrc[ uint8_t id ]( uint16_t crc, storage_addr_t addr, storage_len_t len ) { return FAIL; }
default async command error_t ClientResource.request[ uint8_t id ]() { return FAIL; }
- default async command void ClientResource.release[ uint8_t id ]() {}
+ default async command error_t ClientResource.release[ uint8_t id ]() { return FAIL; }
}