summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rwxr-xr-xcomponents/drivers/Kconfig6
-rw-r--r--components/drivers/include/ipc/pipe.h6
-rw-r--r--components/drivers/src/pipe.c26
-rw-r--r--components/libc/posix/Kconfig2
-rw-r--r--components/libc/posix/ipc/Kconfig17
5 files changed, 33 insertions, 24 deletions
diff --git a/components/drivers/Kconfig b/components/drivers/Kconfig
index 159a6cbda3..8d340da3f5 100755
--- a/components/drivers/Kconfig
+++ b/components/drivers/Kconfig
@@ -5,10 +5,6 @@ config RT_USING_DEVICE_IPC
default y
if RT_USING_DEVICE_IPC
- config RT_PIPE_BUFSZ
- int "Set pipe buffer size"
- default 512
-
config RT_USING_SYSTEM_WORKQUEUE
bool "Using system default workqueue"
default n
@@ -18,7 +14,7 @@ if RT_USING_DEVICE_IPC
int "The stack size for system workqueue thread"
default 2048
- config RT_SYSTEM_WORKQUEUE_PRIORITY
+ config RT_SYSTEM_WORKQUEUE_PRIORITY
int "The priority level of system workqueue thread"
default 23
endif
diff --git a/components/drivers/include/ipc/pipe.h b/components/drivers/include/ipc/pipe.h
index a45e8ae002..7d271c3a04 100644
--- a/components/drivers/include/ipc/pipe.h
+++ b/components/drivers/include/ipc/pipe.h
@@ -15,12 +15,6 @@
#include <rtthread.h>
#include <rtdevice.h>
-#ifndef RT_PIPE_BUFSZ
-#define PIPE_BUFSZ 512
-#else
-#define PIPE_BUFSZ RT_PIPE_BUFSZ
-#endif
-
struct rt_pipe_device
{
struct rt_device parent;
diff --git a/components/drivers/src/pipe.c b/components/drivers/src/pipe.c
index 89b544bc4e..8f9a62e05b 100644
--- a/components/drivers/src/pipe.c
+++ b/components/drivers/src/pipe.c
@@ -13,7 +13,7 @@
#include <stdint.h>
#include <sys/errno.h>
-#ifdef RT_USING_POSIX_DEVIO
+#if defined(RT_USING_POSIX_DEVIO) && defined(RT_USING_POSIX_PIPE)
#include <dfs_file.h>
#include <dfs_posix.h>
#include <poll.h>
@@ -320,9 +320,9 @@ static const struct dfs_file_ops pipe_fops =
RT_NULL,
pipe_fops_poll,
};
-#endif /* RT_USING_POSIX_DEVIO */
+#endif /* defined(RT_USING_POSIX_DEVIO) && defined(RT_USING_POSIX_PIPE) */
-rt_err_t rt_pipe_open(rt_device_t device, rt_uint16_t oflag)
+static rt_err_t rt_pipe_open(rt_device_t device, rt_uint16_t oflag)
{
rt_pipe_t *pipe = (rt_pipe_t *)device;
rt_err_t ret = RT_EOK;
@@ -350,7 +350,7 @@ __exit:
return ret;
}
-rt_err_t rt_pipe_close(rt_device_t device)
+static rt_err_t rt_pipe_close(rt_device_t device)
{
rt_pipe_t *pipe = (rt_pipe_t *)device;
@@ -368,7 +368,7 @@ rt_err_t rt_pipe_close(rt_device_t device)
return RT_EOK;
}
-rt_size_t rt_pipe_read(rt_device_t device, rt_off_t pos, void *buffer, rt_size_t count)
+static rt_size_t rt_pipe_read(rt_device_t device, rt_off_t pos, void *buffer, rt_size_t count)
{
uint8_t *pbuf;
rt_size_t read_bytes = 0;
@@ -396,7 +396,7 @@ rt_size_t rt_pipe_read(rt_device_t device, rt_off_t pos, void *buffer, rt_size_t
return read_bytes;
}
-rt_size_t rt_pipe_write(rt_device_t device, rt_off_t pos, const void *buffer, rt_size_t count)
+static rt_size_t rt_pipe_write(rt_device_t device, rt_off_t pos, const void *buffer, rt_size_t count)
{
uint8_t *pbuf;
rt_size_t write_bytes = 0;
@@ -424,7 +424,7 @@ rt_size_t rt_pipe_write(rt_device_t device, rt_off_t pos, const void *buffer, rt
return write_bytes;
}
-rt_err_t rt_pipe_control(rt_device_t dev, int cmd, void *args)
+static rt_err_t rt_pipe_control(rt_device_t dev, int cmd, void *args)
{
return RT_EOK;
}
@@ -479,9 +479,9 @@ rt_pipe_t *rt_pipe_create(const char *name, int bufsz)
rt_free(pipe);
return RT_NULL;
}
-#ifdef RT_USING_POSIX_DEVIO
+#if defined(RT_USING_POSIX_DEVIO) && defined(RT_USING_POSIX_PIPE)
dev->fops = (void*)&pipe_fops;
-#endif /* RT_USING_POSIX_DEVIO */
+#endif
return pipe;
}
@@ -529,7 +529,7 @@ int rt_pipe_delete(const char *name)
return result;
}
-#ifdef RT_USING_POSIX_DEVIO
+#if defined(RT_USING_POSIX_DEVIO) && defined(RT_USING_POSIX_PIPE)
int pipe(int fildes[2])
{
rt_pipe_t *pipe;
@@ -539,7 +539,7 @@ int pipe(int fildes[2])
rt_snprintf(dname, sizeof(dname), "pipe%d", pipeno++);
- pipe = rt_pipe_create(dname, PIPE_BUFSZ);
+ pipe = rt_pipe_create(dname, RT_USING_POSIX_PIPE_SIZE);
if (pipe == RT_NULL)
{
return -1;
@@ -567,7 +567,7 @@ int mkfifo(const char *path, mode_t mode)
{
rt_pipe_t *pipe;
- pipe = rt_pipe_create(path, PIPE_BUFSZ);
+ pipe = rt_pipe_create(path, RT_USING_POSIX_PIPE_SIZE);
if (pipe == RT_NULL)
{
return -1;
@@ -575,4 +575,4 @@ int mkfifo(const char *path, mode_t mode)
return 0;
}
-#endif /* RT_USING_POSIX_DEVIO */
+#endif /* defined(RT_USING_POSIX_DEVIO) && defined(RT_USING_POSIX_PIPE) */
diff --git a/components/libc/posix/Kconfig b/components/libc/posix/Kconfig
index db83269dd0..52b5fdc948 100644
--- a/components/libc/posix/Kconfig
+++ b/components/libc/posix/Kconfig
@@ -55,4 +55,6 @@ if RT_USING_PTHREADS
default 8
endif
+source "$RTT_DIR/components/libc/posix/ipc/Kconfig"
+
endmenu
diff --git a/components/libc/posix/ipc/Kconfig b/components/libc/posix/ipc/Kconfig
new file mode 100644
index 0000000000..f5ec6ad040
--- /dev/null
+++ b/components/libc/posix/ipc/Kconfig
@@ -0,0 +1,17 @@
+menu "Interprocess Communication (IPC)"
+
+config RT_USING_POSIX_PIPE
+ bool "Enable pipe and FIFO"
+ select RT_USING_POSIX_FS
+ select RT_USING_POSIX_DEVIO
+ select RT_USING_POSIX_POLL
+ default n
+
+config RT_USING_POSIX_PIPE_SIZE
+ int "Set pipe buffer size"
+ depends on RT_USING_POSIX_PIPE
+ default 512
+
+comment "Socket is in the 'Network' category"
+
+endmenu