123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- diff --git a/apps/nshlib/nsh_console.c b/apps/nshlib/nsh_console.c
- index ba7dbe7..45e4ab1 100644
- --- a/apps/nshlib/nsh_console.c
- +++ b/apps/nshlib/nsh_console.c
- @@ -46,6 +46,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <string.h>
- +#include <stdarg.h>
- #include <assert.h>
- #include <errno.h>
- #include <debug.h>
- @@ -79,7 +80,12 @@ static FAR struct nsh_vtbl_s *nsh_consoleclone(FAR struct nsh_vtbl_s *vtbl);
- static void nsh_consolerelease(FAR struct nsh_vtbl_s *vtbl);
- static ssize_t nsh_consolewrite(FAR struct nsh_vtbl_s *vtbl,
- FAR const void *buffer, size_t nbytes);
- +#if 0
- static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
- FAR const char *fmt, ...);
- +#else
- +static int nsh_consolevoutput(FAR struct nsh_vtbl_s *vtbl,
- + FAR const char *fmt, va_list ap);
- +#endif
- static FAR char *nsh_consolelinebuffer(FAR struct nsh_vtbl_s *vtbl);
-
- @@ -213,6 +219,7 @@ static ssize_t nsh_consolewrite(FAR struct nsh_vtbl_s *vtbl, FAR const void *buf
- *
- ****************************************************************************/
-
- +#if 0
- static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
- FAR const char *fmt, ...)
- {
- @@ -263,6 +270,29 @@ static int nsh_consoleoutput(FAR struct nsh_vtbl_s *vtbl,
- #endif
- }
-
- +#else
- +static int nsh_consolevoutput(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, va_list ap)
- +{
- + FAR struct console_stdio_s *pstate = (FAR struct console_stdio_s *)vtbl;
- + int ret;
- +
- + /* The stream is open in a lazy fashion. This is done because the file
- + * descriptor may be opened on a different task than the stream. The
- + * actual open will then occur with the first output from the new task.
- + */
- +
- + if (nsh_openifnotopen(pstate) != 0)
- + {
- + return ERROR;
- + }
- +
- + ret = vfprintf(pstate->cn_outstream, fmt, ap);
- +
- + return ret;
- +#endif
- +}
- +#endif
- +
- /****************************************************************************
- * Name: nsh_consolelinebuffer
- *
- @@ -452,7 +504,11 @@ FAR struct console_stdio_s *nsh_newconsole(void)
- pstate->cn_vtbl.release = nsh_consolerelease;
- #endif
- pstate->cn_vtbl.write = nsh_consolewrite;
- +#if 0
- pstate->cn_vtbl.output = nsh_consoleoutput;
- +#else
- + pstate->cn_vtbl.voutput = nsh_consolevoutput;
- +#endif
- pstate->cn_vtbl.linebuffer = nsh_consolelinebuffer;
- pstate->cn_vtbl.exit = nsh_consoleexit;
-
- @@ -489,3 +545,15 @@ FAR struct console_stdio_s *nsh_newconsole(void)
- }
- return pstate;
- }
- +
- +int nsh_output(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, ...)
- +{
- + va_list ap;
- + int ret;
- +
- + va_start(ap, fmt);
- + ret = vtbl->voutput(vtbl, fmt, ap);
- + va_end(ap);
- +
- + return ret;
- +}
- diff --git a/apps/nshlib/nsh_console.h b/apps/nshlib/nsh_console.h
- index c78362f..207f9b9 100644
- --- a/apps/nshlib/nsh_console.h
- +++ b/apps/nshlib/nsh_console.h
- @@ -47,6 +47,7 @@
- #include <stdio.h>
- #include <stdint.h>
- #include <stdbool.h>
- +#include <stdarg.h>
- #include <errno.h>
-
- /****************************************************************************
- @@ -62,11 +63,13 @@
- #define nsh_undirect(v,s) (v)->undirect(v,s)
- #define nsh_exit(v,s) (v)->exit(v,s)
-
- +#if 0
- #ifdef CONFIG_CPP_HAVE_VARARGS
- # define nsh_output(v, ...) (v)->output(v, ##__VA_ARGS__)
- #else
- # define nsh_output vtbl->output
- #endif
- +#endif
-
- /* Size of info to be saved in call to nsh_redirect */
-
- @@ -107,6 +110,10 @@ struct nsh_vtbl_s
- void (*release)(FAR struct nsh_vtbl_s *vtbl);
- #endif
- ssize_t (*write)(FAR struct nsh_vtbl_s *vtbl, FAR const void *buffer, size_t nbytes);
- +#if 0
- int (*output)(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, ...);
- +#else
- + int (*voutput)(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, va_list ap);
- +#endif
- FAR char *(*linebuffer)(FAR struct nsh_vtbl_s *vtbl);
- void (*redirect)(FAR struct nsh_vtbl_s *vtbl, int fd, FAR uint8_t *save);
- @@ -159,5 +166,6 @@ struct console_stdio_s
- /* Defined in nsh_console.c *************************************************/
-
- FAR struct console_stdio_s *nsh_newconsole(void);
- +int nsh_output(FAR struct nsh_vtbl_s *vtbl, FAR const char *fmt, ...);
-
- #endif /* __APPS_NSHLIB_NSH_CONSOLE_H */
- diff --git a/nuttx/include/wdog.h b/nuttx/include/nuttx/wdog.h
- index 0aa3584..ac4a36a 100644
- --- a/nuttx/include/nuttx/wdog.h
- +++ b/nuttx/include/nuttx/wdog.h
- @@ -74,7 +74,23 @@ typedef union wdparm_u wdparm_t;
- * watchdog function expires. Up to four parameters may be passed.
- */
-
- +#if 0
- typedef CODE void (*wdentry_t)(int argc, uint32_t arg1, ...);
- +#elif CONFIG_MAX_WDOGPARMS < 1
- +typedef CODE void (*wdentry_t)(int argc);
- +#elif CONFIG_MAX_WDOGPARMS < 2
- +typedef CODE void (*wdentry_t)(int argc, uint32_t arg1);
- +#elif CONFIG_MAX_WDOGPARMS < 3
- +typedef CODE void (*wdentry_t)(int argc, uint32_t arg1, uint32_t arg2);
- +#elif CONFIG_MAX_WDOGPARMS < 4
- +typedef CODE void (*wdentry_t)(int argc, uint32_t arg1, uint32_t arg2,
- + uint32_t arg3);
- +#elif CONFIG_MAX_WDOGPARMS < 5
- +typedef CODE void (*wdentry_t)(int argc, uint32_t arg1, uint32_t arg2,
- + uint32_t arg3, uint32_t arg4);
- +#else
- +# error Ooops. CONFIG_MAX_WDOGPARMS > 4
- +#endif
-
- /* Watchdog 'handle' */
-
|