RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
x86_64
amd64
include
gdt.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
10
11
/*
12
* Copyright (C) 2024 Matheus Pecoraro
13
*
14
* Redistribution and use in source and binary forms, with or without
15
* modification, are permitted provided that the following conditions
16
* are met:
17
* 1. Redistributions of source code must retain the above copyright
18
* notice, this list of conditions and the following disclaimer.
19
* 2. Redistributions in binary form must reproduce the above copyright
20
* notice, this list of conditions and the following disclaimer in the
21
* documentation and/or other materials provided with the distribution.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*/
35
36
#ifndef GDT_H
37
#define GDT_H
38
39
#define GDT_CODE_SEG_OFFSET 0x8
40
#define GDT_DATA_SEG_OFFSET 0x10
41
42
#ifndef ASM
43
#include <
rtems/score/basedefs.h
>
44
45
#include <stdint.h>
46
47
typedef
struct
{
48
uint16_t limit_low;
/* Lower 16 bits of the limit */
49
uint16_t base_low;
/* Lower 16 bits of the base */
50
uint8_t base_middle;
/* Next 8 bits of the base */
51
uint8_t access;
/* Access flags */
52
uint8_t gran_limit_middle;
/* Granularity flags and upper 4 bits of the limit */
53
uint8_t base_high;
/* Last 8 bits of the base */
54
}
RTEMS_PACKED
gdt_entry;
55
56
typedef
struct
{
57
uint16_t size;
58
uint64_t addr;
59
}
RTEMS_PACKED
gdt_desc;
60
61
extern
const
gdt_desc amd64_gdt_descriptor;
62
#endif
// ASM
63
64
#endif
// GDT_H
basedefs.h
This header file provides basic definitions used by the API and the implementation.
RTEMS_PACKED
#define RTEMS_PACKED
Instructs the compiler in a type definition to place members of a structure or union so that the memo...
Definition
basedefs.h:704
Generated by
1.18.0