blob: bcbcf624588b4d24ad2595825d9f31c9a9b4ed3b [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "task.h"
#include <lib/async/dispatcher.h>
#include <memory>
#include "task-internal.h"
struct iwl_task : public wlan::iwlwifi::TaskInternal {
public:
explicit iwl_task(async_dispatcher_t* dispatcher, iwl_task_func func, void* data)
: TaskInternal(dispatcher, func, data) {}
};
zx_status_t iwl_task_create(struct device* dev, iwl_task_func func, void* data,
struct iwl_task** out_task) {
*out_task = new iwl_task(dev->task_dispatcher, func, data);
return ZX_OK;
}
zx_status_t iwl_task_post(struct iwl_task* task, zx_duration_t delay) { return task->Post(delay); }
zx_status_t iwl_task_wait(struct iwl_task* task) { return task->Wait(); }
zx_status_t iwl_task_cancel(struct iwl_task* task) { return task->Cancel(); }
zx_status_t iwl_task_cancel_sync(struct iwl_task* task) { return task->CancelSync(); }
void iwl_task_release_sync(struct iwl_task* task) { delete task; }