mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2026-01-27 12:47:24 +01:00
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>
43 lines
1.5 KiB
C
43 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Direct Internal Buffer Sharing
|
|
*
|
|
* Definitions for the DIBS module
|
|
*
|
|
* Copyright IBM Corp. 2025
|
|
*/
|
|
#ifndef _DIBS_H
|
|
#define _DIBS_H
|
|
|
|
/* DIBS - Direct Internal Buffer Sharing - concept
|
|
* -----------------------------------------------
|
|
* In the case of multiple system sharing the same hardware, dibs fabrics can
|
|
* provide dibs devices to these systems. The systems use dibs devices of the
|
|
* same fabric to communicate via dmbs (Direct Memory Buffers). Each dmb has
|
|
* exactly one owning local dibs device and one remote using dibs device, that
|
|
* is authorized to write into this dmb. This access control is provided by the
|
|
* dibs fabric.
|
|
*
|
|
* Because the access to the dmb is based on access to physical memory, it is
|
|
* lossless and synchronous. The remote devices can directly access any offset
|
|
* of the dmb.
|
|
*
|
|
* Dibs fabrics, dibs devices and dmbs are identified by tokens and ids.
|
|
* Dibs fabric id is unique within the same hardware (with the exception of the
|
|
* dibs loopback fabric), dmb token is unique within the same fabric, dibs
|
|
* device gids are guaranteed to be unique within the same fabric and
|
|
* statistically likely to be globally unique. The exchange of these tokens and
|
|
* ids between the systems is not part of the dibs concept.
|
|
*
|
|
* The dibs layer provides an abstraction between dibs device drivers and dibs
|
|
* clients.
|
|
*/
|
|
|
|
#define MAX_DIBS_CLIENTS 8
|
|
|
|
struct dibs_client {
|
|
const char *name;
|
|
};
|
|
|
|
#endif /* _DIBS_H */
|