summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-06-09 19:13:25 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-06-09 19:13:25 +0200
commit93bdd69afb58595b3c904e422f856f6bab987e6f (patch)
treeaca9da250b76ade7e0ce72d641bef9655344bb7e /debian/patches
parent844cba0578fba1a430ee70beb2081684e836877c (diff)
add patch series
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/0001-kern-set-the-name-of-the-kernel-task-to-gnumach.patch25
-rw-r--r--debian/patches/0002-ddb-print-task-names-if-available.patch48
-rw-r--r--debian/patches/0003-ddb-use-db_thread_stat-to-format-the-flags.patch33
-rw-r--r--debian/patches/0004-i386-reformat-the-key-map.patch82
-rw-r--r--debian/patches/0005-i386-remap-some-keys.patch60
-rw-r--r--debian/patches/0006-doc-explain-the-floating-point-flag-in-kdb-output.patch30
-rw-r--r--debian/patches/series6
7 files changed, 284 insertions, 0 deletions
diff --git a/debian/patches/0001-kern-set-the-name-of-the-kernel-task-to-gnumach.patch b/debian/patches/0001-kern-set-the-name-of-the-kernel-task-to-gnumach.patch
new file mode 100644
index 0000000..03df6b9
--- /dev/null
+++ b/debian/patches/0001-kern-set-the-name-of-the-kernel-task-to-gnumach.patch
@@ -0,0 +1,25 @@
+From 85f88e4de061ade319f720b57aaa1ba908811ecd Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Mon, 9 Jun 2014 15:12:03 +0200
+Subject: [PATCH 1/6] kern: set the name of the kernel task to 'gnumach'
+
+* kern/taks.c (task_init): Set the name of the kernel task to 'gnumach'.
+---
+ kern/task.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/kern/task.c b/kern/task.c
+index 66eb25c..20acc6a 100644
+--- a/kern/task.c
++++ b/kern/task.c
+@@ -70,6 +70,7 @@ void task_init(void)
+ * for other initialization. (:-()
+ */
+ (void) task_create(TASK_NULL, FALSE, &kernel_task);
++ (void) task_set_name(kernel_task, "gnumach");
+ }
+
+ kern_return_t task_create(
+--
+2.0.0
+
diff --git a/debian/patches/0002-ddb-print-task-names-if-available.patch b/debian/patches/0002-ddb-print-task-names-if-available.patch
new file mode 100644
index 0000000..266fd71
--- /dev/null
+++ b/debian/patches/0002-ddb-print-task-names-if-available.patch
@@ -0,0 +1,48 @@
+From 3620701499791df6f2d1ebaa378a5a9ece21f99c Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Mon, 9 Jun 2014 15:15:58 +0200
+Subject: [PATCH 2/6] ddb: print task names if available
+
+* ddb/db_print.c (db_print_task): Print task name if available.
+* i386/i386/db_interface.c (db_task_name): Likewise.
+---
+ ddb/db_print.c | 7 ++++++-
+ i386/i386/db_interface.c | 4 ++--
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/ddb/db_print.c b/ddb/db_print.c
+index c015d84..1cbff64 100644
+--- a/ddb/db_print.c
++++ b/ddb/db_print.c
+@@ -258,7 +258,12 @@ db_print_task(
+ } else {
+ if (flag & OPTION_TASK_TITLE)
+ db_printf(" TASK THREADS\n");
+- db_printf("%3d (%0*X): ", task_id, 2*sizeof(vm_offset_t), task);
++ if (task->name[0])
++ db_printf("%3d %s (%0*X): ", task_id, task->name,
++ 2*sizeof(vm_offset_t), task);
++ else
++ db_printf("%3d (%0*X): ", task_id,
++ 2*sizeof(vm_offset_t), task);
+ if (task->thread_count == 0) {
+ db_printf("no threads\n");
+ } else {
+diff --git a/i386/i386/db_interface.c b/i386/i386/db_interface.c
+index 1337685..b442b86 100644
+--- a/i386/i386/db_interface.c
++++ b/i386/i386/db_interface.c
+@@ -730,8 +730,8 @@ db_task_name(
+ vm_offset_t vaddr, kaddr;
+ unsigned sp;
+
+- if (task->map->pmap == kernel_pmap) {
+- db_printf(DB_GNUMACH_TASK_NAME);
++ if (task->name[0]) {
++ db_printf("%s", task->name);
+ return;
+ }
+
+--
+2.0.0
+
diff --git a/debian/patches/0003-ddb-use-db_thread_stat-to-format-the-flags.patch b/debian/patches/0003-ddb-use-db_thread_stat-to-format-the-flags.patch
new file mode 100644
index 0000000..6994508
--- /dev/null
+++ b/debian/patches/0003-ddb-use-db_thread_stat-to-format-the-flags.patch
@@ -0,0 +1,33 @@
+From d3336a8fca01cf88161731ebb504530a52a051f0 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Mon, 9 Jun 2014 15:25:57 +0200
+Subject: [PATCH 3/6] ddb: use db_thread_stat to format the flags
+
+* ddb/db_print.c (db_print_thread): Use db_thread_stat to format the
+flags.
+---
+ ddb/db_print.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/ddb/db_print.c b/ddb/db_print.c
+index 1cbff64..e711ab6 100644
+--- a/ddb/db_print.c
++++ b/ddb/db_print.c
+@@ -194,12 +194,8 @@ db_print_thread(
+ 2*sizeof(vm_offset_t), thread);
+ else
+ db_printf("(%0*X) ", 2*sizeof(vm_offset_t), thread);
+- db_printf("%c%c%c%c%c",
+- (thread->state & TH_RUN) ? 'R' : ' ',
+- (thread->state & TH_WAIT) ? 'W' : ' ',
+- (thread->state & TH_SUSP) ? 'S' : ' ',
+- (thread->state & TH_UNINT)? 'N' : ' ',
+- db_thread_fp_used(thread) ? 'F' : ' ');
++ char status[8];
++ db_printf("%s", db_thread_stat(thread, status));
+ if (thread->state & TH_SWAPPED) {
+ if (thread->swap_func) {
+ db_printf("(");
+--
+2.0.0
+
diff --git a/debian/patches/0004-i386-reformat-the-key-map.patch b/debian/patches/0004-i386-reformat-the-key-map.patch
new file mode 100644
index 0000000..67aa093
--- /dev/null
+++ b/debian/patches/0004-i386-reformat-the-key-map.patch
@@ -0,0 +1,82 @@
+From c2761ece5d328d3d3bf0d774d6c8603f9f9deb79 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Mon, 9 Jun 2014 17:40:18 +0200
+Subject: [PATCH 4/6] i386: reformat the key map
+
+* i386/i386at/kd.c (key_map): Remove superfluous newlines so that
+every entry fits into one line. This way line numbers can be used as
+an index into the map.
+---
+ i386/i386at/kd.c | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c
+index 9f9faf4..5371fb2 100644
+--- a/i386/i386at/kd.c
++++ b/i386/i386at/kd.c
+@@ -240,8 +240,7 @@ unsigned char key_map[NUMKEYS][WIDTH_KMAP] = {
+ {K_LBRKT,NC,NC, K_LBRACE,NC,NC, K_ESC,NC,NC, 0x1b,K_LBRKT,NC, 0x1b,0x4e,K_LBRACE},
+ {K_RBRKT,NC,NC, K_RBRACE,NC,NC, K_GS,NC,NC, 0x1b,K_RBRKT,NC, 0x1b,0x4e,K_RBRACE},
+ {K_CR,NC,NC, K_CR,NC,NC, K_CR,NC,NC, 0x1b,K_CR,NC, K_CR,NC,NC},
+-{K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC,
+- K_SCAN,K_CTLSC,NC},
++{K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC, K_SCAN,K_CTLSC,NC},
+ {K_a,NC,NC, K_A,NC,NC, K_SOH,NC,NC, 0x1b,K_a,NC, 0x1b,0x4e,K_A},
+ {K_s,NC,NC, K_S,NC,NC, K_DC3,NC,NC, 0x1b,K_s,NC, 0x1b,0x4e,K_S},
+ {K_d,NC,NC, K_D,NC,NC, K_EOT,NC,NC, 0x1b,K_d,NC, 0x1b,0x4e,K_D},
+@@ -254,8 +253,7 @@ unsigned char key_map[NUMKEYS][WIDTH_KMAP] = {
+ {K_SEMI,NC,NC, K_COLON,NC,NC, K_SEMI,NC,NC, 0x1b,K_SEMI,NC, 0x1b,0x4e,K_COLON},
+ {K_SQUOTE,NC,NC,K_DQUOTE,NC,NC, K_SQUOTE,NC,NC,0x1b,K_SQUOTE,NC, 0x1b,0x4e,K_DQUOTE},
+ {K_GRAV,NC,NC, K_TILDE,NC,NC, K_RS,NC,NC, 0x1b,K_GRAV,NC, 0x1b,0x4e,K_TILDE},
+-{K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC,
+- K_SCAN,K_LSHSC,NC},
++{K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC, K_SCAN,K_LSHSC,NC},
+ {K_BSLSH,NC,NC, K_PIPE,NC,NC, K_FS,NC,NC, 0x1b,K_BSLSH,NC, 0x1b,0x4e,K_PIPE},
+ {K_z,NC,NC, K_Z,NC,NC, K_SUB,NC,NC, 0x1b,K_z,NC, 0x1b,0x4e,K_Z},
+ {K_x,NC,NC, K_X,NC,NC, K_CAN,NC,NC, 0x1b,K_x,NC, 0x1b,0x4e,K_X},
+@@ -267,14 +265,11 @@ unsigned char key_map[NUMKEYS][WIDTH_KMAP] = {
+ {K_COMMA,NC,NC, K_LTHN,NC,NC, K_COMMA,NC,NC, 0x1b,K_COMMA,NC, 0x1b,0x4e,K_LTHN},
+ {K_PERIOD,NC,NC,K_GTHN,NC,NC, K_PERIOD,NC,NC,0x1b,K_PERIOD,NC, 0x1b,0x4e,K_GTHN},
+ {K_SLASH,NC,NC, K_QUES,NC,NC, K_SLASH,NC,NC, 0x1b,K_SLASH,NC, 0x1b,0x4e,K_QUES},
+-{K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC,
+- K_SCAN,K_RSHSC,NC},
++{K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC, K_SCAN,K_RSHSC,NC},
+ {K_ASTER,NC,NC, K_ASTER,NC,NC, K_ASTER,NC,NC, 0x1b,K_ASTER,NC, 0x1b,0x4e,K_ASTER},
+-{K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC,
+- K_SCAN,K_ALTSC,NC},
++{K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC, K_SCAN,K_ALTSC,NC},
+ {K_SPACE,NC,NC, K_SPACE,NC,NC, K_NUL,NC,NC, 0x1b,K_SPACE,NC, K_SPACE,NC,NC},
+-{K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC,
+- K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC},
++{K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC, K_SCAN,K_CLCKSC,NC},
+ {K_F1, K_F1S, K_F1, K_F1A, K_F1S},
+ {K_F2, K_F2S, K_F2, K_F2A, K_F2S},
+ {K_F3, K_F3S, K_F3, K_F3A, K_F3S},
+@@ -285,20 +280,16 @@ unsigned char key_map[NUMKEYS][WIDTH_KMAP] = {
+ {K_F8, K_F8S, K_F8, K_F8A, K_F8S},
+ {K_F9, K_F9S, K_F9, K_F9A, K_F9S},
+ {K_F10, K_F10S, K_F10, K_F10A, K_F10S},
+-{K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC,
+- K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC},
++{K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC, K_SCAN,K_NLCKSC,NC},
+ {K_SCRL, K_NUL,NC,NC, K_SCRL, K_SCRL, K_NUL,NC,NC},
+ {K_HOME, K_SEVEN,NC,NC, K_HOME, K_HOME, 0x1b,0x4e,K_SEVEN},
+ {K_UA, K_EIGHT,NC,NC, K_UA, K_UA, 0x1b,0x4e,K_EIGHT},
+ {K_PUP, K_NINE,NC,NC, K_PUP, K_PUP, 0x1b,0x4e,K_NINE},
+-{0x1b,0x5b,0x53, K_MINUS,NC,NC, 0x1b,0x5b,0x53, 0x1b,0x5b,0x53,
+- 0x1b,0x4e,0x2d},
++{0x1b,0x5b,0x53, K_MINUS,NC,NC, 0x1b,0x5b,0x53, 0x1b,0x5b,0x53, 0x1b,0x4e,0x2d},
+ {K_LA, K_FOUR,NC,NC, K_LA, K_LA, 0x1b,0x4e,K_FOUR},
+-{0x1b,0x5b,0x47, K_FIVE,NC,NC, 0x1b,0x5b,0x47, 0x1b,0x5b,0x47,
+- 0x1b,0x4e,0x35},
++{0x1b,0x5b,0x47, K_FIVE,NC,NC, 0x1b,0x5b,0x47, 0x1b,0x5b,0x47, 0x1b,0x4e,0x35},
+ {K_RA, K_SIX,NC,NC, K_RA, K_RA, 0x1b,0x4e,K_SIX},
+-{0x1b,0x5b,0x54, K_PLUS,NC,NC, 0x1b,0x5b,0x54, 0x1b,0x5b,0x54,
+- 0x1b,0x4e,0x2b},
++{0x1b,0x5b,0x54, K_PLUS,NC,NC, 0x1b,0x5b,0x54, 0x1b,0x5b,0x54, 0x1b,0x4e,0x2b},
+ {K_END, K_ONE,NC,NC, K_END, K_END, 0x1b,0x4e,K_ONE},
+ {K_DA, K_TWO,NC,NC, K_DA, K_DA, 0x1b,0x4e,K_TWO},
+ {K_PDN, K_THREE,NC,NC, K_PDN, K_PDN, 0x1b,0x4e,K_THREE},
+--
+2.0.0
+
diff --git a/debian/patches/0005-i386-remap-some-keys.patch b/debian/patches/0005-i386-remap-some-keys.patch
new file mode 100644
index 0000000..1e91129
--- /dev/null
+++ b/debian/patches/0005-i386-remap-some-keys.patch
@@ -0,0 +1,60 @@
+From e8839c0aacf6c389302d21a32c14a28c8beeac4f Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Mon, 9 Jun 2014 18:15:47 +0200
+Subject: [PATCH 5/6] i386: remap some keys
+
+As a convenience for the nice people using our debugger, remap some
+keys to the readline-like shortcuts supported by dde.
+
+* i386/i386at/kd.c (kdcnmaygetc): Remap some keys.
+---
+ i386/i386at/kd.c | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c
+index 5371fb2..7339767 100644
+--- a/i386/i386at/kd.c
++++ b/i386/i386at/kd.c
+@@ -3029,6 +3029,39 @@ kdcnmaygetc(void)
+ #ifdef notdef
+ cnsetleds(state2leds(kd_state));
+ #endif
++ } else if (! up
++ && c == K_ESC
++ && key_map[scancode][char_idx+1] == 0x5b) {
++ /* As a convenience for the nice
++ people using our debugger, remap
++ some keys to the readline-like
++ shortcuts supported by dde.
++
++ XXX This is a workaround for the
++ limited kernel getchar interface.
++ It is only used by the debugger. */
++ c = key_map[scancode][char_idx+2];
++ switch (c) {
++#define _MAP(A,B,C) (C)
++#define MAP(T) _MAP(T)
++#define CTRL(c) ((c) & 0x1f)
++ case MAP(K_HOME): c = CTRL('a'); break;
++ case MAP(K_UA): c = CTRL('p'); break;
++ case MAP(K_LA): c = CTRL('b'); break;
++ case MAP(K_RA): c = CTRL('f'); break;
++ case MAP(K_DA): c = CTRL('n'); break;
++ case MAP(K_END): c = CTRL('e'); break;
++ /* delete */
++ case 0x39: c = CTRL('d'); break;
++#undef CTRL
++#undef MAP
++#undef _MAP
++ default:
++ /* Retain the old behavior. */
++ c = K_ESC;
++ }
++
++ return(c);
+ } else if (!up) {
+ /* regular key-down */
+ if (c == K_CR)
+--
+2.0.0
+
diff --git a/debian/patches/0006-doc-explain-the-floating-point-flag-in-kdb-output.patch b/debian/patches/0006-doc-explain-the-floating-point-flag-in-kdb-output.patch
new file mode 100644
index 0000000..f2cfe1d
--- /dev/null
+++ b/debian/patches/0006-doc-explain-the-floating-point-flag-in-kdb-output.patch
@@ -0,0 +1,30 @@
+From ce7a47ac13e16c8f0ce667c33a5946b5e2d95b23 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Mon, 9 Jun 2014 18:33:30 +0200
+Subject: [PATCH 6/6] doc: explain the floating point flag in kdb output
+
+* doc/mach.texi (Kernel Debugger Commands): Explain the floating point
+flag.
+---
+ doc/mach.texi | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/doc/mach.texi b/doc/mach.texi
+index 49c0d67..2da670f 100644
+--- a/doc/mach.texi
++++ b/doc/mach.texi
+@@ -7029,8 +7029,9 @@ session. If the execution is resumed again, the numbers may change.
+ The current thread can be distinguished from others by a @code{#} after
+ the thread id instead of @code{:}. Without @code{l} option, it only
+ shows thread id, thread structure address and the status for each
+-thread. The status consists of 5 letters, R(run), W(wait), S(suspended),
+-O(swapped out) and N(interruptible), and if corresponding
++thread. The status consists of 6 letters, R(run), W(wait), S(suspended),
++O(swapped out), N(interruptible), and F(loating) point arithmetic used (if
++supported by the platform). If the corresponding
+ status bit is off, @code{.} is printed instead. If @code{l} option is
+ specified, more detail information is printed for each thread.
+
+--
+2.0.0
+
diff --git a/debian/patches/series b/debian/patches/series
index 89260fd..db52cbc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -8,3 +8,9 @@ protected_payload.patch
Add-some-padding-to-make-objects-fit-a-single-cache-.patch
#acpihalt.patch
+0001-kern-set-the-name-of-the-kernel-task-to-gnumach.patch
+0002-ddb-print-task-names-if-available.patch
+0003-ddb-use-db_thread_stat-to-format-the-flags.patch
+0004-i386-reformat-the-key-map.patch
+0005-i386-remap-some-keys.patch
+0006-doc-explain-the-floating-point-flag-in-kdb-output.patch