1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:18:11 +00:00

fdtdump: Port to LibMain

This commit is contained in:
Kenneth Myhra 2021-12-07 22:06:38 +01:00 committed by Brian Gianforcaro
parent a35f51f0f0
commit 27e63d40f1
2 changed files with 7 additions and 14 deletions

View file

@ -87,7 +87,7 @@ target_link_libraries(disasm LibX86)
target_link_libraries(dmesg LibMain) target_link_libraries(dmesg LibMain)
target_link_libraries(echo LibMain) target_link_libraries(echo LibMain)
target_link_libraries(expr LibRegex) target_link_libraries(expr LibRegex)
target_link_libraries(fdtdump LibDeviceTree) target_link_libraries(fdtdump LibDeviceTree LibMain)
target_link_libraries(file LibGfx LibIPC LibCompress) target_link_libraries(file LibGfx LibIPC LibCompress)
target_link_libraries(find LibMain) target_link_libraries(find LibMain)
target_link_libraries(fortune LibMain) target_link_libraries(fortune LibMain)

View file

@ -7,29 +7,22 @@
#include <AK/String.h> #include <AK/String.h>
#include <LibCore/ArgsParser.h> #include <LibCore/ArgsParser.h>
#include <LibCore/MappedFile.h> #include <LibCore/MappedFile.h>
#include <LibCore/System.h>
#include <LibDeviceTree/Validation.h> #include <LibDeviceTree/Validation.h>
#include <serenity.h> #include <LibMain/Main.h>
int main(int argc, char* argv[]) ErrorOr<int> serenity_main(Main::Arguments arguments)
{ {
if (pledge("stdio rpath", nullptr) < 0) { TRY(Core::System::pledge("stdio rpath"));
perror("pledge");
return 1;
}
String filename; String filename;
Core::ArgsParser args; Core::ArgsParser args;
args.add_positional_argument(filename, "File to process", "file", Core::ArgsParser::Required::Yes); args.add_positional_argument(filename, "File to process", "file", Core::ArgsParser::Required::Yes);
args.parse(argc, argv); args.parse(arguments);
// FIXME: Figure out how to do this sanely from stdin // FIXME: Figure out how to do this sanely from stdin
auto maybe_file = Core::MappedFile::map(filename); auto file = TRY(Core::MappedFile::map(filename));
if (maybe_file.is_error()) {
warnln("Unable to dump device tree from file {}: {}", filename, maybe_file.error());
return 1;
}
auto file = maybe_file.release_value();
if (file->size() < sizeof(DeviceTree::FlattenedDeviceTreeHeader)) { if (file->size() < sizeof(DeviceTree::FlattenedDeviceTreeHeader)) {
warnln("Not enough data in {} to contain a device tree header!", filename); warnln("Not enough data in {} to contain a device tree header!", filename);