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

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



Great! Thanks a lot for the changes. I will upstream your API.
Please let me know if you are okay with my suggestion in patch 2/8.

Thanks,

Simon

On 05.09.19 14:14, Cristian Banu wrote:
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


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