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

[Minios-devel] [UNIKRAFT PATCH v3 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
applications).

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 since v2:
- Added comments to functions.
- Changed naming and data types of some variables.
- Changed return type from void to int to forward errors.

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/Makefile.uk                         |   1 +
 lib/ukblkdev/Config.uk                  |  37 ++
 lib/ukblkdev/Makefile.uk                |   6 +
 lib/ukblkdev/blkdev.c                   | 569 ++++++++++++++++++++++++
 lib/ukblkdev/exportsyms.uk              |  18 +
 lib/ukblkdev/include/uk/blkdev.h        | 523 ++++++++++++++++++++++
 lib/ukblkdev/include/uk/blkdev_core.h   | 310 +++++++++++++
 lib/ukblkdev/include/uk/blkdev_driver.h | 122 +++++
 lib/ukblkdev/include/uk/blkreq.h        | 152 +++++++
 9 files changed, 1738 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

-- 
2.17.1


_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

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