[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/PTHREAD-EMBEDDED 1/2] patches: Add patch for making pte_handle a C++ structure
The CXX library requires pthe_handle to be defined as a C++ structure. This patch also adds the overloaded operators needed by the CXX library. Signed-off-by: Teodora Serbanescu <teo.serbanescu16@xxxxxxxxx> --- .../0009-Make-pte_handle-a-C-structure.patch | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 patches/0009-Make-pte_handle-a-C-structure.patch diff --git a/patches/0009-Make-pte_handle-a-C-structure.patch b/patches/0009-Make-pte_handle-a-C-structure.patch new file mode 100644 index 0000000..e1d5fb9 --- /dev/null +++ b/patches/0009-Make-pte_handle-a-C-structure.patch @@ -0,0 +1,66 @@ +From 1465fc0bcb52860d6077ae72a8e2364890485fd1 Mon Sep 17 00:00:00 2001 +From: Teodora Serbanescu <teo.serbanescu16@xxxxxxxxx> +Date: Wed, 5 Jun 2019 10:45:36 +0300 +Subject: [UNIKRAFT/PTHREAD-EMBEDDED] Make pte_handle a C++ structure + +This patch changes the pte_handle structure to a C++ structure, also adding the +overloaded operators needed by the cxx library. + +Signed-off-by: Teodora Serbanescu <teo.serbanescu16@xxxxxxxxx> +--- + pthread.h | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/pthread.h b/pthread.h +index 33df446..48625a4 100644 +--- a/pthread.h ++++ b/pthread.h +@@ -388,10 +388,25 @@ enum + * that available with a simple pointer. It should scale for either + * IA-32 or IA-64. + */ ++ ++#ifdef __cplusplus ++ typedef struct pte_handle ++#else + typedef struct ++#endif + { + void * p; /* Pointer to actual object */ + unsigned int x; /* Extra information - reuse count etc */ ++ ++#ifdef __cplusplus ++ pte_handle() {}; ++ pte_handle(int ptr_value) ++ { ++ this->p = reinterpret_cast <void *>(ptr_value); ++ } ++ inline struct pte_handle& operator=(unsigned int ptr_value); ++ inline bool operator==(int ptr_value); ++#endif + } pte_handle_t; + + typedef pte_handle_t pthread_t; +@@ -994,6 +1009,19 @@ enum + { + return ((size_t) l.p) == ((size_t) r.p); + } ++ ++ /* Operator to compare the thread pointer with a given value */ ++ bool pte_handle_t::operator==(int ptr_value) ++ { ++ return ((size_t) this->p) == ((size_t) (reinterpret_cast <void *>(ptr_value))); ++ } ++ ++ /* Operator to assign a given value to the thread pointer */ ++ pte_handle_t& pte_handle_t::operator=(unsigned int ptr_value) ++ { ++ this->p = reinterpret_cast <void *>(ptr_value); ++ return *this; ++ } + #endif + + +-- +2.20.1 + -- 2.20.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |