My Project
Chargement...
Recherche...
Aucune correspondance
segment.h
Aller à la documentation de ce fichier.
1/*----------------------------------------------------------------------------*/
2/* Définition des segments et leurs descripteurs et sélecteurs. */
3/* */
4/* (C) Manu Chaput 2000 */
5/*----------------------------------------------------------------------------*/
6#ifndef SEGMENT_DEF
7#define SEGMENT_DEF
8
9#include <manux/types.h>
10
11/*
12 * Un descripteur de segment
13 */
22
23/*
24 * Un descripteur de TSS ([1] p 6-7)
25 */
34
39
40/*
41 * La DescriptorTable est un tableau de descripteurs de segments auquel on ajoute
42 * sa taille effective.
43 */
49
50#define tailleGDTSysteme (sizeof(int)+ \
51 sizeof(int)+ \
52 gdtSysteme->taille*sizeof(Descripteur))
53
55
56void initialiserGDT(void);
57/*
58 * Initiliser la GDT (Global Description Table)
59 */
60
61void chargerGDT(DescriptorTable * gdt);
62/*
63 * Chargement de la Global Descriptor Table
64 */
65
66void chargerLDT(DescriptorTable * ldt);
67/*
68 * Chargement de la Local Descriptor Table
69 */
70
72 void * adresse, uint32_t limite,
73 booleen busyTask);
74/*
75 * Ajout d'un descripteur de TSS à la DescriptorTable
76 *
77 * L'adresse et la limite du segment sont fournies en paramètre.
78 * L'indice dans la DescriptorTable est fournie en retour (multiplié
79 * par 8 comme l'index Intel).
80 */
81
83 uint32_t adresse, uint32_t limite,
84 uint8_t type,
85 uint8_t gd0a);
86/*
87 * Initialisation d'un descripteur de segment dans une table de descripteur
88 * gd0a doit contenir dans son quadret de poids fort les bits G, D/B, 0
89 * et AVL ([1] p 3-11)
90 */
91
92#endif
unsigned long uint32_t
Definition types.h:20
unsigned short uint16_t
Definition types.h:16
int booleen
Definition types.h:32
unsigned char uint8_t
Definition types.h:12
struct _DescTSS DescTSS
void chargerLDT(DescriptorTable *ldt)
Definition segment.c:137
struct _DescSegment DescSegment
int setDescripteurSegment(DescriptorTable *dt, uint32_t adresse, uint32_t limite, uint8_t type, uint8_t gd0a)
Definition segment.c:19
int ajouterDescTSS(DescriptorTable *dt, void *adresse, uint32_t limite, booleen busyTask)
Definition segment.c:211
void chargerGDT(DescriptorTable *gdt)
Definition segment.c:65
DescriptorTable * gdtSysteme
Definition segment.c:12
union _Descripteur Descripteur
void initialiserGDT(void)
Definition segment.c:156
struct _DescriptorTable DescriptorTable
uint16_t baseFaible
Definition segment.h:16
uint8_t limiteFort
Definition segment.h:19
uint8_t baseInter
Definition segment.h:17
uint16_t limiteFaible
Definition segment.h:15
uint8_t type
Definition segment.h:18
uint8_t baseFort
Definition segment.h:20
uint8_t type
Definition segment.h:30
uint16_t baseFaible
Definition segment.h:28
uint16_t limiteFaible
Definition segment.h:27
uint8_t baseInter
Definition segment.h:29
uint8_t limiteFort
Definition segment.h:31
uint8_t baseFort
Definition segment.h:32
Descripteur descripteur[0]
Definition segment.h:47
DescSegment ds
Definition segment.h:36
DescTSS dt
Definition segment.h:37