summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2014-09-17 11:22:07 +0200
committerThomas Schwinge <thomas@codesourcery.com>2014-09-17 11:22:07 +0200
commitbb5d918ebbfef16189a63de4c6dc184a23763316 (patch)
treefb2dc8c800cc1b3ba5edfe9fc6daf789083e038c
parent3a57701f0206d28d8ca63b41cc3ab8630312dd96 (diff)
microkernel/mach/gnumach/interface/thread_get_state, thread_set_state: New.
-rw-r--r--microkernel/mach/gnumach/debugging.mdwn2
-rw-r--r--microkernel/mach/gnumach/interface/thread_get_state.mdwn37
-rw-r--r--microkernel/mach/gnumach/interface/thread_set_state.mdwn11
-rw-r--r--user/jkoenig/java.mdwn3
4 files changed, 51 insertions, 2 deletions
diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn
index cf02471d..a5daf4f1 100644
--- a/microkernel/mach/gnumach/debugging.mdwn
+++ b/microkernel/mach/gnumach/debugging.mdwn
@@ -14,7 +14,7 @@ Here are some hints to debug with GNU Mach.
[[!toc levels=2]]
-# Kernel Debugger
+# Kernel Debugger (KDB)
Mach has a built-in kernel debugger.
[Manual](http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html).
diff --git a/microkernel/mach/gnumach/interface/thread_get_state.mdwn b/microkernel/mach/gnumach/interface/thread_get_state.mdwn
new file mode 100644
index 00000000..c44cb927
--- /dev/null
+++ b/microkernel/mach/gnumach/interface/thread_get_state.mdwn
@@ -0,0 +1,37 @@
+[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="thread_get_state, thread_set_state"]]
+
+[[!tag open_issue_documentation]]
+
+
+# `i386_DEBUG_STATE`
+
+Access the x86 debug registers.
+
+[[!message-id "20110821231730.GF6004@type.famille.thibault.fr"]],
+[[!GNU_Savannah_Git_hurd_gnumach d14e4924c55e3016d1ddf7a38a7e93460ca10ac8]].
+
+For example, used by [[/GDB]] for implementing hardware watchpoints.
+
+
+## Open Issues
+
+[[!tag open_issue_gnumach]]
+
+ * Continuing on [[!message-id "87iokondoc.fsf@schwinge.name"]], do we need to
+ sanitize some of the values? Is user space allowed to set DR7's GD flag as
+ well as DR7's reserved flags, or should these flags be masked out?
+ Anything else?
+
+ * If [[KDB|debugging]] is using hardware watchpoints, those set by user space
+ applications will be ignored. This is because KDB and the user-space
+ application are competing for the x86 debug registers, and KDB wins.
diff --git a/microkernel/mach/gnumach/interface/thread_set_state.mdwn b/microkernel/mach/gnumach/interface/thread_set_state.mdwn
new file mode 100644
index 00000000..35b75e98
--- /dev/null
+++ b/microkernel/mach/gnumach/interface/thread_set_state.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=thread_get_state]]
diff --git a/user/jkoenig/java.mdwn b/user/jkoenig/java.mdwn
index ebfa45a4..ebd00f6b 100644
--- a/user/jkoenig/java.mdwn
+++ b/user/jkoenig/java.mdwn
@@ -194,7 +194,8 @@ for broader testing.
* The FPU state is not included in the `ucontext_t` passed to the signal
handler. On the other hand, `ucontext_t` is actually being somewhat
deprecated: the functions to restore it are no longer in POSIX.
- `thread_get_state`() should return this information, in case we decide
+ [[microkernel/mach/gnumach/interface/thread_get_state]] should return
+ this information, in case we decide
to fill the gap, and there might be existing glibc wrappers, too.
* Perhaps have a look at `SA_NOCLDWAIT`.