1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * Copyright 2023 Red Hat 4 */ 5 6 #include "thread-device.h" 7 8 /* A registry of threads associated with device id numbers. */ 9 static struct thread_registry device_id_thread_registry; 10 11 /* Any registered thread must be unregistered. */ vdo_register_thread_device_id(struct registered_thread * new_thread,unsigned int * id_ptr)12void vdo_register_thread_device_id(struct registered_thread *new_thread, 13 unsigned int *id_ptr) 14 { 15 vdo_register_thread(&device_id_thread_registry, new_thread, id_ptr); 16 } 17 vdo_unregister_thread_device_id(void)18void vdo_unregister_thread_device_id(void) 19 { 20 vdo_unregister_thread(&device_id_thread_registry); 21 } 22 vdo_get_thread_device_id(void)23int vdo_get_thread_device_id(void) 24 { 25 const unsigned int *pointer; 26 27 pointer = vdo_lookup_thread(&device_id_thread_registry); 28 return (pointer != NULL) ? *pointer : -1; 29 } 30 vdo_initialize_thread_device_registry(void)31void vdo_initialize_thread_device_registry(void) 32 { 33 vdo_initialize_thread_registry(&device_id_thread_registry); 34 } 35