My Project
Loading...
Searching...
No Matches
intrin.h File Reference
#include <stdbool.h>
#include "../includes/annotations.h"

Go to the source code of this file.

Macros

#define PIC1_COMMAND_MASTER   0x20
#define PIC1_DATA   0x21
#define PIC2_COMMAND_SLAVE   0xA0
#define PIC2_DATA   0xA1
#define PIC_EOI   0x20
#define IA32_KERNEL_GS_BASE   0xC0000102
#define IA32_GS_BASE   0xC0000101 /* used both in kernel mode and user mode */
#define IA32_FS_BASE   0xC0000100
#define UNREFERENCED_PARAMETER(x)

Functions

FORCEINLINE void __cli (void)
FORCEINLINE void __sti (void)
FORCEINLINE void __hlt (void)
FORCEINLINE unsigned long int __read_cr0 (void)
FORCEINLINE void __write_cr0 (unsigned long int val)
FORCEINLINE unsigned long __read_cr2 (void)
FORCEINLINE void __write_cr2 (unsigned long val)
FORCEINLINE uint64_t __read_cr3 (void)
FORCEINLINE void __write_cr3 (uint64_t val)
FORCEINLINE unsigned long __read_cr4 (void)
FORCEINLINE void __write_cr4 (unsigned long val)
FORCEINLINE unsigned long __read_cr8 (void)
FORCEINLINE void __write_cr8 (unsigned long val)
FORCEINLINE uint64_t __read_dr (int reg)
FORCEINLINE void __write_dr (int reg, uint64_t val)
FORCEINLINE void __lidt (void *idt_ptr)
FORCEINLINE unsigned long int __read_rflags (void)
FORCEINLINE void __write_rflags (unsigned long int rflags)
FORCEINLINE unsigned short __inword (unsigned short port)
FORCEINLINE void __outword (unsigned short port, unsigned short val)
FORCEINLINE unsigned char __inbyte (unsigned short port)
FORCEINLINE void __outbyte (unsigned short port, unsigned char val)
FORCEINLINE void send_eoi (unsigned char irq)
FORCEINLINE void invlpg (void *m)
FORCEINLINE uint64_t __readmsr (uint32_t msr)
FORCEINLINE void __writemsr (uint32_t msr, uint64_t value)
FORCEINLINE uint64_t __read_rbp (void)
FORCEINLINE uint64_t __read_rsp (void)
FORCEINLINE uint64_t __read_rip (void)
FORCEINLINE void __pause (void)
FORCEINLINE uint64_t __readgsqword (uint64_t offset)
FORCEINLINE uint64_t __readfsqword (uint64_t offset)
FORCEINLINE void __swapgs (void)
FORCEINLINE bool __rdrand64 (uint64_t *out)
FORCEINLINE uint64_t __rdtsc (void)

Macro Definition Documentation

◆ IA32_FS_BASE

#define IA32_FS_BASE   0xC0000100

Definition at line 21 of file intrin.h.

◆ IA32_GS_BASE

#define IA32_GS_BASE   0xC0000101 /* used both in kernel mode and user mode */

Definition at line 20 of file intrin.h.

◆ IA32_KERNEL_GS_BASE

#define IA32_KERNEL_GS_BASE   0xC0000102

Definition at line 19 of file intrin.h.

◆ PIC1_COMMAND_MASTER

#define PIC1_COMMAND_MASTER   0x20

Definition at line 10 of file intrin.h.

◆ PIC1_DATA

#define PIC1_DATA   0x21

Definition at line 11 of file intrin.h.

◆ PIC2_COMMAND_SLAVE

#define PIC2_COMMAND_SLAVE   0xA0

Definition at line 12 of file intrin.h.

◆ PIC2_DATA

#define PIC2_DATA   0xA1

Definition at line 13 of file intrin.h.

◆ PIC_EOI

#define PIC_EOI   0x20

Definition at line 16 of file intrin.h.

◆ UNREFERENCED_PARAMETER

#define UNREFERENCED_PARAMETER ( x)
Value:
(void)(x)

Definition at line 24 of file intrin.h.

Function Documentation

◆ __cli()

FORCEINLINE void __cli ( void )

Definition at line 38 of file intrin.h.

◆ __hlt()

FORCEINLINE void __hlt ( void )

Definition at line 50 of file intrin.h.

◆ __inbyte()

