libdatastr/util/dsdump.c
2000-07-28 15:30:55 +00:00

52 lines
1.1 KiB
C

#define SM_MODE 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <node.h>
#include <shmem.h>
#include <datastr.h>
int main (int argc, char ** argv)
{
NDT_Node * Node;
SM_Library_Open (0, NULL, SMD_OPEN | SMD_DEBUG_ALL);
ND_Node_First_Get (SM_Base->MHR, &Node);
while (Node)
{
char * ptr;
SMT_MHH * MHH = ( SMT_MHH *)(Node->Value);
if ((ptr = strstr (MHH->Name, "DATASTR/")) != NULL)
{
int Locked;
SMT_Heap * Heap;
SMT_DSH * DSH;
NDT_Root * Root;
DST_RootDesc * RootDesc;
SM_Heap_Open (ptr, &Heap, 0, SMD_OPEN | SMD_READ, &Locked);
DSH = ( SMT_DSH *)(MHH->DSR->Head->Value);
Root = ( NDT_Root *)((size_t)(DSH->Start) + sizeof (NDT_Node) + sizeof (SMT_Chunk));
RootDesc = (DST_RootDesc *)(Root->User);
fprintf (stdout, "Data Structure \"%s\":\n\t- Manager = %s\n\t- Open semaphore = %d\n", ptr + strlen ("datastr/"), RootDesc->Manager_FileName, RootDesc->OpenSemID);
SM_Heap_Close (Heap);
}
ND_Node_Next_Get (Node, &Node);
}
SM_Library_Close (SMD_CLOSE);
return 0;
}