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