mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 08:38:38 +08:00
stream: reduce int use, handle FS_LARGEFILE correctly.
offset int -> offset, len int -> size_t, ret int -> ssize_t Signed-off-by: buxiasen <buxiasen@xiaomi.com>
This commit is contained in:
parent
2433094ebd
commit
a5459cdaca
27 changed files with 186 additions and 181 deletions
|
@ -74,19 +74,19 @@
|
||||||
/* These are the generic representations of a streams used by the NuttX */
|
/* These are the generic representations of a streams used by the NuttX */
|
||||||
|
|
||||||
struct lib_instream_s;
|
struct lib_instream_s;
|
||||||
typedef CODE int (*lib_getc_t)(FAR struct lib_instream_s *self);
|
typedef CODE int (*lib_getc_t)(FAR struct lib_instream_s *self);
|
||||||
typedef CODE int (*lib_gets_t)(FAR struct lib_instream_s *self,
|
typedef CODE ssize_t (*lib_gets_t)(FAR struct lib_instream_s *self,
|
||||||
FAR void *buf, int len);
|
FAR void *buf, size_t len);
|
||||||
|
|
||||||
struct lib_outstream_s;
|
struct lib_outstream_s;
|
||||||
typedef CODE void (*lib_putc_t)(FAR struct lib_outstream_s *self, int ch);
|
typedef CODE void (*lib_putc_t)(FAR struct lib_outstream_s *self, int ch);
|
||||||
typedef CODE int (*lib_puts_t)(FAR struct lib_outstream_s *self,
|
typedef CODE ssize_t (*lib_puts_t)(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len);
|
FAR const void *buf, size_t len);
|
||||||
typedef CODE int (*lib_flush_t)(FAR struct lib_outstream_s *self);
|
typedef CODE int (*lib_flush_t)(FAR struct lib_outstream_s *self);
|
||||||
|
|
||||||
struct lib_instream_s
|
struct lib_instream_s
|
||||||
{
|
{
|
||||||
int nget; /* Total number of characters gotten. Written
|
off_t nget; /* Total number of characters gotten. Written
|
||||||
* by get method, readable by user */
|
* by get method, readable by user */
|
||||||
lib_getc_t getc; /* Get one character from the instream */
|
lib_getc_t getc; /* Get one character from the instream */
|
||||||
lib_gets_t gets; /* Get the string from the instream */
|
lib_gets_t gets; /* Get the string from the instream */
|
||||||
|
@ -94,7 +94,7 @@ struct lib_instream_s
|
||||||
|
|
||||||
struct lib_outstream_s
|
struct lib_outstream_s
|
||||||
{
|
{
|
||||||
int nput; /* Total number of characters put. Written
|
off_t nput; /* Total number of characters put. Written
|
||||||
* by put method, readable by user */
|
* by put method, readable by user */
|
||||||
lib_putc_t putc; /* Put one character to the outstream */
|
lib_putc_t putc; /* Put one character to the outstream */
|
||||||
lib_puts_t puts; /* Writes the string to the outstream */
|
lib_puts_t puts; /* Writes the string to the outstream */
|
||||||
|
@ -104,23 +104,24 @@ struct lib_outstream_s
|
||||||
/* Seek-able streams */
|
/* Seek-able streams */
|
||||||
|
|
||||||
struct lib_sistream_s;
|
struct lib_sistream_s;
|
||||||
typedef CODE int (*lib_sigetc_t)(FAR struct lib_sistream_s *self);
|
typedef CODE int (*lib_sigetc_t)(FAR struct lib_sistream_s *self);
|
||||||
typedef CODE int (*lib_sigets_t)(FAR struct lib_sistream_s *self,
|
typedef CODE ssize_t (*lib_sigets_t)(FAR struct lib_sistream_s *self,
|
||||||
FAR void *buf, int len);
|
FAR void *buf, size_t len);
|
||||||
typedef CODE off_t (*lib_siseek_t)(FAR struct lib_sistream_s *self,
|
typedef CODE off_t (*lib_siseek_t)(FAR struct lib_sistream_s *self,
|
||||||
off_t offset, int whence);
|
off_t offset, int whence);
|
||||||
|
|
||||||
struct lib_sostream_s;
|
struct lib_sostream_s;
|
||||||
typedef CODE void (*lib_soputc_t)(FAR struct lib_sostream_s *self, int ch);
|
typedef CODE void (*lib_soputc_t)(FAR struct lib_sostream_s *self,
|
||||||
typedef CODE int (*lib_soputs_t)(FAR struct lib_sostream_s *self,
|
int ch);
|
||||||
FAR const void *buf, int len);
|
typedef CODE ssize_t (*lib_soputs_t)(FAR struct lib_sostream_s *self,
|
||||||
typedef CODE int (*lib_soflush_t)(FAR struct lib_sostream_s *self);
|
FAR const void *buf, size_t len);
|
||||||
typedef CODE off_t (*lib_soseek_t)(FAR struct lib_sostream_s *self,
|
typedef CODE int (*lib_soflush_t)(FAR struct lib_sostream_s *self);
|
||||||
off_t offset, int whence);
|
typedef CODE off_t (*lib_soseek_t)(FAR struct lib_sostream_s *self,
|
||||||
|
off_t offset, int whence);
|
||||||
|
|
||||||
struct lib_sistream_s
|
struct lib_sistream_s
|
||||||
{
|
{
|
||||||
int nget; /* Total number of characters gotten. Written
|
off_t nget; /* Total number of characters gotten. Written
|
||||||
* by get method, readable by user */
|
* by get method, readable by user */
|
||||||
lib_sigetc_t getc; /* Get one character from the instream */
|
lib_sigetc_t getc; /* Get one character from the instream */
|
||||||
lib_gets_t gets; /* Get the string from the instream */
|
lib_gets_t gets; /* Get the string from the instream */
|
||||||
|
@ -129,7 +130,7 @@ struct lib_sistream_s
|
||||||
|
|
||||||
struct lib_sostream_s
|
struct lib_sostream_s
|
||||||
{
|
{
|
||||||
int nput; /* Total number of characters put. Written
|
off_t nput; /* Total number of characters put. Written
|
||||||
* by put method, readable by user */
|
* by put method, readable by user */
|
||||||
lib_soputc_t putc; /* Put one character to the outstream */
|
lib_soputc_t putc; /* Put one character to the outstream */
|
||||||
lib_soputs_t puts; /* Writes the string to the outstream */
|
lib_soputs_t puts; /* Writes the string to the outstream */
|
||||||
|
@ -157,7 +158,7 @@ struct lib_memsistream_s
|
||||||
{
|
{
|
||||||
struct lib_sistream_s common;
|
struct lib_sistream_s common;
|
||||||
FAR const char *buffer; /* Address of first byte in the buffer */
|
FAR const char *buffer; /* Address of first byte in the buffer */
|
||||||
size_t offset; /* Current buffer offset in bytes */
|
off_t offset; /* Current buffer offset in bytes */
|
||||||
size_t buflen; /* Size of the buffer in bytes */
|
size_t buflen; /* Size of the buffer in bytes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -165,7 +166,7 @@ struct lib_memsostream_s
|
||||||
{
|
{
|
||||||
struct lib_sostream_s common;
|
struct lib_sostream_s common;
|
||||||
FAR char *buffer; /* Address of first byte in the buffer */
|
FAR char *buffer; /* Address of first byte in the buffer */
|
||||||
size_t offset; /* Current buffer offset in bytes */
|
off_t offset; /* Current buffer offset in bytes */
|
||||||
size_t buflen; /* Size of the buffer in bytes */
|
size_t buflen; /* Size of the buffer in bytes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -231,7 +232,7 @@ struct lib_bufferedoutstream_s
|
||||||
{
|
{
|
||||||
struct lib_outstream_s common;
|
struct lib_outstream_s common;
|
||||||
FAR struct lib_outstream_s *backend;
|
FAR struct lib_outstream_s *backend;
|
||||||
int pending;
|
size_t pending;
|
||||||
char buffer[CONFIG_STREAM_OUT_BUFFER_SIZE];
|
char buffer[CONFIG_STREAM_OUT_BUFFER_SIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -239,7 +240,7 @@ struct lib_hexdumpstream_s
|
||||||
{
|
{
|
||||||
struct lib_outstream_s common;
|
struct lib_outstream_s common;
|
||||||
FAR struct lib_outstream_s *backend;
|
FAR struct lib_outstream_s *backend;
|
||||||
int pending;
|
size_t pending;
|
||||||
char buffer[CONFIG_STREAM_HEXDUMP_BUFFER_SIZE + 1];
|
char buffer[CONFIG_STREAM_HEXDUMP_BUFFER_SIZE + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -247,9 +248,9 @@ struct lib_base64outstream_s
|
||||||
{
|
{
|
||||||
struct lib_outstream_s common;
|
struct lib_outstream_s common;
|
||||||
FAR struct lib_outstream_s *backend;
|
FAR struct lib_outstream_s *backend;
|
||||||
int pending;
|
size_t pending;
|
||||||
unsigned char bytes[3];
|
unsigned char bytes[3];
|
||||||
int nbytes;
|
size_t nbytes;
|
||||||
char buffer[CONFIG_STREAM_BASE64_BUFFER_SIZE + 1];
|
char buffer[CONFIG_STREAM_BASE64_BUFFER_SIZE + 1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -269,7 +270,7 @@ struct lib_syslograwstream_s
|
||||||
struct lib_outstream_s common;
|
struct lib_outstream_s common;
|
||||||
#ifdef CONFIG_SYSLOG_BUFFER
|
#ifdef CONFIG_SYSLOG_BUFFER
|
||||||
char buffer[CONFIG_SYSLOG_BUFSIZE];
|
char buffer[CONFIG_SYSLOG_BUFSIZE];
|
||||||
int offset;
|
off_t offset;
|
||||||
#endif
|
#endif
|
||||||
int last_ch;
|
int last_ch;
|
||||||
};
|
};
|
||||||
|
@ -282,7 +283,7 @@ struct lib_lzfoutstream_s
|
||||||
struct lib_outstream_s common;
|
struct lib_outstream_s common;
|
||||||
FAR struct lib_outstream_s *backend;
|
FAR struct lib_outstream_s *backend;
|
||||||
lzf_state_t state;
|
lzf_state_t state;
|
||||||
size_t offset;
|
off_t offset;
|
||||||
char in[LZF_STREAM_BLOCKSIZE];
|
char in[LZF_STREAM_BLOCKSIZE];
|
||||||
char out[LZF_MAX_HDR_SIZE + LZF_STREAM_BLOCKSIZE];
|
char out[LZF_MAX_HDR_SIZE + LZF_STREAM_BLOCKSIZE];
|
||||||
};
|
};
|
||||||
|
@ -354,13 +355,13 @@ extern struct lib_outstream_s g_lowoutstream;
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void lib_meminstream(FAR struct lib_meminstream_s *stream,
|
void lib_meminstream(FAR struct lib_meminstream_s *stream,
|
||||||
FAR const char *bufstart, int buflen);
|
FAR const char *bufstart, size_t buflen);
|
||||||
void lib_memoutstream(FAR struct lib_memoutstream_s *stream,
|
void lib_memoutstream(FAR struct lib_memoutstream_s *stream,
|
||||||
FAR char *bufstart, int buflen);
|
FAR char *bufstart, size_t buflen);
|
||||||
void lib_memsistream(FAR struct lib_memsistream_s *stream,
|
void lib_memsistream(FAR struct lib_memsistream_s *stream,
|
||||||
FAR const char *bufstart, int buflen);
|
FAR const char *bufstart, size_t buflen);
|
||||||
void lib_memsostream(FAR struct lib_memsostream_s *stream,
|
void lib_memsostream(FAR struct lib_memsostream_s *stream,
|
||||||
FAR char *bufstart, int buflen);
|
FAR char *bufstart, size_t buflen);
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: lib_stdinstream, lib_stdoutstream
|
* Name: lib_stdinstream, lib_stdoutstream
|
||||||
|
|
|
@ -42,8 +42,8 @@ struct obstack_stream
|
||||||
* Private Functions
|
* Private Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int obstack_puts(FAR struct lib_outstream_s *self,
|
static ssize_t obstack_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct obstack_stream *stream = (FAR struct obstack_stream *)self;
|
FAR struct obstack_stream *stream = (FAR struct obstack_stream *)self;
|
||||||
|
|
||||||
|
|
|
@ -82,18 +82,18 @@ static void base64stream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
* Name: base64stream_puts
|
* Name: base64stream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int base64stream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t base64stream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_base64outstream_s *stream = (FAR void *)self;
|
FAR struct lib_base64outstream_s *stream = (FAR void *)self;
|
||||||
FAR const unsigned char *input = (FAR const unsigned char *)buf;
|
FAR const unsigned char *input = (FAR const unsigned char *)buf;
|
||||||
int remaining = len;
|
size_t remaining = len;
|
||||||
|
|
||||||
if (stream->nbytes)
|
if (stream->nbytes)
|
||||||
{
|
{
|
||||||
/* Flush the first three bytes */
|
/* Flush the first three bytes */
|
||||||
|
|
||||||
int n = 3 - stream->nbytes;
|
size_t n = 3 - stream->nbytes;
|
||||||
if (n > remaining)
|
if (n > remaining)
|
||||||
{
|
{
|
||||||
n = remaining;
|
n = remaining;
|
||||||
|
@ -118,8 +118,9 @@ static int base64stream_puts(FAR struct lib_outstream_s *self,
|
||||||
|
|
||||||
while (remaining >= 3)
|
while (remaining >= 3)
|
||||||
{
|
{
|
||||||
int outlen;
|
size_t outlen;
|
||||||
int n = (STREAM_BASE64_BUFFER_SIZE - stream->pending) / 4 * 3;
|
size_t n = (STREAM_BASE64_BUFFER_SIZE - stream->pending) / 4 * 3;
|
||||||
|
|
||||||
if (n > remaining)
|
if (n > remaining)
|
||||||
{
|
{
|
||||||
n = remaining / 3 * 3;
|
n = remaining / 3 * 3;
|
||||||
|
|
|
@ -65,8 +65,8 @@ static int blkoutstream_flush(FAR struct lib_outstream_s *self)
|
||||||
* Name: blkoutstream_puts
|
* Name: blkoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int blkoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t blkoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_blkoutstream_s *stream =
|
FAR struct lib_blkoutstream_s *stream =
|
||||||
(FAR struct lib_blkoutstream_s *)self;
|
(FAR struct lib_blkoutstream_s *)self;
|
||||||
|
@ -74,12 +74,12 @@ static int blkoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR struct inode *inode = stream->inode;
|
FAR struct inode *inode = stream->inode;
|
||||||
FAR const unsigned char *ptr = buf;
|
FAR const unsigned char *ptr = buf;
|
||||||
size_t remain = len;
|
size_t remain = len;
|
||||||
int ret;
|
ssize_t ret;
|
||||||
|
|
||||||
while (remain > 0)
|
while (remain > 0)
|
||||||
{
|
{
|
||||||
size_t sector = self->nput / sectorsize;
|
off_t sector = self->nput / sectorsize;
|
||||||
size_t offset = self->nput % sectorsize;
|
off_t offset = self->nput % sectorsize;
|
||||||
|
|
||||||
if (offset > 0)
|
if (offset > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,12 +63,12 @@ static int bufferedoutstream_flush(FAR struct lib_outstream_s *self)
|
||||||
* Name: bufferedoutstream_puts
|
* Name: bufferedoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int bufferedoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t bufferedoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_bufferedoutstream_s *stream =
|
FAR struct lib_bufferedoutstream_s *stream =
|
||||||
(FAR struct lib_bufferedoutstream_s *)self;
|
(FAR struct lib_bufferedoutstream_s *)self;
|
||||||
int ret = len;
|
size_t ret = len;
|
||||||
|
|
||||||
if (stream->pending + len <= CONFIG_STREAM_OUT_BUFFER_SIZE)
|
if (stream->pending + len <= CONFIG_STREAM_OUT_BUFFER_SIZE)
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,12 +42,12 @@
|
||||||
* Name: rawoutstream_puts
|
* Name: rawoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int fileoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t fileoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_fileoutstream_s *stream =
|
FAR struct lib_fileoutstream_s *stream =
|
||||||
(FAR struct lib_fileoutstream_s *)self;
|
(FAR struct lib_fileoutstream_s *)self;
|
||||||
int nwritten;
|
ssize_t nwritten;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
|
@ -100,7 +100,7 @@ static int hexdumpstream_flush(FAR struct lib_outstream_s *self)
|
||||||
static void hexdumpstream_putc(FAR struct lib_outstream_s *self, int ch)
|
static void hexdumpstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
{
|
{
|
||||||
FAR struct lib_hexdumpstream_s *stream = (FAR void *)self;
|
FAR struct lib_hexdumpstream_s *stream = (FAR void *)self;
|
||||||
int outlen = CONFIG_STREAM_HEXDUMP_BUFFER_SIZE;
|
size_t outlen = CONFIG_STREAM_HEXDUMP_BUFFER_SIZE;
|
||||||
const uint8_t byte = ch;
|
const uint8_t byte = ch;
|
||||||
|
|
||||||
bin2hex(&byte, 1, stream->buffer + stream->pending,
|
bin2hex(&byte, 1, stream->buffer + stream->pending,
|
||||||
|
@ -120,15 +120,15 @@ static void hexdumpstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
* Name: hexdumpstream_puts
|
* Name: hexdumpstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int hexdumpstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t hexdumpstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_hexdumpstream_s *stream = (FAR void *)self;
|
FAR struct lib_hexdumpstream_s *stream = (FAR void *)self;
|
||||||
const unsigned char *p = buf;
|
const unsigned char *p = buf;
|
||||||
int outlen = CONFIG_STREAM_HEXDUMP_BUFFER_SIZE;
|
size_t outlen = CONFIG_STREAM_HEXDUMP_BUFFER_SIZE;
|
||||||
int line = outlen / 2;
|
size_t line = outlen / 2;
|
||||||
int remain = len;
|
size_t remain = len;
|
||||||
int ret;
|
ssize_t ret;
|
||||||
|
|
||||||
while (remain > 0)
|
while (remain > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static void lowoutstream_putc(FAR struct lib_outstream_s *self, int ch);
|
static void lowoutstream_putc(FAR struct lib_outstream_s *self, int ch);
|
||||||
static int lowoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t lowoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len);
|
FAR const void *buf, size_t len);
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Data
|
* Public Data
|
||||||
|
@ -79,8 +79,8 @@ static void lowoutstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
* Name: lowoutstream_puts
|
* Name: lowoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int lowoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t lowoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
|
|
@ -64,8 +64,8 @@ static int lzfoutstream_flush(FAR struct lib_outstream_s *self)
|
||||||
* Name: lzfoutstream_puts
|
* Name: lzfoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int lzfoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t lzfoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_lzfoutstream_s *stream =
|
FAR struct lib_lzfoutstream_s *stream =
|
||||||
(FAR struct lib_lzfoutstream_s *)self;
|
(FAR struct lib_lzfoutstream_s *)self;
|
||||||
|
@ -74,7 +74,7 @@ static int lzfoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
size_t total = len;
|
size_t total = len;
|
||||||
size_t copyin;
|
size_t copyin;
|
||||||
size_t outlen;
|
size_t outlen;
|
||||||
int ret;
|
ssize_t ret;
|
||||||
|
|
||||||
while (total > 0)
|
while (total > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
@ -41,7 +42,7 @@ static int meminstream_getc(FAR struct lib_instream_s *self)
|
||||||
{
|
{
|
||||||
FAR struct lib_meminstream_s *stream =
|
FAR struct lib_meminstream_s *stream =
|
||||||
(FAR struct lib_meminstream_s *)self;
|
(FAR struct lib_meminstream_s *)self;
|
||||||
int ret;
|
int ret = -EINVAL;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
@ -52,10 +53,6 @@ static int meminstream_getc(FAR struct lib_instream_s *self)
|
||||||
ret = stream->buffer[self->nget];
|
ret = stream->buffer[self->nget];
|
||||||
self->nget++;
|
self->nget++;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ret = EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -64,12 +61,12 @@ static int meminstream_getc(FAR struct lib_instream_s *self)
|
||||||
* Name: meminstream_gets
|
* Name: meminstream_gets
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int meminstream_gets(FAR struct lib_instream_s *self,
|
static ssize_t meminstream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_meminstream_s *stream =
|
FAR struct lib_meminstream_s *stream =
|
||||||
(FAR struct lib_meminstream_s *)self;
|
(FAR struct lib_meminstream_s *)self;
|
||||||
int ret;
|
ssize_t ret = -EINVAL;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
@ -82,10 +79,6 @@ static int meminstream_gets(FAR struct lib_instream_s *self,
|
||||||
self->nget += ret;
|
self->nget += ret;
|
||||||
memcpy(buffer, stream->buffer, ret);
|
memcpy(buffer, stream->buffer, ret);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ret = EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -112,7 +105,7 @@ static int meminstream_gets(FAR struct lib_instream_s *self,
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void lib_meminstream(FAR struct lib_meminstream_s *stream,
|
void lib_meminstream(FAR struct lib_meminstream_s *stream,
|
||||||
FAR const char *bufstart, int buflen)
|
FAR const char *bufstart, size_t buflen)
|
||||||
{
|
{
|
||||||
stream->common.getc = meminstream_getc;
|
stream->common.getc = meminstream_getc;
|
||||||
stream->common.gets = meminstream_gets;
|
stream->common.gets = meminstream_gets;
|
||||||
|
|
|
@ -36,12 +36,12 @@
|
||||||
* Name: memoutstream_puts
|
* Name: memoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int memoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t memoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_memoutstream_s *stream =
|
FAR struct lib_memoutstream_s *stream =
|
||||||
(FAR struct lib_memoutstream_s *)self;
|
(FAR struct lib_memoutstream_s *)self;
|
||||||
int ncopy;
|
size_t ncopy;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ static void memoutstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void lib_memoutstream(FAR struct lib_memoutstream_s *outstream,
|
void lib_memoutstream(FAR struct lib_memoutstream_s *outstream,
|
||||||
FAR char *bufstart, int buflen)
|
FAR char *bufstart, size_t buflen)
|
||||||
{
|
{
|
||||||
outstream->common.putc = memoutstream_putc;
|
outstream->common.putc = memoutstream_putc;
|
||||||
outstream->common.puts = memoutstream_puts;
|
outstream->common.puts = memoutstream_puts;
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|
||||||
|
@ -40,7 +41,7 @@ static int memsistream_getc(FAR struct lib_sistream_s *self)
|
||||||
{
|
{
|
||||||
FAR struct lib_memsistream_s *stream =
|
FAR struct lib_memsistream_s *stream =
|
||||||
(FAR struct lib_memsistream_s *)self;
|
(FAR struct lib_memsistream_s *)self;
|
||||||
int ret;
|
int ret = -EINVAL;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
@ -52,10 +53,6 @@ static int memsistream_getc(FAR struct lib_sistream_s *self)
|
||||||
stream->offset++;
|
stream->offset++;
|
||||||
self->nget++;
|
self->nget++;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ret = EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -64,12 +61,12 @@ static int memsistream_getc(FAR struct lib_sistream_s *self)
|
||||||
* Name: meminstream_gets
|
* Name: meminstream_gets
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int memsistream_gets(FAR struct lib_instream_s *self,
|
static ssize_t memsistream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_memsistream_s *stream =
|
FAR struct lib_memsistream_s *stream =
|
||||||
(FAR struct lib_memsistream_s *)self;
|
(FAR struct lib_memsistream_s *)self;
|
||||||
int ret;
|
ssize_t ret = -EINVAL;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
@ -82,10 +79,6 @@ static int memsistream_gets(FAR struct lib_instream_s *self,
|
||||||
self->nget += ret;
|
self->nget += ret;
|
||||||
memcpy(buffer, stream->buffer, ret);
|
memcpy(buffer, stream->buffer, ret);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
ret = EOF;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +99,7 @@ static off_t memsistream_seek(FAR struct lib_sistream_s *self, off_t offset,
|
||||||
switch (whence)
|
switch (whence)
|
||||||
{
|
{
|
||||||
case SEEK_CUR:
|
case SEEK_CUR:
|
||||||
newpos = (off_t)stream->offset + offset;
|
newpos = stream->offset + offset;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEEK_SET:
|
case SEEK_SET:
|
||||||
|
@ -114,23 +107,23 @@ static off_t memsistream_seek(FAR struct lib_sistream_s *self, off_t offset,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEEK_END:
|
case SEEK_END:
|
||||||
newpos = (off_t)stream->buflen + offset;
|
newpos = stream->buflen + offset;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return (off_t)ERROR;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make sure that the new position is within range */
|
/* Make sure that the new position is within range */
|
||||||
|
|
||||||
if (newpos < 0 || newpos >= (off_t)stream->buflen)
|
if (newpos < 0 || newpos >= stream->buflen)
|
||||||
{
|
{
|
||||||
return (off_t)ERROR;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the new position */
|
/* Return the new position */
|
||||||
|
|
||||||
stream->offset = (size_t)newpos;
|
stream->offset = newpos;
|
||||||
return newpos;
|
return newpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +149,7 @@ static off_t memsistream_seek(FAR struct lib_sistream_s *self, off_t offset,
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void lib_memsistream(FAR struct lib_memsistream_s *instream,
|
void lib_memsistream(FAR struct lib_memsistream_s *instream,
|
||||||
FAR const char *bufstart, int buflen)
|
FAR const char *bufstart, size_t buflen)
|
||||||
{
|
{
|
||||||
instream->common.getc = memsistream_getc;
|
instream->common.getc = memsistream_getc;
|
||||||
instream->common.gets = memsistream_gets;
|
instream->common.gets = memsistream_gets;
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|
||||||
|
@ -61,10 +62,10 @@ static void memsostream_putc(FAR struct lib_sostream_s *self, int ch)
|
||||||
* Name: memoutstream_puts
|
* Name: memoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int memsostream_puts(FAR struct lib_sostream_s *self,
|
static ssize_t memsostream_puts(FAR struct lib_sostream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
int ncopy;
|
ssize_t ncopy;
|
||||||
FAR struct lib_memsostream_s *stream =
|
FAR struct lib_memsostream_s *stream =
|
||||||
(FAR struct lib_memsostream_s *)self;
|
(FAR struct lib_memsostream_s *)self;
|
||||||
|
|
||||||
|
@ -99,7 +100,7 @@ static off_t memsostream_seek(FAR struct lib_sostream_s *self, off_t offset,
|
||||||
switch (whence)
|
switch (whence)
|
||||||
{
|
{
|
||||||
case SEEK_CUR:
|
case SEEK_CUR:
|
||||||
newpos = (off_t)stream->offset + offset;
|
newpos = stream->offset + offset;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEEK_SET:
|
case SEEK_SET:
|
||||||
|
@ -107,23 +108,23 @@ static off_t memsostream_seek(FAR struct lib_sostream_s *self, off_t offset,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEEK_END:
|
case SEEK_END:
|
||||||
newpos = (off_t)stream->buflen + offset;
|
newpos = stream->buflen + offset;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return (off_t)ERROR;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make sure that the new position is within range */
|
/* Make sure that the new position is within range */
|
||||||
|
|
||||||
if (newpos < 0 || newpos >= (off_t)stream->buflen)
|
if (newpos < 0 || newpos >= stream->buflen)
|
||||||
{
|
{
|
||||||
return (off_t)ERROR;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the new position */
|
/* Return the new position */
|
||||||
|
|
||||||
stream->offset = (size_t)newpos;
|
stream->offset = newpos;
|
||||||
return newpos;
|
return newpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +150,7 @@ static off_t memsostream_seek(FAR struct lib_sostream_s *self, off_t offset,
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void lib_memsostream(FAR struct lib_memsostream_s *outstream,
|
void lib_memsostream(FAR struct lib_memsostream_s *outstream,
|
||||||
FAR char *bufstart, int buflen)
|
FAR char *bufstart, size_t buflen)
|
||||||
{
|
{
|
||||||
outstream->common.putc = memsostream_putc;
|
outstream->common.putc = memsostream_putc;
|
||||||
outstream->common.puts = memsostream_puts;
|
outstream->common.puts = memsostream_puts;
|
||||||
|
|
|
@ -77,8 +77,8 @@ static int mtdoutstream_flush(FAR struct lib_outstream_s *self)
|
||||||
* Name: mtdoutstream_puts
|
* Name: mtdoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int mtdoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t mtdoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_mtdoutstream_s *stream =
|
FAR struct lib_mtdoutstream_s *stream =
|
||||||
(FAR struct lib_mtdoutstream_s *)self;
|
(FAR struct lib_mtdoutstream_s *)self;
|
||||||
|
@ -87,7 +87,7 @@ static int mtdoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
size_t erasesize = stream->geo.erasesize;
|
size_t erasesize = stream->geo.erasesize;
|
||||||
size_t nblkpererase = erasesize / stream->geo.blocksize;
|
size_t nblkpererase = erasesize / stream->geo.blocksize;
|
||||||
size_t remain = len;
|
size_t remain = len;
|
||||||
int ret;
|
ssize_t ret;
|
||||||
|
|
||||||
if (self->nput + len > erasesize * stream->geo.neraseblocks)
|
if (self->nput + len > erasesize * stream->geo.neraseblocks)
|
||||||
{
|
{
|
||||||
|
@ -96,8 +96,8 @@ static int mtdoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
|
|
||||||
while (remain > 0)
|
while (remain > 0)
|
||||||
{
|
{
|
||||||
size_t sblock = self->nput / erasesize;
|
off_t sblock = self->nput / erasesize;
|
||||||
size_t offset = self->nput % erasesize;
|
off_t offset = self->nput % erasesize;
|
||||||
|
|
||||||
if (offset > 0)
|
if (offset > 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,15 +36,15 @@
|
||||||
static int nullinstream_getc(FAR struct lib_instream_s *self)
|
static int nullinstream_getc(FAR struct lib_instream_s *self)
|
||||||
{
|
{
|
||||||
UNUSED(self);
|
UNUSED(self);
|
||||||
return EOF;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nullinstream_gets(FAR struct lib_instream_s *self,
|
static ssize_t nullinstream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
UNUSED(buffer);
|
UNUSED(buffer);
|
||||||
UNUSED(len);
|
UNUSED(len);
|
||||||
return EOF;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|
|
@ -41,8 +41,8 @@ static void nulloutstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
self->nput++;
|
self->nput++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nulloutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t nulloutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buffer, int len)
|
FAR const void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
UNUSED(buffer);
|
UNUSED(buffer);
|
||||||
UNUSED(len);
|
UNUSED(len);
|
||||||
|
|
|
@ -59,26 +59,22 @@ static int rawinstream_getc(FAR struct lib_instream_s *self)
|
||||||
self->nget++;
|
self->nget++;
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
/* Return EOF on any failure to read from the incoming byte stream. The
|
{
|
||||||
* only expected error is EINTR meaning that the read was interrupted
|
return _NX_GETERRVAL(nread);
|
||||||
* by a signal. A Zero return value would indicate an end-of-file
|
}
|
||||||
* condition.
|
|
||||||
*/
|
|
||||||
|
|
||||||
return EOF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: rawinstream_getc
|
* Name: rawinstream_getc
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int rawinstream_gets(FAR struct lib_instream_s *self,
|
static ssize_t rawinstream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_rawinstream_s *stream =
|
FAR struct lib_rawinstream_s *stream =
|
||||||
(FAR struct lib_rawinstream_s *)self;
|
(FAR struct lib_rawinstream_s *)self;
|
||||||
int nread;
|
ssize_t nread;
|
||||||
|
|
||||||
DEBUGASSERT(self && stream->fd >= 0);
|
DEBUGASSERT(self && stream->fd >= 0);
|
||||||
|
|
||||||
|
|
|
@ -42,12 +42,12 @@
|
||||||
* Name: rawoutstream_puts
|
* Name: rawoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int rawoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t rawoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buf, int len)
|
FAR const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_rawoutstream_s *stream =
|
FAR struct lib_rawoutstream_s *stream =
|
||||||
(FAR struct lib_rawoutstream_s *)self;
|
(FAR struct lib_rawoutstream_s *)self;
|
||||||
int nwritten = 0;
|
ssize_t nwritten = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,26 +59,22 @@ static int rawsistream_getc(FAR struct lib_sistream_s *self)
|
||||||
self->nget++;
|
self->nget++;
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
/* Return EOF on any failure to read from the incoming byte stream. The
|
{
|
||||||
* only expected error is EINTR meaning that the read was interrupted
|
return _NX_GETERRVAL(nread);
|
||||||
* by a signal. A Zero return value would indicated an end-of-file
|
}
|
||||||
* confition.
|
|
||||||
*/
|
|
||||||
|
|
||||||
return EOF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: rawsistream_gets
|
* Name: rawsistream_gets
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int rawsistream_gets(FAR struct lib_instream_s *self,
|
static ssize_t rawsistream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_rawsistream_s *stream =
|
FAR struct lib_rawsistream_s *stream =
|
||||||
(FAR struct lib_rawsistream_s *)self;
|
(FAR struct lib_rawsistream_s *)self;
|
||||||
int nread;
|
ssize_t nread;
|
||||||
|
|
||||||
DEBUGASSERT(self && stream->fd >= 0);
|
DEBUGASSERT(self && stream->fd >= 0);
|
||||||
|
|
||||||
|
@ -108,7 +104,13 @@ static off_t rawsistream_seek(FAR struct lib_sistream_s *self, off_t offset,
|
||||||
(FAR struct lib_rawsistream_s *)self;
|
(FAR struct lib_rawsistream_s *)self;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
return _NX_SEEK(stream->fd, offset, whence);
|
offset = _NX_SEEK(stream->fd, offset, whence);
|
||||||
|
if (offset < 0)
|
||||||
|
{
|
||||||
|
offset = _NX_GETERRVAL(offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|
|
@ -47,7 +47,7 @@ static void rawsostream_putc(FAR struct lib_sostream_s *self, int ch)
|
||||||
FAR struct lib_rawsostream_s *stream =
|
FAR struct lib_rawsostream_s *stream =
|
||||||
(FAR struct lib_rawsostream_s *)self;
|
(FAR struct lib_rawsostream_s *)self;
|
||||||
char buffer = ch;
|
char buffer = ch;
|
||||||
int nwritten;
|
ssize_t nwritten;
|
||||||
|
|
||||||
DEBUGASSERT(self && stream->fd >= 0);
|
DEBUGASSERT(self && stream->fd >= 0);
|
||||||
|
|
||||||
|
@ -79,12 +79,12 @@ static void rawsostream_putc(FAR struct lib_sostream_s *self, int ch)
|
||||||
* Name: rawsostream_puts
|
* Name: rawsostream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int rawsostream_puts(FAR struct lib_sostream_s *self,
|
static ssize_t rawsostream_puts(FAR struct lib_sostream_s *self,
|
||||||
FAR const void *buffer, int len)
|
FAR const void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_rawsostream_s *stream =
|
FAR struct lib_rawsostream_s *stream =
|
||||||
(FAR struct lib_rawsostream_s *)self;
|
(FAR struct lib_rawsostream_s *)self;
|
||||||
int nwritten;
|
ssize_t nwritten;
|
||||||
|
|
||||||
DEBUGASSERT(self && stream->fd >= 0);
|
DEBUGASSERT(self && stream->fd >= 0);
|
||||||
|
|
||||||
|
@ -125,7 +125,13 @@ static off_t rawsostream_seek(FAR struct lib_sostream_s *self, off_t offset,
|
||||||
(FAR struct lib_rawsostream_s *)self;
|
(FAR struct lib_rawsostream_s *)self;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
return _NX_SEEK(stream->fd, offset, whence);
|
offset = _NX_SEEK(stream->fd, offset, whence);
|
||||||
|
if (offset < 0)
|
||||||
|
{
|
||||||
|
offset = _NX_GETERRVAL(offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|
|
@ -60,12 +60,12 @@ static int stdinstream_getc(FAR struct lib_instream_s *self)
|
||||||
* Name: stdinstream_gets
|
* Name: stdinstream_gets
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int stdinstream_gets(FAR struct lib_instream_s *self,
|
static ssize_t stdinstream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_stdinstream_s *stream =
|
FAR struct lib_stdinstream_s *stream =
|
||||||
(FAR struct lib_stdinstream_s *)self;
|
(FAR struct lib_stdinstream_s *)self;
|
||||||
int nread = 0;
|
ssize_t nread = 0;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
|
|
@ -71,12 +71,12 @@ static void stdoutstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
* Name: stdoutstream_puts
|
* Name: stdoutstream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int stdoutstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t stdoutstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buffer, int len)
|
FAR const void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_stdoutstream_s *stream =
|
FAR struct lib_stdoutstream_s *stream =
|
||||||
(FAR struct lib_stdoutstream_s *)self;
|
(FAR struct lib_stdoutstream_s *)self;
|
||||||
int result;
|
ssize_t result;
|
||||||
|
|
||||||
DEBUGASSERT(self && stream->handle);
|
DEBUGASSERT(self && stream->handle);
|
||||||
|
|
||||||
|
|
|
@ -59,12 +59,12 @@ static int stdsistream_getc(FAR struct lib_sistream_s *self)
|
||||||
* Name: stdsistream_gets
|
* Name: stdsistream_gets
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int stdsistream_gets(FAR struct lib_instream_s *self,
|
static ssize_t stdsistream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_stdsistream_s *stream =
|
FAR struct lib_stdsistream_s *stream =
|
||||||
(FAR struct lib_stdsistream_s *)self;
|
(FAR struct lib_stdsistream_s *)self;
|
||||||
int nread = 0;
|
ssize_t nread = 0;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
|
|
||||||
|
@ -94,7 +94,13 @@ static off_t stdsistream_seek(FAR struct lib_sistream_s *self, off_t offset,
|
||||||
(FAR struct lib_stdsistream_s *)self;
|
(FAR struct lib_stdsistream_s *)self;
|
||||||
|
|
||||||
DEBUGASSERT(self);
|
DEBUGASSERT(self);
|
||||||
return fseek(stream->handle, offset, whence);
|
offset = fseek(stream->handle, offset, whence);
|
||||||
|
if (offset < 0)
|
||||||
|
{
|
||||||
|
offset = _NX_GETERRVAL(offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|
|
@ -70,12 +70,12 @@ static void stdsostream_putc(FAR struct lib_sostream_s *self, int ch)
|
||||||
* Name: stdsostream_puts
|
* Name: stdsostream_puts
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int stdsostream_puts(FAR struct lib_sostream_s *self,
|
static ssize_t stdsostream_puts(FAR struct lib_sostream_s *self,
|
||||||
FAR const void *buffer, int len)
|
FAR const void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_stdsostream_s *stream =
|
FAR struct lib_stdsostream_s *stream =
|
||||||
(FAR struct lib_stdsostream_s *)self;
|
(FAR struct lib_stdsostream_s *)self;
|
||||||
int result;
|
ssize_t result;
|
||||||
|
|
||||||
DEBUGASSERT(self && stream->handle);
|
DEBUGASSERT(self && stream->handle);
|
||||||
|
|
||||||
|
@ -129,7 +129,13 @@ static off_t stdsostream_seek(FAR struct lib_sostream_s *self, off_t offset,
|
||||||
(FAR struct lib_stdsostream_s *)self;
|
(FAR struct lib_stdsostream_s *)self;
|
||||||
|
|
||||||
DEBUGASSERT(stream != NULL && stream->handle != NULL);
|
DEBUGASSERT(stream != NULL && stream->handle != NULL);
|
||||||
return fseek(stream->handle, offset, whence);
|
offset = fseek(stream->handle, offset, whence);
|
||||||
|
if (offset < 0)
|
||||||
|
{
|
||||||
|
offset = _NX_GETERRVAL(offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|
|
@ -102,15 +102,15 @@ static void syslograwstream_addchar(FAR struct lib_syslograwstream_s *stream,
|
||||||
* Name: syslograwstream_addstring
|
* Name: syslograwstream_addstring
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int
|
static ssize_t
|
||||||
syslograwstream_addstring(FAR struct lib_syslograwstream_s *stream,
|
syslograwstream_addstring(FAR struct lib_syslograwstream_s *stream,
|
||||||
FAR const char *buff, int len)
|
FAR const char *buff, size_t len)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
ssize_t ret = 0;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
int remain = CONFIG_SYSLOG_BUFSIZE - stream->offset;
|
size_t remain = CONFIG_SYSLOG_BUFSIZE - stream->offset;
|
||||||
remain = remain > len - ret ? len - ret : remain;
|
remain = remain > len - ret ? len - ret : remain;
|
||||||
memcpy(stream->buffer + stream->offset, buff + ret, remain);
|
memcpy(stream->buffer + stream->offset, buff + ret, remain);
|
||||||
stream->offset += remain;
|
stream->offset += remain;
|
||||||
|
@ -183,8 +183,8 @@ static void syslograwstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int syslograwstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t syslograwstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buff, int len)
|
FAR const void *buff, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_syslograwstream_s *stream = (FAR void *)self;
|
FAR struct lib_syslograwstream_s *stream = (FAR void *)self;
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ static int syslograwstream_puts(FAR struct lib_outstream_s *self,
|
||||||
|
|
||||||
return syslograwstream_addstring(stream, buff, len);
|
return syslograwstream_addstring(stream, buff, len);
|
||||||
#else
|
#else
|
||||||
int ret;
|
ssize_t ret;
|
||||||
|
|
||||||
/* Try writing until the write was successful or until an
|
/* Try writing until the write was successful or until an
|
||||||
* irrecoverable error occurs.
|
* irrecoverable error occurs.
|
||||||
|
|
|
@ -49,8 +49,8 @@ static void syslogstream_putc(FAR struct lib_outstream_s *self, int ch)
|
||||||
stream->common.nput++;
|
stream->common.nput++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int syslogstream_puts(FAR struct lib_outstream_s *self,
|
static ssize_t syslogstream_puts(FAR struct lib_outstream_s *self,
|
||||||
FAR const void *buff, int len)
|
FAR const void *buff, size_t len)
|
||||||
{
|
{
|
||||||
FAR struct lib_syslogstream_s *stream =
|
FAR struct lib_syslogstream_s *stream =
|
||||||
(FAR struct lib_syslogstream_s *)self;
|
(FAR struct lib_syslogstream_s *)self;
|
||||||
|
@ -61,7 +61,7 @@ static int syslogstream_puts(FAR struct lib_outstream_s *self,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
syslog(stream->priority, "%.*s", len, (FAR const char *)buff);
|
syslog(stream->priority, "%.*s", (int)len, (FAR const char *)buff);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,8 @@ static int zeroinstream_getc(FAR struct lib_instream_s *self)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int zeroinstream_gets(FAR struct lib_instream_s *self,
|
static ssize_t zeroinstream_gets(FAR struct lib_instream_s *self,
|
||||||
FAR void *buffer, int len)
|
FAR void *buffer, size_t len)
|
||||||
{
|
{
|
||||||
self->nget += len;
|
self->nget += len;
|
||||||
memset(buffer, 0, len);
|
memset(buffer, 0, len);
|
||||||
|
|
Loading…
Reference in a new issue