Commit graph

24 commits

Author SHA1 Message Date
Sascha Hauer
c073534880 Merge branch 'for-next/ratp' 2016-02-08 08:27:01 +01:00
Sascha Hauer
2660573374 barebox remote control
This adds the ability to control barebox over serial lines. The regular
console is designed for human input and is unsuitable for controlling
barebox from scripts since characters can be lost on both ends, the data
stream contains escape sequences and the prompt cannot be easily matched
upon.
This approach is based on the RATP protocol. RATP packages start with a
binary 0x01 which does not occur in normal console data. Whenever a
0x01 character is detected in the console barebox goes into RATP mode.
The RATP packets contain a simple structure with a command/respone
type and data for that type. Currently defined types are:

BB_RATP_TYPE_COMMAND (host->barebox):
	Execute a command in the shell
BB_RATP_TYPE_COMMAND_RETURN (barebox->host)
	Sends return value of the command back to the host, also means
	barebox is ready for the next command
BB_RATP_TYPE_CONSOLEMSG (barebox->host)
	Console message from barebox

Planned but not yet implemented are:

BB_RATP_TYPE_PING (host->barebox)
BB_RATP_TYPE_PONG (barebox->host)
	For testing purposes
BB_RATP_TYPE_GETENV (host->barebox)
BB_RATP_TYPE_GETENV_RETURN (barebox->host)
	Get values of environment variables

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Tested-by: Andrey Smirnov <andrew.smirnov@gmail.com>
2016-01-18 09:25:09 +01:00
Sascha Hauer
1cc4ba2aa1 readline: Fix potential buffer overflow in command history
Cursor up copies the last line into the buffer without checking if it
fits into the current buffer. Fix this using safe_strncpy.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2016-01-08 08:30:56 +01:00
Sascha Hauer
e3ae12a418 readline: Fix potential buffer overflow
cread_add_char doesn't take the trailing '\0' into account, so adding
it at the end of readline can overflow the buffer.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2016-01-08 08:30:56 +01:00
Du Huanpeng
405c6e09dd lib: readline support ctrl-l to clear screen
maybe it is easier to press ctrl-l to clear the screen than type
'clear' command.

Signed-off-by: Du Huanpeng <u74147@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2015-11-17 09:14:17 +01:00
Sascha Hauer
d3f4aa52ca readline: Fix history prev when history is empty
We cannot use list_entry() on an empty list. Without history
we have to return an empty line. This fixes a crash when the
cursor up button is pressed and no command has been entered
previously. Broken since:

commit ada160a34a
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Tue Jul 29 11:54:26 2014 +0200

    readline: reimplement history functions

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reported-by: Teresa Gamez <t.gamez@phytec.de>
2014-09-01 14:24:50 +02:00
Sascha Hauer
ada160a34a readline: reimplement history functions
This reimplements the history functions in readline.

- Use regular lists instead of homegrown list implementation
- Allocate history strings dynamically instead of copying strings
  to fixed buffers without checking the size
- saves us an initcall
- slightly smaller
- no longer add duplicates to the history
- when moving past the last history entry print an empty line

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2014-07-29 13:51:00 +02:00
Sascha Hauer
7e66707c76 input: Add BB_ prefix to KEY_ defines
Our KEY_ defines conflict with the standard Linux KEY_ defines, so
add a BB_ prefix to them.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2014-02-17 08:23:37 +01:00
Sascha Hauer
6058a2273c readline: remove unused variable
'rc' is never set to anything else than 0, so drop it.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2013-11-12 14:45:03 +01:00
Antony Pavlov
ff6b691a8c readline: fix the 'new blank line at EOF' typo
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-29 10:02:06 +01:00
Antony Pavlov
ad439b75a2 readline: add ctrl-w handling (cut-the-last-word)
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-29 10:02:06 +01:00
Antony Pavlov
db494137a8 readline: move backspace key handling to the DO_BACKSPACE macro
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2012-10-29 10:02:06 +01:00
Antony Pavlov
d93a20734d lib/readline.c: fix unused-but-set-variable gcc warning
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-07-04 08:59:39 +02:00
Krzysztof Halasa
1b6a3e3634 Silence few warnings.
Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-12-21 09:02:40 +01:00
Sascha Hauer
eff51304a7 readline: sparse fixes
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-10-21 22:21:22 +02:00
Sascha Hauer
73108301d4 Remove unnecessary casts in key defines
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2009-12-18 16:44:54 +01:00
Sascha Hauer
82875bfd52 readline: Allow only ascii and printable characters
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2009-09-29 08:50:42 +02:00
Sascha Hauer
2209ae02ba readline: Fix wrong screen reprinting. Try:
abcde<BACKSPACE><HOME><DEL>
2008-03-02 17:24:05 +01:00
Sascha Hauer
23d1cead89 readline: Fix a bug when tab completion is used in the middle
of the line.
2008-03-02 17:23:10 +01:00
Sascha Hauer
df31bb46be implement TAB completion 2008-03-01 21:08:14 +01:00
sascha
10bdc84297 implement delete key in readline 2007-10-16 23:08:37 +02:00
Sascha Hauer
b3dc734018 declare lots of functions static 2007-09-28 10:07:26 +02:00
Sascha Hauer
0dd68e795e - putc is now putchar for better standard conformity
- make printf return int
2007-09-21 09:09:06 +02:00
Sascha Hauer
4b07af6730 svn_rev_643
structure cleanup
2007-07-05 18:02:13 +02:00
Renamed from common/readline.c (Browse further)