1*35758b00SAlexandra Winter // SPDX-License-Identifier: GPL-2.0 2*35758b00SAlexandra Winter /* 3*35758b00SAlexandra Winter * DIBS - Direct Internal Buffer Sharing 4*35758b00SAlexandra Winter * 5*35758b00SAlexandra Winter * Implementation of the DIBS class module 6*35758b00SAlexandra Winter * 7*35758b00SAlexandra Winter * Copyright IBM Corp. 2025 8*35758b00SAlexandra Winter */ 9*35758b00SAlexandra Winter #define KMSG_COMPONENT "dibs" 10*35758b00SAlexandra Winter #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt 11*35758b00SAlexandra Winter 12*35758b00SAlexandra Winter #include <linux/module.h> 13*35758b00SAlexandra Winter #include <linux/types.h> 14*35758b00SAlexandra Winter #include <linux/err.h> 15*35758b00SAlexandra Winter #include <linux/dibs.h> 16*35758b00SAlexandra Winter 17*35758b00SAlexandra Winter MODULE_DESCRIPTION("Direct Internal Buffer Sharing class"); 18*35758b00SAlexandra Winter MODULE_LICENSE("GPL"); 19*35758b00SAlexandra Winter 20*35758b00SAlexandra Winter /* use an array rather a list for fast mapping: */ 21*35758b00SAlexandra Winter static struct dibs_client *clients[MAX_DIBS_CLIENTS]; 22*35758b00SAlexandra Winter static u8 max_client; 23*35758b00SAlexandra Winter 24*35758b00SAlexandra Winter static int __init dibs_init(void) 25*35758b00SAlexandra Winter { 26*35758b00SAlexandra Winter memset(clients, 0, sizeof(clients)); 27*35758b00SAlexandra Winter max_client = 0; 28*35758b00SAlexandra Winter 29*35758b00SAlexandra Winter return 0; 30*35758b00SAlexandra Winter } 31*35758b00SAlexandra Winter 32*35758b00SAlexandra Winter static void __exit dibs_exit(void) 33*35758b00SAlexandra Winter { 34*35758b00SAlexandra Winter } 35*35758b00SAlexandra Winter 36*35758b00SAlexandra Winter module_init(dibs_init); 37*35758b00SAlexandra Winter module_exit(dibs_exit); 38