GitOS
Operating system exercise
Loading...
Searching...
No Matches
gdt.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <stdint.h>
4
5
struct
gdt
6
{
7
uint16_t
segment
;
8
uint16_t
base_first
;
9
uint8_t
base
;
10
uint8_t
access
;
11
uint8_t
high_flags
;
12
uint8_t
base_24_31_bits
;
13
}
__attribute__
((packed));
14
15
struct
gdt_structured
16
{
17
uint32_t
base
;
18
uint32_t
limit
;
19
uint8_t
type
;
20
};
21
22
struct
gdt_descriptor
23
{
24
uint16_t
size
;
25
uint32_t
start_address
;
26
}
__attribute__
((packed));
27
28
void
gdt_load
(
struct
gdt
*
gdt
,
unsigned
int
size
);
29
void
gdt_read
(
struct
gdt_descriptor
*target);
30
void
gdt_structured_to_gdt
(
struct
gdt
*
gdt
,
struct
gdt_structured
*structured_gdt,
unsigned
int
total_entries);
31
32
#define TOTAL_GDT_SEGMENTS 6
33
34
#define KERNEL_CODE_SELECTOR 0x08
35
#define KERNEL_DATA_SELECTOR 0x10
36
37
#define USER_CODE_SELECTOR 0x1b
38
#define USER_DATA_SELECTOR 0x23
gdt_load
void gdt_load(struct gdt *gdt, unsigned int size)
Definition
gdt.c:46
gdt_read
void gdt_read(struct gdt_descriptor *target)
Definition
gdt.c:55
__attribute__
struct gdt_structured __attribute__
size
uint16_t size
Definition
gdt.h:0
gdt_structured_to_gdt
void gdt_structured_to_gdt(struct gdt *gdt, struct gdt_structured *structured_gdt, unsigned int total_entries)
Definition
gdt.c:38
gdt_descriptor
Definition
gdt.h:23
gdt_descriptor::size
uint16_t size
Definition
gdt.h:24
gdt_descriptor::start_address
uint32_t start_address
Definition
gdt.h:25
gdt_structured
Definition
gdt.h:16
gdt_structured::base
uint32_t base
Definition
gdt.h:17
gdt_structured::limit
uint32_t limit
Definition
gdt.h:18
gdt_structured::type
uint8_t type
Definition
gdt.h:19
gdt
Definition
gdt.h:6
gdt::base_first
uint16_t base_first
Definition
gdt.h:8
gdt::high_flags
uint8_t high_flags
Definition
gdt.h:11
gdt::base_24_31_bits
uint8_t base_24_31_bits
Definition
gdt.h:12
gdt::access
uint8_t access
Definition
gdt.h:10
gdt::segment
uint16_t segment
Definition
gdt.h:7
gdt::base
uint8_t base
Definition
gdt.h:9
src
kernel
gdt
gdt.h
Generated by
1.9.8