Files
cubelinux-kernel/drivers/md/dm-vdo/funnel-workqueue.h
T
Greg Kroah-Hartman 598cf27219 Linux 6.19.3
Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Brett A C Sheffield <bacs@librecast.net>
Tested-by: Mark Brown <broonie@kernel.org>
Tested-by: Luna Jernberg <droidbittin@gmail.com>
Tested-by: Ronald Warsow <rwarsow@gmx.de>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Tested-by: Ron Economos <re@w6rz.net>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-02-19 16:33:27 +01:00

52 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright 2023 Red Hat
*/
#ifndef VDO_WORK_QUEUE_H
#define VDO_WORK_QUEUE_H
#include <linux/sched.h> /* for TASK_COMM_LEN */
#include "types.h"
enum {
MAX_VDO_WORK_QUEUE_NAME_LEN = TASK_COMM_LEN,
};
struct vdo_work_queue_type {
void (*start)(void *context);
void (*finish)(void *context);
enum vdo_completion_priority max_priority;
enum vdo_completion_priority default_priority;
};
struct vdo_completion;
struct vdo_thread;
struct vdo_work_queue;
int vdo_make_work_queue(const char *thread_name_prefix, const char *name,
struct vdo_thread *owner, const struct vdo_work_queue_type *type,
unsigned int thread_count, void *thread_privates[],
struct vdo_work_queue **queue_ptr);
void vdo_enqueue_work_queue(struct vdo_work_queue *queue, struct vdo_completion *completion);
void vdo_finish_work_queue(struct vdo_work_queue *queue);
void vdo_free_work_queue(struct vdo_work_queue *queue);
void vdo_dump_work_queue(struct vdo_work_queue *queue);
void vdo_dump_completion_to_buffer(struct vdo_completion *completion, char *buffer,
size_t length);
void *vdo_get_work_queue_private_data(void);
struct vdo_work_queue *vdo_get_current_work_queue(void);
struct vdo_thread *vdo_get_work_queue_owner(struct vdo_work_queue *queue);
bool __must_check vdo_work_queue_type_is(struct vdo_work_queue *queue,
const struct vdo_work_queue_type *type);
#endif /* VDO_WORK_QUEUE_H */