diff options
author | Benji Dial <Benji3.141@gmail.com> | 2020-08-11 11:33:21 -0400 |
---|---|---|
committer | Benji Dial <Benji3.141@gmail.com> | 2020-08-11 11:33:21 -0400 |
commit | 63167f223e1f54910f6b80e698390ee60aec79ee (patch) | |
tree | 41844f646bdcb5c9ba241bb5867c5e4f51737d52 /src/user/libcanyo/file.c | |
parent | 77d7a284c02bc6b1b3a3a92ad5d957172cee9b81 (diff) | |
download | portland-os-63167f223e1f54910f6b80e698390ee60aec79ee.tar.gz |
lots of progress
currently, BAR fields of IDE drives are all returning zero, and the ATA read function isn't working. i'm not sure why.
i'm going to work on VESA next, and come back to the IDE driver later
Diffstat (limited to 'src/user/libcanyo/file.c')
-rw-r--r-- | src/user/libcanyo/file.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/user/libcanyo/file.c b/src/user/libcanyo/file.c new file mode 100644 index 0000000..d314887 --- /dev/null +++ b/src/user/libcanyo/file.c @@ -0,0 +1,15 @@ +#include <stdint.h> +#include <pland.h> + +//max_length and return value include null-terminator +uint32_t read_line(fs_handle handle, uint32_t max_length, void *buffer) { + int index = 0; + + while (++index < max_length) { + if (!fs_read(handle, 1, buffer + index - 1) || (*(uint8_t *)(buffer + index - 1) == '\n')) + break; + } + + *(uint8_t *)(buffer + index - 1) = '\0'; + return index; +}
\ No newline at end of file |