/* * Copyright (c) 2021, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include ErrorOr serenity_main(Main::Arguments arguments) { TRY(Core::System::pledge("stdio rpath")); String filename; Core::ArgsParser args; args.add_positional_argument(filename, "File to process", "file", Core::ArgsParser::Required::Yes); args.parse(arguments); // FIXME: Figure out how to do this sanely from stdin auto file = TRY(Core::MappedFile::map(filename)); if (file->size() < sizeof(DeviceTree::FlattenedDeviceTreeHeader)) { warnln("Not enough data in {} to contain a device tree header!", filename); return 1; } auto* fdt_header = reinterpret_cast(file->data()); bool valid = DeviceTree::dump(*fdt_header, static_cast(file->data()), file->size()); return valid ? 0 : 1; }