X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FInterfaces%2FUDI%2Fmain.c;h=a4a1504a95502caed08e08bbc50f749082f547b0;hb=3998cfbbadb005bf3ad52ea2538dc21f82864ddc;hp=a6fed9227d4da52f20b481dae3ddb838fddd7fe2;hpb=156885e938b60fee9d061d989ae7711c9aeea493;p=tpg%2Facess2.git diff --git a/Modules/Interfaces/UDI/main.c b/Modules/Interfaces/UDI/main.c index a6fed922..a4a1504a 100644 --- a/Modules/Interfaces/UDI/main.c +++ b/Modules/Interfaces/UDI/main.c @@ -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("}"); }