diff --git a/src/block/block.c b/src/block/block.c index a161e7a..63c7101 100644 --- a/src/block/block.c +++ b/src/block/block.c @@ -21,7 +21,7 @@ inline whal_Error whal_Block_Deinit(whal_Block *blockDev) } inline whal_Error whal_Block_Read(whal_Block *blockDev, uint32_t block, - uint8_t *data, uint32_t blockCount) + void *data, uint32_t blockCount) { if (!blockDev || !blockDev->driver || !blockDev->driver->Read || !data) { return WHAL_EINVAL; @@ -31,7 +31,7 @@ inline whal_Error whal_Block_Read(whal_Block *blockDev, uint32_t block, } inline whal_Error whal_Block_Write(whal_Block *blockDev, uint32_t block, - const uint8_t *data, uint32_t blockCount) + const void *data, uint32_t blockCount) { if (!blockDev || !blockDev->driver || !blockDev->driver->Write || !data) { return WHAL_EINVAL; diff --git a/src/block/sdhc_spi.c b/src/block/sdhc_spi.c index f40b3ec..517a3f9 100644 --- a/src/block/sdhc_spi.c +++ b/src/block/sdhc_spi.c @@ -266,8 +266,9 @@ whal_Error whal_SdhcSpi_Deinit(whal_Block *blockDev) } whal_Error whal_SdhcSpi_Read(whal_Block *blockDev, uint32_t block, - uint8_t *data, uint32_t blockCount) + void *data, uint32_t blockCount) { + uint8_t *dataBuf = (uint8_t *)data; whal_SdhcSpi_Cfg *cfg; whal_Error err; uint8_t r1; @@ -309,7 +310,7 @@ whal_Error whal_SdhcSpi_Read(whal_Block *blockDev, uint32_t block, } err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, - data + (i * WHAL_SDHC_SPI_BLOCK_SZ), + dataBuf + (i * WHAL_SDHC_SPI_BLOCK_SZ), WHAL_SDHC_SPI_BLOCK_SZ); if (err) break; @@ -334,8 +335,9 @@ whal_Error whal_SdhcSpi_Read(whal_Block *blockDev, uint32_t block, } whal_Error whal_SdhcSpi_Write(whal_Block *blockDev, uint32_t block, - const uint8_t *data, uint32_t blockCount) + const void *data, uint32_t blockCount) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_SdhcSpi_Cfg *cfg; whal_Error err; uint8_t r1; @@ -379,7 +381,7 @@ whal_Error whal_SdhcSpi_Write(whal_Block *blockDev, uint32_t block, if (err) break; err = whal_Spi_SendRecv(cfg->spiDev, - data + (i * WHAL_SDHC_SPI_BLOCK_SZ), + dataBuf + (i * WHAL_SDHC_SPI_BLOCK_SZ), WHAL_SDHC_SPI_BLOCK_SZ, NULL, 0); if (err) break; diff --git a/src/eth/eth.c b/src/eth/eth.c index 070a296..63db364 100644 --- a/src/eth/eth.c +++ b/src/eth/eth.c @@ -30,7 +30,7 @@ whal_Error whal_Eth_Stop(whal_Eth *ethDev) return ethDev->driver->Stop(ethDev); } -whal_Error whal_Eth_Send(whal_Eth *ethDev, const uint8_t *frame, +whal_Error whal_Eth_Send(whal_Eth *ethDev, const void *frame, size_t len) { if (!ethDev || !ethDev->driver || !ethDev->driver->Send || !frame) @@ -38,7 +38,7 @@ whal_Error whal_Eth_Send(whal_Eth *ethDev, const uint8_t *frame, return ethDev->driver->Send(ethDev, frame, len); } -whal_Error whal_Eth_Recv(whal_Eth *ethDev, uint8_t *frame, size_t *len) +whal_Error whal_Eth_Recv(whal_Eth *ethDev, void *frame, size_t *len) { if (!ethDev || !ethDev->driver || !ethDev->driver->Recv || !frame || !len) return WHAL_EINVAL; diff --git a/src/eth/stm32h5_eth.c b/src/eth/stm32h5_eth.c index 3c8c07e..82f0a7d 100644 --- a/src/eth/stm32h5_eth.c +++ b/src/eth/stm32h5_eth.c @@ -292,9 +292,10 @@ whal_Error whal_Stm32h5Eth_Stop(whal_Eth *ethDev) return WHAL_SUCCESS; } -whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const uint8_t *frame, +whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const void *frame, size_t len) { + const uint8_t *frameBuf = (const uint8_t *)frame; whal_Stm32h5Eth_Cfg *cfg; whal_Stm32h5Eth_TxDesc *desc; size_t base; @@ -318,7 +319,7 @@ whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const uint8_t *frame, /* Copy frame into TX buffer */ uint8_t *txBuf = cfg->txBufs + idx * cfg->txBufSize; for (size_t i = 0; i < len; i++) - txBuf[i] = frame[i]; + txBuf[i] = frameBuf[i]; /* Set up descriptor */ desc->des[0] = (uintptr_t)txBuf; @@ -336,9 +337,10 @@ whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const uint8_t *frame, return WHAL_SUCCESS; } -whal_Error whal_Stm32h5Eth_Recv(whal_Eth *ethDev, uint8_t *frame, +whal_Error whal_Stm32h5Eth_Recv(whal_Eth *ethDev, void *frame, size_t *len) { + uint8_t *frameBuf = (uint8_t *)frame; whal_Stm32h5Eth_Cfg *cfg; whal_Stm32h5Eth_RxDesc *desc; size_t base; @@ -378,7 +380,7 @@ whal_Error whal_Stm32h5Eth_Recv(whal_Eth *ethDev, uint8_t *frame, /* Copy frame data */ uint8_t *rxBuf = (uint8_t *)(cfg->rxBufs + idx * cfg->rxBufSize); for (size_t i = 0; i < pktLen; i++) - frame[i] = rxBuf[i]; + frameBuf[i] = rxBuf[i]; *len = pktLen; /* Re-arm descriptor for DMA */ diff --git a/src/flash/flash.c b/src/flash/flash.c index 6070747..e6a5899 100644 --- a/src/flash/flash.c +++ b/src/flash/flash.c @@ -38,7 +38,7 @@ inline whal_Error whal_Flash_Unlock(whal_Flash *flashDev, size_t addr, size_t le return flashDev->driver->Unlock(flashDev, addr, len); } -inline whal_Error whal_Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +inline whal_Error whal_Flash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz) { if (!flashDev || !flashDev->driver || !flashDev->driver->Read || !data) { @@ -48,7 +48,7 @@ inline whal_Error whal_Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *da return flashDev->driver->Read(flashDev, addr, data, dataSz); } -inline whal_Error whal_Flash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +inline whal_Error whal_Flash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz) { if (!flashDev || !flashDev->driver || !flashDev->driver->Write || !data) { diff --git a/src/flash/pic32cz_flash.c b/src/flash/pic32cz_flash.c index e9c5008..4ba946b 100644 --- a/src/flash/pic32cz_flash.c +++ b/src/flash/pic32cz_flash.c @@ -242,9 +242,10 @@ whal_Error whal_Pic32czFlash_Unlock(whal_Flash *flashDev, size_t addr, size_t le return WHAL_SUCCESS; } -whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; const whal_Regmap *reg; whal_Pic32czFlash_Cfg *cfg; uint8_t *flashAddr = (uint8_t *)addr; @@ -265,7 +266,7 @@ whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *da /* Flash is memory-mapped; read directly */ for (i = 0; i < dataSz; i++) { - data[i] = flashAddr[i]; + dataBuf[i] = flashAddr[i]; } whal_Pic32czFlash_MutexUnlock(reg); @@ -273,9 +274,10 @@ whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *da return WHAL_SUCCESS; } -whal_Error whal_Pic32czFlash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +whal_Error whal_Pic32czFlash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; const whal_Regmap *reg; whal_Pic32czFlash_Cfg *cfg; const uint32_t *src; @@ -294,7 +296,7 @@ whal_Error whal_Pic32czFlash_Write(whal_Flash *flashDev, size_t addr, const uint } reg = &flashDev->regmap; - src = (const uint32_t *)data; + src = (const uint32_t *)dataBuf; err = whal_Pic32czFlash_MutexLock(reg, cfg->timeout); diff --git a/src/flash/spi_nor.c b/src/flash/spi_nor.c index 76ddc7f..e9fa97b 100644 --- a/src/flash/spi_nor.c +++ b/src/flash/spi_nor.c @@ -294,9 +294,10 @@ whal_Error whal_SpiNor_Unlock(whal_Flash *flashDev, size_t addr, size_t len) return err; } -whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[4]; whal_Error err; @@ -324,7 +325,7 @@ whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, goto cleanup; err = whal_Spi_SendRecv(cfg->spiDev, frame, 4, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data, dataSz); + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf, dataSz); SpiNor_CsDeassert(cfg); cleanup: @@ -333,8 +334,9 @@ whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, } whal_Error whal_SpiNor3b_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz) + const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[4]; whal_Error err; @@ -380,7 +382,7 @@ whal_Error whal_SpiNor3b_Write(whal_Flash *flashDev, size_t addr, break; err = whal_Spi_SendRecv(cfg->spiDev, frame, 4, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, data + offset, chunk, + err = whal_Spi_SendRecv(cfg->spiDev, dataBuf + offset, chunk, NULL, 0); SpiNor_CsDeassert(cfg); if (err) @@ -598,8 +600,9 @@ whal_Error whal_SpiNor_EraseChip(whal_Flash *flashDev, size_t addr, /* --- Fast Read (3-byte addr) --- */ whal_Error whal_SpiNor3b_ReadFast(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[5]; whal_Error err; @@ -628,7 +631,7 @@ whal_Error whal_SpiNor3b_ReadFast(whal_Flash *flashDev, size_t addr, goto cleanup; err = whal_Spi_SendRecv(cfg->spiDev, frame, 5, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data, dataSz); + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf, dataSz); SpiNor_CsDeassert(cfg); cleanup: @@ -660,8 +663,9 @@ whal_Error whal_SpiNor4bMode_Init(whal_Flash *flashDev) } whal_Error whal_SpiNor4b_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[5]; whal_Error err; @@ -688,7 +692,7 @@ whal_Error whal_SpiNor4b_Read(whal_Flash *flashDev, size_t addr, goto cleanup; err = whal_Spi_SendRecv(cfg->spiDev, frame, 5, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data, dataSz); + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf, dataSz); SpiNor_CsDeassert(cfg); cleanup: @@ -697,8 +701,9 @@ whal_Error whal_SpiNor4b_Read(whal_Flash *flashDev, size_t addr, } whal_Error whal_SpiNor4b_ReadFast(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[6]; whal_Error err; @@ -726,7 +731,7 @@ whal_Error whal_SpiNor4b_ReadFast(whal_Flash *flashDev, size_t addr, goto cleanup; err = whal_Spi_SendRecv(cfg->spiDev, frame, 6, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data, dataSz); + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf, dataSz); SpiNor_CsDeassert(cfg); cleanup: @@ -735,8 +740,9 @@ whal_Error whal_SpiNor4b_ReadFast(whal_Flash *flashDev, size_t addr, } whal_Error whal_SpiNor4b_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz) + const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[5]; whal_Error err; @@ -777,7 +783,7 @@ whal_Error whal_SpiNor4b_Write(whal_Flash *flashDev, size_t addr, break; err = whal_Spi_SendRecv(cfg->spiDev, frame, 5, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, data + offset, chunk, + err = whal_Spi_SendRecv(cfg->spiDev, dataBuf + offset, chunk, NULL, 0); SpiNor_CsDeassert(cfg); if (err) @@ -906,8 +912,9 @@ whal_Error whal_SpiNor4b_Erase64k(whal_Flash *flashDev, size_t addr, /* --- 4-byte address mode (0xB7) variants --- */ whal_Error whal_SpiNor4bMode_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[5]; whal_Error err; @@ -934,7 +941,7 @@ whal_Error whal_SpiNor4bMode_Read(whal_Flash *flashDev, size_t addr, goto cleanup; err = whal_Spi_SendRecv(cfg->spiDev, frame, 5, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data, dataSz); + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf, dataSz); SpiNor_CsDeassert(cfg); cleanup: @@ -943,8 +950,9 @@ whal_Error whal_SpiNor4bMode_Read(whal_Flash *flashDev, size_t addr, } whal_Error whal_SpiNor4bMode_ReadFast(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[6]; whal_Error err; @@ -972,7 +980,7 @@ whal_Error whal_SpiNor4bMode_ReadFast(whal_Flash *flashDev, size_t addr, goto cleanup; err = whal_Spi_SendRecv(cfg->spiDev, frame, 6, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data, dataSz); + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf, dataSz); SpiNor_CsDeassert(cfg); cleanup: @@ -981,8 +989,9 @@ whal_Error whal_SpiNor4bMode_ReadFast(whal_Flash *flashDev, size_t addr, } whal_Error whal_SpiNor4bMode_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz) + const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[5]; whal_Error err; @@ -1023,7 +1032,7 @@ whal_Error whal_SpiNor4bMode_Write(whal_Flash *flashDev, size_t addr, break; err = whal_Spi_SendRecv(cfg->spiDev, frame, 5, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, data + offset, chunk, + err = whal_Spi_SendRecv(cfg->spiDev, dataBuf + offset, chunk, NULL, 0); SpiNor_CsDeassert(cfg); if (err) @@ -1230,8 +1239,9 @@ static whal_Error SpiNor_SetEAR(whal_SpiNor_Cfg *cfg, size_t addr) } whal_Error whal_SpiNor4bExReg_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[4]; whal_Error err; @@ -1273,7 +1283,7 @@ whal_Error whal_SpiNor4bExReg_Read(whal_Flash *flashDev, size_t addr, break; err = whal_Spi_SendRecv(cfg->spiDev, frame, 4, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data + offset, + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf + offset, chunk); SpiNor_CsDeassert(cfg); if (err) @@ -1287,8 +1297,9 @@ whal_Error whal_SpiNor4bExReg_Read(whal_Flash *flashDev, size_t addr, } whal_Error whal_SpiNor4bExReg_ReadFast(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[5]; whal_Error err; @@ -1331,7 +1342,7 @@ whal_Error whal_SpiNor4bExReg_ReadFast(whal_Flash *flashDev, size_t addr, break; err = whal_Spi_SendRecv(cfg->spiDev, frame, 5, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, data + offset, + err = whal_Spi_SendRecv(cfg->spiDev, NULL, 0, dataBuf + offset, chunk); SpiNor_CsDeassert(cfg); if (err) @@ -1345,8 +1356,9 @@ whal_Error whal_SpiNor4bExReg_ReadFast(whal_Flash *flashDev, size_t addr, } whal_Error whal_SpiNor4bExReg_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz) + const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_SpiNor_Cfg *cfg; uint8_t frame[4]; whal_Error err; @@ -1391,7 +1403,7 @@ whal_Error whal_SpiNor4bExReg_Write(whal_Flash *flashDev, size_t addr, break; err = whal_Spi_SendRecv(cfg->spiDev, frame, 4, NULL, 0); if (!err) - err = whal_Spi_SendRecv(cfg->spiDev, data + offset, chunk, + err = whal_Spi_SendRecv(cfg->spiDev, dataBuf + offset, chunk, NULL, 0); SpiNor_CsDeassert(cfg); if (err) diff --git a/src/flash/stm32c0_flash.c b/src/flash/stm32c0_flash.c index 09e4422..dc4cf2e 100644 --- a/src/flash/stm32c0_flash.c +++ b/src/flash/stm32c0_flash.c @@ -142,15 +142,27 @@ whal_Error whal_Stm32c0Flash_Unlock(whal_Flash *flashDev, size_t addr, size_t le return WHAL_SUCCESS; } -whal_Error whal_Stm32c0Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_Stm32c0Flash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz) { - (void)flashDev; + whal_Stm32c0Flash_Cfg *cfg; + uint8_t *dataBuf = (uint8_t *)data; + + if (!flashDev || !flashDev->cfg || !data) + return WHAL_EINVAL; + + if (dataSz == 0) + return WHAL_SUCCESS; + + cfg = flashDev->cfg; + + if (addr < cfg->startAddr || addr + dataSz > cfg->startAddr + cfg->size) + return WHAL_EINVAL; /* Flash is memory-mapped, so reading is a simple memory copy */ uint8_t *flashAddr = (uint8_t *)addr; for (size_t i = 0; i < dataSz; ++i) { - data[i] = flashAddr[i]; + dataBuf[i] = flashAddr[i]; } return WHAL_SUCCESS; } @@ -257,10 +269,10 @@ static whal_Error whal_Stm32c0Flash_WriteOrErase(whal_Flash *flashDev, size_t ad return err; } -whal_Error whal_Stm32c0Flash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +whal_Error whal_Stm32c0Flash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz) { - return whal_Stm32c0Flash_WriteOrErase(flashDev, addr, data, dataSz, 1); + return whal_Stm32c0Flash_WriteOrErase(flashDev, addr, (const uint8_t *)data, dataSz, 1); } whal_Error whal_Stm32c0Flash_Erase(whal_Flash *flashDev, size_t addr, diff --git a/src/flash/stm32f4_flash.c b/src/flash/stm32f4_flash.c index 2cf5434..7ffb7a0 100644 --- a/src/flash/stm32f4_flash.c +++ b/src/flash/stm32f4_flash.c @@ -128,8 +128,9 @@ whal_Error whal_Stm32f4Flash_Unlock(whal_Flash *flashDev, size_t addr, size_t le } whal_Error whal_Stm32f4Flash_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_Stm32f4Flash_Cfg *cfg; if (!flashDev || !flashDev->cfg || !data) @@ -142,14 +143,15 @@ whal_Error whal_Stm32f4Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *flashAddr = (uint8_t *)addr; for (size_t i = 0; i < dataSz; ++i) - data[i] = flashAddr[i]; + dataBuf[i] = flashAddr[i]; return WHAL_SUCCESS; } whal_Error whal_Stm32f4Flash_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz) + const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_Stm32f4Flash_Cfg *cfg; const whal_Regmap *regmap; whal_Error err = WHAL_SUCCESS; @@ -185,7 +187,7 @@ whal_Error whal_Stm32f4Flash_Write(whal_Flash *flashDev, size_t addr, /* Program data in 32-bit word chunks */ for (size_t i = 0; i < dataSz; i += 4) { uint32_t *flashAddr = (uint32_t *)(addr + i); - const uint32_t *dataAddr = (const uint32_t *)(data + i); + const uint32_t *dataAddr = (const uint32_t *)(dataBuf + i); *flashAddr = *dataAddr; diff --git a/src/flash/stm32h5_flash.c b/src/flash/stm32h5_flash.c index 5b6e01d..a60007a 100644 --- a/src/flash/stm32h5_flash.c +++ b/src/flash/stm32h5_flash.c @@ -159,8 +159,9 @@ whal_Error whal_Stm32h5Flash_Unlock(whal_Flash *flashDev, size_t addr, } whal_Error whal_Stm32h5Flash_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz) + void *data, size_t dataSz) { + uint8_t *dataBuf = (uint8_t *)data; whal_Stm32h5Flash_Cfg *cfg; if (!flashDev || !flashDev->cfg || !data) @@ -173,7 +174,7 @@ whal_Error whal_Stm32h5Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *flashAddr = (uint8_t *)addr; for (size_t i = 0; i < dataSz; ++i) - data[i] = flashAddr[i]; + dataBuf[i] = flashAddr[i]; return WHAL_SUCCESS; } @@ -196,8 +197,9 @@ static whal_Error CheckErrors(size_t base) } whal_Error whal_Stm32h5Flash_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz) + const void *data, size_t dataSz) { + const uint8_t *dataBuf = (const uint8_t *)data; whal_Stm32h5Flash_Cfg *cfg; const whal_Regmap *regmap; whal_Error err; @@ -230,7 +232,7 @@ whal_Error whal_Stm32h5Flash_Write(whal_Flash *flashDev, size_t addr, /* Program data in 128-bit (16 byte) flash-word chunks */ for (size_t i = 0; i < dataSz; i += 16) { uint32_t *flashAddr = (uint32_t *)(addr + i); - const uint32_t *dataAddr = (const uint32_t *)(data + i); + const uint32_t *dataAddr = (const uint32_t *)(dataBuf + i); flashAddr[0] = dataAddr[0]; flashAddr[1] = dataAddr[1]; diff --git a/src/flash/stm32wb_flash.c b/src/flash/stm32wb_flash.c index 02c44f0..50747cd 100644 --- a/src/flash/stm32wb_flash.c +++ b/src/flash/stm32wb_flash.c @@ -145,15 +145,27 @@ whal_Error whal_Stm32wbFlash_Unlock(whal_Flash *flashDev, size_t addr, size_t le return WHAL_SUCCESS; } -whal_Error whal_Stm32wbFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_Stm32wbFlash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz) { - (void)flashDev; + whal_Stm32wbFlash_Cfg *cfg; + uint8_t *dataBuf = (uint8_t *)data; + + if (!flashDev || !flashDev->cfg || !data) + return WHAL_EINVAL; + + if (dataSz == 0) + return WHAL_SUCCESS; + + cfg = flashDev->cfg; + + if (addr < cfg->startAddr || addr + dataSz > cfg->startAddr + cfg->size) + return WHAL_EINVAL; /* Flash is memory-mapped, so reading is a simple memory copy */ uint8_t *flashAddr = (uint8_t *)addr; for (size_t i = 0; i < dataSz; ++i) { - data[i] = flashAddr[i]; + dataBuf[i] = flashAddr[i]; } return WHAL_SUCCESS; } @@ -259,10 +271,10 @@ static whal_Error whal_Stm32wbFlash_WriteOrErase(whal_Flash *flashDev, size_t ad return err; } -whal_Error whal_Stm32wbFlash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +whal_Error whal_Stm32wbFlash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz) { - return whal_Stm32wbFlash_WriteOrErase(flashDev, addr, data, dataSz, 1); + return whal_Stm32wbFlash_WriteOrErase(flashDev, addr, (const uint8_t *)data, dataSz, 1); } whal_Error whal_Stm32wbFlash_Erase(whal_Flash *flashDev, size_t addr, diff --git a/src/rng/rng.c b/src/rng/rng.c index 65e46b5..2682ab4 100644 --- a/src/rng/rng.c +++ b/src/rng/rng.c @@ -20,7 +20,7 @@ inline whal_Error whal_Rng_Deinit(whal_Rng *rngDev) return rngDev->driver->Deinit(rngDev); } -inline whal_Error whal_Rng_Generate(whal_Rng *rngDev, uint8_t *rngData, size_t rngDataSz) +inline whal_Error whal_Rng_Generate(whal_Rng *rngDev, void *rngData, size_t rngDataSz) { if (!rngDev || !rngDev->driver || !rngDev->driver->Generate || !rngData) { return WHAL_EINVAL; diff --git a/src/rng/stm32h5_rng.c b/src/rng/stm32h5_rng.c index 2ee4a47..6879e3c 100644 --- a/src/rng/stm32h5_rng.c +++ b/src/rng/stm32h5_rng.c @@ -103,9 +103,10 @@ whal_Error whal_Stm32h5Rng_Deinit(whal_Rng *rngDev) return WHAL_SUCCESS; } -whal_Error whal_Stm32h5Rng_Generate(whal_Rng *rngDev, uint8_t *rngData, +whal_Error whal_Stm32h5Rng_Generate(whal_Rng *rngDev, void *rngData, size_t rngDataSz) { + uint8_t *rngBuf = (uint8_t *)rngData; whal_Error err = WHAL_SUCCESS; whal_Stm32h5Rng_Cfg *cfg; const whal_Regmap *reg; @@ -150,7 +151,7 @@ whal_Error whal_Stm32h5Rng_Generate(whal_Rng *rngDev, uint8_t *rngData, /* Copy bytes into output buffer */ for (size_t i = 0; i < 4 && offset < rngDataSz; i++, offset++) - rngData[offset] = (uint8_t)(rnd >> (i * 8)); + rngBuf[offset] = (uint8_t)(rnd >> (i * 8)); } exit: diff --git a/src/rng/stm32wb_rng.c b/src/rng/stm32wb_rng.c index 7fccf09..1c2a36c 100644 --- a/src/rng/stm32wb_rng.c +++ b/src/rng/stm32wb_rng.c @@ -59,8 +59,9 @@ whal_Error whal_Stm32wbRng_Deinit(whal_Rng *rngDev) return WHAL_SUCCESS; } -whal_Error whal_Stm32wbRng_Generate(whal_Rng *rngDev, uint8_t *rngData, size_t rngDataSz) +whal_Error whal_Stm32wbRng_Generate(whal_Rng *rngDev, void *rngData, size_t rngDataSz) { + uint8_t *rngBuf = (uint8_t *)rngData; whal_Error err = WHAL_SUCCESS; whal_Stm32wbRng_Cfg *cfg; const whal_Regmap *reg; @@ -111,7 +112,7 @@ whal_Error whal_Stm32wbRng_Generate(whal_Rng *rngDev, uint8_t *rngData, size_t r /* Copy bytes into output buffer */ for (size_t i = 0; i < 4 && offset < rngDataSz; i++, offset++) { - rngData[offset] = (uint8_t)(rnd >> (i * 8)); + rngBuf[offset] = (uint8_t)(rnd >> (i * 8)); } } diff --git a/src/spi/spi.c b/src/spi/spi.c index 5b28519..a259194 100644 --- a/src/spi/spi.c +++ b/src/spi/spi.c @@ -38,7 +38,7 @@ inline whal_Error whal_Spi_EndCom(whal_Spi *spiDev) return spiDev->driver->EndCom(spiDev); } -inline whal_Error whal_Spi_SendRecv(whal_Spi *spiDev, const uint8_t *tx, size_t txLen, uint8_t *rx, size_t rxLen) +inline whal_Error whal_Spi_SendRecv(whal_Spi *spiDev, const void *tx, size_t txLen, void *rx, size_t rxLen) { if (!spiDev || !spiDev->driver || !spiDev->driver->SendRecv) { return WHAL_EINVAL; diff --git a/src/spi/stm32f4_spi.c b/src/spi/stm32f4_spi.c index f376aec..16e1dd4 100644 --- a/src/spi/stm32f4_spi.c +++ b/src/spi/stm32f4_spi.c @@ -170,9 +170,11 @@ whal_Error whal_Stm32f4Spi_EndCom(whal_Spi *spiDev) } whal_Error whal_Stm32f4Spi_SendRecv(whal_Spi *spiDev, - const uint8_t *tx, size_t txLen, - uint8_t *rx, size_t rxLen) + const void *tx, size_t txLen, + void *rx, size_t rxLen) { + const uint8_t *txBuf = (const uint8_t *)tx; + uint8_t *rxBuf = (uint8_t *)rx; const whal_Regmap *reg; whal_Stm32f4Spi_Cfg *cfg; size_t totalLen; @@ -195,7 +197,7 @@ whal_Error whal_Stm32f4Spi_SendRecv(whal_Spi *spiDev, return err; /* Write TX data, pad with 0xFF when tx is exhausted or NULL */ - txByte = (tx && i < txLen) ? tx[i] : 0xFF; + txByte = (txBuf && i < txLen) ? txBuf[i] : 0xFF; *(volatile uint8_t *)(reg->base + SPI_DR_REG) = txByte; /* Wait for RX byte */ @@ -206,8 +208,8 @@ whal_Error whal_Stm32f4Spi_SendRecv(whal_Spi *spiDev, return err; /* Store or discard received byte */ - if (rx && i < rxLen) - rx[i] = *(volatile uint8_t *)(reg->base + SPI_DR_REG); + if (rxBuf && i < rxLen) + rxBuf[i] = *(volatile uint8_t *)(reg->base + SPI_DR_REG); else (void)*(volatile uint8_t *)(reg->base + SPI_DR_REG); } diff --git a/src/spi/stm32h5_spi.c b/src/spi/stm32h5_spi.c index 862e2f3..150f2d0 100644 --- a/src/spi/stm32h5_spi.c +++ b/src/spi/stm32h5_spi.c @@ -222,9 +222,11 @@ whal_Error whal_Stm32h5Spi_EndCom(whal_Spi *spiDev) } whal_Error whal_Stm32h5Spi_SendRecv(whal_Spi *spiDev, - const uint8_t *tx, size_t txLen, - uint8_t *rx, size_t rxLen) + const void *tx, size_t txLen, + void *rx, size_t rxLen) { + const uint8_t *txBuf = (const uint8_t *)tx; + uint8_t *rxBuf = (uint8_t *)rx; const whal_Regmap *reg; whal_Stm32h5Spi_Cfg *cfg; size_t totalLen; @@ -247,7 +249,7 @@ whal_Error whal_Stm32h5Spi_SendRecv(whal_Spi *spiDev, return err; /* Write TX data, pad with 0xFF when exhausted */ - txByte = (tx && i < txLen) ? tx[i] : 0xFF; + txByte = (txBuf && i < txLen) ? txBuf[i] : 0xFF; *(volatile uint8_t *)(reg->base + SPI_TXDR_REG) = txByte; /* Wait for RXP (RX FIFO has data) */ @@ -258,8 +260,8 @@ whal_Error whal_Stm32h5Spi_SendRecv(whal_Spi *spiDev, return err; /* Read RX byte */ - if (rx && i < rxLen) - rx[i] = *(volatile uint8_t *)(reg->base + SPI_RXDR_REG); + if (rxBuf && i < rxLen) + rxBuf[i] = *(volatile uint8_t *)(reg->base + SPI_RXDR_REG); else (void)*(volatile uint8_t *)(reg->base + SPI_RXDR_REG); } diff --git a/src/spi/stm32wb_spi.c b/src/spi/stm32wb_spi.c index b4b6839..b08b8d4 100644 --- a/src/spi/stm32wb_spi.c +++ b/src/spi/stm32wb_spi.c @@ -189,9 +189,11 @@ whal_Error whal_Stm32wbSpi_EndCom(whal_Spi *spiDev) } whal_Error whal_Stm32wbSpi_SendRecv(whal_Spi *spiDev, - const uint8_t *tx, size_t txLen, - uint8_t *rx, size_t rxLen) + const void *tx, size_t txLen, + void *rx, size_t rxLen) { + const uint8_t *txBuf = (const uint8_t *)tx; + uint8_t *rxBuf = (uint8_t *)rx; const whal_Regmap *reg; whal_Stm32wbSpi_Cfg *cfg; size_t totalLen; @@ -215,7 +217,7 @@ whal_Error whal_Stm32wbSpi_SendRecv(whal_Spi *spiDev, return err; /* Write TX data, pad with 0xFF when tx is exhausted or NULL */ - txByte = (tx && i < txLen) ? tx[i] : 0xFF; + txByte = (txBuf && i < txLen) ? txBuf[i] : 0xFF; *(volatile uint8_t *)(reg->base + SPI_DR_REG) = txByte; /* Wait for RX byte */ @@ -226,8 +228,8 @@ whal_Error whal_Stm32wbSpi_SendRecv(whal_Spi *spiDev, return err; /* Store or discard received byte */ - if (rx && i < rxLen) - rx[i] = *(volatile uint8_t *)(reg->base + SPI_DR_REG); + if (rxBuf && i < rxLen) + rxBuf[i] = *(volatile uint8_t *)(reg->base + SPI_DR_REG); else (void)*(volatile uint8_t *)(reg->base + SPI_DR_REG); } diff --git a/tests/core/test_dispatch.c b/tests/core/test_dispatch.c index 16c6e3f..c8dfb32 100644 --- a/tests/core/test_dispatch.c +++ b/tests/core/test_dispatch.c @@ -51,8 +51,8 @@ static whal_Error MockFlashInit(whal_Flash *d) { (void)d; return WHAL_SUCCESS; } static whal_Error MockFlashDeinit(whal_Flash *d) { (void)d; return WHAL_SUCCESS; } static whal_Error MockFlashLock(whal_Flash *d, size_t a, size_t l) { (void)d; (void)a; (void)l; return WHAL_SUCCESS; } static whal_Error MockFlashUnlock(whal_Flash *d, size_t a, size_t l) { (void)d; (void)a; (void)l; return WHAL_SUCCESS; } -static whal_Error MockFlashRead(whal_Flash *d, size_t a, uint8_t *data, size_t sz) { (void)d; (void)a; (void)data; (void)sz; return WHAL_SUCCESS; } -static whal_Error MockFlashWrite(whal_Flash *d, size_t a, const uint8_t *data, size_t sz) { (void)d; (void)a; (void)data; (void)sz; return WHAL_SUCCESS; } +static whal_Error MockFlashRead(whal_Flash *d, size_t a, void *data, size_t sz) { (void)d; (void)a; (void)data; (void)sz; return WHAL_SUCCESS; } +static whal_Error MockFlashWrite(whal_Flash *d, size_t a, const void *data, size_t sz) { (void)d; (void)a; (void)data; (void)sz; return WHAL_SUCCESS; } static whal_Error MockFlashErase(whal_Flash *d, size_t a, size_t sz) { (void)d; (void)a; (void)sz; return WHAL_SUCCESS; } static const whal_FlashDriver mockFlashDriver = { @@ -81,7 +81,7 @@ static const whal_TimerDriver mockTimerDriver = { static whal_Error MockRngInit(whal_Rng *d) { (void)d; return WHAL_SUCCESS; } static whal_Error MockRngDeinit(whal_Rng *d) { (void)d; return WHAL_SUCCESS; } -static whal_Error MockRngGenerate(whal_Rng *d, uint8_t *data, size_t sz) { (void)d; (void)data; (void)sz; return WHAL_SUCCESS; } +static whal_Error MockRngGenerate(whal_Rng *d, void *data, size_t sz) { (void)d; (void)data; (void)sz; return WHAL_SUCCESS; } static const whal_RngDriver mockRngDriver = { .Init = MockRngInit, @@ -264,7 +264,7 @@ static whal_Error MockSpiInit(whal_Spi *d) { (void)d; return WHAL_SUCCESS; } static whal_Error MockSpiDeinit(whal_Spi *d) { (void)d; return WHAL_SUCCESS; } static whal_Error MockSpiStartCom(whal_Spi *d, whal_Spi_ComCfg *c) { (void)d; (void)c; return WHAL_SUCCESS; } static whal_Error MockSpiEndCom(whal_Spi *d) { (void)d; return WHAL_SUCCESS; } -static whal_Error MockSpiSendRecv(whal_Spi *d, const uint8_t *tx, size_t txLen, uint8_t *rx, size_t rxLen) { (void)d; (void)tx; (void)txLen; (void)rx; (void)rxLen; return WHAL_SUCCESS; } +static whal_Error MockSpiSendRecv(whal_Spi *d, const void *tx, size_t txLen, void *rx, size_t rxLen) { (void)d; (void)tx; (void)txLen; (void)rx; (void)rxLen; return WHAL_SUCCESS; } static const whal_SpiDriver mockSpiDriver = { .Init = MockSpiInit, @@ -307,8 +307,8 @@ static void Test_Spi_ValidDispatch(void) static whal_Error MockBlockInit(whal_Block *d) { (void)d; return WHAL_SUCCESS; } static whal_Error MockBlockDeinit(whal_Block *d) { (void)d; return WHAL_SUCCESS; } -static whal_Error MockBlockRead(whal_Block *d, uint32_t b, uint8_t *data, uint32_t c) { (void)d; (void)b; (void)data; (void)c; return WHAL_SUCCESS; } -static whal_Error MockBlockWrite(whal_Block *d, uint32_t b, const uint8_t *data, uint32_t c) { (void)d; (void)b; (void)data; (void)c; return WHAL_SUCCESS; } +static whal_Error MockBlockRead(whal_Block *d, uint32_t b, void *data, uint32_t c) { (void)d; (void)b; (void)data; (void)c; return WHAL_SUCCESS; } +static whal_Error MockBlockWrite(whal_Block *d, uint32_t b, const void *data, uint32_t c) { (void)d; (void)b; (void)data; (void)c; return WHAL_SUCCESS; } static whal_Error MockBlockErase(whal_Block *d, uint32_t b, uint32_t c) { (void)d; (void)b; (void)c; return WHAL_SUCCESS; } static const whal_BlockDriver mockBlockDriver = { diff --git a/wolfHAL/block/block.h b/wolfHAL/block/block.h index d9611b0..75fb377 100644 --- a/wolfHAL/block/block.h +++ b/wolfHAL/block/block.h @@ -26,9 +26,9 @@ typedef struct { /* Release any resources owned by the block driver. */ whal_Error (*Deinit)(whal_Block *blockDev); /* Read blocks from the device into a buffer. */ - whal_Error (*Read)(whal_Block *blockDev, uint32_t block, uint8_t *data, uint32_t blockCount); + whal_Error (*Read)(whal_Block *blockDev, uint32_t block, void *data, uint32_t blockCount); /* Write data to the device starting at @p block. */ - whal_Error (*Write)(whal_Block *blockDev, uint32_t block, const uint8_t *data, uint32_t blockCount); + whal_Error (*Write)(whal_Block *blockDev, uint32_t block, const void *data, uint32_t blockCount); /* Erase blocks on the device starting at @p block. */ whal_Error (*Erase)(whal_Block *blockDev, uint32_t block, uint32_t blockCount); } whal_BlockDriver; @@ -86,7 +86,7 @@ whal_Error whal_Block_Deinit(whal_Block *blockDev); * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer or missing driver function. */ -whal_Error whal_Block_Read(whal_Block *blockDev, uint32_t block, uint8_t *data, +whal_Error whal_Block_Read(whal_Block *blockDev, uint32_t block, void *data, uint32_t blockCount); /* * @brief Write data to a block device. @@ -100,7 +100,7 @@ whal_Error whal_Block_Read(whal_Block *blockDev, uint32_t block, uint8_t *data, * @retval WHAL_EINVAL Null pointer or missing driver function. */ whal_Error whal_Block_Write(whal_Block *blockDev, uint32_t block, - const uint8_t *data, uint32_t blockCount); + const void *data, uint32_t blockCount); /* * @brief Erase blocks on a block device. * diff --git a/wolfHAL/block/sdhc_spi.h b/wolfHAL/block/sdhc_spi.h index 754ce56..3ab4bd2 100644 --- a/wolfHAL/block/sdhc_spi.h +++ b/wolfHAL/block/sdhc_spi.h @@ -37,9 +37,9 @@ extern const whal_BlockDriver whal_SdhcSpi_Driver; whal_Error whal_SdhcSpi_Init(whal_Block *blockDev); whal_Error whal_SdhcSpi_Deinit(whal_Block *blockDev); whal_Error whal_SdhcSpi_Read(whal_Block *blockDev, uint32_t block, - uint8_t *data, uint32_t blockCount); + void *data, uint32_t blockCount); whal_Error whal_SdhcSpi_Write(whal_Block *blockDev, uint32_t block, - const uint8_t *data, uint32_t blockCount); + const void *data, uint32_t blockCount); whal_Error whal_SdhcSpi_Erase(whal_Block *blockDev, uint32_t block, uint32_t blockCount); diff --git a/wolfHAL/eth/eth.h b/wolfHAL/eth/eth.h index 49d6077..07a09d0 100644 --- a/wolfHAL/eth/eth.h +++ b/wolfHAL/eth/eth.h @@ -38,9 +38,9 @@ typedef struct { /* Disable MAC TX/RX and stop DMA engines. */ whal_Error (*Stop)(whal_Eth *ethDev); /* Transmit an Ethernet frame. */ - whal_Error (*Send)(whal_Eth *ethDev, const uint8_t *frame, size_t len); + whal_Error (*Send)(whal_Eth *ethDev, const void *frame, size_t len); /* Receive an Ethernet frame. */ - whal_Error (*Recv)(whal_Eth *ethDev, uint8_t *frame, size_t *len); + whal_Error (*Recv)(whal_Eth *ethDev, void *frame, size_t *len); /* Read a PHY register via MDIO. */ whal_Error (*MdioRead)(whal_Eth *ethDev, uint8_t phyAddr, uint8_t reg, uint16_t *val); @@ -138,7 +138,7 @@ whal_Error whal_Eth_Stop(whal_Eth *ethDev); * @retval WHAL_EINVAL Invalid arguments. * @retval WHAL_ENOTREADY No TX descriptor available. */ -whal_Error whal_Eth_Send(whal_Eth *ethDev, const uint8_t *frame, size_t len); +whal_Error whal_Eth_Send(whal_Eth *ethDev, const void *frame, size_t len); /* * @brief Receive an Ethernet frame. * @@ -150,7 +150,7 @@ whal_Error whal_Eth_Send(whal_Eth *ethDev, const uint8_t *frame, size_t len); * @retval WHAL_EINVAL Invalid arguments. * @retval WHAL_ENOTREADY No frame available. */ -whal_Error whal_Eth_Recv(whal_Eth *ethDev, uint8_t *frame, size_t *len); +whal_Error whal_Eth_Recv(whal_Eth *ethDev, void *frame, size_t *len); /* * @brief Read a PHY register via the MDIO bus. * diff --git a/wolfHAL/eth/stm32h5_eth.h b/wolfHAL/eth/stm32h5_eth.h index 469429d..7e3affe 100644 --- a/wolfHAL/eth/stm32h5_eth.h +++ b/wolfHAL/eth/stm32h5_eth.h @@ -114,7 +114,7 @@ whal_Error whal_Stm32h5Eth_Stop(whal_Eth *ethDev); * @retval WHAL_EINVAL Invalid arguments. * @retval WHAL_ENOTREADY No TX descriptor available. */ -whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const uint8_t *frame, +whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const void *frame, size_t len); /* @@ -132,7 +132,7 @@ whal_Error whal_Stm32h5Eth_Send(whal_Eth *ethDev, const uint8_t *frame, * @retval WHAL_EINVAL Invalid arguments. * @retval WHAL_ENOTREADY No frame available. */ -whal_Error whal_Stm32h5Eth_Recv(whal_Eth *ethDev, uint8_t *frame, +whal_Error whal_Stm32h5Eth_Recv(whal_Eth *ethDev, void *frame, size_t *len); /* diff --git a/wolfHAL/flash/flash.h b/wolfHAL/flash/flash.h index 0c0026a..d8fc702 100644 --- a/wolfHAL/flash/flash.h +++ b/wolfHAL/flash/flash.h @@ -26,9 +26,9 @@ typedef struct { /* Unlock a flash region to allow modification. */ whal_Error (*Unlock)(whal_Flash *flashDev, size_t addr, size_t len); /* Read data from flash into a buffer. */ - whal_Error (*Read)(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); + whal_Error (*Read)(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* Program a region of flash starting at @p addr. */ - whal_Error (*Write)(whal_Flash *flashDev, size_t addr, const uint8_t *data, size_t dataSz); + whal_Error (*Write)(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* Erase a flash range starting at @p addr. */ whal_Error (*Erase)(whal_Flash *flashDev, size_t addr, size_t dataSz); } whal_FlashDriver; @@ -110,7 +110,7 @@ whal_Error whal_Flash_Unlock(whal_Flash *flashDev, size_t addr, size_t len); * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer or missing driver function. */ -whal_Error whal_Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_Flash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Write data into flash. * @@ -122,7 +122,7 @@ whal_Error whal_Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, siz * @retval WHAL_SUCCESS Write accepted or completed. * @retval WHAL_EINVAL Null pointer, missing driver function, or bad arguments. */ -whal_Error whal_Flash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, size_t dataSz); +whal_Error whal_Flash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* * @brief Erase a region of flash. * diff --git a/wolfHAL/flash/pic32cz_flash.h b/wolfHAL/flash/pic32cz_flash.h index 3f27d07..da01fcb 100644 --- a/wolfHAL/flash/pic32cz_flash.h +++ b/wolfHAL/flash/pic32cz_flash.h @@ -88,7 +88,7 @@ whal_Error whal_Pic32czFlash_Unlock(whal_Flash *flashDev, size_t addr, size_t le * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Invalid arguments. */ -whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Write a block of data to flash. @@ -105,7 +105,7 @@ whal_Error whal_Pic32czFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *da * @retval WHAL_SUCCESS Program completed. * @retval WHAL_EINVAL Invalid arguments or alignment. */ -whal_Error whal_Pic32czFlash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +whal_Error whal_Pic32czFlash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* * @brief Erase flash pages covering the given range. diff --git a/wolfHAL/flash/spi_nor.h b/wolfHAL/flash/spi_nor.h index 00c31a0..d108f64 100644 --- a/wolfHAL/flash/spi_nor.h +++ b/wolfHAL/flash/spi_nor.h @@ -153,7 +153,7 @@ whal_Error whal_SpiNor_Unlock(whal_Flash *flashDev, size_t addr, size_t len); * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Read data using the Fast Read command (0x0B) with 3-byte address. @@ -169,7 +169,7 @@ whal_Error whal_SpiNor3b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor3b_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor3b_ReadFast(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Read — dedicated 4-byte address commands */ @@ -189,7 +189,7 @@ whal_Error whal_SpiNor3b_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t *da * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4b_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Read data using the dedicated 4-byte Fast Read command (0x0C). @@ -205,7 +205,7 @@ whal_Error whal_SpiNor4b_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4b_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4b_ReadFast(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Read — 4-byte address mode (after 0xB7) */ @@ -225,7 +225,7 @@ whal_Error whal_SpiNor4b_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t *da * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4bMode_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4bMode_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Read data using Fast Read (0x0B) in 4-byte address mode. @@ -241,7 +241,7 @@ whal_Error whal_SpiNor4bMode_Read(whal_Flash *flashDev, size_t addr, uint8_t *da * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4bMode_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4bMode_ReadFast(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Read — extended address register (bank select) */ @@ -262,7 +262,7 @@ whal_Error whal_SpiNor4bMode_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4bExReg_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4bExReg_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Read data using Fast Read (0x0B) with extended address register. @@ -278,7 +278,7 @@ whal_Error whal_SpiNor4bExReg_Read(whal_Flash *flashDev, size_t addr, uint8_t *d * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4bExReg_ReadFast(whal_Flash *flashDev, size_t addr, uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4bExReg_ReadFast(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Write — 3-byte address */ @@ -298,7 +298,7 @@ whal_Error whal_SpiNor4bExReg_ReadFast(whal_Flash *flashDev, size_t addr, uint8_ * @retval WHAL_SUCCESS Write completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor3b_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor3b_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Write — dedicated 4-byte address command */ @@ -318,7 +318,7 @@ whal_Error whal_SpiNor3b_Write(whal_Flash *flashDev, size_t addr, const uint8_t * @retval WHAL_SUCCESS Write completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4b_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4b_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Write — 4-byte address mode (after 0xB7) */ @@ -338,7 +338,7 @@ whal_Error whal_SpiNor4b_Write(whal_Flash *flashDev, size_t addr, const uint8_t * @retval WHAL_SUCCESS Write completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4bMode_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4bMode_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Write — extended address register */ @@ -359,7 +359,7 @@ whal_Error whal_SpiNor4bMode_Write(whal_Flash *flashDev, size_t addr, const uint * @retval WHAL_SUCCESS Write completed. * @retval WHAL_EINVAL Null pointer, zero size, or out of bounds. */ -whal_Error whal_SpiNor4bExReg_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, size_t dataSz); +whal_Error whal_SpiNor4bExReg_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* -------------------------------------------------------------------- */ /* Erase — 3-byte address */ diff --git a/wolfHAL/flash/stm32c0_flash.h b/wolfHAL/flash/stm32c0_flash.h index bf195d7..7663245 100644 --- a/wolfHAL/flash/stm32c0_flash.h +++ b/wolfHAL/flash/stm32c0_flash.h @@ -100,7 +100,7 @@ whal_Error whal_Stm32c0Flash_Unlock(whal_Flash *flashDev, size_t addr, size_t le * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Invalid arguments. */ -whal_Error whal_Stm32c0Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_Stm32c0Flash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* @@ -116,7 +116,7 @@ whal_Error whal_Stm32c0Flash_Read(whal_Flash *flashDev, size_t addr, uint8_t *da * @retval WHAL_SUCCESS Program completed. * @retval WHAL_EINVAL Invalid arguments. */ -whal_Error whal_Stm32c0Flash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +whal_Error whal_Stm32c0Flash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* diff --git a/wolfHAL/flash/stm32f4_flash.h b/wolfHAL/flash/stm32f4_flash.h index 8002958..83bc9f8 100644 --- a/wolfHAL/flash/stm32f4_flash.h +++ b/wolfHAL/flash/stm32f4_flash.h @@ -122,7 +122,7 @@ whal_Error whal_Stm32f4Flash_Unlock(whal_Flash *flashDev, size_t addr, size_t le * @retval WHAL_EINVAL Invalid arguments. */ whal_Error whal_Stm32f4Flash_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz); + void *data, size_t dataSz); /* * @brief Write data to flash. @@ -140,7 +140,7 @@ whal_Error whal_Stm32f4Flash_Read(whal_Flash *flashDev, size_t addr, * @retval WHAL_EHARDWARE Flash error during programming. */ whal_Error whal_Stm32f4Flash_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz); + const void *data, size_t dataSz); /* * @brief Erase flash sectors covering the given range. diff --git a/wolfHAL/flash/stm32h5_flash.h b/wolfHAL/flash/stm32h5_flash.h index 2f6765e..fcbb914 100644 --- a/wolfHAL/flash/stm32h5_flash.h +++ b/wolfHAL/flash/stm32h5_flash.h @@ -86,7 +86,7 @@ whal_Error whal_Stm32h5Flash_Unlock(whal_Flash *flashDev, size_t addr, * @retval WHAL_SUCCESS Read completed. */ whal_Error whal_Stm32h5Flash_Read(whal_Flash *flashDev, size_t addr, - uint8_t *data, size_t dataSz); + void *data, size_t dataSz); /* * @brief Write data to flash. @@ -104,7 +104,7 @@ whal_Error whal_Stm32h5Flash_Read(whal_Flash *flashDev, size_t addr, * @retval WHAL_EHARDWARE Flash error during programming. */ whal_Error whal_Stm32h5Flash_Write(whal_Flash *flashDev, size_t addr, - const uint8_t *data, size_t dataSz); + const void *data, size_t dataSz); /* * @brief Erase flash sectors covering the given range. diff --git a/wolfHAL/flash/stm32wb_flash.h b/wolfHAL/flash/stm32wb_flash.h index 9a29f09..56fb5ad 100644 --- a/wolfHAL/flash/stm32wb_flash.h +++ b/wolfHAL/flash/stm32wb_flash.h @@ -104,7 +104,7 @@ whal_Error whal_Stm32wbFlash_Unlock(whal_Flash *flashDev, size_t addr, size_t le * @retval WHAL_SUCCESS Read completed. * @retval WHAL_EINVAL Invalid arguments. */ -whal_Error whal_Stm32wbFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *data, +whal_Error whal_Stm32wbFlash_Read(whal_Flash *flashDev, size_t addr, void *data, size_t dataSz); /* * @brief Write a block of data to flash. @@ -117,7 +117,7 @@ whal_Error whal_Stm32wbFlash_Read(whal_Flash *flashDev, size_t addr, uint8_t *da * @retval WHAL_SUCCESS Program completed. * @retval WHAL_EINVAL Invalid arguments. */ -whal_Error whal_Stm32wbFlash_Write(whal_Flash *flashDev, size_t addr, const uint8_t *data, +whal_Error whal_Stm32wbFlash_Write(whal_Flash *flashDev, size_t addr, const void *data, size_t dataSz); /* * @brief Erase a flash range. diff --git a/wolfHAL/rng/rng.h b/wolfHAL/rng/rng.h index 3118bb6..d1906ec 100644 --- a/wolfHAL/rng/rng.h +++ b/wolfHAL/rng/rng.h @@ -22,7 +22,7 @@ typedef struct { /* Deinitialize the RNG hardware. */ whal_Error (*Deinit)(whal_Rng *rngDev); /* Generate random data into a buffer. */ - whal_Error (*Generate)(whal_Rng *rngDev, uint8_t *rngData, size_t rngDataSz); + whal_Error (*Generate)(whal_Rng *rngDev, void *rngData, size_t rngDataSz); } whal_RngDriver; /* @@ -76,7 +76,7 @@ whal_Error whal_Rng_Deinit(whal_Rng *rngDev); * @retval WHAL_SUCCESS Buffer filled with random data. * @retval WHAL_EINVAL Null pointer or missing driver function. */ -whal_Error whal_Rng_Generate(whal_Rng *rngDev, uint8_t *rngData, size_t rngDataSz); +whal_Error whal_Rng_Generate(whal_Rng *rngDev, void *rngData, size_t rngDataSz); #endif #endif /* WHAL_RNG_H */ diff --git a/wolfHAL/rng/stm32h5_rng.h b/wolfHAL/rng/stm32h5_rng.h index 531107d..5afec3e 100644 --- a/wolfHAL/rng/stm32h5_rng.h +++ b/wolfHAL/rng/stm32h5_rng.h @@ -62,7 +62,7 @@ whal_Error whal_Stm32h5Rng_Deinit(whal_Rng *rngDev); * @retval WHAL_EHARDWARE Seed or clock error detected. * @retval WHAL_ETIMEOUT Timed out waiting for random data. */ -whal_Error whal_Stm32h5Rng_Generate(whal_Rng *rngDev, uint8_t *rngData, +whal_Error whal_Stm32h5Rng_Generate(whal_Rng *rngDev, void *rngData, size_t rngDataSz); #endif /* WHAL_STM32H5_RNG_H */ diff --git a/wolfHAL/rng/stm32wb_rng.h b/wolfHAL/rng/stm32wb_rng.h index 6dc2763..61c3313 100644 --- a/wolfHAL/rng/stm32wb_rng.h +++ b/wolfHAL/rng/stm32wb_rng.h @@ -54,6 +54,6 @@ whal_Error whal_Stm32wbRng_Deinit(whal_Rng *rngDev); * @retval WHAL_SUCCESS Buffer filled with random data. * @retval WHAL_EINVAL Invalid arguments or seed/clock error detected. */ -whal_Error whal_Stm32wbRng_Generate(whal_Rng *rngDev, uint8_t *rngData, size_t rngDataSz); +whal_Error whal_Stm32wbRng_Generate(whal_Rng *rngDev, void *rngData, size_t rngDataSz); #endif /* WHAL_STM32WB_RNG_H */ diff --git a/wolfHAL/spi/spi.h b/wolfHAL/spi/spi.h index c53a3e4..f93db06 100644 --- a/wolfHAL/spi/spi.h +++ b/wolfHAL/spi/spi.h @@ -46,7 +46,7 @@ typedef struct { /* End the current communication session. */ whal_Error (*EndCom)(whal_Spi *spiDev); /* Perform a bidirectional transfer. */ - whal_Error (*SendRecv)(whal_Spi *spiDev, const uint8_t *tx, size_t txLen, uint8_t *rx, size_t rxLen); + whal_Error (*SendRecv)(whal_Spi *spiDev, const void *tx, size_t txLen, void *rx, size_t rxLen); } whal_SpiDriver; /* @@ -135,7 +135,7 @@ whal_Error whal_Spi_EndCom(whal_Spi *spiDev); * @retval WHAL_SUCCESS Transfer completed. * @retval WHAL_EINVAL Null spiDev or driver failed to transfer. */ -whal_Error whal_Spi_SendRecv(whal_Spi *spiDev, const uint8_t *tx, size_t txLen, uint8_t *rx, size_t rxLen); +whal_Error whal_Spi_SendRecv(whal_Spi *spiDev, const void *tx, size_t txLen, void *rx, size_t rxLen); #endif #endif /* WHAL_SPI_H */ diff --git a/wolfHAL/spi/stm32f4_spi.h b/wolfHAL/spi/stm32f4_spi.h index 990f30b..808abb9 100644 --- a/wolfHAL/spi/stm32f4_spi.h +++ b/wolfHAL/spi/stm32f4_spi.h @@ -95,7 +95,7 @@ whal_Error whal_Stm32f4Spi_EndCom(whal_Spi *spiDev); * @retval WHAL_EINVAL Invalid arguments. */ whal_Error whal_Stm32f4Spi_SendRecv(whal_Spi *spiDev, - const uint8_t *tx, size_t txLen, - uint8_t *rx, size_t rxLen); + const void *tx, size_t txLen, + void *rx, size_t rxLen); #endif /* WHAL_STM32F4_SPI_H */ diff --git a/wolfHAL/spi/stm32h5_spi.h b/wolfHAL/spi/stm32h5_spi.h index f8a7cd9..f604662 100644 --- a/wolfHAL/spi/stm32h5_spi.h +++ b/wolfHAL/spi/stm32h5_spi.h @@ -94,7 +94,7 @@ whal_Error whal_Stm32h5Spi_EndCom(whal_Spi *spiDev); * @retval WHAL_SUCCESS Transfer completed. * @retval WHAL_EINVAL Invalid arguments. */ -whal_Error whal_Stm32h5Spi_SendRecv(whal_Spi *spiDev, const uint8_t *tx, - size_t txLen, uint8_t *rx, size_t rxLen); +whal_Error whal_Stm32h5Spi_SendRecv(whal_Spi *spiDev, const void *tx, + size_t txLen, void *rx, size_t rxLen); #endif /* WHAL_STM32H5_SPI_H */ diff --git a/wolfHAL/spi/stm32wb_spi.h b/wolfHAL/spi/stm32wb_spi.h index f5d8dfb..f2d555b 100644 --- a/wolfHAL/spi/stm32wb_spi.h +++ b/wolfHAL/spi/stm32wb_spi.h @@ -91,7 +91,7 @@ whal_Error whal_Stm32wbSpi_EndCom(whal_Spi *spiDev); * @retval WHAL_EINVAL Invalid arguments. */ whal_Error whal_Stm32wbSpi_SendRecv(whal_Spi *spiDev, - const uint8_t *tx, size_t txLen, - uint8_t *rx, size_t rxLen); + const void *tx, size_t txLen, + void *rx, size_t rxLen); #endif /* WHAL_STM32WB_SPI_H */