1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 04:30:10 +00:00
cc65/libsrc/rp6502/read.c

21 lines
507 B
C
Raw Normal View History

2023-11-17 02:46:16 +00:00
#include <rp6502.h>
#include <unistd.h>
2023-11-17 19:08:51 +00:00
int __fastcall__ read (int fildes, void* buf, unsigned count)
2023-11-17 02:46:16 +00:00
{
int total = 0;
2023-11-17 19:08:51 +00:00
while (count) {
2023-11-17 02:46:16 +00:00
unsigned blockcount = (count > 256) ? 256 : count;
2023-11-17 19:08:51 +00:00
int bytes_read = read_xstack (&((char*)buf)[total], blockcount, fildes);
if (bytes_read < 0) {
2023-11-17 02:46:16 +00:00
return bytes_read;
}
total += bytes_read;
count -= bytes_read;
2023-11-17 19:08:51 +00:00
if (bytes_read < blockcount) {
2023-11-17 02:46:16 +00:00
break;
}
}
return total;
}