13c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius/* 23c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * Copyright (C) 2016 The Android Open Source Project 33c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * 43c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * Licensed under the Apache License, Version 2.0 (the "License"); 53c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * you may not use this file except in compliance with the License. 63c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * You may obtain a copy of the License at 73c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * 83c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * http://www.apache.org/licenses/LICENSE-2.0 93c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * 103c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * Unless required by applicable law or agreed to in writing, software 113c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * distributed under the License is distributed on an "AS IS" BASIS, 123c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * See the License for the specific language governing permissions and 143c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius * limitations under the License. 153c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius */ 163c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 173c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius#include <android-base/logging.h> 184faa7f5b271ff6f76cb7f73ee8699e159f17ba37Martijn Coenen#include <hidl/HidlTransportSupport.h> 193c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius#include <utils/Looper.h> 203c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius#include <utils/StrongPointer.h> 213c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 223c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius#include "wifi.h" 233c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 244faa7f5b271ff6f76cb7f73ee8699e159f17ba37Martijn Coenenusing android::hardware::configureRpcThreadpool; 254faa7f5b271ff6f76cb7f73ee8699e159f17ba37Martijn Coenenusing android::hardware::joinRpcThreadpool; 263c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 273c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Piusint main(int /*argc*/, char** argv) { 2879a9975d07ec1fc583f4f281469bf3c05c909034Roshan Pius android::base::InitLogging(argv, 2979a9975d07ec1fc583f4f281469bf3c05c909034Roshan Pius android::base::LogdLogger(android::base::SYSTEM)); 30742bb977692b7223721daf593816cb6cf221f3f6Roshan Pius LOG(INFO) << "Wifi Hal is starting up..."; 313c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 324faa7f5b271ff6f76cb7f73ee8699e159f17ba37Martijn Coenen configureRpcThreadpool(1, true /* callerWillJoin */); 333c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 343c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius // Setup hwbinder service 3579a9975d07ec1fc583f4f281469bf3c05c909034Roshan Pius android::sp<android::hardware::wifi::V1_0::IWifi> service = 36aabe5755365b07b92f75e2ece853f44d785517aaRoshan Pius new android::hardware::wifi::V1_0::implementation::Wifi(); 37ab8166fa4e08d8f86504bb7311b86e31cd839cb1Chris Phoenix CHECK_EQ(service->registerAsService(), android::NO_ERROR) 3879a9975d07ec1fc583f4f281469bf3c05c909034Roshan Pius << "Failed to register wifi HAL"; 393c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 404faa7f5b271ff6f76cb7f73ee8699e159f17ba37Martijn Coenen joinRpcThreadpool(); 413c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius 42742bb977692b7223721daf593816cb6cf221f3f6Roshan Pius LOG(INFO) << "Wifi Hal is terminating..."; 433c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius return 0; 443c4e8a358c96cb4781fbfeaa2718695260bb39baRoshan Pius} 45