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

[UNIKRAFT/LIBTASN1 v2, 1/3] Introduce library skeleton



Signed-off-by: Laurentiu Barbulescu <lrbarbulescu@xxxxxxxxx>
---
 .gitignore      | 27 ++++++++++++++
 CODING_STYLE.md |  4 +++
 CONTRIBUTING.md |  4 +++
 COPYING.md      | 38 ++++++++++++++++++++
 Config.uk       | 95 +++++++++++++++++++++++++++++++++++++++++++++++++
 MAINTAINERS.md  | 11 ++++++
 README.md       | 44 +++++++++++++++++++++++
 7 files changed, 223 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 CODING_STYLE.md
 create mode 100644 CONTRIBUTING.md
 create mode 100644 COPYING.md
 create mode 100644 Config.uk
 create mode 100644 MAINTAINERS.md
 create mode 100644 README.md

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..75d2fd3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+*.depend
+*.o
+*.a
+*.d
+*.so
+*.orig
+*.rej
+*.bak
+*.swp
+*~
+,*
+\#*\#
+.\#*
+\#_*\#
+.\#_*
+!.gitignore
+.*
+
+# gnu global files
+GPATH
+GRTAGS
+GSYMS
+GTAGS
+
+# cscope files
+cscope.*
+ncscope.*
diff --git a/CODING_STYLE.md b/CODING_STYLE.md
new file mode 100644
index 0000000..5730041
--- /dev/null
+++ b/CODING_STYLE.md
@@ -0,0 +1,4 @@
+Coding Style
+============
+
+Please refer to the `CODING_STYLE.md` file in the main Unikraft repository.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..14f6ac6
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,4 @@
+Contributing to Unikraft
+========================
+
+Please refer to the `CONTRIBUTING.md` file in the main Unikraft repository.
diff --git a/COPYING.md b/COPYING.md
new file mode 100644
index 0000000..b65a5a7
--- /dev/null
+++ b/COPYING.md
@@ -0,0 +1,38 @@
+License
+=======
+
+Unikraft libtasn1 wrappers
+--------------------------
+
+This repository contains wrapper code to build libtasn1 with Unikraft.
+Each C code file in this repository should declare who is the
+copyright owner and under which terms and conditions the code is
+licensed. If such a licence note is missing, the following copyright
+notice will apply:
+
+       Copyright (c) Year, Institution. All rights reserved.
+
+       Redistribution and use in source and binary forms, with or without
+       modification, are permitted provided that the following conditions
+       are met:
+
+       1. Redistributions of source code must retain the above copyright
+          notice, this list of conditions and the following disclaimer.
+       2. Redistributions in binary form must reproduce the above copyright
+          notice, this list of conditions and the following disclaimer in the
+          documentation and/or other materials provided with the distribution.
+       3. Neither the name of the copyright holder nor the names of its
+          contributors may be used to endorse or promote products derived from
+          this software without specific prior written permission.
+
+       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
IS"
+       AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
THE
+       IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
PURPOSE
+       ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 
BE
+       LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+       CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+       INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+       CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+       ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
THE
+       POSSIBILITY OF SUCH DAMAGE.
diff --git a/Config.uk b/Config.uk
new file mode 100644
index 0000000..f2c7dd0
--- /dev/null
+++ b/Config.uk
@@ -0,0 +1,95 @@
+config LIBTASN1
+       bool "libtasn1 - Manage ASN.1 structures"
+       default n
+       select LIBNEWLIBC
+
+if LIBTASN1
+       menuconfig BUILD_TESTS
+               bool "Build test suite"
+               default n
+               select PLAT_KVM
+               
+               ### Enabling the 9pfs support
+               select LIBVFSCORE
+               select LIBVFSCORE_AUTOMOUNT_ROOTFS
+               select LIBDEVFS
+               select LIBDEVFS_AUTOMOUNT
+
+       if BUILD_TESTS
+               ### Change the default root filesystem
+               choice LIBVFSCORE_ROOTFS
+                       default LIBVFSCORE_ROOTFS_9PFS
+               endchoice
+
+               config ALL_TEST_CASES
+                       bool "All test cases"
+                       default y
+                       depends on BUILD_TESTS
+               config TEST_TREE
+                       bool "Test_tree"
+                       default n
+               config CODING_DECODING2
+                       bool "coding-decoding2"
+                       default n
+               config CODING_LONG_OID
+                       bool "coding-long-oid"
+                       default n
+               config COPYNODE
+                       bool "copynode"
+                       default n
+               config CVE_2018_1000654
+                       bool "CVE-2018-1000654"
+                       default n
+               config OBJECT_ID_DECODING
+                       bool "object-id-decoding"
+                       default n
+               config OBJECT_ID_ENCODING
+                       bool "object-id-encoding"
+                       default n
+               config OCSP_BASIC_RESPONSE
+                       bool "ocsp-basic-response"
+                       default n
+               config OCTET_STRING
+                       bool "octet-string"
+                       default n
+               config REPRODUCERS
+                       bool "reproducers"
+                       default n
+               config SETOF
+                       bool "setof"
+                       default n
+               config SPC_PE_IMAGE_DATA
+                       bool "spc_pe_image_data"
+                       default n
+               config STRICT_DER
+                       bool "strict-der"
+                       default n
+               config TEST_CHOICE_OCSP
+                       bool "Test_choice_ocsp"
+                       default n
+               config TEST_ENCDEC
+                       bool "Test_encdec"
+                       default n
+               config TEST_ENCODING
+                       bool "Test_encoding"
+                       default n
+               config TEST_ERRORS
+                       bool "Test_errors"
+                       default n
+               config TEST_INDEFINITE
+                       bool "Test_indefinite"
+                       default n
+               config TEST_OVERFLOW
+                       bool "Test_overflow"
+                       default n
+               config TEST_PARSER
+                       bool "Test_parser"
+                       default n
+               config TEST_SIMPLE
+                       bool "Test_simple"
+                       default n
+               config TEST_STRINGS
+                       bool "Test_strings"
+                       default n
+       endif
+endif
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
new file mode 100644
index 0000000..3632ef2
--- /dev/null
+++ b/MAINTAINERS.md
@@ -0,0 +1,11 @@
+Maintainers List
+================
+
+For notes on how to read this information, please refer to `MAINTAINERS.md` in
+the main Unikraft repository.
+
+       LIBTASN1-UNIKRAFT
+       M:      Laurentiu Barbulescu <lrbarbulescu@xxxxxxxxx>
+       M:      Felipe Huici <felipe.huici@xxxxxxxxx>
+       L:      minios-devel@xxxxxxxxxxxxx
+       F: *
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..626e027
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+libtasn1 for Unikraft
+=====================
+
+This is the port of libtasn1 4.16.0 for Unikraft as external library.
+
+libtasn1 depends on libc(e.g. `newlib`), so please ensure you add the
+following line to the `LIBS` variable in the `Makefile`:
+
+...$(UK_LIBS)/libtasn1:$(UK_LIBS)/newlib...
+
+Using the root filesystem
+-------------------------
+
+We will use the 9pfs support for filesystems. To enable it, you'll need
+to select the following menu options, all under "Library Configuration":
+- `vfscore: VFS Core Interface`
+- `Automatically mount a root filesysytem (/)` from `vfscore: Configuration`
+- `9PFS` for `Default root filesystem` from `vfscore: Configuration`
+- `devfs: devfs file system`
+- `Mount /dev during boot` from `devfs: devfs file system`
+
+With the 9pfs support enabled, all you have to do is to provide the right
+Qemu parameters in order for Unikraft to mount the filesystem:
+```
+-fsdev local,id=myid,path=<some directory>,security_model=none \
+-device 
virtio-9p-pci,fsdev=myid,mount_tag=rootfs,disable-modern=on,disable-legacy=off
+```
+
+Running libtasn1 test suite
+---------------------------
+
+For running the test cases: enable the `Build test suite` option in the
+configuration menu, include `test_suite_glue.h` and call the
+`libtasn1_test_main(int verbose)` function in your main application.
+Also, please ensure that the `Default root filesystem` from 
+`Library Configuration`->`vfscore: Configuration` is set to `9PFS` and use the
+path of the tests folder (i.e. `build/libtasn1/origin/libtasn1-4.16.0/tests`).
+
+
+Further information
+-------------------
+
+Please refer to the `README.md` as well as the documentation in the `doc/`
+subdirectory of the main unikraft repository.
-- 
2.17.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.