| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Copyright 2023 Red Hat | |
| */ | |
| #ifndef VDO_THREAD_REGISTRY_H | |
| #define VDO_THREAD_REGISTRY_H | |
| #include <linux/list.h> | |
| #include <linux/spinlock.h> | |
| struct thread_registry { | |
| struct list_head links; | |
| spinlock_t lock; | |
| }; | |
| struct registered_thread { | |
| struct list_head links; | |
| const void *pointer; | |
| struct task_struct *task; | |
| }; | |
| void vdo_initialize_thread_registry(struct thread_registry *registry); | |
| void vdo_register_thread(struct thread_registry *registry, | |
| struct registered_thread *new_thread, const void *pointer); | |
| void vdo_unregister_thread(struct thread_registry *registry); | |
| const void *vdo_lookup_thread(struct thread_registry *registry); | |
| #endif /* VDO_THREAD_REGISTRY_H */ |