diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-02 17:29:19 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-02-03 13:27:06 -0400 |
commit | f2eabdb6257c09cf2890dac5e9737912728542af (patch) | |
tree | 3b46f6787185d65605651a0f48776dc9779ce648 /src/MSL_C.PPCEABI.bare.H/buffer_io.c | |
parent | eef1dd840b7cecac28c2e6b0574707b90a37d4e7 (diff) |
global: Add rest of Dolphin SDK proper, add MSL, and MetroTRK
Finally, it links properly.
Diffstat (limited to 'src/MSL_C.PPCEABI.bare.H/buffer_io.c')
-rw-r--r-- | src/MSL_C.PPCEABI.bare.H/buffer_io.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/MSL_C.PPCEABI.bare.H/buffer_io.c b/src/MSL_C.PPCEABI.bare.H/buffer_io.c new file mode 100644 index 0000000..e760ba8 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/buffer_io.c @@ -0,0 +1,43 @@ +#include "buffer_io.h" + +void __convert_from_newlines(unsigned char* buf, size_t* n) { +} + +void __convert_to_newlines(unsigned char* buf, size_t* n) { +} + +void __prep_buffer(FILE* file) { + file->buffer_ptr = file->buffer; + file->buffer_len = file->buffer_size; + file->buffer_len -= file->position & file->buffer_alignment; + file->buffer_pos = file->position; +} + +int __flush_buffer(FILE* file, size_t* bytes_flushed) { + size_t buffer_len; + int ioresult; + + buffer_len = file->buffer_ptr - file->buffer; + + if (buffer_len) { + file->buffer_len = buffer_len; + + if (!file->mode.binary_io) + __convert_from_newlines(file->buffer, (size_t*)&file->buffer_len); + + ioresult = (*file->write_proc)(file->handle, file->buffer, (size_t*)&file->buffer_len, + file->idle_proc); + + if (bytes_flushed) + *bytes_flushed = file->buffer_len; + + if (ioresult) + return (ioresult); + + file->position += file->buffer_len; + } + + __prep_buffer(file); + + return 0; +} |