kgdb patches for 6.5
Fairly small changes this cycle. * An additional static inline function when kgdb is not enabled to reduce boilerplate in arch files. * kdb will now handle input with linefeeds more like carriage return. This will make little difference for interactive use but can make it script to use expect-like interaction with kdb. * A couple of warning fixes. Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEELzVBU1D3lWq6cKzwfOMlXTn3iKEFAmSiiJwACgkQfOMlXTn3 iKFAyQ//U+/08u01ikY0o8h//l7ELX4L7SUEJim1xE9Qk6DVF6R5c8+G6E0kWS5M ClKBf8J3YdjM2UvysNmVmh3/Sv1JP2GLT7YUoKNBYv+O8kveGy2N/vE6cYfoHK3n 1uOXtIxQ3IafjlgNF+FTTIYm2PDqDhYZTTYIKGlEDnwL3mjEP3iV+hNP2debcLvT 3AWeLcrvzni5KQ301kXqw4SmrgNAeLDKwKKQvDnho8EdAuMDmHTbmUt6Zgvvl6TN rH7nlxcUoDW+M1nMNxQ4Ko7xgEbqhpNQnkOIDv/j4j+KObQqvAVOF4dj9thBZUje IEPQD0O/rAeYDpnKTIx1bmaVkYIBIpiSokRKlHWpz3iHxU52M+cOXe6u2vMHj97t dHTc42TwcBQHSxCQ+R9i1pv6G7i2BfwUSju7opVqKISolwphp9Z4oIZnHwLtWpba P5Tv7Azv6nw1HoYl2tAP/2xNO2u7w1nfqUzfr+/XXFTcZGRt65084HDbRQSzjmiJ 6F5Qw7fwOTNUHEObybjL/A4AilIRK8sBl/vU3TXJUEf3CEryH3VK4lE7qlqKn75G nPplXMiBePbSTFE4aIJDdQFA4l3AOffg4w2Ce8v06eytr9EaNh8vS9W8Pv9dxwAz ZQrItOPO4i+1Sm9n/CvsPkUDVt3wYbb/QnPdQHsbGOoDN9H3JeI= =wAuD -----END PGP SIGNATURE----- Merge tag 'kgdb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux Pull kgdb updates from Daniel Thompson: "Fairly small changes this cycle: - An additional static inline function when kgdb is not enabled to reduce boilerplate in arch files - kdb will now handle input with linefeeds more like carriage return. This will make little difference for interactive use but can make it script to use expect-like interaction with kdb - A couple of warning fixes" * tag 'kgdb-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux: kdb: move kdb_send_sig() declaration to a better header file kdb: Handle LF in the command parser kdb: include kdb_private.h for function prototypes kgdb: Provide a stub kgdb_nmicallback() if !CONFIG_KGDB
This commit is contained in:
commit
eded37770c
|
@ -196,6 +196,8 @@ int kdb_process_cpu(const struct task_struct *p)
|
|||
return cpu;
|
||||
}
|
||||
|
||||
extern void kdb_send_sig(struct task_struct *p, int sig);
|
||||
|
||||
#ifdef CONFIG_KALLSYMS
|
||||
extern const char *kdb_walk_kallsyms(loff_t *pos);
|
||||
#else /* ! CONFIG_KALLSYMS */
|
||||
|
|
|
@ -365,5 +365,6 @@ extern void kgdb_free_init_mem(void);
|
|||
#define dbg_late_init()
|
||||
static inline void kgdb_panic(const char *msg) {}
|
||||
static inline void kgdb_free_init_mem(void) { }
|
||||
static inline int kgdb_nmicallback(int cpu, void *regs) { return 1; }
|
||||
#endif /* ! CONFIG_KGDB */
|
||||
#endif /* _KGDB_H_ */
|
||||
|
|
|
@ -131,6 +131,7 @@ char kdb_getchar(void)
|
|||
int escape_delay = 0;
|
||||
get_char_func *f, *f_prev = NULL;
|
||||
int key;
|
||||
static bool last_char_was_cr;
|
||||
|
||||
for (f = &kdb_poll_funcs[0]; ; ++f) {
|
||||
if (*f == NULL) {
|
||||
|
@ -149,6 +150,18 @@ char kdb_getchar(void)
|
|||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* The caller expects that newlines are either CR or LF. However
|
||||
* some terminals send _both_ CR and LF. Avoid having to handle
|
||||
* this in the caller by stripping the LF if we saw a CR right
|
||||
* before.
|
||||
*/
|
||||
if (last_char_was_cr && key == '\n') {
|
||||
last_char_was_cr = false;
|
||||
continue;
|
||||
}
|
||||
last_char_was_cr = (key == '\r');
|
||||
|
||||
/*
|
||||
* When the first character is received (or we get a change
|
||||
* input source) we set ourselves up to handle an escape
|
||||
|
@ -244,7 +257,8 @@ poll_again:
|
|||
*cp = tmp;
|
||||
}
|
||||
break;
|
||||
case 13: /* enter */
|
||||
case 10: /* linefeed */
|
||||
case 13: /* carriage return */
|
||||
*lastchar++ = '\n';
|
||||
*lastchar++ = '\0';
|
||||
if (!KDB_STATE(KGDB_TRANS)) {
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
#include <linux/ctype.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include "kdb_private.h"
|
||||
|
||||
/* Keyboard Controller Registers on normal PCs. */
|
||||
|
||||
#define KBD_STATUS_REG 0x64 /* Status register (R) */
|
||||
|
|
|
@ -194,7 +194,6 @@ extern char kdb_task_state_char (const struct task_struct *);
|
|||
extern bool kdb_task_state(const struct task_struct *p, const char *mask);
|
||||
extern void kdb_ps_suppressed(void);
|
||||
extern void kdb_ps1(const struct task_struct *p);
|
||||
extern void kdb_send_sig(struct task_struct *p, int sig);
|
||||
extern char kdb_getchar(void);
|
||||
extern char *kdb_getstr(char *, size_t, const char *);
|
||||
extern void kdb_gdb_state_pass(char *buf);
|
||||
|
|
Loading…
Reference in New Issue