Update managers implementation to libnode 2.x standard,
Fix some print out, More debugging needed...
This commit is contained in:
parent
cf00c637c7
commit
8e908f867c
@ -1,9 +1,9 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $RCSfile: shmem.h,v $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $Revision: 2.1 $ */
|
||||
/* $Revision: 2.2 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2005/01/24 23:24:30 $ */
|
||||
/* $Date: 2005/02/23 23:31:06 $ */
|
||||
/* $Author: agibert $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
@ -175,13 +175,13 @@ extern "C" {
|
||||
/*------------------------------------------------------------------------------*/
|
||||
|
||||
typedef struct {
|
||||
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 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 */
|
||||
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 */
|
||||
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 Creator; /* Id du processus créateur de 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 * Attach; /* Adresse du dernier attachement */
|
||||
size_t Segment_Size; /* Taille par défaut des segments qui composeront les heaps */
|
||||
@ -198,11 +198,11 @@ extern "C" {
|
||||
|
||||
typedef struct {
|
||||
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 * ACR; /* Allocated 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) */
|
||||
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) */
|
||||
@ -224,7 +224,7 @@ extern "C" {
|
||||
/*------------------------------------------------------------------------------*/
|
||||
|
||||
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 */
|
||||
void * Start; /* Adresse de début de la zone de mémoire partagée */
|
||||
} SMT_DSH;
|
||||
|
1599
lib/libshmem.c
1599
lib/libshmem.c
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,9 @@
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $RCSfile: libshmem.h,v $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
/* $Revision: 2.1 $ */
|
||||
/* $Revision: 2.2 $ */
|
||||
/* $Name: $ */
|
||||
/* $Date: 2005/01/24 23:10:09 $ */
|
||||
/* $Date: 2005/02/23 23:31:06 $ */
|
||||
/* $Author: agibert $ */
|
||||
/*---------------------------------------------------------------------------------*/
|
||||
|
||||
@ -68,7 +68,8 @@ extern char * strdup (const char *);
|
||||
#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 */
|
||||
@ -216,12 +217,12 @@ SMT_Status SM_Base_Unlock (SMT_Flags);
|
||||
/*------------------------------------------------------------------------------*/
|
||||
/* 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) */
|
||||
/*------------------------------------------------------------------------------*/
|
||||
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) */
|
||||
@ -231,7 +232,7 @@ SMT_Status SM_MHH_End (SMT_MHH *);
|
||||
/*------------------------------------------------------------------------------*/
|
||||
/* 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) */
|
||||
@ -261,12 +262,12 @@ size_t SM_DataSegment_Compress (SMT_DSH *, NDT_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) */
|
||||
/*------------------------------------------------------------------------------*/
|
||||
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 : */
|
||||
@ -293,11 +294,6 @@ SMT_Status SM_Semaphore_Operate (int, struct sembuf *, unsigned int);
|
||||
/*------------------------------------------------------------------------------*/
|
||||
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 */
|
||||
/*------------------------------------------------------------------------------*/
|
||||
|
Loading…
Reference in New Issue
Block a user