[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |