summaryrefslogtreecommitdiffstats
path: root/sys/i386/include
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-08-05 08:17:10 +0000
committerkib <kib@FreeBSD.org>2015-08-05 08:17:10 +0000
commit83f30eda371b1192a70eeaba6f278f01b67cdb76 (patch)
treef70aca8415c813f994a4316cf700171adaff2fc5 /sys/i386/include
parent13079235af5f6cf8c395e19bedfee5481353abe5 (diff)
downloadFreeBSD-src-83f30eda371b1192a70eeaba6f278f01b67cdb76.zip
FreeBSD-src-83f30eda371b1192a70eeaba6f278f01b67cdb76.tar.gz
Implement x86 ptrace(2) requests PT_{GET,SET}{FS,GS}BASE.
MFC r284918: Add helper fill_based_sd(9). MFC r284919: Add x86 PT_GETFSBASE, PT_GETGSBASE machine-depended ptrace requests to obtain the thread %fs and %gs bases. Add x86 PT_SETFSBASE and PT_SETGSBASE requests to set the bases from debuggers. The set requests, similarly to the sysarch({I386,AMD64}_SET_FSBASE), override the corresponding segment registers. MFC r284965: Document x86 machine-specific ptrace(2) requests. MFC r285011: Disallow a debugger on 64bit system to set fs/gs bases of the 32bit process beyond the end of the process address space. MFC r285104: Grammar and language fixes.
Diffstat (limited to 'sys/i386/include')
-rw-r--r--sys/i386/include/md_var.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/i386/include/md_var.h b/sys/i386/include/md_var.h
index 7bfcb9c..6c5aaea3 100644
--- a/sys/i386/include/md_var.h
+++ b/sys/i386/include/md_var.h
@@ -94,6 +94,7 @@ struct reg;
struct fpreg;
struct dbreg;
struct dumperinfo;
+struct segment_descriptor;
void *alloc_fpusave(int flags);
void bcopyb(const void *from, void *to, size_t len);
@@ -112,6 +113,7 @@ void dump_add_page(vm_paddr_t);
void dump_drop_page(vm_paddr_t);
void finishidentcpu(void);
void fillw(int /*u_short*/ pat, void *base, size_t cnt);
+void fill_based_sd(struct segment_descriptor *sdp, uint32_t base);
void initializecpu(void);
void initializecpucache(void);
void i686_pagezero(void *addr);
OpenPOWER on IntegriCloud