1Buffer Sharing and Synchronization
2==================================
3
4The dma-buf subsystem provides the framework for sharing buffers for
5hardware (DMA) access across multiple device drivers and subsystems, and
6for synchronizing asynchronous hardware access.
7
8This is used, for example, by drm "prime" multi-GPU support, but is of
9course not limited to GPU use cases.
10
11The three main components of this are: (1) dma-buf, representing a
12sg_table and exposed to userspace as a file descriptor to allow passing
13between devices, (2) fence, which provides a mechanism to signal when
14one device as finished access, and (3) reservation, which manages the
15shared or exclusive fence(s) associated with the buffer.
16
17Shared DMA Buffers
18------------------
19
20.. kernel-doc:: drivers/dma-buf/dma-buf.c
21   :export:
22
23.. kernel-doc:: include/linux/dma-buf.h
24   :internal:
25
26Reservation Objects
27-------------------
28
29.. kernel-doc:: drivers/dma-buf/reservation.c
30   :doc: Reservation Object Overview
31
32.. kernel-doc:: drivers/dma-buf/reservation.c
33   :export:
34
35.. kernel-doc:: include/linux/reservation.h
36   :internal:
37
38DMA Fences
39----------
40
41.. kernel-doc:: drivers/dma-buf/dma-fence.c
42   :export:
43
44.. kernel-doc:: include/linux/dma-fence.h
45   :internal:
46
47Seqno Hardware Fences
48~~~~~~~~~~~~~~~~~~~~~
49
50.. kernel-doc:: drivers/dma-buf/seqno-fence.c
51   :export:
52
53.. kernel-doc:: include/linux/seqno-fence.h
54   :internal:
55
56DMA Fence Array
57~~~~~~~~~~~~~~~
58
59.. kernel-doc:: drivers/dma-buf/dma-fence-array.c
60   :export:
61
62.. kernel-doc:: include/linux/dma-fence-array.h
63   :internal:
64
65DMA Fence uABI/Sync File
66~~~~~~~~~~~~~~~~~~~~~~~~
67
68.. kernel-doc:: drivers/dma-buf/sync_file.c
69   :export:
70
71.. kernel-doc:: include/linux/sync_file.h
72   :internal:
73
74