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

[Minios-devel] [UNIKRAFT PATCH v3 0/8] Unikraft 9P API



This patch series introduces the 9P API, which acts as a generic
interface between the 9P transport drivers (xen, virtio) and
the 9pfs implementation. The API may also be used directly by
users.

The transport drivers register themselves with the API using the
definitions from 9pdev_trans.h and 9pdev_core.h, and implement
the connect, disconnect and request callbacks.

The protocol core types and constants can be found in 9p_core.h,
and a helper interface to the operations supported by the 9P
protocol can be found in 9p.h.

There are two kinds of objects which must be managed carefully
by the API: the request and the fid (handle to a filesystem
entity such as a file or directory, similar to a file
descriptor). The management of both of those is abstracted into
9preq.h and 9pfid.h respectively.

Changes since v2:
- Provide a setter function for the default transport.
- Use uk_pr_debug() when reporting errors, such that the call
  gets eliminated if no debugging options are set.
- Store the maximum possible message size for a transport in a separate
  field, provide getter and setter functions for the message size.
- Rename uk_9pdev_xmit_ready to uk_9pdev_xmit_notify.
- Remove 'do_' from uk_9p_do_* family of functions.
- Rectify wrong or insufficient documentation.
Changes since v1:
- Make use of wait-queues if available, instead of busy waiting.
- Modify transport lookup to return the transport instead of
  passing it through an argument.
- Change library description in menuconfig to "9p client".
- Update bitwise-OR'ed flags to be macros instead of fields in
  enums in 9p_core.h.
- Add support for zero-copying.

Cristian Banu (8):
  lib/uk9p: Add 9P library skeleton
  lib/uk9p: Add 9P transport registration
  lib/uk9p: Add 9P protocol core definitions
  lib/uk9p: Add 9P requests abstraction
  lib/uk9p: Add 9P device implementation
  lib/uk9p: Add 9P fid abstraction
  lib/uk9p: Add 9P helper API
  lib/uk9p: Clunk fids on fid release

 lib/Config.uk                     |   1 +
 lib/Makefile.uk                   |   1 +
 lib/uk9p/9p.c                     | 430 ++++++++++++++++++++++++++++
 lib/uk9p/9pdev.c                  | 455 ++++++++++++++++++++++++++++++
 lib/uk9p/9pdev_trans.c            |  86 ++++++
 lib/uk9p/9pfid.c                  |  71 +++++
 lib/uk9p/9preq.c                  | 569 ++++++++++++++++++++++++++++++++++++++
 lib/uk9p/Config.uk                |   6 +
 lib/uk9p/Makefile.uk              |  10 +
 lib/uk9p/exportsyms.uk            |  48 ++++
 lib/uk9p/include/uk/9p.h          | 265 ++++++++++++++++++
 lib/uk9p/include/uk/9p_core.h     | 271 ++++++++++++++++++
 lib/uk9p/include/uk/9pdev.h       | 229 +++++++++++++++
 lib/uk9p/include/uk/9pdev_core.h  | 191 +++++++++++++
 lib/uk9p/include/uk/9pdev_trans.h | 105 +++++++
 lib/uk9p/include/uk/9pfid.h       | 115 ++++++++
 lib/uk9p/include/uk/9preq.h       | 300 ++++++++++++++++++++
 17 files changed, 3153 insertions(+)
 create mode 100644 lib/uk9p/9p.c
 create mode 100644 lib/uk9p/9pdev.c
 create mode 100644 lib/uk9p/9pdev_trans.c
 create mode 100644 lib/uk9p/9pfid.c
 create mode 100644 lib/uk9p/9preq.c
 create mode 100644 lib/uk9p/Config.uk
 create mode 100644 lib/uk9p/Makefile.uk
 create mode 100644 lib/uk9p/exportsyms.uk
 create mode 100644 lib/uk9p/include/uk/9p.h
 create mode 100644 lib/uk9p/include/uk/9p_core.h
 create mode 100644 lib/uk9p/include/uk/9pdev.h
 create mode 100644 lib/uk9p/include/uk/9pdev_core.h
 create mode 100644 lib/uk9p/include/uk/9pdev_trans.h
 create mode 100644 lib/uk9p/include/uk/9pfid.h
 create mode 100644 lib/uk9p/include/uk/9preq.h

-- 
2.11.0


_______________________________________________
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®.