| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SRC_BRINGUP_BIN_NETSVC_ARGS_H_ |
| #define SRC_BRINGUP_BIN_NETSVC_ARGS_H_ |
| |
| #include <fidl/fuchsia.io/cpp/wire.h> |
| |
| #include <string> |
| |
| struct NetsvcArgs { |
| // This is true if `netsvc.disable` is on the kernel commandline. |
| bool disable = false; |
| // This is true if `netsvc.netboot` is on the kernel commandline |
| // OR if '--netboot' is on the binary commandline. |
| bool netboot = false; |
| // This is true if `--nodename` is on the binary commandline. |
| bool print_nodename_and_exit = false; |
| // This is true if `netsvc.advertise` is on the kernel commandline |
| // OR if `--advertise` is on the binary commandline. |
| bool advertise = false; |
| // This is true if `netsvc.all-features` is on the kernel commandlinne |
| // OR if `--all-features` is on the binary commandline. |
| bool all_features = false; |
| // Log all received packets. |
| bool log_packets = false; |
| // This is the string value of `netsvc.interface`. |
| // It is overriden by the string value of `--interface` on the binary commandline. |
| std::string interface; |
| }; |
| |
| // Parses NetsvcArgs via the kernel commandline and the binary commandline (argv). |
| // If ParseArgs returns < 0, an error string will be returned in |error|. |
| int ParseArgs(int argc, char** argv, fidl::UnownedClientEnd<fuchsia_io::Directory> svc_dir, |
| const char** error, NetsvcArgs* out); |
| |
| #endif // SRC_BRINGUP_BIN_NETSVC_ARGS_H_ |