type hal_tetheroffload_default, domain;
hal_server_domain(hal_tetheroffload_default, hal_tetheroffload)

type hal_tetheroffload_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_tetheroffload_default)
