Commit Graph

103 Commits

Author SHA1 Message Date
armink 570ae751be [components][drivers] Add irq lock to rt_wqueue_wait. 2018-06-12 17:10:20 +08:00
Bernard Xiong 884fb70fe9 [Kernel] Add device ops feature. 2018-06-10 17:59:17 +08:00
liang yongxiang cc81b47be2 [components] fixed signed/unsigned mismatch warning 2018-04-09 12:05:51 +08:00
tangyuxin 5b31545970 [drivers]Fix put_force bug 2018-03-25 07:54:31 +08:00
Bernard Xiong 00c6e81ecc [DeviceDrivers] fix type unknown issue in pipe 2017-12-31 23:52:27 +08:00
BernardXiong 8246da645d [DeviceDrivers] fix the compiling warning. 2017-12-31 14:45:43 +08:00
bernard 09f2d42e5a [DeviceDrivers] Add device API in pipe device. 2017-12-29 22:33:39 +08:00
JasonJiaJie ef219c20c2 [Driver][Pipe]Memory leak issue when close a pipe.
There is a memory leak issue when close a pipe.
2017-11-09 16:49:46 +08:00
bernard a8a7d60877 [DeviceDrivers] Remove compiling warning in workqueue. 2017-10-18 09:29:30 +08:00
bernard 8a38307e2c [libc] Add RT_USING_POSIX macro.
1. Add macro check in rtdebug.h;
2. Use RT_USING_POSIX for poll/select, stdin etc.
3. Split dfs_posix.h to dfs_posix.h, dfs_poll.h and dfs_select.h;
2017-10-17 22:27:06 +08:00
bernard 19aa36e830 [DeviceDrivers] Add sync mode in work queue. 2017-10-17 17:53:01 +08:00
ArdaFu fc7abc6580 [components][drivers] Check macro "RT_USING_DFS" when using DFS relative method/functions. 2017-10-16 15:12:35 +08:00
bernard d7087fdd3b [DeviceDrivers] change cmd type.
1. Change 'rt_uint8_t' type of cmd to 'int';
2. Add waitqueue;
3. Split device ipc header files;
2017-10-15 22:56:46 +08:00
Bernard Xiong c442db81fc [DeviceDrivers] Fix the re-work issue in workqueue. 2017-02-27 00:58:11 +08:00
bernard b4757b950f [DeviceDrivers] Add critical_work for wqueue. 2017-01-31 13:17:04 +08:00
armink c414bdaac8 [DeviceDrivers]Modify the dataqueue comments. 2016-11-02 08:17:24 +08:00
armink 6fe47a9537 [DeviceDrivers]Improve dataqueue resume suspended thread code. Thanks for @grissiom suggestion. 2016-10-31 15:08:55 +08:00
armink 0970cf03a4 [DeviceDrivers]Reset dataqueue waiting_lwm flag when suspended_push_list is empty 2016-10-31 14:47:48 +08:00
armink bda6543305 [DeviceDrivers]Fix dataqueue irq not resume bug. 2016-10-29 14:35:07 +08:00
armink 7860ea4f83 [DeviceDrivers]Fix dataqueue calculate put and get buffer index bug. 2016-10-19 10:54:22 +08:00
armink f2c31eebb5 [DeviceDrivers]Fix dataqueue's bug when push data is timeout the lwm flag isn't reset. 2016-10-19 10:49:42 +08:00
Bernard Xiong 77b5098ae2 [DeviceDriver] Add more exported symbols for completion. 2015-05-11 12:33:15 +08:00
ItsEddy 16bf2e7255 [DeviceDriver] Fix inverted logic on SConscript
Remove dataqueue/pipe if not enable RT_USING_HEAP, supply the missing `not`.
2015-04-04 02:17:26 +08:00
Bernard Xiong 40db28cfec [DeviceDriver] Remove dataqueue/pipe if not enable RT_USING_HEAP 2015-03-31 06:17:49 +00:00
KodakWang 29fd52dfb8 Update completion.c
fix: completion wait after, maybe can't clean the flag.
2015-03-24 15:54:08 +08:00
Bright Pan 2d67fe6565 [Driver/ringbuffer]: Fix put_force bug
OXape reports: http://www.rt-thread.org/phpBB3/topic3939.html
          driver/ringbuffer: when data length is bigger than space length
          for rb, the read_index in rb is not update.
    When length > space, update the read_index, the bug can be fix, and
          works fine.
