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,10 +1,10 @@
|
|||||||
/*---------------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------------*/
|
||||||
/* $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;
|
||||||
|
1693
lib/libshmem.c
1693
lib/libshmem.c
File diff suppressed because it is too large
Load Diff
@ -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 */
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
|
Loading…
Reference in New Issue
Block a user