From 8fa2bcdad9edb41d01c9ccf1ebbbe135713bf9c0 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sun, 30 Sep 2018 05:38:03 +0000 Subject: Fixed small errors in pipes and pipes factory. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12307 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- os/lib/src/chfactory.c | 5 ++++- os/lib/src/chpipes.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'os/lib/src') diff --git a/os/lib/src/chfactory.c b/os/lib/src/chfactory.c index 149f673d8..a40984ac4 100644 --- a/os/lib/src/chfactory.c +++ b/os/lib/src/chfactory.c @@ -271,6 +271,9 @@ void _factory_init(void) { #if CH_CFG_FACTORY_OBJ_FIFOS == TRUE dyn_list_init(&ch_factory.fifo_list); #endif +#if CH_CFG_FACTORY_PIPES == TRUE + dyn_list_init(&ch_factory.pipe_list); +#endif } #if (CH_CFG_FACTORY_OBJECTS_REGISTRY == TRUE) || defined(__DOXIGEN__) @@ -775,7 +778,7 @@ dyn_pipe_t *chFactoryFindPipe(const char *name) { F_LOCK(); - dpp = (dyn_pipe_t *)dyn_find_object(name, &ch_factory.fifo_list); + dpp = (dyn_pipe_t *)dyn_find_object(name, &ch_factory.pipe_list); F_UNLOCK(); diff --git a/os/lib/src/chpipes.c b/os/lib/src/chpipes.c index 34c8870fb..8057fdab8 100644 --- a/os/lib/src/chpipes.c +++ b/os/lib/src/chpipes.c @@ -138,8 +138,8 @@ static size_t pipe_read(pipe_t *pp, uint8_t *bp, size_t n) { size_t s1, s2; /* Number of bytes that can be read in a single atomic operation.*/ - if (n > chPipeGetFreeCount(pp)) { - n = chPipeGetFreeCount(pp); + if (n > chPipeGetUsedCount(pp)) { + n = chPipeGetUsedCount(pp); } /* Number of bytes before buffer limit.*/ -- cgit v1.2.3