summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/pcb.h
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2009-03-17 00:48:11 +0000
committerjkim <jkim@FreeBSD.org>2009-03-17 00:48:11 +0000
commit3eda4741daa9db3ec9fa89000bfbf69dd182e01e (patch)
treec75b77d8208c29993db8a02658e1f33e9e5339b8 /sys/amd64/include/pcb.h
parent4e75ea04f545069138b54e1fee5b5c1236ba5b68 (diff)
downloadFreeBSD-src-3eda4741daa9db3ec9fa89000bfbf69dd182e01e.zip
FreeBSD-src-3eda4741daa9db3ec9fa89000bfbf69dd182e01e.tar.gz
Initial suspend/resume support for amd64.
This code is heavily inspired by Takanori Watanabe's experimental SMP patch for i386 and large portion was shamelessly cut and pasted from Peter Wemm's AP boot code.
Diffstat (limited to 'sys/amd64/include/pcb.h')
-rw-r--r--sys/amd64/include/pcb.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h
index e6a5add..2e2ca87 100644
--- a/sys/amd64/include/pcb.h
+++ b/sys/amd64/include/pcb.h
@@ -82,11 +82,25 @@ struct pcb {
struct user_segment_descriptor pcb_gs32sd;
};
+struct xpcb {
+ struct pcb xpcb_pcb;
+ register_t xpcb_cr0;
+ register_t xpcb_cr2;
+ register_t xpcb_cr4;
+ register_t xpcb_kgsbase;
+ uint32_t xpcb_ss;
+ struct region_descriptor xpcb_gdt;
+ struct region_descriptor xpcb_idt;
+ struct region_descriptor xpcb_ldt;
+ uint16_t xpcb_tr;
+};
+
#ifdef _KERNEL
struct trapframe;
void makectx(struct trapframe *, struct pcb *);
void savectx(struct pcb *);
+int savectx2(struct xpcb *);
#endif
#endif /* _AMD64_PCB_H_ */
OpenPOWER on IntegriCloud