# thermalserviced -- thermal management services for system and vendor
type thermalserviced, domain;
type thermalserviced_exec, exec_type, file_type;

binder_use(thermalserviced)
binder_service(thermalserviced)
add_service(thermalserviced, thermal_service)

hwbinder_use(thermalserviced)
hal_client_domain(thermalserviced, hal_thermal)
add_hwservice(thermalserviced, thermalcallback_hwservice)

binder_call(thermalserviced, platform_app)
