Coverage Report

Created: 2025-07-14 07:05

/rust/registry/src/index.crates.io-6f17d22bba15001f/x86-0.47.0/src/bits32/task.rs
Line
Count
Source (jump to first uncovered line)
1
//! Helpers to program the task state segment.
2
//! See Intel 3a, Chapter 7
3
4
use core::mem::size_of;
5
6
#[derive(Copy, Clone, Debug)]
7
#[repr(C, packed)]
8
pub struct TaskStateSegment {
9
    pub link: u16,
10
    reserved0: u16,
11
    pub esp0: u32,
12
    pub ss0: u16,
13
    reserved1: u16,
14
    pub esp1: u32,
15
    pub ss1: u16,
16
    reserved2: u16,
17
    pub esp2: u32,
18
    pub ss2: u16,
19
    reserved3: u16,
20
21
    pub cr3: u32,
22
    pub eip: u32,
23
    pub eflags: u32,
24
25
    pub eax: u32,
26
    pub ecx: u32,
27
    pub edx: u32,
28
    pub ebx: u32,
29
    pub esp: u32,
30
    pub ebp: u32,
31
    pub esi: u32,
32
    pub edi: u32,
33
34
    pub es: u16,
35
    reserved4: u16,
36
    pub cs: u16,
37
    reserved5: u16,
38
    pub ss: u16,
39
    reserved6: u16,
40
    pub ds: u16,
41
    reserved7: u16,
42
    pub fs: u16,
43
    reserved8: u16,
44
    pub gs: u16,
45
    reserved9: u16,
46
    pub ldtr: u16,
47
    reserved10: u32,
48
    pub iobp_offset: u16,
49
}
50
51
impl TaskStateSegment {
52
0
    pub const fn new() -> TaskStateSegment {
53
0
        TaskStateSegment {
54
0
            link: 0,
55
0
            reserved0: 0,
56
0
            esp0: 0,
57
0
            ss0: 0,
58
0
            reserved1: 0,
59
0
            esp1: 0,
60
0
            ss1: 0,
61
0
            reserved2: 0,
62
0
            esp2: 0,
63
0
            ss2: 0,
64
0
            reserved3: 0,
65
0
            cr3: 0,
66
0
            eip: 0,
67
0
            eflags: 0,
68
0
            eax: 0,
69
0
            ecx: 0,
70
0
            edx: 0,
71
0
            ebx: 0,
72
0
            esp: 0,
73
0
            ebp: 0,
74
0
            esi: 0,
75
0
            edi: 0,
76
0
            es: 0,
77
0
            reserved4: 0,
78
0
            cs: 0,
79
0
            reserved5: 0,
80
0
            ss: 0,
81
0
            reserved6: 0,
82
0
            ds: 0,
83
0
            reserved7: 0,
84
0
            fs: 0,
85
0
            reserved8: 0,
86
0
            gs: 0,
87
0
            reserved9: 0,
88
0
            ldtr: 0,
89
0
            reserved10: 0,
90
0
            iobp_offset: size_of::<TaskStateSegment>() as u16,
91
0
        }
92
0
    }
93
}