<!-- ##### SECTION Title ##### -->
HalDevice

<!-- ##### SECTION Short_Description ##### -->


<!-- ##### SECTION Long_Description ##### -->
<para>

</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### STRUCT HalDevice ##### -->
<para>

</para>

@parent: 
@udi: 
@properties: 

<!-- ##### USER_FUNCTION HalDeviceAsyncCallback ##### -->
<para>

</para>

@device: 
@user_data: 
@prop_exists: 


<!-- ##### USER_FUNCTION HalDevicePropertyForeachFn ##### -->
<para>

</para>

@device: 
@property: 
@user_data: 
@Returns: 


<!-- ##### FUNCTION hal_device_new ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION hal_device_merge ##### -->
<para>

</para>

@target: 
@source: 


<!-- ##### FUNCTION hal_device_merge_with_rewrite ##### -->
<para>

</para>

@target: 
@source: 
@target_namespace: 
@source_namespace: 


<!-- ##### FUNCTION hal_device_matches ##### -->
<para>

</para>

@device1: 
@device2: 
@namespace: 
@Returns: 


<!-- ##### FUNCTION hal_device_get_udi ##### -->
<para>

</para>

@device: 
@Returns: 


<!-- ##### FUNCTION hal_device_set_udi ##### -->
<para>

</para>

@device: 
@udi: 


<!-- ##### FUNCTION hal_device_add_capability ##### -->
<para>

</para>

@device: 
@capability: 


<!-- ##### FUNCTION hal_device_has_capability ##### -->
<para>

</para>

@device: 
@capability: 
@Returns: 


<!-- ##### FUNCTION hal_device_has_property ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_find ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_num_properties ##### -->
<para>

</para>

@device: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_to_string ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_foreach ##### -->
<para>

</para>

@device: 
@callback: 
@user_data: 


<!-- ##### FUNCTION hal_device_property_get_type ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_as_string ##### -->
<para>

</para>

@device: 
@key: 
@buf: 
@bufsize: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_string ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_int ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_uint64 ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_bool ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_double ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_strlist ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_get_strlist_elem ##### -->
<para>

</para>

@device: 
@key: 
@index: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_set_string ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_set_int ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_set_uint64 ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_set_bool ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_set_double ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_strlist_append ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_strlist_prepend ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_strlist_remove_elem ##### -->
<para>

</para>

@device: 
@key: 
@index: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_strlist_clear ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_strlist_add ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_strlist_remove ##### -->
<para>

</para>

@device: 
@key: 
@value: 
@Returns: 


<!-- ##### FUNCTION hal_device_property_remove ##### -->
<para>

</para>

@device: 
@key: 
@Returns: 


<!-- ##### FUNCTION hal_device_copy_property ##### -->
<para>

</para>

@from_device: 
@from: 
@to_device: 
@to: 
@Returns: 


<!-- ##### FUNCTION hal_device_print ##### -->
<para>

</para>

@device: 


<!-- ##### FUNCTION hal_device_async_wait_property ##### -->
<para>

</para>

@device: 
@key: 
@callback: 
@user_data: 
@timeout: 


<!-- ##### FUNCTION hal_device_callouts_finished ##### -->
<para>

</para>

@device: 


<!-- ##### FUNCTION hal_device_cancel ##### -->
<para>

</para>

@device: 


<!-- ##### FUNCTION hal_device_property_set_attribute ##### -->
<para>

</para>

@device: 
@key: 
@attr: 
@persistence: 
@Returns: 


