diff options
author | 2016-06-27 21:44:42 -0700 | |
---|---|---|
committer | 2016-07-01 14:50:29 -0700 | |
commit | 8063b9a292697cd0259594f2369c9b1abb233c03 (patch) | |
tree | 8a0831fb716f856604559626eb2546cde047c493 /src/bits64/task.rs | |
parent | c37a7b580d528f0a4d0721702ddd645a357a405d (diff) | |
download | rust-x86-8063b9a292697cd0259594f2369c9b1abb233c03.tar.gz rust-x86-8063b9a292697cd0259594f2369c9b1abb233c03.tar.zst rust-x86-8063b9a292697cd0259594f2369c9b1abb233c03.zip |
Combine Interface: TSS; Actually almost completely arch-specific
Diffstat (limited to 'src/bits64/task.rs')
-rw-r--r-- | src/bits64/task.rs | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/bits64/task.rs b/src/bits64/task.rs index fff00fe..da3093c 100644 --- a/src/bits64/task.rs +++ b/src/bits64/task.rs @@ -1,9 +1,7 @@ //! Helpers to program the task state segment. +//! See Intel 3a, Chapter 7, Section 7 -mod segmentation { - pub use shared::segmentation::*; - pub use super::super::segmentation::*; -} +use super::segmentation; pub type TaskStateDescriptorLow = segmentation::SegmentDescriptor; pub type TaskStateDescriptorHigh = u64; @@ -28,20 +26,15 @@ pub struct TaskStateSegment { } impl TaskStateSegment { - pub fn new() -> TaskStateSegment { + pub const fn new() -> TaskStateSegment { TaskStateSegment { reserved: 0, - rsp: [0, 0, 0], + rsp: [0; 3], reserved2: 0, - ist: [0, 0, 0, 0, 0, 0, 0], + ist: [0; 7], reserved3: 0, reserved4: 0, iomap_base: 0, } } } - -/// Load the task state register. -pub unsafe fn load_ltr(sel: segmentation::SegmentSelector) { - asm!("ltr $0" :: "r" (sel)); -} |