mux: support host clear APIs

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
This commit is contained in:
Wataru Ishida
2019-06-28 16:24:01 -07:00
committed by Wataru Ishida
parent 89fb966954
commit eb5bee2b8b
4 changed files with 54 additions and 6 deletions

View File

@@ -153,6 +153,16 @@ class ModuleAdapter {
return m_hostif_api->get_host_interface_attributes(host_interface_id, attr_count, attr_list);
}
tai_status_t clear_host_interface_attributes(
_In_ tai_object_id_t host_interface_id,
_In_ uint32_t attr_count,
_In_ tai_attr_id_t *attr_list) {
if ( m_hostif_api == nullptr || m_hostif_api->clear_host_interface_attributes == nullptr ) {
return TAI_STATUS_FAILURE;
}
return m_hostif_api->clear_host_interface_attributes(host_interface_id, attr_count, attr_list);
}
private:
void* m_dl;
const std::string& m_name;

View File

@@ -78,6 +78,22 @@ tai_status_t Multiplexier::get_host_interface_attributes(_In_ tai_object_id_t ho
return get_attributes(&ModuleAdapter::get_host_interface_attributes, host_interface_id, attr_count, attr_list);
}
tai_status_t Multiplexier::clear_host_interface_attributes(_In_ tai_object_id_t host_interface_id,
_In_ uint32_t attr_count,
_Out_ tai_attr_id_t *attr_list) {
tai_object_id_t id;
ModuleAdapter *m_adapter;
if ( g_mux == nullptr ) {
return TAI_STATUS_UNINITIALIZED;
}
if ( g_mux->get_mapping(host_interface_id, &m_adapter, &id) != 0 ) {
return TAI_STATUS_FAILURE;
}
return m_adapter->clear_host_interface_attributes(id, attr_count, attr_list);
}
tai_status_t Multiplexier::create_network_interface(
_Out_ tai_object_id_t *network_interface_id,
_In_ tai_object_id_t module_id,

View File

@@ -128,6 +128,11 @@ class Multiplexier {
_In_ uint32_t attr_count,
_Out_ tai_attribute_t *attr_list);
tai_status_t clear_host_interface_attributes(
_In_ tai_object_id_t host_interface_id,
_In_ uint32_t attr_count,
_Out_ tai_attr_id_t *attr_list);
tai_object_type_t object_type_query(
_In_ tai_object_id_t id);

View File

@@ -85,13 +85,30 @@ static tai_status_t mux_get_host_interface_attribute(
return g_mux->get_host_interface_attributes(host_interface_id, 1, attr);
}
static tai_status_t mux_clear_host_interface_attributes(
_In_ tai_object_id_t host_interface_id,
_In_ uint32_t attr_count,
_Out_ tai_attr_id_t *attr_list)
{
return g_mux->clear_host_interface_attributes(host_interface_id, attr_count, attr_list);
}
static tai_status_t mux_clear_host_interface_attribute(
_In_ tai_object_id_t host_interface_id,
_Out_ tai_attr_id_t attr_id)
{
return g_mux->clear_host_interface_attributes(host_interface_id, 1, &attr_id);
}
tai_host_interface_api_t mux_host_interface_api = {
.create_host_interface = mux_create_host_interface,
.remove_host_interface = mux_remove_host_interface,
.set_host_interface_attribute = mux_set_host_interface_attribute,
.set_host_interface_attributes = mux_set_host_interface_attributes,
.get_host_interface_attribute = mux_get_host_interface_attribute,
.get_host_interface_attributes = mux_get_host_interface_attributes
.create_host_interface = mux_create_host_interface,
.remove_host_interface = mux_remove_host_interface,
.set_host_interface_attribute = mux_set_host_interface_attribute,
.set_host_interface_attributes = mux_set_host_interface_attributes,
.get_host_interface_attribute = mux_get_host_interface_attribute,
.get_host_interface_attributes = mux_get_host_interface_attributes,
.clear_host_interface_attribute = mux_clear_host_interface_attribute,
.clear_host_interface_attributes = mux_clear_host_interface_attributes
};
static tai_status_t mux_create_network_interface(