Update managers implementation to libnode 2.x standard,

Fix some print out,
More debugging needed...
This commit is contained in:
agibert 2005-02-23 23:31:06 +00:00
parent cf00c637c7
commit 8e908f867c
3 changed files with 1332 additions and 405 deletions

View File

@ -1,9 +1,9 @@
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* $RCSfile: shmem.h,v $ */ /* $RCSfile: shmem.h,v $ */
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* $Revision: 2.1 $ */ /* $Revision: 2.2 $ */
/* $Name: $ */ /* $Name: $ */
/* $Date: 2005/01/24 23:24:30 $ */ /* $Date: 2005/02/23 23:31:06 $ */
/* $Author: agibert $ */ /* $Author: agibert $ */
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
@ -175,13 +175,13 @@ extern "C" {
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
typedef struct { typedef struct {
int SysMemID; /* ID de la 1ère zone de mémoire partagée de la base */ int SysMemId; /* Id de la 1ère zone de mémoire partagée de la base */
int DataMemID; /* ID de la 2ème zone de mémoire partagée de la base */ int DataMemId; /* Id de la 2ème zone de mémoire partagée de la base */
size_t Size; /* Taille de la zone de mémoire partagée */ size_t Size; /* Taille de la zone de mémoire partagée */
int SemID; /* ID du sémaphore pour la gestion des verrous */ int SemId; /* Id du sémaphore pour la gestion des verrous */
NDT_Root * MHR; /* Memory Heap Root : racine de la liste de heap */ NDT_Root * MHR; /* Memory Heap Root : racine de la liste de heap */
pid_t Creator; /* ID du processus créateur de la base */ pid_t Creator; /* Id du processus créateur de la base */
pid_t Writer; /* ID du dernier processus ayant accédé en écriture à la base */ pid_t Writer; /* Id du dernier processus ayant accédé en écriture à la base */
void * Free; /* Pointeur sur la première zone libre de la base */ void * Free; /* Pointeur sur la première zone libre de la base */
void * Attach; /* Adresse du dernier attachement */ void * Attach; /* Adresse du dernier attachement */
size_t Segment_Size; /* Taille par défaut des segments qui composeront les heaps */ size_t Segment_Size; /* Taille par défaut des segments qui composeront les heaps */
@ -198,11 +198,11 @@ extern "C" {
typedef struct { typedef struct {
char Name [256]; /* Nom du heap */ char Name [256]; /* Nom du heap */
int SemID; /* ID du sémaphore pour la gestion des verrous */ int SemId; /* Id du sémaphore pour la gestion des verrous */
NDT_Root * DSR; /* Data Segment Root */ NDT_Root * DSR; /* Data Segment Root */
NDT_Root * ACR; /* Allocated Chunks Root */ NDT_Root * ACR; /* Allocated Chunks Root */
NDT_Root * FCR; /* Free Chunks Root */ NDT_Root * FCR; /* Free Chunks Root */
pid_t Writer; /* ID du processus ayant accédé en dernier au MHH en écriture */ pid_t Writer; /* Id du processus ayant accédé en dernier au MHH en écriture */
int State; /* Etat d'un heap (valide, non validé ou corrompu) */ int State; /* Etat d'un heap (valide, non validé ou corrompu) */
size_t Segment_Size; /* Taille des segments de mémoire composant le heap */ size_t Segment_Size; /* Taille des segments de mémoire composant le heap */
size_t Limit_Size; /* Taille limite du heap (par défaut : pas de limite) */ size_t Limit_Size; /* Taille limite du heap (par défaut : pas de limite) */
@ -224,7 +224,7 @@ extern "C" {
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
typedef struct { typedef struct {
int MemID; /* ID de la zone de mémoire partagée */ int MemId; /* Id de la zone de mémoire partagée */
size_t Size; /* Taille de la zone de mémoire partagée */ size_t Size; /* Taille de la zone de mémoire partagée */
void * Start; /* Adresse de début de la zone de mémoire partagée */ void * Start; /* Adresse de début de la zone de mémoire partagée */
} SMT_DSH; } SMT_DSH;

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* $RCSfile: libshmem.h,v $ */ /* $RCSfile: libshmem.h,v $ */
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* $Revision: 2.1 $ */ /* $Revision: 2.2 $ */
/* $Name: $ */ /* $Name: $ */
/* $Date: 2005/01/24 23:10:09 $ */ /* $Date: 2005/02/23 23:31:06 $ */
/* $Author: agibert $ */ /* $Author: agibert $ */
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
@ -68,7 +68,8 @@ extern char * strdup (const char *);
#define MEM_LIMIT 1000000000 #define MEM_LIMIT 1000000000
#define SMD_CMD_VALUE_SUM (NDT_Command)65 //#define SMD_CMD_VALUE_SUM (NDT_Command)65
#define NDD_CMD_VALUE_SUM (NDT_Command)NDD_CMD_USER_TRAVERSE
/* Taille d'un segment = 100 Ko par défaut */ /* Taille d'un segment = 100 Ko par défaut */
@ -216,12 +217,12 @@ SMT_Status SM_Base_Unlock (SMT_Flags);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Fonction manager de la liste des heaps ouverts */ /* Fonction manager de la liste des heaps ouverts */
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
NDT_Status SM_Opened_Heap_List_Manager (va_list); NDT_Status SM_Opened_Heap_List_Manager ( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Fonction manager du MHR (Memory Heap Root) */ /* Fonction manager du MHR (Memory Heap Root) */
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
NDT_Status MHR_Manager (va_list); NDT_Status MHR_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Destruction d'un MHH (Memory Heap Header) */ /* Destruction d'un MHH (Memory Heap Header) */
@ -231,7 +232,7 @@ SMT_Status SM_MHH_End (SMT_MHH *);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Fonction manager pour un DSR (Data Segment Root) */ /* Fonction manager pour un DSR (Data Segment Root) */
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
NDT_Status SM_DSR_Manager (va_list); NDT_Status SM_DSR_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Initialisation d'un nouveau segment de données (noeud du DSR) */ /* Initialisation d'un nouveau segment de données (noeud du DSR) */
@ -261,12 +262,12 @@ size_t SM_DataSegment_Compress (SMT_DSH *, NDT_Root *);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Fonction manager pour un ACR (Allocated Chunk Root) */ /* Fonction manager pour un ACR (Allocated Chunk Root) */
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
NDT_Status SM_ACR_Manager (va_list); NDT_Status SM_ACR_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Fonction manager pour un FCR (Free Chunk Root) */ /* Fonction manager pour un FCR (Free Chunk Root) */
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
NDT_Status SM_FCR_Manager(va_list); NDT_Status SM_FCR_Manager( NDT_Root *, NDT_Index_Id, NDT_Node *, NDT_Command, va_list);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Pose d'un verrou sur un heap : */ /* Pose d'un verrou sur un heap : */
@ -293,11 +294,6 @@ SMT_Status SM_Semaphore_Operate (int, struct sembuf *, unsigned int);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
char * SM_Lock_Status_Get (const char *, void *); char * SM_Lock_Status_Get (const char *, void *);
/*------------------------------------------------------------------------------*/
/* Récupère sous forme explicite la description d'une racine de structure */
/*------------------------------------------------------------------------------*/
char * SM_Root_Description_Get (const char *, NDT_Root *);
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/
/* Routine d'affichage d'un message d'erreur */ /* Routine d'affichage d'un message d'erreur */
/*------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------*/