+ UDI_int_ChannelFlip( UDI_GCB(cb) );
+ LOG("cb=%p, enumeration_result=%i, ops_idx=%i", cb, enumeration_result, ops_idx);
+ switch( enumeration_result )
+ {
+ case UDI_ENUMERATE_OK:
+ #if DEBUG && 0
+ for( int i = 0; i < cb->attr_valid_length; i ++ )
+ {
+ udi_instance_attr_list_t *at = &cb->attr_list[i];
+ switch(at->attr_type)
+ {
+ case UDI_ATTR_STRING:
+ LOG("[%i] String '%.*s'", i, at->attr_length, at->attr_value);
+ break;
+ case UDI_ATTR_UBIT32:
+ LOG("[%i] UBit32 0x%08x", i, UDI_ATTR32_GET(at->attr_value));
+ break;
+ default:
+ LOG("[%i] %i", i, at->attr_type);
+ break;
+ }
+ }
+ #endif
+ // Returned a device
+ UDI_MA_AddChild(cb, ops_idx);
+ udi_enumerate_req(cb, UDI_ENUMERATE_NEXT);
+ return ;
+ case UDI_ENUMERATE_DONE:
+ // All done. Chain terminates
+ return ;
+ default:
+ Log_Notice("UDI", "Unknown enumeration_result %i", enumeration_result);
+ return ;
+ }