mirror of
https://github.com/apache/nuttx.git
synced 2026-06-01 16:59:28 +08:00
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:
+17
-1
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user