mirror of
https://github.com/markqvist/OpenModem.git
synced 2025-05-18 06:10:58 -04:00
Reworked KFile write
This commit is contained in:
parent
50f11f6645
commit
319f18330c
3 changed files with 9 additions and 10 deletions
15
Modem/afsk.c
15
Modem/afsk.c
|
@ -348,18 +348,17 @@ static size_t afsk_read(KFile *fd, void *_buf, size_t size) {
|
|||
return buffer - (uint8_t *)_buf;
|
||||
}
|
||||
|
||||
static size_t afsk_write(KFile *fd, const void *_buf, size_t size)
|
||||
{
|
||||
Afsk *af = AFSK_CAST(fd);
|
||||
static size_t afsk_write(KFile *fd, const void *_buf, size_t size) {
|
||||
Afsk *afsk = AFSK_CAST(fd);
|
||||
const uint8_t *buf = (const uint8_t *)_buf;
|
||||
|
||||
while (size--)
|
||||
{
|
||||
while (fifo_isfull_locked(&af->txFifo))
|
||||
while (size--) {
|
||||
while (fifo_isfull_locked(&afsk->txFifo)) {
|
||||
cpu_relax();
|
||||
}
|
||||
|
||||
fifo_push_locked(&af->txFifo, *buf++);
|
||||
afsk_txStart(af);
|
||||
fifo_push_locked(&afsk->txFifo, *buf++);
|
||||
afsk_txStart(afsk);
|
||||
}
|
||||
|
||||
return buf - (const uint8_t *)_buf;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue