tUDI_MetaLang cMetaLang_Management = {
"udi_mgmt",
-
- 1,
+ NULL,
+ 3,
{
- {sizeof(udi_enumerate_cb_t), NULL}
+ {sizeof(udi_enumerate_cb_t), 0, NULL},
+ {sizeof(udi_usage_cb_t), 0, NULL},
+ {sizeof(udi_channel_event_cb_t), 0, NULL},
}
};
{
// TODO: Update trace mask from cb
LOG("cb=%p{cb->trace_mask=%x}", cb, cb->trace_mask);
+ UDI_MA_TransitionState(UDI_GCB(cb)->initiator_context, UDI_MASTATE_USAGEIND, UDI_MASTATE_SECBIND);
+ udi_cb_free( UDI_GCB(cb) );
}
void udi_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
switch(at->attr_type)
{
case UDI_ATTR_STRING:
- LOG("[%i] String '%.*s'", i, at->attr_length, at->attr_value);
+ LOG("[%i] %s String '%.*s'", i, at->attr_name,
+ at->attr_length, at->attr_value);
break;
case UDI_ATTR_UBIT32:
- LOG("[%i] UBit32 0x%08x", i, UDI_ATTR32_GET(at->attr_value));
+ LOG("[%i] %s UBit32 0x%08x", i, at->attr_name,
+ UDI_ATTR32_GET(at->attr_value));
break;
default:
- LOG("[%i] %i", i, at->attr_type);
+ LOG("[%i] %s %i", i, at->attr_name,
+ at->attr_type);
break;
}
}
UDI_MA_AddChild(cb, ops_idx);
udi_enumerate_req(cb, UDI_ENUMERATE_NEXT);
return ;
+ case UDI_ENUMERATE_LEAF:
case UDI_ENUMERATE_DONE:
// All done. Chain terminates
+ UDI_MA_TransitionState(UDI_GCB(cb)->initiator_context,
+ UDI_MASTATE_ENUMCHILDREN, UDI_MASTATE_ACTIVE);
+ udi_cb_free( UDI_GCB(cb) );
return ;
default:
Log_Notice("UDI", "Unknown enumeration_result %i", enumeration_result);