core: stream: change read/write buffer type from unsigned char* to void*

This commit is contained in:
2025-10-28 15:14:57 +00:00
parent 2687477cb2
commit 5b090c72c7
3 changed files with 8 additions and 47 deletions

View File

@@ -42,8 +42,8 @@ B_TYPE_CLASS_DECLARATION_BEGIN(b_stream)
b_status (*s_seek)(b_stream *, long long, b_stream_seek_origin);
b_status (*s_tell)(const b_stream *, size_t *);
b_status (*s_getc)(b_stream *, b_wchar *);
b_status (*s_read)(b_stream *, unsigned char *, size_t, size_t *);
b_status (*s_write)(b_stream *, const unsigned char *, size_t, size_t *);
b_status (*s_read)(b_stream *, void *, size_t, size_t *);
b_status (*s_write)(b_stream *, const void *, size_t, size_t *);
b_status (*s_reserve)(b_stream *, size_t);
B_TYPE_CLASS_DECLARATION_END(b_stream)

View File

@@ -70,37 +70,13 @@ static b_stream *stdio[] = {
[IDX_STDIN] = NULL,
[IDX_STDOUT] = NULL,
[IDX_STDERR] = NULL,
#if 0
[IDX_STDIN] = {
.s_mode = B_STREAM_READ,
.s_read = stdio_read,
.s_seek = stdio_seek,
.s_tell = stdio_tell,
.s_ptr0 = NULL, /* set to stdin (stdio.h) at runtime */
},
[IDX_STDOUT] = {
.s_mode = B_STREAM_WRITE,
.s_write = stdio_write,
.s_seek = stdio_seek,
.s_tell = stdio_tell,
.s_ptr0 = NULL, /* set to stdout (stdio.h) at runtime */
},
[IDX_STDERR] = {
.s_mode = B_STREAM_WRITE,
.s_write = stdio_write,
.s_seek = stdio_seek,
.s_tell = stdio_tell,
.s_ptr0 = NULL, /* set to stderr (stdio.h) at runtime */
},
#endif
};
/*** PRIVATE FUNCTIONS ********************************************************/
b_type b_stdio_stream_get_type(void);
static enum b_status stdio_read(b_stream *, unsigned char *, size_t, size_t *);
static enum b_status stdio_write(
b_stream *, const unsigned char *, size_t, size_t *);
static enum b_status stdio_read(b_stream *, void *, size_t, size_t *);
static enum b_status stdio_write(b_stream *, const void *, size_t, size_t *);
static enum b_status stdio_seek(b_stream *, long long, b_stream_seek_origin);
static enum b_status stdio_tell(const b_stream *, size_t *);
@@ -661,22 +637,7 @@ b_stream_buffer *b_stream_buffer_create(void *buf, size_t len)
b_stream *b_stream_open_fp(FILE *fp)
{
b_stream *stream = b_object_create(B_TYPE_STREAM);
if (!stream) {
return NULL;
}
struct stream_data p;
stream_get_data(stream, &p);
p.s_cfg->s_mode = B_STREAM_READ | B_STREAM_WRITE;
p.s_private->s_ptr0 = fp;
p.s_ops->s_read = stdio_read;
p.s_ops->s_write = stdio_write;
p.s_ops->s_seek = stdio_seek;
p.s_ops->s_tell = stdio_tell;
return stream;
return init_stdio_stream(fp, B_STREAM_READ | B_STREAM_WRITE);
}
enum b_status b_stream_reserve(b_stream *stream, size_t len)
@@ -869,7 +830,7 @@ static void stdio_stream_fini(b_object *obj, void *priv)
}
static enum b_status stdio_read(
b_stream *stream, unsigned char *out, size_t max, size_t *nr_read)
b_stream *stream, void *out, size_t max, size_t *nr_read)
{
struct b_stdio_stream_p *p
= b_object_get_private(stream, B_TYPE_STDIO_STREAM);
@@ -887,7 +848,7 @@ static enum b_status stdio_read(
}
static enum b_status stdio_write(
b_stream *stream, const unsigned char *data, size_t count, size_t *nr_written)
b_stream *stream, const void *data, size_t count, size_t *nr_written)
{
struct b_stdio_stream_p *p
= b_object_get_private(stream, B_TYPE_STDIO_STREAM);

View File

@@ -194,7 +194,7 @@ static void stringstream_fini(b_object *obj, void *priv)
}
enum b_status stream_write(
b_stream *stream, const unsigned char *buf, size_t count, size_t *nr_written)
b_stream *stream, const void *buf, size_t count, size_t *nr_written)
{
struct b_stringstream_p *s
= b_object_get_private(stream, B_TYPE_STRINGSTREAM);