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

[Minios-devel] [UNIKRAFT PATCH v3 0/8] Introduce unikraft library argument



The patch series introduces unikraft library arguments library. This library
provides interfaces through which the library developer can pass argument to a
unikraft library. We allow arguments of types signed and unsigned integer, char
and null terminated string. We also allow for passing an array integers and
char. The arrays are delimited by a ' '. This patch also implements the 
heap_size
argument in the linuxu platform as a library argument.

Changes since v2:
Patch 1:
* Split the uk_version into separate patch.

Patch 2:
* Detect parameter without value
* Add additional error messages for the user.

Patch 8:
* Document the usage of heap_size parameter in Config.uk

Changes since v1:
Patch 1:
* Support the libparam.h with dummy implementation.
* Change the PARAM_TYPE macro signature.
* Remove section needed for parameter name
* Change __u8 data type for the param meta data with __u32
* Move the version implementation to ukboot
* Restructure argument processing in function `kernel_arg_fetch`.
* Add check for the overflow/underflow
* Clean up the debug messages.

Patch 2:
* Add dummy implementation for the UK_PARAM_STR

Patch 3:
* Add dummy implementation for the UK_PARAM_ARR
* Determine the array size automatically
* Prevent overflow of the array elements

Patch 4:
* Move the build system changes needed to support library parameter to
  makefile.rules
* Remove the platform specific build system functions as the build
  system can infer if the library belongs to specific platform or not.

Patch 5:
* Remove ifdef around the heap_size configuration parameter, as the library
  libparam.h provides dummy implementation of the UK_PARAM* interface.

Patch 7:
* Add additional example for string and array.

This patch is dependent on the patch series 
 "Process linker script and library specific Makefile.rules"

[1] https://patchwork.unikraft.org/project/unikraft/list/?series=745

Sharan Santhanam (8):
  lib/ukboot: Implement uk_version
  lib/uklibparam: Introduce the library parameter
  lib/uklibparam: Add support for string datatype
  lib/uklibparam: Add support for passing array
  lib/uklibparam: Add linker script for parameter
  plat/linuxu: Introduce heap size as a lib parameter
  lib/ukboot: Replace the parser with the uklibparam
  lib/uklibparam: Add documentation for parameters

 MAINTAINERS.md                       |   5 +
 doc/guides/developers-app.rst        | 107 +++++
 lib/Config.uk                        |   1 +
 lib/Makefile.uk                      |   1 +
 lib/ukboot/Makefile.uk               |   1 +
 lib/ukboot/boot.c                    |  20 +-
 lib/ukboot/exportsyms.uk             |   1 +
 lib/ukboot/include/uk/version.h      |   6 +
 lib/ukboot/version.c                 |  11 +
 lib/uklibparam/Config.uk             |   5 +
 lib/uklibparam/Makefile.rules        |  15 +
 lib/uklibparam/Makefile.uk           |   7 +
 lib/uklibparam/exportsyms.uk         |   2 +
 lib/uklibparam/include/uk/libparam.h | 453 +++++++++++++++++++++
 lib/uklibparam/libparam.lds.S        |  32 ++
 lib/uklibparam/param.c               | 580 +++++++++++++++++++++++++++
 plat/linuxu/Config.uk                |   6 +-
 plat/linuxu/Makefile.uk              |   2 +
 plat/linuxu/memory.c                 |  42 +-
 plat/linuxu/setup.c                  | 125 ------
 support/build/Makefile.rules         |   2 +-
 21 files changed, 1291 insertions(+), 133 deletions(-)
 create mode 100644 lib/ukboot/include/uk/version.h
 create mode 100644 lib/ukboot/version.c
 create mode 100644 lib/uklibparam/Config.uk
 create mode 100644 lib/uklibparam/Makefile.rules
 create mode 100644 lib/uklibparam/Makefile.uk
 create mode 100644 lib/uklibparam/exportsyms.uk
 create mode 100644 lib/uklibparam/include/uk/libparam.h
 create mode 100644 lib/uklibparam/libparam.lds.S
 create mode 100644 lib/uklibparam/param.c

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