diff --git a/Kernel/Arch/aarch64/Dummy.cpp b/Kernel/Arch/aarch64/Dummy.cpp index f83fd37d69..302d5efe35 100644 --- a/Kernel/Arch/aarch64/Dummy.cpp +++ b/Kernel/Arch/aarch64/Dummy.cpp @@ -7,13 +7,16 @@ #include #include +#include #include +#include #include #include #include #include #include #include +#include #include #include #include @@ -33,64 +36,234 @@ void get_fast_random_bytes(Bytes) } // Process +char const* asm_signal_trampoline = nullptr; +char const* asm_signal_trampoline_end = nullptr; + namespace Kernel { -SpinlockProtected& Process::all_instances() +ProcessID g_init_pid { 0 }; + +bool Process::has_tracee_thread(ProcessID) { TODO_AARCH64(); } -bool Process::remove_thread(Kernel::Thread&) +ErrorOr Process::exec(NonnullOwnPtr, NonnullOwnPtrVector, NonnullOwnPtrVector, Thread*&, u32&, int) { TODO_AARCH64(); } -void Process::finalize() +} + +// OpenFileDescription +namespace Kernel { + +OpenFileDescription::~OpenFileDescription() { TODO_AARCH64(); } -LockRefPtr Process::from_pid(Kernel::ProcessID) +ErrorOr OpenFileDescription::write(UserOrKernelBuffer const&, size_t) { TODO_AARCH64(); } -LockRefPtr Process::create_kernel_thread(void (*)(void*), void*, u32, NonnullOwnPtr, u32, bool) +} + +// Custody +namespace Kernel { + +SpinlockProtected& Custody::all_instances() { TODO_AARCH64(); } -bool Process::add_thread(Thread&) +Custody::~Custody() { TODO_AARCH64(); } -Process::~Process() +} + +// VirtualFileSystem +namespace Kernel { + +VirtualFileSystem& VirtualFileSystem::the() { TODO_AARCH64(); } -void Process::unblock_waiters(Thread::WaitBlocker::UnblockFlags, u8) +NonnullRefPtr VirtualFileSystem::root_custody() { TODO_AARCH64(); } -ErrorOr Process::send_signal(u8, Process*) +ErrorOr> VirtualFileSystem::open(Credentials const&, StringView, int, mode_t, Custody&, Optional) { TODO_AARCH64(); } -void Process::terminate_due_to_signal(u8) +} + +// ProcFS +namespace Kernel { + +ProcFSInode::~ProcFSInode() { TODO_AARCH64(); } -ProcessID Process::allocate_pid() +ErrorOr> ProcFSProcessDirectoryInode::try_create(ProcFS const&, ProcessID) { TODO_AARCH64(); } -NonnullRefPtr Process::credentials() const +ProcFSComponentRegistry& ProcFSComponentRegistry::the() +{ + TODO_AARCH64(); +} + +ErrorOr> ProcFSInode::create_child(StringView, mode_t, dev_t, UserID, GroupID) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSInode::add_child(Inode&, StringView, mode_t) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSInode::remove_child(StringView) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSInode::chmod(mode_t) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSInode::chown(UserID, GroupID) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSInode::flush_metadata() +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSGlobalInode::attach(OpenFileDescription&) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSGlobalInode::read_bytes_locked(off_t, size_t, UserOrKernelBuffer&, OpenFileDescription*) const +{ + TODO_AARCH64(); +} + +StringView ProcFSGlobalInode::name() const +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSGlobalInode::traverse_as_directory(Function(FileSystem::DirectoryEntryView const&)>) const +{ + TODO_AARCH64(); +} + +ErrorOr> ProcFSGlobalInode::lookup(StringView) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSGlobalInode::truncate(u64) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSGlobalInode::update_timestamps(Optional, Optional, Optional) +{ + TODO_AARCH64(); +} + +InodeMetadata ProcFSGlobalInode::metadata() const +{ + TODO_AARCH64(); +} + +void ProcFSGlobalInode::did_seek(OpenFileDescription&, off_t) +{ + TODO_AARCH64(); +} + +ErrorOr ProcFSGlobalInode::write_bytes_locked(off_t, size_t, UserOrKernelBuffer const&, OpenFileDescription*) +{ + TODO_AARCH64(); +} + +} + +// ProcessGroup +namespace Kernel { + +ProcessGroup::~ProcessGroup() +{ + TODO_AARCH64(); +} + +} + +// ProcessExposed +namespace Kernel { + +ErrorOr> ProcFSExposedComponent::to_inode(ProcFS const&) const +{ + TODO_AARCH64(); +} + +InodeIndex SegmentedProcFSIndex::build_segmented_index_for_main_property_in_pid_directory(ProcessID, SegmentedProcFSIndex::MainProcessProperty) +{ + TODO_AARCH64(); +} + +InodeIndex SegmentedProcFSIndex::build_segmented_index_for_pid_directory(ProcessID) +{ + TODO_AARCH64(); +} + +InodeIndex SegmentedProcFSIndex::build_segmented_index_for_sub_directory(ProcessID, ProcessSubDirectory) +{ + TODO_AARCH64(); +} + +ProcFSExposedComponent::ProcFSExposedComponent() +{ + TODO_AARCH64(); +} + +} + +// FileSystem +namespace Kernel { + +FileSystem::DirectoryEntryView::DirectoryEntryView(StringView, InodeIdentifier, u8) +{ + TODO_AARCH64(); +} + +} + +// Coredump +namespace Kernel { + +ErrorOr> Coredump::try_create(NonnullLockRefPtr, StringView) +{ + TODO_AARCH64(); +} + +ErrorOr Coredump::write() { TODO_AARCH64(); } @@ -164,6 +337,31 @@ bool Thread::WaitQueueBlocker::unblock() TODO_AARCH64(); } +void Thread::WaitBlockerSet::finalize() +{ + TODO_AARCH64(); +} + +bool Thread::WaitBlockerSet::unblock(Process&, WaitBlocker::UnblockFlags, u8) +{ + TODO_AARCH64(); +} + +void Thread::WaitBlockerSet::disowned_by_waiter(Process&) +{ + TODO_AARCH64(); +} + +bool Thread::WaitBlockerSet::should_add_blocker(Blocker&, void*) +{ + TODO_AARCH64(); +} + +Thread::WaitBlockerSet::ProcessBlockInfo::~ProcessBlockInfo() +{ + TODO_AARCH64(); +} + } // PerformanceEventBuffer @@ -177,6 +375,27 @@ ErrorOr PerformanceEventBuffer::append(int, unsigned long, unsigned long, TODO_AARCH64(); } +OwnPtr PerformanceEventBuffer::try_create_with_size(size_t) +{ + TODO_AARCH64(); +} + +ErrorOr PerformanceEventBuffer::add_process(Process const&, ProcessEventType) +{ + TODO_AARCH64(); +} + +ErrorOr PerformanceEventBuffer::to_json(KBufferBuilder&) const +{ + TODO_AARCH64(); +} + +ErrorOr PerformanceEventBuffer::append_with_ip_and_bp(ProcessID, ThreadID, + FlatPtr, FlatPtr, int, u32, FlatPtr, FlatPtr, StringView, FlatPtr, u64, ErrorOr) +{ + TODO_AARCH64(); +} + } // LockRank @@ -227,6 +446,21 @@ ErrorOr Inode::write_bytes(off_t, size_t, UserOrKernelBuffer const&, Ope return 0; } +ErrorOr Inode::update_timestamps([[maybe_unused]] Optional atime, [[maybe_unused]] Optional ctime, [[maybe_unused]] Optional mtime) +{ + TODO_AARCH64(); +} + +ErrorOr Inode::increment_link_count() +{ + TODO_AARCH64(); +} + +ErrorOr Inode::decrement_link_count() +{ + TODO_AARCH64(); +} + } // x86 init diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index c9e6778ff4..4433bffa26 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -504,6 +504,8 @@ else() KString.cpp KSyms.cpp MiniStdLib.cpp + Process.cpp + ProcessProcFSTraits.cpp Scheduler.cpp StdLib.cpp Time/TimeManagement.cpp