Fixing bugs and removing debug statements
[tpg/acess2.git] / Modules / Interfaces / UDI / main.c
index a6fed92..a4a1504 100644 (file)
@@ -52,7 +52,7 @@ int UDI_LoadDriver(void *Base)
         int    i;
        // int  j;
        
-       Log("UDI_LoadDriver: (Base=%p)", Base);
+       Log_Debug("UDI", "UDI_LoadDriver: (Base=%p)", Base);
        
        if( Binary_FindSymbol(Base, "udi_init_info", (Uint*)&info) == 0) {
                Binary_Unload(Base);
@@ -60,11 +60,42 @@ int UDI_LoadDriver(void *Base)
        }
        
        if( Binary_FindSymbol(Base, "_udiprops", (Uint*)&udiprops) == 0 ) {
-               Warning("[UDI  ] _udiprops is not defined, this is usually bad");
+               Log_Warning("UDI", "_udiprops is not defined, this is usually bad");
        }
        else {
-               Binary_FindSymbol(Base, "_udiprops_size", (Uint*)&udiprops_size);
-               Log("udiprops = %p, udiprops_size = 0x%x", udiprops, udiprops_size);
+               Uint    udiprops_end = 0;
+                int    i, j, nLines;
+               char    **udipropsptrs;
+               
+               if( Binary_FindSymbol(Base, "_udiprops_end", (Uint*)&udiprops_end) == 0)
+                       Log_Warning("UDI", "_udiprops_end is not defined");
+               Log_Debug("UDI", "udiprops_end = %p", udiprops_end);
+               udiprops_size = udiprops_end - (Uint)udiprops;
+               Log_Debug("UDI", "udiprops = %p, udiprops_size = 0x%x", udiprops, udiprops_size);
+               
+               Debug_HexDump("UDI_LoadDriver", udiprops, udiprops_size);
+               
+               nLines = 1;
+               for( i = 0; i < udiprops_size; i++ )
+               {
+                       if( udiprops[i] == '\0' )
+                               nLines ++;
+               }
+               
+               Log_Debug("UDI", "nLines = %i", nLines);
+               
+               udipropsptrs = malloc( sizeof(char*)*nLines );
+               udipropsptrs[0] = udiprops;
+               j = 0;
+               for( i = 0; i < udiprops_size; i++ )
+               {
+                       if( udiprops[i] == '\0' ) {
+                               //Log_Debug("UDI", "udipropsptrs[%i] = '%s'", j, udipropsptrs[j]);
+                               udipropsptrs[j++] = &udiprops[i+1];
+                       }
+               }
+               Log_Debug("UDI", "udipropsptrs[%i] = '%s'", j, udipropsptrs[j]);
+               Log_Debug("UDI", "udiprops = \"%s\"", udiprops);
        }
        
        
@@ -106,7 +137,7 @@ int UDI_LoadDriver(void *Base)
                Log(" .meta_ops_num = 0x%x", info->ops_init_list[i].meta_ops_num);
                Log(" .chan_context_size = 0x%x", info->ops_init_list[i].chan_context_size);
                Log(" .ops_vector = %p", info->ops_init_list[i].ops_vector);
-               Log(" .op_flags = %p", info->ops_init_list[i].op_flags);
+//             Log(" .op_flags = %p", info->ops_init_list[i].op_flags);
                Log("}");
        }
        

UCC git Repository :: git.ucc.asn.au