summaryrefslogtreecommitdiff
path: root/nuttx/lib
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-05-30 20:06:24 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2009-05-30 20:06:24 +0000
commit089fb0b4963141512ef007d6a00b76d4f190c28d (patch)
tree274f019eecf69774c70b064e90d4abc20e10d4e5 /nuttx/lib
parent2cbe4bfe9077608ae738c26dcd69188ecf12cf4d (diff)
downloadpx4-nuttx-089fb0b4963141512ef007d6a00b76d4f190c28d.tar.gz
px4-nuttx-089fb0b4963141512ef007d6a00b76d4f190c28d.tar.bz2
px4-nuttx-089fb0b4963141512ef007d6a00b76d4f190c28d.zip
Extend lib to handle incoming streams
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1840 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/lib')
-rw-r--r--nuttx/lib/Makefile9
-rw-r--r--nuttx/lib/lib_internal.h115
-rw-r--r--nuttx/lib/lib_libsprintf.c4
-rw-r--r--nuttx/lib/lib_libvsprintf.c108
-rw-r--r--nuttx/lib/lib_lowinstream.c80
-rw-r--r--nuttx/lib/lib_lowoutstream.c (renamed from nuttx/lib/lib_lowstream.c)14
-rw-r--r--nuttx/lib/lib_lowprintf.c8
-rw-r--r--nuttx/lib/lib_meminstream.c84
-rw-r--r--nuttx/lib/lib_memoutstream.c (renamed from nuttx/lib/lib_memstream.c)24
-rw-r--r--nuttx/lib/lib_nullinstream.c63
-rw-r--r--nuttx/lib/lib_nulloutstream.c (renamed from nuttx/lib/lib_nullstream.c)12
-rw-r--r--nuttx/lib/lib_rawinstream.c89
-rw-r--r--nuttx/lib/lib_rawoutstream.c (renamed from nuttx/lib/lib_rawstream.c)20
-rw-r--r--nuttx/lib/lib_rawprintf.c14
-rw-r--r--nuttx/lib/lib_snprintf.c8
-rw-r--r--nuttx/lib/lib_sprintf.c8
-rw-r--r--nuttx/lib/lib_stdinstream.c82
-rw-r--r--nuttx/lib/lib_stdoutstream.c (renamed from nuttx/lib/lib_stdstream.c)20
-rw-r--r--nuttx/lib/lib_vfprintf.c8
-rw-r--r--nuttx/lib/lib_vsnprintf.c8
-rw-r--r--nuttx/lib/lib_vsprintf.c8
21 files changed, 619 insertions, 167 deletions
diff --git a/nuttx/lib/Makefile b/nuttx/lib/Makefile
index 47c410309..32c2e620d 100644
--- a/nuttx/lib/Makefile
+++ b/nuttx/lib/Makefile
@@ -54,18 +54,19 @@ CTYPE_SRCS =
STDIO_SRCS = lib_printf.c lib_rawprintf.c lib_lowprintf.c lib_dbg.c \
lib_sprintf.c lib_snprintf.c lib_libsprintf.c lib_vsprintf.c \
- lib_vsnprintf.c lib_libvsprintf.c lib_memstream.c \
- lib_lowstream.c lib_nullstream.c lib_sscanf.c
+ lib_vsnprintf.c lib_libvsprintf.c lib_meminstream.c \
+ lib_memoutstream.c lib_lowinstream.c lib_lowoutstream.c \
+ lib_nullinstream.c lib_nulloutstream.c lib_sscanf.c
ifneq ($(CONFIG_NFILE_DESCRIPTORS),0)
-STDIO_SRCS += lib_rawstream.c
+STDIO_SRCS += lib_rawinstream.c lib_rawoutstream.c
ifneq ($(CONFIG_NFILE_STREAMS),0)
STDIO_SRCS += lib_fopen.c lib_fclose.c lib_fread.c lib_libfread.c lib_fseek.c \
lib_ftell.c lib_fsetpos.c lib_fgetpos.c lib_fgetc.c lib_fgets.c \
lib_gets.c lib_fwrite.c lib_libfwrite.c lib_fflush.c \
lib_libflushall.c lib_libfflush.c lib_rdflush.c lib_wrflush.c \
lib_fputc.c lib_puts.c lib_fputs.c lib_ungetc.c lib_vprintf.c \
- lib_fprintf.c lib_vfprintf.c lib_stdstream.c
+ lib_fprintf.c lib_vfprintf.c lib_stdinstream.c lib_stdoutstream.c
endif
endif
diff --git a/nuttx/lib/lib_internal.h b/nuttx/lib/lib_internal.h
index 0554db07e..d19812475 100644
--- a/nuttx/lib/lib_internal.h
+++ b/nuttx/lib/lib_internal.h
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_internal.h
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -69,34 +69,62 @@
* to manage variable sized output.
*/
-struct lib_stream_s;
+struct lib_instream_s;
+struct lib_outstream_s;
-typedef void (*lib_putc_t)(FAR struct lib_stream_s *this, int ch);
+typedef int (*lib_getc_t)(FAR struct lib_instream_s *this);
+typedef void (*lib_putc_t)(FAR struct lib_outstream_s *this, int ch);
-struct lib_stream_s
+struct lib_instream_s
{
- lib_putc_t put; /* Pointer to function to put one character */
- int nput; /* Total number of characters put. Written
- * by put method, readable by user */
+ lib_getc_t get; /* Pointer to function to get one character */
+ int nget; /* Total number of characters gotten. Written
+ * by get method, readable by user */
};
-struct lib_memstream_s
+struct lib_outstream_s
{
- struct lib_stream_s public;
- FAR char *buffer; /* Address of first byte in the buffer */
- int buflen; /* Size of the buffer in bytes */
+ lib_putc_t put; /* Pointer to function to put one character */
+ int nput; /* Total number of characters put. Written
+ * by put method, readable by user */
};
-struct lib_stdstream_s
+struct lib_meminstream_s
{
- struct lib_stream_s public;
- FAR FILE *stream;
+ struct lib_instream_s public;
+ FAR char *buffer; /* Address of first byte in the buffer */
+ int buflen; /* Size of the buffer in bytes */
};
-struct lib_rawstream_s
+struct lib_memoutstream_s
{
- struct lib_stream_s public;
- int fd;
+ struct lib_outstream_s public;
+ FAR char *buffer; /* Address of first byte in the buffer */
+ int buflen; /* Size of the buffer in bytes */
+};
+
+struct lib_stdinstream_s
+{
+ struct lib_instream_s public;
+ FAR FILE *stream;
+};
+
+struct lib_stdoutstream_s
+{
+ struct lib_outstream_s public;
+ FAR FILE *stream;
+};
+
+struct lib_rawoutstream_s
+{
+ struct lib_outstream_s public;
+ int fd;
+};
+
+struct lib_rawinstream_s
+{
+ struct lib_instream_s public;
+ int fd;
};
/****************************************************************************
@@ -114,39 +142,64 @@ extern void stream_semtake(FAR struct streamlist *list);
extern void stream_semgive(FAR struct streamlist *list);
#endif
-/* Defined in lib_memstream.c */
+/* Defined in lib_memoutstream.c */
-extern void lib_memstream(FAR struct lib_memstream_s *memstream,
- FAR char *bufstart, int buflen);
+extern void lib_memoutstream(FAR struct lib_memoutstream_s *memoutstream,
+ FAR char *bufstart, int buflen);
-/* Defined in lib_stdstream.c */
+/* Defined in lib_meminstream.c */
-extern void lib_stdstream(FAR struct lib_stdstream_s *stdstream,
- FAR FILE *stream);
+extern void lib_meminstream(FAR struct lib_meminstream_s *meminstream,
+ FAR char *bufstart, int buflen);
-/* Defined in lib_rawstream.c */
+/* Defined in lib_stdinstream.c */
-extern void lib_rawstream(FAR struct lib_rawstream_s *rawstream,
+extern void lib_stdinstream(FAR struct lib_stdinstream_s *stdinstream,
+ FAR FILE *stream);
+
+/* Defined in lib_stdoutstream.c */
+
+extern void lib_stdoutstream(FAR struct lib_stdoutstream_s *stdoutstream,
+ FAR FILE *stream);
+
+/* Defined in lib_rawinstream.c */
+
+extern void lib_rawinstream(FAR struct lib_rawinstream_s *rawinstream,
+ int fd);
+
+/* Defined in lib_rawoutstream.c */
+
+extern void lib_rawoutstream(FAR struct lib_rawoutstream_s *rawoutstream,
int fd);
-/* Defined in lib_lowstream.c */
+/* Defined in lib_lowinstream.c */
+
+#ifdef CONFIG_ARCH_LOWGETC
+extern void lib_lowinstream(FAR struct lib_instream_s *lowinstream);
+#endif
+
+/* Defined in lib_lowoutstream.c */
#ifdef CONFIG_ARCH_LOWPUTC
-extern void lib_lowstream(FAR struct lib_stream_s *rawstream);
+extern void lib_lowoutstream(FAR struct lib_outstream_s *lowoutstream);
#endif
-/* Defined in lib_nullstream.c */
+/* Defined in lib_nullinstream.c */
+
+extern void lib_nullinstream(FAR struct lib_instream_s *nullinstream);
+
+/* Defined in lib_nulloutstream.c */
-extern void lib_nullstream(FAR struct lib_stream_s *nullstream);
+extern void lib_nulloutstream(FAR struct lib_outstream_s *nulloutstream);
/* Defined in lib_libsprintf.c */
-extern int lib_sprintf (FAR struct lib_stream_s *obj,
+extern int lib_sprintf (FAR struct lib_outstream_s *obj,
const char *fmt, ...);
/* Defined lib_libvsprintf.c */
-extern int lib_vsprintf(FAR struct lib_stream_s *obj,
+extern int lib_vsprintf(FAR struct lib_outstream_s *obj,
const char *src, va_list ap);
/* Defined lib_rawprintf.c */
diff --git a/nuttx/lib/lib_libsprintf.c b/nuttx/lib/lib_libsprintf.c
index 418ab7fc4..1f297fe45 100644
--- a/nuttx/lib/lib_libsprintf.c
+++ b/nuttx/lib/lib_libsprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_libsprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +76,7 @@
* Name: lib_sprintf
****************************************************************************/
-int lib_sprintf(FAR struct lib_stream_s *obj, const char *fmt, ...)
+int lib_sprintf(FAR struct lib_outstream_s *obj, const char *fmt, ...)
{
va_list ap;
int n;
diff --git a/nuttx/lib/lib_libvsprintf.c b/nuttx/lib/lib_libvsprintf.c
index ac3abc88e..8e9742ef2 100644
--- a/nuttx/lib/lib_libvsprintf.c
+++ b/nuttx/lib/lib_libvsprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib_libvsprintf.c
*
- * Copyright (C) 2007, 2008, 2009 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -109,7 +109,7 @@ enum
/* Pointer to ASCII conversion */
#ifdef CONFIG_PTR_IS_NOT_INT
-static void ptohex(FAR struct lib_stream_s *obj, ubyte flags, FAR void *p);
+static void ptohex(FAR struct lib_outstream_s *obj, ubyte flags, FAR void *p);
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
static int getsizesize(ubyte fmt, ubyte flags, FAR void *p)
#endif /* CONFIG_NOPRINTF_FIELDWIDTH */
@@ -117,11 +117,11 @@ static int getsizesize(ubyte fmt, ubyte flags, FAR void *p)
/* Unsigned int to ASCII conversion */
-static void utodec(FAR struct lib_stream_s *obj, unsigned int n);
-static void utohex(FAR struct lib_stream_s *obj, unsigned int n, ubyte a);
-static void utooct(FAR struct lib_stream_s *obj, unsigned int n);
-static void utobin(FAR struct lib_stream_s *obj, unsigned int n);
-static void utoascii(FAR struct lib_stream_s *obj, ubyte fmt,
+static void utodec(FAR struct lib_outstream_s *obj, unsigned int n);
+static void utohex(FAR struct lib_outstream_s *obj, unsigned int n, ubyte a);
+static void utooct(FAR struct lib_outstream_s *obj, unsigned int n);
+static void utobin(FAR struct lib_outstream_s *obj, unsigned int n);
+static void utoascii(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, unsigned int lln);
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
@@ -132,11 +132,11 @@ static int getusize(ubyte fmt, ubyte flags, unsigned int lln);
/* Unsigned long int to ASCII conversion */
#ifdef CONFIG_LONG_IS_NOT_INT
-static void lutodec(FAR struct lib_stream_s *obj, unsigned long ln);
-static void lutohex(FAR struct lib_stream_s *obj, unsigned long ln, ubyte a);
-static void lutooct(FAR struct lib_stream_s *obj, unsigned long ln);
-static void lutobin(FAR struct lib_stream_s *obj, unsigned long ln);
-static void lutoascii(FAR struct lib_stream_s *obj, ubyte fmt,
+static void lutodec(FAR struct lib_outstream_s *obj, unsigned long ln);
+static void lutohex(FAR struct lib_outstream_s *obj, unsigned long ln, ubyte a);
+static void lutooct(FAR struct lib_outstream_s *obj, unsigned long ln);
+static void lutobin(FAR struct lib_outstream_s *obj, unsigned long ln);
+static void lutoascii(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, unsigned long ln);
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
static void lfixup(ubyte fmt, FAR ubyte *flags, long *ln);
@@ -147,11 +147,11 @@ static int getlusize(ubyte fmt, FAR ubyte flags, unsigned long ln);
/* Unsigned long long int to ASCII conversions */
#ifdef CONFIG_HAVE_LONG_LONG
-static void llutodec(FAR struct lib_stream_s *obj, unsigned long long lln);
-static void llutohex(FAR struct lib_stream_s *obj, unsigned long long lln, ubyte a);
-static void llutooct(FAR struct lib_stream_s *obj, unsigned long long lln);
-static void llutobin(FAR struct lib_stream_s *obj, unsigned long long lln);
-static void llutoascii(FAR struct lib_stream_s *obj, ubyte fmt,
+static void llutodec(FAR struct lib_outstream_s *obj, unsigned long long lln);
+static void llutohex(FAR struct lib_outstream_s *obj, unsigned long long lln, ubyte a);
+static void llutooct(FAR struct lib_outstream_s *obj, unsigned long long lln);
+static void llutobin(FAR struct lib_outstream_s *obj, unsigned long long lln);
+static void llutoascii(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, unsigned long long lln);
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
static void llfixup(ubyte fmt, FAR ubyte *flags, FAR long long *lln);
@@ -160,9 +160,9 @@ static int getllusize(ubyte fmt, FAR ubyte flags, FAR unsigned long long lln);
#endif
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
-static void prejustify(FAR struct lib_stream_s *obj, ubyte fmt,
+static void prejustify(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, int fieldwidth, int numwidth);
-static void postjustify(FAR struct lib_stream_s *obj, ubyte fmt,
+static void postjustify(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, int fieldwidth, int numwidth);
#endif
@@ -193,7 +193,7 @@ static const char g_nullstring[] = "(null)";
****************************************************************************/
#ifdef CONFIG_PTR_IS_NOT_INT
-static void ptohex(FAR struct lib_stream_s *obj, ubyte flags, FAR void *p)
+static void ptohex(FAR struct lib_outstream_s *obj, ubyte flags, FAR void *p)
{
union
{
@@ -236,11 +236,11 @@ static void ptohex(FAR struct lib_stream_s *obj, ubyte flags, FAR void *p)
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
static int getpsize(ubyte flags, FAR void *p)
{
- struct lib_stream_s nullstream;
- lib_nullstream(&nullstream);
+ struct lib_outstream_s nulloutstream;
+ lib_nulloutstream(&nulloutstream);
- ptohex(&nullstream, flags, p);
- return nullstream.nput;
+ ptohex(&nulloutstream, flags, p);
+ return nulloutstream.nput;
}
#endif /* CONFIG_NOPRINTF_FIELDWIDTH */
@@ -250,7 +250,7 @@ static int getpsize(ubyte flags, FAR void *p)
* Name: utodec
****************************************************************************/
-static void utodec(FAR struct lib_stream_s *obj, unsigned int n)
+static void utodec(FAR struct lib_outstream_s *obj, unsigned int n)
{
unsigned int remainder = n % 10;
unsigned int dividend = n / 10;
@@ -267,7 +267,7 @@ static void utodec(FAR struct lib_stream_s *obj, unsigned int n)
* Name: utohex
****************************************************************************/
-static void utohex(FAR struct lib_stream_s *obj, unsigned int n, ubyte a)
+static void utohex(FAR struct lib_outstream_s *obj, unsigned int n, ubyte a)
{
boolean nonzero = FALSE;
ubyte bits;
@@ -300,7 +300,7 @@ static void utohex(FAR struct lib_stream_s *obj, unsigned int n, ubyte a)
* Name: utooct
****************************************************************************/
-static void utooct(FAR struct lib_stream_s *obj, unsigned int n)
+static void utooct(FAR struct lib_outstream_s *obj, unsigned int n)
{
unsigned int remainder = n & 0x7;
unsigned int dividend = n >> 3;
@@ -317,7 +317,7 @@ static void utooct(FAR struct lib_stream_s *obj, unsigned int n)
* Name: utobin
****************************************************************************/
-static void utobin(FAR struct lib_stream_s *obj, unsigned int n)
+static void utobin(FAR struct lib_outstream_s *obj, unsigned int n)
{
unsigned int remainder = n & 1;
unsigned int dividend = n >> 1;
@@ -334,7 +334,7 @@ static void utobin(FAR struct lib_stream_s *obj, unsigned int n)
* Name: utoascii
****************************************************************************/
-static void utoascii(FAR struct lib_stream_s *obj, ubyte fmt, ubyte flags, unsigned int n)
+static void utoascii(FAR struct lib_outstream_s *obj, ubyte fmt, ubyte flags, unsigned int n)
{
/* Perform the integer conversion according to the format specifier */
@@ -490,11 +490,11 @@ static void fixup(ubyte fmt, FAR ubyte *flags, FAR int *n)
static int getusize(ubyte fmt, ubyte flags, unsigned int n)
{
- struct lib_stream_s nullstream;
- lib_nullstream(&nullstream);
+ struct lib_outstream_s nulloutstream;
+ lib_nulloutstream(&nulloutstream);
- utoascii(&nullstream, fmt, flags, n);
- return nullstream.nput;
+ utoascii(&nulloutstream, fmt, flags, n);
+ return nulloutstream.nput;
}
#endif /* CONFIG_NOPRINTF_FIELDWIDTH */
@@ -503,7 +503,7 @@ static int getusize(ubyte fmt, ubyte flags, unsigned int n)
* Name: lutodec
****************************************************************************/
-static void lutodec(FAR struct lib_stream_s *obj, unsigned long n)
+static void lutodec(FAR struct lib_outstream_s *obj, unsigned long n)
{
unsigned int remainder = n % 10;
unsigned long dividend = n / 10;
@@ -520,7 +520,7 @@ static void lutodec(FAR struct lib_stream_s *obj, unsigned long n)
* Name: lutohex
****************************************************************************/
-static void lutohex(FAR struct lib_stream_s *obj, unsigned long n, ubyte a)
+static void lutohex(FAR struct lib_outstream_s *obj, unsigned long n, ubyte a)
{
boolean nonzero = FALSE;
ubyte bits;
@@ -553,7 +553,7 @@ static void lutohex(FAR struct lib_stream_s *obj, unsigned long n, ubyte a)
* Name: lutooct
****************************************************************************/
-static void lutooct(FAR struct lib_stream_s *obj, unsigned long n)
+static void lutooct(FAR struct lib_outstream_s *obj, unsigned long n)
{
unsigned int remainder = n & 0x7;
unsigned long dividend = n >> 3;
@@ -570,7 +570,7 @@ static void lutooct(FAR struct lib_stream_s *obj, unsigned long n)
* Name: lutobin
****************************************************************************/
-static void lutobin(FAR struct lib_stream_s *obj, unsigned long n)
+static void lutobin(FAR struct lib_outstream_s *obj, unsigned long n)
{
unsigned int remainder = n & 1;
unsigned long dividend = n >> 1;
@@ -587,7 +587,7 @@ static void lutobin(FAR struct lib_stream_s *obj, unsigned long n)
* Name: lutoascii
****************************************************************************/
-static void lutoascii(FAR struct lib_stream_s *obj, ubyte fmt, ubyte flags, unsigned long ln)
+static void lutoascii(FAR struct lib_outstream_s *obj, ubyte fmt, ubyte flags, unsigned long ln)
{
/* Perform the integer conversion according to the format specifier */
@@ -738,11 +738,11 @@ static void lfixup(ubyte fmt, FAR ubyte *flags, FAR long *ln)
static int getlusize(ubyte fmt, ubyte flags, unsigned long ln)
{
- struct lib_stream_s nullstream;
- lib_nullstream(&nullstream);
+ struct lib_outstream_s nulloutstream;
+ lib_nulloutstream(&nulloutstream);
- lutoascii(&nullstream, fmt, flags, ln);
- return nullstream.nput;
+ lutoascii(&nulloutstream, fmt, flags, ln);
+ return nulloutstream.nput;
}
#endif /* CONFIG_NOPRINTF_FIELDWIDTH */
@@ -753,7 +753,7 @@ static int getlusize(ubyte fmt, ubyte flags, unsigned long ln)
* Name: llutodec
****************************************************************************/
-static void llutodec(FAR struct lib_stream_s *obj, unsigned long long n)
+static void llutodec(FAR struct lib_outstream_s *obj, unsigned long long n)
{
unsigned int remainder = n % 10;
unsigned long long dividend = n / 10;
@@ -770,7 +770,7 @@ static void llutodec(FAR struct lib_stream_s *obj, unsigned long long n)
* Name: llutohex
****************************************************************************/
-static void llutohex(FAR struct lib_stream_s *obj, unsigned long long n, ubyte a)
+static void llutohex(FAR struct lib_outstream_s *obj, unsigned long long n, ubyte a)
{
boolean nonzero = FALSE;
ubyte bits;
@@ -803,7 +803,7 @@ static void llutohex(FAR struct lib_stream_s *obj, unsigned long long n, ubyte a
* Name: llutooct
****************************************************************************/
-static void llutooct(FAR struct lib_stream_s *obj, unsigned long long n)
+static void llutooct(FAR struct lib_outstream_s *obj, unsigned long long n)
{
unsigned int remainder = n & 0x7;
unsigned long long dividend = n >> 3;
@@ -820,7 +820,7 @@ static void llutooct(FAR struct lib_stream_s *obj, unsigned long long n)
* Name: llutobin
****************************************************************************/
-static void llutobin(FAR struct lib_stream_s *obj, unsigned long long n)
+static void llutobin(FAR struct lib_outstream_s *obj, unsigned long long n)
{
unsigned int remainder = n & 1;
unsigned long long dividend = n >> 1;
@@ -837,7 +837,7 @@ static void llutobin(FAR struct lib_stream_s *obj, unsigned long long n)
* Name: llutoascii
****************************************************************************/
-static void llutoascii(FAR struct lib_stream_s *obj, ubyte fmt, ubyte flags, unsigned long long lln)
+static void llutoascii(FAR struct lib_outstream_s *obj, ubyte fmt, ubyte flags, unsigned long long lln)
{
/* Perform the integer conversion according to the format specifier */
@@ -988,12 +988,12 @@ static void llfixup(ubyte fmt, FAR ubyte *flags, FAR long long *lln)
static int getllusize(ubyte fmt, ubyte flags, unsigned long long lln)
{
- struct lib_stream_s nullstream;
- lib_nullstream(&nullstream);
+ struct lib_outstream_s nulloutstream;
+ lib_nulloutstream(&nulloutstream);
- llutoascii(&nullstream, fmt, flags, lln);
- return nullstream.nput;
+ llutoascii(&nulloutstream, fmt, flags, lln);
+ return nulloutstream.nput;
}
#endif /* CONFIG_NOPRINTF_FIELDWIDTH */
@@ -1004,7 +1004,7 @@ static int getllusize(ubyte fmt, ubyte flags, unsigned long long lln)
****************************************************************************/
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
-static void prejustify(FAR struct lib_stream_s *obj, ubyte fmt,
+static void prejustify(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, int fieldwidth, int numwidth)
{
int i;
@@ -1070,7 +1070,7 @@ static void prejustify(FAR struct lib_stream_s *obj, ubyte fmt,
****************************************************************************/
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
-static void postjustify(FAR struct lib_stream_s *obj, ubyte fmt,
+static void postjustify(FAR struct lib_outstream_s *obj, ubyte fmt,
ubyte flags, int fieldwidth, int numwidth)
{
int i;
@@ -1107,7 +1107,7 @@ static void postjustify(FAR struct lib_stream_s *obj, ubyte fmt,
* lib_vsprintf
****************************************************************************/
-int lib_vsprintf(FAR struct lib_stream_s *obj, const char *src, va_list ap)
+int lib_vsprintf(FAR struct lib_outstream_s *obj, const char *src, va_list ap)
{
char *ptmp;
#ifndef CONFIG_NOPRINTF_FIELDWIDTH
diff --git a/nuttx/lib/lib_lowinstream.c b/nuttx/lib/lib_lowinstream.c
new file mode 100644
index 000000000..f92fdb5ad
--- /dev/null
+++ b/nuttx/lib/lib_lowinstream.c
@@ -0,0 +1,80 @@
+/****************************************************************************
+ * lib_lowinstream.c
+ *
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#ifdef CONFIG_ARCH_LOWGETC
+
+#include <stdio.h>
+#include <errno.h>
+#include <nuttx/arch.h>
+
+#include "lib_internal.h"
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: lowinstream_getc
+ ****************************************************************************/
+
+static int lowinstream_getc(FAR struct lib_outstream_s *this)
+{
+ if (this && up_getc(ch) != EOF)
+ {
+ this->nget++;
+ }
+}
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: lib_lowinstream
+ ****************************************************************************/
+
+void lib_lowinstream(FAR struct lib_outstream_s *stream)
+{
+ stream->get = lowinstream_getc;
+ stream->nget = 0;
+}
+
+#endif /* CONFIG_ARCH_LOWGETC */
diff --git a/nuttx/lib/lib_lowstream.c b/nuttx/lib/lib_lowoutstream.c
index 0045ed7cd..dad84ce85 100644
--- a/nuttx/lib/lib_lowstream.c
+++ b/nuttx/lib/lib_lowoutstream.c
@@ -1,7 +1,7 @@
/****************************************************************************
- * lib_lowstream.c
+ * lib_lowoutstream.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -52,10 +52,10 @@
****************************************************************************/
/****************************************************************************
- * Name: lowstream_putc
+ * Name: lowoutstream_putc
****************************************************************************/
-static void lowstream_putc(FAR struct lib_stream_s *this, int ch)
+static void lowoutstream_putc(FAR struct lib_outstream_s *this, int ch)
{
if (this && up_putc(ch) != EOF)
{
@@ -68,12 +68,12 @@ static void lowstream_putc(FAR struct lib_stream_s *this, int ch)
****************************************************************************/
/****************************************************************************
- * Name: lib_lowstream
+ * Name: lib_lowoutstream
****************************************************************************/
-void lib_lowstream(FAR struct lib_stream_s *stream)
+void lib_lowoutstream(FAR struct lib_outstream_s *stream)
{
- stream->put = lowstream_putc;
+ stream->put = lowoutstream_putc;
stream->nput = 0;
}
diff --git a/nuttx/lib/lib_lowprintf.c b/nuttx/lib/lib_lowprintf.c
index 0059389df..1b071331f 100644
--- a/nuttx/lib/lib_lowprintf.c
+++ b/nuttx/lib/lib_lowprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_lowprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -86,14 +86,14 @@
int lib_lowvprintf(const char *fmt, va_list ap)
{
- struct lib_stream_s stream;
+ struct lib_outstream_s stream;
/* Wrap the stdout in a stream object and let lib_vsprintf
* do the work.
*/
- lib_lowstream((FAR struct lib_stream_s *)&stream);
- return lib_vsprintf((FAR struct lib_stream_s *)&stream, fmt, ap);
+ lib_lowoutstream((FAR struct lib_outstream_s *)&stream);
+ return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap);
}
/****************************************************************************
diff --git a/nuttx/lib/lib_meminstream.c b/nuttx/lib/lib_meminstream.c
new file mode 100644
index 000000000..ccbf1cec4
--- /dev/null
+++ b/nuttx/lib/lib_meminstream.c
@@ -0,0 +1,84 @@
+/****************************************************************************
+ * lib/lib_meminstream.c
+ *
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include "lib_internal.h"
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: meminstream_getc
+ ****************************************************************************/
+
+static int meminstream_getc(FAR struct lib_instream_s *this)
+{
+ FAR struct lib_meminstream_s *mthis = (FAR struct lib_meminstream_s *)this;
+ int ret;
+
+ if (this && this->nget < mthis->buflen - 1)
+ {
+ ret = mthis->buffer[this->nget];
+ this->nget++;
+ }
+ else
+ {
+ ret = EOF;
+ }
+ return ret;
+}
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: lib_meminstream
+ ****************************************************************************/
+
+void lib_meminstream(FAR struct lib_meminstream_s *meminstream,
+ FAR char *bufstart, int buflen)
+{
+ meminstream->public.get = meminstream_getc;
+ meminstream->public.nget = 0; /* Will be buffer index */
+ meminstream->buffer = bufstart; /* Start of buffer */
+ meminstream->buflen = buflen; /* Length of the buffer */
+}
+
+
diff --git a/nuttx/lib/lib_memstream.c b/nuttx/lib/lib_memoutstream.c
index 937408be4..7e6412304 100644
--- a/nuttx/lib/lib_memstream.c
+++ b/nuttx/lib/lib_memoutstream.c
@@ -1,7 +1,7 @@
/****************************************************************************
- * lib/lib_memstream.c
+ * lib/lib_memoutstream.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -44,12 +44,12 @@
****************************************************************************/
/****************************************************************************
- * Name: memstream_putc
+ * Name: memoutstream_putc
****************************************************************************/
-static void memstream_putc(FAR struct lib_stream_s *this, int ch)
+static void memoutstream_putc(FAR struct lib_outstream_s *this, int ch)
{
- FAR struct lib_memstream_s *mthis = (FAR struct lib_memstream_s *)this;
+ FAR struct lib_memoutstream_s *mthis = (FAR struct lib_memoutstream_s *)this;
if (this && this->nput < mthis->buflen - 1)
{
mthis->buffer[this->nput] = ch;
@@ -63,16 +63,16 @@ static void memstream_putc(FAR struct lib_stream_s *this, int ch)
****************************************************************************/
/****************************************************************************
- * Name: lib_memstream
+ * Name: lib_memoutstream
****************************************************************************/
-void lib_memstream(FAR struct lib_memstream_s *memstream,
- FAR char *bufstart, int buflen)
+void lib_memoutstream(FAR struct lib_memoutstream_s *memoutstream,
+ FAR char *bufstart, int buflen)
{
- memstream->public.put = memstream_putc;
- memstream->public.nput = 0; /* Will be buffer index */
- memstream->buffer = bufstart; /* Start of buffer */
- memstream->buflen = buflen - 1; /* Save space for null terminator */
+ memoutstream->public.put = memoutstream_putc;
+ memoutstream->public.nput = 0; /* Will be buffer index */
+ memoutstream->buffer = bufstart; /* Start of buffer */
+ memoutstream->buflen = buflen - 1; /* Save space for null terminator */
}
diff --git a/nuttx/lib/lib_nullinstream.c b/nuttx/lib/lib_nullinstream.c
new file mode 100644
index 000000000..dec0a191e
--- /dev/null
+++ b/nuttx/lib/lib_nullinstream.c
@@ -0,0 +1,63 @@
+/****************************************************************************
+ * lib/lib_nullinstream.c
+ *
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <stdio.h>
+#include <errno.h>
+#include "lib_internal.h"
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+static int nullinstream_getc(FAR struct lib_instream_s *this)
+{
+ this->nget++;
+ return 0;
+}
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+void lib_nullinstream(FAR struct lib_instream_s *nullinstream)
+{
+ nullinstream->get = nullinstream_getc;
+ nullinstream->nget = 0;
+}
+
diff --git a/nuttx/lib/lib_nullstream.c b/nuttx/lib/lib_nulloutstream.c
index 52ba09f68..f2638fbcf 100644
--- a/nuttx/lib/lib_nullstream.c
+++ b/nuttx/lib/lib_nulloutstream.c
@@ -1,7 +1,7 @@
/****************************************************************************
- * lib/lib_nullstream.c
+ * lib/lib_nulloutstream.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -45,7 +45,7 @@
* Private Functions
****************************************************************************/
-static void nullstream_putc(FAR struct lib_stream_s *this, int ch)
+static void nulloutstream_putc(FAR struct lib_outstream_s *this, int ch)
{
this->nput++;
}
@@ -54,9 +54,9 @@ static void nullstream_putc(FAR struct lib_stream_s *this, int ch)
* Public Functions
****************************************************************************/
-void lib_nullstream(FAR struct lib_stream_s *nullstream)
+void lib_nulloutstream(FAR struct lib_outstream_s *nulloutstream)
{
- nullstream->put = nullstream_putc;
- nullstream->nput = 0;
+ nulloutstream->put = nulloutstream_putc;
+ nulloutstream->nput = 0;
}
diff --git a/nuttx/lib/lib_rawinstream.c b/nuttx/lib/lib_rawinstream.c
new file mode 100644
index 000000000..39cfa0b1e
--- /dev/null
+++ b/nuttx/lib/lib_rawinstream.c
@@ -0,0 +1,89 @@
+/****************************************************************************
+ * lib/lib_rawinstream.c
+ *
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <unistd.h>
+#include <errno.h>
+#include "lib_internal.h"
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: rawinstream_getc
+ ****************************************************************************/
+
+static int rawinstream_getc(FAR struct lib_instream_s *this)
+{
+ FAR struct lib_rawinstream_s *rthis = (FAR struct lib_rawinstream_s *)this;
+ char ch;
+
+ if (this && rthis->fd >= 0)
+ {
+ int nwritten;
+ do
+ {
+ nwritten = read(rthis->fd, &ch, 1);
+ if (nwritten == 1)
+ {
+ this->nget++;
+ return ch;
+ }
+ }
+ while (nwritten < 0 && errno == EINTR);
+ }
+
+ return EOF;
+}
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: lib_rawinstream
+ ****************************************************************************/
+
+void lib_rawinstream(FAR struct lib_rawinstream_s *rawinstream, int fd)
+{
+ rawinstream->public.get = rawinstream_getc;
+ rawinstream->public.nget = 0;
+ rawinstream->fd = fd;
+}
+
diff --git a/nuttx/lib/lib_rawstream.c b/nuttx/lib/lib_rawoutstream.c
index 068199db5..1772f3927 100644
--- a/nuttx/lib/lib_rawstream.c
+++ b/nuttx/lib/lib_rawoutstream.c
@@ -1,7 +1,7 @@
/****************************************************************************
- * lib/lib_rawstream.c
+ * lib/lib_rawoutstream.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -46,12 +46,12 @@
****************************************************************************/
/****************************************************************************
- * Name: rawstream_putc
+ * Name: rawoutstream_putc
****************************************************************************/
-static void rawstream_putc(FAR struct lib_stream_s *this, int ch)
+static void rawoutstream_putc(FAR struct lib_outstream_s *this, int ch)
{
- FAR struct lib_rawstream_s *rthis = (FAR struct lib_rawstream_s *)this;
+ FAR struct lib_rawoutstream_s *rthis = (FAR struct lib_rawoutstream_s *)this;
char buffer = ch;
if (this && rthis->fd >= 0)
{
@@ -73,13 +73,13 @@ static void rawstream_putc(FAR struct lib_stream_s *this, int ch)
****************************************************************************/
/****************************************************************************
- * Name: lib_rawstream
+ * Name: lib_rawoutstream
****************************************************************************/
-void lib_rawstream(FAR struct lib_rawstream_s *rawstream, int fd)
+void lib_rawoutstream(FAR struct lib_rawoutstream_s *rawoutstream, int fd)
{
- rawstream->public.put = rawstream_putc;
- rawstream->public.nput = 0;
- rawstream->fd = fd;
+ rawoutstream->public.put = rawoutstream_putc;
+ rawoutstream->public.nput = 0;
+ rawoutstream->fd = fd;
}
diff --git a/nuttx/lib/lib_rawprintf.c b/nuttx/lib/lib_rawprintf.c
index 7b61c299d..9999b8ecc 100644
--- a/nuttx/lib/lib_rawprintf.c
+++ b/nuttx/lib/lib_rawprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_rawprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -85,25 +85,25 @@ int lib_rawvprintf(const char *fmt, va_list ap)
{
#if CONFIG_NFILE_DESCRIPTORS > 0
- struct lib_rawstream_s rawstream;
+ struct lib_rawoutstream_s rawoutstream;
/* Wrap the stdout in a stream object and let lib_vsprintf
* do the work.
*/
- lib_rawstream(&rawstream, 1);
- return lib_vsprintf(&rawstream.public, fmt, ap);
+ lib_rawoutstream(&rawoutstream, 1);
+ return lib_vsprintf(&rawoutstream.public, fmt, ap);
#elif defined(CONFIG_ARCH_LOWPUTC)
- struct lib_stream_s stream;
+ struct lib_outstream_s stream;
/* Wrap the low-level output in a stream object and let lib_vsprintf
* do the work.
*/
- lib_lowstream((FAR struct lib_stream_s *)&stream);
- return lib_vsprintf((FAR struct lib_stream_s *)&stream, fmt, ap);
+ lib_lowoutstream((FAR struct lib_outstream_s *)&stream);
+ return lib_vsprintf((FAR struct lib_outstream_s *)&stream, fmt, ap);
#else
return 0;
diff --git a/nuttx/lib/lib_snprintf.c b/nuttx/lib/lib_snprintf.c
index e1673161f..ecb428999 100644
--- a/nuttx/lib/lib_snprintf.c
+++ b/nuttx/lib/lib_snprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_snprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -78,18 +78,18 @@
int snprintf(FAR char *buf, size_t size, const char *format, ...)
{
- struct lib_memstream_s memstream;
+ struct lib_memoutstream_s memoutstream;
va_list ap;
int n;
/* Initialize a memory stream to write to the buffer */
- lib_memstream((FAR struct lib_memstream_s *)&memstream, buf, size);
+ lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, buf, size);
/* Then let lib_vsprintf do the real work */
va_start(ap, format);
- n = lib_vsprintf((FAR struct lib_stream_s *)&memstream.public, format, ap);
+ n = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, format, ap);
va_end(ap);
return n;
}
diff --git a/nuttx/lib/lib_sprintf.c b/nuttx/lib/lib_sprintf.c
index 0a5496b88..f5efe3235 100644
--- a/nuttx/lib/lib_sprintf.c
+++ b/nuttx/lib/lib_sprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_sprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -78,18 +78,18 @@
int sprintf (FAR char *buf, const char *fmt, ...)
{
- struct lib_memstream_s memstream;
+ struct lib_memoutstream_s memoutstream;
va_list ap;
int n;
/* Initialize a memory stream to write to the buffer */
- lib_memstream((FAR struct lib_memstream_s *)&memstream, buf, LIB_BUFLEN_UNKNOWN);
+ lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, buf, LIB_BUFLEN_UNKNOWN);
/* Then let lib_vsprintf do the real work */
va_start(ap, fmt);
- n = lib_vsprintf((FAR struct lib_stream_s *)&memstream.public, fmt, ap);
+ n = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, fmt, ap);
va_end(ap);
return n;
}
diff --git a/nuttx/lib/lib_stdinstream.c b/nuttx/lib/lib_stdinstream.c
new file mode 100644
index 000000000..1833f3a7a
--- /dev/null
+++ b/nuttx/lib/lib_stdinstream.c
@@ -0,0 +1,82 @@
+/****************************************************************************
+ * lib/lib_stdinstream.c
+ *
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include "lib_internal.h"
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: stdinstream_getc
+ ****************************************************************************/
+
+static int stdinstream_getc(FAR struct lib_instream_s *this)
+{
+ FAR struct lib_stdinstream_s *sthis = (FAR struct lib_stdinstream_s *)this;
+ int ret;
+
+ if (this)
+ {
+ ret = getc(sthis->stream);
+ if (ret != EOF)
+ {
+ this->nget++;
+ }
+ }
+ return ret;
+}
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: lib_stdinstream
+ ****************************************************************************/
+
+void lib_stdinstream(FAR struct lib_stdinstream_s *stdinstream,
+ FAR FILE *stream)
+{
+ stdinstream->public.get = stdinstream_getc;
+ stdinstream->public.nget = 0;
+ stdinstream->stream = stream;
+}
+
+
diff --git a/nuttx/lib/lib_stdstream.c b/nuttx/lib/lib_stdoutstream.c
index 9c696a97d..66864d07c 100644
--- a/nuttx/lib/lib_stdstream.c
+++ b/nuttx/lib/lib_stdoutstream.c
@@ -1,7 +1,7 @@
/****************************************************************************
- * lib/lib_stdstream.c
+ * lib/lib_stdoutstream.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -44,12 +44,12 @@
****************************************************************************/
/****************************************************************************
- * Name: stdstream_putc
+ * Name: stdoutstream_putc
****************************************************************************/
-static void stdstream_putc(FAR struct lib_stream_s *this, int ch)
+static void stdoutstream_putc(FAR struct lib_outstream_s *this, int ch)
{
- FAR struct lib_stdstream_s *sthis = (FAR struct lib_stdstream_s *)this;
+ FAR struct lib_stdoutstream_s *sthis = (FAR struct lib_stdoutstream_s *)this;
if (this)
{
if (putc(ch, sthis->stream) != EOF)
@@ -64,15 +64,15 @@ static void stdstream_putc(FAR struct lib_stream_s *this, int ch)
****************************************************************************/
/****************************************************************************
- * Name: lib_stdstream
+ * Name: lib_stdoutstream
****************************************************************************/
-void lib_stdstream(FAR struct lib_stdstream_s *stdstream,
+void lib_stdoutstream(FAR struct lib_stdoutstream_s *stdoutstream,
FAR FILE *stream)
{
- stdstream->public.put = stdstream_putc;
- stdstream->public.nput = 0;
- stdstream->stream = stream;
+ stdoutstream->public.put = stdoutstream_putc;
+ stdoutstream->public.nput = 0;
+ stdoutstream->stream = stream;
}
diff --git a/nuttx/lib/lib_vfprintf.c b/nuttx/lib/lib_vfprintf.c
index 197b27856..38da9c028 100644
--- a/nuttx/lib/lib_vfprintf.c
+++ b/nuttx/lib/lib_vfprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_vfprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@
int vfprintf(FAR FILE *stream, FAR const char *fmt, va_list ap)
{
- struct lib_stdstream_s stdstream;
+ struct lib_stdoutstream_s stdoutstream;
int n = ERROR;
if (stream)
@@ -86,7 +86,7 @@ int vfprintf(FAR FILE *stream, FAR const char *fmt, va_list ap)
* do the work.
*/
- lib_stdstream(&stdstream, stream);
+ lib_stdoutstream(&stdoutstream, stream);
/* Hold the stream semaphore throughout the lib_vsprintf
* call so that this thread can get its entire message out
@@ -94,7 +94,7 @@ int vfprintf(FAR FILE *stream, FAR const char *fmt, va_list ap)
*/
lib_take_semaphore(stream);
- n = lib_vsprintf(&stdstream.public, fmt, ap);
+ n = lib_vsprintf(&stdoutstream.public, fmt, ap);
lib_give_semaphore(stream);
}
return n;
diff --git a/nuttx/lib/lib_vsnprintf.c b/nuttx/lib/lib_vsnprintf.c
index 3467cfd50..ea6580bd4 100644
--- a/nuttx/lib/lib_vsnprintf.c
+++ b/nuttx/lib/lib_vsnprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_vsnprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -78,15 +78,15 @@
int vsnprintf(FAR char *buf, size_t size, const char *format, va_list ap)
{
- struct lib_memstream_s memstream;
+ struct lib_memoutstream_s memoutstream;
int n;
/* Initialize a memory stream to write to the buffer */
- lib_memstream((FAR struct lib_memstream_s *)&memstream, buf, size);
+ lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, buf, size);
/* Then let lib_vsprintf do the real work */
- n = lib_vsprintf((FAR struct lib_stream_s *)&memstream.public, format, ap);
+ n = lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, format, ap);
return n;
}
diff --git a/nuttx/lib/lib_vsprintf.c b/nuttx/lib/lib_vsprintf.c
index 2d8da2a43..36cb9ac7f 100644
--- a/nuttx/lib/lib_vsprintf.c
+++ b/nuttx/lib/lib_vsprintf.c
@@ -1,7 +1,7 @@
/****************************************************************************
* lib/lib_vsprintf.c
*
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
@@ -84,12 +84,12 @@
int vsprintf(FAR char *dest, const char *src, va_list ap)
{
- struct lib_memstream_s memstream;
+ struct lib_memoutstream_s memoutstream;
/* Wrap the destination buffer in a stream object and let
* lib_vsprintf do the work.
*/
- lib_memstream((FAR struct lib_memstream_s *)&memstream, dest, LIB_BUFLEN_UNKNOWN);
- return lib_vsprintf((FAR struct lib_stream_s *)&memstream.public, src, ap);
+ lib_memoutstream((FAR struct lib_memoutstream_s *)&memoutstream, dest, LIB_BUFLEN_UNKNOWN);
+ return lib_vsprintf((FAR struct lib_outstream_s *)&memoutstream.public, src, ap);
}