diff options
author | Andreas Kling <kling@serenityos.org> | 2021-08-22 14:51:04 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-08-23 00:02:09 +0200 |
commit | bcd2025311b97d45aeb23960e17fcae2bc5b7f2e (patch) | |
tree | facb4e412cdfcc5a9f5177c9f3cd0cd1e27a2f67 /Kernel/Coredump.h | |
parent | a930877f31fb117ce4b38d4782dd288093700d8a (diff) | |
download | serenity-bcd2025311b97d45aeb23960e17fcae2bc5b7f2e.zip |
Everywhere: Core dump => Coredump
We all know what a coredump is, and it feels more natural to refer to
it as a coredump (most code already does), so let's be consistent.
Diffstat (limited to 'Kernel/Coredump.h')
-rw-r--r-- | Kernel/Coredump.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Kernel/Coredump.h b/Kernel/Coredump.h new file mode 100644 index 0000000000..9fb9200c57 --- /dev/null +++ b/Kernel/Coredump.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2019-2020, Jesse Buhagiar <jooster669@gmail.com> + * Copyright (c) 2020, Itamar S. <itamar8910@gmail.com> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <AK/NonnullRefPtr.h> +#include <AK/OwnPtr.h> +#include <Kernel/Forward.h> + +namespace Kernel { + +class Coredump { +public: + static OwnPtr<Coredump> create(NonnullRefPtr<Process>, const String& output_path); + + ~Coredump() = default; + [[nodiscard]] KResult write(); + +private: + Coredump(NonnullRefPtr<Process>, NonnullRefPtr<FileDescription>&&); + static RefPtr<FileDescription> create_target_file(const Process&, const String& output_path); + + [[nodiscard]] KResult write_elf_header(); + [[nodiscard]] KResult write_program_headers(size_t notes_size); + [[nodiscard]] KResult write_regions(); + [[nodiscard]] KResult write_notes_segment(ByteBuffer&); + + ByteBuffer create_notes_segment_data() const; + ByteBuffer create_notes_process_data() const; + ByteBuffer create_notes_threads_data() const; + ByteBuffer create_notes_regions_data() const; + ByteBuffer create_notes_metadata_data() const; + + NonnullRefPtr<Process> m_process; + NonnullRefPtr<FileDescription> m_fd; + const size_t m_num_program_headers; +}; + +} |