1 // 2 // Copyright (C) 2024 The Android Open Source Project 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 mod default_evs_hal; 18 19 use crate::default_evs_hal::DefaultEvsHal; 20 21 use android_hardware_automotive_evs::aidl::android::hardware::automotive::evs::IEvsEnumerator::BnEvsEnumerator; 22 23 use log::info; 24 main()25fn main() { 26 binder::ProcessState::start_thread_pool(); 27 28 let service = DefaultEvsHal {}; 29 30 // Register HAL implementation as rust/0 instance. 31 let service_name = "android.hardware.automotive.evs.IEvsEnumerator/rust/0"; 32 let service_binder = BnEvsEnumerator::new_binder(service, binder::BinderFeatures::default()); 33 34 binder::add_service(service_name, service_binder.as_binder()) 35 .expect(format!("Failed to register {}.", service_name).as_str()); 36 info!("EVS Hardware Enumerator is ready"); 37 38 binder::ProcessState::join_thread_pool(); 39 40 // In normal operation, we don't expect the thread pool to exit. 41 info!("EVS Hardware Enumerator is shutting down"); 42 } 43