diff --git a/Kernel/Devices/KCOVDevice.cpp b/Kernel/Devices/KCOVDevice.cpp index 828adf05fa..85e9e97d9a 100644 --- a/Kernel/Devices/KCOVDevice.cpp +++ b/Kernel/Devices/KCOVDevice.cpp @@ -75,9 +75,9 @@ KResultOr> KCOVDevice::open(int options) return File::open(options); } -int KCOVDevice::ioctl(FileDescription&, unsigned request, FlatPtr arg) +KResult KCOVDevice::ioctl(FileDescription&, unsigned request, Userspace arg) { - int error = 0; + KResult return_value = KSuccess; auto thread = Thread::current(); auto tid = thread->tid(); auto pid = thread->pid(); @@ -90,19 +90,19 @@ int KCOVDevice::ioctl(FileDescription&, unsigned request, FlatPtr arg) switch (request) { case KCOV_SETBUFSIZE: { if (kcov_instance->state >= KCOVInstance::TRACING) { - error = EBUSY; + return_value = EBUSY; break; } - error = kcov_instance->buffer_allocate(arg); + return_value = kcov_instance->buffer_allocate((FlatPtr)arg.unsafe_userspace_ptr()); break; } case KCOV_ENABLE: { if (kcov_instance->state >= KCOVInstance::TRACING) { - error = EBUSY; + return_value = EBUSY; break; } if (!kcov_instance->has_buffer()) { - error = ENOBUFS; + return_value = ENOBUFS; break; } VERIFY(kcov_instance->state == KCOVInstance::OPENED); @@ -113,7 +113,7 @@ int KCOVDevice::ioctl(FileDescription&, unsigned request, FlatPtr arg) case KCOV_DISABLE: { auto maybe_kcov_instance = thread_instance->get(tid); if (!maybe_kcov_instance.has_value()) { - error = ENOENT; + return_value = ENOENT; break; } VERIFY(kcov_instance->state == KCOVInstance::TRACING); @@ -122,11 +122,11 @@ int KCOVDevice::ioctl(FileDescription&, unsigned request, FlatPtr arg) break; } default: { - error = EINVAL; + return_value = EINVAL; } }; - return error; + return return_value; } KResultOr KCOVDevice::mmap(Process& process, FileDescription&, const Range& range, u64 offset, int prot, bool shared) diff --git a/Kernel/Devices/KCOVDevice.h b/Kernel/Devices/KCOVDevice.h index db64da47d1..80b522b80b 100644 --- a/Kernel/Devices/KCOVDevice.h +++ b/Kernel/Devices/KCOVDevice.h @@ -37,7 +37,7 @@ protected: virtual void start_request(AsyncBlockDeviceRequest& request) override final { request.complete(AsyncDeviceRequest::Failure); } virtual KResultOr read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override { return -EINVAL; } virtual KResultOr write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override { return -EINVAL; } - virtual int ioctl(FileDescription&, unsigned request, FlatPtr arg) override; + virtual KResult ioctl(FileDescription&, unsigned request, Userspace arg) override; private: KCOVDevice(); diff --git a/Kernel/Devices/KCOVInstance.cpp b/Kernel/Devices/KCOVInstance.cpp index 63ce03ea2c..ebcfae5241 100644 --- a/Kernel/Devices/KCOVInstance.cpp +++ b/Kernel/Devices/KCOVInstance.cpp @@ -15,7 +15,7 @@ KCOVInstance::KCOVInstance(ProcessID pid) state = UNUSED; } -int KCOVInstance::buffer_allocate(size_t buffer_size_in_entries) +KResult KCOVInstance::buffer_allocate(size_t buffer_size_in_entries) { // first entry contains index of last PC this->m_buffer_size_in_entries = buffer_size_in_entries - 1; @@ -40,7 +40,7 @@ int KCOVInstance::buffer_allocate(size_t buffer_size_in_entries) if (!this->has_buffer()) return ENOMEM; - return 0; + return KSuccess; } void KCOVInstance::buffer_add_pc(u64 pc) diff --git a/Kernel/Devices/KCOVInstance.h b/Kernel/Devices/KCOVInstance.h index 55a378a298..e40bc6c0e9 100644 --- a/Kernel/Devices/KCOVInstance.h +++ b/Kernel/Devices/KCOVInstance.h @@ -30,7 +30,7 @@ class KCOVInstance final { public: explicit KCOVInstance(ProcessID pid); - int buffer_allocate(size_t buffer_size_in_entries); + KResult buffer_allocate(size_t buffer_size_in_entries); bool has_buffer() const { return m_buffer != nullptr; } void buffer_add_pc(u64 pc);