summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/HalControlRegisterAPI.s
blob: 90fdeb8109403a019a44283acbb36575c4ac5264 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* ========================================

    Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.

======================================== */

.globl hal_write_cr3
.globl hal_write_cr0
.globl hal_read_cr2
.globl hal_read_cr3
.globl hal_read_cr0
.globl hal_flush_tlb
.globl hal_invl_tlb

.text

hal_invl_tlb:
    invlpg (%rcx)
    retq

hal_flush_tlb:
    call hal_read_cr3
    mov %rax, %rcx
    call hal_write_cr3
    retq

hal_read_cr3:
    movq %cr3, %rax
    retq

hal_read_cr0:
    movq %cr0, %rax
    retq

hal_read_cr2:
    movq %cr2, %rax
    retq

hal_write_cr3:
    movq %rcx, %cr3
    retq

hal_write_cr0:
    movq %rcx, %cr0
    retq