FORCEINLINE unsigned char __inbyte ( unsigned short port)

Definition at line 172 of file intrin.h.

◆ __inword()

FORCEINLINE unsigned short __inword ( unsigned short port)

Definition at line 160 of file intrin.h.

◆ __lidt()

FORCEINLINE void __lidt ( void * idt_ptr)

Definition at line 135 of file intrin.h.

◆ __outbyte()

FORCEINLINE void __outbyte ( unsigned short port,
unsigned char val )

Definition at line 179 of file intrin.h.

◆ __outword()

FORCEINLINE void __outword ( unsigned short port,
unsigned short val )

Definition at line 167 of file intrin.h.

◆ __pause()

FORCEINLINE void __pause ( void )

Definition at line 224 of file intrin.h.

◆ __rdrand64()

FORCEINLINE bool __rdrand64 ( uint64_t * out)

Definition at line 254 of file intrin.h.

◆ __rdtsc()

FORCEINLINE uint64_t __rdtsc ( void )

Definition at line 263 of file intrin.h.

◆ __read_cr0()

FORCEINLINE unsigned long int __read_cr0 ( void )

Definition at line 55 of file intrin.h.

◆ __read_cr2()

FORCEINLINE unsigned long __read_cr2 ( void )

Definition at line 67 of file intrin.h.

◆ __read_cr3()

FORCEINLINE uint64_t __read_cr3 ( void )

Definition at line 78 of file intrin.h.

◆ __read_cr4()

FORCEINLINE unsigned long __read_cr4 ( void )

Definition at line 88 of file intrin.h.

◆ __read_cr8()

FORCEINLINE unsigned long __read_cr8 ( void )

Definition at line 98 of file intrin.h.

◆ __read_dr()

FORCEINLINE uint64_t __read_dr ( int reg)

Definition at line 109 of file intrin.h.

◆ __read_rbp()

FORCEINLINE uint64_t __read_rbp ( void )

Definition at line 206 of file intrin.h.

◆ __read_rflags()

FORCEINLINE unsigned long int __read_rflags ( void )

Definition at line 140 of file intrin.h.

◆ __read_rip()

FORCEINLINE uint64_t __read_rip ( void )

Definition at line 218 of file intrin.h.

◆ __read_rsp()

FORCEINLINE uint64_t __read_rsp ( void )

Definition at line 212 of file intrin.h.

◆ __readfsqword()

FORCEINLINE uint64_t __readfsqword ( uint64_t offset)

Definition at line 239 of file intrin.h.

◆ __readgsqword()

FORCEINLINE uint64_t __readgsqword ( uint64_t offset)

Definition at line 228 of file intrin.h.

◆ __readmsr()

FORCEINLINE uint64_t __readmsr ( uint32_t msr)

Definition at line 194 of file intrin.h.

◆ __sti()

FORCEINLINE void __sti ( void )

Definition at line 44 of file intrin.h.

◆ __swapgs()

FORCEINLINE void __swapgs ( void )

Definition at line 250 of file intrin.h.

◆ __write_cr0()

FORCEINLINE void __write_cr0 ( unsigned long int val)

Definition at line 62 of file intrin.h.

◆ __write_cr2()

FORCEINLINE void __write_cr2 ( unsigned long val)

Definition at line 73 of file intrin.h.

◆ __write_cr3()

FORCEINLINE void __write_cr3 ( uint64_t val)

Definition at line 83 of file intrin.h.

◆ __write_cr4()

FORCEINLINE void __write_cr4 ( unsigned long val)

Definition at line 93 of file intrin.h.

◆ __write_cr8()

FORCEINLINE void __write_cr8 ( unsigned long val)

Definition at line 103 of file intrin.h.

◆ __write_dr()

FORCEINLINE void __write_dr ( int reg,
uint64_t val )

Definition at line 124 of file intrin.h.

◆ __write_rflags()

FORCEINLINE void __write_rflags ( unsigned long int rflags)

Definition at line 151 of file intrin.h.

◆ __writemsr()

FORCEINLINE void __writemsr ( uint32_t msr,
uint64_t value )

Definition at line 200 of file intrin.h.

◆ invlpg()

FORCEINLINE void invlpg ( void * m)

Definition at line 190 of file intrin.h.

◆ send_eoi()

FORCEINLINE void send_eoi ( unsigned char irq)

Definition at line 183 of file intrin.h.