2015-01-23 13:27:52 +08:00
Bernard Xiong 0ad17f462d [DeviceDrivers] Add modification under Linux 2014-08-04 16:40:40 +08:00
bernard 005014e7d0 [Drivers] Add workqueue implementation. 2014-07-13 07:27:57 +08:00
Grissiom 0feefc03b6 device/pipe: add a control cmd to get the space left in pipe 2013-10-23 01:43:18 +08:00
Grissiom 246bdde8de dev/portal: fix bug in portal callback forwarding
When forwarding rx/tx callback from the underlaying device(pipe), the
"dev" argument should be the portal. So the portal callback could think
itself as called.
2013-08-22 16:43:06 +08:00
Grissiom 824261d3bc dev/portal: add checks on oflag
It does not make sense to open portal without a flag. One should open a
portal with RT_DEVICE_OFLAG_RDWR in most cases.
2013-08-22 15:12:00 +08:00
Grissiom 6e676e7754 dev/portal: implement portal device
Portal is a device that connect devices. Currently, you can only connect
pipes in portal. Pipes are unidirectional. But with portal, you can
construct a bidirectional device with two pipes.
2013-08-20 12:54:43 +08:00
Grissiom 7e68096a88 dev/pipe: make pipe a type of device
Pipe have many differences with char device. The main difference is
altough pipe have both read and write, it is unidirectional in nature.
2013-08-20 10:16:55 +08:00
Grissiom 0340300f89 dev/pipe: cleanup 2013-08-19 16:25:17 +08:00
Grissiom e8cca2315a dev/pipe: call rx_indicate the time we resume reader
Some reader(FinSh again) would like to block on a semaphore which is
released in rx_indicate. So we should invoke rx_indicate in
_rt_pipe_resume_reader.
2013-08-19 15:57:59 +08:00
Grissiom d683d32bd5 device/pipe: add nonblocking read/write and force write mode
The previous implementation will always blocks the reader/writer.
However, at least FinSh would expect the device to be nonblocking ---
read should return 0 when there is no data in it.
2013-08-19 15:35:56 +08:00
Grissiom 4919d29d69 ringbuffer: add put_force and putchar_force API
Add the APIs that will discard the old data when rb is full.
2013-08-19 15:32:42 +08:00
Grissiom 981d929b56 ringbuffer: fix the ambiguous name
RT_RINGBUFFER_SIZE could mean "the size of the whole buffer", "the size
of the empty space" or "the size of the data". Moreover, it's never a
micro anymore. Change it to rt_ringbuffer_data_len before it's too late.
Also, RT_RINGBUFFER_EMPTY is changed to rt_ringbuffer_space_len.
2013-08-19 14:12:35 +08:00
Grissiom 38ce3879d8 device/pipe: add rt_pipe_{init,detach}
This provide the possibility that allocate the buffer of the ringbuffer
on a specific region, instead of always mallocing it. It also bring us
the benefit of using pipe device on the systems without heap.
2013-08-19 12:28:59 +08:00
yiyue.fang 621fbdb90c Embedded GPLv2 license in drivers 2013-06-28 00:36:54 +08:00
Grissiom 952bc0d4ef ringbuffer: format the code to a more symmetric structure 2013-05-08 15:54:30 +08:00
Grissiom 639bd30321 reimplement ringbuffer
The new implementation use the mirroring method to distinguish full
buffer and the empty buffer. It also support buffers of arbitrary size.
2013-05-08 15:45:31 +08:00
Ming, Bai b4de7cce57 Re-normalizing the repo 2013-01-08 22:40:58 +08:00
dzzxzz@gmail.com ef5c47e684 fixed the coding style in components/drivers/src
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2529 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-12-26 00:29:42 +00:00
dzzxzz@gmail.com 68b7e7c481 fixed the coding style in the components/drivers
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2431 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-22 08:43:40 +00:00
dzzxzz@gmail.com 1aab195a7d fixed coding style in component/drivers/src
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2384 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-02 04:05:38 +00:00
dzzxzz@gmail.com db58e3350b add serial DMA transmit function(beta)
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2382 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-11-01 07:17:54 +00:00
qiuyiuestc@gmail.com c752d9b095 submit the first version usb device stack.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2344 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-10-11 17:06:30 +00:00
bernard.xiong@gmail.com c75867fc5f Remove rt_ringbuffer_get_datasize function.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2314 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-09-30 08:13:53 +00:00
bernard.xiong@gmail.com 4f05dd5426 Add pipe, data queue implementation; Fix the issue which leaks one item in the available data of ring buffer.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2313 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-09-30 07:33:13 +00:00
bernard.xiong@gmail.com ee546fb0d4 change rt_memcpy to memcpy in ringbuffer implementation.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2199 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-07-02 15:51:58 +00:00
qiuyiuestc@gmail.com e01d425bf3 add "thread->error = RT_EOK;" in rt_completion_wait
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2107 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-05-01 17:52:48 +00:00
bernard.xiong@gmail.com da44d15132 Added device driver's IPC.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2098 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-23 06:02:28 +00:00