Add logic to dump data in and out of pipe

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2059 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2009-09-15 20:55:06 +00:00
parent 075d96a70a
commit 3aad40f1a9
2 changed files with 21 additions and 5 deletions
+17 -1
View File
@@ -60,9 +60,19 @@
#if CONFIG_DEV_PIPE_SIZE > 0 #if CONFIG_DEV_PIPE_SIZE > 0
/**************************************************************************** /****************************************************************************
* Definitions * Pre-processor Definitions
****************************************************************************/ ****************************************************************************/
/* CONFIG_DEV_PIPEDUMP will dump the contents of each transfer into and out
* of the pipe.
*/
#ifdef CONFIG_DEV_PIPEDUMP
# define pipe_dumpbuffer(m,a,n) lib_dumpbuffer(m,a,n)
#else
# define pipe_dumpbuffer(m,a,n)
#endif
/**************************************************************************** /****************************************************************************
* Private Types * Private Types
****************************************************************************/ ****************************************************************************/
@@ -319,6 +329,9 @@ ssize_t pipecommon_read(FAR struct file *filep, FAR char *buffer, size_t len)
{ {
struct inode *inode = filep->f_inode; struct inode *inode = filep->f_inode;
struct pipe_dev_s *dev = inode->i_private; struct pipe_dev_s *dev = inode->i_private;
#ifdef CONFIG_DEV_PIPEDUMP
FAR ubyte *start = (ubyte*)buffer;
#endif
ssize_t nread = 0; ssize_t nread = 0;
int sval; int sval;
int ret; int ret;
@@ -396,6 +409,7 @@ ssize_t pipecommon_read(FAR struct file *filep, FAR char *buffer, size_t len)
pipecommon_pollnotify(dev, POLLOUT); pipecommon_pollnotify(dev, POLLOUT);
sem_post(&dev->d_bfsem); sem_post(&dev->d_bfsem);
pipe_dumpbuffer("From PIPE:", start, nread);
return nread; return nread;
} }
@@ -413,12 +427,14 @@ ssize_t pipecommon_write(FAR struct file *filep, FAR const char *buffer, size_t
int sval; int sval;
/* Some sanity checking */ /* Some sanity checking */
#if CONFIG_DEBUG #if CONFIG_DEBUG
if (!dev) if (!dev)
{ {
return -ENODEV; return -ENODEV;
} }
#endif #endif
pipe_dumpbuffer("To PIPE:", (ubyte*)buffer, len);
/* At present, this method cannot be called from interrupt handlers. That is /* At present, this method cannot be called from interrupt handlers. That is
* because it calls sem_wait (via pipecommon_semtake below) and sem_wait cannot * because it calls sem_wait (via pipecommon_semtake below) and sem_wait cannot
+4 -4
View File
@@ -70,9 +70,9 @@
/* CONFIG_THTTPD_CGIDUMP will dump the contents of each transfer to and from the CGI task. */ /* CONFIG_THTTPD_CGIDUMP will dump the contents of each transfer to and from the CGI task. */
#ifdef CONFIG_THTTPD_CGIDUMP #ifdef CONFIG_THTTPD_CGIDUMP
# define cgi_dumppacket(m,a,n) lib_dumpbuffer(m,a,n) # define cgi_dumpbuffer(m,a,n) lib_dumpbuffer(m,a,n)
#else #else
# define cgi_dumppacket(m,a,n) # define cgi_dumpbuffer(m,a,n)
#endif #endif
/**************************************************************************** /****************************************************************************
@@ -390,7 +390,7 @@ static inline int cgi_interpose_input(struct cgi_conn_s *cc)
lldbg("httpd_write failed\n"); lldbg("httpd_write failed\n");
return 1; return 1;
} }
cgi_dumppacket("Sent to CGI:", cc->inbuf.buffer, nbytes_written); cgi_dumpbuffer("Sent to CGI:", cc->inbuf.buffer, nbytes_written);
} }
cc->inbuf.nbytes += nbytes_read; cc->inbuf.nbytes += nbytes_read;
@@ -472,7 +472,7 @@ static inline int cgi_interpose_output(struct cgi_conn_s *cc)
} }
else else
{ {
cgi_dumppacket("Received from CGI:", cc->inbuf.buffer, nbytes_read); cgi_dumpbuffer("Received from CGI:", cc->inbuf.buffer, nbytes_read);
} }
} }
while (nbytes_read < 0); while (nbytes_read < 0);