mbox series

[v3,0/7] Mini-OS: add minimal 9pfs support

Message ID 20230213084412.21065-1-jgross@suse.com (mailing list archive)
Headers show
Series Mini-OS: add minimal 9pfs support | expand

Message

Jürgen Groß Feb. 13, 2023, 8:44 a.m. UTC
This series is adding minimal support to use 9pfs in Mini-OS. It is
adding a PV 9pfs frontend and the ability to open, close, read and
write files.

The series has been tested with qemu as 9pfs backend in a PVH Mini-OS
guest (I've used a slightly modified Xenstore-stubdom for that purpose
in order to reuse the build runes).

This series is meant to setup the stage for adding file based logging
support to Xenstore-stubdom and later to add live update support (being
able to save the LU data stream in a dom0 file makes this a _lot_
easier).

In order to keep Mini-OS's license I have only used the protocol docs
available on the internet [1] and then verified those with the qemu 9pfs
backend implementation (especially for supporting the 9P2000.u variant,
as qemu doesn't support the basic 9P2000 protocol).

The needed fixed values of the protocol have been taken from [2].

[1]: http://ericvh.github.io/9p-rfc/rfc9p2000.html
[2]: https://github.com/0intro/libixp

Changes in V2:
- addressed comments by Samuel Thibault

Changes in V3:
- addressed comments by Samuel Thibault and Andrew Cooper

Juergen Gross (7):
  Mini-OS: xenbus: add support for reading node from directory
  Mini-OS: add concept of mount points
  Mini-OS: add support for runtime mounts
  Mini-OS: add 9pfs frontend
  Mini-OS: add 9pfs transport layer
  Mini-OS: add open and close handling to the 9pfs frontend
  Mini-OS: add read and write support to 9pfsfront

 9pfront.c                     | 1300 +++++++++++++++++++++++++++++++++
 Config.mk                     |    1 +
 Makefile                      |    1 +
 arch/x86/testbuild/all-no     |    1 +
 arch/x86/testbuild/all-yes    |    1 +
 arch/x86/testbuild/newxen-yes |    1 +
 include/9pfront.h             |    7 +
 include/lib.h                 |   14 +
 include/xenbus.h              |    6 +
 lib/sys.c                     |  123 +++-
 xenbus.c                      |   40 +-
 11 files changed, 1473 insertions(+), 22 deletions(-)
 create mode 100644 9pfront.c
 create mode 100644 include/9pfront.h

Comments

Samuel Thibault Feb. 13, 2023, 11:13 p.m. UTC | #1
Thanks!!

Juergen Gross, le lun. 13 févr. 2023 09:44:05 +0100, a ecrit:
> This series is adding minimal support to use 9pfs in Mini-OS. It is
> adding a PV 9pfs frontend and the ability to open, close, read and
> write files.
> 
> The series has been tested with qemu as 9pfs backend in a PVH Mini-OS
> guest (I've used a slightly modified Xenstore-stubdom for that purpose
> in order to reuse the build runes).
> 
> This series is meant to setup the stage for adding file based logging
> support to Xenstore-stubdom and later to add live update support (being
> able to save the LU data stream in a dom0 file makes this a _lot_
> easier).
> 
> In order to keep Mini-OS's license I have only used the protocol docs
> available on the internet [1] and then verified those with the qemu 9pfs
> backend implementation (especially for supporting the 9P2000.u variant,
> as qemu doesn't support the basic 9P2000 protocol).
> 
> The needed fixed values of the protocol have been taken from [2].
> 
> [1]: http://ericvh.github.io/9p-rfc/rfc9p2000.html
> [2]: https://github.com/0intro/libixp
> 
> Changes in V2:
> - addressed comments by Samuel Thibault
> 
> Changes in V3:
> - addressed comments by Samuel Thibault and Andrew Cooper
> 
> Juergen Gross (7):
>   Mini-OS: xenbus: add support for reading node from directory
>   Mini-OS: add concept of mount points
>   Mini-OS: add support for runtime mounts
>   Mini-OS: add 9pfs frontend
>   Mini-OS: add 9pfs transport layer
>   Mini-OS: add open and close handling to the 9pfs frontend
>   Mini-OS: add read and write support to 9pfsfront
> 
>  9pfront.c                     | 1300 +++++++++++++++++++++++++++++++++
>  Config.mk                     |    1 +
>  Makefile                      |    1 +
>  arch/x86/testbuild/all-no     |    1 +
>  arch/x86/testbuild/all-yes    |    1 +
>  arch/x86/testbuild/newxen-yes |    1 +
>  include/9pfront.h             |    7 +
>  include/lib.h                 |   14 +
>  include/xenbus.h              |    6 +
>  lib/sys.c                     |  123 +++-
>  xenbus.c                      |   40 +-
>  11 files changed, 1473 insertions(+), 22 deletions(-)
>  create mode 100644 9pfront.c
>  create mode 100644 include/9pfront.h
> 
> -- 
> 2.35.3
>