From f7b547171e541524c590308928dcabf33ebeda00 Mon Sep 17 00:00:00 2001 From: Alistair Delva Date: Fri, 6 Nov 2020 16:35:44 -0800 Subject: Expose EthernetDevice to custom UIs Make it possible to build a custom UI which uses EthernetRecoveryUI. Since EthernetRecoveryUI must be used with EthernetDevice, but the make_device() function is the only place a custom UI can be specified, we need to move the common EthernetDevice to the recovery_ui core and make a new "default_ethernet_device" which looks like the other default device library stubs, for backwards compatibility. This makes it possible to use EthernetRecoveryUI on cuttlefish. Bug: 172693524 Change-Id: I6a66bb949ef97d06f532adb286d2db4c002d2924 --- recovery_ui/include/recovery_ui/ethernet_device.h | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 recovery_ui/include/recovery_ui/ethernet_device.h (limited to 'recovery_ui/include') diff --git a/recovery_ui/include/recovery_ui/ethernet_device.h b/recovery_ui/include/recovery_ui/ethernet_device.h new file mode 100644 index 000000000..ea710ab93 --- /dev/null +++ b/recovery_ui/include/recovery_ui/ethernet_device.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _ETHERNET_RECOVERY_DEVICE_H +#define _ETHERNET_RECOVERY_DEVICE_H + +#include "device.h" + +#include + +// Forward declaration to avoid including "ethernet_ui.h". +class EthernetRecoveryUI; + +class EthernetDevice : public Device { + public: + explicit EthernetDevice(EthernetRecoveryUI* ui); + + void PreRecovery() override; + void PreFastboot() override; + + private: + int SetInterfaceFlags(const unsigned set, const unsigned clr); + void SetTitleIPv6LinkLocalAddress(const bool interface_up); + + android::base::unique_fd ctl_sock_; + static const std::string interface; +}; + +#endif // _ETHERNET_RECOVERY_DEVICE_H -- cgit v1.2.3