[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT PATCH v2 0/6] Unikraft Block API

Introduces the Unikraft Block API, that acts as a generalized interface
between block drivers and filesystems implementations (or low-level block

Using the function definitions in blkdev_core.h, the driver should include
blkdev_driver, implement the functions in uk_blkdev_ops and fill some
fields from uk_blkdev.
The user-facing part of the API is in blkdev.h. The layer above can use
these functions to configure block devices, as well as send and receive
sector-wide requests.
The read/write/flush operations abstraction is defined in blkreq.h.
Requests can be asynchronous or synchronous and the user must set a
proper callback for each async operation.
The API has multi-queue support and event dispatching support as well,
which is configurable with or without bottom-half threads.

Changes from v1:
- Queue reference instead of queue_id parameter for callback functions.
- Changed naming and data types of some variables.

Roxana Nicolescu (6):
  lib/ukblkdev: Blkdev Library skeleton.
  lib/ukblkdev: Blkdev registration
  lib/ukblkdev: Blkdev initialization
  lib/ukblkdev: Request interface
  lib/ukblkdev: Synchronous requests interface
  lib/ukblkdev: Stop and release an Unikraft block device

 lib/Config.uk                           |   1 +
 lib/Makefile.uk                         |   1 +
 lib/ukblkdev/Config.uk                  |  37 +++
 lib/ukblkdev/Makefile.uk                |   6 +
 lib/ukblkdev/blkdev.c                   | 558 ++++++++++++++++++++++++++++++++
 lib/ukblkdev/exportsyms.uk              |  30 ++
 lib/ukblkdev/include/uk/blkdev.h        | 509 +++++++++++++++++++++++++++++
 lib/ukblkdev/include/uk/blkdev_core.h   | 309 ++++++++++++++++++
 lib/ukblkdev/include/uk/blkdev_driver.h | 113 +++++++
 lib/ukblkdev/include/uk/blkreq.h        | 148 +++++++++
 10 files changed, 1712 insertions(+)
 create mode 100644 lib/ukblkdev/Config.uk
 create mode 100644 lib/ukblkdev/Makefile.uk
 create mode 100644 lib/ukblkdev/blkdev.c
 create mode 100644 lib/ukblkdev/exportsyms.uk
 create mode 100644 lib/ukblkdev/include/uk/blkdev.h
 create mode 100644 lib/ukblkdev/include/uk/blkdev_core.h
 create mode 100644 lib/ukblkdev/include/uk/blkdev_driver.h
 create mode 100644 lib/ukblkdev/include/uk/blkreq.h


Minios-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.