00001
00006 #ifndef LIB_KSINU_H
00007 #define LIB_KSINU_H
00008
00009 #define <stdlib.h>
00010 #define <stdio.h>
00011
00012
00013
00014
00015
00016
00017
00018 typedef mot_t = char[4];
00019
00020
00021 #define T_MOT 4 // Taille en octets d'un mot
00022 #define NPP 16 // Nb de pages physiques
00023 #define NMPPP 32 // Nb max de mot dans une page
00024 mot_t mem[NPP][NMPPP];
00025
00026
00027 #define T_MAX_CODE 256 // Taille max (en mots) de la zone de code
00028 #define T_MAX_DONNEES 256 // Taille max (en mots) de la zone de donnees
00029 #define T_MAX_PILE 256 // Taille max (en mots) de la zone de pile
00030
00031
00032
00033
00034
00035
00036 #define N_MAX_PROC 10 // Taille de la table des processus
00037 #define N_INDIR 5 // Taille de la table des pages 1er niveau
00038 #define N_PAGES 4 // Taille de la table des pages 2eme niveau
00039
00040
00041 #define PP_RAM 0 // RAM
00042 #define PP_SWAP 1 // Swap
00043 #define PP_VIDE -1 // Inutilise
00044
00045
00046 #define D_RD 0
00047 #define D_RDWR 1
00048
00049
00050 struct st_ad_page_physique {
00051 int num_ppage;
00052 short type;
00053 };
00054
00055
00056 struct st_ad_indirect {
00057 short droits;
00058
00059 struct st_ad_page_physique[N_PAGES];
00060 };
00061
00062
00063 struct st_proc {
00064 int cur_inst;
00065 int cur_vpage;
00066 int taille_code;
00067 int taille_donnees;
00068 int taille_pile;
00069
00070 struct st_ad_indirect *table_indir[N_INDIR];
00071 };
00072
00073
00074 struct st_proc table_proc[N_MAX_PROC];
00075
00076
00077 #endif