diff --git a/repos/dde_uos-intel-gpgpu/src/virt/kernel.h b/repos/dde_uos-intel-gpgpu/src/virt/kernel.h index 90c411190a..b10d402e86 100644 --- a/repos/dde_uos-intel-gpgpu/src/virt/kernel.h +++ b/repos/dde_uos-intel-gpgpu/src/virt/kernel.h @@ -1,7 +1,7 @@ #ifndef KERNEL_H #define KERNEL_H -#include +#include "strategies/util/wf_queue.h" #define GENODE #include "../uos-intel-gpgpu/driver/gpgpu_driver.h" @@ -13,7 +13,7 @@ namespace gpgpu_virt { * @class This class represents a kernel * */ - class Kernel : public Genode::Fifo::Element + class Kernel : public util::WFQueue::Chain { private: struct kernel_config* kconf; diff --git a/repos/dde_uos-intel-gpgpu/src/virt/vgpu.h b/repos/dde_uos-intel-gpgpu/src/virt/vgpu.h index 97bd4c17ca..8f8309d87b 100644 --- a/repos/dde_uos-intel-gpgpu/src/virt/vgpu.h +++ b/repos/dde_uos-intel-gpgpu/src/virt/vgpu.h @@ -7,9 +7,8 @@ #ifdef SCHED_CFS #include "strategies/cfs_entry.h" -#else - #include "strategies/util/wf_queue.h" #endif // SCHED_CFS +#include "strategies/util/wf_queue.h" // driver #define GENODE @@ -29,7 +28,7 @@ namespace gpgpu_virt { context* ctx; /// list of gpgpu tasks for this vpgu - Genode::Fifo ready_list; + util::WFQueue ready_list; /// priority of vgpu int prio; @@ -67,7 +66,7 @@ namespace gpgpu_virt { */ void add_kernel(Kernel* kernel) { kernel->get_config()->ctx = ctx; // set context - ready_list.enqueue(*kernel); + ready_list.enqueue((util::WFQueue::Chain*)kernel); } /** @@ -105,11 +104,7 @@ namespace gpgpu_virt { * @return First kernel image in ready list */ Kernel* take_kernel() { - Kernel* ret = nullptr; - ready_list.dequeue([&ret](Kernel& k){ - ret = &k; - }); - return ret; + return (Kernel*)ready_list.dequeue(); } /**