fix O_APPEND write issue in RAMFS
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
add buildlib for Keil MDK
remove compiling warning
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
fix debug output of scheduler

When print the thread names, we should use "%.*s" instead of bare "%s".
Merge pull request #141 from grissiom/fix-schedule-debug

fix debug output of scheduler
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.
add shell device automatically setting for rx_ind
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
Merge pull request #142 from grissiom/pipe-device

device/pipe: add rt_pipe_{init,detach}
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
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.
ringbuffer: add put_force and putchar_force API

Add the APIs that will discard the old data when rb is full.
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.
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.
dev/pipe: cleanup
Merge pull request #143 from grissiom/ringbuffer-pipe

Ringbuffer and Pipe
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.
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.