type hal_bluetooth_hikey, domain;
type hal_bluetooth_hikey_exec, exec_type, vendor_file_type, file_type;

hal_server_domain(hal_bluetooth_hikey, hal_bluetooth)

init_daemon_domain(hal_bluetooth_hikey)
