dibs: Create drivers/dibs

Create the file structure for a 'DIBS - Direct Internal Buffer Sharing'
shim layer that will provide generic functionality and declarations for
dibs device drivers and dibs clients.

Following patches will add functionality.

Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>
Link: https://patch.msgid.link/20250918110500.1731261-4-wintera@linux.ibm.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Alexandra Winter
2025-09-18 13:04:49 +02:00
committed by Paolo Abeni
parent a4997e17d1
commit 35758b0032
7 changed files with 107 additions and 0 deletions

12
drivers/dibs/Kconfig Normal file
View File

@@ -0,0 +1,12 @@
# SPDX-License-Identifier: GPL-2.0
config DIBS
tristate "DIBS support"
default n
help
Direct Internal Buffer Sharing (DIBS)
A communication method that uses common physical (internal) memory
for synchronous direct access into a remote buffer.
Select this option to provide the abstraction layer between
dibs devices and dibs clients like the SMC protocol.
The module name is dibs.

7
drivers/dibs/Makefile Normal file
View File

@@ -0,0 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
#
# DIBS class module
#
dibs-y += dibs_main.o
obj-$(CONFIG_DIBS) += dibs.o

37
drivers/dibs/dibs_main.c Normal file
View File

@@ -0,0 +1,37 @@
// SPDX-License-Identifier: GPL-2.0
/*
* DIBS - Direct Internal Buffer Sharing
*
* Implementation of the DIBS class module
*
* Copyright IBM Corp. 2025
*/
#define KMSG_COMPONENT "dibs"
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
#include <linux/module.h>
#include <linux/types.h>
#include <linux/err.h>
#include <linux/dibs.h>
MODULE_DESCRIPTION("Direct Internal Buffer Sharing class");
MODULE_LICENSE("GPL");
/* use an array rather a list for fast mapping: */
static struct dibs_client *clients[MAX_DIBS_CLIENTS];
static u8 max_client;
static int __init dibs_init(void)
{
memset(clients, 0, sizeof(clients));
max_client = 0;
return 0;
}
static void __exit dibs_exit(void)
{
}
module_init(dibs_init);
module_exit(dibs_exit);