xref: /aosp_15_r20/external/ublksrv/doc/mainpage.dox (revision 94c4a1e103eb1715230460aab379dff275992c20)
1/*!
2\mainpage libublksrv API documentation
3
4UBLK (block in Userspace) is an interface for building block device by
5userspace programs. The UBLK project consists
6of two components: the *ublk_drv* kernel module (maintained in the regular
7kernel repositories) and the *libublksrv* userspace library. libublksrv
8provides the reference implementation for communicating with the ublk_drv
9kernel module.
10
11A UBLK block device is typically implemented as a standalone application that
12links with libublksrv. libublksrv provides APIs for the application to
13handle IO logic by its business logic, also add/delete/recovery device.
14
15ublksrv_tgt is built on libublksrv for supporting generic & multiple ublk
16targets, and it isn't covered in this document. In the future, the two
17will be separated from each other, and become standalone project.
18
19## Getting started ##
20
21The API that is primarily specified in ublksrv.h.
22
23ublksrv_aio.h provides APIs for offloading IO handling to another context,
24and it is optional.
25
26## Examples ##
27
28A good starting point is demo_null.c and demo_event.c.
29
30*/
31