at45pageoffset_t n,
uint16_t baseCrc) {
/* This is a hack (store crc in reqBuf), but it saves 2 bytes of RAM */
- reqBuf = TCAST(uint8_t * COUNT(baseCrc), baseCrc);
- newRequest(R_READCRC, page, offset, reqBuf, n);
+ newRequest(R_READCRC, page, offset, TCAST(uint8_t * COUNT(n), baseCrc), n);
}
command void At45db.write(at45page_t page, at45pageoffset_t offset,
storage_addr_t remaining = s[client].len - currentOffset, addr;
at45page_t page;
at45pageoffset_t pageOffset, count;
- uint8_t *buf = s[client].buf + currentOffset;
+ uint8_t *buf = s[client].buf;
if (remaining == 0)
{
switch (s[client].request)
{
case R_WRITE:
- call At45db.write(page, pageOffset, buf, count);
+ call At45db.write(page, pageOffset, buf + currentOffset, count);
break;
case R_READ:
- call At45db.read(page, pageOffset, buf, count);
+ call At45db.read(page, pageOffset, buf + currentOffset, count);
break;
case R_CRC:
call At45db.computeCrc(page, pageOffset, count, crc);
return call BlockRead.read[id](addr + sizeof low[0], buf, len);
}
- void readReadDone(uint8_t id, storage_addr_t addr, void* buf, storage_len_t len, error_t error) {
+ void readReadDone(uint8_t id, storage_addr_t addr, void* COUNT(len) buf, storage_len_t len, error_t error) {
signal ConfigStorage.readDone[id](addr - sizeof low[0], buf, len, error);
}
signal BConfig.writeContinue[id](error);
}
- void writeWriteDone(uint8_t id, storage_addr_t addr, void* buf, storage_len_t len, error_t error) {
+ void writeWriteDone(uint8_t id, storage_addr_t addr, void* COUNT(len) buf, storage_len_t len, error_t error) {
flip(id); // flip back to current half
signal ConfigStorage.writeDone[id](addr - sizeof low[0], buf, len, error);
}