#define SM_MODE 1 #include #include #include #include #include #include #include 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